@cubis/foundry 0.3.76 → 0.3.77

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 (165) hide show
  1. package/dist/cli/core.js +57 -0
  2. package/dist/cli/core.js.map +1 -1
  3. package/mcp/src/tools/skillTools.test.ts +34 -1
  4. package/package.json +1 -1
  5. package/src/cli/core.ts +66 -0
  6. package/workflows/skills/_schema/skill-platform-attributes.json +7 -0
  7. package/workflows/skills/deep-research/SKILL.md +81 -0
  8. package/workflows/skills/deep-research/evals/assertions.md +17 -0
  9. package/workflows/skills/deep-research/evals/evals.json +56 -0
  10. package/workflows/skills/deep-research/examples/01-latest-docs-check.md +12 -0
  11. package/workflows/skills/deep-research/examples/02-ecosystem-comparison.md +12 -0
  12. package/workflows/skills/deep-research/examples/03-research-to-implementation-handoff.md +12 -0
  13. package/workflows/skills/deep-research/references/comparison-checklist.md +57 -0
  14. package/workflows/skills/deep-research/references/research-output.md +69 -0
  15. package/workflows/skills/deep-research/references/source-ladder.md +81 -0
  16. package/workflows/skills/generated/skill-audit.json +11 -2
  17. package/workflows/skills/generated/skill-catalog.json +36 -4
  18. package/workflows/skills/skills_index.json +32 -0
  19. package/workflows/workflows/agent-environment-setup/generated/route-manifest.json +7 -7
  20. package/workflows/workflows/agent-environment-setup/manifest.json +27 -1
  21. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/orchestrator.md +6 -5
  22. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/project-planner.md +4 -3
  23. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/researcher.md +8 -4
  24. package/workflows/workflows/agent-environment-setup/platforms/antigravity/commands/accessibility.toml +2 -0
  25. package/workflows/workflows/agent-environment-setup/platforms/antigravity/commands/backend.toml +2 -0
  26. package/workflows/workflows/agent-environment-setup/platforms/antigravity/commands/create.toml +2 -0
  27. package/workflows/workflows/agent-environment-setup/platforms/antigravity/commands/database.toml +2 -0
  28. package/workflows/workflows/agent-environment-setup/platforms/antigravity/commands/debug.toml +2 -0
  29. package/workflows/workflows/agent-environment-setup/platforms/antigravity/commands/devops.toml +2 -0
  30. package/workflows/workflows/agent-environment-setup/platforms/antigravity/commands/implement-track.toml +2 -0
  31. package/workflows/workflows/agent-environment-setup/platforms/antigravity/commands/migrate.toml +2 -0
  32. package/workflows/workflows/agent-environment-setup/platforms/antigravity/commands/mobile.toml +2 -0
  33. package/workflows/workflows/agent-environment-setup/platforms/antigravity/commands/onboard.toml +2 -0
  34. package/workflows/workflows/agent-environment-setup/platforms/antigravity/commands/orchestrate.toml +2 -0
  35. package/workflows/workflows/agent-environment-setup/platforms/antigravity/commands/plan.toml +2 -0
  36. package/workflows/workflows/agent-environment-setup/platforms/antigravity/commands/refactor.toml +2 -0
  37. package/workflows/workflows/agent-environment-setup/platforms/antigravity/commands/release.toml +2 -0
  38. package/workflows/workflows/agent-environment-setup/platforms/antigravity/commands/review.toml +2 -0
  39. package/workflows/workflows/agent-environment-setup/platforms/antigravity/commands/security.toml +2 -0
  40. package/workflows/workflows/agent-environment-setup/platforms/antigravity/commands/test.toml +2 -0
  41. package/workflows/workflows/agent-environment-setup/platforms/antigravity/commands/vercel.toml +2 -0
  42. package/workflows/workflows/agent-environment-setup/platforms/antigravity/rules/GEMINI.md +13 -8
  43. package/workflows/workflows/agent-environment-setup/platforms/antigravity/skills/deep-research/SKILL.md +89 -0
  44. package/workflows/workflows/agent-environment-setup/platforms/antigravity/skills/deep-research/evals/assertions.md +17 -0
  45. package/workflows/workflows/agent-environment-setup/platforms/antigravity/skills/deep-research/evals/evals.json +56 -0
  46. package/workflows/workflows/agent-environment-setup/platforms/antigravity/skills/deep-research/examples/01-latest-docs-check.md +12 -0
  47. package/workflows/workflows/agent-environment-setup/platforms/antigravity/skills/deep-research/examples/02-ecosystem-comparison.md +12 -0
  48. package/workflows/workflows/agent-environment-setup/platforms/antigravity/skills/deep-research/examples/03-research-to-implementation-handoff.md +12 -0
  49. package/workflows/workflows/agent-environment-setup/platforms/antigravity/skills/deep-research/references/comparison-checklist.md +57 -0
  50. package/workflows/workflows/agent-environment-setup/platforms/antigravity/skills/deep-research/references/research-output.md +69 -0
  51. package/workflows/workflows/agent-environment-setup/platforms/antigravity/skills/deep-research/references/source-ladder.md +81 -0
  52. package/workflows/workflows/agent-environment-setup/platforms/antigravity/workflows/onboard.md +3 -3
  53. package/workflows/workflows/agent-environment-setup/platforms/antigravity/workflows/orchestrate.md +2 -2
  54. package/workflows/workflows/agent-environment-setup/platforms/antigravity/workflows/plan.md +4 -4
  55. package/workflows/workflows/agent-environment-setup/platforms/claude/agents/orchestrator.md +6 -5
  56. package/workflows/workflows/agent-environment-setup/platforms/claude/agents/project-planner.md +4 -3
  57. package/workflows/workflows/agent-environment-setup/platforms/claude/agents/researcher.md +8 -4
  58. package/workflows/workflows/agent-environment-setup/platforms/claude/hooks/README.md +15 -0
  59. package/workflows/workflows/agent-environment-setup/platforms/claude/hooks/route-research-guard.mjs +39 -0
  60. package/workflows/workflows/agent-environment-setup/platforms/claude/hooks/settings.snippet.json +15 -0
  61. package/workflows/workflows/agent-environment-setup/platforms/claude/rules/CLAUDE.md +15 -8
  62. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/deep-research/SKILL.md +95 -0
  63. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/deep-research/evals/assertions.md +17 -0
  64. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/deep-research/evals/evals.json +56 -0
  65. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/deep-research/examples/01-latest-docs-check.md +12 -0
  66. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/deep-research/examples/02-ecosystem-comparison.md +12 -0
  67. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/deep-research/examples/03-research-to-implementation-handoff.md +12 -0
  68. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/deep-research/references/comparison-checklist.md +57 -0
  69. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/deep-research/references/research-output.md +69 -0
  70. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/deep-research/references/source-ladder.md +81 -0
  71. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/skills_index.json +32 -0
  72. package/workflows/workflows/agent-environment-setup/platforms/claude/workflows/onboard.md +3 -3
  73. package/workflows/workflows/agent-environment-setup/platforms/claude/workflows/orchestrate.md +2 -2
  74. package/workflows/workflows/agent-environment-setup/platforms/claude/workflows/plan.md +4 -4
  75. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/orchestrator.md +6 -5
  76. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/project-planner.md +4 -3
  77. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/researcher.md +8 -4
  78. package/workflows/workflows/agent-environment-setup/platforms/codex/rules/AGENTS.md +13 -8
  79. package/workflows/workflows/agent-environment-setup/platforms/codex/skills/deep-research/SKILL.md +89 -0
  80. package/workflows/workflows/agent-environment-setup/platforms/codex/skills/deep-research/evals/assertions.md +17 -0
  81. package/workflows/workflows/agent-environment-setup/platforms/codex/skills/deep-research/evals/evals.json +56 -0
  82. package/workflows/workflows/agent-environment-setup/platforms/codex/skills/deep-research/examples/01-latest-docs-check.md +12 -0
  83. package/workflows/workflows/agent-environment-setup/platforms/codex/skills/deep-research/examples/02-ecosystem-comparison.md +12 -0
  84. package/workflows/workflows/agent-environment-setup/platforms/codex/skills/deep-research/examples/03-research-to-implementation-handoff.md +12 -0
  85. package/workflows/workflows/agent-environment-setup/platforms/codex/skills/deep-research/references/comparison-checklist.md +57 -0
  86. package/workflows/workflows/agent-environment-setup/platforms/codex/skills/deep-research/references/research-output.md +69 -0
  87. package/workflows/workflows/agent-environment-setup/platforms/codex/skills/deep-research/references/source-ladder.md +81 -0
  88. package/workflows/workflows/agent-environment-setup/platforms/codex/workflows/onboard.md +3 -3
  89. package/workflows/workflows/agent-environment-setup/platforms/codex/workflows/orchestrate.md +2 -2
  90. package/workflows/workflows/agent-environment-setup/platforms/codex/workflows/plan.md +4 -4
  91. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/orchestrator.md +6 -5
  92. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/project-planner.md +4 -3
  93. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/researcher.md +8 -4
  94. package/workflows/workflows/agent-environment-setup/platforms/copilot/prompts/workflow-accessibility.prompt.md +2 -1
  95. package/workflows/workflows/agent-environment-setup/platforms/copilot/prompts/workflow-backend.prompt.md +2 -1
  96. package/workflows/workflows/agent-environment-setup/platforms/copilot/prompts/workflow-create.prompt.md +2 -1
  97. package/workflows/workflows/agent-environment-setup/platforms/copilot/prompts/workflow-database.prompt.md +2 -1
  98. package/workflows/workflows/agent-environment-setup/platforms/copilot/prompts/workflow-debug.prompt.md +2 -1
  99. package/workflows/workflows/agent-environment-setup/platforms/copilot/prompts/workflow-devops.prompt.md +2 -1
  100. package/workflows/workflows/agent-environment-setup/platforms/copilot/prompts/workflow-implement-track.prompt.md +2 -1
  101. package/workflows/workflows/agent-environment-setup/platforms/copilot/prompts/workflow-migrate.prompt.md +2 -1
  102. package/workflows/workflows/agent-environment-setup/platforms/copilot/prompts/workflow-mobile.prompt.md +2 -1
  103. package/workflows/workflows/agent-environment-setup/platforms/copilot/prompts/workflow-onboard.prompt.md +2 -1
  104. package/workflows/workflows/agent-environment-setup/platforms/copilot/prompts/workflow-orchestrate.prompt.md +2 -1
  105. package/workflows/workflows/agent-environment-setup/platforms/copilot/prompts/workflow-plan.prompt.md +2 -1
  106. package/workflows/workflows/agent-environment-setup/platforms/copilot/prompts/workflow-refactor.prompt.md +2 -1
  107. package/workflows/workflows/agent-environment-setup/platforms/copilot/prompts/workflow-release.prompt.md +2 -1
  108. package/workflows/workflows/agent-environment-setup/platforms/copilot/prompts/workflow-review.prompt.md +2 -1
  109. package/workflows/workflows/agent-environment-setup/platforms/copilot/prompts/workflow-security.prompt.md +2 -1
  110. package/workflows/workflows/agent-environment-setup/platforms/copilot/prompts/workflow-test.prompt.md +2 -1
  111. package/workflows/workflows/agent-environment-setup/platforms/copilot/prompts/workflow-vercel.prompt.md +2 -1
  112. package/workflows/workflows/agent-environment-setup/platforms/copilot/rules/copilot-instructions.md +13 -8
  113. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/deep-research/SKILL.md +94 -0
  114. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/deep-research/evals/assertions.md +17 -0
  115. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/deep-research/evals/evals.json +56 -0
  116. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/deep-research/examples/01-latest-docs-check.md +12 -0
  117. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/deep-research/examples/02-ecosystem-comparison.md +12 -0
  118. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/deep-research/examples/03-research-to-implementation-handoff.md +12 -0
  119. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/deep-research/references/comparison-checklist.md +57 -0
  120. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/deep-research/references/research-output.md +69 -0
  121. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/deep-research/references/source-ladder.md +81 -0
  122. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/skills_index.json +32 -0
  123. package/workflows/workflows/agent-environment-setup/platforms/copilot/workflows/onboard.md +3 -3
  124. package/workflows/workflows/agent-environment-setup/platforms/copilot/workflows/orchestrate.md +2 -2
  125. package/workflows/workflows/agent-environment-setup/platforms/copilot/workflows/plan.md +4 -4
  126. package/workflows/workflows/agent-environment-setup/platforms/gemini/commands/accessibility.toml +2 -0
  127. package/workflows/workflows/agent-environment-setup/platforms/gemini/commands/backend.toml +2 -0
  128. package/workflows/workflows/agent-environment-setup/platforms/gemini/commands/create.toml +2 -0
  129. package/workflows/workflows/agent-environment-setup/platforms/gemini/commands/database.toml +2 -0
  130. package/workflows/workflows/agent-environment-setup/platforms/gemini/commands/debug.toml +2 -0
  131. package/workflows/workflows/agent-environment-setup/platforms/gemini/commands/devops.toml +2 -0
  132. package/workflows/workflows/agent-environment-setup/platforms/gemini/commands/implement-track.toml +2 -0
  133. package/workflows/workflows/agent-environment-setup/platforms/gemini/commands/migrate.toml +2 -0
  134. package/workflows/workflows/agent-environment-setup/platforms/gemini/commands/mobile.toml +2 -0
  135. package/workflows/workflows/agent-environment-setup/platforms/gemini/commands/onboard.toml +2 -0
  136. package/workflows/workflows/agent-environment-setup/platforms/gemini/commands/orchestrate.toml +2 -0
  137. package/workflows/workflows/agent-environment-setup/platforms/gemini/commands/plan.toml +2 -0
  138. package/workflows/workflows/agent-environment-setup/platforms/gemini/commands/refactor.toml +2 -0
  139. package/workflows/workflows/agent-environment-setup/platforms/gemini/commands/release.toml +2 -0
  140. package/workflows/workflows/agent-environment-setup/platforms/gemini/commands/review.toml +2 -0
  141. package/workflows/workflows/agent-environment-setup/platforms/gemini/commands/security.toml +2 -0
  142. package/workflows/workflows/agent-environment-setup/platforms/gemini/commands/test.toml +2 -0
  143. package/workflows/workflows/agent-environment-setup/platforms/gemini/commands/vercel.toml +2 -0
  144. package/workflows/workflows/agent-environment-setup/platforms/gemini/rules/GEMINI.md +13 -8
  145. package/workflows/workflows/agent-environment-setup/platforms/gemini/skills/deep-research/SKILL.md +89 -0
  146. package/workflows/workflows/agent-environment-setup/platforms/gemini/skills/deep-research/evals/assertions.md +17 -0
  147. package/workflows/workflows/agent-environment-setup/platforms/gemini/skills/deep-research/evals/evals.json +56 -0
  148. package/workflows/workflows/agent-environment-setup/platforms/gemini/skills/deep-research/examples/01-latest-docs-check.md +12 -0
  149. package/workflows/workflows/agent-environment-setup/platforms/gemini/skills/deep-research/examples/02-ecosystem-comparison.md +12 -0
  150. package/workflows/workflows/agent-environment-setup/platforms/gemini/skills/deep-research/examples/03-research-to-implementation-handoff.md +12 -0
  151. package/workflows/workflows/agent-environment-setup/platforms/gemini/skills/deep-research/references/comparison-checklist.md +57 -0
  152. package/workflows/workflows/agent-environment-setup/platforms/gemini/skills/deep-research/references/research-output.md +69 -0
  153. package/workflows/workflows/agent-environment-setup/platforms/gemini/skills/deep-research/references/source-ladder.md +81 -0
  154. package/workflows/workflows/agent-environment-setup/platforms/gemini/workflows/onboard.md +3 -3
  155. package/workflows/workflows/agent-environment-setup/platforms/gemini/workflows/orchestrate.md +2 -2
  156. package/workflows/workflows/agent-environment-setup/platforms/gemini/workflows/plan.md +4 -4
  157. package/workflows/workflows/agent-environment-setup/shared/agents/orchestrator.md +2 -1
  158. package/workflows/workflows/agent-environment-setup/shared/agents/project-planner.md +2 -1
  159. package/workflows/workflows/agent-environment-setup/shared/agents/researcher.md +5 -1
  160. package/workflows/workflows/agent-environment-setup/shared/rules/STEERING.md +44 -13
  161. package/workflows/workflows/agent-environment-setup/shared/rules/overrides/claude.md +2 -0
  162. package/workflows/workflows/agent-environment-setup/shared/rules/overrides/gemini.md +20 -0
  163. package/workflows/workflows/agent-environment-setup/shared/workflows/onboard.md +1 -1
  164. package/workflows/workflows/agent-environment-setup/shared/workflows/orchestrate.md +1 -1
  165. package/workflows/workflows/agent-environment-setup/shared/workflows/plan.md +2 -2
package/dist/cli/core.js CHANGED
@@ -137,17 +137,20 @@ const WORKFLOW_PROFILES = {
137
137
  workflowDirs: [".claude/workflows"],
138
138
  agentDirs: [".claude/agents"],
139
139
  skillDirs: [".claude/skills"],
140
+ hookDirs: [".claude/hooks"],
140
141
  ruleFilesByPriority: ["CLAUDE.md"],
141
142
  },
142
143
  global: {
143
144
  workflowDirs: ["~/.claude/workflows"],
144
145
  agentDirs: ["~/.claude/agents"],
145
146
  skillDirs: ["~/.claude/skills"],
147
+ hookDirs: ["~/.claude/hooks"],
146
148
  ruleFilesByPriority: ["~/.claude/CLAUDE.md"],
147
149
  },
148
150
  detectorPaths: [
149
151
  "CLAUDE.md",
150
152
  ".claude",
153
+ ".claude/hooks",
151
154
  ".claude/rules",
152
155
  ".claude/settings.json",
153
156
  ],
@@ -2379,6 +2382,7 @@ async function recordBundleInstallState({ scope, platform, bundleId, artifacts,
2379
2382
  skills: artifacts.skills.map(toPosixPath),
2380
2383
  commands: (artifacts.commands || []).map(toPosixPath),
2381
2384
  prompts: (artifacts.prompts || []).map(toPosixPath),
2385
+ hooks: (artifacts.hooks || []).map(toPosixPath),
2382
2386
  };
2383
2387
  await writeState(scope, state, cwd);
2384
2388
  }
@@ -2404,6 +2408,7 @@ async function resolveProfilePaths(profileId, scope, cwd = process.cwd()) {
2404
2408
  const skillDirs = Array.isArray(cfg.skillDirs) ? cfg.skillDirs : [];
2405
2409
  const commandDirs = Array.isArray(cfg.commandDirs) ? cfg.commandDirs : [];
2406
2410
  const promptDirs = Array.isArray(cfg.promptDirs) ? cfg.promptDirs : [];
2411
+ const hookDirs = Array.isArray(cfg.hookDirs) ? cfg.hookDirs : [];
2407
2412
  const resolvePreferredDir = async (dirs) => {
2408
2413
  if (dirs.length === 0)
2409
2414
  return null;
@@ -2420,6 +2425,7 @@ async function resolveProfilePaths(profileId, scope, cwd = process.cwd()) {
2420
2425
  skillsDir: await resolvePreferredDir(skillDirs),
2421
2426
  commandsDir: commandDirs[0] ? expandPath(commandDirs[0], cwd) : null,
2422
2427
  promptsDir: promptDirs[0] ? expandPath(promptDirs[0], cwd) : null,
2428
+ hooksDir: hookDirs[0] ? expandPath(hookDirs[0], cwd) : null,
2423
2429
  ruleFilesByPriority: cfg.ruleFilesByPriority.map((filePath) => expandPath(filePath, cwd)),
2424
2430
  };
2425
2431
  }
@@ -2450,6 +2456,7 @@ function resolveProfilePathCandidates(profileId, scope, cwd = process.cwd()) {
2450
2456
  skillsDirs: expandUniquePaths(cfg.skillDirs, cwd),
2451
2457
  commandsDirs: expandUniquePaths(cfg.commandDirs, cwd),
2452
2458
  promptsDirs: expandUniquePaths(cfg.promptDirs, cwd),
2459
+ hooksDirs: expandUniquePaths(cfg.hookDirs, cwd),
2453
2460
  ruleFilesByPriority: expandUniquePaths(cfg.ruleFilesByPriority, cwd),
2454
2461
  };
2455
2462
  }
@@ -2474,6 +2481,7 @@ async function resolveArtifactProfilePaths(profileId, scope, cwd = process.cwd()
2474
2481
  agentsDir: workspacePaths.agentsDir,
2475
2482
  commandsDir: workspacePaths.commandsDir ?? scopedPaths.commandsDir,
2476
2483
  promptsDir: workspacePaths.promptsDir ?? scopedPaths.promptsDir,
2484
+ hooksDir: scopedPaths.hooksDir,
2477
2485
  };
2478
2486
  }
2479
2487
  async function listBundleIds() {
@@ -5490,6 +5498,11 @@ async function installBundleArtifacts({ bundleId, manifest, platform, scope, ove
5490
5498
  platformSpec.prompts.length > 0) {
5491
5499
  await mkdir(profilePaths.promptsDir, { recursive: true });
5492
5500
  }
5501
+ if (profilePaths.hooksDir &&
5502
+ Array.isArray(platformSpec.hooks) &&
5503
+ platformSpec.hooks.some((entry) => typeof entry?.file === "string")) {
5504
+ await mkdir(profilePaths.hooksDir, { recursive: true });
5505
+ }
5493
5506
  }
5494
5507
  const bundleRoot = path.join(agentAssetsRoot(), "workflows", bundleId);
5495
5508
  const platformRoot = path.join(bundleRoot, "platforms", platform);
@@ -5501,6 +5514,7 @@ async function installBundleArtifacts({ bundleId, manifest, platform, scope, ove
5501
5514
  skills: [],
5502
5515
  commands: [],
5503
5516
  prompts: [],
5517
+ hooks: [],
5504
5518
  };
5505
5519
  // Bind useSymlinks into copyArtifact so every call site inherits it
5506
5520
  const copyArt = (args) => copyArtifact({ ...args, useSymlinks });
@@ -5594,6 +5608,35 @@ async function installBundleArtifacts({ bundleId, manifest, platform, scope, ove
5594
5608
  else
5595
5609
  installed.push(destination);
5596
5610
  }
5611
+ const hookFiles = Array.isArray(platformSpec.hooks)
5612
+ ? platformSpec.hooks
5613
+ .map((entry) => typeof entry === "string"
5614
+ ? entry
5615
+ : typeof entry?.file === "string"
5616
+ ? entry.file
5617
+ : null)
5618
+ .filter(Boolean)
5619
+ : [];
5620
+ for (const hookFile of hookFiles) {
5621
+ if (!profilePaths.hooksDir)
5622
+ continue;
5623
+ const source = path.join(platformRoot, "hooks", hookFile);
5624
+ const destination = path.join(profilePaths.hooksDir, path.basename(hookFile));
5625
+ if (!(await pathExists(source))) {
5626
+ throw new Error(`Missing hook source file: ${source}`);
5627
+ }
5628
+ const result = await copyArt({
5629
+ source,
5630
+ destination,
5631
+ overwrite,
5632
+ dryRun,
5633
+ });
5634
+ artifacts.hooks.push(destination);
5635
+ if (result.action === "skipped" || result.action === "would-skip")
5636
+ skipped.push(destination);
5637
+ else
5638
+ installed.push(destination);
5639
+ }
5597
5640
  if (shouldInstallPlatformSkills) {
5598
5641
  const agentSkillDependencies = await resolvePlatformAgentSkillDependencies({
5599
5642
  platformRoot,
@@ -5818,6 +5861,20 @@ async function removeBundleArtifacts({ bundleId, manifest, platform, scope, prof
5818
5861
  if (await safeRemove(destination, dryRun))
5819
5862
  removed.push(destination);
5820
5863
  }
5864
+ for (const hookEntry of platformSpec.hooks || []) {
5865
+ if (!profilePaths.hooksDir)
5866
+ continue;
5867
+ const hookFile = typeof hookEntry === "string"
5868
+ ? hookEntry
5869
+ : typeof hookEntry?.file === "string"
5870
+ ? hookEntry.file
5871
+ : null;
5872
+ if (!hookFile)
5873
+ continue;
5874
+ const destination = path.join(profilePaths.hooksDir, path.basename(hookFile));
5875
+ if (await safeRemove(destination, dryRun))
5876
+ removed.push(destination);
5877
+ }
5821
5878
  const skillIds = await resolveInstallSkillIds({
5822
5879
  platformSpec,
5823
5880
  extraSkillIds: [],