@roackb2/heddle 0.0.28 → 0.0.30

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 (199) hide show
  1. package/README.md +87 -36
  2. package/dist/examples/programmatic-loop.js +12 -0
  3. package/dist/examples/programmatic-loop.js.map +1 -1
  4. package/dist/src/cli/ask.d.ts.map +1 -1
  5. package/dist/src/cli/ask.js +27 -5
  6. package/dist/src/cli/ask.js.map +1 -1
  7. package/dist/src/cli/chat/App.js +5 -3
  8. package/dist/src/cli/chat/App.js.map +1 -1
  9. package/dist/src/cli/chat/hooks/useAgentRun.d.ts +1 -0
  10. package/dist/src/cli/chat/hooks/useAgentRun.d.ts.map +1 -1
  11. package/dist/src/cli/chat/hooks/useAgentRun.js +73 -0
  12. package/dist/src/cli/chat/hooks/useAgentRun.js.map +1 -1
  13. package/dist/src/cli/chat/hooks/useApprovalFlow.d.ts +1 -0
  14. package/dist/src/cli/chat/hooks/useApprovalFlow.d.ts.map +1 -1
  15. package/dist/src/cli/chat/hooks/useApprovalFlow.js +3 -0
  16. package/dist/src/cli/chat/hooks/useApprovalFlow.js.map +1 -1
  17. package/dist/src/cli/chat/utils/format.d.ts.map +1 -1
  18. package/dist/src/cli/chat/utils/format.js +8 -0
  19. package/dist/src/cli/chat/utils/format.js.map +1 -1
  20. package/dist/src/cli/chat/utils/runtime.d.ts.map +1 -1
  21. package/dist/src/cli/chat/utils/runtime.js +7 -3
  22. package/dist/src/cli/chat/utils/runtime.js.map +1 -1
  23. package/dist/src/cli/main.js +235 -2
  24. package/dist/src/cli/main.js.map +1 -1
  25. package/dist/src/cli/remote/control-plane-client.d.ts +76 -0
  26. package/dist/src/cli/remote/control-plane-client.d.ts.map +1 -1
  27. package/dist/src/core/agent/mutation-tracking.d.ts.map +1 -1
  28. package/dist/src/core/agent/mutation-tracking.js +3 -0
  29. package/dist/src/core/agent/mutation-tracking.js.map +1 -1
  30. package/dist/src/core/agent/post-mutation.js +2 -2
  31. package/dist/src/core/agent/post-mutation.js.map +1 -1
  32. package/dist/src/core/agent/run-agent.d.ts +1 -0
  33. package/dist/src/core/agent/run-agent.d.ts.map +1 -1
  34. package/dist/src/core/agent/run-agent.js +136 -28
  35. package/dist/src/core/agent/run-agent.js.map +1 -1
  36. package/dist/src/core/agent/tool-dispatch.d.ts +2 -0
  37. package/dist/src/core/agent/tool-dispatch.d.ts.map +1 -1
  38. package/dist/src/core/agent/tool-dispatch.js +8 -7
  39. package/dist/src/core/agent/tool-dispatch.js.map +1 -1
  40. package/dist/src/core/chat/conversation-lines.d.ts.map +1 -1
  41. package/dist/src/core/chat/conversation-lines.js +1 -26
  42. package/dist/src/core/chat/conversation-lines.js.map +1 -1
  43. package/dist/src/core/chat/session-lease.d.ts +4 -0
  44. package/dist/src/core/chat/session-lease.d.ts.map +1 -1
  45. package/dist/src/core/chat/session-lease.js +29 -1
  46. package/dist/src/core/chat/session-lease.js.map +1 -1
  47. package/dist/src/core/chat/session-submit.d.ts +2 -0
  48. package/dist/src/core/chat/session-submit.d.ts.map +1 -1
  49. package/dist/src/core/chat/session-submit.js +120 -15
  50. package/dist/src/core/chat/session-submit.js.map +1 -1
  51. package/dist/src/core/chat/trace-summary.d.ts.map +1 -1
  52. package/dist/src/core/chat/trace-summary.js +10 -0
  53. package/dist/src/core/chat/trace-summary.js.map +1 -1
  54. package/dist/src/core/memory/catalog.d.ts +46 -0
  55. package/dist/src/core/memory/catalog.d.ts.map +1 -0
  56. package/dist/src/core/memory/catalog.js +230 -0
  57. package/dist/src/core/memory/catalog.js.map +1 -0
  58. package/dist/src/core/memory/domain-prompt.d.ts +2 -0
  59. package/dist/src/core/memory/domain-prompt.d.ts.map +1 -0
  60. package/dist/src/core/memory/domain-prompt.js +35 -0
  61. package/dist/src/core/memory/domain-prompt.js.map +1 -0
  62. package/dist/src/core/memory/maintainer-tools.d.ts +5 -0
  63. package/dist/src/core/memory/maintainer-tools.d.ts.map +1 -0
  64. package/dist/src/core/memory/maintainer-tools.js +10 -0
  65. package/dist/src/core/memory/maintainer-tools.js.map +1 -0
  66. package/dist/src/core/memory/maintainer.d.ts +45 -0
  67. package/dist/src/core/memory/maintainer.d.ts.map +1 -0
  68. package/dist/src/core/memory/maintainer.js +204 -0
  69. package/dist/src/core/memory/maintainer.js.map +1 -0
  70. package/dist/src/core/memory/maintenance-integration.d.ts +20 -0
  71. package/dist/src/core/memory/maintenance-integration.d.ts.map +1 -0
  72. package/dist/src/core/memory/maintenance-integration.js +189 -0
  73. package/dist/src/core/memory/maintenance-integration.js.map +1 -0
  74. package/dist/src/core/memory/templates.d.ts +9 -0
  75. package/dist/src/core/memory/templates.d.ts.map +1 -0
  76. package/dist/src/core/memory/templates.js +32 -0
  77. package/dist/src/core/memory/templates.js.map +1 -0
  78. package/dist/src/core/memory/validation.d.ts +39 -0
  79. package/dist/src/core/memory/validation.d.ts.map +1 -0
  80. package/dist/src/core/memory/validation.js +94 -0
  81. package/dist/src/core/memory/validation.js.map +1 -0
  82. package/dist/src/core/memory/visibility.d.ts +42 -0
  83. package/dist/src/core/memory/visibility.d.ts.map +1 -0
  84. package/dist/src/core/memory/visibility.js +156 -0
  85. package/dist/src/core/memory/visibility.js.map +1 -0
  86. package/dist/src/core/prompts/system-prompt.d.ts.map +1 -1
  87. package/dist/src/core/prompts/system-prompt.js +0 -10
  88. package/dist/src/core/prompts/system-prompt.js.map +1 -1
  89. package/dist/src/core/review/diff-domain.d.ts +24 -0
  90. package/dist/src/core/review/diff-domain.d.ts.map +1 -0
  91. package/dist/src/core/review/diff-domain.js +134 -0
  92. package/dist/src/core/review/diff-domain.js.map +1 -0
  93. package/dist/src/core/runtime/agent-loop.d.ts.map +1 -1
  94. package/dist/src/core/runtime/agent-loop.js +1 -0
  95. package/dist/src/core/runtime/agent-loop.js.map +1 -1
  96. package/dist/src/core/runtime/daemon-registry.d.ts +6 -1
  97. package/dist/src/core/runtime/daemon-registry.d.ts.map +1 -1
  98. package/dist/src/core/runtime/daemon-registry.js +32 -5
  99. package/dist/src/core/runtime/daemon-registry.js.map +1 -1
  100. package/dist/src/core/runtime/default-tools.d.ts +1 -0
  101. package/dist/src/core/runtime/default-tools.d.ts.map +1 -1
  102. package/dist/src/core/runtime/default-tools.js +33 -13
  103. package/dist/src/core/runtime/default-tools.js.map +1 -1
  104. package/dist/src/core/runtime/heartbeat.d.ts.map +1 -1
  105. package/dist/src/core/runtime/heartbeat.js +9 -2
  106. package/dist/src/core/runtime/heartbeat.js.map +1 -1
  107. package/dist/src/core/runtime/runtime-hosts.js +1 -1
  108. package/dist/src/core/runtime/runtime-hosts.js.map +1 -1
  109. package/dist/src/core/runtime/workspaces.d.ts +7 -0
  110. package/dist/src/core/runtime/workspaces.d.ts.map +1 -1
  111. package/dist/src/core/runtime/workspaces.js +31 -2
  112. package/dist/src/core/runtime/workspaces.js.map +1 -1
  113. package/dist/src/core/tools/edit-file.d.ts +4 -0
  114. package/dist/src/core/tools/edit-file.d.ts.map +1 -1
  115. package/dist/src/core/tools/edit-file.js +48 -43
  116. package/dist/src/core/tools/edit-file.js.map +1 -1
  117. package/dist/src/core/tools/file-edit-core.d.ts +1 -0
  118. package/dist/src/core/tools/file-edit-core.d.ts.map +1 -1
  119. package/dist/src/core/tools/file-edit-core.js +10 -0
  120. package/dist/src/core/tools/file-edit-core.js.map +1 -1
  121. package/dist/src/core/tools/list-files.d.ts +4 -0
  122. package/dist/src/core/tools/list-files.d.ts.map +1 -1
  123. package/dist/src/core/tools/list-files.js +34 -29
  124. package/dist/src/core/tools/list-files.js.map +1 -1
  125. package/dist/src/core/tools/memory-checkpoint.d.ts +8 -0
  126. package/dist/src/core/tools/memory-checkpoint.d.ts.map +1 -0
  127. package/dist/src/core/tools/memory-checkpoint.js +131 -0
  128. package/dist/src/core/tools/memory-checkpoint.js.map +1 -0
  129. package/dist/src/core/tools/memory-notes.d.ts.map +1 -1
  130. package/dist/src/core/tools/memory-notes.js +4 -3
  131. package/dist/src/core/tools/memory-notes.js.map +1 -1
  132. package/dist/src/core/tools/read-file.d.ts +4 -0
  133. package/dist/src/core/tools/read-file.d.ts.map +1 -1
  134. package/dist/src/core/tools/read-file.js +50 -45
  135. package/dist/src/core/tools/read-file.js.map +1 -1
  136. package/dist/src/core/tools/record-knowledge.d.ts +9 -0
  137. package/dist/src/core/tools/record-knowledge.d.ts.map +1 -0
  138. package/dist/src/core/tools/record-knowledge.js +177 -0
  139. package/dist/src/core/tools/record-knowledge.js.map +1 -0
  140. package/dist/src/core/tools/run-shell.d.ts +2 -0
  141. package/dist/src/core/tools/run-shell.d.ts.map +1 -1
  142. package/dist/src/core/tools/run-shell.js +3 -0
  143. package/dist/src/core/tools/run-shell.js.map +1 -1
  144. package/dist/src/core/tools/search-files.d.ts +1 -0
  145. package/dist/src/core/tools/search-files.d.ts.map +1 -1
  146. package/dist/src/core/tools/search-files.js +4 -2
  147. package/dist/src/core/tools/search-files.js.map +1 -1
  148. package/dist/src/core/tools/view-image.d.ts +1 -0
  149. package/dist/src/core/tools/view-image.d.ts.map +1 -1
  150. package/dist/src/core/tools/view-image.js +2 -1
  151. package/dist/src/core/tools/view-image.js.map +1 -1
  152. package/dist/src/core/types.d.ts +33 -0
  153. package/dist/src/core/types.d.ts.map +1 -1
  154. package/dist/src/index.d.ts +13 -0
  155. package/dist/src/index.d.ts.map +1 -1
  156. package/dist/src/index.js +8 -0
  157. package/dist/src/index.js.map +1 -1
  158. package/dist/src/server/app.d.ts.map +1 -1
  159. package/dist/src/server/app.js +1 -1
  160. package/dist/src/server/app.js.map +1 -1
  161. package/dist/src/server/features/control-plane/router.d.ts +78 -1
  162. package/dist/src/server/features/control-plane/router.d.ts.map +1 -1
  163. package/dist/src/server/features/control-plane/router.js +87 -2
  164. package/dist/src/server/features/control-plane/router.js.map +1 -1
  165. package/dist/src/server/features/control-plane/services/ask.d.ts.map +1 -1
  166. package/dist/src/server/features/control-plane/services/ask.js +23 -5
  167. package/dist/src/server/features/control-plane/services/ask.js.map +1 -1
  168. package/dist/src/server/features/control-plane/services/chat-sessions.d.ts +2 -0
  169. package/dist/src/server/features/control-plane/services/chat-sessions.d.ts.map +1 -1
  170. package/dist/src/server/features/control-plane/services/chat-sessions.js +69 -0
  171. package/dist/src/server/features/control-plane/services/chat-sessions.js.map +1 -1
  172. package/dist/src/server/features/control-plane/services/control-plane-state.d.ts.map +1 -1
  173. package/dist/src/server/features/control-plane/services/control-plane-state.js +26 -1
  174. package/dist/src/server/features/control-plane/services/control-plane-state.js.map +1 -1
  175. package/dist/src/server/features/control-plane/services/memory.d.ts +22 -0
  176. package/dist/src/server/features/control-plane/services/memory.d.ts.map +1 -0
  177. package/dist/src/server/features/control-plane/services/memory.js +36 -0
  178. package/dist/src/server/features/control-plane/services/memory.js.map +1 -0
  179. package/dist/src/server/features/control-plane/services/workspace-diff.d.ts +4 -0
  180. package/dist/src/server/features/control-plane/services/workspace-diff.d.ts.map +1 -0
  181. package/dist/src/server/features/control-plane/services/workspace-diff.js +258 -0
  182. package/dist/src/server/features/control-plane/services/workspace-diff.js.map +1 -0
  183. package/dist/src/server/features/control-plane/services/workspace-files.d.ts +18 -0
  184. package/dist/src/server/features/control-plane/services/workspace-files.d.ts.map +1 -1
  185. package/dist/src/server/features/control-plane/services/workspace-files.js +68 -2
  186. package/dist/src/server/features/control-plane/services/workspace-files.js.map +1 -1
  187. package/dist/src/server/features/control-plane/types.d.ts +38 -0
  188. package/dist/src/server/features/control-plane/types.d.ts.map +1 -1
  189. package/dist/src/server/index.d.ts.map +1 -1
  190. package/dist/src/server/index.js +1 -0
  191. package/dist/src/server/index.js.map +1 -1
  192. package/dist/src/server/router.d.ts +76 -0
  193. package/dist/src/server/router.d.ts.map +1 -1
  194. package/dist/src/web/assets/index-BKSxomk7.js +55 -0
  195. package/dist/src/web/assets/index-Bl3oDytR.css +2 -0
  196. package/dist/src/web/index.html +2 -2
  197. package/package.json +18 -2
  198. package/dist/src/web/assets/index-COAJyPuH.css +0 -2
  199. package/dist/src/web/assets/index-DxGlp0Wk.js +0 -52
@@ -1,5 +1,7 @@
1
1
  import { join } from 'node:path';
2
- import { createDefaultAgentTools, createLlmAdapter, DEFAULT_OPENAI_MODEL, inferProviderFromModel, runAgentLoop, } from '../../index.js';
2
+ import { readFileSync, writeFileSync } from 'node:fs';
3
+ import { appendMemoryCatalogSystemContext, createDefaultAgentTools, createLlmAdapter, DEFAULT_OPENAI_MODEL, inferProviderFromModel, runAgentLoop, } from '../../index.js';
4
+ import { runMaintenanceForRecordedCandidates } from '../memory/maintenance-integration.js';
3
5
  import { buildCompactionRunningContext, compactChatHistoryWithArchive, estimateChatHistoryTokens } from './compaction.js';
4
6
  import { buildConversationMessages } from './conversation-lines.js';
5
7
  import { formatChatFailureMessage } from './failure-messages.js';
@@ -32,11 +34,16 @@ export async function submitChatSessionPrompt(args) {
32
34
  const leasedSession = touchSession(acquireSessionLease(session, leaseOwner));
33
35
  saveChatSessions(args.sessionStoragePath, sessions.map((candidate) => candidate.id === session.id ? leasedSession : candidate));
34
36
  const llm = createLlmAdapter({ model, apiKey });
37
+ const memoryDir = join(args.stateRoot, 'memory');
38
+ const systemContext = appendMemoryCatalogSystemContext({
39
+ systemContext: args.systemContext,
40
+ memoryRoot: memoryDir,
41
+ });
35
42
  const tools = createDefaultAgentTools({
36
43
  model,
37
44
  apiKey,
38
45
  workspaceRoot: args.workspaceRoot,
39
- memoryDir: join(args.stateRoot, 'memory'),
46
+ memoryDir,
40
47
  searchIgnoreDirs: [],
41
48
  includePlanTool: true,
42
49
  });
@@ -48,6 +55,7 @@ export async function submitChatSessionPrompt(args) {
48
55
  stateRoot: args.stateRoot,
49
56
  toolNames: tools.map((tool) => tool.name),
50
57
  goal: args.prompt,
58
+ systemContext,
51
59
  onStatusChange: (event) => {
52
60
  args.onCompactionStatus?.(event);
53
61
  if (event.status === 'running') {
@@ -83,23 +91,47 @@ export async function submitChatSessionPrompt(args) {
83
91
  apiKey,
84
92
  workspaceRoot: args.workspaceRoot,
85
93
  stateDir: args.stateRoot,
86
- memoryDir: join(args.stateRoot, 'memory'),
94
+ memoryDir,
87
95
  llm,
88
96
  tools,
89
97
  includeDefaultTools: false,
90
98
  history: preflightSession.history,
99
+ systemContext,
91
100
  onEvent: args.onEvent,
92
101
  approveToolCall: args.approveToolCall,
93
102
  abortSignal: args.abortSignal,
94
103
  });
104
+ const maintenanceMode = args.memoryMaintenanceMode ?? 'background';
105
+ const inlineMaintenance = maintenanceMode === 'inline' ?
106
+ await runMaintenanceForRecordedCandidates({
107
+ memoryRoot: memoryDir,
108
+ llm,
109
+ source: `chat session ${session.id}`,
110
+ trace: result.trace,
111
+ maxSteps: 20,
112
+ onTraceEvent: (event) => args.onEvent?.({ type: 'trace', runId: result.state.runId, event, timestamp: new Date().toISOString() }),
113
+ })
114
+ : undefined;
115
+ const resultTrace = inlineMaintenance && inlineMaintenance.events.length > 0 ?
116
+ [...result.trace, ...inlineMaintenance.events]
117
+ : result.trace;
118
+ const resultForPersistence = {
119
+ ...result,
120
+ trace: resultTrace,
121
+ state: {
122
+ ...result.state,
123
+ trace: resultTrace,
124
+ },
125
+ };
95
126
  const compacted = await compactChatHistoryWithArchive({
96
- history: result.transcript,
127
+ history: resultForPersistence.transcript,
97
128
  model,
98
129
  sessionId: session.id,
99
130
  stateRoot: args.stateRoot,
100
- usage: result.usage,
131
+ usage: resultForPersistence.usage,
101
132
  toolNames: tools.map((tool) => tool.name),
102
133
  goal: args.prompt,
134
+ systemContext,
103
135
  onStatusChange: (event) => {
104
136
  args.onCompactionStatus?.(event);
105
137
  if (event.status === 'running') {
@@ -107,7 +139,7 @@ export async function submitChatSessionPrompt(args) {
107
139
  ...preflightSession,
108
140
  history: result.transcript,
109
141
  context: buildCompactionRunningContext({
110
- history: result.transcript,
142
+ history: resultForPersistence.transcript,
111
143
  previous: preflightSession.context,
112
144
  archiveCount: preflightSession.archives?.length,
113
145
  currentSummaryPath: preflightSession.context?.currentSummaryPath,
@@ -118,22 +150,22 @@ export async function submitChatSessionPrompt(args) {
118
150
  }
119
151
  },
120
152
  });
121
- const traceFile = saveTrace(join(args.stateRoot, 'traces'), result.trace);
153
+ const traceFile = saveTrace(join(args.stateRoot, 'traces'), resultForPersistence.trace);
122
154
  const nextTurn = {
123
155
  id: `server-turn-${Date.now()}`,
124
156
  prompt: args.prompt,
125
- outcome: result.outcome,
126
- summary: result.summary,
127
- steps: countAssistantSteps(result.trace),
157
+ outcome: resultForPersistence.outcome,
158
+ summary: resultForPersistence.summary,
159
+ steps: countAssistantSteps(resultForPersistence.trace),
128
160
  traceFile,
129
- events: summarizeTrace(result.trace),
161
+ events: summarizeTrace(resultForPersistence.trace),
130
162
  };
131
- const formattedSummary = result.outcome === 'error' ?
132
- formatChatFailureMessage(result.summary, {
163
+ const formattedSummary = resultForPersistence.outcome === 'error' ?
164
+ formatChatFailureMessage(resultForPersistence.summary, {
133
165
  model,
134
166
  estimatedHistoryTokens: estimateChatHistoryTokens(session.history),
135
167
  })
136
- : result.summary;
168
+ : resultForPersistence.summary;
137
169
  const updatedSession = touchSession({
138
170
  ...preflightSession,
139
171
  lastContinuePrompt: args.prompt,
@@ -146,8 +178,21 @@ export async function submitChatSessionPrompt(args) {
146
178
  });
147
179
  const nextSessions = sessions.map((candidate) => candidate.id === session.id ? updatedSession : candidate);
148
180
  saveChatSessions(args.sessionStoragePath, nextSessions);
181
+ if (maintenanceMode === 'background') {
182
+ scheduleBackgroundMemoryMaintenance({
183
+ memoryRoot: memoryDir,
184
+ llm,
185
+ source: `chat session ${session.id}`,
186
+ trace: result.trace,
187
+ traceFile,
188
+ sessionStoragePath: args.sessionStoragePath,
189
+ sessionId: session.id,
190
+ runId: result.state?.runId ?? `session-${session.id}`,
191
+ onEvent: args.onEvent,
192
+ });
193
+ }
149
194
  return {
150
- outcome: result.outcome,
195
+ outcome: resultForPersistence.outcome,
151
196
  summary: formattedSummary,
152
197
  session: updatedSession,
153
198
  };
@@ -156,6 +201,66 @@ export async function submitChatSessionPrompt(args) {
156
201
  clearChatSessionLease(args.sessionStoragePath, session.id, leaseOwner);
157
202
  }
158
203
  }
204
+ function scheduleBackgroundMemoryMaintenance(args) {
205
+ void (async () => {
206
+ const maintenance = await runMaintenanceForRecordedCandidates({
207
+ memoryRoot: args.memoryRoot,
208
+ llm: args.llm,
209
+ source: args.source,
210
+ trace: args.trace,
211
+ maxSteps: 20,
212
+ onTraceEvent: (event) => args.onEvent?.({ type: 'trace', runId: args.runId, event, timestamp: new Date().toISOString() }),
213
+ });
214
+ if (maintenance.events.length === 0) {
215
+ return;
216
+ }
217
+ const currentTrace = readTraceEvents(args.traceFile);
218
+ const nextTrace = [...currentTrace, ...maintenance.events];
219
+ writeFileSync(args.traceFile, `${JSON.stringify(nextTrace, null, 2)}\n`, 'utf8');
220
+ const sessions = loadChatSessions(args.sessionStoragePath, true);
221
+ const nextSessions = sessions.map((session) => {
222
+ if (session.id !== args.sessionId) {
223
+ return session;
224
+ }
225
+ return touchSession({
226
+ ...session,
227
+ turns: session.turns.map((turn, index) => (index === session.turns.length - 1 ?
228
+ {
229
+ ...turn,
230
+ events: summarizeTrace(nextTrace),
231
+ }
232
+ : turn)),
233
+ });
234
+ });
235
+ saveChatSessions(args.sessionStoragePath, nextSessions);
236
+ })().catch((error) => {
237
+ args.onEvent?.({
238
+ type: 'trace',
239
+ runId: args.runId,
240
+ event: {
241
+ type: 'memory.maintenance_failed',
242
+ runId: `memory-run-${Date.now()}`,
243
+ error: error instanceof Error ? error.message : String(error),
244
+ candidateIds: [],
245
+ step: nextTraceStep(args.trace),
246
+ timestamp: new Date().toISOString(),
247
+ },
248
+ timestamp: new Date().toISOString(),
249
+ });
250
+ });
251
+ }
252
+ function readTraceEvents(path) {
253
+ try {
254
+ const parsed = JSON.parse(readFileSync(path, 'utf8'));
255
+ return Array.isArray(parsed) ? parsed : [];
256
+ }
257
+ catch {
258
+ return [];
259
+ }
260
+ }
261
+ function nextTraceStep(trace) {
262
+ return trace.reduce((max, event) => 'step' in event ? Math.max(max, event.step) : max, 0) + 1;
263
+ }
159
264
  export function clearChatSessionLease(sessionStoragePath, sessionId, owner) {
160
265
  const sessions = loadChatSessions(sessionStoragePath, true);
161
266
  const session = sessions.find((candidate) => candidate.id === sessionId);
@@ -1 +1 @@
1
- {"version":3,"file":"session-submit.js","sourceRoot":"","sources":["../../../../src/core/chat/session-submit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-submit.js","sourceRoot":"","sources":["../../../../src/core/chat/session-submit.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"trace-summary.d.ts","sourceRoot":"","sources":["../../../../src/core/chat/trace-summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAKjD,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,CAgC5D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAE/D"}
1
+ {"version":3,"file":"trace-summary.d.ts","sourceRoot":"","sources":["../../../../src/core/chat/trace-summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAKjD,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,CA0C5D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAE/D"}
@@ -26,6 +26,16 @@ export function summarizeTrace(trace) {
26
26
  return [
27
27
  `tool result ${event.tool}: ${event.result.ok ? 'ok' : event.result.error ?? 'error'}`,
28
28
  ];
29
+ case 'memory.candidate_recorded':
30
+ return [`memory candidate recorded: ${event.candidateId}`];
31
+ case 'memory.checkpoint_skipped':
32
+ return [`memory checkpoint skipped: ${truncate(event.rationale, 100)}`];
33
+ case 'memory.maintenance_started':
34
+ return [`memory maintenance started: ${event.candidateIds.join(', ')}`];
35
+ case 'memory.maintenance_finished':
36
+ return [`memory maintenance finished: ${event.outcome}`];
37
+ case 'memory.maintenance_failed':
38
+ return [`memory maintenance failed: ${event.error}`];
29
39
  case 'run.finished':
30
40
  return [`run finished: ${event.outcome}`];
31
41
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"trace-summary.js","sourceRoot":"","sources":["../../../../src/core/chat/trace-summary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trace-summary.js","sourceRoot":"","sources":["../../../../src/core/chat/trace-summary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ export declare const DEFAULT_MEMORY_ROOT_CATALOG_MAX_BYTES: number;
2
+ export declare const DEFAULT_MEMORY_ROOT_CATALOG_TARGET_BYTES: number;
3
+ export declare const DEFAULT_MEMORY_FOLDER_CATALOG_MAX_BYTES: number;
4
+ export declare const DEFAULT_MEMORY_FOLDER_CATALOG_TARGET_BYTES: number;
5
+ export type MemoryCategory = {
6
+ path: string;
7
+ title: string;
8
+ purpose: string;
9
+ readWhen: string;
10
+ };
11
+ export type BootstrapMemoryWorkspaceResult = {
12
+ memoryRoot: string;
13
+ createdPaths: string[];
14
+ };
15
+ export type MemoryCatalogLoadResult = {
16
+ memoryRoot: string;
17
+ catalogPath: string;
18
+ exists: boolean;
19
+ content: string;
20
+ truncated: boolean;
21
+ originalBytes: number;
22
+ maxBytes: number;
23
+ };
24
+ export type MemoryCatalogShapeValidation = {
25
+ ok: boolean;
26
+ memoryRoot: string;
27
+ missing: string[];
28
+ };
29
+ export declare const DEFAULT_MEMORY_CATEGORIES: MemoryCategory[];
30
+ export declare function bootstrapMemoryWorkspace(options: {
31
+ memoryRoot: string;
32
+ }): BootstrapMemoryWorkspaceResult;
33
+ export declare function loadMemoryRootCatalog(options: {
34
+ memoryRoot: string;
35
+ maxBytes?: number;
36
+ }): MemoryCatalogLoadResult;
37
+ export declare function formatMemoryCatalogSystemContext(catalog: MemoryCatalogLoadResult): string;
38
+ export declare function appendMemoryCatalogSystemContext(options: {
39
+ systemContext?: string;
40
+ memoryRoot: string;
41
+ maxBytes?: number;
42
+ }): string;
43
+ export declare function validateMemoryCatalogShape(options: {
44
+ memoryRoot: string;
45
+ }): MemoryCatalogShapeValidation;
46
+ //# sourceMappingURL=catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../../src/core/memory/catalog.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qCAAqC,QAAY,CAAC;AAC/D,eAAO,MAAM,wCAAwC,QAAW,CAAC;AACjE,eAAO,MAAM,uCAAuC,QAAW,CAAC;AAChE,eAAO,MAAM,0CAA0C,QAAW,CAAC;AAEnE,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,EAAE,EAAE,OAAO,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,cAAc,EA2CrD,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,8BAA8B,CAiBxG;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,uBAAuB,CAgD1B;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,CAWzF;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,MAAM,CAMT;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,4BAA4B,CAYxG"}
@@ -0,0 +1,230 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
+ import { dirname, join, resolve } from 'node:path';
3
+ import { buildMemoryDomainSystemContext } from './domain-prompt.js';
4
+ export const DEFAULT_MEMORY_ROOT_CATALOG_MAX_BYTES = 12 * 1024;
5
+ export const DEFAULT_MEMORY_ROOT_CATALOG_TARGET_BYTES = 8 * 1024;
6
+ export const DEFAULT_MEMORY_FOLDER_CATALOG_MAX_BYTES = 8 * 1024;
7
+ export const DEFAULT_MEMORY_FOLDER_CATALOG_TARGET_BYTES = 5 * 1024;
8
+ export const DEFAULT_MEMORY_CATEGORIES = [
9
+ {
10
+ path: 'current-state',
11
+ title: 'Current State',
12
+ purpose: 'Fresh-session summary, active workstreams, blockers, and recent verified changes.',
13
+ readWhen: 'Start here for non-trivial work or when the user asks what is happening now.',
14
+ },
15
+ {
16
+ path: 'workflows',
17
+ title: 'Workflows',
18
+ purpose: 'Procedures for planning, implementation, review, release, incident, and support work.',
19
+ readWhen: 'Use when the task is process-heavy or the user asks you to follow an established workflow.',
20
+ },
21
+ {
22
+ path: 'preferences',
23
+ title: 'Preferences',
24
+ purpose: 'User or team preferences that should shape communication, code style, risk tolerance, and review behavior.',
25
+ readWhen: 'Use before making broad implementation, design, communication, or review choices.',
26
+ },
27
+ {
28
+ path: 'domain',
29
+ title: 'Domain',
30
+ purpose: 'Durable project, product, architecture, service, data, or business-domain knowledge.',
31
+ readWhen: 'Use before answering architecture questions or changing unfamiliar project behavior.',
32
+ },
33
+ {
34
+ path: 'operations',
35
+ title: 'Operations',
36
+ purpose: 'Commands, environments, deployment/release surfaces, operational status, credentials caveats, and safety notes.',
37
+ readWhen: 'Use before running verification, deployment, migration, incident, or environment-sensitive work.',
38
+ },
39
+ {
40
+ path: 'relationships',
41
+ title: 'Relationships',
42
+ purpose: 'People, teams, systems, projects, ownership, dependencies, escalation paths, and schedules.',
43
+ readWhen: 'Use when work depends on ownership, coordination, external systems, stakeholders, or timing.',
44
+ },
45
+ {
46
+ path: 'history',
47
+ title: 'History',
48
+ purpose: 'Completed decisions, incidents, investigations, migrations, and older context that explains current constraints.',
49
+ readWhen: 'Use when current behavior has historical causes or the task resembles a past incident or decision.',
50
+ },
51
+ ];
52
+ export function bootstrapMemoryWorkspace(options) {
53
+ const memoryRoot = resolve(options.memoryRoot);
54
+ const createdPaths = [];
55
+ mkdirSync(memoryRoot, { recursive: true });
56
+ writeIfMissing(join(memoryRoot, 'README.md'), createRootCatalogTemplate(), createdPaths, memoryRoot);
57
+ for (const category of DEFAULT_MEMORY_CATEGORIES) {
58
+ const categoryRoot = join(memoryRoot, category.path);
59
+ mkdirSync(categoryRoot, { recursive: true });
60
+ writeIfMissing(join(categoryRoot, 'README.md'), createFolderCatalogTemplate(category), createdPaths, memoryRoot);
61
+ }
62
+ mkdirSync(join(memoryRoot, '_maintenance'), { recursive: true });
63
+ writeIfMissing(join(memoryRoot, '_maintenance', 'runs.jsonl'), '', createdPaths, memoryRoot);
64
+ return { memoryRoot, createdPaths };
65
+ }
66
+ export function loadMemoryRootCatalog(options) {
67
+ const memoryRoot = resolve(options.memoryRoot);
68
+ const maxBytes = options.maxBytes ?? DEFAULT_MEMORY_ROOT_CATALOG_MAX_BYTES;
69
+ const catalogPath = join(memoryRoot, 'README.md');
70
+ if (!existsSync(catalogPath)) {
71
+ const content = [
72
+ 'No workspace memory catalog exists yet.',
73
+ '',
74
+ `Expected root catalog: ${catalogPath}`,
75
+ '',
76
+ 'Memory remains available through list/read/search tools when notes exist, but startup recall is not initialized.',
77
+ 'Initialize a cataloged memory workspace before relying on durable recall.',
78
+ ].join('\n');
79
+ return {
80
+ memoryRoot,
81
+ catalogPath,
82
+ exists: false,
83
+ content,
84
+ truncated: false,
85
+ originalBytes: Buffer.byteLength(content, 'utf8'),
86
+ maxBytes,
87
+ };
88
+ }
89
+ const original = readFileSync(catalogPath, 'utf8').trim();
90
+ const originalBytes = Buffer.byteLength(original, 'utf8');
91
+ const truncatedContent = truncateUtf8(original, maxBytes);
92
+ const truncated = originalBytes > Buffer.byteLength(truncatedContent, 'utf8');
93
+ const content = truncated ?
94
+ [
95
+ truncatedContent,
96
+ '',
97
+ `[Memory catalog truncated to ${maxBytes} bytes from ${originalBytes} bytes. Use read_memory_note on README.md for the full catalog.]`,
98
+ ].join('\n')
99
+ : original;
100
+ return {
101
+ memoryRoot,
102
+ catalogPath,
103
+ exists: true,
104
+ content,
105
+ truncated,
106
+ originalBytes,
107
+ maxBytes,
108
+ };
109
+ }
110
+ export function formatMemoryCatalogSystemContext(catalog) {
111
+ const header = catalog.exists ? '## Workspace Memory Catalog' : '## Workspace Memory Catalog Missing';
112
+ return [
113
+ header,
114
+ '',
115
+ `Source: ${catalog.catalogPath}`,
116
+ '',
117
+ catalog.content,
118
+ '',
119
+ 'Startup memory policy: this is the only memory document loaded automatically. Use memory tools to read relevant folder catalogs or notes before relying on deeper memory.',
120
+ ].join('\n');
121
+ }
122
+ export function appendMemoryCatalogSystemContext(options) {
123
+ const catalog = loadMemoryRootCatalog({ memoryRoot: options.memoryRoot, maxBytes: options.maxBytes });
124
+ const memoryContext = formatMemoryCatalogSystemContext(catalog);
125
+ const domainContext = buildMemoryDomainSystemContext();
126
+ const context = `${domainContext}\n\n${memoryContext}`;
127
+ return options.systemContext ? `${options.systemContext}\n\n${context}` : context;
128
+ }
129
+ export function validateMemoryCatalogShape(options) {
130
+ const memoryRoot = resolve(options.memoryRoot);
131
+ const requiredPaths = [
132
+ 'README.md',
133
+ ...DEFAULT_MEMORY_CATEGORIES.map((category) => join(category.path, 'README.md')),
134
+ ];
135
+ const missing = requiredPaths.filter((relativePath) => !existsSync(join(memoryRoot, relativePath)));
136
+ return {
137
+ ok: missing.length === 0,
138
+ memoryRoot,
139
+ missing,
140
+ };
141
+ }
142
+ function writeIfMissing(path, content, createdPaths, memoryRoot) {
143
+ if (existsSync(path)) {
144
+ return;
145
+ }
146
+ mkdirSync(dirname(path), { recursive: true });
147
+ writeFileSync(path, content, 'utf8');
148
+ createdPaths.push(toMemoryRelativePath(memoryRoot, path));
149
+ }
150
+ function createRootCatalogTemplate() {
151
+ return [
152
+ '# Workspace Memory',
153
+ '',
154
+ 'Purpose: durable workspace knowledge that helps future agents become operational quickly.',
155
+ '',
156
+ '## Authority And Freshness',
157
+ '',
158
+ '- Live workspace evidence wins over memory when they disagree.',
159
+ '- Current-state notes with recent verification are stronger than older focused notes.',
160
+ '- Historical notes explain decisions and incidents but may be stale.',
161
+ '- Important stale, disputed, or superseded facts should be marked rather than silently removed.',
162
+ '',
163
+ '## Fast Reading Path',
164
+ '',
165
+ '- New non-trivial task: read `current-state/README.md`, then the category that matches the task.',
166
+ '- Coding or architecture task: read `domain/README.md`, `operations/README.md`, and relevant preferences.',
167
+ '- Workflow, release, PR, or incident task: read `workflows/README.md`, `operations/README.md`, and relevant history.',
168
+ '- Coordination-heavy task: read `relationships/README.md`.',
169
+ '',
170
+ '## Category Index',
171
+ '',
172
+ ...DEFAULT_MEMORY_CATEGORIES.map((category) => `- [${category.title}](${category.path}/README.md): ${category.purpose}`),
173
+ '',
174
+ '## High-Value Notes',
175
+ '',
176
+ '- Add links here when notes become important enough for every fresh agent to notice.',
177
+ '',
178
+ '## Stale Or Disputed Notes',
179
+ '',
180
+ '- Add links here when a note should be treated with caution.',
181
+ '',
182
+ '## Maintenance Instructions',
183
+ '',
184
+ '- Keep this catalog short and navigable.',
185
+ '- Every folder that contains memory notes needs its own `README.md` catalog.',
186
+ '- Every durable note should be discoverable through this catalog or a folder catalog.',
187
+ '- Prefer updating existing notes over scattering small one-off notes.',
188
+ '- Do not store secrets.',
189
+ '',
190
+ ].join('\n');
191
+ }
192
+ function createFolderCatalogTemplate(category) {
193
+ return [
194
+ `# ${category.title}`,
195
+ '',
196
+ `Purpose: ${category.purpose}`,
197
+ '',
198
+ `When to read: ${category.readWhen}`,
199
+ '',
200
+ '## Notes Index',
201
+ '',
202
+ '- Add note links here as this folder grows.',
203
+ '',
204
+ '## Related Folders',
205
+ '',
206
+ '- `../README.md`: root memory catalog.',
207
+ '',
208
+ '## Maintenance Rules',
209
+ '',
210
+ '- Keep this catalog short enough to scan quickly.',
211
+ '- Add notes only when they preserve durable context for future work.',
212
+ '- Update this catalog whenever adding, renaming, or retiring notes in this folder.',
213
+ '- Mark stale, disputed, or superseded knowledge explicitly.',
214
+ '',
215
+ ].join('\n');
216
+ }
217
+ function truncateUtf8(value, maxBytes) {
218
+ if (maxBytes <= 0) {
219
+ return '';
220
+ }
221
+ const bytes = Buffer.from(value, 'utf8');
222
+ if (bytes.length <= maxBytes) {
223
+ return value;
224
+ }
225
+ return bytes.subarray(0, maxBytes).toString('utf8').replace(/\uFFFD+$/u, '').trimEnd();
226
+ }
227
+ function toMemoryRelativePath(memoryRoot, path) {
228
+ return path.slice(memoryRoot.length).replace(/^\/+/, '') || '.';
229
+ }
230
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../../src/core/memory/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAEpE,MAAM,CAAC,MAAM,qCAAqC,GAAG,EAAE,GAAG,IAAI,CAAC;AAC/D,MAAM,CAAC,MAAM,wCAAwC,GAAG,CAAC,GAAG,IAAI,CAAC;AACjE,MAAM,CAAC,MAAM,uCAAuC,GAAG,CAAC,GAAG,IAAI,CAAC;AAChE,MAAM,CAAC,MAAM,0CAA0C,GAAG,CAAC,GAAG,IAAI,CAAC;AA8BnE,MAAM,CAAC,MAAM,yBAAyB,GAAqB;IACzD;QACE,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,mFAAmF;QAC5F,QAAQ,EAAE,8EAA8E;KACzF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,uFAAuF;QAChG,QAAQ,EAAE,4FAA4F;KACvG;IACD;QACE,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,4GAA4G;QACrH,QAAQ,EAAE,mFAAmF;KAC9F;IACD;QACE,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,sFAAsF;QAC/F,QAAQ,EAAE,sFAAsF;KACjG;IACD;QACE,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,iHAAiH;QAC1H,QAAQ,EAAE,kGAAkG;KAC7G;IACD;QACE,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,6FAA6F;QACtG,QAAQ,EAAE,8FAA8F;KACzG;IACD;QACE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,kHAAkH;QAC3H,QAAQ,EAAE,oGAAoG;KAC/G;CACF,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAC,OAA+B;IACtE,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,yBAAyB,EAAE,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAErG,KAAK,MAAM,QAAQ,IAAI,yBAAyB,EAAE,CAAC;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrD,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,2BAA2B,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IACnH,CAAC;IAED,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAE7F,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAGrC;IACC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,qCAAqC,CAAC;IAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAElD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG;YACd,yCAAyC;YACzC,EAAE;YACF,0BAA0B,WAAW,EAAE;YACvC,EAAE;YACF,kHAAkH;YAClH,2EAA2E;SAC5E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,OAAO;YACL,UAAU;YACV,WAAW;YACX,MAAM,EAAE,KAAK;YACb,OAAO;YACP,SAAS,EAAE,KAAK;YAChB,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;YACjD,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1D,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1D,MAAM,gBAAgB,GAAG,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC9E,MAAM,OAAO,GACX,SAAS,CAAC,CAAC;QACT;YACE,gBAAgB;YAChB,EAAE;YACF,gCAAgC,QAAQ,eAAe,aAAa,kEAAkE;SACvI,CAAC,IAAI,CAAC,IAAI,CAAC;QACd,CAAC,CAAC,QAAQ,CAAC;IAEb,OAAO;QACL,UAAU;QACV,WAAW;QACX,MAAM,EAAE,IAAI;QACZ,OAAO;QACP,SAAS;QACT,aAAa;QACb,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,OAAgC;IAC/E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,qCAAqC,CAAC;IACtG,OAAO;QACL,MAAM;QACN,EAAE;QACF,WAAW,OAAO,CAAC,WAAW,EAAE;QAChC,EAAE;QACF,OAAO,CAAC,OAAO;QACf,EAAE;QACF,2KAA2K;KAC5K,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,OAIhD;IACC,MAAM,OAAO,GAAG,qBAAqB,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtG,MAAM,aAAa,GAAG,gCAAgC,CAAC,OAAO,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,8BAA8B,EAAE,CAAC;IACvD,MAAM,OAAO,GAAG,GAAG,aAAa,OAAO,aAAa,EAAE,CAAC;IACvD,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,aAAa,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAA+B;IACxE,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG;QACpB,WAAW;QACX,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;KACjF,CAAC;IACF,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACpG,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;QACxB,UAAU;QACV,OAAO;KACR,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,OAAe,EAAE,YAAsB,EAAE,UAAkB;IAC/F,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO;IACT,CAAC;IAED,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACrC,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,yBAAyB;IAChC,OAAO;QACL,oBAAoB;QACpB,EAAE;QACF,2FAA2F;QAC3F,EAAE;QACF,4BAA4B;QAC5B,EAAE;QACF,gEAAgE;QAChE,uFAAuF;QACvF,sEAAsE;QACtE,iGAAiG;QACjG,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,kGAAkG;QAClG,2GAA2G;QAC3G,sHAAsH;QACtH,4DAA4D;QAC5D,EAAE;QACF,mBAAmB;QACnB,EAAE;QACF,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,IAAI,gBAAgB,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxH,EAAE;QACF,qBAAqB;QACrB,EAAE;QACF,sFAAsF;QACtF,EAAE;QACF,4BAA4B;QAC5B,EAAE;QACF,8DAA8D;QAC9D,EAAE;QACF,6BAA6B;QAC7B,EAAE;QACF,0CAA0C;QAC1C,8EAA8E;QAC9E,uFAAuF;QACvF,uEAAuE;QACvE,yBAAyB;QACzB,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,2BAA2B,CAAC,QAAwB;IAC3D,OAAO;QACL,KAAK,QAAQ,CAAC,KAAK,EAAE;QACrB,EAAE;QACF,YAAY,QAAQ,CAAC,OAAO,EAAE;QAC9B,EAAE;QACF,iBAAiB,QAAQ,CAAC,QAAQ,EAAE;QACpC,EAAE;QACF,gBAAgB;QAChB,EAAE;QACF,6CAA6C;QAC7C,EAAE;QACF,oBAAoB;QACpB,EAAE;QACF,wCAAwC;QACxC,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,mDAAmD;QACnD,sEAAsE;QACtE,oFAAoF;QACpF,6DAA6D;QAC7D,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,QAAgB;IACnD,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACzC,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;AACzF,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAkB,EAAE,IAAY;IAC5D,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;AAClE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function buildMemoryDomainSystemContext(): string;
2
+ //# sourceMappingURL=domain-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain-prompt.d.ts","sourceRoot":"","sources":["../../../../src/core/memory/domain-prompt.ts"],"names":[],"mappings":"AAAA,wBAAgB,8BAA8B,IAAI,MAAM,CAiCvD"}
@@ -0,0 +1,35 @@
1
+ export function buildMemoryDomainSystemContext() {
2
+ return [
3
+ '## Heddle-Managed Memory Domain',
4
+ '',
5
+ 'Heddle-managed memory is the durable recall substrate for the agent. It is different from ordinary repository documentation.',
6
+ '',
7
+ '### Knowledge Surfaces',
8
+ '',
9
+ '- Repository docs such as README files, AGENTS.md, or docs/ are project-authored evidence. Use them for current product, code, and user-facing documentation facts.',
10
+ '- Heddle-managed memory under .heddle/memory is agent-maintained durable context. Use it for preferences, workflows, current-state handoff, operational conventions, relationships, history, and not-obvious knowledge that helps future sessions avoid rediscovery.',
11
+ '- Live workspace evidence wins when implementation facts conflict with memory. Memory is strongest for user/team preferences, recurring workflows, historical context, and operational knowledge that may not be obvious from code.',
12
+ '',
13
+ '### Retrieval Model',
14
+ '',
15
+ '- For preference-shaped, workflow-shaped, planning-style, ticket/format, review-style, coordination, or recurring operational questions, consult Heddle-managed memory before broad repository search.',
16
+ '- Follow the catalog path: read the root memory catalog, then the relevant folder README catalog, then focused notes listed there.',
17
+ '- Use search_memory_notes when the likely folder is unclear. Use list_memory_notes and read_memory_note when the catalog already points to a likely folder or note.',
18
+ '- Do not grep ordinary repo files first for durable preferences or workflow conventions unless memory has no relevant path or live repository evidence is needed.',
19
+ '',
20
+ '### Maintenance Model',
21
+ '',
22
+ '- Preserve the discovery path. Every durable memory note must be discoverable from the root README.md or a folder README.md.',
23
+ '- Prefer updating an existing cataloged note over scattering many small notes.',
24
+ '- Keep folder README.md files as indexes, not long-form dumps.',
25
+ '- Do not store secrets, speculative guesses, one-turn plans, or temporary command output.',
26
+ '',
27
+ '### Checkpoint Model',
28
+ '',
29
+ '- Before the final answer, run a quick memory checkpoint when memory_checkpoint is available.',
30
+ '- Record durable candidates when the user states a future preference/workflow/format or the turn uncovers stable reusable workspace knowledge.',
31
+ '- Skip one-off task details, duplicate facts, temporary plans, speculative guesses, and information that should remain only in the current transcript.',
32
+ '',
33
+ ].join('\n');
34
+ }
35
+ //# sourceMappingURL=domain-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain-prompt.js","sourceRoot":"","sources":["../../../../src/core/memory/domain-prompt.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,8BAA8B;IAC5C,OAAO;QACL,iCAAiC;QACjC,EAAE;QACF,8HAA8H;QAC9H,EAAE;QACF,wBAAwB;QACxB,EAAE;QACF,qKAAqK;QACrK,sQAAsQ;QACtQ,qOAAqO;QACrO,EAAE;QACF,qBAAqB;QACrB,EAAE;QACF,wMAAwM;QACxM,oIAAoI;QACpI,qKAAqK;QACrK,mKAAmK;QACnK,EAAE;QACF,uBAAuB;QACvB,EAAE;QACF,8HAA8H;QAC9H,gFAAgF;QAChF,gEAAgE;QAChE,2FAA2F;QAC3F,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,+FAA+F;QAC/F,gJAAgJ;QAChJ,wJAAwJ;QACxJ,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ToolDefinition } from '../types.js';
2
+ export declare function createMemoryMaintainerTools(options: {
3
+ memoryRoot: string;
4
+ }): ToolDefinition[];
5
+ //# sourceMappingURL=maintainer-tools.d.ts.map