@amaster.ai/dsh-a2a 0.1.10 → 0.1.11

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 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.6-alpha.2` — the attachment store is an optional peer) — check the `TODO(verify)` markers in `src/` before upgrading dsh.
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.6-alpha.2),
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.6-alpha.2) through {@link handleStreamFrame}:
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
- // ToolResultMessage.content is a single tool-result block.
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: callId ? this.toolNames.get(callId) : undefined,
145
- result: block?.type === 'tool-result'
146
- ? flattenContent(block.content)
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.6-alpha.2),
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.6-alpha.2) through {@link handleStreamFrame}:
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.10",
3
+ "version": "0.1.11",
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.1",
65
- "@deepseek-ai/dsh-agent": "0.1.6-alpha.2",
66
- "@deepseek-ai/dsh-attachment": "0.1.6-alpha.2",
67
- "@deepseek-ai/dsh-llm": "0.1.6-alpha.2",
68
- "@deepseek-ai/dsh-session": "0.1.6-alpha.2",
69
- "@deepseek-ai/dsh-user-approval": "0.1.6-alpha.2",
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",