@roackb2/heddle 0.0.36 → 0.0.38

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 (245) hide show
  1. package/README.md +2 -0
  2. package/dist/examples/repo-investigator.js +1 -2
  3. package/dist/examples/repo-investigator.js.map +1 -1
  4. package/dist/src/cli/ask.d.ts.map +1 -1
  5. package/dist/src/cli/ask.js +11 -0
  6. package/dist/src/cli/ask.js.map +1 -1
  7. package/dist/src/cli/chat/App.d.ts.map +1 -1
  8. package/dist/src/cli/chat/App.js +123 -93
  9. package/dist/src/cli/chat/App.js.map +1 -1
  10. package/dist/src/cli/chat/components/ModelPickerPanel.d.ts +2 -1
  11. package/dist/src/cli/chat/components/ModelPickerPanel.d.ts.map +1 -1
  12. package/dist/src/cli/chat/components/ModelPickerPanel.js +8 -4
  13. package/dist/src/cli/chat/components/ModelPickerPanel.js.map +1 -1
  14. package/dist/src/cli/chat/components/PromptInput.d.ts +5 -0
  15. package/dist/src/cli/chat/components/PromptInput.d.ts.map +1 -1
  16. package/dist/src/cli/chat/components/PromptInput.js +131 -85
  17. package/dist/src/cli/chat/components/PromptInput.js.map +1 -1
  18. package/dist/src/cli/chat/debug/tui-debug-snapshot.d.ts +2 -1
  19. package/dist/src/cli/chat/debug/tui-debug-snapshot.d.ts.map +1 -1
  20. package/dist/src/cli/chat/debug/tui-debug-snapshot.js +14 -1
  21. package/dist/src/cli/chat/debug/tui-debug-snapshot.js.map +1 -1
  22. package/dist/src/cli/chat/hooks/tui-agent-turn-lifecycle.d.ts +6 -0
  23. package/dist/src/cli/chat/hooks/tui-agent-turn-lifecycle.d.ts.map +1 -0
  24. package/dist/src/cli/chat/hooks/tui-agent-turn-lifecycle.js +38 -0
  25. package/dist/src/cli/chat/hooks/tui-agent-turn-lifecycle.js.map +1 -0
  26. package/dist/src/cli/chat/hooks/tui-agent-turn-result.d.ts +48 -0
  27. package/dist/src/cli/chat/hooks/tui-agent-turn-result.d.ts.map +1 -0
  28. package/dist/src/cli/chat/hooks/tui-agent-turn-result.js +171 -0
  29. package/dist/src/cli/chat/hooks/tui-agent-turn-result.js.map +1 -0
  30. package/dist/src/cli/chat/hooks/tui-compaction-status.d.ts +24 -0
  31. package/dist/src/cli/chat/hooks/tui-compaction-status.d.ts.map +1 -0
  32. package/dist/src/cli/chat/hooks/tui-compaction-status.js +65 -0
  33. package/dist/src/cli/chat/hooks/tui-compaction-status.js.map +1 -0
  34. package/dist/src/cli/chat/hooks/tui-direct-shell-result.d.ts +28 -0
  35. package/dist/src/cli/chat/hooks/tui-direct-shell-result.d.ts.map +1 -0
  36. package/dist/src/cli/chat/hooks/tui-direct-shell-result.js +41 -0
  37. package/dist/src/cli/chat/hooks/tui-direct-shell-result.js.map +1 -0
  38. package/dist/src/cli/chat/hooks/tui-direct-shell.d.ts +22 -0
  39. package/dist/src/cli/chat/hooks/tui-direct-shell.d.ts.map +1 -0
  40. package/dist/src/cli/chat/hooks/tui-direct-shell.js +127 -0
  41. package/dist/src/cli/chat/hooks/tui-direct-shell.js.map +1 -0
  42. package/dist/src/cli/chat/hooks/tui-drift-observer.d.ts +13 -0
  43. package/dist/src/cli/chat/hooks/tui-drift-observer.d.ts.map +1 -0
  44. package/dist/src/cli/chat/hooks/tui-drift-observer.js +36 -0
  45. package/dist/src/cli/chat/hooks/tui-drift-observer.js.map +1 -0
  46. package/dist/src/cli/chat/hooks/tui-ordinary-turn.d.ts +31 -0
  47. package/dist/src/cli/chat/hooks/tui-ordinary-turn.d.ts.map +1 -0
  48. package/dist/src/cli/chat/hooks/tui-ordinary-turn.js +82 -0
  49. package/dist/src/cli/chat/hooks/tui-ordinary-turn.js.map +1 -0
  50. package/dist/src/cli/chat/hooks/tui-run-loop-events.d.ts +23 -0
  51. package/dist/src/cli/chat/hooks/tui-run-loop-events.d.ts.map +1 -0
  52. package/dist/src/cli/chat/hooks/tui-run-loop-events.js +74 -0
  53. package/dist/src/cli/chat/hooks/tui-run-loop-events.js.map +1 -0
  54. package/dist/src/cli/chat/hooks/tui-tool-approval.d.ts +8 -0
  55. package/dist/src/cli/chat/hooks/tui-tool-approval.d.ts.map +1 -0
  56. package/dist/src/cli/chat/hooks/tui-tool-approval.js +37 -0
  57. package/dist/src/cli/chat/hooks/tui-tool-approval.js.map +1 -0
  58. package/dist/src/cli/chat/hooks/useAgentRun.d.ts +1 -1
  59. package/dist/src/cli/chat/hooks/useAgentRun.d.ts.map +1 -1
  60. package/dist/src/cli/chat/hooks/useAgentRun.js +59 -551
  61. package/dist/src/cli/chat/hooks/useAgentRun.js.map +1 -1
  62. package/dist/src/cli/chat/hooks/useApprovalFlow.d.ts.map +1 -1
  63. package/dist/src/cli/chat/hooks/useApprovalFlow.js +3 -3
  64. package/dist/src/cli/chat/hooks/useApprovalFlow.js.map +1 -1
  65. package/dist/src/cli/chat/hooks/useChatPickers.d.ts +6 -3
  66. package/dist/src/cli/chat/hooks/useChatPickers.d.ts.map +1 -1
  67. package/dist/src/cli/chat/hooks/useChatPickers.js +17 -4
  68. package/dist/src/cli/chat/hooks/useChatPickers.js.map +1 -1
  69. package/dist/src/cli/chat/hooks/useChatSessions.d.ts +1 -1
  70. package/dist/src/cli/chat/hooks/useChatSessions.d.ts.map +1 -1
  71. package/dist/src/cli/chat/hooks/useChatSessions.js +23 -20
  72. package/dist/src/cli/chat/hooks/useChatSessions.js.map +1 -1
  73. package/dist/src/cli/chat/hooks/useChatStatusSummary.d.ts +58 -0
  74. package/dist/src/cli/chat/hooks/useChatStatusSummary.d.ts.map +1 -0
  75. package/dist/src/cli/chat/hooks/useChatStatusSummary.js +85 -0
  76. package/dist/src/cli/chat/hooks/useChatStatusSummary.js.map +1 -0
  77. package/dist/src/cli/chat/hooks/usePromptSubmission.d.ts +2 -1
  78. package/dist/src/cli/chat/hooks/usePromptSubmission.d.ts.map +1 -1
  79. package/dist/src/cli/chat/hooks/usePromptSubmission.js +5 -1
  80. package/dist/src/cli/chat/hooks/usePromptSubmission.js.map +1 -1
  81. package/dist/src/cli/chat/state/local-commands.d.ts +2 -0
  82. package/dist/src/cli/chat/state/local-commands.d.ts.map +1 -1
  83. package/dist/src/cli/chat/state/local-commands.js +17 -3
  84. package/dist/src/cli/chat/state/local-commands.js.map +1 -1
  85. package/dist/src/cli/chat/submit.d.ts.map +1 -1
  86. package/dist/src/cli/chat/submit.js +13 -1
  87. package/dist/src/cli/chat/submit.js.map +1 -1
  88. package/dist/src/cli/chat/utils/format.d.ts.map +1 -1
  89. package/dist/src/cli/chat/utils/format.js +21 -0
  90. package/dist/src/cli/chat/utils/format.js.map +1 -1
  91. package/dist/src/cli/chat/utils/runtime.d.ts.map +1 -1
  92. package/dist/src/cli/chat/utils/runtime.js +5 -3
  93. package/dist/src/cli/chat/utils/runtime.js.map +1 -1
  94. package/dist/src/cli/eval/index.d.ts +24 -0
  95. package/dist/src/cli/eval/index.d.ts.map +1 -0
  96. package/dist/src/cli/eval/index.js +232 -0
  97. package/dist/src/cli/eval/index.js.map +1 -0
  98. package/dist/src/cli/main.js +25 -3
  99. package/dist/src/cli/main.js.map +1 -1
  100. package/dist/src/cli/remote/control-plane-client.d.ts +5 -1
  101. package/dist/src/cli/remote/control-plane-client.d.ts.map +1 -1
  102. package/dist/src/core/agent/mutation-tracking.d.ts +0 -7
  103. package/dist/src/core/agent/mutation-tracking.d.ts.map +1 -1
  104. package/dist/src/core/agent/mutation-tracking.js +5 -63
  105. package/dist/src/core/agent/mutation-tracking.js.map +1 -1
  106. package/dist/src/core/agent/post-mutation.d.ts +2 -2
  107. package/dist/src/core/agent/post-mutation.d.ts.map +1 -1
  108. package/dist/src/core/agent/post-mutation.js +5 -20
  109. package/dist/src/core/agent/post-mutation.js.map +1 -1
  110. package/dist/src/core/agent/progress-reminders.d.ts +1 -4
  111. package/dist/src/core/agent/progress-reminders.d.ts.map +1 -1
  112. package/dist/src/core/agent/progress-reminders.js +4 -56
  113. package/dist/src/core/agent/progress-reminders.js.map +1 -1
  114. package/dist/src/core/agent/run-agent.d.ts.map +1 -1
  115. package/dist/src/core/agent/run-agent.js +3 -103
  116. package/dist/src/core/agent/run-agent.js.map +1 -1
  117. package/dist/src/core/agent/tool-dispatch.js +3 -2
  118. package/dist/src/core/agent/tool-dispatch.js.map +1 -1
  119. package/dist/src/core/chat/ordinary-turn.d.ts +34 -0
  120. package/dist/src/core/chat/ordinary-turn.d.ts.map +1 -0
  121. package/dist/src/core/chat/ordinary-turn.js +274 -0
  122. package/dist/src/core/chat/ordinary-turn.js.map +1 -0
  123. package/dist/src/core/chat/session-submit.d.ts +4 -4
  124. package/dist/src/core/chat/session-submit.d.ts.map +1 -1
  125. package/dist/src/core/chat/session-submit.js +22 -282
  126. package/dist/src/core/chat/session-submit.js.map +1 -1
  127. package/dist/src/core/chat/session-title.d.ts +15 -0
  128. package/dist/src/core/chat/session-title.d.ts.map +1 -0
  129. package/dist/src/core/chat/session-title.js +17 -0
  130. package/dist/src/core/chat/session-title.js.map +1 -0
  131. package/dist/src/core/chat/session-turn-preflight.d.ts +37 -0
  132. package/dist/src/core/chat/session-turn-preflight.d.ts.map +1 -0
  133. package/dist/src/core/chat/session-turn-preflight.js +43 -0
  134. package/dist/src/core/chat/session-turn-preflight.js.map +1 -0
  135. package/dist/src/core/chat/session-turn-result.d.ts +36 -0
  136. package/dist/src/core/chat/session-turn-result.d.ts.map +1 -0
  137. package/dist/src/core/chat/session-turn-result.js +60 -0
  138. package/dist/src/core/chat/session-turn-result.js.map +1 -0
  139. package/dist/src/core/chat/tool-approval-host.d.ts +22 -0
  140. package/dist/src/core/chat/tool-approval-host.d.ts.map +1 -0
  141. package/dist/src/core/chat/tool-approval-host.js +14 -0
  142. package/dist/src/core/chat/tool-approval-host.js.map +1 -0
  143. package/dist/src/core/chat/turn-host.d.ts +25 -0
  144. package/dist/src/core/chat/turn-host.d.ts.map +1 -0
  145. package/dist/src/core/chat/turn-host.js +2 -0
  146. package/dist/src/core/chat/turn-host.js.map +1 -0
  147. package/dist/src/core/chat/types.d.ts +1 -0
  148. package/dist/src/core/chat/types.d.ts.map +1 -1
  149. package/dist/src/core/config.d.ts +1 -1
  150. package/dist/src/core/config.d.ts.map +1 -1
  151. package/dist/src/core/config.js +1 -1
  152. package/dist/src/core/config.js.map +1 -1
  153. package/dist/src/core/eval/agent-runner.d.ts +24 -0
  154. package/dist/src/core/eval/agent-runner.d.ts.map +1 -0
  155. package/dist/src/core/eval/agent-runner.js +151 -0
  156. package/dist/src/core/eval/agent-runner.js.map +1 -0
  157. package/dist/src/core/eval/case-loader.d.ts +7 -0
  158. package/dist/src/core/eval/case-loader.d.ts.map +1 -0
  159. package/dist/src/core/eval/case-loader.js +34 -0
  160. package/dist/src/core/eval/case-loader.js.map +1 -0
  161. package/dist/src/core/eval/check-runner.d.ts +8 -0
  162. package/dist/src/core/eval/check-runner.d.ts.map +1 -0
  163. package/dist/src/core/eval/check-runner.js +33 -0
  164. package/dist/src/core/eval/check-runner.js.map +1 -0
  165. package/dist/src/core/eval/cleanup.d.ts +20 -0
  166. package/dist/src/core/eval/cleanup.d.ts.map +1 -0
  167. package/dist/src/core/eval/cleanup.js +42 -0
  168. package/dist/src/core/eval/cleanup.js.map +1 -0
  169. package/dist/src/core/eval/git-artifacts.d.ts +26 -0
  170. package/dist/src/core/eval/git-artifacts.d.ts.map +1 -0
  171. package/dist/src/core/eval/git-artifacts.js +211 -0
  172. package/dist/src/core/eval/git-artifacts.js.map +1 -0
  173. package/dist/src/core/eval/process.d.ts +22 -0
  174. package/dist/src/core/eval/process.d.ts.map +1 -0
  175. package/dist/src/core/eval/process.js +65 -0
  176. package/dist/src/core/eval/process.js.map +1 -0
  177. package/dist/src/core/eval/progress.d.ts +28 -0
  178. package/dist/src/core/eval/progress.d.ts.map +1 -0
  179. package/dist/src/core/eval/progress.js +94 -0
  180. package/dist/src/core/eval/progress.js.map +1 -0
  181. package/dist/src/core/eval/report-writer.d.ts +7 -0
  182. package/dist/src/core/eval/report-writer.d.ts.map +1 -0
  183. package/dist/src/core/eval/report-writer.js +159 -0
  184. package/dist/src/core/eval/report-writer.js.map +1 -0
  185. package/dist/src/core/eval/schema.d.ts +206 -0
  186. package/dist/src/core/eval/schema.d.ts.map +1 -0
  187. package/dist/src/core/eval/schema.js +104 -0
  188. package/dist/src/core/eval/schema.js.map +1 -0
  189. package/dist/src/core/eval/trace-analyzer.d.ts +6 -0
  190. package/dist/src/core/eval/trace-analyzer.d.ts.map +1 -0
  191. package/dist/src/core/eval/trace-analyzer.js +106 -0
  192. package/dist/src/core/eval/trace-analyzer.js.map +1 -0
  193. package/dist/src/core/eval/workspace-fixture.d.ts +14 -0
  194. package/dist/src/core/eval/workspace-fixture.d.ts.map +1 -0
  195. package/dist/src/core/eval/workspace-fixture.js +235 -0
  196. package/dist/src/core/eval/workspace-fixture.js.map +1 -0
  197. package/dist/src/core/llm/model-policy.d.ts +26 -0
  198. package/dist/src/core/llm/model-policy.d.ts.map +1 -1
  199. package/dist/src/core/llm/model-policy.js +47 -0
  200. package/dist/src/core/llm/model-policy.js.map +1 -1
  201. package/dist/src/core/memory/domain-prompt.d.ts.map +1 -1
  202. package/dist/src/core/memory/domain-prompt.js +48 -40
  203. package/dist/src/core/memory/domain-prompt.js.map +1 -1
  204. package/dist/src/core/prompts/system-prompt.d.ts +1 -1
  205. package/dist/src/core/prompts/system-prompt.d.ts.map +1 -1
  206. package/dist/src/core/prompts/system-prompt.js +19 -100
  207. package/dist/src/core/prompts/system-prompt.js.map +1 -1
  208. package/dist/src/core/runtime/agent-loop.d.ts.map +1 -1
  209. package/dist/src/core/runtime/agent-loop.js +9 -3
  210. package/dist/src/core/runtime/agent-loop.js.map +1 -1
  211. package/dist/src/core/runtime/default-tools.d.ts.map +1 -1
  212. package/dist/src/core/runtime/default-tools.js +1 -2
  213. package/dist/src/core/runtime/default-tools.js.map +1 -1
  214. package/dist/src/core/tools/file-edit-core.d.ts.map +1 -1
  215. package/dist/src/core/tools/file-edit-core.js +21 -2
  216. package/dist/src/core/tools/file-edit-core.js.map +1 -1
  217. package/dist/src/index.d.ts +0 -1
  218. package/dist/src/index.d.ts.map +1 -1
  219. package/dist/src/index.js +0 -1
  220. package/dist/src/index.js.map +1 -1
  221. package/dist/src/server/features/control-plane/router.d.ts +5 -1
  222. package/dist/src/server/features/control-plane/router.d.ts.map +1 -1
  223. package/dist/src/server/features/control-plane/router.js +16 -2
  224. package/dist/src/server/features/control-plane/router.js.map +1 -1
  225. package/dist/src/server/features/control-plane/services/chat-session-events.d.ts +26 -0
  226. package/dist/src/server/features/control-plane/services/chat-session-events.d.ts.map +1 -0
  227. package/dist/src/server/features/control-plane/services/chat-session-events.js +61 -0
  228. package/dist/src/server/features/control-plane/services/chat-session-events.js.map +1 -0
  229. package/dist/src/server/features/control-plane/services/chat-sessions.d.ts +2 -1
  230. package/dist/src/server/features/control-plane/services/chat-sessions.d.ts.map +1 -1
  231. package/dist/src/server/features/control-plane/services/chat-sessions.js +30 -42
  232. package/dist/src/server/features/control-plane/services/chat-sessions.js.map +1 -1
  233. package/dist/src/server/router.d.ts +5 -1
  234. package/dist/src/server/router.d.ts.map +1 -1
  235. package/dist/src/web/assets/{MonacoDiffViewer-DM8Cy5Xf.js → MonacoDiffViewer-DP7GeCEC.js} +1 -1
  236. package/dist/src/web/assets/index-CYd4sslC.css +2 -0
  237. package/dist/src/web/assets/index-PUxjg447.js +56 -0
  238. package/dist/src/web/index.html +2 -2
  239. package/package.json +7 -2
  240. package/dist/src/core/tools/report-state.d.ts +0 -3
  241. package/dist/src/core/tools/report-state.d.ts.map +0 -1
  242. package/dist/src/core/tools/report-state.js +0 -63
  243. package/dist/src/core/tools/report-state.js.map +0 -1
  244. package/dist/src/web/assets/index-BEeN-RT5.css +0 -2
  245. package/dist/src/web/assets/index-BKDg9H_-.js +0 -56
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-analyzer.js","sourceRoot":"","sources":["../../../../src/core/eval/trace-analyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { EvalProgressReporter } from './progress.js';
2
+ import type { AgentEvalCase, EvalCheckResult, EvalRunResult } from './schema.js';
3
+ export type PreparedEvalWorkspace = {
4
+ workspaceRoot: string;
5
+ setupResults: EvalCheckResult[];
6
+ fixture: EvalRunResult['fixture'];
7
+ };
8
+ export declare function prepareEvalWorkspace(args: {
9
+ testCase: AgentEvalCase;
10
+ repoRoot: string;
11
+ workRoot?: string;
12
+ progress?: EvalProgressReporter;
13
+ }): Promise<PreparedEvalWorkspace>;
14
+ //# sourceMappingURL=workspace-fixture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-fixture.d.ts","sourceRoot":"","sources":["../../../../src/core/eval/workspace-fixture.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjF,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;CACnC,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA8BjC"}
@@ -0,0 +1,235 @@
1
+ import { appendFileSync, cpSync, existsSync, mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs';
2
+ import { dirname, join, resolve } from 'node:path';
3
+ import { tmpdir } from 'node:os';
4
+ import { runCommand, runShellCommand } from './process.js';
5
+ export async function prepareEvalWorkspace(args) {
6
+ const parent = args.workRoot ? resolve(args.workRoot) : mkdtempSync(join(tmpdir(), 'heddle-eval-'));
7
+ mkdirSync(parent, { recursive: true });
8
+ const workspaceRoot = join(parent, args.testCase.id);
9
+ const fixture = args.testCase.fixture;
10
+ if (fixture.type === 'inline') {
11
+ rmSync(workspaceRoot, { recursive: true, force: true });
12
+ }
13
+ const prepared = fixture.type === 'git-worktree' ?
14
+ await prepareGitWorktreeFixture({
15
+ repoRoot: args.repoRoot,
16
+ workspaceRoot,
17
+ testCase: args.testCase,
18
+ progress: args.progress,
19
+ })
20
+ : await prepareInlineFixture({
21
+ repoRoot: args.repoRoot,
22
+ workspaceRoot,
23
+ testCase: args.testCase,
24
+ progress: args.progress,
25
+ });
26
+ await copyAuthState({
27
+ repoRoot: args.repoRoot,
28
+ workspaceRoot,
29
+ });
30
+ return prepared;
31
+ }
32
+ async function prepareInlineFixture(args) {
33
+ mkdirSync(args.workspaceRoot, { recursive: true });
34
+ const setupResults = await applyEvalSetup({
35
+ workspaceRoot: args.workspaceRoot,
36
+ repoRoot: args.repoRoot,
37
+ testCase: args.testCase,
38
+ progress: args.progress,
39
+ });
40
+ const baselineCommit = await trackProgress(args.progress, {
41
+ phase: 'workspace.baseline',
42
+ message: 'commit inline fixture baseline',
43
+ run: () => initializeGitBaseline(args.workspaceRoot, args.testCase.setup.commitMessage ?? `Initial eval fixture for ${args.testCase.id}`),
44
+ });
45
+ return {
46
+ workspaceRoot: args.workspaceRoot,
47
+ setupResults,
48
+ fixture: {
49
+ type: 'inline',
50
+ baselineCommit,
51
+ },
52
+ };
53
+ }
54
+ async function prepareGitWorktreeFixture(args) {
55
+ const fixture = args.testCase.fixture;
56
+ if (fixture.type !== 'git-worktree') {
57
+ throw new Error(`Unsupported fixture type for git worktree setup: ${fixture.type}`);
58
+ }
59
+ const sourceRepo = resolve(args.repoRoot, fixture.repo);
60
+ const resolvedRef = await trackProgress(args.progress, {
61
+ phase: 'workspace.resolve-ref',
62
+ message: `resolve target ref ${fixture.ref}`,
63
+ run: () => resolveGitCommit(sourceRepo, fixture.ref),
64
+ });
65
+ await trackProgress(args.progress, {
66
+ phase: 'workspace.cleanup',
67
+ message: 'remove existing dogfood worktree if needed',
68
+ run: () => removeGitWorktree(sourceRepo, args.workspaceRoot),
69
+ });
70
+ await trackProgress(args.progress, {
71
+ phase: 'workspace.worktree',
72
+ message: `create pinned worktree at ${fixture.ref}`,
73
+ run: () => runRequiredGit(sourceRepo, ['worktree', 'add', '--detach', args.workspaceRoot, resolvedRef]),
74
+ });
75
+ const setupResults = await applyEvalSetup({
76
+ workspaceRoot: args.workspaceRoot,
77
+ repoRoot: args.repoRoot,
78
+ testCase: args.testCase,
79
+ progress: args.progress,
80
+ });
81
+ const baselineCommit = await hasGitChanges(args.workspaceRoot) ?
82
+ await trackProgress(args.progress, {
83
+ phase: 'workspace.baseline',
84
+ message: 'commit seeded eval baseline',
85
+ run: () => commitAll(args.workspaceRoot, args.testCase.setup.commitMessage ?? `Eval setup for ${args.testCase.id}`),
86
+ })
87
+ : resolvedRef;
88
+ return {
89
+ workspaceRoot: args.workspaceRoot,
90
+ setupResults,
91
+ fixture: {
92
+ type: 'git-worktree',
93
+ repo: sourceRepo,
94
+ ref: fixture.ref,
95
+ resolvedRef,
96
+ baselineCommit,
97
+ },
98
+ };
99
+ }
100
+ async function applyEvalSetup(args) {
101
+ for (const [sourceRelativePath, targetRelativePath] of Object.entries(args.testCase.setup.copyFiles ?? {})) {
102
+ const sourcePath = resolve(args.repoRoot, sourceRelativePath);
103
+ const targetPath = join(args.workspaceRoot, targetRelativePath);
104
+ mkdirSync(dirname(targetPath), { recursive: true });
105
+ cpSync(sourcePath, targetPath);
106
+ }
107
+ for (const [relativePath, content] of Object.entries(args.testCase.setup.files ?? {})) {
108
+ const path = join(args.workspaceRoot, relativePath);
109
+ mkdirSync(dirname(path), { recursive: true });
110
+ writeFileSync(path, content, 'utf8');
111
+ }
112
+ const setupResults = [];
113
+ for (const command of args.testCase.setup.commands ?? []) {
114
+ const name = command.name ?? command.command;
115
+ const result = await trackProgress(args.progress, {
116
+ phase: 'workspace.setup-command',
117
+ message: `run setup command: ${name}`,
118
+ heartbeatMessage: `still running setup command: ${name}`,
119
+ run: () => runShellCommand({
120
+ command: command.command,
121
+ cwd: args.workspaceRoot,
122
+ timeoutMs: command.timeoutMs,
123
+ }),
124
+ });
125
+ setupResults.push({
126
+ name,
127
+ command: command.command,
128
+ exitCode: result.exitCode,
129
+ stdout: result.stdout,
130
+ stderr: result.stderr,
131
+ durationMs: result.durationMs,
132
+ passed: result.exitCode === 0 && !result.timedOut,
133
+ timedOut: result.timedOut,
134
+ });
135
+ if (result.exitCode !== 0 || result.timedOut) {
136
+ throw new Error(`Eval setup command failed for ${args.testCase.id}: ${command.command}`);
137
+ }
138
+ }
139
+ return setupResults;
140
+ }
141
+ async function copyAuthState(args) {
142
+ const memorySource = join(args.repoRoot, '.heddle', 'auth.json');
143
+ const memoryTarget = join(args.workspaceRoot, '.heddle', 'auth.json');
144
+ if (existsSync(memorySource) && !existsSync(memoryTarget)) {
145
+ await excludeAuthStateFromGit(args.workspaceRoot);
146
+ mkdirSync(dirname(memoryTarget), { recursive: true });
147
+ cpSync(memorySource, memoryTarget);
148
+ }
149
+ }
150
+ async function excludeAuthStateFromGit(workspaceRoot) {
151
+ const result = await runCommand({
152
+ command: 'git',
153
+ args: ['rev-parse', '--git-path', 'info/exclude'],
154
+ cwd: workspaceRoot,
155
+ timeoutMs: 10_000,
156
+ });
157
+ if (result.exitCode !== 0 || result.timedOut) {
158
+ throw new Error(`git rev-parse --git-path info/exclude failed: ${result.stderr || result.stdout}`);
159
+ }
160
+ const excludePath = resolve(workspaceRoot, result.stdout.trim());
161
+ if (!excludePath) {
162
+ return;
163
+ }
164
+ mkdirSync(dirname(excludePath), { recursive: true });
165
+ appendFileSync(excludePath, '\n/.heddle/auth.json\n', 'utf8');
166
+ }
167
+ async function trackProgress(progress, args) {
168
+ return progress ? await progress.track(args) : await args.run();
169
+ }
170
+ async function initializeGitBaseline(workspaceRoot, message) {
171
+ await runRequiredGit(workspaceRoot, ['init']);
172
+ return await commitAll(workspaceRoot, message, true);
173
+ }
174
+ async function commitAll(workspaceRoot, message, allowEmpty = false) {
175
+ await runRequiredGit(workspaceRoot, ['add', '.']);
176
+ await runRequiredGit(workspaceRoot, [
177
+ '-c',
178
+ 'user.name=Heddle Eval',
179
+ '-c',
180
+ 'user.email=heddle-eval@example.com',
181
+ '-c',
182
+ 'commit.gpgsign=false',
183
+ 'commit',
184
+ ...(allowEmpty ? ['--allow-empty'] : []),
185
+ '-m',
186
+ message,
187
+ ]);
188
+ return await resolveGitCommit(workspaceRoot, 'HEAD');
189
+ }
190
+ async function resolveGitCommit(cwd, ref) {
191
+ const result = await runCommand({
192
+ command: 'git',
193
+ args: ['rev-parse', '--verify', `${ref}^{commit}`],
194
+ cwd,
195
+ timeoutMs: 20_000,
196
+ });
197
+ if (result.exitCode !== 0 || result.timedOut) {
198
+ throw new Error(`git rev-parse failed for ${ref}: ${result.stderr || result.stdout}`);
199
+ }
200
+ return result.stdout.trim();
201
+ }
202
+ async function hasGitChanges(workspaceRoot) {
203
+ const result = await runCommand({
204
+ command: 'git',
205
+ args: ['status', '--porcelain'],
206
+ cwd: workspaceRoot,
207
+ timeoutMs: 20_000,
208
+ });
209
+ if (result.exitCode !== 0 || result.timedOut) {
210
+ throw new Error(`git status --porcelain failed: ${result.stderr || result.stdout}`);
211
+ }
212
+ return result.stdout.trim().length > 0;
213
+ }
214
+ async function removeGitWorktree(repoRoot, workspaceRoot) {
215
+ if (!existsSync(workspaceRoot)) {
216
+ return;
217
+ }
218
+ const result = await runCommand({
219
+ command: 'git',
220
+ args: ['worktree', 'remove', '--force', workspaceRoot],
221
+ cwd: repoRoot,
222
+ timeoutMs: 20_000,
223
+ });
224
+ if (result.exitCode !== 0 || result.timedOut) {
225
+ rmSync(workspaceRoot, { recursive: true, force: true });
226
+ await runRequiredGit(repoRoot, ['worktree', 'prune']);
227
+ }
228
+ }
229
+ async function runRequiredGit(cwd, args) {
230
+ const result = await runCommand({ command: 'git', args, cwd, timeoutMs: 20_000 });
231
+ if (result.exitCode !== 0 || result.timedOut) {
232
+ throw new Error(`git ${args.join(' ')} failed: ${result.stderr || result.stdout}`);
233
+ }
234
+ }
235
+ //# sourceMappingURL=workspace-fixture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-fixture.js","sourceRoot":"","sources":["../../../../src/core/eval/workspace-fixture.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,16 @@ import type { ProviderCredentialSource } from '../runtime/api-keys.js';
2
2
  import type { LlmProvider } from './types.js';
3
3
  export type SystemModelPurpose = 'chat-compaction' | 'session-title';
4
4
  export type ModelCredentialMode = 'api-key' | 'oauth' | 'missing';
5
+ export type CredentialAwareModelOption = {
6
+ id: string;
7
+ label?: string;
8
+ disabled: boolean;
9
+ disabledReason?: string;
10
+ };
5
11
  export declare const OPENAI_API_KEY_COMPACTION_MODEL = "gpt-5.1-codex-mini";
6
12
  export declare const OPENAI_OAUTH_SYSTEM_MODEL = "gpt-5.4";
7
13
  export declare const ANTHROPIC_COMPACTION_MODEL = "claude-haiku-4-5";
14
+ export declare const OPENAI_OAUTH_MODE_DESCRIPTION = "OAuth mode supports a smaller OpenAI allowlist.";
8
15
  export declare function credentialModeFromSource(source: ProviderCredentialSource | undefined): ModelCredentialMode;
9
16
  export declare function resolveSystemSelectedModel(args: {
10
17
  purpose: SystemModelPurpose;
@@ -30,5 +37,24 @@ export declare function assertModelCredentialCompatibility(args: {
30
37
  usageLabel?: string;
31
38
  }): void;
32
39
  export declare function resolveOpenAiOAuthImageCandidateModels(activeModel: string): string[];
40
+ export declare function buildCredentialAwareModelOption(args: {
41
+ model: string;
42
+ provider: LlmProvider;
43
+ credentialMode?: ModelCredentialMode;
44
+ label?: string;
45
+ }): CredentialAwareModelOption;
46
+ export declare function summarizeCredentialCompatibilityError(args: {
47
+ model: string;
48
+ provider: LlmProvider;
49
+ credentialMode?: ModelCredentialMode;
50
+ }): string | undefined;
51
+ export declare function resolveCompatibleActiveModel(args: {
52
+ activeModel: string;
53
+ provider: LlmProvider;
54
+ credentialMode?: ModelCredentialMode;
55
+ }): {
56
+ model: string;
57
+ warning?: string;
58
+ };
33
59
  export declare function formatOpenAiAccountSignInModels(): string;
34
60
  //# sourceMappingURL=model-policy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-policy.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/model-policy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG,eAAe,CAAC;AACrE,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAElE,eAAO,MAAM,+BAA+B,uBAAuB,CAAC;AACpE,eAAO,MAAM,yBAAyB,YAAY,CAAC;AACnD,eAAO,MAAM,0BAA0B,qBAAqB,CAAC;AAI7D,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,wBAAwB,GAAG,SAAS,GAAG,mBAAmB,CAU1G;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAC/C,OAAO,EAAE,kBAAkB,CAAC;IAC5B,QAAQ,EAAE,WAAW,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,GAAG,MAAM,CAcT;AAED,wBAAgB,oCAAoC,CAAC,IAAI,EAAE;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,CAAC;IACtB,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAS9C;AAED,wBAAgB,kCAAkC,CAAC,IAAI,EAAE;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,CAAC;IACtB,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,QAKA;AAED,wBAAgB,sCAAsC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAEpF;AAED,wBAAgB,+BAA+B,IAAI,MAAM,CAExD"}
1
+ {"version":3,"file":"model-policy.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/model-policy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG,eAAe,CAAC;AACrE,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAElE,MAAM,MAAM,0BAA0B,GAAG;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,+BAA+B,uBAAuB,CAAC;AACpE,eAAO,MAAM,yBAAyB,YAAY,CAAC;AACnD,eAAO,MAAM,0BAA0B,qBAAqB,CAAC;AAE7D,eAAO,MAAM,6BAA6B,oDAAoD,CAAC;AAI/F,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,wBAAwB,GAAG,SAAS,GAAG,mBAAmB,CAU1G;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAC/C,OAAO,EAAE,kBAAkB,CAAC;IAC5B,QAAQ,EAAE,WAAW,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,GAAG,MAAM,CAcT;AAED,wBAAgB,oCAAoC,CAAC,IAAI,EAAE;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,CAAC;IACtB,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAS9C;AAED,wBAAgB,kCAAkC,CAAC,IAAI,EAAE;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,CAAC;IACtB,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,QAKA;AAED,wBAAgB,sCAAsC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAEpF;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,CAAC;IACtB,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,0BAA0B,CAa7B;AAED,wBAAgB,qCAAqC,CAAC,IAAI,EAAE;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,CAAC;IACtB,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,GAAG,MAAM,GAAG,SAAS,CAMrB;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;IACtB,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CA4BtC;AAED,wBAAgB,+BAA+B,IAAI,MAAM,CAExD"}
@@ -3,6 +3,8 @@ import { isOpenAiAccountSignInModel, OPENAI_ACCOUNT_SIGN_IN_MODELS } from './ope
3
3
  export const OPENAI_API_KEY_COMPACTION_MODEL = 'gpt-5.1-codex-mini';
4
4
  export const OPENAI_OAUTH_SYSTEM_MODEL = 'gpt-5.4';
5
5
  export const ANTHROPIC_COMPACTION_MODEL = 'claude-haiku-4-5';
6
+ const OPENAI_OAUTH_DISABLED_REASON = 'Not supported';
7
+ export const OPENAI_OAUTH_MODE_DESCRIPTION = 'OAuth mode supports a smaller OpenAI allowlist.';
6
8
  const OPENAI_OAUTH_IMAGE_MODEL_PREFERENCES = ['gpt-5.4', 'gpt-5.4-mini'];
7
9
  export function credentialModeFromSource(source) {
8
10
  if (source?.type === 'oauth') {
@@ -43,6 +45,51 @@ export function assertModelCredentialCompatibility(args) {
43
45
  export function resolveOpenAiOAuthImageCandidateModels(activeModel) {
44
46
  return uniqueModels([activeModel, ...OPENAI_OAUTH_IMAGE_MODEL_PREFERENCES, ...OPENAI_ACCOUNT_SIGN_IN_MODELS]);
45
47
  }
48
+ export function buildCredentialAwareModelOption(args) {
49
+ const compatibility = validateModelCredentialCompatibility({
50
+ model: args.model,
51
+ provider: args.provider,
52
+ credentialMode: args.credentialMode,
53
+ });
54
+ return {
55
+ id: args.model,
56
+ label: args.label,
57
+ disabled: !compatibility.ok,
58
+ disabledReason: compatibility.ok ? undefined : summarizeCredentialCompatibilityError(args),
59
+ };
60
+ }
61
+ export function summarizeCredentialCompatibilityError(args) {
62
+ if (args.provider === 'openai' && args.credentialMode === 'oauth' && !isOpenAiAccountSignInModel(args.model)) {
63
+ return OPENAI_OAUTH_DISABLED_REASON;
64
+ }
65
+ return undefined;
66
+ }
67
+ export function resolveCompatibleActiveModel(args) {
68
+ const compatibility = validateModelCredentialCompatibility({
69
+ model: args.activeModel,
70
+ provider: args.provider,
71
+ credentialMode: args.credentialMode,
72
+ });
73
+ if (compatibility.ok) {
74
+ return { model: args.activeModel };
75
+ }
76
+ const fallback = resolveSystemSelectedModel({
77
+ purpose: 'session-title',
78
+ provider: args.provider,
79
+ activeModel: args.activeModel,
80
+ credentialMode: args.credentialMode,
81
+ });
82
+ if (fallback === args.activeModel) {
83
+ return {
84
+ model: args.activeModel,
85
+ warning: `Model ${args.activeModel} is not supported with OpenAI account sign-in. Pick a supported OAuth model with /model set or use API-key mode.`,
86
+ };
87
+ }
88
+ return {
89
+ model: fallback,
90
+ warning: `Model ${args.activeModel} is not supported with OpenAI account sign-in. Switched to ${fallback} for this session.`,
91
+ };
92
+ }
46
93
  export function formatOpenAiAccountSignInModels() {
47
94
  return OPENAI_ACCOUNT_SIGN_IN_MODELS.join(', ');
48
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"model-policy.js","sourceRoot":"","sources":["../../../../src/core/llm/model-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAE7E,OAAO,EAAE,0BAA0B,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAM/F,MAAM,CAAC,MAAM,+BAA+B,GAAG,oBAAoB,CAAC;AACpE,MAAM,CAAC,MAAM,yBAAyB,GAAG,SAAS,CAAC;AACnD,MAAM,CAAC,MAAM,0BAA0B,GAAG,kBAAkB,CAAC;AAE7D,MAAM,oCAAoC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAEzE,MAAM,UAAU,wBAAwB,CAAC,MAA4C;IACnF,IAAI,MAAM,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAK1C;IACC,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,OAAO,KAAK,iBAAiB,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,uBAAuB,CAAC;IACnG,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,WAAW,IAAI,0BAA0B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,yBAAyB,CAAC;QACzH,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,KAAK,iBAAiB,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,oBAAoB,CAAC;IACrG,CAAC;IAED,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,oCAAoC,CAAC,IAKpD;IACC,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7G,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,mDAAmD,IAAI,CAAC,KAAK,gBAAgB,+BAA+B,EAAE,uDAAuD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG;SAChO,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,IAKlD;IACC,MAAM,MAAM,GAAG,oCAAoC,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sCAAsC,CAAC,WAAmB;IACxE,OAAO,YAAY,CAAC,CAAC,WAAW,EAAE,GAAG,oCAAoC,EAAE,GAAG,6BAA6B,CAAC,CAAC,CAAC;AAChH,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,OAAO,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,YAAY,CAAC,MAAgB;IACpC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"model-policy.js","sourceRoot":"","sources":["../../../../src/core/llm/model-policy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"domain-prompt.d.ts","sourceRoot":"","sources":["../../../../src/core/memory/domain-prompt.ts"],"names":[],"mappings":"AAAA,wBAAgB,8BAA8B,IAAI,MAAM,CAyCvD"}
1
+ {"version":3,"file":"domain-prompt.d.ts","sourceRoot":"","sources":["../../../../src/core/memory/domain-prompt.ts"],"names":[],"mappings":"AAAA,wBAAgB,8BAA8B,IAAI,MAAM,CAiDvD"}
@@ -1,43 +1,51 @@
1
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
- '- Prefer the catalog discovery path first, but when the likely note is still unclear, the discovery path looks weak, or the relevant knowledge may span categories, combine direct memory reads with search_memory_notes to improve recall.',
19
- '- This hybrid retrieval is especially useful when implementation work may need workflows + operations + preferences together, or when a user is invoking a personal convention but the exact note location is not obvious.',
20
- '- 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.',
21
- '',
22
- '### Recurring Conventions And Memory Signals',
23
- '',
24
- '- Treat future conventions, repeated requested formats, and recurring workflow patterns as likely durable memory rather than one-off phrasing preferences.',
25
- '- Pay special attention to repeated structures for tickets, PRs, summaries, reviews, handoffs, and other required output formats.',
26
- '- Explicit wording such as "remember this", "use this format going forward", "whenever I ask", or "from now on" is a strong signal that the convention should be remembered.',
27
- '',
28
- '### Maintenance Model',
29
- '',
30
- '- Preserve the discovery path. Every durable memory note must be discoverable from the root README.md or a folder README.md.',
31
- '- Prefer updating an existing cataloged note over scattering many small notes.',
32
- '- Keep folder README.md files as indexes, not long-form dumps.',
33
- '- Do not store secrets, speculative guesses, one-turn plans, or temporary command output.',
34
- '',
35
- '### Checkpoint Model',
36
- '',
37
- '- Before the final answer, run a quick memory checkpoint when memory_checkpoint is available.',
38
- '- Record durable candidates when the user states a future preference/workflow/format or the turn uncovers stable reusable workspace knowledge.',
39
- '- Skip one-off task details, duplicate facts, temporary plans, speculative guesses, and information that should remain only in the current transcript.',
40
- '',
41
- ].join('\n');
2
+ return `## Heddle-Managed Memory Domain
3
+
4
+ Heddle-managed memory is the durable recall substrate for the agent. It is different from ordinary repository documentation.
5
+
6
+ ### Knowledge Surfaces
7
+
8
+ - 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.
9
+ - 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.
10
+ - 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.
11
+
12
+ ### Retrieval Model
13
+
14
+ - For preference-shaped, workflow-shaped, planning-style, ticket/format, review-style, coordination, or recurring operational questions, consult Heddle-managed memory before broad repository search.
15
+ - Follow the catalog path: read the root memory catalog, then the relevant folder README catalog, then focused notes listed there.
16
+ - 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.
17
+ - Prefer the catalog discovery path first, but when the likely note is still unclear, the discovery path looks weak, or the relevant knowledge may span categories, combine direct memory reads with search_memory_notes to improve recall.
18
+ - This hybrid retrieval is especially useful when implementation work may need workflows + operations + preferences together, or when a user is invoking a personal convention but the exact note location is not obvious.
19
+ - 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.
20
+
21
+ ### Recurring Conventions And Memory Signals
22
+
23
+ - Treat future conventions, repeated requested formats, and recurring workflow patterns as likely durable memory rather than one-off phrasing preferences.
24
+ - Pay special attention to repeated structures for tickets, PRs, summaries, reviews, handoffs, and other required output formats.
25
+ - Explicit wording such as "remember this", "use this format going forward", "whenever I ask", or "from now on" is a strong signal that the convention should be remembered.
26
+
27
+ ### Memory Judgment Internal Reasoning
28
+
29
+ - Use an internal memory-judgment pass before deciding whether to record or skip a candidate. Do not expose chain-of-thought; only expose the final checkpoint decision and concise rationale when using memory_checkpoint.
30
+ - Ask whether the same pattern is likely to recur in the next round of work or in future sessions. If yes, memory is more likely valuable.
31
+ - Ask whether future-you would accomplish similar tasks better if this were recorded, without the user needing to repeat the same instruction, correction, or workflow boundary.
32
+ - Ask whether the user is defining what counts as done, where the handoff boundary is, how far a recurring workflow should be carried, or how similar future work should be executed.
33
+ - Treat task-embedded clarifications as potentially durable when they define a reusable operating rule. Do not require the user to say "remember" explicitly.
34
+ - Distinguish durable patterns from one-turn details: record stable preferences, workflows, completion semantics, and reusable operational facts; skip temporary plans, incidental command output, speculative guesses, and facts useful only in the current turn.
35
+ - Use examples as reasoning anchors, not phrase templates: a release handoff rule, a recurring PR/review format, a preferred branch workflow, or a repeated correction of agent behavior can be durable even when phrased differently.
36
+
37
+ ### Maintenance Model
38
+
39
+ - Preserve the discovery path. Every durable memory note must be discoverable from the root README.md or a folder README.md.
40
+ - Prefer updating an existing cataloged note over scattering many small notes.
41
+ - Keep folder README.md files as indexes, not long-form dumps.
42
+ - Do not store secrets, speculative guesses, one-turn plans, or temporary command output.
43
+
44
+ ### Checkpoint Model
45
+
46
+ - Before the final answer, run a quick memory checkpoint when memory_checkpoint is available.
47
+ - Record durable candidates when the user states a future preference/workflow/format or the turn uncovers stable reusable workspace knowledge.
48
+ - Skip one-off task details, duplicate facts, temporary plans, speculative guesses, and information that should remain only in the current transcript.
49
+ `;
42
50
  }
43
51
  //# sourceMappingURL=domain-prompt.js.map
@@ -1 +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,6OAA6O;QAC7O,4NAA4N;QAC5N,mKAAmK;QACnK,EAAE;QACF,8CAA8C;QAC9C,EAAE;QACF,4JAA4J;QAC5J,mIAAmI;QACnI,8KAA8K;QAC9K,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"}
1
+ {"version":3,"file":"domain-prompt.js","sourceRoot":"","sources":["../../../../src/core/memory/domain-prompt.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,8BAA8B;IAC5C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CR,CAAC;AACF,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Build the system prompt for the agent.
3
- * Encourages purposeful tool use and a clear execution workflow.
3
+ * Keep it high-level and concise unless stronger steering is clearly needed.
4
4
  */
5
5
  export declare function buildSystemPrompt(toolNames: string[], projectContext?: string): string;
6
6
  //# sourceMappingURL=system-prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../../../src/core/prompts/system-prompt.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAuHtF"}
1
+ {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../../../src/core/prompts/system-prompt.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAsCtF"}