@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,155 @@
1
+ import { Buffer } from "node:buffer";
2
+ import { AUTOMATION_DRAFT_BATCH_LIMITS, AutomationDraftBatchError, parseAutomationDraftBatch } from "../../automations/draft-batch.js";
3
+ import { AUTOMATION_GRAPH_LIMITS } from "../../automations/limits.js";
4
+ export const AUTOMATION_CREATION_RECIPE_LIMITS = Object.freeze({
5
+ executableNodes: Math.min(AUTOMATION_GRAPH_LIMITS.executableNodes, AUTOMATION_DRAFT_BATCH_LIMITS.commands),
6
+ compiledCommands: AUTOMATION_DRAFT_BATCH_LIMITS.commands,
7
+ });
8
+ /** Dispatch by an owned field, including malformed recipes that must be rejected by this compiler. */
9
+ export function hasAutomationCreationRecipe(value) {
10
+ if (value === null || typeof value !== "object" || Array.isArray(value))
11
+ return false;
12
+ const prototype = Object.getPrototypeOf(value);
13
+ const hasPlainRecordPrototype = prototype === Object.prototype || prototype === null;
14
+ if (!hasPlainRecordPrototype)
15
+ return false;
16
+ return Object.hasOwn(value, "steps");
17
+ }
18
+ function requireRecipeRecord(value, path) {
19
+ const isRecord = value !== null && typeof value === "object" && !Array.isArray(value);
20
+ if (!isRecord)
21
+ throw new AutomationDraftBatchError("automation_recipe_invalid", path);
22
+ return value;
23
+ }
24
+ function requireRecipeFields(record, allowed, path) {
25
+ const unknown = Object.keys(record).find((key) => !allowed.includes(key));
26
+ if (unknown !== undefined)
27
+ throw new AutomationDraftBatchError("automation_recipe_field_unknown", `${path}.${unknown}`);
28
+ }
29
+ function snapshotRecipe(value) {
30
+ let serialized;
31
+ try {
32
+ serialized = JSON.stringify(value);
33
+ }
34
+ catch {
35
+ throw new AutomationDraftBatchError("automation_recipe_invalid", "recipe");
36
+ }
37
+ if (serialized === undefined)
38
+ throw new AutomationDraftBatchError("automation_recipe_invalid", "recipe");
39
+ if (Buffer.byteLength(serialized, "utf8") > AUTOMATION_DRAFT_BATCH_LIMITS.bytes)
40
+ throw new AutomationDraftBatchError("automation_batch_too_large", "recipe");
41
+ return requireRecipeRecord(JSON.parse(serialized), "recipe");
42
+ }
43
+ function requireRecipeKey(value, path, state) {
44
+ const hasAliasSyntax = typeof value === "string" && /^[A-Za-z][A-Za-z0-9_-]{0,47}$/u.test(value);
45
+ if (!hasAliasSyntax)
46
+ throw new AutomationDraftBatchError("automation_batch_alias_invalid", path);
47
+ if (value === "root")
48
+ throw new AutomationDraftBatchError("automation_batch_alias_invalid", path);
49
+ if (state.keys.has(value))
50
+ throw new AutomationDraftBatchError("automation_batch_alias_duplicate", path);
51
+ state.keys.add(value);
52
+ return value;
53
+ }
54
+ function leafWithDefaults(input, path) {
55
+ const { key: _key, ...node } = input;
56
+ if (input.kind === "tool")
57
+ return { onFailure: "stop", controls: {}, ...node };
58
+ if (input.kind !== "agent")
59
+ throw new AutomationDraftBatchError("automation_recipe_step_kind_invalid", `${path}.kind`);
60
+ return { onFailure: "stop", agentMode: "fast", roleInstructions: "", inputs: {}, tools: [],
61
+ result: { kind: "text" }, ...node };
62
+ }
63
+ function parseRecipeSequence(value, path, depth, state) {
64
+ if (depth > AUTOMATION_GRAPH_LIMITS.nestingDepth)
65
+ throw new AutomationDraftBatchError("automation_graph_too_deep", path);
66
+ if (!Array.isArray(value))
67
+ throw new AutomationDraftBatchError("automation_recipe_steps_invalid", path);
68
+ if (value.length > AUTOMATION_CREATION_RECIPE_LIMITS.executableNodes)
69
+ throw new AutomationDraftBatchError("automation_recipe_capacity_exceeded", path);
70
+ return value.map((step, index) => parseRecipeStep(step, `${path}.${index}`, depth, state));
71
+ }
72
+ function parseRecipeStep(value, path, depth, state) {
73
+ const input = requireRecipeRecord(value, path);
74
+ const key = requireRecipeKey(input.key, `${path}.key`, state);
75
+ if (input.kind !== "parallel") {
76
+ state.leaves += 1;
77
+ if (state.leaves > AUTOMATION_CREATION_RECIPE_LIMITS.executableNodes)
78
+ throw new AutomationDraftBatchError("automation_recipe_capacity_exceeded", path);
79
+ return { key, node: leafWithDefaults(input, path) };
80
+ }
81
+ requireRecipeFields(input, ["key", "kind", "branches"], path);
82
+ if (!Array.isArray(input.branches))
83
+ throw new AutomationDraftBatchError("automation_parallel_invalid", `${path}.branches`);
84
+ const branchCountAllowed = input.branches.length >= 2 && input.branches.length <= AUTOMATION_GRAPH_LIMITS.branchesPerGroup;
85
+ if (!branchCountAllowed)
86
+ throw new AutomationDraftBatchError("automation_parallel_invalid", `${path}.branches`);
87
+ const branches = input.branches.map((value, index) => {
88
+ const branchPath = `${path}.branches.${index}`;
89
+ const branch = parseRecipeSequence(value, branchPath, depth + 2, state);
90
+ if (branch.length === 0)
91
+ throw new AutomationDraftBatchError("automation_parallel_invalid", branchPath);
92
+ return branch;
93
+ });
94
+ return { key, branches };
95
+ }
96
+ function isRecipeParallel(step) {
97
+ return "branches" in step;
98
+ }
99
+ /** A real executable leaf seeds its branch; no placeholder node is ever generated. */
100
+ function firstRecipeLeaf(step) {
101
+ if (!isRecipeParallel(step))
102
+ return step;
103
+ return firstRecipeLeaf(step.branches[0][0]);
104
+ }
105
+ function emitRecipeLeaf(leaf, parent, index, commands) {
106
+ commands.push({ as: leaf.key, mutation: {
107
+ kind: "add_node", parentSequenceId: parent, index, nodeWithoutId: leaf.node,
108
+ } });
109
+ }
110
+ function emitRecipeParallel(step, parent, index, seeded, commands) {
111
+ const heads = step.branches.map((branch) => firstRecipeLeaf(branch[0]));
112
+ for (const [branchIndex, head] of heads.entries()) {
113
+ const headAlreadyPresent = seeded && branchIndex === 0;
114
+ if (headAlreadyPresent)
115
+ continue;
116
+ emitRecipeLeaf(head, parent, index + branchIndex, commands);
117
+ }
118
+ commands.push({ as: step.key, mutation: { kind: "wrap_parallel", nodeIds: heads.map(({ key }) => `$${key}`) } });
119
+ for (const [branchIndex, branch] of step.branches.entries())
120
+ emitRecipeSequence(branch, `$${step.key}.branch${branchIndex + 1}`, commands, heads[branchIndex].key);
121
+ }
122
+ function emitRecipeSequence(steps, parent, commands, seededHead) {
123
+ for (const [index, step] of steps.entries()) {
124
+ const headAlreadyPresent = index === 0 && seededHead !== undefined;
125
+ if (isRecipeParallel(step)) {
126
+ emitRecipeParallel(step, parent, index, headAlreadyPresent, commands);
127
+ continue;
128
+ }
129
+ if (headAlreadyPresent)
130
+ continue;
131
+ emitRecipeLeaf(step, parent, index, commands);
132
+ }
133
+ }
134
+ /** Compile explicit workflow structure into the existing atomic draft language. No persistence or semantic choices. */
135
+ export function compileAutomationCreationRecipe(value) {
136
+ const input = snapshotRecipe(value);
137
+ requireRecipeFields(input, ["version", "settings", "steps"], "recipe");
138
+ if (input.version !== 1)
139
+ throw new AutomationDraftBatchError("automation_batch_version_invalid", "recipe.version");
140
+ const state = { keys: new Set(), leaves: 0 };
141
+ const steps = parseRecipeSequence(input.steps, "recipe.steps", 0, state);
142
+ const commands = [];
143
+ if (Object.hasOwn(input, "settings")) {
144
+ const patch = requireRecipeRecord(input.settings, "recipe.settings");
145
+ if (Object.keys(patch).length > 0)
146
+ commands.push({ mutation: { kind: "update_definition", patch } });
147
+ }
148
+ // Every leaf and parallel group emits one command; nonempty settings emit one more.
149
+ const compiledCommandCount = state.keys.size + commands.length;
150
+ if (compiledCommandCount > AUTOMATION_CREATION_RECIPE_LIMITS.compiledCommands)
151
+ throw new AutomationDraftBatchError("automation_recipe_capacity_exceeded", "recipe.steps");
152
+ emitRecipeSequence(steps, "$root", commands);
153
+ // Canonical limits also apply after defaults and structural commands expand the recipe.
154
+ return parseAutomationDraftBatch({ version: 1, commands });
155
+ }
@@ -0,0 +1,6 @@
1
+ /** Complete grammar is supplied as bounded passive evidence by prepare_draft. */
2
+ export declare const AUTOMATION_BUILDER_PAYLOAD_INSTRUCTIONS = "Return only JSON following authoringReference from prepare_draft. Use version:1 with commands:[{as,mutation}] for existing drafts. Save all related changes together; new nodes omit id and use earlier aliases in bindings. Outputs never pass implicitly. Agent inputs and tool controls are binding maps; payload is a separate binding. Match exact operation schemas and model IDs. Choose each tool's documented output channel: text may be counts/status only; data without pointer passes the whole structured result when provided. Use data pointers only for known fields; agents need declared JSON output for data bindings. Inputs, limits, controls and selected tools replace their entire field. Never invent schedules or execute future steps.";
3
+ export declare const AUTOMATION_BUILDER_CREATE_SUMMARY = "Create the entire connected automation from settings and ordered steps in one write; Runtime generates IDs and positions. Discover with browse_catalog, then prepare_draft for exact schemas and the authoring reference for planJson. Returns revision 1, generated IDs and the exact saved draft for inspection; no empty draft or separate step edits are needed. Saves only a draft; the user grants permissions, publishes and runs it.";
4
+ export declare const AUTOMATION_BUILDER_APPLY_SUMMARY = "Save related edits atomically. Use the saved draft from read_draft or a builder receipt, with its revision as expectedRevision. operationRefs is the full inventory: select refs needed within preparation.operationRefLimit; use separate prepare_draft reads if needed. Returns the saved draft without another read. Invalid/stale plans save nothing. Single-field edits use this operation too. Users retain permission, publication and run control.";
5
+ /** Creation describes workflow content; the capability compiles mechanical mutation structure. */
6
+ export declare const AUTOMATION_BUILDER_CREATION_INSTRUCTIONS = "Return only JSON using {\"version\":1,\"settings\":{...},\"steps\":[{\"key\":\"first\",\"kind\":\"tool\"|\"agent\",...}]}. Follow authoringReference.createPlanExample and creationRules. settings is optional; steps are ordered with unique keys. Runtime generates IDs, parents, indices and mutation wrappers. Bind prior $key results explicitly. Tool steps need title and exact operation; agent steps need title, exact modelProfileId and prompt. Use documented defaults and tool schemas. Choose each operation's output channel: text may be a count/status summary; data without pointer passes its whole structured result when provided. Field pointers require known fields. Result and acceptance are sibling agent fields. A parallel step is {key,kind:parallel,branches:[stepArrays]}. Leave unspecified timing to the user. Save only an inactive draft; never execute future steps.";
@@ -0,0 +1,6 @@
1
+ /** Complete grammar is supplied as bounded passive evidence by prepare_draft. */
2
+ export const AUTOMATION_BUILDER_PAYLOAD_INSTRUCTIONS = "Return only JSON following authoringReference from prepare_draft. Use version:1 with commands:[{as,mutation}] for existing drafts. Save all related changes together; new nodes omit id and use earlier aliases in bindings. Outputs never pass implicitly. Agent inputs and tool controls are binding maps; payload is a separate binding. Match exact operation schemas and model IDs. Choose each tool's documented output channel: text may be counts/status only; data without pointer passes the whole structured result when provided. Use data pointers only for known fields; agents need declared JSON output for data bindings. Inputs, limits, controls and selected tools replace their entire field. Never invent schedules or execute future steps.";
3
+ export const AUTOMATION_BUILDER_CREATE_SUMMARY = "Create the entire connected automation from settings and ordered steps in one write; Runtime generates IDs and positions. Discover with browse_catalog, then prepare_draft for exact schemas and the authoring reference for planJson. Returns revision 1, generated IDs and the exact saved draft for inspection; no empty draft or separate step edits are needed. Saves only a draft; the user grants permissions, publishes and runs it.";
4
+ export const AUTOMATION_BUILDER_APPLY_SUMMARY = "Save related edits atomically. Use the saved draft from read_draft or a builder receipt, with its revision as expectedRevision. operationRefs is the full inventory: select refs needed within preparation.operationRefLimit; use separate prepare_draft reads if needed. Returns the saved draft without another read. Invalid/stale plans save nothing. Single-field edits use this operation too. Users retain permission, publication and run control.";
5
+ /** Creation describes workflow content; the capability compiles mechanical mutation structure. */
6
+ export const AUTOMATION_BUILDER_CREATION_INSTRUCTIONS = "Return only JSON using {\"version\":1,\"settings\":{...},\"steps\":[{\"key\":\"first\",\"kind\":\"tool\"|\"agent\",...}]}. Follow authoringReference.createPlanExample and creationRules. settings is optional; steps are ordered with unique keys. Runtime generates IDs, parents, indices and mutation wrappers. Bind prior $key results explicitly. Tool steps need title and exact operation; agent steps need title, exact modelProfileId and prompt. Use documented defaults and tool schemas. Choose each operation's output channel: text may be a count/status summary; data without pointer passes its whole structured result when provided. Field pointers require known fields. Result and acceptance are sibling agent fields. A parallel step is {key,kind:parallel,branches:[stepArrays]}. Leave unspecified timing to the user. Save only an inactive draft; never execute future steps.";
@@ -0,0 +1,3 @@
1
+ import type { ModelGatewayJsonSchemaFormat } from "../../../model-gateway/types.js";
2
+ /** Structural generation grammar. Canonical parsers own route exclusivity, references, bounds and graph semantics. */
3
+ export declare const AUTOMATION_BUILDER_PAYLOAD_FORMAT: ModelGatewayJsonSchemaFormat;
@@ -0,0 +1,105 @@
1
+ import { AUTOMATION_DRAFT_BATCH_LIMITS } from "../../automations/draft-batch.js";
2
+ import { AUTOMATION_GRAPH_LIMITS, DEFAULT_AUTOMATION_LIMITS } from "../../automations/limits.js";
3
+ import { AUTOMATION_CREATION_RECIPE_LIMITS } from "./creation-recipe.js";
4
+ function object(properties, optional = []) {
5
+ return { type: "object", properties, additionalProperties: false,
6
+ required: Object.keys(properties).filter((name) => !optional.includes(name)) };
7
+ }
8
+ function text(minLength = 0) {
9
+ return { type: "string", ...(minLength ? { minLength } : {}) };
10
+ }
11
+ function choices(...values) {
12
+ return { type: "string", enum: values };
13
+ }
14
+ function array(items, maxItems, minItems = 0) {
15
+ return { type: "array", items, maxItems, ...(minItems ? { minItems } : {}) };
16
+ }
17
+ function map(values, maxProperties = 64) {
18
+ return { type: "object", additionalProperties: values, maxProperties };
19
+ }
20
+ function nullable(value) {
21
+ return { anyOf: [value, { type: "null" }] };
22
+ }
23
+ const identifier = text(1);
24
+ const integer = { type: "integer", minimum: 1, maximum: Number.MAX_SAFE_INTEGER };
25
+ const index = { type: "integer", minimum: 0, maximum: AUTOMATION_GRAPH_LIMITS.executableNodes };
26
+ const operationReference = object({ toolName: text(1), operationId: text(1), contractVersion: integer });
27
+ const operation = { $ref: "#/$defs/operationReference" };
28
+ const valueBinding = { anyOf: [
29
+ object({ kind: choices("literal"), value: {} }),
30
+ object({ kind: choices("run_input"), input: text(1) }),
31
+ object({ kind: choices("run_file"), fileName: text(1) }),
32
+ object({ kind: choices("source_files") }),
33
+ object({ kind: choices("source_file"), index: { type: "integer", minimum: 0, maximum: 99 },
34
+ field: choices("snapshot_path", "original_path", "version") }),
35
+ object({ kind: choices("node_result"), nodeId: identifier, select: choices("text") }),
36
+ object({ kind: choices("node_result"), nodeId: identifier, select: choices("data"), pointer: text() }, ["pointer"]),
37
+ object({ kind: choices("branch_results"), parallelNodeId: identifier }),
38
+ ] };
39
+ const binding = { $ref: "#/$defs/valueBinding" };
40
+ // The descriptor map is JSON data whose exact flat-schema subset is checked by the graph owner.
41
+ // Keeping it opaque also avoids interpreting an output field named maxLength as a provider constraint.
42
+ const resultSchema = object({ type: choices("object"), additionalProperties: { type: "boolean", const: false },
43
+ properties: map({ type: "object", additionalProperties: true }, 16), required: array(text(1), 16) });
44
+ const result = { anyOf: [object({ kind: choices("text") }), object({ kind: choices("json"), schema: resultSchema })] };
45
+ const acceptance = array(object({ field: text(1), equals: { anyOf: [
46
+ { type: "string" }, { type: "number" }, { type: "boolean" },
47
+ ] } }), 64);
48
+ const selectedTools = array(object({ operation, usage: choices("available", "required") }), 64);
49
+ const agentTools = { $ref: "#/$defs/selectedTools" };
50
+ const savedOrigin = object({ agentId: text(1), revision: integer });
51
+ const sharedNode = { title: text(1), onFailure: choices("stop", "skip") };
52
+ const toolFields = { operation, controls: map(binding), payload: binding };
53
+ const agentFields = { modelProfileId: text(1), agentMode: choices("fast", "reasoning", "deep"),
54
+ roleInstructions: text(), prompt: text(), inputs: map(binding), tools: agentTools,
55
+ result, acceptance, savedAgentOrigin: savedOrigin };
56
+ const toolNode = object({ kind: choices("tool"), ...sharedNode, ...toolFields }, ["payload"]);
57
+ const agentNode = object({ kind: choices("agent"), ...sharedNode, ...agentFields }, ["acceptance", "savedAgentOrigin"]);
58
+ const editableNodeFields = { ...sharedNode, ...toolFields, ...agentFields, payload: nullable(binding) };
59
+ const nodePatch = object(editableNodeFields, Object.keys(editableNodeFields));
60
+ const schedule = { anyOf: [
61
+ object({ kind: choices("timer"), delayMs: integer }),
62
+ object({ kind: choices("once"), at: text(1) }),
63
+ object({ kind: choices("interval"), everyMs: integer, anchorAt: text(1) }, ["anchorAt"]),
64
+ object({ kind: choices("daily"), at: text(5) }),
65
+ object({ kind: choices("weekly"), at: text(5),
66
+ weekdays: array({ type: "integer", minimum: 0, maximum: 6 }, 7, 1) }),
67
+ object({ kind: choices("monthly"), at: text(5), dayOfMonth: { type: "integer", minimum: 1, maximum: 31 } }),
68
+ ] };
69
+ const trigger = { anyOf: [object({ kind: choices("manual") }), object({ kind: choices("schedule"), schedule }),
70
+ object({ kind: choices("folder"), checkEveryMs: integer,
71
+ minimumEligibleFiles: { type: "integer", minimum: 1, maximum: AUTOMATION_GRAPH_LIMITS.sourceFilesPerBatch } }),
72
+ ] };
73
+ const source = object({ sourceId: text(), location: object({ kind: choices("runtime_path"), path: text() }),
74
+ includePatterns: array(text(), 64), excludePatterns: array(text(), 64),
75
+ recursive: { type: "boolean" }, includeExisting: { type: "boolean" }, mode: choices("per_file", "batch"),
76
+ maxBatchFiles: { type: "integer", minimum: 1, maximum: AUTOMATION_GRAPH_LIMITS.sourceFilesPerBatch } });
77
+ const limits = object(Object.fromEntries(Object.keys(DEFAULT_AUTOMATION_LIMITS).map((name) => [name, integer])));
78
+ const definitionFields = { title: text(), objective: text(), workingDirectory: nullable(text()),
79
+ trigger, source: nullable(source), inputs: map({}), limits };
80
+ const definitionPatch = object(definitionFields, Object.keys(definitionFields));
81
+ const addNodeMutation = object({ kind: choices("add_node"), parentSequenceId: identifier, index,
82
+ nodeWithoutId: { anyOf: [toolNode, agentNode] } });
83
+ const wrapParallelMutation = object({ kind: choices("wrap_parallel"),
84
+ nodeIds: array(identifier, AUTOMATION_GRAPH_LIMITS.branchesPerGroup, 2) });
85
+ const command = { anyOf: [
86
+ object({ as: text(1), mutation: addNodeMutation }, ["as"]),
87
+ object({ mutation: object({ kind: choices("update_node"), nodeId: identifier, patch: nodePatch }) }),
88
+ object({ mutation: object({ kind: choices("update_definition"), patch: { $ref: "#/$defs/definitionPatch" } }) }),
89
+ object({ mutation: object({ kind: choices("remove_node"), nodeId: identifier }) }),
90
+ object({ mutation: object({ kind: choices("move_node"), nodeId: identifier, parentSequenceId: identifier, index }) }),
91
+ object({ as: text(1), mutation: wrapParallelMutation }, ["as"]),
92
+ ] };
93
+ const recipeStep = { anyOf: [
94
+ object({ key: text(1), kind: choices("tool"), ...sharedNode, ...toolFields }, ["onFailure", "controls", "payload"]),
95
+ object({ key: text(1), kind: choices("agent"), ...sharedNode, ...agentFields }, ["onFailure", "agentMode", "roleInstructions", "inputs", "tools", "result", "acceptance", "savedAgentOrigin"]),
96
+ object({ key: text(1), kind: choices("parallel"), branches: array(array({ $ref: "#/properties/steps/items" }, AUTOMATION_CREATION_RECIPE_LIMITS.executableNodes, 1), AUTOMATION_GRAPH_LIMITS.branchesPerGroup, 2) }),
97
+ ] };
98
+ const schema = { ...object({ version: { type: "integer", const: 1 },
99
+ commands: array(command, AUTOMATION_DRAFT_BATCH_LIMITS.commands, 1),
100
+ settings: { $ref: "#/$defs/definitionPatch" }, steps: array(recipeStep, AUTOMATION_CREATION_RECIPE_LIMITS.executableNodes),
101
+ }, ["commands", "settings", "steps"]), $defs: { valueBinding, definitionPatch, operationReference, selectedTools } };
102
+ /** Structural generation grammar. Canonical parsers own route exclusivity, references, bounds and graph semantics. */
103
+ export const AUTOMATION_BUILDER_PAYLOAD_FORMAT = Object.freeze({
104
+ type: "json_schema", name: "automation_draft_plan", strict: false, schema,
105
+ });
@@ -0,0 +1,65 @@
1
+ export declare const automationBuilderToolContract: {
2
+ readonly version: 1;
3
+ readonly operations: readonly [{
4
+ readonly operationId: "create_automation_draft";
5
+ readonly summary: "Create the entire connected automation from settings and ordered steps in one write; Runtime generates IDs and positions. Discover with browse_catalog, then prepare_draft for exact schemas and the authoring reference for planJson. Returns revision 1, generated IDs and the exact saved draft for inspection; no empty draft or separate step edits are needed. Saves only a draft; the user grants permissions, publishes and runs it.";
6
+ readonly effect: "mutating";
7
+ readonly approval: "request_policy";
8
+ readonly fixedParams: {
9
+ readonly action: "create_automation_draft";
10
+ };
11
+ readonly input: {
12
+ readonly type: "object";
13
+ readonly additionalProperties: false;
14
+ readonly properties: {
15
+ readonly title: {
16
+ readonly type: "string";
17
+ readonly minLength: 1;
18
+ readonly maxLength: 160;
19
+ };
20
+ };
21
+ readonly required: readonly ["title"];
22
+ };
23
+ readonly selectionControlIds: readonly ["title"];
24
+ readonly payload: {
25
+ readonly instructions: "Return only JSON using {\"version\":1,\"settings\":{...},\"steps\":[{\"key\":\"first\",\"kind\":\"tool\"|\"agent\",...}]}. Follow authoringReference.createPlanExample and creationRules. settings is optional; steps are ordered with unique keys. Runtime generates IDs, parents, indices and mutation wrappers. Bind prior $key results explicitly. Tool steps need title and exact operation; agent steps need title, exact modelProfileId and prompt. Use documented defaults and tool schemas. Choose each operation's output channel: text may be a count/status summary; data without pointer passes its whole structured result when provided. Field pointers require known fields. Result and acceptance are sibling agent fields. A parallel step is {key,kind:parallel,branches:[stepArrays]}. Leave unspecified timing to the user. Save only an inactive draft; never execute future steps.";
26
+ readonly kind: "raw_text";
27
+ readonly param: "planJson";
28
+ readonly minBytes: 2;
29
+ readonly maxBytes: number;
30
+ };
31
+ }, {
32
+ readonly operationId: "apply_automation_draft_changes";
33
+ readonly summary: "Save related edits atomically. Use the saved draft from read_draft or a builder receipt, with its revision as expectedRevision. operationRefs is the full inventory: select refs needed within preparation.operationRefLimit; use separate prepare_draft reads if needed. Returns the saved draft without another read. Invalid/stale plans save nothing. Single-field edits use this operation too. Users retain permission, publication and run control.";
34
+ readonly effect: "mutating";
35
+ readonly approval: "request_policy";
36
+ readonly fixedParams: {
37
+ readonly action: "apply_automation_draft_changes";
38
+ };
39
+ readonly input: {
40
+ readonly type: "object";
41
+ readonly additionalProperties: false;
42
+ readonly properties: {
43
+ readonly automationId: {
44
+ readonly type: "string";
45
+ readonly minLength: 1;
46
+ readonly maxLength: 128;
47
+ };
48
+ readonly expectedRevision: {
49
+ readonly type: "integer";
50
+ readonly minimum: 1;
51
+ readonly maximum: 2147483647;
52
+ };
53
+ };
54
+ readonly required: readonly ["automationId", "expectedRevision"];
55
+ };
56
+ readonly selectionControlIds: readonly ["automationId", "expectedRevision"];
57
+ readonly payload: {
58
+ readonly kind: "raw_text";
59
+ readonly param: "planJson";
60
+ readonly minBytes: 2;
61
+ readonly maxBytes: number;
62
+ readonly instructions: "Return only JSON following authoringReference from prepare_draft. Use version:1 with commands:[{as,mutation}] for existing drafts. Save all related changes together; new nodes omit id and use earlier aliases in bindings. Outputs never pass implicitly. Agent inputs and tool controls are binding maps; payload is a separate binding. Match exact operation schemas and model IDs. Choose each tool's documented output channel: text may be counts/status only; data without pointer passes the whole structured result when provided. Use data pointers only for known fields; agents need declared JSON output for data bindings. Inputs, limits, controls and selected tools replace their entire field. Never invent schedules or execute future steps.";
63
+ };
64
+ }];
65
+ };
@@ -0,0 +1,27 @@
1
+ import { AUTOMATION_DRAFT_BATCH_LIMITS } from "../../automations/draft-batch.js";
2
+ import { AUTOMATION_BUILDER_CREATION_INSTRUCTIONS, AUTOMATION_BUILDER_APPLY_SUMMARY, AUTOMATION_BUILDER_CREATE_SUMMARY, AUTOMATION_BUILDER_PAYLOAD_INSTRUCTIONS } from "./payload-instructions.js";
3
+ const payload = { kind: "raw_text", param: "planJson", minBytes: 2,
4
+ maxBytes: AUTOMATION_DRAFT_BATCH_LIMITS.bytes, instructions: AUTOMATION_BUILDER_PAYLOAD_INSTRUCTIONS };
5
+ export const automationBuilderToolContract = {
6
+ version: 1,
7
+ operations: [
8
+ {
9
+ operationId: "create_automation_draft",
10
+ summary: AUTOMATION_BUILDER_CREATE_SUMMARY,
11
+ effect: "mutating", approval: "request_policy", fixedParams: { action: "create_automation_draft" },
12
+ input: { type: "object", additionalProperties: false,
13
+ properties: { title: { type: "string", minLength: 1, maxLength: 160 } }, required: ["title"] },
14
+ selectionControlIds: ["title"], payload: { ...payload, instructions: AUTOMATION_BUILDER_CREATION_INSTRUCTIONS },
15
+ },
16
+ {
17
+ operationId: "apply_automation_draft_changes",
18
+ summary: AUTOMATION_BUILDER_APPLY_SUMMARY,
19
+ effect: "mutating", approval: "request_policy", fixedParams: { action: "apply_automation_draft_changes" },
20
+ input: { type: "object", additionalProperties: false,
21
+ properties: { automationId: { type: "string", minLength: 1, maxLength: 128 },
22
+ expectedRevision: { type: "integer", minimum: 1, maximum: 2_147_483_647 } },
23
+ required: ["automationId", "expectedRevision"] },
24
+ selectionControlIds: ["automationId", "expectedRevision"], payload,
25
+ },
26
+ ],
27
+ };
@@ -0,0 +1,4 @@
1
+ import type { ToolModuleDeclaration } from "../../../capabilities/tool-types.js";
2
+ import type { AutomationService } from "../../automations/service.js";
3
+ /** The builder exposes the canonical draft transaction without runtime execution authority. */
4
+ export declare function createAutomationBuilderToolModule(getService: () => AutomationService, ready: () => Promise<void>): ToolModuleDeclaration;
@@ -0,0 +1,108 @@
1
+ import { Buffer } from "node:buffer";
2
+ import { AUTOMATION_TOOL_EVENT_PRESENTATION } from "../automations/event-presentation.js";
3
+ import { automationDraftPreparationReceipt } from "../automations/draft-operation-refs.js";
4
+ import { AutomationDraftReceiptCapacityError, prepareAutomationDraftReceipt } from "../automations/draft-receipt-admission.js";
5
+ import { AUTOMATION_DRAFT_BATCH_LIMITS, AutomationDraftBatchError, AutomationDraftBatchGraphError } from "../../automations/draft-batch.js";
6
+ import { automationBuilderToolContract } from "./tool-contract.js";
7
+ import { AUTOMATION_BUILDER_PAYLOAD_FORMAT } from "./payload-schema.js";
8
+ import { compileAutomationCreationRecipe, hasAutomationCreationRecipe } from "./creation-recipe.js";
9
+ function requiredText(params, key) {
10
+ const value = params[key];
11
+ if (typeof value !== "string" || !value.trim())
12
+ throw new Error(`automation_${key}_required`);
13
+ return value.trim();
14
+ }
15
+ function expectedRevision(params) {
16
+ const value = params.expectedRevision;
17
+ const validRevision = Number.isSafeInteger(value) && Number(value) >= 1;
18
+ if (!validRevision)
19
+ throw new Error("automation_revision_conflict");
20
+ return Number(value);
21
+ }
22
+ function parsePlanPayload(params) {
23
+ const payload = params.planJson;
24
+ if (typeof payload !== "string")
25
+ throw new AutomationDraftBatchError("automation_batch_invalid", "plan");
26
+ const withinByteLimit = Buffer.byteLength(payload, "utf8") <= AUTOMATION_DRAFT_BATCH_LIMITS.bytes;
27
+ if (!withinByteLimit)
28
+ throw new AutomationDraftBatchError("automation_batch_too_large", "plan");
29
+ try {
30
+ return JSON.parse(payload);
31
+ }
32
+ catch {
33
+ throw new AutomationDraftBatchError("automation_batch_invalid", "plan");
34
+ }
35
+ }
36
+ function requireAcceptedDraftReceipt(output) {
37
+ if (!output)
38
+ throw new Error("automation_draft_plan_acceptance_missing");
39
+ return output;
40
+ }
41
+ async function execute(service, params) {
42
+ const action = requiredText(params, "action");
43
+ const plan = parsePlanPayload(params);
44
+ const operation = automationBuilderToolContract.operations.find(({ operationId }) => operationId === action);
45
+ if (!operation)
46
+ throw new Error("automation_action_unknown");
47
+ let acceptedOutput;
48
+ const accept = ({ draft, aliases }) => {
49
+ const receipt = { automationId: draft.automationId, revision: draft.revision,
50
+ rootSequenceId: draft.definition.body.id, aliases,
51
+ draft, ...automationDraftPreparationReceipt(draft.definition) };
52
+ acceptedOutput = prepareAutomationDraftReceipt(receipt, {
53
+ tool: "automation_builder", operation, params, mutationEvidence: true,
54
+ });
55
+ return true;
56
+ };
57
+ if (action === "create_automation_draft") {
58
+ const creationPlan = hasAutomationCreationRecipe(plan) ? compileAutomationCreationRecipe(plan) : plan;
59
+ await service.createDraftPlan(requiredText(params, "title"), creationPlan, accept);
60
+ return requireAcceptedDraftReceipt(acceptedOutput);
61
+ }
62
+ await service.applyDraftPlan(requiredText(params, "automationId"), expectedRevision(params), plan, accept);
63
+ return requireAcceptedDraftReceipt(acceptedOutput);
64
+ }
65
+ function failureDetails(error) {
66
+ if (error instanceof AutomationDraftReceiptCapacityError)
67
+ return error.details;
68
+ if (error instanceof AutomationDraftBatchGraphError)
69
+ return { code: error.code, path: error.path, issues: error.issues, omittedIssueCount: error.omittedIssueCount };
70
+ if (error instanceof AutomationDraftBatchError)
71
+ return { code: error.code, path: error.path,
72
+ ...(error.commandPath ? { commandPath: error.commandPath } : {}) };
73
+ return { code: error instanceof Error ? error.message : String(error) };
74
+ }
75
+ /** The builder exposes the canonical draft transaction without runtime execution authority. */
76
+ export function createAutomationBuilderToolModule(getService, ready) {
77
+ return {
78
+ definition: {
79
+ name: "automation_builder",
80
+ eventPresentation: {
81
+ ...AUTOMATION_TOOL_EVENT_PRESENTATION,
82
+ metadata: {
83
+ ...AUTOMATION_TOOL_EVENT_PRESENTATION.metadata,
84
+ inputPreview: { param: "planJson", kind: "string", maxLength: 500, preserveWhitespace: true },
85
+ contentLength: { param: "planJson", kind: "length" },
86
+ },
87
+ },
88
+ description: "Build or update a complete connected ABot Studio draft with one atomic canonical plan. Use this for multi-step authoring; automations provides discovery, reads and individual edits. Future workflow actions are data to configure, not actions to perform while authoring. The user retains permission, publication and run control.",
89
+ routingCapability: "semantic_mutation", catalogGroups: ["automations"],
90
+ developmentRoles: ["auxiliary"], controlsRefinement: "mechanical_when_complete",
91
+ payloadChannelSpec: { params: ["planJson"], outputParam: "planJson", generationMode: "raw_text",
92
+ stages: [{ outputParam: "planJson", responseFormat: AUTOMATION_BUILDER_PAYLOAD_FORMAT }] },
93
+ },
94
+ normalInvocation: automationBuilderToolContract,
95
+ async implementation(params, context) {
96
+ try {
97
+ await ready();
98
+ context?.abortSignal?.throwIfAborted();
99
+ return await execute(getService(), params);
100
+ }
101
+ catch (error) {
102
+ const message = error instanceof Error ? error.message : String(error);
103
+ return { ok: false, output: JSON.stringify(failureDetails(error)), error: message,
104
+ producedNewInformation: false, data: { mutationEvidence: false } };
105
+ }
106
+ },
107
+ };
108
+ }
@@ -0,0 +1,78 @@
1
+ export declare const automationAuthoringCatalogOperations: readonly [{
2
+ readonly operationId: "browse_catalog";
3
+ readonly summary: "Discover available tools and models before creating a draft; omit automationId for a new workflow. view=index returns 50 compact refs per page; page with nextOffset only if needed. Select needed operation refs for prepare_draft within its per-read limit; use multiple reads if needed, then create the whole connected draft. Legacy view=operation resolves one exact toolName/operationId/contractVersion. Discovery never runs workflow tools or grants access.";
4
+ readonly effect: "read_only";
5
+ readonly approval: "request_policy";
6
+ readonly fixedParams: {
7
+ readonly action: "browse_catalog";
8
+ };
9
+ readonly input: {
10
+ readonly type: "object";
11
+ readonly additionalProperties: false;
12
+ readonly properties: {
13
+ readonly automationId: {
14
+ readonly type: "string";
15
+ readonly minLength: 1;
16
+ readonly maxLength: 128;
17
+ };
18
+ readonly view: {
19
+ readonly type: "string";
20
+ readonly enum: readonly ["index", "operation"];
21
+ };
22
+ readonly offset: {
23
+ readonly type: "integer";
24
+ readonly minimum: 0;
25
+ readonly maximum: 2147483647;
26
+ };
27
+ readonly toolName: {
28
+ readonly type: "string";
29
+ readonly minLength: 1;
30
+ readonly maxLength: 64;
31
+ };
32
+ readonly operationId: {
33
+ readonly type: "string";
34
+ readonly minLength: 1;
35
+ readonly maxLength: 64;
36
+ };
37
+ readonly contractVersion: {
38
+ readonly type: "integer";
39
+ readonly minimum: 1;
40
+ readonly maximum: 2147483647;
41
+ };
42
+ };
43
+ readonly required: readonly ["view"];
44
+ };
45
+ readonly selectionControlIds: readonly ["view"];
46
+ }];
47
+ export declare const automationAuthoringPreparationOperation: {
48
+ readonly operationId: "prepare_draft";
49
+ readonly summary: "Prepare a draft or related edit. Select operationRefs needed for this edit from browse_catalog or the full inventory in read_draft/builder receipts (up to 16 per read; [] when no tool schemas are needed). Read separate selections if more are needed, then save one atomic edit. Returns exact schemas, models and the authoring reference. Omit automationId for a new draft. Does not create, run, publish or grant access.";
50
+ readonly effect: "read_only";
51
+ readonly approval: "request_policy";
52
+ readonly fixedParams: {
53
+ readonly action: "prepare_draft";
54
+ };
55
+ readonly input: {
56
+ readonly type: "object";
57
+ readonly additionalProperties: false;
58
+ readonly properties: {
59
+ readonly automationId: {
60
+ readonly type: "string";
61
+ readonly minLength: 1;
62
+ readonly maxLength: 128;
63
+ };
64
+ readonly operationRefs: {
65
+ readonly type: "array";
66
+ readonly minItems: 0;
67
+ readonly maxItems: 16;
68
+ readonly items: {
69
+ readonly type: "string";
70
+ readonly minLength: 1;
71
+ readonly maxLength: number;
72
+ };
73
+ };
74
+ };
75
+ readonly required: readonly ["operationRefs"];
76
+ };
77
+ readonly selectionControlIds: readonly ["operationRefs"];
78
+ };
@@ -0,0 +1,28 @@
1
+ import { AUTOMATION_CATALOG_OPERATION_REF_MAX_LENGTH } from "./authoring-catalog.js";
2
+ import { AUTOMATION_AUTHORING_PREPARATION_LIMITS } from "./authoring-preparation-limits.js";
3
+ const automationId = { type: "string", minLength: 1, maxLength: 128 };
4
+ const operationName = { type: "string", minLength: 1, maxLength: 64 };
5
+ export const automationAuthoringCatalogOperations = [
6
+ {
7
+ operationId: "browse_catalog",
8
+ summary: "Discover available tools and models before creating a draft; omit automationId for a new workflow. view=index returns 50 compact refs per page; page with nextOffset only if needed. Select needed operation refs for prepare_draft within its per-read limit; use multiple reads if needed, then create the whole connected draft. Legacy view=operation resolves one exact toolName/operationId/contractVersion. Discovery never runs workflow tools or grants access.",
9
+ effect: "read_only", approval: "request_policy", fixedParams: { action: "browse_catalog" },
10
+ input: { type: "object", additionalProperties: false,
11
+ properties: { automationId, view: { type: "string", enum: ["index", "operation"] },
12
+ offset: { type: "integer", minimum: 0, maximum: 2_147_483_647 },
13
+ toolName: operationName, operationId: operationName,
14
+ contractVersion: { type: "integer", minimum: 1, maximum: 2_147_483_647 } },
15
+ required: ["view"] },
16
+ selectionControlIds: ["view"],
17
+ },
18
+ ];
19
+ export const automationAuthoringPreparationOperation = {
20
+ operationId: "prepare_draft",
21
+ summary: `Prepare a draft or related edit. Select operationRefs needed for this edit 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). Read separate selections if more are needed, then save one atomic edit. Returns exact schemas, models and the authoring reference. Omit automationId for a new draft. Does not create, run, publish or grant access.`,
22
+ effect: "read_only", approval: "request_policy", fixedParams: { action: "prepare_draft" },
23
+ input: { type: "object", additionalProperties: false,
24
+ properties: { automationId, operationRefs: { type: "array", minItems: 0, maxItems: AUTOMATION_AUTHORING_PREPARATION_LIMITS.operationRefs,
25
+ items: { type: "string", minLength: 1, maxLength: AUTOMATION_CATALOG_OPERATION_REF_MAX_LENGTH } } },
26
+ required: ["operationRefs"] },
27
+ selectionControlIds: ["operationRefs"],
28
+ };