@diousk/pi-subagents-fast 0.20.0

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 (183) hide show
  1. package/CHANGELOG.md +808 -0
  2. package/CONTRIBUTING.md +72 -0
  3. package/LICENSE +21 -0
  4. package/README.md +1034 -0
  5. package/SECURITY.md +95 -0
  6. package/dist/abortable.d.ts +12 -0
  7. package/dist/abortable.js +42 -0
  8. package/dist/agent-color.d.ts +35 -0
  9. package/dist/agent-color.js +123 -0
  10. package/dist/agent-file-toggle.d.ts +125 -0
  11. package/dist/agent-file-toggle.js +260 -0
  12. package/dist/agent-manager.d.ts +472 -0
  13. package/dist/agent-manager.js +1338 -0
  14. package/dist/agent-runner.d.ts +312 -0
  15. package/dist/agent-runner.js +1034 -0
  16. package/dist/agent-types.d.ts +119 -0
  17. package/dist/agent-types.js +286 -0
  18. package/dist/child-context.d.ts +2 -0
  19. package/dist/child-context.js +12 -0
  20. package/dist/context.d.ts +12 -0
  21. package/dist/context.js +56 -0
  22. package/dist/cross-extension-rpc.d.ts +66 -0
  23. package/dist/cross-extension-rpc.js +138 -0
  24. package/dist/custom-agents.d.ts +54 -0
  25. package/dist/custom-agents.js +316 -0
  26. package/dist/default-agents.d.ts +7 -0
  27. package/dist/default-agents.js +122 -0
  28. package/dist/enabled-models.d.ts +49 -0
  29. package/dist/enabled-models.js +145 -0
  30. package/dist/env.d.ts +6 -0
  31. package/dist/env.js +28 -0
  32. package/dist/group-join.d.ts +32 -0
  33. package/dist/group-join.js +116 -0
  34. package/dist/index.d.ts +50 -0
  35. package/dist/index.js +3682 -0
  36. package/dist/invocation-config.d.ts +107 -0
  37. package/dist/invocation-config.js +83 -0
  38. package/dist/memory.d.ts +53 -0
  39. package/dist/memory.js +165 -0
  40. package/dist/mention-clone.d.ts +87 -0
  41. package/dist/mention-clone.js +153 -0
  42. package/dist/mention.d.ts +81 -0
  43. package/dist/mention.js +131 -0
  44. package/dist/model-resolver.d.ts +36 -0
  45. package/dist/model-resolver.js +95 -0
  46. package/dist/model-scope.d.ts +49 -0
  47. package/dist/model-scope.js +48 -0
  48. package/dist/nested-tools.d.ts +55 -0
  49. package/dist/nested-tools.js +299 -0
  50. package/dist/output-file.d.ts +43 -0
  51. package/dist/output-file.js +142 -0
  52. package/dist/prompts.d.ts +55 -0
  53. package/dist/prompts.js +91 -0
  54. package/dist/schedule-store.d.ts +38 -0
  55. package/dist/schedule-store.js +155 -0
  56. package/dist/schedule.d.ts +109 -0
  57. package/dist/schedule.js +359 -0
  58. package/dist/settings.d.ts +360 -0
  59. package/dist/settings.js +251 -0
  60. package/dist/skill-loader.d.ts +24 -0
  61. package/dist/skill-loader.js +93 -0
  62. package/dist/status-note.d.ts +61 -0
  63. package/dist/status-note.js +85 -0
  64. package/dist/structured-output.d.ts +61 -0
  65. package/dist/structured-output.js +112 -0
  66. package/dist/types.d.ts +371 -0
  67. package/dist/types.js +5 -0
  68. package/dist/ui/agent-mention.d.ts +82 -0
  69. package/dist/ui/agent-mention.js +187 -0
  70. package/dist/ui/agent-widget.d.ts +219 -0
  71. package/dist/ui/agent-widget.js +592 -0
  72. package/dist/ui/conversation-viewer.d.ts +120 -0
  73. package/dist/ui/conversation-viewer.js +578 -0
  74. package/dist/ui/fleet-list.d.ts +195 -0
  75. package/dist/ui/fleet-list.js +471 -0
  76. package/dist/ui/schedule-menu.d.ts +16 -0
  77. package/dist/ui/schedule-menu.js +94 -0
  78. package/dist/ui/select-item.d.ts +27 -0
  79. package/dist/ui/select-item.js +34 -0
  80. package/dist/ui/viewer-keys.d.ts +20 -0
  81. package/dist/ui/viewer-keys.js +17 -0
  82. package/dist/ui/workflow-card.d.ts +175 -0
  83. package/dist/ui/workflow-card.js +332 -0
  84. package/dist/ui/workflow-dialog.d.ts +305 -0
  85. package/dist/ui/workflow-dialog.js +843 -0
  86. package/dist/ui/workflow-menu.d.ts +60 -0
  87. package/dist/ui/workflow-menu.js +147 -0
  88. package/dist/usage.d.ts +135 -0
  89. package/dist/usage.js +120 -0
  90. package/dist/workflow/collisions.d.ts +95 -0
  91. package/dist/workflow/collisions.js +88 -0
  92. package/dist/workflow/entry.d.ts +32 -0
  93. package/dist/workflow/entry.js +29 -0
  94. package/dist/workflow/host.d.ts +62 -0
  95. package/dist/workflow/host.js +362 -0
  96. package/dist/workflow/journal.d.ts +97 -0
  97. package/dist/workflow/journal.js +120 -0
  98. package/dist/workflow/json-schema.d.ts +51 -0
  99. package/dist/workflow/json-schema.js +111 -0
  100. package/dist/workflow/meta.d.ts +67 -0
  101. package/dist/workflow/meta.js +317 -0
  102. package/dist/workflow/progress.d.ts +224 -0
  103. package/dist/workflow/progress.js +361 -0
  104. package/dist/workflow/runtime.d.ts +334 -0
  105. package/dist/workflow/runtime.js +830 -0
  106. package/dist/workflow/saved.d.ts +90 -0
  107. package/dist/workflow/saved.js +203 -0
  108. package/dist/workflow/task.d.ts +136 -0
  109. package/dist/workflow/task.js +207 -0
  110. package/dist/workflow/tool-description.d.ts +38 -0
  111. package/dist/workflow/tool-description.js +199 -0
  112. package/dist/workflow/worker-source.d.ts +47 -0
  113. package/dist/workflow/worker-source.js +778 -0
  114. package/dist/worktree.d.ts +52 -0
  115. package/dist/worktree.js +164 -0
  116. package/dist/xml.d.ts +10 -0
  117. package/dist/xml.js +12 -0
  118. package/docs/rpc.md +183 -0
  119. package/docs/workflows.md +437 -0
  120. package/examples/agent-tool-description.md +42 -0
  121. package/examples/workflows/compose.js +51 -0
  122. package/examples/workflows/fan-out-audit.js +47 -0
  123. package/examples/workflows/gated-fix.js +60 -0
  124. package/examples/workflows/lib/count-child.js +27 -0
  125. package/examples/workflows/review-panel.js +63 -0
  126. package/examples/workflows/structured-findings.js +78 -0
  127. package/package.json +68 -0
  128. package/src/abortable.ts +43 -0
  129. package/src/agent-color.ts +161 -0
  130. package/src/agent-file-toggle.ts +270 -0
  131. package/src/agent-manager.ts +1581 -0
  132. package/src/agent-runner.ts +1286 -0
  133. package/src/agent-types.ts +346 -0
  134. package/src/child-context.ts +15 -0
  135. package/src/context.ts +58 -0
  136. package/src/cross-extension-rpc.ts +198 -0
  137. package/src/custom-agents.ts +333 -0
  138. package/src/default-agents.ts +126 -0
  139. package/src/enabled-models.ts +180 -0
  140. package/src/env.ts +33 -0
  141. package/src/group-join.ts +141 -0
  142. package/src/index.ts +3991 -0
  143. package/src/invocation-config.ts +155 -0
  144. package/src/memory.ts +179 -0
  145. package/src/mention-clone.ts +196 -0
  146. package/src/mention.ts +141 -0
  147. package/src/model-resolver.ts +118 -0
  148. package/src/model-scope.ts +70 -0
  149. package/src/nested-tools.ts +422 -0
  150. package/src/output-file.ts +155 -0
  151. package/src/prompts.ts +142 -0
  152. package/src/schedule-store.ts +153 -0
  153. package/src/schedule.ts +386 -0
  154. package/src/settings.ts +587 -0
  155. package/src/skill-loader.ts +102 -0
  156. package/src/status-note.ts +90 -0
  157. package/src/structured-output.ts +130 -0
  158. package/src/types.ts +384 -0
  159. package/src/ui/agent-mention.ts +216 -0
  160. package/src/ui/agent-widget.ts +664 -0
  161. package/src/ui/conversation-viewer.ts +589 -0
  162. package/src/ui/fleet-list.ts +543 -0
  163. package/src/ui/schedule-menu.ts +105 -0
  164. package/src/ui/select-item.ts +45 -0
  165. package/src/ui/viewer-keys.ts +39 -0
  166. package/src/ui/workflow-card.ts +470 -0
  167. package/src/ui/workflow-dialog.ts +1115 -0
  168. package/src/ui/workflow-menu.ts +193 -0
  169. package/src/usage.ts +167 -0
  170. package/src/workflow/collisions.ts +123 -0
  171. package/src/workflow/entry.ts +47 -0
  172. package/src/workflow/host.ts +403 -0
  173. package/src/workflow/journal.ts +164 -0
  174. package/src/workflow/json-schema.ts +128 -0
  175. package/src/workflow/meta.ts +325 -0
  176. package/src/workflow/progress.ts +550 -0
  177. package/src/workflow/runtime.ts +1219 -0
  178. package/src/workflow/saved.ts +217 -0
  179. package/src/workflow/task.ts +302 -0
  180. package/src/workflow/tool-description.ts +200 -0
  181. package/src/workflow/worker-source.ts +781 -0
  182. package/src/worktree.ts +205 -0
  183. package/src/xml.ts +13 -0
@@ -0,0 +1,120 @@
1
+ /**
2
+ * conversation-viewer.ts — Live conversation overlay for viewing agent sessions.
3
+ *
4
+ * Displays a scrollable, live-updating view of an agent's conversation.
5
+ * Subscribes to session events for real-time streaming updates.
6
+ */
7
+ import { type AgentSession } from "@earendil-works/pi-coding-agent";
8
+ import { type Component, type TUI } from "@earendil-works/pi-tui";
9
+ import type { AgentRecord, ViewerMarkdownMode } from "../types.js";
10
+ import type { Theme } from "./agent-widget.js";
11
+ import { type AgentActivity } from "./agent-widget.js";
12
+ import { type ViewerKeybindings } from "./viewer-keys.js";
13
+ /** Height ceiling shared by the overlay's `maxHeight` and the viewer's internal viewport cap. */
14
+ export declare const VIEWPORT_HEIGHT_PCT = 70;
15
+ /**
16
+ * Cap on a single tool result or bash output before the viewer elides the rest.
17
+ *
18
+ * The cap is not cosmetic — it bounds render cost. `buildContentLines()` runs on
19
+ * every render *and* on every scroll key (`handleInput` calls it to compute
20
+ * `maxScroll`), so an uncapped 200 KB result costs ~6 ms per keystroke to parse
21
+ * as Markdown, against ~0.5 ms once capped and effectively nothing on a cache
22
+ * hit (best of 5, width 76). 16 KB is roughly a screenful at every terminal size
23
+ * and still ~30x the 500 characters this replaces, which was small enough to cut
24
+ * most real results mid-sentence.
25
+ */
26
+ export declare const RESULT_MAX_CHARS = 16000;
27
+ export declare class ConversationViewer implements Component {
28
+ private tui;
29
+ private session;
30
+ private record;
31
+ private activity;
32
+ private theme;
33
+ private done;
34
+ /** Abort the agent shown here. Omitted → no stop affordance (e.g. read-only history). */
35
+ private onStop?;
36
+ /** Send a steering message to the agent. Omitted → no compose affordance. */
37
+ private onSteer?;
38
+ /**
39
+ * Whether the header shows an estimated cost after the token count. Read
40
+ * once, at construction: the overlay is opened from a menu, so the setting
41
+ * cannot change while it is on screen.
42
+ */
43
+ private showCost;
44
+ /**
45
+ * The current `viewerMarkdown` setting. Read live rather than captured,
46
+ * unlike `showCost`: `m` changes it while the overlay is on screen.
47
+ * Omitted → `assistant`.
48
+ */
49
+ private viewerMarkdown?;
50
+ /**
51
+ * Persist a mode chosen with `m`, so the key and `/agents → Settings` mean
52
+ * the same thing. Omitted → `m` still cycles, viewer-locally.
53
+ */
54
+ private onMarkdownMode?;
55
+ private scrollOffset;
56
+ private autoScroll;
57
+ private unsubscribe;
58
+ private lastInnerW;
59
+ private closed;
60
+ /** Two-press confirm guard for the stop key, so a stray key can't kill the agent. */
61
+ private stopArmed;
62
+ private keys;
63
+ /** Steering composer — present while the user is typing a message to the agent. */
64
+ private composer;
65
+ /** Resolved once: pi's Markdown theme is fixed for the life of the process. */
66
+ private readonly markdownTheme;
67
+ /** Set by the `m` key. Wins over the setting so `m` works without a persist hook. */
68
+ private markdownModeOverride;
69
+ /**
70
+ * One `Markdown` per message, so its own text/width cache does the work. A
71
+ * fresh instance per render would re-parse the whole transcript on every
72
+ * keystroke — the component caches, but only across calls to the same object.
73
+ * Weak so a compacted-away message doesn't pin its render.
74
+ */
75
+ private readonly markdownCache;
76
+ constructor(tui: TUI, session: AgentSession, record: AgentRecord, activity: AgentActivity | undefined, theme: Theme, done: (result: undefined) => void,
77
+ /** Abort the agent shown here. Omitted → no stop affordance (e.g. read-only history). */
78
+ onStop?: (() => void) | undefined,
79
+ /** User keybindings from `ctx.ui.custom()`. Omitted → hardcoded defaults. */
80
+ keybindings?: ViewerKeybindings,
81
+ /** Send a steering message to the agent. Omitted → no compose affordance. */
82
+ onSteer?: ((message: string) => void) | undefined,
83
+ /**
84
+ * Whether the header shows an estimated cost after the token count. Read
85
+ * once, at construction: the overlay is opened from a menu, so the setting
86
+ * cannot change while it is on screen.
87
+ */
88
+ showCost?: boolean,
89
+ /**
90
+ * The current `viewerMarkdown` setting. Read live rather than captured,
91
+ * unlike `showCost`: `m` changes it while the overlay is on screen.
92
+ * Omitted → `assistant`.
93
+ */
94
+ viewerMarkdown?: (() => ViewerMarkdownMode) | undefined,
95
+ /**
96
+ * Persist a mode chosen with `m`, so the key and `/agents → Settings` mean
97
+ * the same thing. Omitted → `m` still cycles, viewer-locally.
98
+ */
99
+ onMarkdownMode?: ((mode: ViewerMarkdownMode) => void) | undefined);
100
+ handleInput(data: string): void;
101
+ render(width: number): string[];
102
+ /** Stoppable only when a stop handler exists and the agent is still active. */
103
+ private isStoppable;
104
+ /** The mode in force: an `m` press, else the setting, else the default. */
105
+ private markdownMode;
106
+ /** Wrap `text` literally — the pre-Markdown path, and the fallback from it. */
107
+ private rawLines;
108
+ /** Render `text` as Markdown, reusing this message's component instance. */
109
+ private markdownLines;
110
+ /** Steerable only when a steer handler exists and the agent is still active. */
111
+ private canSteer;
112
+ /** Open the inline steering composer and route subsequent input to it. */
113
+ private openComposer;
114
+ invalidate(): void;
115
+ dispose(): void;
116
+ private viewportHeight;
117
+ private chromeLines;
118
+ private invocationLine;
119
+ private buildContentLines;
120
+ }