@caupulican/pi-adaptative 0.80.95 → 0.80.97
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 +21 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +39 -0
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/toolkit/reflex-interpreter.d.ts +28 -0
- package/dist/core/toolkit/reflex-interpreter.d.ts.map +1 -0
- package/dist/core/toolkit/reflex-interpreter.js +62 -0
- package/dist/core/toolkit/reflex-interpreter.js.map +1 -0
- package/dist/core/tools/run-toolkit-script.d.ts +8 -0
- package/dist/core/tools/run-toolkit-script.d.ts.map +1 -1
- package/dist/core/tools/run-toolkit-script.js +21 -3
- package/dist/core/tools/run-toolkit-script.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +7 -1
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +147 -0
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +12 -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
|
@@ -85,6 +85,7 @@ import { CURRENT_SESSION_VERSION, getLatestCompactionEntry } from "./session-man
|
|
|
85
85
|
import { matchesResourceProfilePattern, } from "./settings-manager.js";
|
|
86
86
|
import { createSyntheticSourceInfo } from "./source-info.js";
|
|
87
87
|
import { buildSystemPrompt } from "./system-prompt.js";
|
|
88
|
+
import { buildReflexUserPrompt, parseReflexPlan, REFLEX_INTERPRETER_SYSTEM_PROMPT, } from "./toolkit/reflex-interpreter.js";
|
|
88
89
|
import { executeToolkitScript } from "./toolkit/script-runner.js";
|
|
89
90
|
import { createLocalBashOperations } from "./tools/bash.js";
|
|
90
91
|
import { createDelegateToolDefinition } from "./tools/delegate.js";
|
|
@@ -2215,6 +2216,7 @@ export class AgentSession {
|
|
|
2215
2216
|
}
|
|
2216
2217
|
const previousModel = this.agent.state.model;
|
|
2217
2218
|
const previousThinkingLevel = this.agent.state.thinkingLevel;
|
|
2219
|
+
const previousTurnTools = this.agent.state.tools;
|
|
2218
2220
|
const previousActiveModelRouterIntent = this._activeModelRouterIntent;
|
|
2219
2221
|
const previousActiveModelRouterRoute = this._activeModelRouterRoute;
|
|
2220
2222
|
const previousModelRouterSessionBuffer = this._modelRouterSessionBuffer;
|
|
@@ -2247,6 +2249,17 @@ export class AgentSession {
|
|
|
2247
2249
|
if (!modelsAreEqual(this.model, routedModel)) {
|
|
2248
2250
|
this.agent.state.model = routedModel;
|
|
2249
2251
|
this.agent.state.thinkingLevel = clampThinkingLevel(routedModel, previousThinkingLevel);
|
|
2252
|
+
// G4: capability tool-filtering follows the ROUTED model for the turn. Without this a
|
|
2253
|
+
// cheap/local routed model inherits the session model's full tool surface — schemas it
|
|
2254
|
+
// pays for on every request and may not be able to drive at all.
|
|
2255
|
+
const routedProfile = deriveModelCapabilityProfile({
|
|
2256
|
+
contextWindow: routedModel.contextWindow,
|
|
2257
|
+
mode: this.settingsManager.getModelCapabilitySettings().mode,
|
|
2258
|
+
});
|
|
2259
|
+
if (routedProfile.class !== "full") {
|
|
2260
|
+
const allowed = new Set(filterToolNamesForCapability(previousTurnTools.map((tool) => tool.name), routedProfile));
|
|
2261
|
+
this.agent.state.tools = previousTurnTools.filter((tool) => allowed.has(tool.name));
|
|
2262
|
+
}
|
|
2250
2263
|
}
|
|
2251
2264
|
try {
|
|
2252
2265
|
await this._runAgentPrompt(messages);
|
|
@@ -2284,6 +2297,7 @@ export class AgentSession {
|
|
|
2284
2297
|
if (modelsAreEqual(this.agent.state.model, routedModel)) {
|
|
2285
2298
|
this.agent.state.model = previousModel;
|
|
2286
2299
|
this.agent.state.thinkingLevel = previousThinkingLevel;
|
|
2300
|
+
this.agent.state.tools = previousTurnTools;
|
|
2287
2301
|
// The registry may have changed mid-turn (command-time registerProvider): re-resolve
|
|
2288
2302
|
// the restored model so a provider override is not dropped with the routed model.
|
|
2289
2303
|
this._refreshCurrentModelFromRegistry();
|
|
@@ -4083,6 +4097,31 @@ export class AgentSession {
|
|
|
4083
4097
|
const runToolkitScriptToolDefinition = createRunToolkitScriptToolDefinition({
|
|
4084
4098
|
getScripts: () => this.settingsManager.getToolkitScripts(),
|
|
4085
4099
|
execute: (script, scriptArgs) => executeToolkitScript({ script, scriptArgs, cwd: this._cwd }),
|
|
4100
|
+
// Reflex brain (fitness-gated local model): resolves ambiguous requests into a
|
|
4101
|
+
// registry pick. Best-effort — absent/unfit brain keeps the shortlist behavior.
|
|
4102
|
+
interpret: async (request, scripts) => {
|
|
4103
|
+
const model = this._resolveCurationModelIfFit();
|
|
4104
|
+
if (!model)
|
|
4105
|
+
return undefined;
|
|
4106
|
+
const completion = await this.runIsolatedCompletion({
|
|
4107
|
+
systemPrompt: REFLEX_INTERPRETER_SYSTEM_PROMPT,
|
|
4108
|
+
messages: [
|
|
4109
|
+
{
|
|
4110
|
+
role: "user",
|
|
4111
|
+
content: [{ type: "text", text: buildReflexUserPrompt(request, scripts) }],
|
|
4112
|
+
timestamp: Date.now(),
|
|
4113
|
+
},
|
|
4114
|
+
],
|
|
4115
|
+
model,
|
|
4116
|
+
thinkingLevel: "off",
|
|
4117
|
+
maxTokens: 256,
|
|
4118
|
+
cacheRetention: "short",
|
|
4119
|
+
});
|
|
4120
|
+
if (completion.usage.cost.total > 0 || completion.usage.totalTokens > 0) {
|
|
4121
|
+
this.addSpawnedUsage(completion.usage, { label: "toolkit-brain" });
|
|
4122
|
+
}
|
|
4123
|
+
return parseReflexPlan(completion.text);
|
|
4124
|
+
},
|
|
4086
4125
|
});
|
|
4087
4126
|
this._baseToolDefinitions.set(runToolkitScriptToolDefinition.name, runToolkitScriptToolDefinition);
|
|
4088
4127
|
}
|