cli-jaw 1.3.5 → 1.4.0-preview.20260307160721

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.
Files changed (54) hide show
  1. package/dist/lib/stt.js +39 -9
  2. package/dist/lib/stt.js.map +1 -1
  3. package/dist/server.js +127 -5
  4. package/dist/server.js.map +1 -1
  5. package/dist/src/agent/spawn.js +38 -2
  6. package/dist/src/agent/spawn.js.map +1 -1
  7. package/dist/src/cli/acp-client.js +5 -3
  8. package/dist/src/cli/acp-client.js.map +1 -1
  9. package/dist/src/cli/command-context.js +11 -1
  10. package/dist/src/cli/command-context.js.map +1 -1
  11. package/dist/src/cli/handlers.js +72 -0
  12. package/dist/src/cli/handlers.js.map +1 -1
  13. package/dist/src/core/config.js +15 -0
  14. package/dist/src/core/config.js.map +1 -1
  15. package/dist/src/core/settings-merge.js +11 -2
  16. package/dist/src/core/settings-merge.js.map +1 -1
  17. package/dist/src/memory/advanced.js +1108 -0
  18. package/dist/src/memory/advanced.js.map +1 -0
  19. package/dist/src/memory/heartbeat-schedule.js +347 -0
  20. package/dist/src/memory/heartbeat-schedule.js.map +1 -0
  21. package/dist/src/memory/heartbeat.js +47 -6
  22. package/dist/src/memory/heartbeat.js.map +1 -1
  23. package/dist/src/memory/memory.js +2 -0
  24. package/dist/src/memory/memory.js.map +1 -1
  25. package/dist/src/orchestrator/distribute.js +2 -1
  26. package/dist/src/orchestrator/distribute.js.map +1 -1
  27. package/dist/src/orchestrator/gateway.js +0 -2
  28. package/dist/src/orchestrator/gateway.js.map +1 -1
  29. package/dist/src/orchestrator/pipeline.js +85 -7
  30. package/dist/src/orchestrator/pipeline.js.map +1 -1
  31. package/dist/src/orchestrator/research.js +149 -0
  32. package/dist/src/orchestrator/research.js.map +1 -0
  33. package/dist/src/orchestrator/state-machine.js +2 -2
  34. package/dist/src/orchestrator/state-machine.js.map +1 -1
  35. package/dist/src/prompt/builder.js +51 -18
  36. package/dist/src/prompt/builder.js.map +1 -1
  37. package/dist/src/prompt/templates/a1-system.md +3 -1
  38. package/dist/src/prompt/templates/a2-default.md +8 -0
  39. package/dist/src/prompt/templates/research-worker.md +37 -0
  40. package/dist/src/prompt/templates/worker-context.md +3 -0
  41. package/package.json +1 -1
  42. package/public/css/modals.css +46 -1
  43. package/public/dist/bundle.js +68 -57
  44. package/public/dist/bundle.js.map +4 -4
  45. package/public/index.html +142 -3
  46. package/public/js/constants.ts +1 -0
  47. package/public/js/features/employees.ts +2 -0
  48. package/public/js/features/heartbeat.ts +153 -27
  49. package/public/js/features/memory.ts +364 -52
  50. package/public/js/main.ts +72 -5
  51. package/public/js/state.ts +18 -1
  52. package/public/locales/en.json +14 -1
  53. package/public/locales/ko.json +14 -1
  54. package/scripts/release-preview.sh +48 -0
@@ -1 +1 @@
1
- {"version":3,"file":"distribute.js","sourceRoot":"","sources":["../../../src/orchestrator/distribute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"distribute.js","sourceRoot":"","sources":["../../../src/orchestrator/distribute.ts"],"names":[],"mappings":"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"}
@@ -36,8 +36,6 @@ export function submitMessage(text, meta) {
36
36
  }
37
37
  // ── reset intent ──
38
38
  if (isResetIntent(trimmed)) {
39
- if (isAgentBusy())
40
- return { action: 'rejected', reason: 'busy' };
41
39
  insertMessage.run('user', display, meta.origin, '');
42
40
  broadcast('new_message', { role: 'user', content: display, source: meta.origin });
43
41
  if (!meta.skipOrchestrate) {
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../../src/orchestrator/gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../../src/orchestrator/gateway.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,9 @@ import { clearPromptCache } from '../prompt/builder.js';
7
7
  import { spawnAgent } from '../agent/spawn.js';
8
8
  import { readLatestWorklog, appendToWorklog, updateWorklogStatus, } from '../memory/worklog.js';
9
9
  import { findEmployee, runSingleAgent } from './distribute.js';
10
- import { getState, getPrefix, resetState, setState, getStatePrompt, } from './state-machine.js';
10
+ import { getState, getPrefix, resetState, setState, getStatePrompt, getCtx, } from './state-machine.js';
11
+ import { dispatchResearchTask, injectResearchIntoPlanningPrompt, shouldRunResearch, } from './research.js';
12
+ import { buildTaskSnapshotAsync, getAdvancedMemoryStatus } from '../memory/advanced.js';
11
13
  // ─── Parser re-exports ─────────────────────────────
12
14
  import { isContinueIntent, isResetIntent, isApproveIntent, needsOrchestration, parseSubtasks, parseDirectAnswer, stripSubtaskJSON, } from './parser.js';
13
15
  export { isContinueIntent, isResetIntent, isApproveIntent, needsOrchestration, parseSubtasks, parseDirectAnswer, stripSubtaskJSON, };
@@ -23,6 +25,21 @@ const AUTO_APPROVE_NEXT = {
23
25
  A: 'B',
24
26
  B: 'C',
25
27
  };
28
+ function isPabcdActivationPrompt(text) {
29
+ const t = String(text || '').trim();
30
+ if (!t)
31
+ return false;
32
+ return PABCD_ACTIVATE_PATTERNS.some(re => re.test(t));
33
+ }
34
+ function pickPlanningTask(userText, _prompt, ctx) {
35
+ const ctxPrompt = String(ctx?.originalPrompt || '').trim();
36
+ if (ctxPrompt && !isPabcdActivationPrompt(ctxPrompt))
37
+ return ctxPrompt;
38
+ const userPrompt = String(userText || '').trim();
39
+ if (userPrompt && !isPabcdActivationPrompt(userPrompt))
40
+ return userPrompt;
41
+ return '';
42
+ }
26
43
  function shouldAutoActivatePABCD(prompt, meta) {
27
44
  const t = String(prompt || '').trim();
28
45
  if (!t)
@@ -37,6 +54,12 @@ export async function orchestrate(prompt, meta = {}) {
37
54
  const origin = meta.origin || 'web';
38
55
  const chatId = meta.chatId;
39
56
  const userText = String(prompt || '').trim();
57
+ const runSpawnAgent = typeof meta._spawnAgent === 'function'
58
+ ? meta._spawnAgent
59
+ : spawnAgent;
60
+ const runDispatchResearch = typeof meta._dispatchResearchTask === 'function'
61
+ ? meta._dispatchResearchTask
62
+ : dispatchResearchTask;
40
63
  let state = getState();
41
64
  let skipPrefix = !!meta._skipPrefix;
42
65
  // Skip session clear during active PABCD (preserve resume)
@@ -70,6 +93,38 @@ export async function orchestrate(prompt, meta = {}) {
70
93
  }
71
94
  }
72
95
  clearPromptCache();
96
+ let ctx = getCtx();
97
+ const planningTask = pickPlanningTask(userText, prompt, ctx);
98
+ const isInitialPlanningTurn = state === 'P'
99
+ && !meta._workerResult
100
+ && !ctx?.plan
101
+ && !!planningTask;
102
+ if (isInitialPlanningTurn) {
103
+ prompt = `${getStatePrompt('P')}\n\nUser request:\n${planningTask}`;
104
+ skipPrefix = true;
105
+ const nextCtx = {
106
+ ...(ctx || {
107
+ originalPrompt: '',
108
+ plan: null,
109
+ workerResults: [],
110
+ origin,
111
+ chatId,
112
+ }),
113
+ originalPrompt: planningTask,
114
+ origin,
115
+ chatId,
116
+ };
117
+ if (shouldRunResearch(planningTask, meta) && !ctx?.researchReport) {
118
+ const report = await runDispatchResearch(planningTask, { ...meta, origin, _researchInjected: true });
119
+ if (report.rawText) {
120
+ prompt = injectResearchIntoPlanningPrompt(prompt, report);
121
+ }
122
+ nextCtx.researchNeeded = true;
123
+ nextCtx.researchReport = report.rawText || null;
124
+ }
125
+ setState('P', nextCtx);
126
+ ctx = nextCtx;
127
+ }
73
128
  // prefix injection
74
129
  const source = meta._workerResult ? 'worker' : 'user';
75
130
  const prefix = getPrefix(state, source);
@@ -78,20 +133,41 @@ export async function orchestrate(prompt, meta = {}) {
78
133
  }
79
134
  // spawn/resume agent
80
135
  console.log(`[jaw:pabcd] state=${state}, spawning/resuming agent`);
81
- const { promise } = spawnAgent(prompt, {
136
+ let memorySnapshot = '';
137
+ try {
138
+ const adv = getAdvancedMemoryStatus();
139
+ if (adv.enabled && adv.routing?.searchRead === 'advanced' && !meta._workerResult) {
140
+ memorySnapshot = await buildTaskSnapshotAsync(userText || prompt, 2800);
141
+ }
142
+ }
143
+ catch (err) {
144
+ console.warn('[jaw:memory-snapshot]', err.message);
145
+ }
146
+ const { promise } = runSpawnAgent(prompt, {
82
147
  origin,
83
148
  _skipInsert: !!meta._skipInsert,
149
+ memorySnapshot,
84
150
  });
85
151
  const result = await promise;
152
+ if (state === 'P' && !meta._workerResult) {
153
+ const savedCtx = getCtx();
154
+ if (savedCtx) {
155
+ setState('P', {
156
+ ...savedCtx,
157
+ plan: stripSubtaskJSON(result.text) || result.text || savedCtx.plan,
158
+ });
159
+ }
160
+ }
86
161
  // Worker JSON detected → spawn workers → feed results back
87
162
  const workerTasks = parseSubtasks(result.text);
88
- if (workerTasks?.length && state !== 'IDLE') {
89
- // Only dispatch workers during active PABCD (P/A/B/C).
90
- // In IDLE, subtask JSON is handled by the middleware, not here.
91
- console.log(`[jaw:pabcd] worker JSON detected (${workerTasks.length} tasks)`);
163
+ // Research subtasks use phase 1 and can run from any state (including IDLE).
164
+ // Non-Research subtasks only dispatch during active PABCD (P/A/B/C).
165
+ const isResearchOnly = workerTasks?.length && workerTasks.every((wt) => /^research$/i.test(wt.agent || ''));
166
+ if (workerTasks?.length && (state !== 'IDLE' || isResearchOnly)) {
167
+ console.log(`[jaw:pabcd] worker JSON detected (${workerTasks.length} tasks, research=${!!isResearchOnly})`);
92
168
  // Map PABCD state → worker phase context
93
169
  const PABCD_PHASE_MAP = { A: 2, B: 3, C: 4 };
94
- const workerPhase = PABCD_PHASE_MAP[state] || 3;
170
+ const defaultPhase = PABCD_PHASE_MAP[state] || 3;
95
171
  let anyWorkerRan = false;
96
172
  for (const wt of workerTasks) {
97
173
  const emp = findEmployee(getEmployees.all(), wt);
@@ -99,6 +175,8 @@ export async function orchestrate(prompt, meta = {}) {
99
175
  console.warn(`[jaw:pabcd] worker not found: ${wt.agent}`);
100
176
  continue;
101
177
  }
178
+ // Research workers always use phase 1 semantics
179
+ const workerPhase = /^research$/i.test(wt.agent || '') ? 1 : defaultPhase;
102
180
  // Force fresh session for PABCD workers (prevent context contamination)
103
181
  upsertEmployeeSession.run(emp.id, null, emp.cli);
104
182
  const wResult = await runSingleAgent({
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/orchestrator/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/orchestrator/pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ // ─── Research Worker Dispatch Helper ────────────────
2
+ // Phase-independent research dispatch for the Research worker.
3
+ // Callable from IDLE, P, A, B, C — always read-only, report-only.
4
+ import { broadcast } from '../core/bus.js';
5
+ import { getEmployees, upsertEmployeeSession } from '../core/db.js';
6
+ import { getEmployeePromptV2 } from '../prompt/builder.js';
7
+ import { spawnAgent } from '../agent/spawn.js';
8
+ import { findEmployee } from './distribute.js';
9
+ // ─── Ambiguity Detection ────────────────────────────
10
+ const AMBIGUOUS_SIGNALS = [
11
+ /정리해\s*줘/i, /구조\s*잡아/i, /개선해\s*줘/i,
12
+ /어떻게\s*(하면|해야|할까)/i, /뭐가\s*(좋|나을|맞)/i,
13
+ /비교해\s*줘/i, /조사해\s*줘/i, /알아봐\s*줘/i,
14
+ /분석해\s*줘/i, /리서치/i,
15
+ /investigate/i, /compare/i, /research/i,
16
+ /what('?s| is) the best/i, /how should/i,
17
+ /explore\s+(the|this)/i, /look into/i,
18
+ /figure out/i, /find out/i,
19
+ ];
20
+ export function isAmbiguousRequest(text) {
21
+ const t = (text || '').trim();
22
+ if (!t || t.length < 3)
23
+ return false;
24
+ return AMBIGUOUS_SIGNALS.some(re => re.test(t));
25
+ }
26
+ export function shouldRunResearch(text, meta = {}) {
27
+ if (meta._workerResult || meta._skipResearch || meta._researchInjected)
28
+ return false;
29
+ return isAmbiguousRequest(text);
30
+ }
31
+ // ─── Research Dispatch ──────────────────────────────
32
+ export async function dispatchResearchTask(task, meta = {}) {
33
+ const emps = getEmployees.all();
34
+ const configuredEmp = findEmployee(emps, { agent: 'Research' });
35
+ const injectedEmp = meta._employee;
36
+ const emp = injectedEmp === undefined
37
+ ? (configuredEmp || buildFallbackResearchEmployee())
38
+ : (injectedEmp || buildFallbackResearchEmployee());
39
+ const runSpawnAgent = typeof meta._spawnAgent === 'function'
40
+ ? meta._spawnAgent
41
+ : spawnAgent;
42
+ if (!configuredEmp) {
43
+ console.warn('[jaw:research] Research employee not found, using fallback Research worker');
44
+ }
45
+ const sysPrompt = getEmployeePromptV2(emp, 'research', 1);
46
+ // Force fresh session to avoid context contamination
47
+ upsertEmployeeSession.run(emp.id, null, emp.cli);
48
+ broadcast('agent_status', {
49
+ agentId: emp.id, agentName: emp.name,
50
+ status: 'running', phase: 1, phaseLabel: 'Research',
51
+ });
52
+ const researchPrompt = `## Research Task
53
+ ${task}
54
+
55
+ ## Output Format (REQUIRED)
56
+ Respond with this exact structure:
57
+
58
+ ## Research Report
59
+ ### Context
60
+ (Background information gathered from codebase, memory, worklog, or external sources)
61
+
62
+ ### Options
63
+ (Numbered list of possible approaches or answers)
64
+
65
+ ### Recommendation
66
+ (Your recommended approach with reasoning)
67
+
68
+ ### Unknowns
69
+ (Things you could not determine — list as bullet points)
70
+
71
+ ⛔ RULES:
72
+ - Do NOT create, modify, or delete any files
73
+ - Do NOT write implementation code
74
+ - Only read, search, and report`;
75
+ const { promise } = runSpawnAgent(researchPrompt, {
76
+ agentId: emp.id,
77
+ cli: emp.cli,
78
+ model: emp.model,
79
+ forceNew: true,
80
+ sysPrompt,
81
+ origin: meta.origin || 'web',
82
+ });
83
+ const r = await promise;
84
+ if (r.code === 0 && r.sessionId) {
85
+ upsertEmployeeSession.run(emp.id, r.sessionId, emp.cli);
86
+ }
87
+ broadcast('agent_status', {
88
+ agentId: emp.id, agentName: emp.name,
89
+ status: r.code === 0 ? 'done' : 'error', phase: 1,
90
+ });
91
+ const parsed = parseResearchReport(r.text || '');
92
+ if (parsed.rawText)
93
+ return parsed;
94
+ const failureReason = r.code === 127
95
+ ? 'Research worker CLI not available'
96
+ : `Research worker failed with code ${r.code ?? 'unknown'}`;
97
+ return {
98
+ rawText: '',
99
+ summary: '',
100
+ options: [],
101
+ unknowns: [...parsed.unknowns, failureReason],
102
+ };
103
+ }
104
+ // ─── Report Parsing ─────────────────────────────────
105
+ export function parseResearchReport(text) {
106
+ const summary = extractSection(text, 'Context') || extractSection(text, 'Recommendation') || '';
107
+ const optionsRaw = extractSection(text, 'Options') || '';
108
+ const unknownsRaw = extractSection(text, 'Unknowns') || '';
109
+ return {
110
+ rawText: text,
111
+ summary: summary.trim(),
112
+ options: extractListItems(optionsRaw),
113
+ unknowns: extractListItems(unknownsRaw),
114
+ };
115
+ }
116
+ function buildFallbackResearchEmployee() {
117
+ return {
118
+ id: 'research-fallback',
119
+ name: 'Research',
120
+ cli: 'claude',
121
+ model: 'claude-haiku-4-5-20251001',
122
+ role: 'Search, codebase exploration, uncertainty reduction, read-only reports',
123
+ };
124
+ }
125
+ function extractSection(text, heading) {
126
+ const re = new RegExp(`###\\s*${heading}\\s*\\n([\\s\\S]*?)(?=###|$)`, 'i');
127
+ const m = text.match(re);
128
+ return m?.[1]?.trim() || '';
129
+ }
130
+ function extractListItems(text) {
131
+ return text
132
+ .split('\n')
133
+ .map(l => l.replace(/^[-*\d.)\s]+/, '').trim())
134
+ .filter(Boolean);
135
+ }
136
+ // ─── Prompt Injection ───────────────────────────────
137
+ export function injectResearchIntoPlanningPrompt(planPrompt, report) {
138
+ if (!report.rawText)
139
+ return planPrompt;
140
+ const injection = `## Pre-Planning Research Report
141
+ The following research was conducted before planning. Use this as context.
142
+
143
+ ${report.rawText}
144
+
145
+ ---
146
+ `;
147
+ return injection + planPrompt;
148
+ }
149
+ //# sourceMappingURL=research.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"research.js","sourceRoot":"","sources":["../../../src/orchestrator/research.ts"],"names":[],"mappings":"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"}
@@ -116,7 +116,7 @@ A worker must verify that your plan from P phase is feasible and safe before any
116
116
 
117
117
  Output this worker JSON now:
118
118
  \`\`\`json
119
- {"subtasks":[{"agent":"Data","task":"⛔ READ-ONLY: Do NOT create, modify, or delete ANY files. You are an auditor, not a builder. Audit the PLAN (not code). Verify: 1) All imports in the plan resolve to real files. 2) Function signatures match actual code. 3) No copy-paste integration risks. Report PASS or FAIL with itemized issues. ⛔ REPEAT: Do NOT touch any files.","priority":1}]}
119
+ {"subtasks":[{"agent":"Research","task":"⛔ READ-ONLY: Do NOT create, modify, or delete ANY files. You are an auditor, not a builder. Audit the PLAN (not code). Verify: 1) All imports in the plan resolve to real files. 2) Function signatures match actual code. 3) No copy-paste integration risks. Report PASS or FAIL with itemized issues. ⛔ REPEAT: Do NOT touch any files.","priority":1}]}
120
120
  \`\`\`
121
121
 
122
122
  The system spawns the worker automatically. Wait for results.
@@ -140,7 +140,7 @@ Steps:
140
140
  3. After YOU finish implementing, output a worker JSON to VERIFY (not implement) your work:
141
141
 
142
142
  \`\`\`json
143
- {"subtasks":[{"agent":"Data","task":"⛔ READ-ONLY: Do NOT create, modify, or delete ANY files. You are a verifier, not a builder. Verify: 1) Files in plan exist with expected content. 2) No syntax errors (run tsc --noEmit if TS). 3) Imports resolve. 4) No integration conflicts. Report DONE or NEEDS_FIX. ⛔ Do NOT touch any files — READ and REPORT only.","priority":1}]}
143
+ {"subtasks":[{"agent":"Research","task":"⛔ READ-ONLY: Do NOT create, modify, or delete ANY files. You are a verifier, not a builder. Verify: 1) Files in plan exist with expected content. 2) No syntax errors (run tsc --noEmit if TS). 3) Imports resolve. 4) No integration conflicts. Report DONE or NEEDS_FIX. ⛔ Do NOT touch any files — READ and REPORT only.","priority":1}]}
144
144
  \`\`\`
145
145
 
146
146
  Wait for worker verification results.
@@ -1 +1 @@
1
- {"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../../../src/orchestrator/state-machine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../../../src/orchestrator/state-machine.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ import { join } from 'path';
5
5
  import { settings, JAW_HOME, PROMPTS_DIR, SKILLS_DIR, SKILLS_REF_DIR, loadHeartbeatFile, deriveCdpPort } from '../core/config.js';
6
6
  import { getSession, getEmployees } from '../core/db.js';
7
7
  import { memoryFlushCounter } from '../agent/spawn.js';
8
+ import { describeHeartbeatSchedule, normalizeHeartbeatSchedule } from '../memory/heartbeat-schedule.js';
9
+ import { buildTaskSnapshot, getAdvancedMemoryStatus, loadAdvancedProfileSummary } from '../memory/advanced.js';
8
10
  import { loadAndRender, loadTemplate, renderTemplate, parseWorkerContexts, clearTemplateCache } from './template-loader.js';
9
11
  const promptCache = new Map();
10
12
  // ─── Skill Loading ───────────────────────────────────
@@ -181,23 +183,16 @@ export function loadRecentMemories() {
181
183
  }
182
184
  }
183
185
  // ─── System Prompt Generation ────────────────────────
184
- export function getSystemPrompt() {
185
- // A-1: file takes priority (user-editable), rendered template fallback
186
- const a1 = fs.existsSync(A1_PATH) ? fs.readFileSync(A1_PATH, 'utf8') : getA1Content();
187
- const a2 = fs.existsSync(A2_PATH) ? fs.readFileSync(A2_PATH, 'utf8') : '';
188
- let prompt = `${a1}\n\n${a2}`;
189
- // Phase 15: Telegram guidance is now part of A1_CONTENT (hardcoded)
190
- // No dynamic injection needed — Bot-First policy with curl examples included
191
- // Auto-flush memories (threshold-based injection)
192
- // Inject every ceil(threshold/2) messages: threshold=5 → inject at 0,3,5,8,10...
186
+ function appendLegacyMemoryContext(prompt) {
187
+ let next = prompt;
193
188
  try {
194
- const threshold = settings.memory?.flushEvery ?? 20;
189
+ const threshold = settings.memory?.flushEvery ?? 10;
195
190
  const injectInterval = Math.ceil(threshold / 2);
196
191
  const shouldInject = memoryFlushCounter % injectInterval === 0;
197
192
  if (shouldInject) {
198
193
  const memories = loadRecentMemories();
199
194
  if (memories) {
200
- prompt += memories;
195
+ next += memories;
201
196
  console.log(`[memory] injected (msg ${memoryFlushCounter}, every ${injectInterval})`);
202
197
  }
203
198
  }
@@ -206,12 +201,10 @@ export function getSystemPrompt() {
206
201
  }
207
202
  }
208
203
  catch {
209
- // Fallback: always inject if counter unavailable
210
204
  const memories = loadRecentMemories();
211
205
  if (memories)
212
- prompt += memories;
206
+ next += memories;
213
207
  }
214
- // Core memory (MEMORY.md, system-level injection)
215
208
  try {
216
209
  const memPath = join(JAW_HOME, 'memory', 'MEMORY.md');
217
210
  if (fs.existsSync(memPath)) {
@@ -220,12 +213,51 @@ export function getSystemPrompt() {
220
213
  const truncated = coreMem.length > 1500
221
214
  ? coreMem.slice(0, 1500) + '\n...(use `cli-jaw memory read MEMORY.md` for full)'
222
215
  : coreMem;
223
- prompt += '\n\n---\n## Core Memory\n' + truncated;
216
+ next += '\n\n---\n## Core Memory\n' + truncated;
224
217
  console.log(`[memory] MEMORY.md loaded: ${truncated.length} chars`);
225
218
  }
226
219
  }
227
220
  }
228
221
  catch { /* memory not ready */ }
222
+ return next;
223
+ }
224
+ function appendAdvancedMemoryContext(prompt, currentPrompt, providedSnapshot = '') {
225
+ let next = prompt;
226
+ const profile = loadAdvancedProfileSummary(800);
227
+ const snapshot = providedSnapshot || buildTaskSnapshot(currentPrompt, 2800);
228
+ next += '\n\n---\n## Advanced Memory Mode\n';
229
+ next += '- search/read routed to advanced runtime\n';
230
+ next += '- save remains on legacy lightweight path\n';
231
+ if (profile) {
232
+ next += '\n\n## Advanced Profile\n' + profile;
233
+ }
234
+ if (snapshot) {
235
+ next += '\n\n' + snapshot;
236
+ }
237
+ return next;
238
+ }
239
+ export function getSystemPrompt(opts = {}) {
240
+ // A-1: file takes priority (user-editable), rendered template fallback
241
+ const a1 = fs.existsSync(A1_PATH) ? fs.readFileSync(A1_PATH, 'utf8') : getA1Content();
242
+ const a2 = fs.existsSync(A2_PATH) ? fs.readFileSync(A2_PATH, 'utf8') : '';
243
+ let prompt = `${a1}\n\n${a2}`;
244
+ const currentPrompt = String(opts.currentPrompt || '').trim();
245
+ const forDisk = opts.forDisk === true;
246
+ const adv = getAdvancedMemoryStatus();
247
+ // Phase 15: Telegram guidance is now part of A1_CONTENT (hardcoded)
248
+ // No dynamic injection needed — Bot-First policy with curl examples included
249
+ if (!adv.enabled) {
250
+ prompt = appendLegacyMemoryContext(prompt);
251
+ }
252
+ else if (!forDisk && adv.routing?.searchRead === 'advanced') {
253
+ prompt = appendAdvancedMemoryContext(prompt, currentPrompt, opts.memorySnapshot || '');
254
+ }
255
+ else if (!forDisk) {
256
+ prompt = appendLegacyMemoryContext(prompt);
257
+ prompt += '\n\n---\n## Advanced Memory Status\n';
258
+ prompt += '- advanced memory is enabled but index is not ready yet\n';
259
+ prompt += '- temporary fallback to legacy memory context is active\n';
260
+ }
229
261
  try {
230
262
  const emps = getEmployees.all();
231
263
  if (emps.length > 0) {
@@ -250,8 +282,8 @@ export function getSystemPrompt() {
250
282
  const activeJobs = hbData.jobs.filter((j) => j.enabled);
251
283
  const jobList = hbData.jobs.map((job) => {
252
284
  const status = job.enabled ? '✅' : '⏸️';
253
- const mins = job.schedule?.minutes || '?';
254
- return `- ${status} "${job.name}" — every ${mins}min: ${(job.prompt || '').slice(0, 50)}`;
285
+ const schedule = normalizeHeartbeatSchedule(job.schedule);
286
+ return `- ${status} "${job.name}" — ${describeHeartbeatSchedule(schedule)}: ${(job.prompt || '').slice(0, 50)}`;
255
287
  }).join('\n');
256
288
  const vars = getTemplateVars();
257
289
  vars.JOB_LIST = jobList;
@@ -349,6 +381,7 @@ export function getEmployeePromptV2(emp, role, currentPhase) {
349
381
  const ROLE_SKILL_MAP = {
350
382
  frontend: join(SKILLS_DIR, 'dev-frontend', 'SKILL.md'),
351
383
  backend: join(SKILLS_DIR, 'dev-backend', 'SKILL.md'),
384
+ research: join(SKILLS_REF_DIR, 'research-worker', 'SKILL.md'),
352
385
  data: join(SKILLS_DIR, 'dev-data', 'SKILL.md'),
353
386
  docs: join(SKILLS_DIR, 'documentation', 'SKILL.md'),
354
387
  custom: null,
@@ -386,7 +419,7 @@ export function getEmployeePromptV2(emp, role, currentPhase) {
386
419
  export function clearPromptCache() { promptCache.clear(); }
387
420
  export function regenerateB() {
388
421
  clearTemplateCache();
389
- const fullPrompt = getSystemPrompt();
422
+ const fullPrompt = getSystemPrompt({ forDisk: true });
390
423
  fs.writeFileSync(join(PROMPTS_DIR, 'B.md'), fullPrompt);
391
424
  // Generate {workDir}/AGENTS.md — read by Codex, Copilot, and OpenCode
392
425
  try {