@sema-agent/sdk 11.0.1 → 11.2.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/README.md +52 -2
- package/dist/client.d.ts +43 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +47 -0
- package/dist/client.js.map +1 -1
- package/dist/errors.d.ts +25 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +66 -2
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +9 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/resources/rules.d.ts +68 -28
- package/dist/resources/rules.d.ts.map +1 -1
- package/dist/resources/rules.js +34 -14
- package/dist/resources/rules.js.map +1 -1
- package/dist/types.d.ts +81 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- package/openapi.yaml +386 -37
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export { AgentClient, type AgentClientConfig, type AgentAuthToken } from "./clie
|
|
|
3
3
|
/** Control plane (TOB): sema-registry / config-center `/api/config/*`. A peer client (different backend +
|
|
4
4
|
* secret) for managing the fleet config — see control-client.ts. */
|
|
5
5
|
export { ControlClient, type ControlClientConfig } from "./control-client.js";
|
|
6
|
-
export type { Principal, Scenario, RunStatus, TaskStats, TaskRequest, TaskAgentDefinition, TaskResult, ActiveRunConflictDoneResult, PendingGateMaterial, ApprovalStaleCurrentPending, TerminalCause, PausedCause, GateOutcome, GateDisposition, Settlement, DeniedBy, McpDelivered, McpFailureKind, LegacyPlaneTaskResult, WriteProtectionCapability, WriteProtectionPosture, WriteProtectedRow, ReadFacePosture, McpToolFace, ToolRoster, ToolRosterEntry, ApprovalDecisionResult, ToolRosterDelta, A2aServerSpec, MemoryCaptureOptOutResult, MemoryTransferEvidence, MemoryCommittedBinding, MemoryProvenanceBinding, EntryProvenanceAccount, MemoryErasureRequest, MemoryErasedBinding, MemoryErasureAttestation, MemoryOriginCause, MemoryEntryOriginMark, MemoryOriginExternalEntry, MemoryOriginExternalResult, MemoryOriginClearanceEvent, MemoryOriginClearanceRow, MemoryOriginClearancesResult, MemoryOriginClearRequest, MemoryOriginClearReceipt, RunReceipt, RunRecord, CancelAck, Artifact, LeaderReceipt, LeaderRecord, SupervisorCostBreakdown, DeviceSummary, DeviceListResult, DeviceBinding, DeviceSessionBinding, DeviceRebindRequest, DeviceRebindResult, DeviceEnrollToken, DeviceEnrollRequest, DeviceEnrollResult, DeviceRevokeRequest, DeviceRevokeResult, LeaderRunResult, Capabilities, ScenarioDetail, PendingCheckpoint, SessionRecord, SkillSpec, TaskSummary, CheckpointGate, TraceTurn, TraceBlock, PromptManifest, PromptEpoch, SessionSummary, SessionListPage, SessionPermissionRules, StoredSessionRules, McpServerStatus, McpStatusPanel, SessionMemoryStatus, SessionMemoryStatusResponse, SessionMcpReconnectResult, McpReconnectServerStatus, SessionWindow, SessionMessageEnvelope, SyncEntry, SyncSnapshot, SyncAnchor, SessionRulesRecord, SessionManifest, SessionBundle, SyncRelation, SyncConflictRelation, ImportStaged, ImportCommitted, TraceStreamEvent, WorkflowStreamEvent, ToolResultSlice, CheckpointSummary, InboxRow, AssistantGate, AssistantTask, PlanReviewRequest, AssistantTaskStatus, ImageIndexEntry, ImageSelectResult, ImageCapabilities, ImagePodContract, ModelInfo, ModelCompat, ModelThinkingFormat, ModelThinkingLevel, RoutePairingStatus, ImageRegisterRequest, BakeCreateRequest, BakeRecordView, BakeIngestLine, BakeSubmitAck, UsageInfo, PolicyInfo, ModelUsageDelta, WorkflowRunStatus, WorkflowItemStatus, WorkflowRunSummary, WorkflowRun, WorkflowAgentRow, WorkflowActivityBeat, WorkflowGroupNode, WorkflowRunPark, WiringManifest, ServerWiringGates, WiringDiagnostics, WiringManifestMcpEntry, WiringManifestHookEntry, WiringManifestLspSeam, ContextUsageSection, GateClassifierAttribution, WiringManifestWriteProtection, WiringManifestReadDeny, WiringManifestAutoConsolidation, PostureSource, PostureKnobReading, } from "./types.js";
|
|
6
|
+
export type { Principal, Scenario, RunStatus, TaskStats, TaskRequest, TaskAgentDefinition, TaskResult, ActiveRunConflictDoneResult, PendingGateMaterial, ApprovalStaleCurrentPending, TerminalCause, PausedCause, GateOutcome, GateDisposition, Settlement, DeniedBy, McpDelivered, McpFailureKind, LegacyPlaneTaskResult, WriteProtectionCapability, WriteProtectionPosture, WriteProtectedRow, ReadFacePosture, McpToolFace, ToolRoster, ToolRosterEntry, ApprovalDecisionResult, ToolRosterDelta, A2aServerSpec, MemoryCaptureOptOutResult, MemoryTransferEvidence, MemoryCommittedBinding, MemoryProvenanceBinding, EntryProvenanceAccount, MemoryErasureRequest, MemoryErasedBinding, MemoryErasureAttestation, MemoryOriginCause, MemoryEntryOriginMark, MemoryOriginExternalEntry, MemoryOriginExternalResult, MemoryOriginClearanceEvent, MemoryOriginClearanceRow, MemoryOriginClearancesResult, MemoryOriginClearRequest, MemoryOriginClearReceipt, RunReceipt, RunRecord, CancelAck, Artifact, LeaderReceipt, LeaderRecord, SupervisorCostBreakdown, DeviceSummary, DeviceListResult, DeviceBinding, DeviceSessionBinding, DeviceRebindRequest, DeviceRebindResult, DeviceEnrollToken, DeviceEnrollRequest, DeviceEnrollResult, DeviceRevokeRequest, DeviceRevokeResult, LeaderRunResult, Capabilities, ScenarioDetail, PendingCheckpoint, SessionRecord, SkillSpec, TaskSummary, CheckpointGate, TraceTurn, TraceBlock, PromptManifest, PromptEpoch, SessionSummary, SessionListPage, SessionPermissionRules, StoredSessionRules, McpServerStatus, McpStatusPanel, McpProbeFace, McpServerSpec, McpServerLiveness, McpLivenessState, SessionMemoryStatus, SessionMemoryStatusResponse, SessionMcpReconnectResult, McpReconnectServerStatus, SessionWindow, SessionMessageEnvelope, SyncEntry, SyncSnapshot, SyncAnchor, SessionRulesRecord, SessionManifest, SessionBundle, SyncRelation, SyncConflictRelation, ImportStaged, ImportCommitted, TraceStreamEvent, WorkflowStreamEvent, ToolResultSlice, CheckpointSummary, InboxRow, AssistantGate, AssistantTask, PlanReviewRequest, AssistantTaskStatus, ImageIndexEntry, ImageSelectResult, ImageCapabilities, ImagePodContract, ModelInfo, ModelCompat, ModelThinkingFormat, ModelThinkingLevel, RoutePairingStatus, ImageRegisterRequest, BakeCreateRequest, BakeRecordView, BakeIngestLine, BakeSubmitAck, UsageInfo, PolicyInfo, ModelUsageDelta, WorkflowRunStatus, WorkflowItemStatus, WorkflowRunSummary, WorkflowRun, WorkflowAgentRow, WorkflowActivityBeat, WorkflowGroupNode, WorkflowRunPark, WiringManifest, ServerWiringGates, WiringDiagnostics, WiringManifestMcpEntry, WiringManifestHookEntry, WiringManifestLspSeam, ContextUsageSection, GateClassifierAttribution, WiringManifestWriteProtection, WiringManifestReadDeny, WiringManifestAutoConsolidation, PostureSource, PostureKnobReading, } from "./types.js";
|
|
7
7
|
/** TOC `settings.json` — the SHARED environment-customization contract (CC-parity v1: permissions/hooks/env/model/
|
|
8
8
|
* outputStyle). ONE schema, two wirings: TOC-local (shell adapter → local Runner) + TOB-fleet (carried to service via
|
|
9
9
|
* {@link TaskRequest.settings}). SDK owns the CONTRACT only — no interpreter, no shell-hook runner. core/search AI
|
|
@@ -21,6 +21,10 @@ export { assertNever } from "./events.js";
|
|
|
21
21
|
export { MetricsResource, OutcomesResource, SendfileLinksResource, WiringDiagnosticsResource, type OutcomeRow, type SendfileLinkRow, type MetricsSummaryOps } from "./resources/ops.js";
|
|
22
22
|
export { BakesResource, type BakeClaim } from "./resources/images.js";
|
|
23
23
|
export { type UsageAnalyticsParams, type UsageMetric, type UsageGranularity, type UsageTotals, type UsageSummary, type UsageSeries, type UsageBreakdown, type UsageDimension } from "./resources/usage.js";
|
|
24
|
+
/** 🔴 K-09(sdk 11.1.0)—— 整族的**附加键面**:`err.extra` 是错误体上 `error` / `errorCode` 之外的全部键,
|
|
25
|
+
* **原样**(`{}` = 没有附加键)。按 `errorCode` 决定读哪些键(`reason` / `detail` / `committed` /
|
|
26
|
+
* `unknownKeys` / `retryAfterSec` …;逐码键表的单一属主是 server 契约附录 A)。**刻意不逐键开属性** ——
|
|
27
|
+
* 那会在本仓长出第二份跟着 server / 引擎走的词表。见 {@link APIError.extra}。 */
|
|
24
28
|
export { APIError, AuthError, RateLimitedError, QuotaExhaustedError, UsageWindowExhaustedError, MemoryAdmissionError, ScenarioNotAllowedError, BudgetExceededError, ConflictError, SyncConflictError, ApprovalStaleError, ApprovalBindingMismatchError, ApprovalConcurrentlyReopenedError, SteeringNotRunningError, SteeringInvalidContentError, PayloadTooLargeError, TaskStopConflictError, InterruptConflictError, PrincipalUnverifiedError, PrincipalUnboundError, ApprovalMacRequiredError, ApprovalMacInvalidError, GateNotResumableError, GateNotPlanReviewError, WorkspaceFileTooLargeError, SubagentResumeConflictError, ResumeRetryLaterError, WakeGatePendingError, RunNotLiveError, DrainingError, ResumeOutcomeInvalidError, ResumeBlockedByPolicyError, DecideError, DecideParkMovedError, DecideUnsupportedError, DecideStoreUnreachableError, DecideWorkflowHostError, DecideWorkflowParksUnreadableError, ParkedResumeStartupError, BadRequestError, AttachmentRejectedError, NotFoundError, LimitExceededError, CapabilityUnavailableError, FeatureDisabledError, InternalServerError, ServiceStateError, SteeringError, SteeringAmbiguousTargetError, SteeringStillRunningError, SteeringQueueFullError, SteeringDuplicateInputIdError, GateNotToolApprovalError, AskDecidedError, AskIdempotencyConflictError, AskGoneError, AskParkingError, DeviceError,
|
|
25
29
|
/** `DENIED` 态的唯一合法归因值(消费端做「路由失败 vs 人拒」判别用,别手抄字符串)。 */
|
|
26
30
|
DENY_REASON_ROUTING_FAILURE } from "./errors.js";
|
|
@@ -117,7 +121,10 @@ export type { CcImportSettingsLayer, CcImportLayer, CcImportLayerReport, CcImpor
|
|
|
117
121
|
* 没有一律 200 `no-op`(**不是 404** —— 那会是一台存在性 oracle),而**两支 200 都带 `stillLive`**:
|
|
118
122
|
* 它答 `"yes"` 意味着墓碑落了但 add-wins 让规则仍然活着,答 `"unknown"` 意味着**这一问没人看见**,
|
|
119
123
|
* 没读它之前别对人说「规则已经没了」({@link RemovalLiveness} 三词闭集,server ≥7.92.0 / 引擎 7.25.0;
|
|
120
|
-
* 此前是 boolean,已整删不留别名)
|
|
124
|
+
* 此前是 boolean,已整删不留别名)。**自 server 7.93.0 起两支的值域也同形** —— `no-op` + `"unknown"`
|
|
125
|
+
* 可达(那一支的读回换成引擎的那一份),给 `no-op` 只写了两个词的 switch 要加第三个词。
|
|
126
|
+
* 🔴 两口的 **503 体各带一只 `committed`**(`"no"` = 确知零写 ⇒ 原样重发 / `"unknown"` = 证不出来 ⇒
|
|
127
|
+
* 先 `list()` 对账;server ≥7.93.0),经 {@link APIError.extra} 原样到达 —— 与 `stillLive` 是两个问题。
|
|
121
128
|
* 🔴 **`RemovalLiveness` 从包根导出**:它是 `DELETE /v1/rules` 与 `POST /v1/rules` **共用**的那一张
|
|
122
129
|
* 词表(两个动词一只键),要给它起名字的消费端(跨两代 server 归一叶子的壳)得拿得到它。 */
|
|
123
130
|
export type { RuleDot, RuleAdd, RuleAddOrigin, RuleBehavior, PersistedRule, RuleListParams, RuleListResult, RuleRevokeRequest, RuleRevokeResult, RemovalLiveness, } from "./resources/rules.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACvF;qEACqE;AACrE,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,YAAY,EACV,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,2BAA2B,EAQtK,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAI5G,qBAAqB,EAErB,yBAAyB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,sBAAsB,EAEvJ,eAAe,EAAE,aAAa,EAAE,yBAAyB,EAMzD,sBAAsB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,sBAAsB,EAC/F,oBAAoB,EAAE,mBAAmB,EAAE,wBAAwB,EACnE,iBAAiB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,0BAA0B,EAC/F,0BAA0B,EAAE,wBAAwB,EAAE,4BAA4B,EAClF,wBAAwB,EAAE,wBAAwB,EAClD,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,uBAAuB,EAGhG,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,oBAAoB,EACpE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,kBAAkB,EACnG,mBAAmB,EAAE,kBAAkB,EAGvC,eAAe,EACf,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAC1J,cAAc,EAAE,eAAe,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,6 +7,10 @@ export { assertNever } from "./events.js";
|
|
|
7
7
|
// SDK 全覆盖批(2026-07-17,clay 令:server API 保证=server AI 直责):运维观测/烧制/用量分析面。
|
|
8
8
|
export { MetricsResource, OutcomesResource, SendfileLinksResource, WiringDiagnosticsResource } from "./resources/ops.js";
|
|
9
9
|
export { BakesResource } from "./resources/images.js";
|
|
10
|
+
/** 🔴 K-09(sdk 11.1.0)—— 整族的**附加键面**:`err.extra` 是错误体上 `error` / `errorCode` 之外的全部键,
|
|
11
|
+
* **原样**(`{}` = 没有附加键)。按 `errorCode` 决定读哪些键(`reason` / `detail` / `committed` /
|
|
12
|
+
* `unknownKeys` / `retryAfterSec` …;逐码键表的单一属主是 server 契约附录 A)。**刻意不逐键开属性** ——
|
|
13
|
+
* 那会在本仓长出第二份跟着 server / 引擎走的词表。见 {@link APIError.extra}。 */
|
|
10
14
|
export { APIError, AuthError, RateLimitedError, QuotaExhaustedError, UsageWindowExhaustedError, MemoryAdmissionError, ScenarioNotAllowedError, BudgetExceededError, ConflictError, SyncConflictError, ApprovalStaleError, ApprovalBindingMismatchError, ApprovalConcurrentlyReopenedError, SteeringNotRunningError, SteeringInvalidContentError, PayloadTooLargeError, TaskStopConflictError, InterruptConflictError, PrincipalUnverifiedError, PrincipalUnboundError, ApprovalMacRequiredError, ApprovalMacInvalidError, GateNotResumableError, GateNotPlanReviewError, WorkspaceFileTooLargeError, SubagentResumeConflictError, ResumeRetryLaterError, WakeGatePendingError, RunNotLiveError,
|
|
11
15
|
// 503 drain(server ≥1.309):此前**漏了这一个** —— 类在、classifyApiError 也真铸它,但包入口没再导出,
|
|
12
16
|
// 于是它自己 JSDoc 承诺的 "consumers just instanceof DrainingError" 在包外做不到(2026-07-29 server 联测逮出;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,OAAO,EAAE,WAAW,EAA+C,MAAM,aAAa,CAAC;AACvF;qEACqE;AACrE,OAAO,EAAE,aAAa,EAA4B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -375,7 +375,8 @@ export interface RuleRevokeRequest {
|
|
|
375
375
|
* `rules.revoke()` 的 200 体。
|
|
376
376
|
*
|
|
377
377
|
* `removed` = 落了墓碑;`no-op` = 没匹配上(幂等重删,或本来就没有 —— **刻意不是 404**,那会是一台
|
|
378
|
-
* 存在性 oracle)。**两支都带 `stillLive
|
|
378
|
+
* 存在性 oracle)。**两支都带 `stillLive`**,键集刻意同形,消费端一套分支读得通 —— 自 server 7.93.0 起
|
|
379
|
+
* **值域**也同形(`no-op` + `"unknown"` 可达,见 {@link RuleRevokeResult.stillLive})。
|
|
379
380
|
*/
|
|
380
381
|
export interface RuleRevokeResult {
|
|
381
382
|
/** 这次调用有没有落墓碑。`no-op` 对「这条规则曾经存在过吗」**什么都没说** —— 别渲成「找不到」。 */
|
|
@@ -389,8 +390,16 @@ export interface RuleRevokeResult {
|
|
|
389
390
|
* · `"unknown"` = 墓碑落了但读回没取到(店抖动)—— 规则的活性**未被观察**,用 {@link RulesResource.list} 对账;
|
|
390
391
|
* 把 `unknown` 读成「已删」就是把第三个词存在的理由重新引进来(上游 7.25.0 把原先折进 `false` 的
|
|
391
392
|
* 不确定态拆成了它自己的状态,正是本 SDK 此前登记的那条上游请托)。
|
|
392
|
-
* **没读它之前别对人说「规则已经没了」。**
|
|
393
|
-
*
|
|
393
|
+
* **没读它之前别对人说「规则已经没了」。**
|
|
394
|
+
*
|
|
395
|
+
* 🔴 **`no-op` + `"unknown"` 自 server 7.93.0 起是一个可达组合**(此前不是):那一支的活性读回自此取
|
|
396
|
+
* **引擎的那一份** —— 与 `removed` 支**同一次读回、同一只桶、同一条身份谓词**(引擎 7.26.0 让
|
|
397
|
+
* `RemoveResult` 的 `no-op` 臂自带这一位),所以两支的键集、词表、**值域**与消费判据逐字同形。
|
|
398
|
+
* ≤7.92.2 上那一支的读回是 **server 自己**补的、读不出来一律 5xx,于是同一个事实(「回答活性那一问的
|
|
399
|
+
* 读回没做成」)在两支 200 上有两种命。⚠️ **旧客户端若给 `no-op` 写了只有 `yes` / `no` 的 switch**
|
|
400
|
+
* (7.92.x 的契约确实这么承诺过),同批把第三个词加进分支 —— 它不会再以 5xx 的形式出现。
|
|
401
|
+
*
|
|
402
|
+
* 迁移:`true` ⇒ `"yes"`,`false` ⇒ `"no"`,其余一切 ⇒ `"unknown"`。
|
|
394
403
|
*/
|
|
395
404
|
stillLive: RemovalLiveness;
|
|
396
405
|
}
|
|
@@ -445,7 +454,7 @@ export interface RuleWriteRequest {
|
|
|
445
454
|
* | --- | --- | --- | --- |
|
|
446
455
|
* | `"yes"` | 写(或早就站着)并且读回时它**活着** —— 常态 | ✅ 在场 | 照常用 |
|
|
447
456
|
* | `"no"` | 写**落了**(`rev` 是真的),而读回它时一条**并发撤销**已经先到 | ❌ 缺席 | 🔴 **不要重试** —— 照着重试会把刚被人撤掉的收紧**重新立起来**;要看现状走 {@link RulesResource.list} |
|
|
448
|
-
* | `"unknown"` |
|
|
457
|
+
* | `"unknown"` | 写**落了**(`rev` 是真的),而**回答活性那一问的读回本身没做成**(store 读不出来;server ≥7.93.0 起可达 —— 此前这一形落 500) | ❌ 缺席 | 🔴 **不要重试**(重发只会 `no-op`);拿 {@link RulesResource.list} 对账后再决定 |
|
|
449
458
|
*
|
|
450
459
|
* 🔴 **先读 `stillLive`,再读 `rule`**:`rule` 这个键**只住在 `"yes"` 那一支**(不是「在场但 undefined」
|
|
451
460
|
* —— 那会是第二个判别位,而这条口只有一个)。没有活行可端的时候编一行出来,就得给它铸一个「在册/活着」
|
|
@@ -486,23 +495,34 @@ export type RuleWriteResult =
|
|
|
486
495
|
*/
|
|
487
496
|
rule: PersistedRule;
|
|
488
497
|
}
|
|
489
|
-
/**
|
|
498
|
+
/** **没有活行可端**的那一支 —— 两个词,一套键集,一个处置。
|
|
499
|
+
*
|
|
500
|
+
* · `"no"` = 读回**看见它不在了**:一次合法并发撤销(自己的 / operator 的)挤在「引擎落了 dot」与
|
|
501
|
+
* 「读回那一行」之间;
|
|
502
|
+
* · `"unknown"` = **回答活性那一问的读回本身没做成**(店读不出来)—— server ≥7.93.0 起可达。
|
|
503
|
+
*
|
|
504
|
+
* 🔴 **两个词共用这一支,是因为它们在这只形上逐字同形**:键集相同(都没有 `rule`)、处置相同
|
|
505
|
+
* (**不要重试** —— 重发只会得到 `no-op`;用 {@link RulesResource.list} 看现状)。拆成两个键集完全相同的
|
|
506
|
+
* 臂只会造出一份会各自漂的镜像;**词**才是区分「看见它不在了」与「没人看见」的那一格。
|
|
490
507
|
*
|
|
491
|
-
* 🔴
|
|
492
|
-
*
|
|
493
|
-
* **retry
|
|
494
|
-
*
|
|
508
|
+
* 🔴 **这一支整体不是 `indeterminate`**:「这次调用写没写」引擎答了并把 `rev` 交到手里 —— 两个词都不
|
|
509
|
+
* 否认这一点。没答案的只有「它现在还站着吗」,而那是**另一个问题**,撤销面早就有一只键在回答它。折成
|
|
510
|
+
* 「说不清」的代价有名字:那条腿的处置是 **retry**,而照着重试会把**刚刚被人撤掉的收紧重新立起来**。
|
|
511
|
+
* ⚠️ **与 503 `state.rule_write_failed` + `committed:"no"` 分家**(同一台店读不出来,发生在写**之前**):
|
|
512
|
+
* 那一形**确知零写**,**原样重发是安全的**;本支上 `rev` 是真的,重发只会 `no-op`。同一个故障,写前写后
|
|
513
|
+
* 处置相反 —— 这正是两只键(`committed` / `stillLive`)各答一个问题的理由。
|
|
495
514
|
*
|
|
496
|
-
* 🔴 `rule` 在这一支上**这个键根本不存在**(不是可选、不是 `undefined`)
|
|
497
|
-
* `status: "live"` 这一格 ——
|
|
515
|
+
* 🔴 `rule` 在这一支上**这个键根本不存在**(不是可选、不是 `undefined`):店里没有可端的活行,而本仓的
|
|
516
|
+
* 行形带着 `status: "live"` 这一格 —— 给一行看不见的规则铸它就是第二个谎。 */
|
|
498
517
|
| {
|
|
499
518
|
/** 与 `"yes"` 支同一格 —— **这次调用有没有往店里写**。它在这一支上**仍然有答案**(引擎答了写、`rev`
|
|
500
519
|
* 是真的);没答案的是「它现在还站着吗」,而那由 `stillLive` 回答。 */
|
|
501
520
|
status: "persisted" | "no-op";
|
|
502
|
-
/** 操作后规则桶的 OCC 版本。这一支上它**是真的** ——
|
|
521
|
+
/** 操作后规则桶的 OCC 版本。这一支上它**是真的** —— 写落了,只有那一行的死活没有答案 / 走了另一个方向。 */
|
|
503
522
|
rev: number;
|
|
504
|
-
/**
|
|
505
|
-
|
|
523
|
+
/** 两词(见本支顶注):`"no"` = 读回看见它不在了;`"unknown"` = 那次读回本身没做成(server ≥7.93.0)。
|
|
524
|
+
* 🔴 用 `Exclude` 从**共用的**那张三词表派生,不另抄一张两词表 —— 词表属主是引擎。 */
|
|
525
|
+
stillLive: Exclude<RemovalLiveness, "yes">;
|
|
506
526
|
};
|
|
507
527
|
export declare class RulesResource {
|
|
508
528
|
private readonly t;
|
|
@@ -581,10 +601,10 @@ export declare class RulesResource {
|
|
|
581
601
|
* 无谓地推进它会让正在翻页的治理面全体重列)。所以重试是安全的,但它**不是**第二次批准。
|
|
582
602
|
*
|
|
583
603
|
* 🔴 **`rule` 必须已经是规范拼写**(见 {@link RuleWriteRequest.rule}):非规范形一律 400
|
|
584
|
-
* `request.field_invalid` + 闭集 `reason: "rule_rejected"`,`detail`
|
|
585
|
-
*
|
|
586
|
-
*
|
|
587
|
-
*
|
|
604
|
+
* `request.field_invalid` + 闭集 `reason: "rule_rejected"`,`detail` 里给出该发的那一串。
|
|
605
|
+
* ✅ **那两格经 {@link import("../errors.js").APIError.extra} 逐字到达**(K-09 销账,SDK 11.1.0):
|
|
606
|
+
* `err.extra.reason` 按闭集分流、`err.extra.detail` 里就是该发的那一串(原样重发即可)——
|
|
607
|
+
* 不必自己驱动端点读响应体。**别猜规范形**,更别把被拒的文本改一改再试。
|
|
588
608
|
*
|
|
589
609
|
* 🔴 **400 的内容判据拒带闭集 `reason`,而方向那一条不在那张表里**:`rule_rejected` /
|
|
590
610
|
* `scope_bidi_controls` / `scope_control_chars` / `row_inconsistent` / …(与导入面的成员级拒因**同一张
|
|
@@ -592,15 +612,27 @@ export declare class RulesResource {
|
|
|
592
612
|
* 文案、**不带** `reason` 键。`scope` 读不出形仍是 `request.body_shape`,与 {@link revoke} 同句。
|
|
593
613
|
*
|
|
594
614
|
* 🔴 **200 是判别联合,先读 `stillLive` 再读 `rule`**(server ≥7.92.2,见 {@link RuleWriteResult}):
|
|
595
|
-
* `"yes"` 带那一行、`"no"`
|
|
596
|
-
*
|
|
597
|
-
*
|
|
615
|
+
* `"yes"` 带那一行、`"no"` / `"unknown"` **不带**(前者 = 读回看见它不在了;后者 = **那次读回本身没做成**,
|
|
616
|
+
* server ≥7.93.0 起可达,此前这一形落 500)。两个不带行的词**处置相同**:🔴 **不要重试** —— 照着重试会把
|
|
617
|
+
* 刚被人撤掉的收紧重新立起来 / 只会得到 `no-op`;要看现状走 {@link list}。词表与 {@link revoke}
|
|
618
|
+
* **共用同一只** {@link RemovalLiveness},所以两个动词的 200 一套分支读得通(自 7.93.0 起**值域也相同**)。
|
|
619
|
+
* ⚠️ 别与 503 `committed:"no"` 混:那是写**前**读库就失败(确知零写、原样重发安全);本支的 `rev` 是真的。
|
|
598
620
|
* ⚠️ 老 server(≤7.92.1)这条口不带 `stillLive`、恒带 `rule`:**SDK 不补默认值**,缺席原样透传 ——
|
|
599
621
|
* 跨两代混用的壳自己把「缺席」读成 `"yes"`。
|
|
600
622
|
*
|
|
601
|
-
* 🔴 **503 `state.rule_write_failed` =
|
|
602
|
-
*
|
|
603
|
-
*
|
|
623
|
+
* 🔴 **503 `state.rule_write_failed` = 这次写没完成,而**下一步**读体里的 `committed`**(server ≥7.93.0;
|
|
624
|
+
* 类仍是 {@link import("../errors.js").ServiceStateError},码逐字不变)。两个词的处置**相反**,经
|
|
625
|
+
* {@link import("../errors.js").APIError.extra} 原样到达(引擎的闭集词,本仓不枚举、不折叠):
|
|
626
|
+
* · `err.extra.committed === "no"` —— 店自己答了、**确知一个字都没落** ⇒ **原样重发**同一份体即可,
|
|
627
|
+
* **不必**先对账(没有第二枚 dot 会被铸出来,也没有刚被撤掉的收紧会被重新立起来);
|
|
628
|
+
* · `err.extra.committed === "unknown"` —— **证不出来**:apply 抛了(引擎可能已经提交又丢了应答),
|
|
629
|
+
* 或者本该定这一问的那次读回没做成 ⇒ 🔴 **先**用 {@link list} 对账再决定要不要重发(盲重试可能铸第二枚
|
|
630
|
+
* dot、把刚被人撤掉的收紧重新立起来)。⚠️ **读回失败只是没能把词变好,不会把词翻过来**(亲读引擎 7.26.0
|
|
631
|
+
* 的声明:抛 ⇒ 仍是 `unknown`,**已答过**的 compare-and-set ⇒ 仍是 `no` —— 一只读不出来的店不能把店
|
|
632
|
+
* 已经说过的话收回去)⇒ `"no"` 永远不是对一只读不出来的店的猜测。
|
|
633
|
+
* 🔴 **按键分支,不要正则报文**:两句英文会随可读性调整而变,这个词不会。⚠️ 老 server(≤7.92.2)**不发
|
|
634
|
+
* 这一格**(那一代上两种强度在 wire 上逐字节同形,而那唯一一句话逐字写着 retry-then-reconcile ——
|
|
635
|
+
* 对 `"unknown"` 把顺序说反了):缺席原样透传,**SDK 不铸默认值**,缺席读作「这台 server 说不出来」。
|
|
604
636
|
* ⚠️ **语义自 server 7.92.2 收窄**:「写落了而回读时它已被并发撤销」**不再落这里**(那一形有答案,
|
|
605
637
|
* 走 200 + `stillLive:"no"`)—— 在这里重试恰恰是把刚被撤的收紧重新立起来。
|
|
606
638
|
* **SDK 不自动重放**(非 submit 类 POST):一次「说不清」被自动重试就成了两次写,而对账那一步只有
|
|
@@ -632,14 +664,22 @@ export declare class RulesResource {
|
|
|
632
664
|
*
|
|
633
665
|
* 🔴 **读 {@link RuleRevokeResult.stillLive} 再对人下结论**:它答 `"yes"` 意味着墓碑落了但规则**仍然
|
|
634
666
|
* 活着**(add-wins;本次调用期间又落了一次批准)。两支 200 都带这一只键、同一张三词表,所以一套分支
|
|
635
|
-
* 读得通(与 {@link write} 的 200 也是同一只键、同一张表)
|
|
667
|
+
* 读得通(与 {@link write} 的 200 也是同一只键、同一张表);**自 server 7.93.0 起两支的值域也同形** ——
|
|
668
|
+
* `no-op` + `"unknown"` 可达,给 `no-op` 只写了 `yes` / `no` 的 switch 要加第三个词。
|
|
636
669
|
* ⚠️ 但**三个词的证明力不对称**:只有 `"no"` 是「它不在了」的**观察**;`"unknown"` 是「这一问没人看见」
|
|
637
670
|
* (引擎把读不出来的那一次读回铸成第三个词,而不是折进「不在了」)—— **它不是「已删」**,要紧的场合用
|
|
638
671
|
* {@link list} 对账,逐条理由见该字段的注。
|
|
639
672
|
*
|
|
640
|
-
* 🔴 **
|
|
641
|
-
*
|
|
642
|
-
*
|
|
673
|
+
* 🔴 **503 `state.rule_remove_failed` 的下一步在体里的 `committed`**(server ≥7.93.0;与 {@link write}
|
|
674
|
+
* **同一只键、同一张闭集、server 侧同一处铸点**,所以两个动词一套分支读得通):
|
|
675
|
+
* `err.extra.committed === "no"` = 店自己答了、确知一个字都没落 ⇒ **原样重发**;
|
|
676
|
+
* `err.extra.committed === "unknown"` = 证不出来 ⇒ 🔴 **先**用 {@link list} 对账再决定
|
|
677
|
+
* (盲重试可能把刚被人撤掉的收紧重新立起来)。**按键分支,不要正则报文**;老 server(≤7.92.2)不发这一格
|
|
678
|
+
* (那一代上只有一句 retry-then-reconcile,对 `"unknown"` 顺序说反了),缺席原样透传、SDK 不铸默认值。
|
|
679
|
+
* 🔴 **SDK 不自动重试**(非 submit 类的 DELETE):两种强度都是重试可改判的(所以是 503 不是 500),但
|
|
680
|
+
* 重试与对账的**顺序**由上面那个词决定 —— 而对账那一步只有调用方做得了。
|
|
681
|
+
* ⚠️ 别把它与 200 上的 `stillLive` 读混:`committed` 说的是「**这次**墓碑落没落」,`stillLive` 说的是
|
|
682
|
+
* 「它**现在**还站着吗」——两个问题、两只键,不许互相推导。
|
|
643
683
|
*
|
|
644
684
|
* 越权撤销见 {@link RuleRevokeRequest.principal}(403 `auth.operator_only`);未接规则店 ⇒ 501。
|
|
645
685
|
* 🔴 **版本偏斜判据同 {@link list}**:gate 用 `capabilities.permissionRulesRevoke`(缺席 = 这台 worker
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/resources/rules.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/resources/rules.ts"],"names":[],"mappings":"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"}
|
package/dist/resources/rules.js
CHANGED
|
@@ -101,10 +101,10 @@ export class RulesResource {
|
|
|
101
101
|
* 无谓地推进它会让正在翻页的治理面全体重列)。所以重试是安全的,但它**不是**第二次批准。
|
|
102
102
|
*
|
|
103
103
|
* 🔴 **`rule` 必须已经是规范拼写**(见 {@link RuleWriteRequest.rule}):非规范形一律 400
|
|
104
|
-
* `request.field_invalid` + 闭集 `reason: "rule_rejected"`,`detail`
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
104
|
+
* `request.field_invalid` + 闭集 `reason: "rule_rejected"`,`detail` 里给出该发的那一串。
|
|
105
|
+
* ✅ **那两格经 {@link import("../errors.js").APIError.extra} 逐字到达**(K-09 销账,SDK 11.1.0):
|
|
106
|
+
* `err.extra.reason` 按闭集分流、`err.extra.detail` 里就是该发的那一串(原样重发即可)——
|
|
107
|
+
* 不必自己驱动端点读响应体。**别猜规范形**,更别把被拒的文本改一改再试。
|
|
108
108
|
*
|
|
109
109
|
* 🔴 **400 的内容判据拒带闭集 `reason`,而方向那一条不在那张表里**:`rule_rejected` /
|
|
110
110
|
* `scope_bidi_controls` / `scope_control_chars` / `row_inconsistent` / …(与导入面的成员级拒因**同一张
|
|
@@ -112,15 +112,27 @@ export class RulesResource {
|
|
|
112
112
|
* 文案、**不带** `reason` 键。`scope` 读不出形仍是 `request.body_shape`,与 {@link revoke} 同句。
|
|
113
113
|
*
|
|
114
114
|
* 🔴 **200 是判别联合,先读 `stillLive` 再读 `rule`**(server ≥7.92.2,见 {@link RuleWriteResult}):
|
|
115
|
-
* `"yes"` 带那一行、`"no"`
|
|
116
|
-
*
|
|
117
|
-
*
|
|
115
|
+
* `"yes"` 带那一行、`"no"` / `"unknown"` **不带**(前者 = 读回看见它不在了;后者 = **那次读回本身没做成**,
|
|
116
|
+
* server ≥7.93.0 起可达,此前这一形落 500)。两个不带行的词**处置相同**:🔴 **不要重试** —— 照着重试会把
|
|
117
|
+
* 刚被人撤掉的收紧重新立起来 / 只会得到 `no-op`;要看现状走 {@link list}。词表与 {@link revoke}
|
|
118
|
+
* **共用同一只** {@link RemovalLiveness},所以两个动词的 200 一套分支读得通(自 7.93.0 起**值域也相同**)。
|
|
119
|
+
* ⚠️ 别与 503 `committed:"no"` 混:那是写**前**读库就失败(确知零写、原样重发安全);本支的 `rev` 是真的。
|
|
118
120
|
* ⚠️ 老 server(≤7.92.1)这条口不带 `stillLive`、恒带 `rule`:**SDK 不补默认值**,缺席原样透传 ——
|
|
119
121
|
* 跨两代混用的壳自己把「缺席」读成 `"yes"`。
|
|
120
122
|
*
|
|
121
|
-
* 🔴 **503 `state.rule_write_failed` =
|
|
122
|
-
*
|
|
123
|
-
*
|
|
123
|
+
* 🔴 **503 `state.rule_write_failed` = 这次写没完成,而**下一步**读体里的 `committed`**(server ≥7.93.0;
|
|
124
|
+
* 类仍是 {@link import("../errors.js").ServiceStateError},码逐字不变)。两个词的处置**相反**,经
|
|
125
|
+
* {@link import("../errors.js").APIError.extra} 原样到达(引擎的闭集词,本仓不枚举、不折叠):
|
|
126
|
+
* · `err.extra.committed === "no"` —— 店自己答了、**确知一个字都没落** ⇒ **原样重发**同一份体即可,
|
|
127
|
+
* **不必**先对账(没有第二枚 dot 会被铸出来,也没有刚被撤掉的收紧会被重新立起来);
|
|
128
|
+
* · `err.extra.committed === "unknown"` —— **证不出来**:apply 抛了(引擎可能已经提交又丢了应答),
|
|
129
|
+
* 或者本该定这一问的那次读回没做成 ⇒ 🔴 **先**用 {@link list} 对账再决定要不要重发(盲重试可能铸第二枚
|
|
130
|
+
* dot、把刚被人撤掉的收紧重新立起来)。⚠️ **读回失败只是没能把词变好,不会把词翻过来**(亲读引擎 7.26.0
|
|
131
|
+
* 的声明:抛 ⇒ 仍是 `unknown`,**已答过**的 compare-and-set ⇒ 仍是 `no` —— 一只读不出来的店不能把店
|
|
132
|
+
* 已经说过的话收回去)⇒ `"no"` 永远不是对一只读不出来的店的猜测。
|
|
133
|
+
* 🔴 **按键分支,不要正则报文**:两句英文会随可读性调整而变,这个词不会。⚠️ 老 server(≤7.92.2)**不发
|
|
134
|
+
* 这一格**(那一代上两种强度在 wire 上逐字节同形,而那唯一一句话逐字写着 retry-then-reconcile ——
|
|
135
|
+
* 对 `"unknown"` 把顺序说反了):缺席原样透传,**SDK 不铸默认值**,缺席读作「这台 server 说不出来」。
|
|
124
136
|
* ⚠️ **语义自 server 7.92.2 收窄**:「写落了而回读时它已被并发撤销」**不再落这里**(那一形有答案,
|
|
125
137
|
* 走 200 + `stillLive:"no"`)—— 在这里重试恰恰是把刚被撤的收紧重新立起来。
|
|
126
138
|
* **SDK 不自动重放**(非 submit 类 POST):一次「说不清」被自动重试就成了两次写,而对账那一步只有
|
|
@@ -162,14 +174,22 @@ export class RulesResource {
|
|
|
162
174
|
*
|
|
163
175
|
* 🔴 **读 {@link RuleRevokeResult.stillLive} 再对人下结论**:它答 `"yes"` 意味着墓碑落了但规则**仍然
|
|
164
176
|
* 活着**(add-wins;本次调用期间又落了一次批准)。两支 200 都带这一只键、同一张三词表,所以一套分支
|
|
165
|
-
* 读得通(与 {@link write} 的 200 也是同一只键、同一张表)
|
|
177
|
+
* 读得通(与 {@link write} 的 200 也是同一只键、同一张表);**自 server 7.93.0 起两支的值域也同形** ——
|
|
178
|
+
* `no-op` + `"unknown"` 可达,给 `no-op` 只写了 `yes` / `no` 的 switch 要加第三个词。
|
|
166
179
|
* ⚠️ 但**三个词的证明力不对称**:只有 `"no"` 是「它不在了」的**观察**;`"unknown"` 是「这一问没人看见」
|
|
167
180
|
* (引擎把读不出来的那一次读回铸成第三个词,而不是折进「不在了」)—— **它不是「已删」**,要紧的场合用
|
|
168
181
|
* {@link list} 对账,逐条理由见该字段的注。
|
|
169
182
|
*
|
|
170
|
-
* 🔴 **
|
|
171
|
-
*
|
|
172
|
-
*
|
|
183
|
+
* 🔴 **503 `state.rule_remove_failed` 的下一步在体里的 `committed`**(server ≥7.93.0;与 {@link write}
|
|
184
|
+
* **同一只键、同一张闭集、server 侧同一处铸点**,所以两个动词一套分支读得通):
|
|
185
|
+
* `err.extra.committed === "no"` = 店自己答了、确知一个字都没落 ⇒ **原样重发**;
|
|
186
|
+
* `err.extra.committed === "unknown"` = 证不出来 ⇒ 🔴 **先**用 {@link list} 对账再决定
|
|
187
|
+
* (盲重试可能把刚被人撤掉的收紧重新立起来)。**按键分支,不要正则报文**;老 server(≤7.92.2)不发这一格
|
|
188
|
+
* (那一代上只有一句 retry-then-reconcile,对 `"unknown"` 顺序说反了),缺席原样透传、SDK 不铸默认值。
|
|
189
|
+
* 🔴 **SDK 不自动重试**(非 submit 类的 DELETE):两种强度都是重试可改判的(所以是 503 不是 500),但
|
|
190
|
+
* 重试与对账的**顺序**由上面那个词决定 —— 而对账那一步只有调用方做得了。
|
|
191
|
+
* ⚠️ 别把它与 200 上的 `stillLive` 读混:`committed` 说的是「**这次**墓碑落没落」,`stillLive` 说的是
|
|
192
|
+
* 「它**现在**还站着吗」——两个问题、两只键,不许互相推导。
|
|
173
193
|
*
|
|
174
194
|
* 越权撤销见 {@link RuleRevokeRequest.principal}(403 `auth.operator_only`);未接规则店 ⇒ 501。
|
|
175
195
|
* 🔴 **版本偏斜判据同 {@link list}**:gate 用 `capabilities.permissionRulesRevoke`(缺席 = 这台 worker
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/resources/rules.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/resources/rules.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -2277,7 +2277,48 @@ export type WiringManifestMcpEntry = {
|
|
|
2277
2277
|
/** core ≥7.6.0(S6-B):端点答的那个状态,**只**与 `errorCode === "http_status"` 同行(401/403 去重新
|
|
2278
2278
|
* 授权、5xx 是那头挂了)。**缺席**而不是 0。 */
|
|
2279
2279
|
httpStatus?: number;
|
|
2280
|
+
/**
|
|
2281
|
+
* 引擎**最后一次观察**到的可达性(core 7.24.3 #874,server ≥7.91.2 真发;sdk 11.2.0 补声明 —— 此前这一格
|
|
2282
|
+
* 在 TS 上读不出来,而随包 spec 的行 schema 还是 `additionalProperties:false` ⇒ 按 spec 严格校验的消费端
|
|
2283
|
+
* 会把一份**合法**应答判违约)。
|
|
2284
|
+
*
|
|
2285
|
+
* 🔴 **与 `status` 各说各的**:`status` 是拨号那一刻的判决(引擎有意冻结它),这一格是连接层**最后学到**
|
|
2286
|
+
* 的事 —— 同一行上 `failed` + `reachable` 是**真行**(服务器答了握手、答的是协议错 = 活着且配错)。
|
|
2287
|
+
* 🔴 **缺席 ≠ `unknown`**(契约 §G.7 第 2bis):缺席 = **没有可用的观察记录**(那条腿没拨到这台 /
|
|
2288
|
+
* 申报根本没被拨过 / 老 mint / 判形没过),而 `unknown` 是引擎**更强**的断言(看了、看不出来)。
|
|
2289
|
+
* 据缺席反推「拨没拨过号」会得出相反的结论。
|
|
2290
|
+
*/
|
|
2291
|
+
liveness?: McpServerLiveness;
|
|
2280
2292
|
};
|
|
2293
|
+
/**
|
|
2294
|
+
* 一台 MCP 服务器的**一次**活性观察(core 7.24.3 #874 `McpServerLiveness` 镜像;server ≥7.91.2)。
|
|
2295
|
+
* 它说的是引擎**最后学到**了什么、**什么时候**学到的 —— 从不是「现在是不是真的」,也**不是心跳**
|
|
2296
|
+
* (引擎自己不做探测,每一条都是这条腿已经做过的工作的副产物:拨号 / re-dial / 传输关闭)。
|
|
2297
|
+
*
|
|
2298
|
+
* 🔴 **两个承重位缺一不可**:`state` 与 `observedAt` 合起来才是一句话(看到了什么 + 什么时候看到的);
|
|
2299
|
+
* server 的投影对「少一半」的处置是**整格缺席**,所以读到的记录两键必在。
|
|
2300
|
+
* 🔴 `errorCode` **只随 `unreachable` 出现**(core 的铸点保证):`unknown` 上刻意不带它 —— 那个词的全部
|
|
2301
|
+
* 意思就是「那次失败没有决定可达性」,在它旁边挂一个失败类会诱使消费端拿一条什么都没说的证据去决定重连。
|
|
2302
|
+
*/
|
|
2303
|
+
export interface McpServerLiveness {
|
|
2304
|
+
/** 引擎的三词闭集({@link McpLivenessState})。 */
|
|
2305
|
+
state: McpLivenessState;
|
|
2306
|
+
/** 那次观察的时刻(epoch ms)。 */
|
|
2307
|
+
observedAt: number;
|
|
2308
|
+
/** 决定了 `unreachable` 的失败类(core 的 {@link McpFailureKind} 词,**本仓不枚举**)。 */
|
|
2309
|
+
errorCode?: McpFailureKind;
|
|
2310
|
+
}
|
|
2311
|
+
/**
|
|
2312
|
+
* {@link McpServerLiveness.state} 的闭三词(core `MCP_LIVENESS_STATES`;词表单一属主在引擎)——
|
|
2313
|
+
* 「这个客户端能不能与这台服务器**完成一次交换**」这**一个**问题的答案:
|
|
2314
|
+
* · `reachable` = 一次交换**完成了**(握手 + 列举成功 / re-dial 成功 / 服务器自己答了 —— 一个 MCP 级的
|
|
2315
|
+
* 拒绝**也是答**,所以它证明够得着,即便那次调用失败了);
|
|
2316
|
+
* · `unreachable` = 试过一次交换,而它**丢在传输或钟上**(拒连 / 重置 / 关闭 / 起不来 / 超时);
|
|
2317
|
+
* · `unknown` = 试过一次交换,而回来的东西**回答不了这个问题**(网关写的状态 / 非 MCP 载荷 / 一个
|
|
2318
|
+
* 这张表读不出结构的抛值)。
|
|
2319
|
+
* 🔴 **缺席是第四种读法,而它不是这三个词里的任何一个**:见 {@link WiringManifestMcpEntry.liveness}。
|
|
2320
|
+
*/
|
|
2321
|
+
export type McpLivenessState = "reachable" | "unreachable" | "unknown";
|
|
2281
2322
|
/**
|
|
2282
2323
|
* 一条腿的**钩子席位名册**里的**一行**(core 7.18.0 #789,server ≥7.78.0;**租户可见**):这条腿真接了
|
|
2283
2324
|
* 哪一族钩子、席位来自哪一层、以及 `preToolUse` 那一行是不是被声明成了只观察。
|
|
@@ -3218,6 +3259,20 @@ export interface Capabilities {
|
|
|
3218
3259
|
sessionInit?: boolean;
|
|
3219
3260
|
/** MCP 面总位(/v1/mcp status 等;`routes/capabilities.ts` 的能力对象 硬编码 true)。 */
|
|
3220
3261
|
mcp?: boolean;
|
|
3262
|
+
/**
|
|
3263
|
+
* **无 run 可读的逐台 MCP 状态面**在场位(S-481,server ≥7.93.0;契约 §G.7e):
|
|
3264
|
+
* {@link import("./client.js").AgentClient.mcpCapabilities}(本部署**自己**申报的服务器)与
|
|
3265
|
+
* {@link import("./client.js").AgentClient.probeMcp}(探**调用方自带**的申报)两条口。
|
|
3266
|
+
*
|
|
3267
|
+
* 🔴 **恒真**,与 {@link mcp} 同一条理由:`GET` 那条口没有 501 臂(零申报时回一份诚实的空面),所以
|
|
3268
|
+
* 「说 yes ⟺ 路由真能用」是结构性的。present-iff 由**版本**承担 —— **缺席 = 老 worker**(没有这个面):
|
|
3269
|
+
* 壳回落到会话回放腿({@link McpStatusPanel.lastLegMcp})或直接把真因行给人看,**别渲假入口**。
|
|
3270
|
+
* 🔴 **两个位两个问题,不合并**:自带申报那一口能不能用由 {@link mcpInjection} 回答(**同一只**
|
|
3271
|
+
* `mcpInjectionHonored` 谓词就是那条路由的门 —— 多租户 / `mcp` 被锁 / 合规禁三票任一否决 ⇒ 501
|
|
3272
|
+
* `capability.mcp_injection_required`);本位只说「这台 server 有没有这个面」。所以多租户上
|
|
3273
|
+
* `mcpProbe: true` 与 `mcpInjection: false` 是**正常**组合,不是矛盾。
|
|
3274
|
+
*/
|
|
3275
|
+
mcpProbe?: boolean;
|
|
3221
3276
|
/** §E23 inbound-MCP elicitation HITL(`routes/capabilities.ts` 的能力对象 `Boolean(elicitation)` = MCP_ELICITATION_ENABLED)。 */
|
|
3222
3277
|
mcpElicitation?: boolean;
|
|
3223
3278
|
/** §4④ live AskUserQuestion HITL(`routes/capabilities.ts` 的能力对象 `Boolean(question)` = ASK_QUESTION_ENABLED)。 */
|
|
@@ -3991,6 +4046,32 @@ export interface McpServerStatus {
|
|
|
3991
4046
|
error?: string;
|
|
3992
4047
|
[k: string]: unknown;
|
|
3993
4048
|
}
|
|
4049
|
+
/**
|
|
4050
|
+
* **无 run 可读的逐台 MCP 状态面**的体 —— `GET /v1/capabilities/mcp` 与 `POST /v1/capabilities/mcp/probe`
|
|
4051
|
+
* **两条口逐字同一只**(S-481,server ≥7.93.0;契约 §G.7e)。消费端一套渲染读得通两条口。
|
|
4052
|
+
*
|
|
4053
|
+
* 🔴 **行不是本仓、也不是 server 自己拼的**:`servers[]` 的行 = {@link WiringManifestMcpEntry} —— 与一条
|
|
4054
|
+
* 准备好的腿推上 `wiring_manifest.mcp[]` 的**同一只投影、同一套失败词表**(core `probeMcpServers` 的
|
|
4055
|
+
* `entries`)。⇒ 「这张面上的一行」与「那条 run 里的那一行」在 wire 上是**同一种东西**,不是两份看起来像的
|
|
4056
|
+
* 东西;§G.7 的每一条在这里逐字成立(含第 3 条:**远端原话 `error` 不在场**,可操作的因由在 `errorCode`)。
|
|
4057
|
+
*
|
|
4058
|
+
* 🔴 **`servers[]` 与申报表同序同长,按下标对齐**(core `@contract mcp.probe.index_aligned`):失败台、
|
|
4059
|
+
* 超时台、没拨到的台都**占住自己的位置**。拿自己的申报列表按 **index** 配,**别按 `name` 配** —— 名字不
|
|
4060
|
+
* 保证唯一,而重名申报上按名字配就是把 A 的读数贴到 B 上。
|
|
4061
|
+
*
|
|
4062
|
+
* 🔴 **本面没有 `degraded` 臂,这是刻意的**(与 {@link McpStatusPanel.degraded} 刻意不同):一次答不出来的
|
|
4063
|
+
* 探测如果回一份看着正常的空名单,那正是这条面要根除的假答案。答不出来是**响亮**的 —— 整次走查超界 ⇒
|
|
4064
|
+
* 503 `state.mcp_probe_incomplete` + `Retry-After`。⚠️ 零申报的 `servers: []` 与它**是两件事**:那是一份
|
|
4065
|
+
* 诚实的空面(这台部署什么都没申报),不是「取不到」。
|
|
4066
|
+
*/
|
|
4067
|
+
export interface McpProbeFace {
|
|
4068
|
+
/** 这份读数是**哪一刻**的(ISO)。🔴 **缓存命中回原时刻** —— 一个复用的答案假装自己是新的就是一条假事实。 */
|
|
4069
|
+
probedAt: string;
|
|
4070
|
+
/** 这份读数还能复用多久(秒;server 侧同 principal 同申报 30s 窗)。窗内重问**不计限速**。 */
|
|
4071
|
+
ttlSec: number;
|
|
4072
|
+
/** 逐台一行,**行形单源** = {@link WiringManifestMcpEntry};与申报表同序同长(见本型顶注)。 */
|
|
4073
|
+
servers: WiringManifestMcpEntry[];
|
|
4074
|
+
}
|
|
3994
4075
|
/** `GET /v1/sessions/:id/mcp` 的信封(service src/http/routes/sessions.ts)。`asOf` = THIS materialize 时刻(ISO);
|
|
3995
4076
|
* `degraded:true` = materialize 超时/失败 → `servers` 空但非「无 MCP」(壳显「状态暂不可得」)。无 MCP 配置 → `servers:[]`。 */
|
|
3996
4077
|
export interface McpStatusPanel {
|