@caupulican/pi-adaptative 0.80.99 → 0.80.102

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 (129) hide show
  1. package/CHANGELOG.md +203 -0
  2. package/dist/core/agent-session.d.ts +72 -0
  3. package/dist/core/agent-session.d.ts.map +1 -1
  4. package/dist/core/agent-session.js +437 -46
  5. package/dist/core/agent-session.js.map +1 -1
  6. package/dist/core/autonomy/envelope-enforcement.d.ts +5 -0
  7. package/dist/core/autonomy/envelope-enforcement.d.ts.map +1 -1
  8. package/dist/core/autonomy/envelope-enforcement.js +28 -4
  9. package/dist/core/autonomy/envelope-enforcement.js.map +1 -1
  10. package/dist/core/autonomy/path-scope.d.ts.map +1 -1
  11. package/dist/core/autonomy/path-scope.js +33 -2
  12. package/dist/core/autonomy/path-scope.js.map +1 -1
  13. package/dist/core/bash-executor.d.ts.map +1 -1
  14. package/dist/core/bash-executor.js +15 -7
  15. package/dist/core/bash-executor.js.map +1 -1
  16. package/dist/core/context/brain-curator.d.ts +10 -0
  17. package/dist/core/context/brain-curator.d.ts.map +1 -1
  18. package/dist/core/context/brain-curator.js +19 -2
  19. package/dist/core/context/brain-curator.js.map +1 -1
  20. package/dist/core/context-gc.d.ts +8 -3
  21. package/dist/core/context-gc.d.ts.map +1 -1
  22. package/dist/core/context-gc.js +5 -0
  23. package/dist/core/context-gc.js.map +1 -1
  24. package/dist/core/delegation/worker-actions.d.ts +0 -10
  25. package/dist/core/delegation/worker-actions.d.ts.map +1 -1
  26. package/dist/core/delegation/worker-actions.js +5 -7
  27. package/dist/core/delegation/worker-actions.js.map +1 -1
  28. package/dist/core/delegation/worker-result.d.ts +6 -0
  29. package/dist/core/delegation/worker-result.d.ts.map +1 -1
  30. package/dist/core/delegation/worker-result.js +10 -4
  31. package/dist/core/delegation/worker-result.js.map +1 -1
  32. package/dist/core/delegation/worker-runner.d.ts +3 -0
  33. package/dist/core/delegation/worker-runner.d.ts.map +1 -1
  34. package/dist/core/delegation/worker-runner.js +6 -1
  35. package/dist/core/delegation/worker-runner.js.map +1 -1
  36. package/dist/core/doctor.d.ts +66 -0
  37. package/dist/core/doctor.d.ts.map +1 -0
  38. package/dist/core/doctor.js +144 -0
  39. package/dist/core/doctor.js.map +1 -0
  40. package/dist/core/learning/learning-audit.d.ts +13 -1
  41. package/dist/core/learning/learning-audit.d.ts.map +1 -1
  42. package/dist/core/learning/learning-audit.js +22 -1
  43. package/dist/core/learning/learning-audit.js.map +1 -1
  44. package/dist/core/learning/learning-gate.d.ts +3 -0
  45. package/dist/core/learning/learning-gate.d.ts.map +1 -1
  46. package/dist/core/learning/learning-gate.js +13 -4
  47. package/dist/core/learning/learning-gate.js.map +1 -1
  48. package/dist/core/models/default-model-suggestions.d.ts +34 -0
  49. package/dist/core/models/default-model-suggestions.d.ts.map +1 -0
  50. package/dist/core/models/default-model-suggestions.js +58 -0
  51. package/dist/core/models/default-model-suggestions.js.map +1 -0
  52. package/dist/core/models/local-registration.d.ts +2 -0
  53. package/dist/core/models/local-registration.d.ts.map +1 -1
  54. package/dist/core/models/local-registration.js +2 -1
  55. package/dist/core/models/local-registration.js.map +1 -1
  56. package/dist/core/models/local-runtime.d.ts +76 -2
  57. package/dist/core/models/local-runtime.d.ts.map +1 -1
  58. package/dist/core/models/local-runtime.js +233 -21
  59. package/dist/core/models/local-runtime.js.map +1 -1
  60. package/dist/core/profile-resource-selection.d.ts +15 -3
  61. package/dist/core/profile-resource-selection.d.ts.map +1 -1
  62. package/dist/core/profile-resource-selection.js +19 -9
  63. package/dist/core/profile-resource-selection.js.map +1 -1
  64. package/dist/core/resource-loader.d.ts +20 -0
  65. package/dist/core/resource-loader.d.ts.map +1 -1
  66. package/dist/core/resource-loader.js +42 -16
  67. package/dist/core/resource-loader.js.map +1 -1
  68. package/dist/core/settings-manager.d.ts +30 -0
  69. package/dist/core/settings-manager.d.ts.map +1 -1
  70. package/dist/core/settings-manager.js +65 -3
  71. package/dist/core/settings-manager.js.map +1 -1
  72. package/dist/core/skills.d.ts +14 -0
  73. package/dist/core/skills.d.ts.map +1 -1
  74. package/dist/core/skills.js +8 -0
  75. package/dist/core/skills.js.map +1 -1
  76. package/dist/core/slash-commands.d.ts.map +1 -1
  77. package/dist/core/slash-commands.js +1 -1
  78. package/dist/core/slash-commands.js.map +1 -1
  79. package/dist/core/tools/fff-search-backend.d.ts +34 -1
  80. package/dist/core/tools/fff-search-backend.d.ts.map +1 -1
  81. package/dist/core/tools/fff-search-backend.js +43 -4
  82. package/dist/core/tools/fff-search-backend.js.map +1 -1
  83. package/dist/core/tools/find.d.ts +16 -0
  84. package/dist/core/tools/find.d.ts.map +1 -1
  85. package/dist/core/tools/find.js +17 -3
  86. package/dist/core/tools/find.js.map +1 -1
  87. package/dist/core/tools/grep.d.ts +20 -0
  88. package/dist/core/tools/grep.d.ts.map +1 -1
  89. package/dist/core/tools/grep.js +15 -3
  90. package/dist/core/tools/grep.js.map +1 -1
  91. package/dist/main.d.ts.map +1 -1
  92. package/dist/main.js +17 -0
  93. package/dist/main.js.map +1 -1
  94. package/dist/modes/interactive/components/fitness-role-selector.d.ts +6 -2
  95. package/dist/modes/interactive/components/fitness-role-selector.d.ts.map +1 -1
  96. package/dist/modes/interactive/components/fitness-role-selector.js +55 -45
  97. package/dist/modes/interactive/components/fitness-role-selector.js.map +1 -1
  98. package/dist/modes/interactive/components/model-suggestion-selector.d.ts +13 -0
  99. package/dist/modes/interactive/components/model-suggestion-selector.d.ts.map +1 -0
  100. package/dist/modes/interactive/components/model-suggestion-selector.js +40 -0
  101. package/dist/modes/interactive/components/model-suggestion-selector.js.map +1 -0
  102. package/dist/modes/interactive/components/profile-resource-editor.d.ts +3 -0
  103. package/dist/modes/interactive/components/profile-resource-editor.d.ts.map +1 -1
  104. package/dist/modes/interactive/components/profile-resource-editor.js +16 -2
  105. package/dist/modes/interactive/components/profile-resource-editor.js.map +1 -1
  106. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  107. package/dist/modes/interactive/components/settings-selector.js +98 -0
  108. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  109. package/dist/modes/interactive/interactive-mode.d.ts +8 -1
  110. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  111. package/dist/modes/interactive/interactive-mode.js +57 -10
  112. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  113. package/dist/utils/safe-write-stream.d.ts +8 -0
  114. package/dist/utils/safe-write-stream.d.ts.map +1 -1
  115. package/dist/utils/safe-write-stream.js +32 -0
  116. package/dist/utils/safe-write-stream.js.map +1 -1
  117. package/dist/utils/tools-manager.d.ts +92 -2
  118. package/dist/utils/tools-manager.d.ts.map +1 -1
  119. package/dist/utils/tools-manager.js +172 -32
  120. package/dist/utils/tools-manager.js.map +1 -1
  121. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  122. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  123. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  124. package/examples/extensions/sandbox/package-lock.json +2 -2
  125. package/examples/extensions/sandbox/package.json +1 -1
  126. package/examples/extensions/with-deps/package-lock.json +2 -2
  127. package/examples/extensions/with-deps/package.json +1 -1
  128. package/npm-shrinkwrap.json +12 -36
  129. package/package.json +4 -4
@@ -46,6 +46,7 @@ export const DEFAULT_LEARNING_POLICY_CONFIDENCE_THRESHOLD = 90;
46
46
  export const DEFAULT_LEARNING_POLICY_MIN_OBSERVATIONS = 2;
47
47
  export const DEFAULT_LEARNING_POLICY_ALLOWED_AUTO_APPLY_LAYERS = ["memory"];
48
48
  export const DEFAULT_LEARNING_POLICY_REFLECTION_SOURCE_CONFIDENCE = 50;
49
+ export const DEFAULT_LEARNING_POLICY_AUTO_APPLY_SUPERSESSIONS = false;
49
50
  export const DEFAULT_MODEL_CAPABILITY_MODE = "auto";
50
51
  /** Deep merge settings: project/overrides take precedence, nested objects merge recursively */
51
52
  function deepMergeSettings(base, overrides) {
@@ -624,8 +625,16 @@ export class SettingsManager {
624
625
  hasExplicitActiveResourceProfileSelection() {
625
626
  return hasExplicitActiveResourceProfileSelection(this.settings);
626
627
  }
627
- getResourceProfileFilter(kind) {
628
- const legacyFilter = mergeResourceProfileFilters(collectLegacyDisabledFilterFromSettings(this.globalSettings, kind), collectLegacyDisabledFilterFromSettings(this.projectSettings, kind), collectLegacyDisabledFilterFromSettings(this.directoryProfileSettings, kind));
628
+ /**
629
+ * Aggregate ONLY the active profiles' contribution to a resource kind's filter — the user's own
630
+ * legacy `disabledResources` list is not merged in. Includes the strict-UAC deny-all (an
631
+ * authority-bearing kind no active profile mentions is denied outright); that denial is
632
+ * profile-driven too. Shared by `getResourceProfileFilter` (which merges the legacy disable list
633
+ * on top) and `isResourceDeniedByActiveProfile` (which must attribute a denial to the profile
634
+ * ALONE — a user-only disable must never be reported as "withheld by the active resource
635
+ * profile").
636
+ */
637
+ computeProfileOnlyResourceFilter(kind) {
629
638
  const profileFilter = {};
630
639
  const seenProfiles = new Set();
631
640
  const registry = this.getProfileRegistry();
@@ -648,7 +657,14 @@ export class SettingsManager {
648
657
  if (activeProfileNames.length > 0 && kind !== "themes" && !kindMentionedByProfile) {
649
658
  return { allow: [], block: ["*"] };
650
659
  }
651
- const filter = mergeResourceProfileFilters(legacyFilter, profileFilter);
660
+ return {
661
+ allow: [...new Set(profileFilter.allow ?? [])],
662
+ block: [...new Set(profileFilter.block ?? [])],
663
+ };
664
+ }
665
+ getResourceProfileFilter(kind) {
666
+ const legacyFilter = mergeResourceProfileFilters(collectLegacyDisabledFilterFromSettings(this.globalSettings, kind), collectLegacyDisabledFilterFromSettings(this.projectSettings, kind), collectLegacyDisabledFilterFromSettings(this.directoryProfileSettings, kind));
667
+ const filter = mergeResourceProfileFilters(legacyFilter, this.computeProfileOnlyResourceFilter(kind));
652
668
  return {
653
669
  allow: [...new Set(filter.allow ?? [])],
654
670
  block: [...new Set(filter.block ?? [])],
@@ -689,6 +705,22 @@ export class SettingsManager {
689
705
  }
690
706
  return true;
691
707
  }
708
+ /**
709
+ * Whether the ACTIVE PROFILE alone denies this resource — the user's own legacy
710
+ * `disabledResources` list is ignored. A "withheld by the active resource profile" report must
711
+ * use this, not `isResourceAllowedByProfile`: that check merges the user's own disables in, so a
712
+ * plain user-disabled resource (no profile even mentioning it) would otherwise be misattributed
713
+ * to the profile.
714
+ */
715
+ isResourceDeniedByActiveProfile(kind, resourcePath, baseDir = "") {
716
+ if (this.getActiveResourceProfileNames().length === 0)
717
+ return false;
718
+ const filter = this.computeProfileOnlyResourceFilter(kind);
719
+ if (filter.allow.length > 0 && !matchesResourceProfilePattern(resourcePath, filter.allow, baseDir)) {
720
+ return true;
721
+ }
722
+ return matchesResourceProfilePattern(resourcePath, filter.block, baseDir);
723
+ }
692
724
  /**
693
725
  * Situational soul(s) of the currently active profile(s) (R6): a system-prompt identity prefix
694
726
  * injected while the profile is active. Multiple active profiles' souls are concatenated.
@@ -1462,6 +1494,23 @@ export class SettingsManager {
1462
1494
  judgeEnabled: this.settings.modelRouter?.judgeEnabled ?? true,
1463
1495
  judgeModel: this.settings.modelRouter?.judgeModel?.trim() || undefined,
1464
1496
  executorModel: this.settings.modelRouter?.executorModel?.trim() || undefined,
1497
+ // Not yet profile-overridable (same as judgeModel/executorModel above): validated here so a
1498
+ // corrupt/hand-edited value on disk never reaches the routed-turn swap in agent-session.ts.
1499
+ cheapThinking: isThinkingLevel(this.settings.modelRouter?.cheapThinking)
1500
+ ? this.settings.modelRouter?.cheapThinking
1501
+ : undefined,
1502
+ mediumThinking: isThinkingLevel(this.settings.modelRouter?.mediumThinking)
1503
+ ? this.settings.modelRouter?.mediumThinking
1504
+ : undefined,
1505
+ expensiveThinking: isThinkingLevel(this.settings.modelRouter?.expensiveThinking)
1506
+ ? this.settings.modelRouter?.expensiveThinking
1507
+ : undefined,
1508
+ executorThinking: isThinkingLevel(this.settings.modelRouter?.executorThinking)
1509
+ ? this.settings.modelRouter?.executorThinking
1510
+ : undefined,
1511
+ judgeThinking: isThinkingLevel(this.settings.modelRouter?.judgeThinking)
1512
+ ? this.settings.modelRouter?.judgeThinking
1513
+ : undefined,
1465
1514
  };
1466
1515
  return {
1467
1516
  enabled: profileSettings?.enabled ?? settings.enabled,
@@ -1472,6 +1521,11 @@ export class SettingsManager {
1472
1521
  judgeEnabled: profileSettings?.judgeEnabled ?? settings.judgeEnabled,
1473
1522
  judgeModel: profileSettings?.judgeModel?.trim() || settings.judgeModel,
1474
1523
  executorModel: profileSettings?.executorModel?.trim() || settings.executorModel,
1524
+ cheapThinking: settings.cheapThinking,
1525
+ mediumThinking: settings.mediumThinking,
1526
+ expensiveThinking: settings.expensiveThinking,
1527
+ executorThinking: settings.executorThinking,
1528
+ judgeThinking: settings.judgeThinking,
1475
1529
  };
1476
1530
  }
1477
1531
  setModelRouterSettings(settings, scope = "global") {
@@ -1484,6 +1538,11 @@ export class SettingsManager {
1484
1538
  judgeEnabled: settings.judgeEnabled ?? true,
1485
1539
  judgeModel: settings.judgeModel?.trim() || undefined,
1486
1540
  executorModel: settings.executorModel?.trim() || undefined,
1541
+ cheapThinking: isThinkingLevel(settings.cheapThinking) ? settings.cheapThinking : undefined,
1542
+ mediumThinking: isThinkingLevel(settings.mediumThinking) ? settings.mediumThinking : undefined,
1543
+ expensiveThinking: isThinkingLevel(settings.expensiveThinking) ? settings.expensiveThinking : undefined,
1544
+ executorThinking: isThinkingLevel(settings.executorThinking) ? settings.executorThinking : undefined,
1545
+ judgeThinking: isThinkingLevel(settings.judgeThinking) ? settings.judgeThinking : undefined,
1487
1546
  };
1488
1547
  if (scope === "project") {
1489
1548
  const projectSettings = structuredClone(this.projectSettings);
@@ -2083,6 +2142,9 @@ export class SettingsManager {
2083
2142
  allowedAutoApplyLayers: allowedLayers,
2084
2143
  requireRollbackPlan: typeof configured.requireRollbackPlan === "boolean" ? configured.requireRollbackPlan : true,
2085
2144
  reflectionSourceConfidence: sanitizeIntegerSetting(configured.reflectionSourceConfidence, DEFAULT_LEARNING_POLICY_REFLECTION_SOURCE_CONFIDENCE, 0, 100),
2145
+ autoApplySupersessions: typeof configured.autoApplySupersessions === "boolean"
2146
+ ? configured.autoApplySupersessions
2147
+ : DEFAULT_LEARNING_POLICY_AUTO_APPLY_SUPERSESSIONS,
2086
2148
  };
2087
2149
  }
2088
2150
  getToolkitScripts() {