@caupulican/pi-adaptative 0.81.3 → 0.81.4

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 (73) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/core/agent-session.d.ts +1 -0
  3. package/dist/core/agent-session.d.ts.map +1 -1
  4. package/dist/core/agent-session.js +23 -17
  5. package/dist/core/agent-session.js.map +1 -1
  6. package/dist/core/billing-failover-controller.d.ts +7 -0
  7. package/dist/core/billing-failover-controller.d.ts.map +1 -1
  8. package/dist/core/billing-failover-controller.js +6 -0
  9. package/dist/core/billing-failover-controller.js.map +1 -1
  10. package/dist/core/compaction-support.d.ts +10 -1
  11. package/dist/core/compaction-support.d.ts.map +1 -1
  12. package/dist/core/compaction-support.js +68 -9
  13. package/dist/core/compaction-support.js.map +1 -1
  14. package/dist/core/export-html/index.d.ts.map +1 -1
  15. package/dist/core/export-html/index.js +9 -9
  16. package/dist/core/export-html/index.js.map +1 -1
  17. package/dist/core/failure-corpus.d.ts +49 -0
  18. package/dist/core/failure-corpus.d.ts.map +1 -0
  19. package/dist/core/failure-corpus.js +61 -0
  20. package/dist/core/failure-corpus.js.map +1 -0
  21. package/dist/core/model-router/fitness-gate.d.ts +5 -3
  22. package/dist/core/model-router/fitness-gate.d.ts.map +1 -1
  23. package/dist/core/model-router/fitness-gate.js +1 -0
  24. package/dist/core/model-router/fitness-gate.js.map +1 -1
  25. package/dist/core/model-router/status.d.ts +4 -0
  26. package/dist/core/model-router/status.d.ts.map +1 -1
  27. package/dist/core/model-router/status.js +4 -0
  28. package/dist/core/model-router/status.js.map +1 -1
  29. package/dist/core/model-router-controller.d.ts.map +1 -1
  30. package/dist/core/model-router-controller.js +2 -0
  31. package/dist/core/model-router-controller.js.map +1 -1
  32. package/dist/core/models/default-model-suggestions.d.ts.map +1 -1
  33. package/dist/core/models/default-model-suggestions.js +18 -0
  34. package/dist/core/models/default-model-suggestions.js.map +1 -1
  35. package/dist/core/settings-manager.d.ts +1 -0
  36. package/dist/core/settings-manager.d.ts.map +1 -1
  37. package/dist/core/settings-manager.js +12 -0
  38. package/dist/core/settings-manager.js.map +1 -1
  39. package/dist/core/slash-commands.d.ts.map +1 -1
  40. package/dist/core/slash-commands.js +4 -0
  41. package/dist/core/slash-commands.js.map +1 -1
  42. package/dist/core/tools/bash.d.ts.map +1 -1
  43. package/dist/core/tools/bash.js +6 -8
  44. package/dist/core/tools/bash.js.map +1 -1
  45. package/dist/modes/interactive/components/fitness-role-selector.d.ts +1 -1
  46. package/dist/modes/interactive/components/fitness-role-selector.d.ts.map +1 -1
  47. package/dist/modes/interactive/components/fitness-role-selector.js +5 -0
  48. package/dist/modes/interactive/components/fitness-role-selector.js.map +1 -1
  49. package/dist/modes/interactive/interactive-mode.d.ts +1 -0
  50. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  51. package/dist/modes/interactive/interactive-mode.js +13 -0
  52. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  53. package/dist/modes/interactive/local-model-commands.d.ts.map +1 -1
  54. package/dist/modes/interactive/local-model-commands.js +14 -0
  55. package/dist/modes/interactive/local-model-commands.js.map +1 -1
  56. package/dist/modes/interactive/session-flow-commands.d.ts +16 -0
  57. package/dist/modes/interactive/session-flow-commands.d.ts.map +1 -1
  58. package/dist/modes/interactive/session-flow-commands.js +32 -0
  59. package/dist/modes/interactive/session-flow-commands.js.map +1 -1
  60. package/docs/bug-ledger.md +113 -0
  61. package/docs/models.md +9 -0
  62. package/docs/providers.md +12 -0
  63. package/docs/scout.md +4 -2
  64. package/docs/settings.md +2 -0
  65. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  66. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  67. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  68. package/examples/extensions/sandbox/package-lock.json +2 -2
  69. package/examples/extensions/sandbox/package.json +1 -1
  70. package/examples/extensions/with-deps/package-lock.json +2 -2
  71. package/examples/extensions/with-deps/package.json +1 -1
  72. package/npm-shrinkwrap.json +12 -12
  73. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"fitness-role-selector.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/fitness-role-selector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,UAAU,EAAgC,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAChH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,+BAA+B,GAA4B;IAChE,qBAAqB,EAAE,EAAE;IACzB,qBAAqB,EAAE,EAAE;CACzB,CAAC;AAaF,qGAAmG;AACnG,MAAM,kBAAkB,GAA0B;IACjD;QACC,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,uFAAuF;KACpG;IACD;QACC,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,kGAAkG;KAC/G;IACD;QACC,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,gEAAgE;KAC7E;IACD;QACC,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,6DAA6D;KAC1E;IACD;QACC,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,gEAAgE;KAC7E;IACD;QACC,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,gEAAgE;KAC7E;IACD;QACC,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,2CAA2C;KACxD;IACD;QACC,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,yEAAyE;KACtF;CACD,CAAC;AAEF,qGAAqG;AACrG,MAAM,CAAC,MAAM,kBAAkB,GAA2B,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAoB,CAAC,CAAC;AAEtH;;;;;GAKG;AACH,MAAM,OAAO,4BAA6B,SAAQ,SAAS;IAClD,UAAU,CAAa;IAE/B,YACC,QAAgB,EAChB,QAAqC,EACrC,QAAoB,EACpB,aAA2B,EAC1B;QACD,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,qBAAqB,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAC/B,CAAC,GAAG,kBAAkB,CAAC,EACvB,CAAC,EACD,kBAAkB,EAAE,EACpB,+BAA+B,CAC/B,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAoB,CAAC,CAAC;QACzE,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC5C,IAAI,aAAa,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACxD,IAAI,KAAK,IAAI,CAAC;gBAAE,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;IAAA,CACnC;IAED,WAAW,CAAC,IAAY,EAAQ;QAC/B,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAAA,CAClC;CACD","sourcesContent":["import { Container, type SelectItem, SelectList, type SelectListLayoutOptions, Text } from \"@caupulican/pi-tui\";\nimport { getSelectListTheme } from \"../theme/theme.ts\";\nimport { DynamicBorder } from \"./dynamic-border.ts\";\n\nconst FITNESS_ROLE_SELECT_LIST_LAYOUT: SelectListLayoutOptions = {\n\tminPrimaryColumnWidth: 18,\n\tmaxPrimaryColumnWidth: 34,\n};\n\n/** Roles a freshly probed model can be assigned to, mapped to their settings by the caller. */\nexport type FitnessRole =\n\t| \"curator\"\n\t| \"executor\"\n\t| \"router-cheap\"\n\t| \"router-medium\"\n\t| \"router-expensive\"\n\t| \"judge\"\n\t| \"learning\"\n\t| \"none\";\n\n/** The role options in presentation order — one source of truth for the list AND pre-selection. */\nconst FITNESS_ROLE_ITEMS: readonly SelectItem[] = [\n\t{\n\t\tvalue: \"curator\",\n\t\tlabel: \"Context curator\",\n\t\tdescription: \"Local brain: digests GC-packed stubs, scores stale-chunk relevance (enables curation)\",\n\t},\n\t{\n\t\tvalue: \"executor\",\n\t\tlabel: \"Toolkit executor\",\n\t\tdescription: \"Owns direct toolkit commands end-to-end (Level-0 exact hits route here; needs tool-call fitness)\",\n\t},\n\t{\n\t\tvalue: \"router-cheap\",\n\t\tlabel: \"Router: cheap tier\",\n\t\tdescription: \"Handles trivial/read-only routed turns (model router settings)\",\n\t},\n\t{\n\t\tvalue: \"router-medium\",\n\t\tlabel: \"Router: medium tier\",\n\t\tdescription: \"Handles normal implementation turns (model router settings)\",\n\t},\n\t{\n\t\tvalue: \"router-expensive\",\n\t\tlabel: \"Router: expensive tier\",\n\t\tdescription: \"Handles high-impact/architecture turns (model router settings)\",\n\t},\n\t{\n\t\tvalue: \"judge\",\n\t\tlabel: \"Routing judge\",\n\t\tdescription: \"Routing-only tier verdicts; needs strong instruction following\",\n\t},\n\t{\n\t\tvalue: \"learning\",\n\t\tlabel: \"Learning / reflection\",\n\t\tdescription: \"Background reflection and learning passes\",\n\t},\n\t{\n\t\tvalue: \"none\",\n\t\tlabel: \"No role for now\",\n\t\tdescription: \"Keep the result in the fitness store only (assign later from /settings)\",\n\t},\n];\n\n/** The assignable roles in the order the selector presents them (index 0 is the default landing). */\nexport const FITNESS_ROLE_ORDER: readonly FitnessRole[] = FITNESS_ROLE_ITEMS.map((item) => item.value as FitnessRole);\n\n/**\n * Post-probe role assignment: after /fitness measures a model, this selector turns the result\n * into configuration in one step instead of sending the user to hand-edit settings JSON. When a\n * model arrives from a validated suggestion, `preselectRole` lands the shaped role already\n * highlighted so a single keypress confirms it (an unknown/absent role falls back to the default).\n */\nexport class FitnessRoleSelectorComponent extends Container {\n\tprivate selectList: SelectList;\n\n\tconstructor(\n\t\tmodelRef: string,\n\t\tonSelect: (role: FitnessRole) => void,\n\t\tonCancel: () => void,\n\t\tpreselectRole?: FitnessRole,\n\t) {\n\t\tsuper();\n\n\t\tthis.addChild(new DynamicBorder());\n\t\tthis.addChild(new Text(`Assign a role for ${modelRef}:`, 1, 0));\n\t\tthis.selectList = new SelectList(\n\t\t\t[...FITNESS_ROLE_ITEMS],\n\t\t\t8,\n\t\t\tgetSelectListTheme(),\n\t\t\tFITNESS_ROLE_SELECT_LIST_LAYOUT,\n\t\t);\n\t\tthis.selectList.onSelect = (item) => onSelect(item.value as FitnessRole);\n\t\tthis.selectList.onCancel = () => onCancel();\n\t\tif (preselectRole) {\n\t\t\tconst index = FITNESS_ROLE_ORDER.indexOf(preselectRole);\n\t\t\tif (index >= 0) this.selectList.setSelectedIndex(index);\n\t\t}\n\t\tthis.addChild(this.selectList);\n\t\tthis.addChild(new DynamicBorder());\n\t}\n\n\thandleInput(data: string): void {\n\t\tthis.selectList.handleInput(data);\n\t}\n}\n"]}
1
+ {"version":3,"file":"fitness-role-selector.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/fitness-role-selector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,UAAU,EAAgC,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAChH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,+BAA+B,GAA4B;IAChE,qBAAqB,EAAE,EAAE;IACzB,qBAAqB,EAAE,EAAE;CACzB,CAAC;AAcF,qGAAmG;AACnG,MAAM,kBAAkB,GAA0B;IACjD;QACC,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,uFAAuF;KACpG;IACD;QACC,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,kGAAkG;KAC/G;IACD;QACC,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACV,sGAAsG;KACvG;IACD;QACC,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,gEAAgE;KAC7E;IACD;QACC,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,6DAA6D;KAC1E;IACD;QACC,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,gEAAgE;KAC7E;IACD;QACC,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,gEAAgE;KAC7E;IACD;QACC,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,2CAA2C;KACxD;IACD;QACC,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,yEAAyE;KACtF;CACD,CAAC;AAEF,qGAAqG;AACrG,MAAM,CAAC,MAAM,kBAAkB,GAA2B,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAoB,CAAC,CAAC;AAEtH;;;;;GAKG;AACH,MAAM,OAAO,4BAA6B,SAAQ,SAAS;IAClD,UAAU,CAAa;IAE/B,YACC,QAAgB,EAChB,QAAqC,EACrC,QAAoB,EACpB,aAA2B,EAC1B;QACD,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,qBAAqB,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAC/B,CAAC,GAAG,kBAAkB,CAAC,EACvB,CAAC,EACD,kBAAkB,EAAE,EACpB,+BAA+B,CAC/B,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAoB,CAAC,CAAC;QACzE,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC5C,IAAI,aAAa,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACxD,IAAI,KAAK,IAAI,CAAC;gBAAE,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;IAAA,CACnC;IAED,WAAW,CAAC,IAAY,EAAQ;QAC/B,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAAA,CAClC;CACD","sourcesContent":["import { Container, type SelectItem, SelectList, type SelectListLayoutOptions, Text } from \"@caupulican/pi-tui\";\nimport { getSelectListTheme } from \"../theme/theme.ts\";\nimport { DynamicBorder } from \"./dynamic-border.ts\";\n\nconst FITNESS_ROLE_SELECT_LIST_LAYOUT: SelectListLayoutOptions = {\n\tminPrimaryColumnWidth: 18,\n\tmaxPrimaryColumnWidth: 34,\n};\n\n/** Roles a freshly probed model can be assigned to, mapped to their settings by the caller. */\nexport type FitnessRole =\n\t| \"curator\"\n\t| \"executor\"\n\t| \"scout\"\n\t| \"router-cheap\"\n\t| \"router-medium\"\n\t| \"router-expensive\"\n\t| \"judge\"\n\t| \"learning\"\n\t| \"none\";\n\n/** The role options in presentation order — one source of truth for the list AND pre-selection. */\nconst FITNESS_ROLE_ITEMS: readonly SelectItem[] = [\n\t{\n\t\tvalue: \"curator\",\n\t\tlabel: \"Context curator\",\n\t\tdescription: \"Local brain: digests GC-packed stubs, scores stale-chunk relevance (enables curation)\",\n\t},\n\t{\n\t\tvalue: \"executor\",\n\t\tlabel: \"Toolkit executor\",\n\t\tdescription: \"Owns direct toolkit commands end-to-end (Level-0 exact hits route here; needs tool-call fitness)\",\n\t},\n\t{\n\t\tvalue: \"scout\",\n\t\tlabel: \"Scout (context_scout)\",\n\t\tdescription:\n\t\t\t\"Repository scout role; writes scout.model and enables the scout tool after scout_auto fitness passes\",\n\t},\n\t{\n\t\tvalue: \"router-cheap\",\n\t\tlabel: \"Router: cheap tier\",\n\t\tdescription: \"Handles trivial/read-only routed turns (model router settings)\",\n\t},\n\t{\n\t\tvalue: \"router-medium\",\n\t\tlabel: \"Router: medium tier\",\n\t\tdescription: \"Handles normal implementation turns (model router settings)\",\n\t},\n\t{\n\t\tvalue: \"router-expensive\",\n\t\tlabel: \"Router: expensive tier\",\n\t\tdescription: \"Handles high-impact/architecture turns (model router settings)\",\n\t},\n\t{\n\t\tvalue: \"judge\",\n\t\tlabel: \"Routing judge\",\n\t\tdescription: \"Routing-only tier verdicts; needs strong instruction following\",\n\t},\n\t{\n\t\tvalue: \"learning\",\n\t\tlabel: \"Learning / reflection\",\n\t\tdescription: \"Background reflection and learning passes\",\n\t},\n\t{\n\t\tvalue: \"none\",\n\t\tlabel: \"No role for now\",\n\t\tdescription: \"Keep the result in the fitness store only (assign later from /settings)\",\n\t},\n];\n\n/** The assignable roles in the order the selector presents them (index 0 is the default landing). */\nexport const FITNESS_ROLE_ORDER: readonly FitnessRole[] = FITNESS_ROLE_ITEMS.map((item) => item.value as FitnessRole);\n\n/**\n * Post-probe role assignment: after /fitness measures a model, this selector turns the result\n * into configuration in one step instead of sending the user to hand-edit settings JSON. When a\n * model arrives from a validated suggestion, `preselectRole` lands the shaped role already\n * highlighted so a single keypress confirms it (an unknown/absent role falls back to the default).\n */\nexport class FitnessRoleSelectorComponent extends Container {\n\tprivate selectList: SelectList;\n\n\tconstructor(\n\t\tmodelRef: string,\n\t\tonSelect: (role: FitnessRole) => void,\n\t\tonCancel: () => void,\n\t\tpreselectRole?: FitnessRole,\n\t) {\n\t\tsuper();\n\n\t\tthis.addChild(new DynamicBorder());\n\t\tthis.addChild(new Text(`Assign a role for ${modelRef}:`, 1, 0));\n\t\tthis.selectList = new SelectList(\n\t\t\t[...FITNESS_ROLE_ITEMS],\n\t\t\t8,\n\t\t\tgetSelectListTheme(),\n\t\t\tFITNESS_ROLE_SELECT_LIST_LAYOUT,\n\t\t);\n\t\tthis.selectList.onSelect = (item) => onSelect(item.value as FitnessRole);\n\t\tthis.selectList.onCancel = () => onCancel();\n\t\tif (preselectRole) {\n\t\t\tconst index = FITNESS_ROLE_ORDER.indexOf(preselectRole);\n\t\t\tif (index >= 0) this.selectList.setSelectedIndex(index);\n\t\t}\n\t\tthis.addChild(this.selectList);\n\t\tthis.addChild(new DynamicBorder());\n\t}\n\n\thandleInput(data: string): void {\n\t\tthis.selectList.handleInput(data);\n\t}\n}\n"]}
@@ -336,6 +336,7 @@ export declare class InteractiveMode {
336
336
  private handleCopyCommand;
337
337
  private handleNameCommand;
338
338
  private parseGoalContinueCommand;
339
+ private handleGoalCommand;
339
340
  private handleGoalContinueCommand;
340
341
  private handleSessionCommand;
341
342
  private handleUsageCommand;