@prism-d1/cli 1.1.2 → 1.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 (255) hide show
  1. package/dist/assets/github-workflows/prism-agent-eval.yml +2 -1
  2. package/dist/assets/github-workflows/prism-eval-gate-kiro.yml +12 -2
  3. package/dist/assets/gitlab-workflows/prism-eval-gate.yml +8 -0
  4. package/dist/assets/infra/bin/app.ts +61 -37
  5. package/dist/assets/infra/lib/constructs/otel-collector-construct.ts +96 -0
  6. package/dist/assets/infra/lib/constructs/security-agent-construct.ts +35 -30
  7. package/dist/assets/infra/lib/dashboard-stack.ts +27 -0
  8. package/dist/assets/infra/lib/lambda/otel-receiver.ts +278 -8
  9. package/dist/assets/infra/lib/lambda/pricing/litellm-snapshot.json +3769 -0
  10. package/dist/assets/infra/lib/lambda/pricing/price-source.ts +56 -0
  11. package/dist/assets/infra/lib/lambda/pricing/price-table.ts +240 -0
  12. package/dist/assets/infra/lib/lambda/pricing/prices-key.ts +6 -0
  13. package/dist/assets/infra/lib/lambda/pricing/reprice.ts +108 -0
  14. package/dist/assets/infra/lib/lambda/pricing-refresh.ts +352 -0
  15. package/dist/assets/infra/lib/lambda/velocity-widget.ts +124 -1
  16. package/dist/assets/infra/lib/metrics-pipeline-stack.ts +2 -110
  17. package/dist/assets/infra/lib/security-agent-resources.ts +136 -0
  18. package/dist/assets/infra/lib/security-agent-stack.ts +69 -0
  19. package/dist/assets/infra/package.json +4 -1
  20. package/dist/assets/metric-hooks/prepare-commit-msg +3 -1
  21. package/dist/assets/pentest-cdk/bin/app.ts +12 -0
  22. package/dist/assets/pentest-cdk/cdk.json +7 -0
  23. package/dist/assets/pentest-cdk/lib/pentest-target-stack.ts +206 -0
  24. package/dist/assets/pentest-cdk/package.json +18 -0
  25. package/dist/assets/pentest-cdk/tsconfig.json +12 -0
  26. package/dist/src/codewatch/config.d.ts +17 -0
  27. package/dist/src/codewatch/config.d.ts.map +1 -0
  28. package/dist/src/codewatch/config.js +40 -0
  29. package/dist/src/codewatch/config.js.map +1 -0
  30. package/dist/src/codewatch/gitleaks.d.ts +49 -0
  31. package/dist/src/codewatch/gitleaks.d.ts.map +1 -0
  32. package/dist/src/codewatch/gitleaks.js +160 -0
  33. package/dist/src/codewatch/gitleaks.js.map +1 -0
  34. package/dist/src/codewatch/globalHooks.d.ts +52 -0
  35. package/dist/src/codewatch/globalHooks.d.ts.map +1 -0
  36. package/dist/src/codewatch/globalHooks.js +235 -0
  37. package/dist/src/codewatch/globalHooks.js.map +1 -0
  38. package/dist/src/codewatch/hooks.d.ts +38 -0
  39. package/dist/src/codewatch/hooks.d.ts.map +1 -0
  40. package/dist/src/codewatch/hooks.js +176 -0
  41. package/dist/src/codewatch/hooks.js.map +1 -0
  42. package/dist/src/codewatch/prepush.d.ts +37 -0
  43. package/dist/src/codewatch/prepush.d.ts.map +1 -0
  44. package/dist/src/codewatch/prepush.js +231 -0
  45. package/dist/src/codewatch/prepush.js.map +1 -0
  46. package/dist/src/codewatch/results.d.ts +210 -0
  47. package/dist/src/codewatch/results.d.ts.map +1 -0
  48. package/dist/src/codewatch/results.js +127 -0
  49. package/dist/src/codewatch/results.js.map +1 -0
  50. package/dist/src/codewatch/reviewers/claude.d.ts +9 -0
  51. package/dist/src/codewatch/reviewers/claude.d.ts.map +1 -0
  52. package/dist/src/codewatch/reviewers/claude.js +48 -0
  53. package/dist/src/codewatch/reviewers/claude.js.map +1 -0
  54. package/dist/src/codewatch/reviewers/index.d.ts +39 -0
  55. package/dist/src/codewatch/reviewers/index.d.ts.map +1 -0
  56. package/dist/src/codewatch/reviewers/index.js +97 -0
  57. package/dist/src/codewatch/reviewers/index.js.map +1 -0
  58. package/dist/src/codewatch/reviewers/kiro.d.ts +14 -0
  59. package/dist/src/codewatch/reviewers/kiro.d.ts.map +1 -0
  60. package/dist/src/codewatch/reviewers/kiro.js +32 -0
  61. package/dist/src/codewatch/reviewers/kiro.js.map +1 -0
  62. package/dist/src/codewatch/reviewers/types.d.ts +56 -0
  63. package/dist/src/codewatch/reviewers/types.d.ts.map +1 -0
  64. package/dist/src/codewatch/reviewers/types.js +91 -0
  65. package/dist/src/codewatch/reviewers/types.js.map +1 -0
  66. package/dist/src/codewatch/rules.d.ts +12 -0
  67. package/dist/src/codewatch/rules.d.ts.map +1 -0
  68. package/dist/src/codewatch/rules.js +27 -0
  69. package/dist/src/codewatch/rules.js.map +1 -0
  70. package/dist/src/commands/_top/dashboard.d.ts +17 -0
  71. package/dist/src/commands/_top/dashboard.d.ts.map +1 -0
  72. package/dist/src/commands/_top/dashboard.js +76 -0
  73. package/dist/src/commands/_top/dashboard.js.map +1 -0
  74. package/dist/src/commands/_top/version.d.ts +62 -0
  75. package/dist/src/commands/_top/version.d.ts.map +1 -0
  76. package/dist/src/commands/_top/version.js +175 -0
  77. package/dist/src/commands/_top/version.js.map +1 -0
  78. package/dist/src/commands/bedrock-protection/scan-account.d.ts.map +1 -1
  79. package/dist/src/commands/bedrock-protection/scan-account.js +2 -1
  80. package/dist/src/commands/bedrock-protection/scan-account.js.map +1 -1
  81. package/dist/src/commands/bedrock-protection/scan-org.d.ts.map +1 -1
  82. package/dist/src/commands/bedrock-protection/scan-org.js +16 -4
  83. package/dist/src/commands/bedrock-protection/scan-org.js.map +1 -1
  84. package/dist/src/commands/bootstrapper/install-eval-harness.d.ts.map +1 -1
  85. package/dist/src/commands/bootstrapper/install-eval-harness.js +15 -48
  86. package/dist/src/commands/bootstrapper/install-eval-harness.js.map +1 -1
  87. package/dist/src/commands/bootstrapper/install-git-hooks.d.ts +13 -0
  88. package/dist/src/commands/bootstrapper/install-git-hooks.d.ts.map +1 -1
  89. package/dist/src/commands/bootstrapper/install-git-hooks.js +28 -147
  90. package/dist/src/commands/bootstrapper/install-git-hooks.js.map +1 -1
  91. package/dist/src/commands/bootstrapper/setup-otel-sync.d.ts +12 -6
  92. package/dist/src/commands/bootstrapper/setup-otel-sync.d.ts.map +1 -1
  93. package/dist/src/commands/bootstrapper/setup-otel-sync.js +18 -443
  94. package/dist/src/commands/bootstrapper/setup-otel-sync.js.map +1 -1
  95. package/dist/src/commands/codewatch/pre-commit.d.ts +7 -0
  96. package/dist/src/commands/codewatch/pre-commit.d.ts.map +1 -0
  97. package/dist/src/commands/codewatch/pre-commit.js +30 -0
  98. package/dist/src/commands/codewatch/pre-commit.js.map +1 -0
  99. package/dist/src/commands/codewatch/pre-push.d.ts +16 -0
  100. package/dist/src/commands/codewatch/pre-push.d.ts.map +1 -0
  101. package/dist/src/commands/codewatch/pre-push.js +32 -0
  102. package/dist/src/commands/codewatch/pre-push.js.map +1 -0
  103. package/dist/src/commands/codewatch/report.d.ts +22 -0
  104. package/dist/src/commands/codewatch/report.d.ts.map +1 -0
  105. package/dist/src/commands/codewatch/report.js +64 -0
  106. package/dist/src/commands/codewatch/report.js.map +1 -0
  107. package/dist/src/commands/enable/codeburn.d.ts +59 -0
  108. package/dist/src/commands/enable/codeburn.d.ts.map +1 -0
  109. package/dist/src/commands/enable/codeburn.js +531 -0
  110. package/dist/src/commands/enable/codeburn.js.map +1 -0
  111. package/dist/src/commands/enable/codewatch.d.ts +15 -0
  112. package/dist/src/commands/enable/codewatch.d.ts.map +1 -0
  113. package/dist/src/commands/enable/codewatch.js +186 -0
  114. package/dist/src/commands/enable/codewatch.js.map +1 -0
  115. package/dist/src/commands/enable/security.d.ts +41 -0
  116. package/dist/src/commands/enable/security.d.ts.map +1 -0
  117. package/dist/src/commands/enable/security.js +130 -0
  118. package/dist/src/commands/enable/security.js.map +1 -0
  119. package/dist/src/commands/export/otel.d.ts +31 -0
  120. package/dist/src/commands/export/otel.d.ts.map +1 -0
  121. package/dist/src/commands/export/otel.js +52 -0
  122. package/dist/src/commands/export/otel.js.map +1 -0
  123. package/dist/src/commands/git/claude-session-context.d.ts.map +1 -1
  124. package/dist/src/commands/git/claude-session-context.js +2 -1
  125. package/dist/src/commands/git/claude-session-context.js.map +1 -1
  126. package/dist/src/commands/git/commit-trailers.js +1 -1
  127. package/dist/src/commands/git/commit-trailers.js.map +1 -1
  128. package/dist/src/commands/security/code-review.d.ts +22 -0
  129. package/dist/src/commands/security/code-review.d.ts.map +1 -0
  130. package/dist/src/commands/security/code-review.js +43 -0
  131. package/dist/src/commands/security/code-review.js.map +1 -0
  132. package/dist/src/commands/security/findings.d.ts +15 -0
  133. package/dist/src/commands/security/findings.d.ts.map +1 -0
  134. package/dist/src/commands/security/findings.js +31 -0
  135. package/dist/src/commands/security/findings.js.map +1 -0
  136. package/dist/src/commands/security/pentest.d.ts +18 -0
  137. package/dist/src/commands/security/pentest.d.ts.map +1 -0
  138. package/dist/src/commands/security/pentest.js +32 -0
  139. package/dist/src/commands/security/pentest.js.map +1 -0
  140. package/dist/src/commands/security/threat-model.d.ts +16 -0
  141. package/dist/src/commands/security/threat-model.d.ts.map +1 -0
  142. package/dist/src/commands/security/threat-model.js +24 -0
  143. package/dist/src/commands/security/threat-model.js.map +1 -0
  144. package/dist/src/commands/security/threats.d.ts +12 -0
  145. package/dist/src/commands/security/threats.d.ts.map +1 -0
  146. package/dist/src/commands/security/threats.js +23 -0
  147. package/dist/src/commands/security/threats.js.map +1 -0
  148. package/dist/src/commands/securityagent/setup.d.ts +19 -5
  149. package/dist/src/commands/securityagent/setup.d.ts.map +1 -1
  150. package/dist/src/commands/securityagent/setup.js +25 -189
  151. package/dist/src/commands/securityagent/setup.js.map +1 -1
  152. package/dist/src/commands/workshop/verify-setup.d.ts.map +1 -1
  153. package/dist/src/commands/workshop/verify-setup.js +5 -3
  154. package/dist/src/commands/workshop/verify-setup.js.map +1 -1
  155. package/dist/src/dashboard/codewatch.d.ts +106 -0
  156. package/dist/src/dashboard/codewatch.d.ts.map +1 -0
  157. package/dist/src/dashboard/codewatch.js +120 -0
  158. package/dist/src/dashboard/codewatch.js.map +1 -0
  159. package/dist/src/dashboard/commits.d.ts +96 -0
  160. package/dist/src/dashboard/commits.d.ts.map +1 -0
  161. package/dist/src/dashboard/commits.js +207 -0
  162. package/dist/src/dashboard/commits.js.map +1 -0
  163. package/dist/src/dashboard/page.d.ts +10 -0
  164. package/dist/src/dashboard/page.d.ts.map +1 -0
  165. package/dist/src/dashboard/page.js +470 -0
  166. package/dist/src/dashboard/page.js.map +1 -0
  167. package/dist/src/dashboard/payload.d.ts +114 -0
  168. package/dist/src/dashboard/payload.d.ts.map +1 -0
  169. package/dist/src/dashboard/payload.js +96 -0
  170. package/dist/src/dashboard/payload.js.map +1 -0
  171. package/dist/src/dashboard/report.d.ts +99 -0
  172. package/dist/src/dashboard/report.d.ts.map +1 -0
  173. package/dist/src/dashboard/report.js +300 -0
  174. package/dist/src/dashboard/report.js.map +1 -0
  175. package/dist/src/dashboard/repos.d.ts +58 -0
  176. package/dist/src/dashboard/repos.d.ts.map +1 -0
  177. package/dist/src/dashboard/repos.js +111 -0
  178. package/dist/src/dashboard/repos.js.map +1 -0
  179. package/dist/src/dashboard/security.d.ts +130 -0
  180. package/dist/src/dashboard/security.d.ts.map +1 -0
  181. package/dist/src/dashboard/security.js +144 -0
  182. package/dist/src/dashboard/security.js.map +1 -0
  183. package/dist/src/dashboard/server.d.ts +52 -0
  184. package/dist/src/dashboard/server.d.ts.map +1 -0
  185. package/dist/src/dashboard/server.js +163 -0
  186. package/dist/src/dashboard/server.js.map +1 -0
  187. package/dist/src/dashboard/setup.d.ts +67 -0
  188. package/dist/src/dashboard/setup.d.ts.map +1 -0
  189. package/dist/src/dashboard/setup.js +146 -0
  190. package/dist/src/dashboard/setup.js.map +1 -0
  191. package/dist/src/dashboard/usage.d.ts +43 -0
  192. package/dist/src/dashboard/usage.d.ts.map +1 -0
  193. package/dist/src/dashboard/usage.js +88 -0
  194. package/dist/src/dashboard/usage.js.map +1 -0
  195. package/dist/src/index.d.ts +1 -0
  196. package/dist/src/index.d.ts.map +1 -1
  197. package/dist/src/index.js +48 -2
  198. package/dist/src/index.js.map +1 -1
  199. package/dist/src/security/cfn-diff.d.ts +57 -0
  200. package/dist/src/security/cfn-diff.d.ts.map +1 -0
  201. package/dist/src/security/cfn-diff.js +112 -0
  202. package/dist/src/security/cfn-diff.js.map +1 -0
  203. package/dist/src/security/errors.d.ts +45 -0
  204. package/dist/src/security/errors.d.ts.map +1 -0
  205. package/dist/src/security/errors.js +116 -0
  206. package/dist/src/security/errors.js.map +1 -0
  207. package/dist/src/security/marker.d.ts +46 -0
  208. package/dist/src/security/marker.d.ts.map +1 -0
  209. package/dist/src/security/marker.js +120 -0
  210. package/dist/src/security/marker.js.map +1 -0
  211. package/dist/src/security/pentest-dockerfile.d.ts +8 -0
  212. package/dist/src/security/pentest-dockerfile.d.ts.map +1 -0
  213. package/dist/src/security/pentest-dockerfile.js +163 -0
  214. package/dist/src/security/pentest-dockerfile.js.map +1 -0
  215. package/dist/src/security/pentest.d.ts +233 -0
  216. package/dist/src/security/pentest.d.ts.map +1 -0
  217. package/dist/src/security/pentest.js +1057 -0
  218. package/dist/src/security/pentest.js.map +1 -0
  219. package/dist/src/security/repo.d.ts +25 -0
  220. package/dist/src/security/repo.d.ts.map +1 -0
  221. package/dist/src/security/repo.js +38 -0
  222. package/dist/src/security/repo.js.map +1 -0
  223. package/dist/src/security/review.d.ts +202 -0
  224. package/dist/src/security/review.d.ts.map +1 -0
  225. package/dist/src/security/review.js +706 -0
  226. package/dist/src/security/review.js.map +1 -0
  227. package/dist/src/security/setup.d.ts +193 -0
  228. package/dist/src/security/setup.d.ts.map +1 -0
  229. package/dist/src/security/setup.js +728 -0
  230. package/dist/src/security/setup.js.map +1 -0
  231. package/dist/src/security/threat-model.d.ts +133 -0
  232. package/dist/src/security/threat-model.d.ts.map +1 -0
  233. package/dist/src/security/threat-model.js +653 -0
  234. package/dist/src/security/threat-model.js.map +1 -0
  235. package/dist/src/utils/audit-bedrock.d.ts +1 -0
  236. package/dist/src/utils/audit-bedrock.d.ts.map +1 -1
  237. package/dist/src/utils/audit-bedrock.js +133 -0
  238. package/dist/src/utils/audit-bedrock.js.map +1 -1
  239. package/dist/src/utils/audit-org.d.ts +1 -0
  240. package/dist/src/utils/audit-org.d.ts.map +1 -1
  241. package/dist/src/utils/audit-org.js +155 -0
  242. package/dist/src/utils/audit-org.js.map +1 -1
  243. package/dist/src/utils/exec.d.ts +6 -0
  244. package/dist/src/utils/exec.d.ts.map +1 -1
  245. package/dist/src/utils/exec.js +12 -1
  246. package/dist/src/utils/exec.js.map +1 -1
  247. package/dist/src/utils/otel-sync-schedule.d.ts +41 -0
  248. package/dist/src/utils/otel-sync-schedule.d.ts.map +1 -0
  249. package/dist/src/utils/otel-sync-schedule.js +90 -0
  250. package/dist/src/utils/otel-sync-schedule.js.map +1 -0
  251. package/dist/src/utils/tool-check.d.ts +14 -0
  252. package/dist/src/utils/tool-check.d.ts.map +1 -0
  253. package/dist/src/utils/tool-check.js +42 -0
  254. package/dist/src/utils/tool-check.js.map +1 -0
  255. package/package.json +3 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeburn.js","sourceRoot":"","sources":["../../../../src/commands/enable/codeburn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ declare const _default: {
2
+ description: string;
3
+ options: {
4
+ flags: string;
5
+ description: string;
6
+ }[];
7
+ action(opts: {
8
+ reviewer?: string;
9
+ uninstall?: boolean;
10
+ global?: boolean;
11
+ force?: boolean;
12
+ }): Promise<void>;
13
+ };
14
+ export default _default;
15
+ //# sourceMappingURL=codewatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codewatch.d.ts","sourceRoot":"","sources":["../../../../src/commands/enable/codewatch.ts"],"names":[],"mappings":";;;;;;iBAmDqB;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;;AARlG,wBAgFE"}
@@ -0,0 +1,186 @@
1
+ import { createInterface } from 'node:readline';
2
+ import { getAssetPath } from '../../utils/root.js';
3
+ import { run } from '../../utils/exec.js';
4
+ import { GITLEAKS_BASELINE_PATH, readEvalConfig, REVIEWER_GIT_CONFIG_KEY, RULES_PATH, writeEvalConfig } from '../../codewatch/config.js';
5
+ import { gitleaksInstallHint, installGitleaksConfig } from '../../codewatch/gitleaks.js';
6
+ import { ensureResultsIgnored, installHooks, resolveHooksDir, retireLegacyCommitMsgHook, uninstallHooks } from '../../codewatch/hooks.js';
7
+ import { ADAPTERS, detectReviewers, findOnPath, isReviewerId, REVIEWER_IDS } from '../../codewatch/reviewers/index.js';
8
+ import { ensureRulesFile } from '../../codewatch/rules.js';
9
+ import { existsSync } from 'node:fs';
10
+ import { globalHooksDir, installGlobal, isOurHooksPath, OPT_OUT_KEY, readGlobalHooksPath, uninstallGlobal } from '../../codewatch/globalHooks.js';
11
+ import { resolve } from 'node:path';
12
+ function ask(question) {
13
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
14
+ return new Promise((r) => rl.question(question, (a) => { rl.close(); r(a.trim()); }));
15
+ }
16
+ /**
17
+ * Chooses the team's default reviewer. An explicit --reviewer wins; with one
18
+ * tool on PATH it is used; with both, the developer is asked (non-TTY: claude,
19
+ * the repo's primary tool); with neither, the existing setting is kept.
20
+ */
21
+ async function chooseReviewer(flag, existing) {
22
+ if (flag) {
23
+ if (!isReviewerId(flag))
24
+ throw new Error(`--reviewer must be one of: ${REVIEWER_IDS.join(', ')}`);
25
+ return { id: flag, how: '--reviewer flag' };
26
+ }
27
+ const found = detectReviewers();
28
+ if (found.length === 1)
29
+ return { id: found[0], how: `only ${ADAPTERS[found[0]].binary} is on PATH` };
30
+ if (found.length === 0) {
31
+ return { id: isReviewerId(existing) ? existing : null, how: 'neither kiro-cli nor claude is on PATH' };
32
+ }
33
+ if (!process.stdin.isTTY) {
34
+ const id = isReviewerId(existing) ? existing : 'claude';
35
+ return { id, how: `both found, no TTY to ask; using ${isReviewerId(existing) ? 'the existing setting' : 'claude'}` };
36
+ }
37
+ const def = isReviewerId(existing) ? existing : 'claude';
38
+ const a = (await ask(`Both kiro-cli and claude are installed. Which should review pushes? [kiro/claude] (${def}) `)).toLowerCase();
39
+ const id = a === '' ? def : a;
40
+ if (!isReviewerId(id))
41
+ throw new Error(`unknown reviewer "${a}"; expected ${REVIEWER_IDS.join(' or ')}`);
42
+ return { id, how: 'chosen at the prompt' };
43
+ }
44
+ export default {
45
+ description: 'Install codewatch git hooks: gitleaks pre-commit (blocks) and a report-only pre-push code review (kiro-cli or Claude Code)',
46
+ options: [
47
+ { flags: '--reviewer <tool>', description: `Team default reviewer: ${REVIEWER_IDS.join(' | ')} (skips detection)` },
48
+ { flags: '--uninstall', description: 'Remove the hooks and restore any hooks they replaced' },
49
+ { flags: '--global', description: 'Install for every repo: hooks in ~/.prism/hooks and git config --global core.hooksPath' },
50
+ { flags: '--force', description: 'With --global: replace a global core.hooksPath set by another tool (its hooks are chained)' },
51
+ ],
52
+ async action(opts) {
53
+ if (opts.global)
54
+ return globalAction(opts);
55
+ const top = run('git', ['rev-parse', '--show-toplevel']);
56
+ if (!top.ok) {
57
+ console.error('Error: not inside a git repository.');
58
+ process.exit(1);
59
+ }
60
+ const gitRoot = top.stdout;
61
+ let hooksDir = resolveHooksDir(gitRoot);
62
+ // With the global hooks installed, git resolves this repo's hooks to
63
+ // ~/.prism/hooks. Per-repo hooks belong in the repo's own hooks dir, and
64
+ // must never overwrite the global scripts.
65
+ const coveredGlobally = isOurHooksPath(readGlobalHooksPath()) && hooksDir === globalHooksDir();
66
+ if (coveredGlobally) {
67
+ const common = run('git', ['rev-parse', '--path-format=absolute', '--git-common-dir']);
68
+ hooksDir = resolve(common.ok ? common.stdout : resolve(gitRoot, '.git'), 'hooks');
69
+ }
70
+ if (opts.uninstall) {
71
+ for (const c of uninstallHooks(hooksDir))
72
+ console.log(`✓ ${c.hook}: ${c.action}`);
73
+ console.log(` Kept ${RULES_PATH}, .prism/config.json and .prism/results/ (delete manually if unwanted).`);
74
+ return;
75
+ }
76
+ const legacy = retireLegacyCommitMsgHook(hooksDir);
77
+ if (legacy)
78
+ console.log(`✓ ${legacy}`);
79
+ const rules = ensureRulesFile(gitRoot, getAssetPath(import.meta.url, 'bootstrapper/eval-harness/steering/code-review.md'));
80
+ console.log(`✓ Review rules: ${RULES_PATH} (${rules === 'kept' ? 'kept existing' : rules === 'from-steering' ? 'copied from .kiro/steering/code-review.md' : 'installed default'})`);
81
+ if (installGitleaksConfig(gitRoot))
82
+ console.log('✓ Installed .gitleaks.toml (allowlist starter)');
83
+ else
84
+ console.log('✓ Using existing .gitleaks.toml');
85
+ if (existsSync(resolve(gitRoot, GITLEAKS_BASELINE_PATH)))
86
+ console.log(`✓ Using baseline ${GITLEAKS_BASELINE_PATH}`);
87
+ let choice;
88
+ try {
89
+ choice = await chooseReviewer(opts.reviewer, readEvalConfig(gitRoot).reviewer);
90
+ }
91
+ catch (e) {
92
+ console.error(`Error: ${e.message}`);
93
+ process.exit(1);
94
+ }
95
+ if (choice.id) {
96
+ writeEvalConfig(gitRoot, { reviewer: choice.id });
97
+ console.log(`✓ Reviewer: ${choice.id} (${choice.how}) -> .prism/config.json eval.reviewer`);
98
+ if (!findOnPath(ADAPTERS[choice.id].binary))
99
+ console.log(` Note: ${ADAPTERS[choice.id].binary} is not on PATH here; pushes will use another installed reviewer or skip.`);
100
+ }
101
+ else {
102
+ console.log(`! No reviewer configured (${choice.how}). Pre-push will report "no reviewer" until kiro-cli or claude is installed.`);
103
+ }
104
+ if (ensureResultsIgnored(gitRoot))
105
+ console.log('✓ Added .prism/results/ to .gitignore');
106
+ for (const c of installHooks(hooksDir))
107
+ console.log(`✓ ${c.hook}: ${c.action}`);
108
+ if (coveredGlobally) {
109
+ console.log('\n Note: the global codewatch hooks (~/.prism/hooks) already cover this repo. While the global');
110
+ console.log(' core.hooksPath is set, git does not run these per-repo hooks, so nothing runs twice.');
111
+ }
112
+ if (!findOnPath('gitleaks')) {
113
+ console.log('\n! gitleaks is not on PATH, so the pre-commit scan cannot run yet (commits are allowed with a warning).');
114
+ console.log(` Install it: ${gitleaksInstallHint()}`);
115
+ }
116
+ if (!findOnPath('prism-cli')) {
117
+ console.log('\n! prism-cli is not on PATH. The hooks call it to record results; install with: npm i -g @prism-d1/cli');
118
+ }
119
+ console.log('\n pre-commit gitleaks protect --staged. BLOCKS the commit on a finding.');
120
+ console.log(' pre-push reviews the branch diff against its upstream. Report only; never blocks.');
121
+ console.log(` Results .prism/results/*.json (gitignored)`);
122
+ console.log(` Override git config ${REVIEWER_GIT_CONFIG_KEY} <kiro|claude> (this clone only)`);
123
+ console.log(' Remove prism-cli enable codewatch --uninstall');
124
+ },
125
+ };
126
+ /** `enable codewatch --global [--force] [--uninstall]`: needs no repo. */
127
+ function globalAction(opts) {
128
+ if (opts.uninstall) {
129
+ const r = uninstallGlobal();
130
+ const cfg = {
131
+ restored: `restored global core.hooksPath to ${r.restoredTo}`,
132
+ unset: 'unset global core.hooksPath (none was set before)',
133
+ 'left-alone': `left global core.hooksPath alone: it now points to ${readGlobalHooksPath()}, not ~/.prism/hooks`,
134
+ 'not-set': 'global core.hooksPath was not set',
135
+ }[r.config];
136
+ console.log(`✓ ${cfg}`);
137
+ console.log(r.removed.length ? `✓ Removed ${r.removed.join(', ')} from ${globalHooksDir()}` : ' No global codewatch hooks to remove.');
138
+ console.log(' Repo-local hooks were not touched.');
139
+ return;
140
+ }
141
+ if (opts.reviewer) {
142
+ if (!isReviewerId(opts.reviewer)) {
143
+ console.error(`Error: --reviewer must be one of: ${REVIEWER_IDS.join(', ')}`);
144
+ process.exit(1);
145
+ }
146
+ }
147
+ let r;
148
+ try {
149
+ r = installGlobal({ force: opts.force });
150
+ }
151
+ catch (e) {
152
+ console.error(`Error: ${e.message}`);
153
+ process.exit(1);
154
+ }
155
+ if (!r.ok) {
156
+ console.error(`Error: ${r.refused}.`);
157
+ console.error(' Another tool manages your global hooks, and replacing it would stop its hooks from running.');
158
+ console.error(' Re-run with --force to save that value, point core.hooksPath at ~/.prism/hooks, and run its');
159
+ console.error(' hooks after codewatch. --global --uninstall restores it.');
160
+ process.exit(1);
161
+ }
162
+ console.log(`✓ Installed pre-commit and pre-push in ${r.dir}`);
163
+ console.log(r.reinstalled ? '✓ Global core.hooksPath already points there (scripts refreshed)'
164
+ : `✓ git config --global core.hooksPath ${r.dir}${r.previous ? ` (previous value saved: ${r.previous})` : ''}`);
165
+ if (r.chained)
166
+ console.log(`✓ Chaining the hooks in ${r.chained} after codewatch`);
167
+ if (opts.reviewer) {
168
+ run('git', ['config', '--global', REVIEWER_GIT_CONFIG_KEY, opts.reviewer]);
169
+ console.log(`✓ Reviewer: git config --global ${REVIEWER_GIT_CONFIG_KEY} ${opts.reviewer}`);
170
+ }
171
+ else {
172
+ const found = detectReviewers();
173
+ console.log(found.length ? `✓ Reviewer: detected per push (${found.join(', ')} on PATH); a repo's .prism/config.json or git config ${REVIEWER_GIT_CONFIG_KEY} overrides`
174
+ : '! No reviewer on PATH: pre-push will report "no reviewer" until kiro-cli or claude is installed.');
175
+ }
176
+ if (!findOnPath('gitleaks'))
177
+ console.log(`\n! gitleaks is not on PATH; commits are allowed but not scanned. Install it: ${gitleaksInstallHint()}`);
178
+ if (!findOnPath('prism-cli'))
179
+ console.log('\n! prism-cli is not on PATH. The hooks call it; install with: npm i -g @prism-d1/cli');
180
+ console.log('\n Every repo now runs codewatch, then its own .git/hooks (exit codes pass through).');
181
+ console.log(' Results go to each repo\'s .prism/results/ (excluded locally via .git/info/exclude).');
182
+ console.log(` Opt a repo out: git config ${OPT_OUT_KEY} false`);
183
+ console.log(' Not covered: repos that set their own core.hooksPath (husky and similar)');
184
+ console.log(' Remove: prism-cli enable codewatch --global --uninstall');
185
+ }
186
+ //# sourceMappingURL=codewatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codewatch.js","sourceRoot":"","sources":["../../../../src/commands/enable/codewatch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { type Deps, type SecurityOptions } from '../../security/setup.js';
2
+ export declare function defaultDeps(opts: SecurityOptions): Deps;
3
+ export declare const SECURITY_OPTIONS: {
4
+ flags: string;
5
+ description: string;
6
+ default?: string;
7
+ parser?: (v: string, prev?: string[]) => string[];
8
+ }[];
9
+ /** Test seams: everything else uses the real runners, console and process. */
10
+ export interface RunHooks {
11
+ deps?: (opts: SecurityOptions) => Deps;
12
+ error?: (line: string) => void;
13
+ exit?: (code: number) => void;
14
+ env?: NodeJS.ProcessEnv;
15
+ }
16
+ /**
17
+ * The one entry point for `enable security` and its `securityagent setup`
18
+ * alias. Abort errors are already printed by enableSecurity; anything else
19
+ * (a failed npm or cdk run, a JSON parse, git or fs) is caught here and
20
+ * printed as one redacted line plus a hint, never as a raw stack or an
21
+ * unhandled rejection. PRISM_DEBUG=1 adds the redacted stack.
22
+ */
23
+ export declare function runEnableSecurity(opts: SecurityOptions, hooks?: RunHooks): Promise<void>;
24
+ /**
25
+ * Shared by every Security Agent command (enable security, its alias,
26
+ * security code-review, security findings): runs `body`, turns any error that
27
+ * is not an Abort into one redacted line plus a hint, and exits non-zero.
28
+ */
29
+ export declare function runGuarded(body: () => Promise<number>, hooks?: Pick<RunHooks, 'error' | 'exit' | 'env'>): Promise<void>;
30
+ declare const _default: {
31
+ description: string;
32
+ options: {
33
+ flags: string;
34
+ description: string;
35
+ default?: string;
36
+ parser?: (v: string, prev?: string[]) => string[];
37
+ }[];
38
+ action: typeof runEnableSecurity;
39
+ };
40
+ export default _default;
41
+ //# sourceMappingURL=security.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../../../src/commands/enable/security.ts"],"names":[],"mappings":"AASA,OAAO,EAA+C,KAAK,IAAI,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAqDvH,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAqBvD;AAID,eAAO,MAAM,gBAAgB,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,CAAA;CAAE,EAQzI,CAAC;AAEF,8EAA8E;AAC9E,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,GAAE,QAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlG;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,GAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWjI;;;;eAhDuC,MAAM;qBAAe,MAAM;kBAAY,MAAM;iBAAW,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE;;;;AAkDxI,wBAIE"}
@@ -0,0 +1,130 @@
1
+ import { execFileSync, spawnSync } from 'node:child_process';
2
+ import { existsSync, mkdtempSync } from 'node:fs';
3
+ import { tmpdir } from 'node:os';
4
+ import { join, resolve } from 'node:path';
5
+ import { createInterface } from 'node:readline';
6
+ import { aws } from '../../utils/aws.js';
7
+ import { run } from '../../utils/exec.js';
8
+ import { getAssetPath } from '../../utils/root.js';
9
+ import { describeUnexpectedError } from '../../security/errors.js';
10
+ import { enableSecurity } from '../../security/setup.js';
11
+ /** Room for the full synth and diff output of the whole app. */
12
+ const CDK_OUTPUT_MAX_BUFFER = 64 * 1024 * 1024;
13
+ /** Resolved on first use, so importing this module (tests, --help) needs no built assets. */
14
+ let infraDir = null;
15
+ const INFRA = () => (infraDir ??= getAssetPath(import.meta.url, 'infra'));
16
+ /** npm_* variables from the outer `npm` would leak into the infra project's own npm/cdk runs. */
17
+ function cleanEnv(extra) {
18
+ const env = { ...process.env, ...extra };
19
+ for (const k of Object.keys(env))
20
+ if (k.startsWith('npm_'))
21
+ delete env[k];
22
+ return env;
23
+ }
24
+ function ensureInfraDeps() {
25
+ if (existsSync(resolve(INFRA(), 'node_modules')))
26
+ return;
27
+ console.log('Installing the CDK app dependencies (local, one time)...');
28
+ execFileSync('npm', ['install', '--no-audit', '--no-fund'], { cwd: INFRA(), stdio: 'inherit', env: cleanEnv({}) });
29
+ }
30
+ /**
31
+ * CDK runs with the default credential chain unless --profile was given, and
32
+ * always in the resolved region, so every step works in the same place.
33
+ */
34
+ function cdkRunner(opts) {
35
+ const bin = () => resolve(INFRA(), 'node_modules/.bin/cdk');
36
+ const profile = opts.profile ? ['--profile', opts.profile] : [];
37
+ const env = (e) => cleanEnv({ CDK_DEFAULT_ACCOUNT: e.account, CDK_DEFAULT_REGION: e.region, AWS_DEFAULT_REGION: e.region, AWS_REGION: e.region, AWS_PAGER: '' });
38
+ return {
39
+ synth(outDir, context, e) {
40
+ ensureInfraDeps();
41
+ const ctx = Object.entries(context).flatMap(([k, v]) => ['-c', `${k}=${v}`]);
42
+ const r = spawnSync(bin(), ['synth', '--quiet', '-o', outDir, ...ctx, ...profile], { cwd: INFRA(), env: env(e), encoding: 'utf8', maxBuffer: CDK_OUTPUT_MAX_BUFFER });
43
+ return { ok: r.status === 0, stdout: r.stdout || '', stderr: `${r.stderr || ''}${r.error ? r.error.message : ''}` };
44
+ },
45
+ diff(outDir, stack, e) {
46
+ // cdk diff prints to stderr; keep both streams.
47
+ const r = spawnSync(bin(), ['diff', '--app', outDir, stack, '--exclusively', '--no-color', ...profile], { cwd: INFRA(), env: env(e), encoding: 'utf8', maxBuffer: CDK_OUTPUT_MAX_BUFFER });
48
+ return { ok: r.status === 0, output: `${r.stdout || ''}${r.stderr || ''}` };
49
+ },
50
+ deploy(outDir, stack, e, { approveAll }) {
51
+ // Interactive: CDK's own default (--require-approval broadening) also asks
52
+ // before IAM/security-group broadening. --yes is the user's explicit
53
+ // approval, given after seeing the plan, so CDK is not asked again.
54
+ const approval = approveAll ? ['--require-approval', 'never'] : [];
55
+ const r = spawnSync(bin(), ['deploy', '--app', outDir, stack, '--exclusively', ...approval, ...profile], { cwd: INFRA(), env: env(e), stdio: 'inherit' });
56
+ return r.status === 0;
57
+ },
58
+ };
59
+ }
60
+ export function defaultDeps(opts) {
61
+ const target = opts.profile ? { profile: opts.profile } : {};
62
+ return {
63
+ aws: (args, region) => aws([...args, '--region', region], { ...target, env: { AWS_PAGER: '' } }),
64
+ configRegion: (profile) => {
65
+ const r = run('aws', ['configure', 'get', 'region', ...(profile ? ['--profile', profile] : [])]);
66
+ return r.ok && r.stdout ? r.stdout : null;
67
+ },
68
+ env: process.env,
69
+ awsVersion: () => { const r = run('aws', ['--version']); return r.ok ? r.stdout : null; },
70
+ cdk: cdkRunner(opts),
71
+ git: (args) => run('git', args),
72
+ makeTempDir: () => mkdtempSync(join(tmpdir(), 'prism-enable-security-')),
73
+ isTTY: !!(process.stdin.isTTY && process.stdout.isTTY),
74
+ ask: (q) => new Promise((done) => {
75
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
76
+ rl.question(q, (a) => { rl.close(); done(a); });
77
+ }),
78
+ log: (line = '') => console.log(line),
79
+ now: () => new Date(),
80
+ };
81
+ }
82
+ const collect = (v, prev = []) => [...prev, v];
83
+ export const SECURITY_OPTIONS = [
84
+ { flags: '--profile <name>', description: 'AWS CLI profile (default: none; the standard credential chain, e.g. AWS_PROFILE, env keys, SSO, instance role)' },
85
+ { flags: '--region <region>', description: 'AWS region (default: AWS_REGION, AWS_DEFAULT_REGION, else the profile\'s configured region; refuses when none is set)' },
86
+ { flags: '--yes', description: 'Approve the changes without a prompt (CI and other non-interactive use)' },
87
+ { flags: '--dry-run', description: 'Run every read-only step and print the plan, including the exact calls; change nothing' },
88
+ { flags: '--status', description: 'Read-only report: credentials, stack, agent space, application, code review, SSM, CI step' },
89
+ { flags: '--repo <host/owner/name>', description: 'Repo id for the code review, as the CI gate names it (default: from the origin remote)' },
90
+ { flags: '--context <key=value>', description: 'Extra cdk context, repeatable (match how the stack was deployed, e.g. skipVpc=true)', parser: collect },
91
+ ];
92
+ /**
93
+ * The one entry point for `enable security` and its `securityagent setup`
94
+ * alias. Abort errors are already printed by enableSecurity; anything else
95
+ * (a failed npm or cdk run, a JSON parse, git or fs) is caught here and
96
+ * printed as one redacted line plus a hint, never as a raw stack or an
97
+ * unhandled rejection. PRISM_DEBUG=1 adds the redacted stack.
98
+ */
99
+ export async function runEnableSecurity(opts, hooks = {}) {
100
+ await runGuarded(() => {
101
+ const o = { ...opts, profile: opts.profile || undefined, region: opts.region || undefined };
102
+ return enableSecurity(o, (hooks.deps ?? defaultDeps)(o));
103
+ }, hooks);
104
+ }
105
+ /**
106
+ * Shared by every Security Agent command (enable security, its alias,
107
+ * security code-review, security findings): runs `body`, turns any error that
108
+ * is not an Abort into one redacted line plus a hint, and exits non-zero.
109
+ */
110
+ export async function runGuarded(body, hooks = {}) {
111
+ const exit = hooks.exit ?? ((c) => process.exit(c));
112
+ const error = hooks.error ?? ((l) => console.error(l));
113
+ let code;
114
+ try {
115
+ code = await body();
116
+ }
117
+ catch (e) {
118
+ for (const l of describeUnexpectedError(e, hooks.env ?? process.env))
119
+ error(l);
120
+ code = 1;
121
+ }
122
+ if (code !== 0)
123
+ exit(code);
124
+ }
125
+ export default {
126
+ description: 'Set up AWS Security Agent: deploy only its stack (after a diff and your confirmation), then the application, the code review for this repo and its SSM pointer',
127
+ options: SECURITY_OPTIONS,
128
+ action: runEnableSecurity,
129
+ };
130
+ //# sourceMappingURL=security.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../../../../src/commands/enable/security.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export interface ExportOtelDeps {
2
+ findCodeburn: () => string | null;
3
+ home: string;
4
+ stream: (file: string, args: string[]) => number;
5
+ log: (line: string) => void;
6
+ error: (line: string) => void;
7
+ }
8
+ export declare function defaultDeps(): ExportOtelDeps;
9
+ export declare function exportOtel(opts: {
10
+ since?: string;
11
+ }, d: ExportOtelDeps): Promise<number>;
12
+ /** Test seams, as in enable codeburn. */
13
+ export interface ExportOtelHooks {
14
+ deps?: () => ExportOtelDeps;
15
+ error?: (line: string) => void;
16
+ exit?: (code: number) => void;
17
+ env?: NodeJS.ProcessEnv;
18
+ }
19
+ export declare function runExportOtel(opts: {
20
+ since?: string;
21
+ }, hooks?: ExportOtelHooks): Promise<void>;
22
+ declare const _default: {
23
+ description: string;
24
+ options: {
25
+ flags: string;
26
+ description: string;
27
+ }[];
28
+ action: typeof runExportOtel;
29
+ };
30
+ export default _default;
31
+ //# sourceMappingURL=otel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../../../../src/commands/export/otel.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;IACjD,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B;AAED,wBAAgB,WAAW,IAAI,cAAc,CAQ5C;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB7F;AAED,yCAAyC;AACzC,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,cAAc,CAAC;IAC5B,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAExG;;;;;;;;;AAED,wBAME"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * `prism-cli export otel`: push codeburn's unsent telemetry to the configured
3
+ * PRISM OTEL collector now, with the same argv the schedule runs.
4
+ *
5
+ * Output is codeburn's own, streamed, and the exit code is codeburn's.
6
+ */
7
+ import { existsSync } from 'node:fs';
8
+ import { homedir } from 'node:os';
9
+ import { runStreaming } from '../../utils/exec.js';
10
+ import { codeburnSyncConfigPath, ENABLE_CODEBURN_CMD, SYNC_SINCE, syncArgs } from '../../utils/otel-sync-schedule.js';
11
+ import { getCodeburnPath } from '../enable/codeburn.js';
12
+ import { runGuarded } from '../enable/security.js';
13
+ export function defaultDeps() {
14
+ return {
15
+ findCodeburn: getCodeburnPath,
16
+ home: homedir(),
17
+ stream: runStreaming,
18
+ log: (l) => console.log(l),
19
+ error: (l) => console.error(l),
20
+ };
21
+ }
22
+ export async function exportOtel(opts, d) {
23
+ const cb = d.findCodeburn();
24
+ if (!cb) {
25
+ d.error('Error: codeburn is not installed.');
26
+ d.error(` Run "${ENABLE_CODEBURN_CMD}" to install it and set up the sync.`);
27
+ return 1;
28
+ }
29
+ if (!existsSync(codeburnSyncConfigPath(d.home))) {
30
+ d.error('Error: codeburn sync is not set up (no endpoint configured).');
31
+ d.error(` Run "${ENABLE_CODEBURN_CMD} --url <OtelCollectorUrl>" first.`);
32
+ return 1;
33
+ }
34
+ const since = opts.since || SYNC_SINCE;
35
+ const args = syncArgs(since);
36
+ d.log(`Running: codeburn ${args.join(' ')}`);
37
+ const code = d.stream(cb, args);
38
+ if (code !== 0)
39
+ d.error(`codeburn sync push exited with ${code}. Check "codeburn sync status", or re-run "${ENABLE_CODEBURN_CMD}".`);
40
+ return code;
41
+ }
42
+ export async function runExportOtel(opts, hooks = {}) {
43
+ await runGuarded(() => exportOtel(opts, (hooks.deps ?? defaultDeps)()), hooks);
44
+ }
45
+ export default {
46
+ description: 'Push AI usage and commit attribution to the PRISM OTEL collector now (codeburn sync push, as the schedule runs it)',
47
+ options: [
48
+ { flags: '--since <window>', description: `Time window passed to codeburn: today, 7d, 30d, month, all (default: ${SYNC_SINCE}, as the schedule)` },
49
+ ],
50
+ action: runExportOtel,
51
+ };
52
+ //# sourceMappingURL=otel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otel.js","sourceRoot":"","sources":["../../../../src/commands/export/otel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AACtH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAUnD,MAAM,UAAU,WAAW;IACzB,OAAO;QACL,YAAY,EAAE,eAAe;QAC7B,IAAI,EAAE,OAAO,EAAE;QACf,MAAM,EAAE,YAAY;QACpB,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1B,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;KAC/B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAwB,EAAE,CAAiB;IAC1E,MAAM,EAAE,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,CAAC,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAC7C,CAAC,CAAC,KAAK,CAAC,UAAU,mBAAmB,sCAAsC,CAAC,CAAC;QAC7E,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAChD,CAAC,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;QACxE,CAAC,CAAC,KAAK,CAAC,UAAU,mBAAmB,mCAAmC,CAAC,CAAC;QAC1E,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC;IACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAChC,IAAI,IAAI,KAAK,CAAC;QAAE,CAAC,CAAC,KAAK,CAAC,kCAAkC,IAAI,8CAA8C,mBAAmB,IAAI,CAAC,CAAC;IACrI,OAAO,IAAI,CAAC;AACd,CAAC;AAUD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAwB,EAAE,QAAyB,EAAE;IACvF,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,WAAW,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACjF,CAAC;AAED,eAAe;IACb,WAAW,EAAE,oHAAoH;IACjI,OAAO,EAAE;QACP,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,wEAAwE,UAAU,oBAAoB,EAAE;KACnJ;IACD,MAAM,EAAE,aAAa;CACtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"claude-session-context.d.ts","sourceRoot":"","sources":["../../../../src/commands/git/claude-session-context.ts"],"names":[],"mappings":";;;;;AAoBA,wBA+BE"}
1
+ {"version":3,"file":"claude-session-context.d.ts","sourceRoot":"","sources":["../../../../src/commands/git/claude-session-context.ts"],"names":[],"mappings":";;;;;AAqBA,wBA+BE"}
@@ -7,7 +7,8 @@ import { existsSync, readFileSync, writeFileSync } from 'node:fs';
7
7
  * sees it, and (b) persist `CLAUDE_CODE_SESSION_ID` to the env file Claude
8
8
  * sources, so later `git commit`s detect claude-code and attribute tokens.
9
9
  *
10
- * Registered in ~/.claude/settings.json by `bootstrapper install-git-hooks`.
10
+ * Was registered in ~/.claude/settings.json by the old `bootstrapper install-git-hooks`;
11
+ * nothing registers it any more. Kept, like `git commit-trailers`, for hooks already installed.
11
12
  */
12
13
  async function readStdin() {
13
14
  if (process.stdin.isTTY)
@@ -1 +1 @@
1
- {"version":3,"file":"claude-session-context.js","sourceRoot":"","sources":["../../../../src/commands/git/claude-session-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAElE;;;;;;;;;GASG;AAEH,KAAK,UAAU,SAAS;IACtB,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK;QAAE,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;IACtE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,eAAe;IACb,WAAW,EAAE,yGAAyG;IACtH,OAAO,EAAE,EAAE;IACX,KAAK,CAAC,MAAM;QACV,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;QAE9B,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;YACvD,SAAS,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC,CAAC,2CAA2C,CAAC,CAAC;QAEvD,wDAAwD;QACxD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAClC,kBAAkB,EAAE;gBAClB,aAAa,EAAE,cAAc;gBAC7B,iBAAiB,EAAE,0BAA0B,SAAS,EAAE;aACzD;SACF,CAAC,CAAC,CAAC;QAEJ,4EAA4E;QAC5E,2EAA2E;QAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QAC5C,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;YACzB,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAAC,IAAI,CAAC;oBAAC,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAAC,CAAC;YACrG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC;oBAAC,aAAa,CAAC,OAAO,EAAE,kCAAkC,SAAS,KAAK,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;YAC7G,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"claude-session-context.js","sourceRoot":"","sources":["../../../../src/commands/git/claude-session-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAElE;;;;;;;;;;GAUG;AAEH,KAAK,UAAU,SAAS;IACtB,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK;QAAE,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;IACtE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,eAAe;IACb,WAAW,EAAE,yGAAyG;IACtH,OAAO,EAAE,EAAE;IACX,KAAK,CAAC,MAAM;QACV,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;QAE9B,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;YACvD,SAAS,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC,CAAC,2CAA2C,CAAC,CAAC;QAEvD,wDAAwD;QACxD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAClC,kBAAkB,EAAE;gBAClB,aAAa,EAAE,cAAc;gBAC7B,iBAAiB,EAAE,0BAA0B,SAAS,EAAE;aACzD;SACF,CAAC,CAAC,CAAC;QAEJ,4EAA4E;QAC5E,2EAA2E;QAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QAC5C,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;YACzB,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAAC,IAAI,CAAC;oBAAC,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAAC,CAAC;YACrG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC;oBAAC,aAAa,CAAC,OAAO,EAAE,kCAAkC,SAAS,KAAK,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;YAC7G,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -152,7 +152,7 @@ function formatCost(c) {
152
152
  return (Math.round(c * 10000) / 10000).toString();
153
153
  }
154
154
  export default {
155
- description: 'Emit AI-origin git commit trailers (used by prepare-commit-msg). Portable: no jq/bc/sed required.',
155
+ description: '[deprecated] Emit AI-origin commit trailers for the retired prepare-commit-msg hook (kept so already-installed hooks keep working)',
156
156
  options: [
157
157
  { flags: '--commit-msg-file <path>', description: 'Commit message file to append trailers to (git hook $1). If omitted, prints to stdout' },
158
158
  { flags: '--source <source>', description: 'Commit source (git hook $2): merge, squash, message, template, commit' },