@esso0428/pi-subagents 0.17.16 → 0.17.18

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 (359) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/ROADMAP.md +87 -0
  3. package/docs/post-0.17.6-agents-roster-viewer-spec.md +42 -0
  4. package/docs/post-0.17.6-durable-history-spec.md +41 -0
  5. package/docs/post-0.17.6-feature-specs.md +50 -0
  6. package/docs/post-0.17.6-nested-agents-spec.md +38 -0
  7. package/docs/post-0.17.6-recovery-shutdown-spec.md +46 -0
  8. package/docs/post-0.17.6-ui-latency-baseline-spec.md +46 -0
  9. package/docs/post-0.17.6-workflow-rpc-lifecycle-spec.md +54 -0
  10. package/package.json +1 -1
  11. package/src/agent-history.ts +2 -54
  12. package/src/agent-manager.ts +406 -1288
  13. package/src/agent-runner.ts +27 -251
  14. package/src/agent-types.ts +32 -188
  15. package/src/cross-extension-rpc.ts +20 -96
  16. package/src/custom-agents.ts +13 -170
  17. package/src/index.ts +480 -1920
  18. package/src/invocation-config.ts +3 -118
  19. package/src/model-resolver.ts +0 -18
  20. package/src/output-file.ts +6 -61
  21. package/src/prompts.ts +2 -45
  22. package/src/schedule.ts +14 -35
  23. package/src/settings.ts +2 -301
  24. package/src/status-note.ts +1 -66
  25. package/src/types.ts +10 -177
  26. package/src/ui/agent-widget.ts +57 -278
  27. package/src/ui/conversation-blocks.ts +0 -6
  28. package/src/ui/conversation-timeline.ts +25 -139
  29. package/src/ui/conversation-viewer.ts +48 -212
  30. package/src/ui/schedule-menu.ts +8 -9
  31. package/src/usage.ts +2 -109
  32. package/src/worktree.ts +55 -69
  33. package/dist/abortable.d.ts +0 -13
  34. package/dist/abortable.d.ts.map +0 -1
  35. package/dist/abortable.js +0 -43
  36. package/dist/abortable.js.map +0 -1
  37. package/dist/agent-color.d.ts +0 -36
  38. package/dist/agent-color.d.ts.map +0 -1
  39. package/dist/agent-color.js +0 -124
  40. package/dist/agent-color.js.map +0 -1
  41. package/dist/agent-file-toggle.d.ts +0 -126
  42. package/dist/agent-file-toggle.d.ts.map +0 -1
  43. package/dist/agent-file-toggle.js +0 -259
  44. package/dist/agent-file-toggle.js.map +0 -1
  45. package/dist/agent-history-list.d.ts +0 -19
  46. package/dist/agent-history-list.d.ts.map +0 -1
  47. package/dist/agent-history-list.js +0 -69
  48. package/dist/agent-history-list.js.map +0 -1
  49. package/dist/agent-history.d.ts +0 -35
  50. package/dist/agent-history.d.ts.map +0 -1
  51. package/dist/agent-history.js +0 -188
  52. package/dist/agent-history.js.map +0 -1
  53. package/dist/agent-manager.d.ts +0 -503
  54. package/dist/agent-manager.d.ts.map +0 -1
  55. package/dist/agent-manager.js +0 -1572
  56. package/dist/agent-manager.js.map +0 -1
  57. package/dist/agent-recovery.d.ts +0 -37
  58. package/dist/agent-recovery.d.ts.map +0 -1
  59. package/dist/agent-recovery.js +0 -171
  60. package/dist/agent-recovery.js.map +0 -1
  61. package/dist/agent-runner.d.ts +0 -303
  62. package/dist/agent-runner.d.ts.map +0 -1
  63. package/dist/agent-runner.js +0 -1003
  64. package/dist/agent-runner.js.map +0 -1
  65. package/dist/agent-types.d.ts +0 -120
  66. package/dist/agent-types.d.ts.map +0 -1
  67. package/dist/agent-types.js +0 -301
  68. package/dist/agent-types.js.map +0 -1
  69. package/dist/child-context.d.ts +0 -3
  70. package/dist/child-context.d.ts.map +0 -1
  71. package/dist/child-context.js +0 -13
  72. package/dist/child-context.js.map +0 -1
  73. package/dist/context.d.ts +0 -13
  74. package/dist/context.d.ts.map +0 -1
  75. package/dist/context.js +0 -57
  76. package/dist/context.js.map +0 -1
  77. package/dist/cross-extension-rpc.d.ts +0 -67
  78. package/dist/cross-extension-rpc.d.ts.map +0 -1
  79. package/dist/cross-extension-rpc.js +0 -139
  80. package/dist/cross-extension-rpc.js.map +0 -1
  81. package/dist/custom-agents.d.ts +0 -55
  82. package/dist/custom-agents.d.ts.map +0 -1
  83. package/dist/custom-agents.js +0 -309
  84. package/dist/custom-agents.js.map +0 -1
  85. package/dist/default-agents.d.ts +0 -8
  86. package/dist/default-agents.d.ts.map +0 -1
  87. package/dist/default-agents.js +0 -123
  88. package/dist/default-agents.js.map +0 -1
  89. package/dist/enabled-models.d.ts +0 -50
  90. package/dist/enabled-models.d.ts.map +0 -1
  91. package/dist/enabled-models.js +0 -146
  92. package/dist/enabled-models.js.map +0 -1
  93. package/dist/env.d.ts +0 -7
  94. package/dist/env.d.ts.map +0 -1
  95. package/dist/env.js +0 -29
  96. package/dist/env.js.map +0 -1
  97. package/dist/group-join.d.ts +0 -33
  98. package/dist/group-join.d.ts.map +0 -1
  99. package/dist/group-join.js +0 -117
  100. package/dist/group-join.js.map +0 -1
  101. package/dist/index.d.ts +0 -51
  102. package/dist/index.d.ts.map +0 -1
  103. package/dist/index.js +0 -3687
  104. package/dist/index.js.map +0 -1
  105. package/dist/invocation-config.d.ts +0 -108
  106. package/dist/invocation-config.d.ts.map +0 -1
  107. package/dist/invocation-config.js +0 -84
  108. package/dist/invocation-config.js.map +0 -1
  109. package/dist/memory.d.ts +0 -54
  110. package/dist/memory.d.ts.map +0 -1
  111. package/dist/memory.js +0 -166
  112. package/dist/memory.js.map +0 -1
  113. package/dist/mention-clone.d.ts +0 -88
  114. package/dist/mention-clone.d.ts.map +0 -1
  115. package/dist/mention-clone.js +0 -154
  116. package/dist/mention-clone.js.map +0 -1
  117. package/dist/mention.d.ts +0 -82
  118. package/dist/mention.d.ts.map +0 -1
  119. package/dist/mention.js +0 -132
  120. package/dist/mention.js.map +0 -1
  121. package/dist/model-resolver.d.ts +0 -37
  122. package/dist/model-resolver.d.ts.map +0 -1
  123. package/dist/model-resolver.js +0 -96
  124. package/dist/model-resolver.js.map +0 -1
  125. package/dist/model-scope.d.ts +0 -50
  126. package/dist/model-scope.d.ts.map +0 -1
  127. package/dist/model-scope.js +0 -49
  128. package/dist/model-scope.js.map +0 -1
  129. package/dist/nested-tools.d.ts +0 -57
  130. package/dist/nested-tools.d.ts.map +0 -1
  131. package/dist/nested-tools.js +0 -301
  132. package/dist/nested-tools.js.map +0 -1
  133. package/dist/nico-overrides.d.ts +0 -54
  134. package/dist/nico-overrides.d.ts.map +0 -1
  135. package/dist/nico-overrides.js +0 -170
  136. package/dist/nico-overrides.js.map +0 -1
  137. package/dist/output-file.d.ts +0 -44
  138. package/dist/output-file.d.ts.map +0 -1
  139. package/dist/output-file.js +0 -156
  140. package/dist/output-file.js.map +0 -1
  141. package/dist/prompts.d.ts +0 -56
  142. package/dist/prompts.d.ts.map +0 -1
  143. package/dist/prompts.js +0 -92
  144. package/dist/prompts.js.map +0 -1
  145. package/dist/schedule-store.d.ts +0 -39
  146. package/dist/schedule-store.d.ts.map +0 -1
  147. package/dist/schedule-store.js +0 -156
  148. package/dist/schedule-store.js.map +0 -1
  149. package/dist/schedule.d.ts +0 -110
  150. package/dist/schedule.d.ts.map +0 -1
  151. package/dist/schedule.js +0 -360
  152. package/dist/schedule.js.map +0 -1
  153. package/dist/settings.d.ts +0 -354
  154. package/dist/settings.d.ts.map +0 -1
  155. package/dist/settings.js +0 -247
  156. package/dist/settings.js.map +0 -1
  157. package/dist/skill-loader.d.ts +0 -25
  158. package/dist/skill-loader.d.ts.map +0 -1
  159. package/dist/skill-loader.js +0 -94
  160. package/dist/skill-loader.js.map +0 -1
  161. package/dist/status-note.d.ts +0 -62
  162. package/dist/status-note.d.ts.map +0 -1
  163. package/dist/status-note.js +0 -86
  164. package/dist/status-note.js.map +0 -1
  165. package/dist/structured-output.d.ts +0 -62
  166. package/dist/structured-output.d.ts.map +0 -1
  167. package/dist/structured-output.js +0 -113
  168. package/dist/structured-output.js.map +0 -1
  169. package/dist/types.d.ts +0 -372
  170. package/dist/types.d.ts.map +0 -1
  171. package/dist/types.js +0 -6
  172. package/dist/types.js.map +0 -1
  173. package/dist/ui/agent-mention.d.ts +0 -83
  174. package/dist/ui/agent-mention.d.ts.map +0 -1
  175. package/dist/ui/agent-mention.js +0 -188
  176. package/dist/ui/agent-mention.js.map +0 -1
  177. package/dist/ui/agent-widget.d.ts +0 -241
  178. package/dist/ui/agent-widget.d.ts.map +0 -1
  179. package/dist/ui/agent-widget.js +0 -992
  180. package/dist/ui/agent-widget.js.map +0 -1
  181. package/dist/ui/ccstyle/diff/ansi-utils.d.ts +0 -11
  182. package/dist/ui/ccstyle/diff/ansi-utils.d.ts.map +0 -1
  183. package/dist/ui/ccstyle/diff/ansi-utils.js +0 -145
  184. package/dist/ui/ccstyle/diff/ansi-utils.js.map +0 -1
  185. package/dist/ui/ccstyle/diff/diff-presentation.d.ts +0 -12
  186. package/dist/ui/ccstyle/diff/diff-presentation.d.ts.map +0 -1
  187. package/dist/ui/ccstyle/diff/diff-presentation.js +0 -48
  188. package/dist/ui/ccstyle/diff/diff-presentation.js.map +0 -1
  189. package/dist/ui/ccstyle/diff/diff-renderer.d.ts +0 -46
  190. package/dist/ui/ccstyle/diff/diff-renderer.d.ts.map +0 -1
  191. package/dist/ui/ccstyle/diff/diff-renderer.js +0 -2049
  192. package/dist/ui/ccstyle/diff/diff-renderer.js.map +0 -1
  193. package/dist/ui/ccstyle/diff/line-width-safety.d.ts +0 -12
  194. package/dist/ui/ccstyle/diff/line-width-safety.d.ts.map +0 -1
  195. package/dist/ui/ccstyle/diff/line-width-safety.js +0 -58
  196. package/dist/ui/ccstyle/diff/line-width-safety.js.map +0 -1
  197. package/dist/ui/ccstyle/diff/render-utils.d.ts +0 -6
  198. package/dist/ui/ccstyle/diff/render-utils.d.ts.map +0 -1
  199. package/dist/ui/ccstyle/diff/render-utils.js +0 -25
  200. package/dist/ui/ccstyle/diff/render-utils.js.map +0 -1
  201. package/dist/ui/ccstyle/diff/shiki-highlight.d.ts +0 -19
  202. package/dist/ui/ccstyle/diff/shiki-highlight.d.ts.map +0 -1
  203. package/dist/ui/ccstyle/diff/shiki-highlight.js +0 -85
  204. package/dist/ui/ccstyle/diff/shiki-highlight.js.map +0 -1
  205. package/dist/ui/ccstyle/diff/types.d.ts +0 -22
  206. package/dist/ui/ccstyle/diff/types.d.ts.map +0 -1
  207. package/dist/ui/ccstyle/diff/types.js +0 -10
  208. package/dist/ui/ccstyle/diff/types.js.map +0 -1
  209. package/dist/ui/ccstyle/diff/write-display-utils.d.ts +0 -2
  210. package/dist/ui/ccstyle/diff/write-display-utils.d.ts.map +0 -1
  211. package/dist/ui/ccstyle/diff/write-display-utils.js +0 -12
  212. package/dist/ui/ccstyle/diff/write-display-utils.js.map +0 -1
  213. package/dist/ui/ccstyle/tool-renderer.d.ts +0 -17
  214. package/dist/ui/ccstyle/tool-renderer.d.ts.map +0 -1
  215. package/dist/ui/ccstyle/tool-renderer.js +0 -74
  216. package/dist/ui/ccstyle/tool-renderer.js.map +0 -1
  217. package/dist/ui/ccstyle/tool-result.d.ts +0 -44
  218. package/dist/ui/ccstyle/tool-result.d.ts.map +0 -1
  219. package/dist/ui/ccstyle/tool-result.js +0 -423
  220. package/dist/ui/ccstyle/tool-result.js.map +0 -1
  221. package/dist/ui/conversation-blocks.d.ts +0 -46
  222. package/dist/ui/conversation-blocks.d.ts.map +0 -1
  223. package/dist/ui/conversation-blocks.js +0 -313
  224. package/dist/ui/conversation-blocks.js.map +0 -1
  225. package/dist/ui/conversation-nvim.d.ts +0 -8
  226. package/dist/ui/conversation-nvim.d.ts.map +0 -1
  227. package/dist/ui/conversation-nvim.js +0 -117
  228. package/dist/ui/conversation-nvim.js.map +0 -1
  229. package/dist/ui/conversation-role.d.ts +0 -13
  230. package/dist/ui/conversation-role.d.ts.map +0 -1
  231. package/dist/ui/conversation-role.js +0 -39
  232. package/dist/ui/conversation-role.js.map +0 -1
  233. package/dist/ui/conversation-search.d.ts +0 -39
  234. package/dist/ui/conversation-search.d.ts.map +0 -1
  235. package/dist/ui/conversation-search.js +0 -124
  236. package/dist/ui/conversation-search.js.map +0 -1
  237. package/dist/ui/conversation-timeline.d.ts +0 -102
  238. package/dist/ui/conversation-timeline.d.ts.map +0 -1
  239. package/dist/ui/conversation-timeline.js +0 -555
  240. package/dist/ui/conversation-timeline.js.map +0 -1
  241. package/dist/ui/conversation-viewer.d.ts +0 -138
  242. package/dist/ui/conversation-viewer.d.ts.map +0 -1
  243. package/dist/ui/conversation-viewer.js +0 -1175
  244. package/dist/ui/conversation-viewer.js.map +0 -1
  245. package/dist/ui/schedule-menu.d.ts +0 -17
  246. package/dist/ui/schedule-menu.d.ts.map +0 -1
  247. package/dist/ui/schedule-menu.js +0 -95
  248. package/dist/ui/schedule-menu.js.map +0 -1
  249. package/dist/ui/select-item.d.ts +0 -28
  250. package/dist/ui/select-item.d.ts.map +0 -1
  251. package/dist/ui/select-item.js +0 -35
  252. package/dist/ui/select-item.js.map +0 -1
  253. package/dist/ui/viewer-keys.d.ts +0 -21
  254. package/dist/ui/viewer-keys.d.ts.map +0 -1
  255. package/dist/ui/viewer-keys.js +0 -18
  256. package/dist/ui/viewer-keys.js.map +0 -1
  257. package/dist/ui/workflow-card.d.ts +0 -176
  258. package/dist/ui/workflow-card.d.ts.map +0 -1
  259. package/dist/ui/workflow-card.js +0 -333
  260. package/dist/ui/workflow-card.js.map +0 -1
  261. package/dist/ui/workflow-dialog.d.ts +0 -306
  262. package/dist/ui/workflow-dialog.d.ts.map +0 -1
  263. package/dist/ui/workflow-dialog.js +0 -844
  264. package/dist/ui/workflow-dialog.js.map +0 -1
  265. package/dist/ui/workflow-menu.d.ts +0 -42
  266. package/dist/ui/workflow-menu.d.ts.map +0 -1
  267. package/dist/ui/workflow-menu.js +0 -127
  268. package/dist/ui/workflow-menu.js.map +0 -1
  269. package/dist/usage.d.ts +0 -136
  270. package/dist/usage.d.ts.map +0 -1
  271. package/dist/usage.js +0 -121
  272. package/dist/usage.js.map +0 -1
  273. package/dist/workflow/collisions.d.ts +0 -96
  274. package/dist/workflow/collisions.d.ts.map +0 -1
  275. package/dist/workflow/collisions.js +0 -89
  276. package/dist/workflow/collisions.js.map +0 -1
  277. package/dist/workflow/entry.d.ts +0 -33
  278. package/dist/workflow/entry.d.ts.map +0 -1
  279. package/dist/workflow/entry.js +0 -30
  280. package/dist/workflow/entry.js.map +0 -1
  281. package/dist/workflow/host.d.ts +0 -63
  282. package/dist/workflow/host.d.ts.map +0 -1
  283. package/dist/workflow/host.js +0 -363
  284. package/dist/workflow/host.js.map +0 -1
  285. package/dist/workflow/journal.d.ts +0 -98
  286. package/dist/workflow/journal.d.ts.map +0 -1
  287. package/dist/workflow/journal.js +0 -121
  288. package/dist/workflow/journal.js.map +0 -1
  289. package/dist/workflow/json-schema.d.ts +0 -52
  290. package/dist/workflow/json-schema.d.ts.map +0 -1
  291. package/dist/workflow/json-schema.js +0 -112
  292. package/dist/workflow/json-schema.js.map +0 -1
  293. package/dist/workflow/meta.d.ts +0 -68
  294. package/dist/workflow/meta.d.ts.map +0 -1
  295. package/dist/workflow/meta.js +0 -318
  296. package/dist/workflow/meta.js.map +0 -1
  297. package/dist/workflow/progress.d.ts +0 -225
  298. package/dist/workflow/progress.d.ts.map +0 -1
  299. package/dist/workflow/progress.js +0 -362
  300. package/dist/workflow/progress.js.map +0 -1
  301. package/dist/workflow/runtime.d.ts +0 -335
  302. package/dist/workflow/runtime.d.ts.map +0 -1
  303. package/dist/workflow/runtime.js +0 -831
  304. package/dist/workflow/runtime.js.map +0 -1
  305. package/dist/workflow/saved.d.ts +0 -91
  306. package/dist/workflow/saved.d.ts.map +0 -1
  307. package/dist/workflow/saved.js +0 -204
  308. package/dist/workflow/saved.js.map +0 -1
  309. package/dist/workflow/task.d.ts +0 -137
  310. package/dist/workflow/task.d.ts.map +0 -1
  311. package/dist/workflow/task.js +0 -208
  312. package/dist/workflow/task.js.map +0 -1
  313. package/dist/workflow/tool-description.d.ts +0 -39
  314. package/dist/workflow/tool-description.d.ts.map +0 -1
  315. package/dist/workflow/tool-description.js +0 -200
  316. package/dist/workflow/tool-description.js.map +0 -1
  317. package/dist/workflow/worker-source.d.ts +0 -48
  318. package/dist/workflow/worker-source.d.ts.map +0 -1
  319. package/dist/workflow/worker-source.js +0 -779
  320. package/dist/workflow/worker-source.js.map +0 -1
  321. package/dist/worktree.d.ts +0 -53
  322. package/dist/worktree.d.ts.map +0 -1
  323. package/dist/worktree.js +0 -165
  324. package/dist/worktree.js.map +0 -1
  325. package/dist/write-execution.d.ts +0 -42
  326. package/dist/write-execution.d.ts.map +0 -1
  327. package/dist/write-execution.js +0 -138
  328. package/dist/write-execution.js.map +0 -1
  329. package/dist/xml.d.ts +0 -11
  330. package/dist/xml.d.ts.map +0 -1
  331. package/dist/xml.js +0 -13
  332. package/dist/xml.js.map +0 -1
  333. package/src/abortable.ts +0 -43
  334. package/src/agent-color.ts +0 -161
  335. package/src/agent-file-toggle.ts +0 -269
  336. package/src/child-context.ts +0 -15
  337. package/src/mention-clone.ts +0 -196
  338. package/src/mention.ts +0 -141
  339. package/src/model-scope.ts +0 -70
  340. package/src/nested-tools.ts +0 -424
  341. package/src/structured-output.ts +0 -130
  342. package/src/ui/agent-mention.ts +0 -216
  343. package/src/ui/select-item.ts +0 -45
  344. package/src/ui/workflow-card.ts +0 -470
  345. package/src/ui/workflow-dialog.ts +0 -1115
  346. package/src/ui/workflow-menu.ts +0 -166
  347. package/src/workflow/collisions.ts +0 -123
  348. package/src/workflow/entry.ts +0 -47
  349. package/src/workflow/host.ts +0 -403
  350. package/src/workflow/journal.ts +0 -164
  351. package/src/workflow/json-schema.ts +0 -128
  352. package/src/workflow/meta.ts +0 -325
  353. package/src/workflow/progress.ts +0 -550
  354. package/src/workflow/runtime.ts +0 -1219
  355. package/src/workflow/saved.ts +0 -217
  356. package/src/workflow/task.ts +0 -302
  357. package/src/workflow/tool-description.ts +0 -200
  358. package/src/workflow/worker-source.ts +0 -781
  359. package/src/xml.ts +0 -13
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-dialog.js","sourceRoot":"","sources":["../../src/ui/workflow-dialog.ts"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
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.
7
- *
8
- * Lives in the agents menu rather than as a top-level `/workflows` command: a
9
- * second command name would only add
10
- * a collision surface (pi renames duplicate commands to `/workflows:1` and
11
- * `/workflows:2`, which breaks the bare name for both).
12
- */
13
- import type { ExtensionCommandContext } from "@earendil-works/pi-coding-agent";
14
- import type { AgentRecord } from "../types.js";
15
- import { type WorkflowTask } from "../workflow/task.js";
16
- /** Everything the menu and the inspector need from the extension around them. */
17
- export interface WorkflowMenuDeps {
18
- /**
19
- * Live runs by id, read on every use rather than snapshotted: a run that
20
- * settled and was swept between render and keypress must be a no-op, not a
21
- * crash.
22
- */
23
- tasks: ReadonlyMap<string, WorkflowTask>;
24
- /** The record behind an agent id, or undefined once it has been swept. */
25
- getRecord(id: string): AgentRecord | undefined;
26
- /** The conversation overlay `c` opens on an agent row. */
27
- viewAgentConversation(ctx: ExtensionCommandContext, record: AgentRecord): Promise<void>;
28
- }
29
- /**
30
- * Open the inspector for a workflow run.
31
- *
32
- * All six controls are wired: `onKill` aborts the run's controller, while
33
- * pause/resume and per-agent skip/retry go through `task.control`, the handle
34
- * `runWorkflow` hands back. `onOpenAgent` is the odd one out — it opens the
35
- * child's conversation rather than changing the run. The dialog derives its key
36
- * hints from the actions it is handed, so the footer advertises exactly what
37
- * works — see `WorkflowDialogActions`.
38
- */
39
- export declare function showWorkflowDialog(ctx: ExtensionCommandContext, task: WorkflowTask, deps: WorkflowMenuDeps): Promise<void>;
40
- /** `/agents → Workflows` — list this session's runs, open one. */
41
- export declare function showWorkflowsMenu(ctx: ExtensionCommandContext, deps: WorkflowMenuDeps): Promise<void>;
42
- //# sourceMappingURL=workflow-menu.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-menu.d.ts","sourceRoot":"","sources":["../../src/ui/workflow-menu.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;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;CACzF;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,uBAAuB,EAC5B,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,IAAI,CAAC,CA0Ff;AAED,kEAAkE;AAClE,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,uBAAuB,EAC5B,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,IAAI,CAAC,CAuBf"}
@@ -1,127 +0,0 @@
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.
7
- *
8
- * Lives in the agents menu rather than as a top-level `/workflows` command: a
9
- * second command name would only add
10
- * a collision surface (pi renames duplicate commands to `/workflows:1` and
11
- * `/workflows:2`, which breaks the bare name for both).
12
- */
13
- import { pauseWorkflowTask, resumeWorkflowTask } from "../workflow/task.js";
14
- import { WorkflowDialog } from "./workflow-dialog.js";
15
- /**
16
- * Open the inspector for a workflow run.
17
- *
18
- * All six controls are wired: `onKill` aborts the run's controller, while
19
- * pause/resume and per-agent skip/retry go through `task.control`, the handle
20
- * `runWorkflow` hands back. `onOpenAgent` is the odd one out — it opens the
21
- * child's conversation rather than changing the run. The dialog derives its key
22
- * hints from the actions it is handed, so the footer advertises exactly what
23
- * works — see `WorkflowDialogActions`.
24
- */
25
- export async function showWorkflowDialog(ctx, task, deps) {
26
- // Use an overlay like the conversation viewer. Inline, the frame would render
27
- // into the conversation and stay in the scrollback after it closed.
28
- const { VIEWPORT_HEIGHT_PCT } = await import("./conversation-viewer.js");
29
- /**
30
- * This dialog's own overlay, so `c` can hide it while the conversation is
31
- * up. Overlays stack, so the viewer would render *over* it either way —
32
- * but the two frames size themselves to different content, and the taller
33
- * one's edges show around the shorter. Hidden, there is nothing to peek
34
- * out, and un-hiding puts the focus back on the dialog when the viewer
35
- * closes.
36
- */
37
- let overlay;
38
- await ctx.ui.custom((tui, theme, _keybindings, done) => new WorkflowDialog(tui,
39
- // Re-read on every render: the run is in the background, so the
40
- // dialog has to follow it rather than snapshot it at open time.
41
- () => ({
42
- progress: task.workflowProgress,
43
- task: {
44
- status: task.status,
45
- workflowName: task.workflowName,
46
- startTime: task.startTime,
47
- endTime: task.endTime,
48
- totalPausedMs: task.totalPausedMs,
49
- },
50
- meta: task.meta,
51
- agentCount: task.agentCount,
52
- }), theme, done, {
53
- onKill: () => {
54
- if (task.abortController.signal.aborted)
55
- return;
56
- task.abortController.abort();
57
- ctx.ui.notify(`Stopped workflow "${task.meta?.name ?? task.id}".`, "info");
58
- },
59
- onPause: () => {
60
- if (pauseWorkflowTask(task)) {
61
- // Named rather than implied: "paused" on a run whose agents are
62
- // still finishing reads as a stronger promise than it is.
63
- ctx.ui.notify("Paused — running agents finish, no new ones start.", "info");
64
- }
65
- },
66
- onResume: () => {
67
- if (resumeWorkflowTask(task))
68
- ctx.ui.notify("Resumed.", "info");
69
- },
70
- onSkipAgent: index => {
71
- if (task.control?.skip(index) !== true) {
72
- ctx.ui.notify("Nothing to skip — that agent has already finished.", "info");
73
- }
74
- },
75
- onRetryAgent: index => {
76
- if (task.control?.retry(index) !== true) {
77
- // The window is exactly "while it is running": before that
78
- // there is nothing to stop, after it the script has its answer.
79
- ctx.ui.notify("Only a running agent can be retried.", "info");
80
- }
81
- },
82
- onOpenAgent: recordId => {
83
- const record = deps.getRecord(recordId);
84
- // A run's children are records like any other, so they are swept
85
- // ten minutes after they finish — the row outlives the
86
- // conversation it points at, and saying why beats an overlay that
87
- // opens empty.
88
- if (record === undefined) {
89
- ctx.ui.notify("No conversation left — agent records are dropped ten minutes after they finish.", "info");
90
- return;
91
- }
92
- overlay?.setHidden(true);
93
- // Caught before the `finally`, so a viewer that fails to open
94
- // still un-hides the dialog and cannot surface as an unhandled
95
- // rejection out of a detached promise.
96
- void deps.viewAgentConversation(ctx, record)
97
- .catch(err => ctx.ui.notify(`Could not open the conversation: ${err instanceof Error ? err.message : String(err)}`, "warning"))
98
- .finally(() => overlay?.setHidden(false));
99
- },
100
- }), {
101
- overlay: true,
102
- overlayOptions: { anchor: "center", width: "90%", maxHeight: `${VIEWPORT_HEIGHT_PCT}%` },
103
- onHandle: handle => { overlay = handle; },
104
- });
105
- }
106
- /** `/agents → Workflows` — list this session's runs, open one. */
107
- export async function showWorkflowsMenu(ctx, deps) {
108
- const tasks = [...deps.tasks.values()].sort((a, b) => b.startTime - a.startTime);
109
- if (tasks.length === 0) {
110
- ctx.ui.notify("No workflows in this session.", "info");
111
- return;
112
- }
113
- if (tasks.length === 1) {
114
- await showWorkflowDialog(ctx, tasks[0], deps);
115
- return;
116
- }
117
- // More than one: pick first. Newest at the top, since that is almost
118
- // always the one being asked about. `select` deals in plain strings and
119
- // hands back the string, so the label has to be unique or `indexOf` maps
120
- // the second run of a workflow onto the first — the run id makes it so.
121
- const labels = tasks.map(task => `${task.meta?.name ?? task.id} — ${task.status}, ${task.agentCount} agent${task.agentCount === 1 ? "" : "s"} · ${task.id}`);
122
- const picked = await ctx.ui.select("Workflows", labels);
123
- const index = picked !== undefined ? labels.indexOf(picked) : -1;
124
- if (index >= 0)
125
- await showWorkflowDialog(ctx, tasks[index], deps);
126
- }
127
- //# sourceMappingURL=workflow-menu.js.map
@@ -1 +0,0 @@
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 DELETED
@@ -1,136 +0,0 @@
1
- /** usage.ts — Token usage: shapes, accumulator operators, session-stats readers. */
2
- /**
3
- * Lifetime usage components, accumulated via `message_end` events. Survives
4
- * compaction (which replaces session.state.messages and would reset any
5
- * stats-derived sum). cacheRead is excluded because each turn's cacheRead is
6
- * the cumulative cached prefix re-read on that one call — summing across
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.
20
- */
21
- export type LifetimeUsage = {
22
- input: number;
23
- output: number;
24
- cacheWrite: number;
25
- cacheRead?: number;
26
- cost?: number;
27
- };
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
- */
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;
37
- /** Add a usage delta into a target accumulator (mutates target). */
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
- }
103
- /** Minimal shape we read from upstream `getSessionStats()`. */
104
- export type SessionStatsLike = {
105
- tokens: {
106
- input: number;
107
- output: number;
108
- cacheWrite: number;
109
- };
110
- contextUsage?: {
111
- percent: number | null;
112
- };
113
- };
114
- export type SessionLike = {
115
- getSessionStats(): SessionStatsLike;
116
- };
117
- /**
118
- * Session-scoped token count: input + output + cacheWrite as reported by
119
- * upstream `getSessionStats().tokens` for the *current* session window.
120
- *
121
- * RESETS at compaction — upstream replaces `session.state.messages` and the
122
- * stats are derived from that array. For a lifetime total that survives
123
- * compaction, use `getLifetimeTotal(lifetimeUsage)` instead, which reads
124
- * from an independent accumulator fed by `message_end` events.
125
- *
126
- * Avoids upstream's `tokens.total` field, which sums per-turn `cacheRead`
127
- * and so counts the cumulative cached prefix N times across N turns
128
- * (issue #38).
129
- */
130
- export declare function getSessionTokens(session: SessionLike | undefined): number;
131
- /**
132
- * Context-window utilization (0–100), or null when unavailable
133
- * (no model contextWindow, or post-compaction before the next response).
134
- */
135
- export declare function getSessionContextPercent(session: SessionLike | undefined): number | null;
136
- //# sourceMappingURL=usage.d.ts.map
@@ -1 +0,0 @@
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 DELETED
@@ -1,121 +0,0 @@
1
- /** usage.ts — Token usage: shapes, accumulator operators, session-stats readers. */
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
- */
8
- export function getLifetimeTotal(u) {
9
- return u ? u.input + u.output + u.cacheWrite : 0;
10
- }
11
- /** Accumulated cost in USD, or 0 when unpriced/undefined. */
12
- export function getLifetimeCost(u) {
13
- return u?.cost ?? 0;
14
- }
15
- /** Add a usage delta into a target accumulator (mutates target). */
16
- export function addUsage(into, delta) {
17
- into.input += delta.input;
18
- into.output += delta.output;
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
- }
82
- }
83
- /**
84
- * Session-scoped token count: input + output + cacheWrite as reported by
85
- * upstream `getSessionStats().tokens` for the *current* session window.
86
- *
87
- * RESETS at compaction — upstream replaces `session.state.messages` and the
88
- * stats are derived from that array. For a lifetime total that survives
89
- * compaction, use `getLifetimeTotal(lifetimeUsage)` instead, which reads
90
- * from an independent accumulator fed by `message_end` events.
91
- *
92
- * Avoids upstream's `tokens.total` field, which sums per-turn `cacheRead`
93
- * and so counts the cumulative cached prefix N times across N turns
94
- * (issue #38).
95
- */
96
- export function getSessionTokens(session) {
97
- if (!session)
98
- return 0;
99
- try {
100
- const t = session.getSessionStats().tokens;
101
- return t.input + t.output + t.cacheWrite;
102
- }
103
- catch {
104
- return 0;
105
- }
106
- }
107
- /**
108
- * Context-window utilization (0–100), or null when unavailable
109
- * (no model contextWindow, or post-compaction before the next response).
110
- */
111
- export function getSessionContextPercent(session) {
112
- if (!session)
113
- return null;
114
- try {
115
- return session.getSessionStats().contextUsage?.percent ?? null;
116
- }
117
- catch {
118
- return null;
119
- }
120
- }
121
- //# sourceMappingURL=usage.js.map
package/dist/usage.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"usage.js","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"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"}
@@ -1,96 +0,0 @@
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
@@ -1 +0,0 @@
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"}