@sema-agent/core 1.279.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (849) hide show
  1. package/LICENSE +104 -0
  2. package/NOTICE.md +30 -0
  3. package/README.md +143 -0
  4. package/README.zh-CN.md +138 -0
  5. package/dist/agents/agent-definition.d.ts +3 -0
  6. package/dist/agents/agent-definition.d.ts.map +1 -0
  7. package/dist/agents/agent-definition.js +9 -0
  8. package/dist/agents/agent-definition.js.map +1 -0
  9. package/dist/agents/builtin-agents.d.ts +9 -0
  10. package/dist/agents/builtin-agents.d.ts.map +1 -0
  11. package/dist/agents/builtin-agents.js +114 -0
  12. package/dist/agents/builtin-agents.js.map +1 -0
  13. package/dist/agents/cascade.d.ts +44 -0
  14. package/dist/agents/cascade.d.ts.map +1 -0
  15. package/dist/agents/cascade.js +153 -0
  16. package/dist/agents/cascade.js.map +1 -0
  17. package/dist/agents/observer.d.ts +122 -0
  18. package/dist/agents/observer.d.ts.map +1 -0
  19. package/dist/agents/observer.js +365 -0
  20. package/dist/agents/observer.js.map +1 -0
  21. package/dist/agents/repair-loop.d.ts +49 -0
  22. package/dist/agents/repair-loop.d.ts.map +1 -0
  23. package/dist/agents/repair-loop.js +147 -0
  24. package/dist/agents/repair-loop.js.map +1 -0
  25. package/dist/agents/session-util.d.ts +3 -0
  26. package/dist/agents/session-util.d.ts.map +1 -0
  27. package/dist/agents/session-util.js +4 -0
  28. package/dist/agents/session-util.js.map +1 -0
  29. package/dist/agents/subagent-steps.d.ts +31 -0
  30. package/dist/agents/subagent-steps.d.ts.map +1 -0
  31. package/dist/agents/subagent-steps.js +167 -0
  32. package/dist/agents/subagent-steps.js.map +1 -0
  33. package/dist/agents/subagent.d.ts +152 -0
  34. package/dist/agents/subagent.d.ts.map +1 -0
  35. package/dist/agents/subagent.js +1698 -0
  36. package/dist/agents/subagent.js.map +1 -0
  37. package/dist/agents/suspend-guard.d.ts +6 -0
  38. package/dist/agents/suspend-guard.d.ts.map +1 -0
  39. package/dist/agents/suspend-guard.js +19 -0
  40. package/dist/agents/suspend-guard.js.map +1 -0
  41. package/dist/agents/teacher.d.ts +70 -0
  42. package/dist/agents/teacher.d.ts.map +1 -0
  43. package/dist/agents/teacher.js +462 -0
  44. package/dist/agents/teacher.js.map +1 -0
  45. package/dist/agents/team.d.ts +92 -0
  46. package/dist/agents/team.d.ts.map +1 -0
  47. package/dist/agents/team.js +231 -0
  48. package/dist/agents/team.js.map +1 -0
  49. package/dist/agents/tool-filter.d.ts +4 -0
  50. package/dist/agents/tool-filter.d.ts.map +1 -0
  51. package/dist/agents/tool-filter.js +18 -0
  52. package/dist/agents/tool-filter.js.map +1 -0
  53. package/dist/agents/verify.d.ts +46 -0
  54. package/dist/agents/verify.d.ts.map +1 -0
  55. package/dist/agents/verify.js +177 -0
  56. package/dist/agents/verify.js.map +1 -0
  57. package/dist/bench/metrics.d.ts +259 -0
  58. package/dist/bench/metrics.d.ts.map +1 -0
  59. package/dist/bench/metrics.js +439 -0
  60. package/dist/bench/metrics.js.map +1 -0
  61. package/dist/bin/sema-tb.d.ts +3 -0
  62. package/dist/bin/sema-tb.d.ts.map +1 -0
  63. package/dist/bin/sema-tb.js +373 -0
  64. package/dist/bin/sema-tb.js.map +1 -0
  65. package/dist/bin/tb-env.d.ts +2 -0
  66. package/dist/bin/tb-env.d.ts.map +1 -0
  67. package/dist/bin/tb-env.js +15 -0
  68. package/dist/bin/tb-env.js.map +1 -0
  69. package/dist/brain/anthropic.d.ts +16 -0
  70. package/dist/brain/anthropic.d.ts.map +1 -0
  71. package/dist/brain/anthropic.js +635 -0
  72. package/dist/brain/anthropic.js.map +1 -0
  73. package/dist/brain/circuit-breaker.d.ts +26 -0
  74. package/dist/brain/circuit-breaker.d.ts.map +1 -0
  75. package/dist/brain/circuit-breaker.js +118 -0
  76. package/dist/brain/circuit-breaker.js.map +1 -0
  77. package/dist/brain/degrading.d.ts +33 -0
  78. package/dist/brain/degrading.d.ts.map +1 -0
  79. package/dist/brain/degrading.js +175 -0
  80. package/dist/brain/degrading.js.map +1 -0
  81. package/dist/brain/errors.d.ts +14 -0
  82. package/dist/brain/errors.d.ts.map +1 -0
  83. package/dist/brain/errors.js +43 -0
  84. package/dist/brain/errors.js.map +1 -0
  85. package/dist/brain/failover.d.ts +3 -0
  86. package/dist/brain/failover.d.ts.map +1 -0
  87. package/dist/brain/failover.js +85 -0
  88. package/dist/brain/failover.js.map +1 -0
  89. package/dist/brain/model-presets.d.ts +5 -0
  90. package/dist/brain/model-presets.d.ts.map +1 -0
  91. package/dist/brain/model-presets.js +30 -0
  92. package/dist/brain/model-presets.js.map +1 -0
  93. package/dist/brain/openai.d.ts +13 -0
  94. package/dist/brain/openai.d.ts.map +1 -0
  95. package/dist/brain/openai.js +581 -0
  96. package/dist/brain/openai.js.map +1 -0
  97. package/dist/brain/reasoning.d.ts +33 -0
  98. package/dist/brain/reasoning.d.ts.map +1 -0
  99. package/dist/brain/reasoning.js +84 -0
  100. package/dist/brain/reasoning.js.map +1 -0
  101. package/dist/brain/repetition.d.ts +16 -0
  102. package/dist/brain/repetition.d.ts.map +1 -0
  103. package/dist/brain/repetition.js +96 -0
  104. package/dist/brain/repetition.js.map +1 -0
  105. package/dist/brain/request-params.d.ts +6 -0
  106. package/dist/brain/request-params.d.ts.map +1 -0
  107. package/dist/brain/request-params.js +44 -0
  108. package/dist/brain/request-params.js.map +1 -0
  109. package/dist/brain/retry.d.ts +3 -0
  110. package/dist/brain/retry.d.ts.map +1 -0
  111. package/dist/brain/retry.js +23 -0
  112. package/dist/brain/retry.js.map +1 -0
  113. package/dist/brain/routing.d.ts +7 -0
  114. package/dist/brain/routing.d.ts.map +1 -0
  115. package/dist/brain/routing.js +34 -0
  116. package/dist/brain/routing.js.map +1 -0
  117. package/dist/brain/status-sink.d.ts +27 -0
  118. package/dist/brain/status-sink.d.ts.map +1 -0
  119. package/dist/brain/status-sink.js +20 -0
  120. package/dist/brain/status-sink.js.map +1 -0
  121. package/dist/brain/stream-engine.d.ts +37 -0
  122. package/dist/brain/stream-engine.d.ts.map +1 -0
  123. package/dist/brain/stream-engine.js +295 -0
  124. package/dist/brain/stream-engine.js.map +1 -0
  125. package/dist/brain/timeout.d.ts +12 -0
  126. package/dist/brain/timeout.d.ts.map +1 -0
  127. package/dist/brain/timeout.js +34 -0
  128. package/dist/brain/timeout.js.map +1 -0
  129. package/dist/brain/tool-call-repair.d.ts +6 -0
  130. package/dist/brain/tool-call-repair.d.ts.map +1 -0
  131. package/dist/brain/tool-call-repair.js +58 -0
  132. package/dist/brain/tool-call-repair.js.map +1 -0
  133. package/dist/brain/walltime.d.ts +2 -0
  134. package/dist/brain/walltime.d.ts.map +1 -0
  135. package/dist/brain/walltime.js +2 -0
  136. package/dist/brain/walltime.js.map +1 -0
  137. package/dist/core/arg-summary.d.ts +3 -0
  138. package/dist/core/arg-summary.d.ts.map +1 -0
  139. package/dist/core/arg-summary.js +76 -0
  140. package/dist/core/arg-summary.js.map +1 -0
  141. package/dist/core/ask-question.d.ts +36 -0
  142. package/dist/core/ask-question.d.ts.map +1 -0
  143. package/dist/core/ask-question.js +171 -0
  144. package/dist/core/ask-question.js.map +1 -0
  145. package/dist/core/auto-compaction.d.ts +88 -0
  146. package/dist/core/auto-compaction.d.ts.map +1 -0
  147. package/dist/core/auto-compaction.js +253 -0
  148. package/dist/core/auto-compaction.js.map +1 -0
  149. package/dist/core/auto-mode-prompt-assets.d.ts +3 -0
  150. package/dist/core/auto-mode-prompt-assets.d.ts.map +1 -0
  151. package/dist/core/auto-mode-prompt-assets.js +3 -0
  152. package/dist/core/auto-mode-prompt-assets.js.map +1 -0
  153. package/dist/core/auto-mode-prompt.d.ts +22 -0
  154. package/dist/core/auto-mode-prompt.d.ts.map +1 -0
  155. package/dist/core/auto-mode-prompt.js +84 -0
  156. package/dist/core/auto-mode-prompt.js.map +1 -0
  157. package/dist/core/auto-mode.d.ts +35 -0
  158. package/dist/core/auto-mode.d.ts.map +1 -0
  159. package/dist/core/auto-mode.js +100 -0
  160. package/dist/core/auto-mode.js.map +1 -0
  161. package/dist/core/auto-promote.d.ts +26 -0
  162. package/dist/core/auto-promote.d.ts.map +1 -0
  163. package/dist/core/auto-promote.js +93 -0
  164. package/dist/core/auto-promote.js.map +1 -0
  165. package/dist/core/background-shell.d.ts +41 -0
  166. package/dist/core/background-shell.d.ts.map +1 -0
  167. package/dist/core/background-shell.js +21 -0
  168. package/dist/core/background-shell.js.map +1 -0
  169. package/dist/core/cache-break-detector.d.ts +29 -0
  170. package/dist/core/cache-break-detector.d.ts.map +1 -0
  171. package/dist/core/cache-break-detector.js +80 -0
  172. package/dist/core/cache-break-detector.js.map +1 -0
  173. package/dist/core/canonical-json.d.ts +3 -0
  174. package/dist/core/canonical-json.d.ts.map +1 -0
  175. package/dist/core/canonical-json.js +68 -0
  176. package/dist/core/canonical-json.js.map +1 -0
  177. package/dist/core/checkpoint-store.d.ts +257 -0
  178. package/dist/core/checkpoint-store.d.ts.map +1 -0
  179. package/dist/core/checkpoint-store.js +292 -0
  180. package/dist/core/checkpoint-store.js.map +1 -0
  181. package/dist/core/consolidate-scope.d.ts +19 -0
  182. package/dist/core/consolidate-scope.d.ts.map +1 -0
  183. package/dist/core/consolidate-scope.js +96 -0
  184. package/dist/core/consolidate-scope.js.map +1 -0
  185. package/dist/core/context-edit.d.ts +18 -0
  186. package/dist/core/context-edit.d.ts.map +1 -0
  187. package/dist/core/context-edit.js +98 -0
  188. package/dist/core/context-edit.js.map +1 -0
  189. package/dist/core/context-guard.d.ts +14 -0
  190. package/dist/core/context-guard.d.ts.map +1 -0
  191. package/dist/core/context-guard.js +110 -0
  192. package/dist/core/context-guard.js.map +1 -0
  193. package/dist/core/dynamic-recall.d.ts +33 -0
  194. package/dist/core/dynamic-recall.d.ts.map +1 -0
  195. package/dist/core/dynamic-recall.js +77 -0
  196. package/dist/core/dynamic-recall.js.map +1 -0
  197. package/dist/core/exec-gate.d.ts +30 -0
  198. package/dist/core/exec-gate.d.ts.map +1 -0
  199. package/dist/core/exec-gate.js +106 -0
  200. package/dist/core/exec-gate.js.map +1 -0
  201. package/dist/core/exec-output-tail.d.ts +15 -0
  202. package/dist/core/exec-output-tail.d.ts.map +1 -0
  203. package/dist/core/exec-output-tail.js +39 -0
  204. package/dist/core/exec-output-tail.js.map +1 -0
  205. package/dist/core/file-snapshot-store.d.ts +53 -0
  206. package/dist/core/file-snapshot-store.d.ts.map +1 -0
  207. package/dist/core/file-snapshot-store.js +244 -0
  208. package/dist/core/file-snapshot-store.js.map +1 -0
  209. package/dist/core/git-worktree-env.d.ts +16 -0
  210. package/dist/core/git-worktree-env.d.ts.map +1 -0
  211. package/dist/core/git-worktree-env.js +40 -0
  212. package/dist/core/git-worktree-env.js.map +1 -0
  213. package/dist/core/hooks.d.ts +128 -0
  214. package/dist/core/hooks.d.ts.map +1 -0
  215. package/dist/core/hooks.js +184 -0
  216. package/dist/core/hooks.js.map +1 -0
  217. package/dist/core/lsp-diagnostics.d.ts +31 -0
  218. package/dist/core/lsp-diagnostics.d.ts.map +1 -0
  219. package/dist/core/lsp-diagnostics.js +79 -0
  220. package/dist/core/lsp-diagnostics.js.map +1 -0
  221. package/dist/core/lsp-protocol.d.ts +10 -0
  222. package/dist/core/lsp-protocol.d.ts.map +1 -0
  223. package/dist/core/lsp-protocol.js +136 -0
  224. package/dist/core/lsp-protocol.js.map +1 -0
  225. package/dist/core/lsp-session.d.ts +27 -0
  226. package/dist/core/lsp-session.d.ts.map +1 -0
  227. package/dist/core/lsp-session.js +134 -0
  228. package/dist/core/lsp-session.js.map +1 -0
  229. package/dist/core/lsp.d.ts +56 -0
  230. package/dist/core/lsp.d.ts.map +1 -0
  231. package/dist/core/lsp.js +130 -0
  232. package/dist/core/lsp.js.map +1 -0
  233. package/dist/core/mcp.d.ts +108 -0
  234. package/dist/core/mcp.d.ts.map +1 -0
  235. package/dist/core/mcp.js +692 -0
  236. package/dist/core/mcp.js.map +1 -0
  237. package/dist/core/media-byte-cap.d.ts +13 -0
  238. package/dist/core/media-byte-cap.d.ts.map +1 -0
  239. package/dist/core/media-byte-cap.js +51 -0
  240. package/dist/core/media-byte-cap.js.map +1 -0
  241. package/dist/core/memory-engine/data-plane.d.ts +60 -0
  242. package/dist/core/memory-engine/data-plane.d.ts.map +1 -0
  243. package/dist/core/memory-engine/data-plane.js +198 -0
  244. package/dist/core/memory-engine/data-plane.js.map +1 -0
  245. package/dist/core/memory-engine/dual-root.d.ts +16 -0
  246. package/dist/core/memory-engine/dual-root.d.ts.map +1 -0
  247. package/dist/core/memory-engine/dual-root.js +75 -0
  248. package/dist/core/memory-engine/dual-root.js.map +1 -0
  249. package/dist/core/memory-engine/engine.d.ts +67 -0
  250. package/dist/core/memory-engine/engine.d.ts.map +1 -0
  251. package/dist/core/memory-engine/engine.js +828 -0
  252. package/dist/core/memory-engine/engine.js.map +1 -0
  253. package/dist/core/memory-engine/file-backend.d.ts +55 -0
  254. package/dist/core/memory-engine/file-backend.d.ts.map +1 -0
  255. package/dist/core/memory-engine/file-backend.js +752 -0
  256. package/dist/core/memory-engine/file-backend.js.map +1 -0
  257. package/dist/core/memory-engine/frontmatter.d.ts +13 -0
  258. package/dist/core/memory-engine/frontmatter.d.ts.map +1 -0
  259. package/dist/core/memory-engine/frontmatter.js +119 -0
  260. package/dist/core/memory-engine/frontmatter.js.map +1 -0
  261. package/dist/core/memory-engine/index.d.ts +13 -0
  262. package/dist/core/memory-engine/index.d.ts.map +1 -0
  263. package/dist/core/memory-engine/index.js +12 -0
  264. package/dist/core/memory-engine/index.js.map +1 -0
  265. package/dist/core/memory-engine/layout.d.ts +44 -0
  266. package/dist/core/memory-engine/layout.d.ts.map +1 -0
  267. package/dist/core/memory-engine/layout.js +459 -0
  268. package/dist/core/memory-engine/layout.js.map +1 -0
  269. package/dist/core/memory-engine/memory-backend-contract.d.ts +10 -0
  270. package/dist/core/memory-engine/memory-backend-contract.d.ts.map +1 -0
  271. package/dist/core/memory-engine/memory-backend-contract.js +269 -0
  272. package/dist/core/memory-engine/memory-backend-contract.js.map +1 -0
  273. package/dist/core/memory-engine/migrate.d.ts +8 -0
  274. package/dist/core/memory-engine/migrate.d.ts.map +1 -0
  275. package/dist/core/memory-engine/migrate.js +23 -0
  276. package/dist/core/memory-engine/migrate.js.map +1 -0
  277. package/dist/core/memory-engine/scan.d.ts +8 -0
  278. package/dist/core/memory-engine/scan.d.ts.map +1 -0
  279. package/dist/core/memory-engine/scan.js +49 -0
  280. package/dist/core/memory-engine/scan.js.map +1 -0
  281. package/dist/core/memory-engine/scope-contract.d.ts +44 -0
  282. package/dist/core/memory-engine/scope-contract.d.ts.map +1 -0
  283. package/dist/core/memory-engine/scope-contract.js +205 -0
  284. package/dist/core/memory-engine/scope-contract.js.map +1 -0
  285. package/dist/core/memory-engine/sync-client.d.ts +57 -0
  286. package/dist/core/memory-engine/sync-client.d.ts.map +1 -0
  287. package/dist/core/memory-engine/sync-client.js +257 -0
  288. package/dist/core/memory-engine/sync-client.js.map +1 -0
  289. package/dist/core/memory-engine/sync.d.ts +37 -0
  290. package/dist/core/memory-engine/sync.d.ts.map +1 -0
  291. package/dist/core/memory-engine/sync.js +68 -0
  292. package/dist/core/memory-engine/sync.js.map +1 -0
  293. package/dist/core/memory-engine/types.d.ts +128 -0
  294. package/dist/core/memory-engine/types.d.ts.map +1 -0
  295. package/dist/core/memory-engine/types.js +2 -0
  296. package/dist/core/memory-engine/types.js.map +1 -0
  297. package/dist/core/memory-recall.d.ts +82 -0
  298. package/dist/core/memory-recall.d.ts.map +1 -0
  299. package/dist/core/memory-recall.js +352 -0
  300. package/dist/core/memory-recall.js.map +1 -0
  301. package/dist/core/memory-vector.d.ts +4 -0
  302. package/dist/core/memory-vector.d.ts.map +1 -0
  303. package/dist/core/memory-vector.js +31 -0
  304. package/dist/core/memory-vector.js.map +1 -0
  305. package/dist/core/memory.d.ts +112 -0
  306. package/dist/core/memory.d.ts.map +1 -0
  307. package/dist/core/memory.js +512 -0
  308. package/dist/core/memory.js.map +1 -0
  309. package/dist/core/message-utils.d.ts +4 -0
  310. package/dist/core/message-utils.d.ts.map +1 -0
  311. package/dist/core/message-utils.js +7 -0
  312. package/dist/core/message-utils.js.map +1 -0
  313. package/dist/core/oracle-isolation.d.ts +16 -0
  314. package/dist/core/oracle-isolation.d.ts.map +1 -0
  315. package/dist/core/oracle-isolation.js +50 -0
  316. package/dist/core/oracle-isolation.js.map +1 -0
  317. package/dist/core/permission-rules.d.ts +35 -0
  318. package/dist/core/permission-rules.d.ts.map +1 -0
  319. package/dist/core/permission-rules.js +270 -0
  320. package/dist/core/permission-rules.js.map +1 -0
  321. package/dist/core/present-plan-tool.d.ts +8 -0
  322. package/dist/core/present-plan-tool.d.ts.map +1 -0
  323. package/dist/core/present-plan-tool.js +82 -0
  324. package/dist/core/present-plan-tool.js.map +1 -0
  325. package/dist/core/pricing.d.ts +22 -0
  326. package/dist/core/pricing.d.ts.map +1 -0
  327. package/dist/core/pricing.js +23 -0
  328. package/dist/core/pricing.js.map +1 -0
  329. package/dist/core/property-harness.d.ts +40 -0
  330. package/dist/core/property-harness.d.ts.map +1 -0
  331. package/dist/core/property-harness.js +121 -0
  332. package/dist/core/property-harness.js.map +1 -0
  333. package/dist/core/push-queue.d.ts +9 -0
  334. package/dist/core/push-queue.d.ts.map +1 -0
  335. package/dist/core/push-queue.js +41 -0
  336. package/dist/core/push-queue.js.map +1 -0
  337. package/dist/core/remote-env.d.ts +105 -0
  338. package/dist/core/remote-env.d.ts.map +1 -0
  339. package/dist/core/remote-env.js +27 -0
  340. package/dist/core/remote-env.js.map +1 -0
  341. package/dist/core/roles.d.ts +35 -0
  342. package/dist/core/roles.d.ts.map +1 -0
  343. package/dist/core/roles.js +182 -0
  344. package/dist/core/roles.js.map +1 -0
  345. package/dist/core/runner/active-skill-scope.d.ts +26 -0
  346. package/dist/core/runner/active-skill-scope.d.ts.map +1 -0
  347. package/dist/core/runner/active-skill-scope.js +116 -0
  348. package/dist/core/runner/active-skill-scope.js.map +1 -0
  349. package/dist/core/runner/assemble-result.d.ts +89 -0
  350. package/dist/core/runner/assemble-result.d.ts.map +1 -0
  351. package/dist/core/runner/assemble-result.js +141 -0
  352. package/dist/core/runner/assemble-result.js.map +1 -0
  353. package/dist/core/runner/call-cap.d.ts +38 -0
  354. package/dist/core/runner/call-cap.d.ts.map +1 -0
  355. package/dist/core/runner/call-cap.js +76 -0
  356. package/dist/core/runner/call-cap.js.map +1 -0
  357. package/dist/core/runner/grounding-signal.d.ts +2 -0
  358. package/dist/core/runner/grounding-signal.d.ts.map +1 -0
  359. package/dist/core/runner/grounding-signal.js +32 -0
  360. package/dist/core/runner/grounding-signal.js.map +1 -0
  361. package/dist/core/runner/image.d.ts +6 -0
  362. package/dist/core/runner/image.d.ts.map +1 -0
  363. package/dist/core/runner/image.js +116 -0
  364. package/dist/core/runner/image.js.map +1 -0
  365. package/dist/core/runner/memory-consolidation.d.ts +52 -0
  366. package/dist/core/runner/memory-consolidation.d.ts.map +1 -0
  367. package/dist/core/runner/memory-consolidation.js +253 -0
  368. package/dist/core/runner/memory-consolidation.js.map +1 -0
  369. package/dist/core/runner/prepare-task.d.ts +219 -0
  370. package/dist/core/runner/prepare-task.d.ts.map +1 -0
  371. package/dist/core/runner/prepare-task.js +2087 -0
  372. package/dist/core/runner/prepare-task.js.map +1 -0
  373. package/dist/core/runner/prompt-suggestions.d.ts +26 -0
  374. package/dist/core/runner/prompt-suggestions.d.ts.map +1 -0
  375. package/dist/core/runner/prompt-suggestions.js +104 -0
  376. package/dist/core/runner/prompt-suggestions.js.map +1 -0
  377. package/dist/core/runner/runtask.d.ts +53 -0
  378. package/dist/core/runner/runtask.d.ts.map +1 -0
  379. package/dist/core/runner/runtask.js +2703 -0
  380. package/dist/core/runner/runtask.js.map +1 -0
  381. package/dist/core/runner/session-rule-policy.d.ts +11 -0
  382. package/dist/core/runner/session-rule-policy.d.ts.map +1 -0
  383. package/dist/core/runner/session-rule-policy.js +76 -0
  384. package/dist/core/runner/session-rule-policy.js.map +1 -0
  385. package/dist/core/runner/strict-output-schema.d.ts +21 -0
  386. package/dist/core/runner/strict-output-schema.d.ts.map +1 -0
  387. package/dist/core/runner/strict-output-schema.js +304 -0
  388. package/dist/core/runner/strict-output-schema.js.map +1 -0
  389. package/dist/core/runner/synthetic-tools.d.ts +30 -0
  390. package/dist/core/runner/synthetic-tools.d.ts.map +1 -0
  391. package/dist/core/runner/synthetic-tools.js +124 -0
  392. package/dist/core/runner/synthetic-tools.js.map +1 -0
  393. package/dist/core/runner/tool-disclosure.d.ts +46 -0
  394. package/dist/core/runner/tool-disclosure.d.ts.map +1 -0
  395. package/dist/core/runner/tool-disclosure.js +220 -0
  396. package/dist/core/runner/tool-disclosure.js.map +1 -0
  397. package/dist/core/runner/turn-attachments.d.ts +110 -0
  398. package/dist/core/runner/turn-attachments.d.ts.map +1 -0
  399. package/dist/core/runner/turn-attachments.js +334 -0
  400. package/dist/core/runner/turn-attachments.js.map +1 -0
  401. package/dist/core/runner/usage-accounting.d.ts +19 -0
  402. package/dist/core/runner/usage-accounting.d.ts.map +1 -0
  403. package/dist/core/runner/usage-accounting.js +30 -0
  404. package/dist/core/runner/usage-accounting.js.map +1 -0
  405. package/dist/core/runtime.d.ts +4 -0
  406. package/dist/core/runtime.d.ts.map +1 -0
  407. package/dist/core/runtime.js +12 -0
  408. package/dist/core/runtime.js.map +1 -0
  409. package/dist/core/safety-axis-vocab.d.ts +10 -0
  410. package/dist/core/safety-axis-vocab.d.ts.map +1 -0
  411. package/dist/core/safety-axis-vocab.js +12 -0
  412. package/dist/core/safety-axis-vocab.js.map +1 -0
  413. package/dist/core/safety-merge-corpus.d.ts +11 -0
  414. package/dist/core/safety-merge-corpus.d.ts.map +1 -0
  415. package/dist/core/safety-merge-corpus.js +195 -0
  416. package/dist/core/safety-merge-corpus.js.map +1 -0
  417. package/dist/core/scheduler.d.ts +55 -0
  418. package/dist/core/scheduler.d.ts.map +1 -0
  419. package/dist/core/scheduler.js +32 -0
  420. package/dist/core/scheduler.js.map +1 -0
  421. package/dist/core/secret-env.d.ts +3 -0
  422. package/dist/core/secret-env.d.ts.map +1 -0
  423. package/dist/core/secret-env.js +13 -0
  424. package/dist/core/secret-env.js.map +1 -0
  425. package/dist/core/select-model.d.ts +11 -0
  426. package/dist/core/select-model.d.ts.map +1 -0
  427. package/dist/core/select-model.js +44 -0
  428. package/dist/core/select-model.js.map +1 -0
  429. package/dist/core/sensitive-path-policy.d.ts +9 -0
  430. package/dist/core/sensitive-path-policy.d.ts.map +1 -0
  431. package/dist/core/sensitive-path-policy.js +61 -0
  432. package/dist/core/sensitive-path-policy.js.map +1 -0
  433. package/dist/core/session-policy-store.d.ts +38 -0
  434. package/dist/core/session-policy-store.d.ts.map +1 -0
  435. package/dist/core/session-policy-store.js +112 -0
  436. package/dist/core/session-policy-store.js.map +1 -0
  437. package/dist/core/session-reconcile.d.ts +15 -0
  438. package/dist/core/session-reconcile.d.ts.map +1 -0
  439. package/dist/core/session-reconcile.js +48 -0
  440. package/dist/core/session-reconcile.js.map +1 -0
  441. package/dist/core/session-store.d.ts +36 -0
  442. package/dist/core/session-store.d.ts.map +1 -0
  443. package/dist/core/session-store.js +192 -0
  444. package/dist/core/session-store.js.map +1 -0
  445. package/dist/core/session.d.ts +44 -0
  446. package/dist/core/session.d.ts.map +1 -0
  447. package/dist/core/session.js +27 -0
  448. package/dist/core/session.js.map +1 -0
  449. package/dist/core/spec-contract.d.ts +58 -0
  450. package/dist/core/spec-contract.d.ts.map +1 -0
  451. package/dist/core/spec-contract.js +256 -0
  452. package/dist/core/spec-contract.js.map +1 -0
  453. package/dist/core/strategy-store.d.ts +25 -0
  454. package/dist/core/strategy-store.d.ts.map +1 -0
  455. package/dist/core/strategy-store.js +81 -0
  456. package/dist/core/strategy-store.js.map +1 -0
  457. package/dist/core/stub-env.d.ts +28 -0
  458. package/dist/core/stub-env.d.ts.map +1 -0
  459. package/dist/core/stub-env.js +61 -0
  460. package/dist/core/stub-env.js.map +1 -0
  461. package/dist/core/task-notification.d.ts +56 -0
  462. package/dist/core/task-notification.d.ts.map +1 -0
  463. package/dist/core/task-notification.js +200 -0
  464. package/dist/core/task-notification.js.map +1 -0
  465. package/dist/core/task-outcome.d.ts +27 -0
  466. package/dist/core/task-outcome.d.ts.map +1 -0
  467. package/dist/core/task-outcome.js +12 -0
  468. package/dist/core/task-outcome.js.map +1 -0
  469. package/dist/core/task-registry.d.ts +188 -0
  470. package/dist/core/task-registry.d.ts.map +1 -0
  471. package/dist/core/task-registry.js +1443 -0
  472. package/dist/core/task-registry.js.map +1 -0
  473. package/dist/core/tighten-task-spec.d.ts +6 -0
  474. package/dist/core/tighten-task-spec.d.ts.map +1 -0
  475. package/dist/core/tighten-task-spec.js +50 -0
  476. package/dist/core/tighten-task-spec.js.map +1 -0
  477. package/dist/core/tool-detach.d.ts +10 -0
  478. package/dist/core/tool-detach.d.ts.map +1 -0
  479. package/dist/core/tool-detach.js +41 -0
  480. package/dist/core/tool-detach.js.map +1 -0
  481. package/dist/core/tool-errors.d.ts +8 -0
  482. package/dist/core/tool-errors.d.ts.map +1 -0
  483. package/dist/core/tool-errors.js +132 -0
  484. package/dist/core/tool-errors.js.map +1 -0
  485. package/dist/core/tool-name-aliases.d.ts +3 -0
  486. package/dist/core/tool-name-aliases.d.ts.map +1 -0
  487. package/dist/core/tool-name-aliases.js +60 -0
  488. package/dist/core/tool-name-aliases.js.map +1 -0
  489. package/dist/core/tool-policy.d.ts +75 -0
  490. package/dist/core/tool-policy.d.ts.map +1 -0
  491. package/dist/core/tool-policy.js +363 -0
  492. package/dist/core/tool-policy.js.map +1 -0
  493. package/dist/core/tool-result-budget.d.ts +17 -0
  494. package/dist/core/tool-result-budget.d.ts.map +1 -0
  495. package/dist/core/tool-result-budget.js +103 -0
  496. package/dist/core/tool-result-budget.js.map +1 -0
  497. package/dist/core/tool-result-store.d.ts +55 -0
  498. package/dist/core/tool-result-store.d.ts.map +1 -0
  499. package/dist/core/tool-result-store.js +154 -0
  500. package/dist/core/tool-result-store.js.map +1 -0
  501. package/dist/core/tools.d.ts +6 -0
  502. package/dist/core/tools.d.ts.map +1 -0
  503. package/dist/core/tools.js +61 -0
  504. package/dist/core/tools.js.map +1 -0
  505. package/dist/core/trace.d.ts +208 -0
  506. package/dist/core/trace.d.ts.map +1 -0
  507. package/dist/core/trace.js +10 -0
  508. package/dist/core/trace.js.map +1 -0
  509. package/dist/core/types.d.ts +684 -0
  510. package/dist/core/types.d.ts.map +1 -0
  511. package/dist/core/types.js +2 -0
  512. package/dist/core/types.js.map +1 -0
  513. package/dist/core/untrusted-egress.d.ts +7 -0
  514. package/dist/core/untrusted-egress.d.ts.map +1 -0
  515. package/dist/core/untrusted-egress.js +23 -0
  516. package/dist/core/untrusted-egress.js.map +1 -0
  517. package/dist/core/untrusted-text.d.ts +5 -0
  518. package/dist/core/untrusted-text.d.ts.map +1 -0
  519. package/dist/core/untrusted-text.js +36 -0
  520. package/dist/core/untrusted-text.js.map +1 -0
  521. package/dist/core/warm-resume.d.ts +6 -0
  522. package/dist/core/warm-resume.d.ts.map +1 -0
  523. package/dist/core/warm-resume.js +11 -0
  524. package/dist/core/warm-resume.js.map +1 -0
  525. package/dist/core/with-retry.d.ts +19 -0
  526. package/dist/core/with-retry.d.ts.map +1 -0
  527. package/dist/core/with-retry.js +36 -0
  528. package/dist/core/with-retry.js.map +1 -0
  529. package/dist/core/workflow-journal-store.d.ts +16 -0
  530. package/dist/core/workflow-journal-store.d.ts.map +1 -0
  531. package/dist/core/workflow-journal-store.js +34 -0
  532. package/dist/core/workflow-journal-store.js.map +1 -0
  533. package/dist/core/workflow-run-store-contract.d.ts +6 -0
  534. package/dist/core/workflow-run-store-contract.d.ts.map +1 -0
  535. package/dist/core/workflow-run-store-contract.js +144 -0
  536. package/dist/core/workflow-run-store-contract.js.map +1 -0
  537. package/dist/core/workflow-run-store.d.ts +54 -0
  538. package/dist/core/workflow-run-store.d.ts.map +1 -0
  539. package/dist/core/workflow-run-store.js +86 -0
  540. package/dist/core/workflow-run-store.js.map +1 -0
  541. package/dist/engine/compaction/compaction.d.ts +63 -0
  542. package/dist/engine/compaction/compaction.d.ts.map +1 -0
  543. package/dist/engine/compaction/compaction.js +770 -0
  544. package/dist/engine/compaction/compaction.js.map +1 -0
  545. package/dist/engine/compaction/utils.d.ts +19 -0
  546. package/dist/engine/compaction/utils.d.ts.map +1 -0
  547. package/dist/engine/compaction/utils.js +167 -0
  548. package/dist/engine/compaction/utils.js.map +1 -0
  549. package/dist/engine/execution-env/kill-tree.d.ts +10 -0
  550. package/dist/engine/execution-env/kill-tree.d.ts.map +1 -0
  551. package/dist/engine/execution-env/kill-tree.js +143 -0
  552. package/dist/engine/execution-env/kill-tree.js.map +1 -0
  553. package/dist/engine/execution-env/node-execution-env.d.ts +98 -0
  554. package/dist/engine/execution-env/node-execution-env.d.ts.map +1 -0
  555. package/dist/engine/execution-env/node-execution-env.js +945 -0
  556. package/dist/engine/execution-env/node-execution-env.js.map +1 -0
  557. package/dist/engine/harness/agent-harness.d.ts +112 -0
  558. package/dist/engine/harness/agent-harness.d.ts.map +1 -0
  559. package/dist/engine/harness/agent-harness.js +932 -0
  560. package/dist/engine/harness/agent-harness.js.map +1 -0
  561. package/dist/engine/harness/messages.d.ts +12 -0
  562. package/dist/engine/harness/messages.d.ts.map +1 -0
  563. package/dist/engine/harness/messages.js +102 -0
  564. package/dist/engine/harness/messages.js.map +1 -0
  565. package/dist/engine/harness/types.d.ts +484 -0
  566. package/dist/engine/harness/types.d.ts.map +1 -0
  567. package/dist/engine/harness/types.js +91 -0
  568. package/dist/engine/harness/types.js.map +1 -0
  569. package/dist/engine/llm/diagnostics.d.ts +19 -0
  570. package/dist/engine/llm/diagnostics.d.ts.map +1 -0
  571. package/dist/engine/llm/diagnostics.js +28 -0
  572. package/dist/engine/llm/diagnostics.js.map +1 -0
  573. package/dist/engine/llm/event-stream.d.ts +22 -0
  574. package/dist/engine/llm/event-stream.d.ts.map +1 -0
  575. package/dist/engine/llm/event-stream.js +91 -0
  576. package/dist/engine/llm/event-stream.js.map +1 -0
  577. package/dist/engine/llm/index.d.ts +5 -0
  578. package/dist/engine/llm/index.d.ts.map +1 -0
  579. package/dist/engine/llm/index.js +5 -0
  580. package/dist/engine/llm/index.js.map +1 -0
  581. package/dist/engine/llm/types.d.ts +359 -0
  582. package/dist/engine/llm/types.d.ts.map +1 -0
  583. package/dist/engine/llm/types.js +2 -0
  584. package/dist/engine/llm/types.js.map +1 -0
  585. package/dist/engine/llm/validation.d.ts +5 -0
  586. package/dist/engine/llm/validation.d.ts.map +1 -0
  587. package/dist/engine/llm/validation.js +293 -0
  588. package/dist/engine/llm/validation.js.map +1 -0
  589. package/dist/engine/loop/agent-loop.d.ts +19 -0
  590. package/dist/engine/loop/agent-loop.d.ts.map +1 -0
  591. package/dist/engine/loop/agent-loop.js +1087 -0
  592. package/dist/engine/loop/agent-loop.js.map +1 -0
  593. package/dist/engine/loop/runtime-deps.d.ts +10 -0
  594. package/dist/engine/loop/runtime-deps.d.ts.map +1 -0
  595. package/dist/engine/loop/runtime-deps.js +19 -0
  596. package/dist/engine/loop/runtime-deps.js.map +1 -0
  597. package/dist/engine/loop/types.d.ts +209 -0
  598. package/dist/engine/loop/types.d.ts.map +1 -0
  599. package/dist/engine/loop/types.js +2 -0
  600. package/dist/engine/loop/types.js.map +1 -0
  601. package/dist/engine/lsp/frame-decoder.d.ts +3 -0
  602. package/dist/engine/lsp/frame-decoder.d.ts.map +1 -0
  603. package/dist/engine/lsp/frame-decoder.js +36 -0
  604. package/dist/engine/lsp/frame-decoder.js.map +1 -0
  605. package/dist/engine/lsp/node-lsp-manager.d.ts +49 -0
  606. package/dist/engine/lsp/node-lsp-manager.d.ts.map +1 -0
  607. package/dist/engine/lsp/node-lsp-manager.js +267 -0
  608. package/dist/engine/lsp/node-lsp-manager.js.map +1 -0
  609. package/dist/engine/lsp/stdio-lsp-transport.d.ts +32 -0
  610. package/dist/engine/lsp/stdio-lsp-transport.d.ts.map +1 -0
  611. package/dist/engine/lsp/stdio-lsp-transport.js +154 -0
  612. package/dist/engine/lsp/stdio-lsp-transport.js.map +1 -0
  613. package/dist/engine/session/import-validate.d.ts +13 -0
  614. package/dist/engine/session/import-validate.d.ts.map +1 -0
  615. package/dist/engine/session/import-validate.js +56 -0
  616. package/dist/engine/session/import-validate.js.map +1 -0
  617. package/dist/engine/session/memory-repo.d.ts +20 -0
  618. package/dist/engine/session/memory-repo.d.ts.map +1 -0
  619. package/dist/engine/session/memory-repo.js +54 -0
  620. package/dist/engine/session/memory-repo.js.map +1 -0
  621. package/dist/engine/session/memory-storage.d.ts +12 -0
  622. package/dist/engine/session/memory-storage.d.ts.map +1 -0
  623. package/dist/engine/session/memory-storage.js +16 -0
  624. package/dist/engine/session/memory-storage.js.map +1 -0
  625. package/dist/engine/session/repo-utils.d.ts +11 -0
  626. package/dist/engine/session/repo-utils.d.ts.map +1 -0
  627. package/dist/engine/session/repo-utils.js +40 -0
  628. package/dist/engine/session/repo-utils.js.map +1 -0
  629. package/dist/engine/session/session.d.ts +27 -0
  630. package/dist/engine/session/session.d.ts.map +1 -0
  631. package/dist/engine/session/session.js +197 -0
  632. package/dist/engine/session/session.js.map +1 -0
  633. package/dist/engine/session/storage-base.d.ts +30 -0
  634. package/dist/engine/session/storage-base.d.ts.map +1 -0
  635. package/dist/engine/session/storage-base.js +138 -0
  636. package/dist/engine/session/storage-base.js.map +1 -0
  637. package/dist/engine/session/timestamps.d.ts +3 -0
  638. package/dist/engine/session/timestamps.d.ts.map +1 -0
  639. package/dist/engine/session/timestamps.js +15 -0
  640. package/dist/engine/session/timestamps.js.map +1 -0
  641. package/dist/engine/session/uuid.d.ts +2 -0
  642. package/dist/engine/session/uuid.d.ts.map +1 -0
  643. package/dist/engine/session/uuid.js +50 -0
  644. package/dist/engine/session/uuid.js.map +1 -0
  645. package/dist/index.d.ts +156 -0
  646. package/dist/index.d.ts.map +1 -0
  647. package/dist/index.js +141 -0
  648. package/dist/index.js.map +1 -0
  649. package/dist/internal/harness.d.ts +19 -0
  650. package/dist/internal/harness.d.ts.map +1 -0
  651. package/dist/internal/harness.js +13 -0
  652. package/dist/internal/harness.js.map +1 -0
  653. package/dist/internal/llm.d.ts +3 -0
  654. package/dist/internal/llm.d.ts.map +1 -0
  655. package/dist/internal/llm.js +2 -0
  656. package/dist/internal/llm.js.map +1 -0
  657. package/dist/orchestration/builtin-workflows.d.ts +11 -0
  658. package/dist/orchestration/builtin-workflows.d.ts.map +1 -0
  659. package/dist/orchestration/builtin-workflows.js +134 -0
  660. package/dist/orchestration/builtin-workflows.js.map +1 -0
  661. package/dist/orchestration/dev-vm-script-runner.d.ts +5 -0
  662. package/dist/orchestration/dev-vm-script-runner.d.ts.map +1 -0
  663. package/dist/orchestration/dev-vm-script-runner.js +68 -0
  664. package/dist/orchestration/dev-vm-script-runner.js.map +1 -0
  665. package/dist/orchestration/goal.d.ts +40 -0
  666. package/dist/orchestration/goal.d.ts.map +1 -0
  667. package/dist/orchestration/goal.js +190 -0
  668. package/dist/orchestration/goal.js.map +1 -0
  669. package/dist/orchestration/run-spec.d.ts +21 -0
  670. package/dist/orchestration/run-spec.d.ts.map +1 -0
  671. package/dist/orchestration/run-spec.js +201 -0
  672. package/dist/orchestration/run-spec.js.map +1 -0
  673. package/dist/orchestration/run-workflow-tool.d.ts +80 -0
  674. package/dist/orchestration/run-workflow-tool.d.ts.map +1 -0
  675. package/dist/orchestration/run-workflow-tool.js +431 -0
  676. package/dist/orchestration/run-workflow-tool.js.map +1 -0
  677. package/dist/orchestration/workflow-governance.d.ts +30 -0
  678. package/dist/orchestration/workflow-governance.d.ts.map +1 -0
  679. package/dist/orchestration/workflow-governance.js +125 -0
  680. package/dist/orchestration/workflow-governance.js.map +1 -0
  681. package/dist/orchestration/workflow-meta.d.ts +13 -0
  682. package/dist/orchestration/workflow-meta.d.ts.map +1 -0
  683. package/dist/orchestration/workflow-meta.js +367 -0
  684. package/dist/orchestration/workflow-meta.js.map +1 -0
  685. package/dist/orchestration/workflow-observe.d.ts +18 -0
  686. package/dist/orchestration/workflow-observe.d.ts.map +1 -0
  687. package/dist/orchestration/workflow-observe.js +73 -0
  688. package/dist/orchestration/workflow-observe.js.map +1 -0
  689. package/dist/orchestration/workflow-primitives.d.ts +12 -0
  690. package/dist/orchestration/workflow-primitives.d.ts.map +1 -0
  691. package/dist/orchestration/workflow-primitives.js +56 -0
  692. package/dist/orchestration/workflow-primitives.js.map +1 -0
  693. package/dist/orchestration/workflow-sandbox-conformance.d.ts +5 -0
  694. package/dist/orchestration/workflow-sandbox-conformance.d.ts.map +1 -0
  695. package/dist/orchestration/workflow-sandbox-conformance.js +220 -0
  696. package/dist/orchestration/workflow-sandbox-conformance.js.map +1 -0
  697. package/dist/orchestration/workflow-script-runner.d.ts +39 -0
  698. package/dist/orchestration/workflow-script-runner.d.ts.map +1 -0
  699. package/dist/orchestration/workflow-script-runner.js +23 -0
  700. package/dist/orchestration/workflow-script-runner.js.map +1 -0
  701. package/dist/orchestration/workflow-script-store.d.ts +20 -0
  702. package/dist/orchestration/workflow-script-store.d.ts.map +1 -0
  703. package/dist/orchestration/workflow-script-store.js +73 -0
  704. package/dist/orchestration/workflow-script-store.js.map +1 -0
  705. package/dist/orchestration/workflow-size-guideline.d.ts +10 -0
  706. package/dist/orchestration/workflow-size-guideline.d.ts.map +1 -0
  707. package/dist/orchestration/workflow-size-guideline.js +38 -0
  708. package/dist/orchestration/workflow-size-guideline.js.map +1 -0
  709. package/dist/orchestration/workflow.d.ts +281 -0
  710. package/dist/orchestration/workflow.d.ts.map +1 -0
  711. package/dist/orchestration/workflow.js +1095 -0
  712. package/dist/orchestration/workflow.js.map +1 -0
  713. package/dist/prompts/default.d.ts +104 -0
  714. package/dist/prompts/default.d.ts.map +1 -0
  715. package/dist/prompts/default.js +397 -0
  716. package/dist/prompts/default.js.map +1 -0
  717. package/dist/prompts/supervisor.d.ts +5 -0
  718. package/dist/prompts/supervisor.d.ts.map +1 -0
  719. package/dist/prompts/supervisor.js +107 -0
  720. package/dist/prompts/supervisor.js.map +1 -0
  721. package/dist/scenarios/env.d.ts +13 -0
  722. package/dist/scenarios/env.d.ts.map +1 -0
  723. package/dist/scenarios/env.js +40 -0
  724. package/dist/scenarios/env.js.map +1 -0
  725. package/dist/scenarios/full-body.d.ts +13 -0
  726. package/dist/scenarios/full-body.d.ts.map +1 -0
  727. package/dist/scenarios/full-body.js +20 -0
  728. package/dist/scenarios/full-body.js.map +1 -0
  729. package/dist/scenarios/scenario-registry.d.ts +47 -0
  730. package/dist/scenarios/scenario-registry.d.ts.map +1 -0
  731. package/dist/scenarios/scenario-registry.js +139 -0
  732. package/dist/scenarios/scenario-registry.js.map +1 -0
  733. package/dist/scenarios/teacher-quickstart.d.ts +14 -0
  734. package/dist/scenarios/teacher-quickstart.d.ts.map +1 -0
  735. package/dist/scenarios/teacher-quickstart.js +13 -0
  736. package/dist/scenarios/teacher-quickstart.js.map +1 -0
  737. package/dist/server/http.d.ts +19 -0
  738. package/dist/server/http.d.ts.map +1 -0
  739. package/dist/server/http.js +115 -0
  740. package/dist/server/http.js.map +1 -0
  741. package/dist/stores/file/checkpoint-store.d.ts +40 -0
  742. package/dist/stores/file/checkpoint-store.d.ts.map +1 -0
  743. package/dist/stores/file/checkpoint-store.js +198 -0
  744. package/dist/stores/file/checkpoint-store.js.map +1 -0
  745. package/dist/stores/file/file-snapshot-store.d.ts +25 -0
  746. package/dist/stores/file/file-snapshot-store.d.ts.map +1 -0
  747. package/dist/stores/file/file-snapshot-store.js +313 -0
  748. package/dist/stores/file/file-snapshot-store.js.map +1 -0
  749. package/dist/stores/file/fs-atomic.d.ts +24 -0
  750. package/dist/stores/file/fs-atomic.d.ts.map +1 -0
  751. package/dist/stores/file/fs-atomic.js +276 -0
  752. package/dist/stores/file/fs-atomic.js.map +1 -0
  753. package/dist/stores/file/index.d.ts +45 -0
  754. package/dist/stores/file/index.d.ts.map +1 -0
  755. package/dist/stores/file/index.js +77 -0
  756. package/dist/stores/file/index.js.map +1 -0
  757. package/dist/stores/file/memory-store.d.ts +35 -0
  758. package/dist/stores/file/memory-store.d.ts.map +1 -0
  759. package/dist/stores/file/memory-store.js +300 -0
  760. package/dist/stores/file/memory-store.js.map +1 -0
  761. package/dist/stores/file/session-policy-store.d.ts +11 -0
  762. package/dist/stores/file/session-policy-store.d.ts.map +1 -0
  763. package/dist/stores/file/session-policy-store.js +96 -0
  764. package/dist/stores/file/session-policy-store.js.map +1 -0
  765. package/dist/stores/file/session-store.d.ts +24 -0
  766. package/dist/stores/file/session-store.d.ts.map +1 -0
  767. package/dist/stores/file/session-store.js +134 -0
  768. package/dist/stores/file/session-store.js.map +1 -0
  769. package/dist/stores/file/tool-result-store.d.ts +12 -0
  770. package/dist/stores/file/tool-result-store.d.ts.map +1 -0
  771. package/dist/stores/file/tool-result-store.js +44 -0
  772. package/dist/stores/file/tool-result-store.js.map +1 -0
  773. package/dist/stores/file/workflow-journal-store.d.ts +17 -0
  774. package/dist/stores/file/workflow-journal-store.d.ts.map +1 -0
  775. package/dist/stores/file/workflow-journal-store.js +104 -0
  776. package/dist/stores/file/workflow-journal-store.js.map +1 -0
  777. package/dist/stores/file/workflow-run-store.d.ts +41 -0
  778. package/dist/stores/file/workflow-run-store.d.ts.map +1 -0
  779. package/dist/stores/file/workflow-run-store.js +147 -0
  780. package/dist/stores/file/workflow-run-store.js.map +1 -0
  781. package/dist/stores/pg.d.ts +96 -0
  782. package/dist/stores/pg.d.ts.map +1 -0
  783. package/dist/stores/pg.js +451 -0
  784. package/dist/stores/pg.js.map +1 -0
  785. package/dist/tools/fs/encoding.d.ts +16 -0
  786. package/dist/tools/fs/encoding.d.ts.map +1 -0
  787. package/dist/tools/fs/encoding.js +44 -0
  788. package/dist/tools/fs/encoding.js.map +1 -0
  789. package/dist/tools/fs/gh-rate-limit.d.ts +3 -0
  790. package/dist/tools/fs/gh-rate-limit.d.ts.map +1 -0
  791. package/dist/tools/fs/gh-rate-limit.js +16 -0
  792. package/dist/tools/fs/gh-rate-limit.js.map +1 -0
  793. package/dist/tools/fs/index.d.ts +74 -0
  794. package/dist/tools/fs/index.d.ts.map +1 -0
  795. package/dist/tools/fs/index.js +1576 -0
  796. package/dist/tools/fs/index.js.map +1 -0
  797. package/dist/tools/fs/pdf.d.ts +47 -0
  798. package/dist/tools/fs/pdf.d.ts.map +1 -0
  799. package/dist/tools/fs/pdf.js +124 -0
  800. package/dist/tools/fs/pdf.js.map +1 -0
  801. package/dist/tools/fs/repo-map.d.ts +5 -0
  802. package/dist/tools/fs/repo-map.d.ts.map +1 -0
  803. package/dist/tools/fs/repo-map.js +209 -0
  804. package/dist/tools/fs/repo-map.js.map +1 -0
  805. package/dist/tools/fs/safety.d.ts +52 -0
  806. package/dist/tools/fs/safety.d.ts.map +1 -0
  807. package/dist/tools/fs/safety.js +314 -0
  808. package/dist/tools/fs/safety.js.map +1 -0
  809. package/dist/tools/fs/search.d.ts +57 -0
  810. package/dist/tools/fs/search.d.ts.map +1 -0
  811. package/dist/tools/fs/search.js +574 -0
  812. package/dist/tools/fs/search.js.map +1 -0
  813. package/dist/tools/gitea-issue.d.ts +14 -0
  814. package/dist/tools/gitea-issue.d.ts.map +1 -0
  815. package/dist/tools/gitea-issue.js +74 -0
  816. package/dist/tools/gitea-issue.js.map +1 -0
  817. package/dist/tools/monitor.d.ts +20 -0
  818. package/dist/tools/monitor.d.ts.map +1 -0
  819. package/dist/tools/monitor.js +90 -0
  820. package/dist/tools/monitor.js.map +1 -0
  821. package/dist/tools/scheduler-tools.d.ts +15 -0
  822. package/dist/tools/scheduler-tools.d.ts.map +1 -0
  823. package/dist/tools/scheduler-tools.js +338 -0
  824. package/dist/tools/scheduler-tools.js.map +1 -0
  825. package/dist/tools/sql-adapters.d.ts +14 -0
  826. package/dist/tools/sql-adapters.d.ts.map +1 -0
  827. package/dist/tools/sql-adapters.js +13 -0
  828. package/dist/tools/sql-adapters.js.map +1 -0
  829. package/dist/tools/sql.d.ts +11 -0
  830. package/dist/tools/sql.d.ts.map +1 -0
  831. package/dist/tools/sql.js +104 -0
  832. package/dist/tools/sql.js.map +1 -0
  833. package/dist/tools/task-list.d.ts +14 -0
  834. package/dist/tools/task-list.d.ts.map +1 -0
  835. package/dist/tools/task-list.js +318 -0
  836. package/dist/tools/task-list.js.map +1 -0
  837. package/dist/tools/todo.d.ts +3 -0
  838. package/dist/tools/todo.d.ts.map +1 -0
  839. package/dist/tools/todo.js +97 -0
  840. package/dist/tools/todo.js.map +1 -0
  841. package/dist/tools/web.d.ts +26 -0
  842. package/dist/tools/web.d.ts.map +1 -0
  843. package/dist/tools/web.js +498 -0
  844. package/dist/tools/web.js.map +1 -0
  845. package/dist/tools/worktree.d.ts +18 -0
  846. package/dist/tools/worktree.d.ts.map +1 -0
  847. package/dist/tools/worktree.js +288 -0
  848. package/dist/tools/worktree.js.map +1 -0
  849. package/package.json +68 -0
@@ -0,0 +1,74 @@
1
+ import { Type } from "typebox";
2
+ export function createGiteaIssueTool(opts) {
3
+ const doFetch = opts.fetchImpl ?? fetch;
4
+ const root = opts.baseUrl.replace(/\/+$/, "");
5
+ const url = `${root}/api/v1/repos/${encodeURIComponent(opts.owner)}/${encodeURIComponent(opts.repo)}/issues`;
6
+ const properties = {
7
+ title: Type.String({ description: "A concise, specific issue title." }),
8
+ body: Type.Optional(Type.String({ description: "Markdown body: what's wrong / what's wanted, steps, context, and any evidence." })),
9
+ };
10
+ if (opts.allowModelLabels) {
11
+ properties.labels = Type.Optional(Type.Array(Type.Integer(), { description: "Optional Gitea label IDs (numeric) to tag this issue." }));
12
+ }
13
+ return {
14
+ name: opts.name ?? "open_gitea_issue",
15
+ effect: "write",
16
+ egress: true,
17
+ description: opts.description ??
18
+ `Open an issue in the ${opts.owner}/${opts.repo} repository to report a bug or file a request ` +
19
+ `to the maintainer. Use it when something is broken or missing and you cannot fix it yourself. ` +
20
+ `Provide a clear title and a body with the problem, steps, and any evidence.`,
21
+ parameters: Type.Object(properties),
22
+ execute: async (args, ctx) => {
23
+ const a = args;
24
+ const title = String(a.title ?? "").trim();
25
+ if (!title) {
26
+ return { content: "Issue not created: a non-empty title is required.", details: { error: "empty title" } };
27
+ }
28
+ const modelLabels = opts.allowModelLabels && Array.isArray(a.labels) ? a.labels : [];
29
+ const labels = [...new Set([...(opts.defaultLabels ?? []), ...modelLabels])];
30
+ const payload = { title };
31
+ if (a.body !== undefined && a.body !== null)
32
+ payload.body = String(a.body);
33
+ if (labels.length > 0)
34
+ payload.labels = labels;
35
+ let res;
36
+ try {
37
+ res = await doFetch(url, {
38
+ method: "POST",
39
+ headers: { "content-type": "application/json", authorization: `token ${opts.token}` },
40
+ body: JSON.stringify(payload),
41
+ signal: ctx.signal,
42
+ });
43
+ }
44
+ catch (e) {
45
+ const msg = e instanceof Error ? e.message : String(e);
46
+ return { content: `Issue not created: request failed (${msg}).`, details: { error: msg } };
47
+ }
48
+ if (!res.ok) {
49
+ const detail = await res.text().catch(() => "");
50
+ return {
51
+ content: `Issue not created: Gitea returned HTTP ${res.status}. ${detail.slice(0, 300)}`,
52
+ details: { status: res.status },
53
+ };
54
+ }
55
+ const PARSE_FAILED = Symbol("json-parse-failed");
56
+ const parsed = (await res.json().catch(() => PARSE_FAILED));
57
+ const number = parsed !== PARSE_FAILED && typeof parsed.number === "number" ? parsed.number : undefined;
58
+ if (number === undefined) {
59
+ return {
60
+ content: `Issue request returned HTTP ${res.status} but the response body was not a valid issue ` +
61
+ `(no number) — the issue may NOT have been created; verify before retrying.`,
62
+ details: { status: res.status, parsed: parsed === PARSE_FAILED ? "unparseable" : "no-number" },
63
+ };
64
+ }
65
+ const issue = parsed;
66
+ const link = issue.html_url ? ` — ${issue.html_url}` : "";
67
+ return {
68
+ content: `Opened issue #${number} in ${opts.owner}/${opts.repo}${link}`,
69
+ details: { number, url: issue.html_url },
70
+ };
71
+ },
72
+ };
73
+ }
74
+ //# sourceMappingURL=gitea-issue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitea-issue.js","sourceRoot":"","sources":["../../src/tools/gitea-issue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { AgentTool, ExecutionEnv } from "../internal/harness.js";
2
+ import { type MonitorTimers, type TaskRegistry } from "../core/task-registry.js";
3
+ import type { TaskNotificationPayload } from "../core/task-notification.js";
4
+ export interface MonitorToolOptions {
5
+ registry: TaskRegistry;
6
+ owner?: string;
7
+ scope?: string;
8
+ sessionId?: string;
9
+ onTaskNotification?: (n: TaskNotificationPayload, opts?: {
10
+ priority?: "now" | "next" | "later";
11
+ }) => void;
12
+ cwdRef?: {
13
+ current: string;
14
+ };
15
+ timers?: MonitorTimers;
16
+ batchWindowMs?: number;
17
+ maxBatchesPerMinute?: number;
18
+ }
19
+ export declare function createMonitorTool(env: ExecutionEnv, opts: MonitorToolOptions): AgentTool;
20
+ //# sourceMappingURL=monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/tools/monitor.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtE,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAE5E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,YAAY,CAAC;IAEvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAAE,uBAAuB,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAE1G,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAE7B,MAAM,CAAC,EAAE,aAAa,CAAC;IAEvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAmBD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,GAAG,SAAS,CAuFxF"}
@@ -0,0 +1,90 @@
1
+ import { Type } from "typebox";
2
+ import { defineTool } from "../core/tools.js";
3
+ import { hasBackgroundShell } from "../core/background-shell.js";
4
+ import { MONITOR_DEFAULT_TIMEOUT_MS, MONITOR_MAX_TIMEOUT_MS, } from "../core/task-registry.js";
5
+ const MONITOR_DESCRIPTION = "Run a shell command in the background and watch its stdout as a stream of events.\n" +
6
+ "\n" +
7
+ "- Each line the command writes to stdout becomes a notification event delivered to you between turns; " +
8
+ "multiple lines arriving within a short window (~200ms) are batched into a single notification.\n" +
9
+ "- When the command exits, the watch ends and one final notification reports its exit code. A watch that " +
10
+ `exceeds its timeout is killed and reported (default ${MONITOR_DEFAULT_TIMEOUT_MS}ms, max ${MONITOR_MAX_TIMEOUT_MS}ms).\n` +
11
+ "- stderr does NOT trigger notifications, but it is captured — read it any time with TaskOutput(task_id), " +
12
+ "which also serves the full re-readable stdout spool.\n" +
13
+ "- A monitor that produces too many events is stopped automatically (the stop notification says why).\n" +
14
+ "- Set persistent: true for a session-resident watch with no timeout; stop it with TaskStop(task_id) or it " +
15
+ "ends when the session is released.\n" +
16
+ "- After starting a monitor you do not need to poll — end your turn if nothing else is pending; events will " +
17
+ "reach you as notifications.\n" +
18
+ "- Use this for logs, dev servers, build watchers, or any wait-for-a-condition loop (e.g. `tail -f app.log`, " +
19
+ "or a script that prints a line only when the condition it checks changes).";
20
+ export function createMonitorTool(env, opts) {
21
+ return defineTool({
22
+ name: "Monitor",
23
+ description: MONITOR_DESCRIPTION,
24
+ parameters: Type.Object({
25
+ command: Type.String({
26
+ description: "The shell script to run and watch. Each line it writes to stdout becomes an event; when it exits, the watch ends and the exit code is reported.",
27
+ }),
28
+ description: Type.String({
29
+ description: "Short human-readable label for this watch, shown in every notification it produces.",
30
+ }),
31
+ timeout_ms: Type.Optional(Type.Number({
32
+ description: `How long the watch may run before it is killed, in milliseconds (default ${MONITOR_DEFAULT_TIMEOUT_MS}, max ${MONITOR_MAX_TIMEOUT_MS}). Ignored when persistent is true.`,
33
+ })),
34
+ persistent: Type.Optional(Type.Boolean({
35
+ description: "Set to true for a session-resident monitor with no timeout (default false). It keeps watching until you stop it with TaskStop or the session ends.",
36
+ })),
37
+ }),
38
+ effect: "write",
39
+ execute: async (args, ctx) => {
40
+ const { command, description, timeout_ms, persistent } = args;
41
+ if (!hasBackgroundShell(env)) {
42
+ return "Error (Monitor): this environment does not support background processes.";
43
+ }
44
+ const isPersistent = persistent === true;
45
+ const timeoutMs = Math.min(MONITOR_MAX_TIMEOUT_MS, Math.max(1, Math.floor(timeout_ms ?? MONITOR_DEFAULT_TIMEOUT_MS)));
46
+ const spawn = await env.spawnBackground(command, {
47
+ ...(opts.cwdRef !== undefined ? { cwd: opts.cwdRef.current } : {}),
48
+ ...(isPersistent ? {} : { timeout: Math.ceil(timeoutMs / 1000) + 5 }),
49
+ });
50
+ if (!spawn.ok)
51
+ return `Error (Monitor): ${spawn.error.message}`;
52
+ const sessionScoped = isPersistent && opts.sessionId !== undefined;
53
+ const owner = sessionScoped ? opts.sessionId : (ctx.taskId ?? opts.owner);
54
+ const scope = ctx.principal ?? opts.scope;
55
+ const onNotify = opts.onTaskNotification;
56
+ let taskId;
57
+ try {
58
+ taskId = opts.registry.registerMonitor({
59
+ env,
60
+ shellId: spawn.value.shellId,
61
+ description,
62
+ toolUseId: ctx.toolCallId,
63
+ ...(owner !== undefined ? { owner } : {}),
64
+ ...(scope !== undefined ? { scope } : {}),
65
+ persistent: isPersistent,
66
+ ...(sessionScoped ? { sessionScoped: true } : {}),
67
+ ...(isPersistent ? {} : { timeoutMs }),
68
+ ...(onNotify !== undefined ? { onEvent: (n) => onNotify(n, { priority: "later" }) } : {}),
69
+ ...(opts.timers !== undefined ? { timers: opts.timers } : {}),
70
+ ...(opts.batchWindowMs !== undefined ? { batchWindowMs: opts.batchWindowMs } : {}),
71
+ ...(opts.maxBatchesPerMinute !== undefined ? { maxBatchesPerMinute: opts.maxBatchesPerMinute } : {}),
72
+ });
73
+ }
74
+ catch (e) {
75
+ await env.killBackground(spawn.value.shellId).catch(() => undefined);
76
+ return `Error (Monitor): the watch process was started but could not be registered (${e instanceof Error ? e.message : String(e)}); it has been terminated.`;
77
+ }
78
+ const lifetime = isPersistent
79
+ ? "It is persistent: no timeout — it runs until you stop it or the session ends."
80
+ : `It will be killed after ${timeoutMs}ms if still running.`;
81
+ return onNotify !== undefined
82
+ ? `Monitoring in background; task_id=${taskId}. Each stdout line becomes a notification event (lines within ` +
83
+ `~200ms are batched); you'll get a final notification with the exit code when it ends — do not poll. ` +
84
+ `${lifetime} TaskOutput("${taskId}") reads the full spool (stdout+stderr); TaskStop("${taskId}") stops the watch.`
85
+ : `Monitoring in background; task_id=${taskId}. No notification channel is wired in this mount — read output with ` +
86
+ `TaskOutput("${taskId}") (re-readable spool, stdout+stderr) and stop with TaskStop("${taskId}"). ${lifetime}`;
87
+ },
88
+ });
89
+ }
90
+ //# sourceMappingURL=monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/tools/monitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { AgentTool, ExecutionEnv } from "../internal/harness.js";
2
+ export declare const SCHEDULE_WAKEUP_TOOL_NAME = "ScheduleWakeup";
3
+ export declare const AUTONOMOUS_LOOP_SENTINEL = "<<autonomous-loop>>";
4
+ export declare const AUTONOMOUS_LOOP_DYNAMIC_SENTINEL = "<<autonomous-loop-dynamic>>";
5
+ export interface SchedulerToolContext {
6
+ scope: string;
7
+ principal?: string;
8
+ sessionId?: string;
9
+ taskConfig?: unknown;
10
+ requestStopAfterTurn?: () => void;
11
+ }
12
+ export declare function cronScheduleError(expr: string): string | null;
13
+ export declare function cronToHuman(expr: string): string;
14
+ export declare function createSchedulerTools(env: ExecutionEnv, ctx: SchedulerToolContext): AgentTool[];
15
+ //# sourceMappingURL=scheduler-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler-tools.d.ts","sourceRoot":"","sources":["../../src/tools/scheduler-tools.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAWtE,eAAO,MAAM,yBAAyB,mBAAmB,CAAC;AAE1D,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAE9D,eAAO,MAAM,gCAAgC,gCAAgC,CAAC;AA4C9E,MAAM,WAAW,oBAAoB;IAEnC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;CACnC;AAuED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkC7D;AASD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA2BhD;AAKD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,oBAAoB,GAAG,SAAS,EAAE,CAkQ9F"}
@@ -0,0 +1,338 @@
1
+ import { Type } from "typebox";
2
+ import { defineTool } from "../core/tools.js";
3
+ import { hasScheduler, isValidCronExpr, } from "../core/scheduler.js";
4
+ export const SCHEDULE_WAKEUP_TOOL_NAME = "ScheduleWakeup";
5
+ export const AUTONOMOUS_LOOP_SENTINEL = "<<autonomous-loop>>";
6
+ export const AUTONOMOUS_LOOP_DYNAMIC_SENTINEL = "<<autonomous-loop-dynamic>>";
7
+ const WAKEUP_LABEL = "loop-wakeup";
8
+ const SCHEDULE_WAKEUP_PROMPT = `Schedule when to resume work in /loop dynamic mode — the user invoked /loop without an interval, asking you to self-pace iterations of a specific task.
9
+
10
+ Do NOT schedule a short-interval wakeup to poll for background work you started — when harness-tracked work finishes, you are re-invoked automatically, so polling is wasted. Instead schedule a long fallback (1200s+) so the loop survives if the work hangs or never notifies. The exception is external work the harness cannot track (a CI run, a deploy, a remote queue) — there, pick a delay matched to how fast that state actually changes.
11
+
12
+ Pass the same /loop prompt back via \`prompt\` each turn so the next firing repeats the task. For an autonomous /loop (no user prompt), pass the literal sentinel \`${AUTONOMOUS_LOOP_DYNAMIC_SENTINEL}\` as \`prompt\` instead — the runtime resolves it back to the autonomous-loop instructions at fire time. (There is a similar \`${AUTONOMOUS_LOOP_SENTINEL}\` sentinel for CronCreate-based autonomous loops; do not confuse the two — ${SCHEDULE_WAKEUP_TOOL_NAME} always uses the \`-dynamic\` variant.) To end the loop, call this tool with \`stop: true\` (omit every other field) — the loop ends immediately and no further wakeups fire.
13
+
14
+ ## Picking delaySeconds
15
+
16
+ The provider prompt cache decides how expensive a wake-up is: waking inside the cache TTL re-reads your conversation context cached (fast, cheap); waking past it re-reads everything uncached. The TTL depends on the provider route this session uses — Anthropic-family routes default to about 5 minutes (1-hour optional), while some routes (e.g. DeepSeek) typically retain unused prefixes for hours, with no guaranteed TTL.
17
+
18
+ In either regime: never schedule extra wakeups just to keep the cache warm — they cost more than the cache miss they avoid. Match the delay to what you're actually waiting for: when actively polling external state the harness can't notify you about (a CI run, a deploy, a remote queue), pick the delay from how fast that state actually changes; for idle ticks with no specific signal to watch, default to **1200s–1800s** (20–30 min) — the user can always interrupt if they need you sooner.
19
+
20
+ If this session's route uses a short (~5-minute) cache TTL, two refinements: under 300s (60s–270s) the cache stays warm, so prefer 270s over 300s when actively polling (300s is the worst-of-both — you pay the miss without amortizing it); and commit to 1200s+ rather than repeated ~300s waits, so one cache miss buys a long wait. On routes with hours-long cache retention, skip these refinements — any delay in the clamp range re-reads your context cached, so pick purely from the signal you're waiting for.
21
+
22
+ The runtime clamps to [60, 3600], so you don't need to clamp yourself.
23
+
24
+ ## The reason field
25
+
26
+ One short sentence on what you chose and why. Goes to telemetry and is shown back to the user. "watching CI run" beats "waiting." The user reads this to understand what you're doing without having to predict your cadence in advance — make it specific.
27
+ `;
28
+ function toSchedulerContext(c) {
29
+ return {
30
+ scope: c.scope,
31
+ ...(c.principal !== undefined ? { principal: c.principal } : {}),
32
+ ...(c.sessionId !== undefined ? { sessionId: c.sessionId } : {}),
33
+ ...(c.taskConfig !== undefined ? { taskConfig: c.taskConfig } : {}),
34
+ };
35
+ }
36
+ const CRON_FIELD_RANGES = [
37
+ { min: 0, max: 59 },
38
+ { min: 0, max: 23 },
39
+ { min: 1, max: 31 },
40
+ { min: 1, max: 12 },
41
+ { min: 0, max: 6 },
42
+ ];
43
+ const CRON_FIELD_NAMES = ["minute", "hour", "day-of-month", "month", "day-of-week"];
44
+ const MAX_DAYS_IN_MONTH = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
45
+ function expandCronField(field, { min, max }) {
46
+ const out = new Set();
47
+ const isDow = min === 0 && max === 6;
48
+ for (const part of field.split(",")) {
49
+ const step = part.match(/^\*(?:\/(\d+))?$/);
50
+ if (step) {
51
+ const n = step[1] ? parseInt(step[1], 10) : 1;
52
+ if (n < 1)
53
+ return null;
54
+ for (let i = min; i <= max; i += n)
55
+ out.add(i);
56
+ continue;
57
+ }
58
+ const range = part.match(/^(\d+)-(\d+)(?:\/(\d+))?$/);
59
+ if (range) {
60
+ const lo = parseInt(range[1] ?? "", 10);
61
+ const hi = parseInt(range[2] ?? "", 10);
62
+ const n = range[3] ? parseInt(range[3], 10) : 1;
63
+ const effMax = isDow ? 7 : max;
64
+ if (lo > hi || n < 1 || lo < min || hi > effMax)
65
+ return null;
66
+ for (let i = lo; i <= hi; i += n)
67
+ out.add(isDow && i === 7 ? 0 : i);
68
+ continue;
69
+ }
70
+ if (/^\d+$/.test(part)) {
71
+ let n = parseInt(part, 10);
72
+ if (isDow && n === 7)
73
+ n = 0;
74
+ if (n < min || n > max)
75
+ return null;
76
+ out.add(n);
77
+ continue;
78
+ }
79
+ return null;
80
+ }
81
+ return out.size > 0 ? [...out].sort((a, b) => a - b) : null;
82
+ }
83
+ export function cronScheduleError(expr) {
84
+ const parts = expr.trim().split(/\s+/);
85
+ let std = parts;
86
+ if (parts.length === 6) {
87
+ if (!expandCronField(parts[0] ?? "", { min: 0, max: 59 })) {
88
+ return `invalid seconds field "${parts[0]}" — allowed 0-59 (syntax: N, N-M, */N, comma lists).`;
89
+ }
90
+ std = parts.slice(1);
91
+ }
92
+ else if (parts.length !== 5) {
93
+ return `expected 5 fields (minute hour day-of-month month day-of-week) or 6 with leading seconds, got ${parts.length}.`;
94
+ }
95
+ const expanded = [];
96
+ for (let i = 0; i < 5; i++) {
97
+ const r = CRON_FIELD_RANGES[i];
98
+ const vals = expandCronField(std[i] ?? "", r);
99
+ if (!vals)
100
+ return `invalid ${CRON_FIELD_NAMES[i]} field "${std[i]}" — allowed ${r.min}-${r.max} (syntax: N, N-M, */N, comma lists).`;
101
+ expanded.push(vals);
102
+ }
103
+ const dom = expanded[2];
104
+ const month = expanded[3];
105
+ const dow = expanded[4];
106
+ const domWild = dom.length === 31;
107
+ const dowWild = dow.length === 7;
108
+ if (!domWild && dowWild) {
109
+ const fires = month.some((mo) => dom.some((d) => d <= (MAX_DAYS_IN_MONTH[mo - 1] ?? 31)));
110
+ if (!fires) {
111
+ return (`it never fires — day-of-month ${dom.join(",")} does not exist in month(s) ${month.join(",")} ` +
112
+ `(e.g. February has at most 29 days). Pick a real calendar date.`);
113
+ }
114
+ }
115
+ return null;
116
+ }
117
+ const DAY_NAMES = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
118
+ export function cronToHuman(expr) {
119
+ const parts = expr.trim().split(/\s+/);
120
+ const std = parts.length === 6 ? parts.slice(1) : parts;
121
+ if (std.length !== 5)
122
+ return expr;
123
+ const [minute = "", hour = "", dom = "", month = "", dow = ""] = std;
124
+ if (dom !== "*" || month !== "*")
125
+ return expr;
126
+ const everyMin = minute.match(/^\*\/(\d+)$/);
127
+ if (everyMin && hour === "*" && dow === "*") {
128
+ const n = parseInt(everyMin[1] ?? "", 10);
129
+ return n === 1 ? "every minute" : `every ${n} minutes`;
130
+ }
131
+ if (!/^\d+$/.test(minute))
132
+ return expr;
133
+ const m = parseInt(minute, 10);
134
+ const mm = `:${m.toString().padStart(2, "0")}`;
135
+ if (hour === "*" && dow === "*")
136
+ return m === 0 ? "every hour" : `every hour at ${mm}`;
137
+ const everyHour = hour.match(/^\*\/(\d+)$/);
138
+ if (everyHour && dow === "*") {
139
+ const n = parseInt(everyHour[1] ?? "", 10);
140
+ const suffix = m === 0 ? "" : ` at ${mm}`;
141
+ return n === 1 ? `every hour${suffix}` : `every ${n} hours${suffix}`;
142
+ }
143
+ if (!/^\d+$/.test(hour))
144
+ return expr;
145
+ const time = `${parseInt(hour, 10)}${mm}`;
146
+ if (dow === "*")
147
+ return `daily at ${time}`;
148
+ if (/^\d$/.test(dow))
149
+ return `weekly on ${DAY_NAMES[parseInt(dow, 10) % 7]} at ${time}`;
150
+ if (dow === "1-5")
151
+ return `weekdays at ${time}`;
152
+ return expr;
153
+ }
154
+ export function createSchedulerTools(env, ctx) {
155
+ if (!hasScheduler(env))
156
+ return [];
157
+ const sched = env;
158
+ const schedCtx = toSchedulerContext(ctx);
159
+ const cronCreateDescription = `Schedule a prompt to be enqueued at a future time. Use for both recurring schedules and one-shot reminders. The task runs UNATTENDED when it fires, so write a fully self-contained \`prompt\` (it will not see this conversation). Use CronList to see what you've scheduled, CronDelete to remove one.
160
+
161
+ ## One-shot tasks (schedule kind "delay" or "at")
162
+ For "remind me at X" / "in N minutes, do Y" — fire once:
163
+ - "check the deploy in 30 minutes" → schedule: { "kind": "delay", "delaySec": 1800 }
164
+ - "tomorrow at 8:57am, run the smoke test" → schedule: { "kind": "at", "atMs": <epoch ms of that local time> }
165
+
166
+ ## Recurring jobs (schedule kind "cron")
167
+ Uses standard 5-field cron in the user's local timezone: minute hour day-of-month month day-of-week. "0 9 * * *" means 9am local — no timezone conversion needed:
168
+ - "every 5 minutes" → schedule: { "kind": "cron", "expr": "*/5 * * * *" }
169
+ - "hourly" → { "kind": "cron", "expr": "7 * * * *" }
170
+ - "weekdays around 9am" → { "kind": "cron", "expr": "57 8 * * 1-5" }
171
+
172
+ ## Avoid the :00 and :30 minute marks when the task allows it
173
+ Every user who asks for "9am" gets \`0 9\`, and every user who asks for "hourly" gets \`0 *\` — which means requests from across the planet land at the same instant. When the user's request is approximate, pick a minute that is NOT 0 or 30:
174
+ - "every morning around 9" → "57 8 * * *" or "3 9 * * *" (not "0 9 * * *")
175
+ - "hourly" → "7 * * * *" (not "0 * * * *")
176
+ - "in an hour or so, remind me to..." → pick whatever delaySec you land on, don't round
177
+ Only use minute 0 or 30 when the user names that exact time and clearly means it ("at 9:00 sharp", "at half past", coordinating with a meeting). When in doubt, nudge a few minutes early or late — the user will not notice, and the fleet will.`;
178
+ const cronCreate = defineTool({
179
+ name: "CronCreate",
180
+ description: cronCreateDescription,
181
+ parameters: Type.Object({
182
+ prompt: Type.String({ description: "Self-contained instructions for the future task (it runs unattended)." }),
183
+ schedule: Type.Union([
184
+ Type.Object({ kind: Type.Literal("cron"), expr: Type.String({ description: "5- or 6-field cron expression." }) }),
185
+ Type.Object({ kind: Type.Literal("at"), atMs: Type.Number({ description: "Absolute epoch ms to fire once." }) }),
186
+ Type.Object({ kind: Type.Literal("delay"), delaySec: Type.Number({ description: "Seconds from now to fire once." }) }),
187
+ ], { description: "When to fire." }),
188
+ label: Type.Optional(Type.String({ description: "Short label (also a dedup key with the schedule)." })),
189
+ }),
190
+ effect: "write",
191
+ execute: async (args) => {
192
+ const a = args;
193
+ if (a.schedule.kind === "cron") {
194
+ if (!isValidCronExpr(a.schedule.expr)) {
195
+ return `Error (CronCreate): invalid cron expression "${a.schedule.expr}" — only 5/6 space-separated cron fields (digits and * / , -) are allowed.`;
196
+ }
197
+ const deepErr = cronScheduleError(a.schedule.expr);
198
+ if (deepErr)
199
+ return `Error (CronCreate): cron expression "${a.schedule.expr}" — ${deepErr}`;
200
+ }
201
+ const intent = {
202
+ prompt: a.prompt,
203
+ when: a.schedule,
204
+ ...(a.label !== undefined ? { label: a.label } : {}),
205
+ };
206
+ const r = await sched.schedule(intent, schedCtx);
207
+ if (!r.ok)
208
+ return `Error (CronCreate): ${r.error.message}`;
209
+ const humanSchedule = a.schedule.kind === "cron"
210
+ ? cronToHuman(a.schedule.expr)
211
+ : a.schedule.kind === "delay"
212
+ ? `once in ${a.schedule.delaySec}s`
213
+ : `once at ${new Date(a.schedule.atMs).toISOString()}`;
214
+ return {
215
+ content: `Scheduled task ${r.value.id}${a.label ? ` (${a.label})` : ""}.`,
216
+ details: { type: "cron-create", id: r.value.id, humanSchedule, recurring: a.schedule.kind === "cron" },
217
+ };
218
+ },
219
+ });
220
+ const cronCancel = defineTool({
221
+ name: "CronDelete",
222
+ description: "Cancel a cron job previously scheduled with CronCreate. Idempotent; ids also appear in CronList.",
223
+ parameters: Type.Object({ id: Type.String({ description: "Job ID returned by CronCreate." }) }),
224
+ effect: "idempotent",
225
+ execute: async (args) => {
226
+ const { id } = args;
227
+ const r = await sched.cancel(id, schedCtx);
228
+ if (!r.ok) {
229
+ if (r.error.code === "not_found")
230
+ return `CronDelete: no scheduled task "${id}" (already gone or not yours).`;
231
+ return `Error (CronDelete): ${r.error.message}`;
232
+ }
233
+ return { content: `Cancelled scheduled task ${id}.`, details: { type: "cron-delete", id } };
234
+ },
235
+ });
236
+ const cronList = defineTool({
237
+ name: "CronList",
238
+ description: "List all cron jobs scheduled via CronCreate (id, when, label).",
239
+ parameters: Type.Object({}),
240
+ effect: "read",
241
+ execute: async () => {
242
+ const r = await sched.list(schedCtx);
243
+ if (!r.ok)
244
+ return `Error (CronList): ${r.error.message}`;
245
+ if (r.value.length === 0) {
246
+ return { content: "No scheduled tasks.", details: { type: "cron-list", jobs: [] } };
247
+ }
248
+ const content = r.value
249
+ .map((s) => {
250
+ const human = cronToHuman(s.when);
251
+ return `- ${s.id}: ${s.when}${human !== s.when ? ` — ${human}` : ""}${s.label ? ` (${s.label})` : ""}`;
252
+ })
253
+ .join("\n");
254
+ const jobs = r.value.map((s) => {
255
+ const human = cronToHuman(s.when);
256
+ return { id: s.id, cron: s.when, humanSchedule: human !== s.when ? human : s.when, ...(s.label !== undefined ? { label: s.label } : {}) };
257
+ });
258
+ return { content, details: { type: "cron-list", jobs } };
259
+ },
260
+ });
261
+ const listPendingWakeups = async () => {
262
+ const r = await sched.list(schedCtx);
263
+ if (!r.ok)
264
+ return { err: r.error.message };
265
+ return {
266
+ ids: r.value
267
+ .filter((s) => s.mode === "session-wakeup" || (s.mode === undefined && s.label === WAKEUP_LABEL))
268
+ .map((s) => s.id),
269
+ };
270
+ };
271
+ const cancelWakeups = async (ids) => {
272
+ let n = 0;
273
+ for (const id of ids) {
274
+ const r = await sched.cancel(id, schedCtx);
275
+ if (r.ok)
276
+ n += 1;
277
+ }
278
+ return n;
279
+ };
280
+ let wakeupChain = Promise.resolve();
281
+ const serializedWakeupOp = (fn) => {
282
+ const next = wakeupChain.then(fn, fn);
283
+ wakeupChain = next.then(() => undefined, () => undefined);
284
+ return next;
285
+ };
286
+ const scheduleWakeup = defineTool({
287
+ name: SCHEDULE_WAKEUP_TOOL_NAME,
288
+ description: SCHEDULE_WAKEUP_PROMPT,
289
+ parameters: Type.Object({
290
+ delaySeconds: Type.Optional(Type.Number({
291
+ description: "Seconds from now to wake up. Clamped to [60, 3600] by the runtime. Required unless `stop` is true.",
292
+ })),
293
+ reason: Type.Optional(Type.String({
294
+ description: "One short sentence explaining the chosen delay. Goes to telemetry and is shown to the user. Be specific. Required unless `stop` is true.",
295
+ })),
296
+ prompt: Type.Optional(Type.String({
297
+ description: `The /loop input to fire on wake-up. Pass the same /loop input verbatim each turn so the next firing re-enters the skill and continues the loop. For autonomous /loop (no user prompt), pass the literal sentinel \`${AUTONOMOUS_LOOP_DYNAMIC_SENTINEL}\` instead (the dynamic-pacing variant, not the CronCreate-mode \`${AUTONOMOUS_LOOP_SENTINEL}\`). Required unless \`stop\` is true.`,
298
+ })),
299
+ stop: Type.Optional(Type.Boolean({
300
+ description: "Immediately end the dynamic loop: cancel this session's pending wakeup(s) and schedule nothing. All other fields are ignored when true.",
301
+ })),
302
+ }),
303
+ effect: "write",
304
+ execute: async (args) => serializedWakeupOp(async () => {
305
+ const a = args;
306
+ if (a.stop === true) {
307
+ const pending = await listPendingWakeups();
308
+ if ("err" in pending)
309
+ return `Error (${SCHEDULE_WAKEUP_TOOL_NAME}): ${pending.err}`;
310
+ const cancelledWakeups = await cancelWakeups(pending.ids);
311
+ return {
312
+ content: `Loop stopped. Cancelled ${cancelledWakeups} pending wakeup(s); recurring cron tasks are unaffected.`,
313
+ details: { type: "schedule-wakeup", stopped: true, cancelledWakeups, scheduledFor: 0, clampedDelaySeconds: 0, wasClamped: false },
314
+ };
315
+ }
316
+ if (a.delaySeconds === undefined || a.reason === undefined || a.prompt === undefined) {
317
+ return `Error (${SCHEDULE_WAKEUP_TOOL_NAME}): delaySeconds, reason and prompt are required unless \`stop\` is true.`;
318
+ }
319
+ const clampedDelaySeconds = Math.min(3600, Math.max(60, Math.round(a.delaySeconds)));
320
+ const wasClamped = clampedDelaySeconds !== a.delaySeconds;
321
+ const pending = await listPendingWakeups();
322
+ if (!("err" in pending))
323
+ await cancelWakeups(pending.ids);
324
+ const r = await sched.schedule({ prompt: a.prompt, when: { kind: "delay", delaySec: clampedDelaySeconds }, label: WAKEUP_LABEL, mode: "session-wakeup" }, schedCtx);
325
+ if (!r.ok)
326
+ return `Error (${SCHEDULE_WAKEUP_TOOL_NAME}): ${r.error.message}`;
327
+ const scheduledFor = Date.now() + clampedDelaySeconds * 1000;
328
+ const hhmmss = new Date(scheduledFor).toTimeString().slice(0, 8);
329
+ const clampNote = wasClamped ? ` (clamped to ${clampedDelaySeconds}s from your requested value)` : "";
330
+ return {
331
+ content: `Next wakeup scheduled for ${hhmmss} (in ${clampedDelaySeconds}s)${clampNote}. Nothing more to do this turn — the harness re-invokes you when the wakeup fires or a task-notification arrives.`,
332
+ details: { type: "schedule-wakeup", stopped: false, scheduledFor, clampedDelaySeconds, wasClamped },
333
+ };
334
+ }),
335
+ });
336
+ return ctx.sessionId !== undefined ? [cronCreate, cronCancel, cronList, scheduleWakeup] : [cronCreate, cronCancel, cronList];
337
+ }
338
+ //# sourceMappingURL=scheduler-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler-tools.js","sourceRoot":"","sources":["../../src/tools/scheduler-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export declare function pgQuery(pool: {
2
+ query: (text: string) => Promise<{
3
+ rows: unknown[];
4
+ }>;
5
+ }): (sql: string) => Promise<unknown[]>;
6
+ export declare function mysqlQuery(conn: {
7
+ query: (sql: string) => Promise<[unknown, unknown]>;
8
+ }): (sql: string) => Promise<unknown[]>;
9
+ export declare function sqliteQuery(db: {
10
+ prepare: (sql: string) => {
11
+ all: () => unknown[];
12
+ };
13
+ }): (sql: string) => Promise<unknown[]>;
14
+ //# sourceMappingURL=sql-adapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-adapters.d.ts","sourceRoot":"","sources":["../../src/tools/sql-adapters.ts"],"names":[],"mappings":"AAaA,wBAAgB,OAAO,CAAC,IAAI,EAAE;IAC5B,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC,CAAC;CACvD,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAEtC;AAOD,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;CACrD,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAKtC;AAGD,wBAAgB,WAAW,CAAC,EAAE,EAAE;IAC9B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK;QAAE,GAAG,EAAE,MAAM,OAAO,EAAE,CAAA;KAAE,CAAC;CACpD,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAEtC"}
@@ -0,0 +1,13 @@
1
+ export function pgQuery(pool) {
2
+ return async (sql) => (await pool.query(sql)).rows;
3
+ }
4
+ export function mysqlQuery(conn) {
5
+ return async (sql) => {
6
+ const [rows] = await conn.query(sql);
7
+ return rows;
8
+ };
9
+ }
10
+ export function sqliteQuery(db) {
11
+ return async (sql) => db.prepare(sql).all();
12
+ }
13
+ //# sourceMappingURL=sql-adapters.js.map