@abot-ai/runtime 1.2.0 → 1.3.1

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 (550) hide show
  1. package/README.md +14 -0
  2. package/dist/scripts/init-runtime.js +4 -13
  3. package/dist/scripts/runtime-setup-directories.d.ts +2 -0
  4. package/dist/scripts/runtime-setup-directories.js +38 -0
  5. package/dist/src/bridge/request-steering.d.ts +2 -1
  6. package/dist/src/bridge/request-steering.js +4 -2
  7. package/dist/src/bridge/runtime-replay.js +2 -19
  8. package/dist/src/bridge/start-agent-bridge.js +1 -1
  9. package/dist/src/capabilities/normal-invocation/validator.js +1 -1
  10. package/dist/src/capabilities/tool-definition-validator/event-presentation.js +3 -0
  11. package/dist/src/capabilities/tool-definition-validator/event-result-metadata.d.ts +2 -0
  12. package/dist/src/capabilities/tool-definition-validator/event-result-metadata.js +74 -0
  13. package/dist/src/capabilities/tool-event-metadata.js +3 -0
  14. package/dist/src/capabilities/tool-result-event-projection.d.ts +3 -0
  15. package/dist/src/capabilities/tool-result-event-projection.js +82 -0
  16. package/dist/src/capabilities/tool-types.d.ts +5 -0
  17. package/dist/src/cli/abot.js +2 -11
  18. package/dist/src/runtime/adapters/in-memory-session-store.js +1 -0
  19. package/dist/src/runtime/adapters/long-term-memory/file-lock/acquisition.js +11 -2
  20. package/dist/src/runtime/adapters/long-term-memory/file-lock/contracts.d.ts +2 -0
  21. package/dist/src/runtime/adapters/long-term-memory/file-lock/synchronous-release.d.ts +2 -0
  22. package/dist/src/runtime/adapters/long-term-memory/file-lock/synchronous-release.js +40 -0
  23. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/approval.d.ts +3 -0
  24. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/approval.js +9 -0
  25. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/rejection-event.d.ts +13 -0
  26. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/rejection-event.js +25 -0
  27. package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/run.js +18 -2
  28. package/dist/src/runtime/adapters/registered-tool-normal-invocations/executor.js +8 -0
  29. package/dist/src/runtime/adapters/registered-tool-normal-invocations/payload/lifecycle.js +7 -3
  30. package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/contracts.d.ts +17 -2
  31. package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/event-metadata.d.ts +9 -0
  32. package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/event-metadata.js +8 -0
  33. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/execution.js +16 -1
  34. package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-observability.js +2 -2
  35. package/dist/src/runtime/adapters/scheduled-request-outcome.d.ts +11 -0
  36. package/dist/src/runtime/adapters/scheduled-request-outcome.js +41 -0
  37. package/dist/src/runtime/adapters/scheduler-runtime.d.ts +19 -0
  38. package/dist/src/runtime/adapters/scheduler-runtime.js +138 -0
  39. package/dist/src/runtime/capabilities/scheduling/create-operations.d.ts +55 -0
  40. package/dist/src/runtime/capabilities/scheduling/create-operations.js +30 -0
  41. package/dist/src/runtime/capabilities/scheduling/create-time-zone.d.ts +1 -0
  42. package/dist/src/runtime/capabilities/scheduling/create-time-zone.js +11 -0
  43. package/dist/src/runtime/capabilities/scheduling/job-list-page.d.ts +25 -0
  44. package/dist/src/runtime/capabilities/scheduling/job-list-page.js +40 -0
  45. package/dist/src/runtime/capabilities/scheduling/model-validation.d.ts +2 -0
  46. package/dist/src/runtime/capabilities/scheduling/model-validation.js +15 -0
  47. package/dist/src/runtime/capabilities/scheduling/tool-contract.d.ts +2 -0
  48. package/dist/src/runtime/capabilities/scheduling/tool-contract.js +35 -0
  49. package/dist/src/runtime/capabilities/scheduling/tool-input-properties.d.ts +43 -0
  50. package/dist/src/runtime/capabilities/scheduling/tool-input-properties.js +27 -0
  51. package/dist/src/runtime/capabilities/scheduling/tool-module.d.ts +4 -0
  52. package/dist/src/runtime/capabilities/scheduling/tool-module.js +158 -0
  53. package/dist/src/runtime/capabilities/scheduling/update-operations.d.ts +2 -0
  54. package/dist/src/runtime/capabilities/scheduling/update-operations.js +49 -0
  55. package/dist/src/runtime/composition.d.ts +23 -3
  56. package/dist/src/runtime/composition.js +12 -17
  57. package/dist/src/runtime/config/environment-paths.d.ts +10 -0
  58. package/dist/src/runtime/config/environment-paths.js +31 -0
  59. package/dist/src/runtime/config/environment-storage.d.ts +9 -0
  60. package/dist/src/runtime/config/environment-storage.js +65 -0
  61. package/dist/src/runtime/config/fields.js +7 -0
  62. package/dist/src/runtime/config/long-term-memory.js +15 -0
  63. package/dist/src/runtime/config/schema.js +8 -0
  64. package/dist/src/runtime/config.js +9 -5
  65. package/dist/src/runtime/context/scheduled-execution-context.d.ts +10 -0
  66. package/dist/src/runtime/context/scheduled-execution-context.js +52 -0
  67. package/dist/src/runtime/default-adapters.d.ts +3 -32
  68. package/dist/src/runtime/default-adapters.js +3 -270
  69. package/dist/src/runtime/default-environment-adapters.d.ts +19 -0
  70. package/dist/src/runtime/default-environment-adapters.js +144 -0
  71. package/dist/src/runtime/index.d.ts +5 -0
  72. package/dist/src/runtime/index.js +4 -0
  73. package/dist/src/runtime/local-application.d.ts +22 -0
  74. package/dist/src/runtime/local-application.js +81 -0
  75. package/dist/src/runtime/local-host/app-memory-dispatch.d.ts +11 -0
  76. package/dist/src/runtime/local-host/app-memory-dispatch.js +103 -0
  77. package/dist/src/runtime/local-host/app-owner.d.ts +4 -0
  78. package/dist/src/runtime/local-host/app-owner.js +119 -0
  79. package/dist/src/runtime/local-host/app-request-control.d.ts +24 -0
  80. package/dist/src/runtime/local-host/app-request-control.js +135 -0
  81. package/dist/src/runtime/local-host/app-service-dispatch.d.ts +5 -0
  82. package/dist/src/runtime/local-host/app-service-dispatch.js +64 -0
  83. package/dist/src/runtime/local-host/client-identity.d.ts +3 -0
  84. package/dist/src/runtime/local-host/client-identity.js +17 -0
  85. package/dist/src/runtime/local-host/client-memory.d.ts +7 -0
  86. package/dist/src/runtime/local-host/client-memory.js +54 -0
  87. package/dist/src/runtime/local-host/client-requests.d.ts +19 -0
  88. package/dist/src/runtime/local-host/client-requests.js +145 -0
  89. package/dist/src/runtime/local-host/client-services.d.ts +10 -0
  90. package/dist/src/runtime/local-host/client-services.js +14 -0
  91. package/dist/src/runtime/local-host/contracts.d.ts +36 -0
  92. package/dist/src/runtime/local-host/contracts.js +1 -0
  93. package/dist/src/runtime/local-host/endpoint.d.ts +7 -0
  94. package/dist/src/runtime/local-host/endpoint.js +79 -0
  95. package/dist/src/runtime/local-host/owner-activity.d.ts +10 -0
  96. package/dist/src/runtime/local-host/owner-activity.js +30 -0
  97. package/dist/src/runtime/local-host/owner-retirement.d.ts +3 -0
  98. package/dist/src/runtime/local-host/owner-retirement.js +15 -0
  99. package/dist/src/runtime/local-host/owner-server.d.ts +6 -0
  100. package/dist/src/runtime/local-host/owner-server.js +88 -0
  101. package/dist/src/runtime/local-host/private-access.d.ts +2 -0
  102. package/dist/src/runtime/local-host/private-access.js +16 -0
  103. package/dist/src/runtime/local-host/private-directory.d.ts +1 -0
  104. package/dist/src/runtime/local-host/private-directory.js +57 -0
  105. package/dist/src/runtime/local-host/rpc-peer.d.ts +22 -0
  106. package/dist/src/runtime/local-host/rpc-peer.js +168 -0
  107. package/dist/src/runtime/local-host/rpc-protocol.d.ts +21 -0
  108. package/dist/src/runtime/local-host/rpc-protocol.js +46 -0
  109. package/dist/src/runtime/local-host/startup-connection.d.ts +5 -0
  110. package/dist/src/runtime/local-host/startup-connection.js +72 -0
  111. package/dist/src/runtime/local-host/transport.d.ts +3 -0
  112. package/dist/src/runtime/local-host/transport.js +88 -0
  113. package/dist/src/runtime/local-host/windows-private-access.d.ts +1 -0
  114. package/dist/src/runtime/local-host/windows-private-access.js +51 -0
  115. package/dist/src/runtime/long-term-memory/onboarding/configuration.js +6 -0
  116. package/dist/src/runtime/long-term-memory/recall-binding.d.ts +3 -0
  117. package/dist/src/runtime/long-term-memory/recall-binding.js +27 -0
  118. package/dist/src/runtime/long-term-memory/recall-context.d.ts +20 -0
  119. package/dist/src/runtime/long-term-memory/recall-context.js +101 -0
  120. package/dist/src/runtime/long-term-memory/recall-continuation.d.ts +8 -0
  121. package/dist/src/runtime/long-term-memory/recall-continuation.js +36 -0
  122. package/dist/src/runtime/long-term-memory/recall-policy.d.ts +7 -0
  123. package/dist/src/runtime/long-term-memory/recall-policy.js +14 -0
  124. package/dist/src/runtime/long-term-memory/recall-result.d.ts +5 -0
  125. package/dist/src/runtime/long-term-memory/recall-result.js +54 -0
  126. package/dist/src/runtime/long-term-memory/repository-state.d.ts +2 -1
  127. package/dist/src/runtime/long-term-memory/repository-state.js +2 -2
  128. package/dist/src/runtime/model/invoke-raw-step.d.ts +1 -0
  129. package/dist/src/runtime/model/invoke-raw-step.js +1 -0
  130. package/dist/src/runtime/model/invoke-step.js +6 -0
  131. package/dist/src/runtime/model/invoke-structured-step.d.ts +1 -0
  132. package/dist/src/runtime/model/invoke-structured-step.js +1 -0
  133. package/dist/src/runtime/model/model-step-port.d.ts +2 -0
  134. package/dist/src/runtime/model/model-step-steering.d.ts +8 -0
  135. package/dist/src/runtime/model/model-step-steering.js +19 -0
  136. package/dist/src/runtime/orchestration/final-response/authoring-contract.js +1 -1
  137. package/dist/src/runtime/orchestration/final-response/invoke.d.ts +1 -0
  138. package/dist/src/runtime/orchestration/final-response/invoke.js +1 -0
  139. package/dist/src/runtime/orchestration/role-calls/activation-budget.js +1 -0
  140. package/dist/src/runtime/orchestration/role-calls/candidate-validation.js +9 -49
  141. package/dist/src/runtime/orchestration/role-calls/capability-selection-reconsideration.d.ts +9 -0
  142. package/dist/src/runtime/orchestration/role-calls/capability-selection-reconsideration.js +17 -8
  143. package/dist/src/runtime/orchestration/role-calls/capability-selection-supervision-validation.d.ts +2 -0
  144. package/dist/src/runtime/orchestration/role-calls/capability-selection-supervision-validation.js +62 -0
  145. package/dist/src/runtime/orchestration/role-calls/command-decoder.js +4 -0
  146. package/dist/src/runtime/orchestration/role-calls/command-dispatch/memory-recall-transitions.d.ts +4 -0
  147. package/dist/src/runtime/orchestration/role-calls/command-dispatch/memory-recall-transitions.js +89 -0
  148. package/dist/src/runtime/orchestration/role-calls/command-dispatch.js +5 -0
  149. package/dist/src/runtime/orchestration/role-calls/contracts.d.ts +9 -7
  150. package/dist/src/runtime/orchestration/role-calls/contracts.js +2 -2
  151. package/dist/src/runtime/orchestration/role-calls/diagnostics.js +3 -0
  152. package/dist/src/runtime/orchestration/role-calls/index.d.ts +1 -0
  153. package/dist/src/runtime/orchestration/role-calls/index.js +1 -0
  154. package/dist/src/runtime/orchestration/role-calls/memory-recall-contract.d.ts +51 -0
  155. package/dist/src/runtime/orchestration/role-calls/memory-recall-contract.js +4 -0
  156. package/dist/src/runtime/orchestration/role-calls/memory-recall-decoder.d.ts +6 -0
  157. package/dist/src/runtime/orchestration/role-calls/memory-recall-decoder.js +147 -0
  158. package/dist/src/runtime/orchestration/role-calls/memory-recall-diagnostics.d.ts +5 -0
  159. package/dist/src/runtime/orchestration/role-calls/memory-recall-diagnostics.js +27 -0
  160. package/dist/src/runtime/orchestration/role-calls/memory-recall-state-validation.d.ts +3 -0
  161. package/dist/src/runtime/orchestration/role-calls/memory-recall-state-validation.js +121 -0
  162. package/dist/src/runtime/orchestration/role-calls/memory-recall-transactions.d.ts +3 -0
  163. package/dist/src/runtime/orchestration/role-calls/memory-recall-transactions.js +44 -0
  164. package/dist/src/runtime/orchestration/role-calls/reducer.js +1 -0
  165. package/dist/src/runtime/orchestration/role-calls/transaction-effect.d.ts +5 -0
  166. package/dist/src/runtime/orchestration/role-calls/transaction-effect.js +14 -0
  167. package/dist/src/runtime/orchestration/role-calls/transactions.js +3 -24
  168. package/dist/src/runtime/plugins/manifest-validator.js +4 -1
  169. package/dist/src/runtime/ports.d.ts +4 -0
  170. package/dist/src/runtime/request/bound-runtime-handler.d.ts +2 -0
  171. package/dist/src/runtime/request/bound-runtime-handler.js +25 -0
  172. package/dist/src/runtime/request/contracts.d.ts +6 -0
  173. package/dist/src/runtime/request/execution-agent-root-execution.js +12 -0
  174. package/dist/src/runtime/request/execution-facets.js +6 -0
  175. package/dist/src/runtime/request/execution-scope-surfaces.js +10 -0
  176. package/dist/src/runtime/request/execution-scope.d.ts +1 -1
  177. package/dist/src/runtime/request/handler.js +6 -0
  178. package/dist/src/runtime/request/root-contract.d.ts +7 -1
  179. package/dist/src/runtime/request/root-execution-kernel.js +33 -37
  180. package/dist/src/runtime/request/root-memory-recall.d.ts +11 -0
  181. package/dist/src/runtime/request/root-memory-recall.js +71 -0
  182. package/dist/src/runtime/request/root-observation-handoff.d.ts +17 -0
  183. package/dist/src/runtime/request/root-observation-handoff.js +44 -0
  184. package/dist/src/runtime/request/scheduled-execution.d.ts +9 -0
  185. package/dist/src/runtime/request/scheduled-execution.js +32 -0
  186. package/dist/src/runtime/request/session-admission.d.ts +17 -0
  187. package/dist/src/runtime/request/session-admission.js +88 -0
  188. package/dist/src/runtime/request/supervisor-root-execution-diagnostics.d.ts +1 -1
  189. package/dist/src/runtime/request/supervisor-root-execution.js +8 -0
  190. package/dist/src/runtime/runtime-environment.d.ts +31 -0
  191. package/dist/src/runtime/runtime-environment.js +102 -0
  192. package/dist/src/runtime/runtime-host-environment.d.ts +8 -0
  193. package/dist/src/runtime/runtime-host-environment.js +57 -0
  194. package/dist/src/runtime/runtime-host-lifecycle.d.ts +4 -0
  195. package/dist/src/runtime/runtime-host-lifecycle.js +64 -0
  196. package/dist/src/runtime/runtime-host-scheduler-ownership.d.ts +5 -0
  197. package/dist/src/runtime/runtime-host-scheduler-ownership.js +67 -0
  198. package/dist/src/runtime/runtime-host.d.ts +19 -0
  199. package/dist/src/runtime/runtime-host.js +63 -0
  200. package/dist/src/runtime/scheduler/calendar-time.d.ts +10 -0
  201. package/dist/src/runtime/scheduler/calendar-time.js +58 -0
  202. package/dist/src/runtime/scheduler/contracts.d.ts +143 -0
  203. package/dist/src/runtime/scheduler/contracts.js +1 -0
  204. package/dist/src/runtime/scheduler/file-store.d.ts +2 -0
  205. package/dist/src/runtime/scheduler/file-store.js +76 -0
  206. package/dist/src/runtime/scheduler/instant-validation.d.ts +4 -0
  207. package/dist/src/runtime/scheduler/instant-validation.js +69 -0
  208. package/dist/src/runtime/scheduler/interval-range.d.ts +8 -0
  209. package/dist/src/runtime/scheduler/interval-range.js +24 -0
  210. package/dist/src/runtime/scheduler/job-management.d.ts +8 -0
  211. package/dist/src/runtime/scheduler/job-management.js +212 -0
  212. package/dist/src/runtime/scheduler/journal-checkpoint.d.ts +9 -0
  213. package/dist/src/runtime/scheduler/journal-checkpoint.js +45 -0
  214. package/dist/src/runtime/scheduler/journal-durability.d.ts +8 -0
  215. package/dist/src/runtime/scheduler/journal-durability.js +59 -0
  216. package/dist/src/runtime/scheduler/journal-files.d.ts +14 -0
  217. package/dist/src/runtime/scheduler/journal-files.js +59 -0
  218. package/dist/src/runtime/scheduler/journal-head.d.ts +21 -0
  219. package/dist/src/runtime/scheduler/journal-head.js +81 -0
  220. package/dist/src/runtime/scheduler/journal-index-state.d.ts +31 -0
  221. package/dist/src/runtime/scheduler/journal-index-state.js +137 -0
  222. package/dist/src/runtime/scheduler/journal-index.d.ts +22 -0
  223. package/dist/src/runtime/scheduler/journal-index.js +195 -0
  224. package/dist/src/runtime/scheduler/journal-store.d.ts +21 -0
  225. package/dist/src/runtime/scheduler/journal-store.js +184 -0
  226. package/dist/src/runtime/scheduler/journal-transaction.d.ts +14 -0
  227. package/dist/src/runtime/scheduler/journal-transaction.js +104 -0
  228. package/dist/src/runtime/scheduler/next-occurrence.d.ts +3 -0
  229. package/dist/src/runtime/scheduler/next-occurrence.js +39 -0
  230. package/dist/src/runtime/scheduler/run-completion.d.ts +12 -0
  231. package/dist/src/runtime/scheduler/run-completion.js +77 -0
  232. package/dist/src/runtime/scheduler/run-list-query.d.ts +5 -0
  233. package/dist/src/runtime/scheduler/run-list-query.js +38 -0
  234. package/dist/src/runtime/scheduler/run-records.d.ts +6 -0
  235. package/dist/src/runtime/scheduler/run-records.js +41 -0
  236. package/dist/src/runtime/scheduler/schedule-update.d.ts +3 -0
  237. package/dist/src/runtime/scheduler/schedule-update.js +22 -0
  238. package/dist/src/runtime/scheduler/schedule-validation.d.ts +10 -0
  239. package/dist/src/runtime/scheduler/schedule-validation.js +132 -0
  240. package/dist/src/runtime/scheduler/scheduler-engine.d.ts +2 -0
  241. package/dist/src/runtime/scheduler/scheduler-engine.js +174 -0
  242. package/dist/src/runtime/scheduler/scheduler-service.d.ts +10 -0
  243. package/dist/src/runtime/scheduler/scheduler-service.js +115 -0
  244. package/dist/src/runtime/scheduler/service-context.d.ts +21 -0
  245. package/dist/src/runtime/scheduler/service-context.js +26 -0
  246. package/dist/src/runtime/scheduler/session-deletion-state.d.ts +9 -0
  247. package/dist/src/runtime/scheduler/session-deletion-state.js +30 -0
  248. package/dist/src/runtime/scheduler/snapshot-validation.d.ts +4 -0
  249. package/dist/src/runtime/scheduler/snapshot-validation.js +112 -0
  250. package/dist/src/runtime/scheduler/startup-recovery.d.ts +2 -0
  251. package/dist/src/runtime/scheduler/startup-recovery.js +38 -0
  252. package/dist/src/runtime/scheduler/validation-error.d.ts +4 -0
  253. package/dist/src/runtime/scheduler/validation-error.js +8 -0
  254. package/dist/src/runtime/scheduler/working-store.d.ts +3 -0
  255. package/dist/src/runtime/scheduler/working-store.js +8 -0
  256. package/dist/src/runtime/session/request-session.d.ts +1 -0
  257. package/dist/src/runtime/session/request-session.js +14 -1
  258. package/dist/src/runtime/session/session-attachment-deletion.d.ts +8 -0
  259. package/dist/src/runtime/session/session-attachment-deletion.js +87 -0
  260. package/dist/src/runtime/session/session-deletion-boundary.d.ts +10 -0
  261. package/dist/src/runtime/session/session-deletion-boundary.js +39 -0
  262. package/dist/src/runtime/session/session-deletion-cleanup.d.ts +7 -0
  263. package/dist/src/runtime/session/session-deletion-cleanup.js +62 -0
  264. package/dist/src/runtime/session/session-deletion-finalization.d.ts +7 -0
  265. package/dist/src/runtime/session/session-deletion-finalization.js +34 -0
  266. package/dist/src/runtime/session/session-deletion-receipts.d.ts +7 -0
  267. package/dist/src/runtime/session/session-deletion-receipts.js +18 -0
  268. package/dist/src/runtime/session/session-lifecycle-store.d.ts +21 -0
  269. package/dist/src/runtime/session/session-lifecycle-store.js +72 -0
  270. package/dist/src/runtime/session/session-mutation-queue.d.ts +3 -0
  271. package/dist/src/runtime/session/session-mutation-queue.js +15 -0
  272. package/dist/src/runtime/steps/execution-agent/capability-decision-parsing.d.ts +16 -0
  273. package/dist/src/runtime/steps/execution-agent/capability-decision-parsing.js +165 -0
  274. package/dist/src/runtime/steps/execution-agent/contracts.d.ts +3 -1
  275. package/dist/src/runtime/steps/execution-agent/decision-parsing.d.ts +2 -0
  276. package/dist/src/runtime/steps/execution-agent/decision-parsing.js +195 -0
  277. package/dist/src/runtime/steps/execution-agent/decision-validation.d.ts +30 -0
  278. package/dist/src/runtime/steps/execution-agent/decision-validation.js +127 -0
  279. package/dist/src/runtime/steps/execution-agent/format.d.ts +1 -0
  280. package/dist/src/runtime/steps/execution-agent/format.js +12 -0
  281. package/dist/src/runtime/steps/execution-agent/input.d.ts +2 -1
  282. package/dist/src/runtime/steps/execution-agent/input.js +17 -2
  283. package/dist/src/runtime/steps/execution-agent/parser.d.ts +1 -2
  284. package/dist/src/runtime/steps/execution-agent/parser.js +1 -472
  285. package/dist/src/runtime/steps/execution-agent/prompt.d.ts +2 -0
  286. package/dist/src/runtime/steps/execution-agent/prompt.js +2 -0
  287. package/dist/src/runtime/steps/execution-agent/reconsideration-context.js +4 -3
  288. package/dist/src/runtime/steps/execution-agent/response-input.js +5 -4
  289. package/dist/src/runtime/steps/execution-agent/response-run.d.ts +3 -0
  290. package/dist/src/runtime/steps/execution-agent/response-run.js +7 -3
  291. package/dist/src/runtime/steps/execution-agent/run.d.ts +2 -0
  292. package/dist/src/runtime/steps/execution-agent/run.js +2 -0
  293. package/dist/src/runtime/steps/execution-agent/state-context.d.ts +2 -1
  294. package/dist/src/runtime/steps/execution-agent/state-context.js +13 -5
  295. package/dist/src/runtime/steps/memory-recall-decision.d.ts +30 -0
  296. package/dist/src/runtime/steps/memory-recall-decision.js +101 -0
  297. package/dist/src/runtime/steps/memory-recall-prompt.d.ts +1 -0
  298. package/dist/src/runtime/steps/memory-recall-prompt.js +15 -0
  299. package/dist/src/runtime/steps/supervisor-decision/contracts.d.ts +4 -2
  300. package/dist/src/runtime/steps/supervisor-decision/diagnostics.d.ts +2 -0
  301. package/dist/src/runtime/steps/supervisor-decision/diagnostics.js +13 -6
  302. package/dist/src/runtime/steps/supervisor-decision/format.d.ts +2 -0
  303. package/dist/src/runtime/steps/supervisor-decision/format.js +41 -2
  304. package/dist/src/runtime/steps/supervisor-decision/input.d.ts +5 -1
  305. package/dist/src/runtime/steps/supervisor-decision/input.js +25 -5
  306. package/dist/src/runtime/steps/supervisor-decision/memory-recall-continuation.d.ts +10 -0
  307. package/dist/src/runtime/steps/supervisor-decision/memory-recall-continuation.js +32 -0
  308. package/dist/src/runtime/steps/supervisor-decision/parser.d.ts +2 -0
  309. package/dist/src/runtime/steps/supervisor-decision/parser.js +36 -1
  310. package/dist/src/runtime/steps/supervisor-decision/prompt.d.ts +3 -0
  311. package/dist/src/runtime/steps/supervisor-decision/prompt.js +16 -8
  312. package/dist/src/runtime/steps/supervisor-decision/response-recommendation.d.ts +13 -0
  313. package/dist/src/runtime/steps/supervisor-decision/response-recommendation.js +32 -0
  314. package/dist/src/runtime/steps/supervisor-decision/resume.d.ts +2 -0
  315. package/dist/src/runtime/steps/supervisor-decision/resume.js +13 -0
  316. package/dist/src/runtime/steps/supervisor-decision/run.d.ts +3 -0
  317. package/dist/src/runtime/steps/supervisor-decision/run.js +19 -0
  318. package/dist/src/runtime/steps/supervisor-decision/working-directory.js +7 -1
  319. package/dist/src/runtime/steps/supervisor-response/diagnostics.d.ts +1 -0
  320. package/dist/src/runtime/steps/supervisor-response/diagnostics.js +1 -0
  321. package/dist/src/runtime/steps/supervisor-response/input.d.ts +2 -1
  322. package/dist/src/runtime/steps/supervisor-response/input.js +17 -4
  323. package/dist/src/runtime/steps/supervisor-response/memory-authoring.d.ts +1 -0
  324. package/dist/src/runtime/steps/supervisor-response/memory-authoring.js +4 -0
  325. package/dist/src/runtime/steps/supervisor-response/prompt.d.ts +1 -0
  326. package/dist/src/runtime/steps/supervisor-response/prompt.js +8 -2
  327. package/dist/src/runtime/steps/supervisor-response/response-recommendation.d.ts +10 -0
  328. package/dist/src/runtime/steps/supervisor-response/response-recommendation.js +25 -0
  329. package/dist/src/runtime/steps/supervisor-response/run.d.ts +6 -1
  330. package/dist/src/runtime/steps/supervisor-response/run.js +26 -7
  331. package/dist/src/sessions/record/projection.js +1 -0
  332. package/dist/src/sessions/schedule-metadata.d.ts +8 -0
  333. package/dist/src/sessions/schedule-metadata.js +1 -0
  334. package/dist/src/sessions/session-service.d.ts +1 -0
  335. package/dist/src/sessions/session-service.js +1 -0
  336. package/dist/src/sessions/types.d.ts +2 -0
  337. package/dist/src/shared/directory-authority/bootstrap.d.ts +1 -0
  338. package/dist/src/shared/directory-authority/bootstrap.js +118 -0
  339. package/dist/src/shared/directory-authority/command.d.ts +8 -0
  340. package/dist/src/shared/directory-authority/command.js +27 -0
  341. package/dist/src/shared/directory-authority/errors.d.ts +5 -0
  342. package/dist/src/shared/directory-authority/errors.js +10 -0
  343. package/dist/src/shared/directory-authority/index.d.ts +3 -0
  344. package/dist/src/shared/directory-authority/index.js +3 -0
  345. package/dist/src/shared/directory-authority/protocol.d.ts +11 -0
  346. package/dist/src/shared/directory-authority/protocol.js +62 -0
  347. package/dist/src/shared/directory-authority/task.d.ts +7 -0
  348. package/dist/src/shared/directory-authority/task.js +97 -0
  349. package/dist/src/shared/http-server-shutdown.d.ts +4 -0
  350. package/dist/src/shared/http-server-shutdown.js +17 -0
  351. package/dist/src/shared/public-http/aggregate-gate.d.ts +3 -0
  352. package/dist/src/shared/public-http/aggregate-gate.js +87 -0
  353. package/dist/src/shared/public-http/deadline.d.ts +2 -0
  354. package/dist/src/shared/public-http/deadline.js +29 -0
  355. package/dist/src/shared/public-http/errors.d.ts +6 -0
  356. package/dist/src/shared/public-http/errors.js +11 -0
  357. package/dist/src/shared/public-http/limits.d.ts +8 -0
  358. package/dist/src/shared/public-http/limits.js +8 -0
  359. package/dist/src/shared/public-http/network-policy.d.ts +11 -0
  360. package/dist/src/shared/public-http/network-policy.js +178 -0
  361. package/dist/src/shared/public-http/public-http.d.ts +24 -0
  362. package/dist/src/shared/public-http/public-http.js +85 -0
  363. package/dist/src/shared/public-http/request-hop.d.ts +18 -0
  364. package/dist/src/shared/public-http/request-hop.js +140 -0
  365. package/dist/src/web-ui/app/ARCHITECTURE.md +66 -4
  366. package/dist/src/web-ui/app/app-bootstrap.js +53 -0
  367. package/dist/src/web-ui/app/app-dom.js +80 -0
  368. package/dist/src/web-ui/app/app.js +195 -212
  369. package/dist/src/web-ui/app/components/conversation-activity.d.ts +2 -0
  370. package/dist/src/web-ui/app/components/conversation-activity.js +34 -7
  371. package/dist/src/web-ui/app/components/conversation-role-cards.d.ts +1 -0
  372. package/dist/src/web-ui/app/components/conversation-role-cards.js +61 -5
  373. package/dist/src/web-ui/app/components/conversation-schedule.js +71 -0
  374. package/dist/src/web-ui/app/components/conversation-status.js +65 -0
  375. package/dist/src/web-ui/app/components/conversation-tools.d.ts +13 -0
  376. package/dist/src/web-ui/app/components/conversation-tools.js +284 -0
  377. package/dist/src/web-ui/app/components/conversation-view.js +39 -11
  378. package/dist/src/web-ui/app/components/dashboard/activity.js +61 -0
  379. package/dist/src/web-ui/app/components/dashboard/icons.js +23 -0
  380. package/dist/src/web-ui/app/components/dashboard/recent-conversations.js +64 -0
  381. package/dist/src/web-ui/app/components/dashboard/workspace.js +107 -0
  382. package/dist/src/web-ui/app/components/message-link-previews.d.ts +16 -0
  383. package/dist/src/web-ui/app/components/message-link-previews.js +179 -0
  384. package/dist/src/web-ui/app/components/schedules/details.js +101 -0
  385. package/dist/src/web-ui/app/components/schedules/form.d.ts +13 -0
  386. package/dist/src/web-ui/app/components/schedules/form.js +246 -0
  387. package/dist/src/web-ui/app/components/schedules/workspace-state.js +59 -0
  388. package/dist/src/web-ui/app/components/schedules/workspace.js +165 -0
  389. package/dist/src/web-ui/app/components/workspace-shell.js +48 -2
  390. package/dist/src/web-ui/app/configuration-feature.js +72 -0
  391. package/dist/src/web-ui/app/controllers/composer-attachments-controller.d.ts +1 -0
  392. package/dist/src/web-ui/app/controllers/composer-attachments-controller.js +17 -6
  393. package/dist/src/web-ui/app/controllers/composer-submit-controller.d.ts +2 -0
  394. package/dist/src/web-ui/app/controllers/composer-submit-controller.js +15 -1
  395. package/dist/src/web-ui/app/controllers/composer-surface-controller.js +58 -0
  396. package/dist/src/web-ui/app/controllers/composer-workspace-controller.d.ts +53 -0
  397. package/dist/src/web-ui/app/controllers/composer-workspace-controller.js +180 -0
  398. package/dist/src/web-ui/app/controllers/conversation-read-state-controller.d.ts +23 -0
  399. package/dist/src/web-ui/app/controllers/conversation-read-state-controller.js +82 -0
  400. package/dist/src/web-ui/app/controllers/conversation-session-controller.d.ts +8 -0
  401. package/dist/src/web-ui/app/controllers/conversation-session-controller.js +28 -39
  402. package/dist/src/web-ui/app/controllers/dashboard-controller.js +127 -0
  403. package/dist/src/web-ui/app/controllers/home-composer-feature.d.ts +40 -0
  404. package/dist/src/web-ui/app/controllers/home-composer-feature.js +119 -0
  405. package/dist/src/web-ui/app/controllers/home-conversation-activation.js +37 -0
  406. package/dist/src/web-ui/app/controllers/realtime-event-controller.d.ts +1 -0
  407. package/dist/src/web-ui/app/controllers/realtime-event-controller.js +74 -3
  408. package/dist/src/web-ui/app/controllers/runtime-selection-controller.d.ts +2 -1
  409. package/dist/src/web-ui/app/controllers/runtime-selection-controller.js +15 -14
  410. package/dist/src/web-ui/app/controllers/schedule-realtime.js +118 -0
  411. package/dist/src/web-ui/app/controllers/schedules-controller.js +421 -0
  412. package/dist/src/web-ui/app/controllers/session-controller.js +30 -3
  413. package/dist/src/web-ui/app/dashboard-feature.js +44 -0
  414. package/dist/src/web-ui/app/index.html +53 -1
  415. package/dist/src/web-ui/app/lib/composer-submission-scope.d.ts +21 -0
  416. package/dist/src/web-ui/app/lib/composer-submission-scope.js +13 -0
  417. package/dist/src/web-ui/app/lib/context-window-snapshot-order.d.ts +15 -0
  418. package/dist/src/web-ui/app/lib/context-window-snapshot-order.js +31 -0
  419. package/dist/src/web-ui/app/lib/conversation-role-model.d.ts +10 -1
  420. package/dist/src/web-ui/app/lib/conversation-role-model.js +97 -15
  421. package/dist/src/web-ui/app/lib/conversation-status-model.d.ts +12 -0
  422. package/dist/src/web-ui/app/lib/conversation-status-model.js +116 -0
  423. package/dist/src/web-ui/app/lib/dashboard-job-templates.js +41 -0
  424. package/dist/src/web-ui/app/lib/dashboard-presentation.js +126 -0
  425. package/dist/src/web-ui/app/lib/message-markdown.d.ts +5 -0
  426. package/dist/src/web-ui/app/lib/message-markdown.js +99 -0
  427. package/dist/src/web-ui/app/lib/message-url-policy.d.ts +1 -0
  428. package/dist/src/web-ui/app/lib/message-url-policy.js +13 -0
  429. package/dist/src/web-ui/app/lib/schedule-errors.js +29 -0
  430. package/dist/src/web-ui/app/lib/schedule-message.js +30 -0
  431. package/dist/src/web-ui/app/lib/schedule-presentation.js +81 -0
  432. package/dist/src/web-ui/app/lib/session-read-state.d.ts +22 -0
  433. package/dist/src/web-ui/app/lib/session-read-state.js +63 -0
  434. package/dist/src/web-ui/app/lib/text-format.js +2 -143
  435. package/dist/src/web-ui/app/lib/tool-activity-event.d.ts +26 -0
  436. package/dist/src/web-ui/app/lib/tool-activity-event.js +228 -0
  437. package/dist/src/web-ui/app/lib/tool-activity-model.d.ts +41 -0
  438. package/dist/src/web-ui/app/lib/tool-activity-model.js +255 -0
  439. package/dist/src/web-ui/app/lib/tool-timeline.d.ts +3 -0
  440. package/dist/src/web-ui/app/lib/tool-timeline.js +18 -0
  441. package/dist/src/web-ui/app/schedules-feature.js +87 -0
  442. package/dist/src/web-ui/app/services/message-link-preview-client.d.ts +14 -0
  443. package/dist/src/web-ui/app/services/message-link-preview-client.js +96 -0
  444. package/dist/src/web-ui/app/services/runtime-web-client/schedules.js +51 -0
  445. package/dist/src/web-ui/app/services/runtime-web-client.d.ts +37 -0
  446. package/dist/src/web-ui/app/services/runtime-web-client.js +13 -8
  447. package/dist/src/web-ui/app/styles/00-tokens-base.css +11 -11
  448. package/dist/src/web-ui/app/styles/18-dashboard.css +384 -0
  449. package/dist/src/web-ui/app/styles/20-chat-composer.css +1 -130
  450. package/dist/src/web-ui/app/styles/26-message-content.css +295 -0
  451. package/dist/src/web-ui/app/styles/27-conversation-tools.css +266 -0
  452. package/dist/src/web-ui/app/styles/28-conversation-status.css +52 -0
  453. package/dist/src/web-ui/app/styles/38-schedule-workspace.css +263 -0
  454. package/dist/src/web-ui/app/styles/38-schedules.css +352 -0
  455. package/dist/src/web-ui/app/styles/90-responsive.css +14 -0
  456. package/dist/src/web-ui/app/styles/91-schedules-responsive.css +72 -0
  457. package/dist/src/web-ui/app/styles/92-dashboard-responsive.css +88 -0
  458. package/dist/src/web-ui/app/styles.css +8 -0
  459. package/dist/src/web-ui/app/ui-behavior.d.ts +1 -1
  460. package/dist/src/web-ui/app/ui-behavior.js +3 -1
  461. package/dist/src/web-ui/app/vendor/README.md +15 -0
  462. package/dist/src/web-ui/app/vendor/markdown-it.LICENSE +22 -0
  463. package/dist/src/web-ui/app/vendor/markdown-it.js +3003 -0
  464. package/dist/src/web-ui/link-preview/metadata.d.ts +9 -0
  465. package/dist/src/web-ui/link-preview/metadata.js +97 -0
  466. package/dist/src/web-ui/link-preview/preview-cache.d.ts +4 -0
  467. package/dist/src/web-ui/link-preview/preview-cache.js +23 -0
  468. package/dist/src/web-ui/link-preview/raster-response.d.ts +9 -0
  469. package/dist/src/web-ui/link-preview/raster-response.js +49 -0
  470. package/dist/src/web-ui/link-preview/routes.d.ts +3 -0
  471. package/dist/src/web-ui/link-preview/routes.js +97 -0
  472. package/dist/src/web-ui/link-preview/service.d.ts +11 -0
  473. package/dist/src/web-ui/link-preview/service.js +117 -0
  474. package/dist/src/web-ui/local-runtime/api-router.d.ts +4 -1
  475. package/dist/src/web-ui/local-runtime/api-router.js +42 -73
  476. package/dist/src/web-ui/local-runtime/contracts.d.ts +2 -2
  477. package/dist/src/web-ui/local-runtime/environment-registry.d.ts +12 -1
  478. package/dist/src/web-ui/local-runtime/environment-registry.js +38 -3
  479. package/dist/src/web-ui/local-runtime/realtime-controller.js +3 -1
  480. package/dist/src/web-ui/local-runtime/request-execution.d.ts +5 -1
  481. package/dist/src/web-ui/local-runtime/request-execution.js +38 -2
  482. package/dist/src/web-ui/local-runtime/schedule-job-creation.d.ts +7 -0
  483. package/dist/src/web-ui/local-runtime/schedule-job-creation.js +62 -0
  484. package/dist/src/web-ui/local-runtime/schedule-management-routes.d.ts +30 -0
  485. package/dist/src/web-ui/local-runtime/schedule-management-routes.js +134 -0
  486. package/dist/src/web-ui/local-runtime/schedule-run-page.d.ts +5 -0
  487. package/dist/src/web-ui/local-runtime/schedule-run-page.js +23 -0
  488. package/dist/src/web-ui/local-runtime/session-routes.d.ts +17 -0
  489. package/dist/src/web-ui/local-runtime/session-routes.js +74 -0
  490. package/dist/src/web-ui/local-runtime-backend.d.ts +2 -0
  491. package/dist/src/web-ui/local-runtime-backend.js +11 -1
  492. package/dist/src/web-ui/schedule-creation-contract.d.ts +7 -0
  493. package/dist/src/web-ui/schedule-creation-contract.js +1 -0
  494. package/dist/src/web-ui/server-shutdown.d.ts +4 -0
  495. package/dist/src/web-ui/server-shutdown.js +32 -0
  496. package/dist/src/web-ui/server.js +13 -10
  497. package/dist/src/web-ui/session-read-state/availability.d.ts +16 -0
  498. package/dist/src/web-ui/session-read-state/availability.js +20 -0
  499. package/dist/src/web-ui/session-read-state/projection.d.ts +17 -0
  500. package/dist/src/web-ui/session-read-state/projection.js +71 -0
  501. package/dist/src/web-ui/session-read-state/service.d.ts +86 -0
  502. package/dist/src/web-ui/session-read-state/service.js +89 -0
  503. package/dist/src/web-ui/session-read-state/store.d.ts +22 -0
  504. package/dist/src/web-ui/session-read-state/store.js +110 -0
  505. package/docs/configuration.md +41 -1
  506. package/docs/long-term-memory.md +46 -5
  507. package/docs/plugins.md +15 -9
  508. package/docs/runtime-invariant-coverage.md +1 -1
  509. package/docs/runtime-library.md +23 -0
  510. package/docs/runtime-public-contracts.md +32 -1
  511. package/package.json +3 -1
  512. package/plugins/code-outline/plugin.json +15 -0
  513. package/plugins/document-reader/plugin.json +17 -0
  514. package/plugins/exec/plugin.json +3 -3
  515. package/plugins/exec/skills/exec_skill/SKILL.md +1 -1
  516. package/plugins/exec/source/process-manager.ts +1 -20
  517. package/plugins/exec/source/shell-platform.ts +29 -0
  518. package/plugins/exec/src/index.cjs +25 -18
  519. package/plugins/filesystem/plugin.json +17 -2
  520. package/plugins/filesystem/source/atomic-write.ts +9 -0
  521. package/plugins/filesystem/source/bounded-io.ts +5 -99
  522. package/plugins/filesystem/source/directory-authority-write.ts +64 -0
  523. package/plugins/filesystem/source/directory-sample-task.ts +23 -0
  524. package/plugins/filesystem/source/directory-sample.ts +132 -0
  525. package/plugins/filesystem/source/directory-write-task.ts +160 -0
  526. package/plugins/filesystem/source/mutation-parent.ts +11 -0
  527. package/plugins/filesystem/src/index.cjs +693 -118
  528. package/plugins/json-inspector/plugin.json +12 -0
  529. package/plugins/local-search/plugin.json +12 -0
  530. package/plugins/local-search/source/index.ts +2 -0
  531. package/plugins/local-search/source/paths.ts +30 -7
  532. package/plugins/local-search/source/ripgrep-process.ts +69 -0
  533. package/plugins/local-search/source/ripgrep.ts +19 -23
  534. package/plugins/local-search/src/index.cjs +295 -32
  535. package/plugins/memory/plugin.json +26 -1
  536. package/plugins/memory/source/index.ts +10 -6
  537. package/plugins/memory/src/index.cjs +11 -7
  538. package/plugins/project-orientation/plugin.json +14 -0
  539. package/plugins/web/source/aggregate-gate.ts +8 -130
  540. package/plugins/web/source/deadline.ts +14 -50
  541. package/plugins/web/source/errors.ts +17 -11
  542. package/plugins/web/source/limits.ts +3 -6
  543. package/plugins/web/source/network-policy.ts +28 -226
  544. package/plugins/web/source/public-http.ts +17 -142
  545. package/plugins/web/source/request-hop.ts +11 -191
  546. package/plugins/web/src/index.cjs +119 -59
  547. package/runtime.config.schema.json +7 -0
  548. package/src/runtime/README.md +105 -1
  549. package/src/runtime/local-host/README.md +86 -0
  550. package/src/runtime/scheduler/README.md +166 -0
@@ -36,7 +36,7 @@ __export(index_exports, {
36
36
  default: () => index_default
37
37
  });
38
38
  module.exports = __toCommonJS(index_exports);
39
- var import_node_path2 = require("node:path");
39
+ var import_node_path3 = require("node:path");
40
40
 
41
41
  // src/plugin-sdk/bounds.ts
42
42
  function sanitizeJsonText(value) {
@@ -312,7 +312,12 @@ function authorityUnavailable() {
312
312
  );
313
313
  }
314
314
  async function openSearchAuthority(target) {
315
- if (process.platform !== "linux" || !Number.isInteger(import_node_fs.constants.O_NOFOLLOW) || !Number.isInteger(import_node_fs.constants.O_NONBLOCK)) {
315
+ const supportsSearchAuthority = ["linux", "darwin"].includes(
316
+ process.platform
317
+ );
318
+ if (!supportsSearchAuthority) throw authorityUnavailable();
319
+ const supportsAuthorityOpenFlags = Number.isInteger(import_node_fs.constants.O_NOFOLLOW) && Number.isInteger(import_node_fs.constants.O_NONBLOCK);
320
+ if (!supportsAuthorityOpenFlags) {
316
321
  throw authorityUnavailable();
317
322
  }
318
323
  let handle;
@@ -339,21 +344,32 @@ async function openSearchAuthority(target) {
339
344
  }
340
345
  const [pathIdentity, descriptorIdentity] = await Promise.all([
341
346
  (0, import_promises.stat)(canonicalTarget, { bigint: true }),
342
- (0, import_promises.stat)(`/proc/self/fd/${handle.fd}`, { bigint: true })
347
+ process.platform === "linux" ? (0, import_promises.stat)(`/proc/self/fd/${handle.fd}`, { bigint: true }) : handle.stat({ bigint: true })
343
348
  ]);
344
349
  if (!sameIdentity(observed, pathIdentity) || !sameIdentity(observed, descriptorIdentity)) {
345
350
  throw authorityUnavailable();
346
351
  }
347
352
  const authority = handle;
348
353
  const isFile = observed.isFile();
354
+ const needsDirectoryBridge = !isFile && process.platform === "darwin";
355
+ let commandDirectory = "/";
356
+ if (!isFile) {
357
+ commandDirectory = process.platform === "linux" ? `/proc/self/fd/${authority.fd}` : canonicalTarget;
358
+ }
349
359
  let closed = false;
350
360
  handle = void 0;
351
361
  return Object.freeze({
352
362
  target,
353
363
  isFile,
354
- commandDirectory: isFile ? "/" : `/proc/self/fd/${authority.fd}`,
364
+ commandDirectory,
355
365
  commandTarget: isFile ? "-" : ".",
356
366
  ...isFile ? { stdinFd: authority.fd } : {},
367
+ ...needsDirectoryBridge ? {
368
+ directoryAuthority: {
369
+ directoryPath: canonicalTarget,
370
+ directoryFd: authority.fd
371
+ }
372
+ } : {},
357
373
  close: async () => {
358
374
  if (closed) return;
359
375
  closed = true;
@@ -411,9 +427,260 @@ function qualifyMatchPath(context, root, rawPath) {
411
427
  }
412
428
 
413
429
  // plugins/local-search/source/ripgrep.ts
414
- var import_node_child_process = require("node:child_process");
415
430
  var import_node_util = require("node:util");
431
+
432
+ // plugins/local-search/source/ripgrep-process.ts
433
+ var import_node_child_process2 = require("node:child_process");
416
434
  var import_ripgrep = require("@vscode/ripgrep");
435
+
436
+ // src/shared/directory-authority/command.ts
437
+ var import_node_child_process = require("node:child_process");
438
+
439
+ // src/shared/directory-authority/bootstrap.ts
440
+ function directoryAuthorityBootstrap(mode, messageLimit, task) {
441
+ const fs = require("node:fs");
442
+ function fail(code, message) {
443
+ throw Object.assign(new Error(message), { code });
444
+ }
445
+ function verifyDirectoryAuthority() {
446
+ const expected = fs.fstatSync(3, { bigint: true });
447
+ const actual = fs.statSync(".", { bigint: true });
448
+ const matchesHeldDirectory = expected.isDirectory() && actual.isDirectory() && expected.dev === actual.dev && expected.ino === actual.ino;
449
+ if (matchesHeldDirectory) return;
450
+ fail(
451
+ "directory_authority_changed",
452
+ "The directory changed before the operation could establish its authority."
453
+ );
454
+ }
455
+ function readRequest() {
456
+ const fd = mode === "task" ? 0 : 4;
457
+ const chunk = Buffer.alloc(64 * 1024);
458
+ const chunks = [];
459
+ let total = 0;
460
+ for (; ; ) {
461
+ const length = fs.readSync(fd, chunk, 0, chunk.length, null);
462
+ if (length === 0) break;
463
+ total += length;
464
+ if (total > messageLimit) {
465
+ fail(
466
+ "directory_authority_request_too_large",
467
+ "The directory operation input exceeds the bridge byte limit."
468
+ );
469
+ }
470
+ chunks.push(Buffer.from(chunk.subarray(0, length)));
471
+ }
472
+ return JSON.parse(Buffer.concat(chunks).toString("utf8"));
473
+ }
474
+ function reportFailure(error) {
475
+ const detail = error;
476
+ const code = typeof detail?.code === "string" ? detail.code.slice(0, 256) : "directory_authority_failed";
477
+ const message = typeof detail?.message === "string" ? detail.message.slice(0, 4096) : "The directory operation failed.";
478
+ let encoded;
479
+ try {
480
+ encoded = JSON.stringify({
481
+ ok: false,
482
+ error: { code, message, data: detail?.data }
483
+ });
484
+ if (Buffer.byteLength(encoded) > messageLimit) throw new Error();
485
+ } catch {
486
+ encoded = JSON.stringify({ ok: false, error: { code, message } });
487
+ }
488
+ writeResponse(mode === "task" ? 1 : 2, encoded);
489
+ process.exitCode = mode === "task" ? 0 : 125;
490
+ }
491
+ function writeResponse(fd, encoded) {
492
+ const bytes = Buffer.from(encoded);
493
+ let offset = 0;
494
+ while (offset < bytes.length) {
495
+ offset += fs.writeSync(fd, bytes, offset, bytes.length - offset);
496
+ }
497
+ }
498
+ async function runTask(input) {
499
+ if (!task)
500
+ fail("directory_authority_failed", "The directory task is missing.");
501
+ const result = await task(input);
502
+ const encoded = JSON.stringify({ ok: true, result });
503
+ if (Buffer.byteLength(encoded) > messageLimit) {
504
+ fail(
505
+ "directory_authority_result_too_large",
506
+ "The directory operation result exceeds the bridge byte limit."
507
+ );
508
+ }
509
+ writeResponse(1, encoded);
510
+ }
511
+ function runCommand(input) {
512
+ const { spawn: spawn3 } = require("node:child_process");
513
+ const command = input;
514
+ const child = spawn3(command.command, command.args, {
515
+ stdio: ["ignore", "inherit", "inherit"],
516
+ env: process.env
517
+ });
518
+ child.once("error", reportFailure);
519
+ child.once("exit", (code, signal) => {
520
+ if (signal) {
521
+ process.kill(process.pid, signal);
522
+ return;
523
+ }
524
+ if (typeof code === "number") process.exitCode = code;
525
+ });
526
+ }
527
+ try {
528
+ verifyDirectoryAuthority();
529
+ const input = readRequest();
530
+ if (mode === "command") {
531
+ runCommand(input);
532
+ return;
533
+ }
534
+ void runTask(input).catch(reportFailure);
535
+ } catch (error) {
536
+ reportFailure(error);
537
+ }
538
+ }
539
+ function directoryAuthorityScript(mode, messageLimit, task) {
540
+ const taskSource = task ? `(${task.toString()})` : "undefined";
541
+ const preserveFunctionName = "const __name=(target,value)=>Object.defineProperty(target,'name',{value,configurable:true});";
542
+ return `${preserveFunctionName}(${directoryAuthorityBootstrap.toString()})(${JSON.stringify(mode)},${messageLimit},${taskSource});`;
543
+ }
544
+
545
+ // src/shared/directory-authority/protocol.ts
546
+ var import_node_path2 = require("node:path");
547
+
548
+ // src/shared/directory-authority/errors.ts
549
+ var DirectoryAuthorityError = class extends Error {
550
+ constructor(code, message, data) {
551
+ super(message);
552
+ this.code = code;
553
+ this.data = data;
554
+ this.name = "DirectoryAuthorityError";
555
+ }
556
+ code;
557
+ data;
558
+ };
559
+
560
+ // src/shared/directory-authority/protocol.ts
561
+ var AUTHORITY_MESSAGE_LIMIT = 8 * 1024 * 1024;
562
+ var AUTHORITY_STDERR_LIMIT = 16 * 1024;
563
+ function assertDirectoryAuthorityLocation(location) {
564
+ if (!(0, import_node_path2.isAbsolute)(location.directoryPath)) {
565
+ throw new DirectoryAuthorityError(
566
+ "directory_authority_invalid_path",
567
+ "The directory authority requires an absolute starting path."
568
+ );
569
+ }
570
+ const hasOpenDescriptorNumber = Number.isInteger(location.directoryFd) && location.directoryFd >= 0;
571
+ if (hasOpenDescriptorNumber) return;
572
+ throw new DirectoryAuthorityError(
573
+ "directory_authority_invalid_fd",
574
+ "The directory authority requires an open directory descriptor."
575
+ );
576
+ }
577
+ function authorityEnvironment(environment = process.env) {
578
+ const sanitized = { ...environment };
579
+ delete sanitized.NODE_OPTIONS;
580
+ delete sanitized.NODE_PATH;
581
+ return sanitized;
582
+ }
583
+ function encodeAuthorityRequest(input) {
584
+ let encoded;
585
+ try {
586
+ encoded = JSON.stringify(input);
587
+ } catch {
588
+ throw new DirectoryAuthorityError(
589
+ "directory_authority_invalid_request",
590
+ "The directory operation input must be JSON serializable."
591
+ );
592
+ }
593
+ if (encoded === void 0) {
594
+ throw new DirectoryAuthorityError(
595
+ "directory_authority_invalid_request",
596
+ "The directory operation input must be JSON serializable."
597
+ );
598
+ }
599
+ if (Buffer.byteLength(encoded) <= AUTHORITY_MESSAGE_LIMIT) return encoded;
600
+ throw new DirectoryAuthorityError(
601
+ "directory_authority_request_too_large",
602
+ "The directory operation input exceeds the bridge byte limit."
603
+ );
604
+ }
605
+
606
+ // src/shared/directory-authority/command.ts
607
+ function spawnDirectoryAuthorityCommand(input) {
608
+ assertDirectoryAuthorityLocation(input);
609
+ const request = encodeAuthorityRequest({
610
+ command: input.command,
611
+ args: input.args
612
+ });
613
+ const child = (0, import_node_child_process.spawn)(
614
+ process.execPath,
615
+ [
616
+ "--input-type=commonjs",
617
+ "-e",
618
+ directoryAuthorityScript("command", AUTHORITY_MESSAGE_LIMIT)
619
+ ],
620
+ {
621
+ cwd: input.directoryPath,
622
+ env: authorityEnvironment(input.env),
623
+ detached: true,
624
+ windowsHide: true,
625
+ stdio: ["ignore", "pipe", "pipe", input.directoryFd, "pipe"]
626
+ }
627
+ );
628
+ const requestPipe = child.stdio[4];
629
+ requestPipe?.on("error", () => void 0);
630
+ requestPipe?.end(request);
631
+ return child;
632
+ }
633
+
634
+ // plugins/local-search/source/ripgrep-process.ts
635
+ function controlledRipgrepEnvironment() {
636
+ const environment = { ...process.env };
637
+ for (const name of Object.keys(environment)) {
638
+ if (name.toUpperCase() === "RIPGREP_CONFIG_PATH") {
639
+ delete environment[name];
640
+ }
641
+ }
642
+ return environment;
643
+ }
644
+ function terminateAuthorityGroup(child) {
645
+ if (!child.pid) {
646
+ child.kill("SIGKILL");
647
+ return;
648
+ }
649
+ try {
650
+ process.kill(-child.pid, "SIGKILL");
651
+ } catch (error) {
652
+ const groupAlreadyExited = error.code === "ESRCH";
653
+ if (groupAlreadyExited) return;
654
+ throw error;
655
+ }
656
+ }
657
+ function spawnRipgrepProcess(args, cwd, stdinFd, directoryAuthority) {
658
+ const commandArgs = ["--no-config", ...args];
659
+ const env = controlledRipgrepEnvironment();
660
+ if (directoryAuthority) {
661
+ const child2 = spawnDirectoryAuthorityCommand({
662
+ ...directoryAuthority,
663
+ command: import_ripgrep.rgPath,
664
+ args: commandArgs,
665
+ env
666
+ });
667
+ return { child: child2, terminate: () => terminateAuthorityGroup(child2) };
668
+ }
669
+ const child = (0, import_node_child_process2.spawn)(import_ripgrep.rgPath, commandArgs, {
670
+ cwd,
671
+ env,
672
+ stdio: [stdinFd ?? "ignore", "pipe", "pipe"],
673
+ windowsHide: true
674
+ });
675
+ return {
676
+ child,
677
+ terminate: () => {
678
+ child.kill("SIGKILL");
679
+ }
680
+ };
681
+ }
682
+
683
+ // plugins/local-search/source/ripgrep.ts
417
684
  var SEARCH_TIMEOUT_MS = 1e4;
418
685
  var MAX_PATH_RECORD_BYTES = 64 * 1024;
419
686
  var MAX_JSON_RECORD_BYTES = 512 * 1024;
@@ -432,15 +699,6 @@ function escapeRgGlobLiteral(value) {
432
699
  (character) => "\\*?[]{}!".includes(character) ? `\\${character}` : character
433
700
  ).join("");
434
701
  }
435
- function controlledRipgrepEnvironment() {
436
- const environment = { ...process.env };
437
- for (const name of Object.keys(environment)) {
438
- if (name.toUpperCase() === "RIPGREP_CONFIG_PATH") {
439
- delete environment[name];
440
- }
441
- }
442
- return environment;
443
- }
444
702
  function decodeUtf8Record(bytes, kind) {
445
703
  let value;
446
704
  try {
@@ -493,7 +751,7 @@ function createDelimitedParser(params) {
493
751
  finish: (accept) => parseAvailable(Buffer.alloc(0), true, accept)
494
752
  });
495
753
  }
496
- async function runRipgrepBounded(args, cwd, maxResults, parser, signal, stdinFd) {
754
+ async function runRipgrepBounded(args, cwd, maxResults, parser, signal, stdinFd, directoryAuthority) {
497
755
  if (signal?.aborted) {
498
756
  throw new LocalSearchError(
499
757
  "local_search_failed",
@@ -507,12 +765,12 @@ async function runRipgrepBounded(args, cwd, maxResults, parser, signal, stdinFd)
507
765
  let timedOut = false;
508
766
  let aborted = false;
509
767
  let parserError;
510
- const child = (0, import_node_child_process.spawn)(import_ripgrep.rgPath, ["--no-config", ...args], {
768
+ const { child, terminate } = spawnRipgrepProcess(
769
+ args,
511
770
  cwd,
512
- env: controlledRipgrepEnvironment(),
513
- stdio: [stdinFd ?? "ignore", "pipe", "pipe"],
514
- windowsHide: true
515
- });
771
+ stdinFd,
772
+ directoryAuthority
773
+ );
516
774
  const cleanup = () => {
517
775
  clearTimeout(timeout);
518
776
  if (signal && abortListener) {
@@ -538,17 +796,17 @@ async function runRipgrepBounded(args, cwd, maxResults, parser, signal, stdinFd)
538
796
  stoppedAfterExtraResult = true;
539
797
  if (mayStopProcess) {
540
798
  child.stdout.pause();
541
- child.kill("SIGKILL");
799
+ terminate();
542
800
  }
543
801
  return false;
544
802
  };
545
803
  const abortListener = () => {
546
804
  aborted = true;
547
- child.kill("SIGKILL");
805
+ terminate();
548
806
  };
549
807
  const timeout = setTimeout(() => {
550
808
  timedOut = true;
551
- child.kill("SIGKILL");
809
+ terminate();
552
810
  }, SEARCH_TIMEOUT_MS);
553
811
  timeout.unref?.();
554
812
  child.stdout.on("data", (chunk) => {
@@ -558,7 +816,7 @@ async function runRipgrepBounded(args, cwd, maxResults, parser, signal, stdinFd)
558
816
  } catch (error) {
559
817
  parserError = error;
560
818
  child.stdout.pause();
561
- child.kill("SIGKILL");
819
+ terminate();
562
820
  }
563
821
  });
564
822
  child.stderr.on("data", () => void 0);
@@ -657,7 +915,7 @@ function parseJsonContentEvent(line) {
657
915
  text: text.endsWith("\r\n") ? text.slice(0, -2) : text.endsWith("\n") ? text.slice(0, -1) : text
658
916
  });
659
917
  }
660
- function runRipgrepPathSearch(args, cwd, maxResults, signal) {
918
+ function runRipgrepPathSearch(args, cwd, maxResults, signal, directoryAuthority) {
661
919
  return runRipgrepBounded(
662
920
  args,
663
921
  cwd,
@@ -667,10 +925,12 @@ function runRipgrepPathSearch(args, cwd, maxResults, signal) {
667
925
  maxRecordBytes: MAX_PATH_RECORD_BYTES,
668
926
  parse: (record) => decodeUtf8Record(record, "path")
669
927
  }),
670
- signal
928
+ signal,
929
+ void 0,
930
+ directoryAuthority
671
931
  );
672
932
  }
673
- function runRipgrepContentSearch(args, cwd, maxResults, signal, stdinFd) {
933
+ function runRipgrepContentSearch(args, cwd, maxResults, signal, stdinFd, directoryAuthority) {
674
934
  return runRipgrepBounded(
675
935
  args,
676
936
  cwd,
@@ -684,7 +944,8 @@ function runRipgrepContentSearch(args, cwd, maxResults, signal, stdinFd) {
684
944
  }
685
945
  }),
686
946
  signal,
687
- stdinFd
947
+ stdinFd,
948
+ directoryAuthority
688
949
  );
689
950
  }
690
951
 
@@ -692,7 +953,7 @@ function runRipgrepContentSearch(args, cwd, maxResults, signal, stdinFd) {
692
953
  var DEFAULT_MAX_RESULTS = 40;
693
954
  var MAX_RESULTS = 200;
694
955
  function fileNameMatches(logicalPath, query, caseSensitive) {
695
- const filename = import_node_path2.posix.basename(logicalPath);
956
+ const filename = import_node_path3.posix.basename(logicalPath);
696
957
  return caseSensitive ? filename.includes(query) : filename.toLowerCase().includes(query.toLowerCase());
697
958
  }
698
959
  var index_default = defineRuntimePlugin((context) => ({
@@ -727,7 +988,7 @@ var index_default = defineRuntimePlugin((context) => ({
727
988
  if (mode === "names" || mode === "both") {
728
989
  const names = root.isFile ? Object.freeze({
729
990
  items: Object.freeze(
730
- fileNameMatches(root.target.logicalPath, query, caseSensitive) ? [import_node_path2.posix.basename(root.target.logicalPath)] : []
991
+ fileNameMatches(root.target.logicalPath, query, caseSensitive) ? [import_node_path3.posix.basename(root.target.logicalPath)] : []
731
992
  ),
732
993
  truncated: false
733
994
  }) : await runRipgrepPathSearch(
@@ -743,7 +1004,8 @@ var index_default = defineRuntimePlugin((context) => ({
743
1004
  ],
744
1005
  root.commandDirectory,
745
1006
  maxResults,
746
- executionContext?.abortSignal
1007
+ executionContext?.abortSignal,
1008
+ root.directoryAuthority
747
1009
  );
748
1010
  sourceTruncated ||= names.truncated;
749
1011
  for (const rawPath of names.items) {
@@ -777,7 +1039,8 @@ var index_default = defineRuntimePlugin((context) => ({
777
1039
  root.commandDirectory,
778
1040
  remaining,
779
1041
  executionContext?.abortSignal,
780
- root.stdinFd
1042
+ root.stdinFd,
1043
+ root.directoryAuthority
781
1044
  );
782
1045
  sourceTruncated ||= content.truncated;
783
1046
  for (const match of content.items) {
@@ -13,6 +13,16 @@
13
13
  "description": "Read one bounded page of stored memory entries (deterministic, no inference)",
14
14
  "routingCapability": "semantic_lookup",
15
15
  "developmentRoles": ["inspect"],
16
+ "eventPresentation": {
17
+ "metadata": {},
18
+ "resultMetadata": {
19
+ "outputPreview": { "path": "output", "kind": "preview" },
20
+ "returnedItemCount": { "path": "data.returnedItemCount", "kind": "number" },
21
+ "totalItemCount": { "path": "data.itemCount", "kind": "number" },
22
+ "sourceTruncated": { "path": "data.truncated", "kind": "boolean" },
23
+ "nextOffset": { "path": "data.nextOffset", "kind": "number" }
24
+ }
25
+ },
16
26
  "skills": ["memory_lookup_skill"],
17
27
  "operations": {
18
28
  "list_memory": {
@@ -54,6 +64,12 @@
54
64
  "kind": "number",
55
65
  "default": 1
56
66
  }
67
+ },
68
+ "resultMetadata": {
69
+ "outputPreview": { "path": "output", "kind": "preview" },
70
+ "returnedItemCount": { "path": "data.returnedItemCount", "kind": "number" },
71
+ "totalItemCount": { "path": "data.itemCount", "kind": "number" },
72
+ "sourceTruncated": { "path": "data.truncated", "kind": "boolean" }
57
73
  }
58
74
  },
59
75
  "skills": ["memory_lookup_skill"],
@@ -86,7 +102,12 @@
86
102
  "contentLength": {
87
103
  "param": "content",
88
104
  "kind": "length"
89
- }
105
+ },
106
+ "inputPreview": { "param": "content", "kind": "string" }
107
+ },
108
+ "resultMetadata": {
109
+ "outputPreview": { "path": "output", "kind": "preview" },
110
+ "savedId": { "path": "data.id", "kind": "preview" }
90
111
  }
91
112
  },
92
113
  "skills": ["memory_mutation_skill"],
@@ -120,6 +141,10 @@
120
141
  "param": "id",
121
142
  "kind": "string"
122
143
  }
144
+ },
145
+ "resultMetadata": {
146
+ "outputPreview": { "path": "output", "kind": "preview" },
147
+ "deletedCount": { "path": "data.deletedCount", "kind": "number" }
123
148
  }
124
149
  },
125
150
  "skills": ["memory_mutation_skill"],
@@ -170,23 +170,27 @@ export default defineRuntimePlugin((context) => {
170
170
  maxLength: 128,
171
171
  });
172
172
  const deletedCount = await store.delete(id);
173
+ const hasDeletedMemoryEntries = deletedCount > 0;
173
174
  return successResult({
174
175
  output: [
175
- `Memory delete: ${deletedCount > 0 ? "success" : "no_match"}`,
176
+ `Memory delete: ${hasDeletedMemoryEntries ? "success" : "no_match"}`,
176
177
  `id: ${id}`,
177
178
  `deleted: ${deletedCount}`,
178
- ...(deletedCount > 0
179
+ ...(hasDeletedMemoryEntries
179
180
  ? []
180
181
  : [
181
182
  "No memory entry matched that ID. Retrieve memory before retrying.",
182
183
  ]),
183
184
  ].join("\n"),
184
- progress: deletedCount > 0,
185
- producedNewInformation: deletedCount > 0,
186
- ...(deletedCount > 0
185
+ progress: hasDeletedMemoryEntries,
186
+ producedNewInformation: hasDeletedMemoryEntries,
187
+ data: {
188
+ ...(hasDeletedMemoryEntries ? { mutationEvidence: true } : {}),
189
+ deletedCount,
190
+ },
191
+ ...(hasDeletedMemoryEntries
187
192
  ? {
188
193
  actions: [{ type: "memory_delete", target: id }],
189
- data: { mutationEvidence: true, deletedCount },
190
194
  }
191
195
  : {}),
192
196
  });
@@ -1057,20 +1057,24 @@ Memory matches: ${result.totalMatches}`,
1057
1057
  maxLength: 128
1058
1058
  });
1059
1059
  const deletedCount = await store.delete(id);
1060
+ const hasDeletedMemoryEntries = deletedCount > 0;
1060
1061
  return successResult({
1061
1062
  output: [
1062
- `Memory delete: ${deletedCount > 0 ? "success" : "no_match"}`,
1063
+ `Memory delete: ${hasDeletedMemoryEntries ? "success" : "no_match"}`,
1063
1064
  `id: ${id}`,
1064
1065
  `deleted: ${deletedCount}`,
1065
- ...deletedCount > 0 ? [] : [
1066
+ ...hasDeletedMemoryEntries ? [] : [
1066
1067
  "No memory entry matched that ID. Retrieve memory before retrying."
1067
1068
  ]
1068
1069
  ].join("\n"),
1069
- progress: deletedCount > 0,
1070
- producedNewInformation: deletedCount > 0,
1071
- ...deletedCount > 0 ? {
1072
- actions: [{ type: "memory_delete", target: id }],
1073
- data: { mutationEvidence: true, deletedCount }
1070
+ progress: hasDeletedMemoryEntries,
1071
+ producedNewInformation: hasDeletedMemoryEntries,
1072
+ data: {
1073
+ ...hasDeletedMemoryEntries ? { mutationEvidence: true } : {},
1074
+ deletedCount
1075
+ },
1076
+ ...hasDeletedMemoryEntries ? {
1077
+ actions: [{ type: "memory_delete", target: id }]
1074
1078
  } : {}
1075
1079
  });
1076
1080
  } catch (error) {
@@ -18,6 +18,20 @@
18
18
  "inspect_project": {
19
19
  "description": "Inspect a bounded project tree. Path `.` and relative paths resolve inside the configured agent work directory; `workspace/...` targets configured workspace sources.",
20
20
  "routingCapability": "semantic_lookup",
21
+ "eventPresentation": {
22
+ "metadata": {
23
+ "displayTarget": { "param": "path", "kind": "string" },
24
+ "depth": { "param": "depth", "kind": "number" },
25
+ "maxEntries": { "param": "maxEntries", "kind": "number" }
26
+ },
27
+ "resultMetadata": {
28
+ "outputPreview": { "path": "output", "kind": "preview" },
29
+ "depth": { "path": "data.depth", "kind": "number" },
30
+ "maxEntries": { "path": "data.maxEntries", "kind": "number" },
31
+ "sourceTruncated": { "path": "data.truncation.tree", "kind": "boolean" },
32
+ "outputTruncated": { "path": "data.truncation.output.truncated", "kind": "boolean" }
33
+ }
34
+ },
21
35
  "runtimePathBindings": [
22
36
  {
23
37
  "operationId": "inspect_project",