@luckydraw/cumulus 0.28.9 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -2
- package/dist/cli/cumulus.js +1 -1
- package/dist/cli/cumulus.js.map +1 -1
- package/dist/gateway/adapters/webchat.d.ts.map +1 -1
- package/dist/gateway/adapters/webchat.js +19 -7
- package/dist/gateway/adapters/webchat.js.map +1 -1
- package/dist/gateway/config.d.ts +2 -0
- package/dist/gateway/config.d.ts.map +1 -1
- package/dist/gateway/config.js +1 -1
- package/dist/gateway/config.js.map +1 -1
- package/dist/gateway/daemon.d.ts +7 -1
- package/dist/gateway/daemon.d.ts.map +1 -1
- package/dist/gateway/daemon.js +46 -2
- package/dist/gateway/daemon.js.map +1 -1
- package/dist/gateway/logger.js +1 -1
- package/dist/gateway/logger.js.map +1 -1
- package/dist/gateway/push.js +1 -1
- package/dist/gateway/push.js.map +1 -1
- package/dist/gateway/scheduler.d.ts.map +1 -1
- package/dist/gateway/scheduler.js +1 -1
- package/dist/gateway/scheduler.js.map +1 -1
- package/dist/gateway/server.d.ts +9 -0
- package/dist/gateway/server.d.ts.map +1 -1
- package/dist/gateway/server.js +50 -7
- package/dist/gateway/server.js.map +1 -1
- package/dist/gateway/setup.d.ts +21 -0
- package/dist/gateway/setup.d.ts.map +1 -0
- package/dist/gateway/setup.js +426 -0
- package/dist/gateway/setup.js.map +1 -0
- package/dist/gateway/static/widget.js +212 -20
- package/dist/gateway/voice-tts.d.ts.map +1 -1
- package/dist/gateway/voice-tts.js +1 -1
- package/dist/gateway/voice-tts.js.map +1 -1
- package/dist/lib/agentic-loop.d.ts.map +1 -1
- package/dist/lib/agentic-loop.js +15 -3
- package/dist/lib/agentic-loop.js.map +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +8 -4
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/gateway.d.ts +9 -7
- package/dist/lib/gateway.d.ts.map +1 -1
- package/dist/lib/gateway.js +265 -42
- package/dist/lib/gateway.js.map +1 -1
- package/dist/lib/history.d.ts.map +1 -1
- package/dist/lib/history.js +3 -2
- package/dist/lib/history.js.map +1 -1
- package/dist/lib/huggingface-provider.d.ts.map +1 -1
- package/dist/lib/huggingface-provider.js +123 -12
- package/dist/lib/huggingface-provider.js.map +1 -1
- package/dist/lib/jsonl-lock.d.ts +34 -0
- package/dist/lib/jsonl-lock.d.ts.map +1 -0
- package/dist/lib/jsonl-lock.js +81 -0
- package/dist/lib/jsonl-lock.js.map +1 -0
- package/dist/lib/templates.js +1 -1
- package/dist/lib/templates.js.map +1 -1
- package/dist/lib/version-check.d.ts.map +1 -1
- package/dist/lib/version-check.js +1 -1
- package/dist/lib/version-check.js.map +1 -1
- package/dist/tui/components/App.js +1 -1
- package/dist/tui/components/App.js.map +1 -1
- package/package.json +1 -1
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/gateway.d.ts
CHANGED
|
@@ -22,12 +22,14 @@ export declare function getActiveSubprocessCount(): number;
|
|
|
22
22
|
export declare function registerCompletionPromise(child: ChildProcess, promise: Promise<void>): void;
|
|
23
23
|
/** Get thread names of all currently active (in-flight) subprocesses */
|
|
24
24
|
export declare function getActiveThreadNames(): string[];
|
|
25
|
+
/** Kill the active subprocess for a given thread name. Returns true if a process was killed. */
|
|
26
|
+
export declare function killThreadSubprocess(threadName: string): boolean;
|
|
25
27
|
/** Wait for all active subprocesses to complete AND persist their responses (with timeout) */
|
|
26
28
|
export declare function drainActiveSubprocesses(timeoutMs?: number): Promise<number>;
|
|
27
29
|
export declare const RECENT_CONTEXT_COUNT = 10;
|
|
28
30
|
export declare const RECENT_MSG_MAX_TOKENS = 500;
|
|
29
31
|
export declare const RECENT_CONTEXT_BUDGET = 6000;
|
|
30
|
-
export declare const SYSTEM_PROMPT_TEMPLATE = "You have NO memory of this conversation. There are {count} prior messages (~{tokens} tokens) in the history.\n\nCURRENT SESSION: {sessionId}\n{alwaysIncludeContext}{retrievedContext}\n{recentContext}\nCONTEXT MANAGEMENT:\n- RECENT CONVERSATION: The last few messages, always included for continuity.\n- RETRIEVED CONTEXT: Automatically retrieved based on the user's current message using semantic + keyword search.\n- Large content may be stored externally as [STORED:xxx] references.\n\nWORKFLOW:\n1. FIRST use the RETRIEVED CONTEXT above \u2014 it was automatically selected for relevance to this query\n2. Check RECENT CONVERSATION for immediate context\n3. Only use tools if the retrieved context doesn't contain what you need\n4. For [STORED:xxx] references, use retrieve_content to get full content\n5. For file reads, use read_file (the built-in Read tool is disabled)\n\nNEVER guess. Use the context provided or retrieve more if needed.\nIMPORTANT: Never mention the retrieval system or tools to the user. Present information naturally.\n\nFILE READING (MANDATORY):\nThe built-in Read tool is DISABLED in this environment. You MUST use read_file (MCP tool) for ALL file reads.\n- read_file reads the file, chunks it, embeds it into a vector store, and stores it for persistent retrieval across sessions\n- You receive a summary, content ID, and chunk table-of-contents\n- Use read_content_chunk(contentId, N) to navigate to specific sections\n- Using the built-in Read tool bypasses vector storage and loses context permanently \u2014 NEVER use it\n\nTOOL ROUTING (CRITICAL):\n\n| Need to... | CORRECT tool | WRONG tool (do NOT use) |\n|---------------------|-------------------|-------------------------|\n| Read a file | read_file | Read |\n| Search stored files | search_content | Grep |\n| Get stored content | retrieve_content | Read |\n\nTOOLS:\n- read_file: Read any file (text or PDF) and store for future retrieval \u2014 USE THIS FOR ALL FILE READS\n- store_content: Store arbitrary text content for future retrieval\n- search_history: Search past messages by keyword or meaning\n- peek_recent: Get the last few messages\n- read_messages: Read messages by index range\n- retrieve_content: Get full stored content by [STORED:xxx] ID\n- search_content: Search across all stored content\n- read_content_chunk: Read a specific chunk of stored content by index\n\nINTER-AGENT MESSAGING:\nYou can communicate with other agents/threads running on this gateway.\n- list_agents: See all active threads and their status (idle/streaming)\n- send_to_agent(target, message): Send a message to another thread \u2014 it will be delivered as a new turn\n- broadcast(message): Send a message to all other threads\nWhen the user mentions another agent by name (e.g., \"@thundercat\", \"@Friday\"), use send_to_agent to message them.\n\nDo NOT append status codes, tags, or metadata to your responses.";
|
|
32
|
+
export declare const SYSTEM_PROMPT_TEMPLATE = "You have NO memory of this conversation. There are {count} prior messages (~{tokens} tokens) in the history.\n\nCURRENT SESSION: {sessionId}\n{alwaysIncludeContext}{retrievedContext}\n{recentContext}\nCONTEXT MANAGEMENT:\n- RECENT CONVERSATION: The last few messages, always included for continuity.\n- RETRIEVED CONTEXT: Automatically retrieved based on the user's current message using semantic + keyword search.\n- Large content may be stored externally as [STORED:xxx] references.\n\nWORKFLOW:\n1. FIRST use the RETRIEVED CONTEXT above \u2014 it was automatically selected for relevance to this query\n2. Check RECENT CONVERSATION for immediate context\n3. Only use tools if the retrieved context doesn't contain what you need\n4. For [STORED:xxx] references, use retrieve_content to get full content\n5. For file reads, use read_file (the built-in Read tool is disabled)\n\nNEVER guess. Use the context provided or retrieve more if needed.\nIMPORTANT: Never mention the retrieval system or tools to the user. Present information naturally.\n\nFILE READING (MANDATORY):\nThe built-in Read tool is DISABLED in this environment. You MUST use read_file (MCP tool) for ALL file reads.\n- read_file reads the file, chunks it, embeds it into a vector store, and stores it for persistent retrieval across sessions\n- You receive a summary, content ID, and chunk table-of-contents\n- Use read_content_chunk(contentId, N) to navigate to specific sections\n- Using the built-in Read tool bypasses vector storage and loses context permanently \u2014 NEVER use it\n\nTOOL ROUTING (CRITICAL):\n\n| Need to... | CORRECT tool | WRONG tool (do NOT use) |\n|---------------------|-------------------|-------------------------|\n| Read a file | read_file | Read |\n| Search stored files | search_content | Grep |\n| Get stored content | retrieve_content | Read |\n\nTOOLS:\n- read_file: Read any file (text or PDF) and store for future retrieval \u2014 USE THIS FOR ALL FILE READS\n- store_content: Store arbitrary text content for future retrieval\n- search_history: Search past messages by keyword or meaning\n- peek_recent: Get the last few messages\n- read_messages: Read messages by index range\n- retrieve_content: Get full stored content by [STORED:xxx] ID\n- search_content: Search across all stored content\n- read_content_chunk: Read a specific chunk of stored content by index\n\nINTER-AGENT MESSAGING:\nYou can communicate with other agents/threads running on this gateway.\n- list_agents: See all active threads and their status (idle/streaming)\n- send_to_agent(target, message): Send a message to another thread \u2014 it will be delivered as a new turn\n- broadcast(message): Send a message to all other threads\nWhen the user mentions another agent by name (e.g., \"@thundercat\", \"@Friday\"), use send_to_agent to message them.\n\nDo NOT append status codes, tags, or metadata to your responses.\n\nRESPONSE FORMAT: TASK TRACKING\n\nWhen working on multi-step tasks, structure your response using these blocks:\n\n<thinking>{your reasoning, including how to decompose the work}</thinking>\n\n<todo>\n- [ ] Step 1 description\n- [ ] Step 2 description\n- [ ] Step 3 description\n</todo>\n\n{your response to the user \u2014 tool calls, explanations, etc.}\n\nAfter executing tools or completing steps, emit an updated <todo> block reflecting progress:\n\n<todo>\n- [x] Step 1 description\n- [x] Step 2 description (just finished)\n- [ ] Step 3 description\n</todo>\n\nRules:\n- Use full-replacement semantics: emit the COMPLETE list each time, not diffs\n- Mark completed items with [x], pending with [ ]\n- The <todo> block is REQUIRED for multi-step work (2+ steps), optional for simple Q&A\n- <thinking> is optional but encouraged for complex tasks\n- The LAST <todo> block in your response is the authoritative state\n- Do NOT wrap your response text in <text> tags \u2014 just write normally after the <todo> block\n\n### Todo Decomposition Rules\n\nWhen a todo involves CREATING something (writing content, building a page, designing a system, drafting a document), you MUST decompose it before executing:\n\n1. **Outline first** \u2014 Create a bullet-point outline of the deliverable's structure\n2. **Convert outline to subtodos** \u2014 Each bullet becomes a subtodo under the parent\n3. **Execute subtodos sequentially** \u2014 Complete each one, updating status as you go\n4. **Review after completion** \u2014 Add a review subtodo to verify the whole\n\n#### Decomposition trigger words\nIf a todo contains: \"create\", \"build\", \"write\", \"design\", \"implement\", \"draft\", \"compose\" \u2014 it is a creation task. Decompose it.\n\n#### Example\n\nBAD (atomic):\n<todo>\n[ ] Fetch npm package info\n[ ] Create a promotional HTML page \u2190 jumps straight to execution\n[ ] Upload to media server\n</todo>\n\nGOOD (decomposed):\n<todo>\n[x] Fetch npm package info\n[ ] Create promotional HTML page:\n [ ] Outline page sections (hero, features, quickstart, footer)\n [ ] Draft hero section with title, tagline, CTA\n [ ] Draft features grid from package capabilities\n [ ] Draft quickstart with install commands\n [ ] Draft footer with links\n [ ] Review full page for consistency\n [ ] Finalize and minify\n[ ] Upload to media server\n</todo>\n\n### Adaptive Todo Management\n\nYour todo list is a LIVING document. As you execute:\n\n1. **New information** \u2014 If executing a todo reveals important context (e.g., a file has an unexpected structure, an API returns a different format than expected), create a todo to address or document it.\n\n2. **Bugs discovered** \u2014 If you encounter a bug while working on something else, create a todo for it immediately. Do NOT fix it inline unless it blocks your current task. This prevents scope creep while ensuring nothing is forgotten.\n\n3. **Dependencies uncovered** \u2014 If a todo turns out to require prerequisite work you didn't anticipate, insert the prerequisite as a new todo BEFORE the blocked one.\n\n4. **Scope changes** \u2014 If the user redirects or adds requirements mid-stream, update the todo list BEFORE executing. Never act on verbal instructions without first reflecting them in todos.\n\n### Mandatory Decomposition Before Execution\n\nDO NOT EXECUTE a todo until it has been decomposed into small enough\ntasks that cannot be sensibly decomposed into 3+ sub-tasks.\n\nBefore executing any todo:\n1. Can this todo be sensibly decomposed into 3+ sub-todos?\n \u2192 YES: Decompose it. Then check each sub-todo the same way.\n \u2192 NO: Execute it.\n\nThis is recursive and mandatory \u2014 no exceptions.\n\n### Just-In-Time Decomposition\n\nBefore executing the next todo, apply the mandatory decomposition check:\n\n### Example\n\nBEFORE (todos too coarse):\n<todo>\n[ ] Interactive semantic search demo (type queries, see memories retrieved)\n</todo>\n\nAFTER (decomposed at execution time):\n<todo>\n[ ] Interactive semantic search demo:\n [ ] Create search input UI (text field + submit button)\n [ ] Build mock memory dataset (10-15 example memories)\n [ ] Implement fuzzy/keyword matching against dataset\n [ ] Render results as styled cards below input\n [ ] Add typing animation for \"retrieval\" effect\n</todo>\n\n### Todo Lifecycle\n\n1. **Decompose creation tasks** before executing (outline \u2192 subtodos)\n2. **Adapt dynamically** \u2014 if new information, bugs, or dependencies arise during execution, create new todos to address them\n3. **Never fix inline** \u2014 if you discover a bug unrelated to your current task, capture it as a todo rather than context-switching\n4. **Reflect redirects** \u2014 if the user changes direction, update the todo list before executing the new direction\n5. **Debugging** \u2014 treat each hypothesis as a todo; test systematically rather than chasing the first suspicious lead";
|
|
31
33
|
export declare const FILE_READ_REMINDER = "<system-reminder>\nFILE READING: The built-in Read tool is DISABLED. Use read_file for ALL file reads (text, code, PDFs).\n- read_file reads the file, extracts text (including from PDFs), chunks it, embeds it, and stores it for future retrieval\n- You receive a summary, content ID, and chunk table-of-contents\n- Use the TOC to navigate: read_content_chunk(\"contentId\", chunkIndex) for specific sections\n- Use search_content(\"query\") to find content across all stored files\n</system-reminder>\n\n";
|
|
32
34
|
/** Typed stream segment for verbose display */
|
|
33
35
|
export type StreamSegment = {
|
|
@@ -158,6 +160,8 @@ export interface MessagePipelineOptions {
|
|
|
158
160
|
resumeState?: ResumeState;
|
|
159
161
|
/** Callback when the agentic loop pauses for user input (AskUserQuestion) */
|
|
160
162
|
onNeedsInput?: (payload: NeedsInputPayload) => void;
|
|
163
|
+
/** When true, skip stripping <todo>/<thinking> blocks from streamed output */
|
|
164
|
+
debug?: boolean;
|
|
161
165
|
}
|
|
162
166
|
/** Result from the message pipeline */
|
|
163
167
|
export interface MessagePipelineResult {
|
|
@@ -178,6 +182,8 @@ export interface ThreadState {
|
|
|
178
182
|
adaptive: AdaptiveContextBudget;
|
|
179
183
|
threadPath: string;
|
|
180
184
|
}
|
|
185
|
+
/** Resolve a thread name to its JSONL file path */
|
|
186
|
+
export declare function resolveThreadPath(threadName: string, basePath: string): string;
|
|
181
187
|
/**
|
|
182
188
|
* Recover partial responses from .streaming.tmp files left by a previous crash/restart.
|
|
183
189
|
* Called on daemon startup BEFORE auto-resume.
|
|
@@ -199,11 +205,13 @@ export declare function truncateToTokens(content: string, maxTokens: number): st
|
|
|
199
205
|
export declare function formatRecentContext(recentMessages: Array<{
|
|
200
206
|
role: string;
|
|
201
207
|
content: string;
|
|
208
|
+
timestamp?: number;
|
|
202
209
|
}>, budgetTokens: number): string;
|
|
203
210
|
/** Assemble the full system prompt from template + context */
|
|
204
211
|
export declare function generateSystemPrompt(count: number, tokens: number, sessionId: string, recentMessages: Array<{
|
|
205
212
|
role: string;
|
|
206
213
|
content: string;
|
|
214
|
+
timestamp?: number;
|
|
207
215
|
}>, retrievedContext: string, alwaysIncludeContext: string, template?: string): string;
|
|
208
216
|
/** Config for injecting device MCP servers */
|
|
209
217
|
export interface DeviceMcpConfig {
|
|
@@ -236,11 +244,5 @@ export declare function computeAvgRelevance(debug: RetrievalResult['debug'] | un
|
|
|
236
244
|
export declare function getOrCreateThread(threadName: string, _basePath?: string): Promise<ThreadState>;
|
|
237
245
|
/** Clear a thread from the cache */
|
|
238
246
|
export declare function clearThreadCache(threadName?: string): void;
|
|
239
|
-
/**
|
|
240
|
-
* The full message pipeline: externalize → persist → RAG → prompt → spawn → stream → persist.
|
|
241
|
-
*
|
|
242
|
-
* This is the extracted core of Janus's CumulusBridge.sendMessage(), now callable
|
|
243
|
-
* from both Janus (via IPC) and the gateway server (via HTTP/SSE).
|
|
244
|
-
*/
|
|
245
247
|
export declare function sendMessage(options: MessagePipelineOptions): Promise<MessagePipelineResult>;
|
|
246
248
|
//# sourceMappingURL=gateway.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/lib/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAS,YAAY,EAAE,MAAM,eAAe,CAAC;AAYpD,OAAO,EAAE,qBAAqB,EAAqB,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAkB,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAS7F,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,gBAAgB,EAA2B,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAQ5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAc9C,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEtD;AASD,yEAAyE;AACzE,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED,kFAAkF;AAClF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAE3F;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAE/C;AAED,8FAA8F;AAC9F,wBAAsB,uBAAuB,CAAC,SAAS,SAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAclF;AAED,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,qBAAqB,OAAQ,CAAC;AAE3C,eAAO,MAAM,sBAAsB,
|
|
1
|
+
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/lib/gateway.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/gateway.js
CHANGED
|
@@ -25,7 +25,7 @@ import { StreamProcessor, shouldExternalizeUserInput, externalizeUserInput, } fr
|
|
|
25
25
|
import { scaffoldFromTemplate } from './templates.js';
|
|
26
26
|
import { getEagerTools } from './tools/index.js';
|
|
27
27
|
// ─── Constants ───────────────────────────────────────────────────────────────
|
|
28
|
-
const CUMULUS_DIR = path.join(os.homedir(), '.cumulus');
|
|
28
|
+
const CUMULUS_DIR = process.env.CUMULUS_DIR || path.join(os.homedir(), '.cumulus');
|
|
29
29
|
let THREADS_DIR = path.join(CUMULUS_DIR, 'threads');
|
|
30
30
|
/** Override the threads directory (used by tests to isolate from production). */
|
|
31
31
|
export function setGatewayThreadsDir(dir) {
|
|
@@ -49,6 +49,18 @@ export function registerCompletionPromise(child, promise) {
|
|
|
49
49
|
export function getActiveThreadNames() {
|
|
50
50
|
return Array.from(_activeThreadNames.values());
|
|
51
51
|
}
|
|
52
|
+
/** Kill the active subprocess for a given thread name. Returns true if a process was killed. */
|
|
53
|
+
export function killThreadSubprocess(threadName) {
|
|
54
|
+
for (const [child, name] of _activeThreadNames) {
|
|
55
|
+
if (name === threadName) {
|
|
56
|
+
child.kill('SIGTERM');
|
|
57
|
+
_activeSubprocesses.delete(child);
|
|
58
|
+
_activeThreadNames.delete(child);
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
52
64
|
/** Wait for all active subprocesses to complete AND persist their responses (with timeout) */
|
|
53
65
|
export async function drainActiveSubprocesses(timeoutMs = 120_000) {
|
|
54
66
|
const promises = Array.from(_completionPromises.values());
|
|
@@ -119,7 +131,125 @@ You can communicate with other agents/threads running on this gateway.
|
|
|
119
131
|
- broadcast(message): Send a message to all other threads
|
|
120
132
|
When the user mentions another agent by name (e.g., "@thundercat", "@Friday"), use send_to_agent to message them.
|
|
121
133
|
|
|
122
|
-
Do NOT append status codes, tags, or metadata to your responses
|
|
134
|
+
Do NOT append status codes, tags, or metadata to your responses.
|
|
135
|
+
|
|
136
|
+
RESPONSE FORMAT: TASK TRACKING
|
|
137
|
+
|
|
138
|
+
When working on multi-step tasks, structure your response using these blocks:
|
|
139
|
+
|
|
140
|
+
<thinking>{your reasoning, including how to decompose the work}</thinking>
|
|
141
|
+
|
|
142
|
+
<todo>
|
|
143
|
+
- [ ] Step 1 description
|
|
144
|
+
- [ ] Step 2 description
|
|
145
|
+
- [ ] Step 3 description
|
|
146
|
+
</todo>
|
|
147
|
+
|
|
148
|
+
{your response to the user — tool calls, explanations, etc.}
|
|
149
|
+
|
|
150
|
+
After executing tools or completing steps, emit an updated <todo> block reflecting progress:
|
|
151
|
+
|
|
152
|
+
<todo>
|
|
153
|
+
- [x] Step 1 description
|
|
154
|
+
- [x] Step 2 description (just finished)
|
|
155
|
+
- [ ] Step 3 description
|
|
156
|
+
</todo>
|
|
157
|
+
|
|
158
|
+
Rules:
|
|
159
|
+
- Use full-replacement semantics: emit the COMPLETE list each time, not diffs
|
|
160
|
+
- Mark completed items with [x], pending with [ ]
|
|
161
|
+
- The <todo> block is REQUIRED for multi-step work (2+ steps), optional for simple Q&A
|
|
162
|
+
- <thinking> is optional but encouraged for complex tasks
|
|
163
|
+
- The LAST <todo> block in your response is the authoritative state
|
|
164
|
+
- Do NOT wrap your response text in <text> tags — just write normally after the <todo> block
|
|
165
|
+
|
|
166
|
+
### Todo Decomposition Rules
|
|
167
|
+
|
|
168
|
+
When a todo involves CREATING something (writing content, building a page, designing a system, drafting a document), you MUST decompose it before executing:
|
|
169
|
+
|
|
170
|
+
1. **Outline first** — Create a bullet-point outline of the deliverable's structure
|
|
171
|
+
2. **Convert outline to subtodos** — Each bullet becomes a subtodo under the parent
|
|
172
|
+
3. **Execute subtodos sequentially** — Complete each one, updating status as you go
|
|
173
|
+
4. **Review after completion** — Add a review subtodo to verify the whole
|
|
174
|
+
|
|
175
|
+
#### Decomposition trigger words
|
|
176
|
+
If a todo contains: "create", "build", "write", "design", "implement", "draft", "compose" — it is a creation task. Decompose it.
|
|
177
|
+
|
|
178
|
+
#### Example
|
|
179
|
+
|
|
180
|
+
BAD (atomic):
|
|
181
|
+
<todo>
|
|
182
|
+
[ ] Fetch npm package info
|
|
183
|
+
[ ] Create a promotional HTML page ← jumps straight to execution
|
|
184
|
+
[ ] Upload to media server
|
|
185
|
+
</todo>
|
|
186
|
+
|
|
187
|
+
GOOD (decomposed):
|
|
188
|
+
<todo>
|
|
189
|
+
[x] Fetch npm package info
|
|
190
|
+
[ ] Create promotional HTML page:
|
|
191
|
+
[ ] Outline page sections (hero, features, quickstart, footer)
|
|
192
|
+
[ ] Draft hero section with title, tagline, CTA
|
|
193
|
+
[ ] Draft features grid from package capabilities
|
|
194
|
+
[ ] Draft quickstart with install commands
|
|
195
|
+
[ ] Draft footer with links
|
|
196
|
+
[ ] Review full page for consistency
|
|
197
|
+
[ ] Finalize and minify
|
|
198
|
+
[ ] Upload to media server
|
|
199
|
+
</todo>
|
|
200
|
+
|
|
201
|
+
### Adaptive Todo Management
|
|
202
|
+
|
|
203
|
+
Your todo list is a LIVING document. As you execute:
|
|
204
|
+
|
|
205
|
+
1. **New information** — If executing a todo reveals important context (e.g., a file has an unexpected structure, an API returns a different format than expected), create a todo to address or document it.
|
|
206
|
+
|
|
207
|
+
2. **Bugs discovered** — If you encounter a bug while working on something else, create a todo for it immediately. Do NOT fix it inline unless it blocks your current task. This prevents scope creep while ensuring nothing is forgotten.
|
|
208
|
+
|
|
209
|
+
3. **Dependencies uncovered** — If a todo turns out to require prerequisite work you didn't anticipate, insert the prerequisite as a new todo BEFORE the blocked one.
|
|
210
|
+
|
|
211
|
+
4. **Scope changes** — If the user redirects or adds requirements mid-stream, update the todo list BEFORE executing. Never act on verbal instructions without first reflecting them in todos.
|
|
212
|
+
|
|
213
|
+
### Mandatory Decomposition Before Execution
|
|
214
|
+
|
|
215
|
+
DO NOT EXECUTE a todo until it has been decomposed into small enough
|
|
216
|
+
tasks that cannot be sensibly decomposed into 3+ sub-tasks.
|
|
217
|
+
|
|
218
|
+
Before executing any todo:
|
|
219
|
+
1. Can this todo be sensibly decomposed into 3+ sub-todos?
|
|
220
|
+
→ YES: Decompose it. Then check each sub-todo the same way.
|
|
221
|
+
→ NO: Execute it.
|
|
222
|
+
|
|
223
|
+
This is recursive and mandatory — no exceptions.
|
|
224
|
+
|
|
225
|
+
### Just-In-Time Decomposition
|
|
226
|
+
|
|
227
|
+
Before executing the next todo, apply the mandatory decomposition check:
|
|
228
|
+
|
|
229
|
+
### Example
|
|
230
|
+
|
|
231
|
+
BEFORE (todos too coarse):
|
|
232
|
+
<todo>
|
|
233
|
+
[ ] Interactive semantic search demo (type queries, see memories retrieved)
|
|
234
|
+
</todo>
|
|
235
|
+
|
|
236
|
+
AFTER (decomposed at execution time):
|
|
237
|
+
<todo>
|
|
238
|
+
[ ] Interactive semantic search demo:
|
|
239
|
+
[ ] Create search input UI (text field + submit button)
|
|
240
|
+
[ ] Build mock memory dataset (10-15 example memories)
|
|
241
|
+
[ ] Implement fuzzy/keyword matching against dataset
|
|
242
|
+
[ ] Render results as styled cards below input
|
|
243
|
+
[ ] Add typing animation for "retrieval" effect
|
|
244
|
+
</todo>
|
|
245
|
+
|
|
246
|
+
### Todo Lifecycle
|
|
247
|
+
|
|
248
|
+
1. **Decompose creation tasks** before executing (outline → subtodos)
|
|
249
|
+
2. **Adapt dynamically** — if new information, bugs, or dependencies arise during execution, create new todos to address them
|
|
250
|
+
3. **Never fix inline** — if you discover a bug unrelated to your current task, capture it as a todo rather than context-switching
|
|
251
|
+
4. **Reflect redirects** — if the user changes direction, update the todo list before executing the new direction
|
|
252
|
+
5. **Debugging** — treat each hypothesis as a todo; test systematically rather than chasing the first suspicious lead`;
|
|
123
253
|
export const FILE_READ_REMINDER = `<system-reminder>
|
|
124
254
|
FILE READING: The built-in Read tool is DISABLED. Use read_file for ALL file reads (text, code, PDFs).
|
|
125
255
|
- read_file reads the file, extracts text (including from PDFs), chunks it, embeds it, and stores it for future retrieval
|
|
@@ -137,8 +267,12 @@ function ensureDirectories() {
|
|
|
137
267
|
fs.mkdirSync(THREADS_DIR, { recursive: true });
|
|
138
268
|
}
|
|
139
269
|
}
|
|
270
|
+
/** Resolve a thread name to its JSONL file path */
|
|
271
|
+
export function resolveThreadPath(threadName, basePath) {
|
|
272
|
+
return path.join(basePath, `${threadName}.jsonl`);
|
|
273
|
+
}
|
|
140
274
|
function getThreadPath(threadName) {
|
|
141
|
-
return
|
|
275
|
+
return resolveThreadPath(threadName, THREADS_DIR);
|
|
142
276
|
}
|
|
143
277
|
function getContentStorePath(threadPath) {
|
|
144
278
|
return threadPath.replace(/\.jsonl$/, '.content');
|
|
@@ -360,9 +494,13 @@ export function formatRecentContext(recentMessages, budgetTokens) {
|
|
|
360
494
|
const formatted = [];
|
|
361
495
|
for (let i = recentMessages.length - 1; i >= 0 && remaining > 0; i--) {
|
|
362
496
|
const msg = recentMessages[i];
|
|
363
|
-
const label = msg.role === 'user' ? 'User' : 'Assistant';
|
|
497
|
+
const label = msg.role === 'user' ? 'User' : msg.role === 'thinking' ? 'Thinking' : 'Assistant';
|
|
364
498
|
const truncated = truncateToTokens(msg.content, RECENT_MSG_MAX_TOKENS);
|
|
365
|
-
|
|
499
|
+
// Prepend human-readable timestamp if available
|
|
500
|
+
const timePrefix = msg.timestamp
|
|
501
|
+
? `[${new Date(msg.timestamp).toLocaleTimeString('en-GB', { hour: '2-digit', minute: '2-digit', second: '2-digit', hour12: false })}] `
|
|
502
|
+
: '';
|
|
503
|
+
const line = `${timePrefix}[${label}]: ${truncated}\n`;
|
|
366
504
|
const lineTokens = estimateTokens(line);
|
|
367
505
|
if (lineTokens > remaining)
|
|
368
506
|
break;
|
|
@@ -637,6 +775,71 @@ export function clearThreadCache(threadName) {
|
|
|
637
775
|
* This is the extracted core of Janus's CumulusBridge.sendMessage(), now callable
|
|
638
776
|
* from both Janus (via IPC) and the gateway server (via HTTP/SSE).
|
|
639
777
|
*/
|
|
778
|
+
/**
|
|
779
|
+
* Creates a streaming filter that suppresses <todo> and <thinking> blocks
|
|
780
|
+
* from reaching the frontend while allowing them through to fullResponse (for RLM).
|
|
781
|
+
*/
|
|
782
|
+
function createInternalBlockFilter(forward) {
|
|
783
|
+
let buffer = '';
|
|
784
|
+
let depth = 0; // nesting depth inside internal blocks
|
|
785
|
+
return (text) => {
|
|
786
|
+
buffer += text;
|
|
787
|
+
// Process buffer character by character looking for tag boundaries
|
|
788
|
+
let output = '';
|
|
789
|
+
let i = 0;
|
|
790
|
+
while (i < buffer.length) {
|
|
791
|
+
// Check for opening tags
|
|
792
|
+
if (buffer[i] === '<' && depth === 0) {
|
|
793
|
+
const remaining = buffer.slice(i);
|
|
794
|
+
const openMatch = remaining.match(/^<(todo|thinking)>/);
|
|
795
|
+
if (openMatch) {
|
|
796
|
+
// Flush any accumulated output before the tag
|
|
797
|
+
if (output) {
|
|
798
|
+
forward(output);
|
|
799
|
+
output = '';
|
|
800
|
+
}
|
|
801
|
+
depth++;
|
|
802
|
+
i += openMatch[0].length;
|
|
803
|
+
continue;
|
|
804
|
+
}
|
|
805
|
+
// Might be a partial tag at the end of buffer — hold it
|
|
806
|
+
if (i > buffer.length - 12 &&
|
|
807
|
+
remaining.match(/^<(t(o(do?)?|h(i(n(k(i(n(g)?)?)?)?)?)?)?)?$/)) {
|
|
808
|
+
// Partial potential tag — keep in buffer, flush output so far
|
|
809
|
+
if (output) {
|
|
810
|
+
forward(output);
|
|
811
|
+
output = '';
|
|
812
|
+
}
|
|
813
|
+
buffer = remaining;
|
|
814
|
+
return;
|
|
815
|
+
}
|
|
816
|
+
}
|
|
817
|
+
// Check for closing tags when inside a block
|
|
818
|
+
if (buffer[i] === '<' && depth > 0) {
|
|
819
|
+
const remaining = buffer.slice(i);
|
|
820
|
+
const closeMatch = remaining.match(/^<\/(todo|thinking)>/);
|
|
821
|
+
if (closeMatch) {
|
|
822
|
+
depth--;
|
|
823
|
+
i += closeMatch[0].length;
|
|
824
|
+
continue;
|
|
825
|
+
}
|
|
826
|
+
// Partial closing tag — hold buffer
|
|
827
|
+
if (i > buffer.length - 13 &&
|
|
828
|
+
remaining.match(/^<\/(t(o(do?)?|h(i(n(k(i(n(g)?)?)?)?)?)?)?)?$/)) {
|
|
829
|
+
buffer = remaining;
|
|
830
|
+
return;
|
|
831
|
+
}
|
|
832
|
+
}
|
|
833
|
+
if (depth === 0) {
|
|
834
|
+
output += buffer[i];
|
|
835
|
+
}
|
|
836
|
+
i++;
|
|
837
|
+
}
|
|
838
|
+
buffer = '';
|
|
839
|
+
if (output)
|
|
840
|
+
forward(output);
|
|
841
|
+
};
|
|
842
|
+
}
|
|
640
843
|
export async function sendMessage(options) {
|
|
641
844
|
const { threadName, message, images = [], attachments = [], basePath = CUMULUS_DIR, claudePath, sharedMcpPort, systemPromptTemplate, projectDir, projectRoot, extraMcpServers, gatewayAgentsConfig, onToken, onSegment, onError, onSpawn, signal, executorRegistry, hfApiKey, resumeState, onNeedsInput, } = options;
|
|
642
845
|
const thread = await getOrCreateThread(threadName, basePath);
|
|
@@ -715,7 +918,7 @@ export async function sendMessage(options) {
|
|
|
715
918
|
const recentMessages = await thread.history.getRecent(RECENT_CONTEXT_COUNT);
|
|
716
919
|
const recentConversation = recentMessages
|
|
717
920
|
.filter((m) => m.role !== 'session')
|
|
718
|
-
.map((m) => ({ role: m.role, content: m.content }));
|
|
921
|
+
.map((m) => ({ role: m.role, content: m.content, timestamp: m.timestamp }));
|
|
719
922
|
// ── Config + always-include ──
|
|
720
923
|
// Resolve executor and cwd
|
|
721
924
|
const effectiveProjectRoot = projectRoot || path.join(os.homedir(), 'projects');
|
|
@@ -751,7 +954,7 @@ export async function sendMessage(options) {
|
|
|
751
954
|
threadCwd = path.join(effectiveProjectRoot, threadName);
|
|
752
955
|
}
|
|
753
956
|
}
|
|
754
|
-
// Lazy-create: only for local execution
|
|
957
|
+
// Lazy-create: only for local execution
|
|
755
958
|
if (!isRemoteExecutor && !fs.existsSync(threadCwd)) {
|
|
756
959
|
fs.mkdirSync(threadCwd, { recursive: true });
|
|
757
960
|
const template = tc.template || 'default';
|
|
@@ -882,6 +1085,12 @@ export async function sendMessage(options) {
|
|
|
882
1085
|
}, 30_000);
|
|
883
1086
|
// ── Persistent streaming buffer (survives gateway restart) ──
|
|
884
1087
|
let streamBuf = null;
|
|
1088
|
+
// Filter suppresses <todo> and <thinking> blocks from CLI subprocess output (unless debug mode)
|
|
1089
|
+
const cliFilter = onToken
|
|
1090
|
+
? options.debug
|
|
1091
|
+
? onToken
|
|
1092
|
+
: createInternalBlockFilter(t => onToken(t))
|
|
1093
|
+
: undefined;
|
|
885
1094
|
const processLine = async (line) => {
|
|
886
1095
|
if (!line.trim())
|
|
887
1096
|
return;
|
|
@@ -905,10 +1114,10 @@ export async function sendMessage(options) {
|
|
|
905
1114
|
}
|
|
906
1115
|
if (fullResponse && !fullResponse.endsWith('\n')) {
|
|
907
1116
|
fullResponse += '\n\n';
|
|
908
|
-
|
|
1117
|
+
cliFilter?.('\n\n');
|
|
909
1118
|
}
|
|
910
|
-
fullResponse += text;
|
|
911
|
-
|
|
1119
|
+
fullResponse += text; // Raw text for RLM history
|
|
1120
|
+
cliFilter?.(text); // Filtered text for frontend
|
|
912
1121
|
}
|
|
913
1122
|
// Structured segments
|
|
914
1123
|
const segments = parseStreamSegments(processed.line);
|
|
@@ -1078,27 +1287,29 @@ export async function sendMessage(options) {
|
|
|
1078
1287
|
const coreTools = getEagerTools();
|
|
1079
1288
|
// MCP tools: cumulus-history as direct function calls (namespaced)
|
|
1080
1289
|
const mcpToolEntries = [];
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
const
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1290
|
+
{
|
|
1291
|
+
// Build ToolContext for direct cumulus-history tool dispatch
|
|
1292
|
+
const toolCtx = {
|
|
1293
|
+
historyStore: thread.history,
|
|
1294
|
+
contentStore: thread.content,
|
|
1295
|
+
sessionsPath: path.join(path.dirname(thread.history.threadPath), '..', 'sessions'),
|
|
1296
|
+
currentSessionId: thread.session.getSessionId(),
|
|
1297
|
+
};
|
|
1298
|
+
// Wire all cumulus-history tools as mcp__cumulus_history__* (direct function calls)
|
|
1299
|
+
for (const toolDef of getMcpToolDefinitions()) {
|
|
1300
|
+
const nsName = `mcp__cumulus_history__${toolDef.name}`;
|
|
1301
|
+
mcpToolEntries.push({
|
|
1302
|
+
definition: {
|
|
1303
|
+
name: nsName,
|
|
1304
|
+
description: toolDef.description ?? toolDef.name,
|
|
1305
|
+
input_schema: toolDef.inputSchema,
|
|
1306
|
+
},
|
|
1307
|
+
execute: async (input) => {
|
|
1308
|
+
const result = await handleToolCall(toolDef.name, input, toolCtx);
|
|
1309
|
+
return result.content.map((c) => c.text).join('\n');
|
|
1310
|
+
},
|
|
1311
|
+
});
|
|
1312
|
+
}
|
|
1102
1313
|
}
|
|
1103
1314
|
// Wire gateway-agents tools as mcp__gateway_agents__* (HTTP calls to own server)
|
|
1104
1315
|
if (gatewayAgentsConfig) {
|
|
@@ -1270,23 +1481,33 @@ export async function sendMessage(options) {
|
|
|
1270
1481
|
tools: coreTools,
|
|
1271
1482
|
mcpTools: mcpToolEntries,
|
|
1272
1483
|
eagerAll: true, // HF models can't use ToolSearch — send all tools upfront
|
|
1273
|
-
onToken:
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1484
|
+
onToken: (() => {
|
|
1485
|
+
// Filter suppresses <todo> and <thinking> blocks from reaching the frontend (unless debug)
|
|
1486
|
+
const filter = onToken
|
|
1487
|
+
? options.debug
|
|
1488
|
+
? onToken
|
|
1489
|
+
: createInternalBlockFilter(t => onToken(t))
|
|
1490
|
+
: undefined;
|
|
1491
|
+
return (text) => {
|
|
1492
|
+
if (firstToken) {
|
|
1493
|
+
ttftApi = Date.now() - spawnTimeApi;
|
|
1494
|
+
firstToken = false;
|
|
1495
|
+
// Create persistent streaming buffer on first token
|
|
1496
|
+
streamBuf = createStreamingBuffer(threadName, userMessageId);
|
|
1497
|
+
startStreamingFlush(streamBuf, () => fullResponse);
|
|
1498
|
+
}
|
|
1499
|
+
fullResponse += text; // Raw text for RLM history
|
|
1500
|
+
filter?.(text); // Filtered text for frontend
|
|
1501
|
+
};
|
|
1502
|
+
})(),
|
|
1284
1503
|
onToolUse: (name, input) => {
|
|
1504
|
+
lastTokenTime = Date.now(); // Reset heartbeat — tool execution is activity
|
|
1285
1505
|
const segment = { type: 'tool_use', tool: name, input };
|
|
1286
1506
|
collectedSegments.push(segment);
|
|
1287
1507
|
onSegment?.(segment);
|
|
1288
1508
|
},
|
|
1289
1509
|
onToolResult: (_name, output, isError) => {
|
|
1510
|
+
lastTokenTime = Date.now(); // Reset heartbeat — tool completed
|
|
1290
1511
|
const segment = {
|
|
1291
1512
|
type: 'tool_result',
|
|
1292
1513
|
content: output.slice(0, 500),
|
|
@@ -1300,6 +1521,7 @@ export async function sendMessage(options) {
|
|
|
1300
1521
|
threadName,
|
|
1301
1522
|
resumeState,
|
|
1302
1523
|
});
|
|
1524
|
+
clearInterval(heartbeat);
|
|
1303
1525
|
ttft = ttftApi;
|
|
1304
1526
|
console.log(`[Gateway] HuggingFace API: ${threadModel}, ${loopResult.turns} turns, ` +
|
|
1305
1527
|
`${loopResult.usage.totalInputTokens} in / ${loopResult.usage.totalOutputTokens} out`);
|
|
@@ -1336,6 +1558,7 @@ export async function sendMessage(options) {
|
|
|
1336
1558
|
};
|
|
1337
1559
|
}
|
|
1338
1560
|
catch (err) {
|
|
1561
|
+
clearInterval(heartbeat);
|
|
1339
1562
|
if (fullResponse) {
|
|
1340
1563
|
await persistResponse();
|
|
1341
1564
|
}
|