summaryrefslogtreecommitdiff
path: root/makima/frontend/src/routes/files.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'makima/frontend/src/routes/files.tsx')
-rw-r--r--makima/frontend/src/routes/files.tsx88
1 files changed, 11 insertions, 77 deletions
diff --git a/makima/frontend/src/routes/files.tsx b/makima/frontend/src/routes/files.tsx
index b232aa0..5d757a4 100644
--- a/makima/frontend/src/routes/files.tsx
+++ b/makima/frontend/src/routes/files.tsx
@@ -3,7 +3,6 @@ import { useParams, useNavigate } from "react-router";
import { Masthead } from "../components/Masthead";
import { FileList } from "../components/files/FileList";
import { FileDetail, type FocusedElement } from "../components/files/FileDetail";
-import { CliInput } from "../components/files/CliInput";
import { ConflictNotification } from "../components/files/ConflictNotification";
import { UpdateNotification } from "../components/files/UpdateNotification";
import { useFiles } from "../hooks/useFiles";
@@ -57,7 +56,6 @@ function FilesPageContent() {
const [remoteUpdate, setRemoteUpdate] = useState<FileUpdateEvent | null>(null);
const [remoteFileData, setRemoteFileData] = useState<FileDetailType | null>(null);
const [focusedElement, setFocusedElement] = useState<FocusedElement | null>(null);
- const [suggestedPrompt, setSuggestedPrompt] = useState<string | null>(null);
const [createdTask, setCreatedTask] = useState<Task | null>(null);
// Contract selection modal state for task creation
const [showContractModal, setShowContractModal] = useState(false);
@@ -246,18 +244,8 @@ function FilesPageContent() {
[editFile, fileDetail, updateHasLocalChanges]
);
- const handleBodyUpdate = useCallback(
- (body: BodyElement[], summary: string | null) => {
- if (fileDetail) {
- setFileDetail({
- ...fileDetail,
- body,
- summary,
- });
- }
- },
- [fileDetail]
- );
+ // handleBodyUpdate was the CliInput callback for AI-driven body
+ // rewrites. CliInput is gone with the LLM module.
const handleBodyElementUpdate = useCallback(
async (index: number, element: BodyElement) => {
@@ -423,9 +411,7 @@ function FilesPageContent() {
setFocusedElement(element);
}, []);
- const handleClearFocus = useCallback(() => {
- setFocusedElement(null);
- }, []);
+ // handleClearFocus was passed to CliInput; both gone now.
// Convert element to a different type
const handleConvertElement = useCallback(
@@ -506,55 +492,10 @@ function FilesPageContent() {
[fileDetail, id, editFile, updateHasLocalChanges, focusedElement]
);
- // Generate from element - focus on it and pre-fill a prompt
- const handleGenerateFromElement = useCallback(
- (index: number, action: string) => {
- if (!fileDetail) return;
-
- const element = fileDetail.body[index];
- if (!element) return;
-
- // Get preview text
- let preview = "";
- switch (element.type) {
- case "heading":
- case "paragraph":
- preview = element.text.slice(0, 50);
- break;
- case "code":
- preview = element.content.slice(0, 50);
- break;
- case "list":
- preview = element.items[0]?.slice(0, 40) || "";
- break;
- default:
- preview = "Element";
- }
-
- // Focus on the element
- setFocusedElement({
- index,
- type: element.type,
- preview: preview + (preview.length >= 50 ? "..." : ""),
- });
-
- // Set suggested prompt based on action
- let prompt = "";
- switch (action) {
- case "elaborate":
- prompt = "Elaborate and expand on this content";
- break;
- case "summarize":
- prompt = "Summarize this content";
- break;
- case "extract_actions":
- prompt = "Extract action items from this content";
- break;
- }
- setSuggestedPrompt(prompt);
- },
- [fileDetail]
- );
+ // handleGenerateFromElement was an LLM elaborate/summarise/extract
+ // affordance that piped a suggested prompt into CliInput. Both
+ // CliInput and the LLM module are gone; the handler + its prop on
+ // FileDetail are removed.
// Create a mesh task from an element - shows contract selection modal
const handleCreateTaskFromElement = useCallback(
@@ -762,7 +703,6 @@ function FilesPageContent() {
onBodyElementDelete={handleBodyElementDelete}
onBodyElementDuplicate={handleBodyElementDuplicate}
onConvertElement={handleConvertElement}
- onGenerateFromElement={handleGenerateFromElement}
onCreateTaskFromElement={handleCreateTaskFromElement}
onEditingChange={updateIsActivelyEditing}
hasPendingRemoteUpdate={!!remoteUpdate}
@@ -779,16 +719,10 @@ function FilesPageContent() {
onClearVersionSelection={clearSelectedVersion}
/>
</div>
- <div className="shrink-0">
- <CliInput
- fileId={id}
- onUpdate={handleBodyUpdate}
- focusedElement={focusedElement}
- onClearFocus={handleClearFocus}
- suggestedPrompt={suggestedPrompt}
- onClearSuggestedPrompt={() => setSuggestedPrompt(null)}
- />
- </div>
+ {/* CliInput (file-level LLM chat) removed alongside the LLM
+ module. The file detail view is now a pure read/edit
+ surface; AI-driven file editing was the primary value of
+ this composer and went with the LLM removal. */}
</div>
) : id && detailLoading ? (
<div className="panel h-full flex items-center justify-center">