ctxinit 0.1.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 (221) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +484 -0
  3. package/bin/ctx.js +3 -0
  4. package/dist/analysis/index.d.ts +2 -0
  5. package/dist/analysis/index.d.ts.map +1 -0
  6. package/dist/analysis/index.js +18 -0
  7. package/dist/analysis/index.js.map +1 -0
  8. package/dist/analysis/static-analysis.d.ts +79 -0
  9. package/dist/analysis/static-analysis.d.ts.map +1 -0
  10. package/dist/analysis/static-analysis.js +279 -0
  11. package/dist/analysis/static-analysis.js.map +1 -0
  12. package/dist/bootstrap/index.d.ts +8 -0
  13. package/dist/bootstrap/index.d.ts.map +1 -0
  14. package/dist/bootstrap/index.js +13 -0
  15. package/dist/bootstrap/index.js.map +1 -0
  16. package/dist/bootstrap/orchestrator.d.ts +48 -0
  17. package/dist/bootstrap/orchestrator.d.ts.map +1 -0
  18. package/dist/bootstrap/orchestrator.js +363 -0
  19. package/dist/bootstrap/orchestrator.js.map +1 -0
  20. package/dist/bootstrap/validator.d.ts +25 -0
  21. package/dist/bootstrap/validator.d.ts.map +1 -0
  22. package/dist/bootstrap/validator.js +412 -0
  23. package/dist/bootstrap/validator.js.map +1 -0
  24. package/dist/build/atomic.d.ts +74 -0
  25. package/dist/build/atomic.d.ts.map +1 -0
  26. package/dist/build/atomic.js +235 -0
  27. package/dist/build/atomic.js.map +1 -0
  28. package/dist/build/index.d.ts +10 -0
  29. package/dist/build/index.d.ts.map +1 -0
  30. package/dist/build/index.js +26 -0
  31. package/dist/build/index.js.map +1 -0
  32. package/dist/build/lock.d.ts +102 -0
  33. package/dist/build/lock.d.ts.map +1 -0
  34. package/dist/build/lock.js +297 -0
  35. package/dist/build/lock.js.map +1 -0
  36. package/dist/build/manifest.d.ts +138 -0
  37. package/dist/build/manifest.d.ts.map +1 -0
  38. package/dist/build/manifest.js +269 -0
  39. package/dist/build/manifest.js.map +1 -0
  40. package/dist/build/orchestrator.d.ts +103 -0
  41. package/dist/build/orchestrator.d.ts.map +1 -0
  42. package/dist/build/orchestrator.js +524 -0
  43. package/dist/build/orchestrator.js.map +1 -0
  44. package/dist/cli/bootstrap.d.ts +77 -0
  45. package/dist/cli/bootstrap.d.ts.map +1 -0
  46. package/dist/cli/bootstrap.js +527 -0
  47. package/dist/cli/bootstrap.js.map +1 -0
  48. package/dist/cli/build.d.ts +32 -0
  49. package/dist/cli/build.d.ts.map +1 -0
  50. package/dist/cli/build.js +156 -0
  51. package/dist/cli/build.js.map +1 -0
  52. package/dist/cli/diff.d.ts +23 -0
  53. package/dist/cli/diff.d.ts.map +1 -0
  54. package/dist/cli/diff.js +226 -0
  55. package/dist/cli/diff.js.map +1 -0
  56. package/dist/cli/hooks.d.ts +29 -0
  57. package/dist/cli/hooks.d.ts.map +1 -0
  58. package/dist/cli/hooks.js +176 -0
  59. package/dist/cli/hooks.js.map +1 -0
  60. package/dist/cli/init.d.ts +53 -0
  61. package/dist/cli/init.d.ts.map +1 -0
  62. package/dist/cli/init.js +254 -0
  63. package/dist/cli/init.js.map +1 -0
  64. package/dist/cli/lint.d.ts +46 -0
  65. package/dist/cli/lint.d.ts.map +1 -0
  66. package/dist/cli/lint.js +210 -0
  67. package/dist/cli/lint.js.map +1 -0
  68. package/dist/cli/migrate.d.ts +28 -0
  69. package/dist/cli/migrate.d.ts.map +1 -0
  70. package/dist/cli/migrate.js +350 -0
  71. package/dist/cli/migrate.js.map +1 -0
  72. package/dist/cli/verify.d.ts +21 -0
  73. package/dist/cli/verify.d.ts.map +1 -0
  74. package/dist/cli/verify.js +209 -0
  75. package/dist/cli/verify.js.map +1 -0
  76. package/dist/cli.d.ts +8 -0
  77. package/dist/cli.d.ts.map +1 -0
  78. package/dist/cli.js +262 -0
  79. package/dist/cli.js.map +1 -0
  80. package/dist/compiler/agents-compiler.d.ts +24 -0
  81. package/dist/compiler/agents-compiler.d.ts.map +1 -0
  82. package/dist/compiler/agents-compiler.js +192 -0
  83. package/dist/compiler/agents-compiler.js.map +1 -0
  84. package/dist/compiler/base-compiler.d.ts +152 -0
  85. package/dist/compiler/base-compiler.d.ts.map +1 -0
  86. package/dist/compiler/base-compiler.js +180 -0
  87. package/dist/compiler/base-compiler.js.map +1 -0
  88. package/dist/compiler/claude-compiler.d.ts +24 -0
  89. package/dist/compiler/claude-compiler.d.ts.map +1 -0
  90. package/dist/compiler/claude-compiler.js +182 -0
  91. package/dist/compiler/claude-compiler.js.map +1 -0
  92. package/dist/compiler/cursor-compiler.d.ts +33 -0
  93. package/dist/compiler/cursor-compiler.d.ts.map +1 -0
  94. package/dist/compiler/cursor-compiler.js +136 -0
  95. package/dist/compiler/cursor-compiler.js.map +1 -0
  96. package/dist/compiler/index.d.ts +7 -0
  97. package/dist/compiler/index.d.ts.map +1 -0
  98. package/dist/compiler/index.js +24 -0
  99. package/dist/compiler/index.js.map +1 -0
  100. package/dist/compiler/rule-selector.d.ts +115 -0
  101. package/dist/compiler/rule-selector.d.ts.map +1 -0
  102. package/dist/compiler/rule-selector.js +273 -0
  103. package/dist/compiler/rule-selector.js.map +1 -0
  104. package/dist/compiler/token-estimator.d.ts +74 -0
  105. package/dist/compiler/token-estimator.d.ts.map +1 -0
  106. package/dist/compiler/token-estimator.js +191 -0
  107. package/dist/compiler/token-estimator.js.map +1 -0
  108. package/dist/config/index.d.ts +2 -0
  109. package/dist/config/index.d.ts.map +1 -0
  110. package/dist/config/index.js +18 -0
  111. package/dist/config/index.js.map +1 -0
  112. package/dist/config/loader.d.ts +48 -0
  113. package/dist/config/loader.d.ts.map +1 -0
  114. package/dist/config/loader.js +175 -0
  115. package/dist/config/loader.js.map +1 -0
  116. package/dist/git/gitignore.d.ts +59 -0
  117. package/dist/git/gitignore.d.ts.map +1 -0
  118. package/dist/git/gitignore.js +268 -0
  119. package/dist/git/gitignore.js.map +1 -0
  120. package/dist/git/hooks.d.ts +34 -0
  121. package/dist/git/hooks.d.ts.map +1 -0
  122. package/dist/git/hooks.js +129 -0
  123. package/dist/git/hooks.js.map +1 -0
  124. package/dist/git/husky.d.ts +52 -0
  125. package/dist/git/husky.d.ts.map +1 -0
  126. package/dist/git/husky.js +219 -0
  127. package/dist/git/husky.js.map +1 -0
  128. package/dist/git/index.d.ts +9 -0
  129. package/dist/git/index.d.ts.map +1 -0
  130. package/dist/git/index.js +15 -0
  131. package/dist/git/index.js.map +1 -0
  132. package/dist/index.d.ts +6 -0
  133. package/dist/index.d.ts.map +1 -0
  134. package/dist/index.js +23 -0
  135. package/dist/index.js.map +1 -0
  136. package/dist/llm/base-provider.d.ts +43 -0
  137. package/dist/llm/base-provider.d.ts.map +1 -0
  138. package/dist/llm/base-provider.js +91 -0
  139. package/dist/llm/base-provider.js.map +1 -0
  140. package/dist/llm/index.d.ts +17 -0
  141. package/dist/llm/index.d.ts.map +1 -0
  142. package/dist/llm/index.js +36 -0
  143. package/dist/llm/index.js.map +1 -0
  144. package/dist/llm/prompts/bootstrap-prompt.d.ts +27 -0
  145. package/dist/llm/prompts/bootstrap-prompt.d.ts.map +1 -0
  146. package/dist/llm/prompts/bootstrap-prompt.js +278 -0
  147. package/dist/llm/prompts/bootstrap-prompt.js.map +1 -0
  148. package/dist/llm/prompts/index.d.ts +5 -0
  149. package/dist/llm/prompts/index.d.ts.map +1 -0
  150. package/dist/llm/prompts/index.js +11 -0
  151. package/dist/llm/prompts/index.js.map +1 -0
  152. package/dist/llm/provider-factory.d.ts +27 -0
  153. package/dist/llm/provider-factory.d.ts.map +1 -0
  154. package/dist/llm/provider-factory.js +213 -0
  155. package/dist/llm/provider-factory.js.map +1 -0
  156. package/dist/llm/providers/claude-api.d.ts +21 -0
  157. package/dist/llm/providers/claude-api.d.ts.map +1 -0
  158. package/dist/llm/providers/claude-api.js +110 -0
  159. package/dist/llm/providers/claude-api.js.map +1 -0
  160. package/dist/llm/providers/claude-code.d.ts +21 -0
  161. package/dist/llm/providers/claude-code.d.ts.map +1 -0
  162. package/dist/llm/providers/claude-code.js +120 -0
  163. package/dist/llm/providers/claude-code.js.map +1 -0
  164. package/dist/llm/providers/codex-cli.d.ts +25 -0
  165. package/dist/llm/providers/codex-cli.d.ts.map +1 -0
  166. package/dist/llm/providers/codex-cli.js +129 -0
  167. package/dist/llm/providers/codex-cli.js.map +1 -0
  168. package/dist/llm/providers/cursor-cli.d.ts +24 -0
  169. package/dist/llm/providers/cursor-cli.d.ts.map +1 -0
  170. package/dist/llm/providers/cursor-cli.js +106 -0
  171. package/dist/llm/providers/cursor-cli.js.map +1 -0
  172. package/dist/llm/providers/gemini-api.d.ts +20 -0
  173. package/dist/llm/providers/gemini-api.d.ts.map +1 -0
  174. package/dist/llm/providers/gemini-api.js +121 -0
  175. package/dist/llm/providers/gemini-api.js.map +1 -0
  176. package/dist/llm/providers/gemini-cli.d.ts +20 -0
  177. package/dist/llm/providers/gemini-cli.d.ts.map +1 -0
  178. package/dist/llm/providers/gemini-cli.js +109 -0
  179. package/dist/llm/providers/gemini-cli.js.map +1 -0
  180. package/dist/llm/providers/interactive.d.ts +42 -0
  181. package/dist/llm/providers/interactive.d.ts.map +1 -0
  182. package/dist/llm/providers/interactive.js +200 -0
  183. package/dist/llm/providers/interactive.js.map +1 -0
  184. package/dist/llm/providers/openai-api.d.ts +21 -0
  185. package/dist/llm/providers/openai-api.d.ts.map +1 -0
  186. package/dist/llm/providers/openai-api.js +107 -0
  187. package/dist/llm/providers/openai-api.js.map +1 -0
  188. package/dist/llm/types.d.ts +128 -0
  189. package/dist/llm/types.d.ts.map +1 -0
  190. package/dist/llm/types.js +8 -0
  191. package/dist/llm/types.js.map +1 -0
  192. package/dist/parser/index.d.ts +3 -0
  193. package/dist/parser/index.d.ts.map +1 -0
  194. package/dist/parser/index.js +19 -0
  195. package/dist/parser/index.js.map +1 -0
  196. package/dist/parser/path-security.d.ts +40 -0
  197. package/dist/parser/path-security.d.ts.map +1 -0
  198. package/dist/parser/path-security.js +183 -0
  199. package/dist/parser/path-security.js.map +1 -0
  200. package/dist/parser/rule-parser.d.ts +50 -0
  201. package/dist/parser/rule-parser.d.ts.map +1 -0
  202. package/dist/parser/rule-parser.js +203 -0
  203. package/dist/parser/rule-parser.js.map +1 -0
  204. package/dist/schemas/config.d.ts +202 -0
  205. package/dist/schemas/config.d.ts.map +1 -0
  206. package/dist/schemas/config.js +96 -0
  207. package/dist/schemas/config.js.map +1 -0
  208. package/dist/schemas/index.d.ts +3 -0
  209. package/dist/schemas/index.d.ts.map +1 -0
  210. package/dist/schemas/index.js +19 -0
  211. package/dist/schemas/index.js.map +1 -0
  212. package/dist/schemas/rule.d.ts +67 -0
  213. package/dist/schemas/rule.d.ts.map +1 -0
  214. package/dist/schemas/rule.js +44 -0
  215. package/dist/schemas/rule.js.map +1 -0
  216. package/package.json +69 -0
  217. package/templates/architecture.md +35 -0
  218. package/templates/bootstrap-prompt.md +242 -0
  219. package/templates/config.yaml +25 -0
  220. package/templates/project.md +44 -0
  221. package/templates/rules/example.md +36 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/build/lock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Build Manifest
3
+ *
4
+ * Tracks file hashes and modification times for incremental builds.
5
+ * Stored at `.context/.build-manifest.json`
6
+ */
7
+ /**
8
+ * Entry for a tracked file in the manifest
9
+ */
10
+ export interface ManifestEntry {
11
+ /** SHA-256 content hash with "sha256:" prefix */
12
+ hash: string;
13
+ /** Last modification time (Unix timestamp in ms) */
14
+ mtime: number;
15
+ /** File size in bytes */
16
+ size: number;
17
+ }
18
+ /**
19
+ * Output dependency tracking
20
+ */
21
+ export interface OutputDependency {
22
+ /** Target output file path */
23
+ outputPath: string;
24
+ /** Source rule paths that contribute to this output */
25
+ sourceRules: string[];
26
+ /** Timestamp when output was generated */
27
+ generatedAt: number;
28
+ }
29
+ /**
30
+ * Build manifest structure
31
+ */
32
+ export interface BuildManifest {
33
+ /** Manifest version for compatibility */
34
+ version: string;
35
+ /** Timestamp of last successful build */
36
+ lastBuildTime: number;
37
+ /** Target that was built (cursor, claude, agents) */
38
+ target: string;
39
+ /** Source file entries (rule files, project.md, etc.) */
40
+ sources: Record<string, ManifestEntry>;
41
+ /** Config file hash */
42
+ configHash: string;
43
+ /** Output dependencies */
44
+ outputs: OutputDependency[];
45
+ }
46
+ /**
47
+ * Calculate SHA-256 hash of file content
48
+ *
49
+ * @param content - File content to hash
50
+ * @returns Hash string with "sha256:" prefix
51
+ */
52
+ export declare function calculateHash(content: string | Buffer): string;
53
+ /**
54
+ * Calculate SHA-256 hash of a file
55
+ *
56
+ * @param filePath - Path to file
57
+ * @returns Hash string with "sha256:" prefix
58
+ */
59
+ export declare function calculateFileHash(filePath: string): Promise<string>;
60
+ /**
61
+ * Create a manifest entry for a file
62
+ *
63
+ * @param filePath - Path to file
64
+ * @returns Manifest entry with hash, mtime, and size
65
+ */
66
+ export declare function createManifestEntry(filePath: string): Promise<ManifestEntry>;
67
+ /**
68
+ * Create an empty manifest
69
+ *
70
+ * @param target - Build target (cursor, claude, agents)
71
+ * @returns Empty manifest
72
+ */
73
+ export declare function createEmptyManifest(target: string): BuildManifest;
74
+ /**
75
+ * Get manifest file path
76
+ *
77
+ * @param projectRoot - Project root directory
78
+ * @returns Manifest file path
79
+ */
80
+ export declare function getManifestPath(projectRoot: string): string;
81
+ /**
82
+ * Read manifest from disk
83
+ *
84
+ * @param projectRoot - Project root directory
85
+ * @returns Manifest or null if not found
86
+ */
87
+ export declare function readManifest(projectRoot: string): Promise<BuildManifest | null>;
88
+ /**
89
+ * Write manifest to disk
90
+ *
91
+ * @param projectRoot - Project root directory
92
+ * @param manifest - Manifest to write
93
+ */
94
+ export declare function writeManifest(projectRoot: string, manifest: BuildManifest): Promise<void>;
95
+ /**
96
+ * Check if a file has changed since last build
97
+ *
98
+ * Uses mtime for fast detection, falls back to hash comparison
99
+ *
100
+ * @param filePath - File to check
101
+ * @param entry - Previous manifest entry
102
+ * @returns true if file has changed
103
+ */
104
+ export declare function hasFileChanged(filePath: string, entry: ManifestEntry | undefined): Promise<boolean>;
105
+ /**
106
+ * Detect all changed files since last build
107
+ *
108
+ * @param projectRoot - Project root directory
109
+ * @param currentFiles - Current source files
110
+ * @param manifest - Previous build manifest
111
+ * @returns Object with added, modified, and removed file lists
112
+ */
113
+ export declare function detectChanges(projectRoot: string, currentFiles: string[], manifest: BuildManifest): Promise<{
114
+ added: string[];
115
+ modified: string[];
116
+ removed: string[];
117
+ unchanged: string[];
118
+ }>;
119
+ /**
120
+ * Update manifest with current file states
121
+ *
122
+ * @param projectRoot - Project root directory
123
+ * @param files - Files to include in manifest
124
+ * @param target - Build target
125
+ * @param outputs - Output dependencies
126
+ * @param configHash - Hash of config file
127
+ * @returns Updated manifest
128
+ */
129
+ export declare function updateManifest(projectRoot: string, files: string[], target: string, outputs: OutputDependency[], configHash: string): Promise<BuildManifest>;
130
+ /**
131
+ * Find outputs affected by changed source files
132
+ *
133
+ * @param manifest - Build manifest
134
+ * @param changedFiles - Files that have changed
135
+ * @returns Output paths that need regeneration
136
+ */
137
+ export declare function findAffectedOutputs(manifest: BuildManifest, changedFiles: string[]): string[];
138
+ //# sourceMappingURL=manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/build/manifest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACvC,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAYD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAG9D;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGzE;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAUlF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CASjE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAmBrF;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/F;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,aAAa,GAAG,SAAS,GAC/B,OAAO,CAAC,OAAO,CAAC,CAsBlB;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EAAE,EACtB,QAAQ,EAAE,aAAa,GACtB,OAAO,CAAC;IACT,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC,CAgCD;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,EAAE,EAC3B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CAgBxB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,aAAa,EACvB,YAAY,EAAE,MAAM,EAAE,GACrB,MAAM,EAAE,CAcV"}
@@ -0,0 +1,269 @@
1
+ "use strict";
2
+ /**
3
+ * Build Manifest
4
+ *
5
+ * Tracks file hashes and modification times for incremental builds.
6
+ * Stored at `.context/.build-manifest.json`
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.calculateHash = calculateHash;
43
+ exports.calculateFileHash = calculateFileHash;
44
+ exports.createManifestEntry = createManifestEntry;
45
+ exports.createEmptyManifest = createEmptyManifest;
46
+ exports.getManifestPath = getManifestPath;
47
+ exports.readManifest = readManifest;
48
+ exports.writeManifest = writeManifest;
49
+ exports.hasFileChanged = hasFileChanged;
50
+ exports.detectChanges = detectChanges;
51
+ exports.updateManifest = updateManifest;
52
+ exports.findAffectedOutputs = findAffectedOutputs;
53
+ const fs = __importStar(require("fs"));
54
+ const path = __importStar(require("path"));
55
+ const crypto = __importStar(require("crypto"));
56
+ /**
57
+ * Default manifest path
58
+ */
59
+ const MANIFEST_FILENAME = '.build-manifest.json';
60
+ /**
61
+ * Current manifest version
62
+ */
63
+ const MANIFEST_VERSION = '1.0';
64
+ /**
65
+ * Calculate SHA-256 hash of file content
66
+ *
67
+ * @param content - File content to hash
68
+ * @returns Hash string with "sha256:" prefix
69
+ */
70
+ function calculateHash(content) {
71
+ const hash = crypto.createHash('sha256').update(content).digest('hex');
72
+ return `sha256:${hash}`;
73
+ }
74
+ /**
75
+ * Calculate SHA-256 hash of a file
76
+ *
77
+ * @param filePath - Path to file
78
+ * @returns Hash string with "sha256:" prefix
79
+ */
80
+ async function calculateFileHash(filePath) {
81
+ const content = await fs.promises.readFile(filePath);
82
+ return calculateHash(content);
83
+ }
84
+ /**
85
+ * Create a manifest entry for a file
86
+ *
87
+ * @param filePath - Path to file
88
+ * @returns Manifest entry with hash, mtime, and size
89
+ */
90
+ async function createManifestEntry(filePath) {
91
+ const stats = await fs.promises.stat(filePath);
92
+ const content = await fs.promises.readFile(filePath);
93
+ const hash = calculateHash(content);
94
+ return {
95
+ hash,
96
+ mtime: stats.mtimeMs,
97
+ size: stats.size,
98
+ };
99
+ }
100
+ /**
101
+ * Create an empty manifest
102
+ *
103
+ * @param target - Build target (cursor, claude, agents)
104
+ * @returns Empty manifest
105
+ */
106
+ function createEmptyManifest(target) {
107
+ return {
108
+ version: MANIFEST_VERSION,
109
+ lastBuildTime: 0,
110
+ target,
111
+ sources: {},
112
+ configHash: '',
113
+ outputs: [],
114
+ };
115
+ }
116
+ /**
117
+ * Get manifest file path
118
+ *
119
+ * @param projectRoot - Project root directory
120
+ * @returns Manifest file path
121
+ */
122
+ function getManifestPath(projectRoot) {
123
+ return path.join(projectRoot, '.context', MANIFEST_FILENAME);
124
+ }
125
+ /**
126
+ * Read manifest from disk
127
+ *
128
+ * @param projectRoot - Project root directory
129
+ * @returns Manifest or null if not found
130
+ */
131
+ async function readManifest(projectRoot) {
132
+ const manifestPath = getManifestPath(projectRoot);
133
+ try {
134
+ const content = await fs.promises.readFile(manifestPath, 'utf-8');
135
+ const manifest = JSON.parse(content);
136
+ // Validate version
137
+ if (manifest.version !== MANIFEST_VERSION) {
138
+ return null; // Incompatible version, trigger full rebuild
139
+ }
140
+ return manifest;
141
+ }
142
+ catch (error) {
143
+ if (error.code === 'ENOENT') {
144
+ return null;
145
+ }
146
+ throw error;
147
+ }
148
+ }
149
+ /**
150
+ * Write manifest to disk
151
+ *
152
+ * @param projectRoot - Project root directory
153
+ * @param manifest - Manifest to write
154
+ */
155
+ async function writeManifest(projectRoot, manifest) {
156
+ const manifestPath = getManifestPath(projectRoot);
157
+ const content = JSON.stringify(manifest, null, 2);
158
+ await fs.promises.writeFile(manifestPath, content, 'utf-8');
159
+ }
160
+ /**
161
+ * Check if a file has changed since last build
162
+ *
163
+ * Uses mtime for fast detection, falls back to hash comparison
164
+ *
165
+ * @param filePath - File to check
166
+ * @param entry - Previous manifest entry
167
+ * @returns true if file has changed
168
+ */
169
+ async function hasFileChanged(filePath, entry) {
170
+ if (!entry) {
171
+ return true; // New file
172
+ }
173
+ try {
174
+ const stats = await fs.promises.stat(filePath);
175
+ // Fast path: mtime unchanged means file unchanged
176
+ if (stats.mtimeMs === entry.mtime && stats.size === entry.size) {
177
+ return false;
178
+ }
179
+ // Slow path: verify with hash
180
+ const currentHash = await calculateFileHash(filePath);
181
+ return currentHash !== entry.hash;
182
+ }
183
+ catch (error) {
184
+ if (error.code === 'ENOENT') {
185
+ return true; // File deleted
186
+ }
187
+ throw error;
188
+ }
189
+ }
190
+ /**
191
+ * Detect all changed files since last build
192
+ *
193
+ * @param projectRoot - Project root directory
194
+ * @param currentFiles - Current source files
195
+ * @param manifest - Previous build manifest
196
+ * @returns Object with added, modified, and removed file lists
197
+ */
198
+ async function detectChanges(projectRoot, currentFiles, manifest) {
199
+ const added = [];
200
+ const modified = [];
201
+ const removed = [];
202
+ const unchanged = [];
203
+ // Check current files against manifest
204
+ for (const file of currentFiles) {
205
+ const relativePath = path.relative(projectRoot, file);
206
+ const entry = manifest.sources[relativePath];
207
+ if (!entry) {
208
+ added.push(relativePath);
209
+ }
210
+ else if (await hasFileChanged(file, entry)) {
211
+ modified.push(relativePath);
212
+ }
213
+ else {
214
+ unchanged.push(relativePath);
215
+ }
216
+ }
217
+ // Check for removed files
218
+ const currentRelativePaths = new Set(currentFiles.map(f => path.relative(projectRoot, f)));
219
+ for (const previousFile of Object.keys(manifest.sources)) {
220
+ if (!currentRelativePaths.has(previousFile)) {
221
+ removed.push(previousFile);
222
+ }
223
+ }
224
+ return { added, modified, removed, unchanged };
225
+ }
226
+ /**
227
+ * Update manifest with current file states
228
+ *
229
+ * @param projectRoot - Project root directory
230
+ * @param files - Files to include in manifest
231
+ * @param target - Build target
232
+ * @param outputs - Output dependencies
233
+ * @param configHash - Hash of config file
234
+ * @returns Updated manifest
235
+ */
236
+ async function updateManifest(projectRoot, files, target, outputs, configHash) {
237
+ const sources = {};
238
+ for (const file of files) {
239
+ const relativePath = path.relative(projectRoot, file);
240
+ sources[relativePath] = await createManifestEntry(file);
241
+ }
242
+ return {
243
+ version: MANIFEST_VERSION,
244
+ lastBuildTime: Date.now(),
245
+ target,
246
+ sources,
247
+ configHash,
248
+ outputs,
249
+ };
250
+ }
251
+ /**
252
+ * Find outputs affected by changed source files
253
+ *
254
+ * @param manifest - Build manifest
255
+ * @param changedFiles - Files that have changed
256
+ * @returns Output paths that need regeneration
257
+ */
258
+ function findAffectedOutputs(manifest, changedFiles) {
259
+ const changedSet = new Set(changedFiles);
260
+ const affected = [];
261
+ for (const output of manifest.outputs) {
262
+ const hasChangedSource = output.sourceRules.some(source => changedSet.has(source));
263
+ if (hasChangedSource) {
264
+ affected.push(output.outputPath);
265
+ }
266
+ }
267
+ return affected;
268
+ }
269
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/build/manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Build Orchestration
3
+ *
4
+ * Coordinates the full build pipeline:
5
+ * - Rule discovery and parsing
6
+ * - Static analysis validation
7
+ * - Multi-target compilation
8
+ * - Incremental build support
9
+ * - Error handling and recovery
10
+ */
11
+ import { Config, BuildTarget } from '../schemas/config';
12
+ import { AnalysisResult } from '../analysis/static-analysis';
13
+ import { CompilationResult } from '../compiler/base-compiler';
14
+ /**
15
+ * Build options
16
+ */
17
+ export interface BuildOptions {
18
+ /** Project root directory */
19
+ projectRoot: string;
20
+ /** Build target(s) */
21
+ targets?: BuildTarget[];
22
+ /** Force full rebuild (ignore incremental) */
23
+ force?: boolean;
24
+ /** Check if outputs are up to date (no writes) */
25
+ check?: boolean;
26
+ /** Verbose output */
27
+ verbose?: boolean;
28
+ /** Quiet mode (minimal output) */
29
+ quiet?: boolean;
30
+ /** Skip validation */
31
+ skipValidation?: boolean;
32
+ /** Parallel rule processing */
33
+ parallel?: boolean;
34
+ }
35
+ /**
36
+ * Build statistics
37
+ */
38
+ export interface BuildStats {
39
+ /** Total build duration in milliseconds */
40
+ duration: number;
41
+ /** Number of rules processed */
42
+ rulesProcessed: number;
43
+ /** Number of rules changed (incremental) */
44
+ rulesChanged: number;
45
+ /** Number of output files generated */
46
+ filesGenerated: number;
47
+ /** Total tokens in output */
48
+ totalTokens: number;
49
+ /** Whether this was an incremental build */
50
+ incremental: boolean;
51
+ /** Targets built */
52
+ targets: BuildTarget[];
53
+ }
54
+ /**
55
+ * Build result
56
+ */
57
+ export interface BuildResult {
58
+ /** Whether build succeeded */
59
+ success: boolean;
60
+ /** Build statistics */
61
+ stats: BuildStats;
62
+ /** Analysis result */
63
+ analysis?: AnalysisResult;
64
+ /** Compilation results by target */
65
+ compilations: Map<BuildTarget, CompilationResult>;
66
+ /** Errors encountered */
67
+ errors: string[];
68
+ /** Warnings */
69
+ warnings: string[];
70
+ }
71
+ /**
72
+ * Build orchestrator
73
+ */
74
+ export declare class BuildOrchestrator {
75
+ private config;
76
+ private projectRoot;
77
+ private quiet;
78
+ constructor(projectRoot: string, config: Config, options?: Partial<BuildOptions>);
79
+ /**
80
+ * Execute full build pipeline
81
+ */
82
+ build(options: BuildOptions): Promise<BuildResult>;
83
+ /**
84
+ * Log message (respecting quiet/verbose modes)
85
+ */
86
+ private log;
87
+ /**
88
+ * Get default targets based on config
89
+ * Returns targets that have configuration, defaults to ['claude']
90
+ */
91
+ private getDefaultTargets;
92
+ }
93
+ /**
94
+ * Execute build with options
95
+ *
96
+ * Convenience function for CLI integration
97
+ */
98
+ export declare function executeBuild(options: BuildOptions): Promise<BuildResult>;
99
+ /**
100
+ * Format build result for display
101
+ */
102
+ export declare function formatBuildResult(result: BuildResult): string;
103
+ //# sourceMappingURL=orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/build/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAAgB,cAAc,EAAmB,MAAM,6BAA6B,CAAC;AAI5F,OAAO,EAAE,iBAAiB,EAAmB,MAAM,2BAA2B,CAAC;AAoC/E;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kDAAkD;IAClD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qBAAqB;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sBAAsB;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,WAAW,EAAE,OAAO,CAAC;IACrB,oBAAoB;IACpB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,8BAA8B;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,uBAAuB;IACvB,KAAK,EAAE,UAAU,CAAC;IAClB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,oCAAoC;IACpC,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAClD,yBAAyB;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,eAAe;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,KAAK,CAAU;gBAEX,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;IAMhF;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAmTxD;;OAEG;IACH,OAAO,CAAC,GAAG;IAKX;;;OAGG;IACH,OAAO,CAAC,iBAAiB;CAgB1B;AA2ID;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAS9E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAsC7D"}