@esso0428/pi-subagents 0.15.5 → 0.15.7
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 +10 -19
- package/README.md +5 -5
- package/dist/agent-history-list.d.ts +19 -0
- package/dist/agent-history-list.d.ts.map +1 -0
- package/dist/agent-history-list.js +69 -0
- package/dist/agent-history-list.js.map +1 -0
- package/dist/agent-history.d.ts +2 -1
- package/dist/agent-history.d.ts.map +1 -0
- package/dist/agent-history.js +32 -34
- package/dist/agent-history.js.map +1 -0
- package/dist/agent-manager.d.ts +24 -8
- package/dist/agent-manager.d.ts.map +1 -0
- package/dist/agent-manager.js +171 -93
- package/dist/agent-manager.js.map +1 -0
- package/dist/agent-runner.d.ts +1 -0
- package/dist/agent-runner.d.ts.map +1 -0
- package/dist/agent-runner.js +75 -86
- package/dist/agent-runner.js.map +1 -0
- package/dist/agent-types.d.ts +1 -0
- package/dist/agent-types.d.ts.map +1 -0
- package/dist/agent-types.js +28 -45
- package/dist/agent-types.js.map +1 -0
- package/dist/context.d.ts +1 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +3 -6
- package/dist/context.js.map +1 -0
- package/dist/cross-extension-rpc.d.ts +1 -0
- package/dist/cross-extension-rpc.d.ts.map +1 -0
- package/dist/cross-extension-rpc.js +6 -9
- package/dist/cross-extension-rpc.js.map +1 -0
- package/dist/custom-agents.d.ts +1 -0
- package/dist/custom-agents.d.ts.map +1 -0
- package/dist/custom-agents.js +16 -18
- package/dist/custom-agents.js.map +1 -0
- package/dist/default-agents.d.ts +1 -0
- package/dist/default-agents.d.ts.map +1 -0
- package/dist/default-agents.js +2 -4
- package/dist/default-agents.js.map +1 -0
- package/dist/enabled-models.d.ts +1 -0
- package/dist/enabled-models.d.ts.map +1 -0
- package/dist/enabled-models.js +12 -16
- package/dist/enabled-models.js.map +1 -0
- package/dist/env.d.ts +1 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +2 -4
- package/dist/env.js.map +1 -0
- package/dist/group-join.d.ts +1 -0
- package/dist/group-join.d.ts.map +1 -0
- package/dist/group-join.js +2 -5
- package/dist/group-join.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +306 -292
- package/dist/index.js.map +1 -0
- package/dist/invocation-config.d.ts +1 -0
- package/dist/invocation-config.d.ts.map +1 -0
- package/dist/invocation-config.js +3 -6
- package/dist/invocation-config.js.map +1 -0
- package/dist/memory.d.ts +1 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +25 -34
- package/dist/memory.js.map +1 -0
- package/dist/model-resolver.d.ts +1 -0
- package/dist/model-resolver.d.ts.map +1 -0
- package/dist/model-resolver.js +2 -4
- package/dist/model-resolver.js.map +1 -0
- package/dist/nico-overrides.d.ts +1 -0
- package/dist/nico-overrides.d.ts.map +1 -0
- package/dist/nico-overrides.js +15 -20
- package/dist/nico-overrides.js.map +1 -0
- package/dist/output-file.d.ts +1 -0
- package/dist/output-file.d.ts.map +1 -0
- package/dist/output-file.js +17 -22
- package/dist/output-file.js.map +1 -0
- package/dist/prompts.d.ts +1 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +2 -4
- package/dist/prompts.js.map +1 -0
- package/dist/schedule-store.d.ts +1 -0
- package/dist/schedule-store.d.ts.map +1 -0
- package/dist/schedule-store.js +17 -21
- package/dist/schedule-store.js.map +1 -0
- package/dist/schedule.d.ts +1 -0
- package/dist/schedule.d.ts.map +1 -0
- package/dist/schedule.js +9 -12
- package/dist/schedule.js.map +1 -0
- package/dist/settings.d.ts +1 -0
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +16 -23
- package/dist/settings.js.map +1 -0
- package/dist/skill-loader.d.ts +1 -0
- package/dist/skill-loader.d.ts.map +1 -0
- package/dist/skill-loader.js +21 -23
- package/dist/skill-loader.js.map +1 -0
- package/dist/status-note.d.ts +1 -0
- package/dist/status-note.d.ts.map +1 -0
- package/dist/status-note.js +2 -4
- package/dist/status-note.js.map +1 -0
- package/dist/types.d.ts +5 -1
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -4
- package/dist/types.js.map +1 -0
- package/dist/ui/agent-widget.d.ts +2 -5
- package/dist/ui/agent-widget.d.ts.map +1 -0
- package/dist/ui/agent-widget.js +29 -51
- package/dist/ui/agent-widget.js.map +1 -0
- package/dist/ui/ccstyle/diff/ansi-utils.d.ts +11 -0
- package/dist/ui/ccstyle/diff/ansi-utils.d.ts.map +1 -0
- package/dist/ui/ccstyle/diff/ansi-utils.js +145 -0
- package/dist/ui/ccstyle/diff/ansi-utils.js.map +1 -0
- package/dist/ui/ccstyle/diff/diff-presentation.d.ts +12 -0
- package/dist/ui/ccstyle/diff/diff-presentation.d.ts.map +1 -0
- package/dist/ui/ccstyle/diff/diff-presentation.js +49 -0
- package/dist/ui/ccstyle/diff/diff-presentation.js.map +1 -0
- package/dist/ui/ccstyle/diff/diff-renderer.d.ts +46 -0
- package/dist/ui/ccstyle/diff/diff-renderer.d.ts.map +1 -0
- package/dist/ui/ccstyle/diff/diff-renderer.js +2044 -0
- package/dist/ui/ccstyle/diff/diff-renderer.js.map +1 -0
- package/dist/ui/ccstyle/diff/line-width-safety.d.ts +12 -0
- package/dist/ui/ccstyle/diff/line-width-safety.d.ts.map +1 -0
- package/dist/ui/ccstyle/diff/line-width-safety.js +59 -0
- package/dist/ui/ccstyle/diff/line-width-safety.js.map +1 -0
- package/dist/ui/ccstyle/diff/render-utils.d.ts +6 -0
- package/dist/ui/ccstyle/diff/render-utils.d.ts.map +1 -0
- package/dist/ui/ccstyle/diff/render-utils.js +25 -0
- package/dist/ui/ccstyle/diff/render-utils.js.map +1 -0
- package/dist/ui/ccstyle/diff/types.d.ts +22 -0
- package/dist/ui/ccstyle/diff/types.d.ts.map +1 -0
- package/dist/ui/ccstyle/diff/types.js +10 -0
- package/dist/ui/ccstyle/diff/types.js.map +1 -0
- package/dist/ui/ccstyle/diff/write-display-utils.d.ts +2 -0
- package/dist/ui/ccstyle/diff/write-display-utils.d.ts.map +1 -0
- package/dist/ui/ccstyle/diff/write-display-utils.js +12 -0
- package/dist/ui/ccstyle/diff/write-display-utils.js.map +1 -0
- package/dist/ui/ccstyle/tool-renderer.d.ts +17 -0
- package/dist/ui/ccstyle/tool-renderer.d.ts.map +1 -0
- package/dist/ui/ccstyle/tool-renderer.js +58 -0
- package/dist/ui/ccstyle/tool-renderer.js.map +1 -0
- package/dist/ui/ccstyle/tool-result.d.ts +24 -0
- package/dist/ui/ccstyle/tool-result.d.ts.map +1 -0
- package/dist/ui/ccstyle/tool-result.js +193 -0
- package/dist/ui/ccstyle/tool-result.js.map +1 -0
- package/dist/ui/conversation-blocks.d.ts +46 -0
- package/dist/ui/conversation-blocks.d.ts.map +1 -0
- package/dist/ui/conversation-blocks.js +306 -0
- package/dist/ui/conversation-blocks.js.map +1 -0
- package/dist/ui/conversation-nvim.d.ts +8 -0
- package/dist/ui/conversation-nvim.d.ts.map +1 -0
- package/dist/ui/conversation-nvim.js +117 -0
- package/dist/ui/conversation-nvim.js.map +1 -0
- package/dist/ui/conversation-role.d.ts +13 -0
- package/dist/ui/conversation-role.d.ts.map +1 -0
- package/dist/ui/conversation-role.js +39 -0
- package/dist/ui/conversation-role.js.map +1 -0
- package/dist/ui/conversation-search.d.ts +39 -0
- package/dist/ui/conversation-search.d.ts.map +1 -0
- package/dist/ui/conversation-search.js +124 -0
- package/dist/ui/conversation-search.js.map +1 -0
- package/dist/ui/conversation-timeline.d.ts +62 -0
- package/dist/ui/conversation-timeline.d.ts.map +1 -0
- package/dist/ui/conversation-timeline.js +263 -0
- package/dist/ui/conversation-timeline.js.map +1 -0
- package/dist/ui/conversation-viewer.d.ts +62 -20
- package/dist/ui/conversation-viewer.d.ts.map +1 -0
- package/dist/ui/conversation-viewer.js +449 -224
- package/dist/ui/conversation-viewer.js.map +1 -0
- package/dist/ui/fleet-list.d.ts +24 -11
- package/dist/ui/fleet-list.d.ts.map +1 -0
- package/dist/ui/fleet-list.js +86 -78
- package/dist/ui/fleet-list.js.map +1 -0
- package/dist/ui/schedule-menu.d.ts +1 -0
- package/dist/ui/schedule-menu.d.ts.map +1 -0
- package/dist/ui/schedule-menu.js +2 -4
- package/dist/ui/schedule-menu.js.map +1 -0
- package/dist/ui/viewer-keys.d.ts +1 -0
- package/dist/ui/viewer-keys.d.ts.map +1 -0
- package/dist/ui/viewer-keys.js +8 -10
- package/dist/ui/viewer-keys.js.map +1 -0
- package/dist/usage.d.ts +1 -0
- package/dist/usage.d.ts.map +1 -0
- package/dist/usage.js +5 -10
- package/dist/usage.js.map +1 -0
- package/dist/worktree.d.ts +1 -0
- package/dist/worktree.d.ts.map +1 -0
- package/dist/worktree.js +27 -31
- package/dist/worktree.js.map +1 -0
- package/dist/write-execution.d.ts +42 -0
- package/dist/write-execution.d.ts.map +1 -0
- package/dist/write-execution.js +138 -0
- package/dist/write-execution.js.map +1 -0
- package/package.json +1 -1
- package/src/agent-history-list.ts +91 -0
- package/src/agent-history.ts +12 -17
- package/src/agent-manager.ts +169 -81
- package/src/agent-runner.ts +12 -13
- package/src/index.ts +117 -98
- package/src/output-file.ts +1 -1
- package/src/types.ts +4 -1
- package/src/ui/agent-widget.ts +3 -9
- package/src/ui/ccstyle/ATTRIBUTION.md +37 -0
- package/src/ui/ccstyle/diff/ansi-utils.ts +168 -0
- package/src/ui/ccstyle/diff/diff-presentation.ts +70 -0
- package/src/ui/ccstyle/diff/diff-renderer.ts +3148 -0
- package/src/ui/ccstyle/diff/line-width-safety.ts +92 -0
- package/src/ui/ccstyle/diff/render-utils.ts +32 -0
- package/src/ui/ccstyle/diff/types.ts +33 -0
- package/src/ui/ccstyle/diff/write-display-utils.ts +12 -0
- package/src/ui/ccstyle/tool-renderer.ts +71 -0
- package/src/ui/ccstyle/tool-result.ts +238 -0
- package/src/ui/conversation-blocks.ts +404 -0
- package/src/ui/conversation-nvim.ts +127 -0
- package/src/ui/conversation-role.ts +45 -0
- package/src/ui/conversation-search.ts +161 -0
- package/src/ui/conversation-timeline.ts +315 -0
- package/src/ui/conversation-viewer.ts +418 -210
- package/src/ui/fleet-list.ts +73 -52
- package/src/write-execution.ts +180 -0
- package/test/agent-history-list.test.ts +121 -0
- package/test/agent-manager-history.test.ts +59 -58
- package/test/agent-menu-history-navigation.test.ts +86 -0
- package/test/output-file-history.test.ts +50 -0
- package/test/ui/conversation-blocks.test.ts +103 -0
- package/test/ui/conversation-diff.test.ts +91 -0
- package/test/ui/conversation-search.test.ts +55 -0
- package/test/ui/conversation-viewer.test.ts +182 -0
- package/test/ui/fleet-list.test.ts +131 -0
- package/test/write-execution.test.ts +83 -0
- package/tsconfig.json +16 -0
- package/vitest.temp.config.mts +6 -0
- package/dist/ui/markdown-result.d.ts +0 -3
- package/dist/ui/markdown-result.js +0 -53
- package/src/ui/markdown-result.ts +0 -56
- package/test/agent-history.test.ts +0 -63
- package/test/ui/markdown-result.test.ts +0 -45
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-note.d.ts","sourceRoot":"","sources":["../src/status-note.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAWpD"}
|
package/dist/status-note.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* status-note.ts — Parenthetical status note appended to agent result text.
|
|
4
3
|
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getStatusNote = getStatusNote;
|
|
7
4
|
/**
|
|
8
5
|
* Explicit parenthetical note for a non-normal terminal outcome, so the parent
|
|
9
6
|
* agent can't mistake partial output for a completed result. Empty string for a
|
|
@@ -13,7 +10,7 @@ exports.getStatusNote = getStatusNote;
|
|
|
13
10
|
* turn limit was hit) — the parent should treat human intervention differently
|
|
14
11
|
* from a budget cutoff.
|
|
15
12
|
*/
|
|
16
|
-
function getStatusNote(status) {
|
|
13
|
+
export function getStatusNote(status) {
|
|
17
14
|
switch (status) {
|
|
18
15
|
case "stopped":
|
|
19
16
|
return " (STOPPED BY THE USER before completion — output is partial; the task was NOT finished)";
|
|
@@ -25,3 +22,4 @@ function getStatusNote(status) {
|
|
|
25
22
|
return "";
|
|
26
23
|
}
|
|
27
24
|
}
|
|
25
|
+
//# sourceMappingURL=status-note.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-note.js","sourceRoot":"","sources":["../src/status-note.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,yFAAyF,CAAC;QACnG,KAAK,SAAS;YACZ,OAAO,6EAA6E,CAAC;QACvF,KAAK,SAAS;YACZ,OAAO,yDAAyD,CAAC;QACnE;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -134,6 +134,10 @@ export interface AgentRecord {
|
|
|
134
134
|
export interface AgentInvocation {
|
|
135
135
|
/** Short display name, e.g. "haiku" — only set when different from parent. */
|
|
136
136
|
modelName?: string;
|
|
137
|
+
/** Effective model captured from the child session, including inherited models. */
|
|
138
|
+
effectiveModelName?: string;
|
|
139
|
+
/** Requested/ effective thinking level. */
|
|
140
|
+
effectiveThinking?: AgentSession["thinkingLevel"];
|
|
137
141
|
thinking?: ThinkingLevel;
|
|
138
142
|
maxTurns?: number;
|
|
139
143
|
isolated?: boolean;
|
|
@@ -154,7 +158,6 @@ export interface NotificationDetails {
|
|
|
154
158
|
outputFile?: string;
|
|
155
159
|
error?: string;
|
|
156
160
|
resultPreview: string;
|
|
157
|
-
resultText?: string;
|
|
158
161
|
/** Additional agents in a group notification. */
|
|
159
162
|
others?: NotificationDetails[];
|
|
160
163
|
}
|
|
@@ -200,3 +203,4 @@ export interface ScheduleStoreData {
|
|
|
200
203
|
version: 1;
|
|
201
204
|
jobs: ScheduledSubagent[];
|
|
202
205
|
}
|
|
206
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,uEAAuE;AACvE,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,kDAAkD;AAClD,eAAO,MAAM,mBAAmB,iDAAkD,CAAC;AAEnF,gDAAgD;AAChD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEvD,0CAA0C;AAC1C,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC;AAEvC,mFAAmF;AACnF,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;+EAC2E;IAC3E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,qGAAqG;IACrG,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,+DAA+D;IAC/D,UAAU,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC;IACpC;+EAC2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,+DAA+D;IAC/D,MAAM,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yFAAyF;IACzF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wGAAwG;IACxG,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,2GAA2G;IAC3G,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,SAAS,GAAG,QAAQ,CAAC;IACjC,+EAA+E;IAC/E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wEAAwE;IACxE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4FAA4F;IAC5F,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,+DAA+D;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;CAC3C;AAED,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,YAAY,GAAG,KAAK,CAAC;AAEtD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACzF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,yGAAyG;IACzG,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,qEAAqE;IACrE,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/E,sDAAsD;IACtD,cAAc,CAAC,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B;;;;OAIG;IACH,aAAa,EAAE,aAAa,CAAC;IAC7B,qFAAqF;IACrF,eAAe,EAAE,MAAM,CAAC;IACxB;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED,6EAA6E;AAC7E,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IAC3C,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,aAAa,EAAE,YAAY,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,aAAa,CAAC;IAG1B,OAAO,EAAE,OAAO,CAAC;IACjB,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAC7C,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,EAAE,iBAAiB,EAAE,CAAC;CAC3B"}
|
package/dist/types.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* types.ts — Type definitions for the subagent system.
|
|
4
3
|
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.DEFAULT_AGENT_NAMES = void 0;
|
|
7
4
|
/** Names of the three embedded default agents. */
|
|
8
|
-
|
|
5
|
+
export const DEFAULT_AGENT_NAMES = ["general-purpose", "Explore", "Plan"];
|
|
6
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,kDAAkD;AAClD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,iBAAiB,EAAE,SAAS,EAAE,MAAM,CAAU,CAAC"}
|
|
@@ -102,8 +102,6 @@ export declare class AgentWidget {
|
|
|
102
102
|
* extension supplies one defaulting to `"background"`.
|
|
103
103
|
*/
|
|
104
104
|
private mode;
|
|
105
|
-
/** Current project cwd used to validate reload-restored transcripts. */
|
|
106
|
-
private getCwd;
|
|
107
105
|
private uiCtx;
|
|
108
106
|
private widgetFrame;
|
|
109
107
|
private widgetInterval;
|
|
@@ -123,9 +121,7 @@ export declare class AgentWidget {
|
|
|
123
121
|
* `WidgetMode`. Defaults to `"all"` when a caller supplies no policy; the
|
|
124
122
|
* extension supplies one defaulting to `"background"`.
|
|
125
123
|
*/
|
|
126
|
-
mode?: () => WidgetMode
|
|
127
|
-
/** Current project cwd used to validate reload-restored transcripts. */
|
|
128
|
-
getCwd?: () => string | undefined);
|
|
124
|
+
mode?: () => WidgetMode);
|
|
129
125
|
/**
|
|
130
126
|
* Agents eligible for the widget, per the current `WidgetMode`:
|
|
131
127
|
* - `off`: none (the widget's existing empty-state path hides it entirely).
|
|
@@ -162,3 +158,4 @@ export declare class AgentWidget {
|
|
|
162
158
|
update(): void;
|
|
163
159
|
dispose(): void;
|
|
164
160
|
}
|
|
161
|
+
//# sourceMappingURL=agent-widget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-widget.d.ts","sourceRoot":"","sources":["../../src/ui/agent-widget.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/agent-widget.js
CHANGED
|
@@ -1,33 +1,19 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* agent-widget.ts — Persistent widget showing running/completed agents above the editor.
|
|
4
3
|
*
|
|
5
4
|
* Displays a tree of agents with animated spinners, live stats, and activity descriptions.
|
|
6
5
|
* Uses the callback form of setWidget for themed rendering.
|
|
7
6
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
exports.formatTokens = formatTokens;
|
|
12
|
-
exports.formatSessionTokens = formatSessionTokens;
|
|
13
|
-
exports.formatTurns = formatTurns;
|
|
14
|
-
exports.formatMs = formatMs;
|
|
15
|
-
exports.formatDuration = formatDuration;
|
|
16
|
-
exports.getDisplayName = getDisplayName;
|
|
17
|
-
exports.getPromptModeLabel = getPromptModeLabel;
|
|
18
|
-
exports.buildInvocationTags = buildInvocationTags;
|
|
19
|
-
exports.describeActivity = describeActivity;
|
|
20
|
-
const pi_tui_1 = require("@earendil-works/pi-tui");
|
|
21
|
-
const agent_history_js_1 = require("../agent-history.js");
|
|
22
|
-
const agent_types_js_1 = require("../agent-types.js");
|
|
23
|
-
const usage_js_1 = require("../usage.js");
|
|
7
|
+
import { truncateToWidth } from "@earendil-works/pi-tui";
|
|
8
|
+
import { getConfig } from "../agent-types.js";
|
|
9
|
+
import { getLifetimeTotal, getSessionContextPercent } from "../usage.js";
|
|
24
10
|
// ---- Constants ----
|
|
25
11
|
/** Maximum number of rendered lines before overflow collapse kicks in. */
|
|
26
12
|
const MAX_WIDGET_LINES = 12;
|
|
27
13
|
/** Braille spinner frames for animated running indicator. */
|
|
28
|
-
|
|
14
|
+
export const SPINNER = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
|
|
29
15
|
/** Statuses that indicate an error/non-success outcome (used for linger behavior and icon rendering). */
|
|
30
|
-
|
|
16
|
+
export const ERROR_STATUSES = new Set(["error", "aborted", "steered", "stopped"]);
|
|
31
17
|
/** Tool name → human-readable action for activity descriptions. */
|
|
32
18
|
const TOOL_DISPLAY = {
|
|
33
19
|
read: "reading",
|
|
@@ -40,13 +26,13 @@ const TOOL_DISPLAY = {
|
|
|
40
26
|
};
|
|
41
27
|
// ---- Formatting helpers ----
|
|
42
28
|
/** Apply foreground styling while restoring it after nested foreground/full ANSI resets. */
|
|
43
|
-
function fgPreservingNestedStyles(theme, color, text) {
|
|
29
|
+
export function fgPreservingNestedStyles(theme, color, text) {
|
|
44
30
|
const styledEmpty = theme.fg(color, "");
|
|
45
31
|
const styleStart = styledEmpty.replace(/\u001b\[(?:0|39)m/g, "");
|
|
46
32
|
return theme.fg(color, text.replace(/\u001b\[(?:0|39)m/g, reset => `${reset}${styleStart}`));
|
|
47
33
|
}
|
|
48
34
|
/** Format a token count compactly: "33.8k token", "1.2M token". */
|
|
49
|
-
function formatTokens(count) {
|
|
35
|
+
export function formatTokens(count) {
|
|
50
36
|
if (count >= 1_000_000)
|
|
51
37
|
return `${(count / 1_000_000).toFixed(1)}M token`;
|
|
52
38
|
if (count >= 1_000)
|
|
@@ -63,7 +49,7 @@ function formatTokens(count) {
|
|
|
63
49
|
* "12.3k token (⇊2)" — compactions only (e.g. right after compact)
|
|
64
50
|
* "12.3k token (45% · ⇊2)" — both
|
|
65
51
|
*/
|
|
66
|
-
function formatSessionTokens(tokens, percent, theme, compactions = 0) {
|
|
52
|
+
export function formatSessionTokens(tokens, percent, theme, compactions = 0) {
|
|
67
53
|
const tokenStr = formatTokens(tokens);
|
|
68
54
|
const annot = [];
|
|
69
55
|
if (percent !== null) {
|
|
@@ -78,35 +64,36 @@ function formatSessionTokens(tokens, percent, theme, compactions = 0) {
|
|
|
78
64
|
return `${tokenStr} (${annot.join(" · ")})`;
|
|
79
65
|
}
|
|
80
66
|
/** Format turn count with optional max limit: "↻5≤30" or "↻5". */
|
|
81
|
-
function formatTurns(turnCount, maxTurns) {
|
|
67
|
+
export function formatTurns(turnCount, maxTurns) {
|
|
82
68
|
return maxTurns != null ? `↻${turnCount}≤${maxTurns}` : `↻${turnCount}`;
|
|
83
69
|
}
|
|
84
70
|
/** Format milliseconds as human-readable duration. */
|
|
85
|
-
function formatMs(ms) {
|
|
71
|
+
export function formatMs(ms) {
|
|
86
72
|
return `${(ms / 1000).toFixed(1)}s`;
|
|
87
73
|
}
|
|
88
74
|
/** Format duration from start/completed timestamps. */
|
|
89
|
-
function formatDuration(startedAt, completedAt) {
|
|
75
|
+
export function formatDuration(startedAt, completedAt) {
|
|
90
76
|
if (completedAt)
|
|
91
77
|
return formatMs(completedAt - startedAt);
|
|
92
78
|
return `${formatMs(Date.now() - startedAt)} (running)`;
|
|
93
79
|
}
|
|
94
80
|
/** Get display name for any agent type (built-in or custom). */
|
|
95
|
-
function getDisplayName(type) {
|
|
96
|
-
return
|
|
81
|
+
export function getDisplayName(type) {
|
|
82
|
+
return getConfig(type).displayName;
|
|
97
83
|
}
|
|
98
84
|
/** Short label for prompt mode: "twin" for append, nothing for replace (the default). */
|
|
99
|
-
function getPromptModeLabel(type) {
|
|
100
|
-
const config =
|
|
85
|
+
export function getPromptModeLabel(type) {
|
|
86
|
+
const config = getConfig(type);
|
|
101
87
|
return config.promptMode === "append" ? "twin" : undefined;
|
|
102
88
|
}
|
|
103
89
|
/** Mode label is not included — callers add it where they want it. */
|
|
104
|
-
function buildInvocationTags(invocation) {
|
|
90
|
+
export function buildInvocationTags(invocation) {
|
|
105
91
|
const tags = [];
|
|
106
92
|
if (!invocation)
|
|
107
93
|
return { tags };
|
|
108
|
-
|
|
109
|
-
|
|
94
|
+
const thinking = invocation.effectiveThinking ?? invocation.thinking;
|
|
95
|
+
if (thinking)
|
|
96
|
+
tags.push(`thinking: ${thinking}`);
|
|
110
97
|
if (invocation.isolated)
|
|
111
98
|
tags.push("isolated");
|
|
112
99
|
if (invocation.isolation === "worktree")
|
|
@@ -127,7 +114,7 @@ function truncateLine(text, len = 60) {
|
|
|
127
114
|
return line.slice(0, len) + "…";
|
|
128
115
|
}
|
|
129
116
|
/** Build a human-readable activity string from currently-running tools or response text. */
|
|
130
|
-
function describeActivity(activeTools, responseText) {
|
|
117
|
+
export function describeActivity(activeTools, responseText) {
|
|
131
118
|
if (activeTools.size > 0) {
|
|
132
119
|
const groups = new Map();
|
|
133
120
|
for (const toolName of activeTools.values()) {
|
|
@@ -152,11 +139,10 @@ function describeActivity(activeTools, responseText) {
|
|
|
152
139
|
return "thinking…";
|
|
153
140
|
}
|
|
154
141
|
// ---- Widget manager ----
|
|
155
|
-
class AgentWidget {
|
|
142
|
+
export class AgentWidget {
|
|
156
143
|
manager;
|
|
157
144
|
agentActivity;
|
|
158
145
|
mode;
|
|
159
|
-
getCwd;
|
|
160
146
|
uiCtx;
|
|
161
147
|
widgetFrame = 0;
|
|
162
148
|
widgetInterval;
|
|
@@ -176,13 +162,10 @@ class AgentWidget {
|
|
|
176
162
|
* `WidgetMode`. Defaults to `"all"` when a caller supplies no policy; the
|
|
177
163
|
* extension supplies one defaulting to `"background"`.
|
|
178
164
|
*/
|
|
179
|
-
mode = () => "all"
|
|
180
|
-
/** Current project cwd used to validate reload-restored transcripts. */
|
|
181
|
-
getCwd = () => undefined) {
|
|
165
|
+
mode = () => "all") {
|
|
182
166
|
this.manager = manager;
|
|
183
167
|
this.agentActivity = agentActivity;
|
|
184
168
|
this.mode = mode;
|
|
185
|
-
this.getCwd = getCwd;
|
|
186
169
|
}
|
|
187
170
|
/**
|
|
188
171
|
* Agents eligible for the widget, per the current `WidgetMode`:
|
|
@@ -196,12 +179,7 @@ class AgentWidget {
|
|
|
196
179
|
* - `all`: every agent.
|
|
197
180
|
*/
|
|
198
181
|
widgetAgents() {
|
|
199
|
-
const all = this.manager.listAgents()
|
|
200
|
-
if (record.status === "running" || record.status === "queued")
|
|
201
|
-
return true;
|
|
202
|
-
const cwd = this.getCwd();
|
|
203
|
-
return cwd !== undefined && (0, agent_history_js_1.hasAgentHistory)(cwd, record.transcriptPath);
|
|
204
|
-
});
|
|
182
|
+
const all = this.manager.listAgents();
|
|
205
183
|
switch (this.mode()) {
|
|
206
184
|
case "off": return [];
|
|
207
185
|
case "background": return all.filter(a => a.isBackground !== false);
|
|
@@ -240,7 +218,7 @@ class AgentWidget {
|
|
|
240
218
|
/** Check if a finished agent should still be shown in the widget. */
|
|
241
219
|
shouldShowFinished(agentId, status) {
|
|
242
220
|
const age = this.finishedTurnAge.get(agentId) ?? 0;
|
|
243
|
-
const maxAge =
|
|
221
|
+
const maxAge = ERROR_STATUSES.has(status) ? AgentWidget.ERROR_LINGER_TURNS : 1;
|
|
244
222
|
return age < maxAge;
|
|
245
223
|
}
|
|
246
224
|
/** Record an agent as finished (call when agent completes). */
|
|
@@ -304,10 +282,10 @@ class AgentWidget {
|
|
|
304
282
|
if (!hasActive && !hasFinished)
|
|
305
283
|
return [];
|
|
306
284
|
const w = tui.terminal.columns;
|
|
307
|
-
const truncate = (line) =>
|
|
285
|
+
const truncate = (line) => truncateToWidth(line, w);
|
|
308
286
|
const headingColor = hasActive ? "accent" : "dim";
|
|
309
287
|
const headingIcon = hasActive ? "●" : "○";
|
|
310
|
-
const frame =
|
|
288
|
+
const frame = SPINNER[this.widgetFrame % SPINNER.length];
|
|
311
289
|
// Build sections separately for overflow-aware assembly.
|
|
312
290
|
// Each running agent = 2 lines (header + activity), finished = 1 line, queued = 1 line.
|
|
313
291
|
const finishedLines = [];
|
|
@@ -322,8 +300,8 @@ class AgentWidget {
|
|
|
322
300
|
const elapsed = formatMs(Date.now() - a.startedAt);
|
|
323
301
|
const bg = this.agentActivity.get(a.id);
|
|
324
302
|
const toolUses = bg?.toolUses ?? a.toolUses;
|
|
325
|
-
const tokens =
|
|
326
|
-
const contextPercent =
|
|
303
|
+
const tokens = getLifetimeTotal(bg?.lifetimeUsage);
|
|
304
|
+
const contextPercent = getSessionContextPercent(bg?.session);
|
|
327
305
|
const tokenText = tokens > 0 ? formatSessionTokens(tokens, contextPercent, theme, a.compactionCount) : "";
|
|
328
306
|
const parts = [];
|
|
329
307
|
if (bg)
|
|
@@ -505,4 +483,4 @@ class AgentWidget {
|
|
|
505
483
|
this.lastStatusText = undefined;
|
|
506
484
|
}
|
|
507
485
|
}
|
|
508
|
-
|
|
486
|
+
//# sourceMappingURL=agent-widget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-widget.js","sourceRoot":"","sources":["../../src/ui/agent-widget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare const ANSI_SGR_PATTERN: RegExp;
|
|
2
|
+
declare const STYLE_RESET_PARAMS: readonly [39, 22, 23, 24, 25, 27, 28, 29, 59];
|
|
3
|
+
export { ANSI_SGR_PATTERN, STYLE_RESET_PARAMS };
|
|
4
|
+
export declare function expandSgrReset(param: number): readonly number[] | undefined;
|
|
5
|
+
export declare function toSgrParams(rawParams: string): number[];
|
|
6
|
+
export declare function isFiniteSgrParam(value: number | undefined): value is number;
|
|
7
|
+
export declare function readSgrColorSequence(params: number[], index: number): number[] | undefined;
|
|
8
|
+
export declare function stripBackgroundSgrParams(params: readonly number[]): number[];
|
|
9
|
+
export declare function filterSgrSequences(text: string, filter: (params: number[]) => number[]): string;
|
|
10
|
+
export declare function sanitizeAnsiForThemedOutput(text: string): string;
|
|
11
|
+
//# sourceMappingURL=ansi-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ansi-utils.d.ts","sourceRoot":"","sources":["../../../../src/ui/ccstyle/diff/ansi-utils.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,gBAAgB,QAAsB,CAAC;AAE7C,QAAA,MAAM,kBAAkB,+CAAgD,CAAC;AAEzE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;AAEhD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAE3E;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAWvD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,IAAI,MAAM,CAE3E;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAsB1F;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAsC5E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,GAAG,MAAM,CAkB/F;AAmDD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOhE"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
const ANSI_SGR_PATTERN = /\x1b\[([0-9;]*)m/g;
|
|
2
|
+
const ANSI_SGR_WITH_COLON_PATTERN = /\x1b\[([0-9;:]*)m/g;
|
|
3
|
+
const STYLE_RESET_PARAMS = [39, 22, 23, 24, 25, 27, 28, 29, 59];
|
|
4
|
+
export { ANSI_SGR_PATTERN, STYLE_RESET_PARAMS };
|
|
5
|
+
export function expandSgrReset(param) {
|
|
6
|
+
return param === 0 ? STYLE_RESET_PARAMS : undefined;
|
|
7
|
+
}
|
|
8
|
+
export function toSgrParams(rawParams) {
|
|
9
|
+
if (!rawParams.trim()) {
|
|
10
|
+
return [0];
|
|
11
|
+
}
|
|
12
|
+
const parsed = rawParams
|
|
13
|
+
.split(";")
|
|
14
|
+
.map((token) => Number.parseInt(token, 10))
|
|
15
|
+
.filter((value) => Number.isFinite(value));
|
|
16
|
+
return parsed.length > 0 ? parsed : [];
|
|
17
|
+
}
|
|
18
|
+
export function isFiniteSgrParam(value) {
|
|
19
|
+
return typeof value === "number" && Number.isFinite(value);
|
|
20
|
+
}
|
|
21
|
+
export function readSgrColorSequence(params, index) {
|
|
22
|
+
const param = params[index];
|
|
23
|
+
if (param !== 38 && param !== 48) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
const colorMode = params[index + 1];
|
|
27
|
+
if (colorMode === 5) {
|
|
28
|
+
const colorValue = params[index + 2];
|
|
29
|
+
return isFiniteSgrParam(colorValue) ? [param, colorMode, colorValue] : undefined;
|
|
30
|
+
}
|
|
31
|
+
if (colorMode === 2) {
|
|
32
|
+
const red = params[index + 2];
|
|
33
|
+
const green = params[index + 3];
|
|
34
|
+
const blue = params[index + 4];
|
|
35
|
+
return isFiniteSgrParam(red) && isFiniteSgrParam(green) && isFiniteSgrParam(blue)
|
|
36
|
+
? [param, colorMode, red, green, blue]
|
|
37
|
+
: undefined;
|
|
38
|
+
}
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
export function stripBackgroundSgrParams(params) {
|
|
42
|
+
const sanitized = [];
|
|
43
|
+
for (let index = 0; index < params.length; index++) {
|
|
44
|
+
const param = params[index] ?? 0;
|
|
45
|
+
if (param === 0) {
|
|
46
|
+
sanitized.push(...expandSgrReset(param));
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
if (param === 49 || (param >= 40 && param <= 47) || (param >= 100 && param <= 107)) {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
if (param === 38 || param === 48) {
|
|
53
|
+
const sequence = readSgrColorSequence(params, index);
|
|
54
|
+
if (sequence) {
|
|
55
|
+
if (param === 38) {
|
|
56
|
+
sanitized.push(...sequence);
|
|
57
|
+
}
|
|
58
|
+
index += sequence.length - 1;
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
const advance = params[index + 1] === 5 ? 2 : params[index + 1] === 2 ? 4 : 0;
|
|
62
|
+
if (advance > 0) {
|
|
63
|
+
index += advance;
|
|
64
|
+
if (param === 38) {
|
|
65
|
+
sanitized.push(param);
|
|
66
|
+
}
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
sanitized.push(param);
|
|
71
|
+
}
|
|
72
|
+
return sanitized;
|
|
73
|
+
}
|
|
74
|
+
export function filterSgrSequences(text, filter) {
|
|
75
|
+
if (!text || !text.includes("\x1b[")) {
|
|
76
|
+
return text;
|
|
77
|
+
}
|
|
78
|
+
return text.replace(ANSI_SGR_PATTERN, (_sequence, rawParams) => {
|
|
79
|
+
const parsed = toSgrParams(rawParams);
|
|
80
|
+
if (parsed.length === 0) {
|
|
81
|
+
return "";
|
|
82
|
+
}
|
|
83
|
+
const sanitized = filter(parsed);
|
|
84
|
+
if (sanitized.length === 0) {
|
|
85
|
+
return "";
|
|
86
|
+
}
|
|
87
|
+
return `\x1b[${sanitized.join(";")}m`;
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
function isValidColonForeground(segment) {
|
|
91
|
+
const params = segment.split(":");
|
|
92
|
+
const isByte = (value) => value !== undefined && /^\d+$/.test(value) && Number(value) <= 255;
|
|
93
|
+
if (params[0] !== "38")
|
|
94
|
+
return false;
|
|
95
|
+
if (params[1] === "5")
|
|
96
|
+
return params.length === 3 && isByte(params[2]);
|
|
97
|
+
return (params[1] === "2" &&
|
|
98
|
+
params.length === 6 &&
|
|
99
|
+
(params[2] === "" || /^\d+$/.test(params[2] ?? "")) &&
|
|
100
|
+
params.slice(3).every(isByte));
|
|
101
|
+
}
|
|
102
|
+
function sanitizeColonSgr(rawParams) {
|
|
103
|
+
const segments = rawParams.split(";");
|
|
104
|
+
const sanitized = [];
|
|
105
|
+
for (let index = 0; index < segments.length; index++) {
|
|
106
|
+
const segment = segments[index] ?? "";
|
|
107
|
+
if (segment.includes(":")) {
|
|
108
|
+
const code = Number.parseInt(segment, 10);
|
|
109
|
+
if (code !== 48 && (code !== 38 || isValidColonForeground(segment))) {
|
|
110
|
+
sanitized.push(segment);
|
|
111
|
+
}
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
const param = Number.parseInt(segment, 10);
|
|
115
|
+
if (!Number.isFinite(param))
|
|
116
|
+
continue;
|
|
117
|
+
if (param === 0) {
|
|
118
|
+
sanitized.push(...STYLE_RESET_PARAMS.map(String));
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
if (param === 49 || (param >= 40 && param <= 47) || (param >= 100 && param <= 107)) {
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
if (param === 38 || param === 48) {
|
|
125
|
+
const mode = Number.parseInt(segments[index + 1] ?? "", 10);
|
|
126
|
+
const advance = mode === 5 ? 2 : mode === 2 ? 4 : 0;
|
|
127
|
+
if (advance > 0) {
|
|
128
|
+
if (param === 38)
|
|
129
|
+
sanitized.push(...segments.slice(index, index + advance + 1));
|
|
130
|
+
index += advance;
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
sanitized.push(segment);
|
|
135
|
+
}
|
|
136
|
+
return sanitized.length > 0 ? `\x1b[${sanitized.join(";")}m` : "";
|
|
137
|
+
}
|
|
138
|
+
export function sanitizeAnsiForThemedOutput(text) {
|
|
139
|
+
if (!text || !text.includes("\x1b["))
|
|
140
|
+
return text;
|
|
141
|
+
return text.replace(ANSI_SGR_WITH_COLON_PATTERN, (sequence, rawParams) => rawParams.includes(":")
|
|
142
|
+
? sanitizeColonSgr(rawParams)
|
|
143
|
+
: filterSgrSequences(sequence, stripBackgroundSgrParams));
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=ansi-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ansi-utils.js","sourceRoot":"","sources":["../../../../src/ui/ccstyle/diff/ansi-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ToolDisplayConfig } from "./types.js";
|
|
2
|
+
export interface DiffSummaryStats {
|
|
3
|
+
added: number;
|
|
4
|
+
removed: number;
|
|
5
|
+
hunks: number;
|
|
6
|
+
files: number;
|
|
7
|
+
}
|
|
8
|
+
export type DiffPresentationMode = "split" | "unified" | "compact" | "summary";
|
|
9
|
+
export declare function normalizeDiffRenderWidth(width: number): number;
|
|
10
|
+
export declare function resolveDiffPresentationMode(config: Pick<ToolDisplayConfig, "diffViewMode" | "diffSplitMinWidth">, width: number, canRenderSplitLayout: boolean): DiffPresentationMode;
|
|
11
|
+
export declare function buildDiffSummaryText(stats: DiffSummaryStats, width: number): string;
|
|
12
|
+
//# sourceMappingURL=diff-presentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-presentation.d.ts","sourceRoot":"","sources":["../../../../src/ui/ccstyle/diff/diff-presentation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAK/E,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED,wBAAgB,2BAA2B,CAC1C,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,cAAc,GAAG,mBAAmB,CAAC,EACrE,KAAK,EAAE,MAAM,EACb,oBAAoB,EAAE,OAAO,GAC3B,oBAAoB,CAkBtB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAsBnF"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { truncateToWidth, visibleWidth } from "@earendil-works/pi-tui";
|
|
2
|
+
import { pluralize } from "./render-utils.js";
|
|
3
|
+
const MIN_COMPACT_DIFF_WIDTH = 8;
|
|
4
|
+
const MIN_UNIFIED_DIFF_WIDTH = 18;
|
|
5
|
+
export function normalizeDiffRenderWidth(width) {
|
|
6
|
+
if (!Number.isFinite(width)) {
|
|
7
|
+
return 0;
|
|
8
|
+
}
|
|
9
|
+
return Math.max(0, Math.floor(width));
|
|
10
|
+
}
|
|
11
|
+
export function resolveDiffPresentationMode(config, width, canRenderSplitLayout) {
|
|
12
|
+
const safeWidth = normalizeDiffRenderWidth(width);
|
|
13
|
+
if (safeWidth < MIN_COMPACT_DIFF_WIDTH) {
|
|
14
|
+
return "summary";
|
|
15
|
+
}
|
|
16
|
+
if (safeWidth < MIN_UNIFIED_DIFF_WIDTH) {
|
|
17
|
+
return "compact";
|
|
18
|
+
}
|
|
19
|
+
switch (config.diffViewMode) {
|
|
20
|
+
case "split":
|
|
21
|
+
return canRenderSplitLayout ? "split" : "unified";
|
|
22
|
+
case "unified":
|
|
23
|
+
return "unified";
|
|
24
|
+
case "auto":
|
|
25
|
+
default:
|
|
26
|
+
return safeWidth >= (config.diffSplitMinWidth ?? 120) && canRenderSplitLayout ? "split" : "unified";
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export function buildDiffSummaryText(stats, width) {
|
|
30
|
+
const safeWidth = normalizeDiffRenderWidth(width);
|
|
31
|
+
if (safeWidth === 0) {
|
|
32
|
+
return "";
|
|
33
|
+
}
|
|
34
|
+
const summaryCandidates = [
|
|
35
|
+
`↳ diff +${stats.added} -${stats.removed} • ${stats.hunks} ${pluralize(stats.hunks, "hunk")} • ${stats.files} ${pluralize(stats.files, "file")}`,
|
|
36
|
+
`↳ diff +${stats.added} -${stats.removed} • ${stats.hunks}h • ${stats.files}f`,
|
|
37
|
+
`↳ diff +${stats.added} -${stats.removed}`,
|
|
38
|
+
`+${stats.added} -${stats.removed}`,
|
|
39
|
+
"diff",
|
|
40
|
+
"…",
|
|
41
|
+
];
|
|
42
|
+
for (const candidate of summaryCandidates) {
|
|
43
|
+
if (visibleWidth(candidate) <= safeWidth) {
|
|
44
|
+
return candidate;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return truncateToWidth(summaryCandidates[summaryCandidates.length - 1] ?? "", safeWidth, "");
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=diff-presentation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-presentation.js","sourceRoot":"","sources":["../../../../src/ui/ccstyle/diff/diff-presentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAY9C,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAElC,MAAM,UAAU,wBAAwB,CAAC,KAAa;IACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,CAAC;IACV,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,2BAA2B,CAC1C,MAAqE,EACrE,KAAa,EACb,oBAA6B;IAE7B,MAAM,SAAS,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI,SAAS,GAAG,sBAAsB,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,IAAI,SAAS,GAAG,sBAAsB,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,QAAQ,MAAM,CAAC,YAAY,EAAE,CAAC;QAC7B,KAAK,OAAO;YACX,OAAO,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACnD,KAAK,SAAS;YACb,OAAO,SAAS,CAAC;QAClB,KAAK,MAAM,CAAC;QACZ;YACC,OAAO,SAAS,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,GAAG,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACtG,CAAC;AACF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAuB,EAAE,KAAa;IAC1E,MAAM,SAAS,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,MAAM,iBAAiB,GAAG;QACzB,WAAW,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,MAAM,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;QAChJ,WAAW,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,MAAM,KAAK,CAAC,KAAK,OAAO,KAAK,CAAC,KAAK,GAAG;QAC9E,WAAW,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,EAAE;QAC1C,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,EAAE;QACnC,MAAM;QACN,GAAG;KACH,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;QAC3C,IAAI,YAAY,CAAC,SAAS,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1C,OAAO,SAAS,CAAC;QAClB,CAAC;IACF,CAAC;IAED,OAAO,eAAe,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AAC9F,CAAC"}
|