@deepseek-ai/dsh-cordis-host-runner 0.1.7-rc.2 → 0.2.0-rc.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 +5 -2
- package/README.md +8 -0
- package/README.zh.md +8 -0
- package/lib/index.js +58 -20
- package/lib/typert.host.js +20 -20
- package/lib/typert.remote-client.js +12 -12
- package/lib/types/index.d.ts +5 -2
- package/lib/types/index.js +5 -3
- package/lib/types/inspect-registry.d.ts +10 -4
- package/lib/types/inspect-registry.js +62 -17
- package/lib/types/types.d.ts +4 -1
- package/package.json +18 -17
package/README.i18n.yaml
CHANGED
|
@@ -18,8 +18,11 @@
|
|
|
18
18
|
en: bdaba8036acf80c9
|
|
19
19
|
zh: 2dd8f972c3023a8a
|
|
20
20
|
/deepseek-ai-dsh-cordis-host-runner/use-this-package/minimal-configuration:
|
|
21
|
-
en:
|
|
22
|
-
zh:
|
|
21
|
+
en: ca844fa88b307274
|
|
22
|
+
zh: da2032bfe3c1b792
|
|
23
|
+
/deepseek-ai-dsh-cordis-host-runner/use-this-package/client-inspection:
|
|
24
|
+
en: b4a2fe9e7aa9dee7
|
|
25
|
+
zh: 56f55558809970da
|
|
23
26
|
/deepseek-ai-dsh-cordis-host-runner/use-this-package/what-a-run-does:
|
|
24
27
|
en: a3c86c081974a710
|
|
25
28
|
zh: 180e1b7824c070d4
|
package/README.md
CHANGED
|
@@ -38,9 +38,17 @@ Mount this plugin for the inspection registry or programmatic dynamic-package li
|
|
|
38
38
|
| Field | Default | Meaning |
|
|
39
39
|
|---|---|---|
|
|
40
40
|
| `vmTimeoutMs` | `5000` | Milliseconds the synchronous portion of a host half may run in the vm before evaluation is aborted |
|
|
41
|
+
| `clientInspectTimeoutMs` | `10000` | Maximum wait for a valid Client inspect response; an integer from 1 to 2147483647 milliseconds |
|
|
41
42
|
|
|
42
43
|
The generated [configuration catalog](../../../docs/config-catalog.md#deepseek-aidsh-cordis-host-runner) is the exhaustive source for every accepted field.
|
|
43
44
|
|
|
45
|
+
<a id="client-inspection"></a>
|
|
46
|
+
### Client inspection
|
|
47
|
+
|
|
48
|
+
When Gateway is mounted, a Client query with no live event stream fails before dispatch. This check does not subscribe to disconnections: queries already dispatched retain their original deadline. Standalone event transports without Gateway retain the same timeout behavior.
|
|
49
|
+
|
|
50
|
+
Client queries accept the first valid page response within `clientInspectTimeoutMs`. A failed page does not prevent another page from answering successfully. If no valid result arrives, the query rejects with the first Client failure or output-validation diagnostic; when no page answers, it asks the caller to open or reconnect the Harness page and retry. Cancellation and registry disposal also end pending queries. Reconnecting a page does not replay a missed request, so retry after the connection is restored. Host queries are unaffected by this timeout.
|
|
51
|
+
|
|
44
52
|
### What a run does
|
|
45
53
|
|
|
46
54
|
Programmatic callers use `define`, `run`, `stop`, and `undefine`; the browser panel operates existing definitions. Host-only packages activate in this process. A package with a browser half waits for approval or cancellation, then loads Host before Client. `mode: "run"` starts the current version; `mode: "update"` replaces it. Stop disposes the live effects and retains the definition; undefine also forgets it.
|
package/README.zh.md
CHANGED
|
@@ -38,9 +38,17 @@ kind: "package-reference"
|
|
|
38
38
|
| 字段 | 默认值 | 含义 |
|
|
39
39
|
|---|---|---|
|
|
40
40
|
| `vmTimeoutMs` | `5000` | host 半在 vm 中同步执行的那部分被中止求值前可运行的毫秒数 |
|
|
41
|
+
| `clientInspectTimeoutMs` | `10000` | 等待有效 Client 检查响应的最长时间;1 到 2147483647 毫秒之间的整数 |
|
|
41
42
|
|
|
42
43
|
生成的[配置目录](../../../docs/config-catalog.zh.md#deepseek-aidsh-cordis-host-runner)是每个受支持字段的穷尽式真源。
|
|
43
44
|
|
|
45
|
+
<a id="client-inspection"></a>
|
|
46
|
+
### Client 检查
|
|
47
|
+
|
|
48
|
+
装载 Gateway 时,没有活动事件流的 Client 查询在发送前就会失败。此检查不订阅断连:已发送的查询仍沿用原期限。没有 Gateway 的独立事件传输保持相同的超时行为。
|
|
49
|
+
|
|
50
|
+
Client 查询在 `clientInspectTimeoutMs` 内接受首个有效页面响应。某个页面失败不会阻止其他页面成功回答。若没有有效结果,查询返回首个 Client 错误或输出校验诊断;若没有页面回答,则提示调用方打开或重新连接 Harness 页面后重试。取消和注册表卸载也会结束待处理查询。页面重连不会重放错过的请求,因此需在连接恢复后重试。Host 查询不受此超时影响。
|
|
51
|
+
|
|
44
52
|
### run 会做什么
|
|
45
53
|
|
|
46
54
|
程序调用方使用 `define`、`run`、`stop` 和 `undefine`;浏览器面板操作已有定义。仅含 Host 的包在本进程激活。带浏览器部分的包等待审批或取消,批准后先加载 Host 再加载 Client。`mode: "run"` 启动当前版本,`mode: "update"` 替换版本。Stop 释放运行中的 effect 并保留定义;undefine 还会移除定义。
|
package/lib/index.js
CHANGED
|
@@ -714,13 +714,26 @@ function pluginName(plugin) {
|
|
|
714
714
|
/** Host registry for model-visible, read-only Cordis capability queries. */
|
|
715
715
|
/** Registry and cross-page router behind the two model-facing inspect tools. */
|
|
716
716
|
var CordisInspectRegistryService = class extends Service {
|
|
717
|
+
clientQueryTimeoutMs;
|
|
717
718
|
providers = /* @__PURE__ */ new Map();
|
|
718
719
|
pending = /* @__PURE__ */ new Map();
|
|
719
720
|
clientManifest;
|
|
720
721
|
nextRequest = 1;
|
|
721
|
-
/**
|
|
722
|
-
|
|
722
|
+
/**
|
|
723
|
+
* Register the process-global Host registry.
|
|
724
|
+
* @param ctx - owning Host context.
|
|
725
|
+
* @param clientQueryTimeoutMs - maximum wait for a valid Client response, in milliseconds.
|
|
726
|
+
*/
|
|
727
|
+
constructor(ctx, clientQueryTimeoutMs) {
|
|
723
728
|
super(ctx, "cordisInspect");
|
|
729
|
+
this.clientQueryTimeoutMs = clientQueryTimeoutMs;
|
|
730
|
+
ctx.effect(() => () => {
|
|
731
|
+
for (const pending of this.pending.values()) pending.settle({
|
|
732
|
+
ok: false,
|
|
733
|
+
reason: "cancelled",
|
|
734
|
+
message: "Client inspect registry was disposed"
|
|
735
|
+
});
|
|
736
|
+
}, "cordis-inspect: pending queries");
|
|
724
737
|
}
|
|
725
738
|
/**
|
|
726
739
|
* Register one Host provider.
|
|
@@ -768,7 +781,8 @@ var CordisInspectRegistryService = class extends Service {
|
|
|
768
781
|
* @param input - optional lossless JSON input.
|
|
769
782
|
* @param agent - requesting Agent and scope.
|
|
770
783
|
* @param signal - tool-call cancellation.
|
|
771
|
-
* @returns provider JSON data
|
|
784
|
+
* @returns provider JSON data; Client queries fail fast when Gateway has no live Client
|
|
785
|
+
* and retain only the first observed failure diagnostic for timeout reporting.
|
|
772
786
|
*/
|
|
773
787
|
async query(platform, providerId, methodName, input, agent, signal) {
|
|
774
788
|
if (platform === "host") {
|
|
@@ -791,23 +805,25 @@ var CordisInspectRegistryService = class extends Service {
|
|
|
791
805
|
* @param agent - Agent whose Session owns the query.
|
|
792
806
|
* @param requestId - Pending Client query identity.
|
|
793
807
|
* @param resolution - Client provider result or failure.
|
|
794
|
-
* @returns
|
|
808
|
+
* @returns acknowledgement with accepted true only for a success that settles the query; only the first failure diagnostic is retained.
|
|
795
809
|
*/
|
|
796
810
|
resolveClientQuery(agent, requestId, resolution) {
|
|
797
811
|
const pending = this.pending.get(requestId);
|
|
798
812
|
if (pending === void 0 || pending.request.agentId !== agent.id) return { accepted: false };
|
|
799
|
-
if (!resolution.ok)
|
|
813
|
+
if (!resolution.ok) {
|
|
814
|
+
pending.failure ??= `${resolution.reason}: ${resolution.message}`;
|
|
815
|
+
return { accepted: false };
|
|
816
|
+
}
|
|
800
817
|
try {
|
|
801
818
|
resolution = {
|
|
802
819
|
ok: true,
|
|
803
820
|
data: validateOutput("Client", pending.request.provider, pending.method, resolution.data)
|
|
804
821
|
};
|
|
805
|
-
} catch {
|
|
822
|
+
} catch (error) {
|
|
823
|
+
pending.failure ??= error instanceof Error ? error.message : String(error);
|
|
806
824
|
return { accepted: false };
|
|
807
825
|
}
|
|
808
|
-
this.pending.delete(requestId);
|
|
809
826
|
pending.settle(resolution);
|
|
810
|
-
this.ctx.emit("cordis/inspect-query-resolved", { requestId });
|
|
811
827
|
return { accepted: true };
|
|
812
828
|
}
|
|
813
829
|
async queryClient(providerId, methodName, input, agent, signal) {
|
|
@@ -816,6 +832,8 @@ var CordisInspectRegistryService = class extends Service {
|
|
|
816
832
|
const method = findMethod(provider, methodName);
|
|
817
833
|
validateInput("Client", providerId, method, input);
|
|
818
834
|
signal.throwIfAborted();
|
|
835
|
+
const gateway = this.ctx.get("typertGateway");
|
|
836
|
+
if (gateway !== void 0 && !gateway.hasLiveClient()) throw new Error(`Client inspect query ${providerId}.${methodName} has no connected Harness page. Open or reconnect the Harness page, then retry.`);
|
|
819
837
|
const requestId = `inspect-${this.nextRequest++}`;
|
|
820
838
|
const request = {
|
|
821
839
|
requestId,
|
|
@@ -828,29 +846,45 @@ var CordisInspectRegistryService = class extends Service {
|
|
|
828
846
|
this.pending.set(requestId, {
|
|
829
847
|
request,
|
|
830
848
|
method,
|
|
831
|
-
settle:
|
|
849
|
+
settle: (resolution) => {
|
|
850
|
+
this.pending.delete(requestId);
|
|
851
|
+
resolve(resolution);
|
|
852
|
+
try {
|
|
853
|
+
this.ctx.emit("cordis/inspect-query-resolved", { requestId });
|
|
854
|
+
} catch (error) {
|
|
855
|
+
console.error("[cordis-host-runner] notifying Client inspect completion failed:", error);
|
|
856
|
+
}
|
|
857
|
+
}
|
|
832
858
|
});
|
|
833
859
|
});
|
|
834
860
|
const onAbort = () => {
|
|
835
|
-
|
|
836
|
-
if (pending === void 0) return;
|
|
837
|
-
this.pending.delete(requestId);
|
|
838
|
-
pending.settle({
|
|
861
|
+
this.pending.get(requestId)?.settle({
|
|
839
862
|
ok: false,
|
|
840
863
|
reason: "cancelled",
|
|
841
864
|
message: `Client inspect query ${providerId}.${methodName} was cancelled`
|
|
842
865
|
});
|
|
843
|
-
this.ctx.emit("cordis/inspect-query-resolved", { requestId });
|
|
844
866
|
};
|
|
867
|
+
const timer = setTimeout(() => {
|
|
868
|
+
const pending = this.pending.get(requestId);
|
|
869
|
+
if (pending === void 0) return;
|
|
870
|
+
const detail = pending.failure === void 0 ? "Open or reconnect the Harness page, then retry." : `Client failure: ${pending.failure}`;
|
|
871
|
+
pending.settle({
|
|
872
|
+
ok: false,
|
|
873
|
+
reason: "provider-error",
|
|
874
|
+
message: `Client inspect query ${providerId}.${methodName} timed out after ${this.clientQueryTimeoutMs}ms. ${detail}`
|
|
875
|
+
});
|
|
876
|
+
}, this.clientQueryTimeoutMs);
|
|
845
877
|
signal.addEventListener("abort", onAbort, { once: true });
|
|
846
|
-
if (signal.aborted) onAbort();
|
|
847
|
-
else this.ctx.emit("cordis/inspect-query", request);
|
|
848
878
|
try {
|
|
879
|
+
if (signal.aborted) onAbort();
|
|
880
|
+
else this.ctx.emit("cordis/inspect-query", request);
|
|
849
881
|
const resolution = await result;
|
|
850
882
|
if (!resolution.ok) throw new Error(`${providerId}.${methodName}: ${resolution.message}`);
|
|
851
883
|
return resolution.data;
|
|
852
884
|
} finally {
|
|
885
|
+
clearTimeout(timer);
|
|
853
886
|
signal.removeEventListener("abort", onAbort);
|
|
887
|
+
this.pending.delete(requestId);
|
|
854
888
|
}
|
|
855
889
|
}
|
|
856
890
|
};
|
|
@@ -1536,7 +1570,10 @@ let DynamicCordisRunnerService = (() => {
|
|
|
1536
1570
|
});
|
|
1537
1571
|
}
|
|
1538
1572
|
static inject = ["tools"];
|
|
1539
|
-
static Config = z.object({
|
|
1573
|
+
static Config = z.object({
|
|
1574
|
+
vmTimeoutMs: z.number().min(1).default(5e3),
|
|
1575
|
+
clientInspectTimeoutMs: z.number().step(1).min(1).max(2147483647).default(1e4)
|
|
1576
|
+
});
|
|
1540
1577
|
rootCtx = __runInitializers(this, _instanceExtraInitializers);
|
|
1541
1578
|
registry = new DynamicCordisRegistry();
|
|
1542
1579
|
inspectRegistry;
|
|
@@ -1548,7 +1585,7 @@ let DynamicCordisRunnerService = (() => {
|
|
|
1548
1585
|
super(ctx, "dynamicCordisRunner");
|
|
1549
1586
|
this.rootCtx = ctx;
|
|
1550
1587
|
this.resolved = config;
|
|
1551
|
-
this.inspectRegistry = new CordisInspectRegistryService(ctx);
|
|
1588
|
+
this.inspectRegistry = new CordisInspectRegistryService(ctx, this.resolved.clientInspectTimeoutMs);
|
|
1552
1589
|
}
|
|
1553
1590
|
/**
|
|
1554
1591
|
* Define a new Plugin's first Package or append a Package to an existing Plugin.
|
|
@@ -1876,11 +1913,12 @@ let DynamicCordisRunnerService = (() => {
|
|
|
1876
1913
|
return null;
|
|
1877
1914
|
}
|
|
1878
1915
|
/**
|
|
1879
|
-
*
|
|
1916
|
+
* Submit a Client inspect result or failure for a pending query.
|
|
1880
1917
|
* @param agent - Session that owns the query.
|
|
1881
1918
|
* @param requestId - exact pending query identity.
|
|
1882
1919
|
* @param resolution - provider result or structured refusal.
|
|
1883
|
-
* @returns
|
|
1920
|
+
* @returns acknowledgement with accepted true only for a valid success that settles the query;
|
|
1921
|
+
* pending-query failures return { accepted: false } and retain only the first diagnostic.
|
|
1884
1922
|
*/
|
|
1885
1923
|
resolveInspectQuery(agent, requestId, resolution) {
|
|
1886
1924
|
return this.inspectRegistry.resolveClientQuery(agent, requestId, resolution);
|
package/lib/typert.host.js
CHANGED
|
@@ -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":
|
|
307
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":392,"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":
|
|
322
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":534,"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":
|
|
377
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":750,"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":
|
|
437
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":727,"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":
|
|
497
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":693,"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":
|
|
547
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":520,"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":
|
|
582
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":421,"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":
|
|
662
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":333,"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":
|
|
712
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":446,"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":
|
|
752
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":488,"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":
|
|
777
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":506,"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":
|
|
817
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":235,"column":9},
|
|
818
818
|
},
|
|
819
819
|
],
|
|
820
820
|
model: {
|
|
@@ -853,14 +853,14 @@ export const TYPERT = {
|
|
|
853
853
|
"name": "query",
|
|
854
854
|
"signature": "async query( platform: CordisInspectPlatform, providerId: string, methodName: string, input: JsonValue | undefined, agent: Agent, signal: AbortSignal, ): Promise<JsonValue>",
|
|
855
855
|
"summary": "Execute one provider query on its owning platform.",
|
|
856
|
-
"jsDoc": "/**\n * Execute one provider query on its owning platform.\n * @param platform - Host or Client runtime.\n * @param providerId - provider selected from {@link list}.\n * @param methodName - declared method name.\n * @param input - optional lossless JSON input.\n * @param agent - requesting Agent and scope.\n * @param signal - tool-call cancellation.\n * @returns provider JSON data.\n */"
|
|
856
|
+
"jsDoc": "/**\n * Execute one provider query on its owning platform.\n * @param platform - Host or Client runtime.\n * @param providerId - provider selected from {@link list}.\n * @param methodName - declared method name.\n * @param input - optional lossless JSON input.\n * @param agent - requesting Agent and scope.\n * @param signal - tool-call cancellation.\n * @returns provider JSON data; Client queries fail fast when Gateway has no live Client\n * and retain only the first observed failure diagnostic for timeout reporting.\n */"
|
|
857
857
|
},
|
|
858
858
|
{
|
|
859
859
|
"kind": "method",
|
|
860
860
|
"name": "resolveClientQuery",
|
|
861
861
|
"signature": "resolveClientQuery( agent: Agent, requestId: CordisInspectRequestId, resolution: CordisInspectQueryResolution, ): CordisInspectResolveAck",
|
|
862
862
|
"summary": "Accept the first valid Client response for a pending query.",
|
|
863
|
-
"jsDoc": "/**\n * Accept the first valid Client response for a pending query.\n * @param agent - Agent whose Session owns the query.\n * @param requestId - Pending Client query identity.\n * @param resolution - Client provider result or failure.\n * @returns
|
|
863
|
+
"jsDoc": "/**\n * Accept the first valid Client response for a pending query.\n * @param agent - Agent whose Session owns the query.\n * @param requestId - Pending Client query identity.\n * @param resolution - Client provider result or failure.\n * @returns acknowledgement with accepted true only for a success that settles the query; only the first failure diagnostic is retained.\n */"
|
|
864
864
|
}
|
|
865
865
|
],
|
|
866
866
|
"types": [
|
|
@@ -1194,7 +1194,7 @@ export const TYPERT = {
|
|
|
1194
1194
|
},
|
|
1195
1195
|
{
|
|
1196
1196
|
"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}"
|
|
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}"
|
|
1198
1198
|
},
|
|
1199
1199
|
{
|
|
1200
1200
|
"name": "ModelMessageSource",
|
|
@@ -1282,7 +1282,7 @@ export const TYPERT = {
|
|
|
1282
1282
|
},
|
|
1283
1283
|
{
|
|
1284
1284
|
"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 '
|
|
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}"
|
|
1286
1286
|
},
|
|
1287
1287
|
{
|
|
1288
1288
|
"name": "SessionEventType",
|
|
@@ -1535,8 +1535,8 @@ export const TYPERT = {
|
|
|
1535
1535
|
"kind": "method",
|
|
1536
1536
|
"name": "resolveInspectQuery",
|
|
1537
1537
|
"signature": "@Remote('resolveInspectQuery') resolveInspectQuery( agent: Agent, requestId: CordisInspectRequestId, resolution: CordisInspectQueryResolution, ): CordisInspectResolveAck",
|
|
1538
|
-
"summary": "
|
|
1539
|
-
"jsDoc": "/**\n *
|
|
1538
|
+
"summary": "Submit a Client inspect result or failure for a pending query.",
|
|
1539
|
+
"jsDoc": "/**\n * Submit a Client inspect result or failure for a pending query.\n * @param agent - Session that owns the query.\n * @param requestId - exact pending query identity.\n * @param resolution - provider result or structured refusal.\n * @returns acknowledgement with accepted true only for a valid success that settles the query;\n * pending-query failures return { accepted: false } and retain only the first diagnostic.\n */"
|
|
1540
1540
|
},
|
|
1541
1541
|
{
|
|
1542
1542
|
"kind": "method",
|
|
@@ -2025,7 +2025,7 @@ export const TYPERT = {
|
|
|
2025
2025
|
},
|
|
2026
2026
|
{
|
|
2027
2027
|
"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}"
|
|
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}"
|
|
2029
2029
|
},
|
|
2030
2030
|
{
|
|
2031
2031
|
"name": "ModelMessageSource",
|
|
@@ -2113,7 +2113,7 @@ export const TYPERT = {
|
|
|
2113
2113
|
},
|
|
2114
2114
|
{
|
|
2115
2115
|
"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 '
|
|
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}"
|
|
2117
2117
|
},
|
|
2118
2118
|
{
|
|
2119
2119
|
"name": "SessionEventType",
|
|
@@ -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":
|
|
304
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":392,"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":
|
|
319
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":534,"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":
|
|
374
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":750,"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":
|
|
434
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":727,"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":
|
|
494
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":693,"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":
|
|
544
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":520,"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":
|
|
579
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":421,"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":
|
|
659
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":333,"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":
|
|
709
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":446,"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":
|
|
749
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":488,"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":
|
|
774
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":506,"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":
|
|
814
|
+
sourceLocation: {"file":"packages/extensions/cordis-host-runner/src/index.ts","line":235,"column":9},
|
|
815
815
|
},
|
|
816
816
|
],
|
|
817
817
|
}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -56,6 +56,8 @@ declare module '@deepseek-ai/cordis' {
|
|
|
56
56
|
export interface Config {
|
|
57
57
|
/** Maximum synchronous VM evaluation time in milliseconds. */
|
|
58
58
|
vmTimeoutMs?: number;
|
|
59
|
+
/** Maximum wait for a valid Client inspect response in milliseconds. */
|
|
60
|
+
clientInspectTimeoutMs?: number;
|
|
59
61
|
}
|
|
60
62
|
/** Host-only snapshot consumed by inspect and tool result rendering. */
|
|
61
63
|
export interface DynamicCordisSnapshotRow {
|
|
@@ -176,11 +178,12 @@ export declare class DynamicCordisRunnerService extends TypertRemoteService {
|
|
|
176
178
|
*/
|
|
177
179
|
syncInspectManifest(providers: readonly CordisInspectProviderManifest[]): null;
|
|
178
180
|
/**
|
|
179
|
-
*
|
|
181
|
+
* Submit a Client inspect result or failure for a pending query.
|
|
180
182
|
* @param agent - Session that owns the query.
|
|
181
183
|
* @param requestId - exact pending query identity.
|
|
182
184
|
* @param resolution - provider result or structured refusal.
|
|
183
|
-
* @returns
|
|
185
|
+
* @returns acknowledgement with accepted true only for a valid success that settles the query;
|
|
186
|
+
* pending-query failures return { accepted: false } and retain only the first diagnostic.
|
|
184
187
|
*/
|
|
185
188
|
resolveInspectQuery(agent: Agent, requestId: CordisInspectRequestId, resolution: CordisInspectQueryResolution): CordisInspectResolveAck;
|
|
186
189
|
/**
|
package/lib/types/index.js
CHANGED
|
@@ -126,6 +126,7 @@ let DynamicCordisRunnerService = (() => {
|
|
|
126
126
|
static inject = ['tools'];
|
|
127
127
|
static Config = z.object({
|
|
128
128
|
vmTimeoutMs: z.number().min(1).default(5000),
|
|
129
|
+
clientInspectTimeoutMs: z.number().step(1).min(1).max(2_147_483_647).default(10_000),
|
|
129
130
|
});
|
|
130
131
|
rootCtx = __runInitializers(this, _instanceExtraInitializers);
|
|
131
132
|
registry = new DynamicCordisRegistry();
|
|
@@ -138,7 +139,7 @@ let DynamicCordisRunnerService = (() => {
|
|
|
138
139
|
super(ctx, 'dynamicCordisRunner');
|
|
139
140
|
this.rootCtx = ctx;
|
|
140
141
|
this.resolved = config;
|
|
141
|
-
this.inspectRegistry = new CordisInspectRegistryService(ctx);
|
|
142
|
+
this.inspectRegistry = new CordisInspectRegistryService(ctx, this.resolved.clientInspectTimeoutMs);
|
|
142
143
|
}
|
|
143
144
|
/**
|
|
144
145
|
* Define a new Plugin's first Package or append a Package to an existing Plugin.
|
|
@@ -475,11 +476,12 @@ let DynamicCordisRunnerService = (() => {
|
|
|
475
476
|
return null;
|
|
476
477
|
}
|
|
477
478
|
/**
|
|
478
|
-
*
|
|
479
|
+
* Submit a Client inspect result or failure for a pending query.
|
|
479
480
|
* @param agent - Session that owns the query.
|
|
480
481
|
* @param requestId - exact pending query identity.
|
|
481
482
|
* @param resolution - provider result or structured refusal.
|
|
482
|
-
* @returns
|
|
483
|
+
* @returns acknowledgement with accepted true only for a valid success that settles the query;
|
|
484
|
+
* pending-query failures return { accepted: false } and retain only the first diagnostic.
|
|
483
485
|
*/
|
|
484
486
|
resolveInspectQuery(agent, requestId, resolution) {
|
|
485
487
|
return this.inspectRegistry.resolveClientQuery(agent, requestId, resolution);
|
|
@@ -26,12 +26,17 @@ declare module '@deepseek-ai/cordis' {
|
|
|
26
26
|
}
|
|
27
27
|
/** Registry and cross-page router behind the two model-facing inspect tools. */
|
|
28
28
|
export declare class CordisInspectRegistryService extends Service {
|
|
29
|
+
private readonly clientQueryTimeoutMs;
|
|
29
30
|
private readonly providers;
|
|
30
31
|
private readonly pending;
|
|
31
32
|
private clientManifest;
|
|
32
33
|
private nextRequest;
|
|
33
|
-
/**
|
|
34
|
-
|
|
34
|
+
/**
|
|
35
|
+
* Register the process-global Host registry.
|
|
36
|
+
* @param ctx - owning Host context.
|
|
37
|
+
* @param clientQueryTimeoutMs - maximum wait for a valid Client response, in milliseconds.
|
|
38
|
+
*/
|
|
39
|
+
constructor(ctx: Context, clientQueryTimeoutMs: number);
|
|
35
40
|
/**
|
|
36
41
|
* Register one Host provider.
|
|
37
42
|
* @param registration - manifest and local query handler.
|
|
@@ -56,7 +61,8 @@ export declare class CordisInspectRegistryService extends Service {
|
|
|
56
61
|
* @param input - optional lossless JSON input.
|
|
57
62
|
* @param agent - requesting Agent and scope.
|
|
58
63
|
* @param signal - tool-call cancellation.
|
|
59
|
-
* @returns provider JSON data
|
|
64
|
+
* @returns provider JSON data; Client queries fail fast when Gateway has no live Client
|
|
65
|
+
* and retain only the first observed failure diagnostic for timeout reporting.
|
|
60
66
|
*/
|
|
61
67
|
query(platform: CordisInspectPlatform, providerId: string, methodName: string, input: JsonValue | undefined, agent: Agent, signal: AbortSignal): Promise<JsonValue>;
|
|
62
68
|
/**
|
|
@@ -64,7 +70,7 @@ export declare class CordisInspectRegistryService extends Service {
|
|
|
64
70
|
* @param agent - Agent whose Session owns the query.
|
|
65
71
|
* @param requestId - Pending Client query identity.
|
|
66
72
|
* @param resolution - Client provider result or failure.
|
|
67
|
-
* @returns
|
|
73
|
+
* @returns acknowledgement with accepted true only for a success that settles the query; only the first failure diagnostic is retained.
|
|
68
74
|
*/
|
|
69
75
|
resolveClientQuery(agent: Agent, requestId: CordisInspectRequestId, resolution: CordisInspectQueryResolution): CordisInspectResolveAck;
|
|
70
76
|
private queryClient;
|
|
@@ -4,13 +4,24 @@ import { snapshotJsonValue } from '@deepseek-ai/dsh-util-values';
|
|
|
4
4
|
import { assertSupportedJsonSchema, validateJsonSchemaValue } from '@deepseek-ai/dsh-tools';
|
|
5
5
|
/** Registry and cross-page router behind the two model-facing inspect tools. */
|
|
6
6
|
export class CordisInspectRegistryService extends Service {
|
|
7
|
+
clientQueryTimeoutMs;
|
|
7
8
|
providers = new Map();
|
|
8
9
|
pending = new Map();
|
|
9
10
|
clientManifest;
|
|
10
11
|
nextRequest = 1;
|
|
11
|
-
/**
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Register the process-global Host registry.
|
|
14
|
+
* @param ctx - owning Host context.
|
|
15
|
+
* @param clientQueryTimeoutMs - maximum wait for a valid Client response, in milliseconds.
|
|
16
|
+
*/
|
|
17
|
+
constructor(ctx, clientQueryTimeoutMs) {
|
|
13
18
|
super(ctx, 'cordisInspect');
|
|
19
|
+
this.clientQueryTimeoutMs = clientQueryTimeoutMs;
|
|
20
|
+
ctx.effect(() => () => {
|
|
21
|
+
for (const pending of this.pending.values()) {
|
|
22
|
+
pending.settle({ ok: false, reason: 'cancelled', message: 'Client inspect registry was disposed' });
|
|
23
|
+
}
|
|
24
|
+
}, 'cordis-inspect: pending queries');
|
|
14
25
|
}
|
|
15
26
|
/**
|
|
16
27
|
* Register one Host provider.
|
|
@@ -61,7 +72,8 @@ export class CordisInspectRegistryService extends Service {
|
|
|
61
72
|
* @param input - optional lossless JSON input.
|
|
62
73
|
* @param agent - requesting Agent and scope.
|
|
63
74
|
* @param signal - tool-call cancellation.
|
|
64
|
-
* @returns provider JSON data
|
|
75
|
+
* @returns provider JSON data; Client queries fail fast when Gateway has no live Client
|
|
76
|
+
* and retain only the first observed failure diagnostic for timeout reporting.
|
|
65
77
|
*/
|
|
66
78
|
async query(platform, providerId, methodName, input, agent, signal) {
|
|
67
79
|
if (platform === 'host') {
|
|
@@ -82,26 +94,28 @@ export class CordisInspectRegistryService extends Service {
|
|
|
82
94
|
* @param agent - Agent whose Session owns the query.
|
|
83
95
|
* @param requestId - Pending Client query identity.
|
|
84
96
|
* @param resolution - Client provider result or failure.
|
|
85
|
-
* @returns
|
|
97
|
+
* @returns acknowledgement with accepted true only for a success that settles the query; only the first failure diagnostic is retained.
|
|
86
98
|
*/
|
|
87
99
|
resolveClientQuery(agent, requestId, resolution) {
|
|
88
100
|
const pending = this.pending.get(requestId);
|
|
89
101
|
if (pending === undefined || pending.request.agentId !== agent.id)
|
|
90
102
|
return { accepted: false };
|
|
91
|
-
|
|
103
|
+
// A failed page must not prevent another page from supplying a valid result.
|
|
104
|
+
if (!resolution.ok) {
|
|
105
|
+
pending.failure ??= `${resolution.reason}: ${resolution.message}`;
|
|
92
106
|
return { accepted: false };
|
|
107
|
+
}
|
|
93
108
|
try {
|
|
94
109
|
resolution = {
|
|
95
110
|
ok: true,
|
|
96
111
|
data: validateOutput('Client', pending.request.provider, pending.method, resolution.data),
|
|
97
112
|
};
|
|
98
113
|
}
|
|
99
|
-
catch {
|
|
114
|
+
catch (error) {
|
|
115
|
+
pending.failure ??= error instanceof Error ? error.message : String(error);
|
|
100
116
|
return { accepted: false };
|
|
101
117
|
}
|
|
102
|
-
this.pending.delete(requestId);
|
|
103
118
|
pending.settle(resolution);
|
|
104
|
-
this.ctx.emit('cordis/inspect-query-resolved', { requestId });
|
|
105
119
|
return { accepted: true };
|
|
106
120
|
}
|
|
107
121
|
async queryClient(providerId, methodName, input, agent, signal) {
|
|
@@ -111,6 +125,10 @@ export class CordisInspectRegistryService extends Service {
|
|
|
111
125
|
const method = findMethod(provider, methodName);
|
|
112
126
|
validateInput('Client', providerId, method, input);
|
|
113
127
|
signal.throwIfAborted();
|
|
128
|
+
const gateway = this.ctx.get('typertGateway');
|
|
129
|
+
if (gateway !== undefined && !gateway.hasLiveClient()) {
|
|
130
|
+
throw new Error(`Client inspect query ${providerId}.${methodName} has no connected Harness page. Open or reconnect the Harness page, then retry.`);
|
|
131
|
+
}
|
|
114
132
|
const requestId = `inspect-${this.nextRequest++}`;
|
|
115
133
|
const request = {
|
|
116
134
|
requestId,
|
|
@@ -120,29 +138,56 @@ export class CordisInspectRegistryService extends Service {
|
|
|
120
138
|
...input === undefined ? {} : { input },
|
|
121
139
|
};
|
|
122
140
|
const result = new Promise((resolve) => {
|
|
123
|
-
this.pending.set(requestId, {
|
|
141
|
+
this.pending.set(requestId, {
|
|
142
|
+
request,
|
|
143
|
+
method,
|
|
144
|
+
settle: (resolution) => {
|
|
145
|
+
this.pending.delete(requestId);
|
|
146
|
+
resolve(resolution);
|
|
147
|
+
try {
|
|
148
|
+
this.ctx.emit('cordis/inspect-query-resolved', { requestId });
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
console.error('[cordis-host-runner] notifying Client inspect completion failed:', error);
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
});
|
|
124
155
|
});
|
|
125
156
|
const onAbort = () => {
|
|
157
|
+
this.pending.get(requestId)?.settle({
|
|
158
|
+
ok: false,
|
|
159
|
+
reason: 'cancelled',
|
|
160
|
+
message: `Client inspect query ${providerId}.${methodName} was cancelled`,
|
|
161
|
+
});
|
|
162
|
+
};
|
|
163
|
+
const timer = setTimeout(() => {
|
|
126
164
|
const pending = this.pending.get(requestId);
|
|
127
165
|
if (pending === undefined)
|
|
128
166
|
return;
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
167
|
+
const detail = pending.failure === undefined
|
|
168
|
+
? 'Open or reconnect the Harness page, then retry.'
|
|
169
|
+
: `Client failure: ${pending.failure}`;
|
|
170
|
+
pending.settle({
|
|
171
|
+
ok: false,
|
|
172
|
+
reason: 'provider-error',
|
|
173
|
+
message: `Client inspect query ${providerId}.${methodName} timed out after ${this.clientQueryTimeoutMs}ms. ${detail}`,
|
|
174
|
+
});
|
|
175
|
+
}, this.clientQueryTimeoutMs);
|
|
133
176
|
signal.addEventListener('abort', onAbort, { once: true });
|
|
134
|
-
if (signal.aborted)
|
|
135
|
-
onAbort();
|
|
136
|
-
else
|
|
137
|
-
this.ctx.emit('cordis/inspect-query', request);
|
|
138
177
|
try {
|
|
178
|
+
if (signal.aborted)
|
|
179
|
+
onAbort();
|
|
180
|
+
else
|
|
181
|
+
this.ctx.emit('cordis/inspect-query', request);
|
|
139
182
|
const resolution = await result;
|
|
140
183
|
if (!resolution.ok)
|
|
141
184
|
throw new Error(`${providerId}.${methodName}: ${resolution.message}`);
|
|
142
185
|
return resolution.data;
|
|
143
186
|
}
|
|
144
187
|
finally {
|
|
188
|
+
clearTimeout(timer);
|
|
145
189
|
signal.removeEventListener('abort', onAbort);
|
|
190
|
+
this.pending.delete(requestId);
|
|
146
191
|
}
|
|
147
192
|
}
|
|
148
193
|
}
|
package/lib/types/types.d.ts
CHANGED
|
@@ -71,7 +71,10 @@ export interface CordisInspectQueryResolved {
|
|
|
71
71
|
}
|
|
72
72
|
/** Whether a Client answer claimed the still-pending query. */
|
|
73
73
|
export interface CordisInspectResolveAck {
|
|
74
|
-
/**
|
|
74
|
+
/**
|
|
75
|
+
* True only for a valid success that settles the query;
|
|
76
|
+
* false for retained failures and unknown, timed out, cancelled, or late answers.
|
|
77
|
+
*/
|
|
75
78
|
accepted: boolean;
|
|
76
79
|
}
|
|
77
80
|
/** Whether a package starts the current version or replaces it. */
|
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.
|
|
4
|
+
"version": "0.2.0-rc.2",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -45,28 +45,29 @@
|
|
|
45
45
|
"license": "MIT",
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"zod": "^4.4.3",
|
|
48
|
-
"@deepseek-ai/
|
|
49
|
-
"@deepseek-ai/
|
|
48
|
+
"@deepseek-ai/dsh-util-values": "0.2.0-rc.2",
|
|
49
|
+
"@deepseek-ai/schemastery": "~3.18.4"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
52
|
"@deepseek-ai/cordis": "~4.0.4",
|
|
53
|
-
"@deepseek-ai/dsh-agent": "0.
|
|
54
|
-
"@deepseek-ai/dsh-
|
|
55
|
-
"@deepseek-ai/dsh-
|
|
56
|
-
"@deepseek-ai/dsh-session": "0.
|
|
57
|
-
"@deepseek-ai/dsh-
|
|
58
|
-
"@deepseek-ai/dsh-
|
|
59
|
-
"@deepseek-ai/dsh-
|
|
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"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@deepseek-ai/cordis": "~4.0.4",
|
|
63
63
|
"@deepseek-ai/cordis-plugin-timer": "~1.1.6",
|
|
64
|
-
"@deepseek-ai/dsh-agent": "0.
|
|
65
|
-
"@deepseek-ai/dsh-
|
|
66
|
-
"@deepseek-ai/dsh-scope": "0.
|
|
67
|
-
"@deepseek-ai/dsh-session": "0.
|
|
68
|
-
"@deepseek-ai/dsh-tools": "0.
|
|
69
|
-
"@deepseek-ai/dsh-
|
|
70
|
-
"@deepseek-ai/dsh-
|
|
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"
|
|
71
72
|
}
|
|
72
73
|
}
|