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,119 @@
1
+ /**
2
+ * Architect Policy Tools - ADR-0004 Oversight Pack
3
+ *
4
+ * Provides tools for creating and managing policy atoms:
5
+ * - architect_createPolicy: Create a new policy atom
6
+ * - architect_listPolicies: List all policies for a project
7
+ * - architect_getPolicy: Get a specific policy by ID
8
+ * - architect_compileOversight: Compile policies into documentation
9
+ */
10
+ export type PolicySeverity = 'critical' | 'high' | 'medium' | 'low';
11
+ export interface PolicyRule {
12
+ key: string;
13
+ description: string;
14
+ check?: string;
15
+ }
16
+ export interface PolicyException {
17
+ reason: string;
18
+ scope?: string;
19
+ expires?: string;
20
+ approved_by?: string;
21
+ }
22
+ export interface PolicyExamples {
23
+ compliant?: string[];
24
+ violation?: string[];
25
+ }
26
+ export interface CreatePolicyInput {
27
+ projectId?: string;
28
+ title: string;
29
+ rationale: string;
30
+ scope: string;
31
+ rules: PolicyRule[];
32
+ severity: PolicySeverity;
33
+ enforcement_hooks?: string[];
34
+ exceptions?: PolicyException[];
35
+ examples?: PolicyExamples;
36
+ tags?: string[];
37
+ }
38
+ export interface CreatePolicyOutput {
39
+ policy_id: string;
40
+ timestamp: string;
41
+ path: string;
42
+ title: string;
43
+ }
44
+ export interface ListPoliciesInput {
45
+ projectId?: string;
46
+ severity?: PolicySeverity;
47
+ tags?: string[];
48
+ }
49
+ export interface PolicySummary {
50
+ id: string;
51
+ title: string;
52
+ severity: PolicySeverity;
53
+ scope: string;
54
+ rule_count: number;
55
+ tags: string[];
56
+ }
57
+ export interface ListPoliciesOutput {
58
+ policies: PolicySummary[];
59
+ total: number;
60
+ }
61
+ export interface GetPolicyInput {
62
+ projectId?: string;
63
+ policy_id: string;
64
+ }
65
+ export interface Policy {
66
+ id: string;
67
+ title: string;
68
+ rationale: string;
69
+ scope: string;
70
+ rules: PolicyRule[];
71
+ severity: PolicySeverity;
72
+ enforcement_hooks: string[];
73
+ exceptions: PolicyException[];
74
+ examples: PolicyExamples;
75
+ tags: string[];
76
+ created_at: string;
77
+ updated_at?: string;
78
+ }
79
+ export interface GetPolicyOutput {
80
+ policy: Policy | null;
81
+ path?: string;
82
+ error?: string;
83
+ }
84
+ export interface CompileOversightInput {
85
+ projectId?: string;
86
+ output_format?: 'markdown' | 'json' | 'both';
87
+ include_inherited?: boolean;
88
+ }
89
+ export interface CompileOversightOutput {
90
+ markdown_path?: string;
91
+ json_path?: string;
92
+ policies_compiled: number;
93
+ profiles_resolved: string[];
94
+ timestamp: string;
95
+ }
96
+ export interface PolicyError {
97
+ error: string;
98
+ message: string;
99
+ suggestion?: string;
100
+ }
101
+ declare function isError(result: unknown): result is PolicyError;
102
+ /**
103
+ * Create a new policy atom
104
+ */
105
+ export declare function createPolicy(input: CreatePolicyInput): Promise<CreatePolicyOutput | PolicyError>;
106
+ /**
107
+ * List all policies for a project
108
+ */
109
+ export declare function listPolicies(input: ListPoliciesInput): Promise<ListPoliciesOutput | PolicyError>;
110
+ /**
111
+ * Get a specific policy by ID
112
+ */
113
+ export declare function getPolicy(input: GetPolicyInput): Promise<GetPolicyOutput | PolicyError>;
114
+ /**
115
+ * Compile policies into documentation
116
+ */
117
+ export declare function compileOversight(input: CompileOversightInput): Promise<CompileOversightOutput | PolicyError>;
118
+ export { isError as isPolicyError };
119
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/tools/policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,406 @@
1
+ /**
2
+ * Architect Policy Tools - ADR-0004 Oversight Pack
3
+ *
4
+ * Provides tools for creating and managing policy atoms:
5
+ * - architect_createPolicy: Create a new policy atom
6
+ * - architect_listPolicies: List all policies for a project
7
+ * - architect_getPolicy: Get a specific policy by ID
8
+ * - architect_compileOversight: Compile policies into documentation
9
+ */
10
+ import fs from 'fs/promises';
11
+ import path from 'path';
12
+ import YAML from 'yaml';
13
+ import { log } from '../config.js';
14
+ import { ensureDir } from '../dataRoot.js';
15
+ import { resolveProjectPaths, validateWritePath } from '../projectRegistry.js';
16
+ import { emitCreateProvenance } from './provenance.js';
17
+ // ============================================================================
18
+ // Helpers
19
+ // ============================================================================
20
+ function slugify(text) {
21
+ return text
22
+ .toLowerCase()
23
+ .replace(/[^a-z0-9]+/g, '-')
24
+ .replace(/^-|-$/g, '')
25
+ .substring(0, 50);
26
+ }
27
+ async function getNextPolicyId(policiesDir) {
28
+ try {
29
+ const files = await fs.readdir(policiesDir);
30
+ const ids = files
31
+ .filter(f => f.startsWith('POL-') && f.endsWith('.yaml'))
32
+ .map(f => {
33
+ const match = f.match(/^POL-(\d+)/);
34
+ return match ? parseInt(match[1], 10) : 0;
35
+ })
36
+ .filter(n => !isNaN(n));
37
+ const maxId = ids.length > 0 ? Math.max(...ids) : 0;
38
+ return `POL-${String(maxId + 1).padStart(4, '0')}`;
39
+ }
40
+ catch {
41
+ return 'POL-0001';
42
+ }
43
+ }
44
+ async function parsePolicyFile(filePath) {
45
+ try {
46
+ const content = await fs.readFile(filePath, 'utf-8');
47
+ const data = YAML.parse(content);
48
+ if (!data || !data.id)
49
+ return null;
50
+ return {
51
+ id: data.id,
52
+ title: data.title || 'Untitled',
53
+ rationale: data.rationale || '',
54
+ scope: data.scope || 'global',
55
+ rules: data.rules || [],
56
+ severity: data.severity || 'medium',
57
+ enforcement_hooks: data.enforcement_hooks || [],
58
+ exceptions: data.exceptions || [],
59
+ examples: data.examples || {},
60
+ tags: data.tags || [],
61
+ created_at: data.created_at || '',
62
+ updated_at: data.updated_at,
63
+ };
64
+ }
65
+ catch {
66
+ return null;
67
+ }
68
+ }
69
+ function isError(result) {
70
+ return (typeof result === 'object' &&
71
+ result !== null &&
72
+ 'error' in result &&
73
+ 'message' in result);
74
+ }
75
+ function makeProjectError(operation) {
76
+ return {
77
+ error: 'PROJECT_NOT_FOUND',
78
+ message: `Cannot ${operation}: No project context available.`,
79
+ suggestion: 'Specify projectId parameter, set DECIBEL_PROJECT_ROOT env var, or run from a directory with .decibel/',
80
+ };
81
+ }
82
+ // ============================================================================
83
+ // Tool Implementations
84
+ // ============================================================================
85
+ /**
86
+ * Create a new policy atom
87
+ */
88
+ export async function createPolicy(input) {
89
+ let resolved;
90
+ try {
91
+ resolved = resolveProjectPaths(input.projectId);
92
+ }
93
+ catch {
94
+ return makeProjectError('create policy');
95
+ }
96
+ const now = new Date();
97
+ const timestamp = now.toISOString();
98
+ const policiesDir = resolved.subPath('architect', 'policies');
99
+ ensureDir(policiesDir);
100
+ const policyId = await getNextPolicyId(policiesDir);
101
+ const slug = slugify(input.title);
102
+ const filename = `${policyId}-${slug}.yaml`;
103
+ const filePath = path.join(policiesDir, filename);
104
+ // Validate rules have unique keys
105
+ const ruleKeys = input.rules.map(r => r.key);
106
+ const uniqueKeys = new Set(ruleKeys);
107
+ if (uniqueKeys.size !== ruleKeys.length) {
108
+ return {
109
+ error: 'DUPLICATE_RULE_KEYS',
110
+ message: 'Policy rules must have unique keys.',
111
+ suggestion: 'Remove or rename duplicate rule keys.',
112
+ };
113
+ }
114
+ // Build policy data
115
+ const policyData = {
116
+ id: policyId,
117
+ title: input.title,
118
+ rationale: input.rationale,
119
+ scope: input.scope,
120
+ rules: input.rules,
121
+ severity: input.severity,
122
+ created_at: timestamp,
123
+ project_id: resolved.id,
124
+ };
125
+ if (input.enforcement_hooks && input.enforcement_hooks.length > 0) {
126
+ policyData.enforcement_hooks = input.enforcement_hooks;
127
+ }
128
+ if (input.exceptions && input.exceptions.length > 0) {
129
+ policyData.exceptions = input.exceptions;
130
+ }
131
+ if (input.examples) {
132
+ policyData.examples = input.examples;
133
+ }
134
+ if (input.tags && input.tags.length > 0) {
135
+ policyData.tags = input.tags;
136
+ }
137
+ validateWritePath(filePath, resolved);
138
+ await fs.writeFile(filePath, YAML.stringify(policyData), 'utf-8');
139
+ log(`Policy: Created ${policyId} at ${filePath}`);
140
+ await emitCreateProvenance(`architect:policy:${policyId}`, YAML.stringify(policyData), `Created policy: ${input.title}`, input.projectId);
141
+ return {
142
+ policy_id: policyId,
143
+ timestamp,
144
+ path: filePath,
145
+ title: input.title,
146
+ };
147
+ }
148
+ /**
149
+ * List all policies for a project
150
+ */
151
+ export async function listPolicies(input) {
152
+ let resolved;
153
+ try {
154
+ resolved = resolveProjectPaths(input.projectId);
155
+ }
156
+ catch {
157
+ return makeProjectError('list policies');
158
+ }
159
+ const policiesDir = resolved.subPath('architect', 'policies');
160
+ const policies = [];
161
+ try {
162
+ const files = await fs.readdir(policiesDir);
163
+ for (const file of files) {
164
+ if (!file.endsWith('.yaml'))
165
+ continue;
166
+ const filePath = path.join(policiesDir, file);
167
+ const policy = await parsePolicyFile(filePath);
168
+ if (!policy)
169
+ continue;
170
+ // Apply filters
171
+ if (input.severity && policy.severity !== input.severity)
172
+ continue;
173
+ if (input.tags && input.tags.length > 0) {
174
+ const hasTag = input.tags.some(t => policy.tags.includes(t));
175
+ if (!hasTag)
176
+ continue;
177
+ }
178
+ policies.push({
179
+ id: policy.id,
180
+ title: policy.title,
181
+ severity: policy.severity,
182
+ scope: policy.scope,
183
+ rule_count: policy.rules.length,
184
+ tags: policy.tags,
185
+ });
186
+ }
187
+ }
188
+ catch {
189
+ // Directory doesn't exist yet - return empty
190
+ }
191
+ // Sort by ID
192
+ policies.sort((a, b) => a.id.localeCompare(b.id));
193
+ return {
194
+ policies,
195
+ total: policies.length,
196
+ };
197
+ }
198
+ /**
199
+ * Get a specific policy by ID
200
+ */
201
+ export async function getPolicy(input) {
202
+ let resolved;
203
+ try {
204
+ resolved = resolveProjectPaths(input.projectId);
205
+ }
206
+ catch {
207
+ return makeProjectError('get policy');
208
+ }
209
+ const policiesDir = resolved.subPath('architect', 'policies');
210
+ try {
211
+ const files = await fs.readdir(policiesDir);
212
+ const policyFile = files.find(f => f.startsWith(input.policy_id));
213
+ if (!policyFile) {
214
+ return {
215
+ policy: null,
216
+ error: `Policy not found: ${input.policy_id}`,
217
+ };
218
+ }
219
+ const filePath = path.join(policiesDir, policyFile);
220
+ const policy = await parsePolicyFile(filePath);
221
+ if (!policy) {
222
+ return {
223
+ policy: null,
224
+ error: `Failed to parse policy: ${input.policy_id}`,
225
+ };
226
+ }
227
+ return {
228
+ policy,
229
+ path: filePath,
230
+ };
231
+ }
232
+ catch {
233
+ return {
234
+ policy: null,
235
+ error: `Policy not found: ${input.policy_id}`,
236
+ };
237
+ }
238
+ }
239
+ /**
240
+ * Compile policies into documentation
241
+ */
242
+ export async function compileOversight(input) {
243
+ let resolved;
244
+ try {
245
+ resolved = resolveProjectPaths(input.projectId);
246
+ }
247
+ catch {
248
+ return makeProjectError('compile oversight');
249
+ }
250
+ const now = new Date();
251
+ const timestamp = now.toISOString();
252
+ const format = input.output_format || 'markdown';
253
+ // Get all policies
254
+ const policiesDir = resolved.subPath('architect', 'policies');
255
+ const policies = [];
256
+ const profilesResolved = ['local'];
257
+ try {
258
+ const files = await fs.readdir(policiesDir);
259
+ for (const file of files) {
260
+ if (!file.endsWith('.yaml'))
261
+ continue;
262
+ const filePath = path.join(policiesDir, file);
263
+ const policy = await parsePolicyFile(filePath);
264
+ if (policy)
265
+ policies.push(policy);
266
+ }
267
+ }
268
+ catch {
269
+ // No policies yet
270
+ }
271
+ // Sort by severity (critical first) then by ID
272
+ const severityOrder = {
273
+ critical: 0,
274
+ high: 1,
275
+ medium: 2,
276
+ low: 3,
277
+ };
278
+ policies.sort((a, b) => {
279
+ const sevDiff = severityOrder[a.severity] - severityOrder[b.severity];
280
+ if (sevDiff !== 0)
281
+ return sevDiff;
282
+ return a.id.localeCompare(b.id);
283
+ });
284
+ const result = {
285
+ policies_compiled: policies.length,
286
+ profiles_resolved: profilesResolved,
287
+ timestamp,
288
+ };
289
+ // Create output directory
290
+ const docsDir = path.join(resolved.projectPath, 'docs', 'oversight');
291
+ ensureDir(docsDir);
292
+ // Generate markdown
293
+ if (format === 'markdown' || format === 'both') {
294
+ const mdPath = path.join(docsDir, 'policies.md');
295
+ const mdContent = generatePoliciesMarkdown(policies, timestamp);
296
+ await fs.writeFile(mdPath, mdContent, 'utf-8');
297
+ result.markdown_path = mdPath;
298
+ log(`Policy: Compiled markdown to ${mdPath}`);
299
+ }
300
+ // Generate JSON
301
+ if (format === 'json' || format === 'both') {
302
+ const jsonPath = path.join(docsDir, 'compiled.json');
303
+ const jsonContent = {
304
+ compiled_at: timestamp,
305
+ profiles: profilesResolved,
306
+ policies: policies.map(p => ({
307
+ id: p.id,
308
+ title: p.title,
309
+ severity: p.severity,
310
+ scope: p.scope,
311
+ rules: p.rules,
312
+ enforcement_hooks: p.enforcement_hooks,
313
+ })),
314
+ };
315
+ await fs.writeFile(jsonPath, JSON.stringify(jsonContent, null, 2), 'utf-8');
316
+ result.json_path = jsonPath;
317
+ log(`Policy: Compiled JSON to ${jsonPath}`);
318
+ }
319
+ return result;
320
+ }
321
+ /**
322
+ * Generate markdown documentation for policies
323
+ */
324
+ function generatePoliciesMarkdown(policies, timestamp) {
325
+ const lines = [
326
+ '# Oversight Policies',
327
+ '',
328
+ `> Auto-generated from policy atoms on ${timestamp}`,
329
+ '',
330
+ '## Summary',
331
+ '',
332
+ `- **Total Policies:** ${policies.length}`,
333
+ `- **Critical:** ${policies.filter(p => p.severity === 'critical').length}`,
334
+ `- **High:** ${policies.filter(p => p.severity === 'high').length}`,
335
+ `- **Medium:** ${policies.filter(p => p.severity === 'medium').length}`,
336
+ `- **Low:** ${policies.filter(p => p.severity === 'low').length}`,
337
+ '',
338
+ '---',
339
+ '',
340
+ ];
341
+ for (const policy of policies) {
342
+ lines.push(`## ${policy.id}: ${policy.title}`);
343
+ lines.push('');
344
+ lines.push(`**Severity:** ${policy.severity.toUpperCase()}`);
345
+ lines.push(`**Scope:** ${policy.scope}`);
346
+ if (policy.tags.length > 0) {
347
+ lines.push(`**Tags:** ${policy.tags.map(t => `\`${t}\``).join(', ')}`);
348
+ }
349
+ lines.push('');
350
+ lines.push('### Rationale');
351
+ lines.push('');
352
+ lines.push(policy.rationale);
353
+ lines.push('');
354
+ lines.push('### Rules');
355
+ lines.push('');
356
+ for (const rule of policy.rules) {
357
+ lines.push(`- **${rule.key}:** ${rule.description}`);
358
+ if (rule.check) {
359
+ lines.push(` - Check: \`${rule.check}\``);
360
+ }
361
+ }
362
+ lines.push('');
363
+ if (policy.enforcement_hooks.length > 0) {
364
+ lines.push('### Enforcement Hooks');
365
+ lines.push('');
366
+ for (const hook of policy.enforcement_hooks) {
367
+ lines.push(`- ${hook}`);
368
+ }
369
+ lines.push('');
370
+ }
371
+ if (policy.exceptions.length > 0) {
372
+ lines.push('### Exceptions');
373
+ lines.push('');
374
+ for (const ex of policy.exceptions) {
375
+ let exLine = `- ${ex.reason}`;
376
+ if (ex.scope)
377
+ exLine += ` (scope: ${ex.scope})`;
378
+ if (ex.expires)
379
+ exLine += ` [expires: ${ex.expires}]`;
380
+ lines.push(exLine);
381
+ }
382
+ lines.push('');
383
+ }
384
+ if (policy.examples.compliant && policy.examples.compliant.length > 0) {
385
+ lines.push('### Compliant Examples');
386
+ lines.push('');
387
+ for (const ex of policy.examples.compliant) {
388
+ lines.push(`- ${ex}`);
389
+ }
390
+ lines.push('');
391
+ }
392
+ if (policy.examples.violation && policy.examples.violation.length > 0) {
393
+ lines.push('### Violation Examples');
394
+ lines.push('');
395
+ for (const ex of policy.examples.violation) {
396
+ lines.push(`- ${ex}`);
397
+ }
398
+ lines.push('');
399
+ }
400
+ lines.push('---');
401
+ lines.push('');
402
+ }
403
+ return lines.join('\n');
404
+ }
405
+ export { isError as isPolicyError };
406
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/tools/policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { ToolSpec } from '../types.js';
2
+ export declare const provenanceListTool: ToolSpec;
3
+ export declare const provenanceTools: ToolSpec[];
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/provenance/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAWvC,eAAO,MAAM,kBAAkB,EAAE,QAuChC,CAAC;AAMF,eAAO,MAAM,eAAe,EAAE,QAAQ,EAErC,CAAC"}
@@ -0,0 +1,58 @@
1
+ // ============================================================================
2
+ // Provenance Domain Tools
3
+ // ============================================================================
4
+ // Tools for tracking artifact and actor provenance/history.
5
+ // ============================================================================
6
+ import { toolSuccess, toolError } from '../shared/index.js';
7
+ import { listProvenance, } from '../provenance.js';
8
+ // ============================================================================
9
+ // Provenance List Tool
10
+ // ============================================================================
11
+ export const provenanceListTool = {
12
+ definition: {
13
+ name: 'provenance_list',
14
+ description: 'List provenance events for an artifact or actor. Shows the history of changes with fingerprints for tracking who did what and when.',
15
+ inputSchema: {
16
+ type: 'object',
17
+ properties: {
18
+ projectId: {
19
+ type: 'string',
20
+ description: 'Optional project identifier. Uses default project if not specified.',
21
+ },
22
+ artifact_ref: {
23
+ type: 'string',
24
+ description: 'Filter by artifact reference (e.g., "sentinel:issue:2025-01-01T00-00-00Z-my-issue.md")',
25
+ },
26
+ actor_id: {
27
+ type: 'string',
28
+ description: 'Filter by actor ID (e.g., "ai:claude", "human:alice")',
29
+ },
30
+ limit: {
31
+ type: 'number',
32
+ description: 'Maximum number of events to return (default: 50)',
33
+ },
34
+ },
35
+ required: [],
36
+ },
37
+ },
38
+ handler: async (args) => {
39
+ try {
40
+ const input = args;
41
+ const result = await listProvenance(input);
42
+ if ('error' in result && result.error === 'project_resolution_failed') {
43
+ return toolError(JSON.stringify(result, null, 2));
44
+ }
45
+ return toolSuccess(result);
46
+ }
47
+ catch (err) {
48
+ return toolError(err instanceof Error ? err.message : String(err));
49
+ }
50
+ },
51
+ };
52
+ // ============================================================================
53
+ // Export All Tools
54
+ // ============================================================================
55
+ export const provenanceTools = [
56
+ provenanceListTool,
57
+ ];
58
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/provenance/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAC/E,4DAA4D;AAC5D,+EAA+E;AAG/E,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EACL,cAAc,GAEf,MAAM,kBAAkB,CAAC;AAE1B,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,kBAAkB,GAAa;IAC1C,UAAU,EAAE;QACV,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,qIAAqI;QAClJ,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qEAAqE;iBACnF;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wFAAwF;iBACtG;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uDAAuD;iBACrE;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kDAAkD;iBAChE;aACF;YACD,QAAQ,EAAE,EAAE;SACb;KACF;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAA2B,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,OAAO,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,2BAA2B,EAAE,CAAC;gBACtE,OAAO,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;CACF,CAAC;AAEF,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,eAAe,GAAe;IACzC,kBAAkB;CACnB,CAAC"}