@nervekit/orchestrator 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. package/dist/{server.d.ts → app/orchestrator-state.d.ts} +11 -17
  2. package/dist/app/orchestrator-state.d.ts.map +1 -0
  3. package/dist/app/orchestrator-state.js +105 -0
  4. package/dist/app/orchestrator-state.js.map +1 -0
  5. package/dist/app/server.d.ts +5 -0
  6. package/dist/app/server.d.ts.map +1 -0
  7. package/dist/{server.js → app/server.js} +6 -112
  8. package/dist/app/server.js.map +1 -0
  9. package/dist/app/version.d.ts.map +1 -0
  10. package/dist/app/version.js.map +1 -0
  11. package/dist/domains/agents/agent-lifecycle.service.d.ts +1 -1
  12. package/dist/domains/agents/agent-lifecycle.service.d.ts.map +1 -1
  13. package/dist/domains/agents/prompting/index.d.ts +4 -0
  14. package/dist/domains/agents/prompting/index.d.ts.map +1 -0
  15. package/dist/domains/agents/prompting/index.js +4 -0
  16. package/dist/domains/agents/prompting/index.js.map +1 -0
  17. package/dist/domains/agents/prompting/nerve-system-prompt.d.ts.map +1 -0
  18. package/dist/{nerve-system-prompt.js → domains/agents/prompting/nerve-system-prompt.js} +4 -2
  19. package/dist/domains/agents/prompting/nerve-system-prompt.js.map +1 -0
  20. package/dist/domains/agents/prompting/prompt-text.d.ts.map +1 -0
  21. package/dist/domains/agents/prompting/prompt-text.js.map +1 -0
  22. package/dist/domains/agents/prompting/resource-loader.d.ts.map +1 -0
  23. package/dist/{resource-loader.js → domains/agents/prompting/resource-loader.js} +1 -1
  24. package/dist/domains/agents/prompting/resource-loader.js.map +1 -0
  25. package/dist/domains/agents/run/agent-run-session.d.ts.map +1 -1
  26. package/dist/domains/agents/run/agent-run-session.js +4 -2
  27. package/dist/domains/agents/run/agent-run-session.js.map +1 -1
  28. package/dist/domains/agents/run/agent-runner.d.ts +7 -7
  29. package/dist/domains/agents/run/agent-runner.d.ts.map +1 -1
  30. package/dist/domains/agents/run/agent-runner.js +16 -234
  31. package/dist/domains/agents/run/agent-runner.js.map +1 -1
  32. package/dist/domains/agents/run/auto-compaction-runner.d.ts +19 -0
  33. package/dist/domains/agents/run/auto-compaction-runner.d.ts.map +1 -0
  34. package/dist/domains/agents/run/auto-compaction-runner.js +105 -0
  35. package/dist/domains/agents/run/auto-compaction-runner.js.map +1 -0
  36. package/dist/domains/agents/run/explore-helpers.d.ts.map +1 -1
  37. package/dist/domains/agents/run/explore-helpers.js +73 -16
  38. package/dist/domains/agents/run/explore-helpers.js.map +1 -1
  39. package/dist/domains/agents/run/inline-command-results.d.ts.map +1 -1
  40. package/dist/domains/agents/run/inline-command-results.js +1 -2
  41. package/dist/domains/agents/run/inline-command-results.js.map +1 -1
  42. package/dist/domains/agents/run/inline-command-runner.d.ts +19 -0
  43. package/dist/domains/agents/run/inline-command-runner.d.ts.map +1 -0
  44. package/dist/domains/agents/run/inline-command-runner.js +168 -0
  45. package/dist/domains/agents/run/inline-command-runner.js.map +1 -0
  46. package/dist/domains/agents/run/interrupted-run-recovery.d.ts +1 -1
  47. package/dist/domains/agents/run/interrupted-run-recovery.d.ts.map +1 -1
  48. package/dist/domains/agents/run/subagent-runner.d.ts +4 -2
  49. package/dist/domains/agents/run/subagent-runner.d.ts.map +1 -1
  50. package/dist/domains/agents/run/subagent-runner.js +13 -7
  51. package/dist/domains/agents/run/subagent-runner.js.map +1 -1
  52. package/dist/domains/agents/run/system-prompt-builder.d.ts +1 -1
  53. package/dist/domains/agents/run/system-prompt-builder.d.ts.map +1 -1
  54. package/dist/domains/agents/run/system-prompt-builder.js +2 -2
  55. package/dist/domains/agents/run/system-prompt-builder.js.map +1 -1
  56. package/dist/domains/agents/run/tool-draft-progress.d.ts +4 -0
  57. package/dist/domains/agents/run/tool-draft-progress.d.ts.map +1 -1
  58. package/dist/domains/agents/run/tool-draft-progress.js +114 -2
  59. package/dist/domains/agents/run/tool-draft-progress.js.map +1 -1
  60. package/dist/{auth.d.ts → domains/auth/auth-manager.d.ts} +2 -2
  61. package/dist/domains/auth/auth-manager.d.ts.map +1 -0
  62. package/dist/{auth.js → domains/auth/auth-manager.js} +1 -1
  63. package/dist/domains/auth/auth-manager.js.map +1 -0
  64. package/dist/{credential-crypto.d.ts → domains/auth/credential-key.service.d.ts} +1 -1
  65. package/dist/domains/auth/credential-key.service.d.ts.map +1 -0
  66. package/dist/{credential-crypto.js → domains/auth/credential-key.service.js} +2 -2
  67. package/dist/domains/auth/credential-key.service.js.map +1 -0
  68. package/dist/domains/auth/index.d.ts +4 -0
  69. package/dist/domains/auth/index.d.ts.map +1 -0
  70. package/dist/domains/auth/index.js +4 -0
  71. package/dist/domains/auth/index.js.map +1 -0
  72. package/dist/{oauth-flow.d.ts → domains/auth/oauth-flow-manager.d.ts} +3 -3
  73. package/dist/domains/auth/oauth-flow-manager.d.ts.map +1 -0
  74. package/dist/{oauth-flow.js → domains/auth/oauth-flow-manager.js} +2 -2
  75. package/dist/domains/auth/oauth-flow-manager.js.map +1 -0
  76. package/dist/domains/conversations/conversation-lifecycle.service.d.ts +1 -1
  77. package/dist/domains/conversations/conversation-lifecycle.service.d.ts.map +1 -1
  78. package/dist/domains/conversations/conversation-lifecycle.service.js +21 -4
  79. package/dist/domains/conversations/conversation-lifecycle.service.js.map +1 -1
  80. package/dist/domains/conversations/conversation-query.service.d.ts +2 -2
  81. package/dist/domains/conversations/conversation-query.service.d.ts.map +1 -1
  82. package/dist/domains/conversations/conversation-query.service.js +6 -2
  83. package/dist/domains/conversations/conversation-query.service.js.map +1 -1
  84. package/dist/domains/conversations/conversation-runtime.d.ts +2 -0
  85. package/dist/domains/conversations/conversation-runtime.d.ts.map +1 -1
  86. package/dist/domains/conversations/conversation-runtime.js +36 -2
  87. package/dist/domains/conversations/conversation-runtime.js.map +1 -1
  88. package/dist/domains/conversations/operations/import-service.d.ts.map +1 -1
  89. package/dist/domains/conversations/operations/import-service.js +1 -0
  90. package/dist/domains/conversations/operations/import-service.js.map +1 -1
  91. package/dist/domains/git/git-service.d.ts +1 -0
  92. package/dist/domains/git/git-service.d.ts.map +1 -1
  93. package/dist/domains/git/git-service.js +53 -0
  94. package/dist/domains/git/git-service.js.map +1 -1
  95. package/dist/domains/human-input/human-input-resolution.service.d.ts +1 -1
  96. package/dist/domains/human-input/human-input-resolution.service.d.ts.map +1 -1
  97. package/dist/domains/pinned-commands/pinned-command.service.d.ts +3 -1
  98. package/dist/domains/pinned-commands/pinned-command.service.d.ts.map +1 -1
  99. package/dist/domains/pinned-commands/pinned-command.service.js +26 -3
  100. package/dist/domains/pinned-commands/pinned-command.service.js.map +1 -1
  101. package/dist/domains/plans/plan-service.d.ts +2 -0
  102. package/dist/domains/plans/plan-service.d.ts.map +1 -1
  103. package/dist/domains/plans/plan-service.js +31 -6
  104. package/dist/domains/plans/plan-service.js.map +1 -1
  105. package/dist/domains/projects/prune-conversations.service.d.ts +1 -1
  106. package/dist/domains/projects/prune-conversations.service.d.ts.map +1 -1
  107. package/dist/domains/tasks/index.d.ts +1 -0
  108. package/dist/domains/tasks/index.d.ts.map +1 -1
  109. package/dist/domains/tasks/index.js +1 -0
  110. package/dist/domains/tasks/index.js.map +1 -1
  111. package/dist/domains/tasks/task-launch-config.store.d.ts +1 -1
  112. package/dist/domains/tasks/task-launch-config.store.d.ts.map +1 -1
  113. package/dist/domains/tasks/task-manager-orphan.d.ts +4 -1
  114. package/dist/domains/tasks/task-manager-orphan.d.ts.map +1 -1
  115. package/dist/domains/tasks/task-manager-orphan.js +100 -1
  116. package/dist/domains/tasks/task-manager-orphan.js.map +1 -1
  117. package/dist/domains/tasks/task-manager-start.d.ts.map +1 -1
  118. package/dist/domains/tasks/task-manager-start.js +46 -0
  119. package/dist/domains/tasks/task-manager-start.js.map +1 -1
  120. package/dist/domains/tasks/task-manager.d.ts +24 -3
  121. package/dist/domains/tasks/task-manager.d.ts.map +1 -1
  122. package/dist/domains/tasks/task-manager.js +10 -1
  123. package/dist/domains/tasks/task-manager.js.map +1 -1
  124. package/dist/domains/tasks/task-notification.service.d.ts +2 -2
  125. package/dist/domains/tasks/task-notification.service.d.ts.map +1 -1
  126. package/dist/domains/tasks/task-port-inspector.d.ts +7 -0
  127. package/dist/domains/tasks/task-port-inspector.d.ts.map +1 -0
  128. package/dist/domains/tasks/task-port-inspector.js +286 -0
  129. package/dist/domains/tasks/task-port-inspector.js.map +1 -0
  130. package/dist/domains/tasks/task-summary-format.d.ts +1 -0
  131. package/dist/domains/tasks/task-summary-format.d.ts.map +1 -1
  132. package/dist/domains/tasks/task-summary-format.js +14 -0
  133. package/dist/domains/tasks/task-summary-format.js.map +1 -1
  134. package/dist/domains/tasks/task-supervisor.d.ts +3 -1
  135. package/dist/domains/tasks/task-supervisor.d.ts.map +1 -1
  136. package/dist/domains/tasks/task-supervisor.js +3 -0
  137. package/dist/domains/tasks/task-supervisor.js.map +1 -1
  138. package/dist/domains/tools/agent-tool-adapter.d.ts.map +1 -1
  139. package/dist/domains/tools/agent-tool-adapter.js +1 -2
  140. package/dist/domains/tools/agent-tool-adapter.js.map +1 -1
  141. package/dist/domains/tools/orchestration-tool-dispatcher-handlers.d.ts.map +1 -1
  142. package/dist/domains/tools/orchestration-tool-dispatcher-handlers.js +24 -4
  143. package/dist/domains/tools/orchestration-tool-dispatcher-handlers.js.map +1 -1
  144. package/dist/domains/tools/orchestration-tool-dispatcher.d.ts.map +1 -1
  145. package/dist/domains/tools/orchestration-tool-dispatcher.js +2 -1
  146. package/dist/domains/tools/orchestration-tool-dispatcher.js.map +1 -1
  147. package/dist/domains/tools/tool-call-transcript-preview.d.ts +3 -0
  148. package/dist/domains/tools/tool-call-transcript-preview.d.ts.map +1 -0
  149. package/dist/domains/tools/tool-call-transcript-preview.js +442 -0
  150. package/dist/domains/tools/tool-call-transcript-preview.js.map +1 -0
  151. package/dist/domains/tools/tool-call.repository.d.ts.map +1 -1
  152. package/dist/domains/tools/tool-call.repository.js +6 -9
  153. package/dist/domains/tools/tool-call.repository.js.map +1 -1
  154. package/dist/domains/tools/tool-executor.service.d.ts +1 -1
  155. package/dist/domains/tools/tool-executor.service.d.ts.map +1 -1
  156. package/dist/domains/tools/tool-executor.service.js +3 -2
  157. package/dist/domains/tools/tool-executor.service.js.map +1 -1
  158. package/dist/domains/tools/tool-result-bounds.d.ts.map +1 -1
  159. package/dist/domains/tools/tool-result-bounds.js +23 -9
  160. package/dist/domains/tools/tool-result-bounds.js.map +1 -1
  161. package/dist/domains/tools/tool-result-model-limits.d.ts +2 -0
  162. package/dist/domains/tools/tool-result-model-limits.d.ts.map +1 -0
  163. package/dist/domains/tools/tool-result-model-limits.js +84 -0
  164. package/dist/domains/tools/tool-result-model-limits.js.map +1 -0
  165. package/dist/domains/tools/tool-service.d.ts +4 -2
  166. package/dist/domains/tools/tool-service.d.ts.map +1 -1
  167. package/dist/domains/tools/tool-service.js +2 -1
  168. package/dist/domains/tools/tool-service.js.map +1 -1
  169. package/dist/domains/transcription/transcription.service.d.ts +1 -1
  170. package/dist/domains/transcription/transcription.service.d.ts.map +1 -1
  171. package/dist/domains/transcription/transcription.service.js.map +1 -1
  172. package/dist/domains/usage/subscription-usage-service.d.ts +1 -1
  173. package/dist/domains/usage/subscription-usage-service.d.ts.map +1 -1
  174. package/dist/http/request-context.d.ts +1 -1
  175. package/dist/http/request-context.d.ts.map +1 -1
  176. package/dist/http/static-files.d.ts +1 -1
  177. package/dist/http/static-files.d.ts.map +1 -1
  178. package/dist/index.d.ts +3 -1
  179. package/dist/index.d.ts.map +1 -1
  180. package/dist/index.js +3 -1
  181. package/dist/index.js.map +1 -1
  182. package/dist/infrastructure/diagnostics/crash-reports.d.ts +14 -0
  183. package/dist/infrastructure/diagnostics/crash-reports.d.ts.map +1 -0
  184. package/dist/infrastructure/diagnostics/crash-reports.js +199 -0
  185. package/dist/infrastructure/diagnostics/crash-reports.js.map +1 -0
  186. package/dist/infrastructure/diagnostics/index.d.ts +3 -0
  187. package/dist/infrastructure/diagnostics/index.d.ts.map +1 -0
  188. package/dist/infrastructure/diagnostics/index.js +3 -0
  189. package/dist/infrastructure/diagnostics/index.js.map +1 -0
  190. package/dist/infrastructure/diagnostics/logging.d.ts.map +1 -0
  191. package/dist/{logging.js → infrastructure/diagnostics/logging.js} +1 -1
  192. package/dist/infrastructure/diagnostics/logging.js.map +1 -0
  193. package/dist/{secrets.d.ts → infrastructure/secrets/index.d.ts} +1 -1
  194. package/dist/infrastructure/secrets/index.d.ts.map +1 -0
  195. package/dist/{secrets.js → infrastructure/secrets/index.js} +2 -2
  196. package/dist/infrastructure/secrets/index.js.map +1 -0
  197. package/dist/main.js +43 -7
  198. package/dist/main.js.map +1 -1
  199. package/dist/routes/agent-routes.d.ts +1 -1
  200. package/dist/routes/agent-routes.d.ts.map +1 -1
  201. package/dist/routes/agent-routes.js.map +1 -1
  202. package/dist/routes/auth-routes.d.ts +1 -1
  203. package/dist/routes/auth-routes.d.ts.map +1 -1
  204. package/dist/routes/auth-routes.js.map +1 -1
  205. package/dist/routes/completion-routes.d.ts +1 -1
  206. package/dist/routes/completion-routes.d.ts.map +1 -1
  207. package/dist/routes/completion-routes.js.map +1 -1
  208. package/dist/routes/conversation-routes.d.ts +1 -1
  209. package/dist/routes/conversation-routes.d.ts.map +1 -1
  210. package/dist/routes/conversation-routes.js.map +1 -1
  211. package/dist/routes/filesystem-routes.d.ts +1 -1
  212. package/dist/routes/filesystem-routes.d.ts.map +1 -1
  213. package/dist/routes/filesystem-routes.js.map +1 -1
  214. package/dist/routes/git-routes.d.ts +1 -1
  215. package/dist/routes/git-routes.d.ts.map +1 -1
  216. package/dist/routes/git-routes.js +4 -0
  217. package/dist/routes/git-routes.js.map +1 -1
  218. package/dist/routes/index.d.ts +1 -1
  219. package/dist/routes/index.d.ts.map +1 -1
  220. package/dist/routes/log-routes.d.ts +1 -1
  221. package/dist/routes/log-routes.d.ts.map +1 -1
  222. package/dist/routes/log-routes.js.map +1 -1
  223. package/dist/routes/model-routes.d.ts +1 -1
  224. package/dist/routes/model-routes.d.ts.map +1 -1
  225. package/dist/routes/project-routes.d.ts +1 -1
  226. package/dist/routes/project-routes.d.ts.map +1 -1
  227. package/dist/routes/project-routes.js +7 -1
  228. package/dist/routes/project-routes.js.map +1 -1
  229. package/dist/routes/provider-catalog-routes.d.ts +1 -1
  230. package/dist/routes/provider-catalog-routes.d.ts.map +1 -1
  231. package/dist/routes/provider-catalog-routes.js +1 -1
  232. package/dist/routes/provider-catalog-routes.js.map +1 -1
  233. package/dist/routes/settings-routes.d.ts +1 -1
  234. package/dist/routes/settings-routes.d.ts.map +1 -1
  235. package/dist/routes/settings-routes.js.map +1 -1
  236. package/dist/routes/status-routes.d.ts +1 -1
  237. package/dist/routes/status-routes.d.ts.map +1 -1
  238. package/dist/routes/status-routes.js +1 -1
  239. package/dist/routes/status-routes.js.map +1 -1
  240. package/dist/routes/storage-routes.d.ts +1 -1
  241. package/dist/routes/storage-routes.d.ts.map +1 -1
  242. package/dist/routes/storage-routes.js.map +1 -1
  243. package/dist/routes/task-routes.d.ts +1 -1
  244. package/dist/routes/task-routes.d.ts.map +1 -1
  245. package/dist/routes/task-routes.js.map +1 -1
  246. package/dist/routes/tool-routes.d.ts +1 -1
  247. package/dist/routes/tool-routes.d.ts.map +1 -1
  248. package/dist/routes/tool-routes.js +47 -19
  249. package/dist/routes/tool-routes.js.map +1 -1
  250. package/dist/routes/transcription-routes.d.ts +1 -1
  251. package/dist/routes/transcription-routes.d.ts.map +1 -1
  252. package/dist/routes/transcription-routes.js.map +1 -1
  253. package/dist/routes/worker-routes.d.ts +1 -1
  254. package/dist/routes/worker-routes.d.ts.map +1 -1
  255. package/dist/routes/worker-routes.js.map +1 -1
  256. package/dist/runtime/runtime-composition.d.ts +3 -3
  257. package/dist/runtime/runtime-composition.d.ts.map +1 -1
  258. package/dist/runtime/runtime-composition.js.map +1 -1
  259. package/dist/{registry.d.ts → runtime/runtime-registry.d.ts} +148 -33
  260. package/dist/runtime/runtime-registry.d.ts.map +1 -0
  261. package/dist/{registry.js → runtime/runtime-registry.js} +7 -12
  262. package/dist/runtime/runtime-registry.js.map +1 -0
  263. package/dist/runtime/runtime-state.d.ts +1 -0
  264. package/dist/runtime/runtime-state.d.ts.map +1 -1
  265. package/dist/runtime/types.d.ts.map +1 -0
  266. package/dist/{registry → runtime}/types.js.map +1 -1
  267. package/dist/web/assets/{dist-BaA_eB0I.js → dist-DuVh-9Yy.js} +1 -1
  268. package/dist/web/assets/index-bmeeVJYV.css +2 -0
  269. package/dist/web/assets/index-hdM6dgBG.js +192 -0
  270. package/dist/web/index.html +2 -2
  271. package/dist/web/sw.js +1 -1
  272. package/package.json +4 -4
  273. package/dist/auth.d.ts.map +0 -1
  274. package/dist/auth.js.map +0 -1
  275. package/dist/credential-crypto.d.ts.map +0 -1
  276. package/dist/credential-crypto.js.map +0 -1
  277. package/dist/logging.d.ts.map +0 -1
  278. package/dist/logging.js.map +0 -1
  279. package/dist/nerve-system-prompt.d.ts.map +0 -1
  280. package/dist/nerve-system-prompt.js.map +0 -1
  281. package/dist/oauth-flow.d.ts.map +0 -1
  282. package/dist/oauth-flow.js.map +0 -1
  283. package/dist/prompt-text.d.ts.map +0 -1
  284. package/dist/prompt-text.js.map +0 -1
  285. package/dist/registry/types.d.ts.map +0 -1
  286. package/dist/registry.d.ts.map +0 -1
  287. package/dist/registry.js.map +0 -1
  288. package/dist/resource-loader.d.ts.map +0 -1
  289. package/dist/resource-loader.js.map +0 -1
  290. package/dist/secrets.d.ts.map +0 -1
  291. package/dist/secrets.js.map +0 -1
  292. package/dist/server.d.ts.map +0 -1
  293. package/dist/server.js.map +0 -1
  294. package/dist/version.d.ts.map +0 -1
  295. package/dist/version.js.map +0 -1
  296. package/dist/web/assets/index-C45Kmr75.css +0 -2
  297. package/dist/web/assets/index-DHfIkEia.js +0 -167
  298. /package/dist/{version.d.ts → app/version.d.ts} +0 -0
  299. /package/dist/{version.js → app/version.js} +0 -0
  300. /package/dist/{nerve-system-prompt.d.ts → domains/agents/prompting/nerve-system-prompt.d.ts} +0 -0
  301. /package/dist/{prompt-text.d.ts → domains/agents/prompting/prompt-text.d.ts} +0 -0
  302. /package/dist/{prompt-text.js → domains/agents/prompting/prompt-text.js} +0 -0
  303. /package/dist/{resource-loader.d.ts → domains/agents/prompting/resource-loader.d.ts} +0 -0
  304. /package/dist/{logging.d.ts → infrastructure/diagnostics/logging.d.ts} +0 -0
  305. /package/dist/{registry → runtime}/types.d.ts +0 -0
  306. /package/dist/{registry → runtime}/types.js +0 -0
@@ -0,0 +1,442 @@
1
+ const PREVIEW_COUNT = 10;
2
+ const MAX_PREVIEW_CHARS = 8 * 1024;
3
+ function firstLines(text, count = PREVIEW_COUNT) {
4
+ if (text === undefined)
5
+ return emptyTextPreview(undefined);
6
+ const lineEnd = endAfterFirstLines(text, count);
7
+ const charEnd = Math.min(lineEnd, MAX_PREVIEW_CHARS);
8
+ const value = text.slice(0, charEnd);
9
+ const hiddenLines = countLinesFrom(text, lineEnd);
10
+ const hiddenChars = Math.max(0, text.length - charEnd);
11
+ return {
12
+ value,
13
+ hidden: visibleHiddenCount(hiddenLines, hiddenChars),
14
+ hiddenLines,
15
+ hiddenChars,
16
+ };
17
+ }
18
+ function lastLines(text, count = PREVIEW_COUNT) {
19
+ if (text === undefined)
20
+ return emptyTextPreview(undefined);
21
+ const lineStart = startBeforeLastLines(text, count);
22
+ const charStart = Math.max(lineStart, text.length - MAX_PREVIEW_CHARS);
23
+ const value = text.slice(charStart);
24
+ const hiddenLines = countLinesUntil(text, lineStart);
25
+ const hiddenChars = Math.max(0, charStart);
26
+ return {
27
+ value,
28
+ hidden: visibleHiddenCount(hiddenLines, hiddenChars),
29
+ hiddenLines,
30
+ hiddenChars,
31
+ };
32
+ }
33
+ function firstItems(items, count = PREVIEW_COUNT) {
34
+ if (!items)
35
+ return { value: items, hidden: 0 };
36
+ return {
37
+ value: items.length > count ? items.slice(0, count) : items,
38
+ hidden: Math.max(0, items.length - count),
39
+ };
40
+ }
41
+ function lastItems(items, count = PREVIEW_COUNT) {
42
+ if (!items)
43
+ return { value: items, hidden: 0 };
44
+ return {
45
+ value: items.length > count ? items.slice(items.length - count) : items,
46
+ hidden: Math.max(0, items.length - count),
47
+ };
48
+ }
49
+ function emptyTextPreview(value) {
50
+ return { value, hidden: 0, hiddenLines: 0, hiddenChars: 0 };
51
+ }
52
+ function visibleHiddenCount(hiddenLines, hiddenChars) {
53
+ return hiddenLines > 0 ? hiddenLines : hiddenChars;
54
+ }
55
+ function endAfterFirstLines(text, count) {
56
+ if (count <= 0)
57
+ return 0;
58
+ let lines = 1;
59
+ for (let index = 0; index < text.length; index += 1) {
60
+ if (text[index] !== "\n")
61
+ continue;
62
+ if (lines >= count)
63
+ return index;
64
+ lines += 1;
65
+ }
66
+ return text.length;
67
+ }
68
+ function startBeforeLastLines(text, count) {
69
+ if (count <= 0)
70
+ return text.length;
71
+ let lines = 1;
72
+ for (let index = text.length - 1; index >= 0; index -= 1) {
73
+ if (text[index] !== "\n")
74
+ continue;
75
+ lines += 1;
76
+ if (lines > count)
77
+ return index + 1;
78
+ }
79
+ return 0;
80
+ }
81
+ function countLinesFrom(text, offset) {
82
+ if (offset >= text.length)
83
+ return 0;
84
+ let start = offset;
85
+ if (text[start] === "\n")
86
+ start += 1;
87
+ if (start >= text.length)
88
+ return 0;
89
+ let lines = 1;
90
+ for (let index = start; index < text.length; index += 1) {
91
+ if (text[index] === "\n")
92
+ lines += 1;
93
+ }
94
+ return lines;
95
+ }
96
+ function countLinesUntil(text, offset) {
97
+ if (offset <= 0)
98
+ return 0;
99
+ const end = Math.min(offset - 1, text.length);
100
+ if (end <= 0)
101
+ return 0;
102
+ let lines = 1;
103
+ for (let index = 0; index < end; index += 1) {
104
+ if (text[index] === "\n")
105
+ lines += 1;
106
+ }
107
+ return lines;
108
+ }
109
+ function record(value) {
110
+ return value && typeof value === "object" && !Array.isArray(value)
111
+ ? { ...value }
112
+ : {};
113
+ }
114
+ function stringField(value) {
115
+ return typeof value === "string" ? value : undefined;
116
+ }
117
+ function arrayField(value) {
118
+ return Array.isArray(value) ? value : undefined;
119
+ }
120
+ function outputText(result) {
121
+ const content = stringField(result.content);
122
+ if (content !== undefined)
123
+ return content;
124
+ const blocks = arrayField(result.contentBlocks);
125
+ const textBlocks = blocks
126
+ ?.filter((block) => block.type === "text" && typeof block.text === "string")
127
+ .map((block) => String(block.text));
128
+ if (textBlocks && textBlocks.length > 0)
129
+ return textBlocks.join("\n");
130
+ const stdout = stringField(result.stdout);
131
+ const stderr = stringField(result.stderr);
132
+ if (stdout === undefined && stderr === undefined)
133
+ return undefined;
134
+ if (!stdout)
135
+ return stderr;
136
+ if (!stderr)
137
+ return stdout;
138
+ return stdout.endsWith("\n") ? `${stdout}${stderr}` : `${stdout}\n${stderr}`;
139
+ }
140
+ function withTextContent(result, text) {
141
+ if (text === undefined)
142
+ return sanitizePreviewValue(result);
143
+ const next = { ...result, content: text };
144
+ delete next.stdout;
145
+ delete next.stderr;
146
+ const blocks = arrayField(next.contentBlocks);
147
+ if (blocks) {
148
+ next.contentBlocks = blocks.map((block) => block.type === "text" ? { ...block, text } : sanitizePreviewValue(block));
149
+ }
150
+ return next;
151
+ }
152
+ function imagePlaceholder(block) {
153
+ if (block.type !== "image")
154
+ return block;
155
+ return {
156
+ type: "text",
157
+ text: `[Image omitted from transcript preview; open details to view ${String(block.mimeType ?? "image")}.]`,
158
+ };
159
+ }
160
+ function previewContentBlocks(result) {
161
+ const blocks = arrayField(result.contentBlocks);
162
+ if (!blocks) {
163
+ return {
164
+ result: sanitizePreviewValue(result),
165
+ hidden: 0,
166
+ hiddenLines: 0,
167
+ hiddenChars: 0,
168
+ };
169
+ }
170
+ let hiddenLines = 0;
171
+ let hiddenChars = 0;
172
+ const nextBlocks = blocks.map((block) => {
173
+ if (block.type === "image")
174
+ return imagePlaceholder(block);
175
+ if (block.type !== "text" || typeof block.text !== "string") {
176
+ return sanitizePreviewValue(block);
177
+ }
178
+ const preview = firstLines(block.text);
179
+ hiddenLines += preview.hiddenLines ?? 0;
180
+ hiddenChars += preview.hiddenChars ?? 0;
181
+ return { ...block, text: preview.value ?? "" };
182
+ });
183
+ return {
184
+ result: {
185
+ ...sanitizePreviewValue(result),
186
+ contentBlocks: nextBlocks,
187
+ },
188
+ hidden: visibleHiddenCount(hiddenLines, hiddenChars),
189
+ hiddenLines,
190
+ hiddenChars,
191
+ };
192
+ }
193
+ function sanitizePreviewValue(value) {
194
+ if (!value || typeof value !== "object")
195
+ return value;
196
+ if (Array.isArray(value)) {
197
+ return value.map((item) => sanitizePreviewValue(item));
198
+ }
199
+ const recordValue = value;
200
+ if (recordValue.type === "image")
201
+ return imagePlaceholder(recordValue);
202
+ const next = {};
203
+ for (const [key, nested] of Object.entries(recordValue)) {
204
+ next[key] = sanitizePreviewValue(nested);
205
+ }
206
+ return next;
207
+ }
208
+ function assignPathArgs(args) {
209
+ const next = { ...args };
210
+ return next;
211
+ }
212
+ function previewUnknown(value) {
213
+ if (typeof value === "string") {
214
+ const preview = firstLines(value);
215
+ return {
216
+ value: preview.value,
217
+ hiddenLines: preview.hiddenLines ?? 0,
218
+ hiddenChars: preview.hiddenChars ?? 0,
219
+ hiddenItems: 0,
220
+ };
221
+ }
222
+ if (Array.isArray(value)) {
223
+ const items = firstItems(value);
224
+ let hiddenLines = 0;
225
+ let hiddenChars = 0;
226
+ const previewItems = items.value?.map((item) => {
227
+ const preview = previewUnknown(item);
228
+ hiddenLines += preview.hiddenLines;
229
+ hiddenChars += preview.hiddenChars;
230
+ return preview.value;
231
+ });
232
+ return {
233
+ value: previewItems,
234
+ hiddenLines,
235
+ hiddenChars,
236
+ hiddenItems: items.hidden,
237
+ };
238
+ }
239
+ if (!value || typeof value !== "object") {
240
+ return { value, hiddenLines: 0, hiddenChars: 0, hiddenItems: 0 };
241
+ }
242
+ const recordValue = value;
243
+ if (recordValue.type === "image") {
244
+ return {
245
+ value: imagePlaceholder(recordValue),
246
+ hiddenLines: 0,
247
+ hiddenChars: 0,
248
+ hiddenItems: 0,
249
+ };
250
+ }
251
+ let hiddenLines = 0;
252
+ let hiddenChars = 0;
253
+ let hiddenItems = 0;
254
+ const next = {};
255
+ for (const [key, nested] of Object.entries(recordValue)) {
256
+ const preview = previewUnknown(nested);
257
+ next[key] = preview.value;
258
+ hiddenLines += preview.hiddenLines;
259
+ hiddenChars += preview.hiddenChars;
260
+ hiddenItems += preview.hiddenItems;
261
+ }
262
+ return { value: next, hiddenLines, hiddenChars, hiddenItems };
263
+ }
264
+ function overflow(hidden, noun, direction) {
265
+ return hidden > 0 ? { hidden, noun, direction } : undefined;
266
+ }
267
+ function textOverflowStats(previews) {
268
+ const hiddenLines = previews.reduce((total, preview) => total + (preview.hiddenLines ?? 0), 0);
269
+ const hiddenChars = previews.reduce((total, preview) => total + (preview.hiddenChars ?? 0), 0);
270
+ if (hiddenLines > 0)
271
+ return { hidden: hiddenLines, noun: "lines" };
272
+ return { hidden: hiddenChars, noun: "characters" };
273
+ }
274
+ function unknownOverflowStats(previews) {
275
+ const hiddenItems = previews.reduce((total, preview) => total + preview.hiddenItems, 0);
276
+ if (hiddenItems > 0)
277
+ return { hidden: hiddenItems, noun: "items" };
278
+ const hiddenLines = previews.reduce((total, preview) => total + preview.hiddenLines, 0);
279
+ if (hiddenLines > 0)
280
+ return { hidden: hiddenLines, noun: "lines" };
281
+ const hiddenChars = previews.reduce((total, preview) => total + preview.hiddenChars, 0);
282
+ return { hidden: hiddenChars, noun: "characters" };
283
+ }
284
+ function sortEntries(entries) {
285
+ return [...entries].sort((a, b) => {
286
+ if (a.kind === b.kind)
287
+ return String(a.path ?? "").localeCompare(String(b.path ?? ""));
288
+ return a.kind === "directory" ? -1 : 1;
289
+ });
290
+ }
291
+ export function toToolCallTranscriptRecord(toolCall) {
292
+ const { args, result, ...base } = toolCall;
293
+ const argsRecord = record(args);
294
+ const resultRecord = record(result);
295
+ let argsPreview = args;
296
+ let resultPreview = result;
297
+ let hidden = 0;
298
+ let noun = "lines";
299
+ let direction = "head";
300
+ switch (toolCall.toolName) {
301
+ case "read": {
302
+ argsPreview = assignPathArgs(argsRecord);
303
+ if (result && typeof result === "object") {
304
+ const text = stringField(resultRecord.content);
305
+ if (text !== undefined) {
306
+ const preview = firstLines(text);
307
+ resultPreview = withTextContent(resultRecord, preview.value);
308
+ ({ hidden, noun } = textOverflowStats([preview]));
309
+ }
310
+ else {
311
+ const blocks = previewContentBlocks(resultRecord);
312
+ resultPreview = blocks.result;
313
+ hidden = blocks.hidden;
314
+ noun = blocks.hiddenLines > 0 ? "lines" : "characters";
315
+ }
316
+ }
317
+ direction = "head";
318
+ break;
319
+ }
320
+ case "find": {
321
+ const entries = firstItems(arrayField(resultRecord.entries));
322
+ resultPreview = { ...resultRecord, entries: entries.value };
323
+ hidden = entries.hidden;
324
+ noun = "files";
325
+ direction = "head";
326
+ break;
327
+ }
328
+ case "grep": {
329
+ const matches = firstItems(arrayField(resultRecord.matches));
330
+ resultPreview = { ...resultRecord, matches: matches.value };
331
+ hidden = matches.hidden;
332
+ noun = "matches";
333
+ direction = "head";
334
+ break;
335
+ }
336
+ case "ls": {
337
+ const sorted = sortEntries(arrayField(resultRecord.entries) ?? []);
338
+ const entries = firstItems(sorted);
339
+ resultPreview = { ...resultRecord, entries: entries.value };
340
+ hidden = entries.hidden;
341
+ noun = "entries";
342
+ direction = "head";
343
+ break;
344
+ }
345
+ case "bash": {
346
+ const command = firstLines(stringField(argsRecord.command));
347
+ argsPreview = { ...argsRecord, command: command.value };
348
+ const output = lastLines(outputText(resultRecord));
349
+ resultPreview = withTextContent(resultRecord, output.value);
350
+ ({ hidden, noun } = textOverflowStats([command, output]));
351
+ direction =
352
+ command.hidden > 0 && output.hidden > 0
353
+ ? "mixed"
354
+ : output.hidden > 0
355
+ ? "tail"
356
+ : "head";
357
+ break;
358
+ }
359
+ case "python": {
360
+ const code = firstLines(stringField(argsRecord.code));
361
+ argsPreview =
362
+ code.value === undefined
363
+ ? argsRecord
364
+ : { ...argsRecord, code: code.value };
365
+ const output = lastLines(outputText(resultRecord));
366
+ resultPreview = withTextContent(resultRecord, output.value);
367
+ ({ hidden, noun } = textOverflowStats([code, output]));
368
+ direction =
369
+ code.hidden > 0 && output.hidden > 0
370
+ ? "mixed"
371
+ : output.hidden > 0
372
+ ? "tail"
373
+ : "head";
374
+ break;
375
+ }
376
+ case "write": {
377
+ const content = lastLines(stringField(argsRecord.content));
378
+ argsPreview =
379
+ content.value === undefined
380
+ ? argsRecord
381
+ : { ...argsRecord, content: content.value };
382
+ ({ hidden, noun } = textOverflowStats([content]));
383
+ direction = "tail";
384
+ break;
385
+ }
386
+ case "edit": {
387
+ const diff = lastLines(stringField(record(resultRecord.details).diff));
388
+ resultPreview = {
389
+ ...resultRecord,
390
+ details: diff.value === undefined
391
+ ? resultRecord.details
392
+ : { ...record(resultRecord.details), diff: diff.value },
393
+ };
394
+ ({ hidden, noun } = textOverflowStats([diff]));
395
+ direction = "tail";
396
+ break;
397
+ }
398
+ case "task_logs": {
399
+ const events = lastItems(arrayField(resultRecord.events));
400
+ resultPreview = { ...resultRecord, events: events.value };
401
+ hidden = events.hidden;
402
+ noun = "events";
403
+ direction = "tail";
404
+ break;
405
+ }
406
+ case "plan_mode_present": {
407
+ const review = record(resultRecord.review);
408
+ const content = firstLines(stringField(review.content));
409
+ resultPreview = {
410
+ ...resultRecord,
411
+ review: content.value === undefined
412
+ ? resultRecord.review
413
+ : { ...review, content: content.value },
414
+ };
415
+ ({ hidden, noun } = textOverflowStats([content]));
416
+ direction = "head";
417
+ break;
418
+ }
419
+ case "todos_set":
420
+ case "todos_get": {
421
+ // Todo lists are short, presentational checklists. Keep the full list in
422
+ // both previews so the timeline card and the composer todo chip can
423
+ // reflect every item and an accurate completed/total count.
424
+ break;
425
+ }
426
+ default: {
427
+ const argsBound = previewUnknown(args);
428
+ const resultBound = previewUnknown(result);
429
+ argsPreview = argsBound.value;
430
+ resultPreview = resultBound.value;
431
+ ({ hidden, noun } = unknownOverflowStats([argsBound, resultBound]));
432
+ direction = "head";
433
+ }
434
+ }
435
+ return {
436
+ ...base,
437
+ argsPreview,
438
+ resultPreview,
439
+ previewOverflow: overflow(hidden, noun, direction),
440
+ };
441
+ }
442
+ //# sourceMappingURL=tool-call-transcript-preview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-call-transcript-preview.js","sourceRoot":"","sources":["../../../src/domains/tools/tool-call-transcript-preview.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call.repository.d.ts","sourceRoot":"","sources":["../../../src/domains/tools/tool-call.repository.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAEL,KAAK,kBAAkB,EAGxB,MAAM,uCAAuC,CAAC;AAE/C,qBAAa,kBAAkB;IAI3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJxB,QAAQ,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAqC;gBAGlC,OAAO,EAAE,kBAAkB,EAC3B,KAAK,EAAE,UAAU;IAG9B,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAS1C,IAAI,IAAI,cAAc,EAAE;IAMxB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc;IAMvC,wBAAwB,CACtB,kBAAkB,EAAE,MAAM,GAAG,SAAS,GACrC,cAAc,GAAG,SAAS;IASvB,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/C,sBAAsB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzE;;;;;OAKG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvC,aAAa,IAAI,MAAM;YAIT,UAAU;IAOxB,OAAO,CAAC,IAAI;CAGb"}
1
+ {"version":3,"file":"tool-call.repository.d.ts","sourceRoot":"","sources":["../../../src/domains/tools/tool-call.repository.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAGL,KAAK,kBAAkB,EAExB,MAAM,uCAAuC,CAAC;AAE/C,qBAAa,kBAAkB;IAI3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJxB,QAAQ,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAqC;gBAGlC,OAAO,EAAE,kBAAkB,EAC3B,KAAK,EAAE,UAAU;IAG9B,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAS1C,IAAI,IAAI,cAAc,EAAE;IAMxB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc;IAMvC,wBAAwB,CACtB,kBAAkB,EAAE,MAAM,GAAG,SAAS,GACrC,cAAc,GAAG,SAAS;IASvB,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/C,sBAAsB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzE;;;;;OAKG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvC,aAAa,IAAI,MAAM;YAIT,UAAU;IAQxB,OAAO,CAAC,IAAI;CAGb"}
@@ -1,5 +1,5 @@
1
1
  import { join } from "node:path";
2
- import { appendJsonLine, readJsonLines, rewriteJsonLines, } from "../../infrastructure/storage/index.js";
2
+ import { appendJsonLine, forEachJsonLine, rewriteJsonLines, } from "../../infrastructure/storage/index.js";
3
3
  export class ToolCallRepository {
4
4
  storage;
5
5
  index;
@@ -58,17 +58,14 @@ export class ToolCallRepository {
58
58
  return this.path();
59
59
  }
60
60
  async readLatest() {
61
- const values = await readJsonLines(this.path()).catch(() => []);
62
- return latestById(values);
61
+ const byId = new Map();
62
+ await forEachJsonLine(this.path(), (toolCall) => {
63
+ byId.set(toolCall.id, toolCall);
64
+ }).catch(() => undefined);
65
+ return [...byId.values()];
63
66
  }
64
67
  path() {
65
68
  return join(this.storage.paths.home, "logs", "tool-calls.jsonl");
66
69
  }
67
70
  }
68
- function latestById(values) {
69
- const byId = new Map();
70
- for (const value of values)
71
- byId.set(value.id, value);
72
- return [...byId.values()];
73
- }
74
71
  //# sourceMappingURL=tool-call.repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call.repository.js","sourceRoot":"","sources":["../../../src/domains/tools/tool-call.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-call.repository.js","sourceRoot":"","sources":["../../../src/domains/tools/tool-call.repository.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { ToolCallRecord } from "@nervekit/shared";
2
- import type { ApplicationLogger } from "../../logging.js";
2
+ import type { ApplicationLogger } from "../../infrastructure/diagnostics/index.js";
3
3
  import type { OrchestrationToolDispatcher } from "./orchestration-tool-dispatcher.js";
4
4
  import type { ToolRequestOptions } from "./tool-service.js";
5
5
  export interface ToolExecutorDeps {
@@ -1 +1 @@
1
- {"version":3,"file":"tool-executor.service.d.ts","sourceRoot":"","sources":["../../../src/domains/tools/tool-executor.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAItF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,CAAC;IACxC,cAAc,CACZ,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GACvD,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3B,sBAAsB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,UAAU,EAAE,2BAA2B,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAED,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,gBAAgB;IAE7C,kBAAkB,CACtB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,cAAc,CAAC;CA2E3B"}
1
+ {"version":3,"file":"tool-executor.service.d.ts","sourceRoot":"","sources":["../../../src/domains/tools/tool-executor.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAKtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,CAAC;IACxC,cAAc,CACZ,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GACvD,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3B,sBAAsB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,UAAU,EAAE,2BAA2B,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAED,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,gBAAgB;IAE7C,kBAAkB,CACtB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,cAAc,CAAC;CA6E3B"}
@@ -1,6 +1,7 @@
1
1
  import { toolErrorDetails } from "./tool-errors.js";
2
2
  import { isToolExecutionSuspended } from "./tool-execution-suspension.js";
3
3
  import { boundToolResultForStorage } from "./tool-result-bounds.js";
4
+ import { annotateToolResultModelLimits } from "./tool-result-model-limits.js";
4
5
  export class ToolExecutorService {
5
6
  deps;
6
7
  constructor(deps) {
@@ -23,10 +24,10 @@ export class ToolExecutorService {
23
24
  try {
24
25
  const args = { ...toolCall.args };
25
26
  const result = await this.deps.dispatcher.execute(toolCall, args, options);
26
- const boundedResult = await boundToolResultForStorage(result, {
27
+ const boundedResult = annotateToolResultModelLimits(await boundToolResultForStorage(result, {
27
28
  toolCallId: toolCall.id,
28
29
  storageHome: this.deps.storageHome,
29
- });
30
+ }));
30
31
  const completed = await this.deps.updateToolCall(toolCall.id, {
31
32
  status: "completed",
32
33
  result: boundedResult,
@@ -1 +1 @@
1
- {"version":3,"file":"tool-executor.service.js","sourceRoot":"","sources":["../../../src/domains/tools/tool-executor.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAepE,MAAM,OAAO,mBAAmB;IACD;IAA7B,YAA6B,IAAsB;QAAtB,SAAI,GAAJ,IAAI,CAAkB;IAAG,CAAC;IAEvD,KAAK,CAAC,kBAAkB,CACtB,UAAkB,EAClB,UAA8B,EAAE;QAEhC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;YAC1D,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,wBAAwB,EAAE;YACrD,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,cAAc,EAAE,QAAQ,CAAC,cAAc;YACvC,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;SAC9D,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,EAAE,GAAI,QAAQ,CAAC,IAAgC,EAAE,CAAC;YAC/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAC/C,QAAQ,EACR,IAAI,EACJ,OAAO,CACR,CAAC;YACF,MAAM,aAAa,GAAG,MAAM,yBAAyB,CAAC,MAAM,EAAE;gBAC5D,UAAU,EAAE,QAAQ,CAAC,EAAE;gBACvB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;aACnC,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE;gBAC5D,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,aAAa;gBACrB,KAAK,EAAE,SAAS;gBAChB,YAAY,EAAE,SAAS;aACxB,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAClD,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,0BAA0B,EAAE;gBACvD,UAAU,EAAE,SAAS,CAAC,EAAE;gBACxB,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,cAAc,EAAE,SAAS,CAAC,cAAc;gBACxC,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;gBACnD,OAAO,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE;aAC1C,CAAC,CAAC;YACH,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,0BAA0B,EAAE;oBACvD,UAAU,EAAE,QAAQ,CAAC,EAAE;oBACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,cAAc,EAAE,QAAQ,CAAC,cAAc;oBACvC,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;oBACnD,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;iBACzC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE;gBACzD,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,OAAO,CAAC,OAAO;gBACtB,YAAY,EAAE,OAAO;aACtB,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,uBAAuB,EAAE;gBACrD,UAAU,EAAE,MAAM,CAAC,EAAE;gBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;gBACnD,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;gBACtC,KAAK;aACN,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"tool-executor.service.js","sourceRoot":"","sources":["../../../src/domains/tools/tool-executor.service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-result-bounds.d.ts","sourceRoot":"","sources":["../../../src/domains/tools/tool-result-bounds.ts"],"names":[],"mappings":"AAwBA,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,OAAO,EACf,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACjD,OAAO,CAAC,OAAO,CAAC,CAUlB"}
1
+ {"version":3,"file":"tool-result-bounds.d.ts","sourceRoot":"","sources":["../../../src/domains/tools/tool-result-bounds.ts"],"names":[],"mappings":"AA0BA,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,OAAO,EACf,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACjD,OAAO,CAAC,OAAO,CAAC,CAUlB"}
@@ -37,6 +37,7 @@ function boundValue(value, path) {
37
37
  truncatedStrings: 1,
38
38
  omittedLines: bounded.omittedLines,
39
39
  omittedBytes: bounded.omittedBytes,
40
+ omittedChars: bounded.omittedChars,
40
41
  truncatedLines: bounded.truncatedLines,
41
42
  },
42
43
  };
@@ -63,20 +64,31 @@ function boundValue(value, path) {
63
64
  return { value: output, summary };
64
65
  }
65
66
  function attachRawResultDetails(value, rawResultPath, summary) {
67
+ const storageLimit = {
68
+ truncated: true,
69
+ omittedLines: summary.omittedLines,
70
+ omittedBytes: summary.omittedBytes,
71
+ omittedChars: summary.omittedChars,
72
+ truncatedLines: summary.truncatedLines,
73
+ maxBytes: summary.maxBytes,
74
+ maxLines: summary.maxLines,
75
+ maxLineChars: summary.maxLineChars,
76
+ rawResultPath,
77
+ };
66
78
  const details = {
67
79
  rawResultPath,
68
80
  outputLimits: {
69
81
  ...summary,
70
82
  rawResultPath,
71
- truncation: {
72
- truncated: true,
73
- omittedLines: summary.omittedLines,
74
- omittedBytes: summary.omittedBytes,
75
- truncatedLines: summary.truncatedLines,
76
- maxBytes: summary.maxBytes,
77
- maxLines: summary.maxLines,
78
- maxLineChars: summary.maxLineChars,
79
- },
83
+ truncation: storageLimit,
84
+ storage: storageLimit,
85
+ artifacts: [
86
+ {
87
+ kind: "raw_result",
88
+ path: rawResultPath,
89
+ label: "Raw result",
90
+ },
91
+ ],
80
92
  },
81
93
  };
82
94
  if (value && typeof value === "object" && !Array.isArray(value)) {
@@ -128,6 +140,7 @@ function emptySummary() {
128
140
  truncatedStrings: 0,
129
141
  omittedLines: 0,
130
142
  omittedBytes: 0,
143
+ omittedChars: 0,
131
144
  truncatedLines: 0,
132
145
  maxBytes: STORAGE_TEXT_MAX_BYTES,
133
146
  maxLines: STORAGE_TEXT_MAX_LINES,
@@ -140,6 +153,7 @@ function mergeSummary(left, right) {
140
153
  truncatedStrings: left.truncatedStrings + right.truncatedStrings,
141
154
  omittedLines: left.omittedLines + right.omittedLines,
142
155
  omittedBytes: left.omittedBytes + right.omittedBytes,
156
+ omittedChars: left.omittedChars + right.omittedChars,
143
157
  truncatedLines: left.truncatedLines + right.truncatedLines,
144
158
  maxBytes: Math.min(left.maxBytes, right.maxBytes),
145
159
  maxLines: Math.min(left.maxLines, right.maxLines),