@balpal4495/quorum 3.0.3 → 3.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 (243) hide show
  1. package/bin/commands/compass.js +4 -4
  2. package/bin/shared/llm.js +2 -2
  3. package/dist/advisor/ask.d.ts +13 -0
  4. package/dist/advisor/ask.d.ts.map +1 -0
  5. package/dist/advisor/ask.js +67 -0
  6. package/dist/advisor/ask.js.map +1 -0
  7. package/dist/advisor/index.d.ts +3 -0
  8. package/dist/advisor/index.d.ts.map +1 -0
  9. package/dist/advisor/index.js +2 -0
  10. package/dist/advisor/index.js.map +1 -0
  11. package/dist/advisor/prompt.d.ts +5 -0
  12. package/dist/advisor/prompt.d.ts.map +1 -0
  13. package/{modules/advisor/prompt.ts → dist/advisor/prompt.js} +22 -26
  14. package/dist/advisor/prompt.js.map +1 -0
  15. package/dist/advisor/types.d.ts +23 -0
  16. package/dist/advisor/types.d.ts.map +1 -0
  17. package/dist/advisor/types.js +2 -0
  18. package/dist/advisor/types.js.map +1 -0
  19. package/dist/compass/behavior.d.ts +4 -0
  20. package/dist/compass/behavior.d.ts.map +1 -0
  21. package/dist/compass/behavior.js +138 -0
  22. package/dist/compass/behavior.js.map +1 -0
  23. package/dist/compass/create.d.ts +3 -0
  24. package/dist/compass/create.d.ts.map +1 -0
  25. package/dist/compass/create.js +289 -0
  26. package/dist/compass/create.js.map +1 -0
  27. package/dist/compass/evidence/collect.d.ts +11 -0
  28. package/dist/compass/evidence/collect.d.ts.map +1 -0
  29. package/dist/compass/evidence/collect.js +86 -0
  30. package/dist/compass/evidence/collect.js.map +1 -0
  31. package/dist/compass/index.d.ts +8 -0
  32. package/dist/compass/index.d.ts.map +1 -0
  33. package/dist/compass/index.js +8 -0
  34. package/dist/compass/index.js.map +1 -0
  35. package/dist/compass/prompts/index.d.ts +28 -0
  36. package/dist/compass/prompts/index.d.ts.map +1 -0
  37. package/{modules/compass/prompts/index.ts → dist/compass/prompts/index.js} +13 -38
  38. package/dist/compass/prompts/index.js.map +1 -0
  39. package/dist/compass/prompts/system.d.ts +2 -0
  40. package/dist/compass/prompts/system.d.ts.map +1 -0
  41. package/{modules/compass/prompts/system.ts → dist/compass/prompts/system.js} +2 -1
  42. package/dist/compass/prompts/system.js.map +1 -0
  43. package/dist/compass/propose.d.ts +15 -0
  44. package/dist/compass/propose.d.ts.map +1 -0
  45. package/dist/compass/propose.js +128 -0
  46. package/dist/compass/propose.js.map +1 -0
  47. package/dist/compass/schemas.d.ts +1271 -0
  48. package/dist/compass/schemas.d.ts.map +1 -0
  49. package/dist/compass/schemas.js +113 -0
  50. package/dist/compass/schemas.js.map +1 -0
  51. package/dist/compass/score.d.ts +25 -0
  52. package/dist/compass/score.d.ts.map +1 -0
  53. package/dist/compass/score.js +89 -0
  54. package/dist/compass/score.js.map +1 -0
  55. package/dist/compass/sources/index.d.ts +9 -0
  56. package/dist/compass/sources/index.d.ts.map +1 -0
  57. package/dist/compass/sources/index.js +408 -0
  58. package/dist/compass/sources/index.js.map +1 -0
  59. package/dist/compass/types.d.ts +334 -0
  60. package/dist/compass/types.d.ts.map +1 -0
  61. package/dist/compass/types.js +2 -0
  62. package/dist/compass/types.js.map +1 -0
  63. package/dist/council/advisors.d.ts +15 -0
  64. package/dist/council/advisors.d.ts.map +1 -0
  65. package/dist/council/advisors.js +46 -0
  66. package/dist/council/advisors.js.map +1 -0
  67. package/dist/council/chairman.d.ts +13 -0
  68. package/dist/council/chairman.d.ts.map +1 -0
  69. package/dist/council/chairman.js +145 -0
  70. package/dist/council/chairman.js.map +1 -0
  71. package/dist/council/deliberate.d.ts +22 -0
  72. package/dist/council/deliberate.d.ts.map +1 -0
  73. package/dist/council/deliberate.js +99 -0
  74. package/dist/council/deliberate.js.map +1 -0
  75. package/dist/council/frame.d.ts +8 -0
  76. package/dist/council/frame.d.ts.map +1 -0
  77. package/dist/council/frame.js +40 -0
  78. package/dist/council/frame.js.map +1 -0
  79. package/dist/council/index.d.ts +6 -0
  80. package/dist/council/index.d.ts.map +1 -0
  81. package/dist/council/index.js +4 -0
  82. package/dist/council/index.js.map +1 -0
  83. package/dist/council/personas.d.ts +18 -0
  84. package/dist/council/personas.d.ts.map +1 -0
  85. package/dist/council/personas.js +44 -0
  86. package/dist/council/personas.js.map +1 -0
  87. package/dist/council/reviewers.d.ts +13 -0
  88. package/dist/council/reviewers.d.ts.map +1 -0
  89. package/dist/council/reviewers.js +59 -0
  90. package/dist/council/reviewers.js.map +1 -0
  91. package/dist/council/risk.d.ts +16 -0
  92. package/dist/council/risk.d.ts.map +1 -0
  93. package/dist/council/risk.js +74 -0
  94. package/dist/council/risk.js.map +1 -0
  95. package/dist/council/types.d.ts +95 -0
  96. package/dist/council/types.d.ts.map +1 -0
  97. package/dist/council/types.js +2 -0
  98. package/dist/council/types.js.map +1 -0
  99. package/dist/jury/evaluate.d.ts +13 -0
  100. package/dist/jury/evaluate.d.ts.map +1 -0
  101. package/{modules/jury/evaluate.ts → dist/jury/evaluate.js} +60 -84
  102. package/dist/jury/evaluate.js.map +1 -0
  103. package/dist/jury/index.d.ts +6 -0
  104. package/dist/jury/index.d.ts.map +1 -0
  105. package/dist/jury/index.js +4 -0
  106. package/dist/jury/index.js.map +1 -0
  107. package/dist/jury/preflight.d.ts +26 -0
  108. package/dist/jury/preflight.d.ts.map +1 -0
  109. package/dist/jury/preflight.js +71 -0
  110. package/dist/jury/preflight.js.map +1 -0
  111. package/dist/jury/schema.d.ts +57 -0
  112. package/dist/jury/schema.d.ts.map +1 -0
  113. package/dist/jury/schema.js +21 -0
  114. package/dist/jury/schema.js.map +1 -0
  115. package/dist/jury/types.d.ts +47 -0
  116. package/dist/jury/types.d.ts.map +1 -0
  117. package/dist/jury/types.js +2 -0
  118. package/dist/jury/types.js.map +1 -0
  119. package/dist/oracle/adapters/lance-db.d.ts +15 -0
  120. package/dist/oracle/adapters/lance-db.d.ts.map +1 -0
  121. package/dist/oracle/adapters/lance-db.js +68 -0
  122. package/dist/oracle/adapters/lance-db.js.map +1 -0
  123. package/dist/oracle/adapters/xenova-embedder.d.ts +21 -0
  124. package/dist/oracle/adapters/xenova-embedder.d.ts.map +1 -0
  125. package/dist/oracle/adapters/xenova-embedder.js +36 -0
  126. package/dist/oracle/adapters/xenova-embedder.js.map +1 -0
  127. package/dist/oracle/bm25.d.ts +20 -0
  128. package/dist/oracle/bm25.d.ts.map +1 -0
  129. package/dist/oracle/bm25.js +82 -0
  130. package/dist/oracle/bm25.js.map +1 -0
  131. package/dist/oracle/index.d.ts +21 -0
  132. package/dist/oracle/index.d.ts.map +1 -0
  133. package/dist/oracle/index.js +25 -0
  134. package/dist/oracle/index.js.map +1 -0
  135. package/dist/oracle/log.d.ts +6 -0
  136. package/dist/oracle/log.d.ts.map +1 -0
  137. package/dist/oracle/log.js +12 -0
  138. package/dist/oracle/log.js.map +1 -0
  139. package/dist/oracle/propose.d.ts +25 -0
  140. package/dist/oracle/propose.d.ts.map +1 -0
  141. package/dist/oracle/propose.js +133 -0
  142. package/dist/oracle/propose.js.map +1 -0
  143. package/dist/oracle/query.d.ts +17 -0
  144. package/dist/oracle/query.d.ts.map +1 -0
  145. package/dist/oracle/query.js +106 -0
  146. package/dist/oracle/query.js.map +1 -0
  147. package/dist/oracle/summary.d.ts +11 -0
  148. package/dist/oracle/summary.d.ts.map +1 -0
  149. package/dist/oracle/summary.js +102 -0
  150. package/dist/oracle/summary.js.map +1 -0
  151. package/dist/oracle/types.d.ts +31 -0
  152. package/dist/oracle/types.d.ts.map +1 -0
  153. package/dist/oracle/types.js +2 -0
  154. package/dist/oracle/types.js.map +1 -0
  155. package/dist/sentinel/assert.d.ts +28 -0
  156. package/dist/sentinel/assert.d.ts.map +1 -0
  157. package/dist/sentinel/assert.js +63 -0
  158. package/dist/sentinel/assert.js.map +1 -0
  159. package/dist/sentinel/coverage.d.ts +14 -0
  160. package/dist/sentinel/coverage.d.ts.map +1 -0
  161. package/dist/sentinel/coverage.js +96 -0
  162. package/dist/sentinel/coverage.js.map +1 -0
  163. package/dist/sentinel/drift.d.ts +12 -0
  164. package/dist/sentinel/drift.d.ts.map +1 -0
  165. package/dist/sentinel/drift.js +149 -0
  166. package/dist/sentinel/drift.js.map +1 -0
  167. package/dist/sentinel/index.d.ts +7 -0
  168. package/dist/sentinel/index.d.ts.map +1 -0
  169. package/dist/sentinel/index.js +5 -0
  170. package/dist/sentinel/index.js.map +1 -0
  171. package/dist/sentinel/review.d.ts +15 -0
  172. package/dist/sentinel/review.d.ts.map +1 -0
  173. package/dist/sentinel/review.js +177 -0
  174. package/dist/sentinel/review.js.map +1 -0
  175. package/dist/setup.d.ts +103 -0
  176. package/dist/setup.d.ts.map +1 -0
  177. package/dist/setup.js +87 -0
  178. package/dist/setup.js.map +1 -0
  179. package/dist/shared/types.d.ts +173 -0
  180. package/dist/shared/types.d.ts.map +1 -0
  181. package/dist/shared/types.js +16 -0
  182. package/dist/shared/types.js.map +1 -0
  183. package/package.json +13 -8
  184. package/.github/copilot-instructions.md +0 -117
  185. package/CLAUDE.md +0 -146
  186. package/GEMINI.md +0 -73
  187. package/SETUP.md +0 -264
  188. package/evals/__tests__/eval.test.ts +0 -31
  189. package/evals/cases/auth_hs256_rejected.json +0 -46
  190. package/evals/cases/auth_rs256_valid.json +0 -30
  191. package/evals/cases/cache_missing_lock.json +0 -31
  192. package/evals/cases/db_naive_not_null.json +0 -32
  193. package/evals/cases/logging_pii_leak.json +0 -32
  194. package/evals/cases/migration_with_rollback.json +0 -43
  195. package/evals/cases/no_evidence_novel_design.json +0 -16
  196. package/evals/cases/payment_no_idempotency.json +0 -33
  197. package/evals/cases/redis_session_rejected.json +0 -32
  198. package/evals/cases/safe_refactor.json +0 -17
  199. package/evals/runner.ts +0 -226
  200. package/modules/AGENTS.md +0 -78
  201. package/modules/CLAUDE.md +0 -93
  202. package/modules/README.md +0 -504
  203. package/modules/advisor/ask.ts +0 -87
  204. package/modules/advisor/index.ts +0 -2
  205. package/modules/advisor/types.ts +0 -26
  206. package/modules/compass/behavior.ts +0 -161
  207. package/modules/compass/create.ts +0 -365
  208. package/modules/compass/evidence/collect.ts +0 -109
  209. package/modules/compass/index.ts +0 -7
  210. package/modules/compass/propose.ts +0 -152
  211. package/modules/compass/schemas.ts +0 -121
  212. package/modules/compass/score.ts +0 -77
  213. package/modules/compass/sources/index.ts +0 -413
  214. package/modules/compass/types.ts +0 -431
  215. package/modules/council/advisors.ts +0 -71
  216. package/modules/council/chairman.ts +0 -183
  217. package/modules/council/deliberate.ts +0 -141
  218. package/modules/council/frame.ts +0 -54
  219. package/modules/council/index.ts +0 -9
  220. package/modules/council/personas.ts +0 -57
  221. package/modules/council/reviewers.ts +0 -82
  222. package/modules/council/risk.ts +0 -89
  223. package/modules/council/types.ts +0 -107
  224. package/modules/jury/index.ts +0 -5
  225. package/modules/jury/preflight.ts +0 -101
  226. package/modules/jury/schema.ts +0 -24
  227. package/modules/jury/types.ts +0 -50
  228. package/modules/oracle/adapters/lance-db.ts +0 -81
  229. package/modules/oracle/adapters/xenova-embedder.ts +0 -43
  230. package/modules/oracle/bm25.ts +0 -92
  231. package/modules/oracle/index.ts +0 -36
  232. package/modules/oracle/log.ts +0 -15
  233. package/modules/oracle/propose.ts +0 -164
  234. package/modules/oracle/query.ts +0 -146
  235. package/modules/oracle/summary.ts +0 -116
  236. package/modules/oracle/types.ts +0 -32
  237. package/modules/sentinel/assert.ts +0 -95
  238. package/modules/sentinel/coverage.ts +0 -106
  239. package/modules/sentinel/drift.ts +0 -163
  240. package/modules/sentinel/index.ts +0 -6
  241. package/modules/sentinel/review.ts +0 -208
  242. package/modules/setup.ts +0 -202
  243. package/modules/shared/types.ts +0 -193
@@ -0,0 +1,408 @@
1
+ export function docsSource() {
2
+ return {
3
+ id: "docs",
4
+ kind: "docs",
5
+ async scan(input) {
6
+ const { promises: fs } = await import("fs");
7
+ const path = await import("path");
8
+ const targets = [
9
+ "README.md",
10
+ "SETUP.md",
11
+ "CLAUDE.md",
12
+ "AGENTS.md",
13
+ "GEMINI.md",
14
+ "modules/README.md",
15
+ "quorum/CLAUDE.md",
16
+ "quorum/SETUP.md",
17
+ "docs",
18
+ ];
19
+ const findings = [];
20
+ let idx = 0;
21
+ async function scanMarkdown(filePath) {
22
+ let content;
23
+ try {
24
+ content = await fs.readFile(filePath, "utf8");
25
+ }
26
+ catch {
27
+ return;
28
+ }
29
+ const rel = path.relative(input.rootDir, filePath).replace(/\\/g, "/");
30
+ const lines = content.split("\n");
31
+ // Extract headings as structural claims
32
+ for (let i = 0; i < lines.length; i++) {
33
+ const line = lines[i];
34
+ const headingMatch = line.match(/^#{1,3}\s+(.+)/);
35
+ if (headingMatch) {
36
+ const heading = headingMatch[1].trim();
37
+ // Grab up to 3 lines of context below
38
+ const context = lines
39
+ .slice(i + 1, i + 4)
40
+ .join(" ")
41
+ .replace(/```[^`]*```/g, "")
42
+ .trim()
43
+ .slice(0, 200);
44
+ findings.push({
45
+ id: `docs-${idx++}`,
46
+ kind: "docs",
47
+ source: rel,
48
+ path: rel,
49
+ line: i + 1,
50
+ title: heading,
51
+ summary: context || heading,
52
+ confidence: 0.8,
53
+ tags: inferTags(heading + " " + context),
54
+ });
55
+ }
56
+ // Extract CLI code blocks (``` lines starting with quorum)
57
+ if (line.trim().startsWith("quorum ") || line.trim().startsWith("npx quorum")) {
58
+ const cmd = line.trim();
59
+ findings.push({
60
+ id: `docs-cmd-${idx++}`,
61
+ kind: "docs",
62
+ source: rel,
63
+ path: rel,
64
+ line: i + 1,
65
+ title: `CLI usage: ${cmd.slice(0, 60)}`,
66
+ summary: `Documented command: ${cmd}`,
67
+ confidence: 0.85,
68
+ tags: ["cli", "command", ...inferTags(cmd)],
69
+ });
70
+ }
71
+ }
72
+ }
73
+ async function scanDir(dir) {
74
+ let entries;
75
+ try {
76
+ entries = await fs.readdir(dir, { withFileTypes: true });
77
+ }
78
+ catch {
79
+ return;
80
+ }
81
+ for (const entry of entries) {
82
+ const full = path.join(dir, entry.name);
83
+ if (entry.isDirectory() && !["node_modules", ".git", "dist"].includes(entry.name)) {
84
+ await scanDir(full);
85
+ }
86
+ else if (entry.isFile() && entry.name.endsWith(".md")) {
87
+ await scanMarkdown(full);
88
+ }
89
+ }
90
+ }
91
+ for (const target of targets) {
92
+ const full = path.join(input.rootDir, target);
93
+ let stat;
94
+ try {
95
+ stat = await fs.stat(full);
96
+ }
97
+ catch {
98
+ continue;
99
+ }
100
+ if (stat.isDirectory()) {
101
+ await scanDir(full);
102
+ }
103
+ else {
104
+ await scanMarkdown(full);
105
+ }
106
+ }
107
+ return area(input.area, findings);
108
+ },
109
+ };
110
+ }
111
+ export function packageSource() {
112
+ return {
113
+ id: "package",
114
+ kind: "package",
115
+ async scan(input) {
116
+ const { promises: fs } = await import("fs");
117
+ const path = await import("path");
118
+ const pkgPath = path.join(input.rootDir, "package.json");
119
+ let pkg;
120
+ try {
121
+ pkg = JSON.parse(await fs.readFile(pkgPath, "utf8"));
122
+ }
123
+ catch {
124
+ return [];
125
+ }
126
+ const findings = [];
127
+ let idx = 0;
128
+ if (pkg.name)
129
+ findings.push({ id: `pkg-${idx++}`, kind: "package", source: "package.json", title: "Package name", summary: `Published as: ${pkg.name}`, confidence: 1, tags: ["package", "identity"] });
130
+ if (pkg.description)
131
+ findings.push({ id: `pkg-${idx++}`, kind: "package", source: "package.json", title: "Package description", summary: String(pkg.description), confidence: 1, tags: ["package", "description"] });
132
+ if (pkg.bin) {
133
+ for (const [name, entry] of Object.entries(pkg.bin)) {
134
+ findings.push({ id: `pkg-${idx++}`, kind: "package", source: "package.json", title: `CLI binary: ${name}`, summary: `CLI binary '${name}' at ${entry}`, confidence: 1, tags: ["cli", "binary"] });
135
+ }
136
+ }
137
+ if (pkg.scripts) {
138
+ for (const [name, cmd] of Object.entries(pkg.scripts)) {
139
+ findings.push({ id: `pkg-${idx++}`, kind: "package", source: "package.json", title: `Script: ${name}`, summary: `npm run ${name}: ${cmd}`, confidence: 0.9, tags: ["script", name] });
140
+ }
141
+ }
142
+ if (pkg.exports) {
143
+ findings.push({ id: `pkg-${idx++}`, kind: "package", source: "package.json", title: "Package exports", summary: `Exports: ${JSON.stringify(pkg.exports)}`, confidence: 0.95, tags: ["exports", "api"] });
144
+ }
145
+ if (pkg.engines) {
146
+ findings.push({ id: `pkg-${idx++}`, kind: "package", source: "package.json", title: "Engine requirements", summary: `Node: ${pkg.engines.node ?? "unspecified"}`, confidence: 1, tags: ["runtime", "engines"] });
147
+ }
148
+ const deps = { ...(pkg.dependencies ?? {}), ...(pkg.optionalDependencies ?? {}) };
149
+ if (Object.keys(deps).length > 0) {
150
+ findings.push({ id: `pkg-${idx++}`, kind: "package", source: "package.json", title: "Runtime dependencies", summary: Object.keys(deps).join(", "), confidence: 0.9, tags: ["dependencies"] });
151
+ }
152
+ return findings;
153
+ },
154
+ };
155
+ }
156
+ export function cliSource() {
157
+ return {
158
+ id: "cli",
159
+ kind: "cli",
160
+ async scan(input) {
161
+ const { promises: fs } = await import("fs");
162
+ const path = await import("path");
163
+ const findings = [];
164
+ let idx = 0;
165
+ const binDir = path.join(input.rootDir, "bin", "commands");
166
+ let commandFiles = [];
167
+ try {
168
+ commandFiles = (await fs.readdir(binDir)).filter(f => f.endsWith(".js"));
169
+ }
170
+ catch {
171
+ return [];
172
+ }
173
+ for (const file of commandFiles) {
174
+ const cmdName = file.replace(".js", "");
175
+ const filePath = path.join(binDir, file);
176
+ let content;
177
+ try {
178
+ content = await fs.readFile(filePath, "utf8");
179
+ }
180
+ catch {
181
+ continue;
182
+ }
183
+ const relPath = `bin/commands/${file}`;
184
+ // Detect subcommands from switch/if patterns
185
+ const subcmdMatches = [...content.matchAll(/case ["']([a-z-]+)["']/g)];
186
+ const subcommands = subcmdMatches.map(m => m[1]);
187
+ // Detect flags
188
+ const flagMatches = [...content.matchAll(/["'](--[a-z-]+)["']/g)];
189
+ const flags = [...new Set(flagMatches.map(m => m[1]))];
190
+ // Detect LLM usage
191
+ const usesLLM = /llm|LLM|provider|model/.test(content);
192
+ // Detect Chronicle reads/writes
193
+ const readsChronicle = /readCommitted|findChronicleDir|committed/.test(content);
194
+ const writesChronicle = /writeFile.*proposals|proposals.*writeFile|oracle\.propose/.test(content);
195
+ findings.push({
196
+ id: `cli-${idx++}`,
197
+ kind: "cli",
198
+ source: relPath,
199
+ path: relPath,
200
+ title: `Command: quorum ${cmdName}`,
201
+ summary: [
202
+ `quorum ${cmdName}`,
203
+ subcommands.length > 0 ? `Subcommands: ${subcommands.join(", ")}` : "",
204
+ flags.length > 0 ? `Flags: ${flags.slice(0, 8).join(", ")}` : "",
205
+ usesLLM ? "Uses LLM" : "No LLM required",
206
+ readsChronicle ? "Reads Chronicle" : "",
207
+ writesChronicle ? "Writes Chronicle proposals" : "",
208
+ ].filter(Boolean).join(" | "),
209
+ confidence: 0.9,
210
+ tags: [
211
+ "cli", "command", cmdName,
212
+ ...subcommands.map(s => `subcommand:${s}`),
213
+ usesLLM ? "llm" : "deterministic",
214
+ readsChronicle ? "chronicle" : "",
215
+ ].filter(Boolean),
216
+ });
217
+ }
218
+ return area(input.area, findings);
219
+ },
220
+ };
221
+ }
222
+ export function repoSource() {
223
+ return {
224
+ id: "repo",
225
+ kind: "code",
226
+ async scan(input) {
227
+ const { promises: fs } = await import("fs");
228
+ const path = await import("path");
229
+ const findings = [];
230
+ let idx = 0;
231
+ // Scan modules/
232
+ const modulesDir = path.join(input.rootDir, "modules");
233
+ try {
234
+ const entries = await fs.readdir(modulesDir, { withFileTypes: true });
235
+ for (const entry of entries) {
236
+ if (entry.isDirectory() && !entry.name.startsWith("_") && !["shared"].includes(entry.name)) {
237
+ findings.push({
238
+ id: `repo-module-${idx++}`,
239
+ kind: "code",
240
+ source: `modules/${entry.name}/`,
241
+ path: `modules/${entry.name}/`,
242
+ title: `Module: ${entry.name}`,
243
+ summary: `TypeScript module: modules/${entry.name}/`,
244
+ confidence: 0.85,
245
+ tags: ["module", entry.name, "code"],
246
+ });
247
+ }
248
+ }
249
+ }
250
+ catch { /* no modules dir */ }
251
+ // Scan workflows
252
+ const workflowsDir = path.join(input.rootDir, ".github", "workflows");
253
+ try {
254
+ const entries = await fs.readdir(workflowsDir);
255
+ for (const file of entries.filter(f => f.endsWith(".yml"))) {
256
+ const content = await fs.readFile(path.join(workflowsDir, file), "utf8");
257
+ const nameMatch = content.match(/^name:\s*(.+)$/m);
258
+ findings.push({
259
+ id: `repo-workflow-${idx++}`,
260
+ kind: "config",
261
+ source: `.github/workflows/${file}`,
262
+ path: `.github/workflows/${file}`,
263
+ title: `Workflow: ${nameMatch?.[1]?.trim() ?? file}`,
264
+ summary: `CI/CD workflow: ${nameMatch?.[1]?.trim() ?? file}`,
265
+ confidence: 0.8,
266
+ tags: ["workflow", "ci", "github-actions"],
267
+ });
268
+ }
269
+ }
270
+ catch { /* no workflows */ }
271
+ return area(input.area, findings);
272
+ },
273
+ };
274
+ }
275
+ export function testsSource() {
276
+ return {
277
+ id: "tests",
278
+ kind: "tests",
279
+ async scan(input) {
280
+ const { promises: fs } = await import("fs");
281
+ const path = await import("path");
282
+ const findings = [];
283
+ let idx = 0;
284
+ async function walkTests(dir) {
285
+ let entries;
286
+ try {
287
+ entries = await fs.readdir(dir, { withFileTypes: true });
288
+ }
289
+ catch {
290
+ return;
291
+ }
292
+ for (const entry of entries) {
293
+ const full = path.join(dir, entry.name);
294
+ if (entry.isDirectory() && !["node_modules", "dist"].includes(entry.name)) {
295
+ await walkTests(full);
296
+ }
297
+ else if (entry.isFile() && (entry.name.endsWith(".test.ts") || entry.name.endsWith(".test.js"))) {
298
+ let content;
299
+ try {
300
+ content = await fs.readFile(full, "utf8");
301
+ }
302
+ catch {
303
+ continue;
304
+ }
305
+ const rel = path.relative(input.rootDir, full).replace(/\\/g, "/");
306
+ // Extract describe/it/test names
307
+ const describeMatches = [...content.matchAll(/(?:describe|it|test)\s*\(\s*["'`]([^"'`]+)/g)];
308
+ const behaviors = describeMatches.map(m => m[1]).slice(0, 5);
309
+ if (behaviors.length > 0) {
310
+ findings.push({
311
+ id: `test-${idx++}`,
312
+ kind: "tests",
313
+ source: rel,
314
+ path: rel,
315
+ title: `Test: ${path.basename(entry.name, ".test.ts")}`,
316
+ summary: `Regression-protected: ${behaviors.join("; ")}`,
317
+ confidence: 0.85,
318
+ tags: ["test", "guaranteed-behavior", ...inferTags(behaviors.join(" "))],
319
+ });
320
+ }
321
+ }
322
+ }
323
+ }
324
+ await walkTests(path.join(input.rootDir, "modules"));
325
+ await walkTests(path.join(input.rootDir, "evals"));
326
+ return area(input.area, findings);
327
+ },
328
+ };
329
+ }
330
+ export function configSource() {
331
+ return {
332
+ id: "config",
333
+ kind: "config",
334
+ async scan(input) {
335
+ const { promises: fs } = await import("fs");
336
+ const path = await import("path");
337
+ const findings = [];
338
+ let idx = 0;
339
+ const configFiles = ["tsconfig.json", ".npmignore", ".gitignore"];
340
+ for (const file of configFiles) {
341
+ let content;
342
+ try {
343
+ content = await fs.readFile(path.join(input.rootDir, file), "utf8");
344
+ }
345
+ catch {
346
+ continue;
347
+ }
348
+ findings.push({
349
+ id: `cfg-${idx++}`,
350
+ kind: "config",
351
+ source: file,
352
+ path: file,
353
+ title: `Config: ${file}`,
354
+ summary: `${file} — ${content.slice(0, 100).replace(/\n/g, " ").trim()}`,
355
+ confidence: 0.75,
356
+ tags: ["config", file.replace(/[^a-z]/gi, "-")],
357
+ });
358
+ }
359
+ return findings;
360
+ },
361
+ };
362
+ }
363
+ // ── Helpers ────────────────────────────────────────────────────────────────────
364
+ function inferTags(text) {
365
+ const tags = [];
366
+ const lower = text.toLowerCase();
367
+ const patterns = [
368
+ [/onboard|init|install|setup|get.?started/, "onboarding"],
369
+ [/auth|jwt|session|login|token/, "auth"],
370
+ [/database|migration|sql|postgres|mysql/, "database"],
371
+ [/payment|stripe|billing|checkout/, "payments"],
372
+ [/pii|privacy|gdpr|personal.?data/, "pii"],
373
+ [/commit|proposal|review|approve|memory/, "chronicle"],
374
+ [/advisor|brief|query/, "advisor"],
375
+ [/sentinel|coverage|drift/, "sentinel"],
376
+ [/jury|evaluate|score/, "jury"],
377
+ [/council|deliberate|validate/, "council"],
378
+ [/compass|pathway|bet|direction/, "compass"],
379
+ [/cli|command|terminal/, "cli"],
380
+ [/test|eval|spec/, "testing"],
381
+ [/llm|gpt|claude|openai|anthropic|gemini/, "llm"],
382
+ ];
383
+ for (const [rx, tag] of patterns) {
384
+ if (rx.test(lower))
385
+ tags.push(tag);
386
+ }
387
+ return tags;
388
+ }
389
+ function area(filterArea, findings) {
390
+ if (!filterArea)
391
+ return findings;
392
+ const lower = filterArea.toLowerCase();
393
+ return findings.filter(f => f.tags.some(t => t.toLowerCase().includes(lower)) ||
394
+ f.summary.toLowerCase().includes(lower) ||
395
+ f.title.toLowerCase().includes(lower));
396
+ }
397
+ // Re-export all sources as a convenience default set
398
+ export function defaultSources() {
399
+ return [
400
+ docsSource(),
401
+ packageSource(),
402
+ cliSource(),
403
+ repoSource(),
404
+ testsSource(),
405
+ configSource(),
406
+ ];
407
+ }
408
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../modules/compass/sources/index.ts"],"names":[],"mappings":"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"}