@aramisfa/openclaw-a2a-outbound 3.0.0 → 4.1.0

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.
@@ -0,0 +1,487 @@
1
+ import { createServer } from "node:http";
2
+ export const LOCAL_DEMO_ALIAS = "local-demo";
3
+ export const DEMO_AGENT_CARD_PATH = "/.well-known/agent-card.json";
4
+ export const DEMO_JSON_RPC_PATH = "/a2a/jsonrpc";
5
+ export const DEMO_PROTOCOL_VERSION = "0.3.0";
6
+ export const DEMO_AGENT_NAME = "OpenClaw A2A Local Demo Peer";
7
+ const MAX_REQUEST_BYTES = 1024 * 1024;
8
+ const FIXED_TIMESTAMP = "2026-01-01T00:00:00.000Z";
9
+ function isRecord(value) {
10
+ return typeof value === "object" && value !== null && !Array.isArray(value);
11
+ }
12
+ function textFromParts(parts) {
13
+ return parts
14
+ .flatMap((part) => part.kind === "text" && typeof part.text === "string" ? [part.text] : [])
15
+ .join("\n\n");
16
+ }
17
+ function jsonRpcId(value) {
18
+ return typeof value === "string" || typeof value === "number" || value === null
19
+ ? value
20
+ : null;
21
+ }
22
+ function jsonRpcSuccess(id, result) {
23
+ return {
24
+ jsonrpc: "2.0",
25
+ id,
26
+ result,
27
+ };
28
+ }
29
+ function jsonRpcFailure(id, code, message, data) {
30
+ return {
31
+ jsonrpc: "2.0",
32
+ id,
33
+ error: {
34
+ code,
35
+ message,
36
+ ...(data !== undefined ? { data } : {}),
37
+ },
38
+ };
39
+ }
40
+ function formatSseEvent(response) {
41
+ return `data: ${JSON.stringify(response)}\n\n`;
42
+ }
43
+ function cloneTask(task) {
44
+ return structuredClone(task);
45
+ }
46
+ function cloneMessage(message) {
47
+ return structuredClone(message);
48
+ }
49
+ function cloneArtifact(artifact) {
50
+ return structuredClone(artifact);
51
+ }
52
+ async function readRequestBody(req) {
53
+ const chunks = [];
54
+ let total = 0;
55
+ for await (const chunk of req) {
56
+ const buffer = typeof chunk === "string" ? Buffer.from(chunk) : chunk;
57
+ total += buffer.byteLength;
58
+ if (total > MAX_REQUEST_BYTES) {
59
+ throw new Error(`request body exceeds ${MAX_REQUEST_BYTES} bytes`);
60
+ }
61
+ chunks.push(buffer);
62
+ }
63
+ return Buffer.concat(chunks);
64
+ }
65
+ function writeJson(res, statusCode, body) {
66
+ res.writeHead(statusCode, {
67
+ "content-type": "application/json; charset=utf-8",
68
+ });
69
+ res.end(JSON.stringify(body, null, 2));
70
+ }
71
+ function writeText(res, statusCode, body) {
72
+ res.writeHead(statusCode, {
73
+ "content-type": "text/plain; charset=utf-8",
74
+ });
75
+ res.end(body);
76
+ }
77
+ function isMessage(value) {
78
+ return (isRecord(value) &&
79
+ value.kind === "message" &&
80
+ typeof value.messageId === "string" &&
81
+ Array.isArray(value.parts));
82
+ }
83
+ function readSendMessage(params) {
84
+ return isRecord(params) && isMessage(params.message) ? params.message : undefined;
85
+ }
86
+ function readTaskId(params) {
87
+ return isRecord(params) && typeof params.id === "string" ? params.id : undefined;
88
+ }
89
+ function taskStatusUpdate(task, final) {
90
+ return {
91
+ kind: "status-update",
92
+ taskId: task.id,
93
+ contextId: task.contextId,
94
+ status: {
95
+ state: task.status.state,
96
+ ...(task.status.message !== undefined
97
+ ? { message: cloneMessage(task.status.message) }
98
+ : {}),
99
+ timestamp: FIXED_TIMESTAMP,
100
+ },
101
+ final,
102
+ };
103
+ }
104
+ function artifactUpdate(task) {
105
+ const artifact = task.artifacts?.[0];
106
+ if (!artifact) {
107
+ return undefined;
108
+ }
109
+ return {
110
+ kind: "artifact-update",
111
+ taskId: task.id,
112
+ contextId: task.contextId,
113
+ artifact: cloneArtifact(artifact),
114
+ append: false,
115
+ lastChunk: true,
116
+ };
117
+ }
118
+ function terminalState(state) {
119
+ return (state === "completed" ||
120
+ state === "failed" ||
121
+ state === "canceled" ||
122
+ state === "rejected");
123
+ }
124
+ class DemoPeerRuntime {
125
+ baseUrl;
126
+ tasks = new Map();
127
+ taskSeq = 0;
128
+ contextSeq = 0;
129
+ messageSeq = 0;
130
+ artifactSeq = 0;
131
+ constructor(baseUrl) {
132
+ this.baseUrl = baseUrl;
133
+ }
134
+ snapshot() {
135
+ return {
136
+ taskCount: this.tasks.size,
137
+ tasks: [...this.tasks.values()].map((record) => cloneTask(record.task)),
138
+ };
139
+ }
140
+ agentCard() {
141
+ const baseUrl = this.baseUrl();
142
+ const jsonRpcUrl = new URL(DEMO_JSON_RPC_PATH, baseUrl).toString();
143
+ return {
144
+ name: DEMO_AGENT_NAME,
145
+ description: "Deterministic local A2A peer for OpenClaw outbound onboarding.",
146
+ protocolVersion: DEMO_PROTOCOL_VERSION,
147
+ version: "1.0.0",
148
+ url: jsonRpcUrl,
149
+ preferredTransport: "JSONRPC",
150
+ capabilities: {
151
+ streaming: true,
152
+ pushNotifications: false,
153
+ stateTransitionHistory: true,
154
+ },
155
+ defaultInputModes: ["text/plain", "application/json"],
156
+ defaultOutputModes: ["text/plain", "application/json"],
157
+ additionalInterfaces: [
158
+ {
159
+ transport: "JSONRPC",
160
+ url: jsonRpcUrl,
161
+ },
162
+ ],
163
+ skills: [
164
+ {
165
+ id: "demo-delegation",
166
+ name: "Demo Delegation",
167
+ description: "Returns deterministic direct replies, task results, and continuation-friendly task snapshots.",
168
+ tags: ["demo", "delegation", "continuation"],
169
+ examples: [
170
+ "Create a durable demo task.",
171
+ "Continue from the persisted continuation.",
172
+ ],
173
+ inputModes: ["text/plain", "application/json"],
174
+ outputModes: ["text/plain", "application/json"],
175
+ },
176
+ ],
177
+ };
178
+ }
179
+ directReply(message) {
180
+ const contextId = message.contextId ?? `demo-context-direct-${++this.contextSeq}`;
181
+ const inboundText = textFromParts(message.parts) || "empty prompt";
182
+ return {
183
+ kind: "message",
184
+ messageId: `demo-agent-message-${++this.messageSeq}`,
185
+ role: "agent",
186
+ contextId,
187
+ ...(message.taskId !== undefined ? { taskId: message.taskId } : {}),
188
+ parts: [
189
+ {
190
+ kind: "text",
191
+ text: `Demo peer direct reply: ${inboundText}`,
192
+ },
193
+ ],
194
+ };
195
+ }
196
+ taskReply(message) {
197
+ const existing = message.taskId !== undefined ? this.tasks.get(message.taskId) : undefined;
198
+ const taskId = message.taskId ?? `demo-task-${++this.taskSeq}`;
199
+ const contextId = message.contextId ?? existing?.task.contextId ?? `demo-context-${++this.contextSeq}`;
200
+ const turn = (existing?.turn ?? 0) + 1;
201
+ const inboundText = textFromParts(message.parts) || "empty prompt";
202
+ const cancelable = /\bcancelable\b/i.test(inboundText);
203
+ const resumed = existing !== undefined || message.taskId !== undefined;
204
+ const statusState = cancelable ? "working" : "completed";
205
+ const artifactText = resumed
206
+ ? `Demo peer resumed ${taskId} from persisted continuation. Received: ${inboundText}`
207
+ : cancelable
208
+ ? `Demo peer started cancelable task ${taskId}.`
209
+ : `Demo peer completed durable task ${taskId}. Received: ${inboundText}`;
210
+ const artifact = {
211
+ artifactId: `demo-artifact-${++this.artifactSeq}`,
212
+ name: resumed ? "continuation-result" : "demo-result",
213
+ parts: [
214
+ {
215
+ kind: "text",
216
+ text: artifactText,
217
+ },
218
+ ],
219
+ };
220
+ const agentMessage = {
221
+ kind: "message",
222
+ messageId: `demo-agent-message-${++this.messageSeq}`,
223
+ role: "agent",
224
+ contextId,
225
+ taskId,
226
+ parts: [
227
+ {
228
+ kind: "text",
229
+ text: artifactText,
230
+ },
231
+ ],
232
+ };
233
+ const history = [
234
+ ...(existing?.task.history?.map(cloneMessage) ?? []),
235
+ cloneMessage(message),
236
+ cloneMessage(agentMessage),
237
+ ];
238
+ const task = {
239
+ kind: "task",
240
+ id: taskId,
241
+ contextId,
242
+ status: {
243
+ state: statusState,
244
+ message: cloneMessage(agentMessage),
245
+ timestamp: FIXED_TIMESTAMP,
246
+ },
247
+ artifacts: [artifact],
248
+ history,
249
+ metadata: {
250
+ demo: true,
251
+ turn,
252
+ },
253
+ };
254
+ this.tasks.set(taskId, {
255
+ turn,
256
+ task,
257
+ });
258
+ return cloneTask(task);
259
+ }
260
+ sendMessage(params) {
261
+ const message = readSendMessage(params);
262
+ if (!message) {
263
+ throw jsonRpcFailure(null, -32602, "message is required");
264
+ }
265
+ const text = textFromParts(message.parts);
266
+ return /\bdirect\b/i.test(text) ? this.directReply(message) : this.taskReply(message);
267
+ }
268
+ streamMessage(params) {
269
+ const result = this.sendMessage(params);
270
+ if (result.kind === "message") {
271
+ return [result];
272
+ }
273
+ return this.taskEvents(result);
274
+ }
275
+ getTask(params) {
276
+ const taskId = readTaskId(params);
277
+ if (!taskId) {
278
+ throw jsonRpcFailure(null, -32602, "task id is required");
279
+ }
280
+ const record = this.tasks.get(taskId);
281
+ if (!record) {
282
+ throw jsonRpcFailure(null, -32001, `task not found: ${taskId}`, {
283
+ taskId,
284
+ });
285
+ }
286
+ return cloneTask(record.task);
287
+ }
288
+ cancelTask(params) {
289
+ const taskId = readTaskId(params);
290
+ if (!taskId) {
291
+ throw jsonRpcFailure(null, -32602, "task id is required");
292
+ }
293
+ const record = this.tasks.get(taskId);
294
+ if (!record) {
295
+ throw jsonRpcFailure(null, -32001, `task not found: ${taskId}`, {
296
+ taskId,
297
+ });
298
+ }
299
+ if (terminalState(record.task.status.state)) {
300
+ return cloneTask(record.task);
301
+ }
302
+ const canceledMessage = {
303
+ kind: "message",
304
+ messageId: `demo-agent-message-${++this.messageSeq}`,
305
+ role: "agent",
306
+ contextId: record.task.contextId,
307
+ taskId: record.task.id,
308
+ parts: [
309
+ {
310
+ kind: "text",
311
+ text: `Demo peer canceled ${record.task.id}.`,
312
+ },
313
+ ],
314
+ };
315
+ const canceledTask = {
316
+ ...cloneTask(record.task),
317
+ status: {
318
+ state: "canceled",
319
+ message: canceledMessage,
320
+ timestamp: FIXED_TIMESTAMP,
321
+ },
322
+ history: [...(record.task.history?.map(cloneMessage) ?? []), canceledMessage],
323
+ };
324
+ this.tasks.set(taskId, {
325
+ turn: record.turn,
326
+ task: canceledTask,
327
+ });
328
+ return cloneTask(canceledTask);
329
+ }
330
+ resubscribe(params) {
331
+ return this.taskEvents(this.getTask(params));
332
+ }
333
+ taskEvents(task) {
334
+ const events = [cloneTask(task)];
335
+ const artifact = artifactUpdate(task);
336
+ if (artifact !== undefined) {
337
+ events.push(artifact);
338
+ }
339
+ events.push(taskStatusUpdate(task, terminalState(task.status.state)));
340
+ return events;
341
+ }
342
+ }
343
+ function isJsonRpcFailure(value) {
344
+ return isRecord(value) && isRecord(value.error) && typeof value.error.code === "number";
345
+ }
346
+ function rpcResult(runtime, request) {
347
+ switch (request.method) {
348
+ case "message/send":
349
+ return runtime.sendMessage(request.params);
350
+ case "tasks/get":
351
+ return runtime.getTask(request.params);
352
+ case "tasks/cancel":
353
+ return runtime.cancelTask(request.params);
354
+ case "agent/getAuthenticatedExtendedCard":
355
+ return runtime.agentCard();
356
+ default:
357
+ throw jsonRpcFailure(jsonRpcId(request.id), -32601, `method not found: ${String(request.method)}`);
358
+ }
359
+ }
360
+ function rpcStream(runtime, request) {
361
+ switch (request.method) {
362
+ case "message/stream":
363
+ return runtime.streamMessage(request.params);
364
+ case "tasks/resubscribe":
365
+ return runtime.resubscribe(request.params);
366
+ default:
367
+ throw jsonRpcFailure(jsonRpcId(request.id), -32601, `method not found: ${String(request.method)}`);
368
+ }
369
+ }
370
+ function parseJsonRpcRequest(body) {
371
+ const parsed = JSON.parse(body.toString("utf8"));
372
+ if (!isRecord(parsed) || parsed.jsonrpc !== "2.0" || typeof parsed.method !== "string") {
373
+ throw jsonRpcFailure(null, -32600, "invalid JSON-RPC request");
374
+ }
375
+ return parsed;
376
+ }
377
+ export function createDemoOutboundConfig(baseUrl) {
378
+ return {
379
+ enabled: true,
380
+ defaults: {
381
+ timeoutMs: 30_000,
382
+ cardPath: DEMO_AGENT_CARD_PATH,
383
+ preferredTransports: ["JSONRPC", "HTTP+JSON"],
384
+ serviceParameters: {},
385
+ },
386
+ targets: [
387
+ {
388
+ alias: LOCAL_DEMO_ALIAS,
389
+ baseUrl,
390
+ description: "Deterministic local A2A demo peer.",
391
+ tags: ["demo", "local"],
392
+ cardPath: DEMO_AGENT_CARD_PATH,
393
+ preferredTransports: ["JSONRPC", "HTTP+JSON"],
394
+ examples: [
395
+ "Create a durable demo task.",
396
+ "Continue from the persisted continuation.",
397
+ ],
398
+ default: true,
399
+ },
400
+ ],
401
+ taskHandles: {
402
+ ttlMs: 86_400_000,
403
+ maxEntries: 100,
404
+ },
405
+ policy: {
406
+ acceptedOutputModes: ["text/plain", "application/json"],
407
+ normalizeBaseUrl: true,
408
+ enforceSupportedTransports: true,
409
+ allowTargetUrlOverride: false,
410
+ },
411
+ };
412
+ }
413
+ export async function startDemoPeerServer(options = {}) {
414
+ const host = options.host ?? "127.0.0.1";
415
+ let baseUrl = "";
416
+ const runtime = new DemoPeerRuntime(() => baseUrl);
417
+ const server = createServer((req, res) => {
418
+ void (async () => {
419
+ const url = new URL(req.url ?? "/", "http://127.0.0.1");
420
+ if (req.method === "GET" && url.pathname === DEMO_AGENT_CARD_PATH) {
421
+ writeJson(res, 200, runtime.agentCard());
422
+ return;
423
+ }
424
+ if (req.method !== "POST" || url.pathname !== DEMO_JSON_RPC_PATH) {
425
+ writeText(res, 404, "not found");
426
+ return;
427
+ }
428
+ const body = await readRequestBody(req);
429
+ const request = parseJsonRpcRequest(body);
430
+ const id = jsonRpcId(request.id);
431
+ if (request.method === "message/stream" || request.method === "tasks/resubscribe") {
432
+ res.writeHead(200, {
433
+ "content-type": "text/event-stream",
434
+ "cache-control": "no-cache",
435
+ connection: "keep-alive",
436
+ "x-accel-buffering": "no",
437
+ });
438
+ for (const event of rpcStream(runtime, request)) {
439
+ res.write(formatSseEvent(jsonRpcSuccess(id, event)));
440
+ }
441
+ res.end();
442
+ return;
443
+ }
444
+ writeJson(res, 200, jsonRpcSuccess(id, rpcResult(runtime, request)));
445
+ })().catch((error) => {
446
+ const failure = isJsonRpcFailure(error)
447
+ ? error
448
+ : jsonRpcFailure(null, error instanceof SyntaxError ? -32700 : -32603, error instanceof Error ? error.message : String(error));
449
+ if (!res.headersSent) {
450
+ writeJson(res, error instanceof SyntaxError ? 400 : 500, failure);
451
+ return;
452
+ }
453
+ if (!res.writableEnded) {
454
+ res.write(formatSseEvent(failure));
455
+ res.end();
456
+ }
457
+ });
458
+ });
459
+ await new Promise((resolve, reject) => {
460
+ server.once("error", reject);
461
+ server.listen(options.port ?? 0, host, () => {
462
+ server.off("error", reject);
463
+ resolve();
464
+ });
465
+ });
466
+ const address = server.address();
467
+ if (!address || typeof address === "string") {
468
+ throw new Error("failed to bind demo peer server");
469
+ }
470
+ baseUrl = `http://${host}:${address.port}`;
471
+ return {
472
+ baseUrl,
473
+ cardUrl: new URL(DEMO_AGENT_CARD_PATH, baseUrl).toString(),
474
+ jsonRpcUrl: new URL(DEMO_JSON_RPC_PATH, baseUrl).toString(),
475
+ close: () => new Promise((resolve, reject) => {
476
+ server.close((error) => {
477
+ if (error) {
478
+ reject(error);
479
+ return;
480
+ }
481
+ resolve();
482
+ });
483
+ }),
484
+ snapshot: () => runtime.snapshot(),
485
+ };
486
+ }
487
+ //# sourceMappingURL=demo-peer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo-peer.js","sourceRoot":"","sources":["../src/demo-peer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAChC,MAAM,qBAAqB,CAAC;AA2D7B,iBAAS,aAAa,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAwCnD;AAED,eAAO,MAAM,EAAE,0BAAY,CAAC;AAE5B,eAAO,MAAM,MAAM;;;;CAIO,CAAC;AAE3B,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAChC,MAAM,qBAAqB,CAAC;AA6D7B,iBAAS,aAAa,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAuEnD;AAED,eAAO,MAAM,EAAE,0BAAY,CAAC;AAE5B,eAAO,MAAM,MAAM;;;;CAIO,CAAC;AAE3B,eAAe,MAAM,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
- import { jsonResult, } from "openclaw/plugin-sdk";
1
+ import { jsonResult } from "openclaw/plugin-sdk/core";
2
2
  import { PLUGIN_ID } from "./constants.js";
3
3
  import { A2A_OUTBOUND_OPENCLAW_CONFIG_SCHEMA, } from "./config.js";
4
+ import { registerA2ACli } from "./cli.js";
4
5
  import { log } from "./logging.js";
5
6
  import { buildRemoteAgentToolDefinition } from "./schemas.js";
6
7
  import { buildService } from "./service.js";
@@ -34,8 +35,33 @@ function resolveExecuteArgs(args) {
34
35
  }
35
36
  function registerTools(api) {
36
37
  const config = A2A_OUTBOUND_OPENCLAW_CONFIG_SCHEMA.parse?.(api.pluginConfig ?? {});
38
+ api.registerCli?.(({ program }) => {
39
+ registerA2ACli(program, {
40
+ pluginConfig: config,
41
+ rootConfig: api.config,
42
+ });
43
+ }, {
44
+ commands: ["a2a"],
45
+ descriptors: [
46
+ {
47
+ name: "a2a",
48
+ description: "A2A outbound demo and diagnostics",
49
+ hasSubcommands: true,
50
+ },
51
+ ],
52
+ });
53
+ if (api.registrationMode !== "full") {
54
+ log(api.logger, "debug", "a2a.plugin.registration.deferred", {
55
+ pluginId: PLUGIN_ID,
56
+ registrationMode: api.registrationMode,
57
+ });
58
+ return;
59
+ }
37
60
  if (config.enabled !== true) {
38
- log(api.logger, "info", "a2a.plugin.disabled", { pluginId: PLUGIN_ID });
61
+ log(api.logger, "info", "a2a.plugin.disabled", {
62
+ pluginId: PLUGIN_ID,
63
+ registrationMode: api.registrationMode,
64
+ });
39
65
  return;
40
66
  }
41
67
  const service = buildService({
@@ -61,6 +87,7 @@ function registerTools(api) {
61
87
  api.registerTool(remoteAgentTool, { optional: true });
62
88
  log(api.logger, "info", "a2a.plugin.loaded", {
63
89
  pluginId: PLUGIN_ID,
90
+ registrationMode: api.registrationMode,
64
91
  tools: [remoteAgentTool.name],
65
92
  });
66
93
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EACL,mCAAmC,GAEpC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAgB5C,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,SAAS,IAAI,KAAK;QAClB,OAAQ,KAAqB,CAAC,OAAO,KAAK,SAAS;QACnD,kBAAkB,IAAI,KAAK;QAC3B,OAAQ,KAAqB,CAAC,gBAAgB,KAAK,UAAU,CAC9D,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAe;IACzC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QACzD,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC;QAEpD,OAAO;YACL,MAAM;YACN,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,OAAO,aAAa,KAAK,UAAU;gBACrC,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAgD,EAAE;gBAChE,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC;IAElD,OAAO;QACL,MAAM;QACN,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,OAAO,aAAa,KAAK,UAAU;YACrC,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAgD,EAAE;YAChE,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,GAAsB;IAC3C,MAAM,MAAM,GAAG,mCAAmC,CAAC,KAAK,EAAE,CACxD,GAAG,CAAC,YAAY,IAAI,EAAE,CACI,CAAC;IAE7B,GAAG,CAAC,WAAW,EAAE,CACf,CAAC,EAAE,OAAO,EAAwB,EAAE,EAAE;QACpC,cAAc,CAAC,OAA+C,EAAE;YAC9D,YAAY,EAAE,MAAM;YACpB,UAAU,EAAE,GAAG,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC,EACD;QACE,QAAQ,EAAE,CAAC,KAAK,CAAC;QACjB,WAAW,EAAE;YACX;gBACE,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,mCAAmC;gBAChD,cAAc,EAAE,IAAI;aACrB;SACF;KACF,CACF,CAAC;IAEF,IAAI,GAAG,CAAC,gBAAgB,KAAK,MAAM,EAAE,CAAC;QACpC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,kCAAkC,EAAE;YAC3D,QAAQ,EAAE,SAAS;YACnB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;SACvC,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC5B,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE;YAC7C,QAAQ,EAAE,SAAS;YACnB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;SACvC,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC;QAC3B,YAAY,EAAE,MAAM;QACpB,MAAM,EAAE,GAAG,CAAC,MAAM;KACnB,CAAC,CAAC;IAEH,MAAM,eAAe,GAAiB;QACpC,GAAG,8BAA8B,CAAC,MAAM,CAAC;QACzC,OAAO,EAAE,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;YACpC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC9D,OAAO,UAAU,CACf,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE;gBAC5B,MAAM;gBACN,GAAG,CAAC,QAAQ,KAAK,SAAS;oBACxB,CAAC,CAAC;wBACE,QAAQ,CAAC,MAAM;4BACb,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;wBAC/B,CAAC;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CACH,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,GAAG,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtD,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE;QAC3C,QAAQ,EAAE,SAAS;QACnB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;QACtC,KAAK,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;KAC9B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC;AAE5B,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,EAAE,EAAE,SAAS;IACb,YAAY,EAAE,mCAAmC;IACjD,QAAQ,EAAE,aAAa;CACC,CAAC;AAE3B,eAAe,MAAM,CAAC"}
@@ -49,6 +49,7 @@ export interface TargetListSummary {
49
49
  examples: string[];
50
50
  target_name?: string;
51
51
  description?: string;
52
+ streaming_supported?: boolean;
52
53
  peer_card: TargetListPeerCardSummary;
53
54
  last_refreshed_at?: string;
54
55
  last_refresh_error?: ToolError;
@@ -1 +1 @@
1
- {"version":3,"file":"result-shape.d.ts","sourceRoot":"","sources":["../src/result-shape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"result-shape.d.ts","sourceRoot":"","sources":["../src/result-shape.ts"],"names":[],"mappings":"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"}
@@ -405,6 +405,9 @@ function listTargetSummary(entry) {
405
405
  ...(entry.target.description !== undefined
406
406
  ? { description: entry.target.description }
407
407
  : {}),
408
+ ...(entry.target.streamingSupported !== undefined
409
+ ? { streaming_supported: entry.target.streamingSupported }
410
+ : {}),
408
411
  peer_card: peerCard,
409
412
  ...(entry.card.lastRefreshedAt !== undefined
410
413
  ? { last_refreshed_at: entry.card.lastRefreshedAt }