@sema-agent/server 7.10.0 → 7.12.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 (83) hide show
  1. package/README.md +1 -1
  2. package/USAGE.md +56 -0
  3. package/dist/adoption/plan.d.ts +152 -0
  4. package/dist/adoption/plan.js +513 -0
  5. package/dist/adoption/runner.d.ts +54 -0
  6. package/dist/adoption/runner.js +505 -0
  7. package/dist/adoption/sql.d.ts +76 -0
  8. package/dist/adoption/sql.js +106 -0
  9. package/dist/adoption/wire.d.ts +250 -0
  10. package/dist/adoption/wire.js +153 -0
  11. package/dist/approval-card.d.ts +24 -0
  12. package/dist/approval-card.js +32 -0
  13. package/dist/auth-keys.d.ts +28 -4
  14. package/dist/auth-keys.js +60 -15
  15. package/dist/boot/adoption.d.ts +30 -0
  16. package/dist/boot/adoption.js +57 -0
  17. package/dist/boot/coordinators.d.ts +4 -0
  18. package/dist/boot/coordinators.js +3 -1
  19. package/dist/boot/parked-revive-gate.d.ts +56 -7
  20. package/dist/boot/parked-revive-gate.js +177 -8
  21. package/dist/boot/permission-rules-audit.d.ts +49 -0
  22. package/dist/boot/permission-rules-audit.js +57 -0
  23. package/dist/boot/resolve-spec.js +43 -12
  24. package/dist/boot/runner-deps.d.ts +10 -2
  25. package/dist/boot/runner-deps.js +12 -1
  26. package/dist/budget.js +22 -0
  27. package/dist/config-types.d.ts +24 -1
  28. package/dist/config.d.ts +28 -2
  29. package/dist/config.js +348 -75
  30. package/dist/governance-ask-marks.js +8 -2
  31. package/dist/http/route-ctx.d.ts +6 -3
  32. package/dist/http/routes/adoption.d.ts +26 -0
  33. package/dist/http/routes/adoption.js +120 -0
  34. package/dist/http/routes/approvals-assistant.js +2 -1
  35. package/dist/http/routes/capabilities.js +49 -2
  36. package/dist/http/routes/rules.d.ts +35 -0
  37. package/dist/http/routes/rules.js +293 -0
  38. package/dist/http/routes/shared-memory.d.ts +31 -0
  39. package/dist/http/routes/shared-memory.js +181 -0
  40. package/dist/http/routes/trace-usage.js +139 -3
  41. package/dist/http/server.d.ts +23 -3
  42. package/dist/http/server.js +123 -3
  43. package/dist/http/wire-types.d.ts +48 -0
  44. package/dist/main.js +70 -3
  45. package/dist/observability/fail-open.d.ts +12 -0
  46. package/dist/observability/fail-open.js +12 -0
  47. package/dist/observability/metrics.js +2 -1
  48. package/dist/observability/tool-trace.d.ts +5 -1
  49. package/dist/observability/tool-trace.js +33 -6
  50. package/dist/parked-decide.d.ts +13 -3
  51. package/dist/parked-decide.js +10 -1
  52. package/dist/plugins/adoption-log-sql.d.ts +191 -0
  53. package/dist/plugins/adoption-log-sql.js +273 -0
  54. package/dist/plugins/checkpoint-store-sql.d.ts +13 -0
  55. package/dist/plugins/checkpoint-store-sql.js +11 -0
  56. package/dist/plugins/local-checkpoint-store.d.ts +10 -0
  57. package/dist/plugins/local-checkpoint-store.js +8 -0
  58. package/dist/plugins/permission-rule-store-file.d.ts +83 -0
  59. package/dist/plugins/permission-rule-store-file.js +371 -0
  60. package/dist/plugins/permission-rule-store-sql.d.ts +249 -0
  61. package/dist/plugins/permission-rule-store-sql.js +828 -0
  62. package/dist/plugins/pg-pool.js +37 -0
  63. package/dist/plugins/session-policy-store-sql.d.ts +6 -0
  64. package/dist/plugins/session-policy-store-sql.js +7 -1
  65. package/dist/plugins/shared-memory-store-sql.d.ts +223 -0
  66. package/dist/plugins/shared-memory-store-sql.js +516 -0
  67. package/dist/plugins/store-backend.d.ts +38 -2
  68. package/dist/plugins/store-backend.js +69 -6
  69. package/dist/plugins/tidb-pool.js +47 -0
  70. package/dist/rules-consent.d.ts +194 -0
  71. package/dist/rules-consent.js +240 -0
  72. package/dist/run-local.js +120 -13
  73. package/dist/runtime-governance.js +9 -3
  74. package/dist/shared-memory-scope-authorizer.d.ts +29 -0
  75. package/dist/shared-memory-scope-authorizer.js +17 -0
  76. package/dist/task-settings.d.ts +44 -0
  77. package/dist/task-settings.js +57 -1
  78. package/dist/tool-approval.d.ts +60 -0
  79. package/dist/tool-approval.js +223 -25
  80. package/dist/trace/core-keyset-guard.d.ts +15 -4
  81. package/dist/trace/project.d.ts +20 -2
  82. package/dist/trace/project.js +25 -4
  83. package/package.json +3 -3
@@ -381,8 +381,25 @@ export function workspaceChangedEventData(ev) {
381
381
  * 某个可选设施」的部署形自述,而那三个早已租户可见。消费端的真需求也在租户侧:审批卡要不要渲染
382
382
  * 「不再询问」这一格,取决于这台 worker 有没有规则店 —— 剥掉它,客户端只能靠试(提交后被拒)才知道。
383
383
  * 它**不在** `governance` 段里(core 自己把它放在段外),也不构成那 4 个治理布尔的侧信道。
384
- * ⚠️ 恒在段(core 侧 `permissionRules` 无 `?`):本仓未接规则店 `storeWired: false`,这是**真值**
385
- * 不是缺席 —— 消费端读到 false 就是「这台 worker 没有这条车道」,不许当成「这版引擎还没这个概念」。
384
+ * ⚠️ 恒在段(core 侧 `permissionRules` 无 `?`):两个真值都可能出现,**别把 false 读成缺席**。
385
+ * 本仓自 #154 车二 / design/203 起真接了规则店(`main.ts` 在 `PERMISSION_RULES_ENABLED` 为真 ∧
386
+ * backend 在场时把 `permissionRuleStore` 装进 `RunnerDeps`,SQL 与 File 两形)⇒ 那样的部署报
387
+ * `storeWired: true`;旋钮关掉或后端缺席的部署仍报 `false`。消费端读到 false 就是「这台 worker
388
+ * 今天没有这条车道」,不许当成「这版引擎还没这个概念」。
389
+ * · `permissionRules.syncWired` / `permissionRules.orgGoverned`(布尔两位;core 5.23.0 design/182 §9/§7
390
+ * 给**同一段**加的员,[3372] 提货批 codex 复审 high 抓获——首版把它们静默剥了,正是本仓建这份台账要防
391
+ * 的「投影白名单剥键」病)—— **裁:租户可见,与同段的 `storeWired` 同待遇**。判据三条:
392
+ * ① **同段同类**:core 把它们放进 `permissionRules` 而不是 `governance`(唯一带 audience 标签的段),
393
+ * 且形状与 `storeWired` 逐字同构(恒在的布尔,present-and-false 表示「有这个概念,这里没开」);
394
+ * ② **消费端真需求在租户侧**:这两位说的是「按下『不再询问』之后,这条同意到底落到多大的信任域里」——
395
+ * `syncWired` = 这台 worker 会把规则并进跨设备/传输/服务端的**同一个同意信任域**;`orgGoverned` =
396
+ * 组织治理层武装着(且它的 fail-closed 契约意味着读不到 org 快照时**每一次**放行都会被抬成真人审批)。
397
+ * 同一张审批卡上的同一个动作,后果因这两位而不同,剥掉它们等于让客户端渲一格语义不明的开关;
398
+ * ③ **不是治理侧信道**:两位都不参与 `governance` 那 4 个布尔的还原(它们描述规则店这条车道自身的
399
+ * 形状,与 lockedConfig/compliance/memoryAdmission/retention 无函数关系)。
400
+ * ⚠️ 与 `storeWired` **不同**:本仓这两条至今未接(`RunnerDeps.permissionRuleSyncWired` /
401
+ * `permissionRuleOrg` 全树零声明点,2026-08-10 #204 复扫亲验)⇒ 今天恒 `false`,这是**真值**不是
402
+ * 缺席。哪天接上其中任一条,连本句一起改 —— 这一行是它的登记处。
386
403
  * 未来 core 加一段而它没有 audience 标签时,**先在这里补一条裁定再决定挑不挑键** —— 段级完备性钉
387
404
  * (test/wiring-manifest-projection.test.ts)会在那一刻先把人拦下来。
388
405
  */
@@ -434,10 +451,13 @@ export function wiringManifestEventData(ev) {
434
451
  ...(bool(fleetIn.backgroundAgentStore) !== undefined ? { backgroundAgentStore: fleetIn.backgroundAgentStore } : {}),
435
452
  ...(bool(fleetIn.hostChildEventSink) !== undefined ? { hostChildEventSink: fleetIn.hostChildEventSink } : {}),
436
453
  });
437
- // core 5.18.0 design/179 段(裁定见头注:租户可见)。逐键挑,与其余段同规:非布尔按缺席处理
438
- // (不铸假值——一个编出来的 `false` 会被读成「确实没接规则店」,而真相是这段读不出来)。
454
+ // core 5.18.0 design/179 段 + 5.23.0 design/182 §9/§7 两位加员(裁定见头注:三位同判租户可见)
455
+ // 逐键挑,与其余段同规:非布尔按缺席处理(不铸假值——一个编出来的 `false` 会被读成「确实没接/没开」,
456
+ // 而真相是这段读不出来)。
439
457
  const permissionRules = nonEmpty({
440
458
  ...(bool(rulesIn.storeWired) !== undefined ? { storeWired: rulesIn.storeWired } : {}),
459
+ ...(bool(rulesIn.syncWired) !== undefined ? { syncWired: rulesIn.syncWired } : {}),
460
+ ...(bool(rulesIn.orgGoverned) !== undefined ? { orgGoverned: rulesIn.orgGoverned } : {}),
441
461
  });
442
462
  return {
443
463
  ...(num(m.schemaVersion) !== undefined ? { schemaVersion: m.schemaVersion } : {}),
@@ -561,6 +581,7 @@ export function brainStatusEventData(ev) {
561
581
  ...(num(ev.attempt) ? { attempt: ev.attempt } : {}),
562
582
  ...(num(ev.maxRetries) ? { maxRetries: ev.maxRetries } : {}),
563
583
  ...(num(ev.retryInMs) ? { retryInMs: ev.retryInMs } : {}),
584
+ ...(typeof ev.errClass === "string" && ev.errClass.length > 0 ? { errClass: ev.errClass } : {}),
564
585
  ...identityFields(ev),
565
586
  };
566
587
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema-agent/server",
3
- "version": "7.10.0",
3
+ "version": "7.12.0",
4
4
  "description": "Sema Server — the server/API implementation layer for Sema, wiring core, registry, model providers, and cloud agent execution. Built on @sema-agent/core.",
5
5
  "type": "module",
6
6
  "license": "BUSL-1.1",
@@ -54,7 +54,7 @@
54
54
  "build:binary:run-local:darwin-arm64": "bun build --compile --target=bun-darwin-arm64 src/run-local.ts --outfile dist/run-local-darwin-arm64"
55
55
  },
56
56
  "dependencies": {
57
- "@sema-agent/core": "^5.21.0",
57
+ "@sema-agent/core": "^5.23.0",
58
58
  "@sema-agent/registry-core": "^0.16.0",
59
59
  "e2b": "^2.28.0",
60
60
  "libsodium-wrappers": "^0.8.4",
@@ -69,7 +69,7 @@
69
69
  "sharp": "^0.35.3"
70
70
  },
71
71
  "devDependencies": {
72
- "@sema-agent/sdk": "^6.12.0",
72
+ "@sema-agent/sdk": "^6.13.0",
73
73
  "@types/libsodium-wrappers": "^0.7.14",
74
74
  "@types/node": "22.10.2",
75
75
  "@types/pg": "^8.20.0",