decibel-tools-mcp 1.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 (255) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +335 -0
  3. package/dist/agentic/compiler.d.ts +21 -0
  4. package/dist/agentic/compiler.d.ts.map +1 -0
  5. package/dist/agentic/compiler.js +267 -0
  6. package/dist/agentic/compiler.js.map +1 -0
  7. package/dist/agentic/golden.d.ts +25 -0
  8. package/dist/agentic/golden.d.ts.map +1 -0
  9. package/dist/agentic/golden.js +255 -0
  10. package/dist/agentic/golden.js.map +1 -0
  11. package/dist/agentic/index.d.ts +17 -0
  12. package/dist/agentic/index.d.ts.map +1 -0
  13. package/dist/agentic/index.js +153 -0
  14. package/dist/agentic/index.js.map +1 -0
  15. package/dist/agentic/linter.d.ts +20 -0
  16. package/dist/agentic/linter.d.ts.map +1 -0
  17. package/dist/agentic/linter.js +340 -0
  18. package/dist/agentic/linter.js.map +1 -0
  19. package/dist/agentic/renderer.d.ts +17 -0
  20. package/dist/agentic/renderer.d.ts.map +1 -0
  21. package/dist/agentic/renderer.js +277 -0
  22. package/dist/agentic/renderer.js.map +1 -0
  23. package/dist/agentic/types.d.ts +199 -0
  24. package/dist/agentic/types.d.ts.map +1 -0
  25. package/dist/agentic/types.js +8 -0
  26. package/dist/agentic/types.js.map +1 -0
  27. package/dist/architectAdrs.d.ts +19 -0
  28. package/dist/architectAdrs.d.ts.map +1 -0
  29. package/dist/architectAdrs.js +123 -0
  30. package/dist/architectAdrs.js.map +1 -0
  31. package/dist/config.d.ts +8 -0
  32. package/dist/config.d.ts.map +1 -0
  33. package/dist/config.js +19 -0
  34. package/dist/config.js.map +1 -0
  35. package/dist/dataRoot.d.ts +45 -0
  36. package/dist/dataRoot.d.ts.map +1 -0
  37. package/dist/dataRoot.js +201 -0
  38. package/dist/dataRoot.js.map +1 -0
  39. package/dist/decibelPaths.d.ts +42 -0
  40. package/dist/decibelPaths.d.ts.map +1 -0
  41. package/dist/decibelPaths.js +150 -0
  42. package/dist/decibelPaths.js.map +1 -0
  43. package/dist/httpServer.d.ts +49 -0
  44. package/dist/httpServer.d.ts.map +1 -0
  45. package/dist/httpServer.js +1472 -0
  46. package/dist/httpServer.js.map +1 -0
  47. package/dist/lib/benchmark.d.ts +110 -0
  48. package/dist/lib/benchmark.d.ts.map +1 -0
  49. package/dist/lib/benchmark.js +338 -0
  50. package/dist/lib/benchmark.js.map +1 -0
  51. package/dist/lib/supabase.d.ts +123 -0
  52. package/dist/lib/supabase.d.ts.map +1 -0
  53. package/dist/lib/supabase.js +91 -0
  54. package/dist/lib/supabase.js.map +1 -0
  55. package/dist/projectPaths.d.ts +27 -0
  56. package/dist/projectPaths.d.ts.map +1 -0
  57. package/dist/projectPaths.js +86 -0
  58. package/dist/projectPaths.js.map +1 -0
  59. package/dist/projectRegistry.d.ts +97 -0
  60. package/dist/projectRegistry.d.ts.map +1 -0
  61. package/dist/projectRegistry.js +362 -0
  62. package/dist/projectRegistry.js.map +1 -0
  63. package/dist/sentinelIssues.d.ts +44 -0
  64. package/dist/sentinelIssues.d.ts.map +1 -0
  65. package/dist/sentinelIssues.js +213 -0
  66. package/dist/sentinelIssues.js.map +1 -0
  67. package/dist/server.d.ts +3 -0
  68. package/dist/server.d.ts.map +1 -0
  69. package/dist/server.js +93 -0
  70. package/dist/server.js.map +1 -0
  71. package/dist/test.d.ts +7 -0
  72. package/dist/test.d.ts.map +1 -0
  73. package/dist/test.js +77 -0
  74. package/dist/test.js.map +1 -0
  75. package/dist/tools/agentic/index.d.ts +7 -0
  76. package/dist/tools/agentic/index.d.ts.map +1 -0
  77. package/dist/tools/agentic/index.js +180 -0
  78. package/dist/tools/agentic/index.js.map +1 -0
  79. package/dist/tools/architect/index.d.ts +9 -0
  80. package/dist/tools/architect/index.d.ts.map +1 -0
  81. package/dist/tools/architect/index.js +383 -0
  82. package/dist/tools/architect/index.js.map +1 -0
  83. package/dist/tools/architect.d.ts +19 -0
  84. package/dist/tools/architect.d.ts.map +1 -0
  85. package/dist/tools/architect.js +88 -0
  86. package/dist/tools/architect.js.map +1 -0
  87. package/dist/tools/bench.d.ts +89 -0
  88. package/dist/tools/bench.d.ts.map +1 -0
  89. package/dist/tools/bench.js +826 -0
  90. package/dist/tools/bench.js.map +1 -0
  91. package/dist/tools/context/index.d.ts +11 -0
  92. package/dist/tools/context/index.d.ts.map +1 -0
  93. package/dist/tools/context/index.js +439 -0
  94. package/dist/tools/context/index.js.map +1 -0
  95. package/dist/tools/context.d.ts +146 -0
  96. package/dist/tools/context.d.ts.map +1 -0
  97. package/dist/tools/context.js +481 -0
  98. package/dist/tools/context.js.map +1 -0
  99. package/dist/tools/crit.d.ts +63 -0
  100. package/dist/tools/crit.d.ts.map +1 -0
  101. package/dist/tools/crit.js +159 -0
  102. package/dist/tools/crit.js.map +1 -0
  103. package/dist/tools/data-inspector.d.ts +188 -0
  104. package/dist/tools/data-inspector.d.ts.map +1 -0
  105. package/dist/tools/data-inspector.js +650 -0
  106. package/dist/tools/data-inspector.js.map +1 -0
  107. package/dist/tools/deck.d.ts +11 -0
  108. package/dist/tools/deck.d.ts.map +1 -0
  109. package/dist/tools/deck.js +170 -0
  110. package/dist/tools/deck.js.map +1 -0
  111. package/dist/tools/designer/index.d.ts +6 -0
  112. package/dist/tools/designer/index.d.ts.map +1 -0
  113. package/dist/tools/designer/index.js +177 -0
  114. package/dist/tools/designer/index.js.map +1 -0
  115. package/dist/tools/designer.d.ts +20 -0
  116. package/dist/tools/designer.d.ts.map +1 -0
  117. package/dist/tools/designer.js +75 -0
  118. package/dist/tools/designer.js.map +1 -0
  119. package/dist/tools/dojo/index.d.ts +13 -0
  120. package/dist/tools/dojo/index.d.ts.map +1 -0
  121. package/dist/tools/dojo/index.js +547 -0
  122. package/dist/tools/dojo/index.js.map +1 -0
  123. package/dist/tools/dojo.d.ts +254 -0
  124. package/dist/tools/dojo.d.ts.map +1 -0
  125. package/dist/tools/dojo.js +933 -0
  126. package/dist/tools/dojo.js.map +1 -0
  127. package/dist/tools/dojoBench.d.ts +49 -0
  128. package/dist/tools/dojoBench.d.ts.map +1 -0
  129. package/dist/tools/dojoBench.js +205 -0
  130. package/dist/tools/dojoBench.js.map +1 -0
  131. package/dist/tools/dojoGraduated.d.ts +50 -0
  132. package/dist/tools/dojoGraduated.d.ts.map +1 -0
  133. package/dist/tools/dojoGraduated.js +174 -0
  134. package/dist/tools/dojoGraduated.js.map +1 -0
  135. package/dist/tools/dojoPolicy.d.ts +65 -0
  136. package/dist/tools/dojoPolicy.d.ts.map +1 -0
  137. package/dist/tools/dojoPolicy.js +263 -0
  138. package/dist/tools/dojoPolicy.js.map +1 -0
  139. package/dist/tools/friction/index.d.ts +7 -0
  140. package/dist/tools/friction/index.d.ts.map +1 -0
  141. package/dist/tools/friction/index.js +239 -0
  142. package/dist/tools/friction/index.js.map +1 -0
  143. package/dist/tools/friction.d.ts +82 -0
  144. package/dist/tools/friction.d.ts.map +1 -0
  145. package/dist/tools/friction.js +331 -0
  146. package/dist/tools/friction.js.map +1 -0
  147. package/dist/tools/index.d.ts +5 -0
  148. package/dist/tools/index.d.ts.map +1 -0
  149. package/dist/tools/index.js +52 -0
  150. package/dist/tools/index.js.map +1 -0
  151. package/dist/tools/learnings/index.d.ts +5 -0
  152. package/dist/tools/learnings/index.d.ts.map +1 -0
  153. package/dist/tools/learnings/index.js +123 -0
  154. package/dist/tools/learnings/index.js.map +1 -0
  155. package/dist/tools/learnings.d.ts +41 -0
  156. package/dist/tools/learnings.d.ts.map +1 -0
  157. package/dist/tools/learnings.js +149 -0
  158. package/dist/tools/learnings.js.map +1 -0
  159. package/dist/tools/oracle/index.d.ts +5 -0
  160. package/dist/tools/oracle/index.d.ts.map +1 -0
  161. package/dist/tools/oracle/index.js +97 -0
  162. package/dist/tools/oracle/index.js.map +1 -0
  163. package/dist/tools/oracle.d.ts +90 -0
  164. package/dist/tools/oracle.d.ts.map +1 -0
  165. package/dist/tools/oracle.js +529 -0
  166. package/dist/tools/oracle.js.map +1 -0
  167. package/dist/tools/policy.d.ts +119 -0
  168. package/dist/tools/policy.d.ts.map +1 -0
  169. package/dist/tools/policy.js +406 -0
  170. package/dist/tools/policy.js.map +1 -0
  171. package/dist/tools/provenance/index.d.ts +4 -0
  172. package/dist/tools/provenance/index.d.ts.map +1 -0
  173. package/dist/tools/provenance/index.js +58 -0
  174. package/dist/tools/provenance/index.js.map +1 -0
  175. package/dist/tools/provenance.d.ts +75 -0
  176. package/dist/tools/provenance.d.ts.map +1 -0
  177. package/dist/tools/provenance.js +197 -0
  178. package/dist/tools/provenance.js.map +1 -0
  179. package/dist/tools/rateLimiter.d.ts +45 -0
  180. package/dist/tools/rateLimiter.d.ts.map +1 -0
  181. package/dist/tools/rateLimiter.js +91 -0
  182. package/dist/tools/rateLimiter.js.map +1 -0
  183. package/dist/tools/registry/index.d.ts +10 -0
  184. package/dist/tools/registry/index.d.ts.map +1 -0
  185. package/dist/tools/registry/index.js +467 -0
  186. package/dist/tools/registry/index.js.map +1 -0
  187. package/dist/tools/registry.d.ts +3 -0
  188. package/dist/tools/registry.d.ts.map +1 -0
  189. package/dist/tools/registry.js +189 -0
  190. package/dist/tools/registry.js.map +1 -0
  191. package/dist/tools/roadmap/index.d.ts +9 -0
  192. package/dist/tools/roadmap/index.d.ts.map +1 -0
  193. package/dist/tools/roadmap/index.js +250 -0
  194. package/dist/tools/roadmap/index.js.map +1 -0
  195. package/dist/tools/roadmap.d.ts +88 -0
  196. package/dist/tools/roadmap.d.ts.map +1 -0
  197. package/dist/tools/roadmap.js +365 -0
  198. package/dist/tools/roadmap.js.map +1 -0
  199. package/dist/tools/sentinel/index.d.ts +19 -0
  200. package/dist/tools/sentinel/index.d.ts.map +1 -0
  201. package/dist/tools/sentinel/index.js +832 -0
  202. package/dist/tools/sentinel/index.js.map +1 -0
  203. package/dist/tools/sentinel-scan-data.d.ts +90 -0
  204. package/dist/tools/sentinel-scan-data.d.ts.map +1 -0
  205. package/dist/tools/sentinel-scan-data.js +122 -0
  206. package/dist/tools/sentinel-scan-data.js.map +1 -0
  207. package/dist/tools/sentinel.d.ts +156 -0
  208. package/dist/tools/sentinel.d.ts.map +1 -0
  209. package/dist/tools/sentinel.js +603 -0
  210. package/dist/tools/sentinel.js.map +1 -0
  211. package/dist/tools/shared/index.d.ts +4 -0
  212. package/dist/tools/shared/index.d.ts.map +1 -0
  213. package/dist/tools/shared/index.js +7 -0
  214. package/dist/tools/shared/index.js.map +1 -0
  215. package/dist/tools/shared/project.d.ts +17 -0
  216. package/dist/tools/shared/project.d.ts.map +1 -0
  217. package/dist/tools/shared/project.js +36 -0
  218. package/dist/tools/shared/project.js.map +1 -0
  219. package/dist/tools/shared/response.d.ts +10 -0
  220. package/dist/tools/shared/response.d.ts.map +1 -0
  221. package/dist/tools/shared/response.js +36 -0
  222. package/dist/tools/shared/response.js.map +1 -0
  223. package/dist/tools/shared/validation.d.ts +10 -0
  224. package/dist/tools/shared/validation.d.ts.map +1 -0
  225. package/dist/tools/shared/validation.js +26 -0
  226. package/dist/tools/shared/validation.js.map +1 -0
  227. package/dist/tools/studio/cloud-spine.d.ts +27 -0
  228. package/dist/tools/studio/cloud-spine.d.ts.map +1 -0
  229. package/dist/tools/studio/cloud-spine.js +773 -0
  230. package/dist/tools/studio/cloud-spine.js.map +1 -0
  231. package/dist/tools/studio/index.d.ts +154 -0
  232. package/dist/tools/studio/index.d.ts.map +1 -0
  233. package/dist/tools/studio/index.js +525 -0
  234. package/dist/tools/studio/index.js.map +1 -0
  235. package/dist/tools/testSpec.d.ts +122 -0
  236. package/dist/tools/testSpec.d.ts.map +1 -0
  237. package/dist/tools/testSpec.js +525 -0
  238. package/dist/tools/testSpec.js.map +1 -0
  239. package/dist/tools/toolsIndex.d.ts +5 -0
  240. package/dist/tools/toolsIndex.d.ts.map +1 -0
  241. package/dist/tools/toolsIndex.js +37 -0
  242. package/dist/tools/toolsIndex.js.map +1 -0
  243. package/dist/tools/types.d.ts +30 -0
  244. package/dist/tools/types.d.ts.map +1 -0
  245. package/dist/tools/types.js +7 -0
  246. package/dist/tools/types.js.map +1 -0
  247. package/dist/tools/voice/index.d.ts +8 -0
  248. package/dist/tools/voice/index.d.ts.map +1 -0
  249. package/dist/tools/voice/index.js +176 -0
  250. package/dist/tools/voice/index.js.map +1 -0
  251. package/dist/tools/voice.d.ts +291 -0
  252. package/dist/tools/voice.d.ts.map +1 -0
  253. package/dist/tools/voice.js +734 -0
  254. package/dist/tools/voice.js.map +1 -0
  255. package/package.json +54 -0
@@ -0,0 +1,255 @@
1
+ /**
2
+ * Agentic Pack Golden Eval
3
+ *
4
+ * Regression testing harness for semiotic clarity.
5
+ * Compares rendered outputs against known-good golden files.
6
+ */
7
+ import fs from 'fs/promises';
8
+ import path from 'path';
9
+ import { log } from '../config.js';
10
+ import { resolveProjectPaths } from '../projectRegistry.js';
11
+ import { getOrCompilePack } from './compiler.js';
12
+ import { render } from './renderer.js';
13
+ import { lintWithPack } from './linter.js';
14
+ // ============================================================================
15
+ // Golden File Loading
16
+ // ============================================================================
17
+ async function fileExists(filePath) {
18
+ try {
19
+ await fs.access(filePath);
20
+ return true;
21
+ }
22
+ catch {
23
+ return false;
24
+ }
25
+ }
26
+ async function loadGoldenCases(goldenDir) {
27
+ const cases = [];
28
+ try {
29
+ const entries = await fs.readdir(goldenDir, { withFileTypes: true });
30
+ for (const entry of entries) {
31
+ if (entry.isDirectory()) {
32
+ const caseDir = path.join(goldenDir, entry.name);
33
+ const payloadPath = path.join(caseDir, 'payload.json');
34
+ if (await fileExists(payloadPath)) {
35
+ // Find expected output files
36
+ const expectedOutputs = {};
37
+ const files = await fs.readdir(caseDir);
38
+ for (const file of files) {
39
+ if (file.startsWith('expected-') && file.endsWith('.txt')) {
40
+ const rendererId = file.replace('expected-', '').replace('.txt', '');
41
+ expectedOutputs[rendererId] = path.join(caseDir, file);
42
+ }
43
+ }
44
+ if (Object.keys(expectedOutputs).length > 0) {
45
+ cases.push({
46
+ name: entry.name,
47
+ payload_file: payloadPath,
48
+ expected_outputs: expectedOutputs,
49
+ });
50
+ }
51
+ }
52
+ }
53
+ }
54
+ }
55
+ catch (error) {
56
+ if (error.code !== 'ENOENT') {
57
+ throw error;
58
+ }
59
+ }
60
+ return cases;
61
+ }
62
+ async function loadPayload(payloadPath) {
63
+ const content = await fs.readFile(payloadPath, 'utf-8');
64
+ return JSON.parse(content);
65
+ }
66
+ async function loadExpectedOutput(expectedPath) {
67
+ return await fs.readFile(expectedPath, 'utf-8');
68
+ }
69
+ // ============================================================================
70
+ // Diff Generation
71
+ // ============================================================================
72
+ function generateDiff(expected, actual) {
73
+ const expectedLines = expected.split('\n');
74
+ const actualLines = actual.split('\n');
75
+ const diff = [];
76
+ const maxLen = Math.max(expectedLines.length, actualLines.length);
77
+ for (let i = 0; i < maxLen; i++) {
78
+ const exp = expectedLines[i] ?? '';
79
+ const act = actualLines[i] ?? '';
80
+ if (exp !== act) {
81
+ diff.push(`Line ${i + 1}:`);
82
+ if (exp)
83
+ diff.push(` - ${exp}`);
84
+ if (act)
85
+ diff.push(` + ${act}`);
86
+ }
87
+ }
88
+ return diff;
89
+ }
90
+ function normalizeWhitespace(text) {
91
+ return text
92
+ .split('\n')
93
+ .map((line) => line.trimEnd())
94
+ .join('\n')
95
+ .trim();
96
+ }
97
+ // ============================================================================
98
+ // Core Golden Eval Function
99
+ // ============================================================================
100
+ /**
101
+ * Run golden eval for a single case
102
+ */
103
+ async function runGoldenCase(goldenCase, pack, strict) {
104
+ const results = [];
105
+ // Load payload
106
+ const payload = await loadPayload(goldenCase.payload_file);
107
+ // Test each expected output
108
+ for (const [rendererId, expectedPath] of Object.entries(goldenCase.expected_outputs)) {
109
+ try {
110
+ // Load expected
111
+ const expected = await loadExpectedOutput(expectedPath);
112
+ // Render actual
113
+ const renderOutput = render(payload, rendererId, pack, 'plain');
114
+ const actual = renderOutput.rendered;
115
+ // Compare (normalize whitespace for comparison)
116
+ const normalizedExpected = normalizeWhitespace(expected);
117
+ const normalizedActual = normalizeWhitespace(actual);
118
+ const passed = normalizedExpected === normalizedActual;
119
+ // Run lint if strict mode
120
+ let lintResult;
121
+ if (strict) {
122
+ lintResult = lintWithPack(actual, rendererId, pack, payload);
123
+ }
124
+ const testResult = {
125
+ case_name: goldenCase.name,
126
+ renderer_id: rendererId,
127
+ passed: passed && (!strict || (lintResult?.valid ?? true)),
128
+ expected_file: expectedPath,
129
+ };
130
+ if (!passed) {
131
+ testResult.expected = normalizedExpected;
132
+ testResult.actual = normalizedActual;
133
+ testResult.diff = generateDiff(normalizedExpected, normalizedActual);
134
+ }
135
+ if (lintResult) {
136
+ testResult.lint_result = lintResult;
137
+ }
138
+ results.push(testResult);
139
+ }
140
+ catch (error) {
141
+ results.push({
142
+ case_name: goldenCase.name,
143
+ renderer_id: rendererId,
144
+ passed: false,
145
+ expected_file: expectedPath,
146
+ diff: [`Error: ${error instanceof Error ? error.message : String(error)}`],
147
+ });
148
+ }
149
+ }
150
+ return results;
151
+ }
152
+ /**
153
+ * Run all golden eval cases
154
+ */
155
+ export async function runGoldenEval(resolved, caseName, strict = false) {
156
+ const goldenDir = resolved.subPath('architect', 'agentic', 'golden');
157
+ const pack = await getOrCompilePack(resolved);
158
+ log(`agentic-golden: Running golden eval from ${goldenDir}`);
159
+ // Load cases
160
+ let cases = await loadGoldenCases(goldenDir);
161
+ // Filter by case name if specified
162
+ if (caseName) {
163
+ cases = cases.filter((c) => c.name === caseName);
164
+ if (cases.length === 0) {
165
+ throw new Error(`Golden case '${caseName}' not found`);
166
+ }
167
+ }
168
+ log(`agentic-golden: Found ${cases.length} test cases`);
169
+ // Run all cases
170
+ const allResults = [];
171
+ for (const goldenCase of cases) {
172
+ const caseResults = await runGoldenCase(goldenCase, pack.content, strict);
173
+ allResults.push(...caseResults);
174
+ }
175
+ // Summarize
176
+ const passedCount = allResults.filter((r) => r.passed).length;
177
+ const failedCount = allResults.length - passedCount;
178
+ const result = {
179
+ passed: failedCount === 0,
180
+ total_cases: allResults.length,
181
+ passed_cases: passedCount,
182
+ failed_cases: failedCount,
183
+ results: allResults,
184
+ run_at: new Date().toISOString(),
185
+ };
186
+ log(`agentic-golden: ${result.passed ? 'PASS' : 'FAIL'} - ${passedCount}/${allResults.length} tests passed`);
187
+ return result;
188
+ }
189
+ // ============================================================================
190
+ // Golden File Management
191
+ // ============================================================================
192
+ /**
193
+ * Update golden files with current output (for updating baselines)
194
+ */
195
+ export async function updateGoldenFile(resolved, caseName, rendererId) {
196
+ const goldenDir = resolved.subPath('architect', 'agentic', 'golden');
197
+ const caseDir = path.join(goldenDir, caseName);
198
+ const payloadPath = path.join(caseDir, 'payload.json');
199
+ const expectedPath = path.join(caseDir, `expected-${rendererId}.txt`);
200
+ // Load payload
201
+ const payload = await loadPayload(payloadPath);
202
+ // Get pack and render
203
+ const pack = await getOrCompilePack(resolved);
204
+ const renderOutput = render(payload, rendererId, pack.content, 'plain');
205
+ // Write new expected file
206
+ await fs.writeFile(expectedPath, renderOutput.rendered, 'utf-8');
207
+ log(`agentic-golden: Updated ${expectedPath}`);
208
+ }
209
+ /**
210
+ * Create a new golden case from a payload
211
+ */
212
+ export async function createGoldenCase(resolved, caseName, payload, rendererIds) {
213
+ const goldenDir = resolved.subPath('architect', 'agentic', 'golden');
214
+ const caseDir = path.join(goldenDir, caseName);
215
+ // Create case directory
216
+ await fs.mkdir(caseDir, { recursive: true });
217
+ // Write payload
218
+ const payloadPath = path.join(caseDir, 'payload.json');
219
+ await fs.writeFile(payloadPath, JSON.stringify(payload, null, 2), 'utf-8');
220
+ // Get pack
221
+ const pack = await getOrCompilePack(resolved);
222
+ // Generate expected outputs for each renderer
223
+ for (const rendererId of rendererIds) {
224
+ const renderOutput = render(payload, rendererId, pack.content, 'plain');
225
+ const expectedPath = path.join(caseDir, `expected-${rendererId}.txt`);
226
+ await fs.writeFile(expectedPath, renderOutput.rendered, 'utf-8');
227
+ }
228
+ log(`agentic-golden: Created golden case '${caseName}' with ${rendererIds.length} renderers`);
229
+ }
230
+ // ============================================================================
231
+ // MCP Tool Handler
232
+ // ============================================================================
233
+ /**
234
+ * MCP tool handler for running golden eval
235
+ */
236
+ export async function runGolden(input) {
237
+ try {
238
+ const resolved = resolveProjectPaths(input.projectId);
239
+ log(`agentic-golden: Running golden eval${input.case_name ? ` for case '${input.case_name}'` : ''}`);
240
+ const result = await runGoldenEval(resolved, input.case_name, input.strict ?? false);
241
+ return {
242
+ status: 'executed',
243
+ result,
244
+ };
245
+ }
246
+ catch (error) {
247
+ const message = error instanceof Error ? error.message : String(error);
248
+ log(`agentic-golden: Error: ${message}`);
249
+ return {
250
+ status: 'error',
251
+ error: message,
252
+ };
253
+ }
254
+ }
255
+ //# sourceMappingURL=golden.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"golden.js","sourceRoot":"","sources":["../../src/agentic/golden.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Agentic Pack Engine - MCP Tool Registration
3
+ *
4
+ * Exposes the 4 core agentic tools via MCP:
5
+ * 1. agentic.compile_pack - Compile configuration into versioned pack
6
+ * 2. agentic.render - Transform payload to text
7
+ * 3. agentic.lint - Validate output against constraints
8
+ * 4. agentic.golden_eval - Run regression tests
9
+ */
10
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
11
+ export declare function registerAgenticTools(server: McpServer): void;
12
+ export * from './types.js';
13
+ export { compilePack, loadCompiledPack, getOrCompilePack } from './compiler.js';
14
+ export { render, renderPayload } from './renderer.js';
15
+ export { lint, lintWithPack, lintOutput } from './linter.js';
16
+ export { runGoldenEval, updateGoldenFile, createGoldenCase, runGolden } from './golden.js';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agentic/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0EpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8G5D;AAGD,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Agentic Pack Engine - MCP Tool Registration
3
+ *
4
+ * Exposes the 4 core agentic tools via MCP:
5
+ * 1. agentic.compile_pack - Compile configuration into versioned pack
6
+ * 2. agentic.render - Transform payload to text
7
+ * 3. agentic.lint - Validate output against constraints
8
+ * 4. agentic.golden_eval - Run regression tests
9
+ */
10
+ import { z } from 'zod';
11
+ import { compilePack } from './compiler.js';
12
+ import { renderPayload } from './renderer.js';
13
+ import { lintOutput } from './linter.js';
14
+ import { runGolden } from './golden.js';
15
+ // ============================================================================
16
+ // Zod Schemas
17
+ // ============================================================================
18
+ const EvidenceSchema = z.object({
19
+ source: z.string(),
20
+ value: z.unknown(),
21
+ confidence: z.number().min(0).max(1).optional(),
22
+ timestamp: z.string().optional(),
23
+ });
24
+ const MissingDataSchema = z.object({
25
+ field: z.string(),
26
+ reason: z.string(),
27
+ severity: z.enum(['blocking', 'degraded', 'informational']),
28
+ });
29
+ const GuardrailSchema = z.object({
30
+ id: z.string(),
31
+ description: z.string(),
32
+ status: z.enum(['active', 'triggered', 'disabled']),
33
+ });
34
+ const DissentSummarySchema = z.object({
35
+ agent_id: z.string(),
36
+ position: z.string(),
37
+ confidence: z.number().min(0).max(1),
38
+ });
39
+ const PayloadMetadataSchema = z.object({
40
+ pack_id: z.string(),
41
+ pack_hash: z.string(),
42
+ renderer_id: z.string().optional(),
43
+ specialist_id: z.string().optional(),
44
+ created_at: z.string(),
45
+ });
46
+ const CanonicalPayloadSchema = z.object({
47
+ role: z.enum(['Sensor', 'Analyst', 'Overmind', 'Specialist']),
48
+ status: z.enum(['OK', 'DEGRADED', 'BLOCKED', 'ALERT']),
49
+ load: z.enum(['GREEN', 'YELLOW', 'RED']),
50
+ summary: z.string(),
51
+ evidence: z.array(EvidenceSchema),
52
+ missing_data: z.array(MissingDataSchema),
53
+ decision: z.string().optional(),
54
+ guardrails: z.array(GuardrailSchema).optional(),
55
+ dissent_summary: z.array(DissentSummarySchema).optional(),
56
+ specialist_id: z.string().optional(),
57
+ specialist_name: z.string().optional(),
58
+ metadata: PayloadMetadataSchema,
59
+ });
60
+ // ============================================================================
61
+ // Tool Registration
62
+ // ============================================================================
63
+ export function registerAgenticTools(server) {
64
+ // Tool 1: Compile Pack
65
+ server.tool('agentic.compile_pack', 'Compile agentic configuration files into a versioned, hashed pack. Reads from .decibel/architect/agentic/ and outputs compiled_agentic_pack.json', {
66
+ projectId: z.string().optional().describe('Project identifier (optional, uses default if not specified)'),
67
+ }, async ({ projectId }) => {
68
+ const result = await compilePack({ projectId });
69
+ return {
70
+ content: [
71
+ {
72
+ type: 'text',
73
+ text: JSON.stringify(result, null, 2),
74
+ },
75
+ ],
76
+ isError: result.status === 'error',
77
+ };
78
+ });
79
+ // Tool 2: Render Payload
80
+ server.tool('agentic.render', 'Transform a canonical payload into rendered text using a specified renderer. Pure function - no side effects.', {
81
+ projectId: z.string().optional().describe('Project identifier (optional)'),
82
+ payload: CanonicalPayloadSchema.describe('The canonical payload to render'),
83
+ renderer_id: z.string().describe('ID of the renderer to use'),
84
+ target: z.enum(['plain', 'markdown', 'ansi']).optional().describe('Output target format (default: plain)'),
85
+ }, async ({ projectId, payload, renderer_id, target }) => {
86
+ const result = await renderPayload({
87
+ projectId,
88
+ payload: payload,
89
+ renderer_id,
90
+ target: target,
91
+ });
92
+ return {
93
+ content: [
94
+ {
95
+ type: 'text',
96
+ text: JSON.stringify(result, null, 2),
97
+ },
98
+ ],
99
+ isError: result.status === 'error',
100
+ };
101
+ });
102
+ // Tool 3: Lint Output
103
+ server.tool('agentic.lint', 'Validate rendered output against renderer constraints. Checks emoji count, banned words, line limits, and other dialect rules.', {
104
+ projectId: z.string().optional().describe('Project identifier (optional)'),
105
+ rendered: z.string().describe('The rendered text to lint'),
106
+ renderer_id: z.string().describe('ID of the renderer whose constraints to check'),
107
+ payload: CanonicalPayloadSchema.optional().describe('Original payload for consistency checks (optional)'),
108
+ }, async ({ projectId, rendered, renderer_id, payload }) => {
109
+ const result = await lintOutput({
110
+ projectId,
111
+ rendered,
112
+ renderer_id,
113
+ payload: payload,
114
+ });
115
+ return {
116
+ content: [
117
+ {
118
+ type: 'text',
119
+ text: JSON.stringify(result, null, 2),
120
+ },
121
+ ],
122
+ isError: result.status === 'error',
123
+ };
124
+ });
125
+ // Tool 4: Golden Eval
126
+ server.tool('agentic.golden_eval', 'Run golden eval regression tests. Compares rendered outputs against known-good baseline files.', {
127
+ projectId: z.string().optional().describe('Project identifier (optional)'),
128
+ case_name: z.string().optional().describe('Run only this specific test case'),
129
+ strict: z.boolean().optional().describe('Also run lint checks on all outputs'),
130
+ }, async ({ projectId, case_name, strict }) => {
131
+ const result = await runGolden({
132
+ projectId,
133
+ case_name,
134
+ strict,
135
+ });
136
+ return {
137
+ content: [
138
+ {
139
+ type: 'text',
140
+ text: JSON.stringify(result, null, 2),
141
+ },
142
+ ],
143
+ isError: result.status === 'error',
144
+ };
145
+ });
146
+ }
147
+ // Re-export types and functions for direct use
148
+ export * from './types.js';
149
+ export { compilePack, loadCompiledPack, getOrCompilePack } from './compiler.js';
150
+ export { render, renderPayload } from './renderer.js';
151
+ export { lint, lintWithPack, lintOutput } from './linter.js';
152
+ export { runGoldenEval, updateGoldenFile, createGoldenCase, runGolden } from './golden.js';
153
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agentic/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Agentic Pack Linter
3
+ *
4
+ * Validates rendered output against dialect constraints.
5
+ * Ensures semiotic clarity and consistency.
6
+ */
7
+ import { LintResult, RendererConfig, CanonicalPayload, CompiledPack, LintInput, LintOutputResult } from './types.js';
8
+ /**
9
+ * Lint rendered output against renderer constraints.
10
+ */
11
+ export declare function lint(rendered: string, renderer: RendererConfig, payload?: CanonicalPayload): LintResult;
12
+ /**
13
+ * Lint with just the renderer ID (loads from pack)
14
+ */
15
+ export declare function lintWithPack(rendered: string, rendererId: string, pack: CompiledPack, payload?: CanonicalPayload): LintResult;
16
+ /**
17
+ * MCP tool handler for linting rendered output
18
+ */
19
+ export declare function lintOutput(input: LintInput): Promise<LintOutputResult>;
20
+ //# sourceMappingURL=linter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/agentic/linter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,UAAU,EAGV,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,gBAAgB,EACjB,MAAM,YAAY,CAAC;AA8SpB;;GAEG;AACH,wBAAgB,IAAI,CAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,cAAc,EACxB,OAAO,CAAC,EAAE,gBAAgB,GACzB,UAAU,CAgBZ;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,gBAAgB,GACzB,UAAU,CAkBZ;AAMD;;GAEG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAiC5E"}