pi-agent-flow 2.2.33 → 2.3.1

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 (214) hide show
  1. package/agents/craft.md +1 -1
  2. package/agents/debug.md +1 -1
  3. package/agents/ideas.md +1 -1
  4. package/dist/batch/batch-bash.d.ts +6 -1
  5. package/dist/batch/batch-bash.d.ts.map +1 -1
  6. package/dist/batch/batch-bash.js +7 -2
  7. package/dist/batch/batch-bash.js.map +1 -1
  8. package/dist/batch/constants.d.ts +4 -2
  9. package/dist/batch/constants.d.ts.map +1 -1
  10. package/dist/batch/execute.d.ts +2 -2
  11. package/dist/batch/execute.d.ts.map +1 -1
  12. package/dist/batch/execute.js +13 -1
  13. package/dist/batch/execute.js.map +1 -1
  14. package/dist/batch/fuzzy-edit.d.ts +1 -1
  15. package/dist/batch/fuzzy-edit.d.ts.map +1 -1
  16. package/dist/batch/fuzzy-edit.js +43 -17
  17. package/dist/batch/fuzzy-edit.js.map +1 -1
  18. package/dist/batch/summary.d.ts.map +1 -1
  19. package/dist/batch/summary.js +146 -0
  20. package/dist/batch/summary.js.map +1 -1
  21. package/dist/cli/ask-user.d.ts +40 -0
  22. package/dist/cli/ask-user.d.ts.map +1 -0
  23. package/dist/cli/ask-user.js +117 -0
  24. package/dist/cli/ask-user.js.map +1 -0
  25. package/dist/cli/batch-read.d.ts +17 -0
  26. package/dist/cli/batch-read.d.ts.map +1 -0
  27. package/dist/cli/batch-read.js +76 -0
  28. package/dist/cli/batch-read.js.map +1 -0
  29. package/dist/cli/batch.d.ts +20 -0
  30. package/dist/cli/batch.d.ts.map +1 -0
  31. package/dist/cli/batch.js +128 -0
  32. package/dist/cli/batch.js.map +1 -0
  33. package/dist/cli/chain.d.ts +24 -0
  34. package/dist/cli/chain.d.ts.map +1 -0
  35. package/dist/cli/chain.js +166 -0
  36. package/dist/cli/chain.js.map +1 -0
  37. package/dist/cli/exec/bash.d.ts +7 -0
  38. package/dist/cli/exec/bash.d.ts.map +1 -0
  39. package/dist/cli/exec/bash.js +63 -0
  40. package/dist/cli/exec/bash.js.map +1 -0
  41. package/dist/cli/exec/delete.d.ts +6 -0
  42. package/dist/cli/exec/delete.d.ts.map +1 -0
  43. package/dist/cli/exec/delete.js +18 -0
  44. package/dist/cli/exec/delete.js.map +1 -0
  45. package/dist/cli/exec/edit.d.ts +6 -0
  46. package/dist/cli/exec/edit.d.ts.map +1 -0
  47. package/dist/cli/exec/edit.js +44 -0
  48. package/dist/cli/exec/edit.js.map +1 -0
  49. package/dist/cli/exec/patch.d.ts +6 -0
  50. package/dist/cli/exec/patch.d.ts.map +1 -0
  51. package/dist/cli/exec/patch.js +20 -0
  52. package/dist/cli/exec/patch.js.map +1 -0
  53. package/dist/cli/exec/poll.d.ts +7 -0
  54. package/dist/cli/exec/poll.d.ts.map +1 -0
  55. package/dist/cli/exec/poll.js +59 -0
  56. package/dist/cli/exec/poll.js.map +1 -0
  57. package/dist/cli/exec/read.d.ts +15 -0
  58. package/dist/cli/exec/read.d.ts.map +1 -0
  59. package/dist/cli/exec/read.js +54 -0
  60. package/dist/cli/exec/read.js.map +1 -0
  61. package/dist/cli/exec/rg.d.ts +10 -0
  62. package/dist/cli/exec/rg.d.ts.map +1 -0
  63. package/dist/cli/exec/rg.js +32 -0
  64. package/dist/cli/exec/rg.js.map +1 -0
  65. package/dist/cli/exec/util.d.ts +9 -0
  66. package/dist/cli/exec/util.d.ts.map +1 -0
  67. package/dist/cli/exec/util.js +8 -0
  68. package/dist/cli/exec/util.js.map +1 -0
  69. package/dist/cli/exec/web.d.ts +8 -0
  70. package/dist/cli/exec/web.d.ts.map +1 -0
  71. package/dist/cli/exec/web.js +48 -0
  72. package/dist/cli/exec/web.js.map +1 -0
  73. package/dist/cli/exec/write.d.ts +6 -0
  74. package/dist/cli/exec/write.d.ts.map +1 -0
  75. package/dist/cli/exec/write.js +23 -0
  76. package/dist/cli/exec/write.js.map +1 -0
  77. package/dist/cli/flags/bash.d.ts +3 -0
  78. package/dist/cli/flags/bash.d.ts.map +1 -0
  79. package/dist/cli/flags/bash.js +7 -0
  80. package/dist/cli/flags/bash.js.map +1 -0
  81. package/dist/cli/flags/delete.d.ts +3 -0
  82. package/dist/cli/flags/delete.d.ts.map +1 -0
  83. package/dist/cli/flags/delete.js +4 -0
  84. package/dist/cli/flags/delete.js.map +1 -0
  85. package/dist/cli/flags/edit.d.ts +3 -0
  86. package/dist/cli/flags/edit.d.ts.map +1 -0
  87. package/dist/cli/flags/edit.js +8 -0
  88. package/dist/cli/flags/edit.js.map +1 -0
  89. package/dist/cli/flags/patch.d.ts +3 -0
  90. package/dist/cli/flags/patch.d.ts.map +1 -0
  91. package/dist/cli/flags/patch.js +5 -0
  92. package/dist/cli/flags/patch.js.map +1 -0
  93. package/dist/cli/flags/poll.d.ts +3 -0
  94. package/dist/cli/flags/poll.d.ts.map +1 -0
  95. package/dist/cli/flags/poll.js +5 -0
  96. package/dist/cli/flags/poll.js.map +1 -0
  97. package/dist/cli/flags/read.d.ts +3 -0
  98. package/dist/cli/flags/read.d.ts.map +1 -0
  99. package/dist/cli/flags/read.js +7 -0
  100. package/dist/cli/flags/read.js.map +1 -0
  101. package/dist/cli/flags/rg.d.ts +3 -0
  102. package/dist/cli/flags/rg.d.ts.map +1 -0
  103. package/dist/cli/flags/rg.js +10 -0
  104. package/dist/cli/flags/rg.js.map +1 -0
  105. package/dist/cli/flags/web.d.ts +3 -0
  106. package/dist/cli/flags/web.d.ts.map +1 -0
  107. package/dist/cli/flags/web.js +7 -0
  108. package/dist/cli/flags/web.js.map +1 -0
  109. package/dist/cli/flags/write.d.ts +3 -0
  110. package/dist/cli/flags/write.d.ts.map +1 -0
  111. package/dist/cli/flags/write.js +5 -0
  112. package/dist/cli/flags/write.js.map +1 -0
  113. package/dist/cli/flow.d.ts +33 -0
  114. package/dist/cli/flow.d.ts.map +1 -0
  115. package/dist/cli/flow.js +185 -0
  116. package/dist/cli/flow.js.map +1 -0
  117. package/dist/cli/format.d.ts +12 -0
  118. package/dist/cli/format.d.ts.map +1 -0
  119. package/dist/cli/format.js +29 -0
  120. package/dist/cli/format.js.map +1 -0
  121. package/dist/cli/help.d.ts +16 -0
  122. package/dist/cli/help.d.ts.map +1 -0
  123. package/dist/cli/help.js +42 -0
  124. package/dist/cli/help.js.map +1 -0
  125. package/dist/cli/parse.d.ts +24 -0
  126. package/dist/cli/parse.d.ts.map +1 -0
  127. package/dist/cli/parse.js +165 -0
  128. package/dist/cli/parse.js.map +1 -0
  129. package/dist/cli/register.d.ts +69 -0
  130. package/dist/cli/register.d.ts.map +1 -0
  131. package/dist/cli/register.js +82 -0
  132. package/dist/cli/register.js.map +1 -0
  133. package/dist/cli/runner.d.ts +30 -0
  134. package/dist/cli/runner.d.ts.map +1 -0
  135. package/dist/cli/runner.js +102 -0
  136. package/dist/cli/runner.js.map +1 -0
  137. package/dist/cli/tokenize.d.ts +9 -0
  138. package/dist/cli/tokenize.d.ts.map +1 -0
  139. package/dist/cli/tokenize.js +80 -0
  140. package/dist/cli/tokenize.js.map +1 -0
  141. package/dist/core2/snapshot.d.ts.map +1 -1
  142. package/dist/core2/snapshot.js +8 -1
  143. package/dist/core2/snapshot.js.map +1 -1
  144. package/dist/flow/agents.d.ts +2 -0
  145. package/dist/flow/agents.d.ts.map +1 -1
  146. package/dist/flow/agents.js +2 -0
  147. package/dist/flow/agents.js.map +1 -1
  148. package/dist/flow/continuation.d.ts.map +1 -1
  149. package/dist/flow/continuation.js +26 -0
  150. package/dist/flow/continuation.js.map +1 -1
  151. package/dist/flow/executor.d.ts.map +1 -1
  152. package/dist/flow/executor.js +1 -0
  153. package/dist/flow/executor.js.map +1 -1
  154. package/dist/flow/flow-args.js +1 -1
  155. package/dist/flow/flow-args.js.map +1 -1
  156. package/dist/flow/process-lifecycle.d.ts.map +1 -1
  157. package/dist/flow/process-lifecycle.js +11 -3
  158. package/dist/flow/process-lifecycle.js.map +1 -1
  159. package/dist/flow/runner.d.ts.map +1 -1
  160. package/dist/flow/runner.js +36 -5
  161. package/dist/flow/runner.js.map +1 -1
  162. package/dist/flow/warp.d.ts.map +1 -1
  163. package/dist/flow/warp.js +16 -10
  164. package/dist/flow/warp.js.map +1 -1
  165. package/dist/index.d.ts +1 -0
  166. package/dist/index.d.ts.map +1 -1
  167. package/dist/index.js +158 -241
  168. package/dist/index.js.map +1 -1
  169. package/dist/steering/flow-prompt.js +2 -2
  170. package/dist/steering/flow-prompt.js.map +1 -1
  171. package/dist/steering/sliding-prompt.d.ts.map +1 -1
  172. package/dist/steering/sliding-prompt.js +10 -21
  173. package/dist/steering/sliding-prompt.js.map +1 -1
  174. package/dist/tools/ask-user.d.ts +10 -7
  175. package/dist/tools/ask-user.d.ts.map +1 -1
  176. package/dist/tools/ask-user.js +51 -62
  177. package/dist/tools/ask-user.js.map +1 -1
  178. package/dist/tools/trace.d.ts +12 -7
  179. package/dist/tools/trace.d.ts.map +1 -1
  180. package/dist/tools/trace.js +155 -194
  181. package/dist/tools/trace.js.map +1 -1
  182. package/dist/tools/web-ops.d.ts +40 -0
  183. package/dist/tools/web-ops.d.ts.map +1 -1
  184. package/dist/tools/web-ops.js +7 -3
  185. package/dist/tools/web-ops.js.map +1 -1
  186. package/package.json +3 -2
  187. package/dist/batch/index.d.ts +0 -73
  188. package/dist/batch/index.d.ts.map +0 -1
  189. package/dist/batch/index.js +0 -450
  190. package/dist/batch/index.js.map +0 -1
  191. package/dist/batch/normalize.d.ts +0 -4
  192. package/dist/batch/normalize.d.ts.map +0 -1
  193. package/dist/batch/normalize.js +0 -85
  194. package/dist/batch/normalize.js.map +0 -1
  195. package/dist/flow/flow-args-prep.d.ts +0 -28
  196. package/dist/flow/flow-args-prep.d.ts.map +0 -1
  197. package/dist/flow/flow-args-prep.js +0 -83
  198. package/dist/flow/flow-args-prep.js.map +0 -1
  199. package/dist/flow/flow-dispatch-prep.d.ts +0 -11
  200. package/dist/flow/flow-dispatch-prep.d.ts.map +0 -1
  201. package/dist/flow/flow-dispatch-prep.js +0 -40
  202. package/dist/flow/flow-dispatch-prep.js.map +0 -1
  203. package/dist/flow/op-aliases.d.ts +0 -51
  204. package/dist/flow/op-aliases.d.ts.map +0 -1
  205. package/dist/flow/op-aliases.js +0 -185
  206. package/dist/flow/op-aliases.js.map +0 -1
  207. package/dist/tools/array-coerce.d.ts +0 -9
  208. package/dist/tools/array-coerce.d.ts.map +0 -1
  209. package/dist/tools/array-coerce.js +0 -47
  210. package/dist/tools/array-coerce.js.map +0 -1
  211. package/dist/tools/trace-dispatch-prep.d.ts +0 -10
  212. package/dist/tools/trace-dispatch-prep.d.ts.map +0 -1
  213. package/dist/tools/trace-dispatch-prep.js +0 -199
  214. package/dist/tools/trace-dispatch-prep.js.map +0 -1
@@ -0,0 +1,32 @@
1
+ import { executeOperations } from "../../batch/execute.js";
2
+ import { CliError } from "../parse.js";
3
+ export async function runRgSubcommand(parsed, cwd, signal, toolName = "batch") {
4
+ const query = typeof parsed.flags.query === "string" ? parsed.flags.query : undefined;
5
+ if (!query) {
6
+ throw new CliError("rg requires -q <pattern>.", "Usage: batch rg -q <pattern> [flags] <path>");
7
+ }
8
+ if (parsed.positionals.length === 0) {
9
+ throw new CliError("rg requires a search path.", "Usage: batch rg -q <pattern> [flags] <path>");
10
+ }
11
+ const searchPath = parsed.positionals[0];
12
+ const op = {
13
+ o: "rg",
14
+ p: searchPath,
15
+ q: query,
16
+ ...(parsed.flags["ignore-case"] === true ? { i: true } : {}),
17
+ ...(parsed.flags["files-only"] === true ? { l: true } : {}),
18
+ ...(typeof parsed.flags.type === "string" ? { t: parsed.flags.type } : {}),
19
+ ...(typeof parsed.flags["max-count"] === "number" ? { n: parsed.flags["max-count"] } : {}),
20
+ ...(typeof parsed.flags["ignore-level"] === "number" ? { u: parsed.flags["ignore-level"] } : {}),
21
+ };
22
+ const { contentText, results } = await executeOperations([op], cwd, signal, {
23
+ readOptions: { truncate: false, toolName },
24
+ includeLimitWarnings: false,
25
+ });
26
+ const failed = results.some((r) => r.status === "error");
27
+ const error = failed
28
+ ? (results.find((r) => r.status === "error")?.error ?? "operation failed")
29
+ : undefined;
30
+ return { output: contentText, results, error, failed };
31
+ }
32
+ //# sourceMappingURL=rg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rg.js","sourceRoot":"","sources":["../../../src/cli/exec/rg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAiE,EACjE,GAAW,EACX,MAAoB,EACpB,WAAmC,OAAO;IAE1C,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAAC,2BAA2B,EAAE,6CAA6C,CAAC,CAAC;IACjG,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,QAAQ,CAAC,4BAA4B,EAAE,6CAA6C,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAEzC,MAAM,EAAE,GAAc;QACpB,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,UAAU;QACb,CAAC,EAAE,KAAK;QACR,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,GAAG,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjG,CAAC;IAEF,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CACtD,CAAC,EAAE,CAAC,EACJ,GAAG,EACH,MAAM,EACN;QACE,WAAW,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;QAC1C,oBAAoB,EAAE,KAAK;KAC5B,CACF,CAAC;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,MAAM;QAClB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,EAAE,KAAK,IAAI,kBAAkB,CAAC;QAC1E,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACzD,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { OpResult } from "../../batch/constants.js";
2
+ export interface ExecResult {
3
+ output: string;
4
+ results: OpResult[];
5
+ error?: string;
6
+ failed: boolean;
7
+ }
8
+ export declare function finalizeExec(output: string, results: OpResult[]): ExecResult;
9
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/cli/exec/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,UAAU,CAM5E"}
@@ -0,0 +1,8 @@
1
+ export function finalizeExec(output, results) {
2
+ const failed = results.some((r) => r.status === "error");
3
+ const error = failed
4
+ ? (results.find((r) => r.status === "error")?.error ?? "operation failed")
5
+ : undefined;
6
+ return { output, results, error, failed };
7
+ }
8
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/cli/exec/util.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,OAAmB;IAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,MAAM;QAClB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,EAAE,KAAK,IAAI,kBAAkB,CAAC;QAC1E,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type ExecResult } from "./util.js";
2
+ export declare function runWebSubcommand(parsed: {
3
+ flags: Record<string, unknown>;
4
+ positionals: string[];
5
+ }, cwd: string, sessionManager?: {
6
+ getSessionDir(): string;
7
+ }, signal?: AbortSignal): Promise<ExecResult>;
8
+ //# sourceMappingURL=web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../../src/cli/exec/web.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAE1D,wBAAsB,gBAAgB,CACpC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,EACjE,GAAG,EAAE,MAAM,EACX,cAAc,CAAC,EAAE;IAAE,aAAa,IAAI,MAAM,CAAA;CAAE,EAC5C,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAwDrB"}
@@ -0,0 +1,48 @@
1
+ import { runWebSearch, runWebFetch } from "../../tools/web-ops.js";
2
+ import { CliError } from "../parse.js";
3
+ import { finalizeExec } from "./util.js";
4
+ export async function runWebSubcommand(parsed, cwd, sessionManager, signal) {
5
+ if (parsed.positionals.length === 0) {
6
+ throw new CliError("web requires a subcommand: search or fetch.", "Usage: batch web search -q <query> or batch web fetch -u <url>");
7
+ }
8
+ const subcommand = parsed.positionals[0];
9
+ const remainingPositionals = parsed.positionals.slice(1);
10
+ if (subcommand === "search") {
11
+ const query = typeof parsed.flags.query === "string" ? parsed.flags.query : undefined;
12
+ if (!query) {
13
+ throw new CliError("web search requires -q <query>.", "Usage: batch web search -q <query>");
14
+ }
15
+ const result = await runWebSearch({ query }, signal);
16
+ const output = result.content[0].text;
17
+ const results = [{
18
+ op: "search",
19
+ status: "ok",
20
+ query,
21
+ content: output,
22
+ }];
23
+ return finalizeExec(output, results);
24
+ }
25
+ if (subcommand === "fetch") {
26
+ const url = typeof parsed.flags.url === "string" ? parsed.flags.url : undefined;
27
+ if (!url) {
28
+ throw new CliError("web fetch requires -u <url>.", "Usage: batch web fetch -u <url> [-f <format>]");
29
+ }
30
+ const format = typeof parsed.flags.format === "string" ? parsed.flags.format : undefined;
31
+ if (!sessionManager) {
32
+ throw new CliError("web fetch requires a session manager.", "Session manager not available. Ensure this is running inside a pi session.");
33
+ }
34
+ const result = await runWebFetch({ url, format }, { sessionManager }, signal);
35
+ const output = result.content[0].text;
36
+ const results = [{
37
+ op: "fetch",
38
+ status: "ok",
39
+ url,
40
+ content: output,
41
+ filePath: result.details.filePath,
42
+ contentLength: result.details.contentLength,
43
+ }];
44
+ return finalizeExec(output, results);
45
+ }
46
+ throw new CliError(`Unknown web subcommand: ${subcommand}`, `Did you mean: search, fetch?`);
47
+ }
48
+ //# sourceMappingURL=web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../../src/cli/exec/web.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type ExecResult } from "./util.js";
2
+ export declare function runWriteSubcommand(parsed: {
3
+ flags: Record<string, unknown>;
4
+ positionals: string[];
5
+ }, cwd: string, signal?: AbortSignal): Promise<ExecResult>;
6
+ //# sourceMappingURL=write.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../../src/cli/exec/write.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAE1D,wBAAsB,kBAAkB,CACtC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,EACjE,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CA2BrB"}
@@ -0,0 +1,23 @@
1
+ import { executeOperations } from "../../batch/execute.js";
2
+ import { CliError } from "../parse.js";
3
+ import { finalizeExec } from "./util.js";
4
+ export async function runWriteSubcommand(parsed, cwd, signal) {
5
+ if (parsed.positionals.length === 0) {
6
+ throw new CliError("write requires at least one path.", "Usage: batch write [flags] <path> ...");
7
+ }
8
+ const content = typeof parsed.flags.content === "string" ? parsed.flags.content : undefined;
9
+ if (content === undefined) {
10
+ throw new CliError("write requires --content <text>.", "Usage: batch write -c <content> <path>");
11
+ }
12
+ const ops = parsed.positionals.map((path) => ({
13
+ o: "write",
14
+ p: path,
15
+ c: content,
16
+ }));
17
+ const { contentText, results } = await executeOperations(ops, cwd, signal, {
18
+ readOptions: { truncate: false, toolName: "batch" },
19
+ includeLimitWarnings: false,
20
+ });
21
+ return finalizeExec(contentText, results);
22
+ }
23
+ //# sourceMappingURL=write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../src/cli/exec/write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAmB,MAAM,WAAW,CAAC;AAE1D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAiE,EACjE,GAAW,EACX,MAAoB;IAEpB,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,QAAQ,CAAC,mCAAmC,EAAE,uCAAuC,CAAC,CAAC;IACnG,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,QAAQ,CAAC,kCAAkC,EAAE,wCAAwC,CAAC,CAAC;IACnG,CAAC;IAED,MAAM,GAAG,GAAkB,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3D,CAAC,EAAE,OAAO;QACV,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,OAAO;KACX,CAAC,CAAC,CAAC;IAEJ,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CACtD,GAAG,EACH,GAAG,EACH,MAAM,EACN;QACE,WAAW,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE;QACnD,oBAAoB,EAAE,KAAK;KAC5B,CACF,CAAC;IAEF,OAAO,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type FlagSpec } from "../parse.js";
2
+ export declare const BASH_FLAGS: FlagSpec;
3
+ //# sourceMappingURL=bash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../src/cli/flags/bash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,eAAO,MAAM,UAAU,EAAE,QAKxB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export const BASH_FLAGS = {
2
+ id: { short: "i", type: "string", description: "Unique ID for this bash operation (auto-generated if omitted)" },
3
+ timeout: { short: "t", type: "number", description: "Timeout in ms" },
4
+ cwd: { short: "w", type: "string", description: "Working directory override for this command" },
5
+ help: { short: "h", type: "boolean", description: "Show help text" },
6
+ };
7
+ //# sourceMappingURL=bash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../../src/cli/flags/bash.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAa;IAClC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+DAA+D,EAAE;IAChH,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE;IACrE,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6CAA6C,EAAE;IAC/F,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE;CACrE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type FlagSpec } from "../parse.js";
2
+ export declare const DELETE_FLAGS: FlagSpec;
3
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/cli/flags/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,eAAO,MAAM,YAAY,EAAE,QAE1B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const DELETE_FLAGS = {
2
+ help: { short: "h", type: "boolean", description: "Show help text" },
3
+ };
4
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/cli/flags/delete.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAa;IACpC,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE;CACrE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type FlagSpec } from "../parse.js";
2
+ export declare const EDIT_FLAGS: FlagSpec;
3
+ //# sourceMappingURL=edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../src/cli/flags/edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,eAAO,MAAM,UAAU,EAAE,QAMxB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export const EDIT_FLAGS = {
2
+ find: { short: "f", type: "string", description: "Exact text to find (oldText)", multi: true },
3
+ replace: { short: "r", type: "string", description: "Replacement text (newText)", multi: true },
4
+ append: { short: "a", type: "boolean", description: "Append instead of replace (content goes at end of file)" },
5
+ "all-occurrences": { short: "A", type: "boolean", description: "Replace all occurrences instead of requiring unique match" },
6
+ help: { short: "h", type: "boolean", description: "Show help text" },
7
+ };
8
+ //# sourceMappingURL=edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/cli/flags/edit.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAa;IAClC,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE,KAAK,EAAE,IAAI,EAAE;IAC9F,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE,KAAK,EAAE,IAAI,EAAE;IAC/F,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,yDAAyD,EAAE;IAC/G,iBAAiB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,2DAA2D,EAAE;IAC5H,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE;CACrE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type FlagSpec } from "../parse.js";
2
+ export declare const PATCH_FLAGS: FlagSpec;
3
+ //# sourceMappingURL=patch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/cli/flags/patch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,eAAO,MAAM,WAAW,EAAE,QAGzB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export const PATCH_FLAGS = {
2
+ content: { short: "c", type: "string", description: "Patch text (required for patch)" },
3
+ help: { short: "h", type: "boolean", description: "Show help text" },
4
+ };
5
+ //# sourceMappingURL=patch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/cli/flags/patch.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAa;IACnC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;IACvF,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE;CACrE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type FlagSpec } from "../parse.js";
2
+ export declare const POLL_FLAGS: FlagSpec;
3
+ //# sourceMappingURL=poll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poll.d.ts","sourceRoot":"","sources":["../../../src/cli/flags/poll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,eAAO,MAAM,UAAU,EAAE,QAGxB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export const POLL_FLAGS = {
2
+ id: { short: "i", type: "string", description: "Bash operation ID to poll (required, repeatable)", multi: true },
3
+ help: { short: "h", type: "boolean", description: "Show help text" },
4
+ };
5
+ //# sourceMappingURL=poll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poll.js","sourceRoot":"","sources":["../../../src/cli/flags/poll.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAa;IAClC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kDAAkD,EAAE,KAAK,EAAE,IAAI,EAAE;IAChH,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE;CACrE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type FlagSpec } from "../parse.js";
2
+ export declare const READ_FLAGS: FlagSpec;
3
+ //# sourceMappingURL=read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../src/cli/flags/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,eAAO,MAAM,UAAU,EAAE,QAKxB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export const READ_FLAGS = {
2
+ start: { short: "s", type: "number", description: "1-indexed start line" },
3
+ limit: { short: "l", type: "number", description: "Maximum lines to read" },
4
+ end: { short: "e", type: "number", description: "End line (used with -s)" },
5
+ help: { short: "h", type: "boolean", description: "Show help text" },
6
+ };
7
+ //# sourceMappingURL=read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../src/cli/flags/read.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAa;IAClC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;IAC1E,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;IAC3E,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;IAC3E,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE;CACrE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type FlagSpec } from "../parse.js";
2
+ export declare const RG_FLAGS: FlagSpec;
3
+ //# sourceMappingURL=rg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rg.d.ts","sourceRoot":"","sources":["../../../src/cli/flags/rg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,eAAO,MAAM,QAAQ,EAAE,QAQtB,CAAC"}
@@ -0,0 +1,10 @@
1
+ export const RG_FLAGS = {
2
+ query: { short: "q", type: "string", description: "Search pattern for rg" },
3
+ "ignore-case": { short: "i", type: "boolean", description: "Ignore case for rg" },
4
+ "files-only": { short: "l", type: "boolean", description: "Return filenames only for rg" },
5
+ type: { short: "t", type: "string", description: "Type filter for rg (e.g., ts, js)" },
6
+ "max-count": { short: "n", type: "number", description: "Max matches per file for rg" },
7
+ "ignore-level": { short: "u", type: "number", description: "Ignore level for rg (0-3)" },
8
+ help: { short: "h", type: "boolean", description: "Show help text" },
9
+ };
10
+ //# sourceMappingURL=rg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rg.js","sourceRoot":"","sources":["../../../src/cli/flags/rg.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;IAC3E,aAAa,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oBAAoB,EAAE;IACjF,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,8BAA8B,EAAE;IAC1F,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE;IACtF,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;IACvF,cAAc,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;IACxF,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE;CACrE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type FlagSpec } from "../parse.js";
2
+ export declare const WEB_FLAGS: FlagSpec;
3
+ //# sourceMappingURL=web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../../src/cli/flags/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,eAAO,MAAM,SAAS,EAAE,QAKvB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export const WEB_FLAGS = {
2
+ query: { short: "q", type: "string", description: "Search query (for web search)" },
3
+ url: { short: "u", type: "string", description: "URL to fetch (for web fetch)" },
4
+ format: { short: "f", type: "string", description: "Output format for fetch: markdown, text, html (default: markdown)" },
5
+ help: { short: "h", type: "boolean", description: "Show help text" },
6
+ };
7
+ //# sourceMappingURL=web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../../src/cli/flags/web.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAa;IACjC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;IACnF,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;IAChF,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mEAAmE,EAAE;IACxH,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE;CACrE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type FlagSpec } from "../parse.js";
2
+ export declare const WRITE_FLAGS: FlagSpec;
3
+ //# sourceMappingURL=write.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../../src/cli/flags/write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,eAAO,MAAM,WAAW,EAAE,QAGzB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export const WRITE_FLAGS = {
2
+ content: { short: "c", type: "string", description: "File content (required for write)" },
3
+ help: { short: "h", type: "boolean", description: "Show help text" },
4
+ };
5
+ //# sourceMappingURL=write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../src/cli/flags/write.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAa;IACnC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE;IACzF,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE;CACrE,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * flow — bash-style CLI tool.
3
+ *
4
+ * Replaces the legacy flow mega-schema with a simple cmd string
5
+ * that uses flags and chaining.
6
+ */
7
+ export declare const FlowCliParams: any;
8
+ export declare const FLOW_CLI_DESCRIPTION = "Spawns specialized agent flows \u2014 NOT a shell. Required per item: `--type` (one of: `scout` \u2022 `build` \u2022 `debug` \u2022 `audit` \u2022 `craft` \u2022 `ideas` \u2022 `trace`), `--intent`, `--aim`, `--concern`. Optional: `--acceptance`, `--cwd`, `--complexity` (`snap` \u2022 `simple` \u2022 `moderate` \u2022 `complex` \u2022 `intricate`). Chain multiple items with `;` or `&&`. For simple reads/checks, use `trace` instead. Pass [cmd]: \"help\" for the man page.";
9
+ export declare const FLOW_CLI_SNIPPET = "Dive into specialized flows (scout, debug, build, craft, audit, ideas) via bash-style CLI.";
10
+ export declare const FLOW_CLI_GUIDELINES: string[];
11
+ declare const FLOW_HELP: string;
12
+ export { FLOW_HELP };
13
+ export interface ParsedFlowItem {
14
+ type: string;
15
+ intent: string;
16
+ aim: string;
17
+ concern: string;
18
+ acceptance?: string;
19
+ cwd?: string;
20
+ complexity?: string;
21
+ dispatch?: string;
22
+ kind?: "run" | "and";
23
+ }
24
+ export interface ParsedFlowCmd {
25
+ confirm: boolean;
26
+ audit: number;
27
+ items: ParsedFlowItem[];
28
+ }
29
+ export declare function parseFlowCmd(cmd: string): Promise<{
30
+ help?: string;
31
+ parsed?: ParsedFlowCmd;
32
+ }>;
33
+ //# sourceMappingURL=flow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/cli/flow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,eAAO,MAAM,aAAa,KAIxB,CAAC;AAMH,eAAO,MAAM,oBAAoB,geACuY,CAAC;AAEza,eAAO,MAAM,gBAAgB,+FACiE,CAAC;AAE/F,eAAO,MAAM,mBAAmB,UAS/B,CAAC;AAgDF,QAAA,MAAM,SAAS,QAAqE,CAAC;AAErF,OAAO,EAAE,SAAS,EAAE,CAAC;AAMrB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAMD,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,aAAa,CAAA;CAAE,CAAC,CAuElG"}
@@ -0,0 +1,185 @@
1
+ /**
2
+ * flow — bash-style CLI tool.
3
+ *
4
+ * Replaces the legacy flow mega-schema with a simple cmd string
5
+ * that uses flags and chaining.
6
+ */
7
+ import { Type } from "@sinclair/typebox";
8
+ import { splitOnDoubleDash } from "./chain.js";
9
+ import { CliError } from "./parse.js";
10
+ import { renderHelp, flagSpecToHelp } from "./help.js";
11
+ import { runChain } from "./runner.js";
12
+ // ---------------------------------------------------------------------------
13
+ // Schema
14
+ // ---------------------------------------------------------------------------
15
+ export const FlowCliParams = Type.Object({
16
+ cmd: Type.String({
17
+ description: "Flow command. Multiple items chained with `;` or `&&`. Each item: --type --intent --aim --concern [--acceptance] [--cwd] [--complexity] [-- <batch-dispatch>]. Global: --confirm, --audit <n> (first item only). Run with `cmd: 'help'` for the man page.",
18
+ }),
19
+ });
20
+ // ---------------------------------------------------------------------------
21
+ // Constants
22
+ // ---------------------------------------------------------------------------
23
+ export const FLOW_CLI_DESCRIPTION = "Spawns specialized agent flows — NOT a shell. Required per item: `--type` (one of: `scout` • `build` • `debug` • `audit` • `craft` • `ideas` • `trace`), `--intent`, `--aim`, `--concern`. Optional: `--acceptance`, `--cwd`, `--complexity` (`snap` • `simple` • `moderate` • `complex` • `intricate`). Chain multiple items with `;` or `&&`. For simple reads/checks, use `trace` instead. Pass [cmd]: \"help\" for the man page.";
24
+ export const FLOW_CLI_SNIPPET = "Dive into specialized flows (scout, debug, build, craft, audit, ideas) via bash-style CLI.";
25
+ export const FLOW_CLI_GUIDELINES = [
26
+ "**This is a structured command, NOT a shell.** There is no `ls`, `cd`, `git`, or arbitrary command. Use only the documented flags.",
27
+ "Use `flow --type <name> --intent <text> --aim <text> --concern <text>` to spawn a flow.",
28
+ "Chain multiple flows with `;` (sequential) or `&&` (conditional).",
29
+ "Add `--acceptance <text>` for success criteria.",
30
+ "Add `--complexity <level>` for budget: snap, simple, moderate, complex, intricate.",
31
+ "Add `-- <batch-dispatch>` for pre-flight ops (e.g., `-- batch read src/auth.ts`).",
32
+ "For quick file reads/checks, use `trace` instead.",
33
+ "Pass `cmd: \"help\"` or `--help` for the man page.",
34
+ ];
35
+ const VALID_TYPES = new Set([
36
+ "scout", "build", "debug", "audit", "craft", "ideas", "trace",
37
+ ]);
38
+ const VALID_COMPLEXITIES = new Set([
39
+ "snap", "simple", "moderate", "complex", "intricate",
40
+ ]);
41
+ // ---------------------------------------------------------------------------
42
+ // Flag specs
43
+ // ---------------------------------------------------------------------------
44
+ const GLOBAL_FLAG_SPEC = {
45
+ confirm: { short: "y", type: "string", description: "Prompt before running project flows" },
46
+ audit: { short: "u", type: "number", description: "Override audit cycles (0-3)" },
47
+ help: { short: "h", type: "boolean", description: "Show help text" },
48
+ };
49
+ const ITEM_FLAG_SPEC = {
50
+ type: { short: "t", type: "string", description: "Flow type" },
51
+ intent: { short: "i", type: "string", description: "Mission" },
52
+ aim: { short: "a", type: "string", description: "Headline" },
53
+ concern: { short: "c", type: "string", description: "Risks" },
54
+ acceptance: { short: "A", type: "string", description: "Acceptance criteria" },
55
+ cwd: { short: "w", type: "string", description: "Working dir" },
56
+ complexity: { short: "x", type: "string", description: "Budget level" },
57
+ help: { short: "h", type: "boolean", description: "Show help text" },
58
+ };
59
+ // ---------------------------------------------------------------------------
60
+ // Help text
61
+ // ---------------------------------------------------------------------------
62
+ const subcommands = [
63
+ {
64
+ name: "flow",
65
+ description: "Spawn a specialized agent flow.",
66
+ flags: flagSpecToHelp(ITEM_FLAG_SPEC),
67
+ },
68
+ {
69
+ name: "global",
70
+ description: "Global flags (first chain link only)",
71
+ flags: flagSpecToHelp(GLOBAL_FLAG_SPEC),
72
+ },
73
+ ];
74
+ const FLOW_HELP = renderHelp("flow", "Spawns specialized agent flows.", subcommands);
75
+ export { FLOW_HELP };
76
+ // ---------------------------------------------------------------------------
77
+ // Parser
78
+ // ---------------------------------------------------------------------------
79
+ export async function parseFlowCmd(cmd) {
80
+ const trimmed = cmd.trim();
81
+ if (trimmed.length === 0 || trimmed === "help" || trimmed === "--help" || trimmed === "-h" || trimmed === "flow help" || trimmed === "flow --help" || trimmed === "flow -h") {
82
+ return { help: FLOW_HELP };
83
+ }
84
+ // Remove leading "flow" keyword if present (the model may include it)
85
+ let working = trimmed;
86
+ if (working.startsWith("flow ")) {
87
+ working = working.slice(5);
88
+ }
89
+ let confirm = true;
90
+ let audit = 0;
91
+ const items = [];
92
+ let isFirstLink = true;
93
+ let helpTriggered = false;
94
+ const result = await runChain(working, "", undefined, {
95
+ toolPrefix: "flow",
96
+ recognizedSubs: new Set(["flow"]),
97
+ fixedSubcommand: "flow",
98
+ getFlagSpec: () => {
99
+ if (isFirstLink) {
100
+ return { ...GLOBAL_FLAG_SPEC, ...ITEM_FLAG_SPEC };
101
+ }
102
+ return ITEM_FLAG_SPEC;
103
+ },
104
+ dispatch: async (subcommand, parsed, cwd, signal, extra) => {
105
+ if (parsed.flags.help === true) {
106
+ helpTriggered = true;
107
+ return { output: FLOW_HELP, results: [], failed: false };
108
+ }
109
+ if (isFirstLink) {
110
+ if (parsed.flags.confirm !== undefined) {
111
+ confirm = parsed.flags.confirm === "true" || parsed.flags.confirm === true;
112
+ }
113
+ if (parsed.flags.audit !== undefined) {
114
+ audit = parsed.flags.audit;
115
+ }
116
+ isFirstLink = false;
117
+ }
118
+ const { dispatch, kind } = extra;
119
+ items.push(extractItem(parsed, dispatch, kind));
120
+ return { output: "", results: [], failed: false };
121
+ },
122
+ helpText: FLOW_HELP,
123
+ validSubcommandsTip: "flow",
124
+ preprocessLink: (link) => {
125
+ const { pre, post } = splitOnDoubleDash(link.cmd);
126
+ return { cmd: pre, extra: { dispatch: post, kind: link.kind } };
127
+ },
128
+ });
129
+ if (helpTriggered || result.text === FLOW_HELP) {
130
+ return { help: FLOW_HELP };
131
+ }
132
+ if (result.errors.length > 0) {
133
+ const first = result.errors[0];
134
+ throw new CliError(first.message, first.hint);
135
+ }
136
+ if (items.length === 0) {
137
+ throw new CliError("No flow items found. At least one --type is required.", "Run with --help for usage.");
138
+ }
139
+ return { parsed: { confirm, audit, items } };
140
+ }
141
+ function extractItem(parsed, dispatch, kind) {
142
+ const type = parsed.flags.type;
143
+ const intent = parsed.flags.intent;
144
+ const aim = parsed.flags.aim;
145
+ const concern = parsed.flags.concern;
146
+ const acceptance = parsed.flags.acceptance;
147
+ const cwd = parsed.flags.cwd;
148
+ const complexity = parsed.flags.complexity;
149
+ if (!type) {
150
+ throw new CliError("Missing required flag: --type", `Valid types: ${Array.from(VALID_TYPES).join(", ")}`);
151
+ }
152
+ if (!VALID_TYPES.has(type.toLowerCase())) {
153
+ throw new CliError(`Invalid flow type: ${type}`, `Valid types: ${Array.from(VALID_TYPES).join(", ")}`);
154
+ }
155
+ if (!intent) {
156
+ throw new CliError("Missing required flag: --intent");
157
+ }
158
+ if (!aim) {
159
+ throw new CliError("Missing required flag: --aim");
160
+ }
161
+ if (!concern) {
162
+ throw new CliError("Missing required flag: --concern");
163
+ }
164
+ if (complexity && !VALID_COMPLEXITIES.has(complexity.toLowerCase())) {
165
+ throw new CliError(`Invalid complexity: ${complexity}`, `Valid complexities: ${Array.from(VALID_COMPLEXITIES).join(", ")}`);
166
+ }
167
+ const item = {
168
+ type: type.toLowerCase(),
169
+ intent,
170
+ aim,
171
+ concern,
172
+ };
173
+ if (acceptance)
174
+ item.acceptance = acceptance;
175
+ if (cwd)
176
+ item.cwd = cwd;
177
+ if (complexity)
178
+ item.complexity = complexity.toLowerCase();
179
+ if (dispatch)
180
+ item.dispatch = dispatch;
181
+ if (kind)
182
+ item.kind = kind;
183
+ return item;
184
+ }
185
+ //# sourceMappingURL=flow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/cli/flow.ts"],"names":[],"mappings":"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"}