@f5xc-salesdemos/xcsh 17.0.2 → 17.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.
- package/package.json +7 -7
- package/src/tools/vim.ts +13 -1
- package/src/web/search/provider.ts +12 -4
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@f5xc-salesdemos/xcsh",
|
|
4
|
-
"version": "17.0
|
|
4
|
+
"version": "17.1.0",
|
|
5
5
|
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
|
|
6
6
|
"homepage": "https://github.com/f5xc-salesdemos/xcsh",
|
|
7
7
|
"author": "Can Boluk",
|
|
@@ -46,12 +46,12 @@
|
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"@agentclientprotocol/sdk": "0.16.1",
|
|
48
48
|
"@mozilla/readability": "^0.6",
|
|
49
|
-
"@f5xc-salesdemos/xcsh-stats": "17.0
|
|
50
|
-
"@f5xc-salesdemos/pi-agent-core": "17.0
|
|
51
|
-
"@f5xc-salesdemos/pi-ai": "17.0
|
|
52
|
-
"@f5xc-salesdemos/pi-natives": "17.0
|
|
53
|
-
"@f5xc-salesdemos/pi-tui": "17.0
|
|
54
|
-
"@f5xc-salesdemos/pi-utils": "17.0
|
|
49
|
+
"@f5xc-salesdemos/xcsh-stats": "17.1.0",
|
|
50
|
+
"@f5xc-salesdemos/pi-agent-core": "17.1.0",
|
|
51
|
+
"@f5xc-salesdemos/pi-ai": "17.1.0",
|
|
52
|
+
"@f5xc-salesdemos/pi-natives": "17.1.0",
|
|
53
|
+
"@f5xc-salesdemos/pi-tui": "17.1.0",
|
|
54
|
+
"@f5xc-salesdemos/pi-utils": "17.1.0",
|
|
55
55
|
"@sinclair/typebox": "^0.34",
|
|
56
56
|
"@xterm/headless": "^6.0",
|
|
57
57
|
"ajv": "^8.18",
|
package/src/tools/vim.ts
CHANGED
|
@@ -644,7 +644,19 @@ export class VimTool implements AgentTool<typeof vimSchema, VimToolDetails> {
|
|
|
644
644
|
|
|
645
645
|
await executeVimSteps(engine, steps, {
|
|
646
646
|
pauseLastStep: params.pause === true,
|
|
647
|
-
onKbdStep: emitUpdate
|
|
647
|
+
onKbdStep: emitUpdate
|
|
648
|
+
? () => {
|
|
649
|
+
// Force update in prompt modes (command/search) so every keystroke
|
|
650
|
+
// is reported to onUpdate — users need to see each character of
|
|
651
|
+
// their ex-command input, and throttling can cause intermediate
|
|
652
|
+
// states to be skipped under heavy event-loop load (CI).
|
|
653
|
+
const forcePrompt =
|
|
654
|
+
engine.inputMode === "command" ||
|
|
655
|
+
engine.inputMode === "search-forward" ||
|
|
656
|
+
engine.inputMode === "search-backward";
|
|
657
|
+
return emitUpdate(forcePrompt);
|
|
658
|
+
}
|
|
659
|
+
: undefined,
|
|
648
660
|
onInsertStep: emitUpdate ? () => emitUpdate(true) : undefined,
|
|
649
661
|
});
|
|
650
662
|
|
|
@@ -71,8 +71,12 @@ export async function resolveProviderChain(
|
|
|
71
71
|
const providers: SearchProvider[] = [];
|
|
72
72
|
|
|
73
73
|
if (preferredProvider !== "auto") {
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
try {
|
|
75
|
+
if (await getSearchProvider(preferredProvider).isAvailable()) {
|
|
76
|
+
providers.push(getSearchProvider(preferredProvider));
|
|
77
|
+
}
|
|
78
|
+
} catch {
|
|
79
|
+
// Preferred provider check failed; continue with fallback chain
|
|
76
80
|
}
|
|
77
81
|
}
|
|
78
82
|
|
|
@@ -80,8 +84,12 @@ export async function resolveProviderChain(
|
|
|
80
84
|
if (id === preferredProvider) continue;
|
|
81
85
|
|
|
82
86
|
const provider = getSearchProvider(id);
|
|
83
|
-
|
|
84
|
-
|
|
87
|
+
try {
|
|
88
|
+
if (await provider.isAvailable()) {
|
|
89
|
+
providers.push(provider);
|
|
90
|
+
}
|
|
91
|
+
} catch {
|
|
92
|
+
// Provider availability check failed; skip and continue
|
|
85
93
|
}
|
|
86
94
|
}
|
|
87
95
|
|