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.
- package/agents/craft.md +1 -1
- package/agents/debug.md +1 -1
- package/agents/ideas.md +1 -1
- package/dist/batch/batch-bash.d.ts +6 -1
- package/dist/batch/batch-bash.d.ts.map +1 -1
- package/dist/batch/batch-bash.js +7 -2
- package/dist/batch/batch-bash.js.map +1 -1
- package/dist/batch/constants.d.ts +4 -2
- package/dist/batch/constants.d.ts.map +1 -1
- package/dist/batch/execute.d.ts +2 -2
- package/dist/batch/execute.d.ts.map +1 -1
- package/dist/batch/execute.js +13 -1
- package/dist/batch/execute.js.map +1 -1
- package/dist/batch/fuzzy-edit.d.ts +1 -1
- package/dist/batch/fuzzy-edit.d.ts.map +1 -1
- package/dist/batch/fuzzy-edit.js +43 -17
- package/dist/batch/fuzzy-edit.js.map +1 -1
- package/dist/batch/summary.d.ts.map +1 -1
- package/dist/batch/summary.js +146 -0
- package/dist/batch/summary.js.map +1 -1
- package/dist/cli/ask-user.d.ts +40 -0
- package/dist/cli/ask-user.d.ts.map +1 -0
- package/dist/cli/ask-user.js +117 -0
- package/dist/cli/ask-user.js.map +1 -0
- package/dist/cli/batch-read.d.ts +17 -0
- package/dist/cli/batch-read.d.ts.map +1 -0
- package/dist/cli/batch-read.js +76 -0
- package/dist/cli/batch-read.js.map +1 -0
- package/dist/cli/batch.d.ts +20 -0
- package/dist/cli/batch.d.ts.map +1 -0
- package/dist/cli/batch.js +128 -0
- package/dist/cli/batch.js.map +1 -0
- package/dist/cli/chain.d.ts +24 -0
- package/dist/cli/chain.d.ts.map +1 -0
- package/dist/cli/chain.js +166 -0
- package/dist/cli/chain.js.map +1 -0
- package/dist/cli/exec/bash.d.ts +7 -0
- package/dist/cli/exec/bash.d.ts.map +1 -0
- package/dist/cli/exec/bash.js +63 -0
- package/dist/cli/exec/bash.js.map +1 -0
- package/dist/cli/exec/delete.d.ts +6 -0
- package/dist/cli/exec/delete.d.ts.map +1 -0
- package/dist/cli/exec/delete.js +18 -0
- package/dist/cli/exec/delete.js.map +1 -0
- package/dist/cli/exec/edit.d.ts +6 -0
- package/dist/cli/exec/edit.d.ts.map +1 -0
- package/dist/cli/exec/edit.js +44 -0
- package/dist/cli/exec/edit.js.map +1 -0
- package/dist/cli/exec/patch.d.ts +6 -0
- package/dist/cli/exec/patch.d.ts.map +1 -0
- package/dist/cli/exec/patch.js +20 -0
- package/dist/cli/exec/patch.js.map +1 -0
- package/dist/cli/exec/poll.d.ts +7 -0
- package/dist/cli/exec/poll.d.ts.map +1 -0
- package/dist/cli/exec/poll.js +59 -0
- package/dist/cli/exec/poll.js.map +1 -0
- package/dist/cli/exec/read.d.ts +15 -0
- package/dist/cli/exec/read.d.ts.map +1 -0
- package/dist/cli/exec/read.js +54 -0
- package/dist/cli/exec/read.js.map +1 -0
- package/dist/cli/exec/rg.d.ts +10 -0
- package/dist/cli/exec/rg.d.ts.map +1 -0
- package/dist/cli/exec/rg.js +32 -0
- package/dist/cli/exec/rg.js.map +1 -0
- package/dist/cli/exec/util.d.ts +9 -0
- package/dist/cli/exec/util.d.ts.map +1 -0
- package/dist/cli/exec/util.js +8 -0
- package/dist/cli/exec/util.js.map +1 -0
- package/dist/cli/exec/web.d.ts +8 -0
- package/dist/cli/exec/web.d.ts.map +1 -0
- package/dist/cli/exec/web.js +48 -0
- package/dist/cli/exec/web.js.map +1 -0
- package/dist/cli/exec/write.d.ts +6 -0
- package/dist/cli/exec/write.d.ts.map +1 -0
- package/dist/cli/exec/write.js +23 -0
- package/dist/cli/exec/write.js.map +1 -0
- package/dist/cli/flags/bash.d.ts +3 -0
- package/dist/cli/flags/bash.d.ts.map +1 -0
- package/dist/cli/flags/bash.js +7 -0
- package/dist/cli/flags/bash.js.map +1 -0
- package/dist/cli/flags/delete.d.ts +3 -0
- package/dist/cli/flags/delete.d.ts.map +1 -0
- package/dist/cli/flags/delete.js +4 -0
- package/dist/cli/flags/delete.js.map +1 -0
- package/dist/cli/flags/edit.d.ts +3 -0
- package/dist/cli/flags/edit.d.ts.map +1 -0
- package/dist/cli/flags/edit.js +8 -0
- package/dist/cli/flags/edit.js.map +1 -0
- package/dist/cli/flags/patch.d.ts +3 -0
- package/dist/cli/flags/patch.d.ts.map +1 -0
- package/dist/cli/flags/patch.js +5 -0
- package/dist/cli/flags/patch.js.map +1 -0
- package/dist/cli/flags/poll.d.ts +3 -0
- package/dist/cli/flags/poll.d.ts.map +1 -0
- package/dist/cli/flags/poll.js +5 -0
- package/dist/cli/flags/poll.js.map +1 -0
- package/dist/cli/flags/read.d.ts +3 -0
- package/dist/cli/flags/read.d.ts.map +1 -0
- package/dist/cli/flags/read.js +7 -0
- package/dist/cli/flags/read.js.map +1 -0
- package/dist/cli/flags/rg.d.ts +3 -0
- package/dist/cli/flags/rg.d.ts.map +1 -0
- package/dist/cli/flags/rg.js +10 -0
- package/dist/cli/flags/rg.js.map +1 -0
- package/dist/cli/flags/web.d.ts +3 -0
- package/dist/cli/flags/web.d.ts.map +1 -0
- package/dist/cli/flags/web.js +7 -0
- package/dist/cli/flags/web.js.map +1 -0
- package/dist/cli/flags/write.d.ts +3 -0
- package/dist/cli/flags/write.d.ts.map +1 -0
- package/dist/cli/flags/write.js +5 -0
- package/dist/cli/flags/write.js.map +1 -0
- package/dist/cli/flow.d.ts +33 -0
- package/dist/cli/flow.d.ts.map +1 -0
- package/dist/cli/flow.js +185 -0
- package/dist/cli/flow.js.map +1 -0
- package/dist/cli/format.d.ts +12 -0
- package/dist/cli/format.d.ts.map +1 -0
- package/dist/cli/format.js +29 -0
- package/dist/cli/format.js.map +1 -0
- package/dist/cli/help.d.ts +16 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +42 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/parse.d.ts +24 -0
- package/dist/cli/parse.d.ts.map +1 -0
- package/dist/cli/parse.js +165 -0
- package/dist/cli/parse.js.map +1 -0
- package/dist/cli/register.d.ts +69 -0
- package/dist/cli/register.d.ts.map +1 -0
- package/dist/cli/register.js +82 -0
- package/dist/cli/register.js.map +1 -0
- package/dist/cli/runner.d.ts +30 -0
- package/dist/cli/runner.d.ts.map +1 -0
- package/dist/cli/runner.js +102 -0
- package/dist/cli/runner.js.map +1 -0
- package/dist/cli/tokenize.d.ts +9 -0
- package/dist/cli/tokenize.d.ts.map +1 -0
- package/dist/cli/tokenize.js +80 -0
- package/dist/cli/tokenize.js.map +1 -0
- package/dist/core2/snapshot.d.ts.map +1 -1
- package/dist/core2/snapshot.js +8 -1
- package/dist/core2/snapshot.js.map +1 -1
- package/dist/flow/agents.d.ts +2 -0
- package/dist/flow/agents.d.ts.map +1 -1
- package/dist/flow/agents.js +2 -0
- package/dist/flow/agents.js.map +1 -1
- package/dist/flow/continuation.d.ts.map +1 -1
- package/dist/flow/continuation.js +26 -0
- package/dist/flow/continuation.js.map +1 -1
- package/dist/flow/executor.d.ts.map +1 -1
- package/dist/flow/executor.js +1 -0
- package/dist/flow/executor.js.map +1 -1
- package/dist/flow/flow-args.js +1 -1
- package/dist/flow/flow-args.js.map +1 -1
- package/dist/flow/process-lifecycle.d.ts.map +1 -1
- package/dist/flow/process-lifecycle.js +11 -3
- package/dist/flow/process-lifecycle.js.map +1 -1
- package/dist/flow/runner.d.ts.map +1 -1
- package/dist/flow/runner.js +36 -5
- package/dist/flow/runner.js.map +1 -1
- package/dist/flow/warp.d.ts.map +1 -1
- package/dist/flow/warp.js +16 -10
- package/dist/flow/warp.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +158 -241
- package/dist/index.js.map +1 -1
- package/dist/steering/flow-prompt.js +2 -2
- package/dist/steering/flow-prompt.js.map +1 -1
- package/dist/steering/sliding-prompt.d.ts.map +1 -1
- package/dist/steering/sliding-prompt.js +10 -21
- package/dist/steering/sliding-prompt.js.map +1 -1
- package/dist/tools/ask-user.d.ts +10 -7
- package/dist/tools/ask-user.d.ts.map +1 -1
- package/dist/tools/ask-user.js +51 -62
- package/dist/tools/ask-user.js.map +1 -1
- package/dist/tools/trace.d.ts +12 -7
- package/dist/tools/trace.d.ts.map +1 -1
- package/dist/tools/trace.js +155 -194
- package/dist/tools/trace.js.map +1 -1
- package/dist/tools/web-ops.d.ts +40 -0
- package/dist/tools/web-ops.d.ts.map +1 -1
- package/dist/tools/web-ops.js +7 -3
- package/dist/tools/web-ops.js.map +1 -1
- package/package.json +3 -2
- package/dist/batch/index.d.ts +0 -73
- package/dist/batch/index.d.ts.map +0 -1
- package/dist/batch/index.js +0 -450
- package/dist/batch/index.js.map +0 -1
- package/dist/batch/normalize.d.ts +0 -4
- package/dist/batch/normalize.d.ts.map +0 -1
- package/dist/batch/normalize.js +0 -85
- package/dist/batch/normalize.js.map +0 -1
- package/dist/flow/flow-args-prep.d.ts +0 -28
- package/dist/flow/flow-args-prep.d.ts.map +0 -1
- package/dist/flow/flow-args-prep.js +0 -83
- package/dist/flow/flow-args-prep.js.map +0 -1
- package/dist/flow/flow-dispatch-prep.d.ts +0 -11
- package/dist/flow/flow-dispatch-prep.d.ts.map +0 -1
- package/dist/flow/flow-dispatch-prep.js +0 -40
- package/dist/flow/flow-dispatch-prep.js.map +0 -1
- package/dist/flow/op-aliases.d.ts +0 -51
- package/dist/flow/op-aliases.d.ts.map +0 -1
- package/dist/flow/op-aliases.js +0 -185
- package/dist/flow/op-aliases.js.map +0 -1
- package/dist/tools/array-coerce.d.ts +0 -9
- package/dist/tools/array-coerce.d.ts.map +0 -1
- package/dist/tools/array-coerce.js +0 -47
- package/dist/tools/array-coerce.js.map +0 -1
- package/dist/tools/trace-dispatch-prep.d.ts +0 -10
- package/dist/tools/trace-dispatch-prep.d.ts.map +0 -1
- package/dist/tools/trace-dispatch-prep.js +0 -199
- package/dist/tools/trace-dispatch-prep.js.map +0 -1
package/dist/batch/summary.js
CHANGED
|
@@ -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":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,SAAS,WAAW,CAAC,CAAS;IAC7B,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAcD,SAAS,eAAe,CAAC,IAA6B;IACrD,wDAAwD;IACxD,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,MAAiB,CAAC;IACtB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;SACtC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;SAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;SAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,MAAM,GAAG,IAAI,CAAC;;QACvC,MAAM,GAAG,EAAE,CAAC;IAEjB,OAAO,MAAM;SACX,MAAM,CAAC,CAAC,EAAE,EAAiC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,CAAC;SAC7E,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACX,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACtG,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACvG,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACpG,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5D,MAAM,UAAU,GAAG,OAAO,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/D,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;IACnG,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACpC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,QAAQ,EAAE,CAAC;YACd,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBAChB,QAAQ,GAAG,KAAK,CAAC;gBACjB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACrB,OAAO,GAAG,EAAE,CAAC;gBACd,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,OAAO,IAAI,EAAE,CAAC;YACf,CAAC;YACD,SAAS;QACV,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACd,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBAChB,QAAQ,GAAG,KAAK,CAAC;gBACjB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACrB,OAAO,GAAG,EAAE,CAAC;gBACd,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,OAAO,IAAI,EAAE,CAAC;YACf,CAAC;YACD,SAAS;QACV,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAChB,QAAQ,GAAG,IAAI,CAAC;YAChB,SAAS;QACV,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAChB,QAAQ,GAAG,IAAI,CAAC;YAChB,SAAS;QACV,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAC7D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACrB,OAAO,GAAG,EAAE,CAAC;YACd,CAAC;YACD,SAAS;QACV,CAAC;QACD,OAAO,IAAI,EAAE,CAAC;IACf,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACtC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,QAAQ,GAAG,CAAC,QAAQ,CAAC;YACrB,OAAO,IAAI,EAAE,CAAC;YACd,SAAS;QACV,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,QAAQ,GAAG,CAAC,QAAQ,CAAC;YACrB,OAAO,IAAI,EAAE,CAAC;YACd,SAAS;QACV,CAAC;QACD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC1F,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3B,OAAO,GAAG,EAAE,CAAC;YACb,CAAC,EAAE,CAAC,CAAC,gBAAgB;YACrB,SAAS;QACV,CAAC;QACD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3B,OAAO,GAAG,EAAE,CAAC;YACb,SAAS;QACV,CAAC;QACD,OAAO,IAAI,EAAE,CAAC;IACf,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3B,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IACjC,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAClC,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;YAC3D,MAAM,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAClC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,OAAO,IAAI,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,OAAO,IAAI,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;YAC5I,8BAA8B;YAC9B,MAAM,KAAK,GAA2B,EAAE,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC1B,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBAC3B,CAAC,EAAE,CAAC;oBACJ,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBACrD,KAAK,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAC5B,CAAC,EAAE,CAAC;oBACL,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,MAAM;gBACP,CAAC;YACF,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;YACnC,IAAI,OAA2B,CAAC;YAChC,IAAI,EAAE,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;gBAC3D,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;gBACnB,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;YACD,6CAA6C;YAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;YAC5E,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QAClH,CAAC;aAAM,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;YAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAChC,CAAC;IACF,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,aAAa,CAAC,IAA6B;IACnD,MAAM,MAAM,GAAI,IAA0B,CAAC,CAAC,CAAC;IAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,OAAO,MAAM;SACX,MAAM,CAAC,CAAC,EAAW,EAAiC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,CAAC;SACtF,GAAG,CAAC,CAAC,EAA2B,EAAE,EAAE,CAAC,CAAC;QACtC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC;QACtB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QAC9C,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;KAC9C,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,eAAe,CAAC,EAAoH;IAC5I,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC;QACd,KAAK,MAAM,CAAC,CAAC,CAAC;YACb,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC;YACxB,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;YACjE,OAAO,SAAS,OAAO,EAAE,CAAC;QAC3B,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACb,IAAI,IAAI,GAAG,QAAQ,SAAS,EAAE,CAAC;YAC/B,IAAI,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,EAAE,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9C,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,IAAI,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC5C,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACd,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YAC9C,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC;QACjF,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACb,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,OAAO,QAAQ,SAAS,GAAG,SAAS,EAAE,CAAC;QACxC,CAAC;QACD,KAAK,IAAI;YACR,OAAO,MAAM,SAAS,EAAE,CAAC;QAC1B,KAAK,MAAM;YACV,OAAO,QAAQ,SAAS,EAAE,CAAC;QAC5B,KAAK,IAAI;YACR,OAAO,MAAM,EAAE,CAAC,CAAC,IAAI,GAAG,OAAO,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACvE,KAAK,QAAQ;YACZ,OAAO,UAAU,SAAS,EAAE,CAAC;QAC9B,KAAK,QAAQ;YACZ,OAAO,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC;QAClC,KAAK,OAAO;YACX,OAAO,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/B,KAAK,OAAO,CAAC,CAAC,CAAC;YACd,MAAM,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,OAAO,QAAQ,YAAY,EAAE,CAAC;QAC/B,CAAC;QACD;YACC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;IACnD,CAAC;AACF,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,eAAe,CAAC,IAA6B;IAC5D,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9C,CAAC,EAAE,CAAC,CAAC,CAAC;QACN,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;QACnB,CAAC,EAAE,CAAC,CAAC,CAAC;QACN,CAAC,EAAE,CAAC,CAAC,CAAC;KACN,CAAC,CAAC,CAAC;IACJ,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAA6B;IAClE,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,eAAe,CAAC;IAEhD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACtB,KAAK,EAAE,CAAC;QACT,CAAC;aAAM,CAAC;YACP,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACf,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;YACxC,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,IAAI,GAAG,OAAO,CAAC;YACf,KAAK,GAAG,CAAC,CAAC;QACX,CAAC;IACF,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACf,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;IACxC,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC;AACpE,CAAC"}
|
|
@@ -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
|