@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.
Files changed (185) hide show
  1. package/dist/cli/adapters/commander.d.ts +14 -0
  2. package/dist/cli/adapters/commander.d.ts.map +1 -0
  3. package/dist/cli/adapters/commander.js +348 -0
  4. package/dist/cli/adapters/commander.js.map +1 -0
  5. package/dist/cli/adapters/interactive.d.ts +11 -0
  6. package/dist/cli/adapters/interactive.d.ts.map +1 -0
  7. package/dist/cli/adapters/interactive.js +375 -0
  8. package/dist/cli/adapters/interactive.js.map +1 -0
  9. package/dist/cli/command-registry.d.ts +27 -0
  10. package/dist/cli/command-registry.d.ts.map +1 -0
  11. package/dist/cli/command-registry.js +470 -0
  12. package/dist/cli/command-registry.js.map +1 -0
  13. package/dist/cli/contracts.d.ts +122 -0
  14. package/dist/cli/contracts.d.ts.map +1 -0
  15. package/dist/cli/contracts.js +2 -0
  16. package/dist/cli/contracts.js.map +1 -0
  17. package/dist/cli/handlers/apply.d.ts +3 -0
  18. package/dist/cli/handlers/apply.d.ts.map +1 -0
  19. package/dist/cli/handlers/apply.js +17 -0
  20. package/dist/cli/handlers/apply.js.map +1 -0
  21. package/dist/cli/handlers/doctor.d.ts +3 -0
  22. package/dist/cli/handlers/doctor.d.ts.map +1 -0
  23. package/dist/cli/handlers/doctor.js +16 -0
  24. package/dist/cli/handlers/doctor.js.map +1 -0
  25. package/dist/cli/handlers/entities.d.ts +22 -0
  26. package/dist/cli/handlers/entities.d.ts.map +1 -0
  27. package/dist/cli/handlers/entities.js +92 -0
  28. package/dist/cli/handlers/entities.js.map +1 -0
  29. package/dist/cli/handlers/init.d.ts +5 -0
  30. package/dist/cli/handlers/init.d.ts.map +1 -0
  31. package/dist/cli/handlers/init.js +17 -0
  32. package/dist/cli/handlers/init.js.map +1 -0
  33. package/dist/cli/handlers/migrate.d.ts +6 -0
  34. package/dist/cli/handlers/migrate.d.ts.map +1 -0
  35. package/dist/cli/handlers/migrate.js +22 -0
  36. package/dist/cli/handlers/migrate.js.map +1 -0
  37. package/dist/cli/handlers/plan.d.ts +5 -0
  38. package/dist/cli/handlers/plan.d.ts.map +1 -0
  39. package/dist/cli/handlers/plan.js +18 -0
  40. package/dist/cli/handlers/plan.js.map +1 -0
  41. package/dist/cli/handlers/provider.d.ts +8 -0
  42. package/dist/cli/handlers/provider.d.ts.map +1 -0
  43. package/dist/cli/handlers/provider.js +37 -0
  44. package/dist/cli/handlers/provider.js.map +1 -0
  45. package/dist/cli/handlers/registry.d.ts +27 -0
  46. package/dist/cli/handlers/registry.d.ts.map +1 -0
  47. package/dist/cli/handlers/registry.js +133 -0
  48. package/dist/cli/handlers/registry.js.map +1 -0
  49. package/dist/cli/handlers/validate.d.ts +3 -0
  50. package/dist/cli/handlers/validate.d.ts.map +1 -0
  51. package/dist/cli/handlers/validate.js +16 -0
  52. package/dist/cli/handlers/validate.js.map +1 -0
  53. package/dist/cli/handlers/watch.d.ts +6 -0
  54. package/dist/cli/handlers/watch.d.ts.map +1 -0
  55. package/dist/cli/handlers/watch.js +46 -0
  56. package/dist/cli/handlers/watch.js.map +1 -0
  57. package/dist/cli/main.d.ts +6 -0
  58. package/dist/cli/main.d.ts.map +1 -0
  59. package/dist/cli/main.js +90 -0
  60. package/dist/cli/main.js.map +1 -0
  61. package/dist/cli/renderers/json.d.ts +10 -0
  62. package/dist/cli/renderers/json.d.ts.map +1 -0
  63. package/dist/cli/renderers/json.js +17 -0
  64. package/dist/cli/renderers/json.js.map +1 -0
  65. package/dist/cli/renderers/text.d.ts +3 -0
  66. package/dist/cli/renderers/text.d.ts.map +1 -0
  67. package/dist/cli/renderers/text.js +155 -0
  68. package/dist/cli/renderers/text.js.map +1 -0
  69. package/dist/cli/utils/runtime.d.ts +26 -0
  70. package/dist/cli/utils/runtime.d.ts.map +1 -0
  71. package/dist/cli/utils/runtime.js +158 -0
  72. package/dist/cli/utils/runtime.js.map +1 -0
  73. package/dist/cli.d.ts +3 -0
  74. package/dist/cli.d.ts.map +1 -0
  75. package/dist/cli.js +14 -0
  76. package/dist/cli.js.map +1 -0
  77. package/dist/engine/entities.d.ts +33 -0
  78. package/dist/engine/entities.d.ts.map +1 -0
  79. package/dist/engine/entities.js +461 -0
  80. package/dist/engine/entities.js.map +1 -0
  81. package/dist/engine/state.d.ts +19 -0
  82. package/dist/engine/state.d.ts.map +1 -0
  83. package/dist/engine/state.js +70 -0
  84. package/dist/engine/state.js.map +1 -0
  85. package/dist/engine/utils.d.ts +28 -0
  86. package/dist/engine/utils.d.ts.map +1 -0
  87. package/dist/engine/utils.js +157 -0
  88. package/dist/engine/utils.js.map +1 -0
  89. package/dist/engine.d.ts +59 -0
  90. package/dist/engine.d.ts.map +1 -0
  91. package/dist/engine.js +398 -0
  92. package/dist/engine.js.map +1 -0
  93. package/dist/entity-registries.d.ts +40 -0
  94. package/dist/entity-registries.d.ts.map +1 -0
  95. package/dist/entity-registries.js +257 -0
  96. package/dist/entity-registries.js.map +1 -0
  97. package/dist/index.d.ts +19 -0
  98. package/dist/index.d.ts.map +1 -0
  99. package/dist/index.js +22 -0
  100. package/dist/index.js.map +1 -0
  101. package/dist/loader.d.ts +6 -0
  102. package/dist/loader.d.ts.map +1 -0
  103. package/dist/loader.js +552 -0
  104. package/dist/loader.js.map +1 -0
  105. package/dist/paths.d.ts +23 -0
  106. package/dist/paths.d.ts.map +1 -0
  107. package/dist/paths.js +40 -0
  108. package/dist/paths.js.map +1 -0
  109. package/dist/planner.d.ts +5 -0
  110. package/dist/planner.d.ts.map +1 -0
  111. package/dist/planner.js +316 -0
  112. package/dist/planner.js.map +1 -0
  113. package/dist/provider-adapters/claude.d.ts +4 -0
  114. package/dist/provider-adapters/claude.d.ts.map +1 -0
  115. package/dist/provider-adapters/claude.js +36 -0
  116. package/dist/provider-adapters/claude.js.map +1 -0
  117. package/dist/provider-adapters/codex.d.ts +4 -0
  118. package/dist/provider-adapters/codex.d.ts.map +1 -0
  119. package/dist/provider-adapters/codex.js +93 -0
  120. package/dist/provider-adapters/codex.js.map +1 -0
  121. package/dist/provider-adapters/constants.d.ts +21 -0
  122. package/dist/provider-adapters/constants.d.ts.map +1 -0
  123. package/dist/provider-adapters/constants.js +21 -0
  124. package/dist/provider-adapters/constants.js.map +1 -0
  125. package/dist/provider-adapters/copilot.d.ts +4 -0
  126. package/dist/provider-adapters/copilot.d.ts.map +1 -0
  127. package/dist/provider-adapters/copilot.js +37 -0
  128. package/dist/provider-adapters/copilot.js.map +1 -0
  129. package/dist/provider-adapters/create-adapter.d.ts +4 -0
  130. package/dist/provider-adapters/create-adapter.d.ts.map +1 -0
  131. package/dist/provider-adapters/create-adapter.js +67 -0
  132. package/dist/provider-adapters/create-adapter.js.map +1 -0
  133. package/dist/provider-adapters/mcp.d.ts +4 -0
  134. package/dist/provider-adapters/mcp.d.ts.map +1 -0
  135. package/dist/provider-adapters/mcp.js +40 -0
  136. package/dist/provider-adapters/mcp.js.map +1 -0
  137. package/dist/provider-adapters/registry.d.ts +4 -0
  138. package/dist/provider-adapters/registry.d.ts.map +1 -0
  139. package/dist/provider-adapters/registry.js +11 -0
  140. package/dist/provider-adapters/registry.js.map +1 -0
  141. package/dist/provider-adapters/renderers.d.ts +3 -0
  142. package/dist/provider-adapters/renderers.d.ts.map +1 -0
  143. package/dist/provider-adapters/renderers.js +10 -0
  144. package/dist/provider-adapters/renderers.js.map +1 -0
  145. package/dist/provider-adapters/subagents.d.ts +19 -0
  146. package/dist/provider-adapters/subagents.d.ts.map +1 -0
  147. package/dist/provider-adapters/subagents.js +58 -0
  148. package/dist/provider-adapters/subagents.js.map +1 -0
  149. package/dist/provider-adapters/types.d.ts +18 -0
  150. package/dist/provider-adapters/types.d.ts.map +1 -0
  151. package/dist/provider-adapters/types.js +2 -0
  152. package/dist/provider-adapters/types.js.map +1 -0
  153. package/dist/providers.d.ts +6 -0
  154. package/dist/providers.d.ts.map +1 -0
  155. package/dist/providers.js +15 -0
  156. package/dist/providers.js.map +1 -0
  157. package/dist/registry-validator.d.ts +3 -0
  158. package/dist/registry-validator.d.ts.map +1 -0
  159. package/dist/registry-validator.js +222 -0
  160. package/dist/registry-validator.js.map +1 -0
  161. package/dist/repository.d.ts +36 -0
  162. package/dist/repository.d.ts.map +1 -0
  163. package/dist/repository.js +314 -0
  164. package/dist/repository.js.map +1 -0
  165. package/dist/types.d.ts +190 -0
  166. package/dist/types.d.ts.map +1 -0
  167. package/dist/types.js +11 -0
  168. package/dist/types.js.map +1 -0
  169. package/dist/utils.d.ts +16 -0
  170. package/dist/utils.d.ts.map +1 -0
  171. package/dist/utils.js +115 -0
  172. package/dist/utils.js.map +1 -0
  173. package/dist/versioning/doctor.d.ts +6 -0
  174. package/dist/versioning/doctor.d.ts.map +1 -0
  175. package/dist/versioning/doctor.js +284 -0
  176. package/dist/versioning/doctor.js.map +1 -0
  177. package/dist/versioning/migrate.d.ts +9 -0
  178. package/dist/versioning/migrate.d.ts.map +1 -0
  179. package/dist/versioning/migrate.js +362 -0
  180. package/dist/versioning/migrate.js.map +1 -0
  181. package/dist/versioning/registry.d.ts +18 -0
  182. package/dist/versioning/registry.d.ts.map +1 -0
  183. package/dist/versioning/registry.js +63 -0
  184. package/dist/versioning/registry.js.map +1 -0
  185. package/package.json +52 -0
@@ -0,0 +1,90 @@
1
+ import { runCommanderAdapter } from "./adapters/commander.js";
2
+ import { runInteractiveAdapter } from "./adapters/interactive.js";
3
+ import { dispatch } from "./command-registry.js";
4
+ import { renderJsonOutput } from "./renderers/json.js";
5
+ import { renderTextOutput } from "./renderers/text.js";
6
+ import { detectPrimaryCommand, ensureInteractiveFeasible, isNoArgShortcutEligible, parseGlobalCwd, parseGlobalJsonFlag, parseRuntimeFlags, resolveCliContext, resolveNoArgMode, } from "./utils/runtime.js";
7
+ function renderOutput(output, input) {
8
+ if (input.json) {
9
+ input.context.stdout(renderJsonOutput(output, { cwd: input.context.cwd, durationMs: input.durationMs }));
10
+ return;
11
+ }
12
+ renderTextOutput(output, input.context.stdout);
13
+ }
14
+ function toErrorMessage(error) {
15
+ return error instanceof Error ? error.message : String(error);
16
+ }
17
+ export async function runCliCommand(input, context) {
18
+ const resolvedContext = resolveCliContext(context);
19
+ return dispatch(input.command, input, resolvedContext);
20
+ }
21
+ export async function runCliArgv(argv, context) {
22
+ const baseContext = resolveCliContext(context);
23
+ try {
24
+ const runtimeFlags = parseRuntimeFlags(argv);
25
+ if (runtimeFlags.forceInteractive && runtimeFlags.forceNonInteractive) {
26
+ throw new Error("Cannot combine --interactive and --no-interactive");
27
+ }
28
+ const hasJsonFlag = parseGlobalJsonFlag(argv);
29
+ const primaryCommand = detectPrimaryCommand(argv);
30
+ if (primaryCommand === null && !runtimeFlags.forceNonInteractive && isNoArgShortcutEligible(argv)) {
31
+ const mode = hasJsonFlag && !runtimeFlags.forceInteractive
32
+ ? "command"
33
+ : resolveNoArgMode({
34
+ argv,
35
+ env: baseContext.env,
36
+ isTty: baseContext.isTty,
37
+ isCi: baseContext.isCi,
38
+ });
39
+ if (mode === "interactive") {
40
+ ensureInteractiveFeasible({ isTty: baseContext.isTty, isCi: baseContext.isCi });
41
+ const cwd = parseGlobalCwd(argv, baseContext.cwd);
42
+ const interactiveContext = {
43
+ ...baseContext,
44
+ cwd,
45
+ };
46
+ const result = await runInteractiveAdapter(interactiveContext, {
47
+ execute: (input) => runCliCommand(input, interactiveContext),
48
+ renderOutput: (output, durationMs, json) => {
49
+ renderOutput(output, {
50
+ context: interactiveContext,
51
+ durationMs,
52
+ json,
53
+ });
54
+ },
55
+ });
56
+ return {
57
+ exitCode: result.exitCode,
58
+ };
59
+ }
60
+ }
61
+ const commandResult = await runCommanderAdapter(argv, baseContext, {
62
+ execute: (input, commandContext) => runCliCommand(input, commandContext),
63
+ renderOutput: (output, durationMs, json, renderContext) => {
64
+ renderOutput(output, {
65
+ durationMs,
66
+ json,
67
+ context: renderContext,
68
+ });
69
+ },
70
+ runInteractive: async (interactiveContext) => runInteractiveAdapter(interactiveContext, {
71
+ execute: (input) => runCliCommand(input, interactiveContext),
72
+ renderOutput: (output, durationMs, json) => {
73
+ renderOutput(output, {
74
+ durationMs,
75
+ json,
76
+ context: interactiveContext,
77
+ });
78
+ },
79
+ }),
80
+ });
81
+ return commandResult;
82
+ }
83
+ catch (error) {
84
+ baseContext.stderr(`Error: ${toErrorMessage(error)}`);
85
+ return {
86
+ exitCode: 1,
87
+ };
88
+ }
89
+ }
90
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { CliEnvelope, CommandOutput } from "../contracts.js";
2
+ export declare function toJsonEnvelope(output: CommandOutput, input: {
3
+ cwd: string;
4
+ durationMs: number;
5
+ }): CliEnvelope<unknown>;
6
+ export declare function renderJsonOutput(output: CommandOutput, input: {
7
+ cwd: string;
8
+ durationMs: number;
9
+ }): string;
10
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../src/cli/renderers/json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAElE,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACzC,WAAW,CAAC,OAAO,CAAC,CAYtB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAE1G"}
@@ -0,0 +1,17 @@
1
+ export function toJsonEnvelope(output, input) {
2
+ return {
3
+ schemaVersion: "1",
4
+ ok: output.ok,
5
+ command: output.command,
6
+ data: output.data,
7
+ diagnostics: output.diagnostics,
8
+ meta: {
9
+ cwd: input.cwd,
10
+ durationMs: input.durationMs,
11
+ },
12
+ };
13
+ }
14
+ export function renderJsonOutput(output, input) {
15
+ return JSON.stringify(toJsonEnvelope(output, input), null, 2);
16
+ }
17
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/cli/renderers/json.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAC5B,MAAqB,EACrB,KAA0C;IAE1C,OAAO;QACL,aAAa,EAAE,GAAG;QAClB,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,IAAI,EAAE;YACJ,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAqB,EAAE,KAA0C;IAChG,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAChE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CommandOutput } from "../contracts.js";
2
+ export declare function renderTextOutput(output: CommandOutput, writeLine: (line: string) => void): void;
3
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/cli/renderers/text.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,aAAa,EAMd,MAAM,iBAAiB,CAAC;AA2IzB,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAsC/F"}
@@ -0,0 +1,155 @@
1
+ function renderDiagnostic(diagnostic) {
2
+ const location = diagnostic.path ? ` (${diagnostic.path})` : "";
3
+ return `[${diagnostic.severity}] ${diagnostic.code}: ${diagnostic.message}${location}`;
4
+ }
5
+ function renderPlanLikeOperations(output, writeLine) {
6
+ for (const operation of output.data.result.operations) {
7
+ const provider = operation.provider ? ` [${operation.provider}]` : "";
8
+ writeLine(`${operation.type.toUpperCase()}${provider} ${operation.path} - ${operation.reason}`);
9
+ }
10
+ }
11
+ function renderDiagnosticsSection(diagnostics, writeLine) {
12
+ if (diagnostics.length > 0) {
13
+ writeLine("");
14
+ writeLine("Diagnostics:");
15
+ }
16
+ for (const diagnostic of diagnostics) {
17
+ writeLine(renderDiagnostic(diagnostic));
18
+ }
19
+ }
20
+ function renderRegistryOutput(output, writeLine) {
21
+ switch (output.data.operation) {
22
+ case "list": {
23
+ for (const entry of output.data.registries) {
24
+ const marker = entry.isDefault ? " (default)" : "";
25
+ if (entry.definition.type === "local") {
26
+ writeLine(`${entry.id}${marker} - local`);
27
+ continue;
28
+ }
29
+ const root = entry.definition.rootPath ? ` root=${entry.definition.rootPath}` : "";
30
+ const token = entry.definition.tokenEnvVar ? ` tokenEnv=${entry.definition.tokenEnvVar}` : "";
31
+ writeLine(`${entry.id}${marker} - git url=${entry.definition.url} ref=${entry.definition.ref}${root}${token}`);
32
+ }
33
+ return;
34
+ }
35
+ case "validate": {
36
+ if (output.data.result.diagnostics.length === 0) {
37
+ writeLine("Registry validation passed.");
38
+ }
39
+ else {
40
+ for (const diagnostic of output.data.result.diagnostics) {
41
+ writeLine(renderDiagnostic(diagnostic));
42
+ }
43
+ }
44
+ return;
45
+ }
46
+ case "add":
47
+ case "remove":
48
+ case "default.set": {
49
+ writeLine(output.data.message);
50
+ return;
51
+ }
52
+ case "default.show": {
53
+ writeLine(output.data.registry);
54
+ return;
55
+ }
56
+ case "pull": {
57
+ if (output.data.result.updatedEntities.length === 0) {
58
+ writeLine("No imported entities matched pull criteria.");
59
+ return;
60
+ }
61
+ for (const updated of output.data.result.updatedEntities) {
62
+ writeLine(`Pulled ${updated.type} '${updated.id}'.`);
63
+ }
64
+ return;
65
+ }
66
+ }
67
+ }
68
+ function renderValidationOutput(output, writeLine) {
69
+ if (output.data.result.diagnostics.length === 0) {
70
+ writeLine("Validation passed.");
71
+ return;
72
+ }
73
+ for (const diagnostic of output.data.result.diagnostics) {
74
+ writeLine(renderDiagnostic(diagnostic));
75
+ }
76
+ }
77
+ function renderDoctorOutput(output, writeLine) {
78
+ for (const file of output.data.result.files) {
79
+ const provider = file.provider ? ` [${file.provider}]` : "";
80
+ const versionLabel = typeof file.version === "number" ? ` v${file.version}` : "";
81
+ writeLine(`${file.status.toUpperCase()}${provider} ${file.path ?? "<unknown>"}${versionLabel} - ${file.message}`);
82
+ }
83
+ renderDiagnosticsSection(output.data.result.diagnostics, writeLine);
84
+ }
85
+ function renderMigrateOutput(output, writeLine) {
86
+ for (const action of output.data.result.actions) {
87
+ writeLine(`${action.action.toUpperCase()} ${action.path} - ${action.details}`);
88
+ }
89
+ if (output.data.result.backupRoot) {
90
+ writeLine(`Backup: ${output.data.result.backupRoot}`);
91
+ }
92
+ renderDiagnosticsSection(output.data.result.diagnostics, writeLine);
93
+ }
94
+ function renderPlanOutput(output, writeLine) {
95
+ if (output.data.defaultInvocation &&
96
+ output.data.result.operations.length === 0 &&
97
+ output.data.result.diagnostics.length === 0) {
98
+ writeLine("No changes detected.");
99
+ return;
100
+ }
101
+ renderPlanLikeOperations(output, writeLine);
102
+ renderDiagnosticsSection(output.data.result.diagnostics, writeLine);
103
+ }
104
+ function renderApplyOutput(output, writeLine) {
105
+ for (const operation of output.data.result.operations) {
106
+ if (operation.type === "noop") {
107
+ continue;
108
+ }
109
+ const provider = operation.provider ? ` [${operation.provider}]` : "";
110
+ writeLine(`${operation.type.toUpperCase()}${provider} ${operation.path} - ${operation.reason}`);
111
+ }
112
+ renderDiagnosticsSection(output.data.result.diagnostics, writeLine);
113
+ writeLine("");
114
+ writeLine(`Wrote ${output.data.result.writtenArtifacts.length} artifact(s), removed ${output.data.result.prunedArtifacts.length}.`);
115
+ }
116
+ export function renderTextOutput(output, writeLine) {
117
+ switch (output.family) {
118
+ case "init":
119
+ case "provider":
120
+ case "entity-mutation": {
121
+ if ("message" in output.data && typeof output.data.message === "string") {
122
+ writeLine(output.data.message);
123
+ }
124
+ return;
125
+ }
126
+ case "registry": {
127
+ renderRegistryOutput(output, writeLine);
128
+ return;
129
+ }
130
+ case "validation": {
131
+ renderValidationOutput(output, writeLine);
132
+ return;
133
+ }
134
+ case "doctor": {
135
+ renderDoctorOutput(output, writeLine);
136
+ return;
137
+ }
138
+ case "migrate": {
139
+ renderMigrateOutput(output, writeLine);
140
+ return;
141
+ }
142
+ case "plan": {
143
+ renderPlanOutput(output, writeLine);
144
+ return;
145
+ }
146
+ case "apply": {
147
+ renderApplyOutput(output, writeLine);
148
+ return;
149
+ }
150
+ case "watch": {
151
+ return;
152
+ }
153
+ }
154
+ }
155
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/cli/renderers/text.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { CliExecutionContext, CliResolvedContext } from "../contracts.js";
2
+ export type InteractionMode = "interactive" | "command";
3
+ interface RuntimeFlags {
4
+ forceInteractive: boolean;
5
+ forceNonInteractive: boolean;
6
+ }
7
+ export declare function isCi(env: NodeJS.ProcessEnv): boolean;
8
+ export declare function isInteractiveTty(stdin: NodeJS.ReadStream, stdout: NodeJS.WriteStream): boolean;
9
+ export declare function parseRuntimeFlags(argv: readonly string[]): RuntimeFlags;
10
+ export declare function parseGlobalJsonFlag(argv: readonly string[]): boolean;
11
+ export declare function parseGlobalCwd(argv: readonly string[], fallbackCwd: string): string;
12
+ export declare function isNoArgShortcutEligible(argv: readonly string[]): boolean;
13
+ export declare function detectPrimaryCommand(argv: readonly string[]): string | null;
14
+ export declare function resolveNoArgMode(input: {
15
+ argv: readonly string[];
16
+ env: NodeJS.ProcessEnv;
17
+ isTty: boolean;
18
+ isCi: boolean;
19
+ }): InteractionMode;
20
+ export declare function ensureInteractiveFeasible(input: {
21
+ isTty: boolean;
22
+ isCi: boolean;
23
+ }): void;
24
+ export declare function resolveCliContext(context?: CliExecutionContext): CliResolvedContext;
25
+ export {};
26
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE/E,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,SAAS,CAAC;AAExD,UAAU,YAAY;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAOpD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,GAAG,OAAO,CAE9F;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,YAAY,CAKvE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAEpE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAwBnF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAuCxE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CA6B3E;AAoBD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf,GAAG,eAAe,CA6BlB;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAQxF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,kBAAkB,CAcnF"}
@@ -0,0 +1,158 @@
1
+ export function isCi(env) {
2
+ const value = env.CI;
3
+ if (!value) {
4
+ return false;
5
+ }
6
+ return value !== "0" && value.toLowerCase() !== "false";
7
+ }
8
+ export function isInteractiveTty(stdin, stdout) {
9
+ return stdin.isTTY === true && stdout.isTTY === true;
10
+ }
11
+ export function parseRuntimeFlags(argv) {
12
+ return {
13
+ forceInteractive: argv.includes("--interactive"),
14
+ forceNonInteractive: argv.includes("--no-interactive"),
15
+ };
16
+ }
17
+ export function parseGlobalJsonFlag(argv) {
18
+ return argv.includes("--json");
19
+ }
20
+ export function parseGlobalCwd(argv, fallbackCwd) {
21
+ for (let index = 0; index < argv.length; index += 1) {
22
+ const token = argv[index];
23
+ if (token === undefined) {
24
+ continue;
25
+ }
26
+ if (token === "--cwd") {
27
+ const value = argv[index + 1];
28
+ if (value) {
29
+ return value;
30
+ }
31
+ continue;
32
+ }
33
+ if (token.startsWith("--cwd=")) {
34
+ const [, value] = token.split("=", 2);
35
+ if (value) {
36
+ return value;
37
+ }
38
+ }
39
+ }
40
+ return fallbackCwd;
41
+ }
42
+ export function isNoArgShortcutEligible(argv) {
43
+ let expectingCwdValue = false;
44
+ for (const token of argv) {
45
+ if (expectingCwdValue) {
46
+ if (token.length === 0 || token.startsWith("-")) {
47
+ return false;
48
+ }
49
+ expectingCwdValue = false;
50
+ continue;
51
+ }
52
+ if (token === "--cwd") {
53
+ expectingCwdValue = true;
54
+ continue;
55
+ }
56
+ if (token.startsWith("--cwd=")) {
57
+ const [, value] = token.split("=", 2);
58
+ if (!value) {
59
+ return false;
60
+ }
61
+ continue;
62
+ }
63
+ if (token === "--interactive" || token === "--no-interactive" || token === "--json") {
64
+ continue;
65
+ }
66
+ // Let commander own help/version/unknown option handling.
67
+ if (token.startsWith("-")) {
68
+ return false;
69
+ }
70
+ // Positional args should not enter the no-arg shortcut path.
71
+ return false;
72
+ }
73
+ return !expectingCwdValue;
74
+ }
75
+ export function detectPrimaryCommand(argv) {
76
+ let skipNext = false;
77
+ for (const token of argv) {
78
+ if (skipNext) {
79
+ skipNext = false;
80
+ continue;
81
+ }
82
+ if (token === "--cwd") {
83
+ skipNext = true;
84
+ continue;
85
+ }
86
+ if (token.startsWith("--cwd=")) {
87
+ continue;
88
+ }
89
+ if (token === "--") {
90
+ return null;
91
+ }
92
+ if (token.startsWith("-")) {
93
+ continue;
94
+ }
95
+ return token;
96
+ }
97
+ return null;
98
+ }
99
+ function parseInteractiveEnvOverride(env) {
100
+ const raw = env.HARNESS_INTERACTIVE;
101
+ if (raw === undefined) {
102
+ return undefined;
103
+ }
104
+ const normalized = raw.trim().toLowerCase();
105
+ if (normalized === "1" || normalized === "true" || normalized === "yes" || normalized === "on") {
106
+ return true;
107
+ }
108
+ if (normalized === "0" || normalized === "false" || normalized === "no" || normalized === "off") {
109
+ return false;
110
+ }
111
+ return undefined;
112
+ }
113
+ export function resolveNoArgMode(input) {
114
+ const flags = parseRuntimeFlags(input.argv);
115
+ if (flags.forceInteractive && flags.forceNonInteractive) {
116
+ throw new Error("Cannot combine --interactive and --no-interactive");
117
+ }
118
+ if (flags.forceNonInteractive) {
119
+ return "command";
120
+ }
121
+ if (flags.forceInteractive) {
122
+ return "interactive";
123
+ }
124
+ const envOverride = parseInteractiveEnvOverride(input.env);
125
+ if (envOverride === false) {
126
+ return "command";
127
+ }
128
+ if (envOverride === true) {
129
+ return "interactive";
130
+ }
131
+ if (input.isTty && !input.isCi) {
132
+ return "interactive";
133
+ }
134
+ return "command";
135
+ }
136
+ export function ensureInteractiveFeasible(input) {
137
+ if (!input.isTty) {
138
+ throw new Error("Interactive mode requires a TTY terminal");
139
+ }
140
+ if (input.isCi) {
141
+ throw new Error("Interactive mode is disabled in CI. Use --no-interactive to run non-interactively.");
142
+ }
143
+ }
144
+ export function resolveCliContext(context) {
145
+ const env = context?.env ?? process.env;
146
+ const resolvedIsCi = context?.isCi ?? isCi(env);
147
+ const resolvedIsTty = context?.isTty ?? isInteractiveTty(process.stdin, process.stdout);
148
+ return {
149
+ cwd: context?.cwd ?? process.cwd(),
150
+ env,
151
+ stdout: context?.stdout ?? ((line) => process.stdout.write(`${line}\n`)),
152
+ stderr: context?.stderr ?? ((line) => process.stderr.write(`${line}\n`)),
153
+ now: context?.now ?? Date.now,
154
+ isTty: resolvedIsTty,
155
+ isCi: resolvedIsCi,
156
+ };
157
+ }
158
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/cli/utils/runtime.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env node
2
+ import { runCliArgv } from "./cli/main.js";
3
+ async function main() {
4
+ const result = await runCliArgv(process.argv.slice(2));
5
+ if (result.exitCode !== 0) {
6
+ process.exitCode = result.exitCode;
7
+ }
8
+ }
9
+ main().catch((error) => {
10
+ const message = error instanceof Error ? error.message : String(error);
11
+ process.stderr.write(`Error: ${message}\n`);
12
+ process.exitCode = 1;
13
+ });
14
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACrC,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,OAAO,IAAI,CAAC,CAAC;IAC5C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { ProviderId } from "@madebywild/agent-harness-manifest";
2
+ import { fetchEntityFromRegistry } from "../entity-registries.js";
3
+ import type { AgentsManifest, CliEntityType, EntityType, RegistryPullResult, RemoveResult } from "../types.js";
4
+ export declare function ensureOverrideFiles(cwd: string, entityType: EntityType, entityId: string, existing?: Partial<Record<ProviderId, string>>): Promise<{
5
+ overrides: Partial<Record<ProviderId, string>>;
6
+ overrideShaByProvider: Partial<Record<ProviderId, string>>;
7
+ }>;
8
+ export declare function readCurrentSourceSha(cwd: string, entity: AgentsManifest["entities"][number]): Promise<string>;
9
+ export declare function loadSkillSourceHashes(skillRootAbs: string): Promise<Array<{
10
+ path: string;
11
+ sha256: string;
12
+ }>>;
13
+ export declare function materializeFetchedEntity(cwd: string, entity: AgentsManifest["entities"][number], fetched: Awaited<ReturnType<typeof fetchEntityFromRegistry>>): Promise<void>;
14
+ export declare function addPromptEntity(cwd: string, options?: {
15
+ registry?: string;
16
+ }): Promise<void>;
17
+ export declare function addSkillEntity(cwd: string, skillId: string, options?: {
18
+ registry?: string;
19
+ }): Promise<void>;
20
+ export declare function addMcpEntity(cwd: string, configId: string, options?: {
21
+ registry?: string;
22
+ }): Promise<void>;
23
+ export declare function addSubagentEntity(cwd: string, subagentId: string, options?: {
24
+ registry?: string;
25
+ }): Promise<void>;
26
+ export declare function pullRegistryEntities(cwd: string, options?: {
27
+ entityType?: CliEntityType;
28
+ id?: string;
29
+ registry?: string;
30
+ force?: boolean;
31
+ }): Promise<RegistryPullResult>;
32
+ export declare function removeEntity(cwd: string, entityTypeArg: CliEntityType, id: string, deleteSource: boolean): Promise<RemoveResult>;
33
+ //# sourceMappingURL=entities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../src/engine/entities.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAErE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAalE,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,UAAU,EACV,kBAAkB,EAElB,YAAY,EACb,MAAM,aAAa,CAAC;AAsBrB,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,GAC7C,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,qBAAqB,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;CAC5D,CAAC,CA2BD;AAED,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBnH;AAED,wBAAsB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAgBlH;AAED,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,EAC1C,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC,GAC3D,OAAO,CAAC,IAAI,CAAC,CAgDf;AAED,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyDjG;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4EjH;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkEhH;AAED,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9B,OAAO,CAAC,IAAI,CAAC,CA4Df;AAED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GACA,OAAO,CAAC,kBAAkB,CAAC,CA0G7B;AAED,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,aAAa,EAC5B,EAAE,EAAE,MAAM,EACV,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,YAAY,CAAC,CA4CvB"}