@averyyy/pi-coding-agent 0.82.0-piclient.1 → 0.82.1-piclient.1
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/CHANGELOG.md +27 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +1 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +2 -7
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/extensions/types.d.ts +2 -0
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/model-resolver.d.ts +1 -0
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +13 -3
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js +19 -1
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +3 -0
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +6 -0
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts +3 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +10 -2
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +22 -13
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +28 -16
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/docs/extensions.md +2 -2
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/message-renderer.ts +2 -2
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/package.json +4 -4
|
@@ -17,7 +17,7 @@ import { FooterDataProvider } from "../../core/footer-data-provider.js";
|
|
|
17
17
|
import { configureHttpDispatcher, formatHttpIdleTimeoutMs } from "../../core/http-dispatcher.js";
|
|
18
18
|
import { KeybindingsManager } from "../../core/keybindings.js";
|
|
19
19
|
import { createCompactionSummaryMessage } from "../../core/messages.js";
|
|
20
|
-
import { defaultModelPerProvider, findExactModelReferenceMatch, resolveModelScope } from "../../core/model-resolver.js";
|
|
20
|
+
import { defaultModelPerProvider, findExactModelReferenceMatch, resolveModelScope, resolveModelScopeWithDiagnostics, } from "../../core/model-resolver.js";
|
|
21
21
|
import { DefaultPackageManager } from "../../core/package-manager.js";
|
|
22
22
|
import { getPiClientUpdateMarkerPath, PI_CLIENT_RUNTIME_RELOAD_EXIT_CODE, readPiClientUpdateMarker, writePiClientRuntimeReloadState, } from "../../core/pi-client-runtime-update.js";
|
|
23
23
|
import { formatMissingSessionCwdPrompt, MissingSessionCwdError } from "../../core/session-cwd.js";
|
|
@@ -2629,7 +2629,7 @@ export class InteractiveMode {
|
|
|
2629
2629
|
case "custom": {
|
|
2630
2630
|
if (message.display) {
|
|
2631
2631
|
const renderer = this.session.extensionRunner.getMessageRenderer(message.customType);
|
|
2632
|
-
const component = new CustomMessageComponent(message, renderer, this.getMarkdownThemeWithSettings());
|
|
2632
|
+
const component = new CustomMessageComponent(message, renderer, this.getMarkdownThemeWithSettings(), this.outputPad);
|
|
2633
2633
|
component.setExpanded(this.toolOutputExpanded);
|
|
2634
2634
|
this.chatContainer.addChild(component);
|
|
2635
2635
|
}
|
|
@@ -3532,7 +3532,9 @@ export class InteractiveMode {
|
|
|
3532
3532
|
this.outputPad = padding;
|
|
3533
3533
|
if (this.streamingComponent || this.session.isStreaming) {
|
|
3534
3534
|
for (const child of this.chatContainer.children) {
|
|
3535
|
-
if (child instanceof AssistantMessageComponent ||
|
|
3535
|
+
if (child instanceof AssistantMessageComponent ||
|
|
3536
|
+
child instanceof CustomMessageComponent ||
|
|
3537
|
+
child instanceof UserMessageComponent) {
|
|
3536
3538
|
child.setOutputPad(padding);
|
|
3537
3539
|
}
|
|
3538
3540
|
}
|
|
@@ -3717,12 +3719,17 @@ export class InteractiveMode {
|
|
|
3717
3719
|
// Get all available models
|
|
3718
3720
|
await this.session.modelRuntime.refresh();
|
|
3719
3721
|
const allModels = [...(await this.session.modelRuntime.getAvailable())];
|
|
3720
|
-
|
|
3722
|
+
const allModelIds = new Set(allModels.map((model) => `${model.provider}/${model.id}`));
|
|
3723
|
+
const configuredPatterns = this.settingsManager.getEnabledModels();
|
|
3724
|
+
const sessionScopedModels = this.session.scopedModels;
|
|
3725
|
+
if (allModels.length === 0 && !configuredPatterns?.length && sessionScopedModels.length === 0) {
|
|
3721
3726
|
this.showStatus("No models available");
|
|
3722
3727
|
return;
|
|
3723
3728
|
}
|
|
3729
|
+
const configuredScope = configuredPatterns?.length
|
|
3730
|
+
? await resolveModelScopeWithDiagnostics(configuredPatterns, this.session.modelRuntime)
|
|
3731
|
+
: undefined;
|
|
3724
3732
|
// Check if session has scoped models (from previous session-only changes or CLI --models)
|
|
3725
|
-
const sessionScopedModels = this.session.scopedModels;
|
|
3726
3733
|
const hasSessionScope = sessionScopedModels.length > 0;
|
|
3727
3734
|
// Build enabled model IDs from session state or settings
|
|
3728
3735
|
let currentEnabledIds = null;
|
|
@@ -3730,18 +3737,22 @@ export class InteractiveMode {
|
|
|
3730
3737
|
// Use current session's scoped models
|
|
3731
3738
|
currentEnabledIds = sessionScopedModels.map((scoped) => `${scoped.model.provider}/${scoped.model.id}`);
|
|
3732
3739
|
}
|
|
3733
|
-
else {
|
|
3734
|
-
|
|
3735
|
-
|
|
3736
|
-
|
|
3737
|
-
|
|
3738
|
-
|
|
3739
|
-
|
|
3740
|
+
else if (configuredScope) {
|
|
3741
|
+
currentEnabledIds = configuredScope.scopedModels.map((scoped) => `${scoped.model.provider}/${scoped.model.id}`);
|
|
3742
|
+
}
|
|
3743
|
+
for (const diagnostic of configuredScope?.diagnostics ?? []) {
|
|
3744
|
+
if (diagnostic.code !== "no-match")
|
|
3745
|
+
continue;
|
|
3746
|
+
currentEnabledIds ??= [];
|
|
3747
|
+
if (!currentEnabledIds.includes(diagnostic.pattern))
|
|
3748
|
+
currentEnabledIds.push(diagnostic.pattern);
|
|
3740
3749
|
}
|
|
3741
3750
|
// Helper to update session's scoped models (session-only, no persist)
|
|
3742
3751
|
const updateSessionModels = async (enabledIds) => {
|
|
3743
3752
|
currentEnabledIds = enabledIds === null ? null : [...enabledIds];
|
|
3744
|
-
|
|
3753
|
+
const hasEnabledAvailableModel = enabledIds?.some((id) => allModelIds.has(id)) ?? false;
|
|
3754
|
+
const allAvailableModelsEnabled = enabledIds !== null && [...allModelIds].every((id) => enabledIds.includes(id));
|
|
3755
|
+
if (enabledIds && hasEnabledAvailableModel && !allAvailableModelsEnabled) {
|
|
3745
3756
|
const newScopedModels = await resolveModelScope(enabledIds, this.session.modelRuntime);
|
|
3746
3757
|
this.session.setScopedModels(newScopedModels.map((sm) => ({
|
|
3747
3758
|
model: sm.model,
|
|
@@ -3765,9 +3776,10 @@ export class InteractiveMode {
|
|
|
3765
3776
|
},
|
|
3766
3777
|
onPersist: (enabledIds) => {
|
|
3767
3778
|
// Persist to settings
|
|
3768
|
-
const
|
|
3769
|
-
|
|
3770
|
-
|
|
3779
|
+
const allEnabled = enabledIds !== null &&
|
|
3780
|
+
enabledIds.length === allModels.length &&
|
|
3781
|
+
enabledIds.every((id) => allModelIds.has(id));
|
|
3782
|
+
const newPatterns = enabledIds === null || allEnabled ? undefined : enabledIds;
|
|
3771
3783
|
this.settingsManager.setEnabledModels(newPatterns ? [...newPatterns] : undefined);
|
|
3772
3784
|
this.showStatus("Model selection saved to settings");
|
|
3773
3785
|
},
|