@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,314 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { parseManagedIndex, parseManifest, parseManifestLock, parseProviderOverride, providerIdSchema, VersionError, } from "@madebywild/agent-harness-manifest";
4
+ import { copyToBackup, exists, normalizeRelativePath, readTextIfExists, stableStringify, toPosixRelative, writeFileAtomic, } from "./utils.js";
5
+ export async function loadManifest(paths) {
6
+ const contents = await readTextIfExists(paths.manifestFile);
7
+ if (contents === null) {
8
+ return {
9
+ manifest: null,
10
+ diagnostics: [
11
+ {
12
+ code: "MANIFEST_NOT_FOUND",
13
+ severity: "error",
14
+ message: "Missing manifest file at .harness/manifest.json",
15
+ path: ".harness/manifest.json",
16
+ hint: "Run 'harness init' first.",
17
+ },
18
+ ],
19
+ };
20
+ }
21
+ try {
22
+ const parsed = JSON.parse(contents);
23
+ const manifest = parseManifest(parsed);
24
+ return { manifest, diagnostics: [], versionStatus: "current" };
25
+ }
26
+ catch (error) {
27
+ if (error instanceof VersionError) {
28
+ const diagnostic = versionErrorDiagnostic("manifest", ".harness/manifest.json", error);
29
+ return {
30
+ manifest: null,
31
+ diagnostics: [diagnostic],
32
+ versionStatus: statusForVersionReason(error.reason),
33
+ };
34
+ }
35
+ return {
36
+ manifest: null,
37
+ diagnostics: [
38
+ {
39
+ code: "MANIFEST_INVALID",
40
+ severity: "error",
41
+ message: error instanceof Error ? error.message : "Manifest is invalid JSON or failed schema validation",
42
+ path: ".harness/manifest.json",
43
+ },
44
+ ],
45
+ };
46
+ }
47
+ }
48
+ export async function writeManifest(paths, manifest) {
49
+ await writeFileAtomic(paths.manifestFile, stableStringify(manifest));
50
+ }
51
+ export async function loadLock(paths) {
52
+ const contents = await readTextIfExists(paths.lockFile);
53
+ if (contents === null) {
54
+ return { lock: null, diagnostics: [], raw: null };
55
+ }
56
+ try {
57
+ const parsed = JSON.parse(contents);
58
+ const lock = parseManifestLock(parsed);
59
+ return { lock, diagnostics: [], raw: contents, versionStatus: "current" };
60
+ }
61
+ catch (error) {
62
+ if (error instanceof VersionError) {
63
+ const diagnostic = versionErrorDiagnostic("lock", ".harness/manifest.lock.json", error);
64
+ return {
65
+ lock: null,
66
+ raw: contents,
67
+ diagnostics: [diagnostic],
68
+ versionStatus: statusForVersionReason(error.reason),
69
+ };
70
+ }
71
+ return {
72
+ lock: null,
73
+ raw: contents,
74
+ diagnostics: [
75
+ {
76
+ code: "LOCK_INVALID",
77
+ severity: "error",
78
+ message: error instanceof Error ? error.message : "manifest.lock.json failed schema validation",
79
+ path: ".harness/manifest.lock.json",
80
+ },
81
+ ],
82
+ };
83
+ }
84
+ }
85
+ export async function writeLock(paths, lock) {
86
+ const serialized = stableStringify(lock);
87
+ await writeFileAtomic(paths.lockFile, serialized);
88
+ return serialized;
89
+ }
90
+ export function emptyManagedIndex() {
91
+ return {
92
+ version: 1,
93
+ managedSourcePaths: [],
94
+ managedOutputPaths: [],
95
+ };
96
+ }
97
+ export async function loadManagedIndex(paths) {
98
+ const contents = await readTextIfExists(paths.managedIndexFile);
99
+ if (contents === null) {
100
+ return { managedIndex: emptyManagedIndex(), diagnostics: [] };
101
+ }
102
+ try {
103
+ const parsed = JSON.parse(contents);
104
+ return {
105
+ managedIndex: parseManagedIndex(parsed),
106
+ diagnostics: [],
107
+ versionStatus: "current",
108
+ };
109
+ }
110
+ catch (error) {
111
+ if (error instanceof VersionError) {
112
+ return {
113
+ managedIndex: emptyManagedIndex(),
114
+ diagnostics: [versionErrorDiagnostic("managed-index", ".harness/managed-index.json", error)],
115
+ versionStatus: statusForVersionReason(error.reason),
116
+ };
117
+ }
118
+ return {
119
+ managedIndex: emptyManagedIndex(),
120
+ diagnostics: [
121
+ {
122
+ code: "MANAGED_INDEX_INVALID",
123
+ severity: "error",
124
+ message: error instanceof Error ? error.message : "managed-index failed schema validation",
125
+ path: ".harness/managed-index.json",
126
+ },
127
+ ],
128
+ };
129
+ }
130
+ }
131
+ export async function writeManagedIndex(paths, managedIndex) {
132
+ await writeFileAtomic(paths.managedIndexFile, stableStringify(managedIndex));
133
+ }
134
+ export async function readProviderOverrideFile(rootDir, provider, overridePath) {
135
+ if (!overridePath) {
136
+ return {
137
+ override: undefined,
138
+ sha256: undefined,
139
+ diagnostics: [],
140
+ versionStatus: "current",
141
+ };
142
+ }
143
+ const normalized = normalizeRelativePath(overridePath);
144
+ const absolute = path.join(rootDir, normalized);
145
+ const text = await readTextIfExists(absolute);
146
+ if (text === null) {
147
+ return {
148
+ override: undefined,
149
+ sha256: undefined,
150
+ diagnostics: [],
151
+ versionStatus: "current",
152
+ };
153
+ }
154
+ try {
155
+ const YAML = await import("yaml");
156
+ const parsed = YAML.parse(text);
157
+ const override = parseProviderOverride(parsed);
158
+ const { sha256 } = await import("./utils.js");
159
+ return {
160
+ override,
161
+ sha256: sha256(text),
162
+ diagnostics: [],
163
+ versionStatus: "current",
164
+ };
165
+ }
166
+ catch (error) {
167
+ if (error instanceof VersionError) {
168
+ return {
169
+ override: undefined,
170
+ sha256: undefined,
171
+ diagnostics: [versionErrorDiagnostic("provider-override", normalized, error, provider)],
172
+ versionStatus: statusForVersionReason(error.reason),
173
+ };
174
+ }
175
+ return {
176
+ override: undefined,
177
+ sha256: undefined,
178
+ diagnostics: [
179
+ {
180
+ code: "OVERRIDE_INVALID",
181
+ severity: "error",
182
+ message: `Invalid override YAML for provider '${provider}': ${error instanceof Error ? error.message : "unknown error"}`,
183
+ path: normalized,
184
+ provider,
185
+ },
186
+ ],
187
+ };
188
+ }
189
+ }
190
+ export async function listFilesRecursively(baseDir) {
191
+ if (!(await exists(baseDir))) {
192
+ return [];
193
+ }
194
+ const output = [];
195
+ const queue = [baseDir];
196
+ while (queue.length > 0) {
197
+ const current = queue.pop();
198
+ const entries = await fs.readdir(current, { withFileTypes: true });
199
+ for (const entry of entries) {
200
+ const nextPath = path.join(current, entry.name);
201
+ if (entry.isDirectory()) {
202
+ queue.push(nextPath);
203
+ }
204
+ else if (entry.isFile()) {
205
+ output.push(nextPath);
206
+ }
207
+ }
208
+ }
209
+ return output.sort((left, right) => left.localeCompare(right));
210
+ }
211
+ export async function collectSourceCandidates(paths) {
212
+ const files = await listFilesRecursively(paths.srcDir);
213
+ const candidates = [];
214
+ for (const file of files) {
215
+ const relative = toPosixRelative(file, paths.root);
216
+ if (/^\.harness\/src\/prompts\/[^/]+\.md$/u.test(relative)) {
217
+ candidates.push(relative);
218
+ continue;
219
+ }
220
+ if (/^\.harness\/src\/skills\/[^/]+\/SKILL\.md$/u.test(relative)) {
221
+ candidates.push(relative);
222
+ continue;
223
+ }
224
+ if (/^\.harness\/src\/mcp\/[^/]+\.json$/u.test(relative)) {
225
+ candidates.push(relative);
226
+ continue;
227
+ }
228
+ if (/^\.harness\/src\/subagents\/[^/]+\.md$/u.test(relative)) {
229
+ candidates.push(relative);
230
+ continue;
231
+ }
232
+ if (/^\.harness\/src\/prompts\/[^/]+\.overrides\.[^./]+\.ya?ml$/u.test(relative)) {
233
+ candidates.push(relative);
234
+ continue;
235
+ }
236
+ if (/^\.harness\/src\/skills\/[^/]+\/OVERRIDES\.[^./]+\.ya?ml$/u.test(relative)) {
237
+ candidates.push(relative);
238
+ continue;
239
+ }
240
+ if (/^\.harness\/src\/mcp\/[^/]+\.overrides\.[^./]+\.ya?ml$/u.test(relative)) {
241
+ candidates.push(relative);
242
+ continue;
243
+ }
244
+ if (/^\.harness\/src\/subagents\/[^/]+\.overrides\.[^./]+\.ya?ml$/u.test(relative)) {
245
+ candidates.push(relative);
246
+ }
247
+ }
248
+ return candidates.sort((left, right) => left.localeCompare(right));
249
+ }
250
+ export function collectManagedSourcePaths(manifest) {
251
+ const paths = new Set();
252
+ for (const entity of manifest.entities) {
253
+ paths.add(normalizeRelativePath(entity.sourcePath));
254
+ if (entity.overrides) {
255
+ for (const provider of providerIdSchema.options) {
256
+ const overridePath = entity.overrides[provider];
257
+ if (overridePath) {
258
+ paths.add(normalizeRelativePath(overridePath));
259
+ }
260
+ }
261
+ }
262
+ }
263
+ return [...paths].sort((left, right) => left.localeCompare(right));
264
+ }
265
+ export async function removeIfExists(filePath) {
266
+ try {
267
+ await fs.rm(filePath, { recursive: true, force: true });
268
+ }
269
+ catch {
270
+ // ignore best-effort deletes for stale generated outputs
271
+ }
272
+ }
273
+ export async function copyWorkspaceFileToBackup(paths, relativePath, backupRoot) {
274
+ return copyToBackup(paths.root, relativePath, backupRoot);
275
+ }
276
+ function statusForVersionReason(reason) {
277
+ switch (reason) {
278
+ case "outdated_version":
279
+ return "outdated";
280
+ case "unsupported_version":
281
+ return "unsupported";
282
+ case "missing_version":
283
+ return "missing";
284
+ case "invalid_version_type":
285
+ return "invalid";
286
+ }
287
+ }
288
+ function versionErrorDiagnostic(kind, filePath, error, provider) {
289
+ const prefix = kind === "provider-override" ? "OVERRIDE" : kind.toUpperCase().replaceAll("-", "_");
290
+ const codeSuffix = versionCodeSuffix(error.reason);
291
+ return {
292
+ code: `${prefix}_VERSION_${codeSuffix}`,
293
+ severity: "error",
294
+ message: error.message,
295
+ path: filePath,
296
+ provider,
297
+ hint: error.reason === "unsupported_version"
298
+ ? "Install a newer harness CLI that supports this schema version."
299
+ : "Run 'harness doctor' then 'harness migrate'.",
300
+ };
301
+ }
302
+ function versionCodeSuffix(reason) {
303
+ switch (reason) {
304
+ case "unsupported_version":
305
+ return "NEWER_THAN_CLI";
306
+ case "outdated_version":
307
+ return "OUTDATED";
308
+ case "missing_version":
309
+ return "MISSING";
310
+ case "invalid_version_type":
311
+ return "INVALID";
312
+ }
313
+ }
314
+ //# sourceMappingURL=repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,190 @@
1
+ import type { AgentsManifest, DocumentKind, EntityRef, EntityType, ManagedIndex, ManifestLock, ProviderId, ProviderOverride, RegistryDefinition, RegistryId, RegistryManifest } from "@madebywild/agent-harness-manifest";
2
+ export type { AgentsManifest, EntityRef, EntityType, ManagedIndex, ManifestLock, ProviderId, ProviderOverride, RegistryDefinition, RegistryId, RegistryManifest, };
3
+ export declare const CLI_ENTITY_TYPES: readonly ["prompt", "skill", "mcp", "subagent"];
4
+ export type CliEntityType = (typeof CLI_ENTITY_TYPES)[number];
5
+ export declare const CLI_ENTITY_TO_MANIFEST_ENTITY: Record<CliEntityType, EntityType>;
6
+ export declare function isCliEntityType(value: string): value is CliEntityType;
7
+ export interface CanonicalPrompt {
8
+ id: string;
9
+ body: string;
10
+ frontmatter: Record<string, unknown>;
11
+ }
12
+ export interface CanonicalSkill {
13
+ id: string;
14
+ files: Array<{
15
+ path: string;
16
+ sha256: string;
17
+ }>;
18
+ }
19
+ export interface CanonicalMcpConfig {
20
+ id: string;
21
+ json: Record<string, unknown>;
22
+ }
23
+ export interface CanonicalSubagent {
24
+ id: string;
25
+ name: string;
26
+ description: string;
27
+ body: string;
28
+ metadata: Record<string, unknown>;
29
+ }
30
+ export interface RenderedArtifact {
31
+ path: string;
32
+ content: string;
33
+ ownerEntityId: string;
34
+ provider: ProviderId;
35
+ format: "markdown" | "json" | "toml";
36
+ }
37
+ export interface ProviderStateInput {
38
+ mcps: CanonicalMcpConfig[];
39
+ mcpOverrideByEntity?: Map<string, ProviderOverride | undefined>;
40
+ subagents: CanonicalSubagent[];
41
+ subagentOverrideByEntity?: Map<string, ProviderOverride | undefined>;
42
+ }
43
+ export interface ProviderAdapter {
44
+ id: ProviderId;
45
+ renderPrompt?(input: CanonicalPrompt, override?: ProviderOverride): Promise<RenderedArtifact[]>;
46
+ renderSkill?(input: CanonicalSkill, override?: ProviderOverride): Promise<RenderedArtifact[]>;
47
+ renderMcp?(input: CanonicalMcpConfig[], overrideByEntity?: Map<string, ProviderOverride | undefined>): Promise<RenderedArtifact[]>;
48
+ renderSubagent?(input: CanonicalSubagent, override?: ProviderOverride): Promise<RenderedArtifact[]>;
49
+ renderProviderState?(input: ProviderStateInput): Promise<RenderedArtifact[]>;
50
+ }
51
+ export type DiagnosticSeverity = "info" | "warning" | "error";
52
+ export interface Diagnostic {
53
+ code: string;
54
+ severity: DiagnosticSeverity;
55
+ message: string;
56
+ hint?: string;
57
+ path?: string;
58
+ entityId?: string;
59
+ provider?: ProviderId;
60
+ }
61
+ export type VersionStatus = "current" | "outdated" | "unsupported" | "invalid" | "missing";
62
+ export interface VersionDiagnostic extends Diagnostic {
63
+ kind: DocumentKind;
64
+ status: VersionStatus;
65
+ version?: number;
66
+ latestVersion: number;
67
+ canMigrate: boolean;
68
+ }
69
+ export interface DoctorResult {
70
+ healthy: boolean;
71
+ migrationNeeded: boolean;
72
+ migrationPossible: boolean;
73
+ files: VersionDiagnostic[];
74
+ diagnostics: Diagnostic[];
75
+ }
76
+ export interface MigrationAction {
77
+ kind: DocumentKind | "backup";
78
+ path: string;
79
+ action: "noop" | "migrate" | "rewrite" | "backup" | "skip";
80
+ details: string;
81
+ }
82
+ export interface MigrationResult {
83
+ success: boolean;
84
+ dryRun: boolean;
85
+ backupRoot?: string;
86
+ actions: MigrationAction[];
87
+ diagnostics: Diagnostic[];
88
+ }
89
+ export type OperationType = "create" | "update" | "delete" | "noop";
90
+ export interface Operation {
91
+ type: OperationType;
92
+ path: string;
93
+ provider?: ProviderId;
94
+ reason: string;
95
+ }
96
+ export interface PlanOptions {
97
+ cwd?: string;
98
+ }
99
+ export interface ApplyOptions extends PlanOptions {
100
+ json?: boolean;
101
+ }
102
+ export interface ValidationResult {
103
+ valid: boolean;
104
+ diagnostics: Diagnostic[];
105
+ }
106
+ export interface PlanResult {
107
+ operations: Operation[];
108
+ diagnostics: Diagnostic[];
109
+ nextLock: ManifestLock;
110
+ }
111
+ export interface ApplyResult extends PlanResult {
112
+ writtenArtifacts: string[];
113
+ prunedArtifacts: string[];
114
+ }
115
+ export interface RemoveResult {
116
+ entityType: CliEntityType;
117
+ id: string;
118
+ }
119
+ export type LockEntityRecord = ManifestLock["entities"][number];
120
+ export type RegistryRevision = NonNullable<LockEntityRecord["registryRevision"]>;
121
+ export interface RegistryListEntry {
122
+ id: RegistryId;
123
+ definition: RegistryDefinition;
124
+ isDefault: boolean;
125
+ }
126
+ export interface RegistryPullResult {
127
+ updatedEntities: Array<{
128
+ type: CliEntityType;
129
+ id: string;
130
+ }>;
131
+ }
132
+ export interface RegistryValidationOptions {
133
+ repoPath?: string;
134
+ rootPath?: string;
135
+ }
136
+ export interface RegistryValidationResult {
137
+ valid: boolean;
138
+ diagnostics: Diagnostic[];
139
+ }
140
+ export interface LoadedPrompt {
141
+ entity: EntityRef;
142
+ canonical: CanonicalPrompt;
143
+ sourceSha256: string;
144
+ overrideByProvider: Map<ProviderId, ProviderOverride | undefined>;
145
+ overrideShaByProvider: Partial<Record<ProviderId, string>>;
146
+ }
147
+ export interface LoadedSkillFile {
148
+ path: string;
149
+ sha256: string;
150
+ content: string;
151
+ }
152
+ export interface LoadedSkill {
153
+ entity: EntityRef;
154
+ canonical: CanonicalSkill;
155
+ filesWithContent: LoadedSkillFile[];
156
+ sourceSha256: string;
157
+ overrideByProvider: Map<ProviderId, ProviderOverride | undefined>;
158
+ overrideShaByProvider: Partial<Record<ProviderId, string>>;
159
+ }
160
+ export interface LoadedMcp {
161
+ entity: EntityRef;
162
+ canonical: CanonicalMcpConfig;
163
+ sourceSha256: string;
164
+ overrideByProvider: Map<ProviderId, ProviderOverride | undefined>;
165
+ overrideShaByProvider: Partial<Record<ProviderId, string>>;
166
+ }
167
+ export interface LoadedSubagent {
168
+ entity: EntityRef;
169
+ canonical: CanonicalSubagent;
170
+ sourceSha256: string;
171
+ overrideByProvider: Map<ProviderId, ProviderOverride | undefined>;
172
+ overrideShaByProvider: Partial<Record<ProviderId, string>>;
173
+ }
174
+ export interface InternalPlanResult extends PlanResult {
175
+ artifactsByPath: Map<string, {
176
+ content: string;
177
+ provider: ProviderId;
178
+ ownerEntityIds: string[];
179
+ }>;
180
+ nextManagedIndex: ManagedIndex;
181
+ }
182
+ export interface LoadResult {
183
+ manifest: AgentsManifest;
184
+ diagnostics: Diagnostic[];
185
+ prompt?: LoadedPrompt;
186
+ skills: LoadedSkill[];
187
+ mcps: LoadedMcp[];
188
+ subagents: LoadedSubagent[];
189
+ }
190
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,11 @@
1
+ export const CLI_ENTITY_TYPES = ["prompt", "skill", "mcp", "subagent"];
2
+ export const CLI_ENTITY_TO_MANIFEST_ENTITY = {
3
+ prompt: "prompt",
4
+ skill: "skill",
5
+ mcp: "mcp_config",
6
+ subagent: "subagent",
7
+ };
8
+ export function isCliEntityType(value) {
9
+ return CLI_ENTITY_TYPES.includes(value);
10
+ }
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA2BA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAU,CAAC;AAGhF,MAAM,CAAC,MAAM,6BAA6B,GAAsC;IAC9E,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,YAAY;IACjB,QAAQ,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAQ,gBAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC"}
@@ -0,0 +1,16 @@
1
+ export declare function sha256(value: string): string;
2
+ export declare function normalizeRelativePath(input: string): string;
3
+ export declare function toPosixRelative(fromAbs: string, rootAbs: string): string;
4
+ export declare function stableStringify(value: unknown): string;
5
+ export declare function readTextIfExists(filePath: string): Promise<string | null>;
6
+ export declare function exists(filePath: string): Promise<boolean>;
7
+ export declare function ensureParentDir(filePath: string): Promise<void>;
8
+ export declare function writeFileAtomic(absPath: string, content: string): Promise<void>;
9
+ export declare function copyToBackup(rootAbs: string, relPath: string, backupRootAbs: string): Promise<boolean>;
10
+ export declare function isNotFoundError(error: unknown): boolean;
11
+ export declare function deepEqual(left: unknown, right: unknown): boolean;
12
+ export declare function uniqSorted(values: Iterable<string>): string[];
13
+ export declare function nowIso(): string;
14
+ export declare function stripTrailingNewlines(value: string): string;
15
+ export declare function withSingleTrailingNewline(value: string): string;
16
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAIA,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAqB3D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAGxE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEtD;AAkBD,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAS/E;AAED,wBAAsB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAU/D;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErE;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBrF;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAY5G;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAIvD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAEhE;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAE7D;AAED,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/D"}