@caupulican/pi-adaptative 0.90.5 → 0.90.6

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 CHANGED
@@ -1,3 +1,9 @@
1
+ ## [0.90.6] - 2026-08-12
2
+
3
+ ### Fixed
4
+
5
+ - Fixed oversized extension tool prompt snippets and guidelines crashing session startup instead of being bounded for provider-visible context.
6
+
1
7
  ## [0.90.5] - 2026-08-12
2
8
 
3
9
  ### Added
@@ -1 +1 @@
1
- {"version":3,"file":"provider-tool-text.d.ts","sourceRoot":"","sources":["../../src/core/provider-tool-text.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,eAAO,MAAM,+BAA+B,MAAM,CAAC;AACnD,eAAO,MAAM,iCAAiC,MAAM,CAAC;AACrD,eAAO,MAAM,kCAAkC,OAAQ,CAAC;AASxD,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAU3F;AAED,wBAAgB,iCAAiC,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAqB5F"}
1
+ {"version":3,"file":"provider-tool-text.d.ts","sourceRoot":"","sources":["../../src/core/provider-tool-text.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,eAAO,MAAM,+BAA+B,MAAM,CAAC;AACnD,eAAO,MAAM,iCAAiC,MAAM,CAAC;AACrD,eAAO,MAAM,kCAAkC,OAAQ,CAAC;AAsBxD,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAK3F;AAED,wBAAgB,iCAAiC,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAmB5F"}
@@ -8,16 +8,27 @@ function oneLine(text) {
8
8
  .replace(/\s+/g, " ")
9
9
  .trim();
10
10
  }
11
+ function truncateWithEllipsis(text, maxChars) {
12
+ if (text.length <= maxChars)
13
+ return text;
14
+ if (maxChars <= 0)
15
+ return "";
16
+ if (maxChars === 1)
17
+ return "…";
18
+ let end = maxChars - 1;
19
+ const finalCodeUnit = text.charCodeAt(end - 1);
20
+ if (finalCodeUnit >= 0xd800 && finalCodeUnit <= 0xdbff) {
21
+ end -= 1;
22
+ }
23
+ return `${text.slice(0, end).trimEnd()}…`;
24
+ }
11
25
  export function normalizeProviderPromptSnippet(text) {
12
26
  if (!text)
13
27
  return undefined;
14
28
  const normalized = oneLine(text);
15
29
  if (normalized.length === 0)
16
30
  return undefined;
17
- if (normalized.length > MAX_PROVIDER_TOOL_SNIPPET_CHARS) {
18
- throw new Error(`Provider tool snippet exceeds ${MAX_PROVIDER_TOOL_SNIPPET_CHARS} characters (${normalized.length}): ${normalized.slice(0, 48)}`);
19
- }
20
- return normalized;
31
+ return truncateWithEllipsis(normalized, MAX_PROVIDER_TOOL_SNIPPET_CHARS);
21
32
  }
22
33
  export function normalizeProviderPromptGuidelines(guidelines) {
23
34
  if (!guidelines || guidelines.length === 0)
@@ -26,16 +37,21 @@ export function normalizeProviderPromptGuidelines(guidelines) {
26
37
  let total = 0;
27
38
  for (const guideline of guidelines) {
28
39
  const normalized = oneLine(guideline);
29
- if (normalized.length === 0 || unique.has(normalized))
40
+ if (normalized.length === 0)
41
+ continue;
42
+ const bounded = truncateWithEllipsis(normalized, MAX_PROVIDER_TOOL_GUIDELINE_CHARS);
43
+ if (unique.has(bounded))
30
44
  continue;
31
- if (normalized.length > MAX_PROVIDER_TOOL_GUIDELINE_CHARS) {
32
- throw new Error(`Provider tool guideline exceeds ${MAX_PROVIDER_TOOL_GUIDELINE_CHARS} characters (${normalized.length}): ${normalized.slice(0, 48)}`);
33
- }
34
- total += normalized.length;
35
- if (total > MAX_PROVIDER_TOOL_GUIDELINES_CHARS) {
36
- throw new Error(`Provider tool guidelines exceed ${MAX_PROVIDER_TOOL_GUIDELINES_CHARS} characters (${total}).`);
37
- }
38
- unique.add(normalized);
45
+ const remaining = MAX_PROVIDER_TOOL_GUIDELINES_CHARS - total;
46
+ if (remaining <= 0)
47
+ break;
48
+ const admitted = truncateWithEllipsis(bounded, remaining);
49
+ if (admitted.length === 0)
50
+ break;
51
+ unique.add(admitted);
52
+ total += admitted.length;
53
+ if (admitted.length < bounded.length)
54
+ break;
39
55
  }
40
56
  return Array.from(unique);
41
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"provider-tool-text.js","sourceRoot":"","sources":["../../src/core/provider-tool-text.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AACnD,MAAM,CAAC,MAAM,iCAAiC,GAAG,GAAG,CAAC;AACrD,MAAM,CAAC,MAAM,kCAAkC,GAAG,KAAK,CAAC;AAExD,SAAS,OAAO,CAAC,IAAY;IAC5B,OAAO,IAAI;SACT,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;SACxB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;AACV,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,IAAwB;IACtE,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9C,IAAI,UAAU,CAAC,MAAM,GAAG,+BAA+B,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CACd,iCAAiC,+BAA+B,gBAAgB,UAAU,CAAC,MAAM,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAChI,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,UAAgC;IACjF,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACtD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,SAAS;QAChE,IAAI,UAAU,CAAC,MAAM,GAAG,iCAAiC,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CACd,mCAAmC,iCAAiC,gBAAgB,UAAU,CAAC,MAAM,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CACpI,CAAC;QACH,CAAC;QACD,KAAK,IAAI,UAAU,CAAC,MAAM,CAAC;QAC3B,IAAI,KAAK,GAAG,kCAAkC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CACd,mCAAmC,kCAAkC,gBAAgB,KAAK,IAAI,CAC9F,CAAC;QACH,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC","sourcesContent":["/** Provider-bound tool prose budgets. Structural schemas remain separate and exact. */\nexport const MAX_PROVIDER_TOOL_SNIPPET_CHARS = 120;\nexport const MAX_PROVIDER_TOOL_GUIDELINE_CHARS = 140;\nexport const MAX_PROVIDER_TOOL_GUIDELINES_CHARS = 1_200;\n\nfunction oneLine(text: string): string {\n\treturn text\n\t\t.replace(/[\\r\\n]+/g, \" \")\n\t\t.replace(/\\s+/g, \" \")\n\t\t.trim();\n}\n\nexport function normalizeProviderPromptSnippet(text: string | undefined): string | undefined {\n\tif (!text) return undefined;\n\tconst normalized = oneLine(text);\n\tif (normalized.length === 0) return undefined;\n\tif (normalized.length > MAX_PROVIDER_TOOL_SNIPPET_CHARS) {\n\t\tthrow new Error(\n\t\t\t`Provider tool snippet exceeds ${MAX_PROVIDER_TOOL_SNIPPET_CHARS} characters (${normalized.length}): ${normalized.slice(0, 48)}`,\n\t\t);\n\t}\n\treturn normalized;\n}\n\nexport function normalizeProviderPromptGuidelines(guidelines: string[] | undefined): string[] {\n\tif (!guidelines || guidelines.length === 0) return [];\n\tconst unique = new Set<string>();\n\tlet total = 0;\n\tfor (const guideline of guidelines) {\n\t\tconst normalized = oneLine(guideline);\n\t\tif (normalized.length === 0 || unique.has(normalized)) continue;\n\t\tif (normalized.length > MAX_PROVIDER_TOOL_GUIDELINE_CHARS) {\n\t\t\tthrow new Error(\n\t\t\t\t`Provider tool guideline exceeds ${MAX_PROVIDER_TOOL_GUIDELINE_CHARS} characters (${normalized.length}): ${normalized.slice(0, 48)}`,\n\t\t\t);\n\t\t}\n\t\ttotal += normalized.length;\n\t\tif (total > MAX_PROVIDER_TOOL_GUIDELINES_CHARS) {\n\t\t\tthrow new Error(\n\t\t\t\t`Provider tool guidelines exceed ${MAX_PROVIDER_TOOL_GUIDELINES_CHARS} characters (${total}).`,\n\t\t\t);\n\t\t}\n\t\tunique.add(normalized);\n\t}\n\treturn Array.from(unique);\n}\n"]}
1
+ {"version":3,"file":"provider-tool-text.js","sourceRoot":"","sources":["../../src/core/provider-tool-text.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AACnD,MAAM,CAAC,MAAM,iCAAiC,GAAG,GAAG,CAAC;AACrD,MAAM,CAAC,MAAM,kCAAkC,GAAG,KAAK,CAAC;AAExD,SAAS,OAAO,CAAC,IAAY;IAC5B,OAAO,IAAI;SACT,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;SACxB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;AACV,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,QAAgB;IAC3D,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7B,IAAI,QAAQ,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAE/B,IAAI,GAAG,GAAG,QAAQ,GAAG,CAAC,CAAC;IACvB,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC/C,IAAI,aAAa,IAAI,MAAM,IAAI,aAAa,IAAI,MAAM,EAAE,CAAC;QACxD,GAAG,IAAI,CAAC,CAAC;IACV,CAAC;IACD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,IAAwB;IACtE,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9C,OAAO,oBAAoB,CAAC,UAAU,EAAE,+BAA+B,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,UAAgC;IACjF,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACtD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACtC,MAAM,OAAO,GAAG,oBAAoB,CAAC,UAAU,EAAE,iCAAiC,CAAC,CAAC;QACpF,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,SAAS;QAElC,MAAM,SAAS,GAAG,kCAAkC,GAAG,KAAK,CAAC;QAC7D,IAAI,SAAS,IAAI,CAAC;YAAE,MAAM;QAC1B,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC1D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM;QACjC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrB,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC;QACzB,IAAI,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;YAAE,MAAM;IAC7C,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC","sourcesContent":["/** Provider-bound tool prose budgets. Structural schemas remain separate and exact. */\nexport const MAX_PROVIDER_TOOL_SNIPPET_CHARS = 120;\nexport const MAX_PROVIDER_TOOL_GUIDELINE_CHARS = 140;\nexport const MAX_PROVIDER_TOOL_GUIDELINES_CHARS = 1_200;\n\nfunction oneLine(text: string): string {\n\treturn text\n\t\t.replace(/[\\r\\n]+/g, \" \")\n\t\t.replace(/\\s+/g, \" \")\n\t\t.trim();\n}\n\nfunction truncateWithEllipsis(text: string, maxChars: number): string {\n\tif (text.length <= maxChars) return text;\n\tif (maxChars <= 0) return \"\";\n\tif (maxChars === 1) return \"…\";\n\n\tlet end = maxChars - 1;\n\tconst finalCodeUnit = text.charCodeAt(end - 1);\n\tif (finalCodeUnit >= 0xd800 && finalCodeUnit <= 0xdbff) {\n\t\tend -= 1;\n\t}\n\treturn `${text.slice(0, end).trimEnd()}…`;\n}\n\nexport function normalizeProviderPromptSnippet(text: string | undefined): string | undefined {\n\tif (!text) return undefined;\n\tconst normalized = oneLine(text);\n\tif (normalized.length === 0) return undefined;\n\treturn truncateWithEllipsis(normalized, MAX_PROVIDER_TOOL_SNIPPET_CHARS);\n}\n\nexport function normalizeProviderPromptGuidelines(guidelines: string[] | undefined): string[] {\n\tif (!guidelines || guidelines.length === 0) return [];\n\tconst unique = new Set<string>();\n\tlet total = 0;\n\tfor (const guideline of guidelines) {\n\t\tconst normalized = oneLine(guideline);\n\t\tif (normalized.length === 0) continue;\n\t\tconst bounded = truncateWithEllipsis(normalized, MAX_PROVIDER_TOOL_GUIDELINE_CHARS);\n\t\tif (unique.has(bounded)) continue;\n\n\t\tconst remaining = MAX_PROVIDER_TOOL_GUIDELINES_CHARS - total;\n\t\tif (remaining <= 0) break;\n\t\tconst admitted = truncateWithEllipsis(bounded, remaining);\n\t\tif (admitted.length === 0) break;\n\t\tunique.add(admitted);\n\t\ttotal += admitted.length;\n\t\tif (admitted.length < bounded.length) break;\n\t}\n\treturn Array.from(unique);\n}\n"]}
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "pi-extension-custom-provider",
3
- "version": "0.90.5",
3
+ "version": "0.90.6",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "pi-extension-custom-provider",
9
- "version": "0.90.5",
9
+ "version": "0.90.6",
10
10
  "dependencies": {
11
11
  "@anthropic-ai/sdk": "^0.52.0"
12
12
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pi-extension-custom-provider-anthropic",
3
3
  "private": true,
4
- "version": "0.90.5",
4
+ "version": "0.90.6",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pi-extension-custom-provider-gitlab-duo",
3
3
  "private": true,
4
- "version": "0.90.5",
4
+ "version": "0.90.6",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "pi-extension-sandbox",
3
- "version": "0.90.5",
3
+ "version": "0.90.6",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "pi-extension-sandbox",
9
- "version": "0.90.5",
9
+ "version": "0.90.6",
10
10
  "dependencies": {
11
11
  "@anthropic-ai/sandbox-runtime": "^0.0.26"
12
12
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pi-extension-sandbox",
3
3
  "private": true,
4
- "version": "0.90.5",
4
+ "version": "0.90.6",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "pi-extension-with-deps",
3
- "version": "0.90.5",
3
+ "version": "0.90.6",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "pi-extension-with-deps",
9
- "version": "0.90.5",
9
+ "version": "0.90.6",
10
10
  "dependencies": {
11
11
  "ms": "^2.1.3"
12
12
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pi-extension-with-deps",
3
3
  "private": true,
4
- "version": "0.90.5",
4
+ "version": "0.90.6",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@caupulican/pi-adaptative",
3
- "version": "0.90.5",
3
+ "version": "0.90.6",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@caupulican/pi-adaptative",
9
- "version": "0.90.5",
9
+ "version": "0.90.6",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
- "@caupulican/pi-agent-core": "^0.90.5",
13
- "@caupulican/pi-ai": "^0.90.5",
14
- "@caupulican/pi-tui": "^0.90.5",
12
+ "@caupulican/pi-agent-core": "^0.90.6",
13
+ "@caupulican/pi-ai": "^0.90.6",
14
+ "@caupulican/pi-tui": "^0.90.6",
15
15
  "@silvia-odwyer/photon-node": "0.3.4",
16
16
  "chalk": "5.6.2",
17
17
  "cross-spawn": "7.0.6",
@@ -547,11 +547,11 @@
547
547
  }
548
548
  },
549
549
  "node_modules/@caupulican/pi-agent-core": {
550
- "version": "0.90.5",
551
- "resolved": "https://registry.npmjs.org/@caupulican/pi-agent-core/-/pi-agent-core-0.90.5.tgz",
550
+ "version": "0.90.6",
551
+ "resolved": "https://registry.npmjs.org/@caupulican/pi-agent-core/-/pi-agent-core-0.90.6.tgz",
552
552
  "license": "MIT",
553
553
  "dependencies": {
554
- "@caupulican/pi-ai": "^0.90.5",
554
+ "@caupulican/pi-ai": "^0.90.6",
555
555
  "ignore": "7.0.5",
556
556
  "typebox": "1.1.38",
557
557
  "yaml": "2.9.0"
@@ -561,8 +561,8 @@
561
561
  }
562
562
  },
563
563
  "node_modules/@caupulican/pi-ai": {
564
- "version": "0.90.5",
565
- "resolved": "https://registry.npmjs.org/@caupulican/pi-ai/-/pi-ai-0.90.5.tgz",
564
+ "version": "0.90.6",
565
+ "resolved": "https://registry.npmjs.org/@caupulican/pi-ai/-/pi-ai-0.90.6.tgz",
566
566
  "license": "MIT",
567
567
  "dependencies": {
568
568
  "@anthropic-ai/sdk": "0.91.1",
@@ -616,8 +616,8 @@
616
616
  }
617
617
  },
618
618
  "node_modules/@caupulican/pi-tui": {
619
- "version": "0.90.5",
620
- "resolved": "https://registry.npmjs.org/@caupulican/pi-tui/-/pi-tui-0.90.5.tgz",
619
+ "version": "0.90.6",
620
+ "resolved": "https://registry.npmjs.org/@caupulican/pi-tui/-/pi-tui-0.90.6.tgz",
621
621
  "license": "MIT",
622
622
  "dependencies": {
623
623
  "get-east-asian-width": "1.6.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@caupulican/pi-adaptative",
3
- "version": "0.90.5",
3
+ "version": "0.90.6",
4
4
  "description": "Adaptive fork of Pi coding agent for self-evolving agent harness experiments",
5
5
  "type": "module",
6
6
  "piConfig": {
@@ -84,9 +84,9 @@
84
84
  "postinstall": "node scripts/postinstall-python-runtime.mjs"
85
85
  },
86
86
  "dependencies": {
87
- "@caupulican/pi-agent-core": "^0.90.5",
88
- "@caupulican/pi-ai": "^0.90.5",
89
- "@caupulican/pi-tui": "^0.90.5",
87
+ "@caupulican/pi-agent-core": "^0.90.6",
88
+ "@caupulican/pi-ai": "^0.90.6",
89
+ "@caupulican/pi-tui": "^0.90.6",
90
90
  "@silvia-odwyer/photon-node": "0.3.4",
91
91
  "chalk": "5.6.2",
92
92
  "cross-spawn": "7.0.6",