@qjp88995/agent-runtime 0.0.0-stage → 0.1.1

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 (477) hide show
  1. package/dist/agent-extensions.d.ts +30 -0
  2. package/dist/agent-extensions.d.ts.map +1 -0
  3. package/dist/agent-extensions.js +4 -0
  4. package/dist/agent-extensions.js.map +1 -0
  5. package/dist/builtins/ask-outcome.d.ts +49 -0
  6. package/dist/builtins/ask-outcome.d.ts.map +1 -0
  7. package/dist/builtins/ask-outcome.js +128 -0
  8. package/dist/builtins/ask-outcome.js.map +1 -0
  9. package/dist/builtins/ask-schema.d.ts +110 -0
  10. package/dist/builtins/ask-schema.d.ts.map +1 -0
  11. package/dist/builtins/ask-schema.js +124 -0
  12. package/dist/builtins/ask-schema.js.map +1 -0
  13. package/dist/builtins/ask.service.d.ts +210 -0
  14. package/dist/builtins/ask.service.d.ts.map +1 -0
  15. package/dist/builtins/ask.service.js +373 -0
  16. package/dist/builtins/ask.service.js.map +1 -0
  17. package/dist/builtins/ask.tool.d.ts +49 -0
  18. package/dist/builtins/ask.tool.d.ts.map +1 -0
  19. package/dist/builtins/ask.tool.js +109 -0
  20. package/dist/builtins/ask.tool.js.map +1 -0
  21. package/dist/builtins/index.d.ts +8 -0
  22. package/dist/builtins/index.d.ts.map +1 -0
  23. package/dist/builtins/index.js +8 -0
  24. package/dist/builtins/index.js.map +1 -0
  25. package/dist/builtins/todo-schema.d.ts +90 -0
  26. package/dist/builtins/todo-schema.d.ts.map +1 -0
  27. package/dist/builtins/todo-schema.js +97 -0
  28. package/dist/builtins/todo-schema.js.map +1 -0
  29. package/dist/builtins/todo-settle.hook.d.ts +110 -0
  30. package/dist/builtins/todo-settle.hook.d.ts.map +1 -0
  31. package/dist/builtins/todo-settle.hook.js +174 -0
  32. package/dist/builtins/todo-settle.hook.js.map +1 -0
  33. package/dist/builtins/todo.tool.d.ts +59 -0
  34. package/dist/builtins/todo.tool.d.ts.map +1 -0
  35. package/dist/builtins/todo.tool.js +107 -0
  36. package/dist/builtins/todo.tool.js.map +1 -0
  37. package/dist/context/context-budget-tracker.d.ts +185 -0
  38. package/dist/context/context-budget-tracker.d.ts.map +1 -0
  39. package/dist/context/context-budget-tracker.js +400 -0
  40. package/dist/context/context-budget-tracker.js.map +1 -0
  41. package/dist/context/context-budget.d.ts +48 -0
  42. package/dist/context/context-budget.d.ts.map +1 -0
  43. package/dist/context/context-budget.js +89 -0
  44. package/dist/context/context-budget.js.map +1 -0
  45. package/dist/context/index.d.ts +3 -0
  46. package/dist/context/index.d.ts.map +1 -0
  47. package/dist/context/index.js +3 -0
  48. package/dist/context/index.js.map +1 -0
  49. package/dist/extensions/repeat-call.hook.d.ts +32 -0
  50. package/dist/extensions/repeat-call.hook.d.ts.map +1 -0
  51. package/dist/extensions/repeat-call.hook.js +54 -0
  52. package/dist/extensions/repeat-call.hook.js.map +1 -0
  53. package/dist/hooks/index.d.ts +3 -0
  54. package/dist/hooks/index.d.ts.map +1 -0
  55. package/dist/hooks/index.js +3 -0
  56. package/dist/hooks/index.js.map +1 -0
  57. package/dist/hooks/turn-hook.registry.d.ts +51 -0
  58. package/dist/hooks/turn-hook.registry.d.ts.map +1 -0
  59. package/dist/hooks/turn-hook.registry.js +233 -0
  60. package/dist/hooks/turn-hook.registry.js.map +1 -0
  61. package/dist/hooks/turn-hook.types.d.ts +179 -0
  62. package/dist/hooks/turn-hook.types.d.ts.map +1 -0
  63. package/dist/hooks/turn-hook.types.js +48 -0
  64. package/dist/hooks/turn-hook.types.js.map +1 -0
  65. package/dist/images/byte-cache.d.ts +24 -0
  66. package/dist/images/byte-cache.d.ts.map +1 -0
  67. package/dist/images/byte-cache.js +51 -0
  68. package/dist/images/byte-cache.js.map +1 -0
  69. package/dist/images/delivery.d.ts +115 -0
  70. package/dist/images/delivery.d.ts.map +1 -0
  71. package/dist/images/delivery.js +321 -0
  72. package/dist/images/delivery.js.map +1 -0
  73. package/dist/images/index.d.ts +5 -0
  74. package/dist/images/index.d.ts.map +1 -0
  75. package/dist/images/index.js +5 -0
  76. package/dist/images/index.js.map +1 -0
  77. package/dist/images/prompt.d.ts +151 -0
  78. package/dist/images/prompt.d.ts.map +1 -0
  79. package/dist/images/prompt.js +172 -0
  80. package/dist/images/prompt.js.map +1 -0
  81. package/dist/images/vendor-files.d.ts +93 -0
  82. package/dist/images/vendor-files.d.ts.map +1 -0
  83. package/dist/images/vendor-files.js +156 -0
  84. package/dist/images/vendor-files.js.map +1 -0
  85. package/dist/in-process/conversation-store.d.ts +64 -0
  86. package/dist/in-process/conversation-store.d.ts.map +1 -0
  87. package/dist/in-process/conversation-store.js +222 -0
  88. package/dist/in-process/conversation-store.js.map +1 -0
  89. package/dist/in-process/coordination.d.ts +54 -0
  90. package/dist/in-process/coordination.d.ts.map +1 -0
  91. package/dist/in-process/coordination.js +137 -0
  92. package/dist/in-process/coordination.js.map +1 -0
  93. package/dist/in-process/image-source.d.ts +15 -0
  94. package/dist/in-process/image-source.d.ts.map +1 -0
  95. package/dist/in-process/image-source.js +27 -0
  96. package/dist/in-process/image-source.js.map +1 -0
  97. package/dist/in-process/index.d.ts +36 -0
  98. package/dist/in-process/index.d.ts.map +1 -0
  99. package/dist/in-process/index.js +37 -0
  100. package/dist/in-process/index.js.map +1 -0
  101. package/dist/in-process/question-store.d.ts +28 -0
  102. package/dist/in-process/question-store.d.ts.map +1 -0
  103. package/dist/in-process/question-store.js +122 -0
  104. package/dist/in-process/question-store.js.map +1 -0
  105. package/dist/in-process/run-store.d.ts +36 -0
  106. package/dist/in-process/run-store.d.ts.map +1 -0
  107. package/dist/in-process/run-store.js +81 -0
  108. package/dist/in-process/run-store.js.map +1 -0
  109. package/dist/in-process/session-store.d.ts +33 -0
  110. package/dist/in-process/session-store.d.ts.map +1 -0
  111. package/dist/in-process/session-store.js +93 -0
  112. package/dist/in-process/session-store.js.map +1 -0
  113. package/dist/in-process/stream-bus.d.ts +52 -0
  114. package/dist/in-process/stream-bus.d.ts.map +1 -0
  115. package/dist/in-process/stream-bus.js +200 -0
  116. package/dist/in-process/stream-bus.js.map +1 -0
  117. package/dist/in-process/vendor-file-cache.d.ts +11 -0
  118. package/dist/in-process/vendor-file-cache.d.ts.map +1 -0
  119. package/dist/in-process/vendor-file-cache.js +47 -0
  120. package/dist/in-process/vendor-file-cache.js.map +1 -0
  121. package/dist/index.d.ts +21 -0
  122. package/dist/index.d.ts.map +1 -0
  123. package/dist/index.js +21 -0
  124. package/dist/index.js.map +1 -0
  125. package/dist/loop/active-tick.registry.d.ts +31 -0
  126. package/dist/loop/active-tick.registry.d.ts.map +1 -0
  127. package/dist/loop/active-tick.registry.js +45 -0
  128. package/dist/loop/active-tick.registry.js.map +1 -0
  129. package/dist/loop/index.d.ts +6 -0
  130. package/dist/loop/index.d.ts.map +1 -0
  131. package/dist/loop/index.js +6 -0
  132. package/dist/loop/index.js.map +1 -0
  133. package/dist/loop/loop-driver.d.ts +127 -0
  134. package/dist/loop/loop-driver.d.ts.map +1 -0
  135. package/dist/loop/loop-driver.js +199 -0
  136. package/dist/loop/loop-driver.js.map +1 -0
  137. package/dist/loop/message-hub.d.ts +236 -0
  138. package/dist/loop/message-hub.d.ts.map +1 -0
  139. package/dist/loop/message-hub.js +439 -0
  140. package/dist/loop/message-hub.js.map +1 -0
  141. package/dist/loop/orphan-run.sweeper.d.ts +79 -0
  142. package/dist/loop/orphan-run.sweeper.d.ts.map +1 -0
  143. package/dist/loop/orphan-run.sweeper.js +145 -0
  144. package/dist/loop/orphan-run.sweeper.js.map +1 -0
  145. package/dist/loop/root-host.d.ts +51 -0
  146. package/dist/loop/root-host.d.ts.map +1 -0
  147. package/dist/loop/root-host.js +65 -0
  148. package/dist/loop/root-host.js.map +1 -0
  149. package/dist/ports/context-store.d.ts +69 -0
  150. package/dist/ports/context-store.d.ts.map +1 -0
  151. package/dist/ports/context-store.js +2 -0
  152. package/dist/ports/context-store.js.map +1 -0
  153. package/dist/ports/conversation-store.d.ts +144 -0
  154. package/dist/ports/conversation-store.d.ts.map +1 -0
  155. package/dist/ports/conversation-store.js +2 -0
  156. package/dist/ports/conversation-store.js.map +1 -0
  157. package/dist/ports/coordination.d.ts +76 -0
  158. package/dist/ports/coordination.d.ts.map +1 -0
  159. package/dist/ports/coordination.js +12 -0
  160. package/dist/ports/coordination.js.map +1 -0
  161. package/dist/ports/image-source.d.ts +26 -0
  162. package/dist/ports/image-source.d.ts.map +1 -0
  163. package/dist/ports/image-source.js +2 -0
  164. package/dist/ports/image-source.js.map +1 -0
  165. package/dist/ports/index.d.ts +11 -0
  166. package/dist/ports/index.d.ts.map +1 -0
  167. package/dist/ports/index.js +4 -0
  168. package/dist/ports/index.js.map +1 -0
  169. package/dist/ports/logger.d.ts +14 -0
  170. package/dist/ports/logger.d.ts.map +1 -0
  171. package/dist/ports/logger.js +23 -0
  172. package/dist/ports/logger.js.map +1 -0
  173. package/dist/ports/question-store.d.ts +91 -0
  174. package/dist/ports/question-store.d.ts.map +1 -0
  175. package/dist/ports/question-store.js +8 -0
  176. package/dist/ports/question-store.js.map +1 -0
  177. package/dist/ports/run-store.d.ts +66 -0
  178. package/dist/ports/run-store.d.ts.map +1 -0
  179. package/dist/ports/run-store.js +2 -0
  180. package/dist/ports/run-store.js.map +1 -0
  181. package/dist/ports/session-store.d.ts +72 -0
  182. package/dist/ports/session-store.d.ts.map +1 -0
  183. package/dist/ports/session-store.js +9 -0
  184. package/dist/ports/session-store.js.map +1 -0
  185. package/dist/ports/stream-bus.d.ts +52 -0
  186. package/dist/ports/stream-bus.d.ts.map +1 -0
  187. package/dist/ports/stream-bus.js +2 -0
  188. package/dist/ports/stream-bus.js.map +1 -0
  189. package/dist/ports/vendor-file-cache.d.ts +46 -0
  190. package/dist/ports/vendor-file-cache.d.ts.map +1 -0
  191. package/dist/ports/vendor-file-cache.js +2 -0
  192. package/dist/ports/vendor-file-cache.js.map +1 -0
  193. package/dist/schema/agent-event.d.ts +35 -0
  194. package/dist/schema/agent-event.d.ts.map +1 -0
  195. package/dist/schema/agent-event.js +46 -0
  196. package/dist/schema/agent-event.js.map +1 -0
  197. package/dist/schema/agent-run.d.ts +23 -0
  198. package/dist/schema/agent-run.d.ts.map +1 -0
  199. package/dist/schema/agent-run.js +37 -0
  200. package/dist/schema/agent-run.js.map +1 -0
  201. package/dist/schema/index.d.ts +4 -0
  202. package/dist/schema/index.d.ts.map +1 -0
  203. package/dist/schema/index.js +4 -0
  204. package/dist/schema/index.js.map +1 -0
  205. package/dist/schema/message-part.d.ts +73 -0
  206. package/dist/schema/message-part.d.ts.map +1 -0
  207. package/dist/schema/message-part.js +90 -0
  208. package/dist/schema/message-part.js.map +1 -0
  209. package/dist/subagent/delegate.tool.d.ts +145 -0
  210. package/dist/subagent/delegate.tool.d.ts.map +1 -0
  211. package/dist/subagent/delegate.tool.js +329 -0
  212. package/dist/subagent/delegate.tool.js.map +1 -0
  213. package/dist/subagent/index.d.ts +10 -0
  214. package/dist/subagent/index.d.ts.map +1 -0
  215. package/dist/subagent/index.js +10 -0
  216. package/dist/subagent/index.js.map +1 -0
  217. package/dist/subagent/milestone-body.d.ts +82 -0
  218. package/dist/subagent/milestone-body.d.ts.map +1 -0
  219. package/dist/subagent/milestone-body.js +112 -0
  220. package/dist/subagent/milestone-body.js.map +1 -0
  221. package/dist/subagent/output-scan.d.ts +14 -0
  222. package/dist/subagent/output-scan.d.ts.map +1 -0
  223. package/dist/subagent/output-scan.js +41 -0
  224. package/dist/subagent/output-scan.js.map +1 -0
  225. package/dist/subagent/registry-spawn-policy.d.ts +32 -0
  226. package/dist/subagent/registry-spawn-policy.d.ts.map +1 -0
  227. package/dist/subagent/registry-spawn-policy.js +48 -0
  228. package/dist/subagent/registry-spawn-policy.js.map +1 -0
  229. package/dist/subagent/roster-block.d.ts +45 -0
  230. package/dist/subagent/roster-block.d.ts.map +1 -0
  231. package/dist/subagent/roster-block.js +69 -0
  232. package/dist/subagent/roster-block.js.map +1 -0
  233. package/dist/subagent/situation-block.d.ts +16 -0
  234. package/dist/subagent/situation-block.d.ts.map +1 -0
  235. package/dist/subagent/situation-block.js +71 -0
  236. package/dist/subagent/situation-block.js.map +1 -0
  237. package/dist/subagent/spawn-guards.d.ts +32 -0
  238. package/dist/subagent/spawn-guards.d.ts.map +1 -0
  239. package/dist/subagent/spawn-guards.js +39 -0
  240. package/dist/subagent/spawn-guards.js.map +1 -0
  241. package/dist/subagent/subagent-registry.d.ts +150 -0
  242. package/dist/subagent/subagent-registry.d.ts.map +1 -0
  243. package/dist/subagent/subagent-registry.js +167 -0
  244. package/dist/subagent/subagent-registry.js.map +1 -0
  245. package/dist/subagent/subagent-sessions.d.ts +213 -0
  246. package/dist/subagent/subagent-sessions.d.ts.map +1 -0
  247. package/dist/subagent/subagent-sessions.js +295 -0
  248. package/dist/subagent/subagent-sessions.js.map +1 -0
  249. package/dist/testing/contracts.d.ts +37 -0
  250. package/dist/testing/contracts.d.ts.map +1 -0
  251. package/dist/testing/contracts.js +607 -0
  252. package/dist/testing/contracts.js.map +1 -0
  253. package/dist/testing/index.d.ts +5 -0
  254. package/dist/testing/index.d.ts.map +1 -0
  255. package/dist/testing/index.js +5 -0
  256. package/dist/testing/index.js.map +1 -0
  257. package/dist/testing/stub.d.ts +28 -0
  258. package/dist/testing/stub.d.ts.map +1 -0
  259. package/dist/testing/stub.js +3 -0
  260. package/dist/testing/stub.js.map +1 -0
  261. package/dist/tools/agent-tool.base.d.ts +186 -0
  262. package/dist/tools/agent-tool.base.d.ts.map +1 -0
  263. package/dist/tools/agent-tool.base.js +243 -0
  264. package/dist/tools/agent-tool.base.js.map +1 -0
  265. package/dist/tools/agent-tool.interface.d.ts +95 -0
  266. package/dist/tools/agent-tool.interface.d.ts.map +1 -0
  267. package/dist/tools/agent-tool.interface.js +2 -0
  268. package/dist/tools/agent-tool.interface.js.map +1 -0
  269. package/dist/tools/builtin-names.d.ts +18 -0
  270. package/dist/tools/builtin-names.d.ts.map +1 -0
  271. package/dist/tools/builtin-names.js +20 -0
  272. package/dist/tools/builtin-names.js.map +1 -0
  273. package/dist/tools/index.d.ts +9 -0
  274. package/dist/tools/index.d.ts.map +1 -0
  275. package/dist/tools/index.js +6 -0
  276. package/dist/tools/index.js.map +1 -0
  277. package/dist/tools/tool-definition.d.ts +18 -0
  278. package/dist/tools/tool-definition.d.ts.map +1 -0
  279. package/dist/tools/tool-definition.js +77 -0
  280. package/dist/tools/tool-definition.js.map +1 -0
  281. package/dist/tools/tool-meta.d.ts +55 -0
  282. package/dist/tools/tool-meta.d.ts.map +1 -0
  283. package/dist/tools/tool-meta.js +2 -0
  284. package/dist/tools/tool-meta.js.map +1 -0
  285. package/dist/tools/tool-registry.d.ts +190 -0
  286. package/dist/tools/tool-registry.d.ts.map +1 -0
  287. package/dist/tools/tool-registry.js +379 -0
  288. package/dist/tools/tool-registry.js.map +1 -0
  289. package/dist/tools/tool-result.d.ts +41 -0
  290. package/dist/tools/tool-result.d.ts.map +1 -0
  291. package/dist/tools/tool-result.js +19 -0
  292. package/dist/tools/tool-result.js.map +1 -0
  293. package/dist/tools/tool-wire.d.ts +24 -0
  294. package/dist/tools/tool-wire.d.ts.map +1 -0
  295. package/dist/tools/tool-wire.js +2 -0
  296. package/dist/tools/tool-wire.js.map +1 -0
  297. package/dist/turn/agent-runtime.d.ts +31 -0
  298. package/dist/turn/agent-runtime.d.ts.map +1 -0
  299. package/dist/turn/agent-runtime.js +30 -0
  300. package/dist/turn/agent-runtime.js.map +1 -0
  301. package/dist/turn/chunk-projection.d.ts +32 -0
  302. package/dist/turn/chunk-projection.d.ts.map +1 -0
  303. package/dist/turn/chunk-projection.js +62 -0
  304. package/dist/turn/chunk-projection.js.map +1 -0
  305. package/dist/turn/compaction.d.ts +48 -0
  306. package/dist/turn/compaction.d.ts.map +1 -0
  307. package/dist/turn/compaction.js +89 -0
  308. package/dist/turn/compaction.js.map +1 -0
  309. package/dist/turn/context-overflow.d.ts +11 -0
  310. package/dist/turn/context-overflow.d.ts.map +1 -0
  311. package/dist/turn/context-overflow.js +53 -0
  312. package/dist/turn/context-overflow.js.map +1 -0
  313. package/dist/turn/context-pressure.d.ts +100 -0
  314. package/dist/turn/context-pressure.d.ts.map +1 -0
  315. package/dist/turn/context-pressure.js +21 -0
  316. package/dist/turn/context-pressure.js.map +1 -0
  317. package/dist/turn/events-to-steps.d.ts +8 -0
  318. package/dist/turn/events-to-steps.d.ts.map +1 -0
  319. package/dist/turn/events-to-steps.js +64 -0
  320. package/dist/turn/events-to-steps.js.map +1 -0
  321. package/dist/turn/index.d.ts +17 -0
  322. package/dist/turn/index.d.ts.map +1 -0
  323. package/dist/turn/index.js +16 -0
  324. package/dist/turn/index.js.map +1 -0
  325. package/dist/turn/json-preview.d.ts +22 -0
  326. package/dist/turn/json-preview.d.ts.map +1 -0
  327. package/dist/turn/json-preview.js +34 -0
  328. package/dist/turn/json-preview.js.map +1 -0
  329. package/dist/turn/json-string-field.d.ts +30 -0
  330. package/dist/turn/json-string-field.d.ts.map +1 -0
  331. package/dist/turn/json-string-field.js +125 -0
  332. package/dist/turn/json-string-field.js.map +1 -0
  333. package/dist/turn/loop-reminder.d.ts +79 -0
  334. package/dist/turn/loop-reminder.d.ts.map +1 -0
  335. package/dist/turn/loop-reminder.js +0 -0
  336. package/dist/turn/loop-reminder.js.map +1 -0
  337. package/dist/turn/nul-safe.d.ts +21 -0
  338. package/dist/turn/nul-safe.d.ts.map +1 -0
  339. package/dist/turn/nul-safe.js +23 -0
  340. package/dist/turn/nul-safe.js.map +1 -0
  341. package/dist/turn/parts-from-events.d.ts +71 -0
  342. package/dist/turn/parts-from-events.d.ts.map +1 -0
  343. package/dist/turn/parts-from-events.js +217 -0
  344. package/dist/turn/parts-from-events.js.map +1 -0
  345. package/dist/turn/parts-to-model-messages.d.ts +158 -0
  346. package/dist/turn/parts-to-model-messages.d.ts.map +1 -0
  347. package/dist/turn/parts-to-model-messages.js +334 -0
  348. package/dist/turn/parts-to-model-messages.js.map +1 -0
  349. package/dist/turn/pending-work.d.ts +10 -0
  350. package/dist/turn/pending-work.d.ts.map +1 -0
  351. package/dist/turn/pending-work.js +14 -0
  352. package/dist/turn/pending-work.js.map +1 -0
  353. package/dist/turn/provider-error.d.ts +45 -0
  354. package/dist/turn/provider-error.d.ts.map +1 -0
  355. package/dist/turn/provider-error.js +154 -0
  356. package/dist/turn/provider-error.js.map +1 -0
  357. package/dist/turn/tool-input-preview.d.ts +94 -0
  358. package/dist/turn/tool-input-preview.d.ts.map +1 -0
  359. package/dist/turn/tool-input-preview.js +143 -0
  360. package/dist/turn/tool-input-preview.js.map +1 -0
  361. package/dist/turn/tool-input-progress.d.ts +47 -0
  362. package/dist/turn/tool-input-progress.d.ts.map +1 -0
  363. package/dist/turn/tool-input-progress.js +50 -0
  364. package/dist/turn/tool-input-progress.js.map +1 -0
  365. package/dist/turn/turn-envelope.d.ts +184 -0
  366. package/dist/turn/turn-envelope.d.ts.map +1 -0
  367. package/dist/turn/turn-envelope.js +2 -0
  368. package/dist/turn/turn-envelope.js.map +1 -0
  369. package/dist/turn/turn-journal.d.ts +49 -0
  370. package/dist/turn/turn-journal.d.ts.map +1 -0
  371. package/dist/turn/turn-journal.js +51 -0
  372. package/dist/turn/turn-journal.js.map +1 -0
  373. package/dist/turn/turn-run.d.ts +487 -0
  374. package/dist/turn/turn-run.d.ts.map +1 -0
  375. package/dist/turn/turn-run.js +1167 -0
  376. package/dist/turn/turn-run.js.map +1 -0
  377. package/dist/turn/usage.d.ts +27 -0
  378. package/dist/turn/usage.d.ts.map +1 -0
  379. package/dist/turn/usage.js +51 -0
  380. package/dist/turn/usage.js.map +1 -0
  381. package/package.json +59 -3
  382. package/src/agent-extensions.ts +33 -0
  383. package/src/builtins/ask-outcome.ts +168 -0
  384. package/src/builtins/ask-schema.ts +186 -0
  385. package/src/builtins/ask.service.ts +482 -0
  386. package/src/builtins/ask.tool.ts +138 -0
  387. package/src/builtins/index.ts +25 -0
  388. package/src/builtins/todo-schema.ts +108 -0
  389. package/src/builtins/todo-settle.hook.ts +221 -0
  390. package/src/builtins/todo.tool.ts +134 -0
  391. package/src/context/context-budget-tracker.ts +519 -0
  392. package/src/context/context-budget.ts +124 -0
  393. package/src/context/index.ts +17 -0
  394. package/src/extensions/repeat-call.hook.ts +77 -0
  395. package/src/hooks/index.ts +19 -0
  396. package/src/hooks/turn-hook.registry.ts +307 -0
  397. package/src/hooks/turn-hook.types.ts +210 -0
  398. package/src/images/byte-cache.ts +61 -0
  399. package/src/images/delivery.ts +508 -0
  400. package/src/images/index.ts +35 -0
  401. package/src/images/prompt.ts +289 -0
  402. package/src/images/vendor-files.ts +235 -0
  403. package/src/in-process/conversation-store.ts +304 -0
  404. package/src/in-process/coordination.ts +177 -0
  405. package/src/in-process/image-source.ts +29 -0
  406. package/src/in-process/index.ts +52 -0
  407. package/src/in-process/question-store.ts +155 -0
  408. package/src/in-process/run-store.ts +115 -0
  409. package/src/in-process/session-store.ts +118 -0
  410. package/src/in-process/stream-bus.ts +244 -0
  411. package/src/in-process/vendor-file-cache.ts +67 -0
  412. package/src/index.ts +28 -0
  413. package/src/loop/active-tick.registry.ts +49 -0
  414. package/src/loop/index.ts +25 -0
  415. package/src/loop/loop-driver.ts +275 -0
  416. package/src/loop/message-hub.ts +532 -0
  417. package/src/loop/orphan-run.sweeper.ts +204 -0
  418. package/src/loop/root-host.ts +119 -0
  419. package/src/ports/context-store.ts +71 -0
  420. package/src/ports/conversation-store.ts +165 -0
  421. package/src/ports/coordination.ts +81 -0
  422. package/src/ports/image-source.ts +26 -0
  423. package/src/ports/index.ts +56 -0
  424. package/src/ports/logger.ts +34 -0
  425. package/src/ports/question-store.ts +117 -0
  426. package/src/ports/run-store.ts +69 -0
  427. package/src/ports/session-store.ts +80 -0
  428. package/src/ports/stream-bus.ts +59 -0
  429. package/src/ports/vendor-file-cache.ts +54 -0
  430. package/src/schema/agent-event.ts +69 -0
  431. package/src/schema/agent-run.ts +44 -0
  432. package/src/schema/index.ts +25 -0
  433. package/src/schema/message-part.ts +100 -0
  434. package/src/subagent/delegate.tool.ts +476 -0
  435. package/src/subagent/index.ts +63 -0
  436. package/src/subagent/milestone-body.ts +144 -0
  437. package/src/subagent/output-scan.ts +56 -0
  438. package/src/subagent/registry-spawn-policy.ts +85 -0
  439. package/src/subagent/roster-block.ts +103 -0
  440. package/src/subagent/situation-block.ts +83 -0
  441. package/src/subagent/spawn-guards.ts +54 -0
  442. package/src/subagent/subagent-registry.ts +283 -0
  443. package/src/subagent/subagent-sessions.ts +496 -0
  444. package/src/testing/contracts.ts +882 -0
  445. package/src/testing/index.ts +14 -0
  446. package/src/testing/stub.ts +28 -0
  447. package/src/tools/agent-tool.base.ts +361 -0
  448. package/src/tools/agent-tool.interface.ts +101 -0
  449. package/src/tools/builtin-names.ts +26 -0
  450. package/src/tools/index.ts +39 -0
  451. package/src/tools/tool-definition.ts +93 -0
  452. package/src/tools/tool-meta.ts +60 -0
  453. package/src/tools/tool-registry.ts +513 -0
  454. package/src/tools/tool-result.ts +45 -0
  455. package/src/tools/tool-wire.ts +24 -0
  456. package/src/turn/agent-runtime.ts +43 -0
  457. package/src/turn/chunk-projection.ts +81 -0
  458. package/src/turn/compaction.ts +103 -0
  459. package/src/turn/context-overflow.ts +54 -0
  460. package/src/turn/context-pressure.ts +114 -0
  461. package/src/turn/events-to-steps.ts +73 -0
  462. package/src/turn/index.ts +71 -0
  463. package/src/turn/json-preview.ts +36 -0
  464. package/src/turn/json-string-field.ts +134 -0
  465. package/src/turn/loop-reminder.ts +0 -0
  466. package/src/turn/nul-safe.ts +22 -0
  467. package/src/turn/parts-from-events.ts +248 -0
  468. package/src/turn/parts-to-model-messages.ts +428 -0
  469. package/src/turn/pending-work.ts +14 -0
  470. package/src/turn/provider-error.ts +160 -0
  471. package/src/turn/tool-input-preview.ts +223 -0
  472. package/src/turn/tool-input-progress.ts +76 -0
  473. package/src/turn/turn-envelope.ts +185 -0
  474. package/src/turn/turn-journal.ts +102 -0
  475. package/src/turn/turn-run.ts +1479 -0
  476. package/src/turn/usage.ts +56 -0
  477. package/README.md +0 -3
@@ -0,0 +1,379 @@
1
+ import { tool } from 'ai';
2
+ import { z } from 'zod';
3
+ import { NO_INITIATOR } from '../agent-extensions.js';
4
+ import { silentLogger } from '../ports/logger.js';
5
+ import { AgentTool } from './agent-tool.base.js';
6
+ import { digestInputSchema } from './tool-definition.js';
7
+ import { fail } from './tool-result.js';
8
+ const DEFAULT_TOOL_TIMEOUT_MS = 30_000;
9
+ /**
10
+ * 基类工具的注册表侧超时 = 它自己声明的超时 + 这段宽限。
11
+ *
12
+ * **两道不是重复,是分工**:基类那道是真正生效的(合成 AbortSignal 让工具停下
13
+ * + race 兜住不配合的),这一道只防「基类的计时器自己坏了」。宽限拉得足够大,
14
+ * 使得它一旦真的赢了,就必然是个 bug 而不是正常的慢——否则两道数字相近时,
15
+ * 你无法从「tool timed out」这句话分辨是工具慢还是计时逻辑坏了。
16
+ */
17
+ const OUTER_TIMEOUT_GRACE_MS = 60_000;
18
+ /** 注入给 `supportsBackground` 工具的参数。**定义只此一处**(见基类注释)。 */
19
+ const RUN_IN_BACKGROUND_FIELD = {
20
+ run_in_background: z
21
+ .boolean()
22
+ .optional()
23
+ .describe('是否后台运行。缺省 false = 等它跑完并直接返回结果;' +
24
+ 'true = 立即返回一个 handle,结果稍后作为新消息回到你的上下文。' +
25
+ '需要并行推进多件事时用 true。'),
26
+ };
27
+ /**
28
+ * 工具注册表。搬自 agent-base `ToolRegistry`:去掉 Nest 的扫描(宿主显式 `register`,
29
+ * Nest 适配包负责把装饰器接过来),分组语义改为选项。
30
+ *
31
+ * **工具表顺序 = 注册顺序**。工具表一变,前缀缓存整段 miss,所以宿主要按固定顺序注册
32
+ * (agent-base 以前靠 Nest 模块的导入顺序,隐式且容易被无关改动打乱)。
33
+ */
34
+ export class ToolRegistry {
35
+ logger;
36
+ entries = new Map();
37
+ /** 旧名 → 现名(`ToolMeta.formerNames`)。 */
38
+ aliases = new Map();
39
+ alwaysOn;
40
+ permissionRequired;
41
+ hidden;
42
+ sanitize;
43
+ constructor(options = {}) {
44
+ this.logger = (options.logger ?? silentLogger)('ToolRegistry');
45
+ this.alwaysOn = new Set(options.alwaysOnCategories ?? ['system']);
46
+ this.permissionRequired = new Set(options.permissionRequiredCategories ?? []);
47
+ this.hidden = new Set(options.hiddenCategories ?? []);
48
+ this.sanitize = options.sanitizeError ?? (text => text);
49
+ }
50
+ /** 登记一个工具。名字重复、缺 execute / inputSchema、该声明权限没声明 → 抛。 */
51
+ register(meta, provider) {
52
+ this.add(meta, provider);
53
+ this.logger.debug(`registered tool ${meta.name}`);
54
+ }
55
+ add(meta, provider) {
56
+ if (typeof provider?.execute !== 'function') {
57
+ throw new Error(`tool '${meta.name}' must implement execute()`);
58
+ }
59
+ if (!provider.inputSchema) {
60
+ throw new Error(`tool '${meta.name}' must declare inputSchema`);
61
+ }
62
+ if (this.entries.has(meta.name)) {
63
+ throw new Error(`duplicate tool name '${meta.name}'`);
64
+ }
65
+ if (this.aliases.has(meta.name)) {
66
+ throw new Error(`tool name '${meta.name}' is already a former name of '${this.aliases.get(meta.name)}'`);
67
+ }
68
+ for (const former of meta.formerNames ?? []) {
69
+ if (former === meta.name || this.entries.has(former)) {
70
+ throw new Error(`former name '${former}' of tool '${meta.name}' is a current tool name`);
71
+ }
72
+ if (this.aliases.has(former)) {
73
+ throw new Error(`former tool name '${former}' is claimed twice`);
74
+ }
75
+ }
76
+ if (this.permissionRequired.has(meta.category) && !meta.permission) {
77
+ throw new Error(`tool '${meta.name}' is in category '${meta.category}' and must declare a permission`);
78
+ }
79
+ // 启动期 fail-fast:声明了后台运行,schema 就必须是个能被 extend 的对象。
80
+ // 放到运行时才发现的话,症状是模型看不到 run_in_background 这个参数、
81
+ // 于是永远同步调用——一个不报错、只是功能静默缺席的坏法。
82
+ if (provider instanceof AgentTool &&
83
+ provider.capabilities.supportsBackground &&
84
+ !(provider.inputSchema instanceof z.ZodObject)) {
85
+ throw new Error(`tool '${meta.name}' declares supportsBackground but its inputSchema is not a z.object()`);
86
+ }
87
+ this.entries.set(meta.name, { meta, provider });
88
+ for (const former of meta.formerNames ?? []) {
89
+ this.aliases.set(former, meta.name);
90
+ }
91
+ }
92
+ /**
93
+ * 对外暴露的 schema —— 后台工具在这里被注入 `run_in_background`。
94
+ *
95
+ * 注入而非让工具自己写,是为了让这个参数只有一个定义处:它的语义(缺省
96
+ * 同步、true 返回 handle)对所有工具必须逐字一致,模型才不用逐个工具去猜。
97
+ */
98
+ schemaFor(entry) {
99
+ const base = entry.provider.inputSchema;
100
+ if (entry.provider instanceof AgentTool &&
101
+ entry.provider.capabilities.supportsBackground &&
102
+ base instanceof z.ZodObject) {
103
+ return base.extend(RUN_IN_BACKGROUND_FIELD);
104
+ }
105
+ return base;
106
+ }
107
+ /**
108
+ * 注册表侧的兜底超时。基类工具以它自己声明的值为准(见常量注释);非基类
109
+ * provider 只剩测试 stub,一律给默认值。
110
+ */
111
+ timeoutFor(entry) {
112
+ return entry.provider instanceof AgentTool
113
+ ? entry.provider.capabilities.timeoutMs + OUTER_TIMEOUT_GRACE_MS
114
+ : DEFAULT_TOOL_TIMEOUT_MS;
115
+ }
116
+ listMeta() {
117
+ return [...this.entries.values()].map(e => e.meta);
118
+ }
119
+ /**
120
+ * 后台 UI 勾选用:恒上桌的分组是基础设施,运营不能关;`hiddenCategories`
121
+ * 里的不给勾。
122
+ */
123
+ listConfigurable() {
124
+ return this.listMeta().filter(m => !this.alwaysOn.has(m.category) && !this.hidden.has(m.category));
125
+ }
126
+ /**
127
+ * 后台「工具列表」页用:全部工具(含 system)的完整定义。
128
+ *
129
+ * 参数表由 `schemaFor(entry)` 摊平——即**喂给模型的那份** schema(后台工具
130
+ * 注入的 `run_in_background` 一并在内),审阅页与模型看到的定义同源,不另拼
131
+ * 第二份事实(同 system prompt 审查页的地基约定)。
132
+ */
133
+ listDefinitions() {
134
+ return [...this.entries.values()].map(entry => this.definitionOf(entry));
135
+ }
136
+ /**
137
+ * 后台「会话下一轮预览」用:**这一轮真正端上桌的**那几件的完整定义。过滤判据与
138
+ * `buildToolSchemasFor` 是同一个 `isAllowed`,参数表同 `listDefinitions`——预览与
139
+ * 喂给模型的工具集不可能分叉。
140
+ */
141
+ definitionsFor(agent, opts) {
142
+ const exclude = new Set(opts?.exclude ?? []);
143
+ const initiator = opts?.initiator ?? NO_INITIATOR;
144
+ return [...this.entries.values()]
145
+ .filter(e => this.isAllowed(e.meta, agent, exclude, initiator))
146
+ .map(entry => this.definitionOf(entry, opts?.descriptions?.[entry.meta.name]));
147
+ }
148
+ definitionOf(entry, description) {
149
+ return {
150
+ ...entry.meta,
151
+ ...(description !== undefined ? { description } : {}),
152
+ supportsBackground: entry.provider instanceof AgentTool &&
153
+ entry.provider.capabilities.supportsBackground,
154
+ permission: entry.meta.permission ?? null,
155
+ ...digestInputSchema(this.schemaFor(entry)),
156
+ };
157
+ }
158
+ /** 写入路径严格校验(运行时读取则宽松静默跳过)。 */
159
+ validateNames(names) {
160
+ const unknown = names.filter(n => !this.entries.has(n));
161
+ if (unknown.length > 0) {
162
+ throw new Error(`unknown tool(s): ${unknown.join(', ')}`);
163
+ }
164
+ }
165
+ /**
166
+ * 这个工具这一轮对该 agent 可见吗。
167
+ *
168
+ * 这里曾经还有一个 `availableToolNames()`,供 system prompt 的引用清单渲染
169
+ * 「用某某工具取内容」那半句、并按授权过滤工具名。**2026-08-05 随那半句
170
+ * 一起删除**:工具能做什么,工具描述自己说了,而工具清单本来就在模型手上
171
+ * (API 请求的 `tools` 字段)——提示词再点一遍名是第二份事实,改个工具名就
172
+ * 开始说假话。
173
+ */
174
+ isAllowed(meta, agent, exclude, initiator) {
175
+ if (exclude.has(meta.name))
176
+ return false;
177
+ if (meta.permission && !initiator.permissions.has(meta.permission)) {
178
+ return false;
179
+ }
180
+ return (this.alwaysOn.has(meta.category) || agent.enabledTools.includes(meta.name));
181
+ }
182
+ /**
183
+ * 旧工具名 → 现名(`ToolMeta.formerNames`)。交给投影(`ProjectionOptions.toolNameAliases`),
184
+ * 让旧历史里的调用以现名出现在模型面前。
185
+ */
186
+ toolNameAliases() {
187
+ return new Map(this.aliases);
188
+ }
189
+ /** 声明了权限点的工具名 → 那个权限点(`ToolMeta.permission`)。 */
190
+ permissionGatedTools() {
191
+ const out = new Map();
192
+ for (const { meta } of this.entries.values()) {
193
+ if (meta.permission)
194
+ out.set(meta.name, meta.permission);
195
+ }
196
+ return out;
197
+ }
198
+ /**
199
+ * 自称「纯记账」的工具名(`ToolMeta.accounting`)。
200
+ *
201
+ * 消费方是重复调用链(`runtime/loop-reminder.ts`):这些工具对链透明,夹在
202
+ * 两次相同调用之间不打断计数。**判据由工具自己声明**,内核因此一个具体工具名
203
+ * 都不必认识——加一个新的记账工具零内核改动。
204
+ *
205
+ * 每轮现算一遍(工具总数是几十量级,且注册表在 bootstrap 后就不再变):
206
+ * 缓存要额外处理注册之后的失效,换来的收益是噪音。
207
+ */
208
+ accountingToolNames() {
209
+ const names = new Set();
210
+ for (const { meta } of this.entries.values()) {
211
+ if (meta.accounting)
212
+ names.add(meta.name);
213
+ }
214
+ return names;
215
+ }
216
+ /**
217
+ * 自称此刻不可用的工具名(`AgentToolProvider.isAvailable`)。消费方是 loop 的
218
+ * 本轮摘除清单——走清单而不是在 `isAllowed` 里过滤,后台「下一轮预览」才列得出
219
+ * 「本轮摘掉了哪些」。
220
+ */
221
+ async unavailableToolNames(agent) {
222
+ const entries = [...this.entries.values()];
223
+ const available = await Promise.all(entries.map(({ provider }) => Promise.resolve(provider.isAvailable?.(agent) ?? true)));
224
+ return entries.filter((_, i) => !available[i]).map(({ meta }) => meta.name);
225
+ }
226
+ /**
227
+ * 这份 agent 配置下说明与装饰器不同的工具(`AgentToolProvider.describe`):工具名 → 说明。
228
+ * loop 在算本轮摘除清单时一并算好,`buildToolSchemasFor` 与「下一轮预览」的 `definitionsFor`
229
+ * 用同一份,预览与喂给模型的说明不会分叉。
230
+ */
231
+ async descriptionsFor(agent) {
232
+ const entries = [...this.entries.values()];
233
+ const described = await Promise.all(entries.map(({ provider }) => Promise.resolve(provider.describe?.(agent) ?? null)));
234
+ const out = {};
235
+ entries.forEach(({ meta }, i) => {
236
+ const text = described[i];
237
+ if (text != null && text !== meta.description)
238
+ out[meta.name] = text;
239
+ });
240
+ return out;
241
+ }
242
+ /**
243
+ * 会往工作空间里写文件的工具名(`ToolMeta.writesWorkspace`)。
244
+ *
245
+ * 消费方是工具调用的文件变化记账(`extensions/tool-file-changes.hook.ts`):
246
+ * 只有这些工具前后才扫一次工作目录。判据同样由工具自己声明。
247
+ */
248
+ workspaceWriterToolNames() {
249
+ const names = new Set();
250
+ for (const { meta } of this.entries.values()) {
251
+ if (meta.writesWorkspace)
252
+ names.add(meta.name);
253
+ }
254
+ return names;
255
+ }
256
+ /**
257
+ * 只带 schema、无 execute 的工具集——喂 streamText,SDK 只吐 tool-call,执行由
258
+ * loop 自驱。
259
+ *
260
+ * `initiator` **缺省 `NO_INITIATOR`,即 fail-closed**:漏传等于不给要权限的工具,
261
+ * 而不是给。方向与 `viewer` 的 null(= 系统调用、不过滤)相反,正是因为
262
+ * 漏传的教训是缺省不能站在宽松那一侧。
263
+ */
264
+ buildToolSchemasFor(agent, opts) {
265
+ const exclude = new Set(opts?.exclude ?? []);
266
+ const initiator = opts?.initiator ?? NO_INITIATOR;
267
+ const out = {};
268
+ for (const entry of this.entries.values()) {
269
+ const { meta } = entry;
270
+ if (!this.isAllowed(meta, agent, exclude, initiator))
271
+ continue;
272
+ out[meta.name] = tool({
273
+ description: opts?.descriptions?.[meta.name] ?? meta.description,
274
+ inputSchema: this.schemaFor(entry),
275
+ });
276
+ }
277
+ return out;
278
+ }
279
+ /** 按名执行单个工具。复用 runOne 的超时 + 「工具永不抛」兜底。未知工具 → fail。 */
280
+ async executeTool(name, input, ctxBase, toolCallId) {
281
+ const entry = this.entries.get(name);
282
+ if (!entry)
283
+ return fail(`unknown tool '${name}'`);
284
+ return this.runOne(entry.provider, input, ctxBase, toolCallId, this.timeoutFor(entry));
285
+ }
286
+ /**
287
+ * 这次调用**失败了吗**。SSE 事件与落库 part 共用这一个判据。
288
+ *
289
+ * **两层信封都要看,这正是它必须单独成为一个方法的原因。** `result.ok` 只说
290
+ * 明注册表这一层顺利跑完了(工具存在、没超时、没抛异常);工具**自己判定的
291
+ * 失败**(`toolError(...)`)是 `{ok:true, data:{kind:'error'}}` —— 外层是
292
+ * `ok:true`。此前 `isError: !result.ok` 只看外层,于是「文件不存在」「服务商
293
+ * 没配」这类工具正常给出的失败,在界面上全都显示成绿色的成功。
294
+ *
295
+ * `kind:'accepted'`(后台受理)不是失败。
296
+ */
297
+ didFail(result) {
298
+ if (!result.ok)
299
+ return true;
300
+ const data = result.data;
301
+ return (typeof data === 'object' &&
302
+ data !== null &&
303
+ data.kind === 'error');
304
+ }
305
+ /**
306
+ * ToolResult → 喂模型的文本。SSE、落库、模型上下文三处同源。
307
+ *
308
+ * **出口处一律 `toWellFormed()`**:工具截断外部文本时用 `slice` 很容易把 emoji
309
+ * 切成孤立的半个代理对,而 Postgres 的 jsonb 整句拒收它(`Unicode low
310
+ * surrogate must follow a high surrogate`)——tool-result 落不了库,那一轮就
311
+ * 失败,`agent_run` 收尾也跟着写不进去。在这里规整而不是在落库时:三处同源,
312
+ * 模型看到的和库里存的仍然逐字相同(与 `replaceNul` 同一个道理)。第三方服务名的过滤(只过失败)
313
+ * 也在这里(`sanitizeError`),理由同上。
314
+ */
315
+ renderToolOutput(name, result) {
316
+ if (!result.ok)
317
+ return this.sanitize(result.error).toWellFormed();
318
+ const provider = this.entries.get(name)?.provider;
319
+ const text = (provider?.toModelOutput
320
+ ? provider.toModelOutput(result.data)
321
+ : JSON.stringify(result.data)).toWellFormed();
322
+ // 失败的说明多半转述了上游原话(厂商名、接口地址),过宿主的净化。
323
+ // 成功的结果不过:那是内容,替换就是改资料。
324
+ return this.didFail(result) ? this.sanitize(text) : text;
325
+ }
326
+ /** 工具为这次结果提供的结构化引用(落库进 `MessagePart.ref`)。 */
327
+ refOf(name, result) {
328
+ if (!result.ok)
329
+ return undefined;
330
+ const provider = this.entries.get(name)?.provider;
331
+ return provider instanceof AgentTool
332
+ ? provider.refFor(result.data)
333
+ : undefined;
334
+ }
335
+ /** 这次结果是否钉住不许裁剪(落库进 `MessagePart.pinned`)。失败的调用不问工具。 */
336
+ pinnedOf(name, result) {
337
+ if (!result.ok || this.didFail(result))
338
+ return false;
339
+ const provider = this.entries.get(name)?.provider;
340
+ return provider instanceof AgentTool && provider.pinnedFor(result.data);
341
+ }
342
+ /**
343
+ * 工具为这次结果交给模型看的图片(落库进 `MessagePart.images`)。
344
+ * 失败的调用没有图——`didFail` 为真时这里也不问工具,两处判据同源。
345
+ */
346
+ imagesOf(name, result) {
347
+ if (!result.ok || this.didFail(result))
348
+ return undefined;
349
+ const provider = this.entries.get(name)?.provider;
350
+ const images = provider instanceof AgentTool
351
+ ? provider.imagesFor(result.data)
352
+ : undefined;
353
+ return images && images.length > 0 ? images : undefined;
354
+ }
355
+ async runOne(provider, input, ctxBase, toolCallId, timeoutMs) {
356
+ const ctx = { ...ctxBase, toolCallId };
357
+ let timer;
358
+ // work 在超时后仍可能继续跑(provider 没有真正被取消)。用
359
+ // .catch() 将任何 rejection 转化为 ToolResult 的 resolve,使得
360
+ // race 的两条分支(work 和 timeout)都恒走 resolve 路径。这样
361
+ // work 在超时后延迟 reject 也不会导致 unhandled rejection —— 它
362
+ // 只是调用已经 settle 的外层 promise 的 reject(静默 no-op)。
363
+ const work = (async () => {
364
+ const data = await provider.execute(input, ctx);
365
+ return { ok: true, data };
366
+ })().catch((err) => fail(err instanceof Error ? err.message : String(err)));
367
+ try {
368
+ const timeout = new Promise(resolve => {
369
+ timer = setTimeout(() => resolve(fail(`tool timed out after ${timeoutMs}ms`)), timeoutMs);
370
+ });
371
+ return await Promise.race([work, timeout]);
372
+ }
373
+ finally {
374
+ if (timer)
375
+ clearTimeout(timer);
376
+ }
377
+ }
378
+ }
379
+ //# sourceMappingURL=tool-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../src/tools/tool-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * 工具与注册表之间的返回约定。
3
+ *
4
+ * **两层,别搞混**:
5
+ *
6
+ * - `ToolOut<T>`(本文件下半部分)是**工具自己**的返回形状。工具实现 MUST NOT
7
+ * throw —— 让 LLM 看到错误比中断整个 turn 有价值,故失败也是一种正常返回。
8
+ * - `ToolResult<T>` 与 `ok()`/`fail()` 是 **`ToolRegistry` 内部**的信封,
9
+ * 由 `runOne()` 包在工具返回值外面(它还会兜住真抛出的异常)。**工具实现不要
10
+ * 用 `ok()`/`fail()`** —— 那会套出 `{ok:true, data:{ok:true, data:…}}` 的双层
11
+ * 信封,而 `fail()` 更糟:外层 `ok:true` 让注册表认为这次调用成功了,失败路径
12
+ * 根本走不到,模型看到的是一个自相矛盾的 `{"ok":false,…}` JSON。
13
+ */
14
+ export type ToolResult<T = unknown> = {
15
+ ok: true;
16
+ data: T;
17
+ } | {
18
+ ok: false;
19
+ error: string;
20
+ };
21
+ export declare function ok<T>(data: T): ToolResult<T>;
22
+ export declare function fail(error: string): ToolResult<never>;
23
+ /** 包住可能抛出的异步逻辑,统一转成 ToolResult。 */
24
+ export declare function safe<T>(fn: () => Promise<T>): Promise<ToolResult<T>>;
25
+ /**
26
+ * 工具实现的统一返回形状:成功带数据,失败只带一句给模型看的文本。
27
+ *
28
+ * 判别键取 `kind` 而不是 `ok`,正是为了在类型层面与上面那个注册表信封区分开
29
+ * ——两者若长得一样,误用 `ok()` 就会一路编译通过(`LoadSkill` 曾如此)。
30
+ */
31
+ export type ToolOut<T> = ({
32
+ kind: 'ok';
33
+ } & T) | {
34
+ kind: 'error';
35
+ message: string;
36
+ };
37
+ export declare function toolError(message: string): {
38
+ kind: 'error';
39
+ message: string;
40
+ };
41
+ //# sourceMappingURL=tool-result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-result.d.ts","sourceRoot":"","sources":["../../src/tools/tool-result.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,OAAO,IAChC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD,wBAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAE5C;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAErD;AAED,mCAAmC;AACnC,wBAAsB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAM1E;AAED;;;;;GAKG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IACnB,CAAC;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GAAG,CAAC,CAAC,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAE7E"}
@@ -0,0 +1,19 @@
1
+ export function ok(data) {
2
+ return { ok: true, data };
3
+ }
4
+ export function fail(error) {
5
+ return { ok: false, error };
6
+ }
7
+ /** 包住可能抛出的异步逻辑,统一转成 ToolResult。 */
8
+ export async function safe(fn) {
9
+ try {
10
+ return ok(await fn());
11
+ }
12
+ catch (err) {
13
+ return fail(err instanceof Error ? err.message : String(err));
14
+ }
15
+ }
16
+ export function toolError(message) {
17
+ return { kind: 'error', message };
18
+ }
19
+ //# sourceMappingURL=tool-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-result.js","sourceRoot":"","sources":["../../src/tools/tool-result.ts"],"names":[],"mappings":"AAgBA,MAAM,UAAU,EAAE,CAAI,IAAO;IAC3B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,KAAa;IAChC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC9B,CAAC;AAED,mCAAmC;AACnC,MAAM,CAAC,KAAK,UAAU,IAAI,CAAI,EAAoB;IAChD,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,IAAI,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAWD,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACpC,CAAC"}
@@ -0,0 +1,24 @@
1
+ /** 工具的一个入参(由 zod inputSchema 摊平而来,给后台「工具列表」页展示)。 */
2
+ export interface ToolParamWire {
3
+ key: string;
4
+ /** 从 JSON schema 尽力而为推出的类型标签(enum 列出取值)。 */
5
+ type: string;
6
+ required: boolean;
7
+ description: string | null;
8
+ }
9
+ /**
10
+ * 工具完整定义的对外投影。**参数来自喂给模型的那份 schema**(`run_in_background`
11
+ * 等注入参数一并在内),审阅的就是模型看到的定义。
12
+ */
13
+ export interface ToolDefinitionWire {
14
+ name: string;
15
+ description: string;
16
+ category: string;
17
+ supportsBackground: boolean;
18
+ /** 要哪个权限点才端上桌;null = 不要。 */
19
+ permission: string | null;
20
+ params: ToolParamWire[];
21
+ /** schema 不是对象、或转换失败时的说明;正常情况下 null。 */
22
+ schemaNote: string | null;
23
+ }
24
+ //# sourceMappingURL=tool-wire.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-wire.d.ts","sourceRoot":"","sources":["../../src/tools/tool-wire.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,4BAA4B;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,wCAAwC;IACxC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tool-wire.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-wire.js","sourceRoot":"","sources":["../../src/tools/tool-wire.ts"],"names":[],"mappings":""}
@@ -0,0 +1,31 @@
1
+ import type { TurnHookRegistry } from '../hooks/turn-hook.registry.js';
2
+ import { type LoggerFactory } from '../ports/logger.js';
3
+ import type { RunStore } from '../ports/run-store.js';
4
+ import type { ToolRegistry } from '../tools/tool-registry.js';
5
+ import type { TurnResult } from './turn-envelope.js';
6
+ import { type RunTurnArgs } from './turn-run.js';
7
+ export interface AgentRuntimeDeps {
8
+ tools: ToolRegistry;
9
+ hooks: TurnHookRegistry;
10
+ runs: RunStore;
11
+ logger?: LoggerFactory;
12
+ /** 失败文案进会话前的净化(见 `TurnRunDeps.sanitizeError`)。 */
13
+ sanitizeError?: (text: string) => string;
14
+ }
15
+ /**
16
+ * 跑一个 turn 的入口。搬自 agent-base `AgentRuntimeService`。
17
+ *
18
+ * **没有 StreamBus**:事件往哪去、本轮的中断信号是什么,都由调用方经 `RunTurnArgs` 传进来
19
+ * (`sink` / `abortSignal`)。内核只要一个同步投递口和一个信号。
20
+ *
21
+ * **一轮一个 `TurnRun` 实例**:本类可以是单例,而一轮的状态(工作消息、事件账本、usage、
22
+ * 迭代计数、压力基线)全是 per-turn 的。
23
+ */
24
+ export declare class AgentRuntime {
25
+ private readonly deps;
26
+ private readonly logger;
27
+ constructor(deps: AgentRuntimeDeps);
28
+ /** 宿主负责:open 好 stream、备好 agent 定义与模型句柄。 */
29
+ runTurn(args: RunTurnArgs): Promise<TurnResult>;
30
+ }
31
+ //# sourceMappingURL=agent-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../../src/turn/agent-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,KAAK,aAAa,EAAgB,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,KAAK,WAAW,EAAW,MAAM,eAAe,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,kDAAkD;IAClD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC1C;AAED;;;;;;;;GAQG;AACH,qBAAa,YAAY;IAGX,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;gBAEtB,IAAI,EAAE,gBAAgB;IAInD,2CAA2C;IAC3C,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAShD"}
@@ -0,0 +1,30 @@
1
+ import { silentLogger } from '../ports/logger.js';
2
+ import { TurnRun } from './turn-run.js';
3
+ /**
4
+ * 跑一个 turn 的入口。搬自 agent-base `AgentRuntimeService`。
5
+ *
6
+ * **没有 StreamBus**:事件往哪去、本轮的中断信号是什么,都由调用方经 `RunTurnArgs` 传进来
7
+ * (`sink` / `abortSignal`)。内核只要一个同步投递口和一个信号。
8
+ *
9
+ * **一轮一个 `TurnRun` 实例**:本类可以是单例,而一轮的状态(工作消息、事件账本、usage、
10
+ * 迭代计数、压力基线)全是 per-turn 的。
11
+ */
12
+ export class AgentRuntime {
13
+ deps;
14
+ logger;
15
+ constructor(deps) {
16
+ this.deps = deps;
17
+ this.logger = (deps.logger ?? silentLogger)('AgentRuntime');
18
+ }
19
+ /** 宿主负责:open 好 stream、备好 agent 定义与模型句柄。 */
20
+ runTurn(args) {
21
+ return new TurnRun(args, {
22
+ tools: this.deps.tools,
23
+ hooks: this.deps.hooks,
24
+ runs: this.deps.runs,
25
+ logger: this.logger,
26
+ sanitizeError: this.deps.sanitizeError,
27
+ }).execute();
28
+ }
29
+ }
30
+ //# sourceMappingURL=agent-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-runtime.js","sourceRoot":"","sources":["../../src/turn/agent-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAItE,OAAO,EAAoB,OAAO,EAAE,MAAM,eAAe,CAAC;AAW1D;;;;;;;;GAQG;AACH,MAAM,OAAO,YAAY;IAGM;IAFZ,MAAM,CAA4B;IAEnD,YAA6B,IAAsB;QAAtB,SAAI,GAAJ,IAAI,CAAkB;QACjD,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC,cAAc,CAAC,CAAC;IAC9D,CAAC;IAED,2CAA2C;IAC3C,OAAO,CAAC,IAAiB;QACvB,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE;YACvB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;YACtB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;YACtB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACpB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;SACvC,CAAC,CAAC,OAAO,EAAE,CAAC;IACf,CAAC;CACF"}
@@ -0,0 +1,32 @@
1
+ import type { StreamTextOnChunkCallback, ToolSet } from 'ai';
2
+ import type { ToolInputPreviewTracker } from './tool-input-preview.js';
3
+ import type { ToolInputProgressTracker } from './tool-input-progress.js';
4
+ import type { TurnJournal } from './turn-journal.js';
5
+ /**
6
+ * onChunk 回调里 chunk 的真实形状(已读 `apps/api/node_modules/ai@7.0.31` 的
7
+ * `.d.ts` 核实:`StreamTextOnChunkCallback<TOOLS>` 收 `{ chunk: TextStreamPart<TOOLS> }`)。
8
+ *
9
+ * 版本号写在这里是为了让下次升级时能一眼看出这条核实是哪一版做的——v7 迁移那轮
10
+ * 漏改了它,一直写着 6.0.211。
11
+ */
12
+ export type StreamChunk = Parameters<StreamTextOnChunkCallback<ToolSet>>[0]['chunk'];
13
+ /**
14
+ * AI SDK chunk → 内层领域事件。只投影**流式增量**事件(文本/推理/工具入参
15
+ * 的实时构建),供 SSE 边打字边显示。
16
+ *
17
+ * **零内核状态、零时序约束**:它是 SDK chunk 的机械翻译,进度记账那半边也只
18
+ * 认自己手里的 tracker。故它住在 loop 外面。
19
+ *
20
+ * **不投影 `tool-call` / `tool-result`**:自驱 loop 喂 streamText 的是无
21
+ * execute 的 schema 工具集,SDK 因此永不产 `tool-result` chunk(无执行→无
22
+ * 结果),而 `tool-call` 由 loop 在拿到确定的 `step.toolCalls` 后**权威地**
23
+ * 发出(连同真实执行结果的 `tool-result`)。若这里也投影 `tool-call`,会与
24
+ * loop 那条重复投递;tool-result 又必须发在 step-finish 之前(见 `TurnRun`
25
+ * 里的说明),onChunk 里做不到这个时序。故这两类统一归 loop 掌管。
26
+ *
27
+ * `progress`/`preview` 两个 tracker 各管一条事件(`tool-input-progress`
28
+ * 答「写了多少」、`tool-input-preview` 答「写了什么」),互不知道对方,
29
+ * 这里各喂一遍。
30
+ */
31
+ export declare function projectChunk(chunk: StreamChunk, journal: TurnJournal, progress: ToolInputProgressTracker, preview: ToolInputPreviewTracker): void;
32
+ //# sourceMappingURL=chunk-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-projection.d.ts","sourceRoot":"","sources":["../../src/turn/chunk-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,UAAU,CAClC,yBAAyB,CAAC,OAAO,CAAC,CACnC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAEd;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,wBAAwB,EAClC,OAAO,EAAE,uBAAuB,GAC/B,IAAI,CAwCN"}