@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.
- package/MIGRATION.md +457 -7
- package/README.md +7 -4
- package/README.zh-CN.md +6 -4
- package/USAGE.md +91 -41
- package/deploy/sema-up/README.md +1 -1
- package/deploy/sema-up/lib/lanes.json +3 -2
- package/dist/adoption/runner.js +1 -1
- package/dist/adoption/sql.js +1 -1
- package/dist/adoption/wire.d.ts +3 -3
- package/dist/approval-card.d.ts +26 -26
- package/dist/bench/s1/arms.d.ts +1 -1
- package/dist/bench/s1/arms.js +1 -3
- package/dist/bench/s1/live-deps.js +3 -2
- package/dist/bench/s1/row.d.ts +5 -2
- package/dist/bench/s1/row.js +2 -22
- package/dist/bench/s1/run-firm.js +2 -2
- package/dist/boot/adoption.js +1 -1
- package/dist/boot/device-lane.d.ts +8 -3
- package/dist/boot/device-lane.js +7 -2
- package/dist/boot/execution-env.d.ts +4 -2
- package/dist/boot/execution-env.js +28 -34
- package/dist/boot/execution-lane.d.ts +9 -1
- package/dist/boot/execution-lane.js +6 -1
- package/dist/boot/governance-seams.d.ts +3 -2
- package/dist/boot/governance-seams.js +9 -11
- package/dist/boot/memory-boundary.d.ts +14 -51
- package/dist/boot/memory-boundary.js +10 -20
- package/dist/boot/memory-consolidation.d.ts +15 -11
- package/dist/boot/memory-consolidation.js +25 -14
- package/dist/boot/resolve-spec.d.ts +4 -6
- package/dist/boot/resolve-spec.js +10 -13
- package/dist/boot/retention-lane.d.ts +5 -5
- package/dist/boot/retention-lane.js +0 -6
- package/dist/boot/runner-deps.d.ts +6 -4
- package/dist/boot/runner-deps.js +3 -1
- package/dist/boot/session-faces.d.ts +0 -3
- package/dist/boot/session-faces.js +15 -8
- package/dist/boot/stage-02-web-admin-pull.js +2 -2
- package/dist/boot/stage-03-store-backend.d.ts +2 -6
- package/dist/boot/stage-03-store-backend.js +2 -3
- package/dist/boot/stage-04-stores.d.ts +2 -6
- package/dist/boot/stage-04-stores.js +5 -5
- package/dist/boot/stage-05-execution-env.d.ts +2 -6
- package/dist/boot/stage-05-execution-env.js +2 -2
- package/dist/boot/stage-06-runners.d.ts +2 -6
- package/dist/boot/stage-06-runners.js +2 -3
- package/dist/boot/stage-07-capability-layer.d.ts +2 -6
- package/dist/boot/stage-08-reapers.d.ts +2 -6
- package/dist/boot/stage-09-leader.d.ts +2 -6
- package/dist/boot/stage-09-leader.js +1 -2
- package/dist/boot/stage-10-http-server.d.ts +2 -6
- package/dist/boot/stage-10-http-server.js +7 -6
- package/dist/boot/stores.d.ts +3 -6
- package/dist/boot/stores.js +27 -40
- package/dist/boot/task-list-lane.d.ts +1 -1
- package/dist/boot/task-list-lane.js +1 -1
- package/dist/boot/web-admin.js +37 -11
- package/dist/capabilities/execution-lane.d.ts +2 -2
- package/dist/capabilities/mcp-probe.js +1 -1
- package/dist/capabilities/scenarios.d.ts +1 -1
- package/dist/capability-facts.d.ts +15 -7
- package/dist/capability-facts.js +8 -3
- package/dist/config-catalog.js +9 -8
- package/dist/config-invariants.d.ts +23 -3
- package/dist/config-invariants.js +42 -0
- package/dist/config-provider.d.ts +33 -37
- package/dist/config-provider.js +51 -30
- package/dist/config-types.d.ts +21 -7
- package/dist/config.d.ts +33 -0
- package/dist/config.js +46 -16
- package/dist/delegated-session-owner.d.ts +4 -3
- package/dist/delegated-session-owner.js +1 -1
- package/dist/deployment-shape.d.ts +10 -9
- package/dist/deployment-shape.js +4 -4
- package/dist/device-enrollment.d.ts +41 -2
- package/dist/device-enrollment.js +27 -12
- package/dist/device-store.d.ts +58 -85
- package/dist/device-store.js +19 -49
- package/dist/device-ws-hub.js +2 -1
- package/dist/env-name-allowlist-knobs.d.ts +5 -4
- package/dist/exec-cut.d.ts +60 -0
- package/dist/exec-cut.js +36 -0
- package/dist/execution-lane-caps.d.ts +115 -105
- package/dist/execution-lane-caps.js +76 -82
- package/dist/execution-placement.d.ts +259 -0
- package/dist/execution-placement.js +199 -0
- package/dist/field-conflict.d.ts +3 -2
- package/dist/field-conflict.js +1 -0
- package/dist/hosted-posture.d.ts +2 -2
- package/dist/http/admission.js +8 -19
- package/dist/http/checkpoint-ctx.d.ts +21 -12
- package/dist/http/checkpoint-ctx.js +4 -2
- package/dist/http/claimed-run.d.ts +1 -1
- package/dist/http/durable-run-leg.js +9 -5
- package/dist/http/execution-context.d.ts +218 -0
- package/dist/http/execution-context.js +330 -0
- package/dist/http/memory-compliance-failure-reply.d.ts +3 -1
- package/dist/http/memory-compliance-failure-reply.js +5 -0
- package/dist/http/memory-layer-reply.d.ts +30 -0
- package/dist/http/memory-layer-reply.js +24 -0
- package/dist/http/resume-legs.js +63 -36
- package/dist/http/retired-service-deps.d.ts +1 -1
- package/dist/http/retired-service-deps.js +1 -1
- package/dist/http/route-ctx.d.ts +14 -8
- package/dist/http/routes/adoption.js +1 -1
- package/dist/http/routes/background.d.ts +29 -1
- package/dist/http/routes/background.js +29 -2
- package/dist/http/routes/devices.d.ts +13 -19
- package/dist/http/routes/devices.js +21 -26
- package/dist/http/routes/memory-bundle.js +3 -0
- package/dist/http/routes/memory-compliance.js +8 -1
- package/dist/http/routes/memory-consolidation.js +12 -1
- package/dist/http/routes/memory-origin.js +14 -2
- package/dist/http/routes/memory-policy.js +5 -0
- package/dist/http/routes/session-sync.js +110 -15
- package/dist/http/routes/sessions.d.ts +6 -0
- package/dist/http/routes/sessions.js +143 -22
- package/dist/http/routes/side-query.d.ts +12 -4
- package/dist/http/routes/side-query.js +4 -5
- package/dist/http/routes/tasks.js +41 -33
- package/dist/http/server.d.ts +40 -44
- package/dist/http/server.js +13 -2
- package/dist/http/session-inherit-env.d.ts +3 -4
- package/dist/http/session-inherit-env.js +1 -1
- package/dist/http/wire-types.d.ts +8 -12
- package/dist/identity-source.d.ts +1 -1
- package/dist/identity-source.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/lane-home-probe.d.ts +68 -42
- package/dist/lane-home-probe.js +53 -30
- package/dist/leader/wire.js +5 -4
- package/dist/memory-bundle-engine.d.ts +16 -9
- package/dist/memory-bundle-engine.js +29 -6
- package/dist/memory-operator-faces.d.ts +85 -30
- package/dist/memory-operator-faces.js +136 -30
- package/dist/memory-project-layer.d.ts +3 -21
- package/dist/memory-project-layer.js +11 -8
- package/dist/memory-scope-stores.d.ts +73 -0
- package/dist/memory-scope-stores.js +86 -0
- package/dist/memory-scope.d.ts +29 -5
- package/dist/memory-scope.js +16 -4
- package/dist/memory-sync-client.d.ts +70 -18
- package/dist/memory-sync-client.js +215 -117
- package/dist/memory-sync.d.ts +1 -1
- package/dist/memory-sync.js +3 -2
- package/dist/observability/cost-taxonomy.d.ts +2 -2
- package/dist/observability/fail-open.d.ts +12 -0
- package/dist/observability/fail-open.js +12 -0
- package/dist/observability/run-terminal.js +0 -1
- package/dist/orchestration/workflow-notify-journal.js +4 -4
- package/dist/org-memory-admission.d.ts +4 -3
- package/dist/org-memory-admission.js +6 -6
- package/dist/parked-decide.d.ts +34 -9
- package/dist/parked-decide.js +12 -19
- package/dist/parked-revive-surface.d.ts +12 -15
- package/dist/parked-revive-surface.js +3 -6
- package/dist/peer-seat.d.ts +13 -7
- package/dist/peer-seat.js +37 -3
- package/dist/plugins/adoption-log-sql.js +4 -4
- package/dist/plugins/approval-ask-store-file.d.ts +7 -0
- package/dist/plugins/approval-ask-store-file.js +11 -0
- package/dist/plugins/approval-ask-store-memory.d.ts +6 -0
- package/dist/plugins/approval-ask-store-memory.js +12 -0
- package/dist/plugins/approval-ask-store-sql.d.ts +22 -5
- package/dist/plugins/approval-ask-store-sql.js +44 -26
- package/dist/plugins/approval-nonce-store.js +4 -4
- package/dist/plugins/blob-backend.d.ts +4 -4
- package/dist/plugins/blob-backend.js +7 -7
- package/dist/plugins/breaker-state-sql.js +2 -2
- package/dist/plugins/caching-session-store.d.ts +6 -2
- package/dist/plugins/caching-session-store.js +9 -3
- package/dist/plugins/checkpoint-index-columns.js +2 -2
- package/dist/plugins/checkpoint-store-sql.d.ts +6 -5
- package/dist/plugins/checkpoint-store-sql.js +21 -23
- package/dist/plugins/device-store-sql.d.ts +25 -51
- package/dist/plugins/device-store-sql.js +68 -122
- package/dist/plugins/ensure-index.d.ts +1 -2
- package/dist/plugins/execution-placement-sql.d.ts +151 -0
- package/dist/plugins/execution-placement-sql.js +223 -0
- package/dist/plugins/file-history-store-sql.d.ts +9 -8
- package/dist/plugins/file-history-store-sql.js +9 -9
- package/dist/plugins/file-run-store.d.ts +6 -1
- package/dist/plugins/file-run-store.js +4 -0
- package/dist/plugins/fork-routing-session-store.d.ts +6 -0
- package/dist/plugins/fork-routing-session-store.js +16 -0
- package/dist/plugins/image-bake-store-sql.js +9 -9
- package/dist/plugins/image-index-sql.js +11 -11
- package/dist/plugins/leader-run-store-sql.js +4 -4
- package/dist/plugins/local-session-store.d.ts +149 -50
- package/dist/plugins/local-session-store.js +382 -107
- package/dist/plugins/mailbox-store-sql.d.ts +2 -1
- package/dist/plugins/mailbox-store-sql.js +4 -4
- package/dist/plugins/memory-engine-tidb.js +5 -5
- package/dist/plugins/memory-key-guards.d.ts +4 -0
- package/dist/plugins/memory-key-guards.js +1 -0
- package/dist/plugins/memory-optout-grant-store-sql.js +1 -1
- package/dist/plugins/memory-run-store.d.ts +1 -1
- package/dist/plugins/memory-sync-store-tidb.js +3 -3
- package/dist/plugins/one-time-migrations.d.ts +117 -8
- package/dist/plugins/one-time-migrations.js +408 -38
- package/dist/plugins/org-delivery-quota-store.js +2 -2
- package/dist/plugins/outcome-ledger-sql.d.ts +2 -2
- package/dist/plugins/outcome-ledger-sql.js +2 -2
- package/dist/plugins/permission-rule-store-sql.d.ts +17 -19
- package/dist/plugins/permission-rule-store-sql.js +29 -32
- package/dist/plugins/pg-pool.d.ts +7 -3
- package/dist/plugins/pg-session-storage.d.ts +31 -20
- package/dist/plugins/pg-session-storage.js +120 -52
- package/dist/plugins/remote-env-adb.d.ts +18 -19
- package/dist/plugins/remote-env-adb.js +91 -66
- package/dist/plugins/remote-env-device.d.ts +23 -31
- package/dist/plugins/remote-env-device.js +19 -17
- package/dist/plugins/remote-env-e2b.d.ts +27 -21
- package/dist/plugins/remote-env-e2b.js +91 -45
- package/dist/plugins/remote-env-file-error.d.ts +3 -1
- package/dist/plugins/remote-env-file-error.js +9 -3
- package/dist/plugins/remote-env-host.d.ts +31 -34
- package/dist/plugins/remote-env-host.js +91 -72
- package/dist/plugins/remote-env-k8s.d.ts +13 -29
- package/dist/plugins/remote-env-k8s.js +63 -55
- package/dist/plugins/remote-env-local-docker.d.ts +24 -12
- package/dist/plugins/remote-env-local-docker.js +49 -61
- package/dist/plugins/remote-env-ssh.d.ts +11 -19
- package/dist/plugins/remote-env-ssh.js +74 -57
- package/dist/plugins/remote-shell.d.ts +100 -3
- package/dist/plugins/remote-shell.js +166 -2
- package/dist/plugins/resume-anchor-store-sql.js +2 -2
- package/dist/plugins/retention-lane-store-sql.d.ts +1 -1
- package/dist/plugins/retention-lane-store-sql.js +2 -2
- package/dist/plugins/retention-store-sql.d.ts +10 -7
- package/dist/plugins/retention-store-sql.js +13 -7
- package/dist/plugins/run-store-sql.d.ts +13 -3
- package/dist/plugins/run-store-sql.js +20 -15
- package/dist/plugins/schema-consistency.d.ts +21 -11
- package/dist/plugins/schema-consistency.js +15 -9
- package/dist/plugins/schema-drift-sentence.d.ts +27 -0
- package/dist/plugins/schema-drift-sentence.js +38 -0
- package/dist/plugins/schema-ensure-legs.d.ts +2 -3
- package/dist/plugins/schema-ensure-legs.js +2 -2
- package/dist/plugins/schema-live-columns.d.ts +1 -1
- package/dist/plugins/session-capture-record-store-sql.js +1 -1
- package/dist/plugins/session-fork.d.ts +54 -0
- package/dist/plugins/session-fork.js +38 -1
- package/dist/plugins/session-row-sql.d.ts +22 -0
- package/dist/plugins/session-row-sql.js +81 -0
- package/dist/plugins/session-rules-column.d.ts +1 -1
- package/dist/plugins/session-rules-column.js +1 -1
- package/dist/plugins/session-store.d.ts +1 -1
- package/dist/plugins/session-workspace-cell.d.ts +1 -1
- package/dist/plugins/session-workspace-cell.js +1 -1
- package/dist/plugins/shared-memory-store-sql.js +2 -2
- package/dist/plugins/sql-driver.d.ts +10 -5
- package/dist/plugins/sql-driver.js +6 -6
- package/dist/plugins/sql-errors.js +1 -1
- package/dist/plugins/store-backend.d.ts +5 -7
- package/dist/plugins/store-backend.js +23 -11
- package/dist/plugins/store-contracts.d.ts +25 -5
- package/dist/plugins/task-list-store-sql.js +11 -11
- package/dist/plugins/tidb-pool.d.ts +12 -7
- package/dist/plugins/tidb-pool.js +13 -7
- package/dist/plugins/tidb-session-storage.js +4 -4
- package/dist/plugins/tidb-session-store.d.ts +57 -26
- package/dist/plugins/tidb-session-store.js +127 -59
- package/dist/plugins/tool-result-store-sql.d.ts +5 -4
- package/dist/plugins/tool-result-store-sql.js +21 -13
- package/dist/plugins/user-input-ledger-sql.js +2 -2
- package/dist/plugins/workflow-journal-store-sql.js +5 -5
- package/dist/plugins/workflow-run-store-sql.js +19 -19
- package/dist/plugins/write-behind-counter.d.ts +2 -3
- package/dist/plugins/write-behind-counter.js +5 -5
- package/dist/project-memory.d.ts +9 -15
- package/dist/project-memory.js +5 -4
- package/dist/request-key-closure.js +1 -1
- package/dist/request-value-closure.d.ts +6 -7
- package/dist/request-value-closure.js +1 -3
- package/dist/resource-suspend.d.ts +14 -12
- package/dist/resource-suspend.js +1 -1
- package/dist/resource-window.d.ts +4 -3
- package/dist/run-local.d.ts +6 -0
- package/dist/run-local.js +34 -35
- package/dist/runs.d.ts +10 -5
- package/dist/runs.js +52 -66
- package/dist/security.d.ts +38 -12
- package/dist/security.js +8 -2
- package/dist/server-secret-env.d.ts +9 -5
- package/dist/session-children-retire.d.ts +27 -9
- package/dist/session-children-retire.js +9 -5
- package/dist/session-incarnation.d.ts +20 -10
- package/dist/session-incarnation.js +5 -3
- package/dist/session-policy-wire.d.ts +1 -1
- package/dist/session-row.d.ts +114 -5
- package/dist/session-row.js +55 -5
- package/dist/session-titler.d.ts +2 -2
- package/dist/sql-engine-posture.d.ts +1 -1
- package/dist/sql-engine-posture.js +1 -1
- package/dist/{plugins → stores-sql}/background-agent-store-sql.d.ts +2 -2
- package/dist/{plugins → stores-sql}/background-agent-store-sql.js +8 -8
- package/dist/{plugins → stores-sql}/session-policy-store-sql.d.ts +7 -5
- package/dist/{plugins → stores-sql}/session-policy-store-sql.js +12 -12
- package/dist/{plugins → stores-sql}/usage-window-store-sql.d.ts +1 -1
- package/dist/{plugins → stores-sql}/usage-window-store-sql.js +3 -3
- package/dist/task-a2a.d.ts +1 -1
- package/dist/task-a2a.js +5 -6
- package/dist/task-cwd.d.ts +6 -1
- package/dist/task-mcp.d.ts +22 -9
- package/dist/task-mcp.js +17 -9
- package/dist/terminal.d.ts +27 -0
- package/dist/terminal.js +6 -0
- package/dist/tool-approval.d.ts +6 -0
- package/dist/tool-approval.js +8 -1
- package/dist/trace/project.d.ts +1 -0
- package/dist/trace/project.js +1 -0
- package/dist/trace/redact.d.ts +3 -1
- package/dist/trace/redact.js +80 -28
- package/dist/trace/self-minted-wire.d.ts +169 -2
- package/dist/trace/self-minted-wire.js +54 -1
- package/dist/url-refusal.d.ts +1 -1
- package/dist/web-admin-client/apply-effective.d.ts +17 -3
- package/dist/web-admin-client/apply-effective.js +20 -10
- package/dist/web-admin-client/candidate-gate.d.ts +11 -7
- package/dist/web-admin-client/candidate-gate.js +1 -1
- package/dist/web-admin-client/http-client.d.ts +5 -4
- package/dist/web-admin-client/http-client.js +2 -2
- package/dist/web-admin-client/read-warnings.d.ts +7 -17
- package/dist/web-admin-client/read-warnings.js +5 -9
- package/dist/web-admin-client/skills-mcp.js +3 -2
- package/dist/web-admin-client/types.d.ts +6 -0
- package/package.json +3 -3
- package/wire-changes/server@7.139.0.json +348 -0
- package/wire-changes/server@7.140.0.json +184 -0
- package/dist/http/device-placement.d.ts +0 -175
- package/dist/http/device-placement.js +0 -145
|
@@ -1,26 +1,22 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { DROPPED_ENTRY_REASON_CODES, ModelRole, RETIRED_DOMAINS, RetiredDomainError, formatConfigPath, isDisclosableIdentity, isRetiredDomainName, refuseRetiredDomain, renderQuotedSentence, } from "@sema-agent/settings-schema";
|
|
3
|
-
export function retiredDomainFindingOf(e) {
|
|
4
|
-
return e instanceof RetiredDomainError ? { domain: e.domain, error: e.message, migration: e.migration } : undefined;
|
|
5
|
-
}
|
|
6
3
|
export function separateRetiredDomains(body) {
|
|
7
4
|
if (body === null || typeof body !== "object" || Array.isArray(body))
|
|
8
|
-
return { body,
|
|
9
|
-
const
|
|
5
|
+
return { body, refusedDocuments: [] };
|
|
6
|
+
const refused = [];
|
|
10
7
|
const rest = { ...body };
|
|
11
8
|
for (const domain of Object.keys(RETIRED_DOMAINS).filter(isRetiredDomainName)) {
|
|
12
9
|
try {
|
|
13
10
|
refuseRetiredDomain(domain, rest[domain]);
|
|
14
11
|
}
|
|
15
12
|
catch (e) {
|
|
16
|
-
|
|
17
|
-
if (finding === undefined)
|
|
13
|
+
if (!(e instanceof RetiredDomainError))
|
|
18
14
|
throw e;
|
|
19
|
-
|
|
15
|
+
refused.push({ document: e.domain, reason: "retired_domain", error: e.message, migration: e.migration });
|
|
20
16
|
delete rest[domain];
|
|
21
17
|
}
|
|
22
18
|
}
|
|
23
|
-
return
|
|
19
|
+
return refused.length === 0 ? { body, refusedDocuments: [] } : { body: rest, refusedDocuments: refused };
|
|
24
20
|
}
|
|
25
21
|
export function buildUnreadConfigKeyFields(k, dir) {
|
|
26
22
|
return {
|
|
@@ -174,12 +174,13 @@ export function resolveMcpServers(mcp, desk, rosterLease, logger) {
|
|
|
174
174
|
continue;
|
|
175
175
|
}
|
|
176
176
|
const sessionMetaKey = metaKey.key === undefined ? {} : { sessionMetaKey: metaKey.key };
|
|
177
|
+
const startupTimeout = s.startupTimeoutMs === undefined ? {} : { startupTimeoutMs: s.startupTimeoutMs };
|
|
177
178
|
if (s.transport.kind === "stdio") {
|
|
178
179
|
const env = resolveRefs(s.transport.envRefs, s.name, "env", logger);
|
|
179
180
|
if (env === null)
|
|
180
181
|
continue;
|
|
181
182
|
const draft = {
|
|
182
|
-
spec: { name: s.name, transport: { kind: "stdio", command: s.transport.command, args: s.transport.args }, ...allow, ...elicit, ...contentOrigin, ...source, ...toolFaces, ...toolAxes, ...sessionMetaKey },
|
|
183
|
+
spec: { name: s.name, transport: { kind: "stdio", command: s.transport.command, args: s.transport.args }, ...allow, ...elicit, ...contentOrigin, ...source, ...toolFaces, ...toolAxes, ...sessionMetaKey, ...startupTimeout },
|
|
183
184
|
pieces: env,
|
|
184
185
|
};
|
|
185
186
|
out.push({ scenarios: s.scenarios ?? [], spec: mintDeclaration(desk, draft, rosterLease) });
|
|
@@ -191,7 +192,7 @@ export function resolveMcpServers(mcp, desk, rosterLease, logger) {
|
|
|
191
192
|
if (withholdsMcpAssertionHeader(s.transport.assertionHeader))
|
|
192
193
|
noteMcpAssertionHeaderNotSent(logger, s.name);
|
|
193
194
|
const draft = {
|
|
194
|
-
spec: { name: s.name, transport: { kind: "http", url: s.transport.url, ...(s.transport.principalHeader ? { principalHeader: s.transport.principalHeader } : {}) }, ...allow, ...elicit, ...contentOrigin, ...source, ...toolFaces, ...toolAxes, ...sessionMetaKey },
|
|
195
|
+
spec: { name: s.name, transport: { kind: "http", url: s.transport.url, ...(s.transport.principalHeader ? { principalHeader: s.transport.principalHeader } : {}) }, ...allow, ...elicit, ...contentOrigin, ...source, ...toolFaces, ...toolAxes, ...sessionMetaKey, ...startupTimeout },
|
|
195
196
|
pieces: headers,
|
|
196
197
|
};
|
|
197
198
|
out.push({ scenarios: s.scenarios ?? [], spec: mintDeclaration(desk, draft, rosterLease) });
|
|
@@ -175,6 +175,12 @@ export interface CenterMcpServer {
|
|
|
175
175
|
* 承载形 `unknown`(与 {@link CenterMcpServer.toolAxes} 同姿):判官只有引擎根导出的 `judgeSessionMetaKey`(`resolveMcpServers` 在铸 spec 那一刻问它;坏形整条 server 不进)。
|
|
176
176
|
*/
|
|
177
177
|
sessionMetaKey?: unknown;
|
|
178
|
+
/**
|
|
179
|
+
* core 7.52.0 `McpServerSpec.startupTimeoutMs`(settings-schema 14.8.0 起解析透明)—— 这台服务器握手(连接 + initialize)与首次工具列举各带的启动界(整数毫秒),缺席读进程级缺省界;只界启动阶段,不动单次调用的超时。
|
|
180
|
+
* 承载形 `unknown`(与 {@link CenterMcpServer.sessionMetaKey} 同姿):是不是数、整数性、范围只有一只判官 —— 引擎根导出的 `mcpStartupTimeoutMs`,在**拨号时**判,
|
|
181
|
+
* 不合 ⇒ 拒这一台服务器的拨号(兄弟照挂)、点名 `config.mcp_startup_timeout_invalid`;本仓只承运,不判(判了就是第二只判官)。
|
|
182
|
+
*/
|
|
183
|
+
startupTimeoutMs?: unknown;
|
|
178
184
|
transport: {
|
|
179
185
|
kind: "stdio";
|
|
180
186
|
command: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sema-agent/server",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.140.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",
|
|
@@ -69,8 +69,8 @@
|
|
|
69
69
|
"build:binary:run-local:darwin-arm64": "bun build --compile --target=bun-darwin-arm64 src/run-local.ts --outfile dist/run-local-darwin-arm64"
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
|
-
"@sema-agent/core": "7.
|
|
73
|
-
"@sema-agent/settings-schema": "
|
|
72
|
+
"@sema-agent/core": "7.60.0",
|
|
73
|
+
"@sema-agent/settings-schema": "15.2.0",
|
|
74
74
|
"e2b": "^2.28.0",
|
|
75
75
|
"libsodium-wrappers": "^0.8.4",
|
|
76
76
|
"mysql2": "^3.22.4",
|
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
{
|
|
2
|
+
"repo": "server",
|
|
3
|
+
"version": "7.139.0",
|
|
4
|
+
"from": "v7.138.0",
|
|
5
|
+
"fromCommit": "8b41148fef6d0d0c316c0e963efec70714a24e98",
|
|
6
|
+
"to": "v7.139.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": "errorCode",
|
|
24
|
+
"member": "conflict.fork_id_taken",
|
|
25
|
+
"text": "附录 A.1 / A.1b 错误码新增 `conflict.fork_id_taken`(状态码 409)"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "A2",
|
|
29
|
+
"source": "errorCode",
|
|
30
|
+
"member": "conflict.fork_in_progress",
|
|
31
|
+
"text": "附录 A.1 / A.1b 错误码新增 `conflict.fork_in_progress`(状态码 409)"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "A3",
|
|
35
|
+
"source": "errorCode",
|
|
36
|
+
"member": "conflict.session_mirror",
|
|
37
|
+
"text": "附录 A.1 / A.1b 错误码新增 `conflict.session_mirror`(状态码 409)"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "A4",
|
|
41
|
+
"source": "errorCode",
|
|
42
|
+
"member": "conflict.session_row_changed",
|
|
43
|
+
"text": "附录 A.1 / A.1b 错误码新增 `conflict.session_row_changed`(状态码 409)"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "A5",
|
|
47
|
+
"source": "errorCode",
|
|
48
|
+
"member": "conflict.session_writer",
|
|
49
|
+
"text": "附录 A.1 / A.1b 错误码新增 `conflict.session_writer`(状态码 409)"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "A6",
|
|
53
|
+
"source": "errorCode",
|
|
54
|
+
"member": "execution_lane.not_served",
|
|
55
|
+
"text": "附录 A.1 / A.1b 错误码新增 `execution_lane.not_served`(状态码 409)"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"id": "A7",
|
|
59
|
+
"source": "errorCode",
|
|
60
|
+
"member": "execution_lane.tree_bound",
|
|
61
|
+
"text": "附录 A.1 / A.1b 错误码新增 `execution_lane.tree_bound`(状态码 409)"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"id": "A8",
|
|
65
|
+
"source": "errorCode",
|
|
66
|
+
"member": "state.fork_target_unsettled",
|
|
67
|
+
"text": "附录 A.1 / A.1b 错误码新增 `state.fork_target_unsettled`(状态码 503)"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"id": "A9",
|
|
71
|
+
"source": "selfMinted.endpointFaceStatus",
|
|
72
|
+
"member": "PATCH /v1/sessions/:id#expectedRowTag_current(行仍在那只标签上;体 = 列表行)",
|
|
73
|
+
"text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `PATCH /v1/sessions/:id#expectedRowTag_current(行仍在那只标签上;体 = 列表行)`(属性 200;since 7.139.0 = 本版新上 wire)"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"id": "A10",
|
|
77
|
+
"source": "selfMinted.endpointFaceStatus",
|
|
78
|
+
"member": "PATCH /v1/sessions/:id#expectedRowTag_stale(行已不在那只标签上;体 conflict.session_row_changed + currentRow)",
|
|
79
|
+
"text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `PATCH /v1/sessions/:id#expectedRowTag_stale(行已不在那只标签上;体 conflict.session_row_changed + currentRow)`(属性 409;since 7.139.0 = 本版新上 wire)"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "A11",
|
|
83
|
+
"source": "selfMinted.endpointFaceStatus",
|
|
84
|
+
"member": "PATCH /v1/sessions/:id#mirror_row(只读镜像行上的写,带不带 expectedRowTag;体 conflict.session_mirror + forkPath)",
|
|
85
|
+
"text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `PATCH /v1/sessions/:id#mirror_row(只读镜像行上的写,带不带 expectedRowTag;体 conflict.session_mirror + forkPath)`(属性 409;since 7.139.0 = 本版新上 wire)"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"id": "A12",
|
|
89
|
+
"source": "selfMinted.endpointFaceStatus",
|
|
90
|
+
"member": "PATCH /v1/sessions/:id#owner_changed_after_gate(门那一读之后同一会话的属主被改;体 not_found.session)",
|
|
91
|
+
"text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `PATCH /v1/sessions/:id#owner_changed_after_gate(门那一读之后同一会话的属主被改;体 not_found.session)`(属性 404;since 7.139.0 = 本版新上 wire)"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"id": "A13",
|
|
95
|
+
"source": "selfMinted.endpointFaceStatus",
|
|
96
|
+
"member": "POST /v1/side-query#uncoded_error_with_preflight_prefix(没有引擎码、英文开头与前缀表同形的错误;体 internal.error)",
|
|
97
|
+
"text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `POST /v1/side-query#uncoded_error_with_preflight_prefix(没有引擎码、英文开头与前缀表同形的错误;体 internal.error)`(属性 500;since 7.139.0 = 本版新上 wire)"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"id": "A14",
|
|
101
|
+
"source": "selfMinted.endpointFaceStatus",
|
|
102
|
+
"member": "POST /v1/tasks|/v1/tasks/stream|/v1/runs#rewindFiles(新提交;体 request.body_shape + unknownKeys [rewindFiles])",
|
|
103
|
+
"text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `POST /v1/tasks|/v1/tasks/stream|/v1/runs#rewindFiles(新提交;体 request.body_shape + unknownKeys [rewindFiles])`(属性 400;since 7.139.0 = 本版新上 wire)"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"id": "A15",
|
|
107
|
+
"source": "selfMinted.fieldConflictKind",
|
|
108
|
+
"member": "fork_target",
|
|
109
|
+
"text": "自铸 400 request.field_conflict detail.kind 新增 `fork_target`(属性 -;since 7.139.0 = 本版新上 wire)"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"id": "A16",
|
|
113
|
+
"source": "selfMinted.refusalSentenceForm",
|
|
114
|
+
"member": "400 request.body_shape#PATCH /v1/sessions/:id",
|
|
115
|
+
"text": "自铸 拒体 message 的句型(<码>#<座> → 句型骨架;码 / 状态 / 机读位不变) 新增 `400 request.body_shape#PATCH /v1/sessions/:id`(属性 the body must be a JSON object carrying at least one of `title` and `pinned` (and, optionally, `expectedRowTag`), and nothing else;since 7.139.0 = 本版新上 wire)"
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"id": "A17",
|
|
119
|
+
"source": "selfMinted.refusalSentenceForm",
|
|
120
|
+
"member": "400 request.field_invalid#PATCH /v1/sessions/:id.expectedRowTag",
|
|
121
|
+
"text": "自铸 拒体 message 的句型(<码>#<座> → 句型骨架;码 / 状态 / 机读位不变) 新增 `400 request.field_invalid#PATCH /v1/sessions/:id.expectedRowTag`(属性 expectedRowTag must be the `rowTag` string a session list row carries (43 characters: letters, digits, `-` and `_`);since 7.139.0 = 本版新上 wire)"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"id": "A18",
|
|
125
|
+
"source": "selfMinted.refusalSentenceForm",
|
|
126
|
+
"member": "409 conflict.session_mirror#PATCH /v1/sessions/:id",
|
|
127
|
+
"text": "自铸 拒体 message 的句型(<码>#<座> → 句型骨架;码 / 状态 / 机读位不变) 新增 `409 conflict.session_mirror#PATCH /v1/sessions/:id`(属性 this session is a read-only mirror of a session whose writer is elsewhere — it cannot be renamed or pinned here; fork it (forkPath) to continue here; nothing was written;since 7.139.0 = 本版新上 wire)"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"id": "A19",
|
|
131
|
+
"source": "selfMinted.refusalSentenceForm",
|
|
132
|
+
"member": "409 conflict.session_row_changed#PATCH /v1/sessions/:id",
|
|
133
|
+
"text": "自铸 拒体 message 的句型(<码>#<座> → 句型骨架;码 / 状态 / 机读位不变) 新增 `409 conflict.session_row_changed#PATCH /v1/sessions/:id`(属性 the session row changed since the rowTag you sent was read — nothing was written; currentRow is the row as it stands now: decide again, then send its rowTag;since 7.139.0 = 本版新上 wire)"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"id": "A20",
|
|
137
|
+
"source": "selfMinted.sessionBackgroundRowKey",
|
|
138
|
+
"member": "sessionId",
|
|
139
|
+
"text": "自铸 GET /v1/sessions/:id/background rows[] 行键(<键> → 在场律) 新增 `sessionId`(属性 present-iff background agent row bound to a child session;since 7.139.0 = 本版新上 wire)"
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"id": "A21",
|
|
143
|
+
"source": "selfMinted.sessionRowWriteKey",
|
|
144
|
+
"member": "409 conflict.session_mirror#forkPath",
|
|
145
|
+
"text": "自铸 PATCH /v1/sessions/:id 体受理键与 409 拒体键(<面>#<键> → 读法 / 在场律;只登本版新增的) 新增 `409 conflict.session_mirror#forkPath`(属性 always;since 7.139.0 = 本版新上 wire)"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"id": "A22",
|
|
149
|
+
"source": "selfMinted.sessionRowWriteKey",
|
|
150
|
+
"member": "409 conflict.session_row_changed#currentRow",
|
|
151
|
+
"text": "自铸 PATCH /v1/sessions/:id 体受理键与 409 拒体键(<面>#<键> → 读法 / 在场律;只登本版新增的) 新增 `409 conflict.session_row_changed#currentRow`(属性 always;since 7.139.0 = 本版新上 wire)"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"id": "A23",
|
|
155
|
+
"source": "selfMinted.sessionRowWriteKey",
|
|
156
|
+
"member": "body#expectedRowTag",
|
|
157
|
+
"text": "自铸 PATCH /v1/sessions/:id 体受理键与 409 拒体键(<面>#<键> → 读法 / 在场律;只登本版新增的) 新增 `body#expectedRowTag`(属性 optional;43×[A-Za-z0-9_-] else 400 request.field_invalid;alone 400 request.body_shape;stale⇒409 conflict.session_row_changed;since 7.139.0 = 本版新上 wire)"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"id": "A24",
|
|
161
|
+
"source": "selfMinted.sessionsListRowKey",
|
|
162
|
+
"member": "rowTag",
|
|
163
|
+
"text": "自铸 GET /v1/sessions sessions[] 行键 = PATCH /v1/sessions/:id 200 体 = 409 conflict.session_row_changed currentRow(<键> → 在场律) 新增 `rowTag`(属性 present-iff the row can be written conditionally (the store has the row write primitive and the row carries an incarnation);since 7.139.0 = 本版新上 wire)"
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"id": "A25",
|
|
167
|
+
"source": "selfMinted.wireValueRule",
|
|
168
|
+
"member": "GET /v1/config/catalog#rows[CONFIG_PROVIDER].semantics",
|
|
169
|
+
"text": "自铸 出口值变换(<端点>#<键> → 变换) 新增 `GET /v1/config/catalog#rows[CONFIG_PROVIDER].semantics`(属性 remote-without-center-url-refuses-boot;since 7.139.0 = 本版新上 wire)"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"id": "A26",
|
|
173
|
+
"source": "selfMinted.wireValueRule",
|
|
174
|
+
"member": "GET /v1/config/catalog#rows[DOCKER_SANDBOX_ENV].semantics",
|
|
175
|
+
"text": "自铸 出口值变换(<端点>#<键> → 变换) 新增 `GET /v1/config/catalog#rows[DOCKER_SANDBOX_ENV].semantics`(属性 own-credential-name-refuses-boot;since 7.139.0 = 本版新上 wire)"
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"id": "A27",
|
|
179
|
+
"source": "selfMinted.wireValueRule",
|
|
180
|
+
"member": "GET /v1/config/catalog#rows[E2B_SANDBOX_ENV].semantics",
|
|
181
|
+
"text": "自铸 出口值变换(<端点>#<键> → 变换) 新增 `GET /v1/config/catalog#rows[E2B_SANDBOX_ENV].semantics`(属性 own-credential-name-refuses-boot;since 7.139.0 = 本版新上 wire)"
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"id": "A28",
|
|
185
|
+
"source": "selfMinted.wireValueRule",
|
|
186
|
+
"member": "GET /v1/config/catalog#rows[K8S_NAMESPACE].semantics",
|
|
187
|
+
"text": "自铸 出口值变换(<端点>#<键> → 变换) 新增 `GET /v1/config/catalog#rows[K8S_NAMESPACE].semantics`(属性 required-no-default;absent-or-blank-refuses-boot;since 7.139.0 = 本版新上 wire)"
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"id": "A29",
|
|
191
|
+
"source": "selfMinted.wireValueRule",
|
|
192
|
+
"member": "GET /v1/config/catalog#rows[RETENTION_MODE].semantics",
|
|
193
|
+
"text": "自铸 出口值变换(<端点>#<键> → 变换) 新增 `GET /v1/config/catalog#rows[RETENTION_MODE].semantics`(属性 enforce-without-horizon-or-cadence-refuses-boot;since 7.139.0 = 本版新上 wire)"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"id": "A30",
|
|
197
|
+
"source": "selfMinted.wireValueRule",
|
|
198
|
+
"member": "GET /v1/config/catalog#rows[RETENTION_SWEEP_INTERVAL_SEC].semantics",
|
|
199
|
+
"text": "自铸 出口值变换(<端点>#<键> → 变换) 新增 `GET /v1/config/catalog#rows[RETENTION_SWEEP_INTERVAL_SEC].semantics`(属性 cadence-without-horizon-refuses-boot;since 7.139.0 = 本版新上 wire)"
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
"id": "A31",
|
|
203
|
+
"source": "wireFace.coreKey",
|
|
204
|
+
"member": "status.seat",
|
|
205
|
+
"text": "投影面 status 新投 core 新键 seat(core 7.60.0 新增,面表没有把它登记进 excluded ⇒ 默认上 wire)"
|
|
206
|
+
}
|
|
207
|
+
],
|
|
208
|
+
"registered": [],
|
|
209
|
+
"excluded": [],
|
|
210
|
+
"removed": [],
|
|
211
|
+
"changed": [
|
|
212
|
+
{
|
|
213
|
+
"id": "C1",
|
|
214
|
+
"source": "engineNotice",
|
|
215
|
+
"member": "delegation.ask_unresolvable",
|
|
216
|
+
"text": "附录 D.3 engine_notice 码 `delegation.ask_unresolvable` 的detail:`{ sessionId, toolName, toolCallId, cause, parkLaneExisted }` —— `sessionId` 在 core 侧是 **REQUIRED** typed 键(委派子代上是**子代**的 session,归属标按 `fromSubagent`/`sourceTaskId` 同路);🔴 **`cause`(7.74.0 / core 7.17.0 [ref]② 起;旧名 `settlementKind` 已随该版**退役**,读它恒 `undefined`,无别名无双读)闭三词** `approver_unavailable`(被咨询的席答了 unavailable,其后无 park 接住)/ `no_approver_wired`(这条腿压根没接审批席或问答面,含 headless 的 `\"deny\"` 姿态)/ `mandate_unreconstructible`(祖先绑的 durable mandate 在这条腿上没有 park 设施可兑现 ⇒ 委派子代折内拒),逐字透传不窄化(词表属主在 core);`toolCallId` 与 `tool_approval` 卡帧同值可 join。🔴 **`remedies`(core 7.56.0;server 7.137.0 起过境)= 出路的数据形**:闭集 `approver` / `permission_mode` 上的非空表,恰在 `remedy`(无人可问的那一句)在场时带 —— `{ kind: \"approver\" }`(句子已说的那条:接一个审批席 / 让接着的那个能答)与 `{ kind: \"permission_mode\", value: \"bypassPermissions\", disclosedOn: \"gate.disposition.released\" }`(只在两臂上:模式放行这一问,放行披露在那只调用的 `tool_end.gate.disposition.released`)。`detail.remedies` 由宿主按 `kind` 渲染(或不渲染;`permission_mode` 是宿主只在运维放开该模式时才可提的出路,旁边带上 `disclosedOn` 指的披露),**server 只透传、不改写、不补句**;闭集外的 `kind` 属于更新的引擎,忽略。用户读的 `message` / `remedy` 自 core 7.56.0 起**不再教** `bypassPermissions`(那条出路只在 `remedies` 里) → `{ sessionId, toolName, toolCallId, cause, parkLaneExisted }` —— `sessionId` 在 core 侧是 **REQUIRED** typed 键 = 被拒那只调用**所在腿**的会话(委派子代上是**子代自己的** session);本服务按这一个键投给该会话**当前登记的腿**,不经 `fromSubagent` / `sourceTaskId`(那两键属于审批卡帧,不在本码 `detail` 上)转投父会话 —— 同步委派子代的会话本服务不登记腿,于是子代上的这一条今天**不上任何会话流**,只落运维日志行;父会话可见要等引擎为本码另铸父会话副本(`detail.sessionId` = 父会话 + `childSessionId`,`task.user_steer_undrained` 的同形先例),届时本服务零改动承载;🔴 **`cause`(7.74.0 / core 7.17.0 [ref]② 起;旧名 `settlementKind` 已随该版**退役**,读它恒 `undefined`,无别名无双读)闭三词** `approver_unavailable`(被咨询的席答了 unavailable,其后无 park 接住)/ `no_approver_wired`(这条腿压根没接审批席或问答面,含 headless 的 `\"deny\"` 姿态)/ `mandate_unreconstructible`(祖先绑的 durable mandate 在这条腿上没有 park 设施可兑现 ⇒ 委派子代折内拒),逐字透传不窄化(词表属主在 core);`toolCallId` 与 `tool_approval` 卡帧同值可 join。🔴 **`remedies`(core 7.56.0;server 7.137.0 起过境)= 出路的数据形**:闭集 `approver` / `permission_mode` 上的非空表,恰在 `remedy`(无人可问的那一句)在场时带 —— `{ kind: \"approver\" }`(句子已说的那条:接一个审批席 / 让接着的那个能答)与 `{ kind: \"permission_mode\", value: \"bypassPermissions\", disclosedOn: \"gate.disposition.released\" }`(只在两臂上:模式放行这一问,放行披露在那只调用的 `tool_end.gate.disposition.released`)。`detail.remedies` 由宿主按 `kind` 渲染(或不渲染;`permission_mode` 是宿主只在运维放开该模式时才可提的出路,旁边带上 `disclosedOn` 指的披露),**server 只透传、不改写、不补句**;闭集外的 `kind` 属于更新的引擎,忽略。用户读的 `message` / `remedy` 自 core 7.56.0 起**不再教** `bypassPermissions`(那条出路只在 `remedies` 里)"
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"id": "C2",
|
|
220
|
+
"source": "selfMinted.wireValueRule",
|
|
221
|
+
"member": "GET /v1/config/catalog#rows[K8S_SANDBOX_ENV].semantics",
|
|
222
|
+
"text": "自铸 出口值变换(<端点>#<键> → 变换) `GET /v1/config/catalog#rows[K8S_SANDBOX_ENV].semantics` 的属性:values-only-in-the-pod-own-secret;role-needs-secrets-create;denied-refuses-boot → values-only-in-the-pod-own-secret;role-needs-secrets-create;denied-refuses-boot;own-credential-name-refuses-boot(since 7.139.0)"
|
|
223
|
+
}
|
|
224
|
+
],
|
|
225
|
+
"narrowed": [],
|
|
226
|
+
"closedSetMembers": [
|
|
227
|
+
{
|
|
228
|
+
"set": "errorCode",
|
|
229
|
+
"at": [
|
|
230
|
+
"docs/ASSISTANT-WIRE-CONTRACT.md#A.1",
|
|
231
|
+
"docs/ASSISTANT-WIRE-CONTRACT.md#A.1b"
|
|
232
|
+
],
|
|
233
|
+
"added": [
|
|
234
|
+
"conflict.fork_id_taken",
|
|
235
|
+
"conflict.fork_in_progress",
|
|
236
|
+
"conflict.session_mirror",
|
|
237
|
+
"conflict.session_row_changed",
|
|
238
|
+
"conflict.session_writer",
|
|
239
|
+
"execution_lane.not_served",
|
|
240
|
+
"execution_lane.tree_bound",
|
|
241
|
+
"state.fork_target_unsettled"
|
|
242
|
+
],
|
|
243
|
+
"registered": [],
|
|
244
|
+
"removed": [],
|
|
245
|
+
"breaking": false
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"set": "selfMinted.endpointFaceStatus",
|
|
249
|
+
"at": [
|
|
250
|
+
"src/trace/self-minted-wire.ts#endpointFaceStatus"
|
|
251
|
+
],
|
|
252
|
+
"added": [
|
|
253
|
+
"PATCH /v1/sessions/:id#expectedRowTag_current(行仍在那只标签上;体 = 列表行)",
|
|
254
|
+
"PATCH /v1/sessions/:id#expectedRowTag_stale(行已不在那只标签上;体 conflict.session_row_changed + currentRow)",
|
|
255
|
+
"PATCH /v1/sessions/:id#mirror_row(只读镜像行上的写,带不带 expectedRowTag;体 conflict.session_mirror + forkPath)",
|
|
256
|
+
"PATCH /v1/sessions/:id#owner_changed_after_gate(门那一读之后同一会话的属主被改;体 not_found.session)",
|
|
257
|
+
"POST /v1/side-query#uncoded_error_with_preflight_prefix(没有引擎码、英文开头与前缀表同形的错误;体 internal.error)",
|
|
258
|
+
"POST /v1/tasks|/v1/tasks/stream|/v1/runs#rewindFiles(新提交;体 request.body_shape + unknownKeys [rewindFiles])"
|
|
259
|
+
],
|
|
260
|
+
"registered": [],
|
|
261
|
+
"removed": [],
|
|
262
|
+
"breaking": false
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"set": "selfMinted.fieldConflictKind",
|
|
266
|
+
"at": [
|
|
267
|
+
"src/trace/self-minted-wire.ts#fieldConflictKind"
|
|
268
|
+
],
|
|
269
|
+
"added": [
|
|
270
|
+
"fork_target"
|
|
271
|
+
],
|
|
272
|
+
"registered": [],
|
|
273
|
+
"removed": [],
|
|
274
|
+
"breaking": false
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
"set": "selfMinted.refusalSentenceForm",
|
|
278
|
+
"at": [
|
|
279
|
+
"src/trace/self-minted-wire.ts#refusalSentenceForm"
|
|
280
|
+
],
|
|
281
|
+
"added": [
|
|
282
|
+
"400 request.body_shape#PATCH /v1/sessions/:id",
|
|
283
|
+
"400 request.field_invalid#PATCH /v1/sessions/:id.expectedRowTag",
|
|
284
|
+
"409 conflict.session_mirror#PATCH /v1/sessions/:id",
|
|
285
|
+
"409 conflict.session_row_changed#PATCH /v1/sessions/:id"
|
|
286
|
+
],
|
|
287
|
+
"registered": [],
|
|
288
|
+
"removed": [],
|
|
289
|
+
"breaking": false
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
"set": "selfMinted.sessionBackgroundRowKey",
|
|
293
|
+
"at": [
|
|
294
|
+
"src/trace/self-minted-wire.ts#sessionBackgroundRowKey"
|
|
295
|
+
],
|
|
296
|
+
"added": [
|
|
297
|
+
"sessionId"
|
|
298
|
+
],
|
|
299
|
+
"registered": [],
|
|
300
|
+
"removed": [],
|
|
301
|
+
"breaking": false
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
"set": "selfMinted.sessionRowWriteKey",
|
|
305
|
+
"at": [
|
|
306
|
+
"src/trace/self-minted-wire.ts#sessionRowWriteKey"
|
|
307
|
+
],
|
|
308
|
+
"added": [
|
|
309
|
+
"409 conflict.session_mirror#forkPath",
|
|
310
|
+
"409 conflict.session_row_changed#currentRow",
|
|
311
|
+
"body#expectedRowTag"
|
|
312
|
+
],
|
|
313
|
+
"registered": [],
|
|
314
|
+
"removed": [],
|
|
315
|
+
"breaking": false
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"set": "selfMinted.sessionsListRowKey",
|
|
319
|
+
"at": [
|
|
320
|
+
"src/trace/self-minted-wire.ts#sessionsListRowKey"
|
|
321
|
+
],
|
|
322
|
+
"added": [
|
|
323
|
+
"rowTag"
|
|
324
|
+
],
|
|
325
|
+
"registered": [],
|
|
326
|
+
"removed": [],
|
|
327
|
+
"breaking": false
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
"set": "selfMinted.wireValueRule",
|
|
331
|
+
"at": [
|
|
332
|
+
"src/trace/self-minted-wire.ts#wireValueRule"
|
|
333
|
+
],
|
|
334
|
+
"added": [
|
|
335
|
+
"GET /v1/config/catalog#rows[CONFIG_PROVIDER].semantics",
|
|
336
|
+
"GET /v1/config/catalog#rows[DOCKER_SANDBOX_ENV].semantics",
|
|
337
|
+
"GET /v1/config/catalog#rows[E2B_SANDBOX_ENV].semantics",
|
|
338
|
+
"GET /v1/config/catalog#rows[K8S_NAMESPACE].semantics",
|
|
339
|
+
"GET /v1/config/catalog#rows[RETENTION_MODE].semantics",
|
|
340
|
+
"GET /v1/config/catalog#rows[RETENTION_SWEEP_INTERVAL_SEC].semantics"
|
|
341
|
+
],
|
|
342
|
+
"registered": [],
|
|
343
|
+
"removed": [],
|
|
344
|
+
"breaking": false
|
|
345
|
+
}
|
|
346
|
+
],
|
|
347
|
+
"breaking": 0
|
|
348
|
+
}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
{
|
|
2
|
+
"repo": "server",
|
|
3
|
+
"version": "7.140.0",
|
|
4
|
+
"from": "v7.139.0",
|
|
5
|
+
"fromCommit": "c00fd6fb591f29cbd4435b9d0af52b4a952dfb95",
|
|
6
|
+
"to": "v7.140.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": "errorCode",
|
|
24
|
+
"member": "config.read_deny_floor_unkept",
|
|
25
|
+
"text": "附录 A.1 / A.1b 错误码新增 `config.read_deny_floor_unkept`(状态码 409)"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "A2",
|
|
29
|
+
"source": "errorCode",
|
|
30
|
+
"member": "memory.erasure_store_unjudged",
|
|
31
|
+
"text": "附录 A.1 / A.1b 错误码新增 `memory.erasure_store_unjudged`(状态码 409)"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "A3",
|
|
35
|
+
"source": "errorCode",
|
|
36
|
+
"member": "request.memory_layer",
|
|
37
|
+
"text": "附录 A.1 / A.1b 错误码新增 `request.memory_layer`(状态码 400)"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "A4",
|
|
41
|
+
"source": "selfMinted.endpointFaceStatus",
|
|
42
|
+
"member": "GET /v1/memory/entries/:entryId/provenance|POST /v1/memory/erase|GET /v1/memory/origin/clearances|POST /v1/memory/origin/entries/:entryId/clear#layer_unaddressed_two_stores(不点名层的条目 id / 店级账本请求,本部署点名的层分住两只店;体 request.memory_layer)",
|
|
43
|
+
"text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `GET /v1/memory/entries/:entryId/provenance|POST /v1/memory/erase|GET /v1/memory/origin/clearances|POST /v1/memory/origin/entries/:entryId/clear#layer_unaddressed_two_stores(不点名层的条目 id / 店级账本请求,本部署点名的层分住两只店;体 request.memory_layer)`(属性 400;since 7.140.0 = 本版新上 wire)"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "A5",
|
|
47
|
+
"source": "selfMinted.endpointFaceStatus",
|
|
48
|
+
"member": "POST /v1/memory/erase|POST /v1/sessions/:id/memory/erase#erasure_store_unjudged(抹除落到部署的店之外的那只店:点名的层住在个人挂载上,或按会话抹除而这只会话在另一只店有贡献 / 那只店的账读不出;体 memory.erasure_store_unjudged,什么都没删)",
|
|
49
|
+
"text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `POST /v1/memory/erase|POST /v1/sessions/:id/memory/erase#erasure_store_unjudged(抹除落到部署的店之外的那只店:点名的层住在个人挂载上,或按会话抹除而这只会话在另一只店有贡献 / 那只店的账读不出;体 memory.erasure_store_unjudged,什么都没删)`(属性 409;since 7.140.0 = 本版新上 wire)"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "A6",
|
|
53
|
+
"source": "selfMinted.endpointFaceStatus",
|
|
54
|
+
"member": "POST /v1/memory/export|POST /v1/memory/import|GET /v1/memory/origin/external|POST /v1/memory/erase#layers_span_two_stores(请求点名的层分住两只店;体 request.memory_layer)",
|
|
55
|
+
"text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `POST /v1/memory/export|POST /v1/memory/import|GET /v1/memory/origin/external|POST /v1/memory/erase#layers_span_two_stores(请求点名的层分住两只店;体 request.memory_layer)`(属性 400;since 7.140.0 = 本版新上 wire)"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"id": "A7",
|
|
59
|
+
"source": "selfMinted.endpointFaceStatus",
|
|
60
|
+
"member": "记忆诸口 + POST /v1/admin/memory/consolidation/run|GET /v1/admin/memory/consolidation|GET /v1/memory/export|POST /v1/memory/sync/:scope#layer_unreadable(请求点名的层引擎读不出;体 request.memory_layer)",
|
|
61
|
+
"text": "自铸 逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面) 新增 `记忆诸口 + POST /v1/admin/memory/consolidation/run|GET /v1/admin/memory/consolidation|GET /v1/memory/export|POST /v1/memory/sync/:scope#layer_unreadable(请求点名的层引擎读不出;体 request.memory_layer)`(属性 400;since 7.140.0 = 本版新上 wire)"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"id": "A8",
|
|
65
|
+
"source": "selfMinted.memoryLayerSeatKey",
|
|
66
|
+
"member": "GET /v1/memory/entries/:entryId/provenance#query.scope",
|
|
67
|
+
"text": "自铸 记忆动词的层座(<端点>#<query | body>.scope → 读法;只登本版新增的) 新增 `GET /v1/memory/entries/:entryId/provenance#query.scope`(属性 optional;non-empty-string else 400 request.field_invalid;names the layer whose store answers;since 7.140.0 = 本版新上 wire)"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"id": "A9",
|
|
71
|
+
"source": "selfMinted.memoryLayerSeatKey",
|
|
72
|
+
"member": "GET /v1/memory/origin/clearances#query.scope",
|
|
73
|
+
"text": "自铸 记忆动词的层座(<端点>#<query | body>.scope → 读法;只登本版新增的) 新增 `GET /v1/memory/origin/clearances#query.scope`(属性 optional;non-empty-string else 400 request.field_invalid;names the layer whose store answers;since 7.140.0 = 本版新上 wire)"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"id": "A10",
|
|
77
|
+
"source": "selfMinted.memoryLayerSeatKey",
|
|
78
|
+
"member": "GET /v1/sessions/:id/memory-status#query.scope",
|
|
79
|
+
"text": "自铸 记忆动词的层座(<端点>#<query | body>.scope → 读法;只登本版新增的) 新增 `GET /v1/sessions/:id/memory-status#query.scope`(属性 optional;non-empty-string else 400 request.field_invalid;names the layer whose store answers;absent ⇒ every store of this deployment, folded;cache keyed by (session, store control plane);since 7.140.0 = 本版新上 wire)"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "A11",
|
|
83
|
+
"source": "selfMinted.memoryLayerSeatKey",
|
|
84
|
+
"member": "POST /v1/memory/origin/entries/:entryId/clear#body.scope",
|
|
85
|
+
"text": "自铸 记忆动词的层座(<端点>#<query | body>.scope → 读法;只登本版新增的) 新增 `POST /v1/memory/origin/entries/:entryId/clear#body.scope`(属性 optional;non-empty-string else 400 request.field_invalid;names the layer whose store answers;not passed to the engine;since 7.140.0 = 本版新上 wire)"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"id": "A12",
|
|
89
|
+
"source": "selfMinted.memoryLayerSeatKey",
|
|
90
|
+
"member": "POST /v1/sessions/:id/memory/erase#body.scope",
|
|
91
|
+
"text": "自铸 记忆动词的层座(<端点>#<query | body>.scope → 读法;只登本版新增的) 新增 `POST /v1/sessions/:id/memory/erase#body.scope`(属性 optional;non-empty-string else 400 request.field_invalid;names the layer whose store answers;absent ⇒ the deployment's store;selector still minted from the path;since 7.140.0 = 本版新上 wire)"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"id": "A13",
|
|
95
|
+
"source": "selfMinted.sessionMemoryEraseStatus",
|
|
96
|
+
"member": "memory.erasure_store_unjudged",
|
|
97
|
+
"text": "自铸 POST /v1/sessions/:id/memory/erase(已分类拒 errorCode → HTTP 状态) 新增 `memory.erasure_store_unjudged`(属性 409;since 7.140.0 = 本版新上 wire)"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"id": "A14",
|
|
101
|
+
"source": "selfMinted.wireValueRule",
|
|
102
|
+
"member": "GET /v1/sessions/:id/memory-status#committedCount|foldedCount|lastCaptureAt|captureOptedOut|optOutSource(不带层座)",
|
|
103
|
+
"text": "自铸 出口值变换(<端点>#<键> → 变换) 新增 `GET /v1/sessions/:id/memory-status#committedCount|foldedCount|lastCaptureAt|captureOptedOut|optOutSource(不带层座)`(属性 fold-across-deployment-stores(sum|max|any-record|absent-if-any-unreadable);one-store⇒identity;since 7.140.0 = 本版新上 wire)"
|
|
104
|
+
}
|
|
105
|
+
],
|
|
106
|
+
"registered": [],
|
|
107
|
+
"excluded": [],
|
|
108
|
+
"removed": [],
|
|
109
|
+
"changed": [],
|
|
110
|
+
"narrowed": [],
|
|
111
|
+
"closedSetMembers": [
|
|
112
|
+
{
|
|
113
|
+
"set": "errorCode",
|
|
114
|
+
"at": [
|
|
115
|
+
"docs/ASSISTANT-WIRE-CONTRACT.md#A.1",
|
|
116
|
+
"docs/ASSISTANT-WIRE-CONTRACT.md#A.1b"
|
|
117
|
+
],
|
|
118
|
+
"added": [
|
|
119
|
+
"config.read_deny_floor_unkept",
|
|
120
|
+
"memory.erasure_store_unjudged",
|
|
121
|
+
"request.memory_layer"
|
|
122
|
+
],
|
|
123
|
+
"registered": [],
|
|
124
|
+
"removed": [],
|
|
125
|
+
"breaking": false
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"set": "selfMinted.endpointFaceStatus",
|
|
129
|
+
"at": [
|
|
130
|
+
"src/trace/self-minted-wire.ts#endpointFaceStatus"
|
|
131
|
+
],
|
|
132
|
+
"added": [
|
|
133
|
+
"GET /v1/memory/entries/:entryId/provenance|POST /v1/memory/erase|GET /v1/memory/origin/clearances|POST /v1/memory/origin/entries/:entryId/clear#layer_unaddressed_two_stores(不点名层的条目 id / 店级账本请求,本部署点名的层分住两只店;体 request.memory_layer)",
|
|
134
|
+
"POST /v1/memory/erase|POST /v1/sessions/:id/memory/erase#erasure_store_unjudged(抹除落到部署的店之外的那只店:点名的层住在个人挂载上,或按会话抹除而这只会话在另一只店有贡献 / 那只店的账读不出;体 memory.erasure_store_unjudged,什么都没删)",
|
|
135
|
+
"POST /v1/memory/export|POST /v1/memory/import|GET /v1/memory/origin/external|POST /v1/memory/erase#layers_span_two_stores(请求点名的层分住两只店;体 request.memory_layer)",
|
|
136
|
+
"记忆诸口 + POST /v1/admin/memory/consolidation/run|GET /v1/admin/memory/consolidation|GET /v1/memory/export|POST /v1/memory/sync/:scope#layer_unreadable(请求点名的层引擎读不出;体 request.memory_layer)"
|
|
137
|
+
],
|
|
138
|
+
"registered": [],
|
|
139
|
+
"removed": [],
|
|
140
|
+
"breaking": false
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"set": "selfMinted.memoryLayerSeatKey",
|
|
144
|
+
"at": [
|
|
145
|
+
"src/trace/self-minted-wire.ts#memoryLayerSeatKey"
|
|
146
|
+
],
|
|
147
|
+
"added": [
|
|
148
|
+
"GET /v1/memory/entries/:entryId/provenance#query.scope",
|
|
149
|
+
"GET /v1/memory/origin/clearances#query.scope",
|
|
150
|
+
"GET /v1/sessions/:id/memory-status#query.scope",
|
|
151
|
+
"POST /v1/memory/origin/entries/:entryId/clear#body.scope",
|
|
152
|
+
"POST /v1/sessions/:id/memory/erase#body.scope"
|
|
153
|
+
],
|
|
154
|
+
"registered": [],
|
|
155
|
+
"removed": [],
|
|
156
|
+
"breaking": false
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"set": "selfMinted.sessionMemoryEraseStatus",
|
|
160
|
+
"at": [
|
|
161
|
+
"src/trace/self-minted-wire.ts#sessionMemoryEraseStatus"
|
|
162
|
+
],
|
|
163
|
+
"added": [
|
|
164
|
+
"memory.erasure_store_unjudged"
|
|
165
|
+
],
|
|
166
|
+
"registered": [],
|
|
167
|
+
"removed": [],
|
|
168
|
+
"breaking": false
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"set": "selfMinted.wireValueRule",
|
|
172
|
+
"at": [
|
|
173
|
+
"src/trace/self-minted-wire.ts#wireValueRule"
|
|
174
|
+
],
|
|
175
|
+
"added": [
|
|
176
|
+
"GET /v1/sessions/:id/memory-status#committedCount|foldedCount|lastCaptureAt|captureOptedOut|optOutSource(不带层座)"
|
|
177
|
+
],
|
|
178
|
+
"registered": [],
|
|
179
|
+
"removed": [],
|
|
180
|
+
"breaking": false
|
|
181
|
+
}
|
|
182
|
+
],
|
|
183
|
+
"breaking": 0
|
|
184
|
+
}
|