agemon 6.0.0 → 6.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/README.md +313 -64
  2. package/assets/skills/design/agemon-design/NOTICE.md +34 -0
  3. package/assets/skills/design/agemon-design/SKILL.md +95 -358
  4. package/assets/skills/design/agemon-design/references/actions.md +215 -0
  5. package/assets/skills/design/agemon-design/references/brief.md +13 -9
  6. package/assets/skills/design/agemon-design/references/core-rules.md +166 -0
  7. package/assets/skills/design/agemon-design/references/craft-intent.md +16 -14
  8. package/assets/skills/design/agemon-design/references/dashboard.md +1 -1
  9. package/assets/skills/design/agemon-design/references/dataviz.md +8 -8
  10. package/assets/skills/design/agemon-design/references/finish-bar.md +1 -1
  11. package/assets/skills/design/agemon-design/references/heuristics.md +56 -140
  12. package/assets/skills/design/agemon-design/references/inspiration.md +6 -6
  13. package/assets/skills/design/agemon-design/references/loops.md +9 -9
  14. package/assets/skills/design/agemon-design/references/motion.md +1 -1
  15. package/assets/skills/design/agemon-design/references/personas.md +4 -4
  16. package/assets/skills/design/{agemon-design-dashboard/SKILL.md → agemon-design/references/preset-dashboard.md} +8 -12
  17. package/assets/skills/design/{agemon-design-editorial/SKILL.md → agemon-design/references/preset-editorial.md} +5 -9
  18. package/assets/skills/design/{agemon-design-minimal/SKILL.md → agemon-design/references/preset-minimal.md} +8 -12
  19. package/assets/skills/design/agemon-design/references/principles-catalog.md +3 -3
  20. package/assets/skills/design/agemon-design/references/recipe-auth.md +3 -3
  21. package/assets/skills/design/agemon-design/references/recipe-dashboard.md +2 -2
  22. package/assets/skills/design/agemon-design/references/recipe-landing.md +9 -11
  23. package/assets/skills/design/agemon-design/references/review.md +7 -7
  24. package/assets/skills/design/agemon-design/references/routing.md +143 -0
  25. package/assets/skills/design/agemon-design/references/spec.md +8 -8
  26. package/assets/skills/design/agemon-design/references/stack.md +1 -1
  27. package/assets/skills/design/agemon-design/references/stage-assets.md +106 -0
  28. package/assets/skills/design/agemon-design/references/stage-build.md +46 -0
  29. package/assets/skills/design/agemon-design/references/stage-critique.md +34 -0
  30. package/assets/skills/design/agemon-design/references/stage-directions.md +44 -0
  31. package/assets/skills/design/agemon-design/references/stage-intake.md +34 -0
  32. package/assets/skills/design/agemon-design/references/stage-verify.md +44 -0
  33. package/assets/skills/design/agemon-design/references/state-design.md +1 -1
  34. package/assets/skills/design/agemon-design/references/tells-2026-11.md +32 -0
  35. package/assets/skills/design/agemon-design/references/themes.md +24 -20
  36. package/assets/skills/design/agemon-design/references/third-party-licenses.md +323 -0
  37. package/assets/skills/design/agemon-design/references/typography.md +11 -9
  38. package/assets/skills/design/agemon-design/scripts/audit-page.js +532 -0
  39. package/assets/skills/design/agemon-design/scripts/check-source.mjs +358 -0
  40. package/assets/skills/design/agemon-design/scripts/deal.mjs +231 -0
  41. package/assets/skills/design/agemon-design/scripts/inventory.mjs +676 -0
  42. package/assets/skills/{design/agemon-design-dashboard → essentials/web-design-guidelines}/LICENSE +1 -1
  43. package/assets/skills/essentials/web-design-guidelines/NOTICE.md +14 -0
  44. package/assets/skills/essentials/web-design-guidelines/SKILL.md +18 -0
  45. package/assets/skills/essentials/web-design-guidelines/references/guidelines.md +184 -0
  46. package/assets/skills/{design/agemon-design-minimal → essentials/writing-guidelines}/LICENSE +1 -1
  47. package/assets/skills/essentials/writing-guidelines/NOTICE.md +14 -0
  48. package/assets/skills/essentials/writing-guidelines/SKILL.md +18 -0
  49. package/assets/skills/essentials/writing-guidelines/references/guidelines.md +250 -0
  50. package/assets/skills/founder/agemon-founder-board/LICENSE +21 -0
  51. package/assets/skills/founder/agemon-founder-board/NOTICE.md +11 -0
  52. package/assets/skills/founder/agemon-founder-board/SKILL.md +111 -0
  53. package/assets/skills/founder/agemon-founder-board/lenses.md +84 -0
  54. package/assets/skills/founder/agemon-founder-brand/LICENSE +21 -0
  55. package/assets/skills/founder/agemon-founder-brand/NOTICE.md +12 -0
  56. package/assets/skills/founder/agemon-founder-brand/SKILL.md +77 -0
  57. package/assets/skills/founder/agemon-founder-cfo/LICENSE +21 -0
  58. package/assets/skills/founder/agemon-founder-cfo/NOTICE.md +12 -0
  59. package/assets/skills/founder/agemon-founder-cfo/SKILL.md +109 -0
  60. package/assets/skills/founder/agemon-founder-cfo/example.json +27 -0
  61. package/assets/skills/founder/agemon-founder-cfo/unit_economics.py +270 -0
  62. package/assets/skills/founder/agemon-founder-competitors/LICENSE +21 -0
  63. package/assets/skills/founder/agemon-founder-competitors/NOTICE.md +12 -0
  64. package/assets/skills/founder/agemon-founder-competitors/SKILL.md +84 -0
  65. package/assets/skills/founder/agemon-founder-consumer/LICENSE +21 -0
  66. package/assets/skills/founder/agemon-founder-consumer/NOTICE.md +11 -0
  67. package/assets/skills/founder/agemon-founder-consumer/SKILL.md +126 -0
  68. package/assets/skills/founder/agemon-founder-consumer/customer.example.json +34 -0
  69. package/assets/skills/founder/agemon-founder-consumer/panel.py +424 -0
  70. package/assets/skills/founder/agemon-founder-consumer/pitch.example.md +3 -0
  71. package/assets/skills/founder/agemon-founder-launch/LICENSE +21 -0
  72. package/assets/skills/founder/agemon-founder-launch/NOTICE.md +11 -0
  73. package/assets/skills/founder/agemon-founder-launch/SKILL.md +65 -0
  74. package/assets/skills/founder/agemon-founder-marketing/LICENSE +21 -0
  75. package/assets/skills/founder/agemon-founder-marketing/NOTICE.md +11 -0
  76. package/assets/skills/founder/agemon-founder-marketing/SKILL.md +80 -0
  77. package/assets/skills/founder/agemon-founder-offer/LICENSE +21 -0
  78. package/assets/skills/founder/agemon-founder-offer/NOTICE.md +11 -0
  79. package/assets/skills/founder/agemon-founder-offer/SKILL.md +75 -0
  80. package/assets/skills/founder/agemon-founder-ops/LICENSE +21 -0
  81. package/assets/skills/founder/agemon-founder-ops/NOTICE.md +12 -0
  82. package/assets/skills/founder/agemon-founder-ops/SKILL.md +77 -0
  83. package/assets/skills/founder/agemon-founder-plan/LICENSE +21 -0
  84. package/assets/skills/founder/agemon-founder-plan/NOTICE.md +11 -0
  85. package/assets/skills/founder/agemon-founder-plan/SKILL.md +88 -0
  86. package/assets/skills/founder/agemon-founder-plan/compile.py +178 -0
  87. package/assets/skills/founder/agemon-founder-pricing/LICENSE +21 -0
  88. package/assets/skills/founder/agemon-founder-pricing/NOTICE.md +12 -0
  89. package/assets/skills/founder/agemon-founder-pricing/SKILL.md +92 -0
  90. package/assets/skills/founder/agemon-founder-pricing/van_westendorp.py +172 -0
  91. package/assets/skills/{design/agemon-design-editorial → output-style/agemon-adhd}/LICENSE +1 -1
  92. package/assets/skills/output-style/agemon-adhd/NOTICE.md +13 -0
  93. package/assets/skills/output-style/agemon-adhd/SKILL.md +138 -0
  94. package/assets/skills/security/agemon-security-audit/AI-AND-LLM.md +83 -0
  95. package/assets/skills/security/agemon-security-audit/ATTACK-CLASSES.md +130 -0
  96. package/assets/skills/security/agemon-security-audit/CLIENT-SIDE.md +83 -0
  97. package/assets/skills/security/agemon-security-audit/CLOUD-AND-DEPLOYMENT.md +86 -0
  98. package/assets/skills/security/agemon-security-audit/DATA-ISOLATION-AND-LIFECYCLE.md +84 -0
  99. package/assets/skills/security/agemon-security-audit/DESKTOP-MOBILE-AND-LOCAL-IPC.md +89 -0
  100. package/assets/skills/security/agemon-security-audit/HUNTING.md +251 -0
  101. package/assets/skills/security/agemon-security-audit/LICENSE +21 -0
  102. package/assets/skills/security/agemon-security-audit/MEMORY-SAFETY-AND-BINARY.md +101 -0
  103. package/assets/skills/security/agemon-security-audit/NOTICE.md +12 -0
  104. package/assets/skills/security/agemon-security-audit/PROTOCOLS-RPC-AND-MESSAGING.md +81 -0
  105. package/assets/skills/security/agemon-security-audit/RECONNAISSANCE.md +156 -0
  106. package/assets/skills/security/agemon-security-audit/RESOURCE-EXHAUSTION-AND-AVAILABILITY.md +78 -0
  107. package/assets/skills/security/agemon-security-audit/SKILL.md +192 -0
  108. package/assets/skills/security/agemon-security-audit/SUPPLY-CHAIN-AND-RELEASE.md +73 -0
  109. package/assets/skills/security/agemon-security-audit/VALIDATION-AND-REPORTING.md +186 -0
  110. package/assets/skills/security/agemon-security-audit/WEB-PROTOCOL-AND-AUTH.md +105 -0
  111. package/assets/skills/security/agemon-security-audit/report-schema.json +461 -0
  112. package/assets/skills/security/agemon-security-audit/validate-coverage-ledger.cjs +872 -0
  113. package/assets/skills/security/agemon-security-audit/validate-findings.cjs +773 -0
  114. package/assets/skills/workflow/agemon-brainstorming/LICENSE +21 -0
  115. package/assets/skills/workflow/agemon-brainstorming/NOTICE.md +14 -0
  116. package/assets/skills/workflow/agemon-brainstorming/SKILL.md +287 -0
  117. package/assets/skills/workflow/agemon-brainstorming/builder-check-prompt.md +23 -0
  118. package/assets/skills/workflow/agemon-dispatching-parallel-agents/LICENSE +21 -0
  119. package/assets/skills/workflow/agemon-dispatching-parallel-agents/NOTICE.md +13 -0
  120. package/assets/skills/workflow/agemon-dispatching-parallel-agents/SKILL.md +167 -0
  121. package/assets/skills/workflow/agemon-executing-plans/LICENSE +21 -0
  122. package/assets/skills/workflow/agemon-executing-plans/NOTICE.md +15 -0
  123. package/assets/skills/workflow/agemon-executing-plans/SKILL.md +322 -0
  124. package/assets/skills/workflow/agemon-executing-plans/scripts/task-done +55 -0
  125. package/assets/skills/workflow/agemon-executing-plans/scripts/task-start +32 -0
  126. package/assets/skills/workflow/agemon-finishing-a-development-branch/LICENSE +21 -0
  127. package/assets/skills/workflow/agemon-finishing-a-development-branch/NOTICE.md +13 -0
  128. package/assets/skills/workflow/agemon-finishing-a-development-branch/SKILL.md +225 -0
  129. package/assets/skills/workflow/agemon-subagent-driven-development/LICENSE +21 -0
  130. package/assets/skills/workflow/agemon-subagent-driven-development/NOTICE.md +15 -0
  131. package/assets/skills/workflow/agemon-subagent-driven-development/SKILL.md +339 -0
  132. package/assets/skills/workflow/agemon-subagent-driven-development/code-reviewer.md +198 -0
  133. package/assets/skills/workflow/agemon-subagent-driven-development/implementer-prompt.md +154 -0
  134. package/assets/skills/workflow/agemon-subagent-driven-development/re-review-prompt.md +116 -0
  135. package/assets/skills/workflow/agemon-subagent-driven-development/references/batching.md +11 -0
  136. package/assets/skills/workflow/agemon-subagent-driven-development/references/cannot-verify.md +10 -0
  137. package/assets/skills/workflow/agemon-subagent-driven-development/references/final-review.md +49 -0
  138. package/assets/skills/workflow/agemon-subagent-driven-development/references/fix-loop.md +77 -0
  139. package/assets/skills/workflow/agemon-subagent-driven-development/references/handling-reports.md +15 -0
  140. package/assets/skills/workflow/agemon-subagent-driven-development/references/preflight.md +26 -0
  141. package/assets/skills/workflow/agemon-subagent-driven-development/references/resuming.md +12 -0
  142. package/assets/skills/workflow/agemon-subagent-driven-development/references/role-scout.md +18 -0
  143. package/assets/skills/workflow/agemon-subagent-driven-development/references/role-worker.md +19 -0
  144. package/assets/skills/workflow/agemon-subagent-driven-development/scripts/review-package +64 -0
  145. package/assets/skills/workflow/agemon-subagent-driven-development/scripts/sdd-repo +54 -0
  146. package/assets/skills/workflow/agemon-subagent-driven-development/scripts/sdd-workspace +110 -0
  147. package/assets/skills/workflow/agemon-subagent-driven-development/scripts/task-brief +108 -0
  148. package/assets/skills/workflow/agemon-subagent-driven-development/task-reviewer-prompt.md +209 -0
  149. package/assets/skills/workflow/agemon-test-driven-development/LICENSE +21 -0
  150. package/assets/skills/workflow/agemon-test-driven-development/NOTICE.md +14 -0
  151. package/assets/skills/workflow/agemon-test-driven-development/SKILL.md +330 -0
  152. package/assets/skills/workflow/agemon-test-driven-development/writing-good-tests.md +198 -0
  153. package/assets/skills/workflow/agemon-using-git-worktrees/LICENSE +21 -0
  154. package/assets/skills/workflow/agemon-using-git-worktrees/NOTICE.md +13 -0
  155. package/assets/skills/workflow/agemon-using-git-worktrees/SKILL.md +167 -0
  156. package/assets/skills/workflow/agemon-writing-plans/LICENSE +21 -0
  157. package/assets/skills/workflow/agemon-writing-plans/NOTICE.md +13 -0
  158. package/assets/skills/workflow/agemon-writing-plans/SKILL.md +204 -0
  159. package/dist/{chunk-5LATHJYU.js → chunk-ZZBF3GOV.js} +369 -944
  160. package/dist/chunk-ZZBF3GOV.js.map +1 -0
  161. package/dist/{fake-subprocess-2BETWZVZ.js → fake-subprocess-IV4ML77S.js} +3 -33
  162. package/dist/fake-subprocess-IV4ML77S.js.map +1 -0
  163. package/dist/index.js +3477 -731
  164. package/dist/index.js.map +1 -1
  165. package/package.json +8 -1
  166. package/assets/skills/design/agemon-design/references/agents.md +0 -63
  167. package/assets/skills/design/agemon-design-dashboard/NOTICE.md +0 -9
  168. package/assets/skills/design/agemon-design-editorial/NOTICE.md +0 -9
  169. package/assets/skills/design/agemon-design-minimal/NOTICE.md +0 -9
  170. package/dist/chunk-5LATHJYU.js.map +0 -1
  171. package/dist/fake-subprocess-2BETWZVZ.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/core/fake-subprocess.ts"],"sourcesContent":["import {\n closeSync,\n cpSync,\n existsSync,\n lstatSync,\n mkdirSync,\n openSync,\n readdirSync,\n readFileSync,\n rmSync,\n statSync,\n unlinkSync,\n writeFileSync,\n} from \"node:fs\";\nimport { basename, dirname, isAbsolute, join, relative } from \"node:path\";\nimport { resolveHomeDirectory } from \"../platform/home.js\";\nimport {\n AGNIX_VERSION,\n CODE_REVIEW_GRAPH_PACKAGE_SPEC,\n CODE_REVIEW_GRAPH_VERSION,\n ESSENTIALS_SKILLS_COMMIT,\n} from \"../plugins/pins.js\";\nimport { SKILL_GROUPS } from \"../plugins/skills/catalog.js\";\nimport { skillPathInRepository } from \"../plugins/skills/pinned-source.js\";\nimport { isLeftOutBySkillsCli } from \"../plugins/skills/skill-tree.js\";\nimport { SKILLS_CLI_PATH_IN_TOOLS_DIR } from \"../plugins/skills/skills-cli.js\";\nimport {\n CANONICAL_SKILLS_DIRECTORY,\n CLAUDE_SKILLS_DIRECTORY,\n SKILLS_LOCK_FILE,\n} from \"../plugins/skills/skills-cli-targets.js\";\nimport { isPlainSkillName } from \"./config.js\";\nimport {\n FAKE_PINNED_SKILL_MANIFEST_FILE,\n fakePinnedSkillManifest,\n} from \"./fake-pinned-skills.js\";\nimport { sha256Hex } from \"./fingerprint.js\";\nimport { resolveStateRoot } from \"./state-root.js\";\nimport type { SubprocessResult } from \"./subprocess-runner.js\";\nimport type {\n VerifiedBinaryInstaller,\n VerifiedBinaryInstallRequest,\n} from \"./verified-binary-installer.js\";\n\nconst FAKE_CRG_ON_PATH = \"/fake/bin/code-review-graph\";\nconst PINNED_SKILLS_CLI_SUFFIX = `/${SKILLS_CLI_PATH_IN_TOOLS_DIR}`;\nconst FAKE_LOCK_VERSION = 1;\n\nfunction formatCommand(command: string, args: string[]): string {\n return [command, ...args].join(\" \");\n}\n\nlet fakeCrgInstalledState: boolean | null = null;\nlet fakeInstalledGlobalNpmPackageNames: Set<string> | null = null;\nlet fakeVersionedAgentBinaryNames: Set<string> | null = null;\nlet fakeUsableAgentBinaryNames: Set<string> | null = null;\nlet fakeStateSignature: string | null = null;\nlet fakeVerifiedBinaryInstallRequests: VerifiedBinaryInstallRequest[] = [];\n\nfunction buildFakeStateSignature(): string {\n return [\n process.env.AGEMON_FAKE_PREINSTALLED_CRG ?? \"\",\n process.env.AGEMON_FAKE_PREINSTALLED_NPM_PACKAGES ?? \"\",\n process.env.AGEMON_FAKE_INSTALLED_AGENTS ?? \"\",\n process.env.AGEMON_FAKE_USABLE_AGENTS ?? \"\",\n ].join(\"||\");\n}\n\nfunction fakeGlobalNpmStatePath(): string {\n return join(resolveStateRoot(), \"agemon-fake\", \"npm-global.json\");\n}\n\nfunction saveFakeGlobalNpmPackages(): void {\n if (fakeInstalledGlobalNpmPackageNames?.size === 0) {\n rmSync(fakeGlobalNpmStatePath(), { force: true });\n return;\n }\n mkdirSync(dirname(fakeGlobalNpmStatePath()), { recursive: true });\n writeFileSync(\n fakeGlobalNpmStatePath(),\n JSON.stringify([...(fakeInstalledGlobalNpmPackageNames ?? [])]),\n );\n}\n\nfunction loadSavedFakeGlobalNpmPackages(): string[] | null {\n if (!existsSync(fakeGlobalNpmStatePath())) {\n return null;\n }\n return JSON.parse(readFileSync(fakeGlobalNpmStatePath(), \"utf8\"));\n}\n\nexport function resetFakeSubprocessState(): void {\n rmSync(fakeGlobalNpmStatePath(), { force: true });\n fakeCrgInstalledState = null;\n fakeInstalledGlobalNpmPackageNames = null;\n fakeVersionedAgentBinaryNames = null;\n fakeUsableAgentBinaryNames = null;\n fakeStateSignature = null;\n fakeVerifiedBinaryInstallRequests = [];\n}\n\nexport function createFakeVerifiedBinaryInstaller(): VerifiedBinaryInstaller {\n return {\n async install(request) {\n initializeFakeStateIfNeeded();\n fakeVerifiedBinaryInstallRequests.push(request);\n fakeInstalledGlobalNpmPackageNames?.add(request.packageName);\n saveFakeGlobalNpmPackages();\n },\n async inspect(request) {\n initializeFakeStateIfNeeded();\n return fakeInstalledGlobalNpmPackageNames?.has(request.packageName)\n ? { kind: \"installed\", version: AGNIX_VERSION, differences: [] }\n : { kind: \"absent\" };\n },\n };\n}\n\nexport function takeFakeVerifiedBinaryInstallRequests(): VerifiedBinaryInstallRequest[] {\n return fakeVerifiedBinaryInstallRequests.splice(0);\n}\n\nfunction initializeFakeStateIfNeeded(): void {\n const currentStateSignature = buildFakeStateSignature();\n if (\n fakeCrgInstalledState !== null &&\n fakeStateSignature === currentStateSignature\n ) {\n return;\n }\n fakeStateSignature = currentStateSignature;\n\n fakeCrgInstalledState = process.env.AGEMON_FAKE_PREINSTALLED_CRG === \"1\";\n\n const preinstalledGlobalNpmPackages =\n process.env.AGEMON_FAKE_PREINSTALLED_NPM_PACKAGES?.split(\",\")\n .map((packageName) => packageName.trim())\n .filter((packageName) => packageName.length > 0);\n fakeInstalledGlobalNpmPackageNames = new Set(\n loadSavedFakeGlobalNpmPackages() ?? preinstalledGlobalNpmPackages ?? [],\n );\n\n const versionedAgentBinaryNames =\n process.env.AGEMON_FAKE_INSTALLED_AGENTS?.split(\",\")\n .map((binaryName) => binaryName.trim())\n .filter((binaryName) => binaryName.length > 0);\n fakeVersionedAgentBinaryNames = new Set(versionedAgentBinaryNames ?? []);\n\n const usableAgentBinaryNames = process.env.AGEMON_FAKE_USABLE_AGENTS?.split(\n \",\",\n )\n .map((binaryName) => binaryName.trim())\n .filter((binaryName) => binaryName.length > 0);\n fakeUsableAgentBinaryNames = new Set(usableAgentBinaryNames ?? []);\n}\n\nfunction readOptionValue(\n args: string[],\n optionName: string,\n): string | undefined {\n const optionIndex = args.indexOf(optionName);\n if (optionIndex < 0) {\n return undefined;\n }\n\n return args[optionIndex + 1];\n}\n\nfunction declaredSkillName(\n manifestPath: string,\n directoryName: string,\n): string {\n const nameLine = readFileSync(manifestPath, \"utf8\")\n .split(\"\\n\")\n .find((line) => line.startsWith(\"name:\"));\n return nameLine?.slice(\"name:\".length).trim() || directoryName;\n}\n\nfunction installedSkillNamesIn(skillsDirectory: string): string[] {\n if (!existsSync(skillsDirectory)) {\n return [];\n }\n return readdirSync(skillsDirectory).flatMap((directoryName) => {\n const manifestPath = join(skillsDirectory, directoryName, \"SKILL.md\");\n return existsSync(manifestPath)\n ? [declaredSkillName(manifestPath, directoryName)]\n : [];\n });\n}\n\nfunction buildFakeSkillsList(cwd: string): SubprocessResult {\n const names = new Set([\n ...installedSkillNamesIn(join(cwd, CANONICAL_SKILLS_DIRECTORY)),\n ...installedSkillNamesIn(join(cwd, CLAUDE_SKILLS_DIRECTORY)),\n ]);\n const skills = [...names].sort().map((name) => ({\n name,\n path: join(cwd, CLAUDE_SKILLS_DIRECTORY, name),\n scope: \"project\",\n agents: [\"Claude Code\"],\n }));\n\n return {\n code: 0,\n stdout: `${JSON.stringify(skills, null, 2)}\\n`,\n stderr: \"\",\n };\n}\n\nfunction removeInstalledCopy(copyPath: string): void {\n const stats = lstatSync(copyPath, { throwIfNoEntry: false });\n if (stats?.isSymbolicLink()) {\n unlinkSync(copyPath);\n } else if (stats !== undefined) {\n rmSync(copyPath, { recursive: true, force: true });\n }\n}\n\nfunction copyLikeSkillsCli(source: string, destination: string): void {\n cpSync(source, destination, {\n recursive: true,\n dereference: true,\n filter: (path) =>\n path === source || !isLeftOutBySkillsCli(basename(path), statSync(path)),\n });\n}\n\nfunction readFakeLockSkills(cwd: string): Record<string, unknown> {\n try {\n const parsed = JSON.parse(\n readFileSync(join(cwd, SKILLS_LOCK_FILE), \"utf8\"),\n );\n return parsed.version === FAKE_LOCK_VERSION && parsed.skills\n ? parsed.skills\n : {};\n } catch {\n return {};\n }\n}\n\nfunction writeFakeLockLikeSkillsCli(\n cwd: string,\n skills: Record<string, unknown>,\n): void {\n const sortedSkills = Object.fromEntries(\n Object.keys(skills)\n .sort()\n .map((name) => [name, skills[name]]),\n );\n writeFileSync(\n join(cwd, SKILLS_LOCK_FILE),\n `${JSON.stringify({ version: FAKE_LOCK_VERSION, skills: sortedSkills }, null, 2)}\\n`,\n );\n}\n\nfunction fakeLockEntry(packageSource: string, cwd: string) {\n const isLocal = existsSync(packageSource);\n const source = isLocal ? relative(cwd, packageSource) : packageSource;\n return {\n source,\n sourceType: isLocal ? \"local\" : \"github\",\n computedHash: sha256Hex(source),\n };\n}\n\nfunction refusedSkillName(skillName: string): SubprocessResult {\n return {\n code: 1,\n stdout: \"\",\n stderr: `the fake skills CLI refuses the skill name ${JSON.stringify(skillName)}`,\n };\n}\n\nfunction buildFakeSkillsAdd(args: string[], cwd: string): SubprocessResult {\n const packageSource = args[1];\n if (!packageSource) {\n return {\n code: 1,\n stdout: \"\",\n stderr: \"skills add requires a package source\",\n };\n }\n\n const skillName = readOptionValue(args, \"--skill\") ?? packageSource;\n if (!isPlainSkillName(skillName)) {\n return refusedSkillName(skillName);\n }\n const copyPath = join(cwd, CLAUDE_SKILLS_DIRECTORY, skillName);\n removeInstalledCopy(copyPath);\n mkdirSync(dirname(copyPath), { recursive: true });\n if (existsSync(packageSource)) {\n copyLikeSkillsCli(packageSource, copyPath);\n } else {\n mkdirSync(copyPath);\n writeFileSync(\n join(copyPath, \"SKILL.md\"),\n `---\\nname: ${skillName}\\n---\\n`,\n \"utf8\",\n );\n }\n writeFakeLockLikeSkillsCli(cwd, {\n ...readFakeLockSkills(cwd),\n [skillName]: fakeLockEntry(packageSource, cwd),\n });\n\n return {\n code: 0,\n stdout: `installed skill ${skillName} from ${packageSource}\\n`,\n stderr: \"\",\n };\n}\n\nfunction buildFakeSkillsRemove(args: string[], cwd: string): SubprocessResult {\n const agentName = readOptionValue(args, \"--agent\");\n const skillNames = args\n .slice(1)\n .filter(\n (arg) => arg.length > 0 && !arg.startsWith(\"-\") && arg !== agentName,\n );\n\n const unsafeName = skillNames.find(\n (skillName) => !isPlainSkillName(skillName),\n );\n if (unsafeName !== undefined) {\n return refusedSkillName(unsafeName);\n }\n for (const skillName of skillNames) {\n removeInstalledCopy(join(cwd, CLAUDE_SKILLS_DIRECTORY, skillName));\n rmSync(join(cwd, CANONICAL_SKILLS_DIRECTORY, skillName), {\n recursive: true,\n force: true,\n });\n const lockSkills = readFakeLockSkills(cwd);\n if (Object.hasOwn(lockSkills, skillName)) {\n delete lockSkills[skillName];\n writeFakeLockLikeSkillsCli(cwd, lockSkills);\n }\n }\n\n return {\n code: 0,\n stdout: `removed ${skillNames.length} skill(s)\\n`,\n stderr: \"\",\n };\n}\n\nfunction buildFakeSkillsCliResponse(\n args: string[],\n cwd: string | undefined,\n): SubprocessResult {\n const subcommand = args[0];\n const needsRepository = [\"list\", \"ls\", \"add\", \"remove\", \"rm\"].includes(\n subcommand ?? \"\",\n );\n if (needsRepository && cwd === undefined) {\n return {\n code: 1,\n stdout: \"\",\n stderr: \"the fake skills CLI needs the repository as its cwd\",\n };\n }\n if (cwd !== undefined && (subcommand === \"list\" || subcommand === \"ls\")) {\n return buildFakeSkillsList(cwd);\n }\n\n if (cwd !== undefined && subcommand === \"add\") {\n return buildFakeSkillsAdd(args, cwd);\n }\n\n if (cwd !== undefined && (subcommand === \"remove\" || subcommand === \"rm\")) {\n return buildFakeSkillsRemove(args, cwd);\n }\n\n return {\n code: 0,\n stdout: `[fake subprocess] skills ${args.join(\" \")}\\n`,\n stderr: \"\",\n };\n}\n\nfunction writeFakePinnedSkills(sourceDirectory: string): void {\n const commit = basename(sourceDirectory);\n for (const entry of SKILL_GROUPS.flatMap((group) => group.skills)) {\n if (entry.pinnedRepository?.commit !== commit) {\n continue;\n }\n const skillDirectory = join(\n sourceDirectory,\n skillPathInRepository(entry.skillName),\n );\n mkdirSync(skillDirectory, { recursive: true });\n writeFileSync(\n join(skillDirectory, FAKE_PINNED_SKILL_MANIFEST_FILE),\n fakePinnedSkillManifest(entry.skillName),\n \"utf8\",\n );\n }\n}\n\nexport function fakePipxHome(): string {\n return join(resolveHomeDirectory(), \".agemon\", \"fake-pipx\");\n}\n\nfunction fakeCrgVenvPath(): string {\n return join(fakePipxHome(), \"venvs\", \"code-review-graph\");\n}\n\nfunction fakeCrgStubPath(): string {\n return join(fakeCrgVenvPath(), \"bin\", \"code-review-graph\");\n}\n\nexport function fakeCodeReviewGraphOnPath(): string | undefined {\n initializeFakeStateIfNeeded();\n if (existsSync(fakeCrgStubPath())) {\n return fakeCrgStubPath();\n }\n return fakeCrgInstalledState ? FAKE_CRG_ON_PATH : undefined;\n}\n\nfunction splitPipArgs(args: string[]): string[] {\n const pipArgsFlag = args.find((arg) => arg.startsWith(\"--pip-args=\"));\n if (pipArgsFlag === undefined) {\n return [];\n }\n return [\n ...pipArgsFlag.slice(\"--pip-args=\".length).matchAll(/'([^']*)'|(\\S+)/g),\n ].map((match) => match[1] ?? match[2]);\n}\n\nfunction writeFakeCrgVenv(pipArgs: string[]): void {\n const metadataPath = join(fakeCrgVenvPath(), \"pipx_metadata.json\");\n if (existsSync(metadataPath)) {\n return;\n }\n mkdirSync(dirname(fakeCrgStubPath()), { recursive: true });\n writeFileSync(fakeCrgStubPath(), \"#!/bin/sh\\n\", { flag: \"wx\", mode: 0o755 });\n writeFileSync(join(fakeCrgVenvPath(), \"bin\", \"python\"), \"#!/bin/sh\\n\", {\n flag: \"wx\",\n mode: 0o755,\n });\n const metadata = {\n main_package: {\n package: \"code-review-graph\",\n package_version: CODE_REVIEW_GRAPH_VERSION,\n app_paths: [{ __Path__: fakeCrgStubPath(), __type__: \"Path\" }],\n pip_args: pipArgs,\n },\n pipx_metadata_version: \"0.3\",\n };\n writeFileSync(metadataPath, `${JSON.stringify(metadata, null, 2)}\\n`, {\n flag: \"wx\",\n });\n}\n\nfunction findProjectRootLikeCrg(\n cwd: string,\n repoRootOverride?: string,\n): string {\n if (repoRootOverride && existsSync(repoRootOverride)) {\n return repoRootOverride;\n }\n for (let directory = cwd; ; directory = dirname(directory)) {\n if (existsSync(join(directory, \".git\"))) {\n return directory;\n }\n if (directory === dirname(directory)) {\n return cwd;\n }\n }\n}\n\nfunction fakeGraphDatabasePath(projectRoot: string): string {\n const graphDirectory = join(projectRoot, \".code-review-graph\");\n mkdirSync(graphDirectory, { recursive: true });\n return join(graphDirectory, \"graph.db\");\n}\n\nfunction buildFakeGraph(projectRoot: string | undefined): void {\n if (projectRoot !== undefined) {\n writeFileSync(fakeGraphDatabasePath(projectRoot), \"fake graph\\n\", \"utf8\");\n }\n}\n\nfunction openFakeGraph(projectRoot: string | undefined): void {\n if (projectRoot !== undefined) {\n closeSync(openSync(fakeGraphDatabasePath(projectRoot), \"a\"));\n }\n}\n\nfunction buildFakeCrgResponse(\n command: string,\n args: string[],\n projectRoot: string | undefined,\n): SubprocessResult {\n const installed =\n fakeCrgInstalledState || (isAbsolute(command) && existsSync(command));\n if (!installed) {\n return {\n code: 1,\n stdout: \"\",\n stderr: \"code-review-graph: command not found\",\n };\n }\n\n if (args[0] === \"status\") {\n openFakeGraph(projectRoot);\n return {\n code: 0,\n stdout: \"Files: 1\\nNodes: 1\\nEdges: 1\\n\",\n stderr: \"\",\n };\n }\n\n if (args[0] === \"build\") {\n buildFakeGraph(projectRoot);\n return {\n code: 0,\n stdout: \"Graph build complete\\n\",\n stderr: \"\",\n };\n }\n\n return {\n code: 0,\n stdout: \"code-review-graph 0.0.0-fake\\n\",\n stderr: \"\",\n };\n}\n\nfunction buildFakePipxResponse(args: string[]): SubprocessResult | undefined {\n const [operation, packageName] = args;\n if (\n operation === \"install\" &&\n packageName === CODE_REVIEW_GRAPH_PACKAGE_SPEC\n ) {\n writeFakeCrgVenv(splitPipArgs(args));\n fakeCrgInstalledState = true;\n return {\n code: 0,\n stdout: \"installed package code-review-graph\\n\",\n stderr: \"\",\n };\n }\n\n if (operation === \"uninstall\" && packageName === \"code-review-graph\") {\n rmSync(fakeCrgVenvPath(), { recursive: true, force: true });\n fakeCrgInstalledState = false;\n return {\n code: 0,\n stdout: \"uninstalled package code-review-graph\\n\",\n stderr: \"\",\n };\n }\n\n return undefined;\n}\n\nfunction parseGlobalNpmPackageNames(args: string[]): string[] {\n const packageNames: string[] = [];\n\n for (let index = 1; index < args.length; index += 1) {\n const arg = args[index];\n if (!arg || arg.startsWith(\"-\")) {\n continue;\n }\n packageNames.push(arg);\n }\n\n return packageNames;\n}\n\nfunction buildFakeNpmCi(args: string[]): SubprocessResult {\n const prefix = readOptionValue(args, \"--prefix\");\n if (prefix) {\n const cliPath = join(prefix, SKILLS_CLI_PATH_IN_TOOLS_DIR);\n mkdirSync(dirname(cliPath), { recursive: true });\n writeFileSync(cliPath, \"\", \"utf8\");\n }\n return {\n code: 0,\n stdout: `[fake subprocess] npm ${args.join(\" \")}\\n`,\n stderr: \"\",\n };\n}\n\nfunction assertNpmIgnoresProjectConfig(args: string[]): void {\n const ignoresProjectConfig = args.some(\n (arg) =>\n arg === \"--global\" || arg === \"--prefix\" || arg.startsWith(\"--prefix=\"),\n );\n if (!ignoresProjectConfig) {\n throw new Error(\n `npm ${args.join(\" \")} must pass --global or --prefix, so npm never reads a .npmrc from the repository it runs in.`,\n );\n }\n}\n\nfunction buildFakeNpmResponse(args: string[]): SubprocessResult | undefined {\n const operation = args[0];\n if (!operation) {\n return undefined;\n }\n\n if (operation === \"ci\") {\n return buildFakeNpmCi(args);\n }\n\n const hasGlobalFlag = args.includes(\"-g\") || args.includes(\"--global\");\n if (operation === \"root\" && hasGlobalFlag) {\n const fakeNpmRoot = join(resolveStateRoot(), \"agemon-fake\", \"npm-root\");\n mkdirSync(fakeNpmRoot, { recursive: true });\n return { code: 0, stdout: `${fakeNpmRoot}\\n`, stderr: \"\" };\n }\n if (!hasGlobalFlag) {\n return {\n code: 0,\n stdout: `[fake subprocess] npm ${args.join(\" \")}\\n`,\n stderr: \"\",\n };\n }\n\n const packageNames = parseGlobalNpmPackageNames(args);\n\n if (operation === \"install\") {\n throw new Error(\n `npm install --global ${packageNames.join(\" \")} installs by name; agemon installs global npm packages only from a verified tarball (ctx.verifiedBinaryInstaller).`,\n );\n }\n\n if (operation === \"uninstall\") {\n for (const packageName of packageNames) {\n fakeInstalledGlobalNpmPackageNames?.delete(packageName);\n }\n saveFakeGlobalNpmPackages();\n return {\n code: 0,\n stdout: `removed ${packageNames.length} package(s) globally\\n`,\n stderr: \"\",\n };\n }\n\n return {\n code: 0,\n stdout: `[fake subprocess] npm ${args.join(\" \")}\\n`,\n stderr: \"\",\n };\n}\n\nfunction buildFakeAgnixResponse(args: string[]): SubprocessResult {\n if (!fakeInstalledGlobalNpmPackageNames?.has(\"agnix\")) {\n return {\n code: 1,\n stdout: \"\",\n stderr: \"agnix: command not found\",\n };\n }\n\n if (args[0] === \"--version\") {\n return {\n code: 0,\n stdout: \"agnix 0.0.0-fake\\n\",\n stderr: \"\",\n };\n }\n\n if (args[0] === \"lint\") {\n return {\n code: 0,\n stdout: \"agnix lint passed\\n\",\n stderr: \"\",\n };\n }\n\n return {\n code: 0,\n stdout: `[fake subprocess] agnix ${args.join(\" \")}\\n`,\n stderr: \"\",\n };\n}\n\nconst FAKE_AGENT_BINARY_NAMES: ReadonlySet<string> = new Set([\n \"claude\",\n \"gemini\",\n]);\n\nfunction buildFakeAgentVersionResponse(binaryName: string): SubprocessResult {\n if (fakeVersionedAgentBinaryNames?.has(binaryName)) {\n return {\n code: 0,\n stdout: `${binaryName} 1.0.0-fake\\n`,\n stderr: \"\",\n };\n }\n\n return {\n code: 0,\n stdout: \"unrecognized output\\n\",\n stderr: \"\",\n };\n}\n\nfunction buildFakeAgentUsabilityResponse(\n binaryName: string,\n args: string[],\n): SubprocessResult {\n if (fakeUsableAgentBinaryNames?.has(binaryName)) {\n return {\n code: 0,\n stdout: `[fake subprocess] ${binaryName} ${args.join(\" \")} ok\\n`,\n stderr: \"\",\n };\n }\n\n return {\n code: 1,\n stdout: \"\",\n stderr: `${binaryName} ${args.join(\" \")}: command failed\\n`,\n };\n}\n\nfunction buildFakeAgentResponse(\n binaryName: string,\n args: string[],\n): SubprocessResult {\n if (args[0] === \"--version\") {\n return buildFakeAgentVersionResponse(binaryName);\n }\n\n return buildFakeAgentUsabilityResponse(binaryName, args);\n}\n\nexport function runFakeSubprocess(\n command: string,\n args: string[],\n options: { cwd?: string; env?: Record<string, string> } = {},\n): SubprocessResult {\n initializeFakeStateIfNeeded();\n\n if (command === \"pipx\") {\n const pipxResponse = buildFakePipxResponse(args);\n if (pipxResponse) {\n return pipxResponse;\n }\n }\n\n if (args[0]?.endsWith(PINNED_SKILLS_CLI_SUFFIX)) {\n return buildFakeSkillsCliResponse(args.slice(1), options.cwd);\n }\n\n if (\n command === \"git\" &&\n args.at(-2) === \"rev-parse\" &&\n args.at(-1) === \"HEAD\"\n ) {\n return { code: 0, stdout: `${ESSENTIALS_SKILLS_COMMIT}\\n`, stderr: \"\" };\n }\n\n if (\n command === \"git\" &&\n args.slice(-3).join(\" \") === \"checkout -q FETCH_HEAD\" &&\n options.cwd !== undefined\n ) {\n writeFakePinnedSkills(options.cwd);\n }\n\n if (basename(command) === \"npm\") {\n assertNpmIgnoresProjectConfig(args);\n }\n if (command === \"npm\") {\n const npmResponse = buildFakeNpmResponse(args);\n if (npmResponse) {\n return npmResponse;\n }\n }\n\n if (command === \"agnix\") {\n return buildFakeAgnixResponse(args);\n }\n\n const commandBinaryName = basename(command);\n if (commandBinaryName === \"code-review-graph\") {\n return buildFakeCrgResponse(\n command,\n args,\n options.cwd &&\n findProjectRootLikeCrg(options.cwd, options.env?.CRG_REPO_ROOT),\n );\n }\n\n if (FAKE_AGENT_BINARY_NAMES.has(commandBinaryName)) {\n return buildFakeAgentResponse(commandBinaryName, args);\n }\n\n return {\n code: 0,\n stdout: `[fake subprocess] ${formatCommand(command, args)}\\n`,\n stderr: \"\",\n };\n}\n"],"mappings":"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","names":[]}