@sema-agent/server 7.144.0 → 7.145.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 (73) hide show
  1. package/MIGRATION.md +129 -0
  2. package/README.md +3 -0
  3. package/README.zh-CN.md +1 -0
  4. package/USAGE.md +16 -8
  5. package/dist/audit.d.ts +2 -21
  6. package/dist/audit.js +0 -9
  7. package/dist/boot/session-faces.d.ts +1 -1
  8. package/dist/boot/session-faces.js +3 -3
  9. package/dist/boot/stage-09-leader.d.ts +1 -1
  10. package/dist/boot/stage-10-http-server.d.ts +1 -1
  11. package/dist/boot/stage-10-http-server.js +2 -2
  12. package/dist/config-d-migration.d.ts +3 -2
  13. package/dist/fleet/fleet-bus.d.ts +13 -3
  14. package/dist/fleet/fleet-bus.js +17 -3
  15. package/dist/http/admission.js +2 -1
  16. package/dist/http/checkpoint-ctx.d.ts +1 -0
  17. package/dist/http/checkpoint-ctx.js +1 -0
  18. package/dist/http/durable-run-leg.js +7 -6
  19. package/dist/http/resume-legs.js +5 -3
  20. package/dist/http/route-ctx.d.ts +15 -0
  21. package/dist/http/routes/approvals-assistant.d.ts +20 -1
  22. package/dist/http/routes/approvals-assistant.js +27 -6
  23. package/dist/http/routes/rules.d.ts +1 -1
  24. package/dist/http/routes/rules.js +5 -2
  25. package/dist/http/routes/session-sync.js +12 -0
  26. package/dist/http/routes/tasks.js +12 -9
  27. package/dist/http/run-meta.d.ts +14 -7
  28. package/dist/http/run-meta.js +5 -2
  29. package/dist/http/server.d.ts +13 -5
  30. package/dist/http/server.js +3 -0
  31. package/dist/http/submit-ctx.d.ts +12 -0
  32. package/dist/http/submit-ctx.js +23 -0
  33. package/dist/observability/fail-open.d.ts +15 -3
  34. package/dist/observability/fail-open.js +15 -3
  35. package/dist/plugins/approval-ask-store-file.d.ts +16 -2
  36. package/dist/plugins/approval-ask-store-file.js +21 -1
  37. package/dist/plugins/approval-ask-store-memory.d.ts +8 -2
  38. package/dist/plugins/approval-ask-store-memory.js +11 -8
  39. package/dist/plugins/caching-session-store.d.ts +3 -0
  40. package/dist/plugins/caching-session-store.js +3 -0
  41. package/dist/plugins/checkpoint-store-sql.d.ts +29 -11
  42. package/dist/plugins/checkpoint-store-sql.js +38 -16
  43. package/dist/plugins/file-run-store.d.ts +13 -1
  44. package/dist/plugins/file-run-store.js +11 -1
  45. package/dist/plugins/local-checkpoint-store.d.ts +14 -3
  46. package/dist/plugins/local-checkpoint-store.js +23 -5
  47. package/dist/plugins/local-session-store.d.ts +52 -16
  48. package/dist/plugins/local-session-store.js +47 -14
  49. package/dist/plugins/memory-run-store.d.ts +2 -0
  50. package/dist/plugins/memory-run-store.js +6 -0
  51. package/dist/plugins/one-time-migrations.js +2 -2
  52. package/dist/plugins/run-store-sql.d.ts +4 -0
  53. package/dist/plugins/run-store-sql.js +3 -0
  54. package/dist/plugins/session-store.d.ts +1 -1
  55. package/dist/prompt-screen.d.ts +21 -0
  56. package/dist/prompt-screen.js +8 -0
  57. package/dist/rules-consent.d.ts +63 -51
  58. package/dist/rules-consent.js +6 -10
  59. package/dist/run-acceptance.d.ts +40 -10
  60. package/dist/run-acceptance.js +38 -5
  61. package/dist/runs.js +1 -1
  62. package/dist/security.d.ts +10 -3
  63. package/dist/session-agent.d.ts +39 -0
  64. package/dist/session-agent.js +16 -0
  65. package/dist/session-error-wire.d.ts +4 -4
  66. package/dist/trace/model-segment.d.ts +3 -2
  67. package/dist/trace/model-segment.js +16 -8
  68. package/dist/trace/redact.d.ts +66 -2
  69. package/dist/trace/redact.js +220 -101
  70. package/dist/trace/self-minted-wire.d.ts +73 -1
  71. package/dist/trace/self-minted-wire.js +27 -0
  72. package/package.json +2 -2
  73. package/wire-changes/server@7.145.0.json +146 -0
@@ -491,6 +491,12 @@ export const SELF_MINTED_WIRE = {
491
491
  rowVerdict: { attr: "present-iff the row's stored bytes were judged on this listing", since: "7.144.0" },
492
492
  },
493
493
  },
494
+ approvalQueueRowAgent: {
495
+ at: "GET /v1/approvals pending[] 行 · GET /v1/approvals/stream pending 帧(停驻门族)的 agent",
496
+ members: {
497
+ agent: { attr: "present-iff the row's session is a placed delegated child (its stored delegation tuple was read on this listing)", since: "7.145.0" },
498
+ },
499
+ },
494
500
  approvalQueueKind: {
495
501
  at: "GET /v1/approvals pending[].kind · GET /v1/approvals/stream pending / resolved 帧的 kind(恒带)",
496
502
  members: {
@@ -600,6 +606,7 @@ export const SELF_MINTED_WIRE = {
600
606
  "POST /v1/sessions/:id/sync/import#anchor_outside_declared_entries(Phase A 体的 anchors[i]:entryId 不在 entryIds 里 / 元素不是带串型 eventId 与 entryId 的对象;体 request.field_invalid)": { attr: 400, since: "7.141.0" },
601
607
  "POST /v1/sessions/:id/fork#stamped_archive(DB_BACKEND=local;源存档仍带更早版本写下的属主戳;零写;体 conflict.session_archive_stamped + 带戳存档的固定句)": { attr: 409, since: "7.144.0" },
602
608
  "POST /v1/sessions/:id/sync/import/:stagingId/entries#stamped_archive(DB_BACKEND=local;提交落在仍带属主戳的存档上,改日志的各形推送同答;行净零写;体 conflict.session_archive_stamped + 带戳存档的固定句)": { attr: 409, since: "7.144.0" },
609
+ "POST /v1/sessions/:id/sync/import#stamped_archive(DB_BACKEND=local;第一阶段按 id 分类出 fork / stale 且没带同意,目的端存档仍带属主戳;不开暂存、不拿租约、不写存档;体 conflict.session_archive_stamped + 带戳存档的固定句,不带 relation)": { attr: 409, since: "7.145.0" },
603
610
  "POST /v1/tasks|/v1/tasks/stream|/v1/runs#images_url_credential(新提交;体 request.field_invalid + field images[i].url + reason url_userinfo|url_credential_param)": { attr: 400, since: "7.136.0" },
604
611
  "POST /v1/tasks|/v1/tasks/stream|/v1/runs#a2aPeers_malformed(新提交;列表不是数组 / 条目不是对象 / 键值判不出形;体 request.field_invalid)": { attr: 400, since: "7.136.0" },
605
612
  "POST /v1/tasks|/v1/tasks/stream|/v1/runs#a2aPeers_unknown_key(新提交;词表外的键;体 request.body_shape + unknownKeys)": { attr: 400, since: "7.136.0" },
@@ -657,6 +664,26 @@ export const SELF_MINTED_WIRE = {
657
664
  "GET /v1/capabilities/mcp#engine_name_collision(中心声明两台归一后同挂一个工具命名空间前缀,引擎在任何传输被触碰之前整集拒;体 config.mcp_server_name_collision + 引擎原句;与同步提交腿同一张码 → 状态表)": { attr: 409, since: "7.143.0" },
658
665
  "POST /v1/tasks#engine_name_collision(同步腿;同一份声明集被引擎整集拒;零工作的拒;体 config.mcp_server_name_collision)": { attr: 409, since: "7.143.0" },
659
666
  "POST /v1/rules/local-import/prepare#tightening_write_failed(一条收下的 deny / ask 写不进店;这一批的放行扣下、没有票;体 state.rule_write_failed + committed,同 POST /v1/rules)": { attr: 503, since: "7.143.0" },
667
+ "POST /v1/rules/cc-import/redeem#member_refused(兑付走完、引擎的完整成员表里有被拒的成员;体 = 回执 { members, rev },那几行 outcome indeterminate + reason store_refused + detail 引擎原话;票用掉,同票再兑 404)": { attr: 200, since: "7.145.0" },
668
+ },
669
+ },
670
+ ruleImportReceiptKey: {
671
+ at: "POST /v1/rules/cc-import/redeem 200 回执顶层键(<键> → 在场律;与 POST /v1/rules/local-import/redeem 同形)",
672
+ members: {
673
+ members: { attr: "always", since: "7.145.0" },
674
+ rev: { attr: "always", since: "7.145.0" },
675
+ },
676
+ retired: {
677
+ "result(≤7.144.0 的 cc-import 回执:{ members: <引擎 RedeemedBatchMember 原形行:candidateIndex / behavior / rule / scope 对象 / status / alreadyRedeemed / dot>, rev })": { attr: "always", since: "7.46.0", until: "7.145.0" },
678
+ },
679
+ },
680
+ ruleImportReceiptMemberKey: {
681
+ at: "POST /v1/rules/cc-import/redeem 200 回执 members[] 行键(<键> → 在场律;与 POST /v1/rules/local-import/redeem 同形)",
682
+ members: {
683
+ key: { attr: "always; { behavior, rule, scope } — scope is the GET /v1/rules discriminated string (global | project:<root>)", since: "7.145.0" },
684
+ outcome: { attr: "always; persisted | no-op | indeterminate (refused reserved for a typed engine verdict bit, not minted)", since: "7.145.0" },
685
+ reason: { attr: "present-iff outcome indeterminate; store_refused", since: "7.145.0" },
686
+ detail: { attr: "present-iff outcome indeterminate; the engine's refusal sentence verbatim", since: "7.145.0" },
660
687
  },
661
688
  },
662
689
  memoryLayerSeatKey: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema-agent/server",
3
- "version": "7.144.0",
3
+ "version": "7.145.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",
@@ -71,7 +71,7 @@
71
71
  "dependencies": {
72
72
  "@modelcontextprotocol/server": "2.4.0",
73
73
  "@sema-agent/core": "7.62.0",
74
- "@sema-agent/settings-schema": "16.0.0",
74
+ "@sema-agent/settings-schema": "17.0.0",
75
75
  "e2b": "^2.28.0",
76
76
  "libsodium-wrappers": "^0.8.4",
77
77
  "mysql2": "^3.22.4",
@@ -0,0 +1,146 @@
1
+ {
2
+ "repo": "server",
3
+ "version": "7.145.0",
4
+ "from": "v7.144.0",
5
+ "fromCommit": "077b53909548afbfe73b006d2e31b61510338c00",
6
+ "to": "v7.145.0",
7
+ "generator": "scripts/wire-changes-server.mjs",
8
+ "sources": [
9
+ "docs/ASSISTANT-WIRE-CONTRACT.md#A.1",
10
+ "docs/ASSISTANT-WIRE-CONTRACT.md#A.1b",
11
+ "docs/ASSISTANT-WIRE-CONTRACT.md#B.1",
12
+ "docs/ASSISTANT-WIRE-CONTRACT.md#B.1a",
13
+ "docs/ASSISTANT-WIRE-CONTRACT.md#B.2b",
14
+ "docs/ASSISTANT-WIRE-CONTRACT.md#B.2",
15
+ "docs/ASSISTANT-WIRE-CONTRACT.md#D.3",
16
+ "src/trace/wire-projection-faces.ts",
17
+ "src/trace/self-minted-wire.ts",
18
+ "node_modules/@sema-agent/core/wire-changes"
19
+ ],
20
+ "added": [
21
+ {
22
+ "id": "A1",
23
+ "source": "selfMinted.approvalQueueRowAgent",
24
+ "member": "agent",
25
+ "text": "自铸 GET /v1/approvals pending[] 行 · GET /v1/approvals/stream pending 帧(停驻门族)的 agent 新增 `agent`(属性 present-iff the row's session is a placed delegated child (its stored delegation tuple was read on this listing);since 7.145.0 = 本版新上 wire)"
26
+ },
27
+ {
28
+ "id": "A2",
29
+ "source": "selfMinted.endpointFaceStatus",
30
+ "member": "POST /v1/rules/cc-import/redeem#member_refused(兑付走完、引擎的完整成员表里有被拒的成员;体 = 回执 { members, rev },那几行 outcome indeterminate + reason store_refused + detail 引擎原话;票用掉,同票再兑 404)",
31
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `POST /v1/rules/cc-import/redeem#member_refused(兑付走完、引擎的完整成员表里有被拒的成员;体 = 回执 { members, rev },那几行 outcome indeterminate + reason store_refused + detail 引擎原话;票用掉,同票再兑 404)`(属性 200;since 7.145.0 = 本版新上 wire)"
32
+ },
33
+ {
34
+ "id": "A3",
35
+ "source": "selfMinted.endpointFaceStatus",
36
+ "member": "POST /v1/sessions/:id/sync/import#stamped_archive(DB_BACKEND=local;第一阶段按 id 分类出 fork / stale 且没带同意,目的端存档仍带属主戳;不开暂存、不拿租约、不写存档;体 conflict.session_archive_stamped + 带戳存档的固定句,不带 relation)",
37
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `POST /v1/sessions/:id/sync/import#stamped_archive(DB_BACKEND=local;第一阶段按 id 分类出 fork / stale 且没带同意,目的端存档仍带属主戳;不开暂存、不拿租约、不写存档;体 conflict.session_archive_stamped + 带戳存档的固定句,不带 relation)`(属性 409;since 7.145.0 = 本版新上 wire)"
38
+ },
39
+ {
40
+ "id": "A4",
41
+ "source": "selfMinted.ruleImportReceiptKey",
42
+ "member": "members",
43
+ "text": "自铸 POST /v1/rules/cc-import/redeem 200 回执顶层键(<键> → 在场律;与 POST /v1/rules/local-import/redeem 同形) 新增 `members`(属性 always;since 7.145.0 = 本版新上 wire)"
44
+ },
45
+ {
46
+ "id": "A5",
47
+ "source": "selfMinted.ruleImportReceiptKey",
48
+ "member": "rev",
49
+ "text": "自铸 POST /v1/rules/cc-import/redeem 200 回执顶层键(<键> → 在场律;与 POST /v1/rules/local-import/redeem 同形) 新增 `rev`(属性 always;since 7.145.0 = 本版新上 wire)"
50
+ },
51
+ {
52
+ "id": "A6",
53
+ "source": "selfMinted.ruleImportReceiptMemberKey",
54
+ "member": "detail",
55
+ "text": "自铸 POST /v1/rules/cc-import/redeem 200 回执 members[] 行键(<键> → 在场律;与 POST /v1/rules/local-import/redeem 同形) 新增 `detail`(属性 present-iff outcome indeterminate; the engine's refusal sentence verbatim;since 7.145.0 = 本版新上 wire)"
56
+ },
57
+ {
58
+ "id": "A7",
59
+ "source": "selfMinted.ruleImportReceiptMemberKey",
60
+ "member": "key",
61
+ "text": "自铸 POST /v1/rules/cc-import/redeem 200 回执 members[] 行键(<键> → 在场律;与 POST /v1/rules/local-import/redeem 同形) 新增 `key`(属性 always; { behavior, rule, scope } — scope is the GET /v1/rules discriminated string (global | project:<root>);since 7.145.0 = 本版新上 wire)"
62
+ },
63
+ {
64
+ "id": "A8",
65
+ "source": "selfMinted.ruleImportReceiptMemberKey",
66
+ "member": "outcome",
67
+ "text": "自铸 POST /v1/rules/cc-import/redeem 200 回执 members[] 行键(<键> → 在场律;与 POST /v1/rules/local-import/redeem 同形) 新增 `outcome`(属性 always; persisted | no-op | indeterminate (refused reserved for a typed engine verdict bit, not minted);since 7.145.0 = 本版新上 wire)"
68
+ },
69
+ {
70
+ "id": "A9",
71
+ "source": "selfMinted.ruleImportReceiptMemberKey",
72
+ "member": "reason",
73
+ "text": "自铸 POST /v1/rules/cc-import/redeem 200 回执 members[] 行键(<键> → 在场律;与 POST /v1/rules/local-import/redeem 同形) 新增 `reason`(属性 present-iff outcome indeterminate; store_refused;since 7.145.0 = 本版新上 wire)"
74
+ }
75
+ ],
76
+ "registered": [],
77
+ "excluded": [],
78
+ "removed": [
79
+ {
80
+ "id": "R1",
81
+ "source": "selfMinted.ruleImportReceiptKey",
82
+ "member": "result(≤7.144.0 的 cc-import 回执:{ members: <引擎 RedeemedBatchMember 原形行:candidateIndex / behavior / rule / scope 对象 / status / alreadyRedeemed / dot>, rev })",
83
+ "text": "自铸 POST /v1/rules/cc-import/redeem 200 回执顶层键(<键> → 在场律;与 POST /v1/rules/local-import/redeem 同形) 于本版退役 `result(≤7.144.0 的 cc-import 回执:{ members: <引擎 RedeemedBatchMember 原形行:candidateIndex / behavior / rule / scope 对象 / status / alreadyRedeemed / dot>, rev })`(原属性 always;自 7.46.0 起在 wire 上,until 7.145.0 = 本版)"
84
+ }
85
+ ],
86
+ "changed": [],
87
+ "narrowed": [],
88
+ "closedSetMembers": [
89
+ {
90
+ "set": "selfMinted.approvalQueueRowAgent",
91
+ "at": [
92
+ "src/trace/self-minted-wire.ts#approvalQueueRowAgent"
93
+ ],
94
+ "added": [
95
+ "agent"
96
+ ],
97
+ "registered": [],
98
+ "removed": [],
99
+ "breaking": false
100
+ },
101
+ {
102
+ "set": "selfMinted.endpointFaceStatus",
103
+ "at": [
104
+ "src/trace/self-minted-wire.ts#endpointFaceStatus"
105
+ ],
106
+ "added": [
107
+ "POST /v1/rules/cc-import/redeem#member_refused(兑付走完、引擎的完整成员表里有被拒的成员;体 = 回执 { members, rev },那几行 outcome indeterminate + reason store_refused + detail 引擎原话;票用掉,同票再兑 404)",
108
+ "POST /v1/sessions/:id/sync/import#stamped_archive(DB_BACKEND=local;第一阶段按 id 分类出 fork / stale 且没带同意,目的端存档仍带属主戳;不开暂存、不拿租约、不写存档;体 conflict.session_archive_stamped + 带戳存档的固定句,不带 relation)"
109
+ ],
110
+ "registered": [],
111
+ "removed": [],
112
+ "breaking": false
113
+ },
114
+ {
115
+ "set": "selfMinted.ruleImportReceiptKey",
116
+ "at": [
117
+ "src/trace/self-minted-wire.ts#ruleImportReceiptKey"
118
+ ],
119
+ "added": [
120
+ "members",
121
+ "rev"
122
+ ],
123
+ "registered": [],
124
+ "removed": [
125
+ "result(≤7.144.0 的 cc-import 回执:{ members: <引擎 RedeemedBatchMember 原形行:candidateIndex / behavior / rule / scope 对象 / status / alreadyRedeemed / dot>, rev })"
126
+ ],
127
+ "breaking": true
128
+ },
129
+ {
130
+ "set": "selfMinted.ruleImportReceiptMemberKey",
131
+ "at": [
132
+ "src/trace/self-minted-wire.ts#ruleImportReceiptMemberKey"
133
+ ],
134
+ "added": [
135
+ "detail",
136
+ "key",
137
+ "outcome",
138
+ "reason"
139
+ ],
140
+ "registered": [],
141
+ "removed": [],
142
+ "breaking": false
143
+ }
144
+ ],
145
+ "breaking": 1
146
+ }