@madebywild/agent-harness-framework 0.9.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/dist/cli/adapters/commander.d.ts +14 -0
- package/dist/cli/adapters/commander.d.ts.map +1 -0
- package/dist/cli/adapters/commander.js +348 -0
- package/dist/cli/adapters/commander.js.map +1 -0
- package/dist/cli/adapters/interactive.d.ts +11 -0
- package/dist/cli/adapters/interactive.d.ts.map +1 -0
- package/dist/cli/adapters/interactive.js +375 -0
- package/dist/cli/adapters/interactive.js.map +1 -0
- package/dist/cli/command-registry.d.ts +27 -0
- package/dist/cli/command-registry.d.ts.map +1 -0
- package/dist/cli/command-registry.js +470 -0
- package/dist/cli/command-registry.js.map +1 -0
- package/dist/cli/contracts.d.ts +122 -0
- package/dist/cli/contracts.d.ts.map +1 -0
- package/dist/cli/contracts.js +2 -0
- package/dist/cli/contracts.js.map +1 -0
- package/dist/cli/handlers/apply.d.ts +3 -0
- package/dist/cli/handlers/apply.d.ts.map +1 -0
- package/dist/cli/handlers/apply.js +17 -0
- package/dist/cli/handlers/apply.js.map +1 -0
- package/dist/cli/handlers/doctor.d.ts +3 -0
- package/dist/cli/handlers/doctor.d.ts.map +1 -0
- package/dist/cli/handlers/doctor.js +16 -0
- package/dist/cli/handlers/doctor.js.map +1 -0
- package/dist/cli/handlers/entities.d.ts +22 -0
- package/dist/cli/handlers/entities.d.ts.map +1 -0
- package/dist/cli/handlers/entities.js +92 -0
- package/dist/cli/handlers/entities.js.map +1 -0
- package/dist/cli/handlers/init.d.ts +5 -0
- package/dist/cli/handlers/init.d.ts.map +1 -0
- package/dist/cli/handlers/init.js +17 -0
- package/dist/cli/handlers/init.js.map +1 -0
- package/dist/cli/handlers/migrate.d.ts +6 -0
- package/dist/cli/handlers/migrate.d.ts.map +1 -0
- package/dist/cli/handlers/migrate.js +22 -0
- package/dist/cli/handlers/migrate.js.map +1 -0
- package/dist/cli/handlers/plan.d.ts +5 -0
- package/dist/cli/handlers/plan.d.ts.map +1 -0
- package/dist/cli/handlers/plan.js +18 -0
- package/dist/cli/handlers/plan.js.map +1 -0
- package/dist/cli/handlers/provider.d.ts +8 -0
- package/dist/cli/handlers/provider.d.ts.map +1 -0
- package/dist/cli/handlers/provider.js +37 -0
- package/dist/cli/handlers/provider.js.map +1 -0
- package/dist/cli/handlers/registry.d.ts +27 -0
- package/dist/cli/handlers/registry.d.ts.map +1 -0
- package/dist/cli/handlers/registry.js +133 -0
- package/dist/cli/handlers/registry.js.map +1 -0
- package/dist/cli/handlers/validate.d.ts +3 -0
- package/dist/cli/handlers/validate.d.ts.map +1 -0
- package/dist/cli/handlers/validate.js +16 -0
- package/dist/cli/handlers/validate.js.map +1 -0
- package/dist/cli/handlers/watch.d.ts +6 -0
- package/dist/cli/handlers/watch.d.ts.map +1 -0
- package/dist/cli/handlers/watch.js +46 -0
- package/dist/cli/handlers/watch.js.map +1 -0
- package/dist/cli/main.d.ts +6 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +90 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/renderers/json.d.ts +10 -0
- package/dist/cli/renderers/json.d.ts.map +1 -0
- package/dist/cli/renderers/json.js +17 -0
- package/dist/cli/renderers/json.js.map +1 -0
- package/dist/cli/renderers/text.d.ts +3 -0
- package/dist/cli/renderers/text.d.ts.map +1 -0
- package/dist/cli/renderers/text.js +155 -0
- package/dist/cli/renderers/text.js.map +1 -0
- package/dist/cli/utils/runtime.d.ts +26 -0
- package/dist/cli/utils/runtime.d.ts.map +1 -0
- package/dist/cli/utils/runtime.js +158 -0
- package/dist/cli/utils/runtime.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +14 -0
- package/dist/cli.js.map +1 -0
- package/dist/engine/entities.d.ts +33 -0
- package/dist/engine/entities.d.ts.map +1 -0
- package/dist/engine/entities.js +461 -0
- package/dist/engine/entities.js.map +1 -0
- package/dist/engine/state.d.ts +19 -0
- package/dist/engine/state.d.ts.map +1 -0
- package/dist/engine/state.js +70 -0
- package/dist/engine/state.js.map +1 -0
- package/dist/engine/utils.d.ts +28 -0
- package/dist/engine/utils.d.ts.map +1 -0
- package/dist/engine/utils.js +157 -0
- package/dist/engine/utils.js.map +1 -0
- package/dist/engine.d.ts +59 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +398 -0
- package/dist/engine.js.map +1 -0
- package/dist/entity-registries.d.ts +40 -0
- package/dist/entity-registries.d.ts.map +1 -0
- package/dist/entity-registries.js +257 -0
- package/dist/entity-registries.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/loader.d.ts +6 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +552 -0
- package/dist/loader.js.map +1 -0
- package/dist/paths.d.ts +23 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +40 -0
- package/dist/paths.js.map +1 -0
- package/dist/planner.d.ts +5 -0
- package/dist/planner.d.ts.map +1 -0
- package/dist/planner.js +316 -0
- package/dist/planner.js.map +1 -0
- package/dist/provider-adapters/claude.d.ts +4 -0
- package/dist/provider-adapters/claude.d.ts.map +1 -0
- package/dist/provider-adapters/claude.js +36 -0
- package/dist/provider-adapters/claude.js.map +1 -0
- package/dist/provider-adapters/codex.d.ts +4 -0
- package/dist/provider-adapters/codex.d.ts.map +1 -0
- package/dist/provider-adapters/codex.js +93 -0
- package/dist/provider-adapters/codex.js.map +1 -0
- package/dist/provider-adapters/constants.d.ts +21 -0
- package/dist/provider-adapters/constants.d.ts.map +1 -0
- package/dist/provider-adapters/constants.js +21 -0
- package/dist/provider-adapters/constants.js.map +1 -0
- package/dist/provider-adapters/copilot.d.ts +4 -0
- package/dist/provider-adapters/copilot.d.ts.map +1 -0
- package/dist/provider-adapters/copilot.js +37 -0
- package/dist/provider-adapters/copilot.js.map +1 -0
- package/dist/provider-adapters/create-adapter.d.ts +4 -0
- package/dist/provider-adapters/create-adapter.d.ts.map +1 -0
- package/dist/provider-adapters/create-adapter.js +67 -0
- package/dist/provider-adapters/create-adapter.js.map +1 -0
- package/dist/provider-adapters/mcp.d.ts +4 -0
- package/dist/provider-adapters/mcp.d.ts.map +1 -0
- package/dist/provider-adapters/mcp.js +40 -0
- package/dist/provider-adapters/mcp.js.map +1 -0
- package/dist/provider-adapters/registry.d.ts +4 -0
- package/dist/provider-adapters/registry.d.ts.map +1 -0
- package/dist/provider-adapters/registry.js +11 -0
- package/dist/provider-adapters/registry.js.map +1 -0
- package/dist/provider-adapters/renderers.d.ts +3 -0
- package/dist/provider-adapters/renderers.d.ts.map +1 -0
- package/dist/provider-adapters/renderers.js +10 -0
- package/dist/provider-adapters/renderers.js.map +1 -0
- package/dist/provider-adapters/subagents.d.ts +19 -0
- package/dist/provider-adapters/subagents.d.ts.map +1 -0
- package/dist/provider-adapters/subagents.js +58 -0
- package/dist/provider-adapters/subagents.js.map +1 -0
- package/dist/provider-adapters/types.d.ts +18 -0
- package/dist/provider-adapters/types.d.ts.map +1 -0
- package/dist/provider-adapters/types.js +2 -0
- package/dist/provider-adapters/types.js.map +1 -0
- package/dist/providers.d.ts +6 -0
- package/dist/providers.d.ts.map +1 -0
- package/dist/providers.js +15 -0
- package/dist/providers.js.map +1 -0
- package/dist/registry-validator.d.ts +3 -0
- package/dist/registry-validator.d.ts.map +1 -0
- package/dist/registry-validator.js +222 -0
- package/dist/registry-validator.js.map +1 -0
- package/dist/repository.d.ts +36 -0
- package/dist/repository.d.ts.map +1 -0
- package/dist/repository.js +314 -0
- package/dist/repository.js.map +1 -0
- package/dist/types.d.ts +190 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +11 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +16 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +115 -0
- package/dist/utils.js.map +1 -0
- package/dist/versioning/doctor.d.ts +6 -0
- package/dist/versioning/doctor.d.ts.map +1 -0
- package/dist/versioning/doctor.js +284 -0
- package/dist/versioning/doctor.js.map +1 -0
- package/dist/versioning/migrate.d.ts +9 -0
- package/dist/versioning/migrate.d.ts.map +1 -0
- package/dist/versioning/migrate.js +362 -0
- package/dist/versioning/migrate.js.map +1 -0
- package/dist/versioning/registry.d.ts +18 -0
- package/dist/versioning/registry.d.ts.map +1 -0
- package/dist/versioning/registry.js +63 -0
- package/dist/versioning/registry.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
import { cancel, confirm, intro, isCancel, outro, select, text } from "@clack/prompts";
|
|
2
|
+
import { providerIdSchema } from "@madebywild/agent-harness-manifest";
|
|
3
|
+
import ora from "ora";
|
|
4
|
+
import { CLI_ENTITY_TYPES } from "../../types.js";
|
|
5
|
+
import { getCommandDefinition } from "../command-registry.js";
|
|
6
|
+
const INTERACTIVE_COMMAND_IDS = [
|
|
7
|
+
"init",
|
|
8
|
+
"provider.enable",
|
|
9
|
+
"provider.disable",
|
|
10
|
+
"registry.list",
|
|
11
|
+
"registry.default.show",
|
|
12
|
+
"registry.default.set",
|
|
13
|
+
"registry.add",
|
|
14
|
+
"registry.remove",
|
|
15
|
+
"registry.pull",
|
|
16
|
+
"add.prompt",
|
|
17
|
+
"add.skill",
|
|
18
|
+
"add.mcp",
|
|
19
|
+
"add.subagent",
|
|
20
|
+
"remove",
|
|
21
|
+
"validate",
|
|
22
|
+
"doctor",
|
|
23
|
+
"migrate",
|
|
24
|
+
"plan",
|
|
25
|
+
"apply",
|
|
26
|
+
];
|
|
27
|
+
function toErrorMessage(error) {
|
|
28
|
+
return error instanceof Error ? error.message : String(error);
|
|
29
|
+
}
|
|
30
|
+
function getSelectedValue(value) {
|
|
31
|
+
if (isCancel(value)) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
async function promptOptionalText(message) {
|
|
37
|
+
const value = await text({
|
|
38
|
+
message,
|
|
39
|
+
placeholder: "optional",
|
|
40
|
+
});
|
|
41
|
+
const resolved = getSelectedValue(value);
|
|
42
|
+
if (resolved === null) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
if (typeof resolved !== "string") {
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
const trimmed = resolved.trim();
|
|
49
|
+
return trimmed.length > 0 ? trimmed : undefined;
|
|
50
|
+
}
|
|
51
|
+
async function promptRequiredText(message) {
|
|
52
|
+
const value = await text({
|
|
53
|
+
message,
|
|
54
|
+
validate: (entry) => (!entry || entry.trim().length === 0 ? "This value is required" : undefined),
|
|
55
|
+
});
|
|
56
|
+
const resolved = getSelectedValue(value);
|
|
57
|
+
if (resolved === null) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
return String(resolved);
|
|
61
|
+
}
|
|
62
|
+
async function promptCommandInput(command) {
|
|
63
|
+
switch (command) {
|
|
64
|
+
case "init": {
|
|
65
|
+
const force = await confirm({
|
|
66
|
+
message: "Overwrite existing .harness workspace if present?",
|
|
67
|
+
initialValue: false,
|
|
68
|
+
});
|
|
69
|
+
const resolvedForce = getSelectedValue(force);
|
|
70
|
+
if (resolvedForce === null) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
command,
|
|
75
|
+
options: {
|
|
76
|
+
force: Boolean(resolvedForce),
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
case "provider.enable":
|
|
81
|
+
case "provider.disable": {
|
|
82
|
+
const provider = await select({
|
|
83
|
+
message: "Select provider",
|
|
84
|
+
options: providerIdSchema.options.map((entry) => ({
|
|
85
|
+
value: entry,
|
|
86
|
+
label: entry,
|
|
87
|
+
})),
|
|
88
|
+
});
|
|
89
|
+
const resolvedProvider = getSelectedValue(provider);
|
|
90
|
+
if (resolvedProvider === null) {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
command,
|
|
95
|
+
args: {
|
|
96
|
+
provider: String(resolvedProvider),
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
case "registry.add": {
|
|
101
|
+
const name = await promptRequiredText("Registry name");
|
|
102
|
+
if (name === null) {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
const gitUrl = await promptRequiredText("Git URL");
|
|
106
|
+
if (gitUrl === null) {
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
const ref = await promptOptionalText("Git ref (default: main)");
|
|
110
|
+
if (ref === null) {
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
const root = await promptOptionalText("Registry root path");
|
|
114
|
+
if (root === null) {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
const tokenEnv = await promptOptionalText("Token env var");
|
|
118
|
+
if (tokenEnv === null) {
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
return {
|
|
122
|
+
command,
|
|
123
|
+
args: {
|
|
124
|
+
name,
|
|
125
|
+
},
|
|
126
|
+
options: {
|
|
127
|
+
gitUrl,
|
|
128
|
+
ref,
|
|
129
|
+
root,
|
|
130
|
+
tokenEnv,
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
case "registry.remove":
|
|
135
|
+
case "registry.default.set": {
|
|
136
|
+
const name = await promptRequiredText("Registry name");
|
|
137
|
+
if (name === null) {
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
return {
|
|
141
|
+
command,
|
|
142
|
+
args: {
|
|
143
|
+
name,
|
|
144
|
+
},
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
case "registry.pull": {
|
|
148
|
+
const entityType = await select({
|
|
149
|
+
message: "Entity type filter",
|
|
150
|
+
options: [
|
|
151
|
+
{ value: "", label: "All entity types" },
|
|
152
|
+
...CLI_ENTITY_TYPES.map((entry) => ({ value: entry, label: entry })),
|
|
153
|
+
],
|
|
154
|
+
});
|
|
155
|
+
const resolvedEntityType = getSelectedValue(entityType);
|
|
156
|
+
if (resolvedEntityType === null) {
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
const id = await promptOptionalText("Entity id filter");
|
|
160
|
+
if (id === null) {
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
const registry = await promptOptionalText("Registry filter");
|
|
164
|
+
if (registry === null) {
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
const force = await confirm({
|
|
168
|
+
message: "Overwrite locally modified imported sources?",
|
|
169
|
+
initialValue: false,
|
|
170
|
+
});
|
|
171
|
+
const resolvedForce = getSelectedValue(force);
|
|
172
|
+
if (resolvedForce === null) {
|
|
173
|
+
return null;
|
|
174
|
+
}
|
|
175
|
+
return {
|
|
176
|
+
command,
|
|
177
|
+
args: {
|
|
178
|
+
entityType: String(resolvedEntityType) || undefined,
|
|
179
|
+
id,
|
|
180
|
+
},
|
|
181
|
+
options: {
|
|
182
|
+
registry,
|
|
183
|
+
force: Boolean(resolvedForce),
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
case "add.prompt": {
|
|
188
|
+
const registry = await promptOptionalText("Registry id");
|
|
189
|
+
if (registry === null) {
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
return {
|
|
193
|
+
command,
|
|
194
|
+
options: {
|
|
195
|
+
registry,
|
|
196
|
+
},
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
case "add.skill": {
|
|
200
|
+
const skillId = await promptRequiredText("Skill id");
|
|
201
|
+
if (skillId === null) {
|
|
202
|
+
return null;
|
|
203
|
+
}
|
|
204
|
+
const registry = await promptOptionalText("Registry id");
|
|
205
|
+
if (registry === null) {
|
|
206
|
+
return null;
|
|
207
|
+
}
|
|
208
|
+
return {
|
|
209
|
+
command,
|
|
210
|
+
args: {
|
|
211
|
+
skillId,
|
|
212
|
+
},
|
|
213
|
+
options: {
|
|
214
|
+
registry,
|
|
215
|
+
},
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
case "add.mcp": {
|
|
219
|
+
const configId = await promptRequiredText("MCP config id");
|
|
220
|
+
if (configId === null) {
|
|
221
|
+
return null;
|
|
222
|
+
}
|
|
223
|
+
const registry = await promptOptionalText("Registry id");
|
|
224
|
+
if (registry === null) {
|
|
225
|
+
return null;
|
|
226
|
+
}
|
|
227
|
+
return {
|
|
228
|
+
command,
|
|
229
|
+
args: {
|
|
230
|
+
configId,
|
|
231
|
+
},
|
|
232
|
+
options: {
|
|
233
|
+
registry,
|
|
234
|
+
},
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
case "add.subagent": {
|
|
238
|
+
const subagentId = await promptRequiredText("Subagent id");
|
|
239
|
+
if (subagentId === null) {
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
const registry = await promptOptionalText("Registry id");
|
|
243
|
+
if (registry === null) {
|
|
244
|
+
return null;
|
|
245
|
+
}
|
|
246
|
+
return {
|
|
247
|
+
command,
|
|
248
|
+
args: {
|
|
249
|
+
subagentId,
|
|
250
|
+
},
|
|
251
|
+
options: {
|
|
252
|
+
registry,
|
|
253
|
+
},
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
case "remove": {
|
|
257
|
+
const entityType = await select({
|
|
258
|
+
message: "Entity type",
|
|
259
|
+
options: CLI_ENTITY_TYPES.map((entry) => ({ value: entry, label: entry })),
|
|
260
|
+
});
|
|
261
|
+
const resolvedEntityType = getSelectedValue(entityType);
|
|
262
|
+
if (resolvedEntityType === null) {
|
|
263
|
+
return null;
|
|
264
|
+
}
|
|
265
|
+
const id = await promptRequiredText("Entity id");
|
|
266
|
+
if (id === null) {
|
|
267
|
+
return null;
|
|
268
|
+
}
|
|
269
|
+
const deleteSource = await confirm({
|
|
270
|
+
message: "Delete source files too?",
|
|
271
|
+
initialValue: true,
|
|
272
|
+
});
|
|
273
|
+
const resolvedDeleteSource = getSelectedValue(deleteSource);
|
|
274
|
+
if (resolvedDeleteSource === null) {
|
|
275
|
+
return null;
|
|
276
|
+
}
|
|
277
|
+
return {
|
|
278
|
+
command,
|
|
279
|
+
args: {
|
|
280
|
+
entityType: String(resolvedEntityType),
|
|
281
|
+
id,
|
|
282
|
+
},
|
|
283
|
+
options: {
|
|
284
|
+
deleteSource: Boolean(resolvedDeleteSource),
|
|
285
|
+
},
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
case "migrate": {
|
|
289
|
+
const dryRun = await confirm({
|
|
290
|
+
message: "Run as dry-run only?",
|
|
291
|
+
initialValue: false,
|
|
292
|
+
});
|
|
293
|
+
const resolvedDryRun = getSelectedValue(dryRun);
|
|
294
|
+
if (resolvedDryRun === null) {
|
|
295
|
+
return null;
|
|
296
|
+
}
|
|
297
|
+
return {
|
|
298
|
+
command,
|
|
299
|
+
options: {
|
|
300
|
+
to: "latest",
|
|
301
|
+
dryRun: Boolean(resolvedDryRun),
|
|
302
|
+
},
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
default:
|
|
306
|
+
return { command };
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
function requiresConfirmation(command) {
|
|
310
|
+
return getCommandDefinition(command).mutatesWorkspace;
|
|
311
|
+
}
|
|
312
|
+
export async function runInteractiveAdapter(context, api) {
|
|
313
|
+
intro("Harness interactive mode");
|
|
314
|
+
let exitCode = 0;
|
|
315
|
+
while (true) {
|
|
316
|
+
const command = await select({
|
|
317
|
+
message: "Select a command",
|
|
318
|
+
options: [
|
|
319
|
+
...INTERACTIVE_COMMAND_IDS.map((id) => ({
|
|
320
|
+
value: id,
|
|
321
|
+
label: getCommandDefinition(id).interactiveLabel ?? getCommandDefinition(id).description,
|
|
322
|
+
})),
|
|
323
|
+
{
|
|
324
|
+
value: "exit",
|
|
325
|
+
label: "Exit",
|
|
326
|
+
},
|
|
327
|
+
],
|
|
328
|
+
});
|
|
329
|
+
const resolvedCommand = getSelectedValue(command);
|
|
330
|
+
if (resolvedCommand === null || resolvedCommand === "exit") {
|
|
331
|
+
break;
|
|
332
|
+
}
|
|
333
|
+
const parsedCommand = String(resolvedCommand);
|
|
334
|
+
const input = await promptCommandInput(parsedCommand);
|
|
335
|
+
if (input === null) {
|
|
336
|
+
cancel("Cancelled command input.");
|
|
337
|
+
continue;
|
|
338
|
+
}
|
|
339
|
+
if (requiresConfirmation(parsedCommand)) {
|
|
340
|
+
const shouldRun = await confirm({
|
|
341
|
+
message: `Run '${getCommandDefinition(parsedCommand).interactiveLabel ?? parsedCommand}' now?`,
|
|
342
|
+
initialValue: true,
|
|
343
|
+
});
|
|
344
|
+
const resolvedShouldRun = getSelectedValue(shouldRun);
|
|
345
|
+
if (resolvedShouldRun === null) {
|
|
346
|
+
cancel("Cancelled command execution.");
|
|
347
|
+
continue;
|
|
348
|
+
}
|
|
349
|
+
if (!resolvedShouldRun) {
|
|
350
|
+
continue;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
const startedAt = context.now();
|
|
354
|
+
const spinner = ora({
|
|
355
|
+
text: `Running ${getCommandDefinition(parsedCommand).interactiveLabel ?? parsedCommand}...`,
|
|
356
|
+
}).start();
|
|
357
|
+
try {
|
|
358
|
+
const output = await api.execute(input);
|
|
359
|
+
const durationMs = context.now() - startedAt;
|
|
360
|
+
spinner.succeed("Done.");
|
|
361
|
+
api.renderOutput(output, durationMs, false);
|
|
362
|
+
if (output.exitCode !== 0) {
|
|
363
|
+
exitCode = output.exitCode;
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
catch (error) {
|
|
367
|
+
spinner.fail("Command failed.");
|
|
368
|
+
context.stderr(`Error: ${toErrorMessage(error)}`);
|
|
369
|
+
exitCode = 1;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
outro("Interactive session ended.");
|
|
373
|
+
return { exitCode };
|
|
374
|
+
}
|
|
375
|
+
//# sourceMappingURL=interactive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../../src/cli/adapters/interactive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { CliResolvedContext, CommandId, CommandInput, CommandOutput } from "./contracts.js";
|
|
2
|
+
export interface CommandArgumentDefinition {
|
|
3
|
+
name: string;
|
|
4
|
+
required: boolean;
|
|
5
|
+
description: string;
|
|
6
|
+
}
|
|
7
|
+
export interface CommandOptionDefinition {
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
takesValue: boolean;
|
|
11
|
+
defaultValue?: boolean | number | string;
|
|
12
|
+
}
|
|
13
|
+
export interface CommandDefinition {
|
|
14
|
+
id: CommandId;
|
|
15
|
+
path: readonly string[];
|
|
16
|
+
description: string;
|
|
17
|
+
args: readonly CommandArgumentDefinition[];
|
|
18
|
+
options: readonly CommandOptionDefinition[];
|
|
19
|
+
mutatesWorkspace: boolean;
|
|
20
|
+
interactiveLabel?: string;
|
|
21
|
+
run: (input: CommandInput, context: CliResolvedContext) => Promise<CommandOutput>;
|
|
22
|
+
}
|
|
23
|
+
export declare const COMMAND_DEFINITIONS: readonly CommandDefinition[];
|
|
24
|
+
export declare function getCommandDefinition(commandId: CommandId): CommandDefinition;
|
|
25
|
+
export declare function listCommandDefinitions(): readonly CommandDefinition[];
|
|
26
|
+
export declare function dispatch(commandId: CommandId, input: CommandInput, context: CliResolvedContext): Promise<CommandOutput>;
|
|
27
|
+
//# sourceMappingURL=command-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-registry.d.ts","sourceRoot":"","sources":["../../src/cli/command-registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AA0BjG,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;CAC1C;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,SAAS,CAAC;IACd,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC3C,OAAO,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC5C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;CACnF;AA8ED,eAAO,MAAM,mBAAmB,EAAE,SAAS,iBAAiB,EA+Z3D,CAAC;AAMF,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,iBAAiB,CAO5E;AAED,wBAAgB,sBAAsB,IAAI,SAAS,iBAAiB,EAAE,CAErE;AAED,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAGxB"}
|