@caupulican/pi-adaptative 0.81.7 → 0.81.8

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 (39) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cli/initial-message.d.ts.map +1 -1
  3. package/dist/cli/initial-message.js +9 -8
  4. package/dist/cli/initial-message.js.map +1 -1
  5. package/dist/core/agent-session.d.ts.map +1 -1
  6. package/dist/core/agent-session.js +12 -14
  7. package/dist/core/agent-session.js.map +1 -1
  8. package/dist/core/delegation/worker-actions.d.ts.map +1 -1
  9. package/dist/core/delegation/worker-actions.js +1 -1
  10. package/dist/core/delegation/worker-actions.js.map +1 -1
  11. package/dist/core/model-resolver.d.ts.map +1 -1
  12. package/dist/core/model-resolver.js +33 -3
  13. package/dist/core/model-resolver.js.map +1 -1
  14. package/dist/core/model-router/tool-escalation.d.ts.map +1 -1
  15. package/dist/core/model-router/tool-escalation.js +2 -2
  16. package/dist/core/model-router/tool-escalation.js.map +1 -1
  17. package/dist/core/tools/edit-diff.d.ts +6 -10
  18. package/dist/core/tools/edit-diff.d.ts.map +1 -1
  19. package/dist/core/tools/edit-diff.js +70 -18
  20. package/dist/core/tools/edit-diff.js.map +1 -1
  21. package/dist/core/tools/git-filter.d.ts.map +1 -1
  22. package/dist/core/tools/git-filter.js +3 -4
  23. package/dist/core/tools/git-filter.js.map +1 -1
  24. package/dist/core/tools/read.d.ts.map +1 -1
  25. package/dist/core/tools/read.js +12 -2
  26. package/dist/core/tools/read.js.map +1 -1
  27. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  28. package/dist/modes/rpc/rpc-mode.js +22 -7
  29. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  30. package/docs/bug-ledger.md +15 -0
  31. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  32. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  33. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  34. package/examples/extensions/sandbox/package-lock.json +2 -2
  35. package/examples/extensions/sandbox/package.json +1 -1
  36. package/examples/extensions/with-deps/package-lock.json +2 -2
  37. package/examples/extensions/with-deps/package.json +1 -1
  38. package/npm-shrinkwrap.json +12 -12
  39. package/package.json +4 -4
package/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ ## [0.81.8] - 2026-07-07
2
+
3
+ ### Fixed
4
+ - Fixed manual compaction retry warnings to include verification failure details.
5
+ - Fixed auto-compaction custom-stream regression coverage to seed sessions above the real trigger threshold.
6
+ - Fixed overflow-triggered auto-compaction to apply one checkpoint before retrying the provider request even when measured tokens are below the configured threshold.
7
+ - Fixed git log filtering to preserve user arguments while applying default compact-log limits.
8
+ - Fixed fuzzy edit replacements to preserve unrelated file bytes and report diffs from the actual on-disk change.
9
+ - Fixed edit duplicate detection so exact matches are counted exactly before falling back to fuzzy ambiguity checks.
10
+ - Fixed RPC input validation so non-command JSON lines return errors without terminating the process.
11
+ - Fixed `read` tail results to return the requested content lines for newline-terminated files.
12
+ - Fixed initial CLI prompt construction to separate stdin, `@file`, and message sources with blank lines.
13
+ - Fixed worker edit actions to insert replacement text literally when it contains JavaScript `$` replacement patterns.
14
+ - Fixed cheap-tier shell tool escalation to fail closed on compound commands containing mutating segments.
15
+ - Fixed bare CLI model-id resolution to prefer the single authenticated provider and reject unresolved ambiguity.
16
+
1
17
  ## [0.81.7] - 2026-07-06
2
18
 
3
19
  ### Fixed
@@ -1 +1 @@
1
- {"version":3,"file":"initial-message.d.ts","sourceRoot":"","sources":["../../src/cli/initial-message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,WAAW,mBAAmB;IACnC,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EACnC,MAAM,EACN,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,EAAE,mBAAmB,GAAG,oBAAoB,CAkB5C","sourcesContent":["import type { ImageContent } from \"@caupulican/pi-ai\";\nimport type { Args } from \"./args.ts\";\n\nexport interface InitialMessageInput {\n\tparsed: Args;\n\tfileText?: string;\n\tfileImages?: ImageContent[];\n\tstdinContent?: string;\n}\n\nexport interface InitialMessageResult {\n\tinitialMessage?: string;\n\tinitialImages?: ImageContent[];\n}\n\n/**\n * Combine stdin content, @file text, and the first CLI message into a single\n * initial prompt for non-interactive mode.\n */\nexport function buildInitialMessage({\n\tparsed,\n\tfileText,\n\tfileImages,\n\tstdinContent,\n}: InitialMessageInput): InitialMessageResult {\n\tconst parts: string[] = [];\n\tif (stdinContent !== undefined) {\n\t\tparts.push(stdinContent);\n\t}\n\tif (fileText) {\n\t\tparts.push(fileText);\n\t}\n\n\tif (parsed.messages.length > 0) {\n\t\tparts.push(parsed.messages[0]);\n\t\tparsed.messages.shift();\n\t}\n\n\treturn {\n\t\tinitialMessage: parts.length > 0 ? parts.join(\"\") : undefined,\n\t\tinitialImages: fileImages && fileImages.length > 0 ? fileImages : undefined,\n\t};\n}\n"]}
1
+ {"version":3,"file":"initial-message.d.ts","sourceRoot":"","sources":["../../src/cli/initial-message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,WAAW,mBAAmB;IACnC,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EACnC,MAAM,EACN,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,EAAE,mBAAmB,GAAG,oBAAoB,CAmB5C","sourcesContent":["import type { ImageContent } from \"@caupulican/pi-ai\";\nimport type { Args } from \"./args.ts\";\n\nexport interface InitialMessageInput {\n\tparsed: Args;\n\tfileText?: string;\n\tfileImages?: ImageContent[];\n\tstdinContent?: string;\n}\n\nexport interface InitialMessageResult {\n\tinitialMessage?: string;\n\tinitialImages?: ImageContent[];\n}\n\n/**\n * Combine stdin content, @file text, and the first CLI message into a single\n * initial prompt for non-interactive mode.\n */\nexport function buildInitialMessage({\n\tparsed,\n\tfileText,\n\tfileImages,\n\tstdinContent,\n}: InitialMessageInput): InitialMessageResult {\n\tconst parts: string[] = [];\n\tconst addPart = (part: string | undefined): void => {\n\t\tif (part === undefined || part.length === 0) return;\n\t\tparts.push(part.replace(/\\n+$/, \"\"));\n\t};\n\n\taddPart(stdinContent);\n\taddPart(fileText);\n\n\tif (parsed.messages.length > 0) {\n\t\taddPart(parsed.messages[0]);\n\t\tparsed.messages.shift();\n\t}\n\n\treturn {\n\t\tinitialMessage: parts.length > 0 ? parts.join(\"\\n\\n\") : undefined,\n\t\tinitialImages: fileImages && fileImages.length > 0 ? fileImages : undefined,\n\t};\n}\n"]}
@@ -4,18 +4,19 @@
4
4
  */
5
5
  export function buildInitialMessage({ parsed, fileText, fileImages, stdinContent, }) {
6
6
  const parts = [];
7
- if (stdinContent !== undefined) {
8
- parts.push(stdinContent);
9
- }
10
- if (fileText) {
11
- parts.push(fileText);
12
- }
7
+ const addPart = (part) => {
8
+ if (part === undefined || part.length === 0)
9
+ return;
10
+ parts.push(part.replace(/\n+$/, ""));
11
+ };
12
+ addPart(stdinContent);
13
+ addPart(fileText);
13
14
  if (parsed.messages.length > 0) {
14
- parts.push(parsed.messages[0]);
15
+ addPart(parsed.messages[0]);
15
16
  parsed.messages.shift();
16
17
  }
17
18
  return {
18
- initialMessage: parts.length > 0 ? parts.join("") : undefined,
19
+ initialMessage: parts.length > 0 ? parts.join("\n\n") : undefined,
19
20
  initialImages: fileImages && fileImages.length > 0 ? fileImages : undefined,
20
21
  };
21
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"initial-message.js","sourceRoot":"","sources":["../../src/cli/initial-message.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,EACnC,MAAM,EACN,QAAQ,EACR,UAAU,EACV,YAAY,GACS,EAAwB;IAC7C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,OAAO;QACN,cAAc,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QAC7D,aAAa,EAAE,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;KAC3E,CAAC;AAAA,CACF","sourcesContent":["import type { ImageContent } from \"@caupulican/pi-ai\";\nimport type { Args } from \"./args.ts\";\n\nexport interface InitialMessageInput {\n\tparsed: Args;\n\tfileText?: string;\n\tfileImages?: ImageContent[];\n\tstdinContent?: string;\n}\n\nexport interface InitialMessageResult {\n\tinitialMessage?: string;\n\tinitialImages?: ImageContent[];\n}\n\n/**\n * Combine stdin content, @file text, and the first CLI message into a single\n * initial prompt for non-interactive mode.\n */\nexport function buildInitialMessage({\n\tparsed,\n\tfileText,\n\tfileImages,\n\tstdinContent,\n}: InitialMessageInput): InitialMessageResult {\n\tconst parts: string[] = [];\n\tif (stdinContent !== undefined) {\n\t\tparts.push(stdinContent);\n\t}\n\tif (fileText) {\n\t\tparts.push(fileText);\n\t}\n\n\tif (parsed.messages.length > 0) {\n\t\tparts.push(parsed.messages[0]);\n\t\tparsed.messages.shift();\n\t}\n\n\treturn {\n\t\tinitialMessage: parts.length > 0 ? parts.join(\"\") : undefined,\n\t\tinitialImages: fileImages && fileImages.length > 0 ? fileImages : undefined,\n\t};\n}\n"]}
1
+ {"version":3,"file":"initial-message.js","sourceRoot":"","sources":["../../src/cli/initial-message.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,EACnC,MAAM,EACN,QAAQ,EACR,UAAU,EACV,YAAY,GACS,EAAwB;IAC7C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,CAAC,IAAwB,EAAQ,EAAE,CAAC;QACnD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACpD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;IAAA,CACrC,CAAC;IAEF,OAAO,CAAC,YAAY,CAAC,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,CAAC;IAElB,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,OAAO;QACN,cAAc,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QACjE,aAAa,EAAE,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;KAC3E,CAAC;AAAA,CACF","sourcesContent":["import type { ImageContent } from \"@caupulican/pi-ai\";\nimport type { Args } from \"./args.ts\";\n\nexport interface InitialMessageInput {\n\tparsed: Args;\n\tfileText?: string;\n\tfileImages?: ImageContent[];\n\tstdinContent?: string;\n}\n\nexport interface InitialMessageResult {\n\tinitialMessage?: string;\n\tinitialImages?: ImageContent[];\n}\n\n/**\n * Combine stdin content, @file text, and the first CLI message into a single\n * initial prompt for non-interactive mode.\n */\nexport function buildInitialMessage({\n\tparsed,\n\tfileText,\n\tfileImages,\n\tstdinContent,\n}: InitialMessageInput): InitialMessageResult {\n\tconst parts: string[] = [];\n\tconst addPart = (part: string | undefined): void => {\n\t\tif (part === undefined || part.length === 0) return;\n\t\tparts.push(part.replace(/\\n+$/, \"\"));\n\t};\n\n\taddPart(stdinContent);\n\taddPart(fileText);\n\n\tif (parsed.messages.length > 0) {\n\t\taddPart(parsed.messages[0]);\n\t\tparsed.messages.shift();\n\t}\n\n\treturn {\n\t\tinitialMessage: parts.length > 0 ? parts.join(\"\\n\\n\") : undefined,\n\t\tinitialImages: fileImages && fileImages.length > 0 ? fileImages : undefined,\n\t};\n}\n"]}