harnessbrew 0.4.0 → 0.5.2

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 (59) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +26 -5
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +65 -7
  5. package/dist/cli.js.map +1 -1
  6. package/dist/core/doctor.d.ts +22 -0
  7. package/dist/core/doctor.d.ts.map +1 -0
  8. package/dist/core/doctor.js +142 -0
  9. package/dist/core/doctor.js.map +1 -0
  10. package/dist/core/installations.d.ts +23 -1
  11. package/dist/core/installations.d.ts.map +1 -1
  12. package/dist/core/installations.js +48 -12
  13. package/dist/core/installations.js.map +1 -1
  14. package/dist/core/target-capabilities.d.ts +28 -0
  15. package/dist/core/target-capabilities.d.ts.map +1 -0
  16. package/dist/core/target-capabilities.js +34 -0
  17. package/dist/core/target-capabilities.js.map +1 -0
  18. package/dist/core/targets/claude-code.d.ts +3 -0
  19. package/dist/core/targets/claude-code.d.ts.map +1 -0
  20. package/dist/core/targets/claude-code.js +60 -0
  21. package/dist/core/targets/claude-code.js.map +1 -0
  22. package/dist/core/targets/codex.d.ts +3 -0
  23. package/dist/core/targets/codex.d.ts.map +1 -0
  24. package/dist/core/targets/codex.js +64 -0
  25. package/dist/core/targets/codex.js.map +1 -0
  26. package/dist/core/targets/planner.d.ts +5 -0
  27. package/dist/core/targets/planner.d.ts.map +1 -0
  28. package/dist/core/targets/planner.js +18 -0
  29. package/dist/core/targets/planner.js.map +1 -0
  30. package/dist/core/targets/registry.d.ts +4 -0
  31. package/dist/core/targets/registry.d.ts.map +1 -0
  32. package/dist/core/targets/registry.js +14 -0
  33. package/dist/core/targets/registry.js.map +1 -0
  34. package/dist/core/targets/renderers.d.ts +12 -0
  35. package/dist/core/targets/renderers.d.ts.map +1 -0
  36. package/dist/core/targets/renderers.js +157 -0
  37. package/dist/core/targets/renderers.js.map +1 -0
  38. package/dist/core/targets/transaction.d.ts +20 -0
  39. package/dist/core/targets/transaction.d.ts.map +1 -0
  40. package/dist/core/targets/transaction.js +478 -0
  41. package/dist/core/targets/transaction.js.map +1 -0
  42. package/dist/core/targets/types.d.ts +25 -0
  43. package/dist/core/targets/types.d.ts.map +1 -0
  44. package/dist/core/targets/types.js +2 -0
  45. package/dist/core/targets/types.js.map +1 -0
  46. package/dist/core/targets.d.ts +12 -4
  47. package/dist/core/targets.d.ts.map +1 -1
  48. package/dist/core/targets.js +143 -49
  49. package/dist/core/targets.js.map +1 -1
  50. package/dist/core/upgrades.d.ts.map +1 -1
  51. package/dist/core/upgrades.js +60 -17
  52. package/dist/core/upgrades.js.map +1 -1
  53. package/dist/index.d.ts +8 -1
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +4 -0
  56. package/dist/index.js.map +1 -1
  57. package/dist/version.d.ts +1 -1
  58. package/dist/version.js +1 -1
  59. package/package.json +4 -3
@@ -1,36 +1,34 @@
1
1
  import { createHash } from "node:crypto";
2
- import { homedir } from "node:os";
3
- import { lstat, mkdir, readFile, readlink, rm, stat, symlink } from "node:fs/promises";
2
+ import { lstat, readFile, readlink, rm, stat } from "node:fs/promises";
4
3
  import path from "node:path";
4
+ import { parse } from "yaml";
5
5
  import { HarnessBrewError } from "./errors.js";
6
6
  import { installFormula, listInstalled, readReceipt, uninstallFormula, writeReceipt } from "./installations.js";
7
7
  import { parseCoordinate } from "./paths.js";
8
- export const builtinTargets = ["openai-codex", "claude-code"];
9
- function defaultRoot(target) {
10
- return path.join(homedir(), target === "openai-codex" ? ".codex" : ".claude");
11
- }
12
- function extensionFor(entry) {
13
- return path.extname(entry) || ".md";
14
- }
15
- export function targetDestination(receipt, target, root) {
16
- const targetRoot = path.resolve(root ?? defaultRoot(target));
17
- const [, , name] = parseCoordinate(receipt.coordinate);
18
- const extension = extensionFor(receipt.entry);
19
- if (receipt.kind === "skill")
20
- return path.join(targetRoot, "skills", name, path.basename(receipt.entry));
21
- if (target === "claude-code" && receipt.kind === "workflow") {
22
- return path.join(targetRoot, "commands", `${name}${extension}`);
23
- }
24
- const directories = {
25
- agent: "agents",
26
- workflow: "workflows",
27
- instruction: "rules",
28
- prompt: "prompts",
29
- mcp: "mcp",
30
- adapter: "adapters"
8
+ import { targetCapability } from "./target-capabilities.js";
9
+ import { executeTargetOperations, removeTargetOperation, verifyTargetOperation } from "./targets/transaction.js";
10
+ import { planTargetInstall } from "./targets/planner.js";
11
+ import { renderAgent, renderMcpConfig, renderSkillProjection } from "./targets/renderers.js";
12
+ export { builtinTargets } from "./target-capabilities.js";
13
+ function targetContext(options) {
14
+ const scope = options.scope ?? "user";
15
+ return {
16
+ scope,
17
+ ...(options.root === undefined ? {} : { root: path.resolve(options.root) }),
18
+ ...(scope === "project" ? { projectRoot: path.resolve(options.projectRoot ?? process.cwd()) } : {})
31
19
  };
32
- const directory = directories[receipt.kind] ?? `${receipt.kind}s`;
33
- return path.join(targetRoot, directory, `${name}${extension}`);
20
+ }
21
+ export function targetDestination(receipt, target, options = {}) {
22
+ if (targetCapability(target, receipt.kind) === "unsupported") {
23
+ throw new HarnessBrewError(`Formula kind ${receipt.kind} cannot be linked to target ${target}.`);
24
+ }
25
+ const plan = planTargetInstall(receipt, target, targetContext(options));
26
+ const operation = plan.operations[0];
27
+ if (operation === undefined)
28
+ throw new HarnessBrewError(`No target operation planned for ${receipt.coordinate}.`);
29
+ return receipt.kind === "workflow" || receipt.kind === "prompt"
30
+ ? path.join(operation.destination, "SKILL.md")
31
+ : operation.destination;
34
32
  }
35
33
  async function exists(filePath) {
36
34
  try {
@@ -46,9 +44,36 @@ async function exists(filePath) {
46
44
  async function sha256(filePath) {
47
45
  return createHash("sha256").update(await readFile(filePath)).digest("hex");
48
46
  }
47
+ async function validateSkillDirectory(receipt) {
48
+ if (receipt.entry !== "SKILL.md") {
49
+ throw new HarnessBrewError(`Skill entry must be SKILL.md: ${receipt.coordinate}`);
50
+ }
51
+ const content = await readFile(path.join(receipt.cellarPath, "SKILL.md"), "utf8");
52
+ const match = /^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/u.exec(content);
53
+ if (match?.[1] === undefined) {
54
+ throw new HarnessBrewError(`Skill SKILL.md must contain YAML frontmatter: ${receipt.coordinate}`);
55
+ }
56
+ let frontmatter;
57
+ try {
58
+ frontmatter = parse(match[1]);
59
+ }
60
+ catch {
61
+ throw new HarnessBrewError(`Skill SKILL.md contains invalid YAML frontmatter: ${receipt.coordinate}`);
62
+ }
63
+ if (typeof frontmatter !== "object" || frontmatter === null) {
64
+ throw new HarnessBrewError(`Skill SKILL.md frontmatter must be an object: ${receipt.coordinate}`);
65
+ }
66
+ const metadata = frontmatter;
67
+ if (metadata.name !== parseCoordinate(receipt.coordinate)[2]
68
+ || typeof metadata.description !== "string"
69
+ || metadata.description.trim() === "") {
70
+ throw new HarnessBrewError(`Skill SKILL.md must declare matching name and description: ${receipt.coordinate}`);
71
+ }
72
+ }
49
73
  async function assertDestinationAvailable(home, receipt, destination) {
50
74
  const installed = await listInstalled(home);
51
- const owner = installed.find((candidate) => candidate.links.some((link) => link.path === destination));
75
+ const owner = installed.find((candidate) => candidate.operations.some((operation) => operation.destination === destination)
76
+ || candidate.links.some((link) => link.path === destination));
52
77
  if (owner !== undefined && owner.coordinate !== receipt.coordinate) {
53
78
  throw new HarnessBrewError(`Target path is owned by ${owner.coordinate}: ${destination}`);
54
79
  }
@@ -70,44 +95,102 @@ export async function linkFormula(home, nameOrCoordinate, target, options = {})
70
95
  if (!receipt.supportedTargets.includes(target)) {
71
96
  throw new HarnessBrewError(`Formula ${receipt.coordinate} does not support target ${target}.`);
72
97
  }
73
- const existing = receipt.links.find((link) => link.target === target);
74
- if (existing !== undefined) {
98
+ if (targetCapability(target, receipt.kind) === "unsupported") {
99
+ throw new HarnessBrewError(`Formula kind ${receipt.kind} cannot be linked to target ${target}; install it to the Cellar without --target.`);
100
+ }
101
+ if (receipt.kind === "skill")
102
+ await validateSkillDirectory(receipt);
103
+ const context = targetContext(options);
104
+ const destination = targetDestination(receipt, target, options);
105
+ const existingOperation = receipt.operations.find((operation) => operation.target === target
106
+ && operation.destination === destination);
107
+ if (existingOperation !== undefined) {
75
108
  try {
76
- if ((await lstat(existing.path)).isSymbolicLink() && path.resolve(path.dirname(existing.path), await readlink(existing.path)) === existing.source) {
77
- return receipt;
78
- }
109
+ await verifyTargetOperation(existingOperation);
110
+ return receipt;
79
111
  }
80
112
  catch {
81
- // Report the broken managed destination through the standard conflict check.
113
+ throw new HarnessBrewError(`Installed target was modified for ${receipt.coordinate}: ${existingOperation.destination}`);
82
114
  }
83
115
  }
84
- const source = path.join(receipt.cellarPath, receipt.entry);
85
- const destination = targetDestination(receipt, target, options.root);
86
- await assertDestinationAvailable(home, receipt, destination);
87
- await mkdir(path.dirname(destination), { recursive: true });
88
- await symlink(source, destination, "file");
89
- const link = { path: destination, source, target, sha256: await sha256(source) };
90
- receipt.links.push(link);
116
+ const source = receipt.kind === "skill" ? receipt.cellarPath : path.join(receipt.cellarPath, receipt.entry);
117
+ const type = receipt.kind === "skill"
118
+ ? "symlink-directory"
119
+ : receipt.kind === "agent" || receipt.kind === "workflow" || receipt.kind === "prompt"
120
+ ? "render-file"
121
+ : receipt.kind === "instruction" && target === "openai-codex"
122
+ ? "managed-block"
123
+ : receipt.kind === "mcp"
124
+ ? "merge-config"
125
+ : "symlink-file";
126
+ if (type !== "managed-block" && type !== "merge-config")
127
+ await assertDestinationAvailable(home, receipt, destination);
128
+ const mcpConfig = receipt.kind === "mcp" ? await renderMcpConfig(receipt, target) : undefined;
129
+ const [operation] = await executeTargetOperations([{
130
+ id: `${receipt.coordinate}:${target}:${destination}`,
131
+ type,
132
+ target,
133
+ ...(context.scope === undefined ? {} : { scope: context.scope }),
134
+ ...(context.root === undefined ? {} : { root: context.root }),
135
+ ...(context.projectRoot === undefined ? {} : { projectRoot: context.projectRoot }),
136
+ ...(type === "render-file"
137
+ ? { content: receipt.kind === "agent"
138
+ ? await renderAgent(receipt, target)
139
+ : await renderSkillProjection(receipt) }
140
+ : type === "managed-block"
141
+ ? { content: await readFile(source, "utf8"), marker: receipt.coordinate }
142
+ : type === "merge-config" && mcpConfig !== undefined
143
+ ? mcpConfig
144
+ : { source }),
145
+ destination
146
+ }]);
147
+ if (operation === undefined)
148
+ throw new HarnessBrewError(`Target operation was not created: ${destination}`);
149
+ if (type === "symlink-file" || type === "symlink-directory") {
150
+ const link = {
151
+ path: destination,
152
+ source,
153
+ target,
154
+ sha256: operation.installedDigest ?? await sha256(path.join(receipt.cellarPath, receipt.entry))
155
+ };
156
+ receipt.links.push(link);
157
+ }
158
+ receipt.operations.push(operation);
91
159
  if (!receipt.targets.includes(target))
92
160
  receipt.targets.push(target);
93
161
  try {
94
162
  await writeReceipt(home, receipt);
95
163
  }
96
164
  catch (error) {
97
- await rm(destination, { force: true });
165
+ await removeTargetOperation(operation, true);
98
166
  throw error;
99
167
  }
100
168
  return receipt;
101
169
  }
102
- export async function unlinkFormula(home, nameOrCoordinate, target, force = false) {
170
+ export async function unlinkFormula(home, nameOrCoordinate, target, options = {}) {
171
+ const resolvedOptions = typeof options === "boolean" ? { force: options } : options;
172
+ const force = resolvedOptions.force ?? false;
103
173
  const receipt = await readReceipt(home, nameOrCoordinate.split("/").length === 3
104
174
  ? nameOrCoordinate
105
175
  : (await listInstalled(home)).find((item) => item.coordinate.endsWith(`/${nameOrCoordinate}`))?.coordinate ?? nameOrCoordinate);
106
176
  if (receipt === undefined)
107
177
  throw new HarnessBrewError(`Formula is not installed: ${nameOrCoordinate}`);
108
- const links = receipt.links.filter((link) => link.target === target);
109
- if (links.length === 0)
178
+ const placementSpecified = resolvedOptions.root !== undefined
179
+ || resolvedOptions.scope !== undefined
180
+ || resolvedOptions.projectRoot !== undefined;
181
+ const targetOperations = receipt.operations.filter((operation) => operation.target === target);
182
+ if (!placementSpecified && targetOperations.length > 1) {
183
+ throw new HarnessBrewError(`Formula has multiple ${target} installations; specify --scope and, for project scope, --project.`);
184
+ }
185
+ const destination = !placementSpecified && targetOperations[0] !== undefined
186
+ ? targetOperations[0].destination
187
+ : targetDestination(receipt, target, resolvedOptions);
188
+ const links = receipt.links.filter((link) => link.target === target && link.path === destination);
189
+ const operations = receipt.operations.filter((operation) => operation.target === target
190
+ && operation.destination === destination);
191
+ if (links.length === 0 && operations.length === 0) {
110
192
  throw new HarnessBrewError(`Formula is not linked to ${target}: ${receipt.coordinate}`);
193
+ }
111
194
  for (const link of links) {
112
195
  if (!force) {
113
196
  try {
@@ -119,10 +202,21 @@ export async function unlinkFormula(home, nameOrCoordinate, target, force = fals
119
202
  throw new HarnessBrewError(`Installed target was modified for ${receipt.coordinate}: ${link.path}`);
120
203
  }
121
204
  }
122
- await rm(link.path, { force: true });
123
205
  }
124
- receipt.links = receipt.links.filter((link) => link.target !== target);
125
- receipt.targets = receipt.targets.filter((installedTarget) => installedTarget !== target);
206
+ if (operations.length > 0) {
207
+ for (const operation of operations)
208
+ await removeTargetOperation(operation, force);
209
+ }
210
+ else {
211
+ for (const link of links)
212
+ await rm(link.path, { force: true });
213
+ }
214
+ receipt.links = receipt.links.filter((link) => !links.includes(link));
215
+ receipt.operations = receipt.operations.filter((operation) => !operations.includes(operation));
216
+ if (!receipt.operations.some((operation) => operation.target === target)
217
+ && !receipt.links.some((link) => link.target === target)) {
218
+ receipt.targets = receipt.targets.filter((installedTarget) => installedTarget !== target);
219
+ }
126
220
  await writeReceipt(home, receipt);
127
221
  return receipt;
128
222
  }
@@ -138,7 +232,7 @@ export async function installForTarget(home, nameOrCoordinate, target, options =
138
232
  }
139
233
  catch (error) {
140
234
  for (const receipt of linked.reverse()) {
141
- await unlinkFormula(home, receipt.coordinate, target, true);
235
+ await unlinkFormula(home, receipt.coordinate, target, { ...options, force: true });
142
236
  }
143
237
  for (const receipt of receipts.reverse()) {
144
238
  if (!before.has(receipt.coordinate))
@@ -1 +1 @@
1
- {"version":3,"file":"targets.js","sourceRoot":"","sources":["../../src/core/targets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"targets.js","sourceRoot":"","sources":["../../src/core/targets.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"upgrades.d.ts","sourceRoot":"","sources":["../../src/core/upgrades.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAmB3E;AAiED,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAoChG"}
1
+ {"version":3,"file":"upgrades.d.ts","sourceRoot":"","sources":["../../src/core/upgrades.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAmB3E;AAgHD,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAoChG"}
@@ -1,10 +1,11 @@
1
- import { mkdir, rm, symlink } from "node:fs/promises";
1
+ import { rm } from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import { HarnessBrewError } from "./errors.js";
4
4
  import { loadCatalog } from "./formulas.js";
5
5
  import { installCatalogFormula, listInstalled, uninstallFormula, verifyReceiptIntegrity, writeReceipt } from "./installations.js";
6
6
  import { resolveReceiptPath } from "./paths.js";
7
7
  import { linkFormula } from "./targets.js";
8
+ import { removeTargetOperation } from "./targets/transaction.js";
8
9
  export async function findOutdated(home) {
9
10
  const catalog = new Map((await loadCatalog(home)).map((formula) => [formula.coordinate, formula]));
10
11
  const outdated = [];
@@ -26,31 +27,73 @@ export async function findOutdated(home) {
26
27
  return outdated;
27
28
  }
28
29
  function targetRootFromLink(receipt, link) {
29
- if (receipt.kind === "skill")
30
- return path.dirname(path.dirname(path.dirname(link.path)));
30
+ if (receipt.kind === "skill") {
31
+ return link.source === receipt.cellarPath
32
+ ? path.dirname(path.dirname(link.path))
33
+ : path.dirname(path.dirname(path.dirname(link.path)));
34
+ }
31
35
  return path.dirname(path.dirname(link.path));
32
36
  }
33
- async function restoreReceipt(home, receipt) {
34
- for (const link of receipt.links) {
35
- await mkdir(path.dirname(link.path), { recursive: true });
36
- await rm(link.path, { force: true });
37
- await symlink(link.source, link.path, "file");
37
+ function targetPlacements(receipt) {
38
+ if (receipt.operations.length > 0) {
39
+ return receipt.operations.map((operation) => {
40
+ const target = operation.target;
41
+ if (operation.scope !== undefined) {
42
+ return {
43
+ target,
44
+ options: {
45
+ scope: operation.scope,
46
+ ...(operation.root === undefined ? {} : { root: operation.root }),
47
+ ...(operation.projectRoot === undefined ? {} : { projectRoot: operation.projectRoot })
48
+ }
49
+ };
50
+ }
51
+ if (receipt.kind === "workflow" || receipt.kind === "prompt") {
52
+ return { target, options: { root: path.dirname(path.dirname(path.dirname(operation.destination))) } };
53
+ }
54
+ if (receipt.kind === "skill" || receipt.kind === "agent") {
55
+ return { target, options: { root: path.dirname(path.dirname(operation.destination)) } };
56
+ }
57
+ if (receipt.kind === "instruction" && target === "claude-code") {
58
+ return { target, options: { root: path.dirname(path.dirname(operation.destination)) } };
59
+ }
60
+ if (receipt.kind === "mcp" && target === "claude-code") {
61
+ return path.basename(operation.destination) === ".claude.json"
62
+ ? { target, options: {} }
63
+ : { target, options: { root: path.dirname(operation.destination) } };
64
+ }
65
+ return { target, options: { root: path.dirname(operation.destination) } };
66
+ });
67
+ }
68
+ return receipt.links.map((link) => ({
69
+ target: link.target,
70
+ options: { root: targetRootFromLink(receipt, link) }
71
+ }));
72
+ }
73
+ async function restoreReceipt(home, receipt, placements) {
74
+ const restored = { ...receipt, targets: [], links: [], operations: [] };
75
+ await writeReceipt(home, restored);
76
+ for (const placement of placements) {
77
+ await linkFormula(home, restored.coordinate, placement.target, placement.options);
38
78
  }
39
- await writeReceipt(home, receipt);
40
79
  }
41
80
  async function upgradeOne(home, receipt, formula) {
42
81
  await verifyReceiptIntegrity(receipt);
43
- const originalLinks = [...receipt.links];
44
- for (const link of originalLinks)
45
- await rm(link.path, { force: true });
82
+ const placements = targetPlacements(receipt);
83
+ if (receipt.operations.length > 0) {
84
+ for (const operation of [...receipt.operations].reverse())
85
+ await removeTargetOperation(operation, true);
86
+ }
87
+ else {
88
+ for (const link of receipt.links)
89
+ await rm(link.path, { force: true });
90
+ }
46
91
  await rm(resolveReceiptPath(home, receipt.coordinate), { force: true });
47
92
  let replacement;
48
93
  try {
49
94
  replacement = await installCatalogFormula(home, formula, receipt.requested);
50
- for (const link of originalLinks) {
51
- await linkFormula(home, replacement.coordinate, link.target, {
52
- root: targetRootFromLink(receipt, link)
53
- });
95
+ for (const placement of placements) {
96
+ await linkFormula(home, replacement.coordinate, placement.target, placement.options);
54
97
  }
55
98
  await rm(receipt.cellarPath, { recursive: true, force: true });
56
99
  return { coordinate: receipt.coordinate, before: receipt.commit, after: formula.commit };
@@ -59,7 +102,7 @@ async function upgradeOne(home, receipt, formula) {
59
102
  if (replacement !== undefined) {
60
103
  await uninstallFormula(home, replacement.coordinate, { force: true }).catch(() => undefined);
61
104
  }
62
- await restoreReceipt(home, receipt);
105
+ await restoreReceipt(home, receipt, placements);
63
106
  throw error;
64
107
  }
65
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"upgrades.js","sourceRoot":"","sources":["../../src/core/upgrades.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrades.js","sourceRoot":"","sources":["../../src/core/upgrades.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,9 +5,16 @@ export type { CatalogFormula, Formula, FormulaKind, FormulaSearchOptions } from
5
5
  export { installFormula, listInstalled, readReceipt, resolveDependencies, uninstallFormula } from "./core/installations.js";
6
6
  export type { InstallReceipt, InstalledFile, InstalledLink, UninstallOptions } from "./core/installations.js";
7
7
  export { builtinTargets, installForTarget, linkFormula, targetDestination, unlinkFormula } from "./core/targets.js";
8
- export type { BuiltinTarget, LinkOptions } from "./core/targets.js";
8
+ export type { BuiltinTarget, LinkOptions, TargetScope, UnlinkOptions } from "./core/targets.js";
9
+ export { targetCapabilities, targetCapability, targetOperationKinds } from "./core/target-capabilities.js";
10
+ export type { TargetCapabilityMatrix, TargetOperationKind } from "./core/target-capabilities.js";
11
+ export { planTargetInstall } from "./core/targets/planner.js";
12
+ export { getTargetAdapter } from "./core/targets/registry.js";
13
+ export type { PlannedTargetOperation, TargetAdapter, TargetContext, TargetInstallPlan } from "./core/targets/types.js";
9
14
  export { findOutdated, upgradeFormulas } from "./core/upgrades.js";
10
15
  export type { OutdatedFormula, UpgradeResult } from "./core/upgrades.js";
16
+ export { doctor, relinkFormula } from "./core/doctor.js";
17
+ export type { DoctorFinding, DoctorFindingKind, DoctorReport, RelinkOptions } from "./core/doctor.js";
11
18
  export { bundleCleanup, bundleInstall, lockfilePath, readHarnessfile } from "./core/bundle.js";
12
19
  export type { BundleCleanupResult, BundleOptions, HarnessAssetDeclaration, HarnessLock, HarnessTapDeclaration, Harnessfile } from "./core/bundle.js";
13
20
  export type { TapRecord } from "./core/state.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACpG,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC5H,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC9G,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpH,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACnE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC/F,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,WAAW,EACX,qBAAqB,EACrB,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACpG,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC5H,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC9G,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpH,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC3G,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACnE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtG,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC/F,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,WAAW,EACX,qBAAqB,EACrB,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -3,7 +3,11 @@ export { addTap, listTaps, removeTap, updateTaps } from "./core/taps.js";
3
3
  export { getFormula, loadCatalog, searchFormulas, validateTapRepository } from "./core/formulas.js";
4
4
  export { installFormula, listInstalled, readReceipt, resolveDependencies, uninstallFormula } from "./core/installations.js";
5
5
  export { builtinTargets, installForTarget, linkFormula, targetDestination, unlinkFormula } from "./core/targets.js";
6
+ export { targetCapabilities, targetCapability, targetOperationKinds } from "./core/target-capabilities.js";
7
+ export { planTargetInstall } from "./core/targets/planner.js";
8
+ export { getTargetAdapter } from "./core/targets/registry.js";
6
9
  export { findOutdated, upgradeFormulas } from "./core/upgrades.js";
10
+ export { doctor, relinkFormula } from "./core/doctor.js";
7
11
  export { bundleCleanup, bundleInstall, lockfilePath, readHarnessfile } from "./core/bundle.js";
8
12
  export { VERSION } from "./version.js";
9
13
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA+B,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEpG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE5H,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEpH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAU/F,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA+B,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEpG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE5H,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEpH,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE3G,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAO9D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEnE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAU/F,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.4.0";
1
+ export declare const VERSION = "0.5.2";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = "0.4.0";
1
+ export const VERSION = "0.5.2";
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "harnessbrew",
3
- "version": "0.4.0",
3
+ "version": "0.5.2",
4
4
  "description": "A Git-native package manager for AI Agent assets.",
5
5
  "type": "module",
6
6
  "bin": {
7
- "harnessbrew": "./dist/bin.js"
7
+ "harnessbrew": "dist/bin.js"
8
8
  },
9
9
  "main": "./dist/index.js",
10
10
  "types": "./dist/index.d.ts",
@@ -25,7 +25,8 @@
25
25
  "start": "node ./dist/bin.js",
26
26
  "test": "npm run build:test && node --test .test-dist/tests/*.test.js",
27
27
  "test:package": "npm run build && node ./scripts/package-smoke.mjs",
28
- "check": "npm run build && npm test && npm run test:package && npm pack --dry-run --cache .npm-cache",
28
+ "check": "npm run build && npm test && npm run test:package && npm run release:verify && npm pack --dry-run --cache .npm-cache",
29
+ "release:verify": "node ./scripts/release-check.mjs",
29
30
  "prepack": "npm run build"
30
31
  },
31
32
  "keywords": [