@sema-agent/server 7.139.0 → 7.141.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 +471 -0
- package/README.md +1 -1
- package/README.zh-CN.md +1 -1
- package/USAGE.md +94 -26
- package/dist/adoption/runner.js +1 -1
- package/dist/adoption/sql.js +1 -1
- package/dist/approval-batch-census.d.ts +27 -0
- package/dist/approval-batch-census.js +27 -0
- package/dist/approval-card.d.ts +37 -22
- package/dist/approval-card.js +6 -3
- package/dist/approval.d.ts +15 -0
- package/dist/approval.js +10 -0
- package/dist/audit.d.ts +4 -2
- package/dist/audit.js +2 -2
- 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/boot/adoption.js +1 -1
- package/dist/boot/device-lane.d.ts +11 -0
- package/dist/boot/device-lane.js +16 -0
- package/dist/boot/engine-lease.d.ts +24 -3
- package/dist/boot/engine-lease.js +9 -2
- package/dist/boot/execution-env.js +18 -12
- package/dist/boot/execution-lane.d.ts +8 -0
- package/dist/boot/execution-lane.js +6 -1
- package/dist/boot/memory-boundary.d.ts +16 -53
- package/dist/boot/memory-boundary.js +10 -20
- package/dist/boot/memory-consolidation.d.ts +16 -12
- package/dist/boot/memory-consolidation.js +24 -13
- package/dist/boot/reapers.d.ts +2 -2
- package/dist/boot/resolve-spec.d.ts +3 -5
- package/dist/boot/resolve-spec.js +9 -8
- package/dist/boot/runner-deps.d.ts +3 -3
- package/dist/boot/runner-deps.js +1 -0
- package/dist/boot/session-faces.d.ts +1 -1
- package/dist/boot/session-faces.js +4 -3
- package/dist/boot/shutdown.js +5 -0
- 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 +3 -1
- package/dist/boot/stage-06-runners.d.ts +2 -8
- package/dist/boot/stage-06-runners.js +3 -3
- package/dist/boot/stage-07-capability-layer.d.ts +2 -7
- package/dist/boot/stage-07-capability-layer.js +8 -10
- package/dist/boot/stage-08-reapers.d.ts +2 -7
- package/dist/boot/stage-09-leader.d.ts +2 -7
- package/dist/boot/stage-10-http-server.d.ts +2 -7
- package/dist/boot/stage-10-http-server.js +6 -4
- package/dist/boot/stores.d.ts +3 -6
- package/dist/boot/stores.js +37 -44
- 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 +36 -9
- package/dist/capabilities/execution-lane.d.ts +2 -2
- package/dist/capabilities/scenarios.d.ts +1 -1
- package/dist/capability-facts.d.ts +9 -0
- package/dist/capability-facts.js +9 -0
- package/dist/card-void.d.ts +38 -0
- package/dist/card-void.js +23 -0
- package/dist/config-catalog.js +12 -8
- package/dist/config-provider.d.ts +18 -17
- package/dist/config-provider.js +28 -36
- package/dist/config-types.d.ts +36 -9
- package/dist/config.js +56 -46
- package/dist/delegated-session-owner.d.ts +23 -20
- package/dist/delegated-session-owner.js +2 -2
- package/dist/deployment-shape.d.ts +9 -8
- package/dist/deployment-shape.js +4 -4
- package/dist/device-store.d.ts +7 -0
- package/dist/device-store.js +3 -0
- package/dist/execution-config-root.d.ts +22 -0
- package/dist/execution-config-root.js +35 -0
- package/dist/execution-lane-caps.d.ts +145 -107
- package/dist/execution-lane-caps.js +144 -83
- package/dist/execution-placement.d.ts +3 -0
- package/dist/execution-placement.js +7 -0
- package/dist/fleet/drain-entry.d.ts +3 -0
- package/dist/hosted-posture.d.ts +8 -0
- package/dist/hosted-posture.js +4 -0
- package/dist/http/admission.js +3 -3
- package/dist/http/caller-trust.d.ts +3 -2
- package/dist/http/caller-trust.js +2 -1
- package/dist/http/dispatch.js +4 -0
- package/dist/http/live-frame.d.ts +24 -0
- package/dist/http/live-frame.js +16 -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 +49 -35
- package/dist/http/retired-service-deps.d.ts +1 -1
- package/dist/http/retired-service-deps.js +1 -1
- package/dist/http/route-table.js +2 -0
- package/dist/http/routes/adoption.js +1 -1
- package/dist/http/routes/approvals-assistant.js +1 -0
- package/dist/http/routes/capabilities.js +5 -4
- package/dist/http/routes/diagnostics.d.ts +0 -19
- package/dist/http/routes/diagnostics.js +16 -2
- package/dist/http/routes/memory-bundle.d.ts +2 -2
- package/dist/http/routes/memory-bundle.js +4 -1
- package/dist/http/routes/memory-compliance.js +9 -2
- 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 +7 -2
- package/dist/http/routes/run-permission-mode.d.ts +75 -0
- package/dist/http/routes/run-permission-mode.js +170 -0
- package/dist/http/routes/session-sync.d.ts +3 -6
- package/dist/http/routes/session-sync.js +7 -2
- package/dist/http/routes/sessions.js +33 -15
- package/dist/http/routes/tasks.js +67 -68
- package/dist/http/run-read-face.js +3 -3
- package/dist/http/send.d.ts +1 -1
- package/dist/http/send.js +2 -2
- package/dist/http/server.d.ts +14 -27
- package/dist/http/server.js +2 -2
- package/dist/http/sse-log.d.ts +3 -8
- package/dist/http/stored-body-replay.d.ts +3 -3
- package/dist/http/stored-body-replay.js +3 -1
- package/dist/identity-source.d.ts +1 -1
- package/dist/identity-source.js +1 -1
- package/dist/instruction-source-notice.d.ts +7 -0
- package/dist/instruction-source-notice.js +6 -6
- 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/mcp-assertion-header.d.ts +4 -0
- package/dist/mcp-assertion-header.js +5 -0
- 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-posture.d.ts +1 -1
- 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 +33 -9
- package/dist/memory-scope.js +17 -5
- package/dist/memory-sync-client.d.ts +34 -9
- package/dist/memory-sync-client.js +108 -28
- package/dist/observability/fail-open.d.ts +30 -2
- package/dist/observability/fail-open.js +30 -2
- package/dist/observability/metrics.js +0 -1
- package/dist/observability/run-terminal.d.ts +6 -2
- package/dist/observability/run-terminal.js +25 -26
- package/dist/observability/secret-env-scrub.d.ts +20 -1
- package/dist/observability/secret-env-scrub.js +14 -0
- package/dist/orchestration/workflow-completion-inbox.d.ts +5 -2
- package/dist/orchestration/workflow-completion-inbox.js +13 -5
- package/dist/orchestration/workflow-notify-journal.d.ts +5 -3
- package/dist/orchestration/workflow-notify-journal.js +2 -1
- package/dist/permission-mode-admission.d.ts +68 -0
- package/dist/permission-mode-admission.js +23 -0
- package/dist/permission-rule-list.d.ts +55 -6
- package/dist/permission-rule-list.js +52 -5
- package/dist/plugins/adoption-log-sql.js +4 -4
- package/dist/plugins/approval-ask-store-sql.js +14 -14
- 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 -0
- package/dist/plugins/caching-session-store.js +3 -0
- package/dist/plugins/checkpoint-index-columns.js +2 -2
- package/dist/plugins/checkpoint-store-sql.d.ts +65 -17
- package/dist/plugins/checkpoint-store-sql.js +90 -19
- package/dist/plugins/device-store-sql.d.ts +5 -2
- package/dist/plugins/device-store-sql.js +23 -20
- package/dist/plugins/ensure-index.d.ts +1 -2
- package/dist/plugins/execution-placement-sql.d.ts +19 -9
- package/dist/plugins/execution-placement-sql.js +20 -9
- package/dist/plugins/file-history-store-sql.d.ts +2 -2
- package/dist/plugins/file-history-store-sql.js +4 -4
- package/dist/plugins/file-run-store.d.ts +2 -2
- package/dist/plugins/file-run-store.js +1 -1
- package/dist/plugins/fork-routing-session-store.d.ts +10 -32
- package/dist/plugins/fork-routing-session-store.js +2 -61
- package/dist/plugins/image-bake-store-sql.js +9 -9
- package/dist/plugins/image-index-sql.js +11 -11
- package/dist/plugins/k8s-exec-protocol.d.ts +4 -1
- package/dist/plugins/k8s-exec-protocol.js +6 -1
- package/dist/plugins/leader-run-store-sql.js +4 -4
- package/dist/plugins/local-checkpoint-store.d.ts +10 -1
- package/dist/plugins/local-checkpoint-store.js +22 -0
- package/dist/plugins/local-session-store.d.ts +227 -35
- package/dist/plugins/local-session-store.js +518 -37
- package/dist/plugins/local-session-window.d.ts +17 -3
- package/dist/plugins/local-session-window.js +7 -13
- 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-optout-grant-store-sql.js +1 -1
- package/dist/plugins/memory-run-store.d.ts +2 -2
- package/dist/plugins/memory-run-store.js +1 -1
- package/dist/plugins/memory-sync-store-tidb.js +3 -3
- package/dist/plugins/one-time-migrations.d.ts +52 -11
- package/dist/plugins/one-time-migrations.js +101 -39
- package/dist/plugins/org-delivery-quota-store.js +2 -2
- package/dist/plugins/outcome-ledger-sql.js +2 -2
- package/dist/plugins/permission-rule-store-sql.d.ts +4 -4
- package/dist/plugins/permission-rule-store-sql.js +16 -16
- package/dist/plugins/pg-pool.js +3 -2
- package/dist/plugins/pg-session-storage.d.ts +2 -0
- package/dist/plugins/pg-session-storage.js +3 -2
- package/dist/plugins/remote-env-adb.d.ts +7 -24
- package/dist/plugins/remote-env-adb.js +22 -5
- package/dist/plugins/remote-env-device.d.ts +2 -28
- package/dist/plugins/remote-env-device.js +2 -1
- package/dist/plugins/remote-env-e2b.d.ts +40 -27
- package/dist/plugins/remote-env-e2b.js +180 -20
- package/dist/plugins/remote-env-file-error.d.ts +1 -1
- package/dist/plugins/remote-env-file-error.js +8 -2
- package/dist/plugins/remote-env-host.d.ts +19 -35
- package/dist/plugins/remote-env-host.js +26 -3
- package/dist/plugins/remote-env-k8s.d.ts +22 -14
- package/dist/plugins/remote-env-k8s.js +150 -26
- package/dist/plugins/remote-env-local-docker.d.ts +27 -24
- package/dist/plugins/remote-env-local-docker.js +91 -24
- package/dist/plugins/remote-env-ssh.d.ts +4 -24
- package/dist/plugins/remote-env-ssh.js +4 -3
- 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 +1 -1
- package/dist/plugins/retention-store-sql.js +6 -6
- package/dist/plugins/run-store-sql.d.ts +3 -3
- package/dist/plugins/run-store-sql.js +19 -18
- package/dist/plugins/sandbox-read-floor.d.ts +273 -0
- package/dist/plugins/sandbox-read-floor.js +608 -0
- package/dist/plugins/schema-consistency.d.ts +6 -6
- package/dist/plugins/schema-consistency.js +1 -1
- 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-ownership.d.ts +2 -1
- package/dist/plugins/session-placement.d.ts +17 -4
- package/dist/plugins/session-placement.js +2 -1
- 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 +18 -20
- package/dist/plugins/session-store.js +4 -12
- 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 +35 -6
- package/dist/plugins/store-backend.js +27 -10
- package/dist/plugins/store-contracts.d.ts +9 -2
- package/dist/plugins/task-list-store-sql.js +11 -11
- package/dist/plugins/tidb-pool.js +7 -6
- package/dist/plugins/tidb-session-storage.js +4 -4
- package/dist/plugins/tidb-session-store.d.ts +4 -1
- package/dist/plugins/tidb-session-store.js +16 -15
- package/dist/plugins/tool-result-store-sql.d.ts +2 -2
- package/dist/plugins/tool-result-store-sql.js +3 -3
- 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/resource-suspend.d.ts +14 -12
- package/dist/resource-suspend.js +1 -1
- package/dist/resource-window.d.ts +4 -3
- package/dist/run-cancel-context.d.ts +34 -0
- package/dist/run-cancel-context.js +7 -0
- package/dist/run-local.js +14 -19
- package/dist/runs.d.ts +47 -16
- package/dist/runs.js +112 -113
- package/dist/security.d.ts +2 -2
- package/dist/server-secret-env.d.ts +2 -1
- package/dist/server-secret-env.js +2 -4
- package/dist/session-error-wire.d.ts +22 -4
- package/dist/session-error-wire.js +16 -0
- package/dist/session-incarnation.d.ts +10 -4
- package/dist/session-incarnation.js +1 -1
- package/dist/session-policy-wire.d.ts +1 -1
- package/dist/session-sync-kernel.d.ts +42 -1
- package/dist/session-sync-kernel.js +17 -0
- package/dist/session-sync.js +16 -4
- package/dist/sql-engine-coordinates.d.ts +49 -0
- package/dist/sql-engine-coordinates.js +27 -0
- package/dist/sql-engine-posture.d.ts +1 -1
- package/dist/sql-engine-posture.js +1 -1
- package/dist/standing-answer-grant.d.ts +31 -2
- package/dist/standing-answer-grant.js +14 -2
- package/dist/store-posture.d.ts +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-mcp.d.ts +21 -8
- package/dist/task-mcp.js +17 -9
- package/dist/task-settings.d.ts +52 -25
- package/dist/task-settings.js +91 -28
- package/dist/terminal.d.ts +103 -19
- package/dist/terminal.js +72 -20
- package/dist/trace/core-keyset-guard.d.ts +79 -2
- package/dist/trace/exit-seat.d.ts +7 -0
- package/dist/trace/exit-seat.js +1 -0
- package/dist/trace/model-segment.d.ts +2 -2
- package/dist/trace/redact.d.ts +3 -1
- package/dist/trace/redact.js +395 -110
- package/dist/trace/self-minted-wire.d.ts +226 -2
- package/dist/trace/self-minted-wire.js +79 -0
- package/dist/verifier-pause-card.d.ts +8 -0
- package/dist/verifier-pause-card.js +19 -0
- package/dist/web-admin-client/apply-effective.d.ts +5 -7
- package/dist/web-admin-client/apply-effective.js +2 -2
- 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/docs/DEVICE-EXECUTOR-PROTOCOL.md +3 -2
- package/package.json +2 -2
- package/wire-changes/server@7.140.0.json +184 -0
- package/wire-changes/server@7.141.0.json +367 -0
|
@@ -129,6 +129,10 @@ export declare const SELF_MINTED_WIRE: {
|
|
|
129
129
|
readonly attr: 409;
|
|
130
130
|
readonly since: "7.108.0";
|
|
131
131
|
};
|
|
132
|
+
readonly "memory.erasure_store_unjudged": {
|
|
133
|
+
readonly attr: 409;
|
|
134
|
+
readonly since: "7.140.0";
|
|
135
|
+
};
|
|
132
136
|
readonly "internal.memory_control_plane_corrupt": {
|
|
133
137
|
readonly attr: 500;
|
|
134
138
|
readonly since: "7.108.0";
|
|
@@ -463,6 +467,20 @@ export declare const SELF_MINTED_WIRE: {
|
|
|
463
467
|
};
|
|
464
468
|
};
|
|
465
469
|
};
|
|
470
|
+
/** 7.141.0:能力位 `mcpTransportKinds[]` 的成员(请求面读器与引擎今天能拨的 MCP 传输种类,书写序;恒在场、不随部署形变)。 */
|
|
471
|
+
readonly mcpTransportKind: {
|
|
472
|
+
readonly at: "GET /v1/capabilities mcpTransportKinds[]";
|
|
473
|
+
readonly members: {
|
|
474
|
+
stdio: {
|
|
475
|
+
attr: string;
|
|
476
|
+
since: string;
|
|
477
|
+
};
|
|
478
|
+
http: {
|
|
479
|
+
attr: string;
|
|
480
|
+
since: string;
|
|
481
|
+
};
|
|
482
|
+
};
|
|
483
|
+
};
|
|
466
484
|
/** 7.137.0:能力位 `credentialPlane.sandboxGit.state`(成员 git 凭据平面开 / 关;判官 `judgeSandboxGitPlane`)。 */
|
|
467
485
|
readonly credentialPlaneSandboxGitState: {
|
|
468
486
|
readonly at: "GET /v1/capabilities credentialPlane.sandboxGit.state";
|
|
@@ -639,6 +657,23 @@ export declare const SELF_MINTED_WIRE: {
|
|
|
639
657
|
};
|
|
640
658
|
};
|
|
641
659
|
};
|
|
660
|
+
/**
|
|
661
|
+
* `GET /health` 的 `engineLease` 段(7.141.0):引擎附着租约窗 —— `lingerMs` = 自退腿会执行的**最短**静默窗(父活着的窗与孤儿窗取小),`tickMs` = 自退检查采样拍。
|
|
662
|
+
* present-iff 本进程装了租约腿(`ENGINE_AUTO_EXIT` 开或 `SEMA_PARENT_PID` 在场)∧ 腿还在观察 ∧ 窗会到期;键集属主 = `EngineLeaseFacts`(加一键而本表没跟 ⇒ tsc 红)。
|
|
663
|
+
*/
|
|
664
|
+
readonly healthEngineLeaseKey: {
|
|
665
|
+
readonly at: "GET /health engineLease";
|
|
666
|
+
readonly members: {
|
|
667
|
+
lingerMs: {
|
|
668
|
+
attr: string;
|
|
669
|
+
since: string;
|
|
670
|
+
};
|
|
671
|
+
tickMs: {
|
|
672
|
+
attr: string;
|
|
673
|
+
since: string;
|
|
674
|
+
};
|
|
675
|
+
};
|
|
676
|
+
};
|
|
642
677
|
/** `GET /v1/models` 的 `models[]` 行键(只登本版新出现的键;行的其余键不是本版新上 wire):`supportsThinkingOff` —— 「这只模型的推理能不能关」,恒在场的布尔,值 = 引擎唯一读法 `thinkingOffSpelled(条目)`。 */
|
|
643
678
|
readonly modelsRowKey: {
|
|
644
679
|
readonly at: "GET /v1/models models[] 行键(<键> → 在场律)";
|
|
@@ -1088,8 +1123,9 @@ export declare const SELF_MINTED_WIRE: {
|
|
|
1088
1123
|
};
|
|
1089
1124
|
};
|
|
1090
1125
|
/**
|
|
1091
|
-
*
|
|
1092
|
-
* `
|
|
1126
|
+
* 停驻技能卡的「批它放行了什么」三位,7.136.0 起在运维队列行与订阅流 `pending` 帧上也带(此前只有助手收件箱行与活卡帧带)。清单与成因词由一只投影 `skillCardFacts` 投,
|
|
1127
|
+
* 摘要随授予绑定那一臂由 `parkRowFacts` 投(读自停驻行;7.141.0 起与 `boundGrantAbsence` 恰带其一 —— `boundGrantAbsence` 自 7.129.0 起就在本面,不是本表登记的新键);
|
|
1128
|
+
* `satisfies Record<keyof SkillCardFacts | 摘要, …>`:投影加 / 删一位而本表没跟 ⇒ tsc 红。在场律 `present-iff`:只在这一行有该位时才带键(普通卡三位三面都缺席,缺席不是断言)。
|
|
1093
1129
|
*/
|
|
1094
1130
|
readonly approvalQueuePendingKey: {
|
|
1095
1131
|
readonly at: "GET /v1/approvals pending[] 行 · GET /v1/approvals/stream pending 帧(停驻技能卡的批准绑定三位;与助手收件箱行同一只投影)";
|
|
@@ -1122,6 +1158,76 @@ export declare const SELF_MINTED_WIRE: {
|
|
|
1122
1158
|
};
|
|
1123
1159
|
};
|
|
1124
1160
|
};
|
|
1161
|
+
/**
|
|
1162
|
+
* 在飞 run 的权限模式切档口 `POST /v1/runs/:id/permission-mode`(本版新端点)200 体的键集(<键> → 在场律)。
|
|
1163
|
+
* `satisfies Record<keyof PermissionModeVerbReply, …>`(体形属主 = `http/routes/run-permission-mode.ts`,路由按这只型铸体;键加一个而本表没跟 ⇒ tsc 红)。
|
|
1164
|
+
* `permissionMode` 的值是引擎回执原样(引擎的词表,不在本表)。
|
|
1165
|
+
*/
|
|
1166
|
+
readonly permissionModeVerbBodyKey: {
|
|
1167
|
+
readonly at: "POST /v1/runs/:id/permission-mode 200 体(<键> → 在场律)";
|
|
1168
|
+
readonly members: {
|
|
1169
|
+
taskId: {
|
|
1170
|
+
attr: string;
|
|
1171
|
+
since: string;
|
|
1172
|
+
};
|
|
1173
|
+
sessionId: {
|
|
1174
|
+
attr: string;
|
|
1175
|
+
since: string;
|
|
1176
|
+
};
|
|
1177
|
+
status: {
|
|
1178
|
+
attr: string;
|
|
1179
|
+
since: string;
|
|
1180
|
+
};
|
|
1181
|
+
permissionMode: {
|
|
1182
|
+
attr: string;
|
|
1183
|
+
since: string;
|
|
1184
|
+
};
|
|
1185
|
+
admission: {
|
|
1186
|
+
attr: string;
|
|
1187
|
+
since: string;
|
|
1188
|
+
};
|
|
1189
|
+
persisted: {
|
|
1190
|
+
attr: string;
|
|
1191
|
+
since: string;
|
|
1192
|
+
};
|
|
1193
|
+
persistMiss: {
|
|
1194
|
+
attr: string;
|
|
1195
|
+
since: string;
|
|
1196
|
+
};
|
|
1197
|
+
};
|
|
1198
|
+
};
|
|
1199
|
+
/** 同一口 200 体 `admission.foldedBy`:受理判官改词的站。`satisfies Record<PermissionModeAdmissionFold, …>`(词表属主 = `permission-mode-admission.ts` 的 `PERMISSION_MODE_ADMISSION_FOLDS`)。 */
|
|
1200
|
+
readonly permissionModeAdmissionFold: {
|
|
1201
|
+
readonly at: "POST /v1/runs/:id/permission-mode 200 体 admission.foldedBy";
|
|
1202
|
+
readonly members: {
|
|
1203
|
+
entry_floor: {
|
|
1204
|
+
attr: string;
|
|
1205
|
+
since: string;
|
|
1206
|
+
};
|
|
1207
|
+
disable_auto_mode: {
|
|
1208
|
+
attr: string;
|
|
1209
|
+
since: string;
|
|
1210
|
+
};
|
|
1211
|
+
};
|
|
1212
|
+
};
|
|
1213
|
+
/** 同一口 200 体 `persistMiss`:回写没落定的成因。`satisfies Record<PermissionModePersistMiss, …>`(词表属主 = `http/routes/run-permission-mode.ts` 的 `PERMISSION_MODE_PERSIST_MISSES`)。 */
|
|
1214
|
+
readonly permissionModePersistMiss: {
|
|
1215
|
+
readonly at: "POST /v1/runs/:id/permission-mode 200 体 persistMiss(persisted:false 时)";
|
|
1216
|
+
readonly members: {
|
|
1217
|
+
claim_released: {
|
|
1218
|
+
attr: string;
|
|
1219
|
+
since: string;
|
|
1220
|
+
};
|
|
1221
|
+
context_absent: {
|
|
1222
|
+
attr: string;
|
|
1223
|
+
since: string;
|
|
1224
|
+
};
|
|
1225
|
+
store_failed: {
|
|
1226
|
+
attr: string;
|
|
1227
|
+
since: string;
|
|
1228
|
+
};
|
|
1229
|
+
};
|
|
1230
|
+
};
|
|
1125
1231
|
/**
|
|
1126
1232
|
* 逐端点「应答面 → HTTP 状态」映射里**本版改了状态的面**(形照 `submitIdempotency`:`<端点>#<面>` → 状态;面是调用方能观察到的那一形,不是内部分支名)。
|
|
1127
1233
|
* `since` 记**这一面以这个状态答**的起始版本;每个成员的旧状态写在 CHANGELOG 对应条里(旧状态的那一形此前没有登记,清单里它们是「本版新上 wire」,不是 changed)。
|
|
@@ -1194,6 +1300,18 @@ export declare const SELF_MINTED_WIRE: {
|
|
|
1194
1300
|
readonly attr: 400;
|
|
1195
1301
|
readonly since: "7.136.0";
|
|
1196
1302
|
};
|
|
1303
|
+
readonly "POST /v1/sessions/:id/sync/import#anchor_outside_declared_entries(Phase A \u4F53\u7684 anchors[i]:entryId \u4E0D\u5728 entryIds \u91CC / \u5143\u7D20\u4E0D\u662F\u5E26\u4E32\u578B eventId \u4E0E entryId \u7684\u5BF9\u8C61;\u4F53 request.field_invalid)": {
|
|
1304
|
+
readonly attr: 400;
|
|
1305
|
+
readonly since: "7.141.0";
|
|
1306
|
+
};
|
|
1307
|
+
readonly "POST /v1/sessions/:id/fork#stamped_archive(DB_BACKEND=local;\u6E90\u5B58\u6863\u4ECD\u5E26\u66F4\u65E9\u7248\u672C\u5199\u4E0B\u7684\u5C5E\u4E3B\u6233;\u96F6\u5199;\u4F53 conflict + \u5E26\u6233\u5B58\u6863\u7684\u56FA\u5B9A\u53E5)": {
|
|
1308
|
+
readonly attr: 409;
|
|
1309
|
+
readonly since: "7.141.0";
|
|
1310
|
+
};
|
|
1311
|
+
readonly "POST /v1/sessions/:id/sync/import/:stagingId/entries#stamped_archive(DB_BACKEND=local;\u63D0\u4EA4\u843D\u5728\u4ECD\u5E26\u5C5E\u4E3B\u6233\u7684\u5B58\u6863\u4E0A;\u884C\u51C0\u96F6\u5199;\u4F53 conflict + \u5E26\u6233\u5B58\u6863\u7684\u56FA\u5B9A\u53E5)": {
|
|
1312
|
+
readonly attr: 409;
|
|
1313
|
+
readonly since: "7.141.0";
|
|
1314
|
+
};
|
|
1197
1315
|
readonly "POST /v1/tasks|/v1/tasks/stream|/v1/runs#images_url_credential(\u65B0\u63D0\u4EA4;\u4F53 request.field_invalid + field images[i].url + reason url_userinfo|url_credential_param)": {
|
|
1198
1316
|
readonly attr: 400;
|
|
1199
1317
|
readonly since: "7.136.0";
|
|
@@ -1246,6 +1364,14 @@ export declare const SELF_MINTED_WIRE: {
|
|
|
1246
1364
|
readonly attr: 200;
|
|
1247
1365
|
readonly since: "7.137.0";
|
|
1248
1366
|
};
|
|
1367
|
+
readonly "POST /v1/tasks|/v1/tasks/stream|/v1/runs#settings.permissions.deny|ask \u5E26\u5C42\u6761\u76EE { rule, layer }(\u65B0\u63D0\u4EA4;layer = \u8BBE\u7F6E\u6765\u6E90\u8BCD)": {
|
|
1368
|
+
readonly attr: 200;
|
|
1369
|
+
readonly since: "7.141.0";
|
|
1370
|
+
};
|
|
1371
|
+
readonly "POST /v1/tasks|/v1/tasks/stream|/v1/runs#user \u5C42 / \u5F62\u8DEF\u5F84\u89C4\u5219\u800C\u6267\u884C\u73AF\u5883\u7684\u914D\u7F6E\u6839\u8BFB\u4E0D\u51FA(\u6C99\u7BB1\u8F66\u9053\u6CA1\u8F6C SEMA_CONFIG_DIR \u4E14 home \u672A\u77E5;\u4F53 request.unprocessable + problems[].reason home_unresolvable;\u7EED\u8DD1 409 \u540C\u53E5)": {
|
|
1372
|
+
readonly attr: 422;
|
|
1373
|
+
readonly since: "7.141.0";
|
|
1374
|
+
};
|
|
1249
1375
|
readonly "POST /v1/tasks|/v1/tasks/stream|/v1/runs#\u9650\u5236\u4FA7\u540D\u5185\u5E26 *(excludeTools)": {
|
|
1250
1376
|
readonly attr: 200;
|
|
1251
1377
|
readonly since: "7.137.0";
|
|
@@ -1290,6 +1416,74 @@ export declare const SELF_MINTED_WIRE: {
|
|
|
1290
1416
|
readonly attr: 200;
|
|
1291
1417
|
readonly since: "7.139.0";
|
|
1292
1418
|
};
|
|
1419
|
+
readonly "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(\u4E0D\u70B9\u540D\u5C42\u7684\u6761\u76EE id / \u5E97\u7EA7\u8D26\u672C\u8BF7\u6C42,\u672C\u90E8\u7F72\u70B9\u540D\u7684\u5C42\u5206\u4F4F\u4E24\u53EA\u5E97;\u4F53 request.memory_layer)": {
|
|
1420
|
+
readonly attr: 400;
|
|
1421
|
+
readonly since: "7.140.0";
|
|
1422
|
+
};
|
|
1423
|
+
readonly "POST /v1/memory/erase|POST /v1/sessions/:id/memory/erase#erasure_store_unjudged(\u62B9\u9664\u843D\u5230\u90E8\u7F72\u7684\u5E97\u4E4B\u5916\u7684\u90A3\u53EA\u5E97:\u70B9\u540D\u7684\u5C42\u4F4F\u5728\u4E2A\u4EBA\u6302\u8F7D\u4E0A,\u6216\u6309\u4F1A\u8BDD\u62B9\u9664\u800C\u8FD9\u53EA\u4F1A\u8BDD\u5728\u53E6\u4E00\u53EA\u5E97\u6709\u8D21\u732E / \u90A3\u53EA\u5E97\u7684\u8D26\u8BFB\u4E0D\u51FA;\u4F53 memory.erasure_store_unjudged,\u4EC0\u4E48\u90FD\u6CA1\u5220)": {
|
|
1424
|
+
readonly attr: 409;
|
|
1425
|
+
readonly since: "7.140.0";
|
|
1426
|
+
};
|
|
1427
|
+
readonly "POST /v1/memory/export|POST /v1/memory/import|GET /v1/memory/origin/external|POST /v1/memory/erase#layers_span_two_stores(\u8BF7\u6C42\u70B9\u540D\u7684\u5C42\u5206\u4F4F\u4E24\u53EA\u5E97;\u4F53 request.memory_layer)": {
|
|
1428
|
+
readonly attr: 400;
|
|
1429
|
+
readonly since: "7.140.0";
|
|
1430
|
+
};
|
|
1431
|
+
readonly "\u8BB0\u5FC6\u8BF8\u53E3 + POST /v1/admin/memory/consolidation/run|GET /v1/admin/memory/consolidation|GET /v1/memory/export|POST /v1/memory/sync/:scope#layer_unreadable(\u8BF7\u6C42\u70B9\u540D\u7684\u5C42\u5F15\u64CE\u8BFB\u4E0D\u51FA;\u4F53 request.memory_layer)": {
|
|
1432
|
+
readonly attr: 400;
|
|
1433
|
+
readonly since: "7.140.0";
|
|
1434
|
+
};
|
|
1435
|
+
};
|
|
1436
|
+
};
|
|
1437
|
+
/**
|
|
1438
|
+
* 记忆动词的**层座**(`<端点>#<查询串 | 体>.scope` → 读法):不点名层的动词(条目 id / 会话 id / 店级账本)多一个可选的 `scope`,只用来定店;唯一读法 =
|
|
1439
|
+
* `http/memory-layer-reply.ts` 的 `readLayerSeat`(在场而不是非空串 ⇒ 400、面不调)。只登本版新增的座。
|
|
1440
|
+
*/
|
|
1441
|
+
readonly memoryLayerSeatKey: {
|
|
1442
|
+
readonly at: "记忆动词的层座(<端点>#<query | body>.scope → 读法;只登本版新增的)";
|
|
1443
|
+
readonly members: {
|
|
1444
|
+
readonly "GET /v1/memory/entries/:entryId/provenance#query.scope": {
|
|
1445
|
+
readonly attr: "optional;non-empty-string else 400 request.field_invalid;names the layer whose store answers";
|
|
1446
|
+
readonly since: "7.140.0";
|
|
1447
|
+
};
|
|
1448
|
+
readonly "GET /v1/memory/origin/clearances#query.scope": {
|
|
1449
|
+
readonly attr: "optional;non-empty-string else 400 request.field_invalid;names the layer whose store answers";
|
|
1450
|
+
readonly since: "7.140.0";
|
|
1451
|
+
};
|
|
1452
|
+
readonly "POST /v1/memory/origin/entries/:entryId/clear#body.scope": {
|
|
1453
|
+
readonly attr: "optional;non-empty-string else 400 request.field_invalid;names the layer whose store answers;not passed to the engine";
|
|
1454
|
+
readonly since: "7.140.0";
|
|
1455
|
+
};
|
|
1456
|
+
readonly "GET /v1/sessions/:id/memory-status#query.scope": {
|
|
1457
|
+
readonly attr: "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)";
|
|
1458
|
+
readonly since: "7.140.0";
|
|
1459
|
+
};
|
|
1460
|
+
readonly "POST /v1/sessions/:id/memory/erase#body.scope": {
|
|
1461
|
+
readonly attr: "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";
|
|
1462
|
+
readonly since: "7.140.0";
|
|
1463
|
+
};
|
|
1464
|
+
};
|
|
1465
|
+
};
|
|
1466
|
+
/**
|
|
1467
|
+
* `GET /v1/sessions/:id/memory-status` 200 体上本版新出现的顶层键:`memorySync` —— 本部署记忆同步腿的停驻事实(部署事实,不随会话、不随层座 `?scope=`;
|
|
1468
|
+
* 唯一读口 = 同步执行器的 `parked()`)。形 `{ parked: Array<{ scope, wayOut }> }`,`parked: []` = 在同步、没有层停驻;游标盘路径不上 wire。
|
|
1469
|
+
*/
|
|
1470
|
+
readonly sessionMemoryStatusKey: {
|
|
1471
|
+
readonly at: "GET /v1/sessions/:id/memory-status 200 体顶层键(<键> → 在场律)";
|
|
1472
|
+
readonly members: {
|
|
1473
|
+
readonly memorySync: {
|
|
1474
|
+
readonly attr: "present-iff this deployment runs a memory sync leg;{parked:[{scope,wayOut}]} in sync order;parked:[] ⇔ no layer parked;deployment fact (same for every session, ?scope= not applied)";
|
|
1475
|
+
readonly since: "7.141.0";
|
|
1476
|
+
};
|
|
1477
|
+
};
|
|
1478
|
+
};
|
|
1479
|
+
/** 停驻层出路 `memorySync.parked[].wayOut` 的闭集(同一只词也在运维行 `memory_sync_layer_parked` 的 `wayOut` 上)。`delete_cursor` = 删掉这一层的同步游标文件,下一轮从空基线重收敛(不推删除)。 */
|
|
1480
|
+
readonly memorySyncWayOut: {
|
|
1481
|
+
readonly at: "GET /v1/sessions/:id/memory-status memorySync.parked[].wayOut";
|
|
1482
|
+
readonly members: {
|
|
1483
|
+
delete_cursor: {
|
|
1484
|
+
attr: string;
|
|
1485
|
+
since: string;
|
|
1486
|
+
};
|
|
1293
1487
|
};
|
|
1294
1488
|
};
|
|
1295
1489
|
/**
|
|
@@ -1335,6 +1529,14 @@ export declare const SELF_MINTED_WIRE: {
|
|
|
1335
1529
|
readonly attr: "<field> <规则句> — the URL is kept as written (a parked task's resume context, logs), while images[i] can carry the image bytes inline: send { data, mimeType } instead of a URL that holds the credential";
|
|
1336
1530
|
readonly since: "7.136.0";
|
|
1337
1531
|
};
|
|
1532
|
+
readonly "400 request.field_invalid#settings.permissions.deny|ask.bad_entry": {
|
|
1533
|
+
readonly attr: "<field>[<index>] is neither a non-empty rule string nor a { \"rule\", \"layer\" } entry (…) — every entry must be one. …";
|
|
1534
|
+
readonly since: "7.141.0";
|
|
1535
|
+
};
|
|
1536
|
+
readonly "400 request.field_invalid#settings.permissions.allow.bad_entry": {
|
|
1537
|
+
readonly attr: "<field>[<index>] is not a string — every entry must be a permission-rule string (a settings layer's { \"rule\", \"layer\" } entry is read in deny / ask only). …";
|
|
1538
|
+
readonly since: "7.141.0";
|
|
1539
|
+
};
|
|
1338
1540
|
readonly "400 request.field_invalid#a2aPeers.not_array": {
|
|
1339
1541
|
readonly attr: "head: a2aPeers is <shape>, not an array of A2A peer declarations";
|
|
1340
1542
|
readonly since: "7.136.0";
|
|
@@ -1737,6 +1939,19 @@ export declare const SELF_MINTED_WIRE: {
|
|
|
1737
1939
|
readonly attr: "cadence-without-horizon-refuses-boot";
|
|
1738
1940
|
readonly since: "7.139.0";
|
|
1739
1941
|
};
|
|
1942
|
+
/** device 车道设备入口必填:`DEVICE_RELAY_URL` 行改述两种合法值(ws(s) URL / 字面 none)与缺席拒起;缺席说明由「缺席 ⇒ 设备按引擎地址拨」改为「无缺省」;行上新带可写词 none(url 行上的可写词原样回显)。 */
|
|
1943
|
+
readonly "GET /v1/config/catalog#rows[DEVICE_RELAY_URL].semantics": {
|
|
1944
|
+
readonly attr: "required-on-device-lane;ws-url-or-literal-none;none-with-bindings-warns";
|
|
1945
|
+
readonly since: "7.141.0";
|
|
1946
|
+
};
|
|
1947
|
+
readonly "GET /v1/config/catalog#rows[DEVICE_RELAY_URL].derivedDefaultNote": {
|
|
1948
|
+
readonly attr: "no-default;absent-refuses-boot";
|
|
1949
|
+
readonly since: "7.141.0";
|
|
1950
|
+
};
|
|
1951
|
+
readonly "GET /v1/config/catalog#rows[DEVICE_RELAY_URL].enumValues": {
|
|
1952
|
+
readonly attr: "none(echoed-verbatim)";
|
|
1953
|
+
readonly since: "7.141.0";
|
|
1954
|
+
};
|
|
1740
1955
|
/**
|
|
1741
1956
|
* MCP 远端失败句在面板与重拨回执上的出口读法:出口座的 `mcp-remote-text` 行(`trace/exit-seat.ts`)—— 与 trace / 通告同一个脱敏器(引擎记号 `[redacted]` = 已抹的值,原样;
|
|
1742
1957
|
* 引擎记号占了方案词位时头值余下的部分照抹;引擎放过的形照抹),界 200(切点不落进记号)。7.137.0 是按记号切开、逐段过 `redactSecrets` 的另一只读法
|
|
@@ -1766,6 +1981,15 @@ export declare const SELF_MINTED_WIRE: {
|
|
|
1766
1981
|
readonly attr: "names-engine-notice:model.capability_downgraded";
|
|
1767
1982
|
readonly since: "7.137.0";
|
|
1768
1983
|
};
|
|
1984
|
+
/**
|
|
1985
|
+
* 7.140.0:会话记忆状态不带层座 ⇒ 本部署每一只店的引擎答案按一条折叠律合成一份(`memory-operator-faces.ts` `foldPlaneStatuses`;契约 §9 开头):
|
|
1986
|
+
* 计数相加 / 最近一次取大 / 任一店有采集记录即 true / 任一店读不出 ⇒ 那一键缺席。一只店 ⇒ 恒等(单店部署字节同上一版)。
|
|
1987
|
+
* 钉 test/memory-operator-faces.test.ts「逐店折叠律」、test/memory-layer-seat-http.test.ts「会话记忆状态不带层座」。
|
|
1988
|
+
*/
|
|
1989
|
+
readonly "GET /v1/sessions/:id/memory-status#committedCount|foldedCount|lastCaptureAt|captureOptedOut|optOutSource(\u4E0D\u5E26\u5C42\u5EA7)": {
|
|
1990
|
+
readonly attr: "fold-across-deployment-stores(sum|max|any-record|absent-if-any-unreadable);one-store⇒identity";
|
|
1991
|
+
readonly since: "7.140.0";
|
|
1992
|
+
};
|
|
1769
1993
|
};
|
|
1770
1994
|
};
|
|
1771
1995
|
};
|
|
@@ -45,6 +45,7 @@ export const SELF_MINTED_WIRE = {
|
|
|
45
45
|
"memory.erasure_evidence_unavailable": { attr: 409, since: "7.108.0" },
|
|
46
46
|
"memory.erasure_selector_mismatch": { attr: 409, since: "7.108.0" },
|
|
47
47
|
"memory.erasure_census_incomplete": { attr: 409, since: "7.108.0" },
|
|
48
|
+
"memory.erasure_store_unjudged": { attr: 409, since: "7.140.0" },
|
|
48
49
|
"internal.memory_control_plane_corrupt": { attr: 500, since: "7.108.0" },
|
|
49
50
|
},
|
|
50
51
|
},
|
|
@@ -149,6 +150,13 @@ export const SELF_MINTED_WIRE = {
|
|
|
149
150
|
title: { attr: "-", since: "7.133.0" },
|
|
150
151
|
},
|
|
151
152
|
},
|
|
153
|
+
mcpTransportKind: {
|
|
154
|
+
at: "GET /v1/capabilities mcpTransportKinds[]",
|
|
155
|
+
members: {
|
|
156
|
+
stdio: { attr: "-", since: "7.141.0" },
|
|
157
|
+
http: { attr: "-", since: "7.141.0" },
|
|
158
|
+
},
|
|
159
|
+
},
|
|
152
160
|
credentialPlaneSandboxGitState: {
|
|
153
161
|
at: "GET /v1/capabilities credentialPlane.sandboxGit.state",
|
|
154
162
|
members: {
|
|
@@ -227,6 +235,13 @@ export const SELF_MINTED_WIRE = {
|
|
|
227
235
|
deploymentPackages: { attr: "present-iff deployment mod packages loaded at boot", since: "7.138.0" },
|
|
228
236
|
},
|
|
229
237
|
},
|
|
238
|
+
healthEngineLeaseKey: {
|
|
239
|
+
at: "GET /health engineLease",
|
|
240
|
+
members: {
|
|
241
|
+
lingerMs: { attr: "present-iff engine lease leg armed and observing", since: "7.141.0" },
|
|
242
|
+
tickMs: { attr: "present-iff engine lease leg armed and observing", since: "7.141.0" },
|
|
243
|
+
},
|
|
244
|
+
},
|
|
230
245
|
modelsRowKey: {
|
|
231
246
|
at: "GET /v1/models models[] 行键(<键> → 在场律)",
|
|
232
247
|
members: {
|
|
@@ -417,6 +432,33 @@ export const SELF_MINTED_WIRE = {
|
|
|
417
432
|
acceptableForm: { attr: "present-iff", since: "7.137.0" },
|
|
418
433
|
},
|
|
419
434
|
},
|
|
435
|
+
permissionModeVerbBodyKey: {
|
|
436
|
+
at: "POST /v1/runs/:id/permission-mode 200 体(<键> → 在场律)",
|
|
437
|
+
members: {
|
|
438
|
+
taskId: { attr: "always", since: "7.141.0" },
|
|
439
|
+
sessionId: { attr: "always", since: "7.141.0" },
|
|
440
|
+
status: { attr: "always;running", since: "7.141.0" },
|
|
441
|
+
permissionMode: { attr: "always;engine receipt verbatim { requested?, effective, foldedBy? }", since: "7.141.0" },
|
|
442
|
+
admission: { attr: "present-iff the admission judge changed the word;{ requested, admitted, foldedBy }", since: "7.141.0" },
|
|
443
|
+
persisted: { attr: "always", since: "7.141.0" },
|
|
444
|
+
persistMiss: { attr: "present-iff persisted:false", since: "7.141.0" },
|
|
445
|
+
},
|
|
446
|
+
},
|
|
447
|
+
permissionModeAdmissionFold: {
|
|
448
|
+
at: "POST /v1/runs/:id/permission-mode 200 体 admission.foldedBy",
|
|
449
|
+
members: {
|
|
450
|
+
entry_floor: { attr: "-", since: "7.141.0" },
|
|
451
|
+
disable_auto_mode: { attr: "-", since: "7.141.0" },
|
|
452
|
+
},
|
|
453
|
+
},
|
|
454
|
+
permissionModePersistMiss: {
|
|
455
|
+
at: "POST /v1/runs/:id/permission-mode 200 体 persistMiss(persisted:false 时)",
|
|
456
|
+
members: {
|
|
457
|
+
claim_released: { attr: "-", since: "7.141.0" },
|
|
458
|
+
context_absent: { attr: "-", since: "7.141.0" },
|
|
459
|
+
store_failed: { attr: "-", since: "7.141.0" },
|
|
460
|
+
},
|
|
461
|
+
},
|
|
420
462
|
endpointFaceStatus: {
|
|
421
463
|
at: "逐端点应答面 → 状态(<端点>#<面> → 状态;只登记本版改了状态的面)",
|
|
422
464
|
members: {
|
|
@@ -436,6 +478,9 @@ export const SELF_MINTED_WIRE = {
|
|
|
436
478
|
"POST /v1/sessions/:id/sync/import#identical_repush_blob_missing(体 missing_blob)": { attr: 422, since: "7.136.0" },
|
|
437
479
|
"PATCH /v1/sessions/:id#title_no_visible_character(体 request.field_invalid)": { attr: 400, since: "7.136.0" },
|
|
438
480
|
"POST /v1/sessions/:id/sync/import#title_no_visible_character(Phase A 体的 title;体 request.field_invalid)": { attr: 400, since: "7.136.0" },
|
|
481
|
+
"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" },
|
|
482
|
+
"POST /v1/sessions/:id/fork#stamped_archive(DB_BACKEND=local;源存档仍带更早版本写下的属主戳;零写;体 conflict + 带戳存档的固定句)": { attr: 409, since: "7.141.0" },
|
|
483
|
+
"POST /v1/sessions/:id/sync/import/:stagingId/entries#stamped_archive(DB_BACKEND=local;提交落在仍带属主戳的存档上;行净零写;体 conflict + 带戳存档的固定句)": { attr: 409, since: "7.141.0" },
|
|
439
484
|
"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" },
|
|
440
485
|
"POST /v1/tasks|/v1/tasks/stream|/v1/runs#a2aPeers_malformed(新提交;列表不是数组 / 条目不是对象 / 键值判不出形;体 request.field_invalid)": { attr: 400, since: "7.136.0" },
|
|
441
486
|
"POST /v1/tasks|/v1/tasks/stream|/v1/runs#a2aPeers_unknown_key(新提交;词表外的键;体 request.body_shape + unknownKeys)": { attr: 400, since: "7.136.0" },
|
|
@@ -449,6 +494,8 @@ export const SELF_MINTED_WIRE = {
|
|
|
449
494
|
"POST /v1/tasks|/v1/tasks/stream|/v1/runs#skills[i].mods|agents[i].skills[j].mods(新提交;体 request.field_invalid)": { attr: 400, since: "7.137.0" },
|
|
450
495
|
"PUT /v1/sessions/:id/policy|POST /v1/sessions/:id/sync/import#toolDeny 名内带 *(`*` / `mcp__git*` / `Bas*`)": { attr: 200, since: "7.137.0" },
|
|
451
496
|
"POST /v1/tasks|/v1/tasks/stream|/v1/runs#限制侧名内带 *(settings.permissions.deny|ask)": { attr: 200, since: "7.137.0" },
|
|
497
|
+
"POST /v1/tasks|/v1/tasks/stream|/v1/runs#settings.permissions.deny|ask 带层条目 { rule, layer }(新提交;layer = 设置来源词)": { attr: 200, since: "7.141.0" },
|
|
498
|
+
"POST /v1/tasks|/v1/tasks/stream|/v1/runs#user 层 / 形路径规则而执行环境的配置根读不出(沙箱车道没转 SEMA_CONFIG_DIR 且 home 未知;体 request.unprocessable + problems[].reason home_unresolvable;续跑 409 同句)": { attr: 422, since: "7.141.0" },
|
|
452
499
|
"POST /v1/tasks|/v1/tasks/stream|/v1/runs#限制侧名内带 *(excludeTools)": { attr: 200, since: "7.137.0" },
|
|
453
500
|
"POST /v1/tasks|/v1/tasks/stream|/v1/runs#限制侧名内带 *(skills[i].disallowedTools|agents[i].skills[j].disallowedTools)": { attr: 200, since: "7.137.0" },
|
|
454
501
|
"POST /v1/tasks|/v1/tasks/stream|/v1/runs#限制侧名内带 *(agents[i].denyTools)": { attr: 200, since: "7.137.0" },
|
|
@@ -460,6 +507,32 @@ export const SELF_MINTED_WIRE = {
|
|
|
460
507
|
"PATCH /v1/sessions/:id#owner_changed_after_gate(门那一读之后同一会话的属主被改;体 not_found.session)": { attr: 404, since: "7.139.0" },
|
|
461
508
|
"PATCH /v1/sessions/:id#expectedRowTag_stale(行已不在那只标签上;体 conflict.session_row_changed + currentRow)": { attr: 409, since: "7.139.0" },
|
|
462
509
|
"PATCH /v1/sessions/:id#expectedRowTag_current(行仍在那只标签上;体 = 列表行)": { attr: 200, since: "7.139.0" },
|
|
510
|
+
"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)": { attr: 400, since: "7.140.0" },
|
|
511
|
+
"POST /v1/memory/erase|POST /v1/sessions/:id/memory/erase#erasure_store_unjudged(抹除落到部署的店之外的那只店:点名的层住在个人挂载上,或按会话抹除而这只会话在另一只店有贡献 / 那只店的账读不出;体 memory.erasure_store_unjudged,什么都没删)": { attr: 409, since: "7.140.0" },
|
|
512
|
+
"POST /v1/memory/export|POST /v1/memory/import|GET /v1/memory/origin/external|POST /v1/memory/erase#layers_span_two_stores(请求点名的层分住两只店;体 request.memory_layer)": { attr: 400, since: "7.140.0" },
|
|
513
|
+
"记忆诸口 + 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)": { attr: 400, since: "7.140.0" },
|
|
514
|
+
},
|
|
515
|
+
},
|
|
516
|
+
memoryLayerSeatKey: {
|
|
517
|
+
at: "记忆动词的层座(<端点>#<query | body>.scope → 读法;只登本版新增的)",
|
|
518
|
+
members: {
|
|
519
|
+
"GET /v1/memory/entries/:entryId/provenance#query.scope": { attr: "optional;non-empty-string else 400 request.field_invalid;names the layer whose store answers", since: "7.140.0" },
|
|
520
|
+
"GET /v1/memory/origin/clearances#query.scope": { attr: "optional;non-empty-string else 400 request.field_invalid;names the layer whose store answers", since: "7.140.0" },
|
|
521
|
+
"POST /v1/memory/origin/entries/:entryId/clear#body.scope": { attr: "optional;non-empty-string else 400 request.field_invalid;names the layer whose store answers;not passed to the engine", since: "7.140.0" },
|
|
522
|
+
"GET /v1/sessions/:id/memory-status#query.scope": { attr: "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" },
|
|
523
|
+
"POST /v1/sessions/:id/memory/erase#body.scope": { attr: "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" },
|
|
524
|
+
},
|
|
525
|
+
},
|
|
526
|
+
sessionMemoryStatusKey: {
|
|
527
|
+
at: "GET /v1/sessions/:id/memory-status 200 体顶层键(<键> → 在场律)",
|
|
528
|
+
members: {
|
|
529
|
+
memorySync: { attr: "present-iff this deployment runs a memory sync leg;{parked:[{scope,wayOut}]} in sync order;parked:[] ⇔ no layer parked;deployment fact (same for every session, ?scope= not applied)", since: "7.141.0" },
|
|
530
|
+
},
|
|
531
|
+
},
|
|
532
|
+
memorySyncWayOut: {
|
|
533
|
+
at: "GET /v1/sessions/:id/memory-status memorySync.parked[].wayOut",
|
|
534
|
+
members: {
|
|
535
|
+
delete_cursor: { attr: "-", since: "7.141.0" },
|
|
463
536
|
},
|
|
464
537
|
},
|
|
465
538
|
refusalSentenceForm: {
|
|
@@ -474,6 +547,8 @@ export const SELF_MINTED_WIRE = {
|
|
|
474
547
|
"503 state.file_history_unreadable#store_deployment_fault(会话同步三条拉取口)": { attr: "this session's stored state cannot be read: the store does not match what this deployment requires (a table is missing or the database account lacks a privilege), so nothing was exported — retrying will not help until an operator repairs the store", since: "7.137.0" },
|
|
475
548
|
"connect_failed(run 失败终局)#snapshot_bucket_missing(k8s 车道读 latest 得 404 NoSuchBucket;连沙箱失败,一只 pod 都不建)": { attr: "workspace space pointer read failed (snapshot_bucket_missing): the workspace snapshot bucket <name> (WORKSPACE_SNAPSHOT_BUCKET; default workspaces) does not exist in the object store — refusing to start this run … Ways out: create the bucket, or set WORKSPACE_SNAPSHOT_BUCKET to one that exists, or set WORKSPACE_PERSIST=off …", since: "7.136.0" },
|
|
476
549
|
"400 request.field_invalid#images[i].url.credential": { attr: "<field> <规则句> — the URL is kept as written (a parked task's resume context, logs), while images[i] can carry the image bytes inline: send { data, mimeType } instead of a URL that holds the credential", since: "7.136.0" },
|
|
550
|
+
"400 request.field_invalid#settings.permissions.deny|ask.bad_entry": { attr: "<field>[<index>] is neither a non-empty rule string nor a { \"rule\", \"layer\" } entry (…) — every entry must be one. …", since: "7.141.0" },
|
|
551
|
+
"400 request.field_invalid#settings.permissions.allow.bad_entry": { attr: "<field>[<index>] is not a string — every entry must be a permission-rule string (a settings layer's { \"rule\", \"layer\" } entry is read in deny / ask only). …", since: "7.141.0" },
|
|
477
552
|
"400 request.field_invalid#a2aPeers.not_array": { attr: "head: a2aPeers is <shape>, not an array of A2A peer declarations", since: "7.136.0" },
|
|
478
553
|
"400 request.field_invalid#a2aPeers[i].not_object": { attr: "head: a2aPeers[i] is <shape>, not an A2A peer declaration (an object)", since: "7.136.0" },
|
|
479
554
|
"400 request.field_invalid#a2aPeers[i].<key>.unusable(url / cardUrl 凭据拒之外的键值坏形)": { attr: "<field> (peer <name>) is not a usable declaration — <rule> …", since: "7.136.0" },
|
|
@@ -590,11 +665,15 @@ export const SELF_MINTED_WIRE = {
|
|
|
590
665
|
"GET /v1/config/catalog#rows[CONFIG_PROVIDER].semantics": { attr: "remote-without-center-url-refuses-boot", since: "7.139.0" },
|
|
591
666
|
"GET /v1/config/catalog#rows[RETENTION_MODE].semantics": { attr: "enforce-without-horizon-or-cadence-refuses-boot", since: "7.139.0" },
|
|
592
667
|
"GET /v1/config/catalog#rows[RETENTION_SWEEP_INTERVAL_SEC].semantics": { attr: "cadence-without-horizon-refuses-boot", since: "7.139.0" },
|
|
668
|
+
"GET /v1/config/catalog#rows[DEVICE_RELAY_URL].semantics": { attr: "required-on-device-lane;ws-url-or-literal-none;none-with-bindings-warns", since: "7.141.0" },
|
|
669
|
+
"GET /v1/config/catalog#rows[DEVICE_RELAY_URL].derivedDefaultNote": { attr: "no-default;absent-refuses-boot", since: "7.141.0" },
|
|
670
|
+
"GET /v1/config/catalog#rows[DEVICE_RELAY_URL].enumValues": { attr: "none(echoed-verbatim)", since: "7.141.0" },
|
|
593
671
|
"GET /v1/sessions/:id/mcp#servers[].error": { attr: "exit-seat:mcp-remote-text(engine-mark=masked-value)+truncate:200", since: "7.138.0" },
|
|
594
672
|
"POST /v1/sessions/:id/mcp/reconnect#reason|status.error|listingIncomplete.error": { attr: "exit-seat:mcp-remote-text(engine-mark=masked-value)+truncate:200", since: "7.138.0" },
|
|
595
673
|
"GET /v1/config/catalog#rows[MODEL_VISION].semantics": { attr: "names-engine-notice:model.capability_downgraded", since: "7.137.0" },
|
|
596
674
|
"GET /v1/config/catalog#rows[MODEL_VISION].derivedDefaultNote": { attr: "names-engine-notice:model.capability_downgraded", since: "7.137.0" },
|
|
597
675
|
"GET /v1/config/catalog#rows[MODEL_CHEAP_VISION].semantics": { attr: "names-engine-notice:model.capability_downgraded", since: "7.137.0" },
|
|
676
|
+
"GET /v1/sessions/:id/memory-status#committedCount|foldedCount|lastCaptureAt|captureOptedOut|optOutSource(不带层座)": { attr: "fold-across-deployment-stores(sum|max|any-record|absent-if-any-unreadable);one-store⇒identity", since: "7.140.0" },
|
|
598
677
|
},
|
|
599
678
|
},
|
|
600
679
|
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type CardVoidPort } from "./card-void.js";
|
|
2
|
+
/**
|
|
3
|
+
* 结果上若有验证器自己的停驻(带凭据)⇒ 作废它那张 pending 卡;否则零 I/O。**必须在出口封口之前调**(封口摘掉的正是这里要用的凭据)。
|
|
4
|
+
* 不抛:作废失败只让卡回到修前的形(由兜底收割),响亮留痕({@link VOID_FAILED});结算照常往下走。
|
|
5
|
+
* 卡已不 pending / 已不在 ⇒ 什么都不做(CAS 输给了收割,结局相同)。卡的会话与停驻报的验证器会话不一致 ⇒ 不动它(只作废**这一张**)。
|
|
6
|
+
*/
|
|
7
|
+
export declare function voidVerifierPauseCard(result: unknown, cards: CardVoidPort | undefined): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=verifier-pause-card.d.ts.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { voidPendingCard } from "./card-void.js";
|
|
2
|
+
const VOID_FAILED = "server.verifier-pause.card-void-failed";
|
|
3
|
+
export async function voidVerifierPauseCard(result, cards) {
|
|
4
|
+
const pause = verifierPauseCardOf(result);
|
|
5
|
+
if (pause !== undefined)
|
|
6
|
+
await voidPendingCard(pause, cards, VOID_FAILED);
|
|
7
|
+
}
|
|
8
|
+
function verifierPauseCardOf(result) {
|
|
9
|
+
if (result === null || typeof result !== "object")
|
|
10
|
+
return undefined;
|
|
11
|
+
const pause = result.verification?.verifierPause;
|
|
12
|
+
if (pause === null || typeof pause !== "object")
|
|
13
|
+
return undefined;
|
|
14
|
+
const { checkpointToken, sessionId } = pause;
|
|
15
|
+
return typeof checkpointToken === "string" && checkpointToken !== "" && typeof sessionId === "string"
|
|
16
|
+
? { token: checkpointToken, sessionId }
|
|
17
|
+
: undefined;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=verifier-pause-card.js.map
|
|
@@ -107,17 +107,15 @@ export declare const PLANE_REFUSAL_INVARIANT_OF: {
|
|
|
107
107
|
readonly "config.gateway_fallback_without_primary": "model-route-endpoint";
|
|
108
108
|
};
|
|
109
109
|
/**
|
|
110
|
-
*
|
|
110
|
+
* 契约包出码、执法者是本仓但今天**未执法**的组拒码:本地配置腿上「管模型面的目录会顶替已声明的 env 表、决定不是 `replaced`」那道闸。
|
|
111
111
|
*
|
|
112
|
-
* 词义:settings-schema 发布说明里的「engine / 引擎一侧」指**本仓(worker)**,不是 `@sema-agent/core` ——
|
|
113
|
-
* `MODEL_ID` / `config.d`
|
|
112
|
+
* 词义:settings-schema 发布说明里的「engine / 引擎一侧」指**本仓(worker)**,不是 `@sema-agent/core` —— 这个码要的全部输入(本地配置腿、env 表、模型面 stage 与组拒口)只在本仓,core 里没有读
|
|
113
|
+
* `MODEL_ID` / `config.d` 的地方、也没有组拒码。所以本仓 stage 现在没有对应的不变量、不铸这个码,不是因为「归引擎」,而是**还没做**:
|
|
114
114
|
* · `CATALOG_REPLACES_ENV_MODELS_CODE`:执法是一整组跨仓件 —— 开机迁移 SS-M11(铸决定文档)· 本地腿每拍读决定(读数身份进候选的 etag)· 目录信任判官走根级文档 · 命令行 / 桌面 / 客户端核心三个写者先接契约包的计划助手;
|
|
115
115
|
* 候设计票。在那之前,候选目录管着模型面而 env 表也声明了时,仍照旧由目录服务(与升级前逐位同)。
|
|
116
|
-
*
|
|
117
|
-
* (summarize 的链是 → default,即回落缺省模型)并通告 `model.role_defaulted`;链上没有可解的模型才拒 —— 前提与所钉 core 相抵,候上游(settings-schema / core)重定义或退役这个码;在那之前 summarize 角色绑到不可用条目时仍是角色绑定那一行 warn(`ROLE_BINDING_UNAVAILABLE_HINT`),不是组拒。
|
|
118
|
-
* 两码开始被铸之后,它们进 `/health.modelRefusals.plane` 的座位是**另案设计**(现在没有座:见 `model-plane-face.ts` 对「装配期被引擎整份拒收」的披露),不在这张表里偷铸一个不变量替它占位。
|
|
116
|
+
* 这个码开始被铸之后,它进 `/health.modelRefusals.plane` 的座位是**另案设计**(现在没有座:见 `model-plane-face.ts` 对「装配期被引擎整份拒收」的披露),不在这张表里偷铸一个不变量替它占位。
|
|
119
117
|
*/
|
|
120
|
-
export declare const ENGINE_MINTED_PLANE_REFUSAL_CODES: readonly ["config.catalog_replaces_env_models"
|
|
118
|
+
export declare const ENGINE_MINTED_PLANE_REFUSAL_CODES: readonly ["config.catalog_replaces_env_models"];
|
|
121
119
|
/**
|
|
122
120
|
* [ref] —— **「无中心配置」档的候选**:中心凭证换人时,server 把在用的中心配置降到这一档({@link applyEffective} 吃它,和吃任何候选走同一条 stage → swap → commit)。
|
|
123
121
|
* 它的意思是「**撤回**中心配置」—— 中心下发的每个热面回 env 底:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { expandTiers, modelOriginOf, resolveTaskModel as coreResolveTaskModel } from "@sema-agent/core";
|
|
2
|
-
import { CATALOG_REPLACES_ENV_MODELS_CODE,
|
|
2
|
+
import { CATALOG_REPLACES_ENV_MODELS_CODE, WEB_ADMIN_ENV, narrowAtMention, resolveActiveTiers, resolveCatalogDefaultModel } from "@sema-agent/settings-schema";
|
|
3
3
|
import { modelKeyPoison } from "../key-resolver.js";
|
|
4
4
|
import { buildEnvModelIdNotServedNotice, mintCapabilityKeys, readAtMention, servedModelTableLeg } from "../model-select.js";
|
|
5
5
|
import { applyAutoCompactWindow, buildModelCostKey, ownCredentialHitsInForce, parseAutonomy, unmatchableToolNamesRefusal } from "../config.js";
|
|
@@ -248,7 +248,7 @@ export const PLANE_REFUSAL_INVARIANT_OF = {
|
|
|
248
248
|
"config.model_route_endpoint_missing": "model-route-endpoint",
|
|
249
249
|
"config.gateway_fallback_without_primary": "model-route-endpoint",
|
|
250
250
|
};
|
|
251
|
-
export const ENGINE_MINTED_PLANE_REFUSAL_CODES = [CATALOG_REPLACES_ENV_MODELS_CODE
|
|
251
|
+
export const ENGINE_MINTED_PLANE_REFUSAL_CODES = [CATALOG_REPLACES_ENV_MODELS_CODE];
|
|
252
252
|
function modelPlaneGroupReport(group) {
|
|
253
253
|
return {
|
|
254
254
|
applied: MODEL_PLANE_DOMAINS.flatMap((d) => (group.stages[d] !== undefined ? MODEL_PLANE_SURFACES[d] : [])),
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 配置候选的**唯一判官**:一份候选(中心有效视图,或本地 `config.d` 读出的那份)能不能收 —— 只有这一种判法。
|
|
3
3
|
*
|
|
4
|
-
* 判据(三件,任一即拒;每条拒因带成因词,闭集 {@link CandidateRejectReason}):读腿交出的 `domainErrors`(
|
|
4
|
+
* 判据(三件,任一即拒;每条拒因带成因词,闭集 {@link CandidateRejectReason}):读腿交出的 `domainErrors`(某个域判形失败 / 拼错键 / 悬空引用:那个域已落
|
|
5
5
|
* schema 缺省)与 prompts 面的判官(`judgePromptsWire`:契约包的 wire 形再交引擎 verify —— 中心层只有一种形)—— 成因 `domain_invalid`;读腿交出的
|
|
6
|
-
* `
|
|
7
|
-
*
|
|
6
|
+
* `refusedDocuments`(读它的域之前契约就拒了的那份文档 —— 契约的类型 `ConfigDocumentRefusal`:带事实的退役域 = 墓碑,或 `config.d` 里契约的文件层拒的一份 ——
|
|
7
|
+
* 空 / 坏 JSON / 不是对象 / 读失败)—— 成因就是那份发现自带的词(契约闭集 `CONFIG_DOCUMENT_REFUSAL_REASONS`),拒行的 `domain` 是它的 `document`。
|
|
8
|
+
* 任一 ⇒ `rejected`:**整份候选不收**,一个域都不应用。
|
|
9
|
+
* 被拒文档此前要么在读腿整包抛、走「源不可达」那条臂(墓碑;门控域的坏文件),要么被读成「域按缺省落 + 域诊断」(目录域的坏文件);现在读腿只交数据,
|
|
8
10
|
* 坏候选只有本判官一种判法。
|
|
9
11
|
* 读腿的逐条丢弃(`droppedEntries`)不在这里 —— 颗粒是条目的失效留在条目上,候选照收(调用方响亮点名)。
|
|
10
12
|
*
|
|
@@ -27,23 +29,25 @@
|
|
|
27
29
|
* (盘上 LKG 的读回复判也经本判官,`config-lkg.ts`)。
|
|
28
30
|
*/
|
|
29
31
|
import type { PublishedPromptArtifact } from "@sema-agent/core";
|
|
32
|
+
import type { ConfigDocumentRefusal, ConfigDocumentRefusalReason } from "@sema-agent/settings-schema";
|
|
30
33
|
import type { EffectiveConfig } from "./types.js";
|
|
31
34
|
/** 读腿交出的一条域级诊断(与 `FetchEffectiveResult.domainErrors` 同形;error 文案已在产出边界脱敏)。 */
|
|
32
35
|
export interface CandidateDomainError {
|
|
33
36
|
readonly domain: string;
|
|
34
37
|
readonly error: string;
|
|
35
38
|
}
|
|
36
|
-
/** 判官拒一份候选的成因(闭集):某个域判形失败(含 prompts 面)
|
|
37
|
-
|
|
39
|
+
/** 判官拒一份候选的成因(闭集):某个域判形失败(含 prompts 面)`domain_invalid` ∪ 被拒文档自带的词(契约闭集 `CONFIG_DOCUMENT_REFUSAL_REASONS`:
|
|
40
|
+
* `empty` / `invalid_json` / `not_object` / `io` / `too_deep` 文件层,`retired_domain` 墓碑)—— 被拒文档的词表只在契约一处定义,这里派生(契约加词 ⇒ 按词穷举的读者编译红)。 */
|
|
41
|
+
export type CandidateRejectReason = "domain_invalid" | ConfigDocumentRefusalReason;
|
|
38
42
|
/** 拒判里的一条:哪一域、为什么(读腿 / 契约包的原句)、成因词。`config_candidate_rejected` 行的 `errors` 就是这一列。 */
|
|
39
43
|
export interface CandidateDomainRejection extends CandidateDomainError {
|
|
40
44
|
readonly reason: CandidateRejectReason;
|
|
41
45
|
}
|
|
42
|
-
/** 判官的输入:一份读出来的候选。`
|
|
46
|
+
/** 判官的输入:一份读出来的候选。`refusedDocuments` = 读腿交出的被拒文档(两条读腿同形,契约的类型 `ConfigDocumentRefusal`;判官只读文档名、拒句与成因词)。 */
|
|
43
47
|
export interface ConfigCandidateRead {
|
|
44
48
|
readonly effective: EffectiveConfig;
|
|
45
49
|
readonly domainErrors?: readonly CandidateDomainError[];
|
|
46
|
-
readonly
|
|
50
|
+
readonly refusedDocuments?: readonly Pick<ConfigDocumentRefusal, "document" | "error" | "reason">[];
|
|
47
51
|
}
|
|
48
52
|
export type ConfigCandidateVerdict =
|
|
49
53
|
/** `prompts` = 候选的中心层(引擎 verify 过的发布形 artifact;候选不带 prompts 键 ⇒ `undefined` = 撤下中心层、内置提示词服务)。 */
|
|
@@ -5,7 +5,7 @@ export function judgeConfigCandidate(r) {
|
|
|
5
5
|
const errors = [
|
|
6
6
|
...(r.domainErrors ?? []).map((de) => ({ domain: de.domain, error: de.error, reason: "domain_invalid" })),
|
|
7
7
|
...(promptsGate !== undefined && !promptsGate.ok ? [{ domain: "prompts", error: promptsGate.error, reason: "domain_invalid" }] : []),
|
|
8
|
-
...(r.
|
|
8
|
+
...(r.refusedDocuments ?? []).map((d) => ({ domain: d.document, error: d.error, reason: d.reason })),
|
|
9
9
|
];
|
|
10
10
|
if (errors.length === 0)
|
|
11
11
|
return { verdict: "clean", prompts: promptsGate?.ok ? promptsGate.artifact : undefined };
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { type EffectiveReadWarning, type EntitlementRuntimeCaps } from "@sema-agent/settings-schema";
|
|
1
|
+
import { type ConfigDocumentRefusal, type EffectiveReadWarning, type EntitlementRuntimeCaps } from "@sema-agent/settings-schema";
|
|
2
2
|
import type { ScenarioRuling } from "../capabilities/scenarios.js";
|
|
3
3
|
import type { EffectiveConfig, ExecutionRuling } from "./types.js";
|
|
4
|
-
import { type DroppedConfigEntry, type
|
|
4
|
+
import { type DroppedConfigEntry, type UnreadConfigFile } from "./read-warnings.js";
|
|
5
5
|
import { type CenterEndpoint } from "./center-request.js";
|
|
6
6
|
/** GET the effective config (Bearer + ETag). null = 304 (unchanged). Throws on transport/HTTP error, and on a
|
|
7
7
|
* payload that is not an effective config at all(非对象 / version 非有限数 / gate 域坏形——[ref] 裁B)。
|
|
8
|
-
* `
|
|
8
|
+
* `refusedDocuments`:被拒文档(契约类型 `ConfigDocumentRefusal`,与本地腿同键同义;wire 上只有一种 —— 带事实的退役域,墓碑,成因词 `retired_domain`)不抛 —— 交成发现、那一键不进 effective,
|
|
9
|
+
* 候选判官整拒这份候选。
|
|
9
10
|
* `domainErrors`:坏 catalog 域(schema default 已落)逐域单列——与本地腿 `FetchEffectiveResult` 同键同义,
|
|
10
11
|
* boot/refresh 的候选门直接消费。`droppedEntries`([ref] ②):schema 逐条丢掉的条目(坐标 + 字段诊断)——
|
|
11
12
|
* **不**进候选门,调用方响亮点名、其余照用(分面单点 `splitFoldedReadWarnings`,与本地腿同一只)。
|
|
@@ -25,7 +26,7 @@ export declare function fetchEffective(center: CenterEndpoint, etag: string | un
|
|
|
25
26
|
}>;
|
|
26
27
|
droppedEntries?: DroppedConfigEntry[];
|
|
27
28
|
unreadFiles?: UnreadConfigFile[];
|
|
28
|
-
|
|
29
|
+
refusedDocuments?: ConfigDocumentRefusal[];
|
|
29
30
|
readWarnings: readonly EffectiveReadWarning[];
|
|
30
31
|
credentialIdentity: string;
|
|
31
32
|
} | null>;
|