diff --git a/apps/web/src/ai/mastra/memory/memory.ts b/apps/web/src/ai/mastra/memory/memory.ts index b9c9006..e53dcc7 100644 --- a/apps/web/src/ai/mastra/memory/memory.ts +++ b/apps/web/src/ai/mastra/memory/memory.ts @@ -8,9 +8,6 @@ const JOURNL_MEMORY_LAST_MESSAGES = 30; const JOURNL_OBSERVATIONAL_MEMORY_SCOPE = "resource"; const JOURNL_OBSERVATIONAL_TOKENS = 30000; const JOURNL_REFLECTION_TOKENS = 40000; -const JOURNL_SEMANTIC_SEARCH_RANGE = 2; -const JOURNL_SEMANTIC_SEARCH_SCOPE = "thread"; -const JOURNL_SEMANTIC_TOP_K = 3; const JOURNL_WORKING_MEMORY_SCOPE = "resource"; const JOURNL_WORKING_MEMORY_TEMPLATE = `## Preferences @@ -47,11 +44,6 @@ export const journlMemory = new Memory({ // disabling to free context window space for the messaging history, etc. shareTokenBudget: false, }, - semanticRecall: { - messageRange: JOURNL_SEMANTIC_SEARCH_RANGE, - scope: JOURNL_SEMANTIC_SEARCH_SCOPE, - topK: JOURNL_SEMANTIC_TOP_K, - }, workingMemory: { enabled: true, scope: JOURNL_WORKING_MEMORY_SCOPE, diff --git a/apps/web/src/ai/tools/write/client.ts b/apps/web/src/ai/tools/write/client.ts index 88806c5..d7ecbf3 100644 --- a/apps/web/src/ai/tools/write/client.ts +++ b/apps/web/src/ai/tools/write/client.ts @@ -21,6 +21,12 @@ export function useWriteTool() { execute: async (toolCall, chat) => { let cleanUpBeforeChange: CallableFunction | undefined; + if (env.NODE_ENV === "development") { + console.debug("[useWriteTool]", { + input: toolCall.input, + }); + } + try { const editor = getEditor(toolCall.input.targetEditor)(getEditors); const aiExtension = getAIExtension(editor); @@ -40,7 +46,7 @@ export function useWriteTool() { await aiExtension.invokeAI({ chatRequestOptions: { body: { - reasoningEffort: toolCall.input.reasoningEffort ?? "low", + reasoningEffort: toolCall.input.reasoningEffort ?? "minimal", } satisfies Pick, }, deleteEmptyCursorBlock: false, diff --git a/apps/web/src/ai/tools/write/schema.ts b/apps/web/src/ai/tools/write/schema.ts index 6f43c3a..d339a96 100644 --- a/apps/web/src/ai/tools/write/schema.ts +++ b/apps/web/src/ai/tools/write/schema.ts @@ -12,7 +12,7 @@ export const zWriteInput = z.object({ reasoningEffort: z .optional(zOpenAIReasoningEffort) .describe( - "Optional reasoning effort for this edit. Use `low` for normal edits, `medium` for multi-section rewrites, and `high` for the most complex asks. Defaults to `low` if omitted.", + "Optional reasoning effort for this edit. Use `minimal` for normal edits, `low` for multi-section rewrites, and `medium` for complex tasks, or `high` for the most creative asks. Defaults to `minimal` if omitted.", ), }); diff --git a/apps/web/src/app/(app)/@appSidebar/_components/app-sidebar-page-item-skeleton.tsx b/apps/web/src/app/(app)/@appSidebar/_components/app-sidebar-page-item-skeleton.tsx index 3a73b98..ebec2fb 100644 --- a/apps/web/src/app/(app)/@appSidebar/_components/app-sidebar-page-item-skeleton.tsx +++ b/apps/web/src/app/(app)/@appSidebar/_components/app-sidebar-page-item-skeleton.tsx @@ -16,10 +16,7 @@ export function AppSidebarPageItemSkeleton({ return (
- +
diff --git a/apps/web/src/app/(app)/@appSidebar/_components/app-sidebar-pages.tsx b/apps/web/src/app/(app)/@appSidebar/_components/app-sidebar-pages.tsx index 686fc54..960308b 100644 --- a/apps/web/src/app/(app)/@appSidebar/_components/app-sidebar-pages.tsx +++ b/apps/web/src/app/(app)/@appSidebar/_components/app-sidebar-pages.tsx @@ -53,13 +53,6 @@ import { useSidebar, } from "~/components/ui/sidebar"; import { cn } from "~/lib/cn"; -import { - moveNode as moveTreeNode, - type QuerySnapshot, - restoreQueries, - snapshotQueries, - updateNode, -} from "~/trpc/cache/tree-cache"; import { TREE_INSIDE_DROP_ZONE_CLASSNAME, TREE_REORDER_AFTER_BAND_CLASSNAME, @@ -69,6 +62,13 @@ import { TreeDragOverlay, treeCollisionDetection, } from "~/lib/tree-dnd"; +import { + moveNode as moveTreeNode, + type QuerySnapshot, + restoreQueries, + snapshotQueries, + updateNode, +} from "~/trpc/cache/tree-cache"; import { getInfiniteSidebarTreeQueryOptions } from "~/trpc/options/sidebar-tree-query-options"; import { useTRPC } from "~/trpc/react"; import { AppSidebarPageItem } from "./app-sidebar-page-item"; @@ -682,7 +682,9 @@ function DraggableFolderRow({ className={cn( "min-h-7 rounded-md", "group/folder-navigation relative z-10 flex min-w-0 items-center gap-0.5", - isOverInside && isDragActive && "bg-primary/20 ring-1 ring-primary/30", + isOverInside && + isDragActive && + "bg-primary/20 ring-1 ring-primary/30", )} > - +
-
+
{isEditing ? ( diff --git a/apps/web/src/app/api/ai/blocknote/route.ts b/apps/web/src/app/api/ai/blocknote/route.ts index 8f4a800..2fc2ca5 100644 --- a/apps/web/src/app/api/ai/blocknote/route.ts +++ b/apps/web/src/app/api/ai/blocknote/route.ts @@ -26,27 +26,22 @@ export const maxDuration = 300; // Allow streaming responses up to 300 seconds const MAX_THREAD_CONTEXT_MESSAGES = 24; -const zMessages = z.custom[0]>( - (value) => Array.isArray(value), - "messages must be an array", -); - -const zReasoningEffort = zWriteInput.def.shape.reasoningEffort.default("low"); - -const zToolDefinitions = z.custom< - Parameters[0] ->((value) => { - if (!isRecord(value)) { - return false; - } - - return "applyDocumentOperations" in value; -}, "toolDefinitions must include applyDocumentOperations"); - const zBlockNoteRequest = z.object({ - messages: zMessages, - reasoningEffort: zReasoningEffort, - toolDefinitions: zToolDefinitions, + messages: z.custom[0]>( + (value) => Array.isArray(value), + "messages must be an array", + ), + reasoningEffort: zWriteInput.def.shape.reasoningEffort.default("minimal"), + toolDefinitions: z.custom[0]>( + (value) => { + if (!isRecord(value)) { + return false; + } + + return "applyDocumentOperations" in value; + }, + "toolDefinitions must include applyDocumentOperations", + ), }); export type BlockNoteRequest = z.infer;