@qvac/harness 1.0.0-rc.0 → 1.0.0-rc.2

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 (796) hide show
  1. package/CHANGELOG.md +1168 -1
  2. package/NOTICE.md +16 -0
  3. package/README.md +278 -471
  4. package/dist-lib/index.d.ts +101 -169
  5. package/dist-lib/index.js +423 -1506
  6. package/dist-lib/lib/addon-seal.bare.d.ts +1 -0
  7. package/dist-lib/lib/addon-seal.bare.js +3 -0
  8. package/dist-lib/lib/addon-seal.node.d.ts +1 -0
  9. package/dist-lib/lib/addon-seal.node.js +1 -0
  10. package/dist-lib/lib/agent/delegate.d.ts +83 -0
  11. package/dist-lib/lib/agent/delegate.js +261 -0
  12. package/dist-lib/lib/agent/follow.d.ts +32 -0
  13. package/dist-lib/lib/agent/follow.js +162 -0
  14. package/dist-lib/lib/agent/index.d.ts +37 -0
  15. package/dist-lib/lib/agent/index.js +42 -0
  16. package/dist-lib/lib/agent/plan.d.ts +6 -0
  17. package/dist-lib/lib/agent/plan.js +74 -0
  18. package/dist-lib/lib/agent/resolve.d.ts +3 -0
  19. package/dist-lib/lib/agent/resolve.js +78 -0
  20. package/dist-lib/lib/{capabilities → agent}/tool-names.d.ts +0 -1
  21. package/dist-lib/lib/{capabilities → agent}/tool-names.js +0 -1
  22. package/dist-lib/lib/{capabilities → agent}/tool-selection.d.ts +3 -6
  23. package/dist-lib/lib/{capabilities → agent}/tool-selection.js +9 -1
  24. package/dist-lib/lib/agent/tools.d.ts +14 -0
  25. package/dist-lib/lib/agent/tools.js +16 -0
  26. package/dist-lib/lib/agent/transfer.d.ts +7 -0
  27. package/dist-lib/lib/agent/transfer.js +26 -0
  28. package/dist-lib/lib/capabilities/agent-ports.d.ts +3 -0
  29. package/dist-lib/lib/capabilities/agent-ports.js +9 -0
  30. package/dist-lib/lib/capabilities/completion-engine/actors/answering.d.ts +1 -1
  31. package/dist-lib/lib/capabilities/completion-engine/actors/answering.js +25 -9
  32. package/dist-lib/lib/capabilities/completion-engine/actors/batching.d.ts +3 -0
  33. package/dist-lib/lib/capabilities/completion-engine/actors/batching.js +90 -0
  34. package/dist-lib/lib/capabilities/completion-engine/actors/direct-search.d.ts +2 -1
  35. package/dist-lib/lib/capabilities/completion-engine/actors/direct-search.js +14 -5
  36. package/dist-lib/lib/capabilities/completion-engine/actors/execute.d.ts +5 -3
  37. package/dist-lib/lib/capabilities/completion-engine/actors/execute.js +8 -3
  38. package/dist-lib/lib/capabilities/completion-engine/actors/executing.d.ts +29 -2
  39. package/dist-lib/lib/capabilities/completion-engine/actors/executing.js +100 -40
  40. package/dist-lib/lib/capabilities/completion-engine/actors/execution-plan.d.ts +11 -10
  41. package/dist-lib/lib/capabilities/completion-engine/actors/execution-plan.js +28 -21
  42. package/dist-lib/lib/capabilities/completion-engine/actors/finishing.js +2 -2
  43. package/dist-lib/lib/capabilities/completion-engine/actors/inspect-prepare.d.ts +4 -0
  44. package/dist-lib/lib/capabilities/completion-engine/actors/inspect-prepare.js +67 -0
  45. package/dist-lib/lib/capabilities/completion-engine/actors/inspecting.d.ts +10 -3
  46. package/dist-lib/lib/capabilities/completion-engine/actors/inspecting.js +14 -11
  47. package/dist-lib/lib/capabilities/completion-engine/actors/loading-skill.d.ts +7 -3
  48. package/dist-lib/lib/capabilities/completion-engine/actors/loading-skill.js +30 -31
  49. package/dist-lib/lib/capabilities/completion-engine/actors/preparing.d.ts +3 -2
  50. package/dist-lib/lib/capabilities/completion-engine/actors/preparing.js +86 -102
  51. package/dist-lib/lib/capabilities/completion-engine/actors/rejecting.d.ts +1 -1
  52. package/dist-lib/lib/capabilities/completion-engine/actors/rejecting.js +24 -7
  53. package/dist-lib/lib/capabilities/completion-engine/actors/rejection.d.ts +4 -2
  54. package/dist-lib/lib/capabilities/completion-engine/actors/rejection.js +8 -8
  55. package/dist-lib/lib/capabilities/completion-engine/actors/resolving.d.ts +1 -1
  56. package/dist-lib/lib/capabilities/completion-engine/actors/resolving.js +73 -15
  57. package/dist-lib/lib/capabilities/completion-engine/actors/retrieving.d.ts +10 -0
  58. package/dist-lib/lib/capabilities/completion-engine/actors/retrieving.js +56 -0
  59. package/dist-lib/lib/capabilities/completion-engine/actors/run-prepare.d.ts +4 -0
  60. package/dist-lib/lib/capabilities/completion-engine/actors/run-prepare.js +74 -0
  61. package/dist-lib/lib/capabilities/completion-engine/actors/skill-step.d.ts +2 -0
  62. package/dist-lib/lib/capabilities/completion-engine/actors/skill-step.js +76 -0
  63. package/dist-lib/lib/capabilities/completion-engine/actors/stream.d.ts +2 -2
  64. package/dist-lib/lib/capabilities/completion-engine/actors/stream.js +2 -1
  65. package/dist-lib/lib/capabilities/completion-engine/actors/streaming.d.ts +1 -1
  66. package/dist-lib/lib/capabilities/completion-engine/actors/streaming.js +84 -26
  67. package/dist-lib/lib/capabilities/completion-engine/actors/wrap-up.d.ts +1 -1
  68. package/dist-lib/lib/capabilities/completion-engine/actors/wrap-up.js +16 -6
  69. package/dist-lib/lib/capabilities/completion-engine/actors.d.ts +11 -0
  70. package/dist-lib/lib/capabilities/completion-engine/actors.js +216 -0
  71. package/dist-lib/lib/capabilities/completion-engine/driver.d.ts +12 -5
  72. package/dist-lib/lib/capabilities/completion-engine/driver.js +118 -33
  73. package/dist-lib/lib/capabilities/completion-engine/durable.d.ts +2 -1
  74. package/dist-lib/lib/capabilities/completion-engine/durable.js +6 -4
  75. package/dist-lib/lib/capabilities/completion-engine/engine.d.ts +65 -0
  76. package/dist-lib/lib/{machine → capabilities/completion-engine}/engine.js +67 -130
  77. package/dist-lib/lib/capabilities/completion-engine/index.d.ts +30 -0
  78. package/dist-lib/lib/capabilities/completion-engine/index.js +44 -0
  79. package/dist-lib/lib/capabilities/completion-engine/loop.d.ts +58 -0
  80. package/dist-lib/lib/capabilities/completion-engine/loop.js +62 -0
  81. package/dist-lib/lib/capabilities/completion-engine/metrics.d.ts +4 -0
  82. package/dist-lib/lib/capabilities/completion-engine/metrics.js +46 -0
  83. package/dist-lib/lib/capabilities/completion-engine/operations.d.ts +5 -2
  84. package/dist-lib/lib/capabilities/completion-engine/operations.js +84 -15
  85. package/dist-lib/lib/capabilities/completion-engine/ports.d.ts +25 -2
  86. package/dist-lib/lib/capabilities/completion-engine/ports.js +25 -16
  87. package/dist-lib/lib/capabilities/completion-engine/prepare-step.d.ts +26 -0
  88. package/dist-lib/lib/{machine → capabilities/completion-engine}/replay-output.d.ts +1 -1
  89. package/dist-lib/lib/{machine → capabilities/completion-engine}/replay-output.js +1 -1
  90. package/dist-lib/lib/capabilities/{completion-loop → completion-engine}/round.d.ts +24 -4
  91. package/dist-lib/lib/capabilities/{completion-loop → completion-engine}/round.js +242 -27
  92. package/dist-lib/lib/capabilities/completion-engine/session.d.ts +19 -12
  93. package/dist-lib/lib/capabilities/completion-engine/session.js +12 -6
  94. package/dist-lib/lib/capabilities/completion-engine/splice.d.ts +2 -0
  95. package/dist-lib/lib/capabilities/completion-engine/splice.js +7 -0
  96. package/dist-lib/lib/capabilities/completion-engine/stages.d.ts +23 -0
  97. package/dist-lib/lib/capabilities/completion-engine/tool-caller.d.ts +10 -0
  98. package/dist-lib/lib/capabilities/completion-engine/tool-caller.js +151 -0
  99. package/dist-lib/lib/capabilities/completion-engine/tool-execution.d.ts +77 -0
  100. package/dist-lib/lib/capabilities/{completion-loop → completion-engine}/tool-execution.js +74 -25
  101. package/dist-lib/lib/capabilities/{completion-loop → completion-engine}/turns.d.ts +8 -4
  102. package/dist-lib/lib/capabilities/completion-engine/turns.js +225 -0
  103. package/dist-lib/lib/capabilities/enhance.d.ts +1 -1
  104. package/dist-lib/lib/capabilities/enhance.js +3 -2
  105. package/dist-lib/lib/capabilities/invoke.d.ts +1 -1
  106. package/dist-lib/lib/capabilities/preview-model-source.d.ts +1 -10
  107. package/dist-lib/lib/capabilities/preview-model-source.js +3 -1
  108. package/dist-lib/lib/capabilities/sdk-tool.d.ts +10 -0
  109. package/dist-lib/lib/capabilities/sdk-tool.js +130 -0
  110. package/dist-lib/lib/capabilities/skill-entry.d.ts +8 -0
  111. package/dist-lib/lib/capabilities/skill-entry.js +14 -0
  112. package/dist-lib/lib/capabilities/tool-plan.d.ts +6 -5
  113. package/dist-lib/lib/capabilities/tool-plan.js +16 -10
  114. package/dist-lib/lib/capabilities/tool-turns.d.ts +29 -4
  115. package/dist-lib/lib/capabilities/tool-turns.js +120 -10
  116. package/dist-lib/lib/capabilities/usage-breakdown.d.ts +1 -1
  117. package/dist-lib/lib/capabilities/usage-breakdown.js +4 -1
  118. package/dist-lib/lib/connect.d.ts +6 -0
  119. package/dist-lib/lib/connect.js +153 -65
  120. package/dist-lib/lib/context-window.d.ts +4 -2
  121. package/dist-lib/lib/context-window.js +27 -16
  122. package/dist-lib/lib/contract/agent.d.ts +65 -0
  123. package/dist-lib/lib/{capabilities/types.d.ts → contract/completion.d.ts} +140 -26
  124. package/dist-lib/lib/contract/exec.d.ts +134 -0
  125. package/dist-lib/lib/{hooks/types.d.ts → contract/hooks.d.ts} +62 -10
  126. package/dist-lib/lib/contract/index.d.ts +5 -0
  127. package/dist-lib/lib/contract/knowledge.d.ts +60 -0
  128. package/dist-lib/lib/contract/knowledge.js +1 -0
  129. package/dist-lib/lib/contract/models.d.ts +56 -0
  130. package/dist-lib/lib/contract/models.js +1 -0
  131. package/dist-lib/lib/contract/run.d.ts +142 -0
  132. package/dist-lib/lib/contract/run.js +1 -0
  133. package/dist-lib/lib/contract/sandbox.d.ts +29 -0
  134. package/dist-lib/lib/contract/sandbox.js +1 -0
  135. package/dist-lib/lib/contract/skill-readiness.d.ts +14 -0
  136. package/dist-lib/lib/contract/skill-readiness.js +1 -0
  137. package/dist-lib/lib/{capabilities/voice.d.ts → contract/speech.d.ts} +11 -16
  138. package/dist-lib/lib/contract/speech.js +1 -0
  139. package/dist-lib/lib/contract-types.d.ts +43 -16
  140. package/dist-lib/lib/docx/index.d.ts +0 -1
  141. package/dist-lib/lib/docx/index.js +15 -24
  142. package/dist-lib/lib/embeddings/index.d.ts +63 -0
  143. package/dist-lib/lib/embeddings/index.js +267 -0
  144. package/dist-lib/lib/fold/index.d.ts +50 -0
  145. package/dist-lib/lib/fold/index.js +123 -0
  146. package/dist-lib/lib/{tools/exec/adapters/python/guarded-fetch.d.ts → guarded-fetch.d.ts} +5 -12
  147. package/dist-lib/lib/{tools/exec/adapters/python/guarded-fetch.js → guarded-fetch.js} +12 -34
  148. package/dist-lib/lib/helpers/completion-params.d.ts +3 -0
  149. package/dist-lib/lib/helpers/completion-params.js +12 -0
  150. package/dist-lib/lib/helpers/copy.d.ts +1 -0
  151. package/dist-lib/lib/helpers/copy.js +5 -0
  152. package/dist-lib/lib/helpers/drain.d.ts +5 -0
  153. package/dist-lib/lib/helpers/drain.js +19 -0
  154. package/dist-lib/lib/{machine/errors.d.ts → helpers/engine-error.d.ts} +6 -9
  155. package/dist-lib/lib/{machine/errors.js → helpers/engine-error.js} +9 -25
  156. package/dist-lib/lib/helpers/failure-result.d.ts +21 -0
  157. package/dist-lib/lib/helpers/failure-result.js +39 -0
  158. package/dist-lib/lib/helpers/head-tail.d.ts +7 -0
  159. package/dist-lib/lib/helpers/head-tail.js +19 -0
  160. package/dist-lib/lib/helpers/image-settings.d.ts +2 -0
  161. package/dist-lib/lib/helpers/image-settings.js +19 -0
  162. package/dist-lib/lib/helpers/mcp-methods.d.ts +2 -0
  163. package/dist-lib/lib/helpers/mcp-methods.js +14 -0
  164. package/dist-lib/lib/helpers/race-abort.d.ts +1 -1
  165. package/dist-lib/lib/helpers/race-abort.js +1 -1
  166. package/dist-lib/lib/helpers/repeated-reply.d.ts +2 -0
  167. package/dist-lib/lib/helpers/repeated-reply.js +63 -0
  168. package/dist-lib/lib/helpers/run-outcome.d.ts +5 -4
  169. package/dist-lib/lib/helpers/run-outcome.js +11 -9
  170. package/dist-lib/lib/{machine → helpers}/stable-stringify.js +1 -1
  171. package/dist-lib/lib/helpers/tool-call-markup.d.ts +1 -0
  172. package/dist-lib/lib/helpers/tool-call-markup.js +9 -5
  173. package/dist-lib/lib/helpers/tool-label.d.ts +2 -2
  174. package/dist-lib/lib/helpers/tool-label.js +3 -3
  175. package/dist-lib/lib/hooks/built-in/arg-repair.d.ts +1 -1
  176. package/dist-lib/lib/hooks/built-in/arg-repair.js +109 -19
  177. package/dist-lib/lib/hooks/built-in/egress.d.ts +1 -1
  178. package/dist-lib/lib/hooks/built-in/egress.js +13 -21
  179. package/dist-lib/lib/hooks/built-in/sandbox.d.ts +1 -1
  180. package/dist-lib/lib/hooks/built-in/skill-catalog.d.ts +1 -1
  181. package/dist-lib/lib/hooks/index.d.ts +48 -0
  182. package/dist-lib/lib/hooks/index.js +130 -0
  183. package/dist-lib/lib/hooks/run.d.ts +9 -6
  184. package/dist-lib/lib/hooks/run.js +113 -48
  185. package/dist-lib/lib/{completion-lifecycle.d.ts → lifecycle/completion-run.d.ts} +1 -1
  186. package/dist-lib/lib/{completion-lifecycle.js → lifecycle/completion-run.js} +1 -1
  187. package/dist-lib/lib/lifecycle/index.d.ts +83 -0
  188. package/dist-lib/lib/lifecycle/index.js +335 -0
  189. package/dist-lib/lib/{harness-lifecycle.js → lifecycle/machine.js} +2 -2
  190. package/dist-lib/lib/machine/completion/actions/completion.d.ts +11 -2
  191. package/dist-lib/lib/machine/completion/actions/completion.js +98 -14
  192. package/dist-lib/lib/machine/completion/actions/prepare.d.ts +9 -0
  193. package/dist-lib/lib/machine/completion/actions/prepare.js +30 -0
  194. package/dist-lib/lib/machine/completion/actions/tools.d.ts +10 -1
  195. package/dist-lib/lib/machine/completion/actions/tools.js +79 -7
  196. package/dist-lib/lib/machine/completion/context.d.ts +7 -2
  197. package/dist-lib/lib/machine/completion/context.js +29 -5
  198. package/dist-lib/lib/machine/completion/guards/retry.d.ts +1 -0
  199. package/dist-lib/lib/machine/completion/guards/retry.js +6 -3
  200. package/dist-lib/lib/machine/completion/implementations.d.ts +38 -12
  201. package/dist-lib/lib/machine/completion/implementations.js +81 -31
  202. package/dist-lib/lib/machine/completion/machine.d.ts +140 -63
  203. package/dist-lib/lib/machine/completion/machine.js +194 -58
  204. package/dist-lib/lib/machine/completion/ports.d.ts +7 -55
  205. package/dist-lib/lib/machine/completion/ports.js +1 -224
  206. package/dist-lib/lib/machine/completion/rules.d.ts +20 -19
  207. package/dist-lib/lib/machine/completion/rules.js +73 -52
  208. package/dist-lib/lib/machine/completion/types.d.ts +110 -187
  209. package/dist-lib/lib/machine/completion/version.d.ts +1 -0
  210. package/dist-lib/lib/machine/completion/version.js +1 -0
  211. package/dist-lib/lib/machine/definition.d.ts +23 -0
  212. package/dist-lib/lib/machine/definition.js +76 -0
  213. package/dist-lib/lib/machine/index.d.ts +463 -20
  214. package/dist-lib/lib/machine/index.js +15 -11
  215. package/dist-lib/lib/models/llm-presets.d.ts +1 -0
  216. package/dist-lib/lib/models/model-catalog-constants.d.ts +3 -1
  217. package/dist-lib/lib/models/model-catalog-constants.js +9 -1
  218. package/dist-lib/lib/models/model-catalog.d.ts +31 -4
  219. package/dist-lib/lib/models/model-catalog.js +89 -8
  220. package/dist-lib/lib/models/model-fit.d.ts +55 -0
  221. package/dist-lib/lib/models/model-fit.js +102 -0
  222. package/dist-lib/lib/models/model-handle.d.ts +4 -0
  223. package/dist-lib/lib/models/model-handle.js +8 -1
  224. package/dist-lib/lib/models/model-list.d.ts +4 -0
  225. package/dist-lib/lib/models/model-pool.d.ts +35 -10
  226. package/dist-lib/lib/models/model-pool.js +63 -14
  227. package/dist-lib/lib/models/music-catalog.d.ts +1 -1
  228. package/dist-lib/lib/models/music-catalog.js +8 -1
  229. package/dist-lib/lib/models/sdk-faults.d.ts +2 -0
  230. package/dist-lib/lib/models/sdk-faults.js +18 -0
  231. package/dist-lib/lib/models/tts-model-default.js +3 -3
  232. package/dist-lib/lib/office/engine/codes.d.ts +62 -0
  233. package/dist-lib/lib/office/engine/codes.js +61 -0
  234. package/dist-lib/lib/office/engine/docx/document.d.ts +216 -0
  235. package/dist-lib/lib/office/engine/docx/document.js +1152 -0
  236. package/dist-lib/lib/office/engine/docx/index.d.ts +7 -0
  237. package/dist-lib/lib/office/engine/docx/index.js +8 -0
  238. package/dist-lib/lib/office/engine/docx/styles.d.ts +31 -0
  239. package/dist-lib/lib/office/engine/docx/styles.js +173 -0
  240. package/dist-lib/lib/office/engine/docx/template.d.ts +18 -0
  241. package/dist-lib/lib/office/engine/docx/template.js +133 -0
  242. package/dist-lib/lib/office/engine/docx/text.d.ts +55 -0
  243. package/dist-lib/lib/office/engine/docx/text.js +538 -0
  244. package/dist-lib/lib/office/engine/drawingml/chart.d.ts +63 -0
  245. package/dist-lib/lib/office/engine/drawingml/chart.js +539 -0
  246. package/dist-lib/lib/office/engine/drawingml/text.d.ts +35 -0
  247. package/dist-lib/lib/office/engine/drawingml/text.js +352 -0
  248. package/dist-lib/lib/office/engine/errors.d.ts +6 -0
  249. package/dist-lib/lib/office/engine/errors.js +12 -0
  250. package/dist-lib/lib/office/engine/image.d.ts +8 -0
  251. package/dist-lib/lib/office/engine/image.js +48 -0
  252. package/dist-lib/lib/office/engine/index.d.ts +12 -0
  253. package/dist-lib/lib/office/engine/index.js +7 -0
  254. package/dist-lib/lib/office/engine/opc/content-types.d.ts +17 -0
  255. package/dist-lib/lib/office/engine/opc/content-types.js +74 -0
  256. package/dist-lib/lib/office/engine/opc/media.d.ts +13 -0
  257. package/dist-lib/lib/office/engine/opc/media.js +11 -0
  258. package/dist-lib/lib/office/engine/opc/package.d.ts +51 -0
  259. package/dist-lib/lib/office/engine/opc/package.js +324 -0
  260. package/dist-lib/lib/office/engine/opc/paths.d.ts +7 -0
  261. package/dist-lib/lib/office/engine/opc/paths.js +46 -0
  262. package/dist-lib/lib/office/engine/opc/properties.d.ts +7 -0
  263. package/dist-lib/lib/office/engine/opc/properties.js +75 -0
  264. package/dist-lib/lib/office/engine/opc/relationships.d.ts +23 -0
  265. package/dist-lib/lib/office/engine/opc/relationships.js +65 -0
  266. package/dist-lib/lib/office/engine/opc/zip.d.ts +15 -0
  267. package/dist-lib/lib/office/engine/opc/zip.js +264 -0
  268. package/dist-lib/lib/office/engine/pptx/fit.d.ts +12 -0
  269. package/dist-lib/lib/office/engine/pptx/fit.js +37 -0
  270. package/dist-lib/lib/office/engine/pptx/index.d.ts +8 -0
  271. package/dist-lib/lib/office/engine/pptx/index.js +8 -0
  272. package/dist-lib/lib/office/engine/pptx/inherit.d.ts +29 -0
  273. package/dist-lib/lib/office/engine/pptx/inherit.js +155 -0
  274. package/dist-lib/lib/office/engine/pptx/notes.d.ts +5 -0
  275. package/dist-lib/lib/office/engine/pptx/notes.js +85 -0
  276. package/dist-lib/lib/office/engine/pptx/presentation.d.ts +54 -0
  277. package/dist-lib/lib/office/engine/pptx/presentation.js +749 -0
  278. package/dist-lib/lib/office/engine/pptx/read.d.ts +9 -0
  279. package/dist-lib/lib/office/engine/pptx/read.js +66 -0
  280. package/dist-lib/lib/office/engine/pptx/shapes.d.ts +52 -0
  281. package/dist-lib/lib/office/engine/pptx/shapes.js +276 -0
  282. package/dist-lib/lib/office/engine/pptx/slides.d.ts +27 -0
  283. package/dist-lib/lib/office/engine/pptx/slides.js +123 -0
  284. package/dist-lib/lib/office/engine/pptx/template.d.ts +20 -0
  285. package/dist-lib/lib/office/engine/pptx/template.js +391 -0
  286. package/dist-lib/lib/office/engine/pptx/types.d.ts +120 -0
  287. package/dist-lib/lib/office/engine/pptx/types.js +1 -0
  288. package/dist-lib/lib/office/engine/units.d.ts +3 -0
  289. package/dist-lib/lib/office/engine/units.js +12 -0
  290. package/dist-lib/lib/office/engine/utf8.d.ts +2 -0
  291. package/dist-lib/lib/office/engine/utf8.js +103 -0
  292. package/dist-lib/lib/office/engine/xlsx/formula.d.ts +49 -0
  293. package/dist-lib/lib/office/engine/xlsx/formula.js +381 -0
  294. package/dist-lib/lib/office/engine/xlsx/index.d.ts +8 -0
  295. package/dist-lib/lib/office/engine/xlsx/index.js +8 -0
  296. package/dist-lib/lib/office/engine/xlsx/refs.d.ts +22 -0
  297. package/dist-lib/lib/office/engine/xlsx/refs.js +82 -0
  298. package/dist-lib/lib/office/engine/xlsx/reshape.d.ts +21 -0
  299. package/dist-lib/lib/office/engine/xlsx/reshape.js +424 -0
  300. package/dist-lib/lib/office/engine/xlsx/sheet.d.ts +108 -0
  301. package/dist-lib/lib/office/engine/xlsx/sheet.js +662 -0
  302. package/dist-lib/lib/office/engine/xlsx/strings.d.ts +15 -0
  303. package/dist-lib/lib/office/engine/xlsx/strings.js +93 -0
  304. package/dist-lib/lib/office/engine/xlsx/styles.d.ts +38 -0
  305. package/dist-lib/lib/office/engine/xlsx/styles.js +369 -0
  306. package/dist-lib/lib/office/engine/xlsx/template.d.ts +7 -0
  307. package/dist-lib/lib/office/engine/xlsx/template.js +54 -0
  308. package/dist-lib/lib/office/engine/xlsx/workbook.d.ts +161 -0
  309. package/dist-lib/lib/office/engine/xlsx/workbook.js +850 -0
  310. package/dist-lib/lib/office/engine/xlsx/write.d.ts +2 -0
  311. package/dist-lib/lib/office/engine/xlsx/write.js +42 -0
  312. package/dist-lib/lib/office/engine/xml.d.ts +45 -0
  313. package/dist-lib/lib/office/engine/xml.js +258 -0
  314. package/dist-lib/lib/office/extract.d.ts +9 -0
  315. package/dist-lib/lib/office/extract.js +19 -0
  316. package/dist-lib/lib/office/index.d.ts +1 -1
  317. package/dist-lib/lib/office/index.js +74 -19
  318. package/dist-lib/lib/plugins/addons.d.ts +2 -0
  319. package/dist-lib/lib/plugins/addons.js +12 -0
  320. package/dist-lib/lib/plugins/context.d.ts +16 -0
  321. package/dist-lib/lib/plugins/context.js +48 -0
  322. package/dist-lib/lib/plugins/index.d.ts +3 -0
  323. package/dist-lib/lib/plugins/index.js +1 -0
  324. package/dist-lib/lib/plugins/registry.d.ts +116 -0
  325. package/dist-lib/lib/plugins/registry.js +505 -0
  326. package/dist-lib/lib/plugins/runtime.d.ts +27 -0
  327. package/dist-lib/lib/plugins/runtime.js +143 -0
  328. package/dist-lib/lib/plugins/scope.d.ts +17 -0
  329. package/dist-lib/lib/plugins/scope.js +55 -0
  330. package/dist-lib/lib/prompt.d.ts +2 -5
  331. package/dist-lib/lib/prompt.js +9 -0
  332. package/dist-lib/lib/residency/completion-runtime.d.ts +52 -0
  333. package/dist-lib/lib/{capabilities → residency}/completion-runtime.js +22 -15
  334. package/dist-lib/lib/residency/index.d.ts +148 -0
  335. package/dist-lib/lib/residency/index.js +539 -0
  336. package/dist-lib/lib/run-log/boundary.d.ts +17 -0
  337. package/dist-lib/lib/run-log/boundary.js +58 -0
  338. package/dist-lib/lib/run-log/history-codec.d.ts +7 -6
  339. package/dist-lib/lib/run-log/history-codec.js +175 -46
  340. package/dist-lib/lib/run-log/index.d.ts +46 -0
  341. package/dist-lib/lib/run-log/index.js +40 -0
  342. package/dist-lib/lib/run-log/inspect.d.ts +53 -0
  343. package/dist-lib/lib/{run-log-inspect.js → run-log/inspect.js} +196 -139
  344. package/dist-lib/lib/run-log/live.d.ts +37 -0
  345. package/dist-lib/lib/run-log/live.js +195 -0
  346. package/dist-lib/lib/run-log/persisted-actor.d.ts +1 -6
  347. package/dist-lib/lib/run-log/persisted-actor.js +4 -3
  348. package/dist-lib/lib/run-log/protocol-types.d.ts +37 -14
  349. package/dist-lib/lib/run-log/protocol.d.ts +1 -2
  350. package/dist-lib/lib/run-log/protocol.js +45 -40
  351. package/dist-lib/lib/{run-log-redact.d.ts → run-log/redact.d.ts} +3 -2
  352. package/dist-lib/lib/{run-log-redact.js → run-log/redact.js} +101 -16
  353. package/dist-lib/lib/run-log/replay.d.ts +3 -2
  354. package/dist-lib/lib/run-log/replay.js +7 -6
  355. package/dist-lib/lib/run-log/request-codec.d.ts +17 -0
  356. package/dist-lib/lib/run-log/request-codec.js +87 -0
  357. package/dist-lib/lib/run-log/run-journal.d.ts +14 -8
  358. package/dist-lib/lib/run-log/run-journal.js +100 -75
  359. package/dist-lib/lib/sdk-loader.d.ts +2 -7
  360. package/dist-lib/lib/sdk-loader.js +8 -15
  361. package/dist-lib/lib/sdk-storage.js +3 -1
  362. package/dist-lib/lib/serve.js +139 -38
  363. package/dist-lib/lib/skills-host/index.d.ts +59 -0
  364. package/dist-lib/lib/skills-host/index.js +268 -0
  365. package/dist-lib/lib/spawn.d.ts +37 -3
  366. package/dist-lib/lib/spawn.js +7 -3
  367. package/dist-lib/lib/spill.d.ts +11 -0
  368. package/dist-lib/lib/spill.js +82 -0
  369. package/dist-lib/lib/tools/{exec/adapters/python → attachments}/output-policy.d.ts +2 -3
  370. package/dist-lib/lib/tools/{exec/adapters/python/attachments.d.ts → attachments/staging.d.ts} +2 -2
  371. package/dist-lib/lib/tools/{exec/adapters/python/attachments.js → attachments/staging.js} +3 -3
  372. package/dist-lib/lib/tools/catalog.d.ts +1 -1
  373. package/dist-lib/lib/tools/catalog.js +1 -1
  374. package/dist-lib/lib/tools/create-documents.d.ts +1 -1
  375. package/dist-lib/lib/tools/edit-documents.d.ts +1 -1
  376. package/dist-lib/lib/tools/exec/adapters/shell/shell-adapter.d.ts +5 -7
  377. package/dist-lib/lib/tools/exec/adapters/shell/shell-adapter.js +3 -2
  378. package/dist-lib/lib/tools/exec/bare-runtime.js +2 -4
  379. package/dist-lib/lib/tools/exec/python-source.d.ts +6 -0
  380. package/dist-lib/lib/tools/exec/python-source.js +243 -0
  381. package/dist-lib/lib/tools/exec/runner.d.ts +24 -45
  382. package/dist-lib/lib/tools/exec/runner.js +68 -34
  383. package/dist-lib/lib/tools/exec/scope.d.ts +2 -0
  384. package/dist-lib/lib/tools/exec/scope.js +33 -2
  385. package/dist-lib/lib/tools/exec/shell-guidance.d.ts +11 -9
  386. package/dist-lib/lib/tools/exec/shell-guidance.js +28 -57
  387. package/dist-lib/lib/tools/exec/video-tools.d.ts +0 -1
  388. package/dist-lib/lib/tools/exec/video-tools.js +0 -5
  389. package/dist-lib/lib/tools/exec.d.ts +7 -14
  390. package/dist-lib/lib/tools/exec.js +181 -457
  391. package/dist-lib/lib/tools/file-glob.d.ts +1 -1
  392. package/dist-lib/lib/tools/file-glob.js +1 -0
  393. package/dist-lib/lib/tools/fs/scope.d.ts +1 -0
  394. package/dist-lib/lib/tools/fs/scope.js +8 -3
  395. package/dist-lib/lib/tools/grep.d.ts +1 -1
  396. package/dist-lib/lib/tools/grep.js +1 -0
  397. package/dist-lib/lib/tools/http-request.d.ts +1 -1
  398. package/dist-lib/lib/tools/http-request.js +1 -0
  399. package/dist-lib/lib/tools/index.d.ts +21 -0
  400. package/dist-lib/lib/tools/index.js +46 -0
  401. package/dist-lib/lib/tools/office/ops.d.ts +13 -0
  402. package/dist-lib/lib/tools/office/ops.js +100 -0
  403. package/dist-lib/lib/tools/office.d.ts +12 -0
  404. package/dist-lib/lib/tools/office.js +486 -0
  405. package/dist-lib/lib/tools/operations/compile.d.ts +3 -3
  406. package/dist-lib/lib/tools/operations/compile.js +2 -1
  407. package/dist-lib/lib/tools/operations/decoders.js +1 -1
  408. package/dist-lib/lib/tools/operations/manifest.d.ts +1 -1
  409. package/dist-lib/lib/tools/outbound-guard.d.ts +3 -1
  410. package/dist-lib/lib/tools/outbound-guard.js +4 -0
  411. package/dist-lib/lib/tools/pdf/build.d.ts +43 -0
  412. package/dist-lib/lib/tools/pdf/build.js +150 -0
  413. package/dist-lib/lib/tools/pdf/images.d.ts +7 -0
  414. package/dist-lib/lib/tools/pdf/images.js +82 -0
  415. package/dist-lib/lib/tools/pdf/request.d.ts +63 -0
  416. package/dist-lib/lib/tools/pdf/request.js +335 -0
  417. package/dist-lib/lib/tools/pdf.d.ts +6 -0
  418. package/dist-lib/lib/tools/pdf.js +303 -0
  419. package/dist-lib/lib/tools/read-files.d.ts +1 -1
  420. package/dist-lib/lib/tools/read-files.js +5 -1
  421. package/dist-lib/lib/tools/skill.d.ts +2 -4
  422. package/dist-lib/lib/tools/skill.js +20 -22
  423. package/dist-lib/lib/tools/skills/auth-resolver.d.ts +1 -1
  424. package/dist-lib/lib/tools/skills/catalog.d.ts +9 -2
  425. package/dist-lib/lib/tools/skills/catalog.js +7 -7
  426. package/dist-lib/lib/tools/skills/cli-schema.js +1 -1
  427. package/dist-lib/lib/tools/skills/frontmatter-parser.d.ts +1 -0
  428. package/dist-lib/lib/tools/skills/frontmatter-parser.js +1 -0
  429. package/dist-lib/lib/tools/skills/mention.d.ts +1 -2
  430. package/dist-lib/lib/tools/skills/mention.js +0 -3
  431. package/dist-lib/lib/tools/skills/scope-key.d.ts +2 -1
  432. package/dist-lib/lib/tools/skills/scope-key.js +2 -3
  433. package/dist-lib/lib/tools/skills/skill-state.d.ts +2 -2
  434. package/dist-lib/lib/tools/skills/skill-state.js +11 -28
  435. package/dist-lib/lib/tools/toolsets.d.ts +3 -7
  436. package/dist-lib/lib/tools/toolsets.js +5 -9
  437. package/dist-lib/lib/tools/web-fetch.d.ts +1 -1
  438. package/dist-lib/lib/tools/web-fetch.js +42 -6
  439. package/dist-lib/lib/web-fetch/embedded-state.js +1 -1
  440. package/dist-lib/lib/web-fetch/extract.js +1 -1
  441. package/dist-lib/lib/web-fetch/images.js +1 -1
  442. package/dist-lib/lib/web-fetch/video.js +1 -1
  443. package/dist-lib/lib/wire.d.ts +8 -0
  444. package/dist-lib/lib/wire.js +112 -2
  445. package/dist-lib/plugins/code-mode/index.d.ts +16 -0
  446. package/dist-lib/plugins/code-mode/index.js +43 -0
  447. package/dist-lib/plugins/coding/index.d.ts +15 -0
  448. package/dist-lib/plugins/coding/index.js +42 -0
  449. package/dist-lib/plugins/coding/jobs.d.ts +24 -0
  450. package/dist-lib/plugins/coding/jobs.js +144 -0
  451. package/dist-lib/plugins/coding/session.d.ts +51 -0
  452. package/dist-lib/plugins/coding/session.js +263 -0
  453. package/dist-lib/plugins/coding/write-file.d.ts +3 -0
  454. package/dist-lib/plugins/coding/write-file.js +52 -0
  455. package/dist-lib/plugins/command-hooks/index.d.ts +88 -0
  456. package/dist-lib/plugins/command-hooks/index.js +338 -0
  457. package/dist-lib/plugins/external-agents/acp.d.ts +27 -0
  458. package/dist-lib/plugins/external-agents/acp.js +264 -0
  459. package/dist-lib/plugins/external-agents/cli.d.ts +3 -0
  460. package/dist-lib/plugins/external-agents/cli.js +199 -0
  461. package/dist-lib/plugins/external-agents/index.d.ts +25 -0
  462. package/dist-lib/plugins/external-agents/index.js +54 -0
  463. package/dist-lib/plugins/external-agents/process.d.ts +19 -0
  464. package/dist-lib/plugins/external-agents/process.js +92 -0
  465. package/dist-lib/plugins/external-agents/targets.d.ts +32 -0
  466. package/dist-lib/plugins/external-agents/targets.js +66 -0
  467. package/dist-lib/{lib/tools → plugins/image}/edit-image.d.ts +3 -2
  468. package/dist-lib/{lib/tools → plugins/image}/edit-image.js +7 -2
  469. package/dist-lib/{lib/tools → plugins/image}/generate-image.d.ts +6 -12
  470. package/dist-lib/{lib/tools → plugins/image}/generate-image.js +6 -7
  471. package/dist-lib/plugins/image/index.d.ts +25 -0
  472. package/dist-lib/plugins/image/index.js +76 -0
  473. package/dist-lib/plugins/knowledge/index.d.ts +21 -0
  474. package/dist-lib/plugins/knowledge/index.js +47 -0
  475. package/dist-lib/plugins/knowledge/search-tool.d.ts +4 -0
  476. package/dist-lib/plugins/knowledge/search-tool.js +38 -0
  477. package/dist-lib/plugins/knowledge/store.d.ts +42 -0
  478. package/dist-lib/plugins/knowledge/store.js +332 -0
  479. package/dist-lib/plugins/lsp/index.d.ts +32 -0
  480. package/dist-lib/plugins/lsp/index.js +77 -0
  481. package/dist-lib/plugins/lsp/pool.d.ts +24 -0
  482. package/dist-lib/plugins/lsp/pool.js +73 -0
  483. package/dist-lib/plugins/lsp/rpc.d.ts +37 -0
  484. package/dist-lib/plugins/lsp/rpc.js +145 -0
  485. package/dist-lib/plugins/lsp/server.d.ts +55 -0
  486. package/dist-lib/plugins/lsp/server.js +192 -0
  487. package/dist-lib/plugins/lsp/tool.d.ts +12 -0
  488. package/dist-lib/plugins/lsp/tool.js +366 -0
  489. package/dist-lib/plugins/mcp/call.d.ts +17 -0
  490. package/dist-lib/{lib/tools/mcp-call.js → plugins/mcp/call.js} +92 -84
  491. package/dist-lib/plugins/mcp/index.d.ts +21 -0
  492. package/dist-lib/plugins/mcp/index.js +85 -0
  493. package/dist-lib/{lib/tools → plugins}/mcp/protocol.d.ts +9 -16
  494. package/dist-lib/{lib/tools → plugins}/mcp/protocol.js +3 -16
  495. package/dist-lib/plugins/mcp/server.d.ts +23 -0
  496. package/dist-lib/plugins/mcp/server.js +108 -0
  497. package/dist-lib/{lib/tools → plugins/music}/generate-music.d.ts +6 -15
  498. package/dist-lib/{lib/tools → plugins/music}/generate-music.js +7 -8
  499. package/dist-lib/plugins/music/index.d.ts +24 -0
  500. package/dist-lib/plugins/music/index.js +48 -0
  501. package/dist-lib/{lib/tools/exec → plugins}/obsidian/cli-process.d.ts +2 -2
  502. package/dist-lib/{lib/tools/exec → plugins}/obsidian/cli-process.js +2 -2
  503. package/dist-lib/{lib/tools/exec → plugins}/obsidian/cli.d.ts +1 -1
  504. package/dist-lib/{lib/tools/exec → plugins}/obsidian/cli.js +7 -7
  505. package/dist-lib/{lib/tools/exec → plugins}/obsidian/command.js +1 -1
  506. package/dist-lib/{lib/tools/exec → plugins}/obsidian/guidance.d.ts +0 -1
  507. package/dist-lib/{lib/tools/exec → plugins}/obsidian/guidance.js +0 -7
  508. package/dist-lib/plugins/obsidian/index.d.ts +26 -0
  509. package/dist-lib/plugins/obsidian/index.js +138 -0
  510. package/dist-lib/{lib/tools/skills/obsidian-readiness.d.ts → plugins/obsidian/readiness.d.ts} +1 -0
  511. package/dist-lib/{lib/tools/skills/obsidian-readiness.js → plugins/obsidian/readiness.js} +7 -0
  512. package/dist-lib/plugins/python/guarded-fetch.d.ts +13 -0
  513. package/dist-lib/plugins/python/guarded-fetch.js +32 -0
  514. package/dist-lib/plugins/python/index.d.ts +18 -0
  515. package/dist-lib/plugins/python/index.js +19 -0
  516. package/dist-lib/{lib/tools/exec/adapters → plugins}/python/interrupt-timer.js +2 -2
  517. package/dist-lib/plugins/python/language.d.ts +8 -0
  518. package/dist-lib/plugins/python/language.js +377 -0
  519. package/dist-lib/{lib/tools/exec/adapters → plugins}/python/loader.d.ts +1 -0
  520. package/dist-lib/{lib/tools/exec/adapters → plugins}/python/loader.js +8 -1
  521. package/dist-lib/{lib/tools/exec/adapters → plugins}/python/memfs.js +3 -3
  522. package/dist-lib/{lib/tools/exec/adapters → plugins}/python/module-distributions.js +0 -3
  523. package/dist-lib/{lib/tools/exec/adapters → plugins}/python/pyodide.js +4 -4
  524. package/dist-lib/plugins/python/python-adapter.d.ts +41 -0
  525. package/dist-lib/plugins/python/python-adapter.js +515 -0
  526. package/dist-lib/{lib/tools/exec/adapters → plugins}/python/run-session.d.ts +1 -2
  527. package/dist-lib/{lib/tools/exec/adapters → plugins}/python/run-session.js +10 -99
  528. package/dist-lib/plugins/python/shell-redirect.d.ts +8 -0
  529. package/dist-lib/plugins/python/shell-redirect.js +25 -0
  530. package/dist-lib/{lib/tools/exec/adapters → plugins}/python/wheels.js +5 -3
  531. package/dist-lib/{lib/tools/exec/adapters → plugins}/python/worker/active.js +1 -1
  532. package/dist-lib/{lib/tools/exec/adapters → plugins}/python/worker/client.d.ts +1 -0
  533. package/dist-lib/{lib/tools/exec/adapters → plugins}/python/worker/client.js +6 -3
  534. package/dist-lib/plugins/python/worker/entry.d.ts +1 -0
  535. package/dist-lib/plugins/python/worker/entry.js +9 -0
  536. package/dist-lib/plugins/python/worker/interrupt-deadline.d.ts +1 -0
  537. package/dist-lib/{lib/tools/exec/adapters → plugins}/python/worker/interrupt-deadline.js +1 -1
  538. package/dist-lib/{lib/tools/exec/adapters → plugins}/python/worker/serve.js +2 -2
  539. package/dist-lib/{lib/tools/exec/adapters → plugins}/python/worker/spawn.d.ts +1 -0
  540. package/dist-lib/{lib/tools/exec/adapters → plugins}/python/worker/spawn.js +7 -0
  541. package/dist-lib/plugins/quickjs/index.d.ts +20 -0
  542. package/dist-lib/plugins/quickjs/index.js +25 -0
  543. package/dist-lib/plugins/quickjs/language.d.ts +3 -0
  544. package/dist-lib/plugins/quickjs/language.js +59 -0
  545. package/dist-lib/plugins/quickjs/runtime.d.ts +38 -0
  546. package/dist-lib/plugins/quickjs/runtime.js +421 -0
  547. package/dist-lib/plugins/quickjs/text-decoder.d.ts +1 -0
  548. package/dist-lib/plugins/quickjs/text-decoder.js +15 -0
  549. package/dist-lib/plugins/run-report/brand.d.ts +1 -0
  550. package/dist-lib/plugins/run-report/brand.js +1 -0
  551. package/dist-lib/plugins/run-report/flow-view.d.ts +6 -0
  552. package/dist-lib/plugins/run-report/flow-view.js +53 -0
  553. package/dist-lib/plugins/run-report/flow.d.ts +33 -0
  554. package/dist-lib/plugins/run-report/flow.js +201 -0
  555. package/dist-lib/plugins/run-report/index.d.ts +17 -0
  556. package/dist-lib/plugins/run-report/index.js +27 -0
  557. package/dist-lib/plugins/run-report/layout.d.ts +39 -0
  558. package/dist-lib/plugins/run-report/layout.js +175 -0
  559. package/dist-lib/plugins/run-report/meaning.d.ts +6 -0
  560. package/dist-lib/plugins/run-report/meaning.js +43 -0
  561. package/dist-lib/plugins/run-report/model.d.ts +86 -0
  562. package/dist-lib/plugins/run-report/model.js +387 -0
  563. package/dist-lib/plugins/run-report/page.d.ts +13 -0
  564. package/dist-lib/plugins/run-report/page.js +234 -0
  565. package/dist-lib/plugins/run-report/script.d.ts +1 -0
  566. package/dist-lib/plugins/run-report/script.js +661 -0
  567. package/dist-lib/plugins/run-report/story.d.ts +48 -0
  568. package/dist-lib/plugins/run-report/story.js +188 -0
  569. package/dist-lib/plugins/run-report/style.d.ts +1 -0
  570. package/dist-lib/plugins/run-report/style.js +410 -0
  571. package/dist-lib/plugins/run-report/why.d.ts +28 -0
  572. package/dist-lib/plugins/run-report/why.js +170 -0
  573. package/dist-lib/plugins/sandbox-macos/index.d.ts +48 -0
  574. package/dist-lib/plugins/sandbox-macos/index.js +175 -0
  575. package/dist-lib/plugins/sandbox-vm/index.d.ts +24 -0
  576. package/dist-lib/plugins/sandbox-vm/index.js +27 -0
  577. package/dist-lib/plugins/sandbox-vm/vm-shell.d.ts +46 -0
  578. package/dist-lib/plugins/sandbox-vm/vm-shell.js +106 -0
  579. package/dist-lib/{lib → plugins/speech}/audio-transcode-bare.js +2 -2
  580. package/dist-lib/plugins/speech/index.d.ts +17 -0
  581. package/dist-lib/plugins/speech/index.js +24 -0
  582. package/dist-lib/plugins/speech/speech-engine.d.ts +23 -0
  583. package/dist-lib/plugins/speech/speech-engine.js +55 -0
  584. package/dist-lib/plugins/speech/speech-runtime.d.ts +22 -0
  585. package/dist-lib/plugins/speech/speech-runtime.js +212 -0
  586. package/dist-lib/{lib/capabilities → plugins/speech}/speech-text.d.ts +1 -0
  587. package/dist-lib/{lib/capabilities → plugins/speech}/speech-text.js +10 -3
  588. package/dist-lib/plugins/speech/voice-lane.d.ts +2 -0
  589. package/dist-lib/plugins/speech/voice-lane.js +9 -0
  590. package/dist-lib/plugins/speech/voice.d.ts +17 -0
  591. package/dist-lib/{lib/capabilities → plugins/speech}/voice.js +27 -25
  592. package/dist-lib/plugins/translation/index.d.ts +22 -0
  593. package/dist-lib/plugins/translation/index.js +63 -0
  594. package/dist-lib/{lib/models → plugins/translation}/nmt-catalog.d.ts +0 -1
  595. package/dist-lib/{lib/models → plugins/translation}/nmt-catalog.js +0 -3
  596. package/dist-lib/{lib/tools → plugins/translation}/translate.d.ts +14 -6
  597. package/dist-lib/{lib/tools → plugins/translation}/translate.js +14 -8
  598. package/dist-lib/plugins/walkie-talkie/crew.d.ts +27 -0
  599. package/dist-lib/plugins/walkie-talkie/crew.js +103 -0
  600. package/dist-lib/plugins/walkie-talkie/index.d.ts +127 -0
  601. package/dist-lib/plugins/walkie-talkie/index.js +340 -0
  602. package/dist-lib/plugins/walkie-talkie/wire.d.ts +67 -0
  603. package/dist-lib/plugins/walkie-talkie/wire.js +136 -0
  604. package/dist-lib/plugins/weather/geocode.d.ts +25 -0
  605. package/dist-lib/plugins/weather/geocode.js +101 -0
  606. package/dist-lib/plugins/weather/index.d.ts +15 -0
  607. package/dist-lib/plugins/weather/index.js +17 -0
  608. package/dist-lib/plugins/weather/lookup.d.ts +6 -0
  609. package/dist-lib/plugins/weather/lookup.js +169 -0
  610. package/dist-lib/{lib/tools/weather-lookup → plugins/weather}/place.js +5 -1
  611. package/dist-lib/plugins/web-search/engine-registry.d.ts +44 -0
  612. package/dist-lib/plugins/web-search/engine-registry.js +17 -0
  613. package/dist-lib/{lib → plugins}/web-search/engines/aol.d.ts +1 -0
  614. package/dist-lib/{lib → plugins}/web-search/engines/aol.js +5 -3
  615. package/dist-lib/{lib → plugins}/web-search/engines/bing.d.ts +1 -0
  616. package/dist-lib/{lib → plugins}/web-search/engines/bing.js +9 -4
  617. package/dist-lib/{lib → plugins}/web-search/engines/brave.d.ts +1 -0
  618. package/dist-lib/{lib → plugins}/web-search/engines/brave.js +5 -3
  619. package/dist-lib/{lib → plugins}/web-search/engines/duckduckgo.d.ts +1 -0
  620. package/dist-lib/{lib → plugins}/web-search/engines/duckduckgo.js +5 -2
  621. package/dist-lib/{lib → plugins}/web-search/engines/google.d.ts +1 -0
  622. package/dist-lib/{lib → plugins}/web-search/engines/google.js +6 -4
  623. package/dist-lib/{lib → plugins}/web-search/engines/wikipedia.d.ts +1 -0
  624. package/dist-lib/{lib → plugins}/web-search/engines/wikipedia.js +5 -3
  625. package/dist-lib/{lib → plugins}/web-search/engines/yahoo.d.ts +1 -0
  626. package/dist-lib/{lib → plugins}/web-search/engines/yahoo.js +5 -3
  627. package/dist-lib/{lib → plugins}/web-search/fetch-html.js +1 -1
  628. package/dist-lib/plugins/web-search/index.d.ts +18 -0
  629. package/dist-lib/plugins/web-search/index.js +33 -0
  630. package/dist-lib/{lib → plugins}/web-search/orchestrator.d.ts +3 -1
  631. package/dist-lib/{lib → plugins}/web-search/orchestrator.js +5 -5
  632. package/dist-lib/plugins/web-search/tool.d.ts +3 -0
  633. package/dist-lib/{lib/tools/web-search.js → plugins/web-search/tool.js} +18 -14
  634. package/dist-lib/plugins/web-search/types.js +1 -0
  635. package/dist-lib/schema/generate.js +5 -2
  636. package/dist-lib/schema/harness.js +158 -7
  637. package/dist-lib/spec/bind.js +20 -4
  638. package/dist-lib/spec/calls.js +4 -0
  639. package/dist-lib/spec/hrpc/hrpc.json +52 -0
  640. package/dist-lib/spec/hrpc/index.js +51 -3
  641. package/dist-lib/spec/hrpc/messages.js +595 -17
  642. package/dist-lib/spec/hyperschema/index.js +595 -17
  643. package/dist-lib/spec/hyperschema/schema.json +464 -1
  644. package/dist-lib/spec/hyperschema/types.d.ts +113 -2
  645. package/package.json +262 -485
  646. package/patches/{@qvac%2Finference@0.20.0.patch → @qvac%2Finference@0.21.0.patch} +8 -8
  647. package/scripts/addon-externals.cjs +386 -0
  648. package/scripts/addon-externals.d.ts +30 -0
  649. package/wheels/manifest.json +1 -160
  650. package/worker/harness-sidecar.mjs +80 -59
  651. package/dist-lib/lib/capabilities/completion-engine/actors/inspect-preload.d.ts +0 -3
  652. package/dist-lib/lib/capabilities/completion-engine/actors/inspect-preload.js +0 -75
  653. package/dist-lib/lib/capabilities/completion-engine/actors/preload-failure.d.ts +0 -9
  654. package/dist-lib/lib/capabilities/completion-engine/actors/preload-failure.js +0 -11
  655. package/dist-lib/lib/capabilities/completion-engine/actors/preloading.d.ts +0 -3
  656. package/dist-lib/lib/capabilities/completion-engine/actors/preloading.js +0 -114
  657. package/dist-lib/lib/capabilities/completion-loop/index.d.ts +0 -80
  658. package/dist-lib/lib/capabilities/completion-loop/index.js +0 -158
  659. package/dist-lib/lib/capabilities/completion-loop/metrics.d.ts +0 -5
  660. package/dist-lib/lib/capabilities/completion-loop/metrics.js +0 -29
  661. package/dist-lib/lib/capabilities/completion-loop/tool-execution.d.ts +0 -60
  662. package/dist-lib/lib/capabilities/completion-loop/turns.js +0 -112
  663. package/dist-lib/lib/capabilities/completion-runtime.d.ts +0 -46
  664. package/dist-lib/lib/capabilities/completion.d.ts +0 -18
  665. package/dist-lib/lib/capabilities/completion.js +0 -22
  666. package/dist-lib/lib/helpers/recovery-required.d.ts +0 -1
  667. package/dist-lib/lib/helpers/recovery-required.js +0 -1
  668. package/dist-lib/lib/hooks/built-in/index.d.ts +0 -4
  669. package/dist-lib/lib/hooks/built-in/index.js +0 -4
  670. package/dist-lib/lib/hooks/pipeline.d.ts +0 -24
  671. package/dist-lib/lib/hooks/pipeline.js +0 -74
  672. package/dist-lib/lib/hooks/registry.d.ts +0 -2
  673. package/dist-lib/lib/hooks/registry.js +0 -7
  674. package/dist-lib/lib/machine/completion/actions/skills.d.ts +0 -9
  675. package/dist-lib/lib/machine/completion/actions/skills.js +0 -83
  676. package/dist-lib/lib/machine/engine.d.ts +0 -93
  677. package/dist-lib/lib/machine/guards.d.ts +0 -2
  678. package/dist-lib/lib/machine/guards.js +0 -6
  679. package/dist-lib/lib/office/pptx.d.ts +0 -1
  680. package/dist-lib/lib/office/pptx.js +0 -26
  681. package/dist-lib/lib/office/python.d.ts +0 -8
  682. package/dist-lib/lib/office/python.js +0 -32
  683. package/dist-lib/lib/office/xlsx.d.ts +0 -1
  684. package/dist-lib/lib/office/xlsx.js +0 -26
  685. package/dist-lib/lib/run-log-inspect.d.ts +0 -25
  686. package/dist-lib/lib/run-log-protocol.d.ts +0 -2
  687. package/dist-lib/lib/run-log-protocol.js +0 -1
  688. package/dist-lib/lib/tool-call-display.d.ts +0 -1
  689. package/dist-lib/lib/tools/exec/adapters/adapter.d.ts +0 -31
  690. package/dist-lib/lib/tools/exec/adapters/python/create-effect.d.ts +0 -7
  691. package/dist-lib/lib/tools/exec/adapters/python/create-effect.js +0 -318
  692. package/dist-lib/lib/tools/exec/adapters/python/python-adapter.d.ts +0 -89
  693. package/dist-lib/lib/tools/exec/adapters/python/python-adapter.js +0 -1371
  694. package/dist-lib/lib/tools/exec/adapters/python/worker/entry.js +0 -3
  695. package/dist-lib/lib/tools/exec/obsidian/route.d.ts +0 -17
  696. package/dist-lib/lib/tools/exec/obsidian/route.js +0 -91
  697. package/dist-lib/lib/tools/mcp-call.d.ts +0 -14
  698. package/dist-lib/lib/tools/rag-search.d.ts +0 -2
  699. package/dist-lib/lib/tools/rag-search.js +0 -105
  700. package/dist-lib/lib/tools/weather-lookup.d.ts +0 -8
  701. package/dist-lib/lib/tools/weather-lookup.js +0 -122
  702. package/dist-lib/lib/tools/web-search.d.ts +0 -6
  703. package/dist-lib/lib/web-search/engine-registry.d.ts +0 -7
  704. package/dist-lib/lib/web-search/engine-registry.js +0 -17
  705. package/wheels/cffi-2.0.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl +0 -0
  706. package/wheels/cryptography-47.0.0-cp314-abi3-pyemscripten_2026_0_wasm32.whl +0 -0
  707. package/wheels/defusedxml-0.7.1-py2.py3-none-any.whl +0 -0
  708. package/wheels/et_xmlfile-2.0.0-py3-none-any.whl +0 -0
  709. package/wheels/fonttools-4.62.1-py3-none-any.whl +0 -0
  710. package/wheels/fpdf2-2.8.8-py3-none-any.whl +0 -0
  711. package/wheels/lxml-6.0.2-cp314-cp314-pyemscripten_2026_0_wasm32.whl +0 -0
  712. package/wheels/openpyxl-3.1.5-py2.py3-none-any.whl +0 -0
  713. package/wheels/pillow-12.2.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl +0 -0
  714. package/wheels/pycparser-3.0-py3-none-any.whl +0 -0
  715. package/wheels/pypdf-6.15.0-py3-none-any.whl +0 -0
  716. package/wheels/python_docx-1.2.0-py3-none-any.whl +0 -0
  717. package/wheels/python_pptx-1.0.2-py3-none-any.whl +0 -0
  718. package/wheels/six-1.17.0-py2.py3-none-any.whl +0 -0
  719. package/wheels/typing_extensions-4.15.0-py3-none-any.whl +0 -0
  720. package/wheels/xlsxwriter-3.2.9-py3-none-any.whl +0 -0
  721. /package/dist-lib/lib/{tools/skills → agent}/tool-grants.d.ts +0 -0
  722. /package/dist-lib/lib/{tools/skills → agent}/tool-grants.js +0 -0
  723. /package/dist-lib/lib/capabilities/{types.js → completion-engine/prepare-step.js} +0 -0
  724. /package/dist-lib/lib/{hooks/types.js → capabilities/completion-engine/stages.js} +0 -0
  725. /package/dist-lib/lib/{tool-call-display.js → contract/agent.js} +0 -0
  726. /package/dist-lib/lib/{tools/exec/adapters/adapter.js → contract/completion.js} +0 -0
  727. /package/dist-lib/lib/{tools/exec/adapters/python/worker/entry.d.ts → contract/exec.js} +0 -0
  728. /package/dist-lib/lib/{tools/exec/adapters/python/worker/interrupt-deadline.d.ts → contract/hooks.js} +0 -0
  729. /package/dist-lib/lib/{web-search/types.js → contract/index.js} +0 -0
  730. /package/dist-lib/lib/{capabilities/completion-engine → helpers}/abort-polyfill.d.ts +0 -0
  731. /package/dist-lib/lib/{capabilities/completion-engine → helpers}/abort-polyfill.js +0 -0
  732. /package/dist-lib/lib/{web-search → helpers}/html-helpers.d.ts +0 -0
  733. /package/dist-lib/lib/{web-search → helpers}/html-helpers.js +0 -0
  734. /package/dist-lib/lib/{tools → helpers}/model-args.d.ts +0 -0
  735. /package/dist-lib/lib/{tools → helpers}/model-args.js +0 -0
  736. /package/dist-lib/lib/{machine → helpers}/stable-stringify.d.ts +0 -0
  737. /package/dist-lib/lib/{web-search → helpers}/user-agents.d.ts +0 -0
  738. /package/dist-lib/lib/{web-search → helpers}/user-agents.js +0 -0
  739. /package/dist-lib/lib/{harness-lifecycle.d.ts → lifecycle/machine.d.ts} +0 -0
  740. /package/dist-lib/lib/tools/{exec/adapters/python → attachments}/output-policy.js +0 -0
  741. /package/dist-lib/{lib/tools/exec → plugins}/obsidian/command.d.ts +0 -0
  742. /package/dist-lib/{lib/tools/exec → plugins}/obsidian/note-name.d.ts +0 -0
  743. /package/dist-lib/{lib/tools/exec → plugins}/obsidian/note-name.js +0 -0
  744. /package/dist-lib/{lib/tools/exec → plugins}/obsidian/output.d.ts +0 -0
  745. /package/dist-lib/{lib/tools/exec → plugins}/obsidian/output.js +0 -0
  746. /package/dist-lib/{lib/tools/exec → plugins}/obsidian/safe-path.d.ts +0 -0
  747. /package/dist-lib/{lib/tools/exec → plugins}/obsidian/safe-path.js +0 -0
  748. /package/dist-lib/{lib/tools/exec → plugins}/obsidian/vault-create.d.ts +0 -0
  749. /package/dist-lib/{lib/tools/exec → plugins}/obsidian/vault-create.js +0 -0
  750. /package/dist-lib/{lib/tools/exec → plugins}/obsidian/vault-fs.d.ts +0 -0
  751. /package/dist-lib/{lib/tools/exec → plugins}/obsidian/vault-fs.js +0 -0
  752. /package/dist-lib/{lib/tools/exec → plugins}/obsidian/vault-paths.d.ts +0 -0
  753. /package/dist-lib/{lib/tools/exec → plugins}/obsidian/vault-paths.js +0 -0
  754. /package/dist-lib/{lib/tools/exec → plugins}/obsidian/vault-read.d.ts +0 -0
  755. /package/dist-lib/{lib/tools/exec → plugins}/obsidian/vault-read.js +0 -0
  756. /package/dist-lib/{lib/tools/exec → plugins}/obsidian/vault-write.d.ts +0 -0
  757. /package/dist-lib/{lib/tools/exec → plugins}/obsidian/vault-write.js +0 -0
  758. /package/dist-lib/{lib/tools/exec/adapters → plugins}/python/deadline-state.d.ts +0 -0
  759. /package/dist-lib/{lib/tools/exec/adapters → plugins}/python/deadline-state.js +0 -0
  760. /package/dist-lib/{lib/tools/exec/adapters → plugins}/python/distributions.d.ts +0 -0
  761. /package/dist-lib/{lib/tools/exec/adapters → plugins}/python/distributions.js +0 -0
  762. /package/dist-lib/{lib/tools/exec/adapters → plugins}/python/interrupt-timer.d.ts +0 -0
  763. /package/dist-lib/{lib/tools/exec/adapters → plugins}/python/memfs.d.ts +0 -0
  764. /package/dist-lib/{lib/tools/exec/adapters → plugins}/python/module-distributions.d.ts +0 -0
  765. /package/dist-lib/{lib/tools/exec/adapters → plugins}/python/named-hosts.d.ts +0 -0
  766. /package/dist-lib/{lib/tools/exec/adapters → plugins}/python/named-hosts.js +0 -0
  767. /package/dist-lib/{lib/tools/exec/adapters → plugins}/python/net-shim.d.ts +0 -0
  768. /package/dist-lib/{lib/tools/exec/adapters → plugins}/python/net-shim.js +0 -0
  769. /package/dist-lib/{lib/tools/exec/adapters → plugins}/python/pyodide.d.ts +0 -0
  770. /package/dist-lib/{lib/tools/exec/adapters → plugins}/python/wheels.d.ts +0 -0
  771. /package/dist-lib/{lib/tools/exec/adapters → plugins}/python/worker/active.d.ts +0 -0
  772. /package/dist-lib/{lib/tools/exec/adapters → plugins}/python/worker/protocol.d.ts +0 -0
  773. /package/dist-lib/{lib/tools/exec/adapters → plugins}/python/worker/protocol.js +0 -0
  774. /package/dist-lib/{lib/tools/exec/adapters → plugins}/python/worker/serve.d.ts +0 -0
  775. /package/dist-lib/{lib/capabilities → plugins/speech}/audio-resample.d.ts +0 -0
  776. /package/dist-lib/{lib/capabilities → plugins/speech}/audio-resample.js +0 -0
  777. /package/dist-lib/{lib → plugins/speech}/audio-transcode-bare.d.ts +0 -0
  778. /package/dist-lib/{lib → plugins/speech}/audio-transcode-node.d.ts +0 -0
  779. /package/dist-lib/{lib → plugins/speech}/audio-transcode-node.js +0 -0
  780. /package/dist-lib/{lib/capabilities → plugins/speech}/speech-lexicon.d.ts +0 -0
  781. /package/dist-lib/{lib/capabilities → plugins/speech}/speech-lexicon.js +0 -0
  782. /package/dist-lib/{lib → plugins/speech}/wav-encode.d.ts +0 -0
  783. /package/dist-lib/{lib → plugins/speech}/wav-encode.js +0 -0
  784. /package/dist-lib/{lib/tools/weather-lookup → plugins/weather}/place.d.ts +0 -0
  785. /package/dist-lib/{lib/tools/weather-lookup → plugins/weather}/report.d.ts +0 -0
  786. /package/dist-lib/{lib/tools/weather-lookup → plugins/weather}/report.js +0 -0
  787. /package/dist-lib/{lib → plugins}/web-search/fetch-html.d.ts +0 -0
  788. /package/dist-lib/{lib → plugins}/web-search/format-results.d.ts +0 -0
  789. /package/dist-lib/{lib → plugins}/web-search/format-results.js +0 -0
  790. /package/dist-lib/{lib → plugins}/web-search/merge-results.d.ts +0 -0
  791. /package/dist-lib/{lib → plugins}/web-search/merge-results.js +0 -0
  792. /package/dist-lib/{lib → plugins}/web-search/types.d.ts +0 -0
  793. /package/dist-lib/{lib → plugins}/web-search/url-helpers.d.ts +0 -0
  794. /package/dist-lib/{lib → plugins}/web-search/url-helpers.js +0 -0
  795. /package/dist-lib/{lib → plugins}/web-search/url-normalize.d.ts +0 -0
  796. /package/dist-lib/{lib → plugins}/web-search/url-normalize.js +0 -0
@@ -5,6 +5,15 @@ export class RecoveryRequired extends Error {
5
5
  this.operation = operation;
6
6
  }
7
7
  }
8
+ export class HookHalt extends Error {
9
+ code = 'hook-halt';
10
+ hook;
11
+ constructor(reason, hook) {
12
+ super(reason);
13
+ this.name = 'HookHalt';
14
+ this.hook = hook;
15
+ }
16
+ }
8
17
  export class AbortedError extends Error {
9
18
  constructor() {
10
19
  super('aborted');
@@ -12,31 +21,6 @@ export class AbortedError extends Error {
12
21
  Error.captureStackTrace?.(this, AbortedError);
13
22
  }
14
23
  }
15
- export class ToolPolicyChanged extends Error {
16
- constructor(tool) {
17
- super(`Tool effect changed after approval: ${tool}`);
18
- this.name = 'ToolPolicyChanged';
19
- }
20
- }
21
- export const EFFECT_DRAIN_TIMEOUT_MS = 5000;
22
- const TIMED_OUT = Symbol('timed-out');
23
- export async function raceDrain(promise, timeoutMs = EFFECT_DRAIN_TIMEOUT_MS) {
24
- let timer;
25
- const timeout = new Promise((resolve) => {
26
- timer = setTimeout(() => resolve(TIMED_OUT), timeoutMs);
27
- });
28
- try {
29
- return await Promise.race([promise, timeout]);
30
- }
31
- finally {
32
- if (timer !== undefined) {
33
- clearTimeout(timer);
34
- }
35
- }
36
- }
37
- export function didDrainTimeOut(value) {
38
- return value === TIMED_OUT;
39
- }
40
24
  const CAUSE_DEPTH = 3;
41
25
  function tagCause(error, depth) {
42
26
  if (depth <= 0 || error === undefined || error === null)
@@ -0,0 +1,21 @@
1
+ import type { CompletionHistoryEntry, FailureResultReference } from '../contract/run.ts';
2
+ export type StoredFailureResult = {
3
+ value: unknown;
4
+ } | {
5
+ undefined: true;
6
+ };
7
+ export interface FailureResultValue {
8
+ name: string;
9
+ result: StoredFailureResult;
10
+ }
11
+ export interface ToolDeniedResult {
12
+ error: string;
13
+ denied: true;
14
+ }
15
+ export declare function toolDeniedResult(message: string): ToolDeniedResult;
16
+ export declare function failureResultRef(key: string, round: number, callId: string): string;
17
+ export declare function failureResultReference(ref: string, callId: string): FailureResultReference;
18
+ export declare function isCompactedLength(value: unknown): value is number;
19
+ export declare function isFailureResultReference(entry: CompletionHistoryEntry): entry is FailureResultReference;
20
+ export declare function storeFailureResult(value: unknown): StoredFailureResult;
21
+ export declare function readFailureResult(value: StoredFailureResult): unknown;
@@ -0,0 +1,39 @@
1
+ import { isRecord } from '../guards.js';
2
+ import { stableStringify } from './stable-stringify.js';
3
+ export function toolDeniedResult(message) {
4
+ return { error: message, denied: true };
5
+ }
6
+ export function failureResultRef(key, round, callId) {
7
+ return `failure:${stableStringify([key, round, callId])}`;
8
+ }
9
+ export function failureResultReference(ref, callId) {
10
+ return { type: 'qvac-failure-result-ref', ref, callId };
11
+ }
12
+ const MIN_COMPACTED_LENGTH = 37;
13
+ export function isCompactedLength(value) {
14
+ return typeof value === 'number' && Number.isSafeInteger(value) && value >= MIN_COMPACTED_LENGTH;
15
+ }
16
+ export function isFailureResultReference(entry) {
17
+ if (!isRecord(entry) || Array.isArray(entry)) {
18
+ return false;
19
+ }
20
+ const prototype = Object.getPrototypeOf(entry);
21
+ if (prototype !== Object.prototype && prototype !== null) {
22
+ return false;
23
+ }
24
+ const keys = Reflect.ownKeys(entry).length;
25
+ return (Object.hasOwn(entry, 'type') &&
26
+ entry.type === 'qvac-failure-result-ref' &&
27
+ Object.hasOwn(entry, 'ref') &&
28
+ typeof entry.ref === 'string' &&
29
+ Object.hasOwn(entry, 'callId') &&
30
+ typeof entry.callId === 'string' &&
31
+ (keys === 3 ||
32
+ (keys === 4 && Object.hasOwn(entry, 'compactedTo') && isCompactedLength(entry.compactedTo))));
33
+ }
34
+ export function storeFailureResult(value) {
35
+ return value === undefined ? { undefined: true } : { value };
36
+ }
37
+ export function readFailureResult(value) {
38
+ return 'undefined' in value ? undefined : value.value;
39
+ }
@@ -0,0 +1,7 @@
1
+ export interface Ends {
2
+ readonly head: string;
3
+ readonly tail: string;
4
+ readonly total: number;
5
+ }
6
+ export declare function headTail(text: string, limit: number): string;
7
+ export declare function joinHeadTail(ends: Ends, limit: number, locator?: string | null): string;
@@ -0,0 +1,19 @@
1
+ function omitted(count, locator, startLine) {
2
+ const where = locator ? `; read_files path=${locator} startLine=${startLine}` : '';
3
+ return `\n…[${count} chars omitted${where}]…\n`;
4
+ }
5
+ export function headTail(text, limit) {
6
+ return text.length <= limit
7
+ ? text
8
+ : joinHeadTail({ head: text, tail: text, total: text.length }, limit);
9
+ }
10
+ export function joinHeadTail(ends, limit, locator) {
11
+ const { head, tail, total } = ends;
12
+ const kept = limit - omitted(total, locator, total).length;
13
+ if (kept < 2) {
14
+ return locator ? joinHeadTail(ends, limit) : head.slice(0, limit);
15
+ }
16
+ const end = Math.floor(kept / 2);
17
+ const start = head.slice(0, kept - end);
18
+ return `${start}${omitted(total - kept, locator, start.split('\n').length)}${tail.slice(tail.length - end)}`;
19
+ }
@@ -0,0 +1,2 @@
1
+ import type { AgentConfig, ImageSettings } from '../contract/index.ts';
2
+ export declare function imageSettingsFrom(agent?: AgentConfig): ImageSettings | undefined;
@@ -0,0 +1,19 @@
1
+ export function imageSettingsFrom(agent) {
2
+ if (!agent) {
3
+ return undefined;
4
+ }
5
+ const settings = {};
6
+ if (agent.imageModelChoice) {
7
+ settings.modelChoice = agent.imageModelChoice;
8
+ }
9
+ if (agent.imageSteps) {
10
+ settings.steps = agent.imageSteps;
11
+ }
12
+ if (agent.imageWidth) {
13
+ settings.width = agent.imageWidth;
14
+ }
15
+ if (agent.imageHeight) {
16
+ settings.height = agent.imageHeight;
17
+ }
18
+ return Object.keys(settings).length ? settings : undefined;
19
+ }
@@ -0,0 +1,2 @@
1
+ export declare const METADATA_METHODS: Set<string>;
2
+ export declare function isMetadataMethod(method: unknown): boolean;
@@ -0,0 +1,14 @@
1
+ export const METADATA_METHODS = new Set([
2
+ 'initialize',
3
+ 'ping',
4
+ 'tools/list',
5
+ 'resources/list',
6
+ 'resources/read',
7
+ 'resources/templates/list',
8
+ 'prompts/list',
9
+ 'prompts/get',
10
+ 'completion/complete'
11
+ ]);
12
+ export function isMetadataMethod(method) {
13
+ return typeof method === 'string' && METADATA_METHODS.has(method);
14
+ }
@@ -1,4 +1,4 @@
1
- import { AbortedError } from '../machine/index.ts';
1
+ import { AbortedError } from './engine-error.ts';
2
2
  export { AbortedError };
3
3
  export interface AbortSignalLike {
4
4
  readonly aborted: boolean;
@@ -1,4 +1,4 @@
1
- import { AbortedError } from '../machine/index.js';
1
+ import { AbortedError } from './engine-error.js';
2
2
  export { AbortedError };
3
3
  export function raceAbort(promise, signal) {
4
4
  if (!signal)
@@ -0,0 +1,2 @@
1
+ import type { CompletionSdkResult } from '../contract/index.ts';
2
+ export declare function withoutRepeatedReply(result: CompletionSdkResult): CompletionSdkResult;
@@ -0,0 +1,63 @@
1
+ const MIN_REPEAT_CHARS = 16;
2
+ function doubled(text) {
3
+ if (text.length < MIN_REPEAT_CHARS * 2 || text.length % 2) {
4
+ return false;
5
+ }
6
+ const half = text.length / 2;
7
+ return text.slice(0, half) === text.slice(half);
8
+ }
9
+ function halve(text) {
10
+ return doubled(text) ? text.slice(0, text.length / 2) : text;
11
+ }
12
+ function firstHalf(items, key) {
13
+ const half = items.length / 2;
14
+ if (items.length % 2) {
15
+ return items;
16
+ }
17
+ const repeats = items.slice(half).every((item, at) => key(item) === key(items[at]));
18
+ return repeats ? items.slice(0, half) : items;
19
+ }
20
+ async function* withoutRepeatedTail(tokens) {
21
+ let streamed = '';
22
+ let held = '';
23
+ for await (const token of tokens) {
24
+ if (held && streamed.startsWith(held + token)) {
25
+ held += token;
26
+ continue;
27
+ }
28
+ if (held) {
29
+ yield held;
30
+ streamed += held;
31
+ held = '';
32
+ }
33
+ if (streamed.length >= MIN_REPEAT_CHARS && token && streamed.startsWith(token)) {
34
+ held = token;
35
+ continue;
36
+ }
37
+ streamed += token;
38
+ yield token;
39
+ }
40
+ if (held && held !== streamed) {
41
+ yield held;
42
+ }
43
+ }
44
+ function once(reply) {
45
+ if (!doubled(reply.raw.fullText)) {
46
+ return reply;
47
+ }
48
+ return {
49
+ ...reply,
50
+ contentText: halve(reply.contentText),
51
+ thinkingText: reply.thinkingText && halve(reply.thinkingText),
52
+ raw: { ...reply.raw, fullText: halve(reply.raw.fullText) },
53
+ toolCalls: firstHalf(reply.toolCalls, ({ name, arguments: args }) => JSON.stringify([name, args])),
54
+ toolErrors: reply.toolErrors &&
55
+ firstHalf(reply.toolErrors, ({ code, message, raw }) => JSON.stringify([code, message, raw]))
56
+ };
57
+ }
58
+ export function withoutRepeatedReply(result) {
59
+ const final = result.final.then(once);
60
+ final.catch(noop);
61
+ return { ...result, tokenStream: withoutRepeatedTail(result.tokenStream), final };
62
+ }
63
+ function noop() { }
@@ -1,14 +1,15 @@
1
- import type { RunOutcome } from '../machine/index.ts';
2
- import type { ToolExecutionOutcome } from '../tool-call-display.ts';
1
+ import type { RunOutcome, ToolExecutionOutcome } from '../contract/index.ts';
3
2
  export type { RunOutcome };
4
3
  export declare const DEGENERATE_ANSWER_FALLBACK = "I couldn't complete that step and don't have a useful result to share.";
5
4
  export declare const ROUND_CAP_ANSWER = "I ran out of steps before I could finish that. Ask me to continue and I'll pick up where I left off.";
6
5
  export declare const SEARCH_CAPPED_ANSWER = "I searched the web but couldn't find the answer in the results I got.";
6
+ export declare const DELIVERED_ANSWER = "Your file is attached to the chat.";
7
7
  export declare const WRITE_RESULT_LEAD = "Here's what came back:";
8
8
  export declare const TIME_CAPPED_ANSWER = "I hit this run's time budget before I could finish that. Ask me to continue and I'll pick up where I left off.";
9
9
  export interface RunOutcomeFacts {
10
10
  readonly latestFailure: string | null;
11
11
  readonly confirmedWrites: ReadonlyArray<string>;
12
+ readonly delivered?: boolean;
12
13
  }
13
14
  export interface HistoryTurn {
14
15
  readonly role: string;
@@ -32,8 +33,8 @@ export interface RunOutcomeState {
32
33
  export declare function createRunOutcomeTracker(state?: RunOutcomeState): RunOutcomeTracker;
33
34
  export declare function normalizeToolExecutionOutcome(result: unknown, outcome: ToolExecutionOutcome): ToolExecutionOutcome;
34
35
  export declare function failureFromToolExecution(result: unknown, outcome: ToolExecutionOutcome): string | null;
35
- export declare function degenerateAnswer(outcome: Exclude<RunOutcome, 'answered'>, history: ReadonlyArray<HistoryTurn>, facts?: RunOutcomeFacts): string;
36
- export declare function lastFailedToolAnswer(history: ReadonlyArray<HistoryTurn>): string | null;
36
+ export declare function degenerateAnswer(outcome: Exclude<RunOutcome, 'answered'>, history: ReadonlyArray<HistoryTurn>, facts: RunOutcomeFacts): string;
37
+ export declare function lastFailedToolAnswer(history: ReadonlyArray<HistoryTurn>, nudge: string): string | null;
37
38
  export declare function writeResult(output: unknown): string | null;
38
39
  export declare function unnamedWrites(answer: string, landed: ReadonlyArray<string>): ReadonlyArray<string>;
39
40
  export declare function writeReport(landed: ReadonlyArray<string>): string | null;
@@ -1,8 +1,8 @@
1
- import { TOOL_CONTINUATION_NUDGE } from '../capabilities/tool-turns.js';
2
1
  import { isRecord } from '../guards.js';
3
2
  export const DEGENERATE_ANSWER_FALLBACK = "I couldn't complete that step and don't have a useful result to share.";
4
3
  export const ROUND_CAP_ANSWER = "I ran out of steps before I could finish that. Ask me to continue and I'll pick up where I left off.";
5
4
  export const SEARCH_CAPPED_ANSWER = "I searched the web but couldn't find the answer in the results I got.";
5
+ export const DELIVERED_ANSWER = 'Your file is attached to the chat.';
6
6
  export const WRITE_RESULT_LEAD = "Here's what came back:";
7
7
  export const TIME_CAPPED_ANSWER = "I hit this run's time budget before I could finish that. Ask me to continue and I'll pick up where I left off.";
8
8
  const MAX_FAILURE_CHARS = 300;
@@ -66,12 +66,13 @@ export function failureFromToolExecution(result, outcome) {
66
66
  return resultFailure(result);
67
67
  }
68
68
  export function degenerateAnswer(outcome, history, facts) {
69
- const rest = (facts ? facts.latestFailure : lastFailedToolAnswer(history)) ?? cappedAnswer(outcome, history);
70
- const written = writeReport(facts?.confirmedWrites ?? []);
71
- if (written) {
72
- return rest ? `${written}\n\n${rest}` : written;
73
- }
74
- return rest ?? DEGENERATE_ANSWER_FALLBACK;
69
+ const rest = facts.latestFailure ?? cappedAnswer(outcome, history);
70
+ const lines = [
71
+ writeReport(facts.confirmedWrites),
72
+ facts.delivered ? DELIVERED_ANSWER : null,
73
+ rest
74
+ ].filter((line) => line !== null);
75
+ return lines.length ? lines.join('\n\n') : DEGENERATE_ANSWER_FALLBACK;
75
76
  }
76
77
  function cappedAnswer(outcome, history) {
77
78
  if (outcome === 'search-capped') {
@@ -108,10 +109,11 @@ function searchCappedAnswer(history) {
108
109
  }
109
110
  return `${SEARCH_CAPPED_ANSWER} These pages looked most relevant:\n${lines.join('\n')}`;
110
111
  }
111
- export function lastFailedToolAnswer(history) {
112
+ export function lastFailedToolAnswer(history, nudge) {
112
113
  for (let i = history.length - 1; i >= 0; i--) {
113
114
  const turn = history[i];
114
- if (turn?.role === 'user' && turn.content === TOOL_CONTINUATION_NUDGE) {
115
+ if (turn?.role === 'user' &&
116
+ (turn.content === nudge || turn.content.startsWith(`${nudge}\nPlan:\n`))) {
115
117
  continue;
116
118
  }
117
119
  if (turn?.role !== 'tool') {
@@ -1,4 +1,4 @@
1
- import { isRecord } from './guards.js';
1
+ import { isRecord } from '../guards.js';
2
2
  export function stableStringify(value) {
3
3
  if (Array.isArray(value)) {
4
4
  return `[${value.map(stableStringify).join(',')}]`;
@@ -5,6 +5,7 @@ export interface RecoveredToolCall {
5
5
  raw?: string;
6
6
  }
7
7
  export declare const MAX_RAW_CALL_CHARS = 4096;
8
+ export declare const MALFORMED_CALL_ID = "call-malformed";
8
9
  export declare function clipRawCall(raw: string): string;
9
10
  export interface KnownTool {
10
11
  readonly name: string;
@@ -4,6 +4,7 @@ const TOOL_RESPONSE = { open: '<tool_response>', close: '</tool_response>' };
4
4
  const TOOL_CALL = { open: '<tool_call>', close: '</tool_call>' };
5
5
  const MAX_NAME_LENGTH = 64;
6
6
  export const MAX_RAW_CALL_CHARS = 4096;
7
+ export const MALFORMED_CALL_ID = 'call-malformed';
7
8
  export function clipRawCall(raw) {
8
9
  return raw.length > MAX_RAW_CALL_CHARS ? raw.slice(0, MAX_RAW_CALL_CHARS) : raw;
9
10
  }
@@ -81,7 +82,7 @@ function redactedMarkupBlock(block, redactArgs) {
81
82
  const redacted = redactArgs(block.name, decoded);
82
83
  const replacement = deepEqual(decoded, redacted)
83
84
  ? null
84
- : markupForCall({ name: block.name, arguments: redacted });
85
+ : functionMarkup({ name: block.name, arguments: redacted });
85
86
  return replacement;
86
87
  }
87
88
  export function redactBareParameterMarkup(text, isSensitiveName) {
@@ -201,13 +202,16 @@ export function toolCallMarkup(calls) {
201
202
  return calls.map(markupForCall).join('\n');
202
203
  }
203
204
  function markupForCall(call) {
205
+ return `<tool_call>\n${functionMarkup(call)}\n</tool_call>`;
206
+ }
207
+ function functionMarkup(call) {
204
208
  const params = Object.entries(call.arguments ?? {})
205
- .map(([key, value]) => `<parameter=${key}>${encodeMarkupValue(value)}</parameter>`)
209
+ .map(([key, value]) => `<parameter=${key}>\n${markupValue(value)}\n</parameter>\n`)
206
210
  .join('');
207
- return `<function=${call.name}>${params}</function>`;
211
+ return `<function=${call.name}>\n${params}</function>`;
208
212
  }
209
- function encodeMarkupValue(value) {
210
- return JSON.stringify(value ?? null).replace(/</g, '\\u003c');
213
+ function markupValue(value) {
214
+ return typeof value === 'string' ? value : JSON.stringify(value ?? null);
211
215
  }
212
216
  const ARG_WRAPPER_KEYS = new Set(['parameters', 'arguments', 'args', 'input', 'params']);
213
217
  function isPlainObject(value) {
@@ -1,5 +1,5 @@
1
- import type { ResponseFormat } from '../capabilities/completion.ts';
2
- import type { ToolCallDisplay } from '../tool-call-display.ts';
1
+ import type { ResponseFormat } from '../contract/index.ts';
2
+ import type { ToolCallDisplay } from '../contract/index.ts';
3
3
  export declare const TOOL_LABEL_SCHEMA: ResponseFormat;
4
4
  export declare function buildToolLabelPrompt(name: string, args: Record<string, unknown>): string;
5
5
  export declare function skillCallLabel(args: Record<string, unknown>): string;
@@ -1,6 +1,6 @@
1
1
  import { unwrap } from 'asenion';
2
- import { SKILL_TOOL_NAME } from '../capabilities/tool-names.js';
3
- import { unquoteArg } from '../tools/model-args.js';
2
+ import { Agent } from '../agent/index.js';
3
+ import { unquoteArg } from './model-args.js';
4
4
  import { stripControlTokens } from './control-tokens.js';
5
5
  const MAX_LABEL_WORDS = 6;
6
6
  const MAX_LABEL_LENGTH = 60;
@@ -65,7 +65,7 @@ export function skillCallLabel(args) {
65
65
  return file ? `Read ${title}/${fileName(file)}` : `Load ${title}`;
66
66
  }
67
67
  export function isSkillTool(name) {
68
- return name === SKILL_TOOL_NAME;
68
+ return name === Agent.SKILL_TOOL_NAME;
69
69
  }
70
70
  function stringArg(args, key) {
71
71
  const value = args[key];
@@ -1,4 +1,4 @@
1
- import type { HarnessHook, HookContext, HookResult } from '../types.ts';
1
+ import type { HarnessHook, HookContext, HookResult } from '../../contract/index.ts';
2
2
  export declare class ArgRepairHook implements HarnessHook {
3
3
  readonly name = "arg-repair";
4
4
  readonly phase: 'preToolCall';
@@ -1,35 +1,125 @@
1
1
  import { jsonrepair } from 'jsonrepair';
2
2
  import { isRecord } from '../../guards.js';
3
3
  import { hlog } from '../../log.js';
4
- const STRUCTURED_TYPES = new Set(['object', 'array']);
4
+ import { escapeLiteralDollars } from '../../tools/exec/scope.js';
5
+ const JSON_NUMBER = /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/;
5
6
  export class ArgRepairHook {
6
7
  name = 'arg-repair';
7
8
  phase = 'preToolCall';
8
9
  run(ctx) {
9
10
  if (ctx.phase !== 'preToolCall' || !ctx.parameters)
10
11
  return;
11
- let args = ctx.args;
12
- for (const [key, schema] of Object.entries(ctx.parameters.properties)) {
13
- const value = args[key];
14
- if (typeof value !== 'string') {
15
- continue;
12
+ let args = coerceProperties(ctx.args, ctx.parameters, { tool: ctx.toolName, path: '' });
13
+ if (ctx.toolName === 'exec' && args.language !== 'python' && typeof args.command === 'string') {
14
+ const command = escapeLiteralDollars(args.command);
15
+ if (command !== args.command) {
16
+ args = { ...args, command };
16
17
  }
17
- const types = structuredTypes(schema);
18
- if (types.size === 0) {
19
- continue;
20
- }
21
- const parsed = parseStructured(value, types);
22
- if (parsed === null) {
23
- hlog('arg repair declined', { tool: ctx.toolName, param: key, length: value.length });
24
- continue;
25
- }
26
- args = { ...args, [key]: parsed };
27
18
  }
28
19
  if (args !== ctx.args) {
29
20
  return { args };
30
21
  }
31
22
  }
32
23
  }
24
+ function coerce(value, schema, site) {
25
+ if (!isPlainObject(schema)) {
26
+ return value;
27
+ }
28
+ if (typeof value === 'string') {
29
+ return coerceString(value, schema, site);
30
+ }
31
+ if (Array.isArray(value)) {
32
+ return coerceItems(value, schema.items, site);
33
+ }
34
+ if (isPlainObject(value)) {
35
+ return coerceProperties(value, schema, site);
36
+ }
37
+ return value;
38
+ }
39
+ function coerceString(value, schema, site) {
40
+ const folded = foldEnum(value, schema.enum);
41
+ if (folded !== undefined) {
42
+ return folded;
43
+ }
44
+ const types = schemaTypes(schema);
45
+ const structured = types.has('object') || types.has('array');
46
+ if (structured) {
47
+ const parsed = parseStructured(value, types);
48
+ if (parsed !== null) {
49
+ return coerce(parsed, schema, site);
50
+ }
51
+ }
52
+ const scalarOnly = types.size > 0 && !types.has('string');
53
+ if (scalarOnly) {
54
+ const scalar = parseScalar(value.trim(), types);
55
+ if (scalar !== undefined) {
56
+ return scalar;
57
+ }
58
+ }
59
+ if (structured || scalarOnly) {
60
+ hlog('arg repair declined', { tool: site.tool, param: site.path, length: value.length });
61
+ }
62
+ return value;
63
+ }
64
+ function coerceProperties(value, schema, site) {
65
+ if (!isPlainObject(schema.properties)) {
66
+ return value;
67
+ }
68
+ const required = Array.isArray(schema.required) ? schema.required : [];
69
+ let out = null;
70
+ for (const [key, child] of Object.entries(schema.properties)) {
71
+ const before = value[key];
72
+ if (before === 'null' && !required.includes(key) && omittable(child)) {
73
+ out ??= { ...value };
74
+ delete out[key];
75
+ continue;
76
+ }
77
+ const after = coerce(before, child, at(site, key));
78
+ if (after !== before) {
79
+ out ??= { ...value };
80
+ out[key] = after;
81
+ }
82
+ }
83
+ return out ?? value;
84
+ }
85
+ function coerceItems(value, items, site) {
86
+ const out = value.map((item, i) => coerce(item, items, at(site, String(i))));
87
+ return out.some((item, i) => item !== value[i]) ? out : value;
88
+ }
89
+ function at(site, key) {
90
+ return { tool: site.tool, path: site.path ? `${site.path}.${key}` : key };
91
+ }
92
+ function foldEnum(value, values) {
93
+ if (!Array.isArray(values) || values.includes(value))
94
+ return undefined;
95
+ const lower = value.toLowerCase();
96
+ const matches = values.filter((v) => typeof v === 'string' && v.toLowerCase() === lower);
97
+ return matches.length === 1 ? matches[0] : undefined;
98
+ }
99
+ function parseScalar(text, types) {
100
+ if (text === 'null' && types.has('null'))
101
+ return null;
102
+ const lower = text.toLowerCase();
103
+ if (types.has('boolean') && (lower === 'true' || lower === 'false')) {
104
+ return lower === 'true';
105
+ }
106
+ if (!JSON_NUMBER.test(text)) {
107
+ return undefined;
108
+ }
109
+ const number = Number(text);
110
+ if (number === 0 && /[1-9]/.test(text.split(/e/i)[0])) {
111
+ return undefined;
112
+ }
113
+ if (Number.isInteger(number)) {
114
+ const numeric = types.has('integer') || types.has('number');
115
+ return numeric && Number.isSafeInteger(number) ? number : undefined;
116
+ }
117
+ return types.has('number') && Number.isFinite(number) ? number : undefined;
118
+ }
119
+ function omittable(schema) {
120
+ const types = schemaTypes(schema);
121
+ return types.size > 0 && !types.has('string') && !types.has('null');
122
+ }
33
123
  function parseStructured(value, types) {
34
124
  const text = value.trim();
35
125
  const parsed = read(text);
@@ -70,14 +160,14 @@ function accept(value, types) {
70
160
  return value;
71
161
  return null;
72
162
  }
73
- function structuredTypes(schema) {
163
+ function schemaTypes(schema) {
74
164
  const found = new Set();
75
165
  if (!isPlainObject(schema)) {
76
166
  return found;
77
167
  }
78
168
  const declared = Array.isArray(schema.type) ? schema.type : [schema.type];
79
169
  for (const type of declared) {
80
- if (typeof type === 'string' && STRUCTURED_TYPES.has(type)) {
170
+ if (typeof type === 'string') {
81
171
  found.add(type);
82
172
  }
83
173
  }
@@ -87,7 +177,7 @@ function structuredTypes(schema) {
87
177
  continue;
88
178
  }
89
179
  for (const branch of branches) {
90
- for (const type of structuredTypes(branch)) {
180
+ for (const type of schemaTypes(branch)) {
91
181
  found.add(type);
92
182
  }
93
183
  }
@@ -1,4 +1,4 @@
1
- import type { HarnessHook, HookContext, HookResult } from '../types.ts';
1
+ import type { HarnessHook, HookContext, HookResult } from '../../contract/index.ts';
2
2
  export declare class EgressGuardHook implements HarnessHook {
3
3
  readonly name = "egress-guard";
4
4
  readonly phase: 'preToolCall';
@@ -1,4 +1,3 @@
1
- import { mcpTargetUrl } from '../../tools/mcp-call.js';
2
1
  import { checkOutboundHost } from '../../tools/url-guard.js';
3
2
  export class EgressGuardHook {
4
3
  name = 'egress-guard';
@@ -6,26 +5,19 @@ export class EgressGuardHook {
6
5
  run(ctx) {
7
6
  if (ctx.phase !== 'preToolCall')
8
7
  return;
9
- let target;
10
- if (ctx.toolName === 'http_request' || ctx.toolName === 'web_fetch') {
11
- target = typeof ctx.args.url === 'string' ? ctx.args.url : '';
12
- }
13
- else if (ctx.toolName === 'mcp_call') {
14
- target = mcpTargetUrl(ctx.args);
15
- }
16
- else {
17
- return;
18
- }
19
- let url;
20
- try {
21
- url = new URL(target);
22
- }
23
- catch {
24
- return;
25
- }
26
- const blocked = checkOutboundHost(url);
27
- if (blocked) {
28
- return { kind: 'hook-rejection', error: blocked, guidance: true };
8
+ const targets = ctx.egress?.(ctx.args) ?? [];
9
+ for (const target of typeof targets === 'string' ? [targets] : targets) {
10
+ let url;
11
+ try {
12
+ url = new URL(target);
13
+ }
14
+ catch {
15
+ continue;
16
+ }
17
+ const blocked = checkOutboundHost(url);
18
+ if (blocked) {
19
+ return { kind: 'hook-rejection', error: blocked, guidance: true };
20
+ }
29
21
  }
30
22
  }
31
23
  }
@@ -1,4 +1,4 @@
1
- import type { HarnessHook, HookContext, HookResult } from '../types.ts';
1
+ import type { HarnessHook, HookContext, HookResult } from '../../contract/index.ts';
2
2
  export declare class SandboxHook implements HarnessHook {
3
3
  readonly name = "sandbox";
4
4
  readonly phase: 'preToolCall';