@abot-ai/runtime 1.0.0 → 1.1.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 (549) hide show
  1. package/README.md +17 -3
  2. package/dist/scripts/add-runtime-model.js +4 -0
  3. package/dist/scripts/configure-long-term-memory.d.ts +6 -0
  4. package/dist/scripts/configure-long-term-memory.js +139 -0
  5. package/dist/scripts/init-runtime.js +11 -1
  6. package/dist/scripts/runtime-setup-files.d.ts +1 -0
  7. package/dist/scripts/runtime-setup-files.js +4 -0
  8. package/dist/src/capabilities/normal-invocation/contracts.d.ts +1 -0
  9. package/dist/src/capabilities/normal-invocation/validator.d.ts +5 -0
  10. package/dist/src/capabilities/normal-invocation/validator.js +35 -2
  11. package/dist/src/capabilities/tool-definition-validator/definition-fields.d.ts +7 -0
  12. package/dist/src/capabilities/tool-definition-validator/definition-fields.js +156 -0
  13. package/dist/src/capabilities/tool-definition-validator/definition-parser.d.ts +2 -0
  14. package/dist/src/capabilities/tool-definition-validator/definition-parser.js +76 -0
  15. package/dist/src/capabilities/tool-definition-validator/definition-shape.d.ts +7 -0
  16. package/dist/src/capabilities/tool-definition-validator/definition-shape.js +34 -0
  17. package/dist/src/capabilities/tool-definition-validator/event-presentation.d.ts +2 -0
  18. package/dist/src/capabilities/tool-definition-validator/event-presentation.js +97 -0
  19. package/dist/src/capabilities/tool-definition-validator/module-registry.d.ts +3 -0
  20. package/dist/src/capabilities/tool-definition-validator/module-registry.js +99 -0
  21. package/dist/src/capabilities/tool-definition-validator/payload-channel-spec.d.ts +2 -0
  22. package/dist/src/capabilities/tool-definition-validator/payload-channel-spec.js +190 -0
  23. package/dist/src/capabilities/tool-definition-validator/payload-channel-stage.d.ts +11 -0
  24. package/dist/src/capabilities/tool-definition-validator/payload-channel-stage.js +155 -0
  25. package/dist/src/capabilities/tool-definition-validator/payload-stage-conditions.d.ts +24 -0
  26. package/dist/src/capabilities/tool-definition-validator/payload-stage-conditions.js +193 -0
  27. package/dist/src/capabilities/tool-definition-validator.d.ts +2 -4
  28. package/dist/src/capabilities/tool-definition-validator.js +2 -776
  29. package/dist/src/cli/abot.js +11 -2
  30. package/dist/src/model-gateway/client/embeddings.d.ts +3 -0
  31. package/dist/src/model-gateway/client/embeddings.js +48 -0
  32. package/dist/src/model-gateway/client.d.ts +3 -1
  33. package/dist/src/model-gateway/client.js +5 -0
  34. package/dist/src/model-gateway/embeddings/constants.d.ts +1 -0
  35. package/dist/src/model-gateway/embeddings/constants.js +1 -0
  36. package/dist/src/model-gateway/embeddings/discovery.d.ts +10 -0
  37. package/dist/src/model-gateway/embeddings/discovery.js +39 -0
  38. package/dist/src/model-gateway/embeddings/execution.d.ts +16 -0
  39. package/dist/src/model-gateway/embeddings/execution.js +64 -0
  40. package/dist/src/model-gateway/embeddings/fingerprint.d.ts +3 -0
  41. package/dist/src/model-gateway/embeddings/fingerprint.js +36 -0
  42. package/dist/src/model-gateway/embeddings/profile.d.ts +11 -0
  43. package/dist/src/model-gateway/embeddings/profile.js +37 -0
  44. package/dist/src/model-gateway/embeddings/server-handler.d.ts +3 -0
  45. package/dist/src/model-gateway/embeddings/server-handler.js +89 -0
  46. package/dist/src/model-gateway/embeddings/validation.d.ts +7 -0
  47. package/dist/src/model-gateway/embeddings/validation.js +69 -0
  48. package/dist/src/model-gateway/index.d.ts +5 -3
  49. package/dist/src/model-gateway/index.js +3 -1
  50. package/dist/src/model-gateway/providers/contracts.d.ts +27 -1
  51. package/dist/src/model-gateway/providers/ollama/adapter.js +4 -0
  52. package/dist/src/model-gateway/providers/ollama/base-url.d.ts +1 -0
  53. package/dist/src/model-gateway/providers/ollama/base-url.js +4 -0
  54. package/dist/src/model-gateway/providers/ollama/embedding-models.d.ts +2 -0
  55. package/dist/src/model-gateway/providers/ollama/embedding-models.js +31 -0
  56. package/dist/src/model-gateway/providers/ollama/embeddings.d.ts +2 -0
  57. package/dist/src/model-gateway/providers/ollama/embeddings.js +43 -0
  58. package/dist/src/model-gateway/providers/ollama/request-diagnostics.js +2 -1
  59. package/dist/src/model-gateway/providers/openai/adapter.js +2 -0
  60. package/dist/src/model-gateway/providers/openai/embeddings.d.ts +2 -0
  61. package/dist/src/model-gateway/providers/openai/embeddings.js +87 -0
  62. package/dist/src/model-gateway/providers/openai/payload.js +5 -8
  63. package/dist/src/model-gateway/server/contracts.d.ts +5 -3
  64. package/dist/src/model-gateway/server/create-server.js +9 -0
  65. package/dist/src/model-gateway/server/errors.js +34 -0
  66. package/dist/src/model-gateway/server/index.d.ts +2 -0
  67. package/dist/src/model-gateway/server/index.js +2 -0
  68. package/dist/src/model-gateway/server/provider-fetch.d.ts +5 -3
  69. package/dist/src/model-gateway/server/provider-fetch.js +3 -1
  70. package/dist/src/model-gateway/server/request-body.d.ts +1 -1
  71. package/dist/src/model-gateway/types.d.ts +39 -0
  72. package/dist/src/plugin-contract/manifest.d.ts +1 -0
  73. package/dist/src/runtime/adapters/index.d.ts +4 -0
  74. package/dist/src/runtime/adapters/index.js +4 -0
  75. package/dist/src/runtime/adapters/long-term-memory/file-lock/acquisition.d.ts +2 -0
  76. package/dist/src/runtime/adapters/long-term-memory/file-lock/acquisition.js +77 -0
  77. package/dist/src/runtime/adapters/long-term-memory/file-lock/cleanup.d.ts +4 -0
  78. package/dist/src/runtime/adapters/long-term-memory/file-lock/cleanup.js +52 -0
  79. package/dist/src/runtime/adapters/long-term-memory/file-lock/contracts.d.ts +31 -0
  80. package/dist/src/runtime/adapters/long-term-memory/file-lock/contracts.js +17 -0
  81. package/dist/src/runtime/adapters/long-term-memory/file-lock/install.d.ts +1 -0
  82. package/dist/src/runtime/adapters/long-term-memory/file-lock/install.js +36 -0
  83. package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-record.d.ts +2 -0
  84. package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-record.js +114 -0
  85. package/dist/src/runtime/adapters/long-term-memory/file-lock/snapshot.d.ts +2 -0
  86. package/dist/src/runtime/adapters/long-term-memory/file-lock/snapshot.js +103 -0
  87. package/dist/src/runtime/adapters/long-term-memory/file-lock.d.ts +2 -0
  88. package/dist/src/runtime/adapters/long-term-memory/file-lock.js +10 -0
  89. package/dist/src/runtime/adapters/long-term-memory/file-repository.d.ts +2 -0
  90. package/dist/src/runtime/adapters/long-term-memory/file-repository.js +57 -0
  91. package/dist/src/runtime/adapters/long-term-memory/in-memory-repository.d.ts +2 -0
  92. package/dist/src/runtime/adapters/long-term-memory/in-memory-repository.js +21 -0
  93. package/dist/src/runtime/adapters/long-term-memory/onboarding-config-repository.d.ts +5 -0
  94. package/dist/src/runtime/adapters/long-term-memory/onboarding-config-repository.js +60 -0
  95. package/dist/src/runtime/adapters/long-term-memory/onboarding-service.d.ts +8 -0
  96. package/dist/src/runtime/adapters/long-term-memory/onboarding-service.js +34 -0
  97. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/run.d.ts +7 -1
  98. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/run.js +54 -25
  99. package/dist/src/runtime/adapters/registered-tool-normal-invocations/executor.js +18 -4
  100. package/dist/src/runtime/adapters/registered-tool-normal-invocations/payload/lifecycle.d.ts +6 -1
  101. package/dist/src/runtime/adapters/registered-tool-normal-invocations/payload/lifecycle.js +25 -12
  102. package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/action-fingerprint.d.ts +22 -0
  103. package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/action-fingerprint.js +65 -0
  104. package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/contracts.d.ts +44 -0
  105. package/dist/src/runtime/adapters/registered-tool-normal-invocations.d.ts +1 -1
  106. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/catalog.js +14 -4
  107. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/execution.js +218 -87
  108. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/failure-outcome-fingerprint.d.ts +7 -0
  109. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/failure-outcome-fingerprint.js +84 -0
  110. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-lifecycle.d.ts +5 -4
  111. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-lifecycle.js +7 -1
  112. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-observability.d.ts +35 -0
  113. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-observability.js +32 -0
  114. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-rejection.d.ts +3 -3
  115. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-rejection.js +13 -8
  116. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-stages.d.ts +5 -4
  117. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-stages.js +4 -2
  118. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/result-observer.js +12 -4
  119. package/dist/src/runtime/composition.d.ts +3 -0
  120. package/dist/src/runtime/composition.js +5 -2
  121. package/dist/src/runtime/config/builders.js +34 -1
  122. package/dist/src/runtime/config/effective-model-config-validation.js +9 -0
  123. package/dist/src/runtime/config/embedding-profiles.d.ts +5 -0
  124. package/dist/src/runtime/config/embedding-profiles.js +66 -0
  125. package/dist/src/runtime/config/fields.js +22 -0
  126. package/dist/src/runtime/config/long-term-memory.d.ts +9 -0
  127. package/dist/src/runtime/config/long-term-memory.js +71 -0
  128. package/dist/src/runtime/config/runner/config-normalization.d.ts +16 -0
  129. package/dist/src/runtime/config/runner/config-normalization.js +109 -0
  130. package/dist/src/runtime/config/runner/loader.d.ts +1 -1
  131. package/dist/src/runtime/config/runner/loader.js +2 -69
  132. package/dist/src/runtime/config/runner/model-policy.js +3 -0
  133. package/dist/src/runtime/config/runner/schema-version.d.ts +14 -0
  134. package/dist/src/runtime/config/runner/schema-version.js +35 -0
  135. package/dist/src/runtime/config/runner/versioned-config.d.ts +2 -0
  136. package/dist/src/runtime/config/runner/versioned-config.js +51 -0
  137. package/dist/src/runtime/config/schema.js +36 -0
  138. package/dist/src/runtime/config/types.d.ts +1 -0
  139. package/dist/src/runtime/config/validation/environment-config-validation.d.ts +1 -0
  140. package/dist/src/runtime/config/validation/environment-config-validation.js +41 -0
  141. package/dist/src/runtime/config/validation/model-invocation-config-validation.d.ts +2 -0
  142. package/dist/src/runtime/config/validation/model-invocation-config-validation.js +64 -0
  143. package/dist/src/runtime/config/validation/model-invocation-override-validation.d.ts +2 -0
  144. package/dist/src/runtime/config/validation/model-invocation-override-validation.js +72 -0
  145. package/dist/src/runtime/config/validation/model-profile-validation.d.ts +4 -0
  146. package/dist/src/runtime/config/validation/model-profile-validation.js +87 -0
  147. package/dist/src/runtime/config/validation/model-registry-validation.d.ts +2 -0
  148. package/dist/src/runtime/config/validation/model-registry-validation.js +118 -0
  149. package/dist/src/runtime/config/validation/path-config-validation.d.ts +1 -0
  150. package/dist/src/runtime/config/validation/path-config-validation.js +7 -0
  151. package/dist/src/runtime/config/validation/runtime-config-field-validation.d.ts +12 -0
  152. package/dist/src/runtime/config/validation/runtime-config-field-validation.js +158 -0
  153. package/dist/src/runtime/config/validation/runtime-config-validation-contract.d.ts +9 -0
  154. package/dist/src/runtime/config/validation/runtime-config-validation-contract.js +13 -0
  155. package/dist/src/runtime/config/validation/runtime-root-section-validation.d.ts +6 -0
  156. package/dist/src/runtime/config/validation/runtime-root-section-validation.js +82 -0
  157. package/dist/src/runtime/config/validation/web-ui-config-validation.d.ts +3 -0
  158. package/dist/src/runtime/config/validation/web-ui-config-validation.js +26 -0
  159. package/dist/src/runtime/config/validation.d.ts +4 -15
  160. package/dist/src/runtime/config/validation.js +27 -499
  161. package/dist/src/runtime/config.js +3 -0
  162. package/dist/src/runtime/context/accepted-capability-action.d.ts +11 -0
  163. package/dist/src/runtime/context/accepted-capability-action.js +29 -0
  164. package/dist/src/runtime/context/model-step-compaction.js +6 -0
  165. package/dist/src/runtime/context/operation-supervision-evidence.d.ts +37 -0
  166. package/dist/src/runtime/context/operation-supervision-evidence.js +90 -0
  167. package/dist/src/runtime/context/request-tool-results.d.ts +3 -0
  168. package/dist/src/runtime/context/request-tool-results.js +11 -2
  169. package/dist/src/runtime/default-adapters.d.ts +3 -0
  170. package/dist/src/runtime/default-adapters.js +64 -3
  171. package/dist/src/runtime/index.d.ts +1 -0
  172. package/dist/src/runtime/index.js +1 -0
  173. package/dist/src/runtime/lifecycle/request-finalizer.d.ts +3 -0
  174. package/dist/src/runtime/lifecycle/request-finalizer.js +8 -0
  175. package/dist/src/runtime/long-term-memory/background-save-queue.d.ts +17 -0
  176. package/dist/src/runtime/long-term-memory/background-save-queue.js +66 -0
  177. package/dist/src/runtime/long-term-memory/candidate-persistence.d.ts +16 -0
  178. package/dist/src/runtime/long-term-memory/candidate-persistence.js +109 -0
  179. package/dist/src/runtime/long-term-memory/candidate-preparation.d.ts +8 -0
  180. package/dist/src/runtime/long-term-memory/candidate-preparation.js +36 -0
  181. package/dist/src/runtime/long-term-memory/candidate-processing.d.ts +9 -0
  182. package/dist/src/runtime/long-term-memory/candidate-processing.js +79 -0
  183. package/dist/src/runtime/long-term-memory/contracts.d.ts +108 -0
  184. package/dist/src/runtime/long-term-memory/contracts.js +1 -0
  185. package/dist/src/runtime/long-term-memory/diagnostics.d.ts +9 -0
  186. package/dist/src/runtime/long-term-memory/diagnostics.js +42 -0
  187. package/dist/src/runtime/long-term-memory/embedding-batches.d.ts +13 -0
  188. package/dist/src/runtime/long-term-memory/embedding-batches.js +87 -0
  189. package/dist/src/runtime/long-term-memory/events.d.ts +13 -0
  190. package/dist/src/runtime/long-term-memory/events.js +15 -0
  191. package/dist/src/runtime/long-term-memory/finalization.d.ts +8 -0
  192. package/dist/src/runtime/long-term-memory/finalization.js +24 -0
  193. package/dist/src/runtime/long-term-memory/index.d.ts +6 -0
  194. package/dist/src/runtime/long-term-memory/index.js +6 -0
  195. package/dist/src/runtime/long-term-memory/management/contracts.d.ts +54 -0
  196. package/dist/src/runtime/long-term-memory/management/contracts.js +1 -0
  197. package/dist/src/runtime/long-term-memory/management/errors.d.ts +10 -0
  198. package/dist/src/runtime/long-term-memory/management/errors.js +13 -0
  199. package/dist/src/runtime/long-term-memory/management/mutations.d.ts +17 -0
  200. package/dist/src/runtime/long-term-memory/management/mutations.js +178 -0
  201. package/dist/src/runtime/long-term-memory/management/queries.d.ts +8 -0
  202. package/dist/src/runtime/long-term-memory/management/queries.js +46 -0
  203. package/dist/src/runtime/long-term-memory/management/search.d.ts +7 -0
  204. package/dist/src/runtime/long-term-memory/management/search.js +18 -0
  205. package/dist/src/runtime/long-term-memory/management/service.d.ts +13 -0
  206. package/dist/src/runtime/long-term-memory/management/service.js +61 -0
  207. package/dist/src/runtime/long-term-memory/management/validation.d.ts +24 -0
  208. package/dist/src/runtime/long-term-memory/management/validation.js +77 -0
  209. package/dist/src/runtime/long-term-memory/onboarding/configuration.d.ts +14 -0
  210. package/dist/src/runtime/long-term-memory/onboarding/configuration.js +92 -0
  211. package/dist/src/runtime/long-term-memory/onboarding/contracts.d.ts +52 -0
  212. package/dist/src/runtime/long-term-memory/onboarding/contracts.js +1 -0
  213. package/dist/src/runtime/long-term-memory/onboarding/service.d.ts +21 -0
  214. package/dist/src/runtime/long-term-memory/onboarding/service.js +88 -0
  215. package/dist/src/runtime/long-term-memory/policies/normalization.d.ts +10 -0
  216. package/dist/src/runtime/long-term-memory/policies/normalization.js +45 -0
  217. package/dist/src/runtime/long-term-memory/policies/reconciliation.d.ts +20 -0
  218. package/dist/src/runtime/long-term-memory/policies/reconciliation.js +21 -0
  219. package/dist/src/runtime/long-term-memory/policies/scoring.d.ts +13 -0
  220. package/dist/src/runtime/long-term-memory/policies/scoring.js +55 -0
  221. package/dist/src/runtime/long-term-memory/policies/sensitive-data.d.ts +5 -0
  222. package/dist/src/runtime/long-term-memory/policies/sensitive-data.js +12 -0
  223. package/dist/src/runtime/long-term-memory/projection.d.ts +4 -0
  224. package/dist/src/runtime/long-term-memory/projection.js +39 -0
  225. package/dist/src/runtime/long-term-memory/ranked-search.d.ts +11 -0
  226. package/dist/src/runtime/long-term-memory/ranked-search.js +111 -0
  227. package/dist/src/runtime/long-term-memory/repository-state.d.ts +4 -0
  228. package/dist/src/runtime/long-term-memory/repository-state.js +131 -0
  229. package/dist/src/runtime/long-term-memory/response-context.d.ts +5 -0
  230. package/dist/src/runtime/long-term-memory/response-context.js +21 -0
  231. package/dist/src/runtime/long-term-memory/retrieval.d.ts +8 -0
  232. package/dist/src/runtime/long-term-memory/retrieval.js +73 -0
  233. package/dist/src/runtime/long-term-memory/service.d.ts +10 -0
  234. package/dist/src/runtime/long-term-memory/service.js +83 -0
  235. package/dist/src/runtime/orchestration/capability-adapters/index.d.ts +2 -0
  236. package/dist/src/runtime/orchestration/capability-adapters/index.js +2 -0
  237. package/dist/src/runtime/orchestration/final-response/authoring-contract.d.ts +10 -0
  238. package/dist/src/runtime/orchestration/final-response/authoring-contract.js +94 -0
  239. package/dist/src/runtime/orchestration/final-response/finalization.d.ts +1 -0
  240. package/dist/src/runtime/orchestration/final-response/finalization.js +1 -0
  241. package/dist/src/runtime/orchestration/final-response/format.d.ts +2 -0
  242. package/dist/src/runtime/orchestration/final-response/format.js +49 -0
  243. package/dist/src/runtime/orchestration/final-response/invoke.d.ts +16 -0
  244. package/dist/src/runtime/orchestration/final-response/invoke.js +24 -0
  245. package/dist/src/runtime/orchestration/role-calls/activation-budget.d.ts +14 -0
  246. package/dist/src/runtime/orchestration/role-calls/activation-budget.js +52 -0
  247. package/dist/src/runtime/orchestration/role-calls/candidate-validation.js +154 -0
  248. package/dist/src/runtime/orchestration/role-calls/capability-selection-reconsideration.js +1 -8
  249. package/dist/src/runtime/orchestration/role-calls/capability-selection-supervision-issuance.d.ts +17 -0
  250. package/dist/src/runtime/orchestration/role-calls/capability-selection-supervision-issuance.js +155 -0
  251. package/dist/src/runtime/orchestration/role-calls/capability-selection-supervision.d.ts +78 -0
  252. package/dist/src/runtime/orchestration/role-calls/capability-selection-supervision.js +339 -0
  253. package/dist/src/runtime/orchestration/role-calls/command-decoder.js +35 -10
  254. package/dist/src/runtime/orchestration/role-calls/command-dispatch/active-capability-caller.d.ts +6 -0
  255. package/dist/src/runtime/orchestration/role-calls/command-dispatch/active-capability-caller.js +15 -0
  256. package/dist/src/runtime/orchestration/role-calls/command-dispatch/call-frame-state.d.ts +3 -0
  257. package/dist/src/runtime/orchestration/role-calls/command-dispatch/call-frame-state.js +6 -0
  258. package/dist/src/runtime/orchestration/role-calls/command-dispatch/call-scope-transitions.d.ts +3 -0
  259. package/dist/src/runtime/orchestration/role-calls/command-dispatch/call-scope-transitions.js +86 -0
  260. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-batch-transitions.d.ts +3 -0
  261. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-batch-transitions.js +172 -0
  262. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-execution-state.d.ts +9 -0
  263. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-execution-state.js +28 -0
  264. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-execution-transitions.d.ts +3 -0
  265. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-execution-transitions.js +117 -0
  266. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-invocation.d.ts +4 -0
  267. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-invocation.js +16 -0
  268. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-selection-transition.d.ts +2 -0
  269. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-selection-transition.js +114 -0
  270. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-settlement.d.ts +6 -0
  271. package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-settlement.js +54 -0
  272. package/dist/src/runtime/orchestration/role-calls/command-dispatch/child-transitions.d.ts +3 -0
  273. package/dist/src/runtime/orchestration/role-calls/command-dispatch/child-transitions.js +206 -0
  274. package/dist/src/runtime/orchestration/role-calls/command-dispatch/operation-supervision-intervention.d.ts +13 -0
  275. package/dist/src/runtime/orchestration/role-calls/command-dispatch/operation-supervision-intervention.js +25 -0
  276. package/dist/src/runtime/orchestration/role-calls/command-dispatch/root-transitions.d.ts +3 -0
  277. package/dist/src/runtime/orchestration/role-calls/command-dispatch/root-transitions.js +70 -0
  278. package/dist/src/runtime/orchestration/role-calls/command-dispatch.d.ts +1 -1
  279. package/dist/src/runtime/orchestration/role-calls/command-dispatch.js +6 -580
  280. package/dist/src/runtime/orchestration/role-calls/contracts.d.ts +45 -5
  281. package/dist/src/runtime/orchestration/role-calls/contracts.js +2 -2
  282. package/dist/src/runtime/orchestration/role-calls/diagnostics.d.ts +4 -0
  283. package/dist/src/runtime/orchestration/role-calls/diagnostics.js +152 -1
  284. package/dist/src/runtime/orchestration/role-calls/index.d.ts +6 -0
  285. package/dist/src/runtime/orchestration/role-calls/index.js +6 -0
  286. package/dist/src/runtime/orchestration/role-calls/ledger.js +131 -7
  287. package/dist/src/runtime/orchestration/role-calls/operation-supervision-issuance.d.ts +11 -0
  288. package/dist/src/runtime/orchestration/role-calls/operation-supervision-issuance.js +66 -0
  289. package/dist/src/runtime/orchestration/role-calls/operation-supervision-projection.d.ts +16 -0
  290. package/dist/src/runtime/orchestration/role-calls/operation-supervision-projection.js +52 -0
  291. package/dist/src/runtime/orchestration/role-calls/operation-supervision-state-validation.d.ts +3 -0
  292. package/dist/src/runtime/orchestration/role-calls/operation-supervision-state-validation.js +151 -0
  293. package/dist/src/runtime/orchestration/role-calls/operation-supervision.d.ts +112 -0
  294. package/dist/src/runtime/orchestration/role-calls/operation-supervision.js +197 -0
  295. package/dist/src/runtime/orchestration/role-calls/reconsideration-cause.d.ts +26 -0
  296. package/dist/src/runtime/orchestration/role-calls/reconsideration-cause.js +127 -0
  297. package/dist/src/runtime/orchestration/role-calls/reducer-primitives.d.ts +1 -2
  298. package/dist/src/runtime/orchestration/role-calls/reducer-primitives.js +2 -12
  299. package/dist/src/runtime/orchestration/role-calls/reducer.js +19 -2
  300. package/dist/src/runtime/orchestration/role-calls/transactions.js +62 -5
  301. package/dist/src/runtime/orchestration/role-executors/activation/capability-continuation.d.ts +15 -0
  302. package/dist/src/runtime/orchestration/role-executors/activation/capability-continuation.js +73 -0
  303. package/dist/src/runtime/orchestration/role-executors/activation/loop.d.ts +0 -1
  304. package/dist/src/runtime/orchestration/role-executors/activation/loop.js +16 -54
  305. package/dist/src/runtime/orchestration/role-executors/activation/result-normalization.js +14 -0
  306. package/dist/src/runtime/orchestration/role-executors/activation/state-validation.d.ts +13 -1
  307. package/dist/src/runtime/orchestration/role-executors/activation/state-validation.js +137 -1
  308. package/dist/src/runtime/orchestration/role-executors/contracts.d.ts +7 -3
  309. package/dist/src/runtime/orchestration/role-executors/diagnostics.d.ts +2 -0
  310. package/dist/src/runtime/orchestration/role-executors/diagnostics.js +1 -6
  311. package/dist/src/runtime/orchestration/worker-capabilities/batch-selection.d.ts +10 -0
  312. package/dist/src/runtime/orchestration/worker-capabilities/batch-selection.js +8 -0
  313. package/dist/src/runtime/orchestration/worker-capabilities/binding/adapter-catalog.d.ts +14 -0
  314. package/dist/src/runtime/orchestration/worker-capabilities/binding/adapter-catalog.js +76 -0
  315. package/dist/src/runtime/orchestration/worker-capabilities/binding/adapter-normalization.d.ts +10 -0
  316. package/dist/src/runtime/orchestration/worker-capabilities/binding/adapter-normalization.js +160 -0
  317. package/dist/src/runtime/orchestration/worker-capabilities/binding/binding-rejection.d.ts +2 -0
  318. package/dist/src/runtime/orchestration/worker-capabilities/binding/binding-rejection.js +8 -0
  319. package/dist/src/runtime/orchestration/worker-capabilities/binding/bound-capability-session.d.ts +24 -0
  320. package/dist/src/runtime/orchestration/worker-capabilities/binding/bound-capability-session.js +100 -0
  321. package/dist/src/runtime/orchestration/worker-capabilities/binding/call-authority.d.ts +29 -0
  322. package/dist/src/runtime/orchestration/worker-capabilities/binding/call-authority.js +193 -0
  323. package/dist/src/runtime/orchestration/worker-capabilities/binding/create-binding.d.ts +11 -0
  324. package/dist/src/runtime/orchestration/worker-capabilities/binding/create-binding.js +109 -0
  325. package/dist/src/runtime/orchestration/worker-capabilities/binding/dependency-results.d.ts +2 -0
  326. package/dist/src/runtime/orchestration/worker-capabilities/binding/dependency-results.js +34 -0
  327. package/dist/src/runtime/orchestration/worker-capabilities/binding/invocation-preparation.d.ts +21 -0
  328. package/dist/src/runtime/orchestration/worker-capabilities/binding/invocation-preparation.js +167 -0
  329. package/dist/src/runtime/orchestration/worker-capabilities/binding.d.ts +1 -13
  330. package/dist/src/runtime/orchestration/worker-capabilities/binding.js +1 -625
  331. package/dist/src/runtime/orchestration/worker-capabilities/contracts.d.ts +57 -14
  332. package/dist/src/runtime/orchestration/worker-capabilities/contracts.js +3 -1
  333. package/dist/src/runtime/orchestration/worker-capabilities/controls.d.ts +7 -0
  334. package/dist/src/runtime/orchestration/worker-capabilities/controls.js +50 -0
  335. package/dist/src/runtime/orchestration/worker-capabilities/error-fingerprint.d.ts +5 -0
  336. package/dist/src/runtime/orchestration/worker-capabilities/error-fingerprint.js +119 -0
  337. package/dist/src/runtime/orchestration/worker-capabilities/errors.d.ts +6 -0
  338. package/dist/src/runtime/orchestration/worker-capabilities/errors.js +11 -0
  339. package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-exact-result.d.ts +7 -0
  340. package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-exact-result.js +35 -0
  341. package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-execution.d.ts +9 -0
  342. package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-execution.js +28 -0
  343. package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-result-normalization.d.ts +18 -0
  344. package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-result-normalization.js +197 -0
  345. package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-result-references.d.ts +2 -0
  346. package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-result-references.js +44 -0
  347. package/dist/src/runtime/orchestration/worker-capabilities/execution/context-projection.d.ts +12 -0
  348. package/dist/src/runtime/orchestration/worker-capabilities/execution/context-projection.js +51 -0
  349. package/dist/src/runtime/orchestration/worker-capabilities/execution/invocation-preparation.d.ts +25 -0
  350. package/dist/src/runtime/orchestration/worker-capabilities/execution/invocation-preparation.js +111 -0
  351. package/dist/src/runtime/orchestration/worker-capabilities/execution/ledger-transaction.d.ts +20 -0
  352. package/dist/src/runtime/orchestration/worker-capabilities/execution/ledger-transaction.js +142 -0
  353. package/dist/src/runtime/orchestration/worker-capabilities/execution.d.ts +10 -14
  354. package/dist/src/runtime/orchestration/worker-capabilities/execution.js +84 -357
  355. package/dist/src/runtime/orchestration/worker-capabilities/index.d.ts +3 -0
  356. package/dist/src/runtime/orchestration/worker-capabilities/index.js +3 -0
  357. package/dist/src/runtime/orchestration/worker-capabilities/outcome-fingerprint.d.ts +8 -0
  358. package/dist/src/runtime/orchestration/worker-capabilities/outcome-fingerprint.js +21 -0
  359. package/dist/src/runtime/orchestration/worker-capabilities/payload-author.js +31 -9
  360. package/dist/src/runtime/orchestration/worker-capabilities/payload-contracts.d.ts +15 -6
  361. package/dist/src/runtime/orchestration/worker-capabilities/payload-contracts.js +2 -0
  362. package/dist/src/runtime/orchestration/worker-capabilities/payload-instructions.js +4 -4
  363. package/dist/src/runtime/orchestration/worker-capabilities/preparation-fingerprint.d.ts +23 -0
  364. package/dist/src/runtime/orchestration/worker-capabilities/preparation-fingerprint.js +109 -0
  365. package/dist/src/runtime/plugins/manifest-projection.js +3 -0
  366. package/dist/src/runtime/plugins/manifest-validator.js +20 -0
  367. package/dist/src/runtime/ports.d.ts +10 -1
  368. package/dist/src/runtime/request/contracts.d.ts +7 -0
  369. package/dist/src/runtime/request/dependencies.d.ts +1 -0
  370. package/dist/src/runtime/request/dependencies.js +10 -1
  371. package/dist/src/runtime/request/execution-agent-root-execution.js +5 -4
  372. package/dist/src/runtime/request/execution-facets.d.ts +2 -1
  373. package/dist/src/runtime/request/execution-facets.js +6 -0
  374. package/dist/src/runtime/request/execution-scope-surfaces.js +6 -0
  375. package/dist/src/runtime/request/execution-scope.d.ts +3 -2
  376. package/dist/src/runtime/request/handler.js +4 -1
  377. package/dist/src/runtime/request/result.d.ts +2 -0
  378. package/dist/src/runtime/request/root-contract.d.ts +4 -2
  379. package/dist/src/runtime/request/root-execution-kernel.js +100 -31
  380. package/dist/src/runtime/request/supervisor-root-execution.js +4 -2
  381. package/dist/src/runtime/request/worker-capability-payload-prompts.js +1 -1
  382. package/dist/src/runtime/steps/execution-agent/capability-invocation-contract.d.ts +24 -0
  383. package/dist/src/runtime/steps/execution-agent/capability-invocation-contract.js +52 -0
  384. package/dist/src/runtime/steps/execution-agent/contracts.d.ts +5 -2
  385. package/dist/src/runtime/steps/execution-agent/format.js +19 -6
  386. package/dist/src/runtime/steps/execution-agent/input.js +8 -12
  387. package/dist/src/runtime/steps/execution-agent/parser.js +25 -19
  388. package/dist/src/runtime/steps/execution-agent/prompt.js +3 -2
  389. package/dist/src/runtime/steps/execution-agent/reconsideration-context.d.ts +3 -0
  390. package/dist/src/runtime/steps/execution-agent/reconsideration-context.js +76 -0
  391. package/dist/src/runtime/steps/execution-agent/refinement-prompt.js +4 -4
  392. package/dist/src/runtime/steps/execution-agent/refinement-reconsideration.d.ts +3 -0
  393. package/dist/src/runtime/steps/execution-agent/refinement-reconsideration.js +25 -0
  394. package/dist/src/runtime/steps/execution-agent/refinement.d.ts +4 -7
  395. package/dist/src/runtime/steps/execution-agent/refinement.js +24 -35
  396. package/dist/src/runtime/steps/execution-agent/response-input.d.ts +2 -0
  397. package/dist/src/runtime/steps/execution-agent/response-input.js +22 -6
  398. package/dist/src/runtime/steps/execution-agent/response-prompt.d.ts +1 -1
  399. package/dist/src/runtime/steps/execution-agent/response-prompt.js +8 -3
  400. package/dist/src/runtime/steps/execution-agent/response-run.d.ts +6 -0
  401. package/dist/src/runtime/steps/execution-agent/response-run.js +40 -10
  402. package/dist/src/runtime/steps/execution-agent/run.js +6 -6
  403. package/dist/src/runtime/steps/execution-agent/state-context.d.ts +4 -1
  404. package/dist/src/runtime/steps/execution-agent/state-context.js +40 -23
  405. package/dist/src/runtime/steps/supervisor-response/index.d.ts +1 -1
  406. package/dist/src/runtime/steps/supervisor-response/index.js +1 -1
  407. package/dist/src/runtime/steps/supervisor-response/input.d.ts +13 -5
  408. package/dist/src/runtime/steps/supervisor-response/input.js +27 -8
  409. package/dist/src/runtime/steps/supervisor-response/memory-authoring.d.ts +10 -0
  410. package/dist/src/runtime/steps/supervisor-response/memory-authoring.js +125 -0
  411. package/dist/src/runtime/steps/supervisor-response/prompt.d.ts +4 -0
  412. package/dist/src/runtime/steps/supervisor-response/prompt.js +19 -0
  413. package/dist/src/runtime/steps/supervisor-response/run.d.ts +8 -0
  414. package/dist/src/runtime/steps/supervisor-response/run.js +46 -17
  415. package/dist/src/runtime/steps/worker-decision/contracts.d.ts +8 -1
  416. package/dist/src/runtime/steps/worker-decision/contracts.js +3 -0
  417. package/dist/src/runtime/steps/worker-decision/format.d.ts +4 -0
  418. package/dist/src/runtime/steps/worker-decision/format.js +97 -22
  419. package/dist/src/runtime/steps/worker-decision/input/action-policy.d.ts +9 -0
  420. package/dist/src/runtime/steps/worker-decision/input/action-policy.js +15 -0
  421. package/dist/src/runtime/steps/worker-decision/input/canonical-state.d.ts +2 -2
  422. package/dist/src/runtime/steps/worker-decision/input/canonical-state.js +19 -7
  423. package/dist/src/runtime/steps/worker-decision/input/capability-selection.js +44 -3
  424. package/dist/src/runtime/steps/worker-decision/input/contract.d.ts +1 -0
  425. package/dist/src/runtime/steps/worker-decision/input/contract.js +12 -6
  426. package/dist/src/runtime/steps/worker-decision/input/diagnostic-projection.js +14 -5
  427. package/dist/src/runtime/steps/worker-decision/input/prompt-context.js +9 -6
  428. package/dist/src/runtime/steps/worker-decision/input/reference-context.js +21 -3
  429. package/dist/src/runtime/steps/worker-decision/input/session.js +2 -1
  430. package/dist/src/runtime/steps/worker-decision/input/types.d.ts +6 -1
  431. package/dist/src/runtime/steps/worker-decision/input.d.ts +2 -2
  432. package/dist/src/runtime/steps/worker-decision/input.js +1 -2
  433. package/dist/src/runtime/steps/worker-decision/parser/accepted-decision.d.ts +3 -0
  434. package/dist/src/runtime/steps/worker-decision/parser/accepted-decision.js +70 -0
  435. package/dist/src/runtime/steps/worker-decision/parser/action-validation.d.ts +4 -0
  436. package/dist/src/runtime/steps/worker-decision/parser/action-validation.js +55 -0
  437. package/dist/src/runtime/steps/worker-decision/parser/capability-batch-validation.d.ts +3 -0
  438. package/dist/src/runtime/steps/worker-decision/parser/capability-batch-validation.js +135 -0
  439. package/dist/src/runtime/steps/worker-decision/parser/capability-controls-validation.d.ts +6 -0
  440. package/dist/src/runtime/steps/worker-decision/parser/capability-controls-validation.js +132 -0
  441. package/dist/src/runtime/steps/worker-decision/parser/capability-invocation-validation.d.ts +4 -0
  442. package/dist/src/runtime/steps/worker-decision/parser/capability-invocation-validation.js +104 -0
  443. package/dist/src/runtime/steps/worker-decision/parser/decision-shape-validation.d.ts +4 -0
  444. package/dist/src/runtime/steps/worker-decision/parser/decision-shape-validation.js +28 -0
  445. package/dist/src/runtime/steps/worker-decision/parser/pending-capability-selection-validation.d.ts +4 -0
  446. package/dist/src/runtime/steps/worker-decision/parser/pending-capability-selection-validation.js +105 -0
  447. package/dist/src/runtime/steps/worker-decision/parser/validation-contract.d.ts +50 -0
  448. package/dist/src/runtime/steps/worker-decision/parser/validation-contract.js +19 -0
  449. package/dist/src/runtime/steps/worker-decision/parser.d.ts +5 -1
  450. package/dist/src/runtime/steps/worker-decision/parser.js +32 -426
  451. package/dist/src/runtime/steps/worker-decision/prompt.d.ts +3 -0
  452. package/dist/src/runtime/steps/worker-decision/prompt.js +57 -20
  453. package/dist/src/runtime/steps/worker-decision/result-author.js +11 -1
  454. package/dist/src/runtime/steps/worker-decision/run.js +97 -19
  455. package/dist/src/runtime/validation/strict-record.d.ts +2 -0
  456. package/dist/src/runtime/validation/strict-record.js +12 -0
  457. package/dist/src/shared/model-step-registry-data.json +9 -0
  458. package/dist/src/shared/model-step-registry.d.ts +9 -0
  459. package/dist/src/shared/model-step-registry.generated.d.ts +9 -0
  460. package/dist/src/shared/model-step-registry.generated.js +9 -0
  461. package/dist/src/web-ui/app/ARCHITECTURE.md +1 -1
  462. package/dist/src/web-ui/app/app.js +56 -11
  463. package/dist/src/web-ui/app/components/config-workspace/config-model.js +320 -0
  464. package/dist/src/web-ui/app/components/config-workspace/dashboard-rendering.js +155 -0
  465. package/dist/src/web-ui/app/components/config-workspace/field-rendering.js +278 -0
  466. package/dist/src/web-ui/app/components/config-workspace/model-rendering.js +251 -0
  467. package/dist/src/web-ui/app/components/config-workspace/step-rendering.js +145 -0
  468. package/dist/src/web-ui/app/components/config-workspace/workspace-events.js +271 -0
  469. package/dist/src/web-ui/app/components/config-workspace/workspace-mutations.js +195 -0
  470. package/dist/src/web-ui/app/components/config-workspace/workspace-persistence.js +247 -0
  471. package/dist/src/web-ui/app/components/config-workspace/workspace-view.js +299 -0
  472. package/dist/src/web-ui/app/components/config-workspace.js +179 -866
  473. package/dist/src/web-ui/app/components/conversation-activity.d.ts +7 -1
  474. package/dist/src/web-ui/app/components/long-term-memory/icons.js +16 -0
  475. package/dist/src/web-ui/app/components/long-term-memory/manager.js +192 -0
  476. package/dist/src/web-ui/app/components/long-term-memory/record-editor.d.ts +9 -0
  477. package/dist/src/web-ui/app/components/long-term-memory/record-editor.js +62 -0
  478. package/dist/src/web-ui/app/components/long-term-memory/record-list.d.ts +5 -0
  479. package/dist/src/web-ui/app/components/long-term-memory/record-list.js +97 -0
  480. package/dist/src/web-ui/app/components/long-term-memory/view-model.d.ts +29 -0
  481. package/dist/src/web-ui/app/components/long-term-memory/view-model.js +69 -0
  482. package/dist/src/web-ui/app/components/long-term-memory-setup.js +334 -0
  483. package/dist/src/web-ui/app/components/runtime-setup-guide.d.ts +39 -0
  484. package/dist/src/web-ui/app/components/tool-approval-card.d.ts +18 -0
  485. package/dist/src/web-ui/app/components/workspace-shell.js +48 -7
  486. package/dist/src/web-ui/app/controllers/app-event-bindings.js +43 -6
  487. package/dist/src/web-ui/app/controllers/composer-attachments-controller.d.ts +92 -0
  488. package/dist/src/web-ui/app/controllers/composer-queue-controller.d.ts +109 -0
  489. package/dist/src/web-ui/app/controllers/composer-submit-controller.d.ts +77 -0
  490. package/dist/src/web-ui/app/controllers/conversation-session-controller.d.ts +149 -0
  491. package/dist/src/web-ui/app/controllers/conversation-session-controller.js +43 -3
  492. package/dist/src/web-ui/app/controllers/long-term-memory/controller.d.ts +87 -0
  493. package/dist/src/web-ui/app/controllers/long-term-memory/controller.js +302 -0
  494. package/dist/src/web-ui/app/controllers/long-term-memory/policy.d.ts +14 -0
  495. package/dist/src/web-ui/app/controllers/long-term-memory/policy.js +61 -0
  496. package/dist/src/web-ui/app/controllers/long-term-memory/state.js +85 -0
  497. package/dist/src/web-ui/app/controllers/operations-controller.d.ts +25 -0
  498. package/dist/src/web-ui/app/controllers/realtime-event-controller.d.ts +57 -0
  499. package/dist/src/web-ui/app/controllers/runtime-onboarding-controller.d.ts +32 -0
  500. package/dist/src/web-ui/app/controllers/runtime-selection-controller.d.ts +177 -0
  501. package/dist/src/web-ui/app/controllers/runtime-selection-controller.js +78 -11
  502. package/dist/src/web-ui/app/controllers/tool-approval-controller.d.ts +28 -0
  503. package/dist/src/web-ui/app/index.html +13 -15
  504. package/dist/src/web-ui/app/services/runtime-web-client/memory.js +127 -0
  505. package/dist/src/web-ui/app/services/runtime-web-client.d.ts +84 -0
  506. package/dist/src/web-ui/app/services/runtime-web-client.js +27 -1
  507. package/dist/src/web-ui/app/styles/30-inspector-config.css +151 -1423
  508. package/dist/src/web-ui/app/styles/35-memory-onboarding.css +153 -0
  509. package/dist/src/web-ui/app/styles/36-memory-management.css +419 -0
  510. package/dist/src/web-ui/app/styles/40-config-workspace.css +992 -0
  511. package/dist/src/web-ui/app/styles/90-responsive.css +187 -26
  512. package/dist/src/web-ui/app/styles.css +3 -0
  513. package/dist/src/web-ui/config-dashboard-backend.js +9 -1
  514. package/dist/src/web-ui/local-runtime/api-router.d.ts +4 -2
  515. package/dist/src/web-ui/local-runtime/api-router.js +33 -0
  516. package/dist/src/web-ui/local-runtime/contracts.d.ts +5 -0
  517. package/dist/src/web-ui/local-runtime/memory-management-input.d.ts +12 -0
  518. package/dist/src/web-ui/local-runtime/memory-management-input.js +68 -0
  519. package/dist/src/web-ui/local-runtime/memory-management-response.d.ts +17 -0
  520. package/dist/src/web-ui/local-runtime/memory-management-response.js +47 -0
  521. package/dist/src/web-ui/local-runtime/memory-management-routes.d.ts +24 -0
  522. package/dist/src/web-ui/local-runtime/memory-management-routes.js +128 -0
  523. package/dist/src/web-ui/local-runtime/memory-onboarding-routes.d.ts +17 -0
  524. package/dist/src/web-ui/local-runtime/memory-onboarding-routes.js +81 -0
  525. package/dist/src/web-ui/local-runtime/request-abort.d.ts +7 -0
  526. package/dist/src/web-ui/local-runtime/request-abort.js +19 -0
  527. package/dist/src/web-ui/local-runtime-backend.js +10 -3
  528. package/dist/src/web-ui/server.d.ts +2 -0
  529. package/dist/src/web-ui/server.js +3 -0
  530. package/docs/configuration.md +128 -45
  531. package/docs/installation.md +21 -0
  532. package/docs/known-limitations.md +11 -0
  533. package/docs/long-term-memory.md +181 -0
  534. package/docs/publishing.md +52 -25
  535. package/docs/runtime-invariant-coverage.md +1 -1
  536. package/docs/runtime-library.md +16 -1
  537. package/docs/runtime-prompt-policy-contracts.md +12 -2
  538. package/docs/troubleshooting.md +21 -0
  539. package/examples/models/default.config.json +1 -0
  540. package/examples/request-runner.config.example.json +16 -22
  541. package/examples/runtime.config.example.json +4 -0
  542. package/methodologies/memory-informed-response.md +15 -0
  543. package/methodologies/response-ux.md +17 -0
  544. package/package.json +8 -2
  545. package/plugins/exec/source/handlers.ts +65 -5
  546. package/plugins/exec/src/index.cjs +39 -3
  547. package/plugins/filesystem/plugin.json +1 -0
  548. package/runtime.config.schema.json +30 -0
  549. package/src/runtime/README.md +77 -38
@@ -3,10 +3,12 @@
3
3
  This checklist covers the repo state expected before opening `abot` as a
4
4
  public Git repository or publishing a package artifact.
5
5
 
6
- The private development checkout is not a release source: its `package.json`
7
- sets `private: true`, so direct `npm publish` is blocked. Every public Git
8
- repository and npm release must be created from a freshly built and verified
9
- public snapshot. Never copy or publish the private checkout directly.
6
+ The private development checkout is the canonical product source. Its
7
+ `package.json` sets `private: true`, so direct `npm publish` is blocked. Every
8
+ public Git and npm release must be created from a freshly built and verified
9
+ public snapshot of one exact private commit. Never copy or publish the private
10
+ checkout directly, and never develop or hotfix product changes in the public
11
+ repository.
10
12
 
11
13
  ## 1. Public Metadata
12
14
 
@@ -78,11 +80,14 @@ Inside the verified public snapshot, run:
78
80
  ```bash
79
81
  npm run check:runtime-package
80
82
  npm run check:publication
83
+ npm run check:public-snapshot
81
84
  ```
82
85
 
83
86
  `check:runtime-package` validates the packed artifact. `check:publication`
84
- validates public repo hygiene. For a public package, the packed-artifact check
85
- also rejects any plugin set other than the exact public allowlist.
87
+ validates public repo hygiene. `check:public-snapshot` verifies every payload
88
+ file against `PUBLIC-SNAPSHOT.json`; the public `npm run validate` chain runs
89
+ all three checks. For a public package, the packed-artifact check also rejects
90
+ any plugin set other than the exact public allowlist.
86
91
 
87
92
  ## 5. Examples And Docs
88
93
 
@@ -97,17 +102,19 @@ Keep these public onboarding files in sync:
97
102
  - `docs/known-limitations.md`
98
103
  - `docs/plugins.md`
99
104
  - `docs/troubleshooting.md`
105
+ - `src/runtime/README.md`
100
106
  - `examples/minimal-runtime-composition.ts`
101
107
  - `examples/runtime.config.example.json`
108
+ - `examples/request-runner.config.example.json`
102
109
  - `plugins/`
103
110
 
104
111
  Example config must stay sanitized and must not include host-specific URLs
105
112
  except local development defaults.
106
113
 
107
- ## 6. Initial Public Repository Export
114
+ ## 6. Build A Fresh Snapshot For Every Release
108
115
 
109
- From a clean, fully tracked private checkout, build a new snapshot into an
110
- empty directory:
116
+ Select one clean, synchronized, fully tracked private commit. Validate it, then
117
+ build a new snapshot into a fresh empty directory:
111
118
 
112
119
  ```bash
113
120
  npm run validate
@@ -115,26 +122,46 @@ npm run build:public-snapshot -- --output /absolute/path/to/empty/public-snapsho
115
122
  ```
116
123
 
117
124
  `build:public-snapshot` is a private-source export command. It is intentionally
118
- absent from the exported public package and must not become part of the public
119
- repository's normal development workflow.
125
+ absent from the exported public package. Run it again for every release; do not
126
+ reuse or edit an older snapshot.
120
127
 
121
- Use the snapshot once to seed the public Git repository. The generated
122
- `PUBLIC-SNAPSHOT.json` records that export; ordinary public changes do not
123
- rewrite or verify its frozen file hashes.
128
+ The generated `PUBLIC-SNAPSHOT.json` records the exact exported tree. Validate
129
+ the snapshot itself before producing a package artifact:
124
130
 
125
- ## 7. Public Repository Releases
131
+ ```bash
132
+ cd /absolute/path/to/empty/public-snapshot
133
+ npm ci --ignore-scripts
134
+ npm run validate
135
+ npm pack
136
+ ```
126
137
 
127
- After the initial export, maintain and release directly from the public Git
128
- repository:
138
+ If validation finds a defect or an incomplete dependency closure, stop and fix
139
+ it in the private canonical repository. Validate that change there and generate
140
+ a completely new snapshot. Do not patch the generated snapshot in place.
141
+
142
+ ## 7. Validate And Promote The Frozen Artifacts
143
+
144
+ Install the exact tarball from the verified snapshot into a fresh consumer
145
+ project. Exercise the installed binary, not a source-tree fallback:
129
146
 
130
147
  ```bash
131
- npm ci
132
- npm run validate
133
- npm pack --dry-run
148
+ npm install /absolute/path/to/abot-ai-runtime-<version>.tgz
149
+ npx --no-install abot --help
134
150
  ```
135
151
 
136
- The public package explicitly sets `private: false`; the private development
137
- checkout explicitly sets `private: true`. Public `check:publication` validates
138
- the current repository rather than the initial export receipt. Tag or run
139
- `npm publish` only after current-tree validation and artifact review succeed on
140
- the real release machine.
152
+ Also verify empty-config Web UI onboarding, non-destructive provider/profile
153
+ addition, default-profile selection, and the packaged Web UI. For an upgrade,
154
+ install the candidate tarball over a real prior-version consumer without
155
+ rerunning init and confirm that its local config remains unchanged.
156
+
157
+ The public repository is a generated distribution projection, not an
158
+ independent maintenance branch. Promote only the contents of the verified
159
+ snapshot. Any proposed public-repository fix must first return to the private
160
+ canonical repository and pass the complete flow again.
161
+
162
+ Publishing the frozen snapshot, running `npm publish`, pushing a public tag, and
163
+ creating a GitHub Release are separate external mutations. Perform them only
164
+ after explicit authorization names the exact private commit, snapshot tree,
165
+ tarball, and version. Never overwrite a version already published to npm; a
166
+ post-release defect ships from a new private commit under a new semantic
167
+ version.
@@ -14,7 +14,7 @@ the default `supervisor-worker-v1` policy and the opt-in
14
14
  | Capability authority is validated against the frozen policy and bound to the exact authorized call and activation: Worker for the default policy, canonical root for the direct policy. Both use the same binding and adapter engine. | `src/runtime/orchestration/role-calls/`, `src/runtime/orchestration/worker-capabilities/`, `src/runtime/request/root-execution-kernel.ts` | `root-execution-kernel-policy-mechanics.test.ts`, `worker-capability-binding.test.ts`, `execution-agent-request-runner.test.ts` |
15
15
  | Worker and root payloads use the same `tool_payload.raw` author; the principal, accepted intent, controls, exact request source, and admitted evidence are mechanically bounded before model invocation. | `src/runtime/orchestration/worker-capabilities/payload-author.ts`, `src/runtime/request/worker-capability-payload.ts` | `worker-capability-payload-author.test.ts`, `execution-agent-request-runner.test.ts` |
16
16
  | Direct capability continuations use strict provider-native assistant tool calls followed by their exact linked tool results; linkage, order, names, content, and token accounting are validated. | `src/model-gateway/message-contract.ts`, `src/runtime/steps/execution-agent/state-context.ts` | `tool-interaction.test.ts`, `tool-interaction-token-estimator.test.ts`, `execution-agent-context.test.ts` |
17
- | A declined direct refinement commits `reconsider_capability_selection`, records the exact selection fingerprint, advances the same root activation, and executes no adapter. Its passive projection chooses no replacement and suppresses no later model selection. | `src/runtime/orchestration/role-calls/`, `src/runtime/orchestration/role-calls/capability-selection-reconsideration.ts`, `src/runtime/steps/execution-agent/` | `role-call-ledger.test.ts`, `execution-agent-context.test.ts`, `execution-agent-request-runner.test.ts` |
17
+ | Exhausted direct controls structured-output validation commits `reconsider_capability_selection` without executing an adapter. Its passive projection records the exact selection fingerprint but makes no semantic judgment, chooses no replacement, and suppresses no later selection. | `src/runtime/orchestration/role-calls/`, `src/runtime/orchestration/role-calls/capability-selection-reconsideration.ts`, `src/runtime/steps/execution-agent/` | `role-call-ledger.test.ts`, `execution-agent-context.test.ts`, `execution-agent-request-runner.test.ts` |
18
18
  | Delegated Worker control decisions remain strict JSON while its substantive result uses the existing raw authoring boundary. Only `execution-agent-v1` opts into byte-exact terminal text; default finalization remains normalized. | `src/runtime/steps/worker-decision/`, `src/runtime/steps/execution-agent/`, `src/runtime/lifecycle/request-finalizer.ts` | `worker-decision.test.ts`, `execution-agent-request-runner.test.ts`, `request-finalization.test.ts` |
19
19
  | Capability adapters report bounded operation outcomes and never decide semantic completion. | `src/runtime/adapters/registered-tool-worker-capabilities.ts`, `src/capabilities/tool-executor.ts` | `registered-tool-worker-capabilities.test.ts`, `tool-executor.test.ts`, `normal-invocation.test.ts` |
20
20
  | Every capability settlement, whether produced by a delegated Worker or the direct root, atomically persists exactly one validated canonical `CapabilityAdapterResult`. Running executions cannot carry a result; invalid, non-JSON-safe, cyclic, or oversized evidence cannot settle and is never silently truncated. | `src/runtime/orchestration/capability-adapters/result.ts`, `src/runtime/orchestration/worker-capabilities/execution.ts`, `src/runtime/orchestration/role-calls/` | `registered-tool-worker-capabilities.test.ts`, `worker-capability-binding.test.ts`, `role-call-ledger.test.ts` |
@@ -167,6 +167,21 @@ complete turns. The runtime invokes the shared `context.compact` model step at
167
167
  the physical context threshold, persists the checkpoint with compare-and-swap,
168
168
  and keeps the latest ten complete turns raw. There is no profile-level message
169
169
  cap and no plugin or model-selected history checkout.
170
+
171
+ ### Passive Long-Term Memory
172
+
173
+ Long-term memory is a separate core service for relevant cross-session facts;
174
+ it is not the current-session history checkpoint and does not depend on a
175
+ plugin. It is disabled by default and receives a dedicated embedding profile.
176
+
177
+ `createRuntimeApplication(config)` exposes management through
178
+ `runtime.services.longTermMemory`; `createDefaultRuntimeDependencies(config)`
179
+ exposes the same service as `runtime.longTermMemory`. Hosts may call
180
+ `status()`, `list()`, `delete({ id })`, and `clear()` without accessing vector
181
+ data.
182
+ The normal request path alone owns passive retrieval and candidate persistence.
183
+
184
+ See [Passive Long-Term Memory](long-term-memory.md) for setup and contracts.
170
185
  For Ollama, `models.providers.<id>.keepAlive` owns model residency and a model
171
186
  profile may use `options.num_ctx` for a lower stable provider allocation. The
172
187
  gateway admits against the lower of that allocation and the declared
@@ -207,7 +222,7 @@ provider-profile and model-gateway payloads.
207
222
  Model profiles can expose independent calibration slots for
208
223
  `supervisor.decision`, `supervisor.response`, `planner.decision`,
209
224
  `planner.graph`, `worker.decision`, `worker.result`, `reviewer.decision`,
210
- `execution.decision`, `execution.response`, `auditor.decision`,
225
+ `capability.controls`, `execution.decision`, `execution.response`, `auditor.decision`,
211
226
  `degraded.finalization`, and utility tool steps. `planner.decision` is the
212
227
  delegated Planner contract; `planner.graph` is the distinct passive advisory
213
228
  contract for `execution-agent-v1`. A raw step such as `worker.result` may also
@@ -26,6 +26,15 @@ Instructions explain semantic choices. Parsers validate exact output shapes.
26
26
  The RoleCall ledger and shared capability binding remain the executable
27
27
  authority; prompt text never writes canonical state.
28
28
 
29
+ ## Configured Root Response Methodology
30
+
31
+ `supervisor.response` and `execution.response` share the configured
32
+ `response-ux.md` and `memory-informed-response.md` references. The first is
33
+ always-active editorial guidance. The second governs restrained use of the
34
+ optional passive long-term-memory projection. Neither methodology changes the
35
+ response schema, current user intent, evidence requirements, routing, action,
36
+ or completion authority.
37
+
29
38
  ## Authority Rules
30
39
 
31
40
  - Every request has one canonical root. The frozen policy selects its
@@ -46,8 +55,9 @@ authority; prompt text never writes canonical state.
46
55
  - Auditor returns a passive verdict over explicitly supplied criteria and whole
47
56
  evidence entries. Missing or omitted evidence cannot produce pass.
48
57
  - `reconsider_capability_selection` is a canonical mechanical transition after
49
- direct refinement declines a selection. It executes nothing, chooses no
50
- replacement, and cannot be treated as tool evidence or completion.
58
+ direct controls refinement exhausts structured-output validation. It
59
+ executes nothing, makes no semantic judgment, chooses no replacement, and
60
+ cannot be treated as tool evidence or completion.
51
61
  - A child result returns only to its exact caller frame.
52
62
  - Runtime code must not infer role choice from prompt words, paths, tool names,
53
63
  task categories, or model prose.
@@ -62,6 +62,27 @@ Provider config should contain only the env var name:
62
62
  }
63
63
  ```
64
64
 
65
+ ## Long-Term Memory Cannot Be Enabled
66
+
67
+ First confirm that the provider already exists in `models.providers` and that
68
+ the embedding model is available from the same provider endpoint used by the
69
+ Runtime. Then run:
70
+
71
+ ```bash
72
+ npx abot memory status
73
+ npx abot memory models --provider <provider-id>
74
+ npx abot memory enable --provider <provider-id> --model <embedding-model-id>
75
+ ```
76
+
77
+ The provider may report that model discovery is unsupported; this is expected
78
+ for OpenAI and means the model id must be entered manually. Enablement writes no
79
+ configuration unless the real embedding probe and full config validation pass.
80
+
81
+ After enabling or disabling memory, restart ABot. If memory later becomes
82
+ unavailable, inspect the Runtime trace for `runtime.long_term_memory` diagnostics.
83
+ The normal final response should still complete because memory failures are
84
+ isolated from response delivery.
85
+
65
86
  ## Runtime Connects But App Requests Do Not Arrive
66
87
 
67
88
  The runtime bridge client connects outbound to `agentBridgeUrl`. Make sure the
@@ -11,6 +11,7 @@
11
11
  "calibration": {
12
12
  "supervisor.decision": { "format": "json" },
13
13
  "worker.decision": { "format": "json" },
14
+ "capability.controls": { "format": "json" },
14
15
  "planner.decision": { "format": "json" },
15
16
  "planner.graph": { "format": "json" },
16
17
  "reviewer.decision": { "format": "json" },
@@ -1,20 +1,12 @@
1
1
  {
2
+ "schemaVersion": 2,
2
3
  "models": {
3
4
  "defaults": {
4
5
  "profileId": "default",
5
6
  "steps": {
6
- "supervisor.decision": "supervisor.decision",
7
7
  "supervisor.response": "default",
8
- "worker.decision": "worker.decision",
9
8
  "worker.result": "default",
10
- "planner.decision": "planner.decision",
11
- "planner.graph": "planner.graph",
12
- "reviewer.decision": "reviewer.decision",
13
- "degraded.finalization": "degraded.finalization",
14
- "execution.decision": "execution.decision",
15
9
  "execution.response": "default",
16
- "auditor.decision": "auditor.decision",
17
- "context.compact": "context.compact",
18
10
  "tool_payload.raw": "toolPayload.raw"
19
11
  }
20
12
  }
@@ -24,19 +16,21 @@
24
16
  "safetyReserveTokens": 1200,
25
17
  "attachmentReserveTokens": 1024
26
18
  },
19
+ "stepDefaults": {
20
+ "timeoutMs": 90000
21
+ },
27
22
  "steps": {
28
- "supervisor.decision": { "timeoutMs": 90000 },
29
- "supervisor.response": { "timeoutMs": 90000 },
30
- "worker.decision": { "timeoutMs": 90000 },
31
- "worker.result": { "timeoutMs": 90000 },
32
- "planner.decision": { "timeoutMs": 90000 },
33
- "planner.graph": { "timeoutMs": 90000 },
34
- "reviewer.decision": { "timeoutMs": 90000 },
35
- "degraded.finalization": { "timeoutMs": 90000 },
36
- "execution.decision": { "timeoutMs": 90000 },
37
- "execution.response": { "timeoutMs": 90000 },
38
- "auditor.decision": { "timeoutMs": 90000 },
39
- "context.compact": { "timeoutMs": 90000 },
40
- "tool_payload.raw": { "timeoutMs": 90000 }
23
+ "supervisor.response": {
24
+ "instructionRefs": [
25
+ "../methodologies/response-ux.md",
26
+ "../methodologies/memory-informed-response.md"
27
+ ]
28
+ },
29
+ "execution.response": {
30
+ "instructionRefs": [
31
+ "../methodologies/response-ux.md",
32
+ "../methodologies/memory-informed-response.md"
33
+ ]
34
+ }
41
35
  }
42
36
  }
@@ -57,6 +57,10 @@
57
57
  }
58
58
  }
59
59
  },
60
+ "longTermMemory": {
61
+ "enabled": false,
62
+ "emitClientEvents": false
63
+ },
60
64
  "requestRunner": {
61
65
  "configRef": "./request-runner.config.json"
62
66
  }
@@ -0,0 +1,15 @@
1
+ # Memory-Informed Root Response
2
+
3
+ When `runtime_long_term_memory_reference_v1` is present, treat it as optional
4
+ passive context. Use only entries that are genuinely relevant to the current
5
+ request, and let them improve continuity, useful defaults, tone, or recognition
6
+ of personal significance without making the response revolve around memory.
7
+
8
+ Never force a memory reference, announce that information was stored, expose
9
+ internal memory state, or attribute a statement to memory machinery. If the
10
+ projected entries add no value, ignore them.
11
+
12
+ The current message and relevant conversation override stale or conflicting
13
+ memory. Memory is not user intent, an instruction, action authority, evidence,
14
+ or proof of completion. This guidance affects response presentation only and
15
+ does not change the candidate-authoring or storage contract.
@@ -0,0 +1,17 @@
1
+ # Root Response Experience
2
+
3
+ Fulfill the current user request first. Shape the response, level of detail,
4
+ ordering, and tone around what is useful at this point in the conversation,
5
+ rather than following a fixed response template.
6
+
7
+ Write clearly, directly, and naturally. Do not treat the response as terminal
8
+ by default. Look for a natural way to create conversational momentum: deepen
9
+ the topic, surface a meaningful implication or connection, or ask one specific
10
+ follow-up question grounded in what the user actually said. Avoid obligatory
11
+ summaries, repeated conclusions, fixed closings, generic offers, canned
12
+ questions, manufactured warmth, and artificial conversation extension.
13
+
14
+ Use editorial judgment without changing the accepted request or inventing
15
+ facts. Current user instructions and supplied evidence remain authoritative.
16
+ This guidance affects presentation only; it grants no routing, action, or
17
+ completion authority.
package/package.json CHANGED
@@ -88,6 +88,7 @@
88
88
  "docs/configuration.md",
89
89
  "docs/installation.md",
90
90
  "docs/known-limitations.md",
91
+ "docs/long-term-memory.md",
91
92
  "docs/plugins.md",
92
93
  "docs/publishing.md",
93
94
  "docs/running-locally.md",
@@ -97,6 +98,8 @@
97
98
  "docs/runtime-public-contracts.md",
98
99
  "docs/tool-execution-result-evidence-contract.md",
99
100
  "docs/troubleshooting.md",
101
+ "methodologies/response-ux.md",
102
+ "methodologies/memory-informed-response.md",
100
103
  "examples/minimal-runtime-composition.ts",
101
104
  "examples/runtime-library-host.ts",
102
105
  "examples/runtime.config.example.json",
@@ -146,6 +149,7 @@
146
149
  "check:model-step-registry": "tsx scripts/write-model-step-registry.ts --check",
147
150
  "check:plugin-build": "npm run typecheck:plugins && tsx scripts/build-public-plugins.ts --check",
148
151
  "check:plugins": "tsx scripts/check-plugins.ts",
152
+ "check:public-snapshot": "tsx scripts/public-snapshot/check-public-snapshot.ts",
149
153
  "check:publication": "tsx scripts/check-publication-readiness.ts",
150
154
  "check:runtime-package": "tsx scripts/check-runtime-package-contents.ts",
151
155
  "clean-dist": "tsx scripts/clean-dist.ts",
@@ -154,16 +158,18 @@
154
158
  "dev": "tsx index.ts",
155
159
  "generate:model-step-registry": "tsx scripts/write-model-step-registry.ts",
156
160
  "init": "tsx scripts/init-runtime.ts",
161
+ "memory": "tsx scripts/configure-long-term-memory.ts",
157
162
  "model-gateway": "tsx src/model-gateway/server.ts",
158
163
  "smoke:packed-runtime-package": "tsx scripts/smoke-packed-runtime-package.ts",
159
164
  "smoke:runtime-package": "tsx scripts/smoke-runtime-package-import.ts",
160
165
  "test": "vitest",
166
+ "typecheck:all": "tsc -p tsconfig.json --noEmit",
161
167
  "typecheck:plugins": "tsc -p tsconfig.plugins.json",
162
- "validate": "npm run check:plugin-build && npm test -- --run && npm run build && npm run check:plugins && npm run smoke:runtime-package && npm run check:runtime-package && npm run smoke:packed-runtime-package && npm run check:publication",
168
+ "validate": "npm run check:plugin-build && npm run typecheck:all && npm test -- --run && npm run build && npm run check:plugins && npm run smoke:runtime-package && npm run check:runtime-package && npm run smoke:packed-runtime-package && npm run check:publication && npm run check:public-snapshot",
163
169
  "web-ui": "tsx src/web-ui/server.ts",
164
170
  "web-ui:install-user-services": "tsx scripts/install-runtime-web-ui-user-services.ts"
165
171
  },
166
172
  "type": "module",
167
173
  "types": "./dist/src/runtime/index.d.ts",
168
- "version": "1.0.0"
174
+ "version": "1.1.0"
169
175
  }
@@ -19,6 +19,7 @@ import { resolveExecScopedPath, resolveExecWorkingDirectory } from "./paths.js";
19
19
  import { createExecProcessManager } from "./process-manager.js";
20
20
  import { EXEC_COMMAND_MAX_CHARS, type ExecSettings } from "./settings.js";
21
21
  import type {
22
+ ExecActionSummary,
22
23
  ExecFilesystemDelta,
23
24
  ExecProcessSnapshot,
24
25
  ExecStreamSnapshot,
@@ -134,6 +135,59 @@ async function captureFilesystemDelta(
134
135
  }
135
136
  }
136
137
 
138
+ type ExecFilesystemEvidenceProjection = Readonly<{
139
+ outputLines: readonly string[];
140
+ mutationGrounding: string;
141
+ }>;
142
+
143
+ function projectExecFilesystemEvidence(
144
+ delta: ExecFilesystemDelta,
145
+ logicalRoot: string,
146
+ ): ExecFilesystemEvidenceProjection {
147
+ const effects = delta.actions.map(renderExecFilesystemEffect);
148
+ const omittedEffectCount = Math.max(
149
+ 0,
150
+ delta.changedEntryCount - effects.length,
151
+ );
152
+ const omittedEffectLine =
153
+ omittedEffectCount > 0
154
+ ? `- ${omittedEffectCount} additional changed ${omittedEffectCount === 1 ? "entry" : "entries"} omitted by the ${delta.observation.actionLimit}-effect projection limit.`
155
+ : undefined;
156
+ const outputLines = Object.freeze([
157
+ `Filesystem changes observed: ${delta.changedEntryCount}${delta.observation.complete ? "" : " (bounded observation)"}`,
158
+ "Filesystem effects observed:",
159
+ ...effects,
160
+ ...(omittedEffectLine ? [omittedEffectLine] : []),
161
+ ]);
162
+ return Object.freeze({
163
+ outputLines,
164
+ mutationGrounding: [
165
+ "Observed post-command filesystem effects (settled tool evidence; not command intent, semantic verification, or complete artifact content):",
166
+ `- observation root: ${logicalRoot}`,
167
+ `- observation complete: ${delta.observation.complete}`,
168
+ `- changed entries: ${delta.changedEntryCount}`,
169
+ `- listed effects: ${effects.length}`,
170
+ `- effects truncated: ${delta.observation.actionsTruncated}`,
171
+ "Effects:",
172
+ ...effects,
173
+ ...(omittedEffectLine ? [omittedEffectLine] : []),
174
+ ].join("\n"),
175
+ });
176
+ }
177
+
178
+ function renderExecFilesystemEffect(action: ExecActionSummary): string {
179
+ const target = action.target ? `: ${action.target}` : "";
180
+ const state =
181
+ action.details === "exec_filesystem_created"
182
+ ? "created"
183
+ : action.details === "exec_filesystem_modified"
184
+ ? "modified"
185
+ : action.details === "exec_filesystem_removed"
186
+ ? "removed"
187
+ : undefined;
188
+ return `- ${action.type}${target}${state ? ` (${state})` : ""}`;
189
+ }
190
+
137
191
  async function finalizeExecResult(params: {
138
192
  snapshot: ExecProcessSnapshot;
139
193
  execution: PendingExecExecution;
@@ -146,6 +200,13 @@ async function finalizeExecResult(params: {
146
200
  snapshot.terminationReason === "cancelled";
147
201
  const filesystemDelta = await captureFilesystemDelta(execution);
148
202
  const observedStateChange = filesystemDelta?.observedStateChange === true;
203
+ const filesystemEvidence =
204
+ observedStateChange && filesystemDelta
205
+ ? projectExecFilesystemEvidence(
206
+ filesystemDelta,
207
+ execution.cwd.logicalPath,
208
+ )
209
+ : null;
149
210
  const commandHasData = snapshot.stdout.sawOutput || snapshot.stderr.sawOutput;
150
211
  const ok = exitCode === 0 || cancellationIsSuccess;
151
212
  const inconclusiveSuccess =
@@ -168,11 +229,7 @@ async function finalizeExecResult(params: {
168
229
  `Process ID: ${snapshot.processId}`,
169
230
  `Process status: ${snapshot.terminationReason ?? "completed"}`,
170
231
  `Exit code: ${exitCode}`,
171
- ...(filesystemDelta?.observedStateChange
172
- ? [
173
- `Filesystem changes observed: ${filesystemDelta.changedEntryCount}${filesystemDelta.observation.complete ? "" : " (bounded observation)"}`,
174
- ]
175
- : []),
232
+ ...(filesystemEvidence ? filesystemEvidence.outputLines : []),
176
233
  "STDOUT:",
177
234
  streamDisplay(snapshot.stdout),
178
235
  "STDERR:",
@@ -185,6 +242,9 @@ async function finalizeExecResult(params: {
185
242
  const data = {
186
243
  ...(commandHasData ? { hasData: true } : {}),
187
244
  ...(observedStateChange ? { mutationEvidence: true } : {}),
245
+ ...(filesystemEvidence
246
+ ? { mutationGrounding: filesystemEvidence.mutationGrounding }
247
+ : {}),
188
248
  processId: snapshot.processId,
189
249
  processStatus,
190
250
  outputBounds: outputBoundsData(
@@ -1146,12 +1146,49 @@ async function captureFilesystemDelta(execution) {
1146
1146
  return null;
1147
1147
  }
1148
1148
  }
1149
+ function projectExecFilesystemEvidence(delta, logicalRoot) {
1150
+ const effects = delta.actions.map(renderExecFilesystemEffect);
1151
+ const omittedEffectCount = Math.max(
1152
+ 0,
1153
+ delta.changedEntryCount - effects.length
1154
+ );
1155
+ const omittedEffectLine = omittedEffectCount > 0 ? `- ${omittedEffectCount} additional changed ${omittedEffectCount === 1 ? "entry" : "entries"} omitted by the ${delta.observation.actionLimit}-effect projection limit.` : void 0;
1156
+ const outputLines = Object.freeze([
1157
+ `Filesystem changes observed: ${delta.changedEntryCount}${delta.observation.complete ? "" : " (bounded observation)"}`,
1158
+ "Filesystem effects observed:",
1159
+ ...effects,
1160
+ ...omittedEffectLine ? [omittedEffectLine] : []
1161
+ ]);
1162
+ return Object.freeze({
1163
+ outputLines,
1164
+ mutationGrounding: [
1165
+ "Observed post-command filesystem effects (settled tool evidence; not command intent, semantic verification, or complete artifact content):",
1166
+ `- observation root: ${logicalRoot}`,
1167
+ `- observation complete: ${delta.observation.complete}`,
1168
+ `- changed entries: ${delta.changedEntryCount}`,
1169
+ `- listed effects: ${effects.length}`,
1170
+ `- effects truncated: ${delta.observation.actionsTruncated}`,
1171
+ "Effects:",
1172
+ ...effects,
1173
+ ...omittedEffectLine ? [omittedEffectLine] : []
1174
+ ].join("\n")
1175
+ });
1176
+ }
1177
+ function renderExecFilesystemEffect(action) {
1178
+ const target = action.target ? `: ${action.target}` : "";
1179
+ const state = action.details === "exec_filesystem_created" ? "created" : action.details === "exec_filesystem_modified" ? "modified" : action.details === "exec_filesystem_removed" ? "removed" : void 0;
1180
+ return `- ${action.type}${target}${state ? ` (${state})` : ""}`;
1181
+ }
1149
1182
  async function finalizeExecResult(params) {
1150
1183
  const { snapshot, execution } = params;
1151
1184
  const exitCode = snapshot.exitCode ?? -1;
1152
1185
  const cancellationIsSuccess = params.cancellationIsSuccess === true && snapshot.terminationReason === "cancelled";
1153
1186
  const filesystemDelta = await captureFilesystemDelta(execution);
1154
1187
  const observedStateChange = filesystemDelta?.observedStateChange === true;
1188
+ const filesystemEvidence = observedStateChange && filesystemDelta ? projectExecFilesystemEvidence(
1189
+ filesystemDelta,
1190
+ execution.cwd.logicalPath
1191
+ ) : null;
1155
1192
  const commandHasData = snapshot.stdout.sawOutput || snapshot.stderr.sawOutput;
1156
1193
  const ok = exitCode === 0 || cancellationIsSuccess;
1157
1194
  const inconclusiveSuccess = exitCode === 0 && !commandHasData && !observedStateChange;
@@ -1166,9 +1203,7 @@ async function finalizeExecResult(params) {
1166
1203
  `Process ID: ${snapshot.processId}`,
1167
1204
  `Process status: ${snapshot.terminationReason ?? "completed"}`,
1168
1205
  `Exit code: ${exitCode}`,
1169
- ...filesystemDelta?.observedStateChange ? [
1170
- `Filesystem changes observed: ${filesystemDelta.changedEntryCount}${filesystemDelta.observation.complete ? "" : " (bounded observation)"}`
1171
- ] : [],
1206
+ ...filesystemEvidence ? filesystemEvidence.outputLines : [],
1172
1207
  "STDOUT:",
1173
1208
  streamDisplay(snapshot.stdout),
1174
1209
  "STDERR:",
@@ -1181,6 +1216,7 @@ async function finalizeExecResult(params) {
1181
1216
  const data = {
1182
1217
  ...commandHasData ? { hasData: true } : {},
1183
1218
  ...observedStateChange ? { mutationEvidence: true } : {},
1219
+ ...filesystemEvidence ? { mutationGrounding: filesystemEvidence.mutationGrounding } : {},
1184
1220
  processId: snapshot.processId,
1185
1221
  processStatus,
1186
1222
  outputBounds: outputBoundsData(
@@ -64,6 +64,7 @@
64
64
  },
65
65
  "required": ["path"]
66
66
  },
67
+ "selectionControlIds": ["path"],
67
68
  "effect": "read_only",
68
69
  "approval": "request_policy"
69
70
  }
@@ -333,6 +333,20 @@
333
333
  },
334
334
  "additionalProperties": false
335
335
  },
336
+ "longTermMemory": {
337
+ "type": "object",
338
+ "description": "Passive cross-session memory. Disabled unless the host opts in and binds an embedding profile.",
339
+ "properties": {
340
+ "enabled": { "type": "boolean", "default": false },
341
+ "emitClientEvents": { "type": "boolean", "default": false },
342
+ "embeddingProfileId": {
343
+ "type": "string",
344
+ "minLength": 1,
345
+ "description": "Profile id under models.embeddingProfiles used for retrieval and indexing."
346
+ }
347
+ },
348
+ "additionalProperties": false
349
+ },
336
350
  "models": {
337
351
  "type": "object",
338
352
  "description": "Model profiles and defaults consumed by model-gateway policy.",
@@ -606,6 +620,22 @@
606
620
  ]
607
621
  }
608
622
  },
623
+ "embeddingProfiles": {
624
+ "type": "object",
625
+ "propertyNames": { "minLength": 1 },
626
+ "description": "Non-generative embedding profiles used by core services such as long-term memory.",
627
+ "additionalProperties": {
628
+ "type": "object",
629
+ "properties": {
630
+ "label": { "type": "string", "minLength": 1 },
631
+ "provider": { "type": "string", "minLength": 1 },
632
+ "model": { "type": "string", "minLength": 1 },
633
+ "options": { "type": "object", "additionalProperties": true }
634
+ },
635
+ "required": ["provider", "model"],
636
+ "additionalProperties": false
637
+ }
638
+ },
609
639
  "invocationProfiles": {
610
640
  "type": "object",
611
641
  "description": "Invocation profiles keyed by id. They reference a model profile and override per-invocation generation, context, or format policy.",