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
@@ -7,6 +7,10 @@ function shortenPath(p) {
7
7
  return p.startsWith(home) ? `~${p.slice(home.length)}` : p;
8
8
  }
9
9
  function extractBatchOps(args) {
10
+ // CLI format: { cmd: "read a.txt; write -c 'x' b.txt" }
11
+ if (typeof args.cmd === "string") {
12
+ return extractCliOps(args.cmd);
13
+ }
10
14
  let rawOps;
11
15
  if (Array.isArray(args.o))
12
16
  rawOps = args.o;
@@ -32,6 +36,148 @@ function extractBatchOps(args) {
32
36
  return { o: opName, p: opPath, e: edits, c: cmd, s: offset, l: limit, q: pattern, t: typeFilter };
33
37
  });
34
38
  }
39
+ function tokenizeSimple(input) {
40
+ const tokens = [];
41
+ let current = "";
42
+ let inSingle = false;
43
+ let inDouble = false;
44
+ for (let i = 0; i < input.length; i++) {
45
+ const ch = input[i];
46
+ if (inSingle) {
47
+ if (ch === "'") {
48
+ inSingle = false;
49
+ if (current.length > 0) {
50
+ tokens.push(current);
51
+ current = "";
52
+ }
53
+ }
54
+ else {
55
+ current += ch;
56
+ }
57
+ continue;
58
+ }
59
+ if (inDouble) {
60
+ if (ch === '"') {
61
+ inDouble = false;
62
+ if (current.length > 0) {
63
+ tokens.push(current);
64
+ current = "";
65
+ }
66
+ }
67
+ else {
68
+ current += ch;
69
+ }
70
+ continue;
71
+ }
72
+ if (ch === "'") {
73
+ inSingle = true;
74
+ continue;
75
+ }
76
+ if (ch === '"') {
77
+ inDouble = true;
78
+ continue;
79
+ }
80
+ if (ch === ' ' || ch === '\t' || ch === '\n' || ch === '\r') {
81
+ if (current.length > 0) {
82
+ tokens.push(current);
83
+ current = "";
84
+ }
85
+ continue;
86
+ }
87
+ current += ch;
88
+ }
89
+ if (current.length > 0) {
90
+ tokens.push(current);
91
+ }
92
+ return tokens;
93
+ }
94
+ function splitChainSimple(input) {
95
+ const parts = [];
96
+ let current = "";
97
+ let inSingle = false;
98
+ let inDouble = false;
99
+ for (let i = 0; i < input.length; i++) {
100
+ const ch = input[i];
101
+ if (ch === "'" && !inDouble) {
102
+ inSingle = !inSingle;
103
+ current += ch;
104
+ continue;
105
+ }
106
+ if (ch === '"' && !inSingle) {
107
+ inDouble = !inDouble;
108
+ current += ch;
109
+ continue;
110
+ }
111
+ if (!inSingle && !inDouble && ch === '&' && i + 1 < input.length && input[i + 1] === '&') {
112
+ parts.push(current.trim());
113
+ current = "";
114
+ i++; // skip second &
115
+ continue;
116
+ }
117
+ if (!inSingle && !inDouble && ch === ';') {
118
+ parts.push(current.trim());
119
+ current = "";
120
+ continue;
121
+ }
122
+ current += ch;
123
+ }
124
+ parts.push(current.trim());
125
+ return parts;
126
+ }
127
+ function extractCliOps(cmd) {
128
+ const ops = [];
129
+ const links = splitChainSimple(cmd);
130
+ for (const link of links) {
131
+ const trimmed = link.trim();
132
+ if (!trimmed)
133
+ continue;
134
+ const tokens = tokenizeSimple(trimmed);
135
+ if (tokens.length === 0)
136
+ continue;
137
+ const subcommand = tokens[0];
138
+ if (subcommand === "batch" || subcommand === "batch_read") {
139
+ tokens.shift();
140
+ }
141
+ if (tokens.length === 0)
142
+ continue;
143
+ const op = tokens[0];
144
+ if (op === "read" || op === "write" || op === "edit" || op === "delete" || op === "patch" || op === "bash" || op === "rg" || op === "poll") {
145
+ // Parse flags and positionals
146
+ const flags = {};
147
+ let i = 1;
148
+ while (i < tokens.length) {
149
+ if (tokens[i].startsWith("-")) {
150
+ const flagName = tokens[i];
151
+ i++;
152
+ if (i < tokens.length && !tokens[i].startsWith("-")) {
153
+ flags[flagName] = tokens[i];
154
+ i++;
155
+ }
156
+ }
157
+ else {
158
+ break;
159
+ }
160
+ }
161
+ const positionals = tokens.slice(i);
162
+ const path = positionals[0] ?? "?";
163
+ let content;
164
+ if (op === "write" && (flags["-c"] || flags["--content"])) {
165
+ content = flags["-c"] || flags["--content"];
166
+ }
167
+ if (op === "bash") {
168
+ content = positionals.join(" ");
169
+ }
170
+ // Count repeated --find flags for block info
171
+ const findCount = tokens.filter((t) => t === "-f" || t === "--find").length;
172
+ ops.push({ o: op, p: path, c: content, e: findCount > 1 ? Array(findCount).fill({ f: "", r: "" }) : undefined });
173
+ }
174
+ else if (op === "web") {
175
+ const webOp = tokens[1] ?? "?";
176
+ ops.push({ o: webOp, p: "?" });
177
+ }
178
+ }
179
+ return ops;
180
+ }
35
181
  function extractWebOps(args) {
36
182
  const rawOps = args.w;
37
183
  if (!Array.isArray(rawOps))
@@ -1 +1 @@
1
- {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/batch/summary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/batch/summary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * ask_user — bash-style CLI tool.
3
+ *
4
+ * Replaces the legacy ask_user JSON schema with a simple cmd string
5
+ * that uses a positional question and repeatable option flags.
6
+ */
7
+ import type { QuestionOption } from "../tui/single-select-layout.js";
8
+ export declare const AskUserCliParams: any;
9
+ export declare const ASK_USER_CLI_DESCRIPTION = "Ask the user a focused question with multiple-choice answers. Bash-style CLI: pass a single cmd string with a quoted question and repeatable -o flags. NOT a shell. Examples: `ask_user \"Continue?\" -o Yes -o No`. Pass `cmd: \"help\"` for the man page.";
10
+ export declare const ASK_USER_CLI_SNIPPET = "Ask the user a focused question with multiple-choice answers";
11
+ export declare const ASK_USER_CLI_GUIDELINES: string[];
12
+ export declare const ASK_USER_FLAG_SPEC: {
13
+ option: {
14
+ short: string;
15
+ type: "string";
16
+ description: string;
17
+ multi: boolean;
18
+ };
19
+ help: {
20
+ short: string;
21
+ type: "boolean";
22
+ description: string;
23
+ };
24
+ };
25
+ export declare const ASK_USER_HELP = "USAGE: ask_user <question> -o <title[:description]>...\n\nAsk the user a focused question with multiple-choice answers.\n\nFLAGS:\n -o, --option <title[:description]> A choice option. Repeatable.\n -h, --help Show this help text.\n\nEXAMPLES:\n ask_user \"Continue?\" -o Yes -o No\n ask_user \"Pick a database\" -o \"PostgreSQL:Robust relational\" -o \"SQLite:Simple file-based\"\n ask_user \"Ship it?\" -o \"Yes: build & publish\" -o \"No: pause\" -o \"Cancel: abandon\"\n";
26
+ export declare function parseAskUserCmd(cmd: string): Promise<{
27
+ help?: string;
28
+ parsed?: {
29
+ question: string;
30
+ options: QuestionOption[];
31
+ };
32
+ }>;
33
+ export declare function parseAskUserCmdSync(cmd: string): {
34
+ help?: string;
35
+ parsed?: {
36
+ question: string;
37
+ options: QuestionOption[];
38
+ };
39
+ };
40
+ //# sourceMappingURL=ask-user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask-user.d.ts","sourceRoot":"","sources":["../../src/cli/ask-user.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAMrE,eAAO,MAAM,gBAAgB,KAI3B,CAAC;AAMH,eAAO,MAAM,wBAAwB,gQAC0N,CAAC;AAEhQ,eAAO,MAAM,oBAAoB,iEAC+B,CAAC;AAEjE,eAAO,MAAM,uBAAuB,UAMnC,CAAC;AAMF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;CAG9B,CAAC;AAMF,eAAO,MAAM,aAAa,8fAYzB,CAAC;AAMF,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,cAAc,EAAE,CAAA;KAAE,CAAA;CAAE,CAAC,CAEvI;AAMD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,cAAc,EAAE,CAAA;KAAE,CAAA;CAAE,CAoE5H"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * ask_user — bash-style CLI tool.
3
+ *
4
+ * Replaces the legacy ask_user JSON schema with a simple cmd string
5
+ * that uses a positional question and repeatable option flags.
6
+ */
7
+ import { Type } from "@sinclair/typebox";
8
+ import { tokenize } from "./tokenize.js";
9
+ import { parseCommand, CliError } from "./parse.js";
10
+ // ---------------------------------------------------------------------------
11
+ // Schema
12
+ // ---------------------------------------------------------------------------
13
+ export const AskUserCliParams = Type.Object({
14
+ cmd: Type.String({
15
+ description: "ask_user command string, e.g. 'ask_user \"Continue?\" -o Yes -o No' or 'ask_user help'",
16
+ }),
17
+ });
18
+ // ---------------------------------------------------------------------------
19
+ // Constants
20
+ // ---------------------------------------------------------------------------
21
+ export const ASK_USER_CLI_DESCRIPTION = "Ask the user a focused question with multiple-choice answers. Bash-style CLI: pass a single cmd string with a quoted question and repeatable -o flags. NOT a shell. Examples: `ask_user \"Continue?\" -o Yes -o No`. Pass `cmd: \"help\"` for the man page.";
22
+ export const ASK_USER_CLI_SNIPPET = "Ask the user a focused question with multiple-choice answers";
23
+ export const ASK_USER_CLI_GUIDELINES = [
24
+ "Use `ask_user` when the user's intent is ambiguous, when a decision requires explicit user input, or when multiple valid options exist.",
25
+ "Ask exactly one focused question per `ask_user` call.",
26
+ "Do not combine multiple numbered, multipart, or unrelated questions into one `ask_user` prompt.",
27
+ "Pass options with `-o \"Title\"` or `-o \"Title: description\"`.",
28
+ "Pass `cmd: \"help\"` or `--help` for the man page.",
29
+ ];
30
+ // ---------------------------------------------------------------------------
31
+ // Flag spec
32
+ // ---------------------------------------------------------------------------
33
+ export const ASK_USER_FLAG_SPEC = {
34
+ option: { short: "o", type: "string", description: "Option title and optional description (title:description)", multi: true },
35
+ help: { short: "h", type: "boolean", description: "Show help text" },
36
+ };
37
+ // ---------------------------------------------------------------------------
38
+ // Help text
39
+ // ---------------------------------------------------------------------------
40
+ export const ASK_USER_HELP = `USAGE: ask_user <question> -o <title[:description]>...
41
+
42
+ Ask the user a focused question with multiple-choice answers.
43
+
44
+ FLAGS:
45
+ -o, --option <title[:description]> A choice option. Repeatable.
46
+ -h, --help Show this help text.
47
+
48
+ EXAMPLES:
49
+ ask_user "Continue?" -o Yes -o No
50
+ ask_user "Pick a database" -o "PostgreSQL:Robust relational" -o "SQLite:Simple file-based"
51
+ ask_user "Ship it?" -o "Yes: build & publish" -o "No: pause" -o "Cancel: abandon"
52
+ `;
53
+ // ---------------------------------------------------------------------------
54
+ // Parser
55
+ // ---------------------------------------------------------------------------
56
+ export async function parseAskUserCmd(cmd) {
57
+ return parseAskUserCmdSync(cmd);
58
+ }
59
+ // ---------------------------------------------------------------------------
60
+ // Synchronous parser for render and execute use
61
+ // ---------------------------------------------------------------------------
62
+ export function parseAskUserCmdSync(cmd) {
63
+ const trimmed = cmd.trim();
64
+ if (trimmed.length === 0) {
65
+ return { help: ASK_USER_HELP };
66
+ }
67
+ const tokens = tokenize(trimmed);
68
+ // Strip leading "ask_user" token if present
69
+ if (tokens[0] === "ask_user") {
70
+ tokens.shift();
71
+ }
72
+ // Help check after stripping prefix
73
+ if (tokens[0] === "help" ||
74
+ tokens[0] === "--help" ||
75
+ tokens[0] === "-h") {
76
+ return { help: ASK_USER_HELP };
77
+ }
78
+ // Prepend dummy subcommand so parseCommand doesn't consume the question as a subcommand
79
+ const tokensForParse = ["ask_user", ...tokens];
80
+ const parsed = parseCommand(tokensForParse, ASK_USER_FLAG_SPEC);
81
+ if (parsed.flags.help === true) {
82
+ return { help: ASK_USER_HELP };
83
+ }
84
+ const question = parsed.positionals[0];
85
+ if (!question) {
86
+ throw new CliError("Missing required argument: <question>", "Usage: ask_user <question> -o <title[:description]>...");
87
+ }
88
+ if (parsed.positionals.length > 1) {
89
+ throw new CliError("Unexpected extra arguments", "Usage: ask_user <question> -o <title[:description]>...");
90
+ }
91
+ const rawOptions = parsed.flags.option;
92
+ if (!rawOptions || (Array.isArray(rawOptions) && rawOptions.length === 0)) {
93
+ throw new CliError("Missing required flag: -o (--option)", "Usage: ask_user <question> -o <title[:description]>...");
94
+ }
95
+ const optionsArray = Array.isArray(rawOptions) ? rawOptions : [rawOptions];
96
+ const options = [];
97
+ for (const opt of optionsArray) {
98
+ const str = String(opt);
99
+ if (str.trim().length === 0) {
100
+ throw new CliError("Empty option value", "Each -o flag must have a non-empty title.");
101
+ }
102
+ const colonIdx = str.indexOf(":");
103
+ if (colonIdx === -1) {
104
+ options.push({ title: str, description: str });
105
+ }
106
+ else {
107
+ const title = str.slice(0, colonIdx);
108
+ const description = str.slice(colonIdx + 1);
109
+ if (title.trim().length === 0) {
110
+ throw new CliError("Empty option title", "Each -o flag must have a non-empty title.");
111
+ }
112
+ options.push({ title, description });
113
+ }
114
+ }
115
+ return { parsed: { question, options } };
116
+ }
117
+ //# sourceMappingURL=ask-user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask-user.js","sourceRoot":"","sources":["../../src/cli/ask-user.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * batch_read — bash-style CLI tool.
3
+ *
4
+ * Replaces the legacy batch_read mega-schema with a simple cmd string
5
+ * that uses subcommands and flags.
6
+ */
7
+ export declare const BatchReadCliParams: any;
8
+ export declare const BATCH_READ_CLI_DESCRIPTION = "Read-only file & grep tool \u2014 NOT a shell. Supports ONLY two subcommands: `read` (file contents) and `rg` (ripgrep). Pass a single [cmd] string of the form `batch_read <subcommand> <flags> <args>`. There is no `ls`, no `cd`, no `git`. Examples: `batch_read read src/index.ts` \u2022 `batch_read rg -q \"TODO\" src/`. Pass [cmd]: \"help\" for the man page.";
9
+ export declare const BATCH_READ_CLI_SNIPPET = "Read files or grep \u2014 NOT a shell (read-only)";
10
+ export declare const BATCH_READ_CLI_GUIDELINES: string[];
11
+ export declare const BATCH_READ_HELP: string;
12
+ export declare function runBatchReadCli(cmd: string, cwd?: string, signal?: AbortSignal): Promise<{
13
+ text: string;
14
+ results: import("../batch/constants.js").OpResult[];
15
+ hasError: boolean;
16
+ }>;
17
+ //# sourceMappingURL=batch-read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-read.d.ts","sourceRoot":"","sources":["../../src/cli/batch-read.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,eAAO,MAAM,kBAAkB,KAS7B,CAAC;AAMH,eAAO,MAAM,0BAA0B,4WAC0T,CAAC;AAElW,eAAO,MAAM,sBAAsB,sDACa,CAAC;AAEjD,eAAO,MAAM,yBAAyB,UAMrC,CAAC;AAWF,eAAO,MAAM,eAAe,QAI3B,CAAC;AAkCF,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,GAAG,CAAC,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,uBAAuB,EAAE,QAAQ,EAAE,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,CASnG"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * batch_read — bash-style CLI tool.
3
+ *
4
+ * Replaces the legacy batch_read mega-schema with a simple cmd string
5
+ * that uses subcommands and flags.
6
+ */
7
+ import { Type } from "@sinclair/typebox";
8
+ import { CliError } from "./parse.js";
9
+ import { renderHelp, flagSpecToHelp } from "./help.js";
10
+ import { runChain } from "./runner.js";
11
+ import { READ_FLAGS } from "./flags/read.js";
12
+ import { RG_FLAGS } from "./flags/rg.js";
13
+ import { runReadSubcommand } from "./exec/read.js";
14
+ import { runRgSubcommand } from "./exec/rg.js";
15
+ // ---------------------------------------------------------------------------
16
+ // Schema
17
+ // ---------------------------------------------------------------------------
18
+ export const BatchReadCliParams = Type.Object({
19
+ cmd: Type.String({
20
+ description: "batch_read command string, e.g. 'batch_read read src/index.ts' or 'batch_read rg -q pattern src/'",
21
+ }),
22
+ cwd: Type.Optional(Type.String({
23
+ description: "Working directory override. Default: current session cwd.",
24
+ })),
25
+ });
26
+ // ---------------------------------------------------------------------------
27
+ // Constants
28
+ // ---------------------------------------------------------------------------
29
+ export const BATCH_READ_CLI_DESCRIPTION = "Read-only file & grep tool — NOT a shell. Supports ONLY two subcommands: `read` (file contents) and `rg` (ripgrep). Pass a single [cmd] string of the form `batch_read <subcommand> <flags> <args>`. There is no `ls`, no `cd`, no `git`. Examples: `batch_read read src/index.ts` • `batch_read rg -q \"TODO\" src/`. Pass [cmd]: \"help\" for the man page.";
30
+ export const BATCH_READ_CLI_SNIPPET = "Read files or grep — NOT a shell (read-only)";
31
+ export const BATCH_READ_CLI_GUIDELINES = [
32
+ "**This is a structured command, NOT a shell.** There is no `ls`, `cd`, `git`, or arbitrary command. The only operations available are the documented subcommands (`read`, `rg`).",
33
+ "Use `batch_read read <paths>` for files. Add `:N` or `:N-M` for line ranges.",
34
+ "Use `batch_read rg -q <pattern> <path>` for ripgrep.",
35
+ "Chain with `;` for sequential ops and `&&` for conditional ops.",
36
+ "Pass `cmd: \"help\"`, `--help`, or `-h` for the man page.",
37
+ ];
38
+ // ---------------------------------------------------------------------------
39
+ // Help text
40
+ // ---------------------------------------------------------------------------
41
+ const subcommands = [
42
+ { name: "read", description: "Read file contents. Paths may include :N or :N-M line ranges.", flags: flagSpecToHelp(READ_FLAGS) },
43
+ { name: "rg", description: "Search with ripgrep.", flags: flagSpecToHelp(RG_FLAGS) },
44
+ ];
45
+ export const BATCH_READ_HELP = renderHelp("batch_read", "Read-only file and ripgrep tool. Does not execute shell commands, write to files, or fetch URLs.", subcommands);
46
+ // ---------------------------------------------------------------------------
47
+ // Dispatch
48
+ // ---------------------------------------------------------------------------
49
+ const RECOGNIZED_SUBS = new Set(["read", "rg"]);
50
+ async function dispatch(subcommand, parsed, cwd, signal) {
51
+ switch (subcommand) {
52
+ case "read": {
53
+ return runReadSubcommand(parsed, cwd, signal, "batch_read");
54
+ }
55
+ case "rg": {
56
+ return runRgSubcommand(parsed, cwd, signal, "batch_read");
57
+ }
58
+ default: {
59
+ throw new CliError(`Unknown subcommand: ${subcommand}`, `Did you mean: read, rg? Run with --help for usage.`);
60
+ }
61
+ }
62
+ }
63
+ // ---------------------------------------------------------------------------
64
+ // Main entry
65
+ // ---------------------------------------------------------------------------
66
+ export async function runBatchReadCli(cmd, cwd, signal) {
67
+ return runChain(cmd, cwd ?? process.cwd(), signal, {
68
+ toolPrefix: "batch_read",
69
+ recognizedSubs: RECOGNIZED_SUBS,
70
+ getFlagSpec: (subcommand) => (subcommand === "rg" ? RG_FLAGS : READ_FLAGS),
71
+ dispatch,
72
+ helpText: BATCH_READ_HELP,
73
+ validSubcommandsTip: "read, rg",
74
+ });
75
+ }
76
+ //# sourceMappingURL=batch-read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-read.js","sourceRoot":"","sources":["../../src/cli/batch-read.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * batch — bash-style CLI tool.
3
+ *
4
+ * Replaces the legacy batch mega-schema with a simple cmd string
5
+ * that uses subcommands and flags.
6
+ */
7
+ import type { BashProcessTracker } from "../batch/batch-bash.js";
8
+ export declare const BatchCliParams: any;
9
+ export declare const BATCH_CLI_DESCRIPTION = "Multi-op executor \u2014 NOT a shell. Subcommands: `read` \u2022 `write` \u2022 `edit` \u2022 `delete` \u2022 `patch` \u2022 `bash` \u2022 `rg` \u2022 `web` \u2022 `poll`. Pass a single [cmd] string of the form `batch <subcommand> <flags> <args>`. There is no `ls`/`cd`/`git`; the `bash` subcommand is the ONLY way to run shell. File/shell ops run first; web after. Chain with `;` (sequential) or `&&` (conditional). For read-only work, prefer `batch_read` (lighter, no write tools). Pass [cmd]: \"help\" for the man page.";
10
+ export declare const BATCH_CLI_SNIPPET = "Batch: file ops + bash + web in one call via CLI";
11
+ export declare const BATCH_CLI_GUIDELINES: string[];
12
+ export declare const BATCH_HELP: string;
13
+ export declare function runBatchCli(cmd: string, cwd: string, bashTracker: BashProcessTracker | undefined, sessionManager?: {
14
+ getSessionDir(): string;
15
+ }, signal?: AbortSignal): Promise<{
16
+ text: string;
17
+ results: import("../batch/constants.js").OpResult[];
18
+ hasError: boolean;
19
+ }>;
20
+ //# sourceMappingURL=batch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../src/cli/batch.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAwBjE,eAAO,MAAM,cAAc,KASzB,CAAC;AAMH,eAAO,MAAM,qBAAqB,+gBAC+b,CAAC;AAEle,eAAO,MAAM,iBAAiB,qDACsB,CAAC;AAErD,eAAO,MAAM,oBAAoB,UAYhC,CAAC;AAkBF,eAAO,MAAM,UAAU,QAItB,CAAC;AA8DF,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,kBAAkB,GAAG,SAAS,EAC3C,cAAc,CAAC,EAAE;IAAE,aAAa,IAAI,MAAM,CAAA;CAAE,EAC5C,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,uBAAuB,EAAE,QAAQ,EAAE,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,CAUnG"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * batch — bash-style CLI tool.
3
+ *
4
+ * Replaces the legacy batch mega-schema with a simple cmd string
5
+ * that uses subcommands and flags.
6
+ */
7
+ import { Type } from "@sinclair/typebox";
8
+ import { CliError } from "./parse.js";
9
+ import { renderHelp, flagSpecToHelp } from "./help.js";
10
+ import { runChain } from "./runner.js";
11
+ import { READ_FLAGS } from "./flags/read.js";
12
+ import { WRITE_FLAGS } from "./flags/write.js";
13
+ import { EDIT_FLAGS } from "./flags/edit.js";
14
+ import { PATCH_FLAGS } from "./flags/patch.js";
15
+ import { BASH_FLAGS } from "./flags/bash.js";
16
+ import { RG_FLAGS } from "./flags/rg.js";
17
+ import { WEB_FLAGS } from "./flags/web.js";
18
+ import { POLL_FLAGS } from "./flags/poll.js";
19
+ import { DELETE_FLAGS } from "./flags/delete.js";
20
+ import { runReadSubcommand } from "./exec/read.js";
21
+ import { runWriteSubcommand } from "./exec/write.js";
22
+ import { runEditSubcommand } from "./exec/edit.js";
23
+ import { runDeleteSubcommand } from "./exec/delete.js";
24
+ import { runPatchSubcommand } from "./exec/patch.js";
25
+ import { runBashSubcommand } from "./exec/bash.js";
26
+ import { runRgSubcommand } from "./exec/rg.js";
27
+ import { runWebSubcommand } from "./exec/web.js";
28
+ import { runPollSubcommand } from "./exec/poll.js";
29
+ // ---------------------------------------------------------------------------
30
+ // Schema
31
+ // ---------------------------------------------------------------------------
32
+ export const BatchCliParams = Type.Object({
33
+ cmd: Type.String({
34
+ description: "batch command string, e.g. 'batch read src/index.ts' or 'batch write -c \"hello\" file.txt'",
35
+ }),
36
+ cwd: Type.Optional(Type.String({
37
+ description: "Working directory override. Default: current session cwd.",
38
+ })),
39
+ });
40
+ // ---------------------------------------------------------------------------
41
+ // Constants
42
+ // ---------------------------------------------------------------------------
43
+ export const BATCH_CLI_DESCRIPTION = "Multi-op executor — NOT a shell. Subcommands: `read` • `write` • `edit` • `delete` • `patch` • `bash` • `rg` • `web` • `poll`. Pass a single [cmd] string of the form `batch <subcommand> <flags> <args>`. There is no `ls`/`cd`/`git`; the `bash` subcommand is the ONLY way to run shell. File/shell ops run first; web after. Chain with `;` (sequential) or `&&` (conditional). For read-only work, prefer `batch_read` (lighter, no write tools). Pass [cmd]: \"help\" for the man page.";
44
+ export const BATCH_CLI_SNIPPET = "Batch: file ops + bash + web in one call via CLI";
45
+ export const BATCH_CLI_GUIDELINES = [
46
+ "**This is a structured command, NOT a shell.** There is no `ls`, `cd`, `git`, or arbitrary command. The only operations available are the documented subcommands (`read` • `write` • `edit` • `delete` • `patch` • `bash` • `rg` • `web` • `poll`). To run shell, use `batch bash <cmd>`.",
47
+ "Use `batch read <paths>` for files. Add `:N` or `:N-M` for line ranges.",
48
+ "Use `batch write -c <content> <path>` to write files.",
49
+ "Use `batch edit -f <oldText> -r <newText> <path>` for targeted edits. Repeat -f/-r for multi-edit.",
50
+ "Use `batch delete <path>` to remove files.",
51
+ "Use `batch patch -c <patch_text>` to apply patch.",
52
+ "Use `batch bash <command>` for shell commands. Chain with ; and &&.",
53
+ "Use `batch rg -q <pattern> <path>` for ripgrep.",
54
+ "Use `batch web search -q <query>` or `batch web fetch -u <url>` for web ops.",
55
+ "Use `batch poll -i <id>` to check pending bash commands.",
56
+ "Pass `cmd: \"help\"`, `--help`, or `-h` for the man page.",
57
+ ];
58
+ // ---------------------------------------------------------------------------
59
+ // Help text
60
+ // ---------------------------------------------------------------------------
61
+ const subcommands = [
62
+ { name: "read", description: "Read file contents. Paths may include :N or :N-M line ranges.", flags: flagSpecToHelp(READ_FLAGS) },
63
+ { name: "write", description: "Write content to file(s).", flags: flagSpecToHelp(WRITE_FLAGS) },
64
+ { name: "edit", description: "Targeted file edit using --find/--replace pairs.", flags: flagSpecToHelp(EDIT_FLAGS) },
65
+ { name: "delete", description: "Delete file(s).", flags: flagSpecToHelp(DELETE_FLAGS) },
66
+ { name: "patch", description: "Apply a patch.", flags: flagSpecToHelp(PATCH_FLAGS) },
67
+ { name: "bash", description: "Execute a shell command.", flags: flagSpecToHelp(BASH_FLAGS) },
68
+ { name: "rg", description: "Search with ripgrep.", flags: flagSpecToHelp(RG_FLAGS) },
69
+ { name: "web", description: "Web operations: search or fetch.", flags: flagSpecToHelp(WEB_FLAGS) },
70
+ { name: "poll", description: "Poll pending bash commands by ID.", flags: flagSpecToHelp(POLL_FLAGS) },
71
+ ];
72
+ export const BATCH_HELP = renderHelp("batch", "Multi-op executor. File/shell ops ([read] [write] [edit] [delete] [patch] [bash] [rg]) execute first; web ([search] [fetch]) runs after. Supports chaining with ; and &&.", subcommands);
73
+ // ---------------------------------------------------------------------------
74
+ // Dispatch
75
+ // ---------------------------------------------------------------------------
76
+ const RECOGNIZED_SUBS = new Set(["read", "write", "edit", "delete", "patch", "bash", "rg", "web", "poll"]);
77
+ function getFlagSpec(subcommand) {
78
+ switch (subcommand) {
79
+ case "read": return READ_FLAGS;
80
+ case "write": return WRITE_FLAGS;
81
+ case "edit": return EDIT_FLAGS;
82
+ case "delete": return DELETE_FLAGS;
83
+ case "patch": return PATCH_FLAGS;
84
+ case "bash": return BASH_FLAGS;
85
+ case "rg": return RG_FLAGS;
86
+ case "web": return WEB_FLAGS;
87
+ case "poll": return POLL_FLAGS;
88
+ default: return {};
89
+ }
90
+ }
91
+ async function dispatchSubcommand(subcommand, parsed, cwd, bashTracker, sessionManager, signal) {
92
+ switch (subcommand) {
93
+ case "read":
94
+ return runReadSubcommand(parsed, cwd, signal);
95
+ case "write":
96
+ return runWriteSubcommand(parsed, cwd, signal);
97
+ case "edit":
98
+ return runEditSubcommand(parsed, cwd, signal);
99
+ case "delete":
100
+ return runDeleteSubcommand(parsed, cwd, signal);
101
+ case "patch":
102
+ return runPatchSubcommand(parsed, cwd, signal);
103
+ case "bash":
104
+ return runBashSubcommand(parsed, cwd, bashTracker, signal);
105
+ case "rg":
106
+ return runRgSubcommand(parsed, cwd, signal);
107
+ case "web":
108
+ return runWebSubcommand(parsed, cwd, sessionManager, signal);
109
+ case "poll":
110
+ return runPollSubcommand(parsed, cwd, bashTracker, signal);
111
+ default:
112
+ throw new CliError(`Unknown subcommand: ${subcommand}`, `Did you mean: ${subcommands.map((s) => s.name).join(", ")}? Run with --help for usage.`);
113
+ }
114
+ }
115
+ // ---------------------------------------------------------------------------
116
+ // Main entry
117
+ // ---------------------------------------------------------------------------
118
+ export async function runBatchCli(cmd, cwd, bashTracker, sessionManager, signal) {
119
+ return runChain(cmd, cwd, signal, {
120
+ toolPrefix: "batch",
121
+ recognizedSubs: RECOGNIZED_SUBS,
122
+ getFlagSpec,
123
+ dispatch: (subcommand, parsed, cwd, signal) => dispatchSubcommand(subcommand, parsed, cwd, bashTracker, sessionManager, signal),
124
+ helpText: BATCH_HELP,
125
+ validSubcommandsTip: "read, write, edit, delete, patch, bash, rg, web, poll",
126
+ });
127
+ }
128
+ //# sourceMappingURL=batch.js.map