@f5-sales-demo/xcsh 23.0.1 → 23.0.3

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@f5-sales-demo/xcsh",
4
- "version": "23.0.1",
4
+ "version": "23.0.3",
5
5
  "description": "Coding agent CLI with read, bash, edit, write tools and session management",
6
6
  "homepage": "https://github.com/f5-sales-demo/xcsh",
7
7
  "author": "Can Boluk",
@@ -68,13 +68,13 @@
68
68
  },
69
69
  "dependencies": {
70
70
  "@agentclientprotocol/sdk": "1.4.0",
71
- "@f5-sales-demo/pi-agent-core": "23.0.1",
72
- "@f5-sales-demo/pi-ai": "23.0.1",
73
- "@f5-sales-demo/pi-natives": "23.0.1",
74
- "@f5-sales-demo/pi-resource-management": "23.0.1",
75
- "@f5-sales-demo/pi-tui": "23.0.1",
76
- "@f5-sales-demo/pi-utils": "23.0.1",
77
- "@f5-sales-demo/xcsh-stats": "23.0.1",
71
+ "@f5-sales-demo/pi-agent-core": "23.0.3",
72
+ "@f5-sales-demo/pi-ai": "23.0.3",
73
+ "@f5-sales-demo/pi-natives": "23.0.3",
74
+ "@f5-sales-demo/pi-resource-management": "23.0.3",
75
+ "@f5-sales-demo/pi-tui": "23.0.3",
76
+ "@f5-sales-demo/pi-utils": "23.0.3",
77
+ "@f5-sales-demo/xcsh-stats": "23.0.3",
78
78
  "@mozilla/readability": "^0.6",
79
79
  "@resvg/resvg-wasm": "2.6.2",
80
80
  "@sinclair/typebox": "0.34.52",
@@ -182,11 +182,19 @@ export class ExtensionToolWrapper<TParameters extends TSchema = TSchema, TDetail
182
182
  }
183
183
 
184
184
  // Execute the actual tool
185
- let result: { content: any; details?: TDetails };
185
+ let result: { content: any; details?: TDetails; isError?: boolean };
186
186
  let executionError: Error | undefined;
187
187
 
188
188
  try {
189
189
  result = await this.tool.execute(toolCallId, params, signal, onUpdate, context);
190
+ if (result.isError === true) {
191
+ const text =
192
+ result.content
193
+ .filter((block: TextContent | ImageContent): block is TextContent => block.type === "text")
194
+ .map((block: TextContent) => block.text)
195
+ .join("\n") || "Tool returned an error";
196
+ throw new AgentToolError(text, { content: result.content, details: result.details });
197
+ }
190
198
  } catch (err) {
191
199
  executionError = err instanceof Error ? err : new Error(String(err));
192
200
  result =