@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.
Files changed (28) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/core/agent-session.d.ts.map +1 -1
  3. package/dist/core/agent-session.js +39 -0
  4. package/dist/core/agent-session.js.map +1 -1
  5. package/dist/core/toolkit/reflex-interpreter.d.ts +28 -0
  6. package/dist/core/toolkit/reflex-interpreter.d.ts.map +1 -0
  7. package/dist/core/toolkit/reflex-interpreter.js +62 -0
  8. package/dist/core/toolkit/reflex-interpreter.js.map +1 -0
  9. package/dist/core/tools/run-toolkit-script.d.ts +8 -0
  10. package/dist/core/tools/run-toolkit-script.d.ts.map +1 -1
  11. package/dist/core/tools/run-toolkit-script.js +21 -3
  12. package/dist/core/tools/run-toolkit-script.js.map +1 -1
  13. package/dist/modes/interactive/components/settings-selector.d.ts +7 -1
  14. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  15. package/dist/modes/interactive/components/settings-selector.js +147 -0
  16. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  17. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  18. package/dist/modes/interactive/interactive-mode.js +12 -0
  19. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  20. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  21. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  22. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  23. package/examples/extensions/sandbox/package-lock.json +2 -2
  24. package/examples/extensions/sandbox/package.json +1 -1
  25. package/examples/extensions/with-deps/package-lock.json +2 -2
  26. package/examples/extensions/with-deps/package.json +1 -1
  27. package/npm-shrinkwrap.json +12 -12
  28. 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
  }