@madebywild/agent-harness-framework 1.3.1 → 1.4.0

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/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # @madebywild/agent-harness-framework
2
2
 
3
+ [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/madebywild/agent-harness)
4
+
3
5
  CLI and engine for [Agent Harness](https://github.com/madebywild/agent-harness) — unified AI agent configuration management for Claude Code, GitHub Copilot, and OpenAI Codex. The Shadcn for agent harnesses.
4
6
 
5
7
  Agent Harness manages agent configurations (system prompts, skills, MCP servers, subagents, and lifecycle hooks) from a single source of truth in a `.harness/` directory and generates provider-specific outputs for each enabled provider. Like [shadcn/ui](https://ui.shadcn.com/) does for UI components, entities can be pulled from external git registries as full, editable source code — no opaque library imports, complete transparency and ownership.
@@ -0,0 +1,13 @@
1
+ export interface AutocompleteSelectOption {
2
+ label: string;
3
+ value: string;
4
+ }
5
+ export interface AutocompleteSelectProps {
6
+ options: AutocompleteSelectOption[];
7
+ onChange: (value: string) => void;
8
+ onCancel?: () => void;
9
+ label?: string;
10
+ visibleOptionCount?: number;
11
+ }
12
+ export declare function AutocompleteSelect({ options, onChange, onCancel, label, visibleOptionCount, }: AutocompleteSelectProps): import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=autocomplete-select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autocomplete-select.d.ts","sourceRoot":"","sources":["../../../src/cli/adapters/autocomplete-select.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,KAAgB,EAChB,kBAAsB,GACvB,EAAE,uBAAuB,2CA0EzB"}
@@ -0,0 +1,74 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box, Text, useInput } from "ink";
3
+ import { useMemo, useRef, useState } from "react";
4
+ export function AutocompleteSelect({ options, onChange, onCancel, label = "Search", visibleOptionCount = 8, }) {
5
+ const [query, setQuery] = useState("");
6
+ const [focusIndex, setFocusIndex] = useState(0);
7
+ const scrollRef = useRef(0);
8
+ const filtered = useMemo(() => {
9
+ if (!query)
10
+ return options;
11
+ const q = query.toLowerCase();
12
+ return options.filter((o) => o.label.toLowerCase().includes(q));
13
+ }, [options, query]);
14
+ // Clamp focus to valid range
15
+ const focus = Math.min(focusIndex, Math.max(0, filtered.length - 1));
16
+ const actualVisible = Math.min(visibleOptionCount, filtered.length);
17
+ // Adjust scroll to keep focus visible
18
+ if (focus < scrollRef.current) {
19
+ scrollRef.current = focus;
20
+ }
21
+ else if (focus >= scrollRef.current + actualVisible) {
22
+ scrollRef.current = focus - actualVisible + 1;
23
+ }
24
+ scrollRef.current = Math.max(0, Math.min(scrollRef.current, Math.max(0, filtered.length - actualVisible)));
25
+ const visibleSlice = filtered.slice(scrollRef.current, scrollRef.current + actualVisible);
26
+ useInput((input, key) => {
27
+ if (key.downArrow) {
28
+ setFocusIndex((i) => Math.min(i + 1, filtered.length - 1));
29
+ }
30
+ else if (key.upArrow) {
31
+ setFocusIndex((i) => Math.max(i - 1, 0));
32
+ }
33
+ else if (key.return) {
34
+ const selected = filtered[focus];
35
+ if (selected)
36
+ onChange(selected.value);
37
+ }
38
+ else if (key.escape) {
39
+ if (query) {
40
+ setQuery("");
41
+ setFocusIndex(0);
42
+ scrollRef.current = 0;
43
+ }
44
+ else {
45
+ onCancel?.();
46
+ }
47
+ }
48
+ else if (key.backspace || key.delete) {
49
+ setQuery((q) => q.slice(0, -1));
50
+ setFocusIndex(0);
51
+ scrollRef.current = 0;
52
+ }
53
+ else if (input && !key.ctrl && !key.meta && !key.tab) {
54
+ setQuery((q) => q + input);
55
+ setFocusIndex(0);
56
+ scrollRef.current = 0;
57
+ }
58
+ });
59
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { children: [_jsxs(Text, { dimColor: true, children: [label, ": "] }), _jsx(Text, { children: query }), _jsx(Text, { dimColor: true, children: "\u2588" }), filtered.length !== options.length && _jsx(Text, { dimColor: true, children: ` (${filtered.length}/${options.length})` })] }), scrollRef.current > 0 && _jsx(Text, { dimColor: true, children: " ↑" }), visibleSlice.map((option, i) => {
60
+ const isFocused = scrollRef.current + i === focus;
61
+ return (_jsxs(Box, { children: [_jsx(Text, { color: isFocused ? "cyan" : undefined, children: isFocused ? "❯ " : " " }), _jsx(HighlightedLabel, { label: option.label, query: query, isFocused: isFocused })] }, option.value));
62
+ }), scrollRef.current + actualVisible < filtered.length && _jsx(Text, { dimColor: true, children: " ↓" }), filtered.length === 0 && _jsx(Text, { dimColor: true, children: " No matches" })] }));
63
+ }
64
+ function HighlightedLabel({ label, query, isFocused }) {
65
+ if (!query) {
66
+ return _jsx(Text, { color: isFocused ? "cyan" : undefined, children: label });
67
+ }
68
+ const idx = label.toLowerCase().indexOf(query.toLowerCase());
69
+ if (idx === -1) {
70
+ return _jsx(Text, { color: isFocused ? "cyan" : undefined, children: label });
71
+ }
72
+ return (_jsxs(Text, { color: isFocused ? "cyan" : undefined, children: [label.slice(0, idx), _jsx(Text, { bold: true, underline: true, children: label.slice(idx, idx + query.length) }), label.slice(idx + query.length)] }));
73
+ }
74
+ //# sourceMappingURL=autocomplete-select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autocomplete-select.js","sourceRoot":"","sources":["../../../src/cli/adapters/autocomplete-select.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +1,10 @@
1
- import type { CliResolvedContext, CommandInput, CommandOutput } from "../contracts.js";
1
+ import type { CommandInput, CommandOutput } from "../contracts.js";
2
2
  export interface InteractiveExecutionApi {
3
3
  execute: (input: CommandInput) => Promise<CommandOutput>;
4
- renderOutput: (output: CommandOutput, durationMs: number, json: boolean) => void;
5
4
  }
6
5
  interface InteractiveRunResult {
7
6
  exitCode: number;
8
7
  }
9
- export declare function runInteractiveAdapter(context: CliResolvedContext, api: InteractiveExecutionApi): Promise<InteractiveRunResult>;
8
+ export declare function runInteractiveAdapter(api: InteractiveExecutionApi): Promise<InteractiveRunResult>;
10
9
  export {};
11
10
  //# sourceMappingURL=interactive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../../src/cli/adapters/interactive.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAa,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAElG,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IACzD,YAAY,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAClF;AAED,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB;AA4eD,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,kBAAkB,EAC3B,GAAG,EAAE,uBAAuB,GAC3B,OAAO,CAAC,oBAAoB,CAAC,CA2E/B"}
1
+ {"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../../src/cli/adapters/interactive.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAa,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAK9E,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;CAC1D;AAED,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAilBD,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAkBvG"}
@@ -1,9 +1,17 @@
1
- import { cancel, confirm, intro, isCancel, outro, select, text } from "@clack/prompts";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Spinner, TextInput } from "@inkjs/ui";
2
3
  import { providerIdSchema } from "@madebywild/agent-harness-manifest";
3
- import ora from "ora";
4
+ import { Box, render, Static, Text, useApp, useInput } from "ink";
5
+ import { useCallback, useEffect, useRef, useState } from "react";
4
6
  import { listBuiltinPresets, summarizePreset } from "../../presets.js";
5
7
  import { CLI_ENTITY_TYPES } from "../../types.js";
6
8
  import { getCommandDefinition } from "../command-registry.js";
9
+ import { renderTextOutput } from "../renderers/text.js";
10
+ import { AutocompleteSelect } from "./autocomplete-select.js";
11
+ import { ToggleConfirm } from "./toggle-confirm.js";
12
+ // ---------------------------------------------------------------------------
13
+ // Command list shown in the main selector
14
+ // ---------------------------------------------------------------------------
7
15
  const INTERACTIVE_COMMAND_IDS = [
8
16
  "init",
9
17
  "provider.enable",
@@ -31,485 +39,352 @@ const INTERACTIVE_COMMAND_IDS = [
31
39
  "plan",
32
40
  "apply",
33
41
  ];
34
- function toErrorMessage(error) {
35
- return error instanceof Error ? error.message : String(error);
36
- }
37
- function getSelectedValue(value) {
38
- if (isCancel(value)) {
39
- return null;
42
+ const COMMAND_OPTIONS = [
43
+ ...INTERACTIVE_COMMAND_IDS.map((id) => ({
44
+ label: getCommandDefinition(id).interactiveLabel ?? getCommandDefinition(id).description,
45
+ value: id,
46
+ })),
47
+ { label: "Exit", value: "exit" },
48
+ ];
49
+ // ---------------------------------------------------------------------------
50
+ // Build the prompt list for each command
51
+ // ---------------------------------------------------------------------------
52
+ function buildPromptsForCommand(commandId, presets) {
53
+ const providers = providerIdSchema.options.map((p) => ({ label: p, value: p }));
54
+ const entityTypes = CLI_ENTITY_TYPES.map((t) => ({ label: t, value: t }));
55
+ switch (commandId) {
56
+ case "init":
57
+ return [
58
+ { id: "force", type: "confirm", message: "Overwrite existing .harness workspace if present?", initial: false },
59
+ {
60
+ id: "preset",
61
+ type: "select",
62
+ message: "Select a preset to apply during init",
63
+ options: [
64
+ { value: "", label: "Skip preset" },
65
+ ...presets.map((p) => ({ value: p.id, label: `${p.name} (${p.id})` })),
66
+ ],
67
+ },
68
+ // delegate prompt inserted dynamically when preset === "delegate"
69
+ ];
70
+ case "provider.enable":
71
+ case "provider.disable":
72
+ return [{ id: "provider", type: "select", message: "Select provider", options: providers }];
73
+ case "registry.add":
74
+ return [
75
+ { id: "name", type: "text", message: "Registry name", required: true },
76
+ { id: "gitUrl", type: "text", message: "Git URL", required: true },
77
+ { id: "ref", type: "text", message: "Git ref (default: main)", required: false },
78
+ { id: "root", type: "text", message: "Registry root path", required: false },
79
+ { id: "tokenEnv", type: "text", message: "Token env var", required: false },
80
+ ];
81
+ case "registry.remove":
82
+ case "registry.default.set":
83
+ return [{ id: "name", type: "text", message: "Registry name", required: true }];
84
+ case "registry.pull":
85
+ return [
86
+ {
87
+ id: "entityType",
88
+ type: "select",
89
+ message: "Entity type filter",
90
+ options: [{ value: "", label: "All entity types" }, ...entityTypes],
91
+ },
92
+ { id: "id", type: "text", message: "Entity id filter", required: false },
93
+ { id: "registry", type: "text", message: "Registry filter", required: false },
94
+ { id: "force", type: "confirm", message: "Overwrite locally modified imported sources?", initial: false },
95
+ ];
96
+ case "preset.list":
97
+ return [{ id: "registry", type: "text", message: "Registry id", required: false }];
98
+ case "preset.describe":
99
+ case "preset.apply":
100
+ return [
101
+ { id: "presetId", type: "text", message: "Preset id", required: true },
102
+ { id: "registry", type: "text", message: "Registry id", required: false },
103
+ ];
104
+ case "add.prompt":
105
+ return [{ id: "registry", type: "text", message: "Registry id", required: false }];
106
+ case "add.skill":
107
+ return [
108
+ { id: "skillId", type: "text", message: "Skill id", required: true },
109
+ { id: "registry", type: "text", message: "Registry id", required: false },
110
+ ];
111
+ case "add.mcp":
112
+ return [
113
+ { id: "configId", type: "text", message: "MCP config id", required: true },
114
+ { id: "registry", type: "text", message: "Registry id", required: false },
115
+ ];
116
+ case "add.subagent":
117
+ return [
118
+ { id: "subagentId", type: "text", message: "Subagent id", required: true },
119
+ { id: "registry", type: "text", message: "Registry id", required: false },
120
+ ];
121
+ case "add.hook":
122
+ return [
123
+ { id: "hookId", type: "text", message: "Hook id", required: true },
124
+ { id: "registry", type: "text", message: "Registry id", required: false },
125
+ ];
126
+ case "add.settings":
127
+ return [
128
+ { id: "provider", type: "select", message: "Provider", options: providers },
129
+ { id: "registry", type: "text", message: "Registry id", required: false },
130
+ ];
131
+ case "add.command":
132
+ return [
133
+ { id: "commandId", type: "text", message: "Command id", required: true },
134
+ { id: "registry", type: "text", message: "Registry id", required: false },
135
+ ];
136
+ case "remove":
137
+ return [
138
+ { id: "entityType", type: "select", message: "Entity type", options: entityTypes },
139
+ { id: "id", type: "text", message: "Entity id", required: true },
140
+ { id: "deleteSource", type: "confirm", message: "Delete source files too?", initial: true },
141
+ ];
142
+ case "migrate":
143
+ return [{ id: "dryRun", type: "confirm", message: "Run as dry-run only?", initial: false }];
144
+ default:
145
+ return [];
40
146
  }
41
- return value;
42
147
  }
43
- async function promptOptionalText(message) {
44
- const value = await text({
45
- message,
46
- placeholder: "optional",
47
- });
48
- const resolved = getSelectedValue(value);
49
- if (resolved === null) {
50
- return null;
51
- }
52
- if (typeof resolved !== "string") {
148
+ // ---------------------------------------------------------------------------
149
+ // Build CommandInput from collected values
150
+ // ---------------------------------------------------------------------------
151
+ function buildCommandInput(commandId, values) {
152
+ const str = (k) => {
153
+ const v = values[k];
154
+ if (typeof v === "string") {
155
+ const t = v.trim();
156
+ return t.length > 0 ? t : undefined;
157
+ }
53
158
  return undefined;
54
- }
55
- const trimmed = resolved.trim();
56
- return trimmed.length > 0 ? trimmed : undefined;
57
- }
58
- async function promptRequiredText(message) {
59
- const value = await text({
60
- message,
61
- validate: (entry) => (!entry || entry.trim().length === 0 ? "This value is required" : undefined),
62
- });
63
- const resolved = getSelectedValue(value);
64
- if (resolved === null) {
65
- return null;
66
- }
67
- return String(resolved);
68
- }
69
- async function promptCommandInput(command) {
70
- switch (command) {
71
- case "init": {
72
- const force = await confirm({
73
- message: "Overwrite existing .harness workspace if present?",
74
- initialValue: false,
75
- });
76
- const resolvedForce = getSelectedValue(force);
77
- if (resolvedForce === null) {
78
- return null;
79
- }
80
- const presets = (await listBuiltinPresets()).map((preset) => summarizePreset(preset));
81
- const preset = await select({
82
- message: "Select a preset to apply during init",
83
- options: [
84
- { value: "", label: "Skip preset" },
85
- ...presets.map((entry) => ({
86
- value: entry.id,
87
- label: `${entry.name} (${entry.id})`,
88
- })),
89
- ],
90
- });
91
- const resolvedPreset = getSelectedValue(preset);
92
- if (resolvedPreset === null) {
93
- return null;
94
- }
95
- let delegate;
96
- if (String(resolvedPreset) === "delegate") {
97
- const delegateProvider = await select({
98
- message: "Select the provider CLI to delegate prompt authoring to",
99
- options: providerIdSchema.options.map((entry) => ({
100
- value: entry,
101
- label: entry,
102
- })),
103
- });
104
- const resolvedDelegateProvider = getSelectedValue(delegateProvider);
105
- if (resolvedDelegateProvider === null) {
106
- return null;
107
- }
108
- delegate = String(resolvedDelegateProvider);
109
- }
159
+ };
160
+ const bool = (k, fallback = false) => {
161
+ const v = values[k];
162
+ return typeof v === "boolean" ? v : fallback;
163
+ };
164
+ switch (commandId) {
165
+ case "init":
110
166
  return {
111
- command,
112
- options: {
113
- force: Boolean(resolvedForce),
114
- preset: String(resolvedPreset) || undefined,
115
- delegate,
116
- },
167
+ command: commandId,
168
+ options: { force: bool("force"), preset: str("preset"), delegate: str("delegate") },
117
169
  };
118
- }
119
170
  case "provider.enable":
120
- case "provider.disable": {
121
- const provider = await select({
122
- message: "Select provider",
123
- options: providerIdSchema.options.map((entry) => ({
124
- value: entry,
125
- label: entry,
126
- })),
127
- });
128
- const resolvedProvider = getSelectedValue(provider);
129
- if (resolvedProvider === null) {
130
- return null;
131
- }
171
+ case "provider.disable":
172
+ return { command: commandId, args: { provider: str("provider") } };
173
+ case "registry.add":
132
174
  return {
133
- command,
134
- args: {
135
- provider: String(resolvedProvider),
136
- },
175
+ command: commandId,
176
+ args: { name: str("name") },
177
+ options: { gitUrl: str("gitUrl"), ref: str("ref"), root: str("root"), tokenEnv: str("tokenEnv") },
137
178
  };
138
- }
139
- case "registry.add": {
140
- const name = await promptRequiredText("Registry name");
141
- if (name === null) {
142
- return null;
143
- }
144
- const gitUrl = await promptRequiredText("Git URL");
145
- if (gitUrl === null) {
146
- return null;
147
- }
148
- const ref = await promptOptionalText("Git ref (default: main)");
149
- if (ref === null) {
150
- return null;
151
- }
152
- const root = await promptOptionalText("Registry root path");
153
- if (root === null) {
154
- return null;
155
- }
156
- const tokenEnv = await promptOptionalText("Token env var");
157
- if (tokenEnv === null) {
158
- return null;
159
- }
160
- return {
161
- command,
162
- args: {
163
- name,
164
- },
165
- options: {
166
- gitUrl,
167
- ref,
168
- root,
169
- tokenEnv,
170
- },
171
- };
172
- }
173
179
  case "registry.remove":
174
- case "registry.default.set": {
175
- const name = await promptRequiredText("Registry name");
176
- if (name === null) {
177
- return null;
178
- }
180
+ case "registry.default.set":
181
+ return { command: commandId, args: { name: str("name") } };
182
+ case "registry.pull":
179
183
  return {
180
- command,
181
- args: {
182
- name,
183
- },
184
- };
185
- }
186
- case "registry.pull": {
187
- const entityType = await select({
188
- message: "Entity type filter",
189
- options: [
190
- { value: "", label: "All entity types" },
191
- ...CLI_ENTITY_TYPES.map((entry) => ({ value: entry, label: entry })),
192
- ],
193
- });
194
- const resolvedEntityType = getSelectedValue(entityType);
195
- if (resolvedEntityType === null) {
196
- return null;
197
- }
198
- const id = await promptOptionalText("Entity id filter");
199
- if (id === null) {
200
- return null;
201
- }
202
- const registry = await promptOptionalText("Registry filter");
203
- if (registry === null) {
204
- return null;
205
- }
206
- const force = await confirm({
207
- message: "Overwrite locally modified imported sources?",
208
- initialValue: false,
209
- });
210
- const resolvedForce = getSelectedValue(force);
211
- if (resolvedForce === null) {
212
- return null;
213
- }
214
- return {
215
- command,
216
- args: {
217
- entityType: String(resolvedEntityType) || undefined,
218
- id,
219
- },
220
- options: {
221
- registry,
222
- force: Boolean(resolvedForce),
223
- },
184
+ command: commandId,
185
+ args: { entityType: str("entityType"), id: str("id") },
186
+ options: { registry: str("registry"), force: bool("force") },
224
187
  };
225
- }
226
- case "preset.list": {
227
- const registry = await promptOptionalText("Registry id");
228
- if (registry === null) {
229
- return null;
230
- }
231
- return {
232
- command,
233
- options: {
234
- registry,
235
- },
236
- };
237
- }
188
+ case "preset.list":
189
+ return { command: commandId, options: { registry: str("registry") } };
238
190
  case "preset.describe":
239
- case "preset.apply": {
240
- const presetId = await promptRequiredText("Preset id");
241
- if (presetId === null) {
242
- return null;
243
- }
244
- const registry = await promptOptionalText("Registry id");
245
- if (registry === null) {
246
- return null;
247
- }
248
- return {
249
- command,
250
- args: {
251
- presetId,
252
- },
253
- options: {
254
- registry,
255
- },
256
- };
257
- }
258
- case "add.prompt": {
259
- const registry = await promptOptionalText("Registry id");
260
- if (registry === null) {
261
- return null;
262
- }
191
+ case "preset.apply":
192
+ return { command: commandId, args: { presetId: str("presetId") }, options: { registry: str("registry") } };
193
+ case "add.prompt":
194
+ return { command: commandId, options: { registry: str("registry") } };
195
+ case "add.skill":
196
+ return { command: commandId, args: { skillId: str("skillId") }, options: { registry: str("registry") } };
197
+ case "add.mcp":
198
+ return { command: commandId, args: { configId: str("configId") }, options: { registry: str("registry") } };
199
+ case "add.subagent":
200
+ return { command: commandId, args: { subagentId: str("subagentId") }, options: { registry: str("registry") } };
201
+ case "add.hook":
202
+ return { command: commandId, args: { hookId: str("hookId") }, options: { registry: str("registry") } };
203
+ case "add.settings":
204
+ return { command: commandId, args: { provider: str("provider") }, options: { registry: str("registry") } };
205
+ case "add.command":
206
+ return { command: commandId, args: { commandId: str("commandId") }, options: { registry: str("registry") } };
207
+ case "remove":
263
208
  return {
264
- command,
265
- options: {
266
- registry,
267
- },
209
+ command: commandId,
210
+ args: { entityType: str("entityType"), id: str("id") },
211
+ options: { deleteSource: bool("deleteSource", true) },
268
212
  };
213
+ case "migrate":
214
+ return { command: commandId, options: { to: "latest", dryRun: bool("dryRun") } };
215
+ default:
216
+ return { command: commandId };
217
+ }
218
+ }
219
+ function App({ api, presets, onExit }) {
220
+ const { exit } = useApp();
221
+ const [step, setStep] = useState({ type: "select-command" });
222
+ const [pastLines, setPastLines] = useState([{ id: 0, text: "Harness interactive mode" }]);
223
+ const nextLineId = useRef(1);
224
+ const [exitCode, setExitCode] = useState(0);
225
+ const addPastLine = useCallback((text) => {
226
+ const id = nextLineId.current++;
227
+ setPastLines((prev) => [...prev, { id, text }]);
228
+ }, []);
229
+ // FIX 2: Transition out of prompt-input when all prompts are answered via useEffect,
230
+ // not during render. Renders must be pure — no state updates allowed.
231
+ useEffect(() => {
232
+ if (step.type !== "prompt-input")
233
+ return;
234
+ const { commandId, collector } = step;
235
+ if (collector.prompts[collector.index])
236
+ return;
237
+ const input = buildCommandInput(commandId, collector.values);
238
+ setStep(getCommandDefinition(commandId).mutatesWorkspace
239
+ ? { type: "confirm-run", commandId, input }
240
+ : { type: "running", commandId, input });
241
+ }, [step]);
242
+ useEffect(() => {
243
+ if (step.type === "done") {
244
+ onExit(exitCode);
245
+ exit();
269
246
  }
270
- case "add.skill": {
271
- const skillId = await promptRequiredText("Skill id");
272
- if (skillId === null) {
273
- return null;
274
- }
275
- const registry = await promptOptionalText("Registry id");
276
- if (registry === null) {
277
- return null;
278
- }
279
- return {
280
- command,
281
- args: {
282
- skillId,
283
- },
284
- options: {
285
- registry,
286
- },
287
- };
247
+ }, [step, exitCode, exit, onExit]);
248
+ const renderCurrentStep = () => {
249
+ if (step.type === "select-command") {
250
+ return (_jsx(Box, { marginTop: 1, children: _jsx(AutocompleteSelect, { label: "Command", options: COMMAND_OPTIONS, onChange: (value) => {
251
+ if (value === "exit") {
252
+ addPastLine("Interactive session ended.");
253
+ setStep({ type: "done" });
254
+ return;
255
+ }
256
+ const commandId = value;
257
+ const prompts = buildPromptsForCommand(commandId, presets);
258
+ setStep({ type: "prompt-input", commandId, collector: { prompts, values: {}, index: 0 } });
259
+ } }) }));
288
260
  }
289
- case "add.mcp": {
290
- const configId = await promptRequiredText("MCP config id");
291
- if (configId === null) {
292
- return null;
293
- }
294
- const registry = await promptOptionalText("Registry id");
295
- if (registry === null) {
296
- return null;
297
- }
298
- return {
299
- command,
300
- args: {
301
- configId,
302
- },
303
- options: {
304
- registry,
305
- },
261
+ if (step.type === "prompt-input") {
262
+ const { commandId, collector } = step;
263
+ const prompt = collector.prompts[collector.index];
264
+ // Effect above handles the transition when prompts are exhausted
265
+ if (!prompt)
266
+ return null;
267
+ const advanceWith = (value) => {
268
+ const newValues = { ...collector.values, [prompt.id]: value };
269
+ let newPrompts = collector.prompts;
270
+ // Dynamically inject delegate-provider prompt when "delegate" preset is selected
271
+ if (commandId === "init" && prompt.id === "preset" && value === "delegate") {
272
+ const delegatePrompt = {
273
+ id: "delegate",
274
+ type: "select",
275
+ message: "Select the provider CLI to delegate prompt authoring to",
276
+ options: providerIdSchema.options.map((p) => ({ label: p, value: p })),
277
+ };
278
+ newPrompts = [
279
+ ...collector.prompts.slice(0, collector.index + 1),
280
+ delegatePrompt,
281
+ ...collector.prompts.slice(collector.index + 1),
282
+ ];
283
+ }
284
+ setStep({
285
+ type: "prompt-input",
286
+ commandId,
287
+ collector: { prompts: newPrompts, values: newValues, index: collector.index + 1 },
288
+ });
306
289
  };
307
- }
308
- case "add.subagent": {
309
- const subagentId = await promptRequiredText("Subagent id");
310
- if (subagentId === null) {
311
- return null;
312
- }
313
- const registry = await promptOptionalText("Registry id");
314
- if (registry === null) {
315
- return null;
316
- }
317
- return {
318
- command,
319
- args: {
320
- subagentId,
321
- },
322
- options: {
323
- registry,
324
- },
290
+ const cancelPrompt = () => {
291
+ addPastLine("Cancelled command input.");
292
+ setStep({ type: "select-command" });
325
293
  };
326
- }
327
- case "add.hook": {
328
- const hookId = await promptRequiredText("Hook id");
329
- if (hookId === null) {
330
- return null;
294
+ if (prompt.type === "text") {
295
+ return (_jsx(TextPrompt, { message: prompt.message, required: prompt.required, onSubmit: advanceWith, onCancel: cancelPrompt }, `${commandId}-${collector.index}`));
331
296
  }
332
- const registry = await promptOptionalText("Registry id");
333
- if (registry === null) {
334
- return null;
297
+ if (prompt.type === "confirm") {
298
+ return (_jsx(ToggleConfirm, { message: prompt.message, defaultValue: prompt.initial, onSubmit: advanceWith, onEscape: cancelPrompt }));
335
299
  }
336
- return {
337
- command,
338
- args: {
339
- hookId,
340
- },
341
- options: {
342
- registry,
343
- },
344
- };
345
- }
346
- case "add.settings": {
347
- const provider = await select({
348
- message: "Provider",
349
- options: providerIdSchema.options.map((entry) => ({
350
- value: entry,
351
- label: entry,
352
- })),
353
- });
354
- const resolvedProvider = getSelectedValue(provider);
355
- if (resolvedProvider === null) {
356
- return null;
300
+ if (prompt.type === "select") {
301
+ return (_jsx(Box, { marginTop: 1, children: _jsx(AutocompleteSelect, { label: prompt.message, options: prompt.options, onChange: (value) => advanceWith(value), onCancel: cancelPrompt }) }));
357
302
  }
358
- const registry = await promptOptionalText("Registry id");
359
- if (registry === null) {
360
- return null;
361
- }
362
- return {
363
- command,
364
- args: {
365
- provider: String(resolvedProvider),
366
- },
367
- options: {
368
- registry,
369
- },
370
- };
371
303
  }
372
- case "add.command": {
373
- const commandId = await promptRequiredText("Command id");
374
- if (commandId === null) {
375
- return null;
376
- }
377
- const registry = await promptOptionalText("Registry id");
378
- if (registry === null) {
379
- return null;
380
- }
381
- return {
382
- command,
383
- args: {
384
- commandId,
385
- },
386
- options: {
387
- registry,
388
- },
389
- };
304
+ if (step.type === "confirm-run") {
305
+ const { commandId, input } = step;
306
+ const label = getCommandDefinition(commandId).interactiveLabel ?? commandId;
307
+ return (_jsx(ToggleConfirm, { message: `Run '${label}' now?`, defaultValue: true, onSubmit: (confirmed) => {
308
+ if (confirmed) {
309
+ setStep({ type: "running", commandId, input });
310
+ }
311
+ else {
312
+ addPastLine("Cancelled command execution.");
313
+ setStep({ type: "select-command" });
314
+ }
315
+ } }));
390
316
  }
391
- case "remove": {
392
- const entityType = await select({
393
- message: "Entity type",
394
- options: CLI_ENTITY_TYPES.map((entry) => ({
395
- value: entry,
396
- label: entry,
397
- })),
398
- });
399
- const resolvedEntityType = getSelectedValue(entityType);
400
- if (resolvedEntityType === null) {
401
- return null;
402
- }
403
- const id = await promptRequiredText("Entity id");
404
- if (id === null) {
405
- return null;
406
- }
407
- const deleteSource = await confirm({
408
- message: "Delete source files too?",
409
- initialValue: true,
410
- });
411
- const resolvedDeleteSource = getSelectedValue(deleteSource);
412
- if (resolvedDeleteSource === null) {
413
- return null;
414
- }
415
- return {
416
- command,
417
- args: {
418
- entityType: String(resolvedEntityType),
419
- id,
420
- },
421
- options: {
422
- deleteSource: Boolean(resolvedDeleteSource),
423
- },
424
- };
317
+ if (step.type === "show-output") {
318
+ return (_jsx(OutputStep, { label: step.label, lines: step.lines, isError: step.isError, onDismiss: () => setStep({ type: "select-command" }) }));
425
319
  }
426
- case "migrate": {
427
- const dryRun = await confirm({
428
- message: "Run as dry-run only?",
429
- initialValue: false,
430
- });
431
- const resolvedDryRun = getSelectedValue(dryRun);
432
- if (resolvedDryRun === null) {
433
- return null;
434
- }
435
- return {
436
- command,
437
- options: {
438
- to: "latest",
439
- dryRun: Boolean(resolvedDryRun),
440
- },
441
- };
320
+ if (step.type === "running") {
321
+ const { commandId, input } = step;
322
+ const label = getCommandDefinition(commandId).interactiveLabel ?? commandId;
323
+ return (_jsx(RunningStep, { label: label, input: input, api: api, onDone: (output, code) => {
324
+ if (code !== 0)
325
+ setExitCode(code);
326
+ const lines = [];
327
+ renderTextOutput(output, (line) => lines.push(line));
328
+ setStep({ type: "show-output", label, lines, isError: code !== 0 });
329
+ }, onError: (message) => {
330
+ setExitCode(1);
331
+ setStep({ type: "show-output", label, lines: [`Error: ${message}`], isError: true });
332
+ } }));
442
333
  }
443
- default:
444
- return { command };
445
- }
334
+ return null;
335
+ };
336
+ // FIX 1: A single Static at the root — never unmounts, never re-renders old items.
337
+ // Step-specific content renders below it.
338
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Static, { items: pastLines, children: (line) => _jsx(Text, { children: line.text }, line.id) }), renderCurrentStep()] }));
446
339
  }
447
- function requiresConfirmation(command) {
448
- return getCommandDefinition(command).mutatesWorkspace;
340
+ function TextPrompt({ message, required, onSubmit, onCancel }) {
341
+ const [error, setError] = useState(false);
342
+ useInput((_input, key) => {
343
+ if (key.escape)
344
+ onCancel();
345
+ else if (error && !key.return)
346
+ setError(false);
347
+ });
348
+ return (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Box, { children: [_jsxs(Text, { dimColor: true, children: [message, ": "] }), _jsx(TextInput, { placeholder: required ? "" : "optional", onSubmit: (value) => {
349
+ if (required && value.trim().length === 0) {
350
+ setError(true);
351
+ return;
352
+ }
353
+ onSubmit(value);
354
+ } })] }), error && _jsx(Text, { color: "red", children: " This value is required" })] }));
355
+ }
356
+ function OutputStep({ label, lines, isError, onDismiss }) {
357
+ useInput((_input, key) => {
358
+ if (key.return)
359
+ onDismiss();
360
+ });
361
+ return (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { bold: true, color: isError ? "red" : "green", children: isError ? `✗ ${label}` : `✓ ${label}` }), _jsx(Box, { flexDirection: "column", marginLeft: 2, marginTop: 1, children: _jsx(Text, { children: lines.join("\n") }) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: "Press Enter to continue..." }) })] }));
449
362
  }
450
- export async function runInteractiveAdapter(context, api) {
451
- intro("Harness interactive mode");
452
- let exitCode = 0;
453
- while (true) {
454
- const commandOptions = [
455
- ...INTERACTIVE_COMMAND_IDS.map((id) => ({
456
- value: id,
457
- label: getCommandDefinition(id).interactiveLabel ?? getCommandDefinition(id).description,
458
- })),
459
- {
460
- value: "exit",
461
- label: "Exit",
462
- },
463
- ];
464
- // @clack/prompts distributes the generic over the union, requiring a type assertion here
465
- const command = await select({
466
- message: "Select a command",
467
- options: commandOptions,
363
+ function RunningStep({ label, input, api, onDone, onError }) {
364
+ const callbacks = useRef({ onDone, onError });
365
+ callbacks.current = { onDone, onError };
366
+ useEffect(() => {
367
+ api
368
+ .execute(input)
369
+ .then((output) => {
370
+ callbacks.current.onDone(output, output.exitCode);
371
+ })
372
+ .catch((err) => {
373
+ callbacks.current.onError(err instanceof Error ? err.message : String(err));
468
374
  });
469
- const resolvedCommand = getSelectedValue(command);
470
- if (resolvedCommand === null || resolvedCommand === "exit") {
471
- break;
472
- }
473
- const parsedCommand = String(resolvedCommand);
474
- const input = await promptCommandInput(parsedCommand);
475
- if (input === null) {
476
- cancel("Cancelled command input.");
477
- continue;
478
- }
479
- if (requiresConfirmation(parsedCommand)) {
480
- const shouldRun = await confirm({
481
- message: `Run '${getCommandDefinition(parsedCommand).interactiveLabel ?? parsedCommand}' now?`,
482
- initialValue: true,
483
- });
484
- const resolvedShouldRun = getSelectedValue(shouldRun);
485
- if (resolvedShouldRun === null) {
486
- cancel("Cancelled command execution.");
487
- continue;
488
- }
489
- if (!resolvedShouldRun) {
490
- continue;
491
- }
492
- }
493
- const startedAt = context.now();
494
- const spinner = ora({
495
- text: `Running ${getCommandDefinition(parsedCommand).interactiveLabel ?? parsedCommand}...`,
496
- }).start();
497
- try {
498
- const output = await api.execute(input);
499
- const durationMs = context.now() - startedAt;
500
- spinner.succeed("Done.");
501
- api.renderOutput(output, durationMs, false);
502
- if (output.exitCode !== 0) {
503
- exitCode = output.exitCode;
504
- }
505
- }
506
- catch (error) {
507
- spinner.fail("Command failed.");
508
- context.stderr(`Error: ${toErrorMessage(error)}`);
509
- exitCode = 1;
510
- }
511
- }
512
- outro("Interactive session ended.");
513
- return { exitCode };
375
+ }, [api, input]);
376
+ return (_jsx(Box, { marginTop: 1, children: _jsx(Spinner, { label: `Running ${label}...` }) }));
377
+ }
378
+ // ---------------------------------------------------------------------------
379
+ // Exported entry point
380
+ // ---------------------------------------------------------------------------
381
+ export async function runInteractiveAdapter(api) {
382
+ const presets = (await listBuiltinPresets()).map((p) => summarizePreset(p));
383
+ let resolvedExitCode = 0;
384
+ const { waitUntilExit } = render(_jsx(App, { api: api, presets: presets, onExit: (code) => {
385
+ resolvedExitCode = code;
386
+ } }), { exitOnCtrlC: true });
387
+ await waitUntilExit();
388
+ return { exitCode: resolvedExitCode };
514
389
  }
515
390
  //# sourceMappingURL=interactive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../../src/cli/adapters/interactive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../../src/cli/adapters/interactive.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export interface ToggleConfirmProps {
2
+ message: string;
3
+ defaultValue?: boolean;
4
+ onSubmit: (value: boolean) => void;
5
+ onEscape?: () => void;
6
+ }
7
+ export declare function ToggleConfirm({ message, defaultValue, onSubmit, onEscape }: ToggleConfirmProps): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=toggle-confirm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-confirm.d.ts","sourceRoot":"","sources":["../../../src/cli/adapters/toggle-confirm.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,YAAoB,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CA0BtG"}
@@ -0,0 +1,22 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box, Text, useInput } from "ink";
3
+ import { useState } from "react";
4
+ export function ToggleConfirm({ message, defaultValue = false, onSubmit, onEscape }) {
5
+ const [value, setValue] = useState(defaultValue);
6
+ useInput((_input, key) => {
7
+ if (key.leftArrow || key.rightArrow || key.tab) {
8
+ setValue((v) => !v);
9
+ }
10
+ else if (key.return) {
11
+ onSubmit(value);
12
+ }
13
+ else if (key.escape) {
14
+ if (onEscape)
15
+ onEscape();
16
+ else
17
+ onSubmit(false);
18
+ }
19
+ });
20
+ return (_jsxs(Box, { marginTop: 1, children: [_jsxs(Text, { dimColor: true, children: [message, " "] }), _jsx(Text, { color: value ? "cyan" : undefined, bold: value, children: value ? "❯ Yes" : " Yes" }), _jsx(Text, { children: " / " }), _jsx(Text, { color: !value ? "cyan" : undefined, bold: !value, children: !value ? "❯ No" : " No" })] }));
21
+ }
22
+ //# sourceMappingURL=toggle-confirm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-confirm.js","sourceRoot":"","sources":["../../../src/cli/adapters/toggle-confirm.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AASjC,MAAM,UAAU,aAAa,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAsB;IACrG,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEjD,QAAQ,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACvB,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YAC/C,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACtB,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,QAAQ;gBAAE,QAAQ,EAAE,CAAC;;gBACpB,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,aACf,MAAC,IAAI,IAAC,QAAQ,mBAAE,OAAO,SAAS,EAChC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,YACjD,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GACrB,EACP,KAAC,IAAI,sBAAW,EAChB,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,KAAK,YACnD,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GACpB,IACH,CACP,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAsB,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAkC3G,wBAAsB,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAG9G;AAED,wBAAsB,UAAU,CAC9B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA6E/B"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAsB,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAkC3G,wBAAsB,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAG9G;AAED,wBAAsB,UAAU,CAC9B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA+D/B"}
package/dist/cli/main.js CHANGED
@@ -43,15 +43,8 @@ export async function runCliArgv(argv, context) {
43
43
  ...baseContext,
44
44
  cwd,
45
45
  };
46
- const result = await runInteractiveAdapter(interactiveContext, {
46
+ const result = await runInteractiveAdapter({
47
47
  execute: (input) => runCliCommand(input, interactiveContext),
48
- renderOutput: (output, durationMs, json) => {
49
- renderOutput(output, {
50
- context: interactiveContext,
51
- durationMs,
52
- json,
53
- });
54
- },
55
48
  });
56
49
  return {
57
50
  exitCode: result.exitCode,
@@ -67,15 +60,8 @@ export async function runCliArgv(argv, context) {
67
60
  context: renderContext,
68
61
  });
69
62
  },
70
- runInteractive: async (interactiveContext) => runInteractiveAdapter(interactiveContext, {
63
+ runInteractive: async (interactiveContext) => runInteractiveAdapter({
71
64
  execute: (input) => runCliCommand(input, interactiveContext),
72
- renderOutput: (output, durationMs, json) => {
73
- renderOutput(output, {
74
- durationMs,
75
- json,
76
- context: interactiveContext,
77
- });
78
- },
79
65
  }),
80
66
  });
81
67
  return commandResult;
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,SAAS,YAAY,CACnB,MAAqB,EACrB,KAIC;IAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACzG,OAAO;IACT,CAAC;IAED,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAmB,EAAE,OAA6B;IACpF,MAAM,eAAe,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAuB,EACvB,OAA6B;IAE7B,MAAM,WAAW,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAE/C,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,YAAY,CAAC,gBAAgB,IAAI,YAAY,CAAC,mBAAmB,EAAE,CAAC;YACtE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,cAAc,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,mBAAmB,IAAI,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;YAClG,MAAM,IAAI,GACR,WAAW,IAAI,CAAC,YAAY,CAAC,gBAAgB;gBAC3C,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,gBAAgB,CAAC;oBACf,IAAI;oBACJ,GAAG,EAAE,WAAW,CAAC,GAAG;oBACpB,KAAK,EAAE,WAAW,CAAC,KAAK;oBACxB,IAAI,EAAE,WAAW,CAAC,IAAI;iBACvB,CAAC,CAAC;YAET,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;gBAC3B,yBAAyB,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;gBAChF,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;gBAClD,MAAM,kBAAkB,GAAuB;oBAC7C,GAAG,WAAW;oBACd,GAAG;iBACJ,CAAC;gBAEF,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,kBAAkB,EAAE;oBAC7D,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC;oBAC5D,YAAY,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE;wBACzC,YAAY,CAAC,MAAM,EAAE;4BACnB,OAAO,EAAE,kBAAkB;4BAC3B,UAAU;4BACV,IAAI;yBACL,CAAC,CAAC;oBACL,CAAC;iBACF,CAAC,CAAC;gBAEH,OAAO;oBACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE;YACjE,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC;YACxE,YAAY,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE;gBACxD,YAAY,CAAC,MAAM,EAAE;oBACnB,UAAU;oBACV,IAAI;oBACJ,OAAO,EAAE,aAAa;iBACvB,CAAC,CAAC;YACL,CAAC;YACD,cAAc,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAC3C,qBAAqB,CAAC,kBAAkB,EAAE;gBACxC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC;gBAC5D,YAAY,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE;oBACzC,YAAY,CAAC,MAAM,EAAE;wBACnB,UAAU;wBACV,IAAI;wBACJ,OAAO,EAAE,kBAAkB;qBAC5B,CAAC,CAAC;gBACL,CAAC;aACF,CAAC;SACL,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,MAAM,CAAC,UAAU,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtD,OAAO;YACL,QAAQ,EAAE,CAAC;SACZ,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@madebywild/agent-harness-framework",
3
- "version": "1.3.1",
3
+ "version": "1.4.0",
4
4
  "license": "MIT",
5
5
  "private": false,
6
6
  "type": "module",
@@ -36,17 +36,19 @@
36
36
  "access": "public"
37
37
  },
38
38
  "dependencies": {
39
- "@clack/prompts": "^1.1.0",
40
39
  "@iarna/toml": "^2.2.5",
40
+ "@inkjs/ui": "^2.0.0",
41
41
  "chokidar": "^5.0.0",
42
42
  "commander": "^14.0.3",
43
43
  "gray-matter": "^4.0.3",
44
- "ora": "^9.3.0",
44
+ "ink": "^6.0.0",
45
+ "react": "^19.0.0",
45
46
  "yaml": "^2.8.2",
46
- "@madebywild/agent-harness-manifest": "1.3.1"
47
+ "@madebywild/agent-harness-manifest": "1.4.0"
47
48
  },
48
49
  "devDependencies": {
49
50
  "@types/node": "^25.5.0",
51
+ "@types/react": "^19.0.0",
50
52
  "testcontainers": "^11.13.0",
51
53
  "tsx": "^4.21.0",
52
54
  "typescript": "^5.9.3"
@@ -62,6 +64,7 @@
62
64
  "check:write": "biome check --write .",
63
65
  "test": "pnpm exec tsx --test test/*.test.ts",
64
66
  "test:e2e:containers": "pnpm exec tsx --test test/e2e/**/*.e2e.test.ts",
65
- "typecheck": "pnpm exec tsc -b --pretty false"
67
+ "typecheck": "pnpm exec tsc -b --pretty false",
68
+ "preview": "pnpm run build && node dist/cli.js"
66
69
  }
67
70
  }