@abot-ai/runtime 1.5.0 → 1.6.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 (984) hide show
  1. package/dist/src/bridge/start-agent-bridge.js +22 -0
  2. package/dist/src/capabilities/normal-invocation/contracts.d.ts +11 -0
  3. package/dist/src/capabilities/normal-invocation/contracts.js +1 -0
  4. package/dist/src/capabilities/normal-invocation/validator.js +40 -4
  5. package/dist/src/capabilities/result-budget.d.ts +17 -0
  6. package/dist/src/capabilities/result-budget.js +21 -0
  7. package/dist/src/capabilities/tool-context-text.d.ts +16 -0
  8. package/dist/src/capabilities/tool-context-text.js +30 -0
  9. package/dist/src/capabilities/tool-definition-validator/definition-parser.js +6 -0
  10. package/dist/src/capabilities/tool-definition-validator/event-input-text-options.js +3 -2
  11. package/dist/src/capabilities/tool-event-input-text.d.ts +1 -0
  12. package/dist/src/capabilities/tool-event-input-text.js +2 -1
  13. package/dist/src/capabilities/tool-executor.d.ts +3 -1
  14. package/dist/src/capabilities/tool-executor.js +29 -50
  15. package/dist/src/capabilities/tool-interruption.d.ts +3 -0
  16. package/dist/src/capabilities/tool-interruption.js +6 -0
  17. package/dist/src/capabilities/tool-result-normalization.d.ts +18 -0
  18. package/dist/src/capabilities/tool-result-normalization.js +68 -0
  19. package/dist/src/capabilities/tool-types.d.ts +25 -2
  20. package/dist/src/cli/host-companion-bundle.mjs +474 -212
  21. package/dist/src/cli/host-companion.js +6 -0
  22. package/dist/src/cli/host-permissions.d.ts +7 -0
  23. package/dist/src/cli/host-permissions.js +24 -0
  24. package/dist/src/computer-access/companion/native-messages.js +1 -0
  25. package/dist/src/computer-access/companion/native-permissions.d.ts +14 -0
  26. package/dist/src/computer-access/companion/native-permissions.js +49 -0
  27. package/dist/src/computer-access/companion/native-session.js +4 -0
  28. package/dist/src/computer-access/companion/notification-installation.js +2 -15
  29. package/dist/src/computer-access/companion/notification-macos-bundle.d.ts +3 -0
  30. package/dist/src/computer-access/companion/notification-macos-bundle.js +84 -0
  31. package/dist/src/computer-access/companion/notification-macos.js +1 -1
  32. package/dist/src/computer-access/companion/notification-protocol.d.ts +1 -1
  33. package/dist/src/computer-access/companion/notification-protocol.js +20 -1
  34. package/dist/src/computer-access/companion/notification-readiness.js +2 -1
  35. package/dist/src/computer-access/companion/permission-protocol.d.ts +22 -0
  36. package/dist/src/computer-access/companion/permission-protocol.js +45 -0
  37. package/dist/src/computer-access/companion/protocol.d.ts +2 -1
  38. package/dist/src/computer-access/companion/protocol.js +3 -0
  39. package/dist/src/computer-access/companion/release-version.d.ts +1 -1
  40. package/dist/src/computer-access/companion/release-version.js +1 -1
  41. package/dist/src/computer-access/companion/spark-notification-query.d.ts +2 -0
  42. package/dist/src/computer-access/companion/spark-notification-query.js +62 -0
  43. package/dist/src/computer-access/computer/macos-desktop.js +1 -1
  44. package/dist/src/computer-access/computer/macos-input.js +2 -5
  45. package/dist/src/computer-access/computer/macos-permission-helper.d.ts +4 -0
  46. package/dist/src/computer-access/computer/macos-permission-helper.js +38 -0
  47. package/dist/src/computer-access/host-observation.d.ts +3 -3
  48. package/dist/src/computer-access/native-permission-contract.d.ts +23 -0
  49. package/dist/src/computer-access/native-permission-contract.js +38 -0
  50. package/dist/src/model-gateway/policy/invocation-policy.js +10 -1
  51. package/dist/src/model-gateway/providers/openai/payload.js +8 -0
  52. package/dist/src/model-gateway/structured-output/ollama-format.js +5 -0
  53. package/dist/src/model-gateway/structured-output/openai-format.js +5 -0
  54. package/dist/src/model-gateway/types.d.ts +3 -0
  55. package/dist/src/plugin-contract/manifest.d.ts +2 -1
  56. package/dist/src/plugin-sdk/context-text-result.d.ts +10 -0
  57. package/dist/src/plugin-sdk/context-text-result.js +19 -0
  58. package/dist/src/plugin-sdk/index.d.ts +1 -0
  59. package/dist/src/plugin-sdk/index.js +1 -0
  60. package/dist/src/plugin-sdk/results.d.ts +7 -4
  61. package/dist/src/plugin-sdk/results.js +35 -10
  62. package/dist/src/runtime/adapters/co-worker-resources.d.ts +2 -0
  63. package/dist/src/runtime/adapters/co-worker-resources.js +2 -2
  64. package/dist/src/runtime/adapters/file-session-store.js +6 -0
  65. package/dist/src/runtime/adapters/in-memory-session-store.js +14 -1
  66. package/dist/src/runtime/adapters/long-term-memory/onboarding-service.d.ts +2 -1
  67. package/dist/src/runtime/adapters/long-term-memory/onboarding-service.js +5 -4
  68. package/dist/src/runtime/adapters/passive-learning-runtime.d.ts +2 -1
  69. package/dist/src/runtime/adapters/passive-learning-runtime.js +1 -1
  70. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/prepared-execution.js +77 -26
  71. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/result-budget.d.ts +11 -0
  72. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/result-budget.js +30 -0
  73. package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/contracts.d.ts +28 -1
  74. package/dist/src/runtime/adapters/registered-tool-payload-plan.d.ts +3 -3
  75. package/dist/src/runtime/adapters/registered-tool-payload-plan.js +4 -4
  76. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/contracts.d.ts +2 -0
  77. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-authoring-result.js +4 -18
  78. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/prepared-execution.js +3 -3
  79. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/result-envelope.d.ts +13 -0
  80. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/result-envelope.js +15 -0
  81. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/result-evidence.d.ts +3 -7
  82. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/result-evidence.js +6 -38
  83. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/result-observer.d.ts +2 -1
  84. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/result-observer.js +14 -6
  85. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/result-references.d.ts +9 -0
  86. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/result-references.js +29 -0
  87. package/dist/src/runtime/adapters/registered-tool-worker-capabilities.js +1 -0
  88. package/dist/src/runtime/adapters/scheduler-executor-dispatch.d.ts +11 -0
  89. package/dist/src/runtime/adapters/scheduler-executor-dispatch.js +10 -0
  90. package/dist/src/runtime/adapters/scheduler-runtime.d.ts +3 -1
  91. package/dist/src/runtime/adapters/scheduler-runtime.js +28 -12
  92. package/dist/src/runtime/automations/agent-assignment.d.ts +8 -0
  93. package/dist/src/runtime/automations/agent-assignment.js +29 -0
  94. package/dist/src/runtime/automations/agent-request-failure.d.ts +2 -0
  95. package/dist/src/runtime/automations/agent-request-failure.js +74 -0
  96. package/dist/src/runtime/automations/agent-session-lifetime.d.ts +11 -0
  97. package/dist/src/runtime/automations/agent-session-lifetime.js +46 -0
  98. package/dist/src/runtime/automations/agent-step-executor.d.ts +35 -0
  99. package/dist/src/runtime/automations/agent-step-executor.js +278 -0
  100. package/dist/src/runtime/automations/agent-tool-scope.d.ts +4 -0
  101. package/dist/src/runtime/automations/agent-tool-scope.js +73 -0
  102. package/dist/src/runtime/automations/archive-management.d.ts +26 -0
  103. package/dist/src/runtime/automations/archive-management.js +50 -0
  104. package/dist/src/runtime/automations/binding-resolution.d.ts +28 -0
  105. package/dist/src/runtime/automations/binding-resolution.js +115 -0
  106. package/dist/src/runtime/automations/branch-result-projection.d.ts +4 -0
  107. package/dist/src/runtime/automations/branch-result-projection.js +15 -0
  108. package/dist/src/runtime/automations/catalog.d.ts +76 -0
  109. package/dist/src/runtime/automations/catalog.js +67 -0
  110. package/dist/src/runtime/automations/definition-contracts.d.ts +128 -0
  111. package/dist/src/runtime/automations/definition-contracts.js +1 -0
  112. package/dist/src/runtime/automations/definition-input.d.ts +3 -0
  113. package/dist/src/runtime/automations/definition-input.js +283 -0
  114. package/dist/src/runtime/automations/dependency-fingerprint.d.ts +9 -0
  115. package/dist/src/runtime/automations/dependency-fingerprint.js +55 -0
  116. package/dist/src/runtime/automations/draft-batch-aliases.d.ts +12 -0
  117. package/dist/src/runtime/automations/draft-batch-aliases.js +94 -0
  118. package/dist/src/runtime/automations/draft-batch.d.ts +29 -0
  119. package/dist/src/runtime/automations/draft-batch.js +147 -0
  120. package/dist/src/runtime/automations/draft-management.d.ts +53 -0
  121. package/dist/src/runtime/automations/draft-management.js +164 -0
  122. package/dist/src/runtime/automations/draft-mutations.d.ts +29 -0
  123. package/dist/src/runtime/automations/draft-mutations.js +219 -0
  124. package/dist/src/runtime/automations/draft-restoration.d.ts +11 -0
  125. package/dist/src/runtime/automations/draft-restoration.js +44 -0
  126. package/dist/src/runtime/automations/effect-admission-lifetime.d.ts +9 -0
  127. package/dist/src/runtime/automations/effect-admission-lifetime.js +31 -0
  128. package/dist/src/runtime/automations/failure-policy.d.ts +8 -0
  129. package/dist/src/runtime/automations/failure-policy.js +9 -0
  130. package/dist/src/runtime/automations/graph-executor.d.ts +23 -0
  131. package/dist/src/runtime/automations/graph-executor.js +227 -0
  132. package/dist/src/runtime/automations/graph-validation.d.ts +29 -0
  133. package/dist/src/runtime/automations/graph-validation.js +271 -0
  134. package/dist/src/runtime/automations/input-batch-selection.d.ts +7 -0
  135. package/dist/src/runtime/automations/input-batch-selection.js +42 -0
  136. package/dist/src/runtime/automations/input-capacity.d.ts +9 -0
  137. package/dist/src/runtime/automations/input-capacity.js +38 -0
  138. package/dist/src/runtime/automations/input-ledger.d.ts +45 -0
  139. package/dist/src/runtime/automations/input-ledger.js +147 -0
  140. package/dist/src/runtime/automations/late-settlement.d.ts +9 -0
  141. package/dist/src/runtime/automations/late-settlement.js +42 -0
  142. package/dist/src/runtime/automations/limits.d.ts +25 -0
  143. package/dist/src/runtime/automations/limits.js +41 -0
  144. package/dist/src/runtime/automations/model-capacity.d.ts +9 -0
  145. package/dist/src/runtime/automations/model-capacity.js +67 -0
  146. package/dist/src/runtime/automations/model-dependency-projection.d.ts +56 -0
  147. package/dist/src/runtime/automations/model-dependency-projection.js +88 -0
  148. package/dist/src/runtime/automations/node-transactions.d.ts +57 -0
  149. package/dist/src/runtime/automations/node-transactions.js +223 -0
  150. package/dist/src/runtime/automations/occurrence-preparation.d.ts +12 -0
  151. package/dist/src/runtime/automations/occurrence-preparation.js +257 -0
  152. package/dist/src/runtime/automations/permission-grants.d.ts +27 -0
  153. package/dist/src/runtime/automations/permission-grants.js +72 -0
  154. package/dist/src/runtime/automations/persistence.d.ts +9 -0
  155. package/dist/src/runtime/automations/persistence.js +13 -0
  156. package/dist/src/runtime/automations/publication-validation.d.ts +16 -0
  157. package/dist/src/runtime/automations/publication-validation.js +162 -0
  158. package/dist/src/runtime/automations/publication.d.ts +33 -0
  159. package/dist/src/runtime/automations/publication.js +97 -0
  160. package/dist/src/runtime/automations/replay-preparation.d.ts +7 -0
  161. package/dist/src/runtime/automations/replay-preparation.js +59 -0
  162. package/dist/src/runtime/automations/result-capacity.d.ts +5 -0
  163. package/dist/src/runtime/automations/result-capacity.js +9 -0
  164. package/dist/src/runtime/automations/result-publication.d.ts +10 -0
  165. package/dist/src/runtime/automations/result-publication.js +21 -0
  166. package/dist/src/runtime/automations/result-store.d.ts +17 -0
  167. package/dist/src/runtime/automations/result-store.js +109 -0
  168. package/dist/src/runtime/automations/retention.d.ts +12 -0
  169. package/dist/src/runtime/automations/retention.js +134 -0
  170. package/dist/src/runtime/automations/run-file-binding.d.ts +3 -0
  171. package/dist/src/runtime/automations/run-file-binding.js +19 -0
  172. package/dist/src/runtime/automations/run-output-summary.d.ts +25 -0
  173. package/dist/src/runtime/automations/run-output-summary.js +54 -0
  174. package/dist/src/runtime/automations/run-report.d.ts +83 -0
  175. package/dist/src/runtime/automations/run-report.js +121 -0
  176. package/dist/src/runtime/automations/runtime-executor.d.ts +16 -0
  177. package/dist/src/runtime/automations/runtime-executor.js +260 -0
  178. package/dist/src/runtime/automations/saved-agent-management.d.ts +16 -0
  179. package/dist/src/runtime/automations/saved-agent-management.js +94 -0
  180. package/dist/src/runtime/automations/service.d.ts +286 -0
  181. package/dist/src/runtime/automations/service.js +330 -0
  182. package/dist/src/runtime/automations/snapshot-staging.d.ts +13 -0
  183. package/dist/src/runtime/automations/snapshot-staging.js +126 -0
  184. package/dist/src/runtime/automations/source-attachment-access.d.ts +23 -0
  185. package/dist/src/runtime/automations/source-attachment-access.js +70 -0
  186. package/dist/src/runtime/automations/source-discovery.d.ts +25 -0
  187. package/dist/src/runtime/automations/source-discovery.js +179 -0
  188. package/dist/src/runtime/automations/starter-template-builder.d.ts +5 -0
  189. package/dist/src/runtime/automations/starter-template-builder.js +78 -0
  190. package/dist/src/runtime/automations/starter-template-contracts.d.ts +42 -0
  191. package/dist/src/runtime/automations/starter-template-contracts.js +1 -0
  192. package/dist/src/runtime/automations/starter-template-definitions.d.ts +3 -0
  193. package/dist/src/runtime/automations/starter-template-definitions.js +100 -0
  194. package/dist/src/runtime/automations/starter-template-showcases.d.ts +3 -0
  195. package/dist/src/runtime/automations/starter-template-showcases.js +154 -0
  196. package/dist/src/runtime/automations/starter-template-structure.d.ts +4 -0
  197. package/dist/src/runtime/automations/starter-template-structure.js +11 -0
  198. package/dist/src/runtime/automations/starter-templates.d.ts +20 -0
  199. package/dist/src/runtime/automations/starter-templates.js +75 -0
  200. package/dist/src/runtime/automations/step-evidence-effects.d.ts +46 -0
  201. package/dist/src/runtime/automations/step-evidence-effects.js +173 -0
  202. package/dist/src/runtime/automations/step-evidence-inputs.d.ts +22 -0
  203. package/dist/src/runtime/automations/step-evidence-inputs.js +105 -0
  204. package/dist/src/runtime/automations/step-evidence-output.d.ts +17 -0
  205. package/dist/src/runtime/automations/step-evidence-output.js +43 -0
  206. package/dist/src/runtime/automations/step-evidence.d.ts +24 -0
  207. package/dist/src/runtime/automations/step-evidence.js +53 -0
  208. package/dist/src/runtime/automations/step-interruption.d.ts +3 -0
  209. package/dist/src/runtime/automations/step-interruption.js +26 -0
  210. package/dist/src/runtime/automations/step-runner.d.ts +57 -0
  211. package/dist/src/runtime/automations/step-runner.js +278 -0
  212. package/dist/src/runtime/automations/storage-records.d.ts +133 -0
  213. package/dist/src/runtime/automations/storage-records.js +286 -0
  214. package/dist/src/runtime/automations/terminal-admission-receipt.d.ts +12 -0
  215. package/dist/src/runtime/automations/terminal-admission-receipt.js +39 -0
  216. package/dist/src/runtime/automations/tool-lifetimes.d.ts +13 -0
  217. package/dist/src/runtime/automations/tool-lifetimes.js +56 -0
  218. package/dist/src/runtime/automations/tool-step-executor.d.ts +32 -0
  219. package/dist/src/runtime/automations/tool-step-executor.js +136 -0
  220. package/dist/src/runtime/automations/tool-step-outcome.d.ts +24 -0
  221. package/dist/src/runtime/automations/tool-step-outcome.js +32 -0
  222. package/dist/src/runtime/automations/trigger-schedule.d.ts +7 -0
  223. package/dist/src/runtime/automations/trigger-schedule.js +19 -0
  224. package/dist/src/runtime/automations/working-directory.d.ts +3 -0
  225. package/dist/src/runtime/automations/working-directory.js +13 -0
  226. package/dist/src/runtime/capabilities/automation-builder/authoring-reference.d.ts +422 -0
  227. package/dist/src/runtime/capabilities/automation-builder/authoring-reference.js +130 -0
  228. package/dist/src/runtime/capabilities/automation-builder/creation-recipe.d.ts +9 -0
  229. package/dist/src/runtime/capabilities/automation-builder/creation-recipe.js +155 -0
  230. package/dist/src/runtime/capabilities/automation-builder/payload-instructions.d.ts +6 -0
  231. package/dist/src/runtime/capabilities/automation-builder/payload-instructions.js +6 -0
  232. package/dist/src/runtime/capabilities/automation-builder/payload-schema.d.ts +3 -0
  233. package/dist/src/runtime/capabilities/automation-builder/payload-schema.js +105 -0
  234. package/dist/src/runtime/capabilities/automation-builder/tool-contract.d.ts +65 -0
  235. package/dist/src/runtime/capabilities/automation-builder/tool-contract.js +27 -0
  236. package/dist/src/runtime/capabilities/automation-builder/tool-module.d.ts +4 -0
  237. package/dist/src/runtime/capabilities/automation-builder/tool-module.js +108 -0
  238. package/dist/src/runtime/capabilities/automations/authoring-catalog-contract.d.ts +78 -0
  239. package/dist/src/runtime/capabilities/automations/authoring-catalog-contract.js +28 -0
  240. package/dist/src/runtime/capabilities/automations/authoring-catalog.d.ts +320 -0
  241. package/dist/src/runtime/capabilities/automations/authoring-catalog.js +158 -0
  242. package/dist/src/runtime/capabilities/automations/authoring-input-contracts.d.ts +140 -0
  243. package/dist/src/runtime/capabilities/automations/authoring-input-contracts.js +36 -0
  244. package/dist/src/runtime/capabilities/automations/authoring-inputs.d.ts +9 -0
  245. package/dist/src/runtime/capabilities/automations/authoring-inputs.js +86 -0
  246. package/dist/src/runtime/capabilities/automations/authoring-preparation-limits.d.ts +5 -0
  247. package/dist/src/runtime/capabilities/automations/authoring-preparation-limits.js +5 -0
  248. package/dist/src/runtime/capabilities/automations/authoring-preparation.d.ts +483 -0
  249. package/dist/src/runtime/capabilities/automations/authoring-preparation.js +51 -0
  250. package/dist/src/runtime/capabilities/automations/draft-index.d.ts +14 -0
  251. package/dist/src/runtime/capabilities/automations/draft-index.js +26 -0
  252. package/dist/src/runtime/capabilities/automations/draft-operation-refs.d.ts +11 -0
  253. package/dist/src/runtime/capabilities/automations/draft-operation-refs.js +37 -0
  254. package/dist/src/runtime/capabilities/automations/draft-receipt-admission.d.ts +24 -0
  255. package/dist/src/runtime/capabilities/automations/draft-receipt-admission.js +36 -0
  256. package/dist/src/runtime/capabilities/automations/event-presentation.d.ts +3 -0
  257. package/dist/src/runtime/capabilities/automations/event-presentation.js +18 -0
  258. package/dist/src/runtime/capabilities/automations/model-tool-contract.d.ts +3 -0
  259. package/dist/src/runtime/capabilities/automations/model-tool-contract.js +34 -0
  260. package/dist/src/runtime/capabilities/automations/tool-contract.d.ts +3 -0
  261. package/dist/src/runtime/capabilities/automations/tool-contract.js +65 -0
  262. package/dist/src/runtime/capabilities/automations/tool-module.d.ts +4 -0
  263. package/dist/src/runtime/capabilities/automations/tool-module.js +286 -0
  264. package/dist/src/runtime/capabilities/runtime-path-namespace.d.ts +6 -0
  265. package/dist/src/runtime/capabilities/runtime-path-namespace.js +48 -0
  266. package/dist/src/runtime/capabilities/runtime-target-path.d.ts +1 -0
  267. package/dist/src/runtime/capabilities/runtime-target-path.js +16 -8
  268. package/dist/src/runtime/capabilities/scheduling/create-operations.d.ts +6 -0
  269. package/dist/src/runtime/capabilities/scheduling/job-list-page.d.ts +4 -1
  270. package/dist/src/runtime/composition.d.ts +5 -2
  271. package/dist/src/runtime/context/canonical-capability-result.d.ts +4 -0
  272. package/dist/src/runtime/context/canonical-capability-result.js +80 -0
  273. package/dist/src/runtime/context/capability-brief-readmission.js +2 -5
  274. package/dist/src/runtime/context/capability-result-compaction-source.d.ts +12 -0
  275. package/dist/src/runtime/context/capability-result-compaction-source.js +61 -0
  276. package/dist/src/runtime/context/compacted-capability-result-receipt.d.ts +7 -0
  277. package/dist/src/runtime/context/compacted-capability-result-receipt.js +29 -0
  278. package/dist/src/runtime/context/compaction-source-invariant.d.ts +6 -0
  279. package/dist/src/runtime/context/compaction-source-invariant.js +12 -0
  280. package/dist/src/runtime/context/execution-compacted-evidence.d.ts +29 -0
  281. package/dist/src/runtime/context/execution-compacted-evidence.js +87 -0
  282. package/dist/src/runtime/context/execution-compaction-objective.d.ts +11 -0
  283. package/dist/src/runtime/context/execution-compaction-objective.js +12 -0
  284. package/dist/src/runtime/context/model-step-compaction.d.ts +9 -0
  285. package/dist/src/runtime/context/model-step-compaction.js +115 -128
  286. package/dist/src/runtime/context/operation-supervision-compacted-evidence.d.ts +37 -0
  287. package/dist/src/runtime/context/operation-supervision-compacted-evidence.js +69 -0
  288. package/dist/src/runtime/context/operation-supervision-evidence-binding.d.ts +29 -0
  289. package/dist/src/runtime/context/operation-supervision-evidence-binding.js +66 -0
  290. package/dist/src/runtime/context/operation-supervision-evidence-projection.d.ts +5 -0
  291. package/dist/src/runtime/context/operation-supervision-evidence-projection.js +133 -0
  292. package/dist/src/runtime/context/operation-supervision-evidence.d.ts +2 -1
  293. package/dist/src/runtime/context/operation-supervision-evidence.js +38 -37
  294. package/dist/src/runtime/context/request-tool-results-checkpoint.d.ts +3 -0
  295. package/dist/src/runtime/context/request-tool-results-checkpoint.js +126 -0
  296. package/dist/src/runtime/context/request-tool-results-message-binding.d.ts +1 -0
  297. package/dist/src/runtime/context/request-tool-results-message-binding.js +10 -0
  298. package/dist/src/runtime/context/request-tool-results-supersession.d.ts +9 -0
  299. package/dist/src/runtime/context/request-tool-results-supersession.js +78 -0
  300. package/dist/src/runtime/context/request-tool-results.d.ts +3 -9
  301. package/dist/src/runtime/context/request-tool-results.js +15 -181
  302. package/dist/src/runtime/context/runtime-filesystem-scope.d.ts +21 -0
  303. package/dist/src/runtime/context/runtime-filesystem-scope.js +51 -0
  304. package/dist/src/runtime/context/semantic-compaction/checkpoint-message.d.ts +3 -0
  305. package/dist/src/runtime/context/semantic-compaction/checkpoint-message.js +22 -0
  306. package/dist/src/runtime/context/semantic-compaction/contracts.d.ts +0 -3
  307. package/dist/src/runtime/context/semantic-compaction/contracts.js +9 -20
  308. package/dist/src/runtime/context/semantic-compaction/dependency-results.js +15 -1
  309. package/dist/src/runtime/context/semantic-compaction/evidence-scope.d.ts +7 -0
  310. package/dist/src/runtime/context/semantic-compaction/evidence-scope.js +7 -0
  311. package/dist/src/runtime/context/semantic-compaction/format.d.ts +2 -1
  312. package/dist/src/runtime/context/semantic-compaction/format.js +27 -19
  313. package/dist/src/runtime/context/semantic-compaction/generation-contracts.d.ts +18 -0
  314. package/dist/src/runtime/context/semantic-compaction/generation-contracts.js +1 -0
  315. package/dist/src/runtime/context/semantic-compaction/generation-input.d.ts +11 -0
  316. package/dist/src/runtime/context/semantic-compaction/generation-input.js +74 -0
  317. package/dist/src/runtime/context/semantic-compaction/generation-source-registration.d.ts +3 -0
  318. package/dist/src/runtime/context/semantic-compaction/generation-source-registration.js +12 -0
  319. package/dist/src/runtime/context/semantic-compaction/output-validation.d.ts +10 -0
  320. package/dist/src/runtime/context/semantic-compaction/output-validation.js +75 -0
  321. package/dist/src/runtime/context/semantic-compaction/parser.d.ts +2 -2
  322. package/dist/src/runtime/context/semantic-compaction/parser.js +13 -26
  323. package/dist/src/runtime/context/semantic-compaction/prompt.js +18 -5
  324. package/dist/src/runtime/context/semantic-compaction/repair-headroom.d.ts +4 -3
  325. package/dist/src/runtime/context/semantic-compaction/repair-headroom.js +10 -4
  326. package/dist/src/runtime/context/semantic-compaction/replacement-budget.d.ts +25 -0
  327. package/dist/src/runtime/context/semantic-compaction/replacement-budget.js +55 -0
  328. package/dist/src/runtime/context/semantic-compaction/run.d.ts +3 -14
  329. package/dist/src/runtime/context/semantic-compaction/run.js +27 -186
  330. package/dist/src/runtime/context/semantic-compaction/scope-quarantine.d.ts +17 -0
  331. package/dist/src/runtime/context/semantic-compaction/scope-quarantine.js +37 -0
  332. package/dist/src/runtime/context/semantic-compaction/snapshot.d.ts +5 -1
  333. package/dist/src/runtime/context/semantic-compaction/snapshot.js +10 -2
  334. package/dist/src/runtime/context/semantic-compaction/source-registration.d.ts +3 -0
  335. package/dist/src/runtime/context/semantic-compaction/source-registration.js +34 -0
  336. package/dist/src/runtime/context/semantic-compaction/source-slots.d.ts +5 -0
  337. package/dist/src/runtime/context/semantic-compaction/source-slots.js +4 -0
  338. package/dist/src/runtime/context/semantic-compaction/store.d.ts +6 -1
  339. package/dist/src/runtime/context/semantic-compaction/store.js +54 -9
  340. package/dist/src/runtime/context/semantic-compaction/super-child-result-source.d.ts +8 -0
  341. package/dist/src/runtime/context/semantic-compaction/super-child-result-source.js +50 -0
  342. package/dist/src/runtime/context/semantic-compaction/super-operation-source.d.ts +8 -0
  343. package/dist/src/runtime/context/semantic-compaction/super-operation-source.js +99 -0
  344. package/dist/src/runtime/context/semantic-compaction/super-reviewer-source.d.ts +16 -0
  345. package/dist/src/runtime/context/semantic-compaction/super-reviewer-source.js +37 -0
  346. package/dist/src/runtime/context/semantic-compaction/super-source-integrity.d.ts +21 -0
  347. package/dist/src/runtime/context/semantic-compaction/super-source-integrity.js +169 -0
  348. package/dist/src/runtime/context/semantic-compaction/super-source-message.d.ts +4 -0
  349. package/dist/src/runtime/context/semantic-compaction/super-source-message.js +23 -0
  350. package/dist/src/runtime/context/session-memory/model-step-controller.js +34 -20
  351. package/dist/src/runtime/context/session-memory/selection.js +0 -2
  352. package/dist/src/runtime/context/spark-conversation-policy.d.ts +4 -0
  353. package/dist/src/runtime/context/spark-conversation-policy.js +16 -0
  354. package/dist/src/runtime/context/super-compaction-failure-owner.d.ts +10 -0
  355. package/dist/src/runtime/context/super-compaction-failure-owner.js +64 -0
  356. package/dist/src/runtime/context/super-context-failure.d.ts +28 -0
  357. package/dist/src/runtime/context/super-context-failure.js +37 -0
  358. package/dist/src/runtime/context/super-context-policy.d.ts +3 -0
  359. package/dist/src/runtime/context/super-context-policy.js +35 -0
  360. package/dist/src/runtime/context/super-request-tool-results-checkpoint.d.ts +6 -0
  361. package/dist/src/runtime/context/super-request-tool-results-checkpoint.js +29 -0
  362. package/dist/src/runtime/context/super-worker-compaction-failure.d.ts +5 -0
  363. package/dist/src/runtime/context/super-worker-compaction-failure.js +19 -0
  364. package/dist/src/runtime/context/super-worker-compaction-projection.d.ts +8 -0
  365. package/dist/src/runtime/context/super-worker-compaction-projection.js +41 -0
  366. package/dist/src/runtime/context/super-worker-compaction-sidecar.d.ts +21 -0
  367. package/dist/src/runtime/context/super-worker-compaction-sidecar.js +67 -0
  368. package/dist/src/runtime/context/verified-compaction-projection.d.ts +7 -0
  369. package/dist/src/runtime/context/verified-compaction-projection.js +16 -0
  370. package/dist/src/runtime/default-environment-adapters.d.ts +4 -0
  371. package/dist/src/runtime/default-environment-adapters.js +7 -1
  372. package/dist/src/runtime/local-application.d.ts +277 -0
  373. package/dist/src/runtime/local-application.js +7 -0
  374. package/dist/src/runtime/local-host/app-learning-dispatch.js +0 -8
  375. package/dist/src/runtime/local-host/app-native-permissions.d.ts +20 -0
  376. package/dist/src/runtime/local-host/app-native-permissions.js +76 -0
  377. package/dist/src/runtime/local-host/app-owner.js +12 -1
  378. package/dist/src/runtime/local-host/app-request-control.d.ts +1 -0
  379. package/dist/src/runtime/local-host/app-request-control.js +5 -0
  380. package/dist/src/runtime/local-host/app-service-dispatch.d.ts +2 -1
  381. package/dist/src/runtime/local-host/app-service-dispatch.js +31 -0
  382. package/dist/src/runtime/local-host/client-learning.d.ts +1 -1
  383. package/dist/src/runtime/local-host/client-learning.js +0 -1
  384. package/dist/src/runtime/local-host/client-native-permissions.d.ts +4 -0
  385. package/dist/src/runtime/local-host/client-native-permissions.js +37 -0
  386. package/dist/src/runtime/local-host/client-services.d.ts +273 -0
  387. package/dist/src/runtime/local-host/client-services.js +3 -2
  388. package/dist/src/runtime/local-host/learning-preferences-input.js +1 -0
  389. package/dist/src/runtime/model/context-compaction-admission.d.ts +21 -0
  390. package/dist/src/runtime/model/context-compaction-admission.js +214 -0
  391. package/dist/src/runtime/model/context-compaction-contracts.d.ts +32 -0
  392. package/dist/src/runtime/model/context-compaction-contracts.js +1 -0
  393. package/dist/src/runtime/model/context-compaction-diagnostics.d.ts +33 -0
  394. package/dist/src/runtime/model/context-compaction-diagnostics.js +97 -0
  395. package/dist/src/runtime/model/context-compaction-stage-plan.d.ts +3 -0
  396. package/dist/src/runtime/model/context-compaction-stage-plan.js +28 -0
  397. package/dist/src/runtime/model/input-token-count.d.ts +1 -0
  398. package/dist/src/runtime/model/input-token-count.js +4 -1
  399. package/dist/src/runtime/model/invoke-step.js +80 -126
  400. package/dist/src/runtime/model/invoke-structured-step.d.ts +1 -1
  401. package/dist/src/runtime/model/invoke-structured-step.js +3 -2
  402. package/dist/src/runtime/model/model-context-assessment.d.ts +17 -0
  403. package/dist/src/runtime/model/model-context-assessment.js +51 -0
  404. package/dist/src/runtime/model/model-context-budget.js +1 -0
  405. package/dist/src/runtime/model/model-step-acceptance.d.ts +4 -0
  406. package/dist/src/runtime/model/model-step-acceptance.js +28 -0
  407. package/dist/src/runtime/model/model-step-port.d.ts +4 -15
  408. package/dist/src/runtime/model/model-step-steering.d.ts +14 -1
  409. package/dist/src/runtime/model/model-step-steering.js +23 -0
  410. package/dist/src/runtime/orchestration/capability-adapters/result.d.ts +4 -1
  411. package/dist/src/runtime/orchestration/capability-adapters/result.js +11 -7
  412. package/dist/src/runtime/orchestration/role-calls/child-return.d.ts +5 -1
  413. package/dist/src/runtime/orchestration/role-calls/child-return.js +2 -2
  414. package/dist/src/runtime/orchestration/worker-capabilities/binding/invocation-preparation.js +1 -8
  415. package/dist/src/runtime/orchestration/worker-capabilities/contracts.d.ts +3 -4
  416. package/dist/src/runtime/orchestration/worker-capabilities/contracts.js +1 -1
  417. package/dist/src/runtime/orchestration/worker-capabilities/execution/context-projection.js +2 -1
  418. package/dist/src/runtime/orchestration/worker-capabilities/payload-assignment-validation.js +9 -9
  419. package/dist/src/runtime/orchestration/worker-capabilities/payload-author.js +9 -33
  420. package/dist/src/runtime/orchestration/worker-capabilities/payload-body-normalization.d.ts +12 -0
  421. package/dist/src/runtime/orchestration/worker-capabilities/payload-body-normalization.js +80 -0
  422. package/dist/src/runtime/orchestration/worker-capabilities/payload-compaction-transport.d.ts +3 -0
  423. package/dist/src/runtime/orchestration/worker-capabilities/payload-compaction-transport.js +14 -0
  424. package/dist/src/runtime/orchestration/worker-capabilities/payload-context-snapshot.d.ts +2 -0
  425. package/dist/src/runtime/orchestration/worker-capabilities/payload-context-snapshot.js +12 -0
  426. package/dist/src/runtime/orchestration/worker-capabilities/payload-contracts.d.ts +5 -1
  427. package/dist/src/runtime/orchestration/worker-capabilities/payload-instructions.js +1 -1
  428. package/dist/src/runtime/passive-learning/background-dependencies.d.ts +0 -1
  429. package/dist/src/runtime/passive-learning/contracts.d.ts +2 -3
  430. package/dist/src/runtime/passive-learning/proactive/agent.d.ts +3 -0
  431. package/dist/src/runtime/passive-learning/proactive/agent.js +36 -14
  432. package/dist/src/runtime/passive-learning/proactive/contracts.d.ts +7 -1
  433. package/dist/src/runtime/passive-learning/proactive/contracts.js +8 -1
  434. package/dist/src/runtime/passive-learning/proactive/conversation-style-prompt.d.ts +1 -0
  435. package/dist/src/runtime/passive-learning/proactive/conversation-style-prompt.js +6 -0
  436. package/dist/src/runtime/passive-learning/proactive/conversation-style-reference.d.ts +30 -0
  437. package/dist/src/runtime/passive-learning/proactive/conversation-style-reference.js +61 -0
  438. package/dist/src/runtime/passive-learning/proactive/handoff-brief.d.ts +1 -0
  439. package/dist/src/runtime/passive-learning/proactive/handoff-brief.js +4 -0
  440. package/dist/src/runtime/passive-learning/proactive/model-output.d.ts +1 -1
  441. package/dist/src/runtime/passive-learning/proactive/model-output.js +5 -4
  442. package/dist/src/runtime/passive-learning/proactive/model.d.ts +7 -1
  443. package/dist/src/runtime/passive-learning/proactive/model.js +58 -32
  444. package/dist/src/runtime/passive-learning/proactive/prompt.d.ts +1 -1
  445. package/dist/src/runtime/passive-learning/proactive/prompt.js +4 -2
  446. package/dist/src/runtime/passive-learning/proactive/staged-authoring.d.ts +14 -0
  447. package/dist/src/runtime/passive-learning/proactive/staged-authoring.js +27 -0
  448. package/dist/src/runtime/passive-learning/proactive/staged-context.d.ts +13 -0
  449. package/dist/src/runtime/passive-learning/proactive/staged-context.js +39 -4
  450. package/dist/src/runtime/passive-learning/proactive/staged-contract.d.ts +3 -0
  451. package/dist/src/runtime/passive-learning/proactive/staged-contract.js +4 -0
  452. package/dist/src/runtime/passive-learning/proactive/staged-format.d.ts +5 -1
  453. package/dist/src/runtime/passive-learning/proactive/staged-format.js +2 -4
  454. package/dist/src/runtime/passive-learning/proactive/staged-output.d.ts +3 -4
  455. package/dist/src/runtime/passive-learning/proactive/staged-output.js +13 -5
  456. package/dist/src/runtime/passive-learning/proactive/staged-progress-store.d.ts +0 -1
  457. package/dist/src/runtime/passive-learning/proactive/staged-progress-store.js +2 -18
  458. package/dist/src/runtime/passive-learning/proactive/staged-prompt.d.ts +3 -1
  459. package/dist/src/runtime/passive-learning/proactive/staged-prompt.js +13 -4
  460. package/dist/src/runtime/passive-learning/proactive/staged-review.d.ts +1 -1
  461. package/dist/src/runtime/passive-learning/proactive/staged-review.js +10 -11
  462. package/dist/src/runtime/passive-learning/proactive/store.d.ts +1 -1
  463. package/dist/src/runtime/passive-learning/proactive/store.js +11 -5
  464. package/dist/src/runtime/passive-learning/review-progress.d.ts +1 -1
  465. package/dist/src/runtime/passive-learning/review-progress.js +2 -2
  466. package/dist/src/runtime/passive-learning/service-status.js +2 -2
  467. package/dist/src/runtime/passive-learning/service.js +0 -6
  468. package/dist/src/runtime/passive-learning/spark-chat-preferences.d.ts +3 -0
  469. package/dist/src/runtime/passive-learning/spark-chat-preferences.js +8 -0
  470. package/dist/src/runtime/passive-learning/staged-review-call.d.ts +3 -0
  471. package/dist/src/runtime/passive-learning/staged-review-call.js +19 -13
  472. package/dist/src/runtime/passive-learning/store.js +4 -0
  473. package/dist/src/runtime/plugins/manifest-projection.js +4 -0
  474. package/dist/src/runtime/plugins/manifest-validator.js +7 -0
  475. package/dist/src/runtime/ports.d.ts +14 -1
  476. package/dist/src/runtime/request/approval-wait/activation-events.d.ts +5 -0
  477. package/dist/src/runtime/request/approval-wait/activation-events.js +4 -3
  478. package/dist/src/runtime/request/approval-wait/snapshot.d.ts +1 -1
  479. package/dist/src/runtime/request/approval-wait/snapshot.js +1 -0
  480. package/dist/src/runtime/request/approval-wait/super-compaction-restore.d.ts +20 -0
  481. package/dist/src/runtime/request/approval-wait/super-compaction-restore.js +61 -0
  482. package/dist/src/runtime/request/automation-output-contract.d.ts +6 -0
  483. package/dist/src/runtime/request/automation-output-contract.js +33 -0
  484. package/dist/src/runtime/request/contracts.d.ts +16 -0
  485. package/dist/src/runtime/request/execution-agent-root-execution.js +2 -0
  486. package/dist/src/runtime/request/execution-facets.js +7 -0
  487. package/dist/src/runtime/request/execution-payload-compacted-evidence.d.ts +64 -0
  488. package/dist/src/runtime/request/execution-payload-compacted-evidence.js +46 -0
  489. package/dist/src/runtime/request/execution-scope-surfaces.d.ts +2 -0
  490. package/dist/src/runtime/request/execution-scope-surfaces.js +28 -0
  491. package/dist/src/runtime/request/execution-scope.d.ts +8 -2
  492. package/dist/src/runtime/request/execution-scope.js +14 -2
  493. package/dist/src/runtime/request/handler.d.ts +7 -0
  494. package/dist/src/runtime/request/handler.js +196 -35
  495. package/dist/src/runtime/request/locked-request-steering.d.ts +3 -0
  496. package/dist/src/runtime/request/locked-request-steering.js +12 -0
  497. package/dist/src/runtime/request/policy-degraded-finalization.d.ts +10 -0
  498. package/dist/src/runtime/request/policy-degraded-finalization.js +27 -0
  499. package/dist/src/runtime/request/prepared-execution.d.ts +10 -1
  500. package/dist/src/runtime/request/prepared-execution.js +43 -8
  501. package/dist/src/runtime/request/request-steering.d.ts +1 -1
  502. package/dist/src/runtime/request/result.d.ts +3 -0
  503. package/dist/src/runtime/request/role-executor-composition.js +4 -3
  504. package/dist/src/runtime/request/root-contract.d.ts +2 -0
  505. package/dist/src/runtime/request/root-execution-kernel.js +10 -9
  506. package/dist/src/runtime/request/root-invalid-output.js +16 -1
  507. package/dist/src/runtime/request/session-admission.d.ts +6 -0
  508. package/dist/src/runtime/request/session-admission.js +47 -14
  509. package/dist/src/runtime/request/super-checkpoint-quarantine.d.ts +8 -0
  510. package/dist/src/runtime/request/super-checkpoint-quarantine.js +76 -0
  511. package/dist/src/runtime/request/super-context-failure-executor.d.ts +4 -0
  512. package/dist/src/runtime/request/super-context-failure-executor.js +68 -0
  513. package/dist/src/runtime/request/super-context-failure-integrity.d.ts +16 -0
  514. package/dist/src/runtime/request/super-context-failure-integrity.js +130 -0
  515. package/dist/src/runtime/request/super-context-scope.d.ts +9 -0
  516. package/dist/src/runtime/request/super-context-scope.js +65 -0
  517. package/dist/src/runtime/request/super-failure-explanation.d.ts +22 -0
  518. package/dist/src/runtime/request/super-failure-explanation.js +77 -0
  519. package/dist/src/runtime/request/super-failure-message.d.ts +10 -0
  520. package/dist/src/runtime/request/super-failure-message.js +40 -0
  521. package/dist/src/runtime/request/super-payload-context-failure.d.ts +11 -0
  522. package/dist/src/runtime/request/super-payload-context-failure.js +55 -0
  523. package/dist/src/runtime/request/super-root-failure-finalization.d.ts +23 -0
  524. package/dist/src/runtime/request/super-root-failure-finalization.js +112 -0
  525. package/dist/src/runtime/request/worker-capability-composition.d.ts +2 -0
  526. package/dist/src/runtime/request/worker-capability-composition.js +4 -1
  527. package/dist/src/runtime/request/worker-capability-payload.d.ts +2 -1
  528. package/dist/src/runtime/request/worker-capability-payload.js +74 -48
  529. package/dist/src/runtime/runtime-environment.d.ts +3 -1
  530. package/dist/src/runtime/runtime-environment.js +167 -1
  531. package/dist/src/runtime/scheduler/automation-job-management.d.ts +12 -0
  532. package/dist/src/runtime/scheduler/automation-job-management.js +288 -0
  533. package/dist/src/runtime/scheduler/automation-rerun.d.ts +6 -0
  534. package/dist/src/runtime/scheduler/automation-rerun.js +95 -0
  535. package/dist/src/runtime/scheduler/automation-run-budget.d.ts +4 -0
  536. package/dist/src/runtime/scheduler/automation-run-budget.js +16 -0
  537. package/dist/src/runtime/scheduler/automation-run-change-events.d.ts +11 -0
  538. package/dist/src/runtime/scheduler/automation-run-change-events.js +77 -0
  539. package/dist/src/runtime/scheduler/automation-run-completion.d.ts +11 -0
  540. package/dist/src/runtime/scheduler/automation-run-completion.js +93 -0
  541. package/dist/src/runtime/scheduler/automation-run-control.d.ts +3 -0
  542. package/dist/src/runtime/scheduler/automation-run-control.js +48 -0
  543. package/dist/src/runtime/scheduler/automation-run-records.d.ts +5 -0
  544. package/dist/src/runtime/scheduler/automation-run-records.js +37 -0
  545. package/dist/src/runtime/scheduler/automation-schedule.d.ts +10 -0
  546. package/dist/src/runtime/scheduler/automation-schedule.js +48 -0
  547. package/dist/src/runtime/scheduler/automation-scheduler-engine.d.ts +4 -0
  548. package/dist/src/runtime/scheduler/automation-scheduler-engine.js +188 -0
  549. package/dist/src/runtime/scheduler/automation-snapshot-validation.d.ts +3 -0
  550. package/dist/src/runtime/scheduler/automation-snapshot-validation.js +106 -0
  551. package/dist/src/runtime/scheduler/contracts.d.ts +143 -3
  552. package/dist/src/runtime/scheduler/file-store.js +15 -1
  553. package/dist/src/runtime/scheduler/job-management.js +3 -2
  554. package/dist/src/runtime/scheduler/journal-automation-index.d.ts +23 -0
  555. package/dist/src/runtime/scheduler/journal-automation-index.js +205 -0
  556. package/dist/src/runtime/scheduler/journal-automation-transaction.d.ts +11 -0
  557. package/dist/src/runtime/scheduler/journal-automation-transaction.js +90 -0
  558. package/dist/src/runtime/scheduler/journal-checkpoint.js +5 -2
  559. package/dist/src/runtime/scheduler/journal-head.d.ts +1 -1
  560. package/dist/src/runtime/scheduler/journal-head.js +2 -2
  561. package/dist/src/runtime/scheduler/journal-index-state.d.ts +21 -10
  562. package/dist/src/runtime/scheduler/journal-index-state.js +76 -17
  563. package/dist/src/runtime/scheduler/journal-index.d.ts +9 -3
  564. package/dist/src/runtime/scheduler/journal-index.js +84 -9
  565. package/dist/src/runtime/scheduler/journal-store.d.ts +9 -1
  566. package/dist/src/runtime/scheduler/journal-store.js +110 -7
  567. package/dist/src/runtime/scheduler/journal-transaction.d.ts +7 -4
  568. package/dist/src/runtime/scheduler/journal-transaction.js +13 -2
  569. package/dist/src/runtime/scheduler/next-occurrence.js +2 -0
  570. package/dist/src/runtime/scheduler/run-completion.js +2 -1
  571. package/dist/src/runtime/scheduler/run-records.js +8 -3
  572. package/dist/src/runtime/scheduler/schedule-update.d.ts +2 -2
  573. package/dist/src/runtime/scheduler/schedule-validation.d.ts +2 -2
  574. package/dist/src/runtime/scheduler/schedule-validation.js +2 -0
  575. package/dist/src/runtime/scheduler/scheduler-engine.js +24 -8
  576. package/dist/src/runtime/scheduler/scheduler-service.d.ts +4 -1
  577. package/dist/src/runtime/scheduler/scheduler-service.js +83 -10
  578. package/dist/src/runtime/scheduler/scheduler-target.d.ts +9 -0
  579. package/dist/src/runtime/scheduler/scheduler-target.js +41 -0
  580. package/dist/src/runtime/scheduler/service-context.d.ts +6 -2
  581. package/dist/src/runtime/scheduler/service-context.js +6 -3
  582. package/dist/src/runtime/scheduler/snapshot-validation.d.ts +3 -3
  583. package/dist/src/runtime/scheduler/snapshot-validation.js +21 -1
  584. package/dist/src/runtime/scheduler/startup-recovery.d.ts +1 -1
  585. package/dist/src/runtime/scheduler/startup-recovery.js +15 -2
  586. package/dist/src/runtime/scheduler/working-store.js +8 -0
  587. package/dist/src/runtime/session/request-session.d.ts +1 -0
  588. package/dist/src/runtime/session/request-session.js +1 -0
  589. package/dist/src/runtime/session/session-deletion-boundary.d.ts +1 -1
  590. package/dist/src/runtime/session/session-deletion-boundary.js +6 -2
  591. package/dist/src/runtime/session/session-lifecycle-store.d.ts +4 -1
  592. package/dist/src/runtime/session/session-lifecycle-store.js +32 -4
  593. package/dist/src/runtime/session/spark-session-attachments.d.ts +4 -0
  594. package/dist/src/runtime/session/spark-session-attachments.js +28 -0
  595. package/dist/src/runtime/session/spark-session-cleanup-receipt.d.ts +7 -0
  596. package/dist/src/runtime/session/spark-session-cleanup-receipt.js +61 -0
  597. package/dist/src/runtime/session/spark-session-clear.d.ts +6 -0
  598. package/dist/src/runtime/session/spark-session-clear.js +36 -0
  599. package/dist/src/runtime/session/terminal-response.d.ts +21 -0
  600. package/dist/src/runtime/session/terminal-response.js +38 -0
  601. package/dist/src/runtime/steps/auditor-decision/advisory-receipt.d.ts +1 -0
  602. package/dist/src/runtime/steps/auditor-decision/advisory-receipt.js +12 -0
  603. package/dist/src/runtime/steps/auditor-decision/contracts.d.ts +4 -0
  604. package/dist/src/runtime/steps/auditor-decision/evidence-coverage.js +5 -5
  605. package/dist/src/runtime/steps/auditor-decision/evidence-inventory.d.ts +2 -1
  606. package/dist/src/runtime/steps/auditor-decision/evidence-inventory.js +12 -1
  607. package/dist/src/runtime/steps/auditor-decision/evidence-representation.d.ts +8 -2
  608. package/dist/src/runtime/steps/auditor-decision/evidence-representation.js +14 -1
  609. package/dist/src/runtime/steps/auditor-decision/input.d.ts +2 -0
  610. package/dist/src/runtime/steps/auditor-decision/input.js +12 -3
  611. package/dist/src/runtime/steps/auditor-decision/projection.js +20 -1
  612. package/dist/src/runtime/steps/auditor-decision/prompt.js +6 -6
  613. package/dist/src/runtime/steps/auditor-decision/run.js +2 -3
  614. package/dist/src/runtime/steps/capability-execution-instructions.d.ts +5 -0
  615. package/dist/src/runtime/steps/capability-execution-instructions.js +5 -0
  616. package/dist/src/runtime/steps/degraded-finalization/contract.d.ts +3 -0
  617. package/dist/src/runtime/steps/degraded-finalization/fallback.js +14 -4
  618. package/dist/src/runtime/steps/degraded-finalization/input.js +11 -1
  619. package/dist/src/runtime/steps/degraded-finalization/output-limit-cause.d.ts +4 -0
  620. package/dist/src/runtime/steps/degraded-finalization/output-limit-cause.js +17 -0
  621. package/dist/src/runtime/steps/degraded-finalization/prompt.js +4 -1
  622. package/dist/src/runtime/steps/degraded-finalization/super.d.ts +20 -0
  623. package/dist/src/runtime/steps/degraded-finalization/super.js +128 -0
  624. package/dist/src/runtime/steps/execution-agent/capability-decision-parsing.d.ts +1 -0
  625. package/dist/src/runtime/steps/execution-agent/capability-decision-parsing.js +21 -3
  626. package/dist/src/runtime/steps/execution-agent/capability-invocation-contract.d.ts +1 -1
  627. package/dist/src/runtime/steps/execution-agent/capability-invocation-contract.js +4 -2
  628. package/dist/src/runtime/steps/execution-agent/capability-selection-schema.d.ts +3 -0
  629. package/dist/src/runtime/steps/execution-agent/capability-selection-schema.js +72 -0
  630. package/dist/src/runtime/steps/execution-agent/compaction.d.ts +5 -2
  631. package/dist/src/runtime/steps/execution-agent/compaction.js +10 -4
  632. package/dist/src/runtime/steps/execution-agent/contracts.d.ts +14 -2
  633. package/dist/src/runtime/steps/execution-agent/controls-compacted-evidence.d.ts +16 -0
  634. package/dist/src/runtime/steps/execution-agent/controls-compacted-evidence.js +67 -0
  635. package/dist/src/runtime/steps/execution-agent/controls-evidence-contract.d.ts +21 -0
  636. package/dist/src/runtime/steps/execution-agent/controls-evidence-contract.js +64 -0
  637. package/dist/src/runtime/steps/execution-agent/controls-evidence.d.ts +32 -0
  638. package/dist/src/runtime/steps/execution-agent/controls-evidence.js +119 -0
  639. package/dist/src/runtime/steps/execution-agent/decision-parsing.js +1 -0
  640. package/dist/src/runtime/steps/execution-agent/format.d.ts +2 -0
  641. package/dist/src/runtime/steps/execution-agent/format.js +9 -68
  642. package/dist/src/runtime/steps/execution-agent/input.js +19 -2
  643. package/dist/src/runtime/steps/execution-agent/prompt.d.ts +1 -0
  644. package/dist/src/runtime/steps/execution-agent/prompt.js +15 -2
  645. package/dist/src/runtime/steps/execution-agent/refinement-input.d.ts +32 -0
  646. package/dist/src/runtime/steps/execution-agent/refinement-input.js +146 -0
  647. package/dist/src/runtime/steps/execution-agent/refinement-prompt.d.ts +1 -0
  648. package/dist/src/runtime/steps/execution-agent/refinement-prompt.js +11 -0
  649. package/dist/src/runtime/steps/execution-agent/refinement.d.ts +4 -4
  650. package/dist/src/runtime/steps/execution-agent/refinement.js +18 -108
  651. package/dist/src/runtime/steps/execution-agent/response-input.js +13 -6
  652. package/dist/src/runtime/steps/execution-agent/response-prompt.js +1 -1
  653. package/dist/src/runtime/steps/execution-agent/response-run.js +19 -5
  654. package/dist/src/runtime/steps/execution-agent/run.js +9 -3
  655. package/dist/src/runtime/steps/execution-agent/state-context.d.ts +1 -1
  656. package/dist/src/runtime/steps/execution-agent/state-context.js +20 -5
  657. package/dist/src/runtime/steps/planner-decision/input.js +7 -0
  658. package/dist/src/runtime/steps/planner-decision/resume.d.ts +2 -1
  659. package/dist/src/runtime/steps/planner-decision/resume.js +3 -3
  660. package/dist/src/runtime/steps/planner-decision/run.js +13 -0
  661. package/dist/src/runtime/steps/planner-graph/prompt.js +2 -0
  662. package/dist/src/runtime/steps/planner-graph/run.js +1 -0
  663. package/dist/src/runtime/steps/reviewer-decision/projection.js +5 -0
  664. package/dist/src/runtime/steps/reviewer-decision/run.js +13 -0
  665. package/dist/src/runtime/steps/supervisor-decision/input.d.ts +1 -1
  666. package/dist/src/runtime/steps/supervisor-decision/input.js +2 -0
  667. package/dist/src/runtime/steps/supervisor-decision/run.js +14 -0
  668. package/dist/src/runtime/steps/supervisor-decision/working-directory.d.ts +2 -0
  669. package/dist/src/runtime/steps/supervisor-decision/working-directory.js +6 -0
  670. package/dist/src/runtime/steps/supervisor-response/input.d.ts +1 -1
  671. package/dist/src/runtime/steps/supervisor-response/input.js +14 -7
  672. package/dist/src/runtime/steps/supervisor-response/run.js +39 -9
  673. package/dist/src/runtime/steps/worker-decision/compaction-integrity.d.ts +11 -0
  674. package/dist/src/runtime/steps/worker-decision/compaction-integrity.js +40 -0
  675. package/dist/src/runtime/steps/worker-decision/input/reference-context.js +7 -0
  676. package/dist/src/runtime/steps/worker-decision/input/types.d.ts +4 -1
  677. package/dist/src/runtime/steps/worker-decision/prompt.js +9 -2
  678. package/dist/src/runtime/steps/worker-decision/result-author.js +4 -0
  679. package/dist/src/runtime/steps/worker-decision/run.js +12 -49
  680. package/dist/src/runtime/steps/worker-decision/worker-handoff-compaction.d.ts +4 -0
  681. package/dist/src/runtime/steps/worker-decision/worker-handoff-compaction.js +69 -0
  682. package/dist/src/sessions/assistant-initiative-append.d.ts +14 -0
  683. package/dist/src/sessions/assistant-initiative-append.js +64 -0
  684. package/dist/src/sessions/assistant-initiative.d.ts +4 -0
  685. package/dist/src/sessions/assistant-initiative.js +7 -1
  686. package/dist/src/sessions/automation-session-origin.d.ts +34 -0
  687. package/dist/src/sessions/automation-session-origin.js +78 -0
  688. package/dist/src/sessions/automation-session-store.d.ts +12 -0
  689. package/dist/src/sessions/automation-session-store.js +129 -0
  690. package/dist/src/sessions/index.d.ts +1 -0
  691. package/dist/src/sessions/index.js +3 -0
  692. package/dist/src/sessions/memory/source.d.ts +1 -1
  693. package/dist/src/sessions/memory/source.js +4 -11
  694. package/dist/src/sessions/project-binding.d.ts +1 -0
  695. package/dist/src/sessions/record/projection.d.ts +1 -0
  696. package/dist/src/sessions/record/projection.js +4 -0
  697. package/dist/src/sessions/session-service.d.ts +9 -0
  698. package/dist/src/sessions/session-service.js +53 -4
  699. package/dist/src/sessions/spark-handoff-brief.d.ts +3 -0
  700. package/dist/src/sessions/spark-handoff-brief.js +9 -0
  701. package/dist/src/sessions/spark-session.d.ts +13 -0
  702. package/dist/src/sessions/spark-session.js +25 -0
  703. package/dist/src/sessions/types.d.ts +5 -0
  704. package/dist/src/web-ui/app/ARCHITECTURE.md +89 -0
  705. package/dist/src/web-ui/app/app-bootstrap.js +24 -2
  706. package/dist/src/web-ui/app/app-dom.js +5 -0
  707. package/dist/src/web-ui/app/app-realtime-transport.js +27 -2
  708. package/dist/src/web-ui/app/app.js +5 -10
  709. package/dist/src/web-ui/app/automations-feature.js +103 -0
  710. package/dist/src/web-ui/app/components/automations/archive-actions.js +20 -0
  711. package/dist/src/web-ui/app/components/automations/authoring-entry.js +25 -0
  712. package/dist/src/web-ui/app/components/automations/binding-editor.js +101 -0
  713. package/dist/src/web-ui/app/components/automations/binding-fields.js +166 -0
  714. package/dist/src/web-ui/app/components/automations/chat-run-projection.js +280 -0
  715. package/dist/src/web-ui/app/components/automations/draft-recovery-actions.js +28 -0
  716. package/dist/src/web-ui/app/components/automations/editor-action-icons.js +18 -0
  717. package/dist/src/web-ui/app/components/automations/editor-actions.js +57 -0
  718. package/dist/src/web-ui/app/components/automations/editor.js +218 -0
  719. package/dist/src/web-ui/app/components/automations/failure-presentation.js +299 -0
  720. package/dist/src/web-ui/app/components/automations/library-tabs.js +45 -0
  721. package/dist/src/web-ui/app/components/automations/list.js +58 -0
  722. package/dist/src/web-ui/app/components/automations/live-view.js +39 -0
  723. package/dist/src/web-ui/app/components/automations/node-inspector.js +251 -0
  724. package/dist/src/web-ui/app/components/automations/permission-selection.js +37 -0
  725. package/dist/src/web-ui/app/components/automations/rerun-confirmation.js +16 -0
  726. package/dist/src/web-ui/app/components/automations/run-output-view.js +100 -0
  727. package/dist/src/web-ui/app/components/automations/run-report-view.js +224 -0
  728. package/dist/src/web-ui/app/components/automations/run-step-selection.js +7 -0
  729. package/dist/src/web-ui/app/components/automations/run-steps-view.js +33 -0
  730. package/dist/src/web-ui/app/components/automations/run.js +38 -0
  731. package/dist/src/web-ui/app/components/automations/schema-literal-inputs.js +212 -0
  732. package/dist/src/web-ui/app/components/automations/step-editor-dialog.js +243 -0
  733. package/dist/src/web-ui/app/components/automations/step-preview.js +48 -0
  734. package/dist/src/web-ui/app/components/automations/template-gallery.js +74 -0
  735. package/dist/src/web-ui/app/components/automations/timeline-camera.js +219 -0
  736. package/dist/src/web-ui/app/components/automations/timeline.js +141 -0
  737. package/dist/src/web-ui/app/components/automations/tool-identity.js +25 -0
  738. package/dist/src/web-ui/app/components/automations/workspace.js +462 -0
  739. package/dist/src/web-ui/app/components/composer-context-window.js +24 -13
  740. package/dist/src/web-ui/app/components/config-workspace/model-rendering.js +2 -2
  741. package/dist/src/web-ui/app/components/conversation-activity.d.ts +2 -28
  742. package/dist/src/web-ui/app/components/conversation-activity.js +23 -60
  743. package/dist/src/web-ui/app/components/conversation-status.js +3 -2
  744. package/dist/src/web-ui/app/components/conversation-view.js +36 -14
  745. package/dist/src/web-ui/app/components/dashboard/automations.js +28 -0
  746. package/dist/src/web-ui/app/components/dashboard/workspace.js +9 -0
  747. package/dist/src/web-ui/app/components/notifications/dom.js +1 -1
  748. package/dist/src/web-ui/app/components/notifications/feedback.js +34 -0
  749. package/dist/src/web-ui/app/components/notifications/pagination.js +13 -0
  750. package/dist/src/web-ui/app/components/notifications/presentation.js +25 -4
  751. package/dist/src/web-ui/app/components/notifications/tabs.js +49 -0
  752. package/dist/src/web-ui/app/components/notifications/workspace.js +19 -26
  753. package/dist/src/web-ui/app/components/onboarding-workspace-access.js +1 -1
  754. package/dist/src/web-ui/app/components/passive-learning/agent-state.js +0 -5
  755. package/dist/src/web-ui/app/components/passive-learning/agent-view.js +1 -1
  756. package/dist/src/web-ui/app/components/passive-learning/home.js +0 -4
  757. package/dist/src/web-ui/app/components/passive-learning/memory.js +0 -3
  758. package/dist/src/web-ui/app/components/passive-learning/settings-view.js +2 -2
  759. package/dist/src/web-ui/app/components/passive-learning/workspace-view.js +3 -3
  760. package/dist/src/web-ui/app/components/runtime-setup/optional-steps.js +7 -1
  761. package/dist/src/web-ui/app/components/runtime-setup-guide.d.ts +5 -1
  762. package/dist/src/web-ui/app/components/runtime-setup-guide.js +6 -3
  763. package/dist/src/web-ui/app/components/schedules/details.js +3 -2
  764. package/dist/src/web-ui/app/components/schedules/form.js +4 -4
  765. package/dist/src/web-ui/app/components/spark-chat/empty-state.js +45 -0
  766. package/dist/src/web-ui/app/components/spark-chat/handoff-actions.js +59 -0
  767. package/dist/src/web-ui/app/components/spark-chat/mascot-activity.js +27 -0
  768. package/dist/src/web-ui/app/components/spark-chat/motion.js +52 -0
  769. package/dist/src/web-ui/app/components/spark-chat/panel.js +109 -0
  770. package/dist/src/web-ui/app/components/spark-chat/placement.js +198 -0
  771. package/dist/src/web-ui/app/components/spark-chat/results.js +44 -0
  772. package/dist/src/web-ui/app/components/spark-chat/settings.js +84 -0
  773. package/dist/src/web-ui/app/components/system-host/macos-permission-preparation.js +83 -0
  774. package/dist/src/web-ui/app/components/system-host/macos-permission-rendering.js +85 -0
  775. package/dist/src/web-ui/app/components/system-host/macos-permission-scopes.js +51 -0
  776. package/dist/src/web-ui/app/components/system-host/manager.js +34 -0
  777. package/dist/src/web-ui/app/components/system-host/rendering.js +12 -4
  778. package/dist/src/web-ui/app/components/workspace-shell.js +39 -6
  779. package/dist/src/web-ui/app/computer-access-feature.js +5 -0
  780. package/dist/src/web-ui/app/configuration-feature.js +1 -0
  781. package/dist/src/web-ui/app/controllers/app-event-bindings.js +24 -2
  782. package/dist/src/web-ui/app/controllers/automation-draft-actions.js +153 -0
  783. package/dist/src/web-ui/app/controllers/automation-management-actions.js +75 -0
  784. package/dist/src/web-ui/app/controllers/automation-mutation-lifecycle.js +32 -0
  785. package/dist/src/web-ui/app/controllers/automation-read-projection.js +63 -0
  786. package/dist/src/web-ui/app/controllers/automation-run-actions.js +54 -0
  787. package/dist/src/web-ui/app/controllers/automation-view-scope.js +19 -0
  788. package/dist/src/web-ui/app/controllers/automations-controller.js +395 -0
  789. package/dist/src/web-ui/app/controllers/composer-queue-controller.d.ts +1 -0
  790. package/dist/src/web-ui/app/controllers/composer-queue-controller.js +18 -12
  791. package/dist/src/web-ui/app/controllers/conversation-session-controller.js +38 -15
  792. package/dist/src/web-ui/app/controllers/conversation-view-feature.js +1 -14
  793. package/dist/src/web-ui/app/controllers/dashboard-controller.js +42 -1
  794. package/dist/src/web-ui/app/controllers/notifications-controller.js +1 -1
  795. package/dist/src/web-ui/app/controllers/passive-learning-controller.js +33 -85
  796. package/dist/src/web-ui/app/controllers/projects-controller.d.ts +2 -0
  797. package/dist/src/web-ui/app/controllers/projects-controller.js +53 -18
  798. package/dist/src/web-ui/app/controllers/realtime-event-controller.js +42 -160
  799. package/dist/src/web-ui/app/controllers/request-lifecycle-controller.js +2 -0
  800. package/dist/src/web-ui/app/controllers/runtime-onboarding-controller.d.ts +4 -1
  801. package/dist/src/web-ui/app/controllers/runtime-onboarding-controller.js +14 -3
  802. package/dist/src/web-ui/app/controllers/schedules-controller.js +11 -19
  803. package/dist/src/web-ui/app/controllers/spark-chat-notices.js +34 -0
  804. package/dist/src/web-ui/app/controllers/spark-chat-reading.js +145 -0
  805. package/dist/src/web-ui/app/controllers/spark-chat-sync.js +151 -0
  806. package/dist/src/web-ui/app/controllers/spark-handoff-navigation.js +32 -0
  807. package/dist/src/web-ui/app/controllers/workspace-route-controller.js +21 -1
  808. package/dist/src/web-ui/app/dashboard-feature.js +0 -1
  809. package/dist/src/web-ui/app/index.html +12 -10
  810. package/dist/src/web-ui/app/lib/automation-binding-producers.js +47 -0
  811. package/dist/src/web-ui/app/lib/automation-graph-position.js +19 -0
  812. package/dist/src/web-ui/app/lib/automation-parallel-depth.js +19 -0
  813. package/dist/src/web-ui/app/lib/configuration-pages.js +3 -5
  814. package/dist/src/web-ui/app/lib/context-compaction-state.d.ts +41 -0
  815. package/dist/src/web-ui/app/lib/context-compaction-state.js +172 -0
  816. package/dist/src/web-ui/app/lib/context-window-measurement.d.ts +33 -0
  817. package/dist/src/web-ui/app/lib/context-window-measurement.js +99 -0
  818. package/dist/src/web-ui/app/lib/context-window-replay.d.ts +32 -0
  819. package/dist/src/web-ui/app/lib/context-window-replay.js +38 -0
  820. package/dist/src/web-ui/app/lib/context-window-snapshot-order.d.ts +16 -8
  821. package/dist/src/web-ui/app/lib/context-window-snapshot-order.js +29 -9
  822. package/dist/src/web-ui/app/lib/context-window-state.d.ts +80 -0
  823. package/dist/src/web-ui/app/lib/context-window-state.js +341 -0
  824. package/dist/src/web-ui/app/lib/conversation-status-model.js +15 -3
  825. package/dist/src/web-ui/app/lib/realtime-message.js +9 -0
  826. package/dist/src/web-ui/app/lib/schedule-conversation-presentation.js +19 -0
  827. package/dist/src/web-ui/app/lib/schedule-presentation.js +2 -2
  828. package/dist/src/web-ui/app/lib/spark-chat-address.js +22 -0
  829. package/dist/src/web-ui/app/lib/spark-chat-presentation.js +16 -0
  830. package/dist/src/web-ui/app/lib/spark-chat-read-state.js +13 -0
  831. package/dist/src/web-ui/app/lib/spark-proposal-message.js +7 -0
  832. package/dist/src/web-ui/app/lib/tool-activity-event.d.ts +1 -0
  833. package/dist/src/web-ui/app/lib/tool-activity-event.js +6 -2
  834. package/dist/src/web-ui/app/lib/tool-activity-model.js +1 -0
  835. package/dist/src/web-ui/app/lib/tool-approval-acknowledgement.js +7 -0
  836. package/dist/src/web-ui/app/lib/tool-automation-activity-fields.js +59 -0
  837. package/dist/src/web-ui/app/lib/tool-process-activity-fields.js +1 -1
  838. package/dist/src/web-ui/app/lib/workspace-change.js +2 -2
  839. package/dist/src/web-ui/app/lib/workspace-route.d.ts +3 -0
  840. package/dist/src/web-ui/app/lib/workspace-route.js +13 -2
  841. package/dist/src/web-ui/app/notifications-feature.js +13 -0
  842. package/dist/src/web-ui/app/passive-learning-feature.js +5 -30
  843. package/dist/src/web-ui/app/projects-feature.js +16 -5
  844. package/dist/src/web-ui/app/runtime-onboarding-feature.js +1 -0
  845. package/dist/src/web-ui/app/services/client-preferences.d.ts +0 -2
  846. package/dist/src/web-ui/app/services/client-preferences.js +0 -2
  847. package/dist/src/web-ui/app/services/runtime-web-client/automations.d.ts +36 -0
  848. package/dist/src/web-ui/app/services/runtime-web-client/automations.js +63 -0
  849. package/dist/src/web-ui/app/services/runtime-web-client/learning.js +0 -9
  850. package/dist/src/web-ui/app/services/runtime-web-client/spark-chat.d.ts +22 -0
  851. package/dist/src/web-ui/app/services/runtime-web-client/spark-chat.js +29 -0
  852. package/dist/src/web-ui/app/services/runtime-web-client/system-host.js +4 -2
  853. package/dist/src/web-ui/app/services/runtime-web-client.d.ts +24 -4
  854. package/dist/src/web-ui/app/services/runtime-web-client.js +5 -1
  855. package/dist/src/web-ui/app/spark-chat-conversation.js +217 -0
  856. package/dist/src/web-ui/app/spark-chat-feature.js +187 -0
  857. package/dist/src/web-ui/app/spark-mascot.svg +12 -0
  858. package/dist/src/web-ui/app/styles/11-workspace-header-width.css +48 -14
  859. package/dist/src/web-ui/app/styles/11-workspace-rail.css +6 -0
  860. package/dist/src/web-ui/app/styles/19-dashboard-automations.css +32 -0
  861. package/dist/src/web-ui/app/styles/41-co-worker-agent.css +6 -25
  862. package/dist/src/web-ui/app/styles/46-system-host.css +17 -0
  863. package/dist/src/web-ui/app/styles/48-notifications.css +14 -8
  864. package/dist/src/web-ui/app/styles/50-automations.css +353 -0
  865. package/dist/src/web-ui/app/styles/51-automation-editor-actions.css +35 -0
  866. package/dist/src/web-ui/app/styles/51-automation-templates.css +39 -0
  867. package/dist/src/web-ui/app/styles/52-automation-reports.css +84 -0
  868. package/dist/src/web-ui/app/styles/52-automation-step-editor.css +73 -0
  869. package/dist/src/web-ui/app/styles/53-automation-schema-inputs.css +21 -0
  870. package/dist/src/web-ui/app/styles/54-spark-chat.css +111 -0
  871. package/dist/src/web-ui/app/styles/94-automations-responsive.css +35 -0
  872. package/dist/src/web-ui/app/styles.css +9 -1
  873. package/dist/src/web-ui/app/ui-behavior.js +1 -0
  874. package/dist/src/web-ui/local-runtime/api-router.d.ts +2 -0
  875. package/dist/src/web-ui/local-runtime/api-router.js +18 -0
  876. package/dist/src/web-ui/local-runtime/automation-routes.d.ts +27 -0
  877. package/dist/src/web-ui/local-runtime/automation-routes.js +227 -0
  878. package/dist/src/web-ui/local-runtime/environment-registry.d.ts +4 -0
  879. package/dist/src/web-ui/local-runtime/environment-registry.js +5 -0
  880. package/dist/src/web-ui/local-runtime/learning-notifications.js +1 -1
  881. package/dist/src/web-ui/local-runtime/learning-routes.js +0 -22
  882. package/dist/src/web-ui/local-runtime/request-execution.js +35 -0
  883. package/dist/src/web-ui/local-runtime/session-routes.js +32 -2
  884. package/dist/src/web-ui/local-runtime/setup-embedding-config-repository.d.ts +6 -0
  885. package/dist/src/web-ui/local-runtime/setup-embedding-config-repository.js +25 -0
  886. package/dist/src/web-ui/local-runtime/setup-embedding-service.js +2 -0
  887. package/dist/src/web-ui/local-runtime/spark-chat-admission.d.ts +7 -0
  888. package/dist/src/web-ui/local-runtime/spark-chat-admission.js +37 -0
  889. package/dist/src/web-ui/local-runtime/spark-chat-configuration.d.ts +8 -0
  890. package/dist/src/web-ui/local-runtime/spark-chat-configuration.js +16 -0
  891. package/dist/src/web-ui/local-runtime/spark-chat-handoff.d.ts +4 -0
  892. package/dist/src/web-ui/local-runtime/spark-chat-handoff.js +84 -0
  893. package/dist/src/web-ui/local-runtime/spark-chat-routes.d.ts +19 -0
  894. package/dist/src/web-ui/local-runtime/spark-chat-routes.js +62 -0
  895. package/dist/src/web-ui/local-runtime-backend.d.ts +4 -0
  896. package/dist/src/web-ui/local-runtime-backend.js +3 -0
  897. package/dist/src/web-ui/notifications/automation-event-projection.d.ts +3 -0
  898. package/dist/src/web-ui/notifications/automation-event-projection.js +57 -0
  899. package/dist/src/web-ui/notifications/contracts.d.ts +20 -5
  900. package/dist/src/web-ui/notifications/contracts.js +7 -1
  901. package/dist/src/web-ui/notifications/conversation-source.d.ts +6 -0
  902. package/dist/src/web-ui/notifications/conversation-source.js +26 -0
  903. package/dist/src/web-ui/notifications/event-fields.d.ts +3 -0
  904. package/dist/src/web-ui/notifications/event-fields.js +12 -0
  905. package/dist/src/web-ui/notifications/event-projection.d.ts +2 -1
  906. package/dist/src/web-ui/notifications/event-projection.js +22 -20
  907. package/dist/src/web-ui/notifications/service.js +33 -2
  908. package/dist/src/web-ui/notifications/storage-schema.js +118 -21
  909. package/dist/src/web-ui/server.js +1 -1
  910. package/dist/src/web-ui/session-read-state/service.d.ts +39 -0
  911. package/dist/src/web-ui/session-read-state/service.js +20 -2
  912. package/dist/src/web-ui/session-read-state/store.d.ts +2 -0
  913. package/dist/src/web-ui/session-read-state/store.js +7 -0
  914. package/dist/src/web-ui/session-read-state/visible-messages.d.ts +30 -0
  915. package/dist/src/web-ui/session-read-state/visible-messages.js +119 -0
  916. package/dist/src/web-ui/system-host-service.d.ts +4 -1
  917. package/dist/src/web-ui/system-host-service.js +14 -3
  918. package/dist/src/web-ui/system-host-setup/local-request-authority.d.ts +3 -0
  919. package/dist/src/web-ui/system-host-setup/local-request-authority.js +15 -0
  920. package/dist/src/web-ui/system-host-setup/local-setup-availability.js +2 -12
  921. package/dist/src/web-ui/system-host-setup/native-permission-route.d.ts +26 -0
  922. package/dist/src/web-ui/system-host-setup/native-permission-route.js +96 -0
  923. package/dist/src/web-ui/system-host-setup/permission-route.d.ts +13 -0
  924. package/dist/src/web-ui/system-host-setup/permission-route.js +102 -0
  925. package/docs/installation.md +41 -9
  926. package/docs/plugins.md +53 -11
  927. package/docs/runtime-public-contracts.md +7 -2
  928. package/docs/tool-execution-result-evidence-contract.md +11 -4
  929. package/package.json +1 -1
  930. package/plugins/capability-brief/src/index.cjs +85 -37
  931. package/plugins/code-outline/source/index.ts +7 -2
  932. package/plugins/code-outline/src/index.cjs +91 -39
  933. package/plugins/document-reader/plugin.json +18 -3
  934. package/plugins/document-reader/skills/document_reader_skill/SKILL.md +6 -6
  935. package/plugins/document-reader/source/source-resolution.ts +1 -1
  936. package/plugins/document-reader/src/index.cjs +86 -38
  937. package/plugins/exec/plugin.json +3 -3
  938. package/plugins/exec/source/handlers.ts +78 -20
  939. package/plugins/exec/source/output-contracts.ts +45 -0
  940. package/plugins/exec/source/output-files.ts +161 -0
  941. package/plugins/exec/source/output-maintenance.ts +60 -0
  942. package/plugins/exec/source/output-range-reader.ts +97 -0
  943. package/plugins/exec/source/output-retention.ts +34 -0
  944. package/plugins/exec/source/output-snapshot.ts +54 -0
  945. package/plugins/exec/source/output-store.ts +182 -0
  946. package/plugins/exec/source/output-utf8-boundary.ts +14 -0
  947. package/plugins/exec/source/output-writer.ts +131 -0
  948. package/plugins/exec/source/process-manager.ts +142 -70
  949. package/plugins/exec/source/process-output-buffer.ts +13 -18
  950. package/plugins/exec/source/process-output.ts +158 -0
  951. package/plugins/exec/source/request-resources.ts +28 -12
  952. package/plugins/exec/source/result-presentation.ts +39 -39
  953. package/plugins/exec/source/retained-output-failure.ts +51 -0
  954. package/plugins/exec/source/settings.ts +9 -10
  955. package/plugins/exec/source/terminal-delivery.ts +49 -0
  956. package/plugins/exec/source/types.ts +12 -1
  957. package/plugins/exec/src/index.cjs +1112 -188
  958. package/plugins/filesystem/plugin.json +5 -5
  959. package/plugins/filesystem/skills/read_file_skill/SKILL.md +1 -1
  960. package/plugins/filesystem/src/index.cjs +85 -37
  961. package/plugins/json-inspector/source/index.ts +7 -2
  962. package/plugins/json-inspector/src/index.cjs +91 -39
  963. package/plugins/local-search/source/index.ts +9 -4
  964. package/plugins/local-search/src/index.cjs +93 -41
  965. package/plugins/memory/src/index.cjs +85 -37
  966. package/plugins/project-orientation/source/index.ts +9 -4
  967. package/plugins/project-orientation/src/index.cjs +93 -41
  968. package/plugins/system/plugin.json +2 -2
  969. package/plugins/system/source/computer/observation-output.ts +1 -1
  970. package/plugins/system/src/index.cjs +88 -43
  971. package/plugins/system-probe/source/index.ts +7 -2
  972. package/plugins/system-probe/src/index.cjs +91 -39
  973. package/plugins/web/README.md +9 -0
  974. package/plugins/web/source/plugin.ts +5 -3
  975. package/plugins/web/source/research.ts +7 -7
  976. package/plugins/web/src/index.cjs +96 -43
  977. package/src/runtime/README.md +100 -11
  978. package/src/runtime/scheduler/README.md +63 -0
  979. package/dist/src/web-ui/app/components/passive-learning/proposal-notifications.js +0 -106
  980. package/dist/src/web-ui/app/components/passive-learning/proposal-read-state.js +0 -23
  981. package/dist/src/web-ui/app/components/passive-learning/proposal-view.js +0 -23
  982. package/dist/src/web-ui/app/components/spark-conversation-actions.js +0 -62
  983. package/dist/src/web-ui/app/services/spark-conversation-preferences.js +0 -27
  984. package/dist/src/web-ui/app/styles/29-spark-conversation.css +0 -19
@@ -0,0 +1,26 @@
1
+ const PAGE_SIZE = 50;
2
+ function isAutomationDraftIndexOffset(value) {
3
+ if (typeof value !== "number" || !Number.isSafeInteger(value))
4
+ return false;
5
+ if (value < 0)
6
+ return false;
7
+ return value <= 2_147_483_647;
8
+ }
9
+ /** A small, passive index for recovering an exact draft ID before reading or editing it. */
10
+ export async function readAutomationDraftIndex(service, offset) {
11
+ if (!isAutomationDraftIndexOffset(offset))
12
+ throw new Error("automation_offset_invalid");
13
+ const listed = await service.list();
14
+ const ordered = [...listed].sort((left, right) => left.title.localeCompare(right.title) || left.id.localeCompare(right.id));
15
+ const page = ordered.slice(offset, offset + PAGE_SIZE);
16
+ const omittedCount = Math.max(0, ordered.length - offset - page.length);
17
+ return {
18
+ kind: "automation_draft_index_v1",
19
+ grantsPermissions: false,
20
+ drafts: page.map(({ id, title, draftRevision, status }) => ({
21
+ automationId: id, title, revision: draftRevision, status,
22
+ })),
23
+ nextOffset: omittedCount > 0 ? offset + page.length : null,
24
+ omittedCount,
25
+ };
26
+ }
@@ -0,0 +1,11 @@
1
+ import type { AutomationRevision } from "../../automations/definition-contracts.js";
2
+ /** Exact draft identities for preparation; presence does not imply current availability or permission. */
3
+ export declare function automationDraftOperationRefs(definition: AutomationRevision): readonly string[];
4
+ /** Full saved-draft inventory, not a preparation selection or permission grant. */
5
+ export declare function automationDraftPreparationReceipt(definition: AutomationRevision): {
6
+ operationRefs: readonly string[];
7
+ preparation: {
8
+ operationRefLimit: 16;
9
+ requiresSelection: boolean;
10
+ };
11
+ };
@@ -0,0 +1,37 @@
1
+ import { automationCatalogOperationRef } from "./authoring-catalog.js";
2
+ import { AUTOMATION_AUTHORING_PREPARATION_LIMITS } from "./authoring-preparation-limits.js";
3
+ function collectNodeOperationRefs(node, refs) {
4
+ if (node.kind === "sequence") {
5
+ for (const child of node.children)
6
+ collectNodeOperationRefs(child, refs);
7
+ return;
8
+ }
9
+ if (node.kind === "parallel") {
10
+ for (const branch of node.branches)
11
+ collectNodeOperationRefs(branch, refs);
12
+ return;
13
+ }
14
+ if (node.kind === "tool") {
15
+ refs.add(automationCatalogOperationRef(node.operation));
16
+ return;
17
+ }
18
+ for (const selected of node.tools)
19
+ refs.add(automationCatalogOperationRef(selected.operation));
20
+ }
21
+ /** Exact draft identities for preparation; presence does not imply current availability or permission. */
22
+ export function automationDraftOperationRefs(definition) {
23
+ const refs = new Set();
24
+ collectNodeOperationRefs(definition.body, refs);
25
+ return [...refs];
26
+ }
27
+ function requiresPreparationSelection(operationRefCount) {
28
+ return operationRefCount > AUTOMATION_AUTHORING_PREPARATION_LIMITS.operationRefs;
29
+ }
30
+ /** Full saved-draft inventory, not a preparation selection or permission grant. */
31
+ export function automationDraftPreparationReceipt(definition) {
32
+ const operationRefs = automationDraftOperationRefs(definition);
33
+ return { operationRefs, preparation: {
34
+ operationRefLimit: AUTOMATION_AUTHORING_PREPARATION_LIMITS.operationRefs,
35
+ requiresSelection: requiresPreparationSelection(operationRefs.length),
36
+ } };
37
+ }
@@ -0,0 +1,24 @@
1
+ import type { ToolNormalInvocationOperation } from "../../../capabilities/tool-types.js";
2
+ export declare class AutomationDraftReceiptCapacityError extends Error {
3
+ readonly details: {
4
+ readonly code: "automation_authoring_receipt_too_large";
5
+ readonly message: "The complete draft is too large to return through model authoring. No changes were saved. Use Studio to inspect or edit large drafts.";
6
+ readonly maxResultBytes: number;
7
+ };
8
+ constructor();
9
+ }
10
+ /** Validate the complete result once, including references later added for a direct root. */
11
+ export declare function prepareAutomationDraftReceipt(receipt: unknown, admission: Readonly<{
12
+ tool: "automation_builder" | "automations";
13
+ operation: ToolNormalInvocationOperation;
14
+ params: Readonly<Record<string, unknown>>;
15
+ mutationEvidence: boolean;
16
+ }>): {
17
+ readonly ok: true;
18
+ readonly output: string;
19
+ readonly producedNewInformation: true;
20
+ readonly data: {
21
+ readonly mutationEvidence: boolean;
22
+ readonly currentStateEvidence: true;
23
+ };
24
+ };
@@ -0,0 +1,36 @@
1
+ import { projectToolTargetReferences } from "../../adapters/registered-tool-worker-capabilities/result-evidence.js";
2
+ import { CAPABILITY_ADAPTER_RESULT_SERIALIZED_MAX_BYTES, normalizeCapabilityAdapterResult, } from "../../orchestration/capability-adapters/result.js";
3
+ export class AutomationDraftReceiptCapacityError extends Error {
4
+ details = {
5
+ code: "automation_authoring_receipt_too_large",
6
+ message: "The complete draft is too large to return through model authoring. No changes were saved. Use Studio to inspect or edit large drafts.",
7
+ maxResultBytes: CAPABILITY_ADAPTER_RESULT_SERIALIZED_MAX_BYTES,
8
+ };
9
+ constructor() { super("automation_authoring_receipt_too_large"); }
10
+ }
11
+ function isOversizedDraftReceipt(result) {
12
+ if (result.ok)
13
+ return false;
14
+ return result.code === "result_too_large";
15
+ }
16
+ /** Validate the complete result once, including references later added for a direct root. */
17
+ export function prepareAutomationDraftReceipt(receipt, admission) {
18
+ const output = { ok: true, output: JSON.stringify(receipt), producedNewInformation: true,
19
+ data: { mutationEvidence: admission.mutationEvidence, currentStateEvidence: true } };
20
+ // These descriptors are only inputs to the existing target projector, never emitted actions.
21
+ const selectedTargets = (admission.operation.selectionControlIds ?? []).map((key) => ({
22
+ type: "selected_control",
23
+ target: typeof admission.params[key] === "string" ? admission.params[key] : undefined,
24
+ }));
25
+ const references = projectToolTargetReferences(selectedTargets);
26
+ const normalized = normalizeCapabilityAdapterResult({
27
+ kind: "registered_tool_execution_result_v1", authority: "registered_plugin", status: "executed",
28
+ result: { ...output, tool: admission.tool, progress: false },
29
+ ...(references.length > 0 ? { references } : {}),
30
+ });
31
+ if (normalized.ok)
32
+ return output;
33
+ if (isOversizedDraftReceipt(normalized))
34
+ throw new AutomationDraftReceiptCapacityError();
35
+ throw new Error("automation_authoring_receipt_invalid");
36
+ }
@@ -0,0 +1,3 @@
1
+ import type { ToolEventPresentation } from "../../../capabilities/tool-types.js";
2
+ /** Use the same declared call fields and bounded result excerpt as plugin tools. */
3
+ export declare const AUTOMATION_TOOL_EVENT_PRESENTATION: ToolEventPresentation;
@@ -0,0 +1,18 @@
1
+ /** Use the same declared call fields and bounded result excerpt as plugin tools. */
2
+ export const AUTOMATION_TOOL_EVENT_PRESENTATION = {
3
+ metadata: {
4
+ automationAction: { param: "action", kind: "string" },
5
+ automationId: { param: "automationId", kind: "string" },
6
+ automationTitle: { param: "title", kind: "string" },
7
+ expectedRevision: { param: "expectedRevision", kind: "number" },
8
+ nodeId: { param: "nodeId", kind: "string" },
9
+ agentId: { param: "agentId", kind: "string" },
10
+ view: { param: "view", kind: "string" },
11
+ offset: { param: "offset", kind: "number" },
12
+ toolName: { param: "toolName", kind: "string" },
13
+ operationId: { param: "operationId", kind: "string" },
14
+ },
15
+ resultMetadata: {
16
+ outputPreview: { path: "output", kind: "preview" },
17
+ },
18
+ };
@@ -0,0 +1,3 @@
1
+ import type { ToolNormalInvocationContract } from "../../../capabilities/tool-types.js";
2
+ /** The model writes connected graphs through automation_builder; direct legacy actions stay supported. */
3
+ export declare const automationModelToolContract: ToolNormalInvocationContract;
@@ -0,0 +1,34 @@
1
+ import { automationDraftToolContract } from "./tool-contract.js";
2
+ import { automationAuthoringPreparationOperation } from "./authoring-catalog-contract.js";
3
+ import { AUTOMATION_AUTHORING_PREPARATION_LIMITS } from "./authoring-preparation-limits.js";
4
+ function authoringOperation(operationId) {
5
+ const operation = [...automationDraftToolContract.operations, automationAuthoringPreparationOperation]
6
+ .find((candidate) => candidate.operationId === operationId);
7
+ if (!operation)
8
+ throw new Error(`automation_authoring_contract_missing:${operationId}`);
9
+ return { ...operation, selectionControlIds: operation.input.required };
10
+ }
11
+ /** These reads need complete selected inputs, not another model call to fill optional controls. */
12
+ function completeAuthoringRead(operationId, fields) {
13
+ const operation = authoringOperation(operationId);
14
+ return { ...operation, input: { ...operation.input,
15
+ properties: Object.fromEntries(fields.map((field) => [field, operation.input.properties[field]])),
16
+ required: fields }, selectionControlIds: fields };
17
+ }
18
+ const catalogIndex = completeAuthoringRead("browse_catalog", ["offset"]);
19
+ /** The model writes connected graphs through automation_builder; direct legacy actions stay supported. */
20
+ export const automationModelToolContract = {
21
+ version: automationDraftToolContract.version,
22
+ operations: [
23
+ { ...catalogIndex, fixedParams: { ...catalogIndex.fixedParams, view: "index" },
24
+ summary: "Discover available workflow tools, models and saved agents without creating a draft. Start at offset 0; use nextOffset only if more references are needed. Select needed operation refs for prepare_draft within its per-read limit; use multiple reads if needed, then save the entire connected workflow with create_automation_draft. This reads configuration only; it does not run future steps or grant access." },
25
+ { ...completeAuthoringRead("prepare_draft", ["operationRefs"]),
26
+ summary: `Prepare authoring from selected operationRefs needed for this edit. Copy from browse_catalog or the full inventory in read_draft/builder receipts (up to ${AUTOMATION_AUTHORING_PREPARATION_LIMITS.operationRefs} per read; [] when no tool schemas are needed). Existing refs need no rediscovery; read separate selections if more are needed. Returns schemas, models and the authoring reference. Then save one atomic create_automation_draft or apply_automation_draft_changes. Creates no draft and runs no workflow steps.` },
27
+ completeAuthoringRead("list_drafts", ["offset"]),
28
+ authoringOperation("read_draft"),
29
+ authoringOperation("validate_draft"),
30
+ { ...authoringOperation("add_saved_agent"),
31
+ summary: "Reuse an exact saved-agent revision in an existing draft. For a NEW workflow made solely from saved agents, first use create_automation_draft with a definition-only plan, then insert saved revisions using its returned IDs and revision. Never invent a placeholder step. Reusing a saved agent does not inherit an automation permission grant." },
32
+ authoringOperation("save_agent"),
33
+ ],
34
+ };
@@ -0,0 +1,3 @@
1
+ import type { ToolNormalInvocationContract } from "../../../capabilities/tool-types.js";
2
+ /** Draft-only authoring. No permission, publish, activation or run control. */
3
+ export declare const automationDraftToolContract: ToolNormalInvocationContract;
@@ -0,0 +1,65 @@
1
+ import { automationAuthoringCatalogOperations } from "./authoring-catalog-contract.js";
2
+ import { automationAuthoringInputOperations } from "./authoring-input-contracts.js";
3
+ const text = (maximum = 4_096) => ({
4
+ type: "string", minLength: 1, maxLength: maximum,
5
+ });
6
+ const optionalText = (maximum = 4_096) => ({
7
+ type: "string", minLength: 0, maxLength: maximum,
8
+ });
9
+ const id = text(128);
10
+ const revision = {
11
+ type: "integer", minimum: 1, maximum: 2_147_483_647,
12
+ };
13
+ const index = {
14
+ type: "integer", minimum: 0, maximum: 64,
15
+ };
16
+ const choice = (...values) => ({
17
+ type: "string", enum: values,
18
+ });
19
+ const common = { automationId: id, expectedRevision: revision };
20
+ const node = { ...common, nodeId: id };
21
+ function operation(operationId, summary, properties, required, effect = "mutating", selectionControlIds) {
22
+ return {
23
+ operationId, summary, effect, approval: "request_policy",
24
+ fixedParams: { action: operationId },
25
+ input: { type: "object", additionalProperties: false, properties, required },
26
+ ...(selectionControlIds === undefined ? {} : { selectionControlIds }),
27
+ };
28
+ }
29
+ /** Draft-only authoring. No permission, publish, activation or run control. */
30
+ export const automationDraftToolContract = {
31
+ version: 1,
32
+ operations: [
33
+ operation("create_draft", "Create a NEW empty automation draft. The receipt provides its exact automation ID, root sequence ID and revision for subsequent edits. To continue an existing draft, use list_drafts and read_draft instead.", { title: text(160) }, ["title"]),
34
+ operation("list_drafts", "Find existing automation drafts by title and exact ID without opening or changing them. Returns up to 50 compact summaries; pass nextOffset as offset for another page, then read_draft by exact ID before editing.", { offset: { type: "integer", minimum: 0, maximum: 2_147_483_647 } }, [], "read_only"),
35
+ operation("read_draft", "Read the current draft by exact automation ID, including node IDs, revision and the full operationRefs inventory. preparation declares the per-read limit and whether a smaller selection is required for prepare_draft. Builder writes already return the exact saved draft; read when state is unknown or after a revision conflict.", { automationId: id }, ["automationId"], "read_only", ["automationId"]),
36
+ ...automationAuthoringCatalogOperations,
37
+ { ...operation("catalog", "List the first compact page of tools available to the FUTURE automation workflow, plus models and saved agents. This is not the Studio editing API. Follow nextOffset with browse_catalog view=index; get exact inputs with view=operation. Discovery never executes workflow steps or grants permission.", { automationId: id }, ["automationId"], "read_only", ["automationId"]),
38
+ fixedParams: { action: "catalog", projection: "index" } },
39
+ operation("validate_draft", "Check the current draft for publication issues without publishing or running it.", { automationId: id }, ["automationId"], "read_only", ["automationId"]),
40
+ operation("set_details", "Set the draft title, objective or working directory. The working directory must be an absolute path on the Runtime host; omit it to keep the current setting, or send an empty string to use the configured default.", { ...common, title: optionalText(160), objective: optionalText(), workingDirectory: optionalText(1_024) }, ["automationId", "expectedRevision"]),
41
+ operation("set_trigger_manual", "Use a manual trigger for this draft.", common, ["automationId", "expectedRevision"], "mutating", ["automationId", "expectedRevision"]),
42
+ operation("set_trigger_schedule", "Set a schedule trigger. scheduleJson is only the scheduler schedule object, not a whole automation definition.", { ...common, scheduleJson: text(2_048) }, ["automationId", "expectedRevision", "scheduleJson"]),
43
+ operation("set_trigger_folder", "Set a folder trigger and its scan cadence. Configure source separately.", { ...common, checkEveryMs: { type: "integer", minimum: 1_000, maximum: 31_536_000_000 }, minimumEligibleFiles: { type: "integer", minimum: 1, maximum: 100 } }, ["automationId", "expectedRevision", "checkEveryMs", "minimumEligibleFiles"]),
44
+ operation("set_folder_source", "Set the runtime-accessible folder and exclusions. New source IDs are generated by the draft owner. Exclude output and archive paths from collection.", { ...common, path: text(1_024), mode: choice("per_file", "batch"), recursive: { type: "boolean" }, includeExisting: { type: "boolean" }, maxBatchFiles: { type: "integer", minimum: 1, maximum: 100 }, includePatterns: { type: "array", items: text(256), minItems: 0, maxItems: 64 }, excludePatterns: { type: "array", items: text(256), minItems: 0, maxItems: 64 } }, ["automationId", "expectedRevision", "path", "mode", "recursive", "includeExisting", "maxBatchFiles"]),
45
+ operation("remove_folder_source", "Remove the optional folder source.", common, ["automationId", "expectedRevision"]),
46
+ operation("set_run_inputs", "Set named static run inputs using a bounded JSON object, not a whole automation definition.", { ...common, inputsJson: text() }, ["automationId", "expectedRevision", "inputsJson"]),
47
+ operation("set_limits", "Set only supplied positive run limits; omitted limits keep their current values.", { ...common, maxConcurrentNodes: revision, maxModelCallsPerRun: revision, maxToolCallsPerRun: revision, maxRunDurationMs: revision, maxRunsPerDay: revision, maxStoredArtifactBytes: revision, stopReportDeadlineMs: revision }, ["automationId", "expectedRevision"]),
48
+ operation("add_agent", "Add an agent at the exact position. Placement does not pass earlier outputs; use the returned node ID with bind_step_result to connect each needed earlier result.", { ...common, parentSequenceId: id, index, title: optionalText(160), modelProfileId: optionalText(128), agentMode: choice("fast", "reasoning", "deep"), roleInstructions: optionalText(), prompt: optionalText(), onFailure: choice("stop", "skip") }, ["automationId", "expectedRevision", "parentSequenceId", "index", "title", "modelProfileId", "agentMode", "roleInstructions", "prompt", "onFailure"]),
49
+ operation("add_saved_agent", "Add an exact saved-agent revision as a draft step. It does not inherit an automation grant.", { ...common, parentSequenceId: id, index, agentId: id, agentRevision: revision }, ["automationId", "expectedRevision", "parentSequenceId", "index", "agentId", "agentRevision"]),
50
+ operation("add_tool", "Add a tool step by exact catalog operation reference. Set each input with set_step_literal or bind_step_result; advanced bindings use set_tool_controls.", { ...common, parentSequenceId: id, index, title: optionalText(160), toolName: text(64), operationId: text(64), contractVersion: revision, onFailure: choice("stop", "skip") }, ["automationId", "expectedRevision", "parentSequenceId", "index", "title", "toolName", "operationId", "contractVersion", "onFailure"]),
51
+ operation("edit_agent", "Edit selected agent fields without rewriting its other configuration.", { ...node, modelProfileId: optionalText(128), agentMode: choice("fast", "reasoning", "deep"), roleInstructions: optionalText(), prompt: optionalText() }, ["automationId", "expectedRevision", "nodeId"]),
52
+ operation("set_step_policy", "Set a step's title or failure behavior; skip continues after a failed step, stop ends the run.", { ...node, title: optionalText(160), onFailure: choice("stop", "skip") }, ["automationId", "expectedRevision", "nodeId"]),
53
+ ...automationAuthoringInputOperations,
54
+ operation("set_agent_inputs", "Advanced: replace all named agent inputs with canonical bindings JSON. Prefer bind_step_result for one earlier result. Example: {\"source\":{\"kind\":\"node_result\",\"nodeId\":\"<id>\",\"select\":\"text\"}}. Unbound outputs are not passed.", { ...node, bindingsJson: text() }, ["automationId", "expectedRevision", "nodeId", "bindingsJson"]),
55
+ operation("set_agent_tools", "Advanced: replace all selected operations with a bounded JSON array of operation/usage objects. Prefer select_agent_tool for one operation. This does not grant any operation.", { ...node, toolsJson: text() }, ["automationId", "expectedRevision", "nodeId", "toolsJson"]),
56
+ operation("set_agent_result", "Set one agent's text or structured JSON result declaration using a bounded JSON fragment.", { ...node, resultJson: text() }, ["automationId", "expectedRevision", "nodeId", "resultJson"]),
57
+ operation("set_agent_acceptance", "Set one agent's bounded acceptance checks as a JSON array; use [] to clear checks.", { ...node, acceptanceJson: text() }, ["automationId", "expectedRevision", "nodeId", "acceptanceJson"]),
58
+ operation("set_tool_controls", "Replace this tool step's named inputs. An earlier result uses {\"kind\":\"node_result\",\"nodeId\":\"<prior-id>\",\"select\":\"text\"}. For a new output file per run, bind its path to {\"kind\":\"run_file\",\"fileName\":\"report.md\"}; this resolves inside the working directory under a unique run folder.", { ...node, bindingsJson: text() }, ["automationId", "expectedRevision", "nodeId", "bindingsJson"]),
59
+ operation("set_tool_payload", "Bind this tool step's payload to one ValueBinding. To pass an earlier result, use {\"kind\":\"node_result\",\"nodeId\":\"<prior-id>\",\"select\":\"text\"}.", { ...node, payloadJson: text() }, ["automationId", "expectedRevision", "nodeId", "payloadJson"]),
60
+ operation("remove_step", "Remove one step by its exact node ID.", node, ["automationId", "expectedRevision", "nodeId"]),
61
+ operation("move_step", "Move one step to an exact sequence and position.", { ...node, parentSequenceId: id, index }, ["automationId", "expectedRevision", "nodeId", "parentSequenceId", "index"]),
62
+ operation("parallel_steps", "Fork adjacent executable sibling steps into parallel branches that rejoin before the following step. Pass 2–8 exact node IDs.", { ...common, nodeIds: { type: "array", items: id, minItems: 2, maxItems: 8 } }, ["automationId", "expectedRevision", "nodeIds"]),
63
+ operation("save_agent", "Save one existing draft agent as a reusable versioned template. It copies its configured role and tools, without bound run inputs, grants or run history.", { ...node, agentId: id, expectedAgentRevision: revision }, ["automationId", "expectedRevision", "nodeId"]),
64
+ ],
65
+ };
@@ -0,0 +1,4 @@
1
+ import type { ToolModuleDeclaration } from "../../../capabilities/tool-types.js";
2
+ import type { AutomationService } from "../../automations/service.js";
3
+ /** The caller injects the single environment service after tool registry construction. */
4
+ export declare function createAutomationDraftToolModule(getService: () => AutomationService, ready: () => Promise<void>): ToolModuleDeclaration;
@@ -0,0 +1,286 @@
1
+ import { Buffer } from "node:buffer";
2
+ import { AUTOMATION_TOOL_EVENT_PRESENTATION } from "./event-presentation.js";
3
+ import { automationDraftPreparationReceipt } from "./draft-operation-refs.js";
4
+ import { AutomationDraftReceiptCapacityError, prepareAutomationDraftReceipt } from "./draft-receipt-admission.js";
5
+ import { readAutomationDraftIndex } from "./draft-index.js";
6
+ import { automationModelToolContract } from "./model-tool-contract.js";
7
+ import { readAutomationAuthoringPreparation } from "./authoring-preparation.js";
8
+ import { automationAuthoringCatalogScope, readAutomationAuthoringCatalog, readAutomationAuthoringCatalogIndex } from "./authoring-catalog.js";
9
+ import { AUTOMATION_AUTHORING_REFERENCE } from "../automation-builder/authoring-reference.js";
10
+ import { executeAutomationAuthoringInput, isAutomationAuthoringInputAction, } from "./authoring-inputs.js";
11
+ function requiredText(params, key) {
12
+ const value = params[key];
13
+ if (typeof value !== "string" || !value.trim())
14
+ throw new Error(`automation_${key}_required`);
15
+ return value.trim();
16
+ }
17
+ function requiredInteger(params, key, minimum = 0) {
18
+ const value = params[key];
19
+ if (!Number.isSafeInteger(value) || Number(value) < minimum)
20
+ throw new Error(`automation_${key}_invalid`);
21
+ return Number(value);
22
+ }
23
+ function jsonFragment(params, key) {
24
+ const source = requiredText(params, key);
25
+ if (Buffer.byteLength(source, "utf8") > 4_096)
26
+ throw new Error("automation_graph_invalid");
27
+ try {
28
+ return JSON.parse(source);
29
+ }
30
+ catch {
31
+ throw new Error("automation_graph_invalid");
32
+ }
33
+ }
34
+ function jsonObject(params, key) {
35
+ const value = jsonFragment(params, key);
36
+ if (!value || typeof value !== "object" || Array.isArray(value))
37
+ throw new Error("automation_graph_invalid");
38
+ return value;
39
+ }
40
+ function jsonArray(params, key) {
41
+ const value = jsonFragment(params, key);
42
+ if (!Array.isArray(value))
43
+ throw new Error("automation_graph_invalid");
44
+ return value;
45
+ }
46
+ function supplied(params, keys) {
47
+ const patch = Object.fromEntries(keys
48
+ .filter((key) => params[key] !== undefined)
49
+ .map((key) => [key, params[key]]));
50
+ if (Object.keys(patch).length === 0)
51
+ throw new Error("automation_graph_invalid");
52
+ return patch;
53
+ }
54
+ function nodeIds(node) {
55
+ if (node.kind === "sequence")
56
+ return [node.id, ...node.children.flatMap(nodeIds)];
57
+ if (node.kind === "parallel")
58
+ return [node.id, ...node.branches.flatMap(nodeIds)];
59
+ return [node.id];
60
+ }
61
+ function changedIds(before, after) {
62
+ const previous = new Set(nodeIds(before.body));
63
+ return nodeIds(after.body).filter((id) => !previous.has(id));
64
+ }
65
+ async function mutate(service, params, mutation) {
66
+ const automationId = requiredText(params, "automationId");
67
+ const expectedRevision = requiredInteger(params, "expectedRevision", 1);
68
+ const before = await service.getDraft(automationId);
69
+ if (!before)
70
+ throw new Error("automation_not_found");
71
+ const next = await service.updateDraft(automationId, expectedRevision, mutation);
72
+ return {
73
+ automationId,
74
+ revision: next.revision,
75
+ newNodeIds: changedIds(before.definition, next.definition),
76
+ ...(next.definition.source ? { sourceId: next.definition.source.sourceId } : {}),
77
+ };
78
+ }
79
+ async function execute(service, params) {
80
+ const action = requiredText(params, "action");
81
+ if (action === "create_draft") {
82
+ const draft = await service.create(requiredText(params, "title"));
83
+ return { automationId: draft.automationId, revision: draft.revision,
84
+ rootSequenceId: draft.definition.body.id };
85
+ }
86
+ if (action === "list_drafts")
87
+ return readAutomationDraftIndex(service, params.offset === undefined
88
+ ? 0 : params.offset);
89
+ if (action === "browse_catalog")
90
+ return readAutomationAuthoringCatalog(service, params);
91
+ if (action === "prepare_draft")
92
+ return readAutomationAuthoringPreparation(service, params);
93
+ const automationId = requiredText(params, "automationId");
94
+ if (isAutomationAuthoringInputAction(action))
95
+ return executeAutomationAuthoringInput(service, params);
96
+ if (action === "read_draft") {
97
+ const draft = await service.getDraft(automationId);
98
+ if (!draft)
99
+ throw new Error("automation_not_found");
100
+ return { draft, ...automationDraftPreparationReceipt(draft.definition) };
101
+ }
102
+ const isCatalogIndexRequest = action === "catalog" && params.projection === "index";
103
+ if (isCatalogIndexRequest)
104
+ return readAutomationAuthoringCatalogIndex(service, automationId, 0);
105
+ const hasUnsupportedCatalogProjection = action === "catalog" && params.projection !== undefined;
106
+ if (hasUnsupportedCatalogProjection)
107
+ throw new Error("automation_catalog_projection_invalid");
108
+ if (action === "catalog") {
109
+ const catalog = await service.catalog(automationId);
110
+ return { kind: "automation_authoring_catalog_v1", grantsPermissions: false,
111
+ catalogScope: automationAuthoringCatalogScope(automationId),
112
+ permissions: AUTOMATION_AUTHORING_REFERENCE.permissions,
113
+ operations: catalog.grantableOperations.map(({ fixedParams: _fixedParams, ...operation }) => operation),
114
+ grantedOperations: catalog.operations.map(({ toolName, operationId, contractVersion }) => ({ toolName, operationId, contractVersion })),
115
+ models: catalog.models,
116
+ savedAgents: catalog.savedAgents.map((agent) => ({
117
+ agentId: agent.id, revision: agent.revision, title: agent.title,
118
+ modelProfileId: agent.modelProfileId,
119
+ })) };
120
+ }
121
+ if (action === "validate_draft")
122
+ return { issues: await service.validate(automationId) };
123
+ if (action === "save_agent") {
124
+ const saved = await service.saveAgentFromDraft({
125
+ automationId,
126
+ nodeId: requiredText(params, "nodeId"),
127
+ expectedDraftRevision: requiredInteger(params, "expectedRevision", 1),
128
+ ...(params.agentId !== undefined ? { agentId: requiredText(params, "agentId") } : {}),
129
+ ...(params.expectedAgentRevision !== undefined
130
+ ? { expectedAgentRevision: requiredInteger(params, "expectedAgentRevision", 1) }
131
+ : {}),
132
+ });
133
+ return { agentId: saved.agentId, revision: saved.revision, title: saved.agent.title };
134
+ }
135
+ if (action === "set_details") {
136
+ const patch = supplied(params, ["title", "objective", "workingDirectory"]);
137
+ if (patch.workingDirectory === "")
138
+ patch.workingDirectory = null;
139
+ return mutate(service, params, { kind: "update_definition", patch });
140
+ }
141
+ if (action === "set_trigger_manual")
142
+ return mutate(service, params, { kind: "update_definition", patch: { trigger: { kind: "manual" } } });
143
+ if (action === "set_trigger_schedule")
144
+ return mutate(service, params, { kind: "update_definition", patch: {
145
+ trigger: { kind: "schedule", schedule: jsonObject(params, "scheduleJson") },
146
+ } });
147
+ if (action === "set_trigger_folder")
148
+ return mutate(service, params, { kind: "update_definition", patch: {
149
+ trigger: { kind: "folder",
150
+ checkEveryMs: requiredInteger(params, "checkEveryMs", 1),
151
+ minimumEligibleFiles: requiredInteger(params, "minimumEligibleFiles", 1) },
152
+ } });
153
+ if (action === "set_folder_source") {
154
+ const draft = await service.getDraft(automationId);
155
+ if (!draft)
156
+ throw new Error("automation_not_found");
157
+ return mutate(service, params, { kind: "update_definition", patch: {
158
+ source: {
159
+ sourceId: draft.definition.source?.sourceId ?? "",
160
+ location: { kind: "runtime_path", path: requiredText(params, "path") },
161
+ mode: requiredText(params, "mode"),
162
+ recursive: params.recursive,
163
+ includeExisting: params.includeExisting,
164
+ maxBatchFiles: requiredInteger(params, "maxBatchFiles", 1),
165
+ includePatterns: params.includePatterns ?? [],
166
+ excludePatterns: params.excludePatterns ?? [],
167
+ },
168
+ } });
169
+ }
170
+ if (action === "remove_folder_source")
171
+ return mutate(service, params, { kind: "update_definition", patch: { source: null } });
172
+ if (action === "set_run_inputs")
173
+ return mutate(service, params, { kind: "update_definition", patch: { inputs: jsonObject(params, "inputsJson") } });
174
+ if (action === "set_limits") {
175
+ const draft = await service.getDraft(automationId);
176
+ if (!draft)
177
+ throw new Error("automation_not_found");
178
+ const patch = supplied(params, ["maxConcurrentNodes", "maxModelCallsPerRun",
179
+ "maxToolCallsPerRun", "maxRunDurationMs", "maxRunsPerDay",
180
+ "maxStoredArtifactBytes", "stopReportDeadlineMs"]);
181
+ return mutate(service, params, { kind: "update_definition", patch: {
182
+ limits: { ...draft.definition.limits, ...patch },
183
+ } });
184
+ }
185
+ if (action === "add_agent")
186
+ return mutate(service, params, { kind: "add_node",
187
+ parentSequenceId: requiredText(params, "parentSequenceId"),
188
+ index: requiredInteger(params, "index"), nodeWithoutId: {
189
+ kind: "agent", title: params.title, onFailure: params.onFailure,
190
+ modelProfileId: params.modelProfileId, agentMode: params.agentMode,
191
+ roleInstructions: params.roleInstructions, prompt: params.prompt,
192
+ inputs: {}, tools: [], result: { kind: "text" },
193
+ } });
194
+ if (action === "add_saved_agent") {
195
+ const agentId = requiredText(params, "agentId");
196
+ const agentRevision = requiredInteger(params, "agentRevision", 1);
197
+ const saved = await service.getSavedAgent(agentId, agentRevision);
198
+ if (!saved)
199
+ throw new Error("automation_saved_agent_not_found");
200
+ const { id: _id, ...configuration } = saved.agent;
201
+ return mutate(service, params, { kind: "add_node",
202
+ parentSequenceId: requiredText(params, "parentSequenceId"),
203
+ index: requiredInteger(params, "index"), nodeWithoutId: {
204
+ ...configuration, savedAgentOrigin: { agentId, revision: agentRevision },
205
+ } });
206
+ }
207
+ if (action === "add_tool")
208
+ return mutate(service, params, { kind: "add_node",
209
+ parentSequenceId: requiredText(params, "parentSequenceId"),
210
+ index: requiredInteger(params, "index"), nodeWithoutId: {
211
+ kind: "tool", title: params.title, onFailure: params.onFailure,
212
+ operation: { toolName: params.toolName, operationId: params.operationId,
213
+ contractVersion: params.contractVersion }, controls: {},
214
+ } });
215
+ const nodeId = requiredText(params, "nodeId");
216
+ if (action === "edit_agent")
217
+ return mutate(service, params, { kind: "update_node", nodeId,
218
+ patch: supplied(params, ["modelProfileId", "agentMode", "roleInstructions", "prompt"]) });
219
+ if (action === "set_step_policy")
220
+ return mutate(service, params, { kind: "update_node", nodeId,
221
+ patch: supplied(params, ["title", "onFailure"]) });
222
+ if (action === "set_agent_inputs")
223
+ return mutate(service, params, { kind: "update_node", nodeId,
224
+ patch: { inputs: jsonObject(params, "bindingsJson") } });
225
+ if (action === "set_agent_tools")
226
+ return mutate(service, params, { kind: "update_node", nodeId,
227
+ patch: { tools: jsonArray(params, "toolsJson") } });
228
+ if (action === "set_agent_result")
229
+ return mutate(service, params, { kind: "update_node", nodeId,
230
+ patch: { result: jsonObject(params, "resultJson") } });
231
+ if (action === "set_agent_acceptance")
232
+ return mutate(service, params, { kind: "update_node", nodeId,
233
+ patch: { acceptance: jsonArray(params, "acceptanceJson") } });
234
+ if (action === "set_tool_controls")
235
+ return mutate(service, params, { kind: "update_node", nodeId,
236
+ patch: { controls: jsonObject(params, "bindingsJson") } });
237
+ if (action === "set_tool_payload")
238
+ return mutate(service, params, { kind: "update_node", nodeId,
239
+ patch: { payload: jsonObject(params, "payloadJson") } });
240
+ if (action === "remove_step")
241
+ return mutate(service, params, { kind: "remove_node", nodeId });
242
+ if (action === "move_step")
243
+ return mutate(service, params, { kind: "move_node", nodeId,
244
+ parentSequenceId: requiredText(params, "parentSequenceId"),
245
+ index: requiredInteger(params, "index") });
246
+ if (action === "parallel_steps") {
247
+ if (!Array.isArray(params.nodeIds) || !params.nodeIds.every((id) => typeof id === "string"))
248
+ throw new Error("automation_graph_invalid");
249
+ return mutate(service, params, { kind: "wrap_parallel", nodeIds: params.nodeIds });
250
+ }
251
+ throw new Error("automation_action_unknown");
252
+ }
253
+ /** The caller injects the single environment service after tool registry construction. */
254
+ export function createAutomationDraftToolModule(getService, ready) {
255
+ return {
256
+ definition: {
257
+ name: "automations",
258
+ eventPresentation: AUTOMATION_TOOL_EVENT_PRESENTATION,
259
+ description: "Inspect and make targeted edits to ABot Studio drafts. For a complete connected workflow or several related edits, prefer automation_builder create_automation_draft or apply_automation_draft_changes. Catalog discovery lists tools for the FUTURE workflow, not Studio editing commands; fetch operation detail only when needed. Successful edits return exact revision and newNodeIds for reuse; read_draft when state is unknown or after a revision conflict. Draft authoring only: the user grants permissions, publishes and runs automations.",
260
+ routingCapability: "semantic_mutation",
261
+ catalogGroups: ["automations"],
262
+ developmentRoles: ["auxiliary"],
263
+ controlsRefinement: "mechanical_when_complete",
264
+ },
265
+ normalInvocation: automationModelToolContract,
266
+ async implementation(params, context) {
267
+ try {
268
+ await ready();
269
+ context?.abortSignal?.throwIfAborted();
270
+ const result = await execute(getService(), params);
271
+ if (params.action === "read_draft") {
272
+ const operation = automationModelToolContract.operations.find(({ operationId }) => operationId === "read_draft");
273
+ return prepareAutomationDraftReceipt(result, { tool: "automations", operation, params, mutationEvidence: false });
274
+ }
275
+ const isDraftMutation = !["list_drafts", "read_draft", "catalog", "browse_catalog", "prepare_draft", "validate_draft"].includes(String(params.action));
276
+ return { ok: true, output: JSON.stringify(result), producedNewInformation: true,
277
+ data: { mutationEvidence: isDraftMutation, currentStateEvidence: true } };
278
+ }
279
+ catch (error) {
280
+ const message = error instanceof Error ? error.message : String(error);
281
+ const output = error instanceof AutomationDraftReceiptCapacityError ? JSON.stringify(error.details) : message;
282
+ return { ok: false, output, error: message, producedNewInformation: false };
283
+ }
284
+ },
285
+ };
286
+ }
@@ -0,0 +1,6 @@
1
+ /** A relative component cannot normalize into a foreign drive namespace. */
2
+ export declare function isRuntimePathNamespaceCompatible(value: string, platform?: NodeJS.Platform): boolean;
3
+ /** Preserve a native Windows UNC root while normalizing scoped tool paths. */
4
+ export declare function normalizeRuntimePathForScope(value: string, platform?: NodeJS.Platform): string;
5
+ /** A different Windows drive or share produces an absolute relative result. */
6
+ export declare function isRuntimePathWithinRoot(target: string, root: string, platform?: NodeJS.Platform): boolean;
@@ -0,0 +1,48 @@
1
+ import { posix, win32 } from "node:path";
2
+ function logicalSeparators(value) {
3
+ return value.replaceAll("\\", "/");
4
+ }
5
+ function hasDrivePrefix(value) {
6
+ return /^[A-Za-z]:/u.test(value);
7
+ }
8
+ function hasQualifiedDrive(value) {
9
+ return /^[A-Za-z]:\//u.test(value);
10
+ }
11
+ function hasQualifiedNetworkRoot(value) {
12
+ if (value.startsWith("//?/") || value.startsWith("//./"))
13
+ return false;
14
+ return /^\/\/[^/]+\/[^/]+(?:\/|$)/u.test(value);
15
+ }
16
+ function hasBackslashNetworkOrDeviceRoot(value) {
17
+ const prefix = value.slice(0, 2);
18
+ const networkRoot = /^[\\/]{2}$/u.test(prefix) && prefix.includes("\\");
19
+ return networkRoot || value.startsWith("\\??\\");
20
+ }
21
+ /** A relative component cannot normalize into a foreign drive namespace. */
22
+ export function isRuntimePathNamespaceCompatible(value, platform = process.platform) {
23
+ const logical = logicalSeparators(value);
24
+ if (platform !== "win32" && hasBackslashNetworkOrDeviceRoot(value))
25
+ return false;
26
+ if (hasDrivePrefix(logical))
27
+ return platform === "win32" && hasQualifiedDrive(logical);
28
+ if (platform === "win32" && logical.startsWith("/"))
29
+ return hasQualifiedNetworkRoot(logical);
30
+ // Use the standard path grammar before checking a relative drive prefix.
31
+ return !hasDrivePrefix(posix.normalize(logical));
32
+ }
33
+ /** Preserve a native Windows UNC root while normalizing scoped tool paths. */
34
+ export function normalizeRuntimePathForScope(value, platform = process.platform) {
35
+ if (platform === "win32" && win32.isAbsolute(value)) {
36
+ return logicalSeparators(win32.normalize(value));
37
+ }
38
+ return posix.normalize(logicalSeparators(value));
39
+ }
40
+ /** A different Windows drive or share produces an absolute relative result. */
41
+ export function isRuntimePathWithinRoot(target, root, platform = process.platform) {
42
+ const paths = platform === "win32" ? win32 : posix;
43
+ const relative = paths.relative(root, target);
44
+ if (paths.isAbsolute(relative))
45
+ return false;
46
+ return (relative === "" ||
47
+ (relative !== ".." && !relative.startsWith(`..${paths.sep}`)));
48
+ }