@nichollasf/ai-kit 1.0.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 (39) hide show
  1. package/.agents/archetypes/implementer-senior.md +46 -0
  2. package/.agents/archetypes/implementer.md +46 -0
  3. package/.agents/archetypes/orchestrator.md +54 -0
  4. package/.agents/archetypes/planner.md +54 -0
  5. package/.agents/archetypes/quick.md +46 -0
  6. package/.agents/archetypes/researcher.md +46 -0
  7. package/.agents/archetypes/reviewer.md +46 -0
  8. package/.agents/catalog/catalog-v2.schema.json +1641 -0
  9. package/.agents/catalog/personal.json +370 -0
  10. package/.agents/skills/ai-kit-model-calibration/SKILL.md +57 -0
  11. package/.agents/skills/ai-kit-model-calibration/assets/scorecard.md +61 -0
  12. package/.agents/skills/ai-kit-model-calibration/references/rubric.md +41 -0
  13. package/.agents/skills/ai-kit-task-routing/SKILL.md +44 -0
  14. package/.agents/skills/ai-kit-task-routing/references/handoff.md +29 -0
  15. package/LICENSE +21 -0
  16. package/README.md +151 -0
  17. package/dist/catalog.d.ts +99 -0
  18. package/dist/catalog.js +590 -0
  19. package/dist/catalog.js.map +1 -0
  20. package/dist/cli.d.ts +10 -0
  21. package/dist/cli.js +201 -0
  22. package/dist/cli.js.map +1 -0
  23. package/dist/diagnostics.d.ts +2 -0
  24. package/dist/diagnostics.js +301 -0
  25. package/dist/diagnostics.js.map +1 -0
  26. package/dist/installer.d.ts +18 -0
  27. package/dist/installer.js +303 -0
  28. package/dist/installer.js.map +1 -0
  29. package/dist/legacy.d.ts +7 -0
  30. package/dist/legacy.js +69 -0
  31. package/dist/legacy.js.map +1 -0
  32. package/dist/manifest.d.ts +50 -0
  33. package/dist/manifest.js +223 -0
  34. package/dist/manifest.js.map +1 -0
  35. package/dist/transaction.d.ts +10 -0
  36. package/dist/transaction.js +187 -0
  37. package/dist/transaction.js.map +1 -0
  38. package/docs/architecture.md +61 -0
  39. package/package.json +62 -0
@@ -0,0 +1,303 @@
1
+ import { lstat, readFile, realpath, stat } from "node:fs/promises";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { HARNESS_NAMES, ROLE_NAMES, loadCatalog, materialize, normalizeSelection, validateCatalog, BASE_CATALOG_PATH, } from "./catalog.js";
5
+ import { MANIFEST_PATH, PACKAGE_ROOT, createManifest, manifestFile, parseManifest, readPackageVersion, resolveOwnedPath, serializeManifest, sha256, } from "./manifest.js";
6
+ import { applyTransaction, assertAncestors, exists, verifyState, } from "./transaction.js";
7
+ import { diagnose } from "./diagnostics.js";
8
+ export class AiKitError extends Error {
9
+ exitCode;
10
+ constructor(message, exitCode = 3) {
11
+ super(message);
12
+ this.exitCode = exitCode;
13
+ this.name = "AiKitError";
14
+ }
15
+ }
16
+ async function validateTarget(input) {
17
+ const target = path.resolve(input);
18
+ const info = await lstat(target);
19
+ if (info.isSymbolicLink() || !info.isDirectory())
20
+ throw new AiKitError("Target must be a real project directory.");
21
+ const canonical = await realpath(target);
22
+ const homeInfo = await stat(os.homedir());
23
+ if (canonical === path.parse(canonical).root ||
24
+ canonical === (await realpath(os.homedir())) ||
25
+ (info.ino !== 0 && info.ino === homeInfo.ino && info.dev === homeInfo.dev))
26
+ throw new AiKitError("Refusing to operate on a filesystem root or home directory.");
27
+ return canonical;
28
+ }
29
+ function allowedInventory(loaded) {
30
+ // Enumerate exact renderer outputs, including individual selections. No directory ownership.
31
+ const paths = new Set();
32
+ for (const archetypes of [
33
+ [...ROLE_NAMES],
34
+ ...ROLE_NAMES.map((role) => [role]),
35
+ ]) {
36
+ for (const asset of materialize(loaded, {
37
+ harnesses: [...HARNESS_NAMES],
38
+ archetypes,
39
+ method: "symlink",
40
+ }))
41
+ paths.add(asset.path);
42
+ }
43
+ return [...paths];
44
+ }
45
+ async function readManifest(target, loaded) {
46
+ await assertAncestors(target, MANIFEST_PATH);
47
+ const absolute = resolveOwnedPath(target, MANIFEST_PATH);
48
+ if (!(await exists(absolute)))
49
+ return undefined;
50
+ const info = await lstat(absolute);
51
+ if (!info.isFile() || info.isSymbolicLink())
52
+ throw new AiKitError("Ownership manifest must be a regular file.");
53
+ const raw = await readFile(absolute);
54
+ try {
55
+ const value = JSON.parse(raw.toString("utf8"));
56
+ let allowed = allowedInventory(loaded);
57
+ let historicalAssets;
58
+ if (value.schemaVersion === 3) {
59
+ // Read only the fixed canonical catalog after verifying its recorded file checksum.
60
+ // Its validated model IDs let an update retire exact aliases from an earlier catalog.
61
+ const files = Array.isArray(value.files) ? value.files : [];
62
+ const entry = files.find((file) => file !== null &&
63
+ typeof file === "object" &&
64
+ file.path === BASE_CATALOG_PATH);
65
+ if (!entry ||
66
+ entry.kind !== "file" ||
67
+ typeof entry.sha256 !== "string" ||
68
+ !/^[a-f0-9]{64}$/.test(entry.sha256))
69
+ throw new Error("Manifest canonical catalog entry is missing or invalid.");
70
+ await verifyState(target, BASE_CATALOG_PATH, {
71
+ path: BASE_CATALOG_PATH,
72
+ kind: "file",
73
+ sha256: entry.sha256,
74
+ });
75
+ const installedCatalog = validateCatalog(JSON.parse(await readFile(resolveOwnedPath(target, BASE_CATALOG_PATH), "utf8")));
76
+ const selection = normalizeSelection(value.selection);
77
+ historicalAssets = materialize({ ...loaded, catalog: installedCatalog }, selection);
78
+ allowed = [
79
+ ...new Set([
80
+ ...allowed,
81
+ ...historicalAssets.map((asset) => asset.path),
82
+ ]),
83
+ ];
84
+ }
85
+ const manifest = parseManifest(value, allowed);
86
+ if (historicalAssets &&
87
+ (manifest.files.length !== historicalAssets.length ||
88
+ historicalAssets.some((asset) => !manifest.files.some((file) => file.path === asset.path &&
89
+ file.kind === (asset.kind ?? "file") &&
90
+ file.linkTarget === asset.linkTarget))))
91
+ throw new Error("Manifest inventory does not match its installed catalog, selection and method.");
92
+ return { raw, manifest };
93
+ }
94
+ catch (error) {
95
+ throw new AiKitError(`Invalid ownership manifest: ${error.message}`);
96
+ }
97
+ }
98
+ async function verifyOwned(target, manifest) {
99
+ for (const file of manifest.files)
100
+ await verifyState(target, file.path, file);
101
+ }
102
+ async function checkLegacyOverlay(target) {
103
+ const relative = ".agents/catalog/local.json";
104
+ await assertAncestors(target, relative);
105
+ const absolute = resolveOwnedPath(target, relative);
106
+ if (!(await exists(absolute)))
107
+ return;
108
+ const info = await lstat(absolute);
109
+ if (!info.isFile() || info.isSymbolicLink())
110
+ throw new AiKitError("Legacy overlay must be a regular file; it is never followed or owned.");
111
+ let value;
112
+ try {
113
+ value = JSON.parse(await readFile(absolute, "utf8"));
114
+ }
115
+ catch {
116
+ throw new AiKitError("Legacy overlay is invalid JSON; preserve and resolve .agents/catalog/local.json before migration.");
117
+ }
118
+ const empty = (candidate) => candidate !== null &&
119
+ typeof candidate === "object" &&
120
+ !Array.isArray(candidate) &&
121
+ Object.entries(candidate).every(([key, item]) => key === "schemaVersion"
122
+ ? item === 1
123
+ : ["roles", "models"].includes(key) && empty(item));
124
+ if (!empty(value))
125
+ throw new AiKitError("Legacy overlay has incompatible overrides in .agents/catalog/local.json. Presets are fixed; move overrides to the source catalog and distribute an update. Overlay preserved; no changes made.");
126
+ }
127
+ async function checkAlternateConfigs(target, selection) {
128
+ const alternates = [
129
+ ...(selection.harnesses.includes("opencode")
130
+ ? [
131
+ "opencode.jsonc",
132
+ ".opencode/opencode.json",
133
+ ".opencode/opencode.jsonc",
134
+ ]
135
+ : []),
136
+ ...(selection.harnesses.includes("claude-code")
137
+ ? [".claude/settings.local.json"]
138
+ : []),
139
+ ];
140
+ for (const relative of alternates) {
141
+ await assertAncestors(target, relative);
142
+ if (await exists(resolveOwnedPath(target, relative)))
143
+ throw new AiKitError(`Conflicting alternate project configuration: ${relative}. Whole-file presets cannot be merged; preserve and resolve this configuration before installing. No changes made.`);
144
+ }
145
+ }
146
+ function selectionFor(options, current) {
147
+ const previous = current?.schemaVersion === 3 ? current.selection : undefined;
148
+ const harnesses = options.harnesses ?? previous?.harnesses;
149
+ if (!harnesses)
150
+ throw new AiKitError("Select harnesses explicitly with --harnesses codex,claude-code,opencode (also required for v1/v2 migration).", 2);
151
+ const primary = options.primary ??
152
+ (options.archetypes === undefined ? previous?.primary : undefined);
153
+ try {
154
+ return normalizeSelection({
155
+ harnesses,
156
+ archetypes: options.archetypes ?? previous?.archetypes ?? [...ROLE_NAMES],
157
+ method: options.method ?? previous?.method ?? "symlink",
158
+ ...(primary ? { primary } : {}),
159
+ });
160
+ }
161
+ catch (error) {
162
+ throw new AiKitError(error.message, 2);
163
+ }
164
+ }
165
+ function sameAssets(manifest, assets) {
166
+ return (manifest.files.length === assets.length &&
167
+ assets.every((asset) => manifest.files.some((file) => JSON.stringify(file) === JSON.stringify(manifestFile(asset)))));
168
+ }
169
+ export async function runCommand(command, options) {
170
+ try {
171
+ return await executeCommand(command, options);
172
+ }
173
+ catch (error) {
174
+ if (command === "check") {
175
+ const log = options.log ??
176
+ ((message) => process.stdout.write(`${message}\n`));
177
+ log(`[ERROR] Structural: ${error instanceof Error ? error.message : String(error)}`);
178
+ return 4;
179
+ }
180
+ if (error instanceof AiKitError || error instanceof TypeError)
181
+ throw error;
182
+ throw new AiKitError(error instanceof Error ? error.message : String(error));
183
+ }
184
+ }
185
+ async function executeCommand(command, options) {
186
+ const log = options.log ?? ((message) => process.stdout.write(`${message}\n`));
187
+ const packageRoot = options.packageRoot ?? PACKAGE_ROOT;
188
+ const loaded = await loadCatalog(packageRoot);
189
+ if (command === "list") {
190
+ log(JSON.stringify({
191
+ archetypes: ROLE_NAMES,
192
+ harnesses: HARNESS_NAMES,
193
+ catalog: loaded.catalog,
194
+ }, null, 2));
195
+ return 0;
196
+ }
197
+ const target = await validateTarget(options.target);
198
+ const current = await readManifest(target, loaded);
199
+ if (command === "check") {
200
+ try {
201
+ if (!current)
202
+ throw new AiKitError("Ownership manifest missing; run add.");
203
+ await verifyOwned(target, current.manifest);
204
+ await checkLegacyOverlay(target);
205
+ if (current.manifest.schemaVersion !== 3)
206
+ throw new AiKitError("Legacy manifest needs migration; run update with explicit harnesses.");
207
+ await checkAlternateConfigs(target, current.manifest.selection);
208
+ const assets = materialize(loaded, current.manifest.selection);
209
+ if (!sameAssets(current.manifest, assets) ||
210
+ current.manifest.catalog.baseSha256 !== loaded.baseChecksum ||
211
+ current.manifest.packageVersion !==
212
+ (await readPackageVersion(packageRoot)))
213
+ throw new AiKitError("Installation does not match the packaged catalog and selection; run update.");
214
+ log("[OK] Structural: ownership, canonical files, discovery links, models, efforts and selected presets match.");
215
+ log("[WARN] Behavioral: approval freshness, task scope, routing discipline and independent review require agent compliance; prompts are not a security boundary.");
216
+ if (options.dryRun) {
217
+ log("[WARN] Availability: dry-run skips harness processes to guarantee zero writes; execution readiness is unverified.");
218
+ return 4;
219
+ }
220
+ return diagnose(target, loaded, current.manifest.selection, options.route ?? "gpt", log);
221
+ }
222
+ catch (error) {
223
+ log(`[ERROR] Structural: ${error.message}`);
224
+ return 4;
225
+ }
226
+ }
227
+ if (current)
228
+ await verifyOwned(target, current.manifest);
229
+ if (command === "uninstall") {
230
+ if (!current)
231
+ throw new AiKitError("No ownership manifest; refusing to guess which files are owned.");
232
+ const changes = current.manifest.files.map((file) => ({
233
+ path: file.path,
234
+ expected: file,
235
+ }));
236
+ changes.push({
237
+ path: MANIFEST_PATH,
238
+ expected: {
239
+ path: MANIFEST_PATH,
240
+ kind: "file",
241
+ sha256: sha256(current.raw),
242
+ },
243
+ });
244
+ return apply(changes, "uninstalled");
245
+ }
246
+ if (command === "update" && !current)
247
+ throw new AiKitError("No ownership manifest; run add.");
248
+ await checkLegacyOverlay(target);
249
+ const selection = selectionFor(options, current?.manifest);
250
+ await checkAlternateConfigs(target, selection);
251
+ const assets = materialize(loaded, selection);
252
+ const packageVersion = await readPackageVersion(packageRoot);
253
+ const manifest = createManifest(packageVersion, assets, selection, loaded.baseChecksum);
254
+ // Validate renderer link graph and exact inventory before staging anything.
255
+ parseManifest(manifest, assets.map((a) => a.path));
256
+ if (current && command !== "update") {
257
+ if (current.manifest.schemaVersion === 3 &&
258
+ current.manifest.packageVersion === packageVersion &&
259
+ sameAssets(current.manifest, assets) &&
260
+ JSON.stringify(current.manifest.selection) === JSON.stringify(selection)) {
261
+ log("OK: already installed; no changes required.");
262
+ return 0;
263
+ }
264
+ throw new AiKitError("An installation already exists; run update to change selection or version.");
265
+ }
266
+ const old = new Map(current?.manifest.files.map((file) => [file.path, file]) ?? []);
267
+ const changes = assets.map((asset) => ({
268
+ path: asset.path,
269
+ asset,
270
+ ...(old.has(asset.path) ? { expected: old.get(asset.path) } : {}),
271
+ }));
272
+ const desired = new Set(assets.map((a) => a.path));
273
+ for (const file of current?.manifest.files ?? [])
274
+ if (!desired.has(file.path))
275
+ changes.push({ path: file.path, expected: file });
276
+ const content = serializeManifest(manifest);
277
+ changes.push({
278
+ path: MANIFEST_PATH,
279
+ asset: { path: MANIFEST_PATH, content, sha256: sha256(content) },
280
+ ...(current
281
+ ? {
282
+ expected: {
283
+ path: MANIFEST_PATH,
284
+ kind: "file",
285
+ sha256: sha256(current.raw),
286
+ },
287
+ }
288
+ : {}),
289
+ });
290
+ return apply(changes, command === "update" ? "updated" : "installed");
291
+ async function apply(changes, verb) {
292
+ for (const change of changes)
293
+ await verifyState(target, change.path, change.expected);
294
+ for (const change of changes)
295
+ log(`${options.dryRun ? "DRY-RUN" : "APPLY"}: ${change.asset ? (change.asset.kind === "symlink" ? "link" : "write") : "remove"} ${change.path}`);
296
+ if (!options.dryRun)
297
+ for (const warning of await applyTransaction(target, changes))
298
+ log(`WARN: ${warning}`);
299
+ log(`OK: ${options.dryRun ? "dry-run validated" : verb} ai-kit.`);
300
+ return 0;
301
+ }
302
+ }
303
+ //# sourceMappingURL=installer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installer.js","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare const CATALOG_MANAGED_PATHS: readonly [".agents/catalog/catalog.schema.json", ".agents/catalog/openai-pro.json", ".agents/catalog/prompts/planner.md", ".agents/catalog/prompts/implementer-senior.md", ".agents/catalog/prompts/implementer.md", ".agents/catalog/prompts/quick.md", ".agents/catalog/prompts/researcher.md", ".agents/catalog/prompts/reviewer.md"];
2
+ export declare const STATIC_MANAGED_PATHS: readonly [".agents/catalog/catalog.schema.json", ".agents/catalog/openai-pro.json", ".agents/catalog/prompts/planner.md", ".agents/catalog/prompts/implementer-senior.md", ".agents/catalog/prompts/implementer.md", ".agents/catalog/prompts/quick.md", ".agents/catalog/prompts/researcher.md", ".agents/catalog/prompts/reviewer.md", ".agents/skills/ai-kit-model-calibration/SKILL.md", ".agents/skills/ai-kit-model-calibration/assets/scorecard.md", ".agents/skills/ai-kit-model-calibration/references/rubric.md", ".agents/skills/ai-kit-task-routing/SKILL.md", ".agents/skills/ai-kit-task-routing/references/handoff.md"];
3
+ export declare const RENDERED_PATHS: readonly [".codex/config.toml", ".codex/agents/implementer.toml", ".codex/agents/planner.toml", ".codex/agents/quick.toml", ".codex/agents/researcher.toml", ".codex/agents/reviewer.toml", ".kilo/agent/implementer-senior.md", ".kilo/agent/planner-medium.md", ".kilo/agent/planner-high.md", ".kilo/agent/planner-xhigh.md", ".kilo/agent/implementer-low.md", ".kilo/agent/implementer-medium.md", ".kilo/agent/implementer-high.md", ".kilo/agent/quick-low.md", ".kilo/agent/quick-medium.md", ".kilo/agent/researcher-low.md", ".kilo/agent/researcher-medium.md", ".kilo/agent/researcher-high.md", ".kilo/agent/reviewer-xhigh.md"];
4
+ export declare const MANAGED_PATHS: readonly [".agents/catalog/catalog.schema.json", ".agents/catalog/openai-pro.json", ".agents/catalog/prompts/planner.md", ".agents/catalog/prompts/implementer-senior.md", ".agents/catalog/prompts/implementer.md", ".agents/catalog/prompts/quick.md", ".agents/catalog/prompts/researcher.md", ".agents/catalog/prompts/reviewer.md", ".agents/skills/ai-kit-model-calibration/SKILL.md", ".agents/skills/ai-kit-model-calibration/assets/scorecard.md", ".agents/skills/ai-kit-model-calibration/references/rubric.md", ".agents/skills/ai-kit-task-routing/SKILL.md", ".agents/skills/ai-kit-task-routing/references/handoff.md", ".codex/config.toml", ".codex/agents/implementer.toml", ".codex/agents/planner.toml", ".codex/agents/quick.toml", ".codex/agents/researcher.toml", ".codex/agents/reviewer.toml", ".kilo/agent/implementer-senior.md", ".kilo/agent/planner-medium.md", ".kilo/agent/planner-high.md", ".kilo/agent/planner-xhigh.md", ".kilo/agent/implementer-low.md", ".kilo/agent/implementer-medium.md", ".kilo/agent/implementer-high.md", ".kilo/agent/quick-low.md", ".kilo/agent/quick-medium.md", ".kilo/agent/researcher-low.md", ".kilo/agent/researcher-medium.md", ".kilo/agent/researcher-high.md", ".kilo/agent/reviewer-xhigh.md"];
5
+ export declare const HISTORICAL_MANAGED_PATHS: readonly [".kilo/agent/implementer.md", ".kilo/agent/orchestrator.md", ".kilo/agent/planner.md", ".kilo/agent/quick.md", ".kilo/agent/researcher.md", ".kilo/agent/reviewer.md"];
6
+ export declare const LEGACY_V1_REQUIRED_PATHS: readonly [".kilo/agent/implementer.md", ".kilo/agent/orchestrator.md", ".kilo/agent/planner.md", ".kilo/agent/quick.md", ".kilo/agent/researcher.md", ".kilo/agent/reviewer.md", ".agents/skills/ai-kit-model-calibration/SKILL.md", ".agents/skills/ai-kit-model-calibration/assets/scorecard.md", ".agents/skills/ai-kit-model-calibration/references/rubric.md", ".agents/skills/ai-kit-task-routing/SKILL.md", ".agents/skills/ai-kit-task-routing/references/handoff.md"];
7
+ export declare const LEGACY_V1_CODEX_PATHS: readonly [".codex/config.toml", ".codex/agents/implementer.toml", ".codex/agents/planner.toml", ".codex/agents/quick.toml", ".codex/agents/researcher.toml", ".codex/agents/reviewer.toml"];
package/dist/legacy.js ADDED
@@ -0,0 +1,69 @@
1
+ // Exact historical inventory. Never infer ownership from a directory.
2
+ export const CATALOG_MANAGED_PATHS = [
3
+ ".agents/catalog/catalog.schema.json",
4
+ ".agents/catalog/openai-pro.json",
5
+ ".agents/catalog/prompts/planner.md",
6
+ ".agents/catalog/prompts/implementer-senior.md",
7
+ ".agents/catalog/prompts/implementer.md",
8
+ ".agents/catalog/prompts/quick.md",
9
+ ".agents/catalog/prompts/researcher.md",
10
+ ".agents/catalog/prompts/reviewer.md",
11
+ ];
12
+ export const STATIC_MANAGED_PATHS = [
13
+ ...CATALOG_MANAGED_PATHS,
14
+ ".agents/skills/ai-kit-model-calibration/SKILL.md",
15
+ ".agents/skills/ai-kit-model-calibration/assets/scorecard.md",
16
+ ".agents/skills/ai-kit-model-calibration/references/rubric.md",
17
+ ".agents/skills/ai-kit-task-routing/SKILL.md",
18
+ ".agents/skills/ai-kit-task-routing/references/handoff.md",
19
+ ];
20
+ export const RENDERED_PATHS = [
21
+ ".codex/config.toml",
22
+ ".codex/agents/implementer.toml",
23
+ ".codex/agents/planner.toml",
24
+ ".codex/agents/quick.toml",
25
+ ".codex/agents/researcher.toml",
26
+ ".codex/agents/reviewer.toml",
27
+ ".kilo/agent/implementer-senior.md",
28
+ ".kilo/agent/planner-medium.md",
29
+ ".kilo/agent/planner-high.md",
30
+ ".kilo/agent/planner-xhigh.md",
31
+ ".kilo/agent/implementer-low.md",
32
+ ".kilo/agent/implementer-medium.md",
33
+ ".kilo/agent/implementer-high.md",
34
+ ".kilo/agent/quick-low.md",
35
+ ".kilo/agent/quick-medium.md",
36
+ ".kilo/agent/researcher-low.md",
37
+ ".kilo/agent/researcher-medium.md",
38
+ ".kilo/agent/researcher-high.md",
39
+ ".kilo/agent/reviewer-xhigh.md",
40
+ ];
41
+ export const MANAGED_PATHS = [
42
+ ...STATIC_MANAGED_PATHS,
43
+ ...RENDERED_PATHS,
44
+ ];
45
+ export const HISTORICAL_MANAGED_PATHS = [
46
+ ".kilo/agent/implementer.md",
47
+ ".kilo/agent/orchestrator.md",
48
+ ".kilo/agent/planner.md",
49
+ ".kilo/agent/quick.md",
50
+ ".kilo/agent/researcher.md",
51
+ ".kilo/agent/reviewer.md",
52
+ ];
53
+ export const LEGACY_V1_REQUIRED_PATHS = [
54
+ ...HISTORICAL_MANAGED_PATHS,
55
+ ".agents/skills/ai-kit-model-calibration/SKILL.md",
56
+ ".agents/skills/ai-kit-model-calibration/assets/scorecard.md",
57
+ ".agents/skills/ai-kit-model-calibration/references/rubric.md",
58
+ ".agents/skills/ai-kit-task-routing/SKILL.md",
59
+ ".agents/skills/ai-kit-task-routing/references/handoff.md",
60
+ ];
61
+ export const LEGACY_V1_CODEX_PATHS = [
62
+ ".codex/config.toml",
63
+ ".codex/agents/implementer.toml",
64
+ ".codex/agents/planner.toml",
65
+ ".codex/agents/quick.toml",
66
+ ".codex/agents/researcher.toml",
67
+ ".codex/agents/reviewer.toml",
68
+ ];
69
+ //# sourceMappingURL=legacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy.js","sourceRoot":"","sources":["../src/legacy.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,qCAAqC;IACrC,iCAAiC;IACjC,oCAAoC;IACpC,+CAA+C;IAC/C,wCAAwC;IACxC,kCAAkC;IAClC,uCAAuC;IACvC,qCAAqC;CAC7B,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,GAAG,qBAAqB;IACxB,kDAAkD;IAClD,6DAA6D;IAC7D,8DAA8D;IAC9D,6CAA6C;IAC7C,0DAA0D;CAClD,CAAC;AAEX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,oBAAoB;IACpB,gCAAgC;IAChC,4BAA4B;IAC5B,0BAA0B;IAC1B,+BAA+B;IAC/B,6BAA6B;IAC7B,mCAAmC;IACnC,+BAA+B;IAC/B,6BAA6B;IAC7B,8BAA8B;IAC9B,gCAAgC;IAChC,mCAAmC;IACnC,iCAAiC;IACjC,0BAA0B;IAC1B,6BAA6B;IAC7B,+BAA+B;IAC/B,kCAAkC;IAClC,gCAAgC;IAChC,+BAA+B;CACvB,CAAC;AAEX,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,GAAG,oBAAoB;IACvB,GAAG,cAAc;CACT,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,4BAA4B;IAC5B,6BAA6B;IAC7B,wBAAwB;IACxB,sBAAsB;IACtB,2BAA2B;IAC3B,yBAAyB;CACjB,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,GAAG,wBAAwB;IAC3B,kDAAkD;IAClD,6DAA6D;IAC7D,8DAA8D;IAC9D,6CAA6C;IAC7C,0DAA0D;CAClD,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,oBAAoB;IACpB,gCAAgC;IAChC,4BAA4B;IAC5B,0BAA0B;IAC1B,+BAA+B;IAC/B,6BAA6B;CACrB,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { type Selection } from "./catalog.js";
2
+ export declare const MANIFEST_PATH = ".agents/.ai-kit-manifest.json";
3
+ export declare const MANIFEST_SCHEMA_VERSION = 3;
4
+ export declare const PROFILE = "personal";
5
+ export declare const PACKAGE_ROOT: string;
6
+ export interface ManifestFile {
7
+ path: string;
8
+ sha256: string;
9
+ kind: "file" | "symlink";
10
+ linkTarget?: string;
11
+ }
12
+ export interface Asset {
13
+ path: string;
14
+ content: Buffer;
15
+ sha256: string;
16
+ kind?: "file" | "symlink";
17
+ linkTarget?: string;
18
+ }
19
+ export interface LegacyOwnershipManifest {
20
+ schemaVersion: 1 | 2;
21
+ packageVersion: string;
22
+ profile: "openai-pro";
23
+ installedAt: string;
24
+ files: ManifestFile[];
25
+ catalog?: {
26
+ baseSha256: string;
27
+ overlaySha256: string;
28
+ };
29
+ }
30
+ export interface OwnershipManifest {
31
+ schemaVersion: 3;
32
+ packageVersion: string;
33
+ profile: "personal";
34
+ installedAt: string;
35
+ selection: Selection;
36
+ presets: Record<string, string>;
37
+ catalog: {
38
+ baseSha256: string;
39
+ };
40
+ files: ManifestFile[];
41
+ }
42
+ export type AnyOwnershipManifest = LegacyOwnershipManifest | OwnershipManifest;
43
+ export declare function sha256(content: Uint8Array | string): string;
44
+ export declare function resolveOwnedPath(target: string, relativePath: string): string;
45
+ export declare function validateOwnedPath(value: unknown, allowedPaths: ReadonlySet<string>): string;
46
+ export declare function parseManifest(value: unknown, allowedPaths?: readonly string[]): AnyOwnershipManifest;
47
+ export declare function manifestFile(asset: Asset): ManifestFile;
48
+ export declare function createManifest(packageVersion: string, assets: readonly Asset[], selection: Selection, baseSha256: string): OwnershipManifest;
49
+ export declare function serializeManifest(manifest: OwnershipManifest): Buffer;
50
+ export declare function readPackageVersion(packageRoot?: string): Promise<string>;