@code-yeongyu/senpi 2026.8.21 → 2026.8.22

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 (44) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/dist/core/auth-storage.d.ts.map +1 -1
  3. package/dist/core/auth-storage.js +5 -4
  4. package/dist/core/auth-storage.js.map +1 -1
  5. package/dist/core/extensions/builtin/permission-system/index.d.ts.map +1 -1
  6. package/dist/core/extensions/builtin/permission-system/index.js +7 -11
  7. package/dist/core/extensions/builtin/permission-system/index.js.map +1 -1
  8. package/dist/modes/interactive/interactive-mode.d.ts +2 -1
  9. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  10. package/dist/modes/interactive/interactive-mode.js +79 -31
  11. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  12. package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +40 -0
  13. package/node_modules/@code-yeongyu/senpi-codemode/package.json +4 -4
  14. package/node_modules/@code-yeongyu/senpi-codemode/src/extension/session-manager.ts +8 -3
  15. package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/shared/subprocess-kernel.ts +15 -1
  16. package/node_modules/@earendil-works/pi-agent-core/package.json +3 -3
  17. package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/stream-retry.d.ts +21 -0
  18. package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/stream-retry.d.ts.map +1 -0
  19. package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/stream-retry.js +36 -0
  20. package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/stream-retry.js.map +1 -0
  21. package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/types.d.ts +10 -0
  22. package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/types.d.ts.map +1 -1
  23. package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/types.js.map +1 -1
  24. package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.d.ts +6 -0
  25. package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.d.ts.map +1 -1
  26. package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.js +166 -26
  27. package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.js.map +1 -1
  28. package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
  29. package/node_modules/@earendil-works/pi-ai/dist/providers/data/github-copilot.json +1 -1
  30. package/node_modules/@earendil-works/pi-ai/dist/providers/data/google.json +1 -1
  31. package/node_modules/@earendil-works/pi-ai/dist/providers/data/nvidia.json +1 -1
  32. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json +1 -1
  33. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode.json +1 -1
  34. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
  35. package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
  36. package/node_modules/@earendil-works/pi-ai/package.json +2 -2
  37. package/node_modules/@earendil-works/pi-pty/package.json +1 -1
  38. package/node_modules/@earendil-works/pi-telemetry/package.json +1 -1
  39. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  40. package/package.json +7 -7
  41. package/dist/modes/interactive/split-trailing-assistant-text.d.ts +0 -7
  42. package/dist/modes/interactive/split-trailing-assistant-text.d.ts.map +0 -1
  43. package/dist/modes/interactive/split-trailing-assistant-text.js +0 -19
  44. package/dist/modes/interactive/split-trailing-assistant-text.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@earendil-works/pi-ai",
3
3
  "private": true,
4
- "version": "2026.8.21",
4
+ "version": "2026.8.22",
5
5
  "description": "Unified LLM API with automatic model discovery and provider configuration",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
@@ -74,7 +74,7 @@
74
74
  "@anthropic-ai/sdk": "0.91.1",
75
75
  "@aws-sdk/client-bedrock-runtime": "3.1115.0",
76
76
  "@bufbuild/protobuf": "2.14.0",
77
- "@earendil-works/pi-telemetry": "npm:@code-yeongyu/senpi-telemetry@2026.8.21",
77
+ "@earendil-works/pi-telemetry": "npm:@code-yeongyu/senpi-telemetry@2026.8.22",
78
78
  "@google/genai": "2.18.0",
79
79
  "@smithy/node-http-handler": "4.11.3",
80
80
  "@smithy/types": "4.17.2",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@earendil-works/pi-pty",
3
3
  "private": true,
4
- "version": "2026.8.21",
4
+ "version": "2026.8.22",
5
5
  "description": "Typed PTY session loader for Senpi persistent terminals",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@earendil-works/pi-telemetry",
3
- "version": "2026.8.21",
3
+ "version": "2026.8.22",
4
4
  "private": true,
5
5
  "description": "Vendor-neutral telemetry contracts and typed schema utilities for pi",
6
6
  "type": "module",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@earendil-works/pi-tui",
3
3
  "private": true,
4
- "version": "2026.8.21",
4
+ "version": "2026.8.22",
5
5
  "description": "Terminal User Interface library with differential rendering for efficient text-based applications",
6
6
  "type": "module",
7
7
  "main": "dist/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/senpi",
3
- "version": "2026.8.21",
3
+ "version": "2026.8.22",
4
4
  "description": "Coding agent CLI with read, bash, edit, write tools and session management",
5
5
  "type": "module",
6
6
  "piConfig": {
@@ -50,11 +50,11 @@
50
50
  "@anthropic-ai/sdk": "0.91.1",
51
51
  "@aws-sdk/client-bedrock-runtime": "3.1115.0",
52
52
  "@bufbuild/protobuf": "2.14.0",
53
- "@code-yeongyu/senpi-codemode": "2026.8.21",
54
- "@earendil-works/pi-agent-core": "npm:@code-yeongyu/senpi-agent-core@2026.8.21",
55
- "@earendil-works/pi-ai": "npm:@code-yeongyu/senpi-ai@2026.8.21",
56
- "@earendil-works/pi-pty": "npm:@code-yeongyu/senpi-pty@2026.8.21",
57
- "@earendil-works/pi-tui": "npm:@code-yeongyu/senpi-tui@2026.8.21",
53
+ "@code-yeongyu/senpi-codemode": "2026.8.22",
54
+ "@earendil-works/pi-agent-core": "npm:@code-yeongyu/senpi-agent-core@2026.8.22",
55
+ "@earendil-works/pi-ai": "npm:@code-yeongyu/senpi-ai@2026.8.22",
56
+ "@earendil-works/pi-pty": "npm:@code-yeongyu/senpi-pty@2026.8.22",
57
+ "@earendil-works/pi-tui": "npm:@code-yeongyu/senpi-tui@2026.8.22",
58
58
  "@modelcontextprotocol/sdk": "1.30.0",
59
59
  "@mozilla/readability": "0.6.0",
60
60
  "@opentelemetry/api": "1.9.1",
@@ -117,7 +117,7 @@
117
117
  "@csstools/css-parser-algorithms": "4.0.0",
118
118
  "@csstools/css-syntax-patches-for-csstree": "1.1.8",
119
119
  "@csstools/css-tokenizer": "4.0.0",
120
- "@earendil-works/pi-telemetry": "npm:@code-yeongyu/senpi-telemetry@2026.8.21",
120
+ "@earendil-works/pi-telemetry": "npm:@code-yeongyu/senpi-telemetry@2026.8.22",
121
121
  "@exodus/bytes": "1.15.1",
122
122
  "@google/genai": "2.18.0",
123
123
  "@hono/node-server": "2.1.1",
@@ -1,7 +0,0 @@
1
- import type { AssistantMessage, TextContent, ThinkingContent } from "@earendil-works/pi-ai/compat";
2
- export type TrailingAssistantSplit = {
3
- head: AssistantMessage["content"];
4
- tail: Array<TextContent | ThinkingContent>;
5
- };
6
- export declare function splitTrailingAssistantContent(content: AssistantMessage["content"]): TrailingAssistantSplit;
7
- //# sourceMappingURL=split-trailing-assistant-text.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"split-trailing-assistant-text.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/split-trailing-assistant-text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnG,MAAM,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAClC,IAAI,EAAE,KAAK,CAAC,WAAW,GAAG,eAAe,CAAC,CAAC;CAC3C,CAAC;AAEF,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,GAAG,sBAAsB,CAiB1G"}
@@ -1,19 +0,0 @@
1
- export function splitTrailingAssistantContent(content) {
2
- let lastTool = -1;
3
- for (let i = 0; i < content.length; i++) {
4
- if (content[i]?.type === "toolCall") {
5
- lastTool = i;
6
- }
7
- }
8
- if (lastTool < 0 || lastTool === content.length - 1) {
9
- return { head: content, tail: [] };
10
- }
11
- const tail = content
12
- .slice(lastTool + 1)
13
- .filter((block) => block.type === "text" || block.type === "thinking");
14
- if (tail.length === 0) {
15
- return { head: content, tail: [] };
16
- }
17
- return { head: content.slice(0, lastTool + 1), tail };
18
- }
19
- //# sourceMappingURL=split-trailing-assistant-text.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"split-trailing-assistant-text.js","sourceRoot":"","sources":["../../../src/modes/interactive/split-trailing-assistant-text.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,6BAA6B,CAAC,OAAoC;IACjF,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;YACrC,QAAQ,GAAG,CAAC,CAAC;QACd,CAAC;IACF,CAAC;IACD,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACpC,CAAC;IACD,MAAM,IAAI,GAAG,OAAO;SAClB,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;SACnB,MAAM,CAAC,CAAC,KAAK,EAA0C,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IAChH,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACpC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;AACvD,CAAC","sourcesContent":["import type { AssistantMessage, TextContent, ThinkingContent } from \"@earendil-works/pi-ai/compat\";\n\nexport type TrailingAssistantSplit = {\n\thead: AssistantMessage[\"content\"];\n\ttail: Array<TextContent | ThinkingContent>;\n};\n\nexport function splitTrailingAssistantContent(content: AssistantMessage[\"content\"]): TrailingAssistantSplit {\n\tlet lastTool = -1;\n\tfor (let i = 0; i < content.length; i++) {\n\t\tif (content[i]?.type === \"toolCall\") {\n\t\t\tlastTool = i;\n\t\t}\n\t}\n\tif (lastTool < 0 || lastTool === content.length - 1) {\n\t\treturn { head: content, tail: [] };\n\t}\n\tconst tail = content\n\t\t.slice(lastTool + 1)\n\t\t.filter((block): block is TextContent | ThinkingContent => block.type === \"text\" || block.type === \"thinking\");\n\tif (tail.length === 0) {\n\t\treturn { head: content, tail: [] };\n\t}\n\treturn { head: content.slice(0, lastTool + 1), tail };\n}\n"]}