cmp-standards 2.0.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 (238) hide show
  1. package/README.md +541 -0
  2. package/dist/analytics/index.d.ts +5 -0
  3. package/dist/analytics/index.d.ts.map +1 -0
  4. package/dist/analytics/index.js +5 -0
  5. package/dist/analytics/index.js.map +1 -0
  6. package/dist/analytics/tracker.d.ts +107 -0
  7. package/dist/analytics/tracker.d.ts.map +1 -0
  8. package/dist/analytics/tracker.js +333 -0
  9. package/dist/analytics/tracker.js.map +1 -0
  10. package/dist/auto-improve/eslint-generator.d.ts +36 -0
  11. package/dist/auto-improve/eslint-generator.d.ts.map +1 -0
  12. package/dist/auto-improve/eslint-generator.js +280 -0
  13. package/dist/auto-improve/eslint-generator.js.map +1 -0
  14. package/dist/auto-improve/index.d.ts +6 -0
  15. package/dist/auto-improve/index.d.ts.map +1 -0
  16. package/dist/auto-improve/index.js +6 -0
  17. package/dist/auto-improve/index.js.map +1 -0
  18. package/dist/auto-improve/pattern-detector.d.ts +92 -0
  19. package/dist/auto-improve/pattern-detector.d.ts.map +1 -0
  20. package/dist/auto-improve/pattern-detector.js +231 -0
  21. package/dist/auto-improve/pattern-detector.js.map +1 -0
  22. package/dist/cli/index.d.ts +18 -0
  23. package/dist/cli/index.d.ts.map +1 -0
  24. package/dist/cli/index.js +769 -0
  25. package/dist/cli/index.js.map +1 -0
  26. package/dist/dashboard/index.d.ts +6 -0
  27. package/dist/dashboard/index.d.ts.map +1 -0
  28. package/dist/dashboard/index.js +6 -0
  29. package/dist/dashboard/index.js.map +1 -0
  30. package/dist/dashboard/server.d.ts +15 -0
  31. package/dist/dashboard/server.d.ts.map +1 -0
  32. package/dist/dashboard/server.js +373 -0
  33. package/dist/dashboard/server.js.map +1 -0
  34. package/dist/dashboard/ui.d.ts +9 -0
  35. package/dist/dashboard/ui.d.ts.map +1 -0
  36. package/dist/dashboard/ui.js +530 -0
  37. package/dist/dashboard/ui.js.map +1 -0
  38. package/dist/db/client.d.ts +66 -0
  39. package/dist/db/client.d.ts.map +1 -0
  40. package/dist/db/client.js +159 -0
  41. package/dist/db/client.js.map +1 -0
  42. package/dist/db/drizzle-client.d.ts +302 -0
  43. package/dist/db/drizzle-client.d.ts.map +1 -0
  44. package/dist/db/drizzle-client.js +404 -0
  45. package/dist/db/drizzle-client.js.map +1 -0
  46. package/dist/db/index.d.ts +5 -0
  47. package/dist/db/index.d.ts.map +1 -0
  48. package/dist/db/index.js +5 -0
  49. package/dist/db/index.js.map +1 -0
  50. package/dist/eslint/config-builder.d.ts +45 -0
  51. package/dist/eslint/config-builder.d.ts.map +1 -0
  52. package/dist/eslint/config-builder.js +128 -0
  53. package/dist/eslint/config-builder.js.map +1 -0
  54. package/dist/eslint/index.d.ts +161 -0
  55. package/dist/eslint/index.d.ts.map +1 -0
  56. package/dist/eslint/index.js +106 -0
  57. package/dist/eslint/index.js.map +1 -0
  58. package/dist/eslint/rules/consistent-error-handling.d.ts +9 -0
  59. package/dist/eslint/rules/consistent-error-handling.d.ts.map +1 -0
  60. package/dist/eslint/rules/consistent-error-handling.js +52 -0
  61. package/dist/eslint/rules/consistent-error-handling.js.map +1 -0
  62. package/dist/eslint/rules/finance-ledger-sync.d.ts +12 -0
  63. package/dist/eslint/rules/finance-ledger-sync.d.ts.map +1 -0
  64. package/dist/eslint/rules/finance-ledger-sync.js +72 -0
  65. package/dist/eslint/rules/finance-ledger-sync.js.map +1 -0
  66. package/dist/eslint/rules/no-async-useeffect.d.ts +10 -0
  67. package/dist/eslint/rules/no-async-useeffect.d.ts.map +1 -0
  68. package/dist/eslint/rules/no-async-useeffect.js +49 -0
  69. package/dist/eslint/rules/no-async-useeffect.js.map +1 -0
  70. package/dist/eslint/rules/no-await-in-loop.d.ts +10 -0
  71. package/dist/eslint/rules/no-await-in-loop.d.ts.map +1 -0
  72. package/dist/eslint/rules/no-await-in-loop.js +51 -0
  73. package/dist/eslint/rules/no-await-in-loop.js.map +1 -0
  74. package/dist/eslint/rules/no-inline-functions-in-jsx.d.ts +10 -0
  75. package/dist/eslint/rules/no-inline-functions-in-jsx.d.ts.map +1 -0
  76. package/dist/eslint/rules/no-inline-functions-in-jsx.js +45 -0
  77. package/dist/eslint/rules/no-inline-functions-in-jsx.js.map +1 -0
  78. package/dist/eslint/rules/no-raw-sql.d.ts +19 -0
  79. package/dist/eslint/rules/no-raw-sql.d.ts.map +1 -0
  80. package/dist/eslint/rules/no-raw-sql.js +136 -0
  81. package/dist/eslint/rules/no-raw-sql.js.map +1 -0
  82. package/dist/eslint/rules/no-sequential-api-calls.d.ts +10 -0
  83. package/dist/eslint/rules/no-sequential-api-calls.d.ts.map +1 -0
  84. package/dist/eslint/rules/no-sequential-api-calls.js +72 -0
  85. package/dist/eslint/rules/no-sequential-api-calls.js.map +1 -0
  86. package/dist/eslint/rules/prefer-server-components.d.ts +10 -0
  87. package/dist/eslint/rules/prefer-server-components.d.ts.map +1 -0
  88. package/dist/eslint/rules/prefer-server-components.js +76 -0
  89. package/dist/eslint/rules/prefer-server-components.js.map +1 -0
  90. package/dist/eslint/rules/require-loading-states.d.ts +9 -0
  91. package/dist/eslint/rules/require-loading-states.d.ts.map +1 -0
  92. package/dist/eslint/rules/require-loading-states.js +85 -0
  93. package/dist/eslint/rules/require-loading-states.js.map +1 -0
  94. package/dist/eslint/rules/require-zod-validation.d.ts +10 -0
  95. package/dist/eslint/rules/require-zod-validation.d.ts.map +1 -0
  96. package/dist/eslint/rules/require-zod-validation.js +70 -0
  97. package/dist/eslint/rules/require-zod-validation.js.map +1 -0
  98. package/dist/eslint/rules/semantic-tokens-only.d.ts +10 -0
  99. package/dist/eslint/rules/semantic-tokens-only.d.ts.map +1 -0
  100. package/dist/eslint/rules/semantic-tokens-only.js +62 -0
  101. package/dist/eslint/rules/semantic-tokens-only.js.map +1 -0
  102. package/dist/feedback/collector.d.ts +74 -0
  103. package/dist/feedback/collector.d.ts.map +1 -0
  104. package/dist/feedback/collector.js +231 -0
  105. package/dist/feedback/collector.js.map +1 -0
  106. package/dist/feedback/index.d.ts +5 -0
  107. package/dist/feedback/index.d.ts.map +1 -0
  108. package/dist/feedback/index.js +5 -0
  109. package/dist/feedback/index.js.map +1 -0
  110. package/dist/hooks/index.d.ts +8 -0
  111. package/dist/hooks/index.d.ts.map +1 -0
  112. package/dist/hooks/index.js +8 -0
  113. package/dist/hooks/index.js.map +1 -0
  114. package/dist/hooks/memory-checkpoint.d.ts +43 -0
  115. package/dist/hooks/memory-checkpoint.d.ts.map +1 -0
  116. package/dist/hooks/memory-checkpoint.js +257 -0
  117. package/dist/hooks/memory-checkpoint.js.map +1 -0
  118. package/dist/hooks/post-tool-use.d.ts +61 -0
  119. package/dist/hooks/post-tool-use.d.ts.map +1 -0
  120. package/dist/hooks/post-tool-use.js +262 -0
  121. package/dist/hooks/post-tool-use.js.map +1 -0
  122. package/dist/hooks/pre-tool-use.d.ts +34 -0
  123. package/dist/hooks/pre-tool-use.d.ts.map +1 -0
  124. package/dist/hooks/pre-tool-use.js +358 -0
  125. package/dist/hooks/pre-tool-use.js.map +1 -0
  126. package/dist/hooks/session-start.d.ts +38 -0
  127. package/dist/hooks/session-start.d.ts.map +1 -0
  128. package/dist/hooks/session-start.js +274 -0
  129. package/dist/hooks/session-start.js.map +1 -0
  130. package/dist/index.d.ts +29 -0
  131. package/dist/index.d.ts.map +1 -0
  132. package/dist/index.js +39 -0
  133. package/dist/index.js.map +1 -0
  134. package/dist/mcp/index.d.ts +5 -0
  135. package/dist/mcp/index.d.ts.map +1 -0
  136. package/dist/mcp/index.js +5 -0
  137. package/dist/mcp/index.js.map +1 -0
  138. package/dist/mcp/server.d.ts +42 -0
  139. package/dist/mcp/server.d.ts.map +1 -0
  140. package/dist/mcp/server.js +599 -0
  141. package/dist/mcp/server.js.map +1 -0
  142. package/dist/registry/embeddings.d.ts +38 -0
  143. package/dist/registry/embeddings.d.ts.map +1 -0
  144. package/dist/registry/embeddings.js +110 -0
  145. package/dist/registry/embeddings.js.map +1 -0
  146. package/dist/registry/generator.d.ts +41 -0
  147. package/dist/registry/generator.d.ts.map +1 -0
  148. package/dist/registry/generator.js +323 -0
  149. package/dist/registry/generator.js.map +1 -0
  150. package/dist/registry/index.d.ts +6 -0
  151. package/dist/registry/index.d.ts.map +1 -0
  152. package/dist/registry/index.js +6 -0
  153. package/dist/registry/index.js.map +1 -0
  154. package/dist/services/IdeaCollector.d.ts +103 -0
  155. package/dist/services/IdeaCollector.d.ts.map +1 -0
  156. package/dist/services/IdeaCollector.js +371 -0
  157. package/dist/services/IdeaCollector.js.map +1 -0
  158. package/dist/services/ProjectScaffold.d.ts +76 -0
  159. package/dist/services/ProjectScaffold.d.ts.map +1 -0
  160. package/dist/services/ProjectScaffold.js +479 -0
  161. package/dist/services/ProjectScaffold.js.map +1 -0
  162. package/dist/services/ProjectScanner.d.ts +81 -0
  163. package/dist/services/ProjectScanner.d.ts.map +1 -0
  164. package/dist/services/ProjectScanner.js +349 -0
  165. package/dist/services/ProjectScanner.js.map +1 -0
  166. package/dist/services/TaskTracker.d.ts +89 -0
  167. package/dist/services/TaskTracker.d.ts.map +1 -0
  168. package/dist/services/TaskTracker.js +324 -0
  169. package/dist/services/TaskTracker.js.map +1 -0
  170. package/dist/services/WorkPlanManager.d.ts +107 -0
  171. package/dist/services/WorkPlanManager.d.ts.map +1 -0
  172. package/dist/services/WorkPlanManager.js +440 -0
  173. package/dist/services/WorkPlanManager.js.map +1 -0
  174. package/dist/services/auto-inject.d.ts +77 -0
  175. package/dist/services/auto-inject.d.ts.map +1 -0
  176. package/dist/services/auto-inject.js +289 -0
  177. package/dist/services/auto-inject.js.map +1 -0
  178. package/dist/services/auto-tag.d.ts +61 -0
  179. package/dist/services/auto-tag.d.ts.map +1 -0
  180. package/dist/services/auto-tag.js +203 -0
  181. package/dist/services/auto-tag.js.map +1 -0
  182. package/dist/services/cross-project-sync.d.ts +76 -0
  183. package/dist/services/cross-project-sync.d.ts.map +1 -0
  184. package/dist/services/cross-project-sync.js +235 -0
  185. package/dist/services/cross-project-sync.js.map +1 -0
  186. package/dist/services/index.d.ts +17 -0
  187. package/dist/services/index.d.ts.map +1 -0
  188. package/dist/services/index.js +23 -0
  189. package/dist/services/index.js.map +1 -0
  190. package/dist/services/memory-consolidation.d.ts +77 -0
  191. package/dist/services/memory-consolidation.d.ts.map +1 -0
  192. package/dist/services/memory-consolidation.js +298 -0
  193. package/dist/services/memory-consolidation.js.map +1 -0
  194. package/dist/services/semantic-search.d.ts +93 -0
  195. package/dist/services/semantic-search.d.ts.map +1 -0
  196. package/dist/services/semantic-search.js +278 -0
  197. package/dist/services/semantic-search.js.map +1 -0
  198. package/dist/services/weekly-digest.d.ts +105 -0
  199. package/dist/services/weekly-digest.d.ts.map +1 -0
  200. package/dist/services/weekly-digest.js +292 -0
  201. package/dist/services/weekly-digest.js.map +1 -0
  202. package/dist/types/index.d.ts +274 -0
  203. package/dist/types/index.d.ts.map +1 -0
  204. package/dist/types/index.js +84 -0
  205. package/dist/types/index.js.map +1 -0
  206. package/dist/utils/config.d.ts +21 -0
  207. package/dist/utils/config.d.ts.map +1 -0
  208. package/dist/utils/config.js +89 -0
  209. package/dist/utils/config.js.map +1 -0
  210. package/dist/utils/index.d.ts +6 -0
  211. package/dist/utils/index.d.ts.map +1 -0
  212. package/dist/utils/index.js +6 -0
  213. package/dist/utils/index.js.map +1 -0
  214. package/dist/utils/paths.d.ts +28 -0
  215. package/dist/utils/paths.d.ts.map +1 -0
  216. package/dist/utils/paths.js +80 -0
  217. package/dist/utils/paths.js.map +1 -0
  218. package/package.json +95 -0
  219. package/templates/agents/architecture-expert.md +61 -0
  220. package/templates/agents/database-expert.md +62 -0
  221. package/templates/agents/documentation-expert.md +57 -0
  222. package/templates/agents/memory-expert.md +88 -0
  223. package/templates/agents/performance-expert.md +61 -0
  224. package/templates/agents/security-expert.md +59 -0
  225. package/templates/agents/ux-expert.md +63 -0
  226. package/templates/agents/worker.md +75 -0
  227. package/templates/ai-skills/SKILL_TEMPLATE.md +55 -0
  228. package/templates/commands/experts.md +138 -0
  229. package/templates/hooks/README.md +158 -0
  230. package/templates/hooks/project.config.json.template +77 -0
  231. package/templates/hooks/settings.local.json.template +57 -0
  232. package/templates/memory-config.json +82 -0
  233. package/templates/memory-config.schema.json +212 -0
  234. package/templates/settings.json +58 -0
  235. package/templates/workflows/business-improvement.md +264 -0
  236. package/templates/workflows/expert-review.md +153 -0
  237. package/templates/workflows/internal-app.md +245 -0
  238. package/templates/workflows/sync-docs.md +187 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-checkpoint.js","sourceRoot":"","sources":["../../src/hooks/memory-checkpoint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * PostToolUse Hook - Executable
3
+ *
4
+ * Records what was actually changed after Edit/Write completes.
5
+ * Creates memory entries for significant changes.
6
+ */
7
+ import type { HookResult } from '../types/index.js';
8
+ export interface PostToolUseEvent {
9
+ tool_name: string;
10
+ parameters: Record<string, unknown>;
11
+ result: {
12
+ success: boolean;
13
+ output?: string;
14
+ error?: string;
15
+ };
16
+ }
17
+ interface ChangeRecord {
18
+ file: string;
19
+ type: 'edit' | 'write' | 'delete';
20
+ linesChanged?: number;
21
+ summary?: string;
22
+ }
23
+ export declare class PostToolUseHook {
24
+ private config;
25
+ private projectRoot;
26
+ private client;
27
+ private sessionChanges;
28
+ /**
29
+ * Initialize the hook
30
+ */
31
+ init(projectRoot?: string): Promise<void>;
32
+ /**
33
+ * Execute the hook after a tool completes
34
+ */
35
+ execute(event: PostToolUseEvent): Promise<HookResult>;
36
+ /**
37
+ * Record a significant change to memory
38
+ */
39
+ private recordChange;
40
+ /**
41
+ * Generate description for change
42
+ */
43
+ private generateChangeDescription;
44
+ /**
45
+ * Get all changes recorded this session
46
+ */
47
+ getSessionChanges(): ChangeRecord[];
48
+ /**
49
+ * Create session summary
50
+ */
51
+ createSessionSummary(): Promise<{
52
+ id: string;
53
+ } | null>;
54
+ /**
55
+ * Clear session changes
56
+ */
57
+ clearSession(): void;
58
+ }
59
+ export declare function runPostToolUseHook(eventJson: string): Promise<void>;
60
+ export {};
61
+ //# sourceMappingURL=post-tool-use.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-tool-use.d.ts","sourceRoot":"","sources":["../../src/hooks/post-tool-use.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAA+B,MAAM,mBAAmB,CAAA;AAShF,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,MAAM,EAAE;QACN,OAAO,EAAE,OAAO,CAAA;QAChB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;CACF;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;IACjC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AA0GD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,cAAc,CAAqB;IAE3C;;OAEG;IACG,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/C;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IA0C3D;;OAEG;YACW,YAAY;IA4B1B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAkBjC;;OAEG;IACH,iBAAiB,IAAI,YAAY,EAAE;IAInC;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IA6C5D;;OAEG;IACH,YAAY,IAAI,IAAI;CAGrB;AAMD,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKzE"}
@@ -0,0 +1,262 @@
1
+ /**
2
+ * PostToolUse Hook - Executable
3
+ *
4
+ * Records what was actually changed after Edit/Write completes.
5
+ * Creates memory entries for significant changes.
6
+ */
7
+ import { loadConfig } from '../utils/config.js';
8
+ import { getProjectRoot, matchesPattern } from '../utils/paths.js';
9
+ import { createDrizzleClient } from '../db/drizzle-client.js';
10
+ // =============================================================================
11
+ // CHANGE ANALYSIS
12
+ // =============================================================================
13
+ /**
14
+ * Analyze what was changed
15
+ */
16
+ function analyzeChange(event) {
17
+ const { tool_name, parameters, result } = event;
18
+ if (!result.success) {
19
+ return null;
20
+ }
21
+ switch (tool_name) {
22
+ case 'Edit': {
23
+ const filePath = parameters.file_path;
24
+ const oldString = parameters.old_string;
25
+ const newString = parameters.new_string;
26
+ if (!filePath)
27
+ return null;
28
+ const linesChanged = Math.abs((newString?.split('\n').length ?? 0) - (oldString?.split('\n').length ?? 0));
29
+ return {
30
+ file: filePath,
31
+ type: 'edit',
32
+ linesChanged,
33
+ summary: `Edited ${filePath.split('/').pop()}`,
34
+ };
35
+ }
36
+ case 'Write': {
37
+ const filePath = parameters.file_path;
38
+ const content = parameters.content;
39
+ if (!filePath)
40
+ return null;
41
+ return {
42
+ file: filePath,
43
+ type: 'write',
44
+ linesChanged: content?.split('\n').length ?? 0,
45
+ summary: `Created ${filePath.split('/').pop()}`,
46
+ };
47
+ }
48
+ default:
49
+ return null;
50
+ }
51
+ }
52
+ /**
53
+ * Determine if change is significant enough to record
54
+ */
55
+ function isSignificantChange(change, config) {
56
+ // Critical paths are always significant
57
+ if (matchesPattern(change.file, config.checkpoint.criticalPaths)) {
58
+ return true;
59
+ }
60
+ // Check minimum lines changed
61
+ if (change.linesChanged && change.linesChanged >= config.checkpoint.minLinesChanged) {
62
+ return true;
63
+ }
64
+ // New files are significant
65
+ if (change.type === 'write') {
66
+ return true;
67
+ }
68
+ return false;
69
+ }
70
+ /**
71
+ * Extract domain from file path
72
+ */
73
+ function extractDomain(filePath, domains) {
74
+ const pathLower = filePath.toLowerCase();
75
+ for (const domain of domains) {
76
+ if (pathLower.includes(domain.replace(/-/g, '/')) ||
77
+ pathLower.includes(domain.replace(/-/g, '_'))) {
78
+ return domain;
79
+ }
80
+ }
81
+ // Fallback detection
82
+ if (pathLower.includes('/schema/'))
83
+ return 'schema';
84
+ if (pathLower.includes('/api/') || pathLower.includes('/routers/'))
85
+ return 'api';
86
+ if (pathLower.includes('/components/'))
87
+ return 'components';
88
+ if (pathLower.includes('/hooks/'))
89
+ return 'hooks';
90
+ return 'general';
91
+ }
92
+ // =============================================================================
93
+ // MAIN HOOK CLASS
94
+ // =============================================================================
95
+ export class PostToolUseHook {
96
+ config = null;
97
+ projectRoot = null;
98
+ client = null;
99
+ sessionChanges = [];
100
+ /**
101
+ * Initialize the hook
102
+ */
103
+ async init(projectRoot) {
104
+ this.projectRoot = projectRoot ?? await getProjectRoot();
105
+ this.config = await loadConfig(this.projectRoot);
106
+ try {
107
+ this.client = createDrizzleClient(this.config.system);
108
+ }
109
+ catch {
110
+ // DB not available, will log locally
111
+ console.warn('[PostToolUse] Database not available, recording changes locally');
112
+ }
113
+ }
114
+ /**
115
+ * Execute the hook after a tool completes
116
+ */
117
+ async execute(event) {
118
+ if (!this.config || !this.projectRoot) {
119
+ await this.init();
120
+ }
121
+ const config = this.config;
122
+ // Skip if checkpointing disabled
123
+ if (!config.checkpoint.enabled) {
124
+ return { mode: 'proceed' };
125
+ }
126
+ // Analyze the change
127
+ const change = analyzeChange(event);
128
+ if (!change) {
129
+ return { mode: 'proceed' };
130
+ }
131
+ // Check if excluded
132
+ if (matchesPattern(change.file, config.checkpoint.excludePaths)) {
133
+ return { mode: 'proceed' };
134
+ }
135
+ // Track the change
136
+ this.sessionChanges.push(change);
137
+ // Check if significant
138
+ if (!isSignificantChange(change, config)) {
139
+ return { mode: 'proceed' };
140
+ }
141
+ // Record significant change
142
+ try {
143
+ await this.recordChange(change, config);
144
+ }
145
+ catch (error) {
146
+ console.error('[PostToolUse] Failed to record change:', error);
147
+ }
148
+ return { mode: 'proceed' };
149
+ }
150
+ /**
151
+ * Record a significant change to memory
152
+ */
153
+ async recordChange(change, config) {
154
+ const domain = extractDomain(change.file, config.domains);
155
+ const content = {
156
+ title: change.summary ?? `Change to ${change.file}`,
157
+ body: this.generateChangeDescription(change),
158
+ domain,
159
+ source: 'checkpoint',
160
+ relatedFiles: [change.file],
161
+ };
162
+ if (this.client) {
163
+ // Save to database
164
+ await this.client.createMemory(content, [
165
+ 'auto-checkpoint',
166
+ domain,
167
+ change.type,
168
+ ]);
169
+ console.log(`📝 [PostToolUse] Recorded: ${content.title}`);
170
+ }
171
+ else {
172
+ // Log locally
173
+ console.log(`📝 [PostToolUse] Change recorded (local): ${content.title}`);
174
+ }
175
+ }
176
+ /**
177
+ * Generate description for change
178
+ */
179
+ generateChangeDescription(change) {
180
+ const lines = [];
181
+ lines.push(`## Change Details`);
182
+ lines.push('');
183
+ lines.push(`- **File**: ${change.file}`);
184
+ lines.push(`- **Type**: ${change.type}`);
185
+ if (change.linesChanged) {
186
+ lines.push(`- **Lines changed**: ${change.linesChanged}`);
187
+ }
188
+ lines.push('');
189
+ lines.push(`*Recorded at ${new Date().toISOString()}*`);
190
+ return lines.join('\n');
191
+ }
192
+ /**
193
+ * Get all changes recorded this session
194
+ */
195
+ getSessionChanges() {
196
+ return [...this.sessionChanges];
197
+ }
198
+ /**
199
+ * Create session summary
200
+ */
201
+ async createSessionSummary() {
202
+ if (this.sessionChanges.length === 0) {
203
+ return null;
204
+ }
205
+ const config = this.config;
206
+ const changes = this.sessionChanges;
207
+ // Group by domain
208
+ const byDomain = new Map();
209
+ for (const change of changes) {
210
+ const domain = extractDomain(change.file, config.domains);
211
+ const existing = byDomain.get(domain) ?? [];
212
+ existing.push(change);
213
+ byDomain.set(domain, existing);
214
+ }
215
+ // Generate summary
216
+ const lines = ['## Session Summary', ''];
217
+ for (const [domain, domainChanges] of byDomain) {
218
+ lines.push(`### ${domain}`);
219
+ for (const change of domainChanges) {
220
+ lines.push(`- ${change.type}: ${change.file.split('/').pop()}`);
221
+ }
222
+ lines.push('');
223
+ }
224
+ lines.push(`**Total changes**: ${changes.length}`);
225
+ lines.push(`**Domains affected**: ${byDomain.size}`);
226
+ const content = {
227
+ title: `Session Summary: ${changes.length} changes`,
228
+ body: lines.join('\n'),
229
+ source: 'checkpoint',
230
+ relatedFiles: changes.map(c => c.file),
231
+ };
232
+ if (this.client) {
233
+ return this.client.createMemory(content, ['session-summary']);
234
+ }
235
+ return null;
236
+ }
237
+ /**
238
+ * Clear session changes
239
+ */
240
+ clearSession() {
241
+ this.sessionChanges = [];
242
+ }
243
+ }
244
+ // =============================================================================
245
+ // STANDALONE EXECUTION
246
+ // =============================================================================
247
+ export async function runPostToolUseHook(eventJson) {
248
+ const event = JSON.parse(eventJson);
249
+ const hook = new PostToolUseHook();
250
+ const result = await hook.execute(event);
251
+ console.log(JSON.stringify(result));
252
+ }
253
+ if (import.meta.url === `file://${process.argv[1]}`) {
254
+ const eventJson = process.argv[2];
255
+ if (eventJson) {
256
+ runPostToolUseHook(eventJson).catch(console.error);
257
+ }
258
+ else {
259
+ console.error('Usage: node post-tool-use.js <event-json>');
260
+ }
261
+ }
262
+ //# sourceMappingURL=post-tool-use.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-tool-use.js","sourceRoot":"","sources":["../../src/hooks/post-tool-use.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * PreToolUse Hook - Executable
3
+ *
4
+ * Validates tool calls against configured guards:
5
+ * 1. Schema protection (block modifications to protected files)
6
+ * 2. Pattern validation (warn about bad patterns)
7
+ * 3. Embedding injection (inject relevant knowledge for Task tool)
8
+ */
9
+ import type { HookResult, PreToolUseEvent } from '../types/index.js';
10
+ export declare class PreToolUseHook {
11
+ private config;
12
+ private projectRoot;
13
+ /**
14
+ * Initialize the hook
15
+ */
16
+ init(projectRoot?: string): Promise<void>;
17
+ /**
18
+ * Execute the hook for a tool call
19
+ */
20
+ execute(event: PreToolUseEvent): Promise<HookResult>;
21
+ /**
22
+ * Handle Edit/Write tool calls - run guards
23
+ */
24
+ private handleFileOperation;
25
+ /**
26
+ * Handle Task tool calls - inject knowledge
27
+ */
28
+ private handleTaskTool;
29
+ }
30
+ /**
31
+ * Run hook as standalone script (reads event from stdin)
32
+ */
33
+ export declare function runPreToolUseHook(): Promise<void>;
34
+ //# sourceMappingURL=pre-tool-use.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pre-tool-use.d.ts","sourceRoot":"","sources":["../../src/hooks/pre-tool-use.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAEV,UAAU,EACV,eAAe,EAMhB,MAAM,mBAAmB,CAAA;AAwQ1B,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,WAAW,CAAsB;IAEzC;;OAEG;IACG,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/C;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAuB1D;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiD3B;;OAEG;YACW,cAAc;CA6C7B;AAMD;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAuBvD"}