@sema-agent/server 7.141.0 → 7.142.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 (171) hide show
  1. package/MIGRATION.md +215 -0
  2. package/USAGE.md +67 -12
  3. package/dist/approval-ask-audit-store.d.ts +54 -38
  4. package/dist/approval-ask-audit-store.js +58 -39
  5. package/dist/approval-card.d.ts +8 -8
  6. package/dist/approval-crash-convergence.d.ts +17 -7
  7. package/dist/approval-crash-convergence.js +94 -22
  8. package/dist/approval-deny-reasons.d.ts +34 -30
  9. package/dist/approval-deny-reasons.js +21 -6
  10. package/dist/approval-policy-settlement.d.ts +1 -1
  11. package/dist/approval-reconciler.d.ts +33 -1
  12. package/dist/approval-reconciler.js +43 -40
  13. package/dist/auth-bridge.d.ts +9 -6
  14. package/dist/auth-bridge.js +9 -3
  15. package/dist/boot/adoption.js +2 -1
  16. package/dist/boot/budget-tracing.d.ts +16 -0
  17. package/dist/boot/budget-tracing.js +10 -6
  18. package/dist/boot/device-lane.d.ts +1 -1
  19. package/dist/boot/execution-env.d.ts +24 -4
  20. package/dist/boot/execution-env.js +26 -23
  21. package/dist/boot/execution-lane.js +2 -1
  22. package/dist/boot/exit-boundary.js +5 -4
  23. package/dist/boot/memory-consolidation.js +2 -1
  24. package/dist/boot/parked-revive-gate.js +2 -1
  25. package/dist/boot/permission-rules-audit.d.ts +0 -28
  26. package/dist/boot/permission-rules-audit.js +2 -1
  27. package/dist/boot/read-deny-anchor-audit.js +2 -1
  28. package/dist/boot/reapers.js +4 -3
  29. package/dist/boot/resolve-spec.js +11 -2
  30. package/dist/boot/retention-lane.js +5 -3
  31. package/dist/boot/runner-deps.js +16 -13
  32. package/dist/boot/runtime-caps.js +3 -2
  33. package/dist/boot/session-faces.js +4 -3
  34. package/dist/boot/shutdown.js +3 -2
  35. package/dist/boot/stage-04-stores.js +3 -2
  36. package/dist/boot/stage-05-execution-env.d.ts +1 -1
  37. package/dist/boot/stage-05-execution-env.js +8 -6
  38. package/dist/boot/stage-06-runners.d.ts +1 -1
  39. package/dist/boot/stage-06-runners.js +2 -1
  40. package/dist/boot/stage-07-capability-layer.d.ts +1 -1
  41. package/dist/boot/stage-07-capability-layer.js +2 -1
  42. package/dist/boot/stage-08-reapers.d.ts +1 -1
  43. package/dist/boot/stage-08-reapers.js +3 -2
  44. package/dist/boot/stage-09-leader.d.ts +1 -1
  45. package/dist/boot/stage-10-http-server.d.ts +1 -1
  46. package/dist/boot/stage-10-http-server.js +5 -4
  47. package/dist/boot/stores.js +3 -2
  48. package/dist/boot/web-admin.js +17 -17
  49. package/dist/boot/webfetch-summarize-lane.js +2 -1
  50. package/dist/boot/workflow-orchestration.js +3 -2
  51. package/dist/capabilities/builtin-tools.d.ts +2 -1
  52. package/dist/capabilities/builtin-tools.js +2 -4
  53. package/dist/capabilities/composite-members.d.ts +2 -1
  54. package/dist/capabilities/composite-members.js +2 -1
  55. package/dist/capability-facts.d.ts +24 -0
  56. package/dist/capability-facts.js +23 -0
  57. package/dist/config-catalog.js +1 -0
  58. package/dist/config-types.d.ts +15 -4
  59. package/dist/config.d.ts +6 -0
  60. package/dist/config.js +17 -3
  61. package/dist/execution-lane-caps.d.ts +2 -1
  62. package/dist/fleet/fleet-bus.d.ts +6 -3
  63. package/dist/hooks/hook-runner.d.ts +6 -0
  64. package/dist/hooks/hook-runner.js +30 -1
  65. package/dist/http/dispatch.js +4 -2
  66. package/dist/http/execution-context.d.ts +2 -2
  67. package/dist/http/idempotency.d.ts +1 -1
  68. package/dist/http/principal-gate.d.ts +3 -1
  69. package/dist/http/principal-gate.js +17 -8
  70. package/dist/http/resume-legs.js +5 -9
  71. package/dist/http/route-table.js +2 -0
  72. package/dist/http/routes/attachments.js +18 -0
  73. package/dist/http/routes/capabilities.js +5 -2
  74. package/dist/http/routes/memory-policy.js +26 -6
  75. package/dist/http/routes/runs.js +3 -3
  76. package/dist/http/routes/session-memory-sync.d.ts +63 -0
  77. package/dist/http/routes/session-memory-sync.js +157 -0
  78. package/dist/http/routes/sessions-list.d.ts +2 -1
  79. package/dist/http/routes/tasks.js +7 -5
  80. package/dist/http/run-read-face.d.ts +7 -0
  81. package/dist/http/run-read-face.js +9 -3
  82. package/dist/http/send.d.ts +5 -0
  83. package/dist/http/send.js +9 -2
  84. package/dist/http/server.d.ts +14 -8
  85. package/dist/http/server.js +2 -4
  86. package/dist/http/submit-replay.d.ts +4 -3
  87. package/dist/http/submit-replay.js +2 -2
  88. package/dist/http/sync-submit-body.d.ts +21 -4
  89. package/dist/http/sync-submit-body.js +13 -0
  90. package/dist/identity-source.d.ts +21 -2
  91. package/dist/identity-source.js +6 -0
  92. package/dist/memory-incident-sink.d.ts +19 -6
  93. package/dist/memory-incident-sink.js +8 -4
  94. package/dist/memory-sync-client.d.ts +21 -21
  95. package/dist/memory-sync-client.js +50 -42
  96. package/dist/memory-sync-identity.d.ts +24 -0
  97. package/dist/memory-sync-identity.js +57 -0
  98. package/dist/memory-sync.d.ts +7 -1
  99. package/dist/memory-sync.js +6 -3
  100. package/dist/observability/fail-open.d.ts +27 -10
  101. package/dist/observability/fail-open.js +20 -7
  102. package/dist/observability/run-terminal.d.ts +92 -34
  103. package/dist/observability/run-terminal.js +167 -162
  104. package/dist/plugins/approval-ask-store-file.d.ts +14 -4
  105. package/dist/plugins/approval-ask-store-file.js +48 -7
  106. package/dist/plugins/approval-ask-store-memory.d.ts +2 -1
  107. package/dist/plugins/approval-ask-store-memory.js +9 -8
  108. package/dist/plugins/approval-ask-store-sql.d.ts +42 -10
  109. package/dist/plugins/approval-ask-store-sql.js +49 -19
  110. package/dist/plugins/file-run-store.d.ts +6 -1
  111. package/dist/plugins/file-run-store.js +11 -1
  112. package/dist/plugins/local-session-store.d.ts +36 -7
  113. package/dist/plugins/local-session-store.js +76 -32
  114. package/dist/plugins/local-task-attachment-store.d.ts +12 -2
  115. package/dist/plugins/local-task-attachment-store.js +67 -43
  116. package/dist/plugins/memory-key-guards.d.ts +3 -3
  117. package/dist/plugins/memory-run-store.d.ts +6 -1
  118. package/dist/plugins/memory-run-store.js +11 -1
  119. package/dist/plugins/one-time-migrations.d.ts +27 -1
  120. package/dist/plugins/one-time-migrations.js +57 -3
  121. package/dist/plugins/remote-env-e2b.d.ts +23 -4
  122. package/dist/plugins/remote-env-e2b.js +111 -28
  123. package/dist/plugins/remote-env-k8s.d.ts +31 -5
  124. package/dist/plugins/remote-env-k8s.js +86 -19
  125. package/dist/plugins/remote-env-local-docker.d.ts +15 -3
  126. package/dist/plugins/remote-env-local-docker.js +40 -12
  127. package/dist/plugins/run-store-sql.d.ts +9 -1
  128. package/dist/plugins/run-store-sql.js +9 -1
  129. package/dist/plugins/store-backend.d.ts +10 -7
  130. package/dist/plugins/store-backend.js +1 -0
  131. package/dist/plugins/store-contracts.d.ts +26 -1
  132. package/dist/plugins/store-contracts.js +3 -0
  133. package/dist/plugins/task-attachment-store.d.ts +112 -14
  134. package/dist/plugins/task-attachment-store.js +221 -28
  135. package/dist/plugins/workspace-fill.d.ts +60 -0
  136. package/dist/plugins/workspace-fill.js +106 -0
  137. package/dist/project-bundle.d.ts +38 -0
  138. package/dist/project-bundle.js +609 -0
  139. package/dist/run-local.js +2 -8
  140. package/dist/runs.js +1 -2
  141. package/dist/sandbox-egress-policy.d.ts +4 -1
  142. package/dist/sandbox-egress-policy.js +3 -1
  143. package/dist/sandbox-git-plane.d.ts +31 -12
  144. package/dist/sandbox-git-plane.js +24 -4
  145. package/dist/security.d.ts +9 -0
  146. package/dist/security.js +8 -0
  147. package/dist/session-error-wire.d.ts +24 -0
  148. package/dist/session-error-wire.js +7 -0
  149. package/dist/task-settings.d.ts +10 -2
  150. package/dist/task-settings.js +15 -2
  151. package/dist/terminal.d.ts +39 -19
  152. package/dist/terminal.js +65 -22
  153. package/dist/tool-approval.d.ts +4 -3
  154. package/dist/tool-approval.js +12 -14
  155. package/dist/trace/core-keyset-guard.d.ts +123 -6
  156. package/dist/trace/engine-notice-wire.d.ts +8 -2
  157. package/dist/trace/engine-notice-wire.js +4 -2
  158. package/dist/trace/exit-seat.d.ts +2 -1
  159. package/dist/trace/ledger-sink.d.ts +8 -4
  160. package/dist/trace/ledger-sink.js +2 -2
  161. package/dist/trace/project.d.ts +18 -1
  162. package/dist/trace/project.js +16 -0
  163. package/dist/trace/self-minted-wire.d.ts +251 -2
  164. package/dist/trace/self-minted-wire.js +82 -0
  165. package/dist/trace/wire-projection-faces.d.ts +1 -1
  166. package/dist/trace/wire-projection-faces.js +1 -1
  167. package/dist/web-admin-client/apply-effective.js +21 -1
  168. package/dist/web-admin-client/effective-keys.js +2 -0
  169. package/dist/web-admin-client/types.d.ts +4 -0
  170. package/package.json +1 -1
  171. package/wire-changes/server@7.142.0.json +639 -0
@@ -0,0 +1,639 @@
1
+ {
2
+ "repo": "server",
3
+ "version": "7.142.0",
4
+ "from": "v7.141.0",
5
+ "fromCommit": "3097c981f15732e58c5f0b8aa227367a71529ccb",
6
+ "to": "v7.142.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": "capability",
24
+ "member": "memoryExport",
25
+ "text": "附录 B.1 能力位新增 `memoryExport`(谓词类 设施依赖)"
26
+ },
27
+ {
28
+ "id": "A2",
29
+ "source": "capability",
30
+ "member": "memorySyncServe",
31
+ "text": "附录 B.1 能力位新增 `memorySyncServe`(谓词类 设施+config)"
32
+ },
33
+ {
34
+ "id": "A3",
35
+ "source": "capability",
36
+ "member": "sessionMemorySync",
37
+ "text": "附录 B.1 能力位新增 `sessionMemorySync`(谓词类 设施+config)"
38
+ },
39
+ {
40
+ "id": "A4",
41
+ "source": "capabilityMember",
42
+ "member": "memorySyncServe.identity",
43
+ "text": "附录 B.1a / B.2b 复合能力位成员新增 `memorySyncServe.identity`(在场律 / 谓词类 恒在场)"
44
+ },
45
+ {
46
+ "id": "A5",
47
+ "source": "errorCode",
48
+ "member": "attachment.bound_elsewhere",
49
+ "text": "附录 A.1 / A.1b 错误码新增 `attachment.bound_elsewhere`(状态码 409)"
50
+ },
51
+ {
52
+ "id": "A6",
53
+ "source": "errorCode",
54
+ "member": "attachment.bundle_invalid",
55
+ "text": "附录 A.1 / A.1b 错误码新增 `attachment.bundle_invalid`(状态码 400)"
56
+ },
57
+ {
58
+ "id": "A7",
59
+ "source": "errorCode",
60
+ "member": "attachment.bundle_lane_not_isolated",
61
+ "text": "附录 A.1 / A.1b 错误码新增 `attachment.bundle_lane_not_isolated`(状态码 409)"
62
+ },
63
+ {
64
+ "id": "A8",
65
+ "source": "errorCode",
66
+ "member": "attachment.bundle_seed_fixed",
67
+ "text": "附录 A.1 / A.1b 错误码新增 `attachment.bundle_seed_fixed`(状态码 409)"
68
+ },
69
+ {
70
+ "id": "A9",
71
+ "source": "errorCode",
72
+ "member": "config.memory_sync_target_mismatch",
73
+ "text": "附录 A.1 / A.1b 错误码新增 `config.memory_sync_target_mismatch`(状态码 409)"
74
+ },
75
+ {
76
+ "id": "A10",
77
+ "source": "errorCode",
78
+ "member": "conflict.session_memory_unobserved",
79
+ "text": "附录 A.1 / A.1b 错误码新增 `conflict.session_memory_unobserved`(状态码 409)"
80
+ },
81
+ {
82
+ "id": "A11",
83
+ "source": "errorCode",
84
+ "member": "feature.memory_sync_disabled",
85
+ "text": "附录 A.1 / A.1b 错误码新增 `feature.memory_sync_disabled`(状态码 501)"
86
+ },
87
+ {
88
+ "id": "A12",
89
+ "source": "errorCode",
90
+ "member": "feature.memory_sync_serve_disabled",
91
+ "text": "附录 A.1 / A.1b 错误码新增 `feature.memory_sync_serve_disabled`(状态码 501)"
92
+ },
93
+ {
94
+ "id": "A13",
95
+ "source": "selfMinted.configCatalogRow",
96
+ "member": "MEMORY_SYNC_SERVE_IDENTITY",
97
+ "text": "自铸 GET /v1/config/catalog rows[](<行名> → 域;只登本版新增的行) 新增 `MEMORY_SYNC_SERVE_IDENTITY`(属性 memory;since 7.142.0 = 本版新上 wire)"
98
+ },
99
+ {
100
+ "id": "A14",
101
+ "source": "selfMinted.endpointFaceStatus",
102
+ "member": "POST /v1/memory/sync/:scope#identity_undeclared(DB 记忆平面没声明 MEMORY_SYNC_SERVE_IDENTITY;鉴权之后;体 feature.memory_sync_serve_disabled)",
103
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `POST /v1/memory/sync/:scope#identity_undeclared(DB 记忆平面没声明 MEMORY_SYNC_SERVE_IDENTITY;鉴权之后;体 feature.memory_sync_serve_disabled)`(属性 501;since 7.142.0 = 本版新上 wire)"
104
+ },
105
+ {
106
+ "id": "A15",
107
+ "source": "selfMinted.endpointFaceStatus",
108
+ "member": "POST /v1/memory/sync/:scope#peer_not_declared_identity(peer 不是同步身份的规范形 / 带凭据 / 非 http(s) / 超宽 / 空串;体 request.field_invalid + field peer + reason)",
109
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `POST /v1/memory/sync/:scope#peer_not_declared_identity(peer 不是同步身份的规范形 / 带凭据 / 非 http(s) / 超宽 / 空串;体 request.field_invalid + field peer + reason)`(属性 400;since 7.142.0 = 本版新上 wire)"
110
+ },
111
+ {
112
+ "id": "A16",
113
+ "source": "selfMinted.endpointFaceStatus",
114
+ "member": "POST /v1/memory/sync/:scope#peer_not_this_center(peer 是规范形但不等于本中心声明的身份;零读零写;体 config.memory_sync_target_mismatch)",
115
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `POST /v1/memory/sync/:scope#peer_not_this_center(peer 是规范形但不等于本中心声明的身份;零读零写;体 config.memory_sync_target_mismatch)`(属性 409;since 7.142.0 = 本版新上 wire)"
116
+ },
117
+ {
118
+ "id": "A17",
119
+ "source": "selfMinted.hookManagedUnrunReason",
120
+ "member": "url_not_allowed",
121
+ "text": "自铸 fleet stream hook_notice kind:hook_managed_unrun reason 新增 `url_not_allowed`(属性 -;since 7.142.0 = 本版新上 wire)"
122
+ },
123
+ {
124
+ "id": "A18",
125
+ "source": "selfMinted.hookNonBlockingFailureReason",
126
+ "member": "url_not_allowed",
127
+ "text": "自铸 fleet stream hook_notice kind:hook_non_blocking_failure reason 新增 `url_not_allowed`(属性 -;since 7.142.0 = 本版新上 wire)"
128
+ },
129
+ {
130
+ "id": "A19",
131
+ "source": "selfMinted.memorySyncIdentityFlaw",
132
+ "member": "credential",
133
+ "text": "自铸 400 request.field_invalid reason(POST /v1/sessions/:id/memory/sync 的 target · POST /v1/memory/sync/:scope 的 peer;另带 field) 新增 `credential`(属性 -;since 7.142.0 = 本版新上 wire)"
134
+ },
135
+ {
136
+ "id": "A20",
137
+ "source": "selfMinted.memorySyncIdentityFlaw",
138
+ "member": "fragment",
139
+ "text": "自铸 400 request.field_invalid reason(POST /v1/sessions/:id/memory/sync 的 target · POST /v1/memory/sync/:scope 的 peer;另带 field) 新增 `fragment`(属性 -;since 7.142.0 = 本版新上 wire)"
140
+ },
141
+ {
142
+ "id": "A21",
143
+ "source": "selfMinted.memorySyncIdentityFlaw",
144
+ "member": "not-canonical",
145
+ "text": "自铸 400 request.field_invalid reason(POST /v1/sessions/:id/memory/sync 的 target · POST /v1/memory/sync/:scope 的 peer;另带 field) 新增 `not-canonical`(属性 -;since 7.142.0 = 本版新上 wire)"
146
+ },
147
+ {
148
+ "id": "A22",
149
+ "source": "selfMinted.memorySyncIdentityFlaw",
150
+ "member": "not-http-url",
151
+ "text": "自铸 400 request.field_invalid reason(POST /v1/sessions/:id/memory/sync 的 target · POST /v1/memory/sync/:scope 的 peer;另带 field) 新增 `not-http-url`(属性 -;since 7.142.0 = 本版新上 wire)"
152
+ },
153
+ {
154
+ "id": "A23",
155
+ "source": "selfMinted.memorySyncIdentityFlaw",
156
+ "member": "query",
157
+ "text": "自铸 400 request.field_invalid reason(POST /v1/sessions/:id/memory/sync 的 target · POST /v1/memory/sync/:scope 的 peer;另带 field) 新增 `query`(属性 -;since 7.142.0 = 本版新上 wire)"
158
+ },
159
+ {
160
+ "id": "A24",
161
+ "source": "selfMinted.memorySyncIdentityFlaw",
162
+ "member": "too-long",
163
+ "text": "自铸 400 request.field_invalid reason(POST /v1/sessions/:id/memory/sync 的 target · POST /v1/memory/sync/:scope 的 peer;另带 field) 新增 `too-long`(属性 -;since 7.142.0 = 本版新上 wire)"
164
+ },
165
+ {
166
+ "id": "A25",
167
+ "source": "selfMinted.memorySyncIdentityFlaw",
168
+ "member": "userinfo",
169
+ "text": "自铸 400 request.field_invalid reason(POST /v1/sessions/:id/memory/sync 的 target · POST /v1/memory/sync/:scope 的 peer;另带 field) 新增 `userinfo`(属性 -;since 7.142.0 = 本版新上 wire)"
170
+ },
171
+ {
172
+ "id": "A26",
173
+ "source": "selfMinted.projectBundleInvalidReason",
174
+ "member": "duplicate_path",
175
+ "text": "自铸 400 attachment.bundle_invalid reason(上传项目包 mime 的体过不了项目包的读者;另带 path?) 新增 `duplicate_path`(属性 -;since 7.142.0 = 本版新上 wire)"
176
+ },
177
+ {
178
+ "id": "A27",
179
+ "source": "selfMinted.projectBundleInvalidReason",
180
+ "member": "entry_type",
181
+ "text": "自铸 400 attachment.bundle_invalid reason(上传项目包 mime 的体过不了项目包的读者;另带 path?) 新增 `entry_type`(属性 -;since 7.142.0 = 本版新上 wire)"
182
+ },
183
+ {
184
+ "id": "A28",
185
+ "source": "selfMinted.projectBundleInvalidReason",
186
+ "member": "expanded_too_large",
187
+ "text": "自铸 400 attachment.bundle_invalid reason(上传项目包 mime 的体过不了项目包的读者;另带 path?) 新增 `expanded_too_large`(属性 -;since 7.142.0 = 本版新上 wire)"
188
+ },
189
+ {
190
+ "id": "A29",
191
+ "source": "selfMinted.projectBundleInvalidReason",
192
+ "member": "not_archive",
193
+ "text": "自铸 400 attachment.bundle_invalid reason(上传项目包 mime 的体过不了项目包的读者;另带 path?) 新增 `not_archive`(属性 -;since 7.142.0 = 本版新上 wire)"
194
+ },
195
+ {
196
+ "id": "A30",
197
+ "source": "selfMinted.projectBundleInvalidReason",
198
+ "member": "reserved_path",
199
+ "text": "自铸 400 attachment.bundle_invalid reason(上传项目包 mime 的体过不了项目包的读者;另带 path?) 新增 `reserved_path`(属性 -;since 7.142.0 = 本版新上 wire)"
200
+ },
201
+ {
202
+ "id": "A31",
203
+ "source": "selfMinted.projectBundleInvalidReason",
204
+ "member": "too_many_entries",
205
+ "text": "自铸 400 attachment.bundle_invalid reason(上传项目包 mime 的体过不了项目包的读者;另带 path?) 新增 `too_many_entries`(属性 -;since 7.142.0 = 本版新上 wire)"
206
+ },
207
+ {
208
+ "id": "A32",
209
+ "source": "selfMinted.projectBundleInvalidReason",
210
+ "member": "unsafe_path",
211
+ "text": "自铸 400 attachment.bundle_invalid reason(上传项目包 mime 的体过不了项目包的读者;另带 path?) 新增 `unsafe_path`(属性 -;since 7.142.0 = 本版新上 wire)"
212
+ },
213
+ {
214
+ "id": "A33",
215
+ "source": "selfMinted.sessionMemorySyncWire",
216
+ "member": "200#layers",
217
+ "text": "自铸 POST /v1/sessions/:id/memory/sync(<面>#<键> → 读法 / 在场律) 新增 `200#layers`(属性 present-iff no whole-round refusal;one entry per read-set layer the round ran (engine outcome synced | incomplete | refused | failed);since 7.142.0 = 本版新上 wire)"
218
+ },
219
+ {
220
+ "id": "A34",
221
+ "source": "selfMinted.sessionMemorySyncWire",
222
+ "member": "200#refused",
223
+ "text": "自铸 POST /v1/sessions/:id/memory/sync(<面>#<键> → 读法 / 在场律) 新增 `200#refused`(属性 present-iff whole-round refusal;{code: config.memory_sync_target_mismatch | session_active, message};since 7.142.0 = 本版新上 wire)"
224
+ },
225
+ {
226
+ "id": "A35",
227
+ "source": "selfMinted.sessionMemorySyncWire",
228
+ "member": "200#scopes",
229
+ "text": "自铸 POST /v1/sessions/:id/memory/sync(<面>#<键> → 读法 / 在场律) 新增 `200#scopes`(属性 always;the read set: latest settled run's effectiveMemoryScopes (mounted ⇒ scope keys in serving order; memoryless / none ⇒ []);since 7.142.0 = 本版新上 wire)"
230
+ },
231
+ {
232
+ "id": "A36",
233
+ "source": "selfMinted.sessionMemorySyncWire",
234
+ "member": "200#sourceRevision",
235
+ "text": "自铸 POST /v1/sessions/:id/memory/sync(<面>#<键> → 读法 / 在场律) 新增 `200#sourceRevision`(属性 always;the session leafId read in the same head read as the owner gate;since 7.142.0 = 本版新上 wire)"
236
+ },
237
+ {
238
+ "id": "A37",
239
+ "source": "selfMinted.sessionMemorySyncWire",
240
+ "member": "200#target",
241
+ "text": "自铸 POST /v1/sessions/:id/memory/sync(<面>#<键> → 读法 / 在场律) 新增 `200#target`(属性 always;engine report verbatim;since 7.142.0 = 本版新上 wire)"
242
+ },
243
+ {
244
+ "id": "A38",
245
+ "source": "selfMinted.sessionMemorySyncWire",
246
+ "member": "409 conflict.session_memory_unobserved#activeTaskId",
247
+ "text": "自铸 POST /v1/sessions/:id/memory/sync(<面>#<键> → 读法 / 在场律) 新增 `409 conflict.session_memory_unobserved#activeTaskId`(属性 present-iff the session has a run in flight;since 7.142.0 = 本版新上 wire)"
248
+ },
249
+ {
250
+ "id": "A39",
251
+ "source": "selfMinted.sessionMemorySyncWire",
252
+ "member": "body#target",
253
+ "text": "自铸 POST /v1/sessions/:id/memory/sync(<面>#<键> → 读法 / 在场律) 新增 `body#target`(属性 required;the only key;the target engine's GET /v1/capabilities memorySyncServe.identity verbatim;not a declared sync identity ⇒ 400 request.field_invalid;since 7.142.0 = 本版新上 wire)"
254
+ },
255
+ {
256
+ "id": "A40",
257
+ "source": "selfMinted.sessionsListRowKey",
258
+ "member": "unreadable",
259
+ "text": "自铸 GET /v1/sessions sessions[] 行键 = PATCH /v1/sessions/:id 200 体 = 409 conflict.session_row_changed currentRow(<键> → 在场律) 新增 `unreadable`(属性 present-iff the session head's leaf cannot be read (the file backend: the archive header is corrupt / truncated, or the archive cannot be read); the SQL backends never carry it; PATCH answers 500 for such a session before writing, so its 200 / 409 rows never carry it;since 7.142.0 = 本版新上 wire)"
260
+ },
261
+ {
262
+ "id": "A41",
263
+ "source": "selfMinted.sessionsListRowUnreadableKey",
264
+ "member": "errorCode",
265
+ "text": "自铸 GET /v1/sessions sessions[].unreadable 键(<键> → 在场律) 新增 `errorCode`(属性 always; the errorCode GET /v1/sessions/:id answers for the same session (corrupt_session | internal.error today);since 7.142.0 = 本版新上 wire)"
266
+ },
267
+ {
268
+ "id": "A42",
269
+ "source": "selfMinted.submitIdempotency",
270
+ "member": "POST /v1/tasks|/v1/tasks/stream#replay_first_answer_envelope(同键重放的体 = 首答的信封 + replay: true:终局 = 引擎结果(result 是串),停驻 = 结果 + 回执三键,行还在跑 = 回执三键;流式腿放进 done.result)",
271
+ "text": "自铸 提交幂等(<端点>#<面> → 应答状态) 新增 `POST /v1/tasks|/v1/tasks/stream#replay_first_answer_envelope(同键重放的体 = 首答的信封 + replay: true:终局 = 引擎结果(result 是串),停驻 = 结果 + 回执三键,行还在跑 = 回执三键;流式腿放进 done.result)`(属性 200;since 7.142.0 = 本版新上 wire)"
272
+ },
273
+ {
274
+ "id": "A43",
275
+ "source": "taskSettings",
276
+ "member": "httpHookAllowlists",
277
+ "text": "附录 B.2 taskSettings 子键新增 `httpHookAllowlists`(谓词类 config 依赖)"
278
+ },
279
+ {
280
+ "id": "A44",
281
+ "source": "wireFace.minted",
282
+ "member": "engine_notice.eventId",
283
+ "text": "投影面 engine_notice 新铸 wire 键 eventId"
284
+ }
285
+ ],
286
+ "registered": [
287
+ {
288
+ "id": "L1",
289
+ "source": "selfMinted.endpointFaceStatus",
290
+ "member": "POST /v1/approvals/:sessionId/decide#parked_principal_lane_not_permitted(停驻赎回;卡的主体此刻不被许可本部署的执行车道;approve 与 deny 同答;认领之前,停驻行不动、卡仍待决;体 resume_blocked_by_policy + blockedBy execution_lane_not_allowed + allowedLanes + lane + retriable)",
291
+ "text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 登记 `POST /v1/approvals/:sessionId/decide#parked_principal_lane_not_permitted(停驻赎回;卡的主体此刻不被许可本部署的执行车道;approve 与 deny 同答;认领之前,停驻行不动、卡仍待决;体 resume_blocked_by_policy + blockedBy execution_lane_not_allowed + allowedLanes + lane + retriable)`(属性 409;since 7.139.0 —— 早于本版,只是登记)"
292
+ },
293
+ {
294
+ "id": "L2",
295
+ "source": "selfMinted.hookManagedUnrunReason",
296
+ "member": "bad_json",
297
+ "text": "自铸 fleet stream hook_notice kind:hook_managed_unrun reason 登记 `bad_json`(属性 -;since 7.133.0 —— 早于本版,只是登记)"
298
+ },
299
+ {
300
+ "id": "L3",
301
+ "source": "selfMinted.hookManagedUnrunReason",
302
+ "member": "budget_exhausted",
303
+ "text": "自铸 fleet stream hook_notice kind:hook_managed_unrun reason 登记 `budget_exhausted`(属性 -;since 7.133.0 —— 早于本版,只是登记)"
304
+ },
305
+ {
306
+ "id": "L4",
307
+ "source": "selfMinted.hookManagedUnrunReason",
308
+ "member": "decision_out_of_set",
309
+ "text": "自铸 fleet stream hook_notice kind:hook_managed_unrun reason 登记 `decision_out_of_set`(属性 -;since 7.133.0 —— 早于本版,只是登记)"
310
+ },
311
+ {
312
+ "id": "L5",
313
+ "source": "selfMinted.hookManagedUnrunReason",
314
+ "member": "evidence_unavailable",
315
+ "text": "自铸 fleet stream hook_notice kind:hook_managed_unrun reason 登记 `evidence_unavailable`(属性 -;since 7.133.0 —— 早于本版,只是登记)"
316
+ },
317
+ {
318
+ "id": "L6",
319
+ "source": "selfMinted.hookManagedUnrunReason",
320
+ "member": "exit_nonzero",
321
+ "text": "自铸 fleet stream hook_notice kind:hook_managed_unrun reason 登记 `exit_nonzero`(属性 -;since 7.133.0 —— 早于本版,只是登记)"
322
+ },
323
+ {
324
+ "id": "L7",
325
+ "source": "selfMinted.hookManagedUnrunReason",
326
+ "member": "if_unevaluable",
327
+ "text": "自铸 fleet stream hook_notice kind:hook_managed_unrun reason 登记 `if_unevaluable`(属性 -;since 7.133.0 —— 早于本版,只是登记)"
328
+ },
329
+ {
330
+ "id": "L8",
331
+ "source": "selfMinted.hookManagedUnrunReason",
332
+ "member": "llm_cap",
333
+ "text": "自铸 fleet stream hook_notice kind:hook_managed_unrun reason 登记 `llm_cap`(属性 -;since 7.133.0 —— 早于本版,只是登记)"
334
+ },
335
+ {
336
+ "id": "L9",
337
+ "source": "selfMinted.hookManagedUnrunReason",
338
+ "member": "llm_carrier_unavailable",
339
+ "text": "自铸 fleet stream hook_notice kind:hook_managed_unrun reason 登记 `llm_carrier_unavailable`(属性 -;since 7.133.0 —— 早于本版,只是登记)"
340
+ },
341
+ {
342
+ "id": "L10",
343
+ "source": "selfMinted.hookManagedUnrunReason",
344
+ "member": "matcher_invalid",
345
+ "text": "自铸 fleet stream hook_notice kind:hook_managed_unrun reason 登记 `matcher_invalid`(属性 -;since 7.133.0 —— 早于本版,只是登记)"
346
+ },
347
+ {
348
+ "id": "L11",
349
+ "source": "selfMinted.hookManagedUnrunReason",
350
+ "member": "powershell_unsupported",
351
+ "text": "自铸 fleet stream hook_notice kind:hook_managed_unrun reason 登记 `powershell_unsupported`(属性 -;since 7.133.0 —— 早于本版,只是登记)"
352
+ },
353
+ {
354
+ "id": "L12",
355
+ "source": "selfMinted.hookManagedUnrunReason",
356
+ "member": "rewrite_unsettled",
357
+ "text": "自铸 fleet stream hook_notice kind:hook_managed_unrun reason 登记 `rewrite_unsettled`(属性 -;since 7.133.0 —— 早于本版,只是登记)"
358
+ },
359
+ {
360
+ "id": "L13",
361
+ "source": "selfMinted.hookManagedUnrunReason",
362
+ "member": "spawn_failed",
363
+ "text": "自铸 fleet stream hook_notice kind:hook_managed_unrun reason 登记 `spawn_failed`(属性 -;since 7.133.0 —— 早于本版,只是登记)"
364
+ },
365
+ {
366
+ "id": "L14",
367
+ "source": "selfMinted.hookManagedUnrunReason",
368
+ "member": "timeout",
369
+ "text": "自铸 fleet stream hook_notice kind:hook_managed_unrun reason 登记 `timeout`(属性 -;since 7.133.0 —— 早于本版,只是登记)"
370
+ },
371
+ {
372
+ "id": "L15",
373
+ "source": "selfMinted.hookNonBlockingFailureReason",
374
+ "member": "bad_json",
375
+ "text": "自铸 fleet stream hook_notice kind:hook_non_blocking_failure reason 登记 `bad_json`(属性 -;since 7.48.0 —— 早于本版,只是登记)"
376
+ },
377
+ {
378
+ "id": "L16",
379
+ "source": "selfMinted.hookNonBlockingFailureReason",
380
+ "member": "exit_nonzero",
381
+ "text": "自铸 fleet stream hook_notice kind:hook_non_blocking_failure reason 登记 `exit_nonzero`(属性 -;since 7.48.0 —— 早于本版,只是登记)"
382
+ },
383
+ {
384
+ "id": "L17",
385
+ "source": "selfMinted.hookNonBlockingFailureReason",
386
+ "member": "matcher_over_budget",
387
+ "text": "自铸 fleet stream hook_notice kind:hook_non_blocking_failure reason 登记 `matcher_over_budget`(属性 -;since 7.133.0 —— 早于本版,只是登记)"
388
+ },
389
+ {
390
+ "id": "L18",
391
+ "source": "selfMinted.hookNonBlockingFailureReason",
392
+ "member": "spawn_failed",
393
+ "text": "自铸 fleet stream hook_notice kind:hook_non_blocking_failure reason 登记 `spawn_failed`(属性 -;since 7.48.0 —— 早于本版,只是登记)"
394
+ },
395
+ {
396
+ "id": "L19",
397
+ "source": "selfMinted.hookNonBlockingFailureReason",
398
+ "member": "timeout",
399
+ "text": "自铸 fleet stream hook_notice kind:hook_non_blocking_failure reason 登记 `timeout`(属性 -;since 7.48.0 —— 早于本版,只是登记)"
400
+ }
401
+ ],
402
+ "excluded": [],
403
+ "removed": [
404
+ {
405
+ "id": "R1",
406
+ "source": "selfMinted.submitIdempotency",
407
+ "member": "POST /v1/tasks|/v1/tasks/stream#replay_run_read_face(同键重放的体 = GET /v1/runs/:id 的读面 + replay: true:result 是对象,外加 status / errorCode / heldBy 等读面键)",
408
+ "text": "自铸 提交幂等(<端点>#<面> → 应答状态) 于本版退役 `POST /v1/tasks|/v1/tasks/stream#replay_run_read_face(同键重放的体 = GET /v1/runs/:id 的读面 + replay: true:result 是对象,外加 status / errorCode / heldBy 等读面键)`(原属性 200;自 7.125.0 起在 wire 上,until 7.142.0 = 本版)"
409
+ }
410
+ ],
411
+ "changed": [],
412
+ "narrowed": [],
413
+ "closedSetMembers": [
414
+ {
415
+ "set": "errorCode",
416
+ "at": [
417
+ "docs/ASSISTANT-WIRE-CONTRACT.md#A.1",
418
+ "docs/ASSISTANT-WIRE-CONTRACT.md#A.1b"
419
+ ],
420
+ "added": [
421
+ "attachment.bound_elsewhere",
422
+ "attachment.bundle_invalid",
423
+ "attachment.bundle_lane_not_isolated",
424
+ "attachment.bundle_seed_fixed",
425
+ "config.memory_sync_target_mismatch",
426
+ "conflict.session_memory_unobserved",
427
+ "feature.memory_sync_disabled",
428
+ "feature.memory_sync_serve_disabled"
429
+ ],
430
+ "registered": [],
431
+ "removed": [],
432
+ "breaking": false
433
+ },
434
+ {
435
+ "set": "capability",
436
+ "at": [
437
+ "docs/ASSISTANT-WIRE-CONTRACT.md#B.1"
438
+ ],
439
+ "added": [
440
+ "memoryExport",
441
+ "memorySyncServe",
442
+ "sessionMemorySync"
443
+ ],
444
+ "registered": [],
445
+ "removed": [],
446
+ "breaking": false
447
+ },
448
+ {
449
+ "set": "capabilityMember",
450
+ "at": [
451
+ "docs/ASSISTANT-WIRE-CONTRACT.md#B.1a",
452
+ "docs/ASSISTANT-WIRE-CONTRACT.md#B.2b"
453
+ ],
454
+ "added": [
455
+ "memorySyncServe.identity"
456
+ ],
457
+ "registered": [],
458
+ "removed": [],
459
+ "breaking": false
460
+ },
461
+ {
462
+ "set": "taskSettings",
463
+ "at": [
464
+ "docs/ASSISTANT-WIRE-CONTRACT.md#B.2"
465
+ ],
466
+ "added": [
467
+ "httpHookAllowlists"
468
+ ],
469
+ "registered": [],
470
+ "removed": [],
471
+ "breaking": false
472
+ },
473
+ {
474
+ "set": "selfMinted.configCatalogRow",
475
+ "at": [
476
+ "src/trace/self-minted-wire.ts#configCatalogRow"
477
+ ],
478
+ "added": [
479
+ "MEMORY_SYNC_SERVE_IDENTITY"
480
+ ],
481
+ "registered": [],
482
+ "removed": [],
483
+ "breaking": false
484
+ },
485
+ {
486
+ "set": "selfMinted.endpointFaceStatus",
487
+ "at": [
488
+ "src/trace/self-minted-wire.ts#endpointFaceStatus"
489
+ ],
490
+ "added": [
491
+ "POST /v1/memory/sync/:scope#identity_undeclared(DB 记忆平面没声明 MEMORY_SYNC_SERVE_IDENTITY;鉴权之后;体 feature.memory_sync_serve_disabled)",
492
+ "POST /v1/memory/sync/:scope#peer_not_declared_identity(peer 不是同步身份的规范形 / 带凭据 / 非 http(s) / 超宽 / 空串;体 request.field_invalid + field peer + reason)",
493
+ "POST /v1/memory/sync/:scope#peer_not_this_center(peer 是规范形但不等于本中心声明的身份;零读零写;体 config.memory_sync_target_mismatch)"
494
+ ],
495
+ "registered": [
496
+ "POST /v1/approvals/:sessionId/decide#parked_principal_lane_not_permitted(停驻赎回;卡的主体此刻不被许可本部署的执行车道;approve 与 deny 同答;认领之前,停驻行不动、卡仍待决;体 resume_blocked_by_policy + blockedBy execution_lane_not_allowed + allowedLanes + lane + retriable)"
497
+ ],
498
+ "removed": [],
499
+ "breaking": false
500
+ },
501
+ {
502
+ "set": "selfMinted.hookManagedUnrunReason",
503
+ "at": [
504
+ "src/trace/self-minted-wire.ts#hookManagedUnrunReason"
505
+ ],
506
+ "added": [
507
+ "url_not_allowed"
508
+ ],
509
+ "registered": [
510
+ "bad_json",
511
+ "budget_exhausted",
512
+ "decision_out_of_set",
513
+ "evidence_unavailable",
514
+ "exit_nonzero",
515
+ "if_unevaluable",
516
+ "llm_cap",
517
+ "llm_carrier_unavailable",
518
+ "matcher_invalid",
519
+ "powershell_unsupported",
520
+ "rewrite_unsettled",
521
+ "spawn_failed",
522
+ "timeout"
523
+ ],
524
+ "removed": [],
525
+ "breaking": false
526
+ },
527
+ {
528
+ "set": "selfMinted.hookNonBlockingFailureReason",
529
+ "at": [
530
+ "src/trace/self-minted-wire.ts#hookNonBlockingFailureReason"
531
+ ],
532
+ "added": [
533
+ "url_not_allowed"
534
+ ],
535
+ "registered": [
536
+ "bad_json",
537
+ "exit_nonzero",
538
+ "matcher_over_budget",
539
+ "spawn_failed",
540
+ "timeout"
541
+ ],
542
+ "removed": [],
543
+ "breaking": false
544
+ },
545
+ {
546
+ "set": "selfMinted.memorySyncIdentityFlaw",
547
+ "at": [
548
+ "src/trace/self-minted-wire.ts#memorySyncIdentityFlaw"
549
+ ],
550
+ "added": [
551
+ "credential",
552
+ "fragment",
553
+ "not-canonical",
554
+ "not-http-url",
555
+ "query",
556
+ "too-long",
557
+ "userinfo"
558
+ ],
559
+ "registered": [],
560
+ "removed": [],
561
+ "breaking": false
562
+ },
563
+ {
564
+ "set": "selfMinted.projectBundleInvalidReason",
565
+ "at": [
566
+ "src/trace/self-minted-wire.ts#projectBundleInvalidReason"
567
+ ],
568
+ "added": [
569
+ "duplicate_path",
570
+ "entry_type",
571
+ "expanded_too_large",
572
+ "not_archive",
573
+ "reserved_path",
574
+ "too_many_entries",
575
+ "unsafe_path"
576
+ ],
577
+ "registered": [],
578
+ "removed": [],
579
+ "breaking": false
580
+ },
581
+ {
582
+ "set": "selfMinted.sessionMemorySyncWire",
583
+ "at": [
584
+ "src/trace/self-minted-wire.ts#sessionMemorySyncWire"
585
+ ],
586
+ "added": [
587
+ "200#layers",
588
+ "200#refused",
589
+ "200#scopes",
590
+ "200#sourceRevision",
591
+ "200#target",
592
+ "409 conflict.session_memory_unobserved#activeTaskId",
593
+ "body#target"
594
+ ],
595
+ "registered": [],
596
+ "removed": [],
597
+ "breaking": false
598
+ },
599
+ {
600
+ "set": "selfMinted.sessionsListRowKey",
601
+ "at": [
602
+ "src/trace/self-minted-wire.ts#sessionsListRowKey"
603
+ ],
604
+ "added": [
605
+ "unreadable"
606
+ ],
607
+ "registered": [],
608
+ "removed": [],
609
+ "breaking": false
610
+ },
611
+ {
612
+ "set": "selfMinted.sessionsListRowUnreadableKey",
613
+ "at": [
614
+ "src/trace/self-minted-wire.ts#sessionsListRowUnreadableKey"
615
+ ],
616
+ "added": [
617
+ "errorCode"
618
+ ],
619
+ "registered": [],
620
+ "removed": [],
621
+ "breaking": false
622
+ },
623
+ {
624
+ "set": "selfMinted.submitIdempotency",
625
+ "at": [
626
+ "src/trace/self-minted-wire.ts#submitIdempotency"
627
+ ],
628
+ "added": [
629
+ "POST /v1/tasks|/v1/tasks/stream#replay_first_answer_envelope(同键重放的体 = 首答的信封 + replay: true:终局 = 引擎结果(result 是串),停驻 = 结果 + 回执三键,行还在跑 = 回执三键;流式腿放进 done.result)"
630
+ ],
631
+ "registered": [],
632
+ "removed": [
633
+ "POST /v1/tasks|/v1/tasks/stream#replay_run_read_face(同键重放的体 = GET /v1/runs/:id 的读面 + replay: true:result 是对象,外加 status / errorCode / heldBy 等读面键)"
634
+ ],
635
+ "breaking": true
636
+ }
637
+ ],
638
+ "breaking": 1
639
+ }