@astralyn/pi 0.82.2 → 0.82.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/CHANGELOG.md +17 -0
- package/README.md +70 -634
- 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/bundled/README.md +38 -0
- package/docs/bundled/extensions/README.md +18 -0
- package/docs/{distribution → bundled}/extensions/question.md +0 -11
- package/docs/{distribution → bundled}/extensions/rewind.md +0 -10
- package/docs/{distribution → bundled}/extensions/router.md +1 -14
- package/docs/{distribution → bundled}/extensions/statusline.md +1 -2
- package/docs/{distribution → bundled}/extensions/subagent.md +0 -7
- package/docs/bundled/extensions/todo.md +28 -0
- package/docs/{distribution → bundled}/themes.md +4 -11
- package/docs/{distribution → bundled}/tool-presentation.md +4 -10
- package/docs/compaction.md +12 -12
- package/docs/custom-provider.md +8 -8
- package/docs/docs.json +57 -9
- package/docs/extensions.md +10 -11
- package/docs/index.md +12 -7
- package/docs/json.md +4 -4
- package/docs/providers.md +1 -1
- package/docs/rpc.md +3 -9
- package/docs/session-format.md +5 -5
- package/docs/skills.md +1 -1
- package/docs/themes.md +4 -8
- package/docs/tui.md +1 -1
- package/examples/extensions/README.md +0 -1
- package/examples/extensions/custom-provider-anthropic/index.ts +4 -4
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +2 -2
- package/examples/extensions/dynamic-resources/dynamic.json +1 -1
- package/examples/extensions/gondolin/index.ts +4 -6
- package/examples/extensions/message-renderer.ts +2 -2
- package/examples/extensions/overlay-qa-tests.ts +2 -2
- package/examples/extensions/project-trust.ts +2 -2
- package/examples/sdk/README.md +38 -44
- package/npm-shrinkwrap.json +2 -2
- package/package.json +6 -2
- package/docs/development.md +0 -68
- package/docs/distribution/README.md +0 -34
- package/docs/distribution/architecture.md +0 -102
- package/docs/distribution/extensions/README.md +0 -17
- package/docs/distribution/maintenance.md +0 -121
- package/docs/distribution/release.md +0 -85
- package/examples/extensions/subagent/README.md +0 -175
- package/examples/extensions/subagent/agents/planner.md +0 -37
- package/examples/extensions/subagent/agents/reviewer.md +0 -35
- package/examples/extensions/subagent/agents/scout.md +0 -50
- package/examples/extensions/subagent/agents/worker.md +0 -24
- package/examples/extensions/subagent/agents.ts +0 -126
- package/examples/extensions/subagent/index.ts +0 -1009
- package/examples/extensions/subagent/prompts/implement-and-review.md +0 -10
- package/examples/extensions/subagent/prompts/implement.md +0 -10
- package/examples/extensions/subagent/prompts/scout-and-plan.md +0 -9
- /package/docs/{distribution → bundled}/extensions/deepwiki.md +0 -0
|
@@ -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 { formatMissingSessionCwdPrompt, MissingSessionCwdError } from "../../core/session-cwd.js";
|
|
23
23
|
import { SessionManager, sessionEntryToContextMessages } from "../../core/session-manager.js";
|
|
@@ -2636,7 +2636,7 @@ export class InteractiveMode {
|
|
|
2636
2636
|
case "custom": {
|
|
2637
2637
|
if (message.display) {
|
|
2638
2638
|
const renderer = this.session.extensionRunner.getMessageRenderer(message.customType);
|
|
2639
|
-
const component = new CustomMessageComponent(message, renderer, this.getMarkdownThemeWithSettings());
|
|
2639
|
+
const component = new CustomMessageComponent(message, renderer, this.getMarkdownThemeWithSettings(), this.outputPad);
|
|
2640
2640
|
component.setExpanded(this.toolOutputExpanded);
|
|
2641
2641
|
this.chatContainer.addChild(component);
|
|
2642
2642
|
}
|
|
@@ -3531,7 +3531,9 @@ export class InteractiveMode {
|
|
|
3531
3531
|
this.outputPad = padding;
|
|
3532
3532
|
if (this.streamingComponent || this.session.isStreaming) {
|
|
3533
3533
|
for (const child of this.chatContainer.children) {
|
|
3534
|
-
if (child instanceof AssistantMessageComponent ||
|
|
3534
|
+
if (child instanceof AssistantMessageComponent ||
|
|
3535
|
+
child instanceof CustomMessageComponent ||
|
|
3536
|
+
child instanceof UserMessageComponent) {
|
|
3535
3537
|
child.setOutputPad(padding);
|
|
3536
3538
|
}
|
|
3537
3539
|
}
|
|
@@ -3716,12 +3718,17 @@ export class InteractiveMode {
|
|
|
3716
3718
|
// Get all available models
|
|
3717
3719
|
await this.session.modelRuntime.refresh();
|
|
3718
3720
|
const allModels = [...(await this.session.modelRuntime.getAvailable())];
|
|
3719
|
-
|
|
3721
|
+
const allModelIds = new Set(allModels.map((model) => `${model.provider}/${model.id}`));
|
|
3722
|
+
const configuredPatterns = this.settingsManager.getEnabledModels();
|
|
3723
|
+
const sessionScopedModels = this.session.scopedModels;
|
|
3724
|
+
if (allModels.length === 0 && !configuredPatterns?.length && sessionScopedModels.length === 0) {
|
|
3720
3725
|
this.showStatus("No models available");
|
|
3721
3726
|
return;
|
|
3722
3727
|
}
|
|
3728
|
+
const configuredScope = configuredPatterns?.length
|
|
3729
|
+
? await resolveModelScopeWithDiagnostics(configuredPatterns, this.session.modelRuntime)
|
|
3730
|
+
: undefined;
|
|
3723
3731
|
// Check if session has scoped models (from previous session-only changes or CLI --models)
|
|
3724
|
-
const sessionScopedModels = this.session.scopedModels;
|
|
3725
3732
|
const hasSessionScope = sessionScopedModels.length > 0;
|
|
3726
3733
|
// Build enabled model IDs from session state or settings
|
|
3727
3734
|
let currentEnabledIds = null;
|
|
@@ -3729,18 +3736,22 @@ export class InteractiveMode {
|
|
|
3729
3736
|
// Use current session's scoped models
|
|
3730
3737
|
currentEnabledIds = sessionScopedModels.map((scoped) => `${scoped.model.provider}/${scoped.model.id}`);
|
|
3731
3738
|
}
|
|
3732
|
-
else {
|
|
3733
|
-
|
|
3734
|
-
|
|
3735
|
-
|
|
3736
|
-
|
|
3737
|
-
|
|
3738
|
-
|
|
3739
|
+
else if (configuredScope) {
|
|
3740
|
+
currentEnabledIds = configuredScope.scopedModels.map((scoped) => `${scoped.model.provider}/${scoped.model.id}`);
|
|
3741
|
+
}
|
|
3742
|
+
for (const diagnostic of configuredScope?.diagnostics ?? []) {
|
|
3743
|
+
if (diagnostic.code !== "no-match")
|
|
3744
|
+
continue;
|
|
3745
|
+
currentEnabledIds ??= [];
|
|
3746
|
+
if (!currentEnabledIds.includes(diagnostic.pattern))
|
|
3747
|
+
currentEnabledIds.push(diagnostic.pattern);
|
|
3739
3748
|
}
|
|
3740
3749
|
// Helper to update session's scoped models (session-only, no persist)
|
|
3741
3750
|
const updateSessionModels = async (enabledIds) => {
|
|
3742
3751
|
currentEnabledIds = enabledIds === null ? null : [...enabledIds];
|
|
3743
|
-
|
|
3752
|
+
const hasEnabledAvailableModel = enabledIds?.some((id) => allModelIds.has(id)) ?? false;
|
|
3753
|
+
const allAvailableModelsEnabled = enabledIds !== null && [...allModelIds].every((id) => enabledIds.includes(id));
|
|
3754
|
+
if (enabledIds && hasEnabledAvailableModel && !allAvailableModelsEnabled) {
|
|
3744
3755
|
const newScopedModels = await resolveModelScope(enabledIds, this.session.modelRuntime);
|
|
3745
3756
|
this.session.setScopedModels(newScopedModels.map((sm) => ({
|
|
3746
3757
|
model: sm.model,
|
|
@@ -3764,9 +3775,10 @@ export class InteractiveMode {
|
|
|
3764
3775
|
},
|
|
3765
3776
|
onPersist: (enabledIds) => {
|
|
3766
3777
|
// Persist to settings
|
|
3767
|
-
const
|
|
3768
|
-
|
|
3769
|
-
|
|
3778
|
+
const allEnabled = enabledIds !== null &&
|
|
3779
|
+
enabledIds.length === allModels.length &&
|
|
3780
|
+
enabledIds.every((id) => allModelIds.has(id));
|
|
3781
|
+
const newPatterns = enabledIds === null || allEnabled ? undefined : enabledIds;
|
|
3770
3782
|
this.settingsManager.setEnabledModels(newPatterns ? [...newPatterns] : undefined);
|
|
3771
3783
|
this.showStatus("Model selection saved to settings");
|
|
3772
3784
|
},
|