@madebywild/agent-harness-framework 0.9.3 → 1.1.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/LICENSE +21 -0
- package/README.md +154 -10
- package/dist/cli/adapters/commander.d.ts.map +1 -1
- package/dist/cli/adapters/commander.js +16 -0
- package/dist/cli/adapters/commander.js.map +1 -1
- package/dist/cli/adapters/interactive.d.ts.map +1 -1
- package/dist/cli/adapters/interactive.js +20 -0
- package/dist/cli/adapters/interactive.js.map +1 -1
- package/dist/cli/command-registry.d.ts.map +1 -1
- package/dist/cli/command-registry.js +20 -1
- package/dist/cli/command-registry.js.map +1 -1
- package/dist/cli/contracts.d.ts +1 -1
- package/dist/cli/contracts.d.ts.map +1 -1
- package/dist/cli/handlers/entities.d.ts +4 -0
- package/dist/cli/handlers/entities.d.ts.map +1 -1
- package/dist/cli/handlers/entities.js +17 -0
- package/dist/cli/handlers/entities.js.map +1 -1
- package/dist/cli/handlers/registry.d.ts.map +1 -1
- package/dist/cli/handlers/registry.js.map +1 -1
- package/dist/commands.d.ts +6 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +42 -0
- package/dist/commands.js.map +1 -0
- package/dist/engine/entities.d.ts +3 -0
- package/dist/engine/entities.d.ts.map +1 -1
- package/dist/engine/entities.js +64 -1
- package/dist/engine/entities.js.map +1 -1
- package/dist/engine/utils.d.ts.map +1 -1
- package/dist/engine/utils.js +3 -0
- package/dist/engine/utils.js.map +1 -1
- package/dist/engine.d.ts +3 -0
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +10 -2
- package/dist/engine.js.map +1 -1
- package/dist/entity-registries.d.ts +5 -1
- package/dist/entity-registries.d.ts.map +1 -1
- package/dist/entity-registries.js +17 -0
- package/dist/entity-registries.js.map +1 -1
- package/dist/env.d.ts +39 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +175 -0
- package/dist/env.js.map +1 -0
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +8 -2
- package/dist/hooks.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +200 -40
- package/dist/loader.js.map +1 -1
- package/dist/paths.d.ts +5 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +9 -0
- package/dist/paths.js.map +1 -1
- package/dist/planner.d.ts.map +1 -1
- package/dist/planner.js +25 -0
- package/dist/planner.js.map +1 -1
- package/dist/provider-adapters/claude.d.ts.map +1 -1
- package/dist/provider-adapters/claude.js +28 -1
- package/dist/provider-adapters/claude.js.map +1 -1
- package/dist/provider-adapters/constants.d.ts +2 -0
- package/dist/provider-adapters/constants.d.ts.map +1 -1
- package/dist/provider-adapters/constants.js +2 -0
- package/dist/provider-adapters/constants.js.map +1 -1
- package/dist/provider-adapters/copilot.d.ts.map +1 -1
- package/dist/provider-adapters/copilot.js +25 -1
- package/dist/provider-adapters/copilot.js.map +1 -1
- package/dist/provider-adapters/types.d.ts +1 -0
- package/dist/provider-adapters/types.d.ts.map +1 -1
- package/dist/repository.d.ts +1 -1
- package/dist/repository.d.ts.map +1 -1
- package/dist/repository.js +23 -4
- package/dist/repository.js.map +1 -1
- package/dist/types.d.ts +16 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -1
- package/dist/types.js.map +1 -1
- package/package.json +4 -3
package/dist/env.d.ts
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { HarnessPaths } from "./paths.js";
|
|
2
|
+
import type { Diagnostic } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Parse a dotenv-format string into key-value pairs.
|
|
5
|
+
* - Lines starting with # are comments
|
|
6
|
+
* - Empty lines are skipped
|
|
7
|
+
* - Format: KEY=value (value can be unquoted, double-quoted, or single-quoted)
|
|
8
|
+
* - Double-quoted values support \n, \t, \\, \" escapes
|
|
9
|
+
* - Single-quoted values are literal (no escape processing)
|
|
10
|
+
* - Unquoted values are trimmed and stop at inline # comments
|
|
11
|
+
*/
|
|
12
|
+
export declare function parseEnvFile(content: string): Map<string, string>;
|
|
13
|
+
/**
|
|
14
|
+
* Load env vars from multiple sources with precedence:
|
|
15
|
+
* 1. .harness/.env (highest priority)
|
|
16
|
+
* 2. .env.harness (at project root)
|
|
17
|
+
* 3. process.env (lowest priority, fallback for CI/CD — handled in substituteEnvVars)
|
|
18
|
+
*
|
|
19
|
+
* Higher-priority sources override lower-priority ones.
|
|
20
|
+
* Missing files are silently skipped.
|
|
21
|
+
*/
|
|
22
|
+
export declare function loadEnvVars(paths: HarnessPaths): Promise<Map<string, string>>;
|
|
23
|
+
/**
|
|
24
|
+
* Push ENV_VAR_UNRESOLVED warning diagnostics for each unresolved placeholder key.
|
|
25
|
+
*/
|
|
26
|
+
export declare function pushUnresolvedEnvDiagnostics(unresolvedKeys: string[], diagnostics: Diagnostic[], filePath: string, extra?: Partial<Diagnostic>): void;
|
|
27
|
+
/**
|
|
28
|
+
* Replace {{PLACEHOLDER}} patterns in text with env var values.
|
|
29
|
+
* Pattern: \{\{([a-zA-Z_][a-zA-Z0-9_]*)\}\}
|
|
30
|
+
* Returns the substituted text, set of used keys, and array of unresolved placeholder names.
|
|
31
|
+
*
|
|
32
|
+
* When a placeholder key is not found in `vars`, process.env is checked as a fallback.
|
|
33
|
+
*/
|
|
34
|
+
export declare function substituteEnvVars(text: string, vars: Map<string, string>): {
|
|
35
|
+
result: string;
|
|
36
|
+
usedKeys: Set<string>;
|
|
37
|
+
unresolvedKeys: string[];
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA4DjE;AAiDD;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAmBnF;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,cAAc,EAAE,MAAM,EAAE,EACxB,WAAW,EAAE,UAAU,EAAE,EACzB,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAC1B,IAAI,CAUN;AAID;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACxB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,CAerE"}
|
package/dist/env.js
ADDED
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { readTextIfExists } from "./utils.js";
|
|
2
|
+
/**
|
|
3
|
+
* Parse a dotenv-format string into key-value pairs.
|
|
4
|
+
* - Lines starting with # are comments
|
|
5
|
+
* - Empty lines are skipped
|
|
6
|
+
* - Format: KEY=value (value can be unquoted, double-quoted, or single-quoted)
|
|
7
|
+
* - Double-quoted values support \n, \t, \\, \" escapes
|
|
8
|
+
* - Single-quoted values are literal (no escape processing)
|
|
9
|
+
* - Unquoted values are trimmed and stop at inline # comments
|
|
10
|
+
*/
|
|
11
|
+
export function parseEnvFile(content) {
|
|
12
|
+
const vars = new Map();
|
|
13
|
+
const lines = content.split(/\r?\n/);
|
|
14
|
+
for (const line of lines) {
|
|
15
|
+
const trimmed = line.trim();
|
|
16
|
+
// Skip empty lines and comments
|
|
17
|
+
if (!trimmed || trimmed.startsWith("#")) {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
const equalsIndex = trimmed.indexOf("=");
|
|
21
|
+
if (equalsIndex === -1) {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
let key = trimmed.slice(0, equalsIndex).trim();
|
|
25
|
+
if (!key) {
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
// Strip optional `export` prefix for shell-compatible .env files
|
|
29
|
+
if (key.startsWith("export ")) {
|
|
30
|
+
key = key.slice(7).trim();
|
|
31
|
+
if (!key) {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const rawValue = trimmed.slice(equalsIndex + 1);
|
|
36
|
+
if (rawValue.startsWith('"')) {
|
|
37
|
+
// Double-quoted value: find matching closing quote
|
|
38
|
+
const closingIndex = findClosingDoubleQuote(rawValue, 1);
|
|
39
|
+
if (closingIndex !== -1) {
|
|
40
|
+
const inner = rawValue.slice(1, closingIndex);
|
|
41
|
+
vars.set(key, processDoubleQuotedEscapes(inner));
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
// No closing quote — treat as unquoted
|
|
45
|
+
vars.set(key, rawValue.trim());
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else if (rawValue.startsWith("'")) {
|
|
49
|
+
// Single-quoted value: find matching closing quote (literal, no escapes)
|
|
50
|
+
const closingIndex = rawValue.indexOf("'", 1);
|
|
51
|
+
if (closingIndex !== -1) {
|
|
52
|
+
vars.set(key, rawValue.slice(1, closingIndex));
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
// No closing quote — treat as unquoted
|
|
56
|
+
vars.set(key, rawValue.trim());
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
// Unquoted value: trim and stop at inline # comments
|
|
61
|
+
const commentIndex = rawValue.indexOf(" #");
|
|
62
|
+
const value = commentIndex !== -1 ? rawValue.slice(0, commentIndex) : rawValue;
|
|
63
|
+
vars.set(key, value.trim());
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return vars;
|
|
67
|
+
}
|
|
68
|
+
function findClosingDoubleQuote(text, startIndex) {
|
|
69
|
+
let i = startIndex;
|
|
70
|
+
while (i < text.length) {
|
|
71
|
+
if (text[i] === "\\") {
|
|
72
|
+
i += 2; // skip escaped char
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
if (text[i] === '"') {
|
|
76
|
+
return i;
|
|
77
|
+
}
|
|
78
|
+
i++;
|
|
79
|
+
}
|
|
80
|
+
return -1;
|
|
81
|
+
}
|
|
82
|
+
function processDoubleQuotedEscapes(value) {
|
|
83
|
+
let result = "";
|
|
84
|
+
let i = 0;
|
|
85
|
+
while (i < value.length) {
|
|
86
|
+
if (value[i] === "\\" && i + 1 < value.length) {
|
|
87
|
+
const next = value[i + 1];
|
|
88
|
+
switch (next) {
|
|
89
|
+
case "n":
|
|
90
|
+
result += "\n";
|
|
91
|
+
break;
|
|
92
|
+
case "t":
|
|
93
|
+
result += "\t";
|
|
94
|
+
break;
|
|
95
|
+
case "\\":
|
|
96
|
+
result += "\\";
|
|
97
|
+
break;
|
|
98
|
+
case '"':
|
|
99
|
+
result += '"';
|
|
100
|
+
break;
|
|
101
|
+
default:
|
|
102
|
+
result += `\\${next}`;
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
i += 2;
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
result += value[i];
|
|
109
|
+
i++;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return result;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Load env vars from multiple sources with precedence:
|
|
116
|
+
* 1. .harness/.env (highest priority)
|
|
117
|
+
* 2. .env.harness (at project root)
|
|
118
|
+
* 3. process.env (lowest priority, fallback for CI/CD — handled in substituteEnvVars)
|
|
119
|
+
*
|
|
120
|
+
* Higher-priority sources override lower-priority ones.
|
|
121
|
+
* Missing files are silently skipped.
|
|
122
|
+
*/
|
|
123
|
+
export async function loadEnvVars(paths) {
|
|
124
|
+
const merged = new Map();
|
|
125
|
+
// Load sources in order from lowest to highest priority
|
|
126
|
+
const sources = [paths.rootEnvFile, paths.envFile];
|
|
127
|
+
for (const filePath of sources) {
|
|
128
|
+
const text = await readTextIfExists(filePath);
|
|
129
|
+
if (text === null) {
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
const parsed = parseEnvFile(text);
|
|
133
|
+
for (const [key, value] of parsed) {
|
|
134
|
+
merged.set(key, value);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return merged;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Push ENV_VAR_UNRESOLVED warning diagnostics for each unresolved placeholder key.
|
|
141
|
+
*/
|
|
142
|
+
export function pushUnresolvedEnvDiagnostics(unresolvedKeys, diagnostics, filePath, extra) {
|
|
143
|
+
for (const key of unresolvedKeys) {
|
|
144
|
+
diagnostics.push({
|
|
145
|
+
code: "ENV_VAR_UNRESOLVED",
|
|
146
|
+
severity: "warning",
|
|
147
|
+
message: `Unresolved env placeholder '{{${key}}}' in '${filePath}'`,
|
|
148
|
+
path: filePath,
|
|
149
|
+
...extra,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
const PLACEHOLDER_RE = /\{\{([a-zA-Z_][a-zA-Z0-9_]*)\}\}/g;
|
|
154
|
+
/**
|
|
155
|
+
* Replace {{PLACEHOLDER}} patterns in text with env var values.
|
|
156
|
+
* Pattern: \{\{([a-zA-Z_][a-zA-Z0-9_]*)\}\}
|
|
157
|
+
* Returns the substituted text, set of used keys, and array of unresolved placeholder names.
|
|
158
|
+
*
|
|
159
|
+
* When a placeholder key is not found in `vars`, process.env is checked as a fallback.
|
|
160
|
+
*/
|
|
161
|
+
export function substituteEnvVars(text, vars) {
|
|
162
|
+
const usedKeys = new Set();
|
|
163
|
+
const unresolvedSet = new Set();
|
|
164
|
+
const result = text.replace(PLACEHOLDER_RE, (match, key) => {
|
|
165
|
+
const value = vars.get(key) ?? process.env[key];
|
|
166
|
+
if (value !== undefined) {
|
|
167
|
+
usedKeys.add(key);
|
|
168
|
+
return value;
|
|
169
|
+
}
|
|
170
|
+
unresolvedSet.add(key);
|
|
171
|
+
return match;
|
|
172
|
+
});
|
|
173
|
+
return { result, usedKeys, unresolvedKeys: [...unresolvedSet] };
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=env.js.map
|
package/dist/env.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,oBAAoB,EACpB,iBAAiB,EAEjB,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,qBAAqB,kaAyBxB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAEb,oBAAoB,EACpB,iBAAiB,EAEjB,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,qBAAqB,kaAyBxB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAKxE,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;CACrE;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf;IAAE,SAAS,CAAC,EAAE,2BAA2B,CAAC;IAAC,WAAW,EAAE,UAAU,EAAE,CAAA;CAAE,CA4BxE;AAiUD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAEzE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAM3E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,2BAA2B,EAAE,EAAE,EAAE,MAAM,GAAG,aAAa,CAMvF"}
|
package/dist/hooks.js
CHANGED
|
@@ -25,6 +25,7 @@ export const CANONICAL_HOOK_EVENTS = [
|
|
|
25
25
|
"turn_complete",
|
|
26
26
|
];
|
|
27
27
|
const HOOK_EVENT_SET = new Set(CANONICAL_HOOK_EVENTS);
|
|
28
|
+
const ENV_PLACEHOLDER_TOKEN_RE = /^\{\{[a-zA-Z_][a-zA-Z0-9_]*\}\}$/u;
|
|
28
29
|
export function parseCanonicalHookDocument(input, sourcePath, entityId) {
|
|
29
30
|
const diagnostics = [];
|
|
30
31
|
if (!input || typeof input !== "object" || Array.isArray(input)) {
|
|
@@ -154,6 +155,8 @@ function parseCommandHandler(input, eventName, sourcePath, entityId, index, diag
|
|
|
154
155
|
const cwd = asOptionalString(input.cwd);
|
|
155
156
|
const timeoutSec = asOptionalPositiveNumber(input.timeoutSec);
|
|
156
157
|
const timeout = asOptionalPositiveNumber(input.timeout);
|
|
158
|
+
const timeoutSecIsPlaceholder = isEnvPlaceholderToken(input.timeoutSec);
|
|
159
|
+
const timeoutIsPlaceholder = isEnvPlaceholderToken(input.timeout);
|
|
157
160
|
const env = asOptionalStringMap(input.env);
|
|
158
161
|
if (!command && !windows && !linux && !osx && !bash && !powershell) {
|
|
159
162
|
diagnostics.push({
|
|
@@ -166,7 +169,7 @@ function parseCommandHandler(input, eventName, sourcePath, entityId, index, diag
|
|
|
166
169
|
});
|
|
167
170
|
return undefined;
|
|
168
171
|
}
|
|
169
|
-
if (typeof input.timeoutSec !== "undefined" && typeof timeoutSec === "undefined") {
|
|
172
|
+
if (typeof input.timeoutSec !== "undefined" && typeof timeoutSec === "undefined" && !timeoutSecIsPlaceholder) {
|
|
170
173
|
diagnostics.push({
|
|
171
174
|
code: "HOOK_TIMEOUT_INVALID",
|
|
172
175
|
severity: "error",
|
|
@@ -176,7 +179,7 @@ function parseCommandHandler(input, eventName, sourcePath, entityId, index, diag
|
|
|
176
179
|
});
|
|
177
180
|
return undefined;
|
|
178
181
|
}
|
|
179
|
-
if (typeof input.timeout !== "undefined" && typeof timeout === "undefined") {
|
|
182
|
+
if (typeof input.timeout !== "undefined" && typeof timeout === "undefined" && !timeoutIsPlaceholder) {
|
|
180
183
|
diagnostics.push({
|
|
181
184
|
code: "HOOK_TIMEOUT_INVALID",
|
|
182
185
|
severity: "error",
|
|
@@ -296,6 +299,9 @@ function asOptionalStringMap(input) {
|
|
|
296
299
|
}
|
|
297
300
|
return output;
|
|
298
301
|
}
|
|
302
|
+
function isEnvPlaceholderToken(input) {
|
|
303
|
+
return typeof input === "string" && ENV_PLACEHOLDER_TOKEN_RE.test(input.trim());
|
|
304
|
+
}
|
|
299
305
|
export function canonicalHookHasErrors(diagnostics) {
|
|
300
306
|
return diagnostics.some((diagnostic) => diagnostic.severity === "error");
|
|
301
307
|
}
|
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,eAAe;IACf,aAAa;IACb,eAAe;IACf,cAAc;IACd,oBAAoB;IACpB,eAAe;IACf,mBAAmB;IACnB,cAAc;IACd,gBAAgB;IAChB,eAAe;IACf,MAAM;IACN,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,qBAAqB;IACrB,eAAe;IACf,iBAAiB;IACjB,iBAAiB;IACjB,aAAa;IACb,cAAc;IACd,aAAa;IACb,oBAAoB;IACpB,OAAO;IACP,eAAe;CACP,CAAC;AAIX,MAAM,cAAc,GAAG,IAAI,GAAG,CAAS,qBAAqB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { HarnessEngine } from "./engine.js";
|
|
|
4
4
|
import { validateRegistryRepo } from "./registry-validator.js";
|
|
5
5
|
import type { ApplyOptions, ApplyResult, DoctorResult, MigrationResult, PlanOptions, PlanResult } from "./types.js";
|
|
6
6
|
export type { CliEnvelope, CliExecutionContext, CliResolvedContext, CommandId, CommandInput, CommandOutput, } from "./cli/contracts.js";
|
|
7
|
+
export { loadEnvVars, parseEnvFile, substituteEnvVars } from "./env.js";
|
|
7
8
|
export type { AgentsManifest, ApplyResult, CanonicalHook, CanonicalMcpConfig, CanonicalPrompt, CanonicalSkill, CanonicalSubagent, Diagnostic, DoctorResult, EntityRef, EntityType, ManagedIndex, ManifestLock, MigrationAction, MigrationResult, Operation, PlanResult, ProviderAdapter, ProviderId, ProviderOverride, RegistryDefinition, RegistryId, RegistryListEntry, RegistryManifest, RegistryPullResult, RegistryValidationOptions, RegistryValidationResult, RenderedArtifact, ValidationResult, VersionDiagnostic, } from "./types.js";
|
|
8
9
|
export { HarnessEngine, loadConfig, runCliArgv, runCliCommand, validateConfig, validateLock, validateRegistryRepo };
|
|
9
10
|
export declare function plan(opts?: PlanOptions): Promise<PlanResult>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEpH,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,EACT,YAAY,EACZ,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,cAAc,EACd,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,SAAS,EACT,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,eAAe,EACf,SAAS,EACT,UAAU,EACV,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAC;AAEpH,wBAAsB,IAAI,CAAC,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAEtE;AAED,wBAAsB,KAAK,CAAC,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAEzE;AAED,wBAAsB,MAAM,CAAC,IAAI,GAAE,WAAW,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAE/F;AAED,wBAAsB,OAAO,CAC3B,IAAI,GAAE,WAAW,GAAG;IAAE,EAAE,CAAC,EAAE,QAAQ,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAC3E,OAAO,CAAC,eAAe,CAAC,CAM1B"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEpH,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,EACT,YAAY,EACZ,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACxE,YAAY,EACV,cAAc,EACd,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,SAAS,EACT,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,eAAe,EACf,SAAS,EACT,UAAU,EACV,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAC;AAEpH,wBAAsB,IAAI,CAAC,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAEtE;AAED,wBAAsB,KAAK,CAAC,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAEzE;AAED,wBAAsB,MAAM,CAAC,IAAI,GAAE,WAAW,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAE/F;AAED,wBAAsB,OAAO,CAC3B,IAAI,GAAE,WAAW,GAAG;IAAE,EAAE,CAAC,EAAE,QAAQ,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAC3E,OAAO,CAAC,eAAe,CAAC,CAM1B"}
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,7 @@ import { runCliArgv, runCliCommand } from "./cli/main.js";
|
|
|
2
2
|
import { loadConfig, validateConfig, validateLock } from "./engine/utils.js";
|
|
3
3
|
import { HarnessEngine } from "./engine.js";
|
|
4
4
|
import { validateRegistryRepo } from "./registry-validator.js";
|
|
5
|
+
export { loadEnvVars, parseEnvFile, substituteEnvVars } from "./env.js";
|
|
5
6
|
export { HarnessEngine, loadConfig, runCliArgv, runCliCommand, validateConfig, validateLock, validateRegistryRepo };
|
|
6
7
|
export async function plan(opts = {}) {
|
|
7
8
|
return new HarnessEngine(opts.cwd).plan();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAW/D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAiCxE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAC;AAEpH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAoB,EAAE;IAC/C,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,OAAqB,EAAE;IACjD,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAyC,EAAE;IACtE,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,OAA0E,EAAE;IAE5E,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;QACzC,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC,CAAC;AACL,CAAC"}
|
package/dist/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAKf,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAKf,MAAM,oCAAoC,CAAC;AAM5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAkB/C,OAAO,KAAK,EACV,UAAU,EAOV,UAAU,EACX,MAAM,YAAY,CAAC;AAGpB,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CA+F3G;AAmBD,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,cAAc,GAAG,UAAU,EAAE,CAuKhF"}
|