@caupulican/pi-adaptative 0.80.88 → 0.80.90
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 +39 -0
- package/dist/core/agent-session.d.ts +35 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +279 -0
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/context/brain-curator.d.ts +88 -0
- package/dist/core/context/brain-curator.d.ts.map +1 -0
- package/dist/core/context/brain-curator.js +192 -0
- package/dist/core/context/brain-curator.js.map +1 -0
- package/dist/core/context/context-composition.d.ts +122 -0
- package/dist/core/context/context-composition.d.ts.map +1 -0
- package/dist/core/context/context-composition.js +163 -0
- package/dist/core/context/context-composition.js.map +1 -0
- package/dist/core/context/context-prompt-enforcement.d.ts +13 -0
- package/dist/core/context/context-prompt-enforcement.d.ts.map +1 -1
- package/dist/core/context/context-prompt-enforcement.js +17 -2
- package/dist/core/context/context-prompt-enforcement.js.map +1 -1
- package/dist/core/context-gc.d.ts +13 -0
- package/dist/core/context-gc.d.ts.map +1 -1
- package/dist/core/context-gc.js +6 -0
- package/dist/core/context-gc.js.map +1 -1
- package/dist/core/research/model-fitness.d.ts +3 -0
- package/dist/core/research/model-fitness.d.ts.map +1 -1
- package/dist/core/research/model-fitness.js +54 -3
- package/dist/core/research/model-fitness.js.map +1 -1
- package/dist/core/settings-manager.d.ts +13 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +19 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +6 -1
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/modes/interactive/components/fitness-role-selector.d.ts +13 -0
- package/dist/modes/interactive/components/fitness-role-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/fitness-role-selector.js +65 -0
- package/dist/modes/interactive/components/fitness-role-selector.js.map +1 -0
- package/dist/modes/interactive/components/settings-selector.d.ts +4 -1
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +84 -0
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +5 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +91 -0
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- 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/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/npm-shrinkwrap.json +12 -12
- package/package.json +4 -4
|
@@ -59,6 +59,7 @@ import { EarendilAnnouncementComponent } from "./components/earendil-announcemen
|
|
|
59
59
|
import { ExtensionEditorComponent } from "./components/extension-editor.js";
|
|
60
60
|
import { ExtensionInputComponent } from "./components/extension-input.js";
|
|
61
61
|
import { ExtensionSelectorComponent } from "./components/extension-selector.js";
|
|
62
|
+
import { FitnessRoleSelectorComponent } from "./components/fitness-role-selector.js";
|
|
62
63
|
import { FooterComponent } from "./components/footer.js";
|
|
63
64
|
import { formatKeyText, keyDisplayText, keyHint, keyText, rawKeyHint } from "./components/keybinding-hints.js";
|
|
64
65
|
import { LoginDialogComponent } from "./components/login-dialog.js";
|
|
@@ -2464,6 +2465,24 @@ export class InteractiveMode {
|
|
|
2464
2465
|
this.editor.setText("");
|
|
2465
2466
|
return;
|
|
2466
2467
|
}
|
|
2468
|
+
if (text === "/fitness" || text.startsWith("/fitness ")) {
|
|
2469
|
+
const fitnessArgs = text.slice("/fitness".length).trim();
|
|
2470
|
+
this.editor.setText("");
|
|
2471
|
+
if (fitnessArgs.length === 0) {
|
|
2472
|
+
// No args: open the model picker, probe the selection, then offer role assignment.
|
|
2473
|
+
this.showFitnessModelSelector();
|
|
2474
|
+
}
|
|
2475
|
+
else {
|
|
2476
|
+
// Explicit ref: same handler as /autonomy fitness.
|
|
2477
|
+
this.handleAutonomyCommand(`/autonomy fitness ${fitnessArgs}`);
|
|
2478
|
+
}
|
|
2479
|
+
return;
|
|
2480
|
+
}
|
|
2481
|
+
if (text === "/context") {
|
|
2482
|
+
this.showStatus(this.session.formatContextCompositionDashboard());
|
|
2483
|
+
this.editor.setText("");
|
|
2484
|
+
return;
|
|
2485
|
+
}
|
|
2467
2486
|
if (text === "/scoped-models") {
|
|
2468
2487
|
this.editor.setText("");
|
|
2469
2488
|
await this.showModelsSelector();
|
|
@@ -5110,6 +5129,72 @@ export class InteractiveMode {
|
|
|
5110
5129
|
this.settingsManager.setAutoLearnSettings(preset, scope);
|
|
5111
5130
|
this.updateAutoLearnFooter();
|
|
5112
5131
|
}
|
|
5132
|
+
/** /fitness with no args: pick a model from the configured registry, probe it, assign a role. */
|
|
5133
|
+
showFitnessModelSelector() {
|
|
5134
|
+
this.showSelector((done) => {
|
|
5135
|
+
const selector = new ModelSelectorComponent(this.ui, this.session.model, this.settingsManager, this.session.modelRegistry, this.session.scopedModels, async (model) => {
|
|
5136
|
+
done();
|
|
5137
|
+
await this.runFitnessAndAssign(`${model.provider}/${model.id}`);
|
|
5138
|
+
}, () => {
|
|
5139
|
+
done();
|
|
5140
|
+
this.ui.requestRender();
|
|
5141
|
+
});
|
|
5142
|
+
return { component: selector, focus: selector };
|
|
5143
|
+
});
|
|
5144
|
+
}
|
|
5145
|
+
/** Probe a model's fitness, show the report, then offer one-step role assignment. */
|
|
5146
|
+
async runFitnessAndAssign(modelRef) {
|
|
5147
|
+
this.showStatus(`Model fitness probe running on ${modelRef}… (6 surfaces; local models may take a few minutes)`);
|
|
5148
|
+
try {
|
|
5149
|
+
const outcome = await this.session.runModelFitness({ model: modelRef });
|
|
5150
|
+
if (!outcome.started) {
|
|
5151
|
+
this.showStatus(`Model fitness skipped: ${outcome.skipReason}`);
|
|
5152
|
+
return;
|
|
5153
|
+
}
|
|
5154
|
+
this.chatContainer.addChild(new Spacer(1));
|
|
5155
|
+
this.chatContainer.addChild(new Text(formatModelFitnessReport(outcome.model, outcome.report), 1, 0));
|
|
5156
|
+
this.ui.requestRender();
|
|
5157
|
+
this.showSelector((done) => {
|
|
5158
|
+
const selector = new FitnessRoleSelectorComponent(outcome.model, (role) => {
|
|
5159
|
+
done();
|
|
5160
|
+
this.assignFitnessRole(outcome.model, role);
|
|
5161
|
+
}, () => {
|
|
5162
|
+
done();
|
|
5163
|
+
this.ui.requestRender();
|
|
5164
|
+
});
|
|
5165
|
+
return { component: selector, focus: selector };
|
|
5166
|
+
});
|
|
5167
|
+
}
|
|
5168
|
+
catch (error) {
|
|
5169
|
+
this.showError(error instanceof Error ? error.message : String(error));
|
|
5170
|
+
}
|
|
5171
|
+
}
|
|
5172
|
+
/** Persist a role assignment from the post-probe selector into the matching settings. */
|
|
5173
|
+
assignFitnessRole(modelRef, role) {
|
|
5174
|
+
if (role === "none") {
|
|
5175
|
+
this.showStatus(`Fitness result for ${modelRef} saved. Assign a role later from /settings.`);
|
|
5176
|
+
return;
|
|
5177
|
+
}
|
|
5178
|
+
if (role === "curator") {
|
|
5179
|
+
const current = this.settingsManager.getContextCurationSettings();
|
|
5180
|
+
this.settingsManager.setContextCurationSettings({ ...current, enabled: true, model: modelRef });
|
|
5181
|
+
this.showStatus(`Context curation enabled with ${modelRef} as the curator.`);
|
|
5182
|
+
return;
|
|
5183
|
+
}
|
|
5184
|
+
const router = this.settingsManager.getModelRouterSettings();
|
|
5185
|
+
const field = role === "router-cheap"
|
|
5186
|
+
? "cheapModel"
|
|
5187
|
+
: role === "router-medium"
|
|
5188
|
+
? "mediumModel"
|
|
5189
|
+
: role === "router-expensive"
|
|
5190
|
+
? "expensiveModel"
|
|
5191
|
+
: role === "judge"
|
|
5192
|
+
? "judgeModel"
|
|
5193
|
+
: "learningModel";
|
|
5194
|
+
this.settingsManager.setModelRouterSettings({ ...router, [field]: modelRef });
|
|
5195
|
+
const hint = router.enabled ? "" : " Model router is currently disabled — enable it in /settings → Model Router.";
|
|
5196
|
+
this.showStatus(`${modelRef} set as ${role.replace("router-", "router ")} model.${hint}`);
|
|
5197
|
+
}
|
|
5113
5198
|
handleAutonomyCommand(text) {
|
|
5114
5199
|
const action = text.slice("/autonomy".length).trim() || "status";
|
|
5115
5200
|
if (AUTONOMY_MODES.includes(action)) {
|
|
@@ -5264,6 +5349,8 @@ export class InteractiveMode {
|
|
|
5264
5349
|
researchLaneScope: projectSettings.researchLane ? "project" : "global",
|
|
5265
5350
|
workerDelegation: this.settingsManager.getWorkerDelegationSettings(),
|
|
5266
5351
|
workerDelegationScope: projectSettings.workerDelegation ? "project" : "global",
|
|
5352
|
+
contextCuration: this.settingsManager.getContextCurationSettings(),
|
|
5353
|
+
contextCurationScope: projectSettings.contextPolicy?.curation ? "project" : "global",
|
|
5267
5354
|
modelRouter: this.settingsManager.getModelRouterSettings(),
|
|
5268
5355
|
modelRouterScope: projectSettings.modelRouter ? "project" : "global",
|
|
5269
5356
|
autoLearn: this.settingsManager.getAutoLearnSettings(),
|
|
@@ -5421,6 +5508,10 @@ export class InteractiveMode {
|
|
|
5421
5508
|
this.settingsManager.setWorkerDelegationSettings(settings, scope);
|
|
5422
5509
|
this.showStatus(`Worker delegation settings saved to ${scope}. The delegate tool uses them.`);
|
|
5423
5510
|
},
|
|
5511
|
+
onContextCurationChange: (settings, scope) => {
|
|
5512
|
+
this.settingsManager.setContextCurationSettings(settings, scope);
|
|
5513
|
+
this.showStatus(`Context curation settings saved to ${scope}. Run /fitness <model> first if the model is unprobed.`);
|
|
5514
|
+
},
|
|
5424
5515
|
onModelRouterChange: (settings, scope) => {
|
|
5425
5516
|
this.settingsManager.setModelRouterSettings(settings, scope);
|
|
5426
5517
|
for (const value of [settings.cheapModel, settings.expensiveModel, settings.learningModel]) {
|