@esso0428/pi-subagents 0.17.6 → 0.17.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.
Files changed (260) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/CONTRIBUTING.md +4 -0
  3. package/dist/abortable.d.ts +13 -0
  4. package/dist/abortable.d.ts.map +1 -0
  5. package/dist/abortable.js +43 -0
  6. package/dist/abortable.js.map +1 -0
  7. package/dist/agent-color.d.ts +36 -0
  8. package/dist/agent-color.d.ts.map +1 -0
  9. package/dist/agent-color.js +124 -0
  10. package/dist/agent-color.js.map +1 -0
  11. package/dist/agent-file-toggle.d.ts +126 -0
  12. package/dist/agent-file-toggle.d.ts.map +1 -0
  13. package/dist/agent-file-toggle.js +259 -0
  14. package/dist/agent-file-toggle.js.map +1 -0
  15. package/dist/agent-history.d.ts +4 -0
  16. package/dist/agent-history.d.ts.map +1 -1
  17. package/dist/agent-history.js +47 -1
  18. package/dist/agent-history.js.map +1 -1
  19. package/dist/agent-manager.d.ts +370 -56
  20. package/dist/agent-manager.d.ts.map +1 -1
  21. package/dist/agent-manager.js +1123 -409
  22. package/dist/agent-manager.js.map +1 -1
  23. package/dist/agent-runner.d.ts +100 -10
  24. package/dist/agent-runner.d.ts.map +1 -1
  25. package/dist/agent-runner.js +166 -21
  26. package/dist/agent-runner.js.map +1 -1
  27. package/dist/agent-types.d.ts +57 -5
  28. package/dist/agent-types.d.ts.map +1 -1
  29. package/dist/agent-types.js +164 -32
  30. package/dist/agent-types.js.map +1 -1
  31. package/dist/child-context.d.ts +3 -0
  32. package/dist/child-context.d.ts.map +1 -0
  33. package/dist/child-context.js +13 -0
  34. package/dist/child-context.js.map +1 -0
  35. package/dist/cross-extension-rpc.d.ts +23 -3
  36. package/dist/cross-extension-rpc.d.ts.map +1 -1
  37. package/dist/cross-extension-rpc.js +79 -17
  38. package/dist/cross-extension-rpc.js.map +1 -1
  39. package/dist/custom-agents.d.ts +38 -1
  40. package/dist/custom-agents.d.ts.map +1 -1
  41. package/dist/custom-agents.js +164 -12
  42. package/dist/custom-agents.js.map +1 -1
  43. package/dist/index.d.ts +34 -0
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +1908 -495
  46. package/dist/index.js.map +1 -1
  47. package/dist/invocation-config.d.ts +87 -2
  48. package/dist/invocation-config.d.ts.map +1 -1
  49. package/dist/invocation-config.js +71 -3
  50. package/dist/invocation-config.js.map +1 -1
  51. package/dist/mention-clone.d.ts +88 -0
  52. package/dist/mention-clone.d.ts.map +1 -0
  53. package/dist/mention-clone.js +154 -0
  54. package/dist/mention-clone.js.map +1 -0
  55. package/dist/mention.d.ts +82 -0
  56. package/dist/mention.d.ts.map +1 -0
  57. package/dist/mention.js +132 -0
  58. package/dist/mention.js.map +1 -0
  59. package/dist/model-resolver.d.ts +17 -0
  60. package/dist/model-resolver.d.ts.map +1 -1
  61. package/dist/model-resolver.js +15 -0
  62. package/dist/model-resolver.js.map +1 -1
  63. package/dist/model-scope.d.ts +50 -0
  64. package/dist/model-scope.d.ts.map +1 -0
  65. package/dist/model-scope.js +49 -0
  66. package/dist/model-scope.js.map +1 -0
  67. package/dist/nested-tools.d.ts +57 -0
  68. package/dist/nested-tools.d.ts.map +1 -0
  69. package/dist/nested-tools.js +301 -0
  70. package/dist/nested-tools.js.map +1 -0
  71. package/dist/output-file.d.ts +22 -3
  72. package/dist/output-file.d.ts.map +1 -1
  73. package/dist/output-file.js +58 -7
  74. package/dist/output-file.js.map +1 -1
  75. package/dist/prompts.d.ts +23 -0
  76. package/dist/prompts.d.ts.map +1 -1
  77. package/dist/prompts.js +20 -2
  78. package/dist/prompts.js.map +1 -1
  79. package/dist/schedule.d.ts.map +1 -1
  80. package/dist/schedule.js +36 -15
  81. package/dist/schedule.js.map +1 -1
  82. package/dist/settings.d.ts +228 -2
  83. package/dist/settings.d.ts.map +1 -1
  84. package/dist/settings.js +94 -0
  85. package/dist/settings.js.map +1 -1
  86. package/dist/status-note.d.ts +49 -1
  87. package/dist/status-note.d.ts.map +1 -1
  88. package/dist/status-note.js +62 -1
  89. package/dist/status-note.js.map +1 -1
  90. package/dist/structured-output.d.ts +62 -0
  91. package/dist/structured-output.d.ts.map +1 -0
  92. package/dist/structured-output.js +113 -0
  93. package/dist/structured-output.js.map +1 -0
  94. package/dist/types.d.ts +176 -10
  95. package/dist/types.d.ts.map +1 -1
  96. package/dist/ui/agent-mention.d.ts +83 -0
  97. package/dist/ui/agent-mention.d.ts.map +1 -0
  98. package/dist/ui/agent-mention.js +188 -0
  99. package/dist/ui/agent-mention.js.map +1 -0
  100. package/dist/ui/agent-widget.d.ts +96 -75
  101. package/dist/ui/agent-widget.d.ts.map +1 -1
  102. package/dist/ui/agent-widget.js +397 -420
  103. package/dist/ui/agent-widget.js.map +1 -1
  104. package/dist/ui/conversation-blocks.d.ts.map +1 -1
  105. package/dist/ui/conversation-blocks.js +6 -0
  106. package/dist/ui/conversation-blocks.js.map +1 -1
  107. package/dist/ui/conversation-timeline.d.ts +10 -2
  108. package/dist/ui/conversation-timeline.d.ts.map +1 -1
  109. package/dist/ui/conversation-timeline.js +130 -23
  110. package/dist/ui/conversation-timeline.js.map +1 -1
  111. package/dist/ui/conversation-viewer.d.ts +15 -5
  112. package/dist/ui/conversation-viewer.d.ts.map +1 -1
  113. package/dist/ui/conversation-viewer.js +202 -50
  114. package/dist/ui/conversation-viewer.js.map +1 -1
  115. package/dist/ui/fleet-list.d.ts +198 -0
  116. package/dist/ui/fleet-list.d.ts.map +1 -0
  117. package/dist/ui/fleet-list.js +487 -0
  118. package/dist/ui/fleet-list.js.map +1 -0
  119. package/dist/ui/schedule-menu.d.ts.map +1 -1
  120. package/dist/ui/schedule-menu.js +6 -7
  121. package/dist/ui/schedule-menu.js.map +1 -1
  122. package/dist/ui/select-item.d.ts +28 -0
  123. package/dist/ui/select-item.d.ts.map +1 -0
  124. package/dist/ui/select-item.js +35 -0
  125. package/dist/ui/select-item.js.map +1 -0
  126. package/dist/ui/workflow-card.d.ts +176 -0
  127. package/dist/ui/workflow-card.d.ts.map +1 -0
  128. package/dist/ui/workflow-card.js +333 -0
  129. package/dist/ui/workflow-card.js.map +1 -0
  130. package/dist/ui/workflow-dialog.d.ts +306 -0
  131. package/dist/ui/workflow-dialog.d.ts.map +1 -0
  132. package/dist/ui/workflow-dialog.js +844 -0
  133. package/dist/ui/workflow-dialog.js.map +1 -0
  134. package/dist/ui/workflow-menu.d.ts +61 -0
  135. package/dist/ui/workflow-menu.d.ts.map +1 -0
  136. package/dist/ui/workflow-menu.js +148 -0
  137. package/dist/ui/workflow-menu.js.map +1 -0
  138. package/dist/usage.d.ts +86 -1
  139. package/dist/usage.d.ts.map +1 -1
  140. package/dist/usage.js +72 -1
  141. package/dist/usage.js.map +1 -1
  142. package/dist/workflow/collisions.d.ts +96 -0
  143. package/dist/workflow/collisions.d.ts.map +1 -0
  144. package/dist/workflow/collisions.js +89 -0
  145. package/dist/workflow/collisions.js.map +1 -0
  146. package/dist/workflow/entry.d.ts +33 -0
  147. package/dist/workflow/entry.d.ts.map +1 -0
  148. package/dist/workflow/entry.js +30 -0
  149. package/dist/workflow/entry.js.map +1 -0
  150. package/dist/workflow/host.d.ts +63 -0
  151. package/dist/workflow/host.d.ts.map +1 -0
  152. package/dist/workflow/host.js +363 -0
  153. package/dist/workflow/host.js.map +1 -0
  154. package/dist/workflow/journal.d.ts +98 -0
  155. package/dist/workflow/journal.d.ts.map +1 -0
  156. package/dist/workflow/journal.js +121 -0
  157. package/dist/workflow/journal.js.map +1 -0
  158. package/dist/workflow/json-schema.d.ts +52 -0
  159. package/dist/workflow/json-schema.d.ts.map +1 -0
  160. package/dist/workflow/json-schema.js +112 -0
  161. package/dist/workflow/json-schema.js.map +1 -0
  162. package/dist/workflow/meta.d.ts +68 -0
  163. package/dist/workflow/meta.d.ts.map +1 -0
  164. package/dist/workflow/meta.js +318 -0
  165. package/dist/workflow/meta.js.map +1 -0
  166. package/dist/workflow/progress.d.ts +225 -0
  167. package/dist/workflow/progress.d.ts.map +1 -0
  168. package/dist/workflow/progress.js +362 -0
  169. package/dist/workflow/progress.js.map +1 -0
  170. package/dist/workflow/runtime.d.ts +335 -0
  171. package/dist/workflow/runtime.d.ts.map +1 -0
  172. package/dist/workflow/runtime.js +831 -0
  173. package/dist/workflow/runtime.js.map +1 -0
  174. package/dist/workflow/saved.d.ts +91 -0
  175. package/dist/workflow/saved.d.ts.map +1 -0
  176. package/dist/workflow/saved.js +204 -0
  177. package/dist/workflow/saved.js.map +1 -0
  178. package/dist/workflow/task.d.ts +137 -0
  179. package/dist/workflow/task.d.ts.map +1 -0
  180. package/dist/workflow/task.js +208 -0
  181. package/dist/workflow/task.js.map +1 -0
  182. package/dist/workflow/tool-description.d.ts +39 -0
  183. package/dist/workflow/tool-description.d.ts.map +1 -0
  184. package/dist/workflow/tool-description.js +200 -0
  185. package/dist/workflow/tool-description.js.map +1 -0
  186. package/dist/workflow/worker-source.d.ts +48 -0
  187. package/dist/workflow/worker-source.d.ts.map +1 -0
  188. package/dist/workflow/worker-source.js +779 -0
  189. package/dist/workflow/worker-source.js.map +1 -0
  190. package/dist/worktree.d.ts +10 -3
  191. package/dist/worktree.d.ts.map +1 -1
  192. package/dist/worktree.js +58 -54
  193. package/dist/worktree.js.map +1 -1
  194. package/dist/xml.d.ts +11 -0
  195. package/dist/xml.d.ts.map +1 -0
  196. package/dist/xml.js +13 -0
  197. package/dist/xml.js.map +1 -0
  198. package/docs/rpc.md +183 -0
  199. package/docs/superpowers/plans/2026-09-30-upstream-event-workflow-partial-history.md +195 -0
  200. package/docs/superpowers/specs/2026-09-30-upstream-event-workflow-partial-history-design.md +49 -0
  201. package/docs/workflows.md +437 -0
  202. package/examples/agent-tool-description.md +7 -7
  203. package/examples/workflows/compose.js +51 -0
  204. package/examples/workflows/fan-out-audit.js +47 -0
  205. package/examples/workflows/gated-fix.js +60 -0
  206. package/examples/workflows/lib/count-child.js +27 -0
  207. package/examples/workflows/review-panel.js +63 -0
  208. package/examples/workflows/structured-findings.js +78 -0
  209. package/package.json +1 -1
  210. package/src/abortable.ts +43 -0
  211. package/src/agent-color.ts +161 -0
  212. package/src/agent-file-toggle.ts +269 -0
  213. package/src/agent-history.ts +54 -2
  214. package/src/agent-manager.ts +1263 -402
  215. package/src/agent-runner.ts +251 -27
  216. package/src/agent-types.ts +188 -32
  217. package/src/child-context.ts +15 -0
  218. package/src/cross-extension-rpc.ts +96 -20
  219. package/src/custom-agents.ts +170 -13
  220. package/src/index.ts +2024 -537
  221. package/src/invocation-config.ts +118 -3
  222. package/src/mention-clone.ts +196 -0
  223. package/src/mention.ts +141 -0
  224. package/src/model-resolver.ts +18 -0
  225. package/src/model-scope.ts +70 -0
  226. package/src/nested-tools.ts +424 -0
  227. package/src/output-file.ts +61 -6
  228. package/src/prompts.ts +45 -2
  229. package/src/schedule.ts +35 -14
  230. package/src/settings.ts +312 -2
  231. package/src/status-note.ts +66 -1
  232. package/src/structured-output.ts +130 -0
  233. package/src/types.ts +177 -10
  234. package/src/ui/agent-mention.ts +216 -0
  235. package/src/ui/agent-widget.ts +389 -441
  236. package/src/ui/conversation-blocks.ts +6 -0
  237. package/src/ui/conversation-timeline.ts +139 -25
  238. package/src/ui/conversation-viewer.ts +212 -48
  239. package/src/ui/fleet-list.ts +558 -0
  240. package/src/ui/schedule-menu.ts +9 -8
  241. package/src/ui/select-item.ts +45 -0
  242. package/src/ui/workflow-card.ts +470 -0
  243. package/src/ui/workflow-dialog.ts +1115 -0
  244. package/src/ui/workflow-menu.ts +193 -0
  245. package/src/usage.ts +109 -2
  246. package/src/workflow/collisions.ts +123 -0
  247. package/src/workflow/entry.ts +47 -0
  248. package/src/workflow/host.ts +403 -0
  249. package/src/workflow/journal.ts +164 -0
  250. package/src/workflow/json-schema.ts +128 -0
  251. package/src/workflow/meta.ts +325 -0
  252. package/src/workflow/progress.ts +550 -0
  253. package/src/workflow/runtime.ts +1219 -0
  254. package/src/workflow/saved.ts +217 -0
  255. package/src/workflow/task.ts +302 -0
  256. package/src/workflow/tool-description.ts +200 -0
  257. package/src/workflow/worker-source.ts +781 -0
  258. package/src/worktree.ts +69 -55
  259. package/src/xml.ts +13 -0
  260. package/vitest.config.ts +0 -18
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-dialog.js","sourceRoot":"","sources":["../../src/ui/workflow-dialog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * workflow-menu.ts — `/agents → Workflows`, and the run inspector behind it.
3
+ *
4
+ * The same shape `schedule-menu.ts` has for `/agents → Scheduled jobs`: the
5
+ * submenu and the overlay it opens live here, and everything they need arrives
6
+ * as {@link WorkflowMenuDeps} rather than through a closure. The inspector is
7
+ * reached from two places — this menu and a `workflow` row in the fleet list —
8
+ * and both go through `showWorkflowDialog`, so the two entry points cannot
9
+ * drift apart on what the keys do.
10
+ *
11
+ * Lives in the agents menu rather than as a top-level `/workflows` command: it
12
+ * is one more view of the same fleet, and a second command name would only add
13
+ * a collision surface (pi renames duplicate commands to `/workflows:1` and
14
+ * `/workflows:2`, which breaks the bare name for both).
15
+ */
16
+ import type { ExtensionCommandContext } from "@earendil-works/pi-coding-agent";
17
+ import type { AgentRecord } from "../types.js";
18
+ import { type WorkflowTask } from "../workflow/task.js";
19
+ /** Everything the menu and the inspector need from the extension around them. */
20
+ export interface WorkflowMenuDeps {
21
+ /**
22
+ * Live runs by id, read on every use rather than snapshotted: a run that
23
+ * settled and was swept between render and keypress must be a no-op, not a
24
+ * crash.
25
+ */
26
+ tasks: ReadonlyMap<string, WorkflowTask>;
27
+ /** The record behind an agent id, or undefined once it has been swept. */
28
+ getRecord(id: string): AgentRecord | undefined;
29
+ /** The conversation overlay `c` opens on an agent row. */
30
+ viewAgentConversation(ctx: ExtensionCommandContext, record: AgentRecord): Promise<void>;
31
+ /**
32
+ * The session context, for the fleet-list entry point — that one is a
33
+ * keypress in a list that holds no `ctx` of its own. Undefined between
34
+ * sessions, which is a no-op rather than an error.
35
+ */
36
+ getCtx(): ExtensionCommandContext | undefined;
37
+ }
38
+ /**
39
+ * Open the inspector for a workflow run.
40
+ *
41
+ * All six controls are wired: `onKill` aborts the run's controller, while
42
+ * pause/resume and per-agent skip/retry go through `task.control`, the handle
43
+ * `runWorkflow` hands back. `onOpenAgent` is the odd one out — it opens the
44
+ * child's conversation rather than changing the run. The dialog derives its key
45
+ * hints from the actions it is handed, so the footer advertises exactly what
46
+ * works — see `WorkflowDialogActions`.
47
+ */
48
+ export declare function showWorkflowDialog(ctx: ExtensionCommandContext, task: WorkflowTask, deps: WorkflowMenuDeps): Promise<void>;
49
+ /**
50
+ * Open a run from the fleet list.
51
+ *
52
+ * The list hands back an id rather than a task, so a run that settled and was
53
+ * swept between render and keypress is a no-op instead of a crash. `esc` in the
54
+ * dialog closes it and control returns to the list — which is why the promise
55
+ * is handed back: the list puts the cursor back on the run rather than dropping
56
+ * the reader at `main`.
57
+ */
58
+ export declare function openWorkflowFromFleet(id: string, deps: WorkflowMenuDeps): Promise<void> | void;
59
+ /** `/agents → Workflows` — list this session's runs, open one. */
60
+ export declare function showWorkflowsMenu(ctx: ExtensionCommandContext, deps: WorkflowMenuDeps): Promise<void>;
61
+ //# sourceMappingURL=workflow-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-menu.d.ts","sourceRoot":"","sources":["../../src/ui/workflow-menu.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAyC,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAG/F,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACzC,0EAA0E;IAC1E,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAC/C,0DAA0D;IAC1D,qBAAqB,CAAC,GAAG,EAAE,uBAAuB,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF;;;;OAIG;IACH,MAAM,IAAI,uBAAuB,GAAG,SAAS,CAAC;CAC/C;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,uBAAuB,EAC5B,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,IAAI,CAAC,CA4Ff;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAK9F;AAED,kEAAkE;AAClE,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,uBAAuB,EAC5B,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,IAAI,CAAC,CAuBf"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * workflow-menu.ts — `/agents → Workflows`, and the run inspector behind it.
3
+ *
4
+ * The same shape `schedule-menu.ts` has for `/agents → Scheduled jobs`: the
5
+ * submenu and the overlay it opens live here, and everything they need arrives
6
+ * as {@link WorkflowMenuDeps} rather than through a closure. The inspector is
7
+ * reached from two places — this menu and a `workflow` row in the fleet list —
8
+ * and both go through `showWorkflowDialog`, so the two entry points cannot
9
+ * drift apart on what the keys do.
10
+ *
11
+ * Lives in the agents menu rather than as a top-level `/workflows` command: it
12
+ * is one more view of the same fleet, and a second command name would only add
13
+ * a collision surface (pi renames duplicate commands to `/workflows:1` and
14
+ * `/workflows:2`, which breaks the bare name for both).
15
+ */
16
+ import { pauseWorkflowTask, resumeWorkflowTask } from "../workflow/task.js";
17
+ import { WorkflowDialog } from "./workflow-dialog.js";
18
+ /**
19
+ * Open the inspector for a workflow run.
20
+ *
21
+ * All six controls are wired: `onKill` aborts the run's controller, while
22
+ * pause/resume and per-agent skip/retry go through `task.control`, the handle
23
+ * `runWorkflow` hands back. `onOpenAgent` is the odd one out — it opens the
24
+ * child's conversation rather than changing the run. The dialog derives its key
25
+ * hints from the actions it is handed, so the footer advertises exactly what
26
+ * works — see `WorkflowDialogActions`.
27
+ */
28
+ export async function showWorkflowDialog(ctx, task, deps) {
29
+ // Overlaid on the same terms as the conversation viewer, because they are
30
+ // reached the same way: both are rows of the fleet list, and opening one
31
+ // must not behave unlike opening the other. Inline, the frame would render
32
+ // into the conversation and stay in the scrollback after it closed.
33
+ const { VIEWPORT_HEIGHT_PCT } = await import("./conversation-viewer.js");
34
+ /**
35
+ * This dialog's own overlay, so `c` can hide it while the conversation is
36
+ * up. Overlays stack, so the viewer would render *over* it either way —
37
+ * but the two frames size themselves to different content, and the taller
38
+ * one's edges show around the shorter. Hidden, there is nothing to peek
39
+ * out, and un-hiding puts the focus back on the dialog when the viewer
40
+ * closes.
41
+ */
42
+ let overlay;
43
+ await ctx.ui.custom((tui, theme, _keybindings, done) => new WorkflowDialog(tui,
44
+ // Re-read on every render: the run is in the background, so the
45
+ // dialog has to follow it rather than snapshot it at open time.
46
+ () => ({
47
+ progress: task.workflowProgress,
48
+ task: {
49
+ status: task.status,
50
+ workflowName: task.workflowName,
51
+ startTime: task.startTime,
52
+ endTime: task.endTime,
53
+ totalPausedMs: task.totalPausedMs,
54
+ },
55
+ meta: task.meta,
56
+ agentCount: task.agentCount,
57
+ }), theme, done, {
58
+ onKill: () => {
59
+ if (task.abortController.signal.aborted)
60
+ return;
61
+ task.abortController.abort();
62
+ ctx.ui.notify(`Stopped workflow "${task.meta?.name ?? task.id}".`, "info");
63
+ },
64
+ onPause: () => {
65
+ if (pauseWorkflowTask(task)) {
66
+ // Named rather than implied: "paused" on a run whose agents are
67
+ // still finishing reads as a stronger promise than it is.
68
+ ctx.ui.notify("Paused — running agents finish, no new ones start.", "info");
69
+ }
70
+ },
71
+ onResume: () => {
72
+ if (resumeWorkflowTask(task))
73
+ ctx.ui.notify("Resumed.", "info");
74
+ },
75
+ onSkipAgent: index => {
76
+ if (task.control?.skip(index) !== true) {
77
+ ctx.ui.notify("Nothing to skip — that agent has already finished.", "info");
78
+ }
79
+ },
80
+ onRetryAgent: index => {
81
+ if (task.control?.retry(index) !== true) {
82
+ // The window is exactly "while it is running": before that
83
+ // there is nothing to stop, after it the script has its answer.
84
+ ctx.ui.notify("Only a running agent can be retried.", "info");
85
+ }
86
+ },
87
+ onOpenAgent: recordId => {
88
+ const record = deps.getRecord(recordId);
89
+ // A run's children are records like any other, so they are swept
90
+ // ten minutes after they finish — the row outlives the
91
+ // conversation it points at, and saying why beats an overlay that
92
+ // opens empty.
93
+ if (record === undefined) {
94
+ ctx.ui.notify("No conversation left — agent records are dropped ten minutes after they finish.", "info");
95
+ return;
96
+ }
97
+ overlay?.setHidden(true);
98
+ // Caught before the `finally`, so a viewer that fails to open
99
+ // still un-hides the dialog and cannot surface as an unhandled
100
+ // rejection out of a detached promise.
101
+ void deps.viewAgentConversation(ctx, record)
102
+ .catch(err => ctx.ui.notify(`Could not open the conversation: ${err instanceof Error ? err.message : String(err)}`, "warning"))
103
+ .finally(() => overlay?.setHidden(false));
104
+ },
105
+ }), {
106
+ overlay: true,
107
+ overlayOptions: { anchor: "center", width: "90%", maxHeight: `${VIEWPORT_HEIGHT_PCT}%` },
108
+ onHandle: handle => { overlay = handle; },
109
+ });
110
+ }
111
+ /**
112
+ * Open a run from the fleet list.
113
+ *
114
+ * The list hands back an id rather than a task, so a run that settled and was
115
+ * swept between render and keypress is a no-op instead of a crash. `esc` in the
116
+ * dialog closes it and control returns to the list — which is why the promise
117
+ * is handed back: the list puts the cursor back on the run rather than dropping
118
+ * the reader at `main`.
119
+ */
120
+ export function openWorkflowFromFleet(id, deps) {
121
+ const task = deps.tasks.get(id);
122
+ const ctx = deps.getCtx();
123
+ if (task === undefined || ctx === undefined)
124
+ return;
125
+ return showWorkflowDialog(ctx, task, deps);
126
+ }
127
+ /** `/agents → Workflows` — list this session's runs, open one. */
128
+ export async function showWorkflowsMenu(ctx, deps) {
129
+ const tasks = [...deps.tasks.values()].sort((a, b) => b.startTime - a.startTime);
130
+ if (tasks.length === 0) {
131
+ ctx.ui.notify("No workflows in this session.", "info");
132
+ return;
133
+ }
134
+ if (tasks.length === 1) {
135
+ await showWorkflowDialog(ctx, tasks[0], deps);
136
+ return;
137
+ }
138
+ // More than one: pick first. Newest at the top, since that is almost
139
+ // always the one being asked about. `select` deals in plain strings and
140
+ // hands back the string, so the label has to be unique or `indexOf` maps
141
+ // the second run of a workflow onto the first — the run id makes it so.
142
+ const labels = tasks.map(task => `${task.meta?.name ?? task.id} — ${task.status}, ${task.agentCount} agent${task.agentCount === 1 ? "" : "s"} · ${task.id}`);
143
+ const picked = await ctx.ui.select("Workflows", labels);
144
+ const index = picked !== undefined ? labels.indexOf(picked) : -1;
145
+ if (index >= 0)
146
+ await showWorkflowDialog(ctx, tasks[index], deps);
147
+ }
148
+ //# sourceMappingURL=workflow-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-menu.js","sourceRoot":"","sources":["../../src/ui/workflow-menu.ts"],"names":[],"mappings":"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"}
package/dist/usage.d.ts CHANGED
@@ -5,16 +5,101 @@
5
5
  * stats-derived sum). cacheRead is excluded because each turn's cacheRead is
6
6
  * the cumulative cached prefix re-read on that one call — summing across
7
7
  * turns counts the prefix N times. See issue #38.
8
+ *
9
+ * That exclusion is about this *display* total, not about what was billed: the
10
+ * prefix really is re-read and re-charged on every call. So `cacheRead` is
11
+ * accumulated here anyway, kept out of `getLifetimeTotal` and used only where
12
+ * billing is the question — reporting to the parent session, whose own messages
13
+ * pi counts the same way (`addUsageToTotals`). Reporting 0 there would make a
14
+ * subagent's rows count differently from every other row in one total.
15
+ *
16
+ * `cost` is a plain sum for the same reason: it is what pi charged for that one
17
+ * message (`usage.cost.total`, priced from the model's rates), not a cumulative
18
+ * figure. Both are optional because a model with no pricing data reports no
19
+ * cost, and because every accumulator predates them; absent reads as 0.
8
20
  */
9
21
  export type LifetimeUsage = {
10
22
  input: number;
11
23
  output: number;
12
24
  cacheWrite: number;
25
+ cacheRead?: number;
26
+ cost?: number;
13
27
  };
14
- /** Sum of lifetime usage components, or 0 if undefined. */
28
+ /**
29
+ * Sum of lifetime *token* components for DISPLAY, or 0 if undefined.
30
+ * Deliberately excludes `cacheRead` (see above) and `cost` — that is money, not
31
+ * tokens, and lives on the same object only because it accumulates on the same
32
+ * events.
33
+ */
15
34
  export declare function getLifetimeTotal(u?: LifetimeUsage): number;
35
+ /** Accumulated cost in USD, or 0 when unpriced/undefined. */
36
+ export declare function getLifetimeCost(u?: LifetimeUsage): number;
16
37
  /** Add a usage delta into a target accumulator (mutates target). */
17
38
  export declare function addUsage(into: LifetimeUsage, delta: LifetimeUsage): void;
39
+ /**
40
+ * A pi `Usage`. Rebuilt here rather than imported so this module stays
41
+ * dependency-free for tests; the fields are pi's, and every one of them must be
42
+ * present: pi's `addUsageToTotals` dereferences `usage.cost.total` with no
43
+ * guard, so a partial object throws inside pi rather than at the call site.
44
+ *
45
+ * This is pi's convention for spend in anything handed to a consumer — every
46
+ * extension-facing payload that carries it takes the whole object
47
+ * (`ToolResultEvent`, `ToolResultEventResult`, `AssistantMessage`, …), never a
48
+ * flattened cost. Pi flattens only in computed read APIs it expects you to
49
+ * render, like `SessionStats`. So both places we hand usage to someone else —
50
+ * `AgentToolResult.usage` and the `subagents:completed` / `subagents:failed`
51
+ * events — carry this, and gain whatever pi adds to `Usage` for free.
52
+ */
53
+ export type ReportedUsage = {
54
+ input: number;
55
+ output: number;
56
+ cacheRead: number;
57
+ cacheWrite: number;
58
+ totalTokens: number;
59
+ cost: {
60
+ input: number;
61
+ output: number;
62
+ cacheRead: number;
63
+ cacheWrite: number;
64
+ total: number;
65
+ };
66
+ };
67
+ /**
68
+ * Render an accumulator as a pi `Usage`, or undefined when nothing was spent —
69
+ * callers attach nothing rather than a zero, so a consumer can tell "spent
70
+ * nothing" from "never ran".
71
+ *
72
+ * `cacheRead` IS included, unlike in `getLifetimeTotal`: pi sums it across a
73
+ * session's own assistant messages, and the prefix genuinely is re-read and
74
+ * re-billed on every call. Only `total` is populated on the cost breakdown; pi
75
+ * reads nothing else from it, and the per-kind split is not tracked.
76
+ */
77
+ export declare function toReportedUsage(u: LifetimeUsage): ReportedUsage | undefined;
78
+ /**
79
+ * Subagent spend that the parent session has not been told about yet.
80
+ *
81
+ * Subagents run in their own pi sessions, so none of what they spend appears in
82
+ * the parent's `getSessionStats()`. Pi does aggregate `toolResult.usage` into
83
+ * those stats, though — so the way back into the parent's footer and `/cost` is
84
+ * to hang the spend on a tool result. Background and scheduled agents finish
85
+ * between tool calls with nothing to hang it on, hence a pool: every assistant
86
+ * message lands here as it happens, and the next tool result we return carries
87
+ * whatever has accumulated.
88
+ *
89
+ * Drain empties it, so each message is reported exactly once no matter how many
90
+ * results are returned or how many agents were running.
91
+ */
92
+ export declare class PendingUsagePool {
93
+ private pending;
94
+ private dirty;
95
+ add(delta: LifetimeUsage): void;
96
+ /**
97
+ * Take everything accumulated so far as a pi `Usage`, resetting the pool.
98
+ * Returns undefined when nothing is pending, so callers can leave the tool
99
+ * result untouched rather than attaching a zero.
100
+ */
101
+ drain(): ReportedUsage | undefined;
102
+ }
18
103
  /** Minimal shape we read from upstream `getSessionStats()`. */
19
104
  export type SessionStatsLike = {
20
105
  tokens: {
@@ -1 +1 @@
1
- {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAElF,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAAC,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAE1D;AAED,oEAAoE;AACpE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAIxE;AAED,+DAA+D;AAC/D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,YAAY,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAC3C,CAAC;AACF,MAAM,MAAM,WAAW,GAAG;IAAE,eAAe,IAAI,gBAAgB,CAAA;CAAE,CAAC;AAElE;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,CAMzE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAIxF"}
1
+ {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAErH;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAE1D;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAEzD;AAED,oEAAoE;AACpE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAMxE;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/F,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,aAAa,GAAG,aAAa,GAAG,SAAS,CAW3E;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAgF;IAC/F,OAAO,CAAC,KAAK,CAAS;IAEtB,GAAG,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAK/B;;;;OAIG;IACH,KAAK,IAAI,aAAa,GAAG,SAAS;CAOnC;AAED,+DAA+D;AAC/D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,YAAY,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAC3C,CAAC;AACF,MAAM,MAAM,WAAW,GAAG;IAAE,eAAe,IAAI,gBAAgB,CAAA;CAAE,CAAC;AAElE;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,CAMzE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAIxF"}
package/dist/usage.js CHANGED
@@ -1,13 +1,84 @@
1
1
  /** usage.ts — Token usage: shapes, accumulator operators, session-stats readers. */
2
- /** Sum of lifetime usage components, or 0 if undefined. */
2
+ /**
3
+ * Sum of lifetime *token* components for DISPLAY, or 0 if undefined.
4
+ * Deliberately excludes `cacheRead` (see above) and `cost` — that is money, not
5
+ * tokens, and lives on the same object only because it accumulates on the same
6
+ * events.
7
+ */
3
8
  export function getLifetimeTotal(u) {
4
9
  return u ? u.input + u.output + u.cacheWrite : 0;
5
10
  }
11
+ /** Accumulated cost in USD, or 0 when unpriced/undefined. */
12
+ export function getLifetimeCost(u) {
13
+ return u?.cost ?? 0;
14
+ }
6
15
  /** Add a usage delta into a target accumulator (mutates target). */
7
16
  export function addUsage(into, delta) {
8
17
  into.input += delta.input;
9
18
  into.output += delta.output;
10
19
  into.cacheWrite += delta.cacheWrite;
20
+ if (delta.cacheRead)
21
+ into.cacheRead = (into.cacheRead ?? 0) + delta.cacheRead;
22
+ if (delta.cost)
23
+ into.cost = (into.cost ?? 0) + delta.cost;
24
+ }
25
+ /**
26
+ * Render an accumulator as a pi `Usage`, or undefined when nothing was spent —
27
+ * callers attach nothing rather than a zero, so a consumer can tell "spent
28
+ * nothing" from "never ran".
29
+ *
30
+ * `cacheRead` IS included, unlike in `getLifetimeTotal`: pi sums it across a
31
+ * session's own assistant messages, and the prefix genuinely is re-read and
32
+ * re-billed on every call. Only `total` is populated on the cost breakdown; pi
33
+ * reads nothing else from it, and the per-kind split is not tracked.
34
+ */
35
+ export function toReportedUsage(u) {
36
+ const { input, output, cacheWrite, cacheRead = 0, cost = 0 } = u;
37
+ if (input === 0 && output === 0 && cacheWrite === 0 && cacheRead === 0 && cost === 0)
38
+ return undefined;
39
+ return {
40
+ input,
41
+ output,
42
+ cacheRead,
43
+ cacheWrite,
44
+ totalTokens: input + output + cacheRead + cacheWrite,
45
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: cost },
46
+ };
47
+ }
48
+ /**
49
+ * Subagent spend that the parent session has not been told about yet.
50
+ *
51
+ * Subagents run in their own pi sessions, so none of what they spend appears in
52
+ * the parent's `getSessionStats()`. Pi does aggregate `toolResult.usage` into
53
+ * those stats, though — so the way back into the parent's footer and `/cost` is
54
+ * to hang the spend on a tool result. Background and scheduled agents finish
55
+ * between tool calls with nothing to hang it on, hence a pool: every assistant
56
+ * message lands here as it happens, and the next tool result we return carries
57
+ * whatever has accumulated.
58
+ *
59
+ * Drain empties it, so each message is reported exactly once no matter how many
60
+ * results are returned or how many agents were running.
61
+ */
62
+ export class PendingUsagePool {
63
+ pending = { input: 0, output: 0, cacheWrite: 0, cacheRead: 0, cost: 0 };
64
+ dirty = false;
65
+ add(delta) {
66
+ addUsage(this.pending, delta);
67
+ this.dirty = true;
68
+ }
69
+ /**
70
+ * Take everything accumulated so far as a pi `Usage`, resetting the pool.
71
+ * Returns undefined when nothing is pending, so callers can leave the tool
72
+ * result untouched rather than attaching a zero.
73
+ */
74
+ drain() {
75
+ if (!this.dirty)
76
+ return undefined;
77
+ const drained = toReportedUsage(this.pending);
78
+ this.pending = { input: 0, output: 0, cacheWrite: 0, cacheRead: 0, cost: 0 };
79
+ this.dirty = false;
80
+ return drained;
81
+ }
11
82
  }
12
83
  /**
13
84
  * Session-scoped token count: input + output + cacheWrite as reported by
package/dist/usage.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"usage.js","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAWpF,2DAA2D;AAC3D,MAAM,UAAU,gBAAgB,CAAC,CAAiB;IAChD,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,QAAQ,CAAC,IAAmB,EAAE,KAAoB;IAChE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;IAC1B,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;IAC5B,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC;AACtC,CAAC;AASD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgC;IAC/D,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC;QAC3C,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,CAAC,CAAC;IAAC,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAgC;IACvE,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,CAAC;QAAC,OAAO,OAAO,CAAC,eAAe,EAAE,CAAC,YAAY,EAAE,OAAO,IAAI,IAAI,CAAC;IAAC,CAAC;IACvE,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * collisions.ts — deciding what to do when another extension already offers a
3
+ * workflow tool.
4
+ *
5
+ * Workflows are on by default, so this extension can be the *second*
6
+ * orchestrator in a session rather than the only one. Two workflow tools in one
7
+ * spec is worse than either alone: the model has to guess which to call, and
8
+ * pays for both descriptions to find out. The other extension was installed
9
+ * deliberately; a default of ours should not compete with it.
10
+ *
11
+ * ## What counts as a conflict
12
+ *
13
+ * An exact name match against {@link FOREIGN_WORKFLOW_TOOL_NAMES}, from a tool
14
+ * that is not ours. Exact and not a substring on purpose: `Workflow` is a
15
+ * common word in tool names that have nothing to do with orchestration
16
+ * (`github_workflow_run`, `list_workflows`), and silently disabling the feature
17
+ * against one of those would be a bug nobody could see.
18
+ *
19
+ * Two shapes, both decided here:
20
+ *
21
+ * 1. **A foreign tool took our name.** Registration is first-wins across
22
+ * extensions (`getAllRegisteredTools` skips a name it already has), and the
23
+ * winner also overwrites a built-in of the same name. Nothing throws, and
24
+ * there is no tool-conflict diagnostic the way there is for shortcuts. Ours
25
+ * never reached the registry, so there is nothing to withdraw — but the rest
26
+ * of the feature (the menu, the CLI flag) is still live and would drive a
27
+ * tool the model cannot call. It comes down with it.
28
+ * 2. **A foreign tool sits beside ours** under a different name, typically
29
+ * Claude Code's bare `Workflow`. Both are registered and both are offered.
30
+ * That one the caller can actually withdraw — `withdraw` says so.
31
+ *
32
+ * Only one direction of case 1 is detectable. If ours registered first, the
33
+ * other extension's tool is the one dropped, and pi exposes no way to see a
34
+ * tool that lost — the registry keeps winners only.
35
+ *
36
+ * Split from the acting half deliberately: everything here is a pure function
37
+ * of the tool list, so the policy can be tested without a host that can be made
38
+ * to register a competing extension. The caller owns `getAllTools`, the notify
39
+ * and the `setActiveTools` — see `resolveWorkflowCollisions` in index.ts.
40
+ */
41
+ /**
42
+ * Tool names that mean "another extension already orchestrates subagents".
43
+ *
44
+ * Our own name, because pi resolves a duplicate registration silently, and
45
+ * Claude Code's bare `Workflow`, because a port of that tool is what a second
46
+ * workflow extension most likely calls itself. Lowercase `workflow` is the same
47
+ * tool by pi convention: it is what `@quintinshaw/pi-dynamic-workflows`
48
+ * registers, and the match here is exact, so the case has to be listed by hand.
49
+ */
50
+ export declare const FOREIGN_WORKFLOW_TOOL_NAMES: ReadonlySet<string>;
51
+ /** The fields of a registered tool this decision reads. */
52
+ export interface RegisteredToolInfo {
53
+ name: string;
54
+ description?: string;
55
+ sourceInfo?: {
56
+ source?: string;
57
+ };
58
+ }
59
+ export type WorkflowCollision =
60
+ /** Nobody else is offering one. Carry on. */
61
+ {
62
+ kind: "none";
63
+ }
64
+ /**
65
+ * A foreign tool took our name, but the user pinned `workflowsEnabled: true`.
66
+ * Nothing changes — pi has already dropped our registration — but it is worth
67
+ * reporting, because pi resolved it silently.
68
+ */
69
+ | {
70
+ kind: "report";
71
+ message: string;
72
+ }
73
+ /**
74
+ * Stand down for this session. `withdraw` is false in case 1, where ours
75
+ * never reached the registry and there is nothing to take out of the active
76
+ * set.
77
+ */
78
+ | {
79
+ kind: "standDown";
80
+ message: string;
81
+ withdraw: boolean;
82
+ };
83
+ /**
84
+ * Decide, from the registered tools alone.
85
+ *
86
+ * `ownDescription` identifies our own registration: this extension does not
87
+ * know its install path, and the description is the one field that is certainly
88
+ * ours. `pinned` is an explicit `workflowsEnabled` — a default yields to
89
+ * evidence, a choice does not.
90
+ */
91
+ export declare function decideWorkflowCollision(input: {
92
+ tools: readonly RegisteredToolInfo[];
93
+ ownDescription: string;
94
+ pinned: boolean;
95
+ }): WorkflowCollision;
96
+ //# sourceMappingURL=collisions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collisions.d.ts","sourceRoot":"","sources":["../../src/workflow/collisions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAIH;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,EAAE,WAAW,CAAC,MAAM,CAI1D,CAAC;AAEH,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAClC;AAED,MAAM,MAAM,iBAAiB;AAC3B,6CAA6C;AAC3C;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;AAClB;;;;GAIG;GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACrC;;;;GAIG;GACD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC;AAE9D;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB,GAAG,iBAAiB,CA6BpB"}