@deepseek-ai/dsh-cordis-host-runner 0.2.0-rc.2 → 0.2.1-alpha.2

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.i18n.yaml CHANGED
@@ -30,8 +30,8 @@
30
30
  en: d1a8777f171d22bb
31
31
  zh: 7f6aa4c2680557b1
32
32
  /deepseek-ai-dsh-cordis-host-runner/use-this-package/trust-stance:
33
- en: 9098942013393325
34
- zh: 282917313e96a2d3
33
+ en: af859a1591c02386
34
+ zh: 46d3c82713fa9055
35
35
  /deepseek-ai-dsh-cordis-host-runner/understand-the-implementation:
36
36
  en: b0a536c0d00cbdb8
37
37
  zh: 08e5d813aa6a612a
@@ -45,8 +45,8 @@
45
45
  en: 40d63d9a75d233e6
46
46
  zh: 96954bf346c6d9e6
47
47
  /deepseek-ai-dsh-cordis-host-runner/further-exploration:
48
- en: 6f2dabcc9d095569
49
- zh: 8df32d4b138ff7c7
48
+ en: 86c7f132478aa682
49
+ zh: 4c0729a12b8e5b66
50
50
  /deepseek-ai-dsh-cordis-host-runner/model-experience:
51
51
  en: 215e7ba838619b7b
52
52
  zh: a311da3843709f90
@@ -66,5 +66,5 @@
66
66
  en: 1f10688ae249a077
67
67
  zh: ab2ff597e1769b81
68
68
  /deepseek-ai-dsh-cordis-host-runner/known-limitations-and-deferred-work/dev-note:
69
- en: 8111315620c52980
70
- zh: 261bf47eecf96bad
69
+ en: e67f633dc6fe7773
70
+ zh: 3bb0c20c93f16f98
package/README.md CHANGED
@@ -59,7 +59,7 @@ Definitions are session-scoped and process-local: other sessions read them as ab
59
59
 
60
60
  ### Trust stance
61
61
 
62
- The sandbox isolates globals but is not a security boundary: Node globals are absent or redirect to Cordis services (`ctx.fs`, `ctx.web`, `ctx.bash`, the timer helpers), and a host half receives a façade without framework internals, yet the services it declares reach the live runtime. Treat a dynamic package like bash access — see the [self-referential toolset Agent Note](../../../.agents/notes/implemented/feature/2026-07-08-self-referential-cordis-toolset.md).
62
+ The sandbox isolates globals but is not a security boundary: Node globals are absent or redirect to Cordis services (`ctx.fs`, `ctx.web`, `ctx.bash`, the timer helpers), and a host half receives a façade without framework internals, yet the services it declares reach the live runtime. Treat a dynamic package like bash access — see the [self-referential toolset reference](README.md).
63
63
 
64
64
  -----
65
65
 
@@ -105,7 +105,7 @@ Read these pages when the package-level contract is not enough. They move from t
105
105
  - [UI package](../ui-cordis/README.md) — the panel users approve and operate runs with.
106
106
  - [Generated configuration catalog](../../../docs/config-catalog.md#deepseek-aidsh-cordis-host-runner) — every accepted config field.
107
107
  - [Extensions subsystem](../../../docs/subsystems/extensions.md) — the generated `ctx.cordisInspect` and `ctx.dynamicCordisRunner` API and `cordis/*` events.
108
- - [Self-referential Cordis toolset Agent Note](../../../.agents/notes/implemented/feature/2026-07-08-self-referential-cordis-toolset.md) — sandbox semantics, lifecycle, and composition rationale.
108
+ - [historical Self-referential Cordis toolset Agent Note](../../../.agents/notes/archived/feature/2026-07-08-self-referential-cordis-toolset.md) — sandbox semantics, lifecycle, and composition rationale.
109
109
 
110
110
  -----
111
111
 
@@ -150,5 +150,3 @@ These limits define when the runner needs special care. They are current package
150
150
  None.
151
151
 
152
152
  </details>
153
-
154
- **Runtime invariant:** No companion is published. The definition registry is process memory with no event stream to observe, and its one owned relation (a running definition owns a settled host-half fiber and its handler table) is established and unwound inside single awaited verbs, so package tests assert it directly.
package/README.zh.md CHANGED
@@ -59,7 +59,7 @@ Client 查询在 `clientInspectTimeoutMs` 内接受首个有效页面响应。
59
59
 
60
60
  ### 信任立场
61
61
 
62
- 沙箱隔离全局变量,但不是安全边界:Node 全局变量不存在,或重定向到 Cordis 服务(`ctx.fs`、`ctx.web`、`ctx.bash` 与定时器 helper),host 半收到的是不含框架内部机制的 façade,但它声明的服务仍会触达存活运行时。对待动态包要像对待 bash 访问一样,参见[自引用工具集 Agent Note](../../../.agents/notes/implemented/feature/2026-07-08-self-referential-cordis-toolset.zh.md)。
62
+ 沙箱隔离全局变量,但不是安全边界:Node 全局变量不存在,或重定向到 Cordis 服务(`ctx.fs`、`ctx.web`、`ctx.bash` 与定时器 helper),host 半收到的是不含框架内部机制的 façade,但它声明的服务仍会触达存活运行时。对待动态包要像对待 bash 访问一样,参见[自引用工具集 参考](README.zh.md)。
63
63
 
64
64
  -----
65
65
 
@@ -105,7 +105,7 @@ runner 基于两项职责划分。**注册表与沙箱是同一个服务。** `D
105
105
  - [UI 包](../ui-cordis/README.zh.md)——用户批准并操作运行的面板。
106
106
  - [生成的配置目录](../../../docs/config-catalog.zh.md#deepseek-aidsh-cordis-host-runner)——每个受支持配置字段。
107
107
  - [extensions 子系统](../../../docs/subsystems/extensions.zh.md)——生成的 `ctx.cordisInspect` 与 `ctx.dynamicCordisRunner` API 及 `cordis/*` 事件。
108
- - [自引用 Cordis 工具集 Agent Note](../../../.agents/notes/implemented/feature/2026-07-08-self-referential-cordis-toolset.zh.md)——沙箱语义、生命周期与组合的理由。
108
+ - [历史自引用 Cordis 工具集 Agent Note](../../../.agents/notes/archived/feature/2026-07-08-self-referential-cordis-toolset.md)——沙箱语义、生命周期与组合的理由。
109
109
 
110
110
  -----
111
111
 
@@ -150,5 +150,3 @@ runner 基于两项职责划分。**注册表与沙箱是同一个服务。** `D
150
150
  无。
151
151
 
152
152
  </details>
153
-
154
- **运行时不变式:** 不发布伴生入口。definition registry 位于进程内存中且没有可观察的事件流;它唯一负责的关系是运行中的 definition 拥有已结算的 host-half fiber 及其 handler table,该关系在单个等待完成的操作中建立和解除,因此由包测试直接断言。
package/lib/index.js CHANGED
@@ -1372,7 +1372,7 @@ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializ
1372
1372
  * @param id - opaque identifier minted by the Host registry.
1373
1373
  * @returns the branded Plugin identifier.
1374
1374
  */
1375
- function CordisDynamicPluginId(id) {
1375
+ function brandCordisDynamicPluginId(id) {
1376
1376
  return id;
1377
1377
  }
1378
1378
  /**
@@ -1380,7 +1380,7 @@ function CordisDynamicPluginId(id) {
1380
1380
  * @param id - opaque identifier minted by the Host registry.
1381
1381
  * @returns the branded Package identifier.
1382
1382
  */
1383
- function CordisDynamicPackageId(id) {
1383
+ function brandCordisDynamicPackageId(id) {
1384
1384
  return id;
1385
1385
  }
1386
1386
  /**
@@ -1388,7 +1388,7 @@ function CordisDynamicPackageId(id) {
1388
1388
  * @param id - opaque identifier minted by the Host registry.
1389
1389
  * @returns the branded Plugin Run identifier.
1390
1390
  */
1391
- function CordisDynamicPluginRunId(id) {
1391
+ function brandCordisDynamicPluginRunId(id) {
1392
1392
  return id;
1393
1393
  }
1394
1394
  /**
@@ -1396,7 +1396,7 @@ function CordisDynamicPluginRunId(id) {
1396
1396
  * @param id - opaque identifier minted by the Host registry.
1397
1397
  * @returns the branded approval request identifier.
1398
1398
  */
1399
- function ApprovalRequestId(id) {
1399
+ function brandApprovalRequestId(id) {
1400
1400
  return id;
1401
1401
  }
1402
1402
  /** Dynamic Plugin registry and Host-half lifecycle. */
@@ -1605,7 +1605,7 @@ let DynamicCordisRunnerService = (() => {
1605
1605
  const prefix = request.plugin.idPrefix.trim();
1606
1606
  if (!/^[a-z]{3,6}$/.test(prefix)) throw new Error("cordis_define `plugin.idPrefix` must contain 3–6 lowercase English letters");
1607
1607
  plugin = {
1608
- pluginId: CordisDynamicPluginId(this.registry.mintPluginId(prefix)),
1608
+ pluginId: brandCordisDynamicPluginId(this.registry.mintPluginId(prefix)),
1609
1609
  sessionId: request.sessionId,
1610
1610
  packages: /* @__PURE__ */ new Map(),
1611
1611
  approvedClientPackages: /* @__PURE__ */ new Set(),
@@ -1617,7 +1617,7 @@ let DynamicCordisRunnerService = (() => {
1617
1617
  if (found === void 0 || found.sessionId !== request.sessionId) throw new Error(missingPluginMessage(request.plugin.pluginId));
1618
1618
  plugin = found;
1619
1619
  }
1620
- const packageId = CordisDynamicPackageId(this.registry.mintPackageId());
1620
+ const packageId = brandCordisDynamicPackageId(this.registry.mintPackageId());
1621
1621
  const definition = {
1622
1622
  packageId,
1623
1623
  name,
@@ -1703,7 +1703,7 @@ let DynamicCordisRunnerService = (() => {
1703
1703
  reason: "host-half-failed"
1704
1704
  };
1705
1705
  }
1706
- const requestId = ApprovalRequestId(this.registry.mintApprovalRequestId());
1706
+ const requestId = brandApprovalRequestId(this.registry.mintApprovalRequestId());
1707
1707
  const requiresApproval = !plan.plugin.clientVersionUpdatesApproved && !plan.plugin.approvedClientPackages.has(packageId);
1708
1708
  attempt.approvalRequestId = requestId;
1709
1709
  attempt.requiresApproval = requiresApproval;
@@ -2474,7 +2474,7 @@ let DynamicCordisRunnerService = (() => {
2474
2474
  }
2475
2475
  createAttempt(plan) {
2476
2476
  return {
2477
- pluginRunId: CordisDynamicPluginRunId(this.registry.mintPluginRunId()),
2477
+ pluginRunId: brandCordisDynamicPluginRunId(this.registry.mintPluginRunId()),
2478
2478
  packageId: plan.definition.packageId,
2479
2479
  mode: plan.mode,
2480
2480
  status: "starting-host",
@@ -2569,4 +2569,4 @@ function cloneAttempt(attempt) {
2569
2569
  };
2570
2570
  }
2571
2571
  //#endregion
2572
- export { ApprovalRequestId, CordisDynamicPackageId, CordisDynamicPluginId, CordisDynamicPluginRunId, CordisInspectRegistryService, DynamicCordisRunnerService, DynamicCordisRunnerService as default };
2572
+ export { brandApprovalRequestId as ApprovalRequestId, brandCordisDynamicPackageId as CordisDynamicPackageId, brandCordisDynamicPluginId as CordisDynamicPluginId, brandCordisDynamicPluginRunId as CordisDynamicPluginRunId, CordisInspectRegistryService, DynamicCordisRunnerService, DynamicCordisRunnerService as default };
@@ -304,7 +304,7 @@ export const TYPERT = {
304
304
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisClientSource',
305
305
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_getClientCode_result$schema,
306
306
  },
307
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":392,"column":3},
307
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":402,"column":3},
308
308
  },
309
309
  {
310
310
  id: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/inventory',
@@ -319,7 +319,7 @@ export const TYPERT = {
319
319
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/inventory:result',
320
320
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_inventory_result$schema,
321
321
  },
322
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":534,"column":3},
322
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":544,"column":3},
323
323
  },
324
324
  {
325
325
  id: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/invoke',
@@ -374,7 +374,7 @@ export const TYPERT = {
374
374
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisInvokeResult',
375
375
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_invoke_result$schema,
376
376
  },
377
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":750,"column":9},
377
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":760,"column":9},
378
378
  },
379
379
  {
380
380
  id: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/reportClientGuardFailure',
@@ -434,7 +434,7 @@ export const TYPERT = {
434
434
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/reportClientGuardFailure:result',
435
435
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportClientGuardFailure_result$schema,
436
436
  },
437
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":727,"column":9},
437
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":737,"column":9},
438
438
  },
439
439
  {
440
440
  id: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/reportRenderFailure',
@@ -494,7 +494,7 @@ export const TYPERT = {
494
494
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/reportRenderFailure:result',
495
495
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportRenderFailure_result$schema,
496
496
  },
497
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":693,"column":9},
497
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":703,"column":9},
498
498
  },
499
499
  {
500
500
  id: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/resolveInspectQuery',
@@ -544,7 +544,7 @@ export const TYPERT = {
544
544
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner/types#CordisInspectResolveAck',
545
545
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_resolveInspectQuery_result$schema,
546
546
  },
547
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":520,"column":3},
547
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":530,"column":3},
548
548
  },
549
549
  {
550
550
  id: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/resolveRequestRun',
@@ -579,7 +579,7 @@ export const TYPERT = {
579
579
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisResolveAck',
580
580
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_resolveRequestRun_result$schema,
581
581
  },
582
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":421,"column":9},
582
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":431,"column":9},
583
583
  },
584
584
  {
585
585
  id: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/runHostHalf',
@@ -659,7 +659,7 @@ export const TYPERT = {
659
659
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisHostHalfResult',
660
660
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_runHostHalf_result$schema,
661
661
  },
662
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":333,"column":9},
662
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":343,"column":9},
663
663
  },
664
664
  {
665
665
  id: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/settleUserRun',
@@ -709,7 +709,7 @@ export const TYPERT = {
709
709
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisRunResponse',
710
710
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_settleUserRun_result$schema,
711
711
  },
712
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":446,"column":9},
712
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":456,"column":9},
713
713
  },
714
714
  {
715
715
  id: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/stopFromPanel',
@@ -749,7 +749,7 @@ export const TYPERT = {
749
749
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisStopResponse',
750
750
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_stopFromPanel_result$schema,
751
751
  },
752
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":488,"column":9},
752
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":498,"column":9},
753
753
  },
754
754
  {
755
755
  id: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/syncInspectManifest',
@@ -774,7 +774,7 @@ export const TYPERT = {
774
774
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/syncInspectManifest:result',
775
775
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_syncInspectManifest_result$schema,
776
776
  },
777
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":506,"column":3},
777
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":516,"column":3},
778
778
  },
779
779
  {
780
780
  id: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/undefineFromPanel',
@@ -814,7 +814,7 @@ export const TYPERT = {
814
814
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisUndefineReceipt',
815
815
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_undefineFromPanel_result$schema,
816
816
  },
817
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":235,"column":9},
817
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":245,"column":9},
818
818
  },
819
819
  ],
820
820
  model: {
@@ -1142,16 +1142,28 @@ export const TYPERT = {
1142
1142
  },
1143
1143
  {
1144
1144
  "name": "LlmCallConfig",
1145
- "declaration": "export interface LlmCallConfig {\n provider: string;\n model: string;\n reasoningEffort?: ReasoningEffortId;\n temperature?: number;\n maxTokens?: number;\n stop?: string[];\n}"
1145
+ "declaration": "export interface LlmCallConfig extends LlmCallControls {\n provider: string;\n model: string;\n}"
1146
1146
  },
1147
1147
  {
1148
1148
  "name": "LlmCallConfigAdapterDefaults",
1149
1149
  "declaration": "export interface LlmCallConfigAdapterDefaults {\n reasoningEffort?: true;\n maxTokens?: true;\n}"
1150
1150
  },
1151
+ {
1152
+ "name": "LlmCallControls",
1153
+ "declaration": "export interface LlmCallControls {\n reasoningEffort?: ReasoningEffortId;\n temperature?: number;\n maxTokens?: number;\n stop?: string[];\n}"
1154
+ },
1151
1155
  {
1152
1156
  "name": "LlmFailure",
1153
1157
  "declaration": "export interface LlmFailure {\n readonly message: string;\n readonly code: string;\n readonly status?: number;\n readonly providerRetryAfterMs?: number;\n readonly requestId?: ProviderRequestId;\n readonly offloadImages?: number;\n}"
1154
1158
  },
1159
+ {
1160
+ "name": "LlmRetryEventData",
1161
+ "declaration": "export type LlmRetryEventData = { retryId: RetryId; turn: number; step: number; provider: string; mode: 'normal'; policyKey: string; retry: number; maxRetries: number; delayMs: number; failure: LlmFailure; } | { retryId: RetryId; turn: number; step: number; provider: string; mode: 'always'; policyKey: string; retry: number; delayMs: number; failure: LlmFailure; };"
1162
+ },
1163
+ {
1164
+ "name": "LlmRetryStartedEventData",
1165
+ "declaration": "export interface LlmRetryStartedEventData {\n retryId: RetryId;\n turn: number;\n step: number;\n retry: number;\n}"
1166
+ },
1155
1167
  {
1156
1168
  "name": "Message",
1157
1169
  "declaration": "export type Message = MessageRoleMap[keyof MessageRoleMap];"
@@ -1194,7 +1206,7 @@ export const TYPERT = {
1194
1206
  },
1195
1207
  {
1196
1208
  "name": "MessageSourceMap",
1197
- "declaration": "export interface MessageSourceMap {\n user: { kind: 'user'; };\n model: ModelMessageSource;\n tool: ToolMessageSource;\n 'system-prompt': SystemPromptMessageSource;\n 'model-selection': { kind: 'model-selection'; } & ContextFormed;\n 'user-approval': { kind: 'user-approval'; } & ContextFormed;\n 'ptc-mode': { kind: 'ptc-mode'; };\n 'tool-registry': { kind: 'tool-registry'; };\n 'user-rpc': { kind: 'user'; rpcId: SessionRequestId; clientTimeZone?: string; };\n 'agent-message': AgentMessageSource;\n 'subagent-settled': SubagentSettledMessageSource;\n 'skill-invocation': SkillInvocationSource;\n 'cordis-host-runner': { kind: 'cordis-host-runner'; };\n goal: GoalMessageSource;\n schedule: { kind: 'schedule'; } & ContextFormed;\n 'compact-checkpoint': CompactionCheckpointSource;\n 'session-reference': SessionReferenceSource;\n 'user-question-reply': { kind: 'user-question-reply'; callId: ToolCallId; outcome: 'answered'; };\n}"
1209
+ "declaration": "export interface MessageSourceMap {\n user: { kind: 'user'; };\n model: ModelMessageSource;\n tool: ToolMessageSource;\n 'system-prompt': SystemPromptMessageSource;\n 'model-selection': { kind: 'model-selection'; } & ContextFormed;\n 'working-directory': { kind: 'working-directory'; };\n 'user-approval': { kind: 'user-approval'; } & ContextFormed;\n 'ptc-mode': { kind: 'ptc-mode'; };\n 'tool-registry': { kind: 'tool-registry'; };\n 'user-rpc': { kind: 'user'; rpcId: SessionRequestId; clientTimeZone?: string; };\n 'agent-message': AgentMessageSource;\n 'subagent-settled': SubagentSettledMessageSource;\n 'skill-invocation': SkillInvocationSource;\n 'cordis-host-runner': { kind: 'cordis-host-runner'; };\n 'compact-checkpoint': CompactionCheckpointSource;\n 'user-question-reply': { kind: 'user-question-reply'; callId: ToolCallId; outcome: 'answered'; };\n goal: GoalMessageSource;\n schedule: { kind: 'schedule'; } & ContextFormed;\n 'session-reference': SessionReferenceSource;\n}"
1198
1210
  },
1199
1211
  {
1200
1212
  "name": "ModelMessageSource",
@@ -1222,7 +1234,7 @@ export const TYPERT = {
1222
1234
  },
1223
1235
  {
1224
1236
  "name": "PtcDispatchEventData",
1225
- "declaration": "export interface PtcDispatchEventData extends PtcDispatchStartEventData {\n isError: boolean;\n content: ContentBlock[];\n error?: { name: string; code: string; reason?: string; };\n}"
1237
+ "declaration": "export interface PtcDispatchEventData extends PtcDispatchStartEventData {\n isError: boolean;\n content: ContentBlock[];\n meta?: JsonValue;\n error?: { name: string; code: string; reason?: string; };\n}"
1226
1238
  },
1227
1239
  {
1228
1240
  "name": "PtcDispatchStartEventData",
@@ -1248,6 +1260,10 @@ export const TYPERT = {
1248
1260
  "name": "RequestHeaderReason",
1249
1261
  "declaration": "export type RequestHeaderReason = 'initial' | 'resume' | 'change' | 'series';"
1250
1262
  },
1263
+ {
1264
+ "name": "RetryId",
1265
+ "declaration": "export type RetryId = Branded<'RetryId'>;"
1266
+ },
1251
1267
  {
1252
1268
  "name": "SandboxMode",
1253
1269
  "declaration": "export type SandboxMode = 'read-only' | 'workspace-write' | 'danger-full-access';"
@@ -1282,7 +1298,7 @@ export const TYPERT = {
1282
1298
  },
1283
1299
  {
1284
1300
  "name": "SessionEventMap",
1285
- "declaration": "export interface SessionEventMap {\n 'turn/start': { turn: number; };\n 'turn/end': { turn: number; reason: TurnEndReason; };\n 'step/start': { turn: number; step: number; };\n 'step/end': { turn: number; step: number; };\n 'user/message': UserMessage;\n 'developer/message': { turn: number; step: number; message: DeveloperMessage; headerSeq?: SessionSeq; };\n 'system/message': { turn: number; step: number; message: SystemMessage; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; stream: AssistantStreamRecord[]; usage?: TokenUsage; interrupted?: true; };\n 'assistant/attempt': { turn: number; step: number; stream: AssistantStreamRecord[]; };\n 'tool/call': { turn: number; step: number; callId: ToolCallId; name: string; arguments: string; };\n 'tool/result': { turn: number; step: number; message: ToolResultMessage; error?: { name: string; code: string; reason?: string; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': { inherited?: true; };\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\n 'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\n 'approval/asked': { id: ApprovalRequestId; toolName: string; callId?: ToolCallId; reason?: string; };\n 'approval/decided': { id: ApprovalRequestId; outcome: ApprovalOutcome; };\n 'approval/policy': { policy: ApprovalPolicy; source?: 'delegation'; };\n 'tool/ptc-dispatch-start': PtcDispatchStartEventData;\n 'tool/ptc-dispatch': PtcDispatchEventData;\n 'agent-preset/selected': { agentPreset: string; };\n 'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource; };\n 'command/done': { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: import('@deepseek-ai/dsh-session/types').SessionSeq; };\n 'image/offload': { targets: ImageOffloadTarget[]; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'model/selection': ModelSelection;\n 'subagent/descriptor': SubagentDescriptorData;\n 'permission/preset': { preset: string; };\n 'subagent/catalog': SubagentCatalogEvent;\n 'compaction/start': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; };\n 'compaction/summary': { compactionId: CompactionId; sourceCommandId?: CommandId; summary: ContentBlock[]; shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; provider: string; model: string; maxTokens?: number; usage?: TokenUsage; } & ({ rawOutput: ContentBlock[]; llmStreamCall: true; } | { rawOutput?: ContentBlock[]; llmStreamCall?: never; });\n 'compaction/end': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; error?: string; };\n 'compaction/prune': { shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; };\n 'feedback/record': FeedbackRecord;\n 'goal/change': GoalChangeMeta;\n 'feedback/message-put': MessageFeedbackPut;\n 'feedback/message-delete': MessageFeedbackDelete;\n 'schedule/change': ScheduleChange;\n}"
1301
+ "declaration": "export interface SessionEventMap {\n 'turn/start': { turn: number; };\n 'turn/end': { turn: number; reason: TurnEndReason; };\n 'step/start': { turn: number; step: number; };\n 'step/end': { turn: number; step: number; };\n 'user/message': UserMessage;\n 'developer/message': { turn: number; step: number; message: DeveloperMessage; headerSeq?: SessionSeq; };\n 'system/message': { turn: number; step: number; message: SystemMessage; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; stream: AssistantStreamRecord[]; usage?: TokenUsage; interrupted?: true; };\n 'assistant/attempt': { turn: number; step: number; stream: AssistantStreamRecord[]; };\n 'tool/call': { turn: number; step: number; callId: ToolCallId; name: string; arguments: string; };\n 'tool/result': { turn: number; step: number; message: ToolResultMessage; error?: { name: string; code: string; reason?: string; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': { inherited?: true; };\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\n 'working-directory/change': { cwd: string; };\n 'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\n 'approval/asked': { id: ApprovalRequestId; toolName: string; callId?: ToolCallId; reason?: string; };\n 'approval/decided': { id: ApprovalRequestId; outcome: ApprovalOutcome; };\n 'approval/policy': { policy: ApprovalPolicy; source?: 'delegation'; };\n 'tool/ptc-dispatch-start': PtcDispatchStartEventData;\n 'tool/ptc-dispatch': PtcDispatchEventData;\n 'agent-preset/selected': { agentPreset: string; };\n 'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource; };\n 'command/done': { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: import('@deepseek-ai/dsh-session/types').SessionSeq; };\n 'image/offload': { targets: ImageOffloadTarget[]; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'model/selection': ModelSelection;\n 'permission/preset': { preset: string; };\n 'subagent/descriptor': SubagentDescriptorData;\n 'subagent/catalog': SubagentCatalogEvent;\n 'compaction/start': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; };\n 'compaction/summary': { compactionId: CompactionId; sourceCommandId?: CommandId; summary: ContentBlock[]; shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; provider: string; model: string; maxTokens?: number; usage?: TokenUsage; } & ({ rawOutput: ContentBlock[]; llmStreamCall: true; } | { rawOutput?: ContentBlock[]; llmStreamCall?: never; });\n 'compaction/end': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; error?: string; };\n 'compaction/prune': { shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; };\n 'feedback/record': FeedbackRecord;\n 'llm/retry': LlmRetryEventData;\n 'llm/retry-started': LlmRetryStartedEventData;\n 'goal/change': GoalChangeMeta;\n 'feedback/message-put': MessageFeedbackPut;\n 'feedback/message-delete': MessageFeedbackDelete;\n 'schedule/change': ScheduleChange;\n}"
1286
1302
  },
1287
1303
  {
1288
1304
  "name": "SessionEventType",
@@ -1342,7 +1358,7 @@ export const TYPERT = {
1342
1358
  },
1343
1359
  {
1344
1360
  "name": "SubagentCatalogEvent",
1345
- "declaration": "export type SubagentCatalogEvent = { readonly childId: SessionId; readonly childCreatedAt: number; } & (({ readonly version: 0; } & KnownCatalogMode) | ({ readonly version: 1; } & (KnownCatalogMode | { readonly mode: 'unknown'; readonly label?: string; })));"
1361
+ "declaration": "export type SubagentCatalogEvent = { readonly childId: SessionId; readonly childCreatedAt: number; } & (({ readonly version: 0; } & KnownCatalogMode) | ({ readonly version: 1; } & (KnownCatalogMode | { readonly mode: 'unknown'; readonly label?: string; })) | { readonly version: 2; readonly mode: 'external'; readonly label?: string; });"
1346
1362
  },
1347
1363
  {
1348
1364
  "name": "SubagentDescriptorBase",
@@ -1973,16 +1989,28 @@ export const TYPERT = {
1973
1989
  },
1974
1990
  {
1975
1991
  "name": "LlmCallConfig",
1976
- "declaration": "export interface LlmCallConfig {\n provider: string;\n model: string;\n reasoningEffort?: ReasoningEffortId;\n temperature?: number;\n maxTokens?: number;\n stop?: string[];\n}"
1992
+ "declaration": "export interface LlmCallConfig extends LlmCallControls {\n provider: string;\n model: string;\n}"
1977
1993
  },
1978
1994
  {
1979
1995
  "name": "LlmCallConfigAdapterDefaults",
1980
1996
  "declaration": "export interface LlmCallConfigAdapterDefaults {\n reasoningEffort?: true;\n maxTokens?: true;\n}"
1981
1997
  },
1998
+ {
1999
+ "name": "LlmCallControls",
2000
+ "declaration": "export interface LlmCallControls {\n reasoningEffort?: ReasoningEffortId;\n temperature?: number;\n maxTokens?: number;\n stop?: string[];\n}"
2001
+ },
1982
2002
  {
1983
2003
  "name": "LlmFailure",
1984
2004
  "declaration": "export interface LlmFailure {\n readonly message: string;\n readonly code: string;\n readonly status?: number;\n readonly providerRetryAfterMs?: number;\n readonly requestId?: ProviderRequestId;\n readonly offloadImages?: number;\n}"
1985
2005
  },
2006
+ {
2007
+ "name": "LlmRetryEventData",
2008
+ "declaration": "export type LlmRetryEventData = { retryId: RetryId; turn: number; step: number; provider: string; mode: 'normal'; policyKey: string; retry: number; maxRetries: number; delayMs: number; failure: LlmFailure; } | { retryId: RetryId; turn: number; step: number; provider: string; mode: 'always'; policyKey: string; retry: number; delayMs: number; failure: LlmFailure; };"
2009
+ },
2010
+ {
2011
+ "name": "LlmRetryStartedEventData",
2012
+ "declaration": "export interface LlmRetryStartedEventData {\n retryId: RetryId;\n turn: number;\n step: number;\n retry: number;\n}"
2013
+ },
1986
2014
  {
1987
2015
  "name": "Message",
1988
2016
  "declaration": "export type Message = MessageRoleMap[keyof MessageRoleMap];"
@@ -2025,7 +2053,7 @@ export const TYPERT = {
2025
2053
  },
2026
2054
  {
2027
2055
  "name": "MessageSourceMap",
2028
- "declaration": "export interface MessageSourceMap {\n user: { kind: 'user'; };\n model: ModelMessageSource;\n tool: ToolMessageSource;\n 'system-prompt': SystemPromptMessageSource;\n 'model-selection': { kind: 'model-selection'; } & ContextFormed;\n 'user-approval': { kind: 'user-approval'; } & ContextFormed;\n 'ptc-mode': { kind: 'ptc-mode'; };\n 'tool-registry': { kind: 'tool-registry'; };\n 'user-rpc': { kind: 'user'; rpcId: SessionRequestId; clientTimeZone?: string; };\n 'agent-message': AgentMessageSource;\n 'subagent-settled': SubagentSettledMessageSource;\n 'skill-invocation': SkillInvocationSource;\n 'cordis-host-runner': { kind: 'cordis-host-runner'; };\n goal: GoalMessageSource;\n schedule: { kind: 'schedule'; } & ContextFormed;\n 'compact-checkpoint': CompactionCheckpointSource;\n 'session-reference': SessionReferenceSource;\n 'user-question-reply': { kind: 'user-question-reply'; callId: ToolCallId; outcome: 'answered'; };\n}"
2056
+ "declaration": "export interface MessageSourceMap {\n user: { kind: 'user'; };\n model: ModelMessageSource;\n tool: ToolMessageSource;\n 'system-prompt': SystemPromptMessageSource;\n 'model-selection': { kind: 'model-selection'; } & ContextFormed;\n 'working-directory': { kind: 'working-directory'; };\n 'user-approval': { kind: 'user-approval'; } & ContextFormed;\n 'ptc-mode': { kind: 'ptc-mode'; };\n 'tool-registry': { kind: 'tool-registry'; };\n 'user-rpc': { kind: 'user'; rpcId: SessionRequestId; clientTimeZone?: string; };\n 'agent-message': AgentMessageSource;\n 'subagent-settled': SubagentSettledMessageSource;\n 'skill-invocation': SkillInvocationSource;\n 'cordis-host-runner': { kind: 'cordis-host-runner'; };\n 'compact-checkpoint': CompactionCheckpointSource;\n 'user-question-reply': { kind: 'user-question-reply'; callId: ToolCallId; outcome: 'answered'; };\n goal: GoalMessageSource;\n schedule: { kind: 'schedule'; } & ContextFormed;\n 'session-reference': SessionReferenceSource;\n}"
2029
2057
  },
2030
2058
  {
2031
2059
  "name": "ModelMessageSource",
@@ -2053,7 +2081,7 @@ export const TYPERT = {
2053
2081
  },
2054
2082
  {
2055
2083
  "name": "PtcDispatchEventData",
2056
- "declaration": "export interface PtcDispatchEventData extends PtcDispatchStartEventData {\n isError: boolean;\n content: ContentBlock[];\n error?: { name: string; code: string; reason?: string; };\n}"
2084
+ "declaration": "export interface PtcDispatchEventData extends PtcDispatchStartEventData {\n isError: boolean;\n content: ContentBlock[];\n meta?: JsonValue;\n error?: { name: string; code: string; reason?: string; };\n}"
2057
2085
  },
2058
2086
  {
2059
2087
  "name": "PtcDispatchStartEventData",
@@ -2079,6 +2107,10 @@ export const TYPERT = {
2079
2107
  "name": "RequestHeaderReason",
2080
2108
  "declaration": "export type RequestHeaderReason = 'initial' | 'resume' | 'change' | 'series';"
2081
2109
  },
2110
+ {
2111
+ "name": "RetryId",
2112
+ "declaration": "export type RetryId = Branded<'RetryId'>;"
2113
+ },
2082
2114
  {
2083
2115
  "name": "SandboxMode",
2084
2116
  "declaration": "export type SandboxMode = 'read-only' | 'workspace-write' | 'danger-full-access';"
@@ -2113,7 +2145,7 @@ export const TYPERT = {
2113
2145
  },
2114
2146
  {
2115
2147
  "name": "SessionEventMap",
2116
- "declaration": "export interface SessionEventMap {\n 'turn/start': { turn: number; };\n 'turn/end': { turn: number; reason: TurnEndReason; };\n 'step/start': { turn: number; step: number; };\n 'step/end': { turn: number; step: number; };\n 'user/message': UserMessage;\n 'developer/message': { turn: number; step: number; message: DeveloperMessage; headerSeq?: SessionSeq; };\n 'system/message': { turn: number; step: number; message: SystemMessage; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; stream: AssistantStreamRecord[]; usage?: TokenUsage; interrupted?: true; };\n 'assistant/attempt': { turn: number; step: number; stream: AssistantStreamRecord[]; };\n 'tool/call': { turn: number; step: number; callId: ToolCallId; name: string; arguments: string; };\n 'tool/result': { turn: number; step: number; message: ToolResultMessage; error?: { name: string; code: string; reason?: string; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': { inherited?: true; };\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\n 'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\n 'approval/asked': { id: ApprovalRequestId; toolName: string; callId?: ToolCallId; reason?: string; };\n 'approval/decided': { id: ApprovalRequestId; outcome: ApprovalOutcome; };\n 'approval/policy': { policy: ApprovalPolicy; source?: 'delegation'; };\n 'tool/ptc-dispatch-start': PtcDispatchStartEventData;\n 'tool/ptc-dispatch': PtcDispatchEventData;\n 'agent-preset/selected': { agentPreset: string; };\n 'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource; };\n 'command/done': { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: import('@deepseek-ai/dsh-session/types').SessionSeq; };\n 'image/offload': { targets: ImageOffloadTarget[]; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'model/selection': ModelSelection;\n 'subagent/descriptor': SubagentDescriptorData;\n 'permission/preset': { preset: string; };\n 'subagent/catalog': SubagentCatalogEvent;\n 'compaction/start': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; };\n 'compaction/summary': { compactionId: CompactionId; sourceCommandId?: CommandId; summary: ContentBlock[]; shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; provider: string; model: string; maxTokens?: number; usage?: TokenUsage; } & ({ rawOutput: ContentBlock[]; llmStreamCall: true; } | { rawOutput?: ContentBlock[]; llmStreamCall?: never; });\n 'compaction/end': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; error?: string; };\n 'compaction/prune': { shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; };\n 'feedback/record': FeedbackRecord;\n 'goal/change': GoalChangeMeta;\n 'feedback/message-put': MessageFeedbackPut;\n 'feedback/message-delete': MessageFeedbackDelete;\n 'schedule/change': ScheduleChange;\n}"
2148
+ "declaration": "export interface SessionEventMap {\n 'turn/start': { turn: number; };\n 'turn/end': { turn: number; reason: TurnEndReason; };\n 'step/start': { turn: number; step: number; };\n 'step/end': { turn: number; step: number; };\n 'user/message': UserMessage;\n 'developer/message': { turn: number; step: number; message: DeveloperMessage; headerSeq?: SessionSeq; };\n 'system/message': { turn: number; step: number; message: SystemMessage; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; stream: AssistantStreamRecord[]; usage?: TokenUsage; interrupted?: true; };\n 'assistant/attempt': { turn: number; step: number; stream: AssistantStreamRecord[]; };\n 'tool/call': { turn: number; step: number; callId: ToolCallId; name: string; arguments: string; };\n 'tool/result': { turn: number; step: number; message: ToolResultMessage; error?: { name: string; code: string; reason?: string; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': { inherited?: true; };\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\n 'working-directory/change': { cwd: string; };\n 'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\n 'approval/asked': { id: ApprovalRequestId; toolName: string; callId?: ToolCallId; reason?: string; };\n 'approval/decided': { id: ApprovalRequestId; outcome: ApprovalOutcome; };\n 'approval/policy': { policy: ApprovalPolicy; source?: 'delegation'; };\n 'tool/ptc-dispatch-start': PtcDispatchStartEventData;\n 'tool/ptc-dispatch': PtcDispatchEventData;\n 'agent-preset/selected': { agentPreset: string; };\n 'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource; };\n 'command/done': { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: import('@deepseek-ai/dsh-session/types').SessionSeq; };\n 'image/offload': { targets: ImageOffloadTarget[]; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'model/selection': ModelSelection;\n 'permission/preset': { preset: string; };\n 'subagent/descriptor': SubagentDescriptorData;\n 'subagent/catalog': SubagentCatalogEvent;\n 'compaction/start': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; };\n 'compaction/summary': { compactionId: CompactionId; sourceCommandId?: CommandId; summary: ContentBlock[]; shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; provider: string; model: string; maxTokens?: number; usage?: TokenUsage; } & ({ rawOutput: ContentBlock[]; llmStreamCall: true; } | { rawOutput?: ContentBlock[]; llmStreamCall?: never; });\n 'compaction/end': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; error?: string; };\n 'compaction/prune': { shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; };\n 'feedback/record': FeedbackRecord;\n 'llm/retry': LlmRetryEventData;\n 'llm/retry-started': LlmRetryStartedEventData;\n 'goal/change': GoalChangeMeta;\n 'feedback/message-put': MessageFeedbackPut;\n 'feedback/message-delete': MessageFeedbackDelete;\n 'schedule/change': ScheduleChange;\n}"
2117
2149
  },
2118
2150
  {
2119
2151
  "name": "SessionEventType",
@@ -2173,7 +2205,7 @@ export const TYPERT = {
2173
2205
  },
2174
2206
  {
2175
2207
  "name": "SubagentCatalogEvent",
2176
- "declaration": "export type SubagentCatalogEvent = { readonly childId: SessionId; readonly childCreatedAt: number; } & (({ readonly version: 0; } & KnownCatalogMode) | ({ readonly version: 1; } & (KnownCatalogMode | { readonly mode: 'unknown'; readonly label?: string; })));"
2208
+ "declaration": "export type SubagentCatalogEvent = { readonly childId: SessionId; readonly childCreatedAt: number; } & (({ readonly version: 0; } & KnownCatalogMode) | ({ readonly version: 1; } & (KnownCatalogMode | { readonly mode: 'unknown'; readonly label?: string; })) | { readonly version: 2; readonly mode: 'external'; readonly label?: string; });"
2177
2209
  },
2178
2210
  {
2179
2211
  "name": "SubagentDescriptorBase",
@@ -301,7 +301,7 @@ export const TYPERT_REMOTE = {
301
301
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisClientSource',
302
302
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_getClientCode_result$schema,
303
303
  },
304
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":392,"column":3},
304
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":402,"column":3},
305
305
  },
306
306
  {
307
307
  id: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/inventory',
@@ -316,7 +316,7 @@ export const TYPERT_REMOTE = {
316
316
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/inventory:result',
317
317
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_inventory_result$schema,
318
318
  },
319
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":534,"column":3},
319
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":544,"column":3},
320
320
  },
321
321
  {
322
322
  id: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/invoke',
@@ -371,7 +371,7 @@ export const TYPERT_REMOTE = {
371
371
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisInvokeResult',
372
372
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_invoke_result$schema,
373
373
  },
374
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":750,"column":9},
374
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":760,"column":9},
375
375
  },
376
376
  {
377
377
  id: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/reportClientGuardFailure',
@@ -431,7 +431,7 @@ export const TYPERT_REMOTE = {
431
431
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/reportClientGuardFailure:result',
432
432
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportClientGuardFailure_result$schema,
433
433
  },
434
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":727,"column":9},
434
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":737,"column":9},
435
435
  },
436
436
  {
437
437
  id: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/reportRenderFailure',
@@ -491,7 +491,7 @@ export const TYPERT_REMOTE = {
491
491
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/reportRenderFailure:result',
492
492
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_reportRenderFailure_result$schema,
493
493
  },
494
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":693,"column":9},
494
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":703,"column":9},
495
495
  },
496
496
  {
497
497
  id: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/resolveInspectQuery',
@@ -541,7 +541,7 @@ export const TYPERT_REMOTE = {
541
541
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner/types#CordisInspectResolveAck',
542
542
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_resolveInspectQuery_result$schema,
543
543
  },
544
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":520,"column":3},
544
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":530,"column":3},
545
545
  },
546
546
  {
547
547
  id: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/resolveRequestRun',
@@ -576,7 +576,7 @@ export const TYPERT_REMOTE = {
576
576
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisResolveAck',
577
577
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_resolveRequestRun_result$schema,
578
578
  },
579
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":421,"column":9},
579
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":431,"column":9},
580
580
  },
581
581
  {
582
582
  id: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/runHostHalf',
@@ -656,7 +656,7 @@ export const TYPERT_REMOTE = {
656
656
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisHostHalfResult',
657
657
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_runHostHalf_result$schema,
658
658
  },
659
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":333,"column":9},
659
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":343,"column":9},
660
660
  },
661
661
  {
662
662
  id: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/settleUserRun',
@@ -706,7 +706,7 @@ export const TYPERT_REMOTE = {
706
706
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisRunResponse',
707
707
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_settleUserRun_result$schema,
708
708
  },
709
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":446,"column":9},
709
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":456,"column":9},
710
710
  },
711
711
  {
712
712
  id: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/stopFromPanel',
@@ -746,7 +746,7 @@ export const TYPERT_REMOTE = {
746
746
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisStopResponse',
747
747
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_stopFromPanel_result$schema,
748
748
  },
749
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":488,"column":9},
749
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":498,"column":9},
750
750
  },
751
751
  {
752
752
  id: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/syncInspectManifest',
@@ -771,7 +771,7 @@ export const TYPERT_REMOTE = {
771
771
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/syncInspectManifest:result',
772
772
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_syncInspectManifest_result$schema,
773
773
  },
774
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":506,"column":3},
774
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":516,"column":3},
775
775
  },
776
776
  {
777
777
  id: '@deepseek-ai/dsh-cordis-host-runner#dynamicCordisRunner/undefineFromPanel',
@@ -811,7 +811,7 @@ export const TYPERT_REMOTE = {
811
811
  typeSymbol: '@deepseek-ai/dsh-cordis-host-runner/types#DynamicCordisUndefineReceipt',
812
812
  create: _deepseek_ai_dsh_cordis_host_runner_dynamicCordisRunner_undefineFromPanel_result$schema,
813
813
  },
814
- sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":235,"column":9},
814
+ sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":245,"column":9},
815
815
  },
816
816
  ],
817
817
  }
@@ -27,25 +27,26 @@ export type { HostCordisInspectProviderRegistration } from './inspect-registry.t
27
27
  * @param id - opaque identifier minted by the Host registry.
28
28
  * @returns the branded Plugin identifier.
29
29
  */
30
- export declare function CordisDynamicPluginId(id: string): CordisDynamicPluginId;
30
+ declare function brandCordisDynamicPluginId(id: string): CordisDynamicPluginId;
31
31
  /**
32
32
  * Brand a Host-minted Package ID.
33
33
  * @param id - opaque identifier minted by the Host registry.
34
34
  * @returns the branded Package identifier.
35
35
  */
36
- export declare function CordisDynamicPackageId(id: string): CordisDynamicPackageId;
36
+ declare function brandCordisDynamicPackageId(id: string): CordisDynamicPackageId;
37
37
  /**
38
38
  * Brand a Host-minted Plugin Run ID.
39
39
  * @param id - opaque identifier minted by the Host registry.
40
40
  * @returns the branded Plugin Run identifier.
41
41
  */
42
- export declare function CordisDynamicPluginRunId(id: string): CordisDynamicPluginRunId;
42
+ declare function brandCordisDynamicPluginRunId(id: string): CordisDynamicPluginRunId;
43
43
  /**
44
44
  * Brand a Host-minted approval request ID.
45
45
  * @param id - opaque identifier minted by the Host registry.
46
46
  * @returns the branded approval request identifier.
47
47
  */
48
- export declare function ApprovalRequestId(id: string): ApprovalRequestId;
48
+ declare function brandApprovalRequestId(id: string): ApprovalRequestId;
49
+ export { brandApprovalRequestId as ApprovalRequestId, brandCordisDynamicPackageId as CordisDynamicPackageId, brandCordisDynamicPluginId as CordisDynamicPluginId, brandCordisDynamicPluginRunId as CordisDynamicPluginRunId, };
49
50
  declare module '@deepseek-ai/cordis' {
50
51
  interface Context {
51
52
  /** Process-local dynamic Plugin registry and lifecycle service. */
@@ -51,7 +51,7 @@ export { CordisInspectRegistryService } from "./inspect-registry.js";
51
51
  * @param id - opaque identifier minted by the Host registry.
52
52
  * @returns the branded Plugin identifier.
53
53
  */
54
- export function CordisDynamicPluginId(id) {
54
+ function brandCordisDynamicPluginId(id) {
55
55
  return id;
56
56
  }
57
57
  /**
@@ -59,7 +59,7 @@ export function CordisDynamicPluginId(id) {
59
59
  * @param id - opaque identifier minted by the Host registry.
60
60
  * @returns the branded Package identifier.
61
61
  */
62
- export function CordisDynamicPackageId(id) {
62
+ function brandCordisDynamicPackageId(id) {
63
63
  return id;
64
64
  }
65
65
  /**
@@ -67,7 +67,7 @@ export function CordisDynamicPackageId(id) {
67
67
  * @param id - opaque identifier minted by the Host registry.
68
68
  * @returns the branded Plugin Run identifier.
69
69
  */
70
- export function CordisDynamicPluginRunId(id) {
70
+ function brandCordisDynamicPluginRunId(id) {
71
71
  return id;
72
72
  }
73
73
  /**
@@ -75,9 +75,13 @@ export function CordisDynamicPluginRunId(id) {
75
75
  * @param id - opaque identifier minted by the Host registry.
76
76
  * @returns the branded approval request identifier.
77
77
  */
78
- export function ApprovalRequestId(id) {
78
+ function brandApprovalRequestId(id) {
79
79
  return id;
80
80
  }
81
+ // The public names are exported separately: a local declaration sharing a name
82
+ // with a type-only import is ambiguous for checkers that bind the import in
83
+ // value position.
84
+ export { brandApprovalRequestId as ApprovalRequestId, brandCordisDynamicPackageId as CordisDynamicPackageId, brandCordisDynamicPluginId as CordisDynamicPluginId, brandCordisDynamicPluginRunId as CordisDynamicPluginRunId, };
81
85
  /** Dynamic Plugin registry and Host-half lifecycle. */
82
86
  let DynamicCordisRunnerService = (() => {
83
87
  let _classSuper = TypertRemoteService;
@@ -166,7 +170,7 @@ let DynamicCordisRunnerService = (() => {
166
170
  if (!/^[a-z]{3,6}$/.test(prefix)) {
167
171
  throw new Error('cordis_define `plugin.idPrefix` must contain 3–6 lowercase English letters');
168
172
  }
169
- const pluginId = CordisDynamicPluginId(this.registry.mintPluginId(prefix));
173
+ const pluginId = brandCordisDynamicPluginId(this.registry.mintPluginId(prefix));
170
174
  plugin = {
171
175
  pluginId,
172
176
  sessionId: request.sessionId,
@@ -183,7 +187,7 @@ let DynamicCordisRunnerService = (() => {
183
187
  }
184
188
  plugin = found;
185
189
  }
186
- const packageId = CordisDynamicPackageId(this.registry.mintPackageId());
190
+ const packageId = brandCordisDynamicPackageId(this.registry.mintPackageId());
187
191
  const definition = {
188
192
  packageId,
189
193
  name,
@@ -265,7 +269,7 @@ let DynamicCordisRunnerService = (() => {
265
269
  this.failAttempt(plan.plugin, attempt, 'host-load', started);
266
270
  return { ...started, reason: 'host-half-failed' };
267
271
  }
268
- const requestId = ApprovalRequestId(this.registry.mintApprovalRequestId());
272
+ const requestId = brandApprovalRequestId(this.registry.mintApprovalRequestId());
269
273
  const requiresApproval = !plan.plugin.clientVersionUpdatesApproved
270
274
  && !plan.plugin.approvedClientPackages.has(packageId);
271
275
  attempt.approvalRequestId = requestId;
@@ -1060,7 +1064,7 @@ let DynamicCordisRunnerService = (() => {
1060
1064
  }
1061
1065
  createAttempt(plan) {
1062
1066
  return {
1063
- pluginRunId: CordisDynamicPluginRunId(this.registry.mintPluginRunId()),
1067
+ pluginRunId: brandCordisDynamicPluginRunId(this.registry.mintPluginRunId()),
1064
1068
  packageId: plan.definition.packageId,
1065
1069
  mode: plan.mode,
1066
1070
  status: 'starting-host',
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-cordis-host-runner",
3
3
  "description": "Dynamic package definition registry, host-half sandbox lifecycle, and invoke handler table for model-mounted dual-half packages",
4
- "version": "0.2.0-rc.2",
4
+ "version": "0.2.1-alpha.2",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -44,30 +44,30 @@
44
44
  ],
45
45
  "license": "MIT",
46
46
  "dependencies": {
47
- "zod": "^4.4.3",
48
- "@deepseek-ai/dsh-util-values": "0.2.0-rc.2",
49
- "@deepseek-ai/schemastery": "~3.18.4"
47
+ "@deepseek-ai/dsh-util-values": "0.2.1-alpha.2",
48
+ "@deepseek-ai/schemastery": "~3.18.5-alpha.1",
49
+ "zod": "^4.4.3"
50
50
  },
51
51
  "peerDependencies": {
52
- "@deepseek-ai/cordis": "~4.0.4",
53
- "@deepseek-ai/dsh-agent": "0.2.0-rc.2",
54
- "@deepseek-ai/dsh-brand": "0.2.0-rc.2",
55
- "@deepseek-ai/dsh-scope": "0.2.0-rc.2",
56
- "@deepseek-ai/dsh-session": "0.2.0-rc.2",
57
- "@deepseek-ai/dsh-llm": "0.2.0-rc.2",
58
- "@deepseek-ai/dsh-tools": "0.2.0-rc.2",
59
- "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.2"
52
+ "@deepseek-ai/cordis": "~4.0.5-alpha.1",
53
+ "@deepseek-ai/dsh-agent": "0.2.1-alpha.2",
54
+ "@deepseek-ai/dsh-brand": "0.2.1-alpha.2",
55
+ "@deepseek-ai/dsh-llm": "0.2.1-alpha.2",
56
+ "@deepseek-ai/dsh-scope": "0.2.1-alpha.2",
57
+ "@deepseek-ai/dsh-session": "0.2.1-alpha.2",
58
+ "@deepseek-ai/dsh-tools": "0.2.1-alpha.2",
59
+ "@deepseek-ai/dsh-typert-protocol": "0.2.1-alpha.2"
60
60
  },
61
61
  "devDependencies": {
62
- "@deepseek-ai/cordis": "~4.0.4",
63
- "@deepseek-ai/cordis-plugin-timer": "~1.1.6",
64
- "@deepseek-ai/dsh-agent": "0.2.0-rc.2",
65
- "@deepseek-ai/dsh-api-gateway": "0.2.0-rc.2",
66
- "@deepseek-ai/dsh-scope": "0.2.0-rc.2",
67
- "@deepseek-ai/dsh-session": "0.2.0-rc.2",
68
- "@deepseek-ai/dsh-tools": "0.2.0-rc.2",
69
- "@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.2",
70
- "@deepseek-ai/dsh-brand": "0.2.0-rc.2",
71
- "@deepseek-ai/dsh-llm": "0.2.0-rc.2"
62
+ "@deepseek-ai/cordis": "~4.0.5-alpha.1",
63
+ "@deepseek-ai/cordis-plugin-timer": "~1.1.7-alpha.1",
64
+ "@deepseek-ai/dsh-agent": "0.2.1-alpha.2",
65
+ "@deepseek-ai/dsh-api-gateway": "0.2.1-alpha.2",
66
+ "@deepseek-ai/dsh-brand": "0.2.1-alpha.2",
67
+ "@deepseek-ai/dsh-llm": "0.2.1-alpha.2",
68
+ "@deepseek-ai/dsh-scope": "0.2.1-alpha.2",
69
+ "@deepseek-ai/dsh-session": "0.2.1-alpha.2",
70
+ "@deepseek-ai/dsh-tools": "0.2.1-alpha.2",
71
+ "@deepseek-ai/dsh-typert-protocol": "0.2.1-alpha.2"
72
72
  }
73
73
  }