@sema-agent/server 7.138.0 → 7.140.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 (332) hide show
  1. package/MIGRATION.md +457 -7
  2. package/README.md +7 -4
  3. package/README.zh-CN.md +6 -4
  4. package/USAGE.md +91 -41
  5. package/deploy/sema-up/README.md +1 -1
  6. package/deploy/sema-up/lib/lanes.json +3 -2
  7. package/dist/adoption/runner.js +1 -1
  8. package/dist/adoption/sql.js +1 -1
  9. package/dist/adoption/wire.d.ts +3 -3
  10. package/dist/approval-card.d.ts +26 -26
  11. package/dist/bench/s1/arms.d.ts +1 -1
  12. package/dist/bench/s1/arms.js +1 -3
  13. package/dist/bench/s1/live-deps.js +3 -2
  14. package/dist/bench/s1/row.d.ts +5 -2
  15. package/dist/bench/s1/row.js +2 -22
  16. package/dist/bench/s1/run-firm.js +2 -2
  17. package/dist/boot/adoption.js +1 -1
  18. package/dist/boot/device-lane.d.ts +8 -3
  19. package/dist/boot/device-lane.js +7 -2
  20. package/dist/boot/execution-env.d.ts +4 -2
  21. package/dist/boot/execution-env.js +28 -34
  22. package/dist/boot/execution-lane.d.ts +9 -1
  23. package/dist/boot/execution-lane.js +6 -1
  24. package/dist/boot/governance-seams.d.ts +3 -2
  25. package/dist/boot/governance-seams.js +9 -11
  26. package/dist/boot/memory-boundary.d.ts +14 -51
  27. package/dist/boot/memory-boundary.js +10 -20
  28. package/dist/boot/memory-consolidation.d.ts +15 -11
  29. package/dist/boot/memory-consolidation.js +25 -14
  30. package/dist/boot/resolve-spec.d.ts +4 -6
  31. package/dist/boot/resolve-spec.js +10 -13
  32. package/dist/boot/retention-lane.d.ts +5 -5
  33. package/dist/boot/retention-lane.js +0 -6
  34. package/dist/boot/runner-deps.d.ts +6 -4
  35. package/dist/boot/runner-deps.js +3 -1
  36. package/dist/boot/session-faces.d.ts +0 -3
  37. package/dist/boot/session-faces.js +15 -8
  38. package/dist/boot/stage-02-web-admin-pull.js +2 -2
  39. package/dist/boot/stage-03-store-backend.d.ts +2 -6
  40. package/dist/boot/stage-03-store-backend.js +2 -3
  41. package/dist/boot/stage-04-stores.d.ts +2 -6
  42. package/dist/boot/stage-04-stores.js +5 -5
  43. package/dist/boot/stage-05-execution-env.d.ts +2 -6
  44. package/dist/boot/stage-05-execution-env.js +2 -2
  45. package/dist/boot/stage-06-runners.d.ts +2 -6
  46. package/dist/boot/stage-06-runners.js +2 -3
  47. package/dist/boot/stage-07-capability-layer.d.ts +2 -6
  48. package/dist/boot/stage-08-reapers.d.ts +2 -6
  49. package/dist/boot/stage-09-leader.d.ts +2 -6
  50. package/dist/boot/stage-09-leader.js +1 -2
  51. package/dist/boot/stage-10-http-server.d.ts +2 -6
  52. package/dist/boot/stage-10-http-server.js +7 -6
  53. package/dist/boot/stores.d.ts +3 -6
  54. package/dist/boot/stores.js +27 -40
  55. package/dist/boot/task-list-lane.d.ts +1 -1
  56. package/dist/boot/task-list-lane.js +1 -1
  57. package/dist/boot/web-admin.js +37 -11
  58. package/dist/capabilities/execution-lane.d.ts +2 -2
  59. package/dist/capabilities/mcp-probe.js +1 -1
  60. package/dist/capabilities/scenarios.d.ts +1 -1
  61. package/dist/capability-facts.d.ts +15 -7
  62. package/dist/capability-facts.js +8 -3
  63. package/dist/config-catalog.js +9 -8
  64. package/dist/config-invariants.d.ts +23 -3
  65. package/dist/config-invariants.js +42 -0
  66. package/dist/config-provider.d.ts +33 -37
  67. package/dist/config-provider.js +51 -30
  68. package/dist/config-types.d.ts +21 -7
  69. package/dist/config.d.ts +33 -0
  70. package/dist/config.js +46 -16
  71. package/dist/delegated-session-owner.d.ts +4 -3
  72. package/dist/delegated-session-owner.js +1 -1
  73. package/dist/deployment-shape.d.ts +10 -9
  74. package/dist/deployment-shape.js +4 -4
  75. package/dist/device-enrollment.d.ts +41 -2
  76. package/dist/device-enrollment.js +27 -12
  77. package/dist/device-store.d.ts +58 -85
  78. package/dist/device-store.js +19 -49
  79. package/dist/device-ws-hub.js +2 -1
  80. package/dist/env-name-allowlist-knobs.d.ts +5 -4
  81. package/dist/exec-cut.d.ts +60 -0
  82. package/dist/exec-cut.js +36 -0
  83. package/dist/execution-lane-caps.d.ts +115 -105
  84. package/dist/execution-lane-caps.js +76 -82
  85. package/dist/execution-placement.d.ts +259 -0
  86. package/dist/execution-placement.js +199 -0
  87. package/dist/field-conflict.d.ts +3 -2
  88. package/dist/field-conflict.js +1 -0
  89. package/dist/hosted-posture.d.ts +2 -2
  90. package/dist/http/admission.js +8 -19
  91. package/dist/http/checkpoint-ctx.d.ts +21 -12
  92. package/dist/http/checkpoint-ctx.js +4 -2
  93. package/dist/http/claimed-run.d.ts +1 -1
  94. package/dist/http/durable-run-leg.js +9 -5
  95. package/dist/http/execution-context.d.ts +218 -0
  96. package/dist/http/execution-context.js +330 -0
  97. package/dist/http/memory-compliance-failure-reply.d.ts +3 -1
  98. package/dist/http/memory-compliance-failure-reply.js +5 -0
  99. package/dist/http/memory-layer-reply.d.ts +30 -0
  100. package/dist/http/memory-layer-reply.js +24 -0
  101. package/dist/http/resume-legs.js +63 -36
  102. package/dist/http/retired-service-deps.d.ts +1 -1
  103. package/dist/http/retired-service-deps.js +1 -1
  104. package/dist/http/route-ctx.d.ts +14 -8
  105. package/dist/http/routes/adoption.js +1 -1
  106. package/dist/http/routes/background.d.ts +29 -1
  107. package/dist/http/routes/background.js +29 -2
  108. package/dist/http/routes/devices.d.ts +13 -19
  109. package/dist/http/routes/devices.js +21 -26
  110. package/dist/http/routes/memory-bundle.js +3 -0
  111. package/dist/http/routes/memory-compliance.js +8 -1
  112. package/dist/http/routes/memory-consolidation.js +12 -1
  113. package/dist/http/routes/memory-origin.js +14 -2
  114. package/dist/http/routes/memory-policy.js +5 -0
  115. package/dist/http/routes/session-sync.js +110 -15
  116. package/dist/http/routes/sessions.d.ts +6 -0
  117. package/dist/http/routes/sessions.js +143 -22
  118. package/dist/http/routes/side-query.d.ts +12 -4
  119. package/dist/http/routes/side-query.js +4 -5
  120. package/dist/http/routes/tasks.js +41 -33
  121. package/dist/http/server.d.ts +40 -44
  122. package/dist/http/server.js +13 -2
  123. package/dist/http/session-inherit-env.d.ts +3 -4
  124. package/dist/http/session-inherit-env.js +1 -1
  125. package/dist/http/wire-types.d.ts +8 -12
  126. package/dist/identity-source.d.ts +1 -1
  127. package/dist/identity-source.js +1 -1
  128. package/dist/index.d.ts +1 -0
  129. package/dist/lane-home-probe.d.ts +68 -42
  130. package/dist/lane-home-probe.js +53 -30
  131. package/dist/leader/wire.js +5 -4
  132. package/dist/memory-bundle-engine.d.ts +16 -9
  133. package/dist/memory-bundle-engine.js +29 -6
  134. package/dist/memory-operator-faces.d.ts +85 -30
  135. package/dist/memory-operator-faces.js +136 -30
  136. package/dist/memory-project-layer.d.ts +3 -21
  137. package/dist/memory-project-layer.js +11 -8
  138. package/dist/memory-scope-stores.d.ts +73 -0
  139. package/dist/memory-scope-stores.js +86 -0
  140. package/dist/memory-scope.d.ts +29 -5
  141. package/dist/memory-scope.js +16 -4
  142. package/dist/memory-sync-client.d.ts +70 -18
  143. package/dist/memory-sync-client.js +215 -117
  144. package/dist/memory-sync.d.ts +1 -1
  145. package/dist/memory-sync.js +3 -2
  146. package/dist/observability/cost-taxonomy.d.ts +2 -2
  147. package/dist/observability/fail-open.d.ts +12 -0
  148. package/dist/observability/fail-open.js +12 -0
  149. package/dist/observability/run-terminal.js +0 -1
  150. package/dist/orchestration/workflow-notify-journal.js +4 -4
  151. package/dist/org-memory-admission.d.ts +4 -3
  152. package/dist/org-memory-admission.js +6 -6
  153. package/dist/parked-decide.d.ts +34 -9
  154. package/dist/parked-decide.js +12 -19
  155. package/dist/parked-revive-surface.d.ts +12 -15
  156. package/dist/parked-revive-surface.js +3 -6
  157. package/dist/peer-seat.d.ts +13 -7
  158. package/dist/peer-seat.js +37 -3
  159. package/dist/plugins/adoption-log-sql.js +4 -4
  160. package/dist/plugins/approval-ask-store-file.d.ts +7 -0
  161. package/dist/plugins/approval-ask-store-file.js +11 -0
  162. package/dist/plugins/approval-ask-store-memory.d.ts +6 -0
  163. package/dist/plugins/approval-ask-store-memory.js +12 -0
  164. package/dist/plugins/approval-ask-store-sql.d.ts +22 -5
  165. package/dist/plugins/approval-ask-store-sql.js +44 -26
  166. package/dist/plugins/approval-nonce-store.js +4 -4
  167. package/dist/plugins/blob-backend.d.ts +4 -4
  168. package/dist/plugins/blob-backend.js +7 -7
  169. package/dist/plugins/breaker-state-sql.js +2 -2
  170. package/dist/plugins/caching-session-store.d.ts +6 -2
  171. package/dist/plugins/caching-session-store.js +9 -3
  172. package/dist/plugins/checkpoint-index-columns.js +2 -2
  173. package/dist/plugins/checkpoint-store-sql.d.ts +6 -5
  174. package/dist/plugins/checkpoint-store-sql.js +21 -23
  175. package/dist/plugins/device-store-sql.d.ts +25 -51
  176. package/dist/plugins/device-store-sql.js +68 -122
  177. package/dist/plugins/ensure-index.d.ts +1 -2
  178. package/dist/plugins/execution-placement-sql.d.ts +151 -0
  179. package/dist/plugins/execution-placement-sql.js +223 -0
  180. package/dist/plugins/file-history-store-sql.d.ts +9 -8
  181. package/dist/plugins/file-history-store-sql.js +9 -9
  182. package/dist/plugins/file-run-store.d.ts +6 -1
  183. package/dist/plugins/file-run-store.js +4 -0
  184. package/dist/plugins/fork-routing-session-store.d.ts +6 -0
  185. package/dist/plugins/fork-routing-session-store.js +16 -0
  186. package/dist/plugins/image-bake-store-sql.js +9 -9
  187. package/dist/plugins/image-index-sql.js +11 -11
  188. package/dist/plugins/leader-run-store-sql.js +4 -4
  189. package/dist/plugins/local-session-store.d.ts +149 -50
  190. package/dist/plugins/local-session-store.js +382 -107
  191. package/dist/plugins/mailbox-store-sql.d.ts +2 -1
  192. package/dist/plugins/mailbox-store-sql.js +4 -4
  193. package/dist/plugins/memory-engine-tidb.js +5 -5
  194. package/dist/plugins/memory-key-guards.d.ts +4 -0
  195. package/dist/plugins/memory-key-guards.js +1 -0
  196. package/dist/plugins/memory-optout-grant-store-sql.js +1 -1
  197. package/dist/plugins/memory-run-store.d.ts +1 -1
  198. package/dist/plugins/memory-sync-store-tidb.js +3 -3
  199. package/dist/plugins/one-time-migrations.d.ts +117 -8
  200. package/dist/plugins/one-time-migrations.js +408 -38
  201. package/dist/plugins/org-delivery-quota-store.js +2 -2
  202. package/dist/plugins/outcome-ledger-sql.d.ts +2 -2
  203. package/dist/plugins/outcome-ledger-sql.js +2 -2
  204. package/dist/plugins/permission-rule-store-sql.d.ts +17 -19
  205. package/dist/plugins/permission-rule-store-sql.js +29 -32
  206. package/dist/plugins/pg-pool.d.ts +7 -3
  207. package/dist/plugins/pg-session-storage.d.ts +31 -20
  208. package/dist/plugins/pg-session-storage.js +120 -52
  209. package/dist/plugins/remote-env-adb.d.ts +18 -19
  210. package/dist/plugins/remote-env-adb.js +91 -66
  211. package/dist/plugins/remote-env-device.d.ts +23 -31
  212. package/dist/plugins/remote-env-device.js +19 -17
  213. package/dist/plugins/remote-env-e2b.d.ts +27 -21
  214. package/dist/plugins/remote-env-e2b.js +91 -45
  215. package/dist/plugins/remote-env-file-error.d.ts +3 -1
  216. package/dist/plugins/remote-env-file-error.js +9 -3
  217. package/dist/plugins/remote-env-host.d.ts +31 -34
  218. package/dist/plugins/remote-env-host.js +91 -72
  219. package/dist/plugins/remote-env-k8s.d.ts +13 -29
  220. package/dist/plugins/remote-env-k8s.js +63 -55
  221. package/dist/plugins/remote-env-local-docker.d.ts +24 -12
  222. package/dist/plugins/remote-env-local-docker.js +49 -61
  223. package/dist/plugins/remote-env-ssh.d.ts +11 -19
  224. package/dist/plugins/remote-env-ssh.js +74 -57
  225. package/dist/plugins/remote-shell.d.ts +100 -3
  226. package/dist/plugins/remote-shell.js +166 -2
  227. package/dist/plugins/resume-anchor-store-sql.js +2 -2
  228. package/dist/plugins/retention-lane-store-sql.d.ts +1 -1
  229. package/dist/plugins/retention-lane-store-sql.js +2 -2
  230. package/dist/plugins/retention-store-sql.d.ts +10 -7
  231. package/dist/plugins/retention-store-sql.js +13 -7
  232. package/dist/plugins/run-store-sql.d.ts +13 -3
  233. package/dist/plugins/run-store-sql.js +20 -15
  234. package/dist/plugins/schema-consistency.d.ts +21 -11
  235. package/dist/plugins/schema-consistency.js +15 -9
  236. package/dist/plugins/schema-drift-sentence.d.ts +27 -0
  237. package/dist/plugins/schema-drift-sentence.js +38 -0
  238. package/dist/plugins/schema-ensure-legs.d.ts +2 -3
  239. package/dist/plugins/schema-ensure-legs.js +2 -2
  240. package/dist/plugins/schema-live-columns.d.ts +1 -1
  241. package/dist/plugins/session-capture-record-store-sql.js +1 -1
  242. package/dist/plugins/session-fork.d.ts +54 -0
  243. package/dist/plugins/session-fork.js +38 -1
  244. package/dist/plugins/session-row-sql.d.ts +22 -0
  245. package/dist/plugins/session-row-sql.js +81 -0
  246. package/dist/plugins/session-rules-column.d.ts +1 -1
  247. package/dist/plugins/session-rules-column.js +1 -1
  248. package/dist/plugins/session-store.d.ts +1 -1
  249. package/dist/plugins/session-workspace-cell.d.ts +1 -1
  250. package/dist/plugins/session-workspace-cell.js +1 -1
  251. package/dist/plugins/shared-memory-store-sql.js +2 -2
  252. package/dist/plugins/sql-driver.d.ts +10 -5
  253. package/dist/plugins/sql-driver.js +6 -6
  254. package/dist/plugins/sql-errors.js +1 -1
  255. package/dist/plugins/store-backend.d.ts +5 -7
  256. package/dist/plugins/store-backend.js +23 -11
  257. package/dist/plugins/store-contracts.d.ts +25 -5
  258. package/dist/plugins/task-list-store-sql.js +11 -11
  259. package/dist/plugins/tidb-pool.d.ts +12 -7
  260. package/dist/plugins/tidb-pool.js +13 -7
  261. package/dist/plugins/tidb-session-storage.js +4 -4
  262. package/dist/plugins/tidb-session-store.d.ts +57 -26
  263. package/dist/plugins/tidb-session-store.js +127 -59
  264. package/dist/plugins/tool-result-store-sql.d.ts +5 -4
  265. package/dist/plugins/tool-result-store-sql.js +21 -13
  266. package/dist/plugins/user-input-ledger-sql.js +2 -2
  267. package/dist/plugins/workflow-journal-store-sql.js +5 -5
  268. package/dist/plugins/workflow-run-store-sql.js +19 -19
  269. package/dist/plugins/write-behind-counter.d.ts +2 -3
  270. package/dist/plugins/write-behind-counter.js +5 -5
  271. package/dist/project-memory.d.ts +9 -15
  272. package/dist/project-memory.js +5 -4
  273. package/dist/request-key-closure.js +1 -1
  274. package/dist/request-value-closure.d.ts +6 -7
  275. package/dist/request-value-closure.js +1 -3
  276. package/dist/resource-suspend.d.ts +14 -12
  277. package/dist/resource-suspend.js +1 -1
  278. package/dist/resource-window.d.ts +4 -3
  279. package/dist/run-local.d.ts +6 -0
  280. package/dist/run-local.js +34 -35
  281. package/dist/runs.d.ts +10 -5
  282. package/dist/runs.js +52 -66
  283. package/dist/security.d.ts +38 -12
  284. package/dist/security.js +8 -2
  285. package/dist/server-secret-env.d.ts +9 -5
  286. package/dist/session-children-retire.d.ts +27 -9
  287. package/dist/session-children-retire.js +9 -5
  288. package/dist/session-incarnation.d.ts +20 -10
  289. package/dist/session-incarnation.js +5 -3
  290. package/dist/session-policy-wire.d.ts +1 -1
  291. package/dist/session-row.d.ts +114 -5
  292. package/dist/session-row.js +55 -5
  293. package/dist/session-titler.d.ts +2 -2
  294. package/dist/sql-engine-posture.d.ts +1 -1
  295. package/dist/sql-engine-posture.js +1 -1
  296. package/dist/{plugins → stores-sql}/background-agent-store-sql.d.ts +2 -2
  297. package/dist/{plugins → stores-sql}/background-agent-store-sql.js +8 -8
  298. package/dist/{plugins → stores-sql}/session-policy-store-sql.d.ts +7 -5
  299. package/dist/{plugins → stores-sql}/session-policy-store-sql.js +12 -12
  300. package/dist/{plugins → stores-sql}/usage-window-store-sql.d.ts +1 -1
  301. package/dist/{plugins → stores-sql}/usage-window-store-sql.js +3 -3
  302. package/dist/task-a2a.d.ts +1 -1
  303. package/dist/task-a2a.js +5 -6
  304. package/dist/task-cwd.d.ts +6 -1
  305. package/dist/task-mcp.d.ts +22 -9
  306. package/dist/task-mcp.js +17 -9
  307. package/dist/terminal.d.ts +27 -0
  308. package/dist/terminal.js +6 -0
  309. package/dist/tool-approval.d.ts +6 -0
  310. package/dist/tool-approval.js +8 -1
  311. package/dist/trace/project.d.ts +1 -0
  312. package/dist/trace/project.js +1 -0
  313. package/dist/trace/redact.d.ts +3 -1
  314. package/dist/trace/redact.js +80 -28
  315. package/dist/trace/self-minted-wire.d.ts +169 -2
  316. package/dist/trace/self-minted-wire.js +54 -1
  317. package/dist/url-refusal.d.ts +1 -1
  318. package/dist/web-admin-client/apply-effective.d.ts +17 -3
  319. package/dist/web-admin-client/apply-effective.js +20 -10
  320. package/dist/web-admin-client/candidate-gate.d.ts +11 -7
  321. package/dist/web-admin-client/candidate-gate.js +1 -1
  322. package/dist/web-admin-client/http-client.d.ts +5 -4
  323. package/dist/web-admin-client/http-client.js +2 -2
  324. package/dist/web-admin-client/read-warnings.d.ts +7 -17
  325. package/dist/web-admin-client/read-warnings.js +5 -9
  326. package/dist/web-admin-client/skills-mcp.js +3 -2
  327. package/dist/web-admin-client/types.d.ts +6 -0
  328. package/package.json +3 -3
  329. package/wire-changes/server@7.139.0.json +348 -0
  330. package/wire-changes/server@7.140.0.json +184 -0
  331. package/dist/http/device-placement.d.ts +0 -175
  332. package/dist/http/device-placement.js +0 -145
@@ -6,11 +6,12 @@ import { setLeafAdvanceListener } from "../session-leaf-bus.js";
6
6
  import { SessionWatchRegistry, posIntEnv } from "../session-watch.js";
7
7
  import { defaultTaskRegistry, peerSessionBoxHandle } from "@sema-agent/core";
8
8
  import { reapSessionBackgroundHard } from "../background-session-reap.js";
9
- import { probeSessionChildren, retireSessionChildren, SessionChildrenStopIncompleteError } from "../session-children-retire.js";
9
+ import { probeSessionChildren, retireSessionChildren, sessionChildrenScope, SessionChildrenStopIncompleteError } from "../session-children-retire.js";
10
+ import { SessionActiveRunError } from "../execution-placement.js";
10
11
  import { headReadOf, redactIncarnations } from "../session-incarnation.js";
11
12
  import { recordFailOpen } from "../observability/fail-open.js";
12
13
  export function createSessionFaces(ctx) {
13
- const { config, logger, metrics, localRoot, backend, sessionStore, runStore, checkpointStore, toolResultStore, resumeAnchorStore, approvalExemptionStore, sessionPolicyStore, taskAttachmentStore, fileHistoryErasure, workflowCompletionInbox, taskListLane, deviceStore, dropSessionScoped, mailboxStore, mailboxRecipientLifecycle, backgroundAgentStore, userInputLedgerStore, spaceReclaimer, } = ctx;
14
+ const { config, logger, metrics, localRoot, backend, sessionStore, runStore, checkpointStore, toolResultStore, resumeAnchorStore, approvalExemptionStore, sessionPolicyStore, taskAttachmentStore, fileHistoryErasure, workflowCompletionInbox, taskListLane, dropSessionScoped, mailboxStore, mailboxRecipientLifecycle, backgroundAgentStore, userInputLedgerStore, spaceReclaimer, } = ctx;
14
15
  const mysqlPool = backend?.mysqlPool();
15
16
  const auditPgPool = backend?.pgPool();
16
17
  const auditLocalRoot = backend?.kind === "local" ? (config.localDataRoot ?? localRoot) : undefined;
@@ -49,7 +50,7 @@ export function createSessionFaces(ctx) {
49
50
  return { deleted: false };
50
51
  spaceKey = spaceReclaimer !== undefined ? head.incarnation : undefined;
51
52
  }
52
- const childScope = owner ?? "default";
53
+ const childScope = sessionChildrenScope(owner);
53
54
  const reach = await probeSessionChildren({ agentStore: backgroundAgentStore, checkpointStore, registry: defaultTaskRegistry }, sessionId, childScope);
54
55
  if (!reach.reachable) {
55
56
  logger.warn("session_delete_children_still_alive", { sessionId, remaining: reach.unreachableHandles.length, handles: reach.unreachableHandles });
@@ -60,8 +61,8 @@ export function createSessionFaces(ctx) {
60
61
  return { active: runs.active };
61
62
  {
62
63
  const children = await retireSessionChildren({ agentStore: backgroundAgentStore, checkpointStore, registry: defaultTaskRegistry }, sessionId, childScope);
63
- if (children.found > 0)
64
- logger.info("session_children_retired", { sessionId, found: children.found, stopped: children.stopped, rounds: children.rounds });
64
+ if (children.observed.length > 0)
65
+ logger.info("session_children_retired", { sessionId, found: children.observed.length, stopped: children.stopped, rounds: children.rounds });
65
66
  if (children.stopped === "incomplete") {
66
67
  logger.warn("session_delete_children_stop_incomplete", { sessionId, remaining: children.remainingHandles.length, handles: children.remainingHandles });
67
68
  throw new SessionChildrenStopIncompleteError(sessionId, children.remainingHandles.length);
@@ -91,8 +92,6 @@ export function createSessionFaces(ctx) {
91
92
  await userInputLedgerStore.deleteBySession(sessionId);
92
93
  if (taskListLane)
93
94
  await taskListLane.deleteBySession(sessionId);
94
- if (deviceStore)
95
- await deviceStore.deleteByRootSession(sessionId);
96
95
  dropSessionScoped?.(sessionId);
97
96
  if (fileHistoryErasure) {
98
97
  if (typeof fileHistoryErasure.deleteBySession === "function")
@@ -122,7 +121,15 @@ export function createSessionFaces(ctx) {
122
121
  }
123
122
  if (peerBox !== undefined)
124
123
  await peerBox.store.drop(peerBox.scope, peerBox.handle);
125
- const historyDeleted = await ownerAware.deleteSession(sessionId, owner);
124
+ let historyDeleted;
125
+ try {
126
+ historyDeleted = await ownerAware.deleteSession(sessionId, owner);
127
+ }
128
+ catch (err) {
129
+ if (err instanceof SessionActiveRunError)
130
+ return { active: err.activeTaskId };
131
+ throw err;
132
+ }
126
133
  sessionWatchRegistry?.dropSession(sessionId);
127
134
  if (historyDeleted && spaceReclaimer !== undefined && spaceKey !== undefined) {
128
135
  void spaceReclaimer.reclaim([{ sessionId, spaceKey }]).catch((err) => {
@@ -1,7 +1,7 @@
1
1
  import { createUnpricedCeilingVerdict } from "./unpriced-ceiling-verdict.js";
2
2
  import { createWebAdminRuntime } from "./web-admin.js";
3
3
  import { composeExecutionLane, FILE_SOURCED_LANES } from "./execution-lane.js";
4
- import { serviceConfigSourceKind } from "../config-provider.js";
4
+ import { configSourceKind } from "../config-provider.js";
5
5
  import { logConfigDirMigration, migrateLocalConfigDirectory } from "../config-d-migration.js";
6
6
  import { assertLocalConfigDirTrusted } from "../config-dir-trust.js";
7
7
  import { defaultModelRefusal, refusedNameMintedRefusal } from "../model-entry-refusal.js";
@@ -10,7 +10,7 @@ import { judgeServedModelRoute } from "../model-route-endpoint.js";
10
10
  import { servedModelTableLeg } from "../model-select.js";
11
11
  export async function runStage02(ctx) {
12
12
  const { config, localRoot, logger, metrics } = ctx;
13
- const configSource = serviceConfigSourceKind(config);
13
+ const configSource = configSourceKind(config);
14
14
  if (configSource === "local") {
15
15
  await assertLocalConfigDirTrusted({ root: localRoot, declaredOwnerUid: config.configLocalOwnerUid });
16
16
  logConfigDirMigration(logger, await migrateLocalConfigDirectory(localRoot));
@@ -7,16 +7,12 @@ export declare function runStage03(ctx: Awaited<ReturnType<typeof runStage02>>):
7
7
  instanceId: string;
8
8
  mailboxRecipientLifecycle: import("../plugins/mailbox-recipient-lifecycle.js").MailboxRecipientLifecycle | undefined;
9
9
  mailboxStore: import("@sema-agent/core").MailboxStore | undefined;
10
- memoryEngine: {
11
- backend: import("@sema-agent/core").MemoryBackend;
12
- root: string;
13
- } | undefined;
14
- memoryExportBackend: import("@sema-agent/core").MemoryBackend | undefined;
10
+ memoryEngine: import("../memory-scope-stores.js").MemoryScopeStores | undefined;
11
+ memoryExportStores: import("../memory-scope-stores.js").MemoryScopeStores | undefined;
15
12
  memoryPosture: import("../memory-posture.js").MemoryPosture;
16
13
  memorySyncCursors: import("../plugins/memory-sync-store-pg.js").MemorySyncStore | undefined;
17
14
  memorySyncRunner: import("../memory-sync-client.js").MemorySyncRunner | undefined;
18
15
  rosterStore: import("@sema-agent/core").RosterStore | undefined;
19
- sessionCaptureRecordStore: import("@sema-agent/core").SessionCaptureRecordStore | undefined;
20
16
  sessionCaptureRecords: import("../index.js").SessionCaptureRecordSource | undefined;
21
17
  sessionStore: import("@sema-agent/core").SessionStore<import("@sema-agent/core").SessionStoreSummary, import("@sema-agent/core").SessionListQuery>;
22
18
  sqlEngine: import("../plugins/sql-driver.js").SqlEngineReading | undefined;
@@ -2,10 +2,9 @@ import { uuidv7 } from "@sema-agent/core";
2
2
  import { openStores } from "./stores.js";
3
3
  export async function runStage03(ctx) {
4
4
  const { config, localRoot, logger, metrics } = ctx;
5
- const { backend, storePosture, memoryEngine, engineDataRoot, memorySyncCursors, rosterStore, backgroundAgentStore, taskAttachmentStore, mailboxStore, mailboxRecipientLifecycle, memoryExportBackend, memorySyncRunner, sessionStore, breakerState, usageWindowStore, memoryPosture, taskListLane, sqlEngine, } = await openStores({ config, logger, metrics, localRoot });
5
+ const { backend, storePosture, memoryEngine, engineDataRoot, memorySyncCursors, rosterStore, backgroundAgentStore, taskAttachmentStore, mailboxStore, mailboxRecipientLifecycle, memoryExportStores, memorySyncRunner, sessionStore, breakerState, usageWindowStore, memoryPosture, taskListLane, sqlEngine, } = await openStores({ config, logger, metrics, localRoot });
6
6
  const instanceId = uuidv7();
7
7
  const sessionCaptureRecords = backend?.sessionCaptureRecords();
8
- const sessionCaptureRecordStore = sessionCaptureRecords?.();
9
- return { ...ctx, backend, backgroundAgentStore, breakerState, engineDataRoot, instanceId, mailboxRecipientLifecycle, mailboxStore, memoryEngine, memoryExportBackend, memoryPosture, memorySyncCursors, memorySyncRunner, rosterStore, sessionCaptureRecordStore, sessionCaptureRecords, sessionStore, sqlEngine, storePosture, taskAttachmentStore, taskListLane, usageWindowStore };
8
+ return { ...ctx, backend, backgroundAgentStore, breakerState, engineDataRoot, instanceId, mailboxRecipientLifecycle, mailboxStore, memoryEngine, memoryExportStores, memoryPosture, memorySyncCursors, memorySyncRunner, rosterStore, sessionCaptureRecords, sessionStore, sqlEngine, storePosture, taskAttachmentStore, taskListLane, usageWindowStore };
10
9
  }
11
10
  //# sourceMappingURL=stage-03-store-backend.js.map
@@ -37,16 +37,12 @@ export declare function runStage04(ctx: Awaited<ReturnType<typeof runStage03>>):
37
37
  instanceId: string;
38
38
  mailboxRecipientLifecycle: import("../plugins/mailbox-recipient-lifecycle.js").MailboxRecipientLifecycle | undefined;
39
39
  mailboxStore: import("@sema-agent/core").MailboxStore | undefined;
40
- memoryEngine: {
41
- backend: import("@sema-agent/core").MemoryBackend;
42
- root: string;
43
- } | undefined;
44
- memoryExportBackend: import("@sema-agent/core").MemoryBackend | undefined;
40
+ memoryEngine: import("../memory-scope-stores.js").MemoryScopeStores | undefined;
41
+ memoryExportStores: import("../memory-scope-stores.js").MemoryScopeStores | undefined;
45
42
  memoryPosture: import("../memory-posture.js").MemoryPosture;
46
43
  memorySyncCursors: import("../plugins/memory-sync-store-pg.js").MemorySyncStore | undefined;
47
44
  memorySyncRunner: import("../memory-sync-client.js").MemorySyncRunner | undefined;
48
45
  rosterStore: import("@sema-agent/core").RosterStore | undefined;
49
- sessionCaptureRecordStore: import("@sema-agent/core").SessionCaptureRecordStore | undefined;
50
46
  sessionCaptureRecords: import("../index.js").SessionCaptureRecordSource | undefined;
51
47
  sessionStore: import("@sema-agent/core").SessionStore<import("@sema-agent/core").SessionStoreSummary, import("@sema-agent/core").SessionListQuery>;
52
48
  sqlEngine: import("../plugins/sql-driver.js").SqlEngineReading | undefined;
@@ -7,22 +7,22 @@ import { createBudgetAndTracing } from "./budget-tracing.js";
7
7
  import { createRuleConsentLane } from "../rules-consent.js";
8
8
  import { createConsolidationValve } from "./memory-consolidation.js";
9
9
  export async function runStage04(ctx) {
10
- const { backend, breakerState, config, logger, memoryEngine, metrics, sessionCaptureRecordStore } = ctx;
11
- const memoryBundleFaces = memoryEngine ? createMemoryBundleFaces(memoryEngine, { ...(sessionCaptureRecordStore !== undefined ? { captureRecordStore: sessionCaptureRecordStore } : {}) }) : undefined;
10
+ const { backend, breakerState, config, logger, memoryEngine, metrics, sessionCaptureRecords } = ctx;
11
+ const memoryBundleFaces = memoryEngine ? createMemoryBundleFaces(memoryEngine, { ...(sessionCaptureRecords !== undefined ? { captureRecords: sessionCaptureRecords } : {}) }) : undefined;
12
12
  const memoryComplianceFaces = memoryEngine
13
13
  ? createMemoryComplianceFaces(memoryEngine, {
14
14
  onIncident: (err) => logger.warn("memory_compliance_incident", { code: err.code ?? null, detail: err.message }),
15
- ...(sessionCaptureRecordStore !== undefined ? { captureRecordStore: sessionCaptureRecordStore } : {}),
15
+ ...(sessionCaptureRecords !== undefined ? { captureRecords: sessionCaptureRecords } : {}),
16
16
  })
17
17
  : undefined;
18
18
  const memoryOriginFaces = memoryEngine
19
19
  ? createMemoryOriginFaces(memoryEngine, {
20
20
  onIncident: (err) => logger.warn("memory_origin_incident", { code: err.code ?? null, detail: err.message }),
21
- ...(sessionCaptureRecordStore !== undefined ? { captureRecordStore: sessionCaptureRecordStore } : {}),
21
+ ...(sessionCaptureRecords !== undefined ? { captureRecords: sessionCaptureRecords } : {}),
22
22
  })
23
23
  : undefined;
24
24
  const sessionMemoryStatusFace = memoryEngine
25
- ? createSessionMemoryStatusFace(memoryEngine, { ...(sessionCaptureRecordStore !== undefined ? { captureRecordStore: sessionCaptureRecordStore } : {}) })
25
+ ? createSessionMemoryStatusFace(memoryEngine, { ...(sessionCaptureRecords !== undefined ? { captureRecords: sessionCaptureRecords } : {}) })
26
26
  : undefined;
27
27
  const { valve: consolidationValve, watch: consolidationSeatWatch } = createConsolidationValve({ config, memoryEngine, logger });
28
28
  const adoptionBoot = await runAdoptionBootScan({ backend, logger });
@@ -56,16 +56,12 @@ export declare function runStage05(ctx: Awaited<ReturnType<typeof runStage04>>):
56
56
  instanceId: string;
57
57
  mailboxRecipientLifecycle: import("../plugins/mailbox-recipient-lifecycle.js").MailboxRecipientLifecycle | undefined;
58
58
  mailboxStore: import("@sema-agent/core").MailboxStore | undefined;
59
- memoryEngine: {
60
- backend: import("@sema-agent/core").MemoryBackend;
61
- root: string;
62
- } | undefined;
63
- memoryExportBackend: import("@sema-agent/core").MemoryBackend | undefined;
59
+ memoryEngine: import("../memory-scope-stores.js").MemoryScopeStores | undefined;
60
+ memoryExportStores: import("../memory-scope-stores.js").MemoryScopeStores | undefined;
64
61
  memoryPosture: import("../memory-posture.js").MemoryPosture;
65
62
  memorySyncCursors: import("../plugins/memory-sync-store-pg.js").MemorySyncStore | undefined;
66
63
  memorySyncRunner: import("../memory-sync-client.js").MemorySyncRunner | undefined;
67
64
  rosterStore: import("@sema-agent/core").RosterStore | undefined;
68
- sessionCaptureRecordStore: import("@sema-agent/core").SessionCaptureRecordStore | undefined;
69
65
  sessionCaptureRecords: import("../index.js").SessionCaptureRecordSource | undefined;
70
66
  sessionStore: import("@sema-agent/core").SessionStore<import("@sema-agent/core").SessionStoreSummary, import("@sema-agent/core").SessionListQuery>;
71
67
  sqlEngine: import("../plugins/sql-driver.js").SqlEngineReading | undefined;
@@ -10,7 +10,7 @@ import { SANDBOX_GIT_PLANE_OFF_TEXT } from "../sandbox-git-plane.js";
10
10
  import { createPeerDesk } from "../peer-seat.js";
11
11
  export async function runStage05(ctx) {
12
12
  const { backend, config, instanceId, logger, metrics, sessionStore, taskAttachmentStore } = ctx;
13
- const deviceLane = config.remoteExec?.provider === "device" ? createDeviceLane({ config, logger, metrics, backend, replicaId: instanceId }) : undefined;
13
+ const deviceLane = config.remoteExec?.provider === "device" ? createDeviceLane({ config, logger, metrics, backend, seat: sessionStore.executionPlacement, replicaId: instanceId }) : undefined;
14
14
  const headOf = headReadOf(sessionStore);
15
15
  const spaceCommits = backend !== undefined ? () => runStore : undefined;
16
16
  const { perTaskImage, sessionEnvSelection, perSessionCwd, setSessionCwd, setSessionShellEnv, setSessionInheritEnv, fenceSessionOwner, dropSessionScoped, executionEnvFactory, worktreeReap, sendUserFileTaskEnvs, lspManager, spaceReclaimer, sandboxSecretSeatGate, sandboxPodReaper, readSandboxGitPlane, } = createExecutionEnv({ config, logger, metrics, taskAttachmentStore, ...(deviceLane ? { deviceLane } : {}), ...(spaceCommits !== undefined ? { spaceCommits } : {}), ...(headOf !== undefined ? { headOf } : {}), ...(backend !== undefined ? { runRows: () => runStore } : {}) });
@@ -29,7 +29,7 @@ export async function runStage05(ctx) {
29
29
  const { registrations: deploymentMods, loaded: deploymentModsLoaded } = await assembleDeploymentMods({ metrics, ...(config.toolTrace ? { traceLogger: logger } : {}), brandIdentity: isBrandedDeployment(config), declaration: config.modsDeclaration, logger });
30
30
  const peerDesk = createPeerDesk({ log: logger });
31
31
  metrics.dynamicGauge("peer_registry_entries", "Peer desk entries (declared peer credentials registered for in-flight legs and the roster)", () => peerDesk.size().entries);
32
- metrics.dynamicGauge("peer_registry_holders", "Peer desk host leases holding entries, summed across entries", () => peerDesk.size().holders);
32
+ metrics.dynamicGauge("peer_registry_holders", "Peer desk holders of entries (host leases and engine holds), summed across entries", () => peerDesk.size().holders);
33
33
  return { ...ctx, deploymentMods, deploymentModsLoaded, deviceLane, peerDesk, dropSessionScoped, executionEnvFactory, fenceSessionOwner, lspManager, spaceReclaimer, sandboxPodReaper, sandboxGitPlane, perSessionCwd, perTaskImage, sendUserFileTaskEnvs, sessionEnvSelection, setSessionCwd, setSessionInheritEnv, setSessionShellEnv, worktreeReap };
34
34
  }
35
35
  //# sourceMappingURL=stage-05-execution-env.js.map
@@ -119,16 +119,12 @@ export declare function runStage06(ctx: Awaited<ReturnType<typeof runStage05>>):
119
119
  instanceId: string;
120
120
  mailboxRecipientLifecycle: import("../plugins/mailbox-recipient-lifecycle.js").MailboxRecipientLifecycle | undefined;
121
121
  mailboxStore: import("@sema-agent/core").MailboxStore | undefined;
122
- memoryEngine: {
123
- backend: import("@sema-agent/core").MemoryBackend;
124
- root: string;
125
- } | undefined;
126
- memoryExportBackend: import("@sema-agent/core").MemoryBackend | undefined;
122
+ memoryEngine: import("../memory-scope-stores.js").MemoryScopeStores | undefined;
123
+ memoryExportStores: import("../memory-scope-stores.js").MemoryScopeStores | undefined;
127
124
  memoryPosture: import("../memory-posture.js").MemoryPosture;
128
125
  memorySyncCursors: import("../plugins/memory-sync-store-pg.js").MemorySyncStore | undefined;
129
126
  memorySyncRunner: import("../memory-sync-client.js").MemorySyncRunner | undefined;
130
127
  rosterStore: import("@sema-agent/core").RosterStore | undefined;
131
- sessionCaptureRecordStore: import("@sema-agent/core").SessionCaptureRecordStore | undefined;
132
128
  sessionCaptureRecords: import("../index.js").SessionCaptureRecordSource | undefined;
133
129
  sessionStore: import("@sema-agent/core").SessionStore<import("@sema-agent/core").SessionStoreSummary, import("@sema-agent/core").SessionListQuery>;
134
130
  sqlEngine: import("../plugins/sql-driver.js").SqlEngineReading | undefined;
@@ -30,7 +30,7 @@ import { parkedAskRedeem, runStore } from "./late-binds.js";
30
30
  import { withInternalRunEnvs } from "../internal-run-env.js";
31
31
  import { retentionSweepRuns } from "../plugins/retention-store-sql.js";
32
32
  export async function runStage06(ctx) {
33
- const { backend, backgroundAgentStore, brain, engineDataRoot, peerDesk, config, webAdmin, consolidationValve, deploymentMods, executionEnvFactory, fileHistoryStore, localRoot, logger, lspManager, mailboxRecipientLifecycle, mailboxStore, memoryEngine, memorySyncRunner, metrics, perSessionCwd, permissionRuleProvider, pricing, rosterStore, ruleConsent, sendUserFileTaskEnvs, sessionCaptureRecordStore, sessionCaptureRecords, sessionPolicyStore, sessionStore, taskAttachmentStore, taskListLane, toolResultStore, tracer, usageWindowStore } = ctx;
33
+ const { backend, backgroundAgentStore, brain, engineDataRoot, peerDesk, config, webAdmin, consolidationValve, deploymentMods, executionEnvFactory, fileHistoryStore, localRoot, logger, lspManager, mailboxRecipientLifecycle, mailboxStore, memoryEngine, memorySyncRunner, metrics, perSessionCwd, permissionRuleProvider, pricing, rosterStore, ruleConsent, sendUserFileTaskEnvs, sessionCaptureRecords, sessionPolicyStore, sessionStore, taskAttachmentStore, taskListLane, toolResultStore, tracer, usageWindowStore } = ctx;
34
34
  const { sqlWorkflowRunStore, workflowNotifyJournal, workflowCompletionInbox, deliverWorkflowCompletion, workflowNotifyGate, fleetBus, workflowRunStore, workflowJournalStore, outcomeSink, workflowRecoverOpts, workflowAgentRegistry, subagentSteerRegistry, workflowAgentSessionIndex, workflowParkDecisions, } = createWorkflowOrchestration({ config, logger, metrics, localRoot, backend, getRunStore: () => runStore });
35
35
  const parkCommitted = backend?.checkpoint && config.durableApproval ? createParkCommitWatch(backend.checkpoint(logger)) : undefined;
36
36
  const checkpointStore = parkCommitted?.store;
@@ -70,7 +70,6 @@ export async function runStage06(ctx) {
70
70
  const retentionLaneStore = backend?.retentionLane?.();
71
71
  assertRetentionLaneWirable({
72
72
  intervalSec: config.retentionSweep.intervalSec,
73
- policy: config.retentionPolicy,
74
73
  executor: retentionExecutor,
75
74
  stores: [
76
75
  { name: "sessionStore", store: sessionStore },
@@ -95,7 +94,7 @@ export async function runStage06(ctx) {
95
94
  ...(config.memoryProvenance !== undefined ? { provenance: config.memoryProvenance } : {}),
96
95
  onIncident: (err) => logger.warn("memory_consolidation_incident", { code: err.code ?? null, detail: err.message }),
97
96
  onStopDetail: (audit) => logger.warn("memory_consolidation_stop_detail", audit),
98
- ...(sessionCaptureRecordStore !== undefined ? { captureRecordStore: sessionCaptureRecordStore } : {}),
97
+ ...(sessionCaptureRecords !== undefined ? { captureRecords: sessionCaptureRecords } : {}),
99
98
  writeJudge: createOperatorValveWriteJudge({ ruleStoreProvider: permissionRuleProvider, config }),
100
99
  onNotice: createEngineNoticeForwarder(logger, defaultEngineNoticeRouter, metrics),
101
100
  })
@@ -135,16 +135,12 @@ export declare function runStage07(ctx: Awaited<ReturnType<typeof runStage06>>):
135
135
  instanceId: string;
136
136
  mailboxRecipientLifecycle: import("../plugins/mailbox-recipient-lifecycle.js").MailboxRecipientLifecycle | undefined;
137
137
  mailboxStore: import("@sema-agent/core").MailboxStore | undefined;
138
- memoryEngine: {
139
- backend: import("@sema-agent/core").MemoryBackend;
140
- root: string;
141
- } | undefined;
142
- memoryExportBackend: import("@sema-agent/core").MemoryBackend | undefined;
138
+ memoryEngine: import("../memory-scope-stores.js").MemoryScopeStores | undefined;
139
+ memoryExportStores: import("../memory-scope-stores.js").MemoryScopeStores | undefined;
143
140
  memoryPosture: import("../memory-posture.js").MemoryPosture;
144
141
  memorySyncCursors: import("../plugins/memory-sync-store-pg.js").MemorySyncStore | undefined;
145
142
  memorySyncRunner: import("../memory-sync-client.js").MemorySyncRunner | undefined;
146
143
  rosterStore: import("@sema-agent/core").RosterStore | undefined;
147
- sessionCaptureRecordStore: import("@sema-agent/core").SessionCaptureRecordStore | undefined;
148
144
  sessionCaptureRecords: import("../index.js").SessionCaptureRecordSource | undefined;
149
145
  sessionStore: import("@sema-agent/core").SessionStore<import("@sema-agent/core").SessionStoreSummary, import("@sema-agent/core").SessionListQuery>;
150
146
  sqlEngine: import("../plugins/sql-driver.js").SqlEngineReading | undefined;
@@ -148,16 +148,12 @@ export declare function runStage08(ctx: Awaited<ReturnType<typeof runStage07>>):
148
148
  instanceId: string;
149
149
  mailboxRecipientLifecycle: import("../plugins/mailbox-recipient-lifecycle.js").MailboxRecipientLifecycle | undefined;
150
150
  mailboxStore: import("@sema-agent/core").MailboxStore | undefined;
151
- memoryEngine: {
152
- backend: import("@sema-agent/core").MemoryBackend;
153
- root: string;
154
- } | undefined;
155
- memoryExportBackend: import("@sema-agent/core").MemoryBackend | undefined;
151
+ memoryEngine: import("../memory-scope-stores.js").MemoryScopeStores | undefined;
152
+ memoryExportStores: import("../memory-scope-stores.js").MemoryScopeStores | undefined;
156
153
  memoryPosture: import("../memory-posture.js").MemoryPosture;
157
154
  memorySyncCursors: import("../plugins/memory-sync-store-pg.js").MemorySyncStore | undefined;
158
155
  memorySyncRunner: import("../memory-sync-client.js").MemorySyncRunner | undefined;
159
156
  rosterStore: import("@sema-agent/core").RosterStore | undefined;
160
- sessionCaptureRecordStore: import("@sema-agent/core").SessionCaptureRecordStore | undefined;
161
157
  sessionCaptureRecords: import("../index.js").SessionCaptureRecordSource | undefined;
162
158
  sessionStore: import("@sema-agent/core").SessionStore<import("@sema-agent/core").SessionStoreSummary, import("@sema-agent/core").SessionListQuery>;
163
159
  sqlEngine: import("../plugins/sql-driver.js").SqlEngineReading | undefined;
@@ -172,16 +172,12 @@ export declare function runStage09(ctx: Awaited<ReturnType<typeof runStage08>>):
172
172
  instanceId: string;
173
173
  mailboxRecipientLifecycle: import("../plugins/mailbox-recipient-lifecycle.js").MailboxRecipientLifecycle | undefined;
174
174
  mailboxStore: import("@sema-agent/core").MailboxStore | undefined;
175
- memoryEngine: {
176
- backend: import("@sema-agent/core").MemoryBackend;
177
- root: string;
178
- } | undefined;
179
- memoryExportBackend: import("@sema-agent/core").MemoryBackend | undefined;
175
+ memoryEngine: import("../memory-scope-stores.js").MemoryScopeStores | undefined;
176
+ memoryExportStores: import("../memory-scope-stores.js").MemoryScopeStores | undefined;
180
177
  memoryPosture: import("../memory-posture.js").MemoryPosture;
181
178
  memorySyncCursors: import("../plugins/memory-sync-store-pg.js").MemorySyncStore | undefined;
182
179
  memorySyncRunner: import("../memory-sync-client.js").MemorySyncRunner | undefined;
183
180
  rosterStore: import("@sema-agent/core").RosterStore | undefined;
184
- sessionCaptureRecordStore: import("@sema-agent/core").SessionCaptureRecordStore | undefined;
185
181
  sessionCaptureRecords: import("../index.js").SessionCaptureRecordSource | undefined;
186
182
  sessionStore: import("@sema-agent/core").SessionStore<import("@sema-agent/core").SessionStoreSummary, import("@sema-agent/core").SessionListQuery>;
187
183
  sqlEngine: import("../plugins/sql-driver.js").SqlEngineReading | undefined;
@@ -6,9 +6,8 @@ import { createLeaderFace } from "./leader.js";
6
6
  import { assertStaticWiringConsistent } from "../http/routes/diagnostics.js";
7
7
  import { buildDisplaySafeUrl } from "../trace/redact.js";
8
8
  export function runStage09(ctx) {
9
- const { approvalExemptionStore, backend, backgroundAgentStore, brain, checkpointStore, checkpointCtxSealing, config, webAdmin, deploymentMods, deviceLane, dropSessionScoped, durableEnabled, executionEnvFactory, fileHistoryErasure, governanceSeams, localRoot, logger, mailboxRecipientLifecycle, mailboxStore, metrics, pricing, resumeAnchorStore, runStore, runnerDeps, sessionPolicyStore, sessionStore, streamApprovalGate, taskAttachmentStore, spaceReclaimer, taskListLane, toolResultStore, tracer, usageWindowStore, userInputLedgerStore, workflowCompletionInbox } = ctx;
9
+ const { approvalExemptionStore, backend, backgroundAgentStore, brain, checkpointStore, checkpointCtxSealing, config, webAdmin, deploymentMods, dropSessionScoped, durableEnabled, executionEnvFactory, fileHistoryErasure, governanceSeams, localRoot, logger, mailboxRecipientLifecycle, mailboxStore, metrics, pricing, resumeAnchorStore, runStore, runnerDeps, sessionPolicyStore, sessionStore, streamApprovalGate, taskAttachmentStore, spaceReclaimer, taskListLane, toolResultStore, tracer, usageWindowStore, userInputLedgerStore, workflowCompletionInbox } = ctx;
10
10
  const { ownerAware, sessionAudit, sessionWatchRegistry, purgeSession, instrumentDegenerate, planCacheProbe } = createSessionFaces({
11
- deviceStore: deviceLane?.store,
12
11
  dropSessionScoped,
13
12
  config, logger, metrics, localRoot, backend, sessionStore, runStore, checkpointStore, toolResultStore,
14
13
  resumeAnchorStore, approvalExemptionStore, sessionPolicyStore, taskAttachmentStore, fileHistoryErasure,
@@ -171,16 +171,12 @@ export declare function runStage10(ctx: Awaited<ReturnType<typeof runStage09>>):
171
171
  instanceId: string;
172
172
  mailboxRecipientLifecycle: import("../plugins/mailbox-recipient-lifecycle.js").MailboxRecipientLifecycle | undefined;
173
173
  mailboxStore: import("@sema-agent/core").MailboxStore | undefined;
174
- memoryEngine: {
175
- backend: import("@sema-agent/core").MemoryBackend;
176
- root: string;
177
- } | undefined;
178
- memoryExportBackend: import("@sema-agent/core").MemoryBackend | undefined;
174
+ memoryEngine: import("../memory-scope-stores.js").MemoryScopeStores | undefined;
175
+ memoryExportStores: import("../memory-scope-stores.js").MemoryScopeStores | undefined;
179
176
  memoryPosture: import("../memory-posture.js").MemoryPosture;
180
177
  memorySyncCursors: import("../plugins/memory-sync-store-pg.js").MemorySyncStore | undefined;
181
178
  memorySyncRunner: import("../memory-sync-client.js").MemorySyncRunner | undefined;
182
179
  rosterStore: import("@sema-agent/core").RosterStore | undefined;
183
- sessionCaptureRecordStore: import("@sema-agent/core").SessionCaptureRecordStore | undefined;
184
180
  sessionCaptureRecords: import("../plugins/store-backend.js").SessionCaptureRecordSource | undefined;
185
181
  sessionStore: import("@sema-agent/core").SessionStore<import("@sema-agent/core").SessionStoreSummary, import("@sema-agent/core").SessionListQuery>;
186
182
  sqlEngine: import("../plugins/sql-driver.js").SqlEngineReading | undefined;
@@ -7,6 +7,7 @@ import { isPricingConfigured } from "../budget.js";
7
7
  import { createHandsRunnerSelector } from "../capabilities/hands-lane.js";
8
8
  import { createHttpServer } from "../http/server.js";
9
9
  import { exportMemoryScope } from "../memory-export.js";
10
+ import { memoryStoreForRequest } from "../memory-scope-stores.js";
10
11
  import { performMemorySync } from "../memory-sync.js";
11
12
  import { backgroundAgentOutput, taskHandleOutput, taskHandleStop } from "../runs.js";
12
13
  import { createStoreLiveProbe } from "../store-live-probe.js";
@@ -29,7 +30,7 @@ import { bindServerLateSeats } from "./late-binds.js";
29
30
  import { serviceVersion } from "../service-version.js";
30
31
  import { buildDisplaySafeUrl } from "../trace/redact.js";
31
32
  export async function runStage10(ctx) {
32
- const { peerDesk, approvalAskAudit, approvalExemptionStore, approvalNonceStore, authorize, backend, backgroundAgentStore, brain, breakerState, centerRuntimeCapsResolver, checkpointStore, checkpointCtxSealing, parkCommits, config, webAdmin, consolidationValve, costQuota, deploymentModsLoaded, deviceLane, drainState, durableEnabled, elicitation, fenceSessionOwner, fileHistoryStore, fleetBus, fleetLease, fleetUsage, governanceSeams, handslessRunner, hookAgent, hookLlm, hookWakeBus, imageBakes, imageIndex, instanceId, instrumentDegenerate, leaderEndpoint, loadedSkills, localRoot, logger, lspManager, mcpRevocations, memoryBundleFaces, memoryComplianceFaces, memoryConsolidationFaces, memoryEngine, memoryExportBackend, memoryOptOutGrantStore, memoryOriginFaces, memoryPosture, memorySyncCursors, memorySyncRunner, metrics, modelUsageTracker, orgMemoryAdmission, otelExporter, outcomeSink, ownerAware, parkedReviveInheritedGate, parkedReviveSurface, perSessionCwd, perTaskImage, planCacheProbe, pricing, principalCaps, promptManifestTracker, purgeSession, question, rateLimiter, reaper, webAdminJwtVerifier, resumeAnchorStore, retentionLaneStarted, retentionLaneStore, ruleConsent, runStore, runner, runnerDeps, runtimeCapsPeekResolver, sandboxGitPlane, scenarioDetails, scenarios, selectEnvTool, sendFileLedger, sendUserFileEmitter, sendUserFileToolSpec, sessionAudit, sessionEnvSelection, sessionMemoryStatusFace, sessionPolicyStore, sessionTitler, sessionWatchRegistry, setSessionCwd, setSessionInheritEnv, setSessionShellEnv, sharedMemoryStore, sideQueryAccounting, sqlEngine, sqlWorkflowRunStore, staticWiring, storePosture, subRunner, subagentSteerRegistry, taskAttachmentStore, taskLimitCaps, taskTimeoutSec, toolApproval, toolResultStore, usageWindowStore, userInputLedger, webSearchProvider, workflowAgentRegistry, workflowAgentSessionIndex, workflowParkDecisions, workflowCompletionInbox, workflowJournalStore, workflowModelAllowlistSnapshot, workflowNotifyGate, workflowNotifyJournal, workflowRecoverOpts, workflowRunStore, workflowsCapable, orgDeliveryGate } = ctx;
33
+ const { peerDesk, approvalAskAudit, approvalExemptionStore, approvalNonceStore, authorize, backend, backgroundAgentStore, brain, breakerState, centerRuntimeCapsResolver, checkpointStore, checkpointCtxSealing, parkCommits, config, webAdmin, consolidationValve, costQuota, deploymentModsLoaded, deviceLane, drainState, durableEnabled, elicitation, fenceSessionOwner, fileHistoryStore, fleetBus, fleetLease, fleetUsage, governanceSeams, handslessRunner, hookAgent, hookLlm, hookWakeBus, imageBakes, imageIndex, instanceId, instrumentDegenerate, leaderEndpoint, loadedSkills, localRoot, logger, lspManager, mcpRevocations, memoryBundleFaces, memoryComplianceFaces, memoryConsolidationFaces, memoryEngine, memoryExportStores, memoryOptOutGrantStore, memoryOriginFaces, memoryPosture, memorySyncCursors, memorySyncRunner, metrics, modelUsageTracker, orgMemoryAdmission, otelExporter, outcomeSink, ownerAware, parkedReviveInheritedGate, parkedReviveSurface, perSessionCwd, perTaskImage, planCacheProbe, pricing, principalCaps, promptManifestTracker, purgeSession, question, rateLimiter, reaper, webAdminJwtVerifier, resumeAnchorStore, retentionLaneStarted, retentionLaneStore, ruleConsent, runStore, runner, runnerDeps, runtimeCapsPeekResolver, sandboxGitPlane, scenarioDetails, scenarios, selectEnvTool, sendFileLedger, sendUserFileEmitter, sendUserFileToolSpec, sessionAudit, sessionEnvSelection, sessionMemoryStatusFace, sessionPolicyStore, sessionTitler, sessionWatchRegistry, setSessionCwd, setSessionInheritEnv, setSessionShellEnv, sharedMemoryStore, sideQueryAccounting, sqlEngine, sqlWorkflowRunStore, staticWiring, storePosture, subRunner, subagentSteerRegistry, taskAttachmentStore, taskLimitCaps, taskTimeoutSec, toolApproval, toolResultStore, usageWindowStore, userInputLedger, webSearchProvider, workflowAgentRegistry, workflowAgentSessionIndex, workflowParkDecisions, workflowCompletionInbox, workflowJournalStore, workflowModelAllowlistSnapshot, workflowNotifyGate, workflowNotifyJournal, workflowRecoverOpts, workflowRunStore, workflowsCapable, orgDeliveryGate } = ctx;
33
34
  const stores = {
34
35
  runStore,
35
36
  resumeAnchorStore: resumeAnchorStore ? resumeAnchorStore : undefined,
@@ -86,9 +87,9 @@ export async function runStage10(ctx) {
86
87
  subagentTaskOutput: (handle, access) => backgroundAgentOutput(defaultTaskRegistry, handle, access, backgroundAgentStore),
87
88
  taskHandleOutput: (handle, access) => taskHandleOutput(defaultTaskRegistry, handle, access, backgroundAgentStore),
88
89
  taskHandleStop: (handle, access) => taskHandleStop(defaultTaskRegistry, handle, access, backgroundAgentStore),
89
- memoryExport: memoryExportBackend ? (scope) => exportMemoryScope(memoryExportBackend, scope) : undefined,
90
- memorySync: memoryExportBackend && memorySyncCursors
91
- ? (scope, syncReq) => performMemorySync(memoryExportBackend, memorySyncCursors, scope, syncReq)
90
+ memoryExport: memoryExportStores ? (scope) => exportMemoryScope(memoryStoreForRequest(memoryExportStores, [scope]), scope) : undefined,
91
+ memorySync: memoryExportStores && memorySyncCursors
92
+ ? (scope, syncReq) => performMemorySync(memoryStoreForRequest(memoryExportStores, [scope]), memorySyncCursors, scope, syncReq)
92
93
  : undefined,
93
94
  memoryBundleExport: memoryBundleFaces ? memoryBundleFaces.exportScopes : undefined,
94
95
  memoryBundleImport: memoryBundleFaces ? memoryBundleFaces.importBundle : undefined,
@@ -105,6 +106,7 @@ export async function runStage10(ctx) {
105
106
  sessionMirrorRuling: principalCaps
106
107
  ? async (p) => (await principalCaps.executionRuling(p))?.sessionMirror
107
108
  : undefined,
109
+ executionRuling: principalCaps ? (p) => principalCaps.executionRuling(p) : undefined,
108
110
  instrumentDegenerate,
109
111
  sideQueryAccounting,
110
112
  parkedReviveSurface: parkedReviveSurface ? parkedReviveSurface : undefined,
@@ -118,7 +120,6 @@ export async function runStage10(ctx) {
118
120
  planCacheProbe,
119
121
  };
120
122
  const governance = {
121
- authorize,
122
123
  webAdminJwtVerifier: webAdminJwtVerifier ? webAdminJwtVerifier : undefined,
123
124
  rateLimiter,
124
125
  costQuota,
@@ -214,7 +215,7 @@ export async function runStage10(ctx) {
214
215
  const runnerFor = createHandsRunnerSelector({ full: runner, handsless: handslessRunner });
215
216
  const sideQuery = createSideQueryLane({ brain, config, getKeyResolver: () => webAdmin.getKeyResolver() });
216
217
  const scenarioGate = createScenarioGate({ config, scenarios, principalCaps, logger }, "peek");
217
- const server = createHttpServer({ runner, runnerFor, sideQuery, scenarioGate, peerDesk, config, resolveSpec, stores, coordinators, seams, observability, governance, deployment, knobs });
218
+ const server = createHttpServer({ runner, runnerFor, sideQuery, scenarioGate, peerDesk, config, authorize, resolveSpec, stores, coordinators, seams, observability, governance, deployment, knobs });
218
219
  bindServerLateSeats({ config, logger, server });
219
220
  const fleetReconcile = startFleetReconciler({
220
221
  bus: fleetBus,
@@ -1,4 +1,3 @@
1
- import { type MemoryBackend } from "@sema-agent/core";
2
1
  import type { ServiceConfig } from "../config.js";
3
2
  import { type MemorySyncRunner } from "../memory-sync-client.js";
4
3
  import type { Logger } from "../observability/logger.js";
@@ -7,6 +6,7 @@ import { type MemorySyncStore } from "../plugins/memory-sync-store-pg.js";
7
6
  import { type MailboxRecipientLifecycle } from "../plugins/mailbox-recipient-lifecycle.js";
8
7
  import { type TaskAttachmentStore } from "../plugins/task-attachment-store.js";
9
8
  import { type StoreBackend } from "../plugins/store-backend.js";
9
+ import { type MemoryScopeStores } from "../memory-scope-stores.js";
10
10
  export interface OpenStoresCtx {
11
11
  config: ServiceConfig;
12
12
  logger: Logger;
@@ -24,10 +24,7 @@ export declare function assertApprovalAskRuleMaterialOnBackend(backend: StoreBac
24
24
  export declare function openStores(ctx: OpenStoresCtx): Promise<{
25
25
  backend: StoreBackend | undefined;
26
26
  storePosture: import("../store-posture.js").StorePosture;
27
- memoryEngine: {
28
- backend: MemoryBackend;
29
- root: string;
30
- } | undefined;
27
+ memoryEngine: MemoryScopeStores | undefined;
31
28
  engineDataRoot: string;
32
29
  memorySyncCursors: MemorySyncStore | undefined;
33
30
  rosterStore: import("@sema-agent/core").RosterStore | undefined;
@@ -35,7 +32,7 @@ export declare function openStores(ctx: OpenStoresCtx): Promise<{
35
32
  mailboxRecipientLifecycle: MailboxRecipientLifecycle | undefined;
36
33
  taskAttachmentStore: TaskAttachmentStore | undefined;
37
34
  mailboxStore: import("@sema-agent/core").MailboxStore | undefined;
38
- memoryExportBackend: MemoryBackend | undefined;
35
+ memoryExportStores: MemoryScopeStores | undefined;
39
36
  memorySyncRunner: MemorySyncRunner | undefined;
40
37
  sessionStore: import("@sema-agent/core").SessionStore<import("@sema-agent/core").SessionStoreSummary, import("@sema-agent/core").SessionListQuery>;
41
38
  breakerState: import("../plugins/breaker-state-sql.js").TiDBBreakerState | import("../plugins/breaker-state-sql.js").PgBreakerState | undefined;