@amaster.ai/dsh-a2a 0.1.10 → 0.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/lib/content.js +0 -3
- package/lib/translator.js +6 -10
- package/lib/types/translator.d.ts +2 -2
- package/package.json +13 -12
package/README.md
CHANGED
|
@@ -80,7 +80,7 @@ dsh ships **no authentication or authorization**. The server binds `127.0.0.1` b
|
|
|
80
80
|
|
|
81
81
|
## Compatibility
|
|
82
82
|
|
|
83
|
-
Pinned dsh/cordis versions live in the [root compat matrix](../../README.md#compatibility). Event payloads ride pre-release dsh APIs (`@deepseek-ai/dsh-{agent,session,llm,attachment}@0.1.
|
|
83
|
+
Pinned dsh/cordis versions live in the [root compat matrix](../../README.md#compatibility). Event payloads ride pre-release dsh APIs (`@deepseek-ai/dsh-{agent,session,llm,attachment}@0.1.7-rc.2` — the attachment store is an optional peer) — check the `TODO(verify)` markers in `src/` before upgrading dsh.
|
|
84
84
|
|
|
85
85
|
## License
|
|
86
86
|
|
package/lib/content.js
CHANGED
|
@@ -22,9 +22,6 @@ import path from 'node:path';
|
|
|
22
22
|
/** Cap on one url part download. */
|
|
23
23
|
const MAX_DOWNLOAD_BYTES = 64 * 1024 * 1024;
|
|
24
24
|
const DOWNLOAD_TIMEOUT_MS = 30_000;
|
|
25
|
-
// TODO(verify): the confirmation data-part protocol ({callId, outcome}) maps
|
|
26
|
-
// onto the optional dsh-user-approval service (0.1.2+, asks carry the exact
|
|
27
|
-
// tool call) — bridge it once a deployment composes that service.
|
|
28
25
|
export async function buildMessageContent(parts, attachments, dir, materialization) {
|
|
29
26
|
const content = [];
|
|
30
27
|
for (const part of parts) {
|
package/lib/translator.js
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
* deliberately free of cordis/HTTP concerns so the mapping is unit-testable
|
|
6
6
|
* without a harness. The mapping ports the source project's
|
|
7
7
|
* `packages/a2a-server/src/agent/task.ts` event switch onto dsh's
|
|
8
|
-
* `SessionEventMap` (verified against @deepseek-ai/dsh-session@0.1.
|
|
8
|
+
* `SessionEventMap` (verified against @deepseek-ai/dsh-session@0.1.7-rc.2),
|
|
9
9
|
* emitting the A2A 1.0 data model (@a2a-js/sdk 1.1.0). As of the V3 session
|
|
10
10
|
* format the durable log carries no incremental chunks — live text/reasoning
|
|
11
11
|
* deltas arrive as `agent/assistant-stream` chunk frames
|
|
12
|
-
* (@deepseek-ai/dsh-agent@0.1.
|
|
12
|
+
* (@deepseek-ai/dsh-agent@0.1.7-rc.2) through {@link handleStreamFrame}:
|
|
13
13
|
*
|
|
14
14
|
* turn/start → statusUpdate(WORKING), ids rotate
|
|
15
15
|
* stream chunk (text-delta) → statusUpdate(WORKING, text part),
|
|
@@ -135,17 +135,13 @@ export class SessionTranslator {
|
|
|
135
135
|
}
|
|
136
136
|
case 'tool/result': {
|
|
137
137
|
const { message, error, meta } = event.data;
|
|
138
|
-
|
|
139
|
-
const block = message.content[0];
|
|
140
|
-
const callId = block?.type === 'tool-result' ? block.toolCallId : undefined;
|
|
138
|
+
const callId = message.toolCallId;
|
|
141
139
|
return [
|
|
142
140
|
this.status(TaskState.TASK_STATE_WORKING, { kind: 'tool-result' }, this.dataMessage({
|
|
143
141
|
callId,
|
|
144
|
-
name:
|
|
145
|
-
result:
|
|
146
|
-
|
|
147
|
-
: flattenContent(message.content),
|
|
148
|
-
isError: (block?.type === 'tool-result' && block.isError === true) || error !== undefined,
|
|
142
|
+
name: this.toolNames.get(callId),
|
|
143
|
+
result: flattenContent(message.content),
|
|
144
|
+
isError: message.isError === true || error !== undefined,
|
|
149
145
|
...(error ? { error: `${error.name}: ${error.code}` } : {}),
|
|
150
146
|
...(meta !== undefined ? { meta } : {}),
|
|
151
147
|
})),
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
* deliberately free of cordis/HTTP concerns so the mapping is unit-testable
|
|
6
6
|
* without a harness. The mapping ports the source project's
|
|
7
7
|
* `packages/a2a-server/src/agent/task.ts` event switch onto dsh's
|
|
8
|
-
* `SessionEventMap` (verified against @deepseek-ai/dsh-session@0.1.
|
|
8
|
+
* `SessionEventMap` (verified against @deepseek-ai/dsh-session@0.1.7-rc.2),
|
|
9
9
|
* emitting the A2A 1.0 data model (@a2a-js/sdk 1.1.0). As of the V3 session
|
|
10
10
|
* format the durable log carries no incremental chunks — live text/reasoning
|
|
11
11
|
* deltas arrive as `agent/assistant-stream` chunk frames
|
|
12
|
-
* (@deepseek-ai/dsh-agent@0.1.
|
|
12
|
+
* (@deepseek-ai/dsh-agent@0.1.7-rc.2) through {@link handleStreamFrame}:
|
|
13
13
|
*
|
|
14
14
|
* turn/start → statusUpdate(WORKING), ids rotate
|
|
15
15
|
* stream chunk (text-delta) → statusUpdate(WORKING, text part),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amaster.ai/dsh-a2a",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.12",
|
|
4
4
|
"description": "A2A protocol (JSON-RPC + SSE) server plugin for DeepSeek Harness: expose dsh agents as A2A agents.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -38,11 +38,11 @@
|
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
40
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
41
|
-
"@deepseek-ai/dsh-agent": ">=0.1.5-rc.1 || >=0.1.6-alpha.1",
|
|
42
|
-
"@deepseek-ai/dsh-attachment": ">=0.1.5-rc.1 || >=0.1.6-alpha.1",
|
|
43
|
-
"@deepseek-ai/dsh-llm": ">=0.1.5-rc.1 || >=0.1.6-alpha.1",
|
|
44
|
-
"@deepseek-ai/dsh-session": ">=0.1.5-rc.1 || >=0.1.6-alpha.1",
|
|
45
|
-
"@deepseek-ai/dsh-user-approval": ">=0.1.6-alpha.2",
|
|
41
|
+
"@deepseek-ai/dsh-agent": ">=0.1.5-rc.1 || >=0.1.6-alpha.1 || >=0.1.7-alpha.1",
|
|
42
|
+
"@deepseek-ai/dsh-attachment": ">=0.1.5-rc.1 || >=0.1.6-alpha.1 || >=0.1.7-alpha.1",
|
|
43
|
+
"@deepseek-ai/dsh-llm": ">=0.1.5-rc.1 || >=0.1.6-alpha.1 || >=0.1.7-alpha.1",
|
|
44
|
+
"@deepseek-ai/dsh-session": ">=0.1.5-rc.1 || >=0.1.6-alpha.1 || >=0.1.7-alpha.1",
|
|
45
|
+
"@deepseek-ai/dsh-user-approval": ">=0.1.6-alpha.2 || >=0.1.7-alpha.1",
|
|
46
46
|
"@google-cloud/storage": "^7.0.0",
|
|
47
47
|
"ioredis": "^5.0.0"
|
|
48
48
|
},
|
|
@@ -61,12 +61,13 @@
|
|
|
61
61
|
}
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
|
-
"@deepseek-ai/cordis": "^4.0.
|
|
65
|
-
"@deepseek-ai/dsh-agent": "0.1.
|
|
66
|
-
"@deepseek-ai/dsh-attachment": "0.1.
|
|
67
|
-
"@deepseek-ai/dsh-llm": "0.1.
|
|
68
|
-
"@deepseek-ai/dsh-session": "0.1.
|
|
69
|
-
"@deepseek-ai/dsh-
|
|
64
|
+
"@deepseek-ai/cordis": "^4.0.4",
|
|
65
|
+
"@deepseek-ai/dsh-agent": "0.1.7-rc.2",
|
|
66
|
+
"@deepseek-ai/dsh-attachment": "0.1.7-rc.2",
|
|
67
|
+
"@deepseek-ai/dsh-llm": "0.1.7-rc.2",
|
|
68
|
+
"@deepseek-ai/dsh-session": "0.1.7-rc.2",
|
|
69
|
+
"@deepseek-ai/dsh-session-projection": "0.1.7-rc.2",
|
|
70
|
+
"@deepseek-ai/dsh-user-approval": "0.1.7-rc.2",
|
|
70
71
|
"@google-cloud/storage": "^7.0.0",
|
|
71
72
|
"@types/express": "^4.17.21",
|
|
72
73
|
"@types/node": "^22.0.0",
|