@deepseek-ai/dsh-tool-cordis 0.2.0-rc.1 → 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 +2 -2
- package/README.md +1 -1
- package/README.zh.md +1 -1
- package/lib/index.js +1 -1
- package/lib/types/api-catalog.js +31 -1
- package/lib/types/index.js +3 -3
- package/package.json +11 -11
package/README.i18n.yaml
CHANGED
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
en: f57a20cd4e76d13c
|
|
40
40
|
zh: 7b673116422bee87
|
|
41
41
|
/deepseek-ai-dsh-tool-cordis/known-limitations-and-deferred-work:
|
|
42
|
-
en:
|
|
43
|
-
zh:
|
|
42
|
+
en: 3c135d9cb67790d2
|
|
43
|
+
zh: ff2d0a444f55d28f
|
|
44
44
|
/deepseek-ai-dsh-tool-cordis/known-limitations-and-deferred-work/dev-note:
|
|
45
45
|
en: 0a1253c6f7b5e8b9
|
|
46
46
|
zh: 9f56528562c7c914
|
package/README.md
CHANGED
|
@@ -68,7 +68,7 @@ Unchanged tool schemas remain prefix-stable. Query results append to history; en
|
|
|
68
68
|
|
|
69
69
|
<a id="known-limitations-and-deferred-work"></a>
|
|
70
70
|
|
|
71
|
-
- Client queries
|
|
71
|
+
- Client queries need a responding page and use the Host runner's [bounded wait and retry policy](../cordis-host-runner/README.md#client-inspection). Inspection cannot invoke service methods, configure plugins, or execute generated code.
|
|
72
72
|
- `Config.listConfigs` walks the profile Loader tree only. Agent preset `plugins` lists mount in detached preset trees, so a plugin present only inside a preset declaration is not listed unless the profile tree also mounts it.
|
|
73
73
|
|
|
74
74
|
<a id="dev-note"></a>
|
package/README.zh.md
CHANGED
|
@@ -68,7 +68,7 @@ Host provider 结合生成的 Service/Event 目录、经 app-boot Config 投影
|
|
|
68
68
|
|
|
69
69
|
<a id="known-limitations-and-deferred-work"></a>
|
|
70
70
|
|
|
71
|
-
- Client
|
|
71
|
+
- Client 查询需要页面响应,并采用 Host runner 的[有界等待与重试策略](../cordis-host-runner/README.zh.md#client-inspection)。检查不能调用服务方法、配置插件或执行生成代码。
|
|
72
72
|
- `Config.listConfigs` 只遍历 profile 的 Loader 树。Agent preset 的 `plugins` 列表挂载在独立的 preset 树中,所以只出现在 preset 声明里的插件不会被列出,除非 profile 树也挂载了它。
|
|
73
73
|
|
|
74
74
|
<a id="dev-note"></a>
|
package/lib/index.js
CHANGED
|
@@ -54,7 +54,7 @@ function apply(ctx) {
|
|
|
54
54
|
}));
|
|
55
55
|
ctx.tools.register(defineTool({
|
|
56
56
|
name: "cordis_inspect_query",
|
|
57
|
-
description: "Run a read-only query declared by an Inspect Provider. platform, provider, and method must come from cordis_inspect_list, and input must satisfy that method's schema. Use this Tool before writing plugin code to read exact Service methods, Event modes, plugin Config schemas, Tool schemas, theme tokens, or live Slot trees and props. Host queries run locally. A Client query waits for the first valid page response
|
|
57
|
+
description: "Run a read-only query declared by an Inspect Provider. platform, provider, and method must come from cordis_inspect_list, and input must satisfy that method's schema. Use this Tool before writing plugin code to read exact Service methods, Event modes, plugin Config schemas, Tool schemas, theme tokens, or live Slot trees and props. Host queries run locally. A Client query waits for the first valid page response within the configured timeout; otherwise it reports a Client failure or asks you to reconnect and retry. This Tool cannot invoke business Service methods or modify the runtime.",
|
|
58
58
|
parameters: {
|
|
59
59
|
platform: {
|
|
60
60
|
type: "string",
|
package/lib/types/api-catalog.js
CHANGED
|
@@ -3308,6 +3308,12 @@ export const SERVICE_API = [
|
|
|
3308
3308
|
description: 'Carrier adapter shared by the WebSocket mux and local Host transports.',
|
|
3309
3309
|
parameters: [],
|
|
3310
3310
|
},
|
|
3311
|
+
{
|
|
3312
|
+
signature: 'hasLiveClient(): boolean',
|
|
3313
|
+
description: 'Check for an active Client event stream.',
|
|
3314
|
+
parameters: [],
|
|
3315
|
+
returns: 'whether a stream is open and has not been cancelled.',
|
|
3316
|
+
},
|
|
3311
3317
|
{
|
|
3312
3318
|
signature: 'registerRemoteEvents( source: TypertRemoteEventSource, host: RemoteEventHostInfo, ): () => Promise<void>',
|
|
3313
3319
|
description: 'Register the sole application-selected forwarded-event source.',
|
|
@@ -3334,6 +3340,26 @@ export const SERVICE_API = [
|
|
|
3334
3340
|
summary: '`ctx.userQuestions`: validation plus the scoped answerer waterfall.',
|
|
3335
3341
|
description: '`ctx.userQuestions`: validation plus the scoped answerer waterfall.',
|
|
3336
3342
|
methods: [
|
|
3343
|
+
{
|
|
3344
|
+
signature: '@Remote answer(agent: Agent, callId: ToolCallId, answer: AskUserQuestionAnswer): boolean',
|
|
3345
|
+
description: 'Answer a continued question. The reply is steered into the agent as a user message whose source names the call; that message is also the record that closes the question in the projection.',
|
|
3346
|
+
parameters: [{ name: 'agent', description: 'Live root agent for the owning Session.' }, { name: 'callId', description: 'Continued question identity.' }, { name: 'answer', description: 'Complete structured answer batch, one item per question of the call.' }],
|
|
3347
|
+
returns: 'Whether the question is still continued; an accepted reply stays queued until the agent admits its user message.',
|
|
3348
|
+
throws: ['{UserQuestionError} `BAD_ANSWER` when the batch does not name each question of the call exactly once, or `REPLY_QUEUED` when a reply is already waiting for admission.'],
|
|
3349
|
+
},
|
|
3350
|
+
{
|
|
3351
|
+
signature: '@Remote({ mode: \'stream\' }) async *attachWait(agent: Agent, callId: ToolCallId, signal: AbortSignal): AsyncIterable<{ remainingMs: number }>',
|
|
3352
|
+
description: 'Let one answer UI hold a live timed wait. Closing the stream releases its claim.',
|
|
3353
|
+
parameters: [{ name: 'agent', description: 'Live root agent owning the question.' }, { name: 'callId', description: 'Foreground tool call to attach to.' }, { name: 'signal', description: 'Remote stream cancellation, including Client disconnect.' }],
|
|
3354
|
+
returns: 'One Host-computed remaining duration, or no frames once the wait ended.',
|
|
3355
|
+
},
|
|
3356
|
+
{
|
|
3357
|
+
signature: 'async askTimed( request: AskUserQuestionRequest & { agent: Agent }, callId: ToolCallId, timeoutMs: number, ): Promise<TimedUserQuestionResult>',
|
|
3358
|
+
description: 'Foreground wait whose first settlement the Client decides: the Client rejects with `ASK_TIMED_OUT` when its countdown ends, and this method maps that code to the pending result.',
|
|
3359
|
+
parameters: [{ name: 'request', description: 'Questions, live owner agent, and abort signal.' }, { name: 'callId', description: 'Tool call identity the Client card is keyed by.' }, { name: 'timeoutMs', description: 'Positive foreground wait in milliseconds.' }],
|
|
3360
|
+
returns: 'The answer when it arrives inside the window, otherwise a pending result, also when no connected Client claimed the request by the deadline.',
|
|
3361
|
+
throws: ['{UserQuestionError} `BAD_TIMEOUT` for a non-integer, non-positive, or oversized wait.'],
|
|
3362
|
+
},
|
|
3337
3363
|
{
|
|
3338
3364
|
signature: 'async ask(request: AskUserQuestionRequest): Promise<AskUserQuestionAnswer>',
|
|
3339
3365
|
description: 'Ask the scoped answerer waterfall and wait for the user\'s answer.\n\nWhen a caller supplies an agent, human interaction is valid only for the exact live runtime root. Runtime ownership, not durable session lineage, decides this boundary: an owned child has no human answerer and would block forever, while a lineage-bearing session resumed as a new runtime root may ask normally.',
|
|
@@ -4479,7 +4505,7 @@ export const TYPE_API = [
|
|
|
4479
4505
|
},
|
|
4480
4506
|
{
|
|
4481
4507
|
name: 'AskUserQuestionRequestEvent',
|
|
4482
|
-
declaration: 'export interface AskUserQuestionRequestEvent {\n questions: AskUserQuestionItem[];\n agent?: Agent;\n signal?: AbortSignal;\n}',
|
|
4508
|
+
declaration: 'export interface AskUserQuestionRequestEvent {\n questions: AskUserQuestionItem[];\n agent?: Agent;\n signal?: AbortSignal;\n wait?: {\n callId: ToolCallId;\n timed?: boolean;\n };\n}',
|
|
4483
4509
|
},
|
|
4484
4510
|
{
|
|
4485
4511
|
name: 'AssembleContext',
|
|
@@ -7457,6 +7483,10 @@ export const TYPE_API = [
|
|
|
7457
7483
|
name: 'TerminalWaitReason',
|
|
7458
7484
|
declaration: 'export type TerminalWaitReason = \'stdin_read\' | \'inferred_idle\' | \'timeout\' | \'session_exit\';',
|
|
7459
7485
|
},
|
|
7486
|
+
{
|
|
7487
|
+
name: 'TimedUserQuestionResult',
|
|
7488
|
+
declaration: 'export type TimedUserQuestionResult = AskUserQuestionAnswer | {\n pending: true;\n callId: ToolCallId;\n};',
|
|
7489
|
+
},
|
|
7460
7490
|
{
|
|
7461
7491
|
name: 'TimeOutOfRangeError',
|
|
7462
7492
|
declaration: 'export interface TimeOutOfRangeError {\n readonly code: \'time_out_of_range\';\n readonly message: string;\n}',
|
package/lib/types/index.js
CHANGED
|
@@ -34,9 +34,9 @@ export function apply(ctx) {
|
|
|
34
34
|
description: 'Run a read-only query declared by an Inspect Provider. platform, provider, and method must come from '
|
|
35
35
|
+ 'cordis_inspect_list, and input must satisfy that method\'s schema. Use this Tool before writing plugin code '
|
|
36
36
|
+ 'to read exact Service methods, Event modes, plugin Config schemas, Tool schemas, theme tokens, or live '
|
|
37
|
-
+ 'Slot trees and props. Host queries run locally. A Client query waits for the first valid page response
|
|
38
|
-
+ '
|
|
39
|
-
+ 'methods or modify the runtime.',
|
|
37
|
+
+ 'Slot trees and props. Host queries run locally. A Client query waits for the first valid page response '
|
|
38
|
+
+ 'within the configured timeout; otherwise it reports a Client failure or asks you to reconnect and retry. '
|
|
39
|
+
+ 'This Tool cannot invoke business Service methods or modify the runtime.',
|
|
40
40
|
parameters: {
|
|
41
41
|
platform: { type: 'string', required: true, enum: ['host', 'client'], description: 'Runtime platform that owns the Provider.' },
|
|
42
42
|
provider: { type: 'string', required: true, description: 'Exact Provider ID returned by cordis_inspect_list.' },
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deepseek-ai/dsh-tool-cordis",
|
|
3
3
|
"description": "Read-only runtime API inspection for Harness plugin development",
|
|
4
|
-
"version": "0.2.0-rc.
|
|
4
|
+
"version": "0.2.0-rc.2",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -33,21 +33,21 @@
|
|
|
33
33
|
"license": "MIT",
|
|
34
34
|
"peerDependencies": {
|
|
35
35
|
"@deepseek-ai/cordis-plugin-loader": "~1.0.5",
|
|
36
|
+
"@deepseek-ai/dsh-agent": "0.2.0-rc.2",
|
|
36
37
|
"@deepseek-ai/cordis": "~4.0.4",
|
|
37
|
-
"@deepseek-ai/dsh-
|
|
38
|
-
"@deepseek-ai/dsh-cordis-host-runner": "0.2.0-rc.
|
|
39
|
-
"@deepseek-ai/dsh-tools": "0.2.0-rc.
|
|
40
|
-
"@deepseek-ai/dsh-app-boot": "0.2.0-rc.1"
|
|
38
|
+
"@deepseek-ai/dsh-app-boot": "0.2.0-rc.2",
|
|
39
|
+
"@deepseek-ai/dsh-cordis-host-runner": "0.2.0-rc.2",
|
|
40
|
+
"@deepseek-ai/dsh-tools": "0.2.0-rc.2"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@deepseek-ai/cordis": "~4.0.4",
|
|
44
44
|
"@deepseek-ai/cordis-plugin-group": "~1.0.4",
|
|
45
|
+
"@deepseek-ai/dsh-agent": "0.2.0-rc.2",
|
|
46
|
+
"@deepseek-ai/dsh-app-boot": "0.2.0-rc.2",
|
|
47
|
+
"@deepseek-ai/dsh-cordis-host-runner": "0.2.0-rc.2",
|
|
45
48
|
"@deepseek-ai/cordis-plugin-loader": "~1.0.5",
|
|
46
|
-
"@deepseek-ai/dsh-
|
|
47
|
-
"@deepseek-ai/dsh-
|
|
48
|
-
"@deepseek-ai/
|
|
49
|
-
"@deepseek-ai/dsh-tools": "0.2.0-rc.1",
|
|
50
|
-
"@deepseek-ai/schemastery": "~3.18.4",
|
|
51
|
-
"@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1"
|
|
49
|
+
"@deepseek-ai/dsh-system-prompt": "0.2.0-rc.2",
|
|
50
|
+
"@deepseek-ai/dsh-tools": "0.2.0-rc.2",
|
|
51
|
+
"@deepseek-ai/schemastery": "~3.18.4"
|
|
52
52
|
}
|
|
53
53
|
}
|