@abot-ai/runtime 1.1.0 → 1.3.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 (731) hide show
  1. package/README.md +20 -3
  2. package/dist/src/bridge/request-steering.d.ts +2 -1
  3. package/dist/src/bridge/request-steering.js +4 -2
  4. package/dist/src/bridge/runtime-replay.js +2 -19
  5. package/dist/src/bridge/start-agent-bridge.js +1 -1
  6. package/dist/src/capabilities/normal-invocation/validator.js +1 -1
  7. package/dist/src/capabilities/tool-definition-validator/event-presentation.js +3 -0
  8. package/dist/src/capabilities/tool-definition-validator/event-result-metadata.d.ts +2 -0
  9. package/dist/src/capabilities/tool-definition-validator/event-result-metadata.js +74 -0
  10. package/dist/src/capabilities/tool-event-metadata.js +3 -0
  11. package/dist/src/capabilities/tool-result-event-projection.d.ts +3 -0
  12. package/dist/src/capabilities/tool-result-event-projection.js +82 -0
  13. package/dist/src/capabilities/tool-types.d.ts +6 -1
  14. package/dist/src/cli/abot.js +2 -11
  15. package/dist/src/model-gateway/providers/ollama/generation-options.d.ts +1 -3
  16. package/dist/src/model-gateway/providers/ollama/generation-options.js +1 -5
  17. package/dist/src/model-gateway/providers/ollama/payload.js +0 -8
  18. package/dist/src/model-gateway/server/request-body.js +1 -0
  19. package/dist/src/plugin-sdk/index.d.ts +2 -0
  20. package/dist/src/plugin-sdk/index.js +2 -0
  21. package/dist/src/plugin-sdk/tool-availability-brief.d.ts +9 -0
  22. package/dist/src/plugin-sdk/tool-availability-brief.js +48 -0
  23. package/dist/src/plugin-sdk/tool-availability-overview.d.ts +9 -0
  24. package/dist/src/plugin-sdk/tool-availability-overview.js +62 -0
  25. package/dist/src/runtime/adapters/in-memory-session-store.js +1 -0
  26. package/dist/src/runtime/adapters/long-term-memory/file-lock/acquisition.js +11 -2
  27. package/dist/src/runtime/adapters/long-term-memory/file-lock/contracts.d.ts +2 -0
  28. package/dist/src/runtime/adapters/long-term-memory/file-lock/synchronous-release.d.ts +2 -0
  29. package/dist/src/runtime/adapters/long-term-memory/file-lock/synchronous-release.js +40 -0
  30. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/approval.d.ts +3 -0
  31. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/approval.js +9 -0
  32. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/rejection-event.d.ts +13 -0
  33. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/rejection-event.js +25 -0
  34. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/run.js +18 -2
  35. package/dist/src/runtime/adapters/registered-tool-normal-invocations/executor.js +8 -0
  36. package/dist/src/runtime/adapters/registered-tool-normal-invocations/payload/lifecycle.js +7 -3
  37. package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/contracts.d.ts +17 -2
  38. package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/event-metadata.d.ts +9 -0
  39. package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/event-metadata.js +8 -0
  40. package/dist/src/runtime/adapters/registered-tool-payload-plan.d.ts +0 -9
  41. package/dist/src/runtime/adapters/registered-tool-payload-plan.js +0 -67
  42. package/dist/src/runtime/adapters/registered-tool-payload-related-artifacts.d.ts +13 -0
  43. package/dist/src/runtime/adapters/registered-tool-payload-related-artifacts.js +84 -0
  44. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/catalog.js +4 -0
  45. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/execution.js +19 -1
  46. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-lifecycle.d.ts +1 -0
  47. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-lifecycle.js +11 -1
  48. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-observability.js +2 -2
  49. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-stages.d.ts +1 -0
  50. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-stages.js +9 -1
  51. package/dist/src/runtime/adapters/scheduled-request-outcome.d.ts +11 -0
  52. package/dist/src/runtime/adapters/scheduled-request-outcome.js +41 -0
  53. package/dist/src/runtime/adapters/scheduler-runtime.d.ts +19 -0
  54. package/dist/src/runtime/adapters/scheduler-runtime.js +138 -0
  55. package/dist/src/runtime/capabilities/request-bound-tool-registry.js +1 -24
  56. package/dist/src/runtime/capabilities/scheduling/create-operations.d.ts +55 -0
  57. package/dist/src/runtime/capabilities/scheduling/create-operations.js +30 -0
  58. package/dist/src/runtime/capabilities/scheduling/create-time-zone.d.ts +1 -0
  59. package/dist/src/runtime/capabilities/scheduling/create-time-zone.js +11 -0
  60. package/dist/src/runtime/capabilities/scheduling/job-list-page.d.ts +25 -0
  61. package/dist/src/runtime/capabilities/scheduling/job-list-page.js +40 -0
  62. package/dist/src/runtime/capabilities/scheduling/model-validation.d.ts +2 -0
  63. package/dist/src/runtime/capabilities/scheduling/model-validation.js +15 -0
  64. package/dist/src/runtime/capabilities/scheduling/tool-contract.d.ts +2 -0
  65. package/dist/src/runtime/capabilities/scheduling/tool-contract.js +35 -0
  66. package/dist/src/runtime/capabilities/scheduling/tool-input-properties.d.ts +43 -0
  67. package/dist/src/runtime/capabilities/scheduling/tool-input-properties.js +27 -0
  68. package/dist/src/runtime/capabilities/scheduling/tool-module.d.ts +4 -0
  69. package/dist/src/runtime/capabilities/scheduling/tool-module.js +158 -0
  70. package/dist/src/runtime/capabilities/scheduling/update-operations.d.ts +2 -0
  71. package/dist/src/runtime/capabilities/scheduling/update-operations.js +49 -0
  72. package/dist/src/runtime/capabilities/tool-availability.d.ts +6 -0
  73. package/dist/src/runtime/capabilities/tool-availability.js +28 -0
  74. package/dist/src/runtime/composition.d.ts +23 -3
  75. package/dist/src/runtime/composition.js +12 -17
  76. package/dist/src/runtime/config/environment-paths.d.ts +10 -0
  77. package/dist/src/runtime/config/environment-paths.js +31 -0
  78. package/dist/src/runtime/config/environment-storage.d.ts +9 -0
  79. package/dist/src/runtime/config/environment-storage.js +65 -0
  80. package/dist/src/runtime/config/fields.js +7 -0
  81. package/dist/src/runtime/config/long-term-memory.js +15 -0
  82. package/dist/src/runtime/config/schema.js +8 -0
  83. package/dist/src/runtime/config.js +9 -5
  84. package/dist/src/runtime/context/capability-brief.d.ts +25 -0
  85. package/dist/src/runtime/context/capability-brief.js +106 -0
  86. package/dist/src/runtime/context/request-tool-results-message-binding.d.ts +6 -0
  87. package/dist/src/runtime/context/request-tool-results-message-binding.js +30 -0
  88. package/dist/src/runtime/context/request-tool-results-scope.d.ts +3 -0
  89. package/dist/src/runtime/context/request-tool-results-scope.js +8 -0
  90. package/dist/src/runtime/context/request-tool-results.d.ts +8 -4
  91. package/dist/src/runtime/context/request-tool-results.js +49 -38
  92. package/dist/src/runtime/context/scheduled-execution-context.d.ts +10 -0
  93. package/dist/src/runtime/context/scheduled-execution-context.js +52 -0
  94. package/dist/src/runtime/default-adapters.d.ts +3 -32
  95. package/dist/src/runtime/default-adapters.js +3 -270
  96. package/dist/src/runtime/default-environment-adapters.d.ts +19 -0
  97. package/dist/src/runtime/default-environment-adapters.js +144 -0
  98. package/dist/src/runtime/index.d.ts +5 -0
  99. package/dist/src/runtime/index.js +4 -0
  100. package/dist/src/runtime/local-application.d.ts +22 -0
  101. package/dist/src/runtime/local-application.js +81 -0
  102. package/dist/src/runtime/local-host/app-memory-dispatch.d.ts +11 -0
  103. package/dist/src/runtime/local-host/app-memory-dispatch.js +103 -0
  104. package/dist/src/runtime/local-host/app-owner.d.ts +4 -0
  105. package/dist/src/runtime/local-host/app-owner.js +119 -0
  106. package/dist/src/runtime/local-host/app-request-control.d.ts +24 -0
  107. package/dist/src/runtime/local-host/app-request-control.js +135 -0
  108. package/dist/src/runtime/local-host/app-service-dispatch.d.ts +5 -0
  109. package/dist/src/runtime/local-host/app-service-dispatch.js +64 -0
  110. package/dist/src/runtime/local-host/client-identity.d.ts +3 -0
  111. package/dist/src/runtime/local-host/client-identity.js +17 -0
  112. package/dist/src/runtime/local-host/client-memory.d.ts +7 -0
  113. package/dist/src/runtime/local-host/client-memory.js +54 -0
  114. package/dist/src/runtime/local-host/client-requests.d.ts +19 -0
  115. package/dist/src/runtime/local-host/client-requests.js +145 -0
  116. package/dist/src/runtime/local-host/client-services.d.ts +10 -0
  117. package/dist/src/runtime/local-host/client-services.js +14 -0
  118. package/dist/src/runtime/local-host/contracts.d.ts +36 -0
  119. package/dist/src/runtime/local-host/contracts.js +1 -0
  120. package/dist/src/runtime/local-host/endpoint.d.ts +7 -0
  121. package/dist/src/runtime/local-host/endpoint.js +79 -0
  122. package/dist/src/runtime/local-host/owner-activity.d.ts +10 -0
  123. package/dist/src/runtime/local-host/owner-activity.js +30 -0
  124. package/dist/src/runtime/local-host/owner-retirement.d.ts +3 -0
  125. package/dist/src/runtime/local-host/owner-retirement.js +15 -0
  126. package/dist/src/runtime/local-host/owner-server.d.ts +6 -0
  127. package/dist/src/runtime/local-host/owner-server.js +88 -0
  128. package/dist/src/runtime/local-host/private-access.d.ts +2 -0
  129. package/dist/src/runtime/local-host/private-access.js +16 -0
  130. package/dist/src/runtime/local-host/private-directory.d.ts +1 -0
  131. package/dist/src/runtime/local-host/private-directory.js +57 -0
  132. package/dist/src/runtime/local-host/rpc-peer.d.ts +22 -0
  133. package/dist/src/runtime/local-host/rpc-peer.js +168 -0
  134. package/dist/src/runtime/local-host/rpc-protocol.d.ts +21 -0
  135. package/dist/src/runtime/local-host/rpc-protocol.js +46 -0
  136. package/dist/src/runtime/local-host/startup-connection.d.ts +5 -0
  137. package/dist/src/runtime/local-host/startup-connection.js +72 -0
  138. package/dist/src/runtime/local-host/transport.d.ts +3 -0
  139. package/dist/src/runtime/local-host/transport.js +88 -0
  140. package/dist/src/runtime/local-host/windows-private-access.d.ts +1 -0
  141. package/dist/src/runtime/local-host/windows-private-access.js +51 -0
  142. package/dist/src/runtime/long-term-memory/onboarding/configuration.js +6 -0
  143. package/dist/src/runtime/long-term-memory/recall-binding.d.ts +3 -0
  144. package/dist/src/runtime/long-term-memory/recall-binding.js +27 -0
  145. package/dist/src/runtime/long-term-memory/recall-context.d.ts +20 -0
  146. package/dist/src/runtime/long-term-memory/recall-context.js +101 -0
  147. package/dist/src/runtime/long-term-memory/recall-continuation.d.ts +8 -0
  148. package/dist/src/runtime/long-term-memory/recall-continuation.js +36 -0
  149. package/dist/src/runtime/long-term-memory/recall-policy.d.ts +7 -0
  150. package/dist/src/runtime/long-term-memory/recall-policy.js +14 -0
  151. package/dist/src/runtime/long-term-memory/recall-result.d.ts +5 -0
  152. package/dist/src/runtime/long-term-memory/recall-result.js +54 -0
  153. package/dist/src/runtime/long-term-memory/repository-state.d.ts +2 -1
  154. package/dist/src/runtime/long-term-memory/repository-state.js +2 -2
  155. package/dist/src/runtime/model/invoke-raw-step.d.ts +1 -0
  156. package/dist/src/runtime/model/invoke-raw-step.js +1 -0
  157. package/dist/src/runtime/model/invoke-step.js +6 -0
  158. package/dist/src/runtime/model/invoke-structured-step.d.ts +1 -0
  159. package/dist/src/runtime/model/invoke-structured-step.js +1 -0
  160. package/dist/src/runtime/model/model-step-port.d.ts +2 -0
  161. package/dist/src/runtime/model/model-step-steering.d.ts +8 -0
  162. package/dist/src/runtime/model/model-step-steering.js +19 -0
  163. package/dist/src/runtime/orchestration/final-response/authoring-contract.js +1 -1
  164. package/dist/src/runtime/orchestration/final-response/invoke.d.ts +1 -0
  165. package/dist/src/runtime/orchestration/final-response/invoke.js +1 -0
  166. package/dist/src/runtime/orchestration/role-calls/activation-budget.js +1 -0
  167. package/dist/src/runtime/orchestration/role-calls/candidate-validation.js +17 -50
  168. package/dist/src/runtime/orchestration/role-calls/capability-selection-reconsideration.d.ts +9 -0
  169. package/dist/src/runtime/orchestration/role-calls/capability-selection-reconsideration.js +17 -8
  170. package/dist/src/runtime/orchestration/role-calls/capability-selection-supervision-validation.d.ts +2 -0
  171. package/dist/src/runtime/orchestration/role-calls/capability-selection-supervision-validation.js +62 -0
  172. package/dist/src/runtime/orchestration/role-calls/child-return.d.ts +4 -0
  173. package/dist/src/runtime/orchestration/role-calls/child-return.js +25 -5
  174. package/dist/src/runtime/orchestration/role-calls/command-decoder.js +12 -3
  175. package/dist/src/runtime/orchestration/role-calls/command-dispatch/child-transitions.d.ts +1 -1
  176. package/dist/src/runtime/orchestration/role-calls/command-dispatch/child-transitions.js +17 -2
  177. package/dist/src/runtime/orchestration/role-calls/command-dispatch/memory-recall-transitions.d.ts +4 -0
  178. package/dist/src/runtime/orchestration/role-calls/command-dispatch/memory-recall-transitions.js +89 -0
  179. package/dist/src/runtime/orchestration/role-calls/command-dispatch.d.ts +1 -1
  180. package/dist/src/runtime/orchestration/role-calls/command-dispatch.js +7 -2
  181. package/dist/src/runtime/orchestration/role-calls/contracts.d.ts +12 -7
  182. package/dist/src/runtime/orchestration/role-calls/contracts.js +4 -4
  183. package/dist/src/runtime/orchestration/role-calls/dependency-results.d.ts +1 -1
  184. package/dist/src/runtime/orchestration/role-calls/dependency-results.js +1 -0
  185. package/dist/src/runtime/orchestration/role-calls/diagnostics.js +3 -0
  186. package/dist/src/runtime/orchestration/role-calls/index.d.ts +6 -1
  187. package/dist/src/runtime/orchestration/role-calls/index.js +6 -1
  188. package/dist/src/runtime/orchestration/role-calls/ledger.d.ts +3 -1
  189. package/dist/src/runtime/orchestration/role-calls/ledger.js +9 -2
  190. package/dist/src/runtime/orchestration/role-calls/memory-recall-contract.d.ts +51 -0
  191. package/dist/src/runtime/orchestration/role-calls/memory-recall-contract.js +4 -0
  192. package/dist/src/runtime/orchestration/role-calls/memory-recall-decoder.d.ts +6 -0
  193. package/dist/src/runtime/orchestration/role-calls/memory-recall-decoder.js +147 -0
  194. package/dist/src/runtime/orchestration/role-calls/memory-recall-diagnostics.d.ts +5 -0
  195. package/dist/src/runtime/orchestration/role-calls/memory-recall-diagnostics.js +27 -0
  196. package/dist/src/runtime/orchestration/role-calls/memory-recall-state-validation.d.ts +3 -0
  197. package/dist/src/runtime/orchestration/role-calls/memory-recall-state-validation.js +121 -0
  198. package/dist/src/runtime/orchestration/role-calls/memory-recall-transactions.d.ts +3 -0
  199. package/dist/src/runtime/orchestration/role-calls/memory-recall-transactions.js +44 -0
  200. package/dist/src/runtime/orchestration/role-calls/reducer.d.ts +1 -1
  201. package/dist/src/runtime/orchestration/role-calls/reducer.js +3 -2
  202. package/dist/src/runtime/orchestration/role-calls/result-receipt.d.ts +49 -0
  203. package/dist/src/runtime/orchestration/role-calls/result-receipt.js +188 -0
  204. package/dist/src/runtime/orchestration/role-calls/return-result-receipt.d.ts +19 -0
  205. package/dist/src/runtime/orchestration/role-calls/return-result-receipt.js +52 -0
  206. package/dist/src/runtime/orchestration/role-calls/transaction-effect.d.ts +5 -0
  207. package/dist/src/runtime/orchestration/role-calls/transaction-effect.js +14 -0
  208. package/dist/src/runtime/orchestration/role-calls/transactions.js +4 -24
  209. package/dist/src/runtime/orchestration/role-calls/work-result-lineage.d.ts +34 -0
  210. package/dist/src/runtime/orchestration/role-calls/work-result-lineage.js +185 -0
  211. package/dist/src/runtime/orchestration/role-calls/work-result-receipt.d.ts +36 -0
  212. package/dist/src/runtime/orchestration/role-calls/work-result-receipt.js +187 -0
  213. package/dist/src/runtime/orchestration/role-executors/activation/result-normalization.js +6 -3
  214. package/dist/src/runtime/orchestration/role-executors/child-invocation/transaction.js +1 -0
  215. package/dist/src/runtime/orchestration/role-executors/contracts.d.ts +2 -1
  216. package/dist/src/runtime/orchestration/worker-capabilities/assignment-provenance.d.ts +36 -0
  217. package/dist/src/runtime/orchestration/worker-capabilities/assignment-provenance.js +171 -0
  218. package/dist/src/runtime/orchestration/worker-capabilities/contracts.d.ts +32 -1
  219. package/dist/src/runtime/orchestration/worker-capabilities/execution/invocation-preparation.d.ts +2 -1
  220. package/dist/src/runtime/orchestration/worker-capabilities/execution/invocation-preparation.js +3 -0
  221. package/dist/src/runtime/orchestration/worker-capabilities/execution.js +42 -19
  222. package/dist/src/runtime/orchestration/worker-capabilities/index.d.ts +2 -0
  223. package/dist/src/runtime/orchestration/worker-capabilities/index.js +2 -0
  224. package/dist/src/runtime/orchestration/worker-capabilities/payload-assignment-validation.d.ts +3 -0
  225. package/dist/src/runtime/orchestration/worker-capabilities/payload-assignment-validation.js +30 -0
  226. package/dist/src/runtime/orchestration/worker-capabilities/payload-author.js +8 -19
  227. package/dist/src/runtime/orchestration/worker-capabilities/payload-contracts.d.ts +5 -1
  228. package/dist/src/runtime/orchestration/worker-capabilities/payload-instructions.js +1 -1
  229. package/dist/src/runtime/orchestration/worker-capabilities/payload-source-provenance.d.ts +14 -0
  230. package/dist/src/runtime/orchestration/worker-capabilities/payload-source-provenance.js +132 -0
  231. package/dist/src/runtime/plugins/manifest-validator.js +4 -1
  232. package/dist/src/runtime/ports.d.ts +4 -0
  233. package/dist/src/runtime/request/bound-runtime-handler.d.ts +2 -0
  234. package/dist/src/runtime/request/bound-runtime-handler.js +25 -0
  235. package/dist/src/runtime/request/capability-brief.d.ts +5 -0
  236. package/dist/src/runtime/request/capability-brief.js +24 -0
  237. package/dist/src/runtime/request/contracts.d.ts +6 -0
  238. package/dist/src/runtime/request/execution-agent-root-execution.js +12 -0
  239. package/dist/src/runtime/request/execution-facets.js +6 -0
  240. package/dist/src/runtime/request/execution-scope-surfaces.js +10 -0
  241. package/dist/src/runtime/request/execution-scope.d.ts +3 -2
  242. package/dist/src/runtime/request/handler.js +6 -0
  243. package/dist/src/runtime/request/role-executor-composition.js +1 -1
  244. package/dist/src/runtime/request/root-contract.d.ts +7 -1
  245. package/dist/src/runtime/request/root-execution-kernel.js +33 -37
  246. package/dist/src/runtime/request/root-memory-recall.d.ts +11 -0
  247. package/dist/src/runtime/request/root-memory-recall.js +71 -0
  248. package/dist/src/runtime/request/root-observation-handoff.d.ts +17 -0
  249. package/dist/src/runtime/request/root-observation-handoff.js +44 -0
  250. package/dist/src/runtime/request/scheduled-execution.d.ts +9 -0
  251. package/dist/src/runtime/request/scheduled-execution.js +32 -0
  252. package/dist/src/runtime/request/session-admission.d.ts +17 -0
  253. package/dist/src/runtime/request/session-admission.js +88 -0
  254. package/dist/src/runtime/request/supervisor-root-execution-diagnostics.d.ts +1 -1
  255. package/dist/src/runtime/request/supervisor-root-execution.js +8 -0
  256. package/dist/src/runtime/request/worker-capability-composition.d.ts +2 -1
  257. package/dist/src/runtime/request/worker-capability-composition.js +6 -1
  258. package/dist/src/runtime/request/worker-capability-payload.js +11 -8
  259. package/dist/src/runtime/runtime-environment.d.ts +31 -0
  260. package/dist/src/runtime/runtime-environment.js +102 -0
  261. package/dist/src/runtime/runtime-host-environment.d.ts +8 -0
  262. package/dist/src/runtime/runtime-host-environment.js +57 -0
  263. package/dist/src/runtime/runtime-host-lifecycle.d.ts +4 -0
  264. package/dist/src/runtime/runtime-host-lifecycle.js +64 -0
  265. package/dist/src/runtime/runtime-host-scheduler-ownership.d.ts +5 -0
  266. package/dist/src/runtime/runtime-host-scheduler-ownership.js +67 -0
  267. package/dist/src/runtime/runtime-host.d.ts +19 -0
  268. package/dist/src/runtime/runtime-host.js +63 -0
  269. package/dist/src/runtime/scheduler/calendar-time.d.ts +10 -0
  270. package/dist/src/runtime/scheduler/calendar-time.js +58 -0
  271. package/dist/src/runtime/scheduler/contracts.d.ts +143 -0
  272. package/dist/src/runtime/scheduler/contracts.js +1 -0
  273. package/dist/src/runtime/scheduler/file-store.d.ts +2 -0
  274. package/dist/src/runtime/scheduler/file-store.js +76 -0
  275. package/dist/src/runtime/scheduler/instant-validation.d.ts +4 -0
  276. package/dist/src/runtime/scheduler/instant-validation.js +69 -0
  277. package/dist/src/runtime/scheduler/interval-range.d.ts +8 -0
  278. package/dist/src/runtime/scheduler/interval-range.js +24 -0
  279. package/dist/src/runtime/scheduler/job-management.d.ts +8 -0
  280. package/dist/src/runtime/scheduler/job-management.js +212 -0
  281. package/dist/src/runtime/scheduler/journal-checkpoint.d.ts +9 -0
  282. package/dist/src/runtime/scheduler/journal-checkpoint.js +45 -0
  283. package/dist/src/runtime/scheduler/journal-durability.d.ts +8 -0
  284. package/dist/src/runtime/scheduler/journal-durability.js +59 -0
  285. package/dist/src/runtime/scheduler/journal-files.d.ts +14 -0
  286. package/dist/src/runtime/scheduler/journal-files.js +59 -0
  287. package/dist/src/runtime/scheduler/journal-head.d.ts +21 -0
  288. package/dist/src/runtime/scheduler/journal-head.js +81 -0
  289. package/dist/src/runtime/scheduler/journal-index-state.d.ts +31 -0
  290. package/dist/src/runtime/scheduler/journal-index-state.js +137 -0
  291. package/dist/src/runtime/scheduler/journal-index.d.ts +22 -0
  292. package/dist/src/runtime/scheduler/journal-index.js +195 -0
  293. package/dist/src/runtime/scheduler/journal-store.d.ts +21 -0
  294. package/dist/src/runtime/scheduler/journal-store.js +184 -0
  295. package/dist/src/runtime/scheduler/journal-transaction.d.ts +14 -0
  296. package/dist/src/runtime/scheduler/journal-transaction.js +104 -0
  297. package/dist/src/runtime/scheduler/next-occurrence.d.ts +3 -0
  298. package/dist/src/runtime/scheduler/next-occurrence.js +39 -0
  299. package/dist/src/runtime/scheduler/run-completion.d.ts +12 -0
  300. package/dist/src/runtime/scheduler/run-completion.js +77 -0
  301. package/dist/src/runtime/scheduler/run-list-query.d.ts +5 -0
  302. package/dist/src/runtime/scheduler/run-list-query.js +38 -0
  303. package/dist/src/runtime/scheduler/run-records.d.ts +6 -0
  304. package/dist/src/runtime/scheduler/run-records.js +41 -0
  305. package/dist/src/runtime/scheduler/schedule-update.d.ts +3 -0
  306. package/dist/src/runtime/scheduler/schedule-update.js +22 -0
  307. package/dist/src/runtime/scheduler/schedule-validation.d.ts +10 -0
  308. package/dist/src/runtime/scheduler/schedule-validation.js +132 -0
  309. package/dist/src/runtime/scheduler/scheduler-engine.d.ts +2 -0
  310. package/dist/src/runtime/scheduler/scheduler-engine.js +174 -0
  311. package/dist/src/runtime/scheduler/scheduler-service.d.ts +10 -0
  312. package/dist/src/runtime/scheduler/scheduler-service.js +115 -0
  313. package/dist/src/runtime/scheduler/service-context.d.ts +21 -0
  314. package/dist/src/runtime/scheduler/service-context.js +26 -0
  315. package/dist/src/runtime/scheduler/session-deletion-state.d.ts +9 -0
  316. package/dist/src/runtime/scheduler/session-deletion-state.js +30 -0
  317. package/dist/src/runtime/scheduler/snapshot-validation.d.ts +4 -0
  318. package/dist/src/runtime/scheduler/snapshot-validation.js +112 -0
  319. package/dist/src/runtime/scheduler/startup-recovery.d.ts +2 -0
  320. package/dist/src/runtime/scheduler/startup-recovery.js +38 -0
  321. package/dist/src/runtime/scheduler/validation-error.d.ts +4 -0
  322. package/dist/src/runtime/scheduler/validation-error.js +8 -0
  323. package/dist/src/runtime/scheduler/working-store.d.ts +3 -0
  324. package/dist/src/runtime/scheduler/working-store.js +8 -0
  325. package/dist/src/runtime/session/request-session.d.ts +1 -0
  326. package/dist/src/runtime/session/request-session.js +14 -1
  327. package/dist/src/runtime/session/session-attachment-deletion.d.ts +8 -0
  328. package/dist/src/runtime/session/session-attachment-deletion.js +87 -0
  329. package/dist/src/runtime/session/session-deletion-boundary.d.ts +10 -0
  330. package/dist/src/runtime/session/session-deletion-boundary.js +39 -0
  331. package/dist/src/runtime/session/session-deletion-cleanup.d.ts +7 -0
  332. package/dist/src/runtime/session/session-deletion-cleanup.js +62 -0
  333. package/dist/src/runtime/session/session-deletion-finalization.d.ts +7 -0
  334. package/dist/src/runtime/session/session-deletion-finalization.js +34 -0
  335. package/dist/src/runtime/session/session-deletion-receipts.d.ts +7 -0
  336. package/dist/src/runtime/session/session-deletion-receipts.js +18 -0
  337. package/dist/src/runtime/session/session-lifecycle-store.d.ts +21 -0
  338. package/dist/src/runtime/session/session-lifecycle-store.js +72 -0
  339. package/dist/src/runtime/session/session-mutation-queue.d.ts +3 -0
  340. package/dist/src/runtime/session/session-mutation-queue.js +15 -0
  341. package/dist/src/runtime/steps/execution-agent/capability-decision-parsing.d.ts +16 -0
  342. package/dist/src/runtime/steps/execution-agent/capability-decision-parsing.js +165 -0
  343. package/dist/src/runtime/steps/execution-agent/contracts.d.ts +3 -1
  344. package/dist/src/runtime/steps/execution-agent/decision-parsing.d.ts +2 -0
  345. package/dist/src/runtime/steps/execution-agent/decision-parsing.js +195 -0
  346. package/dist/src/runtime/steps/execution-agent/decision-validation.d.ts +30 -0
  347. package/dist/src/runtime/steps/execution-agent/decision-validation.js +127 -0
  348. package/dist/src/runtime/steps/execution-agent/format.d.ts +1 -0
  349. package/dist/src/runtime/steps/execution-agent/format.js +12 -0
  350. package/dist/src/runtime/steps/execution-agent/input.d.ts +2 -1
  351. package/dist/src/runtime/steps/execution-agent/input.js +17 -2
  352. package/dist/src/runtime/steps/execution-agent/parser.d.ts +1 -2
  353. package/dist/src/runtime/steps/execution-agent/parser.js +1 -472
  354. package/dist/src/runtime/steps/execution-agent/prompt.d.ts +2 -0
  355. package/dist/src/runtime/steps/execution-agent/prompt.js +6 -3
  356. package/dist/src/runtime/steps/execution-agent/reconsideration-context.js +4 -3
  357. package/dist/src/runtime/steps/execution-agent/response-input.js +5 -4
  358. package/dist/src/runtime/steps/execution-agent/response-run.d.ts +3 -0
  359. package/dist/src/runtime/steps/execution-agent/response-run.js +7 -3
  360. package/dist/src/runtime/steps/execution-agent/run.d.ts +2 -0
  361. package/dist/src/runtime/steps/execution-agent/run.js +2 -0
  362. package/dist/src/runtime/steps/execution-agent/state-context.d.ts +2 -1
  363. package/dist/src/runtime/steps/execution-agent/state-context.js +13 -5
  364. package/dist/src/runtime/steps/memory-recall-decision.d.ts +30 -0
  365. package/dist/src/runtime/steps/memory-recall-decision.js +101 -0
  366. package/dist/src/runtime/steps/memory-recall-prompt.d.ts +1 -0
  367. package/dist/src/runtime/steps/memory-recall-prompt.js +15 -0
  368. package/dist/src/runtime/steps/planner-decision/capability-catalog-context.d.ts +14 -0
  369. package/dist/src/runtime/steps/planner-decision/capability-catalog-context.js +87 -0
  370. package/dist/src/runtime/steps/planner-decision/contracts.d.ts +3 -5
  371. package/dist/src/runtime/steps/planner-decision/contracts.js +3 -3
  372. package/dist/src/runtime/steps/planner-decision/format.d.ts +3 -2
  373. package/dist/src/runtime/steps/planner-decision/format.js +73 -76
  374. package/dist/src/runtime/steps/planner-decision/input.d.ts +4 -3
  375. package/dist/src/runtime/steps/planner-decision/input.js +10 -7
  376. package/dist/src/runtime/steps/planner-decision/parser.d.ts +3 -2
  377. package/dist/src/runtime/steps/planner-decision/parser.js +10 -19
  378. package/dist/src/runtime/steps/planner-decision/plan-parser.js +18 -12
  379. package/dist/src/runtime/steps/planner-decision/prompt.js +33 -28
  380. package/dist/src/runtime/steps/planner-decision/resume.d.ts +1 -1
  381. package/dist/src/runtime/steps/planner-decision/resume.js +38 -1
  382. package/dist/src/runtime/steps/planner-decision/run.d.ts +3 -2
  383. package/dist/src/runtime/steps/reviewer-decision/audit-coverage.d.ts +10 -0
  384. package/dist/src/runtime/steps/reviewer-decision/audit-coverage.js +186 -0
  385. package/dist/src/runtime/steps/reviewer-decision/contracts.d.ts +3 -8
  386. package/dist/src/runtime/steps/reviewer-decision/contracts.js +12 -6
  387. package/dist/src/runtime/steps/reviewer-decision/delegated-context.d.ts +24 -0
  388. package/dist/src/runtime/steps/reviewer-decision/delegated-context.js +70 -0
  389. package/dist/src/runtime/steps/reviewer-decision/diagnostics.js +1 -1
  390. package/dist/src/runtime/steps/reviewer-decision/format.js +37 -24
  391. package/dist/src/runtime/steps/reviewer-decision/input.js +1 -1
  392. package/dist/src/runtime/steps/reviewer-decision/model-context.d.ts +4 -3
  393. package/dist/src/runtime/steps/reviewer-decision/model-context.js +92 -10
  394. package/dist/src/runtime/steps/reviewer-decision/parser.js +19 -1
  395. package/dist/src/runtime/steps/reviewer-decision/projection.js +42 -68
  396. package/dist/src/runtime/steps/reviewer-decision/prompt.js +10 -5
  397. package/dist/src/runtime/steps/reviewer-decision/run.js +12 -3
  398. package/dist/src/runtime/steps/reviewer-decision/verification-coverage.d.ts +14 -0
  399. package/dist/src/runtime/steps/reviewer-decision/verification-coverage.js +52 -0
  400. package/dist/src/runtime/steps/supervisor-decision/capability-brief.d.ts +14 -0
  401. package/dist/src/runtime/steps/supervisor-decision/capability-brief.js +38 -0
  402. package/dist/src/runtime/steps/supervisor-decision/contracts.d.ts +11 -5
  403. package/dist/src/runtime/steps/supervisor-decision/diagnostics.d.ts +4 -0
  404. package/dist/src/runtime/steps/supervisor-decision/diagnostics.js +21 -8
  405. package/dist/src/runtime/steps/supervisor-decision/format.d.ts +2 -0
  406. package/dist/src/runtime/steps/supervisor-decision/format.js +73 -22
  407. package/dist/src/runtime/steps/supervisor-decision/input.d.ts +9 -2
  408. package/dist/src/runtime/steps/supervisor-decision/input.js +44 -6
  409. package/dist/src/runtime/steps/supervisor-decision/memory-recall-continuation.d.ts +10 -0
  410. package/dist/src/runtime/steps/supervisor-decision/memory-recall-continuation.js +32 -0
  411. package/dist/src/runtime/steps/supervisor-decision/parser.d.ts +2 -0
  412. package/dist/src/runtime/steps/supervisor-decision/parser.js +97 -59
  413. package/dist/src/runtime/steps/supervisor-decision/prompt.d.ts +3 -0
  414. package/dist/src/runtime/steps/supervisor-decision/prompt.js +22 -15
  415. package/dist/src/runtime/steps/supervisor-decision/response-recommendation.d.ts +13 -0
  416. package/dist/src/runtime/steps/supervisor-decision/response-recommendation.js +32 -0
  417. package/dist/src/runtime/steps/supervisor-decision/resume.d.ts +2 -0
  418. package/dist/src/runtime/steps/supervisor-decision/resume.js +60 -1
  419. package/dist/src/runtime/steps/supervisor-decision/run.d.ts +3 -0
  420. package/dist/src/runtime/steps/supervisor-decision/run.js +29 -0
  421. package/dist/src/runtime/steps/supervisor-decision/working-directory.js +8 -1
  422. package/dist/src/runtime/steps/supervisor-response/diagnostics.d.ts +1 -0
  423. package/dist/src/runtime/steps/supervisor-response/diagnostics.js +1 -0
  424. package/dist/src/runtime/steps/supervisor-response/input.d.ts +2 -1
  425. package/dist/src/runtime/steps/supervisor-response/input.js +17 -4
  426. package/dist/src/runtime/steps/supervisor-response/memory-authoring.d.ts +1 -0
  427. package/dist/src/runtime/steps/supervisor-response/memory-authoring.js +4 -0
  428. package/dist/src/runtime/steps/supervisor-response/prompt.d.ts +1 -0
  429. package/dist/src/runtime/steps/supervisor-response/prompt.js +8 -2
  430. package/dist/src/runtime/steps/supervisor-response/response-recommendation.d.ts +10 -0
  431. package/dist/src/runtime/steps/supervisor-response/response-recommendation.js +25 -0
  432. package/dist/src/runtime/steps/supervisor-response/run.d.ts +6 -1
  433. package/dist/src/runtime/steps/supervisor-response/run.js +26 -7
  434. package/dist/src/runtime/steps/worker-decision/contracts.d.ts +2 -1
  435. package/dist/src/runtime/steps/worker-decision/input/canonical-state.js +8 -1
  436. package/dist/src/runtime/steps/worker-decision/input/diagnostic-projection.js +2 -2
  437. package/dist/src/runtime/steps/worker-decision/input/prompt-context.d.ts +1 -0
  438. package/dist/src/runtime/steps/worker-decision/input/prompt-context.js +4 -1
  439. package/dist/src/runtime/steps/worker-decision/input/reference-context.js +34 -14
  440. package/dist/src/runtime/steps/worker-decision/input/types.d.ts +2 -1
  441. package/dist/src/runtime/steps/worker-decision/input.d.ts +1 -0
  442. package/dist/src/runtime/steps/worker-decision/input.js +1 -0
  443. package/dist/src/runtime/steps/worker-decision/payload-dependency-results.d.ts +8 -0
  444. package/dist/src/runtime/steps/worker-decision/payload-dependency-results.js +19 -0
  445. package/dist/src/runtime/steps/worker-decision/prompt.js +8 -8
  446. package/dist/src/runtime/steps/worker-decision/result-author.js +18 -11
  447. package/dist/src/runtime/steps/worker-decision/run.js +2 -2
  448. package/dist/src/sessions/record/projection.js +1 -0
  449. package/dist/src/sessions/schedule-metadata.d.ts +8 -0
  450. package/dist/src/sessions/schedule-metadata.js +1 -0
  451. package/dist/src/sessions/session-service.d.ts +1 -0
  452. package/dist/src/sessions/session-service.js +1 -0
  453. package/dist/src/sessions/types.d.ts +2 -0
  454. package/dist/src/shared/http-server-shutdown.d.ts +4 -0
  455. package/dist/src/shared/http-server-shutdown.js +17 -0
  456. package/dist/src/shared/public-http/aggregate-gate.d.ts +3 -0
  457. package/dist/src/shared/public-http/aggregate-gate.js +87 -0
  458. package/dist/src/shared/public-http/deadline.d.ts +2 -0
  459. package/dist/src/shared/public-http/deadline.js +29 -0
  460. package/dist/src/shared/public-http/errors.d.ts +6 -0
  461. package/dist/src/shared/public-http/errors.js +11 -0
  462. package/dist/src/shared/public-http/limits.d.ts +8 -0
  463. package/dist/src/shared/public-http/limits.js +8 -0
  464. package/dist/src/shared/public-http/network-policy.d.ts +11 -0
  465. package/dist/src/shared/public-http/network-policy.js +178 -0
  466. package/dist/src/shared/public-http/public-http.d.ts +24 -0
  467. package/dist/src/shared/public-http/public-http.js +85 -0
  468. package/dist/src/shared/public-http/request-hop.d.ts +18 -0
  469. package/dist/src/shared/public-http/request-hop.js +140 -0
  470. package/dist/src/web-ui/app/ARCHITECTURE.md +82 -7
  471. package/dist/src/web-ui/app/app-bootstrap.js +53 -0
  472. package/dist/src/web-ui/app/app-dom.js +80 -0
  473. package/dist/src/web-ui/app/app.js +199 -217
  474. package/dist/src/web-ui/app/components/composer-context-window.d.ts +25 -0
  475. package/dist/src/web-ui/app/components/composer-context-window.js +155 -0
  476. package/dist/src/web-ui/app/components/composer-plan.d.ts +9 -0
  477. package/dist/src/web-ui/app/components/composer-plan.js +128 -0
  478. package/dist/src/web-ui/app/components/conversation-activity.d.ts +7 -6
  479. package/dist/src/web-ui/app/components/conversation-activity.js +97 -163
  480. package/dist/src/web-ui/app/components/conversation-role-cards.d.ts +24 -0
  481. package/dist/src/web-ui/app/components/conversation-role-cards.js +237 -0
  482. package/dist/src/web-ui/app/components/conversation-schedule.js +71 -0
  483. package/dist/src/web-ui/app/components/conversation-sidebar-layout.js +12 -0
  484. package/dist/src/web-ui/app/components/conversation-sources.d.ts +7 -0
  485. package/dist/src/web-ui/app/components/conversation-sources.js +182 -0
  486. package/dist/src/web-ui/app/components/conversation-status.js +65 -0
  487. package/dist/src/web-ui/app/components/conversation-tools.d.ts +13 -0
  488. package/dist/src/web-ui/app/components/conversation-tools.js +284 -0
  489. package/dist/src/web-ui/app/components/conversation-view.js +73 -17
  490. package/dist/src/web-ui/app/components/dashboard/activity.js +61 -0
  491. package/dist/src/web-ui/app/components/dashboard/icons.js +23 -0
  492. package/dist/src/web-ui/app/components/dashboard/recent-conversations.js +64 -0
  493. package/dist/src/web-ui/app/components/dashboard/workspace.js +107 -0
  494. package/dist/src/web-ui/app/components/message-link-previews.d.ts +16 -0
  495. package/dist/src/web-ui/app/components/message-link-previews.js +179 -0
  496. package/dist/src/web-ui/app/components/model-selector.js +4 -1
  497. package/dist/src/web-ui/app/components/operations-section.js +46 -0
  498. package/dist/src/web-ui/app/components/schedules/details.js +101 -0
  499. package/dist/src/web-ui/app/components/schedules/form.d.ts +13 -0
  500. package/dist/src/web-ui/app/components/schedules/form.js +246 -0
  501. package/dist/src/web-ui/app/components/schedules/workspace-state.js +59 -0
  502. package/dist/src/web-ui/app/components/schedules/workspace.js +165 -0
  503. package/dist/src/web-ui/app/components/workspace-shell.js +133 -79
  504. package/dist/src/web-ui/app/configuration-feature.js +72 -0
  505. package/dist/src/web-ui/app/controllers/composer-attachments-controller.d.ts +1 -0
  506. package/dist/src/web-ui/app/controllers/composer-attachments-controller.js +17 -6
  507. package/dist/src/web-ui/app/controllers/composer-submit-controller.d.ts +2 -0
  508. package/dist/src/web-ui/app/controllers/composer-submit-controller.js +15 -1
  509. package/dist/src/web-ui/app/controllers/composer-surface-controller.js +58 -0
  510. package/dist/src/web-ui/app/controllers/composer-workspace-controller.d.ts +53 -0
  511. package/dist/src/web-ui/app/controllers/composer-workspace-controller.js +180 -0
  512. package/dist/src/web-ui/app/controllers/conversation-read-state-controller.d.ts +23 -0
  513. package/dist/src/web-ui/app/controllers/conversation-read-state-controller.js +82 -0
  514. package/dist/src/web-ui/app/controllers/conversation-session-controller.d.ts +8 -0
  515. package/dist/src/web-ui/app/controllers/conversation-session-controller.js +28 -39
  516. package/dist/src/web-ui/app/controllers/dashboard-controller.js +127 -0
  517. package/dist/src/web-ui/app/controllers/home-composer-feature.d.ts +40 -0
  518. package/dist/src/web-ui/app/controllers/home-composer-feature.js +119 -0
  519. package/dist/src/web-ui/app/controllers/home-conversation-activation.js +37 -0
  520. package/dist/src/web-ui/app/controllers/realtime-event-controller.d.ts +2 -0
  521. package/dist/src/web-ui/app/controllers/realtime-event-controller.js +126 -90
  522. package/dist/src/web-ui/app/controllers/runtime-selection-controller.d.ts +2 -1
  523. package/dist/src/web-ui/app/controllers/runtime-selection-controller.js +17 -14
  524. package/dist/src/web-ui/app/controllers/schedule-realtime.js +118 -0
  525. package/dist/src/web-ui/app/controllers/schedules-controller.js +421 -0
  526. package/dist/src/web-ui/app/controllers/session-controller.js +47 -15
  527. package/dist/src/web-ui/app/dashboard-feature.js +44 -0
  528. package/dist/src/web-ui/app/index.html +240 -189
  529. package/dist/src/web-ui/app/lib/composer-plan-model.d.ts +32 -0
  530. package/dist/src/web-ui/app/lib/composer-plan-model.js +108 -0
  531. package/dist/src/web-ui/app/lib/composer-submission-scope.d.ts +21 -0
  532. package/dist/src/web-ui/app/lib/composer-submission-scope.js +13 -0
  533. package/dist/src/web-ui/app/lib/context-window-snapshot-order.d.ts +15 -0
  534. package/dist/src/web-ui/app/lib/context-window-snapshot-order.js +31 -0
  535. package/dist/src/web-ui/app/lib/conversation-role-model.d.ts +28 -0
  536. package/dist/src/web-ui/app/lib/conversation-role-model.js +275 -0
  537. package/dist/src/web-ui/app/lib/conversation-status-model.d.ts +12 -0
  538. package/dist/src/web-ui/app/lib/conversation-status-model.js +116 -0
  539. package/dist/src/web-ui/app/lib/dashboard-job-templates.js +41 -0
  540. package/dist/src/web-ui/app/lib/dashboard-presentation.js +126 -0
  541. package/dist/src/web-ui/app/lib/event-presentation.js +30 -9
  542. package/dist/src/web-ui/app/lib/message-markdown.d.ts +5 -0
  543. package/dist/src/web-ui/app/lib/message-markdown.js +99 -0
  544. package/dist/src/web-ui/app/lib/message-url-policy.d.ts +1 -0
  545. package/dist/src/web-ui/app/lib/message-url-policy.js +13 -0
  546. package/dist/src/web-ui/app/lib/schedule-errors.js +29 -0
  547. package/dist/src/web-ui/app/lib/schedule-message.js +30 -0
  548. package/dist/src/web-ui/app/lib/schedule-presentation.js +81 -0
  549. package/dist/src/web-ui/app/lib/session-read-state.d.ts +22 -0
  550. package/dist/src/web-ui/app/lib/session-read-state.js +63 -0
  551. package/dist/src/web-ui/app/lib/source-url-policy.d.ts +2 -0
  552. package/dist/src/web-ui/app/lib/source-url-policy.js +31 -0
  553. package/dist/src/web-ui/app/lib/task-progress.d.ts +53 -0
  554. package/dist/src/web-ui/app/lib/task-progress.js +233 -0
  555. package/dist/src/web-ui/app/lib/text-format.js +2 -143
  556. package/dist/src/web-ui/app/lib/tool-activity-event.d.ts +26 -0
  557. package/dist/src/web-ui/app/lib/tool-activity-event.js +228 -0
  558. package/dist/src/web-ui/app/lib/tool-activity-model.d.ts +41 -0
  559. package/dist/src/web-ui/app/lib/tool-activity-model.js +255 -0
  560. package/dist/src/web-ui/app/lib/tool-invocation-count.d.ts +5 -0
  561. package/dist/src/web-ui/app/lib/tool-invocation-count.js +21 -0
  562. package/dist/src/web-ui/app/lib/tool-timeline.d.ts +3 -0
  563. package/dist/src/web-ui/app/lib/tool-timeline.js +18 -0
  564. package/dist/src/web-ui/app/lib/web-source-event.d.ts +8 -0
  565. package/dist/src/web-ui/app/lib/web-source-event.js +21 -0
  566. package/dist/src/web-ui/app/lib/web-sources.d.ts +36 -0
  567. package/dist/src/web-ui/app/lib/web-sources.js +177 -0
  568. package/dist/src/web-ui/app/schedules-feature.js +87 -0
  569. package/dist/src/web-ui/app/services/message-link-preview-client.d.ts +14 -0
  570. package/dist/src/web-ui/app/services/message-link-preview-client.js +96 -0
  571. package/dist/src/web-ui/app/services/runtime-web-client/schedules.js +51 -0
  572. package/dist/src/web-ui/app/services/runtime-web-client.d.ts +37 -0
  573. package/dist/src/web-ui/app/services/runtime-web-client.js +13 -8
  574. package/dist/src/web-ui/app/styles/00-tokens-base.css +15 -3
  575. package/dist/src/web-ui/app/styles/10-shell-sessions.css +24 -34
  576. package/dist/src/web-ui/app/styles/12-conversation-sidebar.css +93 -0
  577. package/dist/src/web-ui/app/styles/18-dashboard.css +384 -0
  578. package/dist/src/web-ui/app/styles/20-chat-composer.css +54 -600
  579. package/dist/src/web-ui/app/styles/21-composer-controls.css +368 -0
  580. package/dist/src/web-ui/app/styles/22-composer-context-window.css +90 -0
  581. package/dist/src/web-ui/app/styles/23-composer-plan.css +171 -0
  582. package/dist/src/web-ui/app/styles/24-conversation-role-cards.css +205 -0
  583. package/dist/src/web-ui/app/styles/25-conversation-sources.css +141 -0
  584. package/dist/src/web-ui/app/styles/26-message-content.css +295 -0
  585. package/dist/src/web-ui/app/styles/27-conversation-tools.css +266 -0
  586. package/dist/src/web-ui/app/styles/28-conversation-status.css +52 -0
  587. package/dist/src/web-ui/app/styles/30-inspector-config.css +21 -209
  588. package/dist/src/web-ui/app/styles/35-memory-onboarding.css +8 -8
  589. package/dist/src/web-ui/app/styles/36-memory-management.css +13 -13
  590. package/dist/src/web-ui/app/styles/37-config-operations.css +197 -0
  591. package/dist/src/web-ui/app/styles/38-schedule-workspace.css +263 -0
  592. package/dist/src/web-ui/app/styles/38-schedules.css +352 -0
  593. package/dist/src/web-ui/app/styles/40-config-workspace.css +36 -36
  594. package/dist/src/web-ui/app/styles/90-responsive.css +28 -77
  595. package/dist/src/web-ui/app/styles/91-schedules-responsive.css +72 -0
  596. package/dist/src/web-ui/app/styles/92-dashboard-responsive.css +88 -0
  597. package/dist/src/web-ui/app/styles/foundation.css +2 -2
  598. package/dist/src/web-ui/app/styles.css +15 -0
  599. package/dist/src/web-ui/app/ui-behavior.d.ts +1 -1
  600. package/dist/src/web-ui/app/ui-behavior.js +4 -2
  601. package/dist/src/web-ui/app/vendor/README.md +15 -0
  602. package/dist/src/web-ui/app/vendor/markdown-it.LICENSE +22 -0
  603. package/dist/src/web-ui/app/vendor/markdown-it.js +3003 -0
  604. package/dist/src/web-ui/link-preview/metadata.d.ts +9 -0
  605. package/dist/src/web-ui/link-preview/metadata.js +97 -0
  606. package/dist/src/web-ui/link-preview/preview-cache.d.ts +4 -0
  607. package/dist/src/web-ui/link-preview/preview-cache.js +23 -0
  608. package/dist/src/web-ui/link-preview/raster-response.d.ts +9 -0
  609. package/dist/src/web-ui/link-preview/raster-response.js +49 -0
  610. package/dist/src/web-ui/link-preview/routes.d.ts +3 -0
  611. package/dist/src/web-ui/link-preview/routes.js +97 -0
  612. package/dist/src/web-ui/link-preview/service.d.ts +11 -0
  613. package/dist/src/web-ui/link-preview/service.js +117 -0
  614. package/dist/src/web-ui/local-runtime/api-router.d.ts +4 -1
  615. package/dist/src/web-ui/local-runtime/api-router.js +42 -73
  616. package/dist/src/web-ui/local-runtime/contracts.d.ts +2 -2
  617. package/dist/src/web-ui/local-runtime/environment-registry.d.ts +12 -1
  618. package/dist/src/web-ui/local-runtime/environment-registry.js +38 -3
  619. package/dist/src/web-ui/local-runtime/realtime-controller.js +3 -1
  620. package/dist/src/web-ui/local-runtime/request-execution.d.ts +5 -1
  621. package/dist/src/web-ui/local-runtime/request-execution.js +38 -2
  622. package/dist/src/web-ui/local-runtime/schedule-job-creation.d.ts +7 -0
  623. package/dist/src/web-ui/local-runtime/schedule-job-creation.js +62 -0
  624. package/dist/src/web-ui/local-runtime/schedule-management-routes.d.ts +30 -0
  625. package/dist/src/web-ui/local-runtime/schedule-management-routes.js +134 -0
  626. package/dist/src/web-ui/local-runtime/schedule-run-page.d.ts +5 -0
  627. package/dist/src/web-ui/local-runtime/schedule-run-page.js +23 -0
  628. package/dist/src/web-ui/local-runtime/session-routes.d.ts +17 -0
  629. package/dist/src/web-ui/local-runtime/session-routes.js +74 -0
  630. package/dist/src/web-ui/local-runtime-backend.d.ts +2 -0
  631. package/dist/src/web-ui/local-runtime-backend.js +11 -1
  632. package/dist/src/web-ui/schedule-creation-contract.d.ts +7 -0
  633. package/dist/src/web-ui/schedule-creation-contract.js +1 -0
  634. package/dist/src/web-ui/server-shutdown.d.ts +4 -0
  635. package/dist/src/web-ui/server-shutdown.js +32 -0
  636. package/dist/src/web-ui/server.js +13 -10
  637. package/dist/src/web-ui/session-read-state/availability.d.ts +16 -0
  638. package/dist/src/web-ui/session-read-state/availability.js +20 -0
  639. package/dist/src/web-ui/session-read-state/projection.d.ts +17 -0
  640. package/dist/src/web-ui/session-read-state/projection.js +71 -0
  641. package/dist/src/web-ui/session-read-state/service.d.ts +86 -0
  642. package/dist/src/web-ui/session-read-state/service.js +89 -0
  643. package/dist/src/web-ui/session-read-state/store.d.ts +22 -0
  644. package/dist/src/web-ui/session-read-state/store.js +110 -0
  645. package/docs/configuration.md +56 -9
  646. package/docs/installation.md +7 -4
  647. package/docs/known-limitations.md +21 -0
  648. package/docs/long-term-memory.md +46 -5
  649. package/docs/plugins.md +28 -13
  650. package/docs/runtime-invariant-coverage.md +18 -17
  651. package/docs/runtime-library.md +23 -0
  652. package/docs/runtime-prompt-policy-contracts.md +27 -17
  653. package/docs/runtime-public-contracts.md +32 -1
  654. package/package.json +6 -3
  655. package/plugins/capability-brief/source/index.ts +5 -48
  656. package/plugins/capability-brief/src/index.cjs +46 -33
  657. package/plugins/code-outline/plugin.json +15 -0
  658. package/plugins/document-reader/plugin.json +17 -0
  659. package/plugins/filesystem/plugin.json +17 -2
  660. package/plugins/json-inspector/plugin.json +12 -0
  661. package/plugins/local-search/plugin.json +12 -0
  662. package/plugins/memory/plugin.json +26 -1
  663. package/plugins/memory/source/index.ts +10 -6
  664. package/plugins/memory/src/index.cjs +11 -7
  665. package/plugins/project-orientation/plugin.json +14 -0
  666. package/plugins/system-probe/plugin.json +1 -0
  667. package/plugins/web/README.md +125 -0
  668. package/plugins/web/plugin.json +1 -1
  669. package/plugins/web/skills/web_fetch_skill/SKILL.md +2 -2
  670. package/plugins/web/skills/web_search_skill/SKILL.md +8 -4
  671. package/plugins/web/source/aggregate-gate.ts +8 -130
  672. package/plugins/web/source/deadline.ts +14 -50
  673. package/plugins/web/source/errors.ts +22 -12
  674. package/plugins/web/source/fetch-presentation.ts +61 -0
  675. package/plugins/web/source/fetch-service.ts +2 -31
  676. package/plugins/web/source/light/config.ts +196 -0
  677. package/plugins/web/source/light/crawl/origin-gate.ts +134 -0
  678. package/plugins/web/source/light/crawl/robots-cache.ts +71 -0
  679. package/plugins/web/source/light/crawl/robots-parser.ts +132 -0
  680. package/plugins/web/source/light/crawl/robots-policy.ts +154 -0
  681. package/plugins/web/source/light/crawl/session-budget.ts +141 -0
  682. package/plugins/web/source/light/crawl/transport.ts +216 -0
  683. package/plugins/web/source/light/discovery/candidate-values.ts +63 -0
  684. package/plugins/web/source/light/discovery/feed-document.ts +127 -0
  685. package/plugins/web/source/light/discovery/html-links.ts +80 -0
  686. package/plugins/web/source/light/discovery/html-robots-directives.ts +29 -0
  687. package/plugins/web/source/light/discovery/markup-tree.ts +145 -0
  688. package/plugins/web/source/light/discovery/origin-dates.ts +71 -0
  689. package/plugins/web/source/light/discovery/sitemap-document.ts +63 -0
  690. package/plugins/web/source/light/documents/cache-policy.ts +28 -0
  691. package/plugins/web/source/light/documents/document-cache.ts +99 -0
  692. package/plugins/web/source/light/documents/document-charset.ts +89 -0
  693. package/plugins/web/source/light/documents/document-contract.ts +20 -0
  694. package/plugins/web/source/light/documents/document-reader.ts +75 -0
  695. package/plugins/web/source/light/documents/extract-document.ts +124 -0
  696. package/plugins/web/source/light/documents/http-cache-freshness.ts +68 -0
  697. package/plugins/web/source/light/documents/response-decoding.ts +120 -0
  698. package/plugins/web/source/light/ranking/document-ranking.ts +114 -0
  699. package/plugins/web/source/light/ranking/query-normalization.ts +69 -0
  700. package/plugins/web/source/light/search-collection.ts +136 -0
  701. package/plugins/web/source/light/search-frontier.ts +246 -0
  702. package/plugins/web/source/light/search-metadata.ts +84 -0
  703. package/plugins/web/source/light/search-service.ts +154 -0
  704. package/plugins/web/source/light/search-unavailable.ts +33 -0
  705. package/plugins/web/source/light/sources/catalog.ts +312 -0
  706. package/plugins/web/source/light/sources/source-definition.ts +9 -0
  707. package/plugins/web/source/light/sources/source-selection.ts +35 -0
  708. package/plugins/web/source/limits.ts +3 -6
  709. package/plugins/web/source/network-policy.ts +28 -226
  710. package/plugins/web/source/plugin.ts +70 -56
  711. package/plugins/web/source/public-http.ts +17 -133
  712. package/plugins/web/source/request-hop.ts +11 -191
  713. package/plugins/web/source/search-presentation.ts +63 -63
  714. package/plugins/web/source/search-service-selector.ts +31 -0
  715. package/plugins/web/source/search-service.ts +6 -0
  716. package/plugins/web/source/search-source-presentation.ts +76 -0
  717. package/plugins/web/source/search-types.ts +4 -0
  718. package/plugins/web/source/source-output-receipts.ts +267 -0
  719. package/plugins/web/source/source-receipt-budget.ts +51 -0
  720. package/plugins/web/source/source-receipt-contract.ts +18 -0
  721. package/plugins/web/src/index.cjs +3289 -303
  722. package/runtime.config.schema.json +7 -0
  723. package/src/runtime/README.md +134 -9
  724. package/src/runtime/local-host/README.md +86 -0
  725. package/src/runtime/scheduler/README.md +166 -0
  726. package/dist/src/model-gateway/structured-output/budget.d.ts +0 -7
  727. package/dist/src/model-gateway/structured-output/budget.js +0 -20
  728. package/dist/src/model-gateway/structured-output/schema-character-estimator.d.ts +0 -1
  729. package/dist/src/model-gateway/structured-output/schema-character-estimator.js +0 -211
  730. package/dist/src/model-gateway/structured-output-budget.d.ts +0 -1
  731. package/dist/src/model-gateway/structured-output-budget.js +0 -1
@@ -0,0 +1,87 @@
1
+ import { assertValidSessionId } from "../../sessions/record/rules.js";
2
+ import { createSessionDeletionBoundary } from "./session-deletion-boundary.js";
3
+ import { createSessionMutationQueue } from "./session-mutation-queue.js";
4
+ // Adapter composition metadata. Each bound operation owns its deletion lifetime.
5
+ const bindings = new WeakMap();
6
+ function attachmentBindings(sessions) {
7
+ const existing = bindings.get(sessions);
8
+ if (existing)
9
+ return existing;
10
+ const bound = new WeakMap();
11
+ bindings.set(sessions, bound);
12
+ return bound;
13
+ }
14
+ /** The composed owner already finalizes attachments within its session transaction. */
15
+ export function bindManagedSessionAttachmentDeletion(sessions, attachments) {
16
+ attachmentBindings(sessions).set(attachments, (id) => sessions.deleteSessionWithStats(id));
17
+ }
18
+ export async function deleteSessionWithAttachments(sessions, attachments, sessionId) {
19
+ assertValidSessionId(sessionId);
20
+ if (!attachments)
21
+ return sessions.deleteSessionWithStats(sessionId);
22
+ const bound = attachmentBindings(sessions);
23
+ const existing = bound.get(attachments);
24
+ if (existing)
25
+ return existing(sessionId);
26
+ const remove = createCompatibilitySessionDeletion(sessions, attachments);
27
+ bound.set(attachments, remove);
28
+ return remove(sessionId);
29
+ }
30
+ function createCompatibilitySessionDeletion(sessions, attachments) {
31
+ const enqueue = createSessionMutationQueue();
32
+ const pending = new Map();
33
+ return async (sessionId) => {
34
+ let current = pending.get(sessionId);
35
+ if (!current) {
36
+ current = {
37
+ deletion: createSessionDeletionBoundary(sessions, enqueue, (result) => deleteSessionAttachmentsIfSupported(attachments, result.sessionId)),
38
+ attempt: undefined,
39
+ callers: 0,
40
+ delivered: false,
41
+ };
42
+ pending.set(sessionId, current);
43
+ }
44
+ current.callers += 1;
45
+ try {
46
+ current.attempt ??= current.deletion.deleteSessionWithStats(sessionId);
47
+ const result = await current.attempt;
48
+ if (current.delivered) {
49
+ return {
50
+ sessionId,
51
+ deleted: false,
52
+ deletedMessages: 0,
53
+ deletedRequests: 0,
54
+ };
55
+ }
56
+ current.delivered = true;
57
+ return result;
58
+ }
59
+ finally {
60
+ current.callers -= 1;
61
+ // Concurrent callers share failure; only a later explicit call may retry.
62
+ if (current.callers === 0)
63
+ current.attempt = undefined;
64
+ // Raw stores may reuse IDs after successful deletion; retain only failed work.
65
+ if (canReleaseCompatibilityDeletion(current))
66
+ pending.delete(sessionId);
67
+ }
68
+ };
69
+ }
70
+ function canReleaseCompatibilityDeletion(state) {
71
+ return state.callers === 0 && state.delivered;
72
+ }
73
+ export async function deleteSessionAttachmentsIfSupported(attachments, sessionId) {
74
+ if (!attachments)
75
+ return;
76
+ try {
77
+ await attachments.deleteSessionAttachments(sessionId);
78
+ }
79
+ catch (error) {
80
+ if (isUnsupportedAttachmentOwner(error))
81
+ return;
82
+ throw error;
83
+ }
84
+ }
85
+ function isUnsupportedAttachmentOwner(error) {
86
+ return error instanceof Error && error.message === "attachment_owner_invalid";
87
+ }
@@ -0,0 +1,10 @@
1
+ import type { SessionDeleteResult } from "../../sessions/types.js";
2
+ import type { SessionStore } from "../ports.js";
3
+ import { type SessionDeletionFinalizer } from "./session-deletion-finalization.js";
4
+ import type { SessionMutationQueue } from "./session-mutation-queue.js";
5
+ /** Shared transaction for managed stores and compatibility deletion adapters. */
6
+ export declare function createSessionDeletionBoundary(base: Pick<SessionStore, "deleteSessionWithStats">, enqueue: SessionMutationQueue, finalize?: SessionDeletionFinalizer): {
7
+ deleteSessionWithStats: (sessionId: string) => Promise<SessionDeleteResult>;
8
+ isDeleted: (sessionId: string) => boolean;
9
+ onDeleted: (listener: import("./session-deletion-cleanup.js").SessionDeletionListener) => () => void;
10
+ };
@@ -0,0 +1,39 @@
1
+ import { assertValidSessionId } from "../../sessions/record/rules.js";
2
+ import { createSessionDeletionCleanup } from "./session-deletion-cleanup.js";
3
+ import { createSessionDeletionFinalization, } from "./session-deletion-finalization.js";
4
+ import { createSessionDeletionReceipts } from "./session-deletion-receipts.js";
5
+ /** Shared transaction for managed stores and compatibility deletion adapters. */
6
+ export function createSessionDeletionBoundary(base, enqueue, finalize) {
7
+ const cleanup = createSessionDeletionCleanup();
8
+ const receipts = createSessionDeletionReceipts(base);
9
+ const finalization = finalize
10
+ ? createSessionDeletionFinalization(finalize)
11
+ : undefined;
12
+ if (finalization)
13
+ cleanup.onDeleted(finalization.finalizeDeletedSession);
14
+ async function deleteSessionWithStats(sessionId) {
15
+ assertValidSessionId(sessionId);
16
+ const settlePhysical = finalization?.prepare(sessionId);
17
+ let notification;
18
+ // Reserve before invoking listeners: synchronous reentry must queue behind us.
19
+ const result = enqueue(sessionId, async () => {
20
+ const [deletion] = await Promise.allSettled([receipts.remove(sessionId)]);
21
+ settlePhysical?.(deletion);
22
+ const [notified] = await notification;
23
+ if (deletion.status === "rejected")
24
+ throw deletion.reason;
25
+ if (notified.status === "rejected")
26
+ throw notified.reason;
27
+ receipts.acknowledge(sessionId);
28
+ return deletion.value;
29
+ });
30
+ // The queue is deferred; intent and cleanup are still installed synchronously.
31
+ notification = Promise.allSettled([cleanup.notify(sessionId)]);
32
+ return result;
33
+ }
34
+ return {
35
+ deleteSessionWithStats,
36
+ isDeleted: cleanup.isDeleted,
37
+ onDeleted: cleanup.onDeleted,
38
+ };
39
+ }
@@ -0,0 +1,7 @@
1
+ export type SessionDeletionListener = (sessionId: string) => void | Promise<void>;
2
+ /** Tombstones and original cleanup obligations last for this environment lifetime. */
3
+ export declare function createSessionDeletionCleanup(): {
4
+ isDeleted: (sessionId: string) => boolean;
5
+ onDeleted: (listener: SessionDeletionListener) => () => void;
6
+ notify: (sessionId: string) => Promise<void>;
7
+ };
@@ -0,0 +1,62 @@
1
+ /** Tombstones and original cleanup obligations last for this environment lifetime. */
2
+ export function createSessionDeletionCleanup() {
3
+ const listeners = new Set();
4
+ const deletedSessions = new Map();
5
+ function deletionState(sessionId) {
6
+ const existing = deletedSessions.get(sessionId);
7
+ if (existing)
8
+ return existing;
9
+ const state = { pending: new Set(listeners) };
10
+ deletedSessions.set(sessionId, state);
11
+ return state;
12
+ }
13
+ return {
14
+ isDeleted: (sessionId) => deletedSessions.has(sessionId),
15
+ onDeleted: (listener) => {
16
+ listeners.add(listener);
17
+ return () => {
18
+ listeners.delete(listener);
19
+ };
20
+ },
21
+ notify: (sessionId) => {
22
+ // Install the tombstone before invoking any listener or yielding.
23
+ const state = deletionState(sessionId);
24
+ if (state.attempt)
25
+ return state.attempt;
26
+ if (state.pending.size === 0)
27
+ return Promise.resolve();
28
+ return startCleanupAttempt(sessionId, state);
29
+ },
30
+ };
31
+ }
32
+ function startCleanupAttempt(sessionId, state) {
33
+ let resolveAttempt;
34
+ let rejectAttempt;
35
+ const attempt = new Promise((resolve, reject) => {
36
+ resolveAttempt = resolve;
37
+ rejectAttempt = reject;
38
+ });
39
+ // Reentrant or concurrent deletion sees this same attempt immediately.
40
+ state.attempt = attempt;
41
+ void settleCleanupListeners(sessionId, state).then(() => {
42
+ state.attempt = undefined;
43
+ resolveAttempt();
44
+ }, (error) => {
45
+ state.attempt = undefined;
46
+ rejectAttempt(error);
47
+ });
48
+ return attempt;
49
+ }
50
+ async function settleCleanupListeners(sessionId, state) {
51
+ const outcomes = await Promise.allSettled([...state.pending].map(async (listener) => {
52
+ await listener(sessionId);
53
+ state.pending.delete(listener);
54
+ }));
55
+ // Keep only failed obligations, and wait for every listener before a retry.
56
+ const failure = outcomes.find(isFailedCleanup);
57
+ if (failure)
58
+ throw failure.reason;
59
+ }
60
+ function isFailedCleanup(outcome) {
61
+ return outcome.status === "rejected";
62
+ }
@@ -0,0 +1,7 @@
1
+ import type { SessionDeleteResult } from "../../sessions/types.js";
2
+ export type SessionDeletionFinalizer = (result: SessionDeleteResult) => void | Promise<void>;
3
+ /** Cleanup captures its physical-result promise before another call can replace it. */
4
+ export declare function createSessionDeletionFinalization(finalize: SessionDeletionFinalizer): {
5
+ prepare(sessionId: string): (outcome: PromiseSettledResult<SessionDeleteResult>) => void;
6
+ finalizeDeletedSession(sessionId: string): Promise<void>;
7
+ };
@@ -0,0 +1,34 @@
1
+ /** Cleanup captures its physical-result promise before another call can replace it. */
2
+ export function createSessionDeletionFinalization(finalize) {
3
+ const physicalResults = new Map();
4
+ return {
5
+ prepare(sessionId) {
6
+ let resolve;
7
+ let reject;
8
+ const physical = new Promise((onResult, onError) => {
9
+ resolve = onResult;
10
+ reject = onError;
11
+ });
12
+ // Concurrent callers share cleanup, so some prepared results have no listener.
13
+ void physical.catch(() => undefined);
14
+ physicalResults.set(sessionId, physical);
15
+ return (outcome) => {
16
+ if (outcome.status === "fulfilled")
17
+ resolve(outcome.value);
18
+ else
19
+ reject(outcome.reason);
20
+ if (physicalResults.get(sessionId) === physical)
21
+ physicalResults.delete(sessionId);
22
+ };
23
+ },
24
+ async finalizeDeletedSession(sessionId) {
25
+ const physical = physicalResults.get(sessionId);
26
+ if (!physical)
27
+ throw new Error("session_deletion_attempt_missing");
28
+ const result = await physical;
29
+ if (!result.deleted)
30
+ return;
31
+ await finalize(result);
32
+ },
33
+ };
34
+ }
@@ -0,0 +1,7 @@
1
+ import type { SessionDeleteResult } from "../../sessions/types.js";
2
+ import type { SessionStore } from "../ports.js";
3
+ /** Accessed only inside the owning lifecycle's per-session mutation queue. */
4
+ export declare function createSessionDeletionReceipts(base: Pick<SessionStore, "deleteSessionWithStats">): {
5
+ remove(sessionId: string): Promise<SessionDeleteResult>;
6
+ acknowledge(sessionId: string): void;
7
+ };
@@ -0,0 +1,18 @@
1
+ /** Accessed only inside the owning lifecycle's per-session mutation queue. */
2
+ export function createSessionDeletionReceipts(base) {
3
+ const undelivered = new Map();
4
+ return {
5
+ async remove(sessionId) {
6
+ const existing = undelivered.get(sessionId);
7
+ if (existing)
8
+ return existing;
9
+ // Keep exact physical counts when later lifecycle cleanup rejects.
10
+ const receipt = { ...(await base.deleteSessionWithStats(sessionId)) };
11
+ undelivered.set(sessionId, receipt);
12
+ return receipt;
13
+ },
14
+ acknowledge(sessionId) {
15
+ undelivered.delete(sessionId);
16
+ },
17
+ };
18
+ }
@@ -0,0 +1,21 @@
1
+ import type { SessionStore } from "../ports.js";
2
+ import type { SessionDeletionListener } from "./session-deletion-cleanup.js";
3
+ import type { SessionDeletionFinalizer } from "./session-deletion-finalization.js";
4
+ export type { SessionDeletionListener } from "./session-deletion-cleanup.js";
5
+ export declare class SessionDeletedError extends Error {
6
+ readonly sessionId: string;
7
+ readonly code = "session_deleted";
8
+ constructor(sessionId: string);
9
+ }
10
+ export declare function isSessionDeletedError(error: unknown): error is SessionDeletedError;
11
+ export type SessionLifecycleStore = Readonly<{
12
+ store: SessionStore;
13
+ isDeleted: (sessionId: string) => boolean;
14
+ onDeleted: (listener: SessionDeletionListener) => () => void;
15
+ }>;
16
+ /**
17
+ * Environment-owned deletion boundary. Every caller must use the wrapped store:
18
+ * an in-flight write finishes before deletion, while queued and later writes fail.
19
+ * Tombstones last for this application lifetime; deleted IDs cannot be reused.
20
+ */
21
+ export declare function createSessionLifecycleStore(base: SessionStore, finalizeDeletion?: SessionDeletionFinalizer): SessionLifecycleStore;
@@ -0,0 +1,72 @@
1
+ import { createSessionDeletionBoundary } from "./session-deletion-boundary.js";
2
+ import { createSessionMutationQueue } from "./session-mutation-queue.js";
3
+ export class SessionDeletedError extends Error {
4
+ sessionId;
5
+ code = "session_deleted";
6
+ constructor(sessionId) {
7
+ super(`Session ${sessionId} has been deleted`);
8
+ this.sessionId = sessionId;
9
+ this.name = "SessionDeletedError";
10
+ }
11
+ }
12
+ export function isSessionDeletedError(error) {
13
+ return error instanceof SessionDeletedError;
14
+ }
15
+ /**
16
+ * Environment-owned deletion boundary. Every caller must use the wrapped store:
17
+ * an in-flight write finishes before deletion, while queued and later writes fail.
18
+ * Tombstones last for this application lifetime; deleted IDs cannot be reused.
19
+ */
20
+ export function createSessionLifecycleStore(base, finalizeDeletion) {
21
+ const enqueueSessionMutation = createSessionMutationQueue();
22
+ const deletion = createSessionDeletionBoundary(base, enqueueSessionMutation, finalizeDeletion);
23
+ function assertSessionNotDeleted(sessionId) {
24
+ if (deletion.isDeleted(sessionId)) {
25
+ throw new SessionDeletedError(sessionId);
26
+ }
27
+ }
28
+ function wrapSessionMutation(operation) {
29
+ return async (...args) => {
30
+ assertSessionNotDeleted(args[0]);
31
+ return enqueueSessionMutation(args[0], async () => {
32
+ assertSessionNotDeleted(args[0]);
33
+ return operation.apply(base, args);
34
+ });
35
+ };
36
+ }
37
+ const store = {
38
+ getAllSessions: base.getAllSessions.bind(base),
39
+ listSessions: base.listSessions.bind(base),
40
+ getSessionById: base.getSessionById.bind(base),
41
+ getSessionSnapshot: base.getSessionSnapshot.bind(base),
42
+ getRequestReplayById: base.getRequestReplayById.bind(base),
43
+ getOrCreateSession: wrapSessionMutation(base.getOrCreateSession),
44
+ updateSessionTitle: wrapSessionMutation(base.updateSessionTitle),
45
+ appendMessage: wrapSessionMutation(base.appendMessage),
46
+ startRequestStream: wrapSessionMutation(base.startRequestStream),
47
+ appendRequestEvent: wrapSessionMutation(base.appendRequestEvent),
48
+ compareAndSwapSessionMemoryCheckpoint: wrapSessionMutation(base.compareAndSwapSessionMemoryCheckpoint),
49
+ resetSession: wrapSessionMutation(base.resetSession),
50
+ clearSessionMessages: wrapSessionMutation(base.clearSessionMessages),
51
+ deleteMessage: wrapSessionMutation(base.deleteMessage),
52
+ deleteMessageWithStats: wrapSessionMutation(base.deleteMessageWithStats),
53
+ deleteSession: async (sessionId) => (await deletion.deleteSessionWithStats(sessionId)).deleted,
54
+ deleteSessionWithStats: deletion.deleteSessionWithStats,
55
+ ...(base.updateSessionRuntimeMode
56
+ ? {
57
+ updateSessionRuntimeMode: wrapSessionMutation(base.updateSessionRuntimeMode),
58
+ }
59
+ : {}),
60
+ ...(base.appendContextEntry
61
+ ? { appendContextEntry: wrapSessionMutation(base.appendContextEntry) }
62
+ : {}),
63
+ ...(base.upsertArtifactPaths
64
+ ? { upsertArtifactPaths: wrapSessionMutation(base.upsertArtifactPaths) }
65
+ : {}),
66
+ };
67
+ return {
68
+ store,
69
+ isDeleted: deletion.isDeleted,
70
+ onDeleted: deletion.onDeleted,
71
+ };
72
+ }
@@ -0,0 +1,3 @@
1
+ export type SessionMutationQueue = <T>(sessionId: string, operation: () => Promise<T>) => Promise<T>;
2
+ /** One queue per store lifetime; unrelated sessions remain independent. */
3
+ export declare function createSessionMutationQueue(): SessionMutationQueue;
@@ -0,0 +1,15 @@
1
+ /** One queue per store lifetime; unrelated sessions remain independent. */
2
+ export function createSessionMutationQueue() {
3
+ const queues = new Map();
4
+ return (sessionId, operation) => {
5
+ const predecessor = queues.get(sessionId) ?? Promise.resolve();
6
+ const result = predecessor.then(operation);
7
+ const settled = result.then(() => undefined, () => undefined);
8
+ queues.set(sessionId, settled);
9
+ void settled.then(() => {
10
+ if (queues.get(sessionId) === settled)
11
+ queues.delete(sessionId);
12
+ });
13
+ return result;
14
+ };
15
+ }
@@ -0,0 +1,16 @@
1
+ import { type ExecutionAgentCapabilityInvocation, type ExecutionAgentDecisionValidationIssue } from "./contracts.js";
2
+ import type { PreparedExecutionAgentCapability, PreparedExecutionAgentDecisionContract } from "./format.js";
3
+ export declare function parseCapabilityCatalogGroupIds(value: unknown, offeredCatalogGroupIds: readonly string[], issues: ExecutionAgentDecisionValidationIssue[]): readonly string[] | undefined;
4
+ export declare function parseCapabilityBatch(value: unknown, contract: PreparedExecutionAgentDecisionContract, issues: ExecutionAgentDecisionValidationIssue[]): readonly ExecutionAgentCapabilityInvocation[] | undefined;
5
+ export declare function parseCapabilityInvocation(params: Readonly<{
6
+ value: unknown;
7
+ path: string;
8
+ capabilities: readonly PreparedExecutionAgentCapability[];
9
+ observationOnly: boolean;
10
+ includesAction: boolean;
11
+ issues: ExecutionAgentDecisionValidationIssue[];
12
+ }>): Readonly<{
13
+ value?: ExecutionAgentCapabilityInvocation;
14
+ expectedKeys: readonly string[];
15
+ }>;
16
+ export declare function parseWorkingDirectory(record: Record<string, unknown>, contract: PreparedExecutionAgentDecisionContract, issues: ExecutionAgentDecisionValidationIssue[]): string | undefined;
@@ -0,0 +1,165 @@
1
+ import { CAPABILITY_INTENT_MAX_LENGTH, materializeCapabilityControlsIfComplete, validateCapabilitySelectionControls, } from "../../orchestration/capability-adapters/index.js";
2
+ import { normalizeExecutionWorkingDirectory } from "../../orchestration/capability-adapters/working-directory.js";
3
+ import { executionCapabilityControlsIssue, normalizeGeneratedExecutionCapabilityControls, parseExecutionOperationObjective, requiresExecutionOperationObjective, } from "./capability-invocation-contract.js";
4
+ import { EXECUTION_AGENT_CAPABILITY_SCOPE_GROUP_COUNT_MAX, } from "./contracts.js";
5
+ import { asRecord, exactKeys, issue, validateBoundedText, } from "./decision-validation.js";
6
+ export function parseCapabilityCatalogGroupIds(value, offeredCatalogGroupIds, issues) {
7
+ if (!Array.isArray(value) ||
8
+ value.length === 0 ||
9
+ value.length > EXECUTION_AGENT_CAPABILITY_SCOPE_GROUP_COUNT_MAX ||
10
+ new Set(value).size !== value.length ||
11
+ value.some((entry) => typeof entry !== "string")) {
12
+ issues.push(issue("execution_agent_capability_scope_invalid", "decision.catalogGroupIds", `catalogGroupIds must contain 1-${EXECUTION_AGENT_CAPABILITY_SCOPE_GROUP_COUNT_MAX} distinct offered group ids.`));
13
+ return undefined;
14
+ }
15
+ const catalogGroupIds = value;
16
+ if (catalogGroupIds.some((groupId) => !offeredCatalogGroupIds.includes(groupId))) {
17
+ issues.push(issue("execution_agent_capability_scope_group_unavailable", "decision.catalogGroupIds", "Every catalogGroupId must identify one group offered for this exact scope action."));
18
+ return undefined;
19
+ }
20
+ return Object.freeze([...catalogGroupIds]);
21
+ }
22
+ export function parseCapabilityBatch(value, contract, issues) {
23
+ if (!Array.isArray(value) ||
24
+ value.length < 2 ||
25
+ contract.maxBatchCapabilityExecutions < 2 ||
26
+ value.length > contract.maxBatchCapabilityExecutions) {
27
+ issues.push(issue("execution_agent_capability_batch_invalid", "decision.invocations", `Observation batch must contain 2-${contract.maxBatchCapabilityExecutions} invocations.`));
28
+ return undefined;
29
+ }
30
+ const accepted = [];
31
+ const issueCountBeforeInvocations = issues.length;
32
+ value.forEach((invocation, index) => {
33
+ const parsed = parseCapabilityInvocation({
34
+ value: invocation,
35
+ path: `decision.invocations.${index}`,
36
+ capabilities: contract.capabilities,
37
+ observationOnly: true,
38
+ includesAction: false,
39
+ issues,
40
+ });
41
+ if (parsed.value)
42
+ accepted.push(parsed.value);
43
+ });
44
+ const invocationValidationFailed = accepted.length !== value.length ||
45
+ issues.length !== issueCountBeforeInvocations;
46
+ if (invocationValidationFailed)
47
+ return undefined;
48
+ return Object.freeze(accepted);
49
+ }
50
+ export function parseCapabilityInvocation(params) {
51
+ const record = asRecord(params.value);
52
+ const baseExpectedKeys = [
53
+ ...(params.includesAction ? ["action"] : []),
54
+ "capabilityId",
55
+ "intent",
56
+ ];
57
+ if (!record) {
58
+ params.issues.push(issue("execution_agent_capability_invocation_invalid", params.path, "Capability invocation must be an object."));
59
+ return { expectedKeys: baseExpectedKeys };
60
+ }
61
+ let capability;
62
+ if (typeof record.capabilityId !== "string") {
63
+ params.issues.push(issue("execution_agent_capability_id_invalid", `${params.path}.capabilityId`, "capabilityId must identify one available capability."));
64
+ }
65
+ else {
66
+ capability = params.capabilities.find(({ capabilityId }) => capabilityId === record.capabilityId);
67
+ if (!capability) {
68
+ params.issues.push(issue("execution_agent_capability_unavailable", `${params.path}.capabilityId`, "capabilityId must identify one available capability."));
69
+ }
70
+ else if (params.observationOnly && capability.effect !== "observation") {
71
+ params.issues.push(issue("execution_agent_capability_batch_effect_invalid", `${params.path}.capabilityId`, "Only observation capabilities may be invoked in a batch."));
72
+ }
73
+ }
74
+ const expectedKeys = [
75
+ ...baseExpectedKeys,
76
+ ...(capability && requiresExecutionOperationObjective(capability.partition)
77
+ ? ["operationObjective"]
78
+ : []),
79
+ ...(capability?.partition.selectionControlIds.length
80
+ ? ["selectionControls"]
81
+ : []),
82
+ ];
83
+ if (!params.includesAction) {
84
+ exactKeys(record, expectedKeys, params.issues, params.path);
85
+ }
86
+ const intent = validateBoundedText({
87
+ value: record.intent,
88
+ maximumLength: CAPABILITY_INTENT_MAX_LENGTH,
89
+ code: "execution_agent_capability_intent_invalid",
90
+ path: `${params.path}.intent`,
91
+ label: "Capability intent",
92
+ issues: params.issues,
93
+ });
94
+ const operationObjective = parseExecutionOperationObjective({
95
+ value: record.operationObjective,
96
+ required: capability !== undefined &&
97
+ requiresExecutionOperationObjective(capability.partition),
98
+ path: `${params.path}.operationObjective`,
99
+ issues: params.issues,
100
+ });
101
+ let selectionControls;
102
+ let controls;
103
+ if (capability) {
104
+ const normalizedSelectionControls = capability.partition.selectionControlIds.length > 0
105
+ ? normalizeGeneratedExecutionCapabilityControls(record.selectionControls, capability.partition.selectionSchema)
106
+ : {};
107
+ const selection = validateCapabilitySelectionControls(capability.partition, normalizedSelectionControls);
108
+ if (!selection.ok) {
109
+ params.issues.push(executionCapabilityControlsIssue({
110
+ issueCode: selection.issueCode,
111
+ controlId: selection.controlId,
112
+ path: selection.controlId
113
+ ? `${params.path}.selectionControls.${selection.controlId}`
114
+ : `${params.path}.selectionControls`,
115
+ }));
116
+ }
117
+ else {
118
+ if (capability.partition.selectionControlIds.length > 0) {
119
+ selectionControls = selection.value;
120
+ }
121
+ const materialized = materializeCapabilityControlsIfComplete(capability.partition, selection.value);
122
+ if (materialized && !materialized.ok) {
123
+ params.issues.push(executionCapabilityControlsIssue({
124
+ issueCode: materialized.issueCode,
125
+ controlId: materialized.controlId,
126
+ path: materialized.controlId
127
+ ? `${params.path}.selectionControls.${materialized.controlId}`
128
+ : `${params.path}.selectionControls`,
129
+ }));
130
+ }
131
+ else if (materialized?.ok) {
132
+ controls = materialized.value;
133
+ }
134
+ }
135
+ }
136
+ if (!capability ||
137
+ (params.observationOnly && capability.effect !== "observation") ||
138
+ intent === undefined ||
139
+ !operationObjective.ok) {
140
+ return { expectedKeys };
141
+ }
142
+ return {
143
+ expectedKeys,
144
+ value: Object.freeze({
145
+ capabilityId: capability.capabilityId,
146
+ intent,
147
+ ...(operationObjective.value
148
+ ? { operationObjective: operationObjective.value }
149
+ : {}),
150
+ ...(selectionControls ? { selectionControls } : {}),
151
+ ...(controls ? { controls } : {}),
152
+ }),
153
+ };
154
+ }
155
+ export function parseWorkingDirectory(record, contract, issues) {
156
+ if (!contract.includeWorkingDirectory)
157
+ return undefined;
158
+ if (record.workingDirectory === null)
159
+ return ".";
160
+ const normalized = normalizeExecutionWorkingDirectory(record.workingDirectory);
161
+ if (!normalized) {
162
+ issues.push(issue("execution_agent_working_directory_invalid", "decision.workingDirectory", "workingDirectory must be one safe agent-root-relative directory."));
163
+ }
164
+ return normalized;
165
+ }
@@ -1,3 +1,4 @@
1
+ import type { MemoryRecallDecision } from "../memory-recall-decision.js";
1
2
  import type { RoleCapabilitySelectionProjection, RoleCapabilitySelectionReconsiderationCause } from "../../orchestration/role-calls/index.js";
2
3
  import { type CapabilityControls, type CapabilityDescriptor } from "../../orchestration/capability-adapters/index.js";
3
4
  export declare const EXECUTION_AGENT_DECISION_MODEL_STEP: "execution.decision";
@@ -58,7 +59,7 @@ export type ExecutionAgentInvokeAuditorDecision = Readonly<ExecutionAgentDecisio
58
59
  action: "invoke_auditor";
59
60
  criterionIds: readonly string[];
60
61
  }>;
61
- export type ExecutionAgentDecision = ExecutionAgentOpenCapabilityScopeDecision | ExecutionAgentExtendCapabilityScopeDecision | ExecutionAgentRespondDecision | ExecutionAgentBlockedDecision | ExecutionAgentInvokeCapabilityDecision | ExecutionAgentInvokeCapabilitiesDecision | ExecutionAgentInvokePlannerDecision | ExecutionAgentInvokeAuditorDecision;
62
+ export type ExecutionAgentDecision = MemoryRecallDecision | ExecutionAgentOpenCapabilityScopeDecision | ExecutionAgentExtendCapabilityScopeDecision | ExecutionAgentRespondDecision | ExecutionAgentBlockedDecision | ExecutionAgentInvokeCapabilityDecision | ExecutionAgentInvokeCapabilitiesDecision | ExecutionAgentInvokePlannerDecision | ExecutionAgentInvokeAuditorDecision;
62
63
  /** Runtime-only transition emitted when controls refinement exhausts validation. */
63
64
  export type ExecutionAgentReconsiderCapabilitySelectionDecision = Readonly<{
64
65
  action: "reconsider_capability_selection";
@@ -94,6 +95,7 @@ export type ExecutionAgentDecisionContractOptions = Readonly<{
94
95
  includeAcknowledgement?: boolean;
95
96
  includeTitle?: boolean;
96
97
  allowRespond?: boolean;
98
+ allowMemoryRecall?: boolean;
97
99
  allowPlanner?: boolean;
98
100
  allowAuditor?: boolean;
99
101
  availableAuditCriterionIds?: readonly string[];
@@ -0,0 +1,2 @@
1
+ import { type ExecutionAgentDecisionContractOptions, type ExecutionAgentDecisionParseResult } from "./contracts.js";
2
+ export declare function parseExecutionAgentDecisionOutput(text: string, options?: ExecutionAgentDecisionContractOptions): ExecutionAgentDecisionParseResult;