@phantomind/core 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 (265) hide show
  1. package/dist/adapters/aider.d.ts +12 -0
  2. package/dist/adapters/aider.d.ts.map +1 -0
  3. package/dist/adapters/aider.js +24 -0
  4. package/dist/adapters/aider.js.map +1 -0
  5. package/dist/adapters/base.d.ts +21 -0
  6. package/dist/adapters/base.d.ts.map +1 -0
  7. package/dist/adapters/base.js +83 -0
  8. package/dist/adapters/base.js.map +1 -0
  9. package/dist/adapters/claude-code.d.ts +12 -0
  10. package/dist/adapters/claude-code.d.ts.map +1 -0
  11. package/dist/adapters/claude-code.js +31 -0
  12. package/dist/adapters/claude-code.js.map +1 -0
  13. package/dist/adapters/cline.d.ts +12 -0
  14. package/dist/adapters/cline.d.ts.map +1 -0
  15. package/dist/adapters/cline.js +32 -0
  16. package/dist/adapters/cline.js.map +1 -0
  17. package/dist/adapters/codex.d.ts +18 -0
  18. package/dist/adapters/codex.d.ts.map +1 -0
  19. package/dist/adapters/codex.js +38 -0
  20. package/dist/adapters/codex.js.map +1 -0
  21. package/dist/adapters/continue.d.ts +12 -0
  22. package/dist/adapters/continue.d.ts.map +1 -0
  23. package/dist/adapters/continue.js +29 -0
  24. package/dist/adapters/continue.js.map +1 -0
  25. package/dist/adapters/copilot.d.ts +12 -0
  26. package/dist/adapters/copilot.d.ts.map +1 -0
  27. package/dist/adapters/copilot.js +31 -0
  28. package/dist/adapters/copilot.js.map +1 -0
  29. package/dist/adapters/cursor.d.ts +12 -0
  30. package/dist/adapters/cursor.d.ts.map +1 -0
  31. package/dist/adapters/cursor.js +34 -0
  32. package/dist/adapters/cursor.js.map +1 -0
  33. package/dist/adapters/index.d.ts +32 -0
  34. package/dist/adapters/index.d.ts.map +1 -0
  35. package/dist/adapters/index.js +64 -0
  36. package/dist/adapters/index.js.map +1 -0
  37. package/dist/adapters/windsurf.d.ts +12 -0
  38. package/dist/adapters/windsurf.d.ts.map +1 -0
  39. package/dist/adapters/windsurf.js +32 -0
  40. package/dist/adapters/windsurf.js.map +1 -0
  41. package/dist/adapters/zed.d.ts +12 -0
  42. package/dist/adapters/zed.d.ts.map +1 -0
  43. package/dist/adapters/zed.js +27 -0
  44. package/dist/adapters/zed.js.map +1 -0
  45. package/dist/agent/decomposer.d.ts +55 -0
  46. package/dist/agent/decomposer.d.ts.map +1 -0
  47. package/dist/agent/decomposer.js +172 -0
  48. package/dist/agent/decomposer.js.map +1 -0
  49. package/dist/agent/executor.d.ts +33 -0
  50. package/dist/agent/executor.d.ts.map +1 -0
  51. package/dist/agent/executor.js +260 -0
  52. package/dist/agent/executor.js.map +1 -0
  53. package/dist/agent/index.d.ts +8 -0
  54. package/dist/agent/index.d.ts.map +1 -0
  55. package/dist/agent/index.js +8 -0
  56. package/dist/agent/index.js.map +1 -0
  57. package/dist/agent/memory.d.ts +95 -0
  58. package/dist/agent/memory.d.ts.map +1 -0
  59. package/dist/agent/memory.js +211 -0
  60. package/dist/agent/memory.js.map +1 -0
  61. package/dist/agent/orchestrator.d.ts +54 -0
  62. package/dist/agent/orchestrator.d.ts.map +1 -0
  63. package/dist/agent/orchestrator.js +190 -0
  64. package/dist/agent/orchestrator.js.map +1 -0
  65. package/dist/agent/queue.d.ts +95 -0
  66. package/dist/agent/queue.d.ts.map +1 -0
  67. package/dist/agent/queue.js +231 -0
  68. package/dist/agent/queue.js.map +1 -0
  69. package/dist/agent/retry.d.ts +61 -0
  70. package/dist/agent/retry.d.ts.map +1 -0
  71. package/dist/agent/retry.js +162 -0
  72. package/dist/agent/retry.js.map +1 -0
  73. package/dist/agent/roles.d.ts +35 -0
  74. package/dist/agent/roles.d.ts.map +1 -0
  75. package/dist/agent/roles.js +269 -0
  76. package/dist/agent/roles.js.map +1 -0
  77. package/dist/cli/agent.d.ts +12 -0
  78. package/dist/cli/agent.d.ts.map +1 -0
  79. package/dist/cli/agent.js +85 -0
  80. package/dist/cli/agent.js.map +1 -0
  81. package/dist/cli/audit.d.ts +11 -0
  82. package/dist/cli/audit.d.ts.map +1 -0
  83. package/dist/cli/audit.js +63 -0
  84. package/dist/cli/audit.js.map +1 -0
  85. package/dist/cli/eval.d.ts +11 -0
  86. package/dist/cli/eval.d.ts.map +1 -0
  87. package/dist/cli/eval.js +79 -0
  88. package/dist/cli/eval.js.map +1 -0
  89. package/dist/cli/index.d.ts +9 -0
  90. package/dist/cli/index.d.ts.map +1 -0
  91. package/dist/cli/index.js +9 -0
  92. package/dist/cli/index.js.map +1 -0
  93. package/dist/cli/init.d.ts +13 -0
  94. package/dist/cli/init.d.ts.map +1 -0
  95. package/dist/cli/init.js +157 -0
  96. package/dist/cli/init.js.map +1 -0
  97. package/dist/cli/main.d.ts +7 -0
  98. package/dist/cli/main.d.ts.map +1 -0
  99. package/dist/cli/main.js +153 -0
  100. package/dist/cli/main.js.map +1 -0
  101. package/dist/cli/serve.d.ts +11 -0
  102. package/dist/cli/serve.d.ts.map +1 -0
  103. package/dist/cli/serve.js +23 -0
  104. package/dist/cli/serve.js.map +1 -0
  105. package/dist/cli/stats.d.ts +10 -0
  106. package/dist/cli/stats.d.ts.map +1 -0
  107. package/dist/cli/stats.js +68 -0
  108. package/dist/cli/stats.js.map +1 -0
  109. package/dist/cli/sync.d.ts +11 -0
  110. package/dist/cli/sync.d.ts.map +1 -0
  111. package/dist/cli/sync.js +49 -0
  112. package/dist/cli/sync.js.map +1 -0
  113. package/dist/cli/validate.d.ts +13 -0
  114. package/dist/cli/validate.d.ts.map +1 -0
  115. package/dist/cli/validate.js +125 -0
  116. package/dist/cli/validate.js.map +1 -0
  117. package/dist/config/index.d.ts +2 -0
  118. package/dist/config/index.d.ts.map +1 -0
  119. package/dist/config/index.js +2 -0
  120. package/dist/config/index.js.map +1 -0
  121. package/dist/config/loader.d.ts +25 -0
  122. package/dist/config/loader.d.ts.map +1 -0
  123. package/dist/config/loader.js +190 -0
  124. package/dist/config/loader.js.map +1 -0
  125. package/dist/context/embedder.d.ts +53 -0
  126. package/dist/context/embedder.d.ts.map +1 -0
  127. package/dist/context/embedder.js +235 -0
  128. package/dist/context/embedder.js.map +1 -0
  129. package/dist/context/engine.d.ts +82 -0
  130. package/dist/context/engine.d.ts.map +1 -0
  131. package/dist/context/engine.js +343 -0
  132. package/dist/context/engine.js.map +1 -0
  133. package/dist/context/index.d.ts +5 -0
  134. package/dist/context/index.d.ts.map +1 -0
  135. package/dist/context/index.js +5 -0
  136. package/dist/context/index.js.map +1 -0
  137. package/dist/context/learner.d.ts +44 -0
  138. package/dist/context/learner.d.ts.map +1 -0
  139. package/dist/context/learner.js +246 -0
  140. package/dist/context/learner.js.map +1 -0
  141. package/dist/context/versioning.d.ts +29 -0
  142. package/dist/context/versioning.d.ts.map +1 -0
  143. package/dist/context/versioning.js +81 -0
  144. package/dist/context/versioning.js.map +1 -0
  145. package/dist/index.d.ts +169 -0
  146. package/dist/index.d.ts.map +1 -0
  147. package/dist/index.js +285 -0
  148. package/dist/index.js.map +1 -0
  149. package/dist/mcp/index.d.ts +2 -0
  150. package/dist/mcp/index.d.ts.map +1 -0
  151. package/dist/mcp/index.js +2 -0
  152. package/dist/mcp/index.js.map +1 -0
  153. package/dist/mcp/server.d.ts +31 -0
  154. package/dist/mcp/server.d.ts.map +1 -0
  155. package/dist/mcp/server.js +334 -0
  156. package/dist/mcp/server.js.map +1 -0
  157. package/dist/observability/audit.d.ts +61 -0
  158. package/dist/observability/audit.d.ts.map +1 -0
  159. package/dist/observability/audit.js +168 -0
  160. package/dist/observability/audit.js.map +1 -0
  161. package/dist/observability/cost-tracker.d.ts +71 -0
  162. package/dist/observability/cost-tracker.d.ts.map +1 -0
  163. package/dist/observability/cost-tracker.js +206 -0
  164. package/dist/observability/cost-tracker.js.map +1 -0
  165. package/dist/observability/dashboard.d.ts +52 -0
  166. package/dist/observability/dashboard.d.ts.map +1 -0
  167. package/dist/observability/dashboard.js +134 -0
  168. package/dist/observability/dashboard.js.map +1 -0
  169. package/dist/observability/index.d.ts +4 -0
  170. package/dist/observability/index.d.ts.map +1 -0
  171. package/dist/observability/index.js +4 -0
  172. package/dist/observability/index.js.map +1 -0
  173. package/dist/providers/anthropic.d.ts +14 -0
  174. package/dist/providers/anthropic.d.ts.map +1 -0
  175. package/dist/providers/anthropic.js +99 -0
  176. package/dist/providers/anthropic.js.map +1 -0
  177. package/dist/providers/base.d.ts +52 -0
  178. package/dist/providers/base.d.ts.map +1 -0
  179. package/dist/providers/base.js +68 -0
  180. package/dist/providers/base.js.map +1 -0
  181. package/dist/providers/deepseek.d.ts +15 -0
  182. package/dist/providers/deepseek.d.ts.map +1 -0
  183. package/dist/providers/deepseek.js +99 -0
  184. package/dist/providers/deepseek.js.map +1 -0
  185. package/dist/providers/gemini.d.ts +15 -0
  186. package/dist/providers/gemini.d.ts.map +1 -0
  187. package/dist/providers/gemini.js +118 -0
  188. package/dist/providers/gemini.js.map +1 -0
  189. package/dist/providers/groq.d.ts +15 -0
  190. package/dist/providers/groq.d.ts.map +1 -0
  191. package/dist/providers/groq.js +101 -0
  192. package/dist/providers/groq.js.map +1 -0
  193. package/dist/providers/index.d.ts +11 -0
  194. package/dist/providers/index.d.ts.map +1 -0
  195. package/dist/providers/index.js +11 -0
  196. package/dist/providers/index.js.map +1 -0
  197. package/dist/providers/mistral.d.ts +15 -0
  198. package/dist/providers/mistral.d.ts.map +1 -0
  199. package/dist/providers/mistral.js +99 -0
  200. package/dist/providers/mistral.js.map +1 -0
  201. package/dist/providers/ollama.d.ts +14 -0
  202. package/dist/providers/ollama.d.ts.map +1 -0
  203. package/dist/providers/ollama.js +122 -0
  204. package/dist/providers/ollama.js.map +1 -0
  205. package/dist/providers/openai.d.ts +14 -0
  206. package/dist/providers/openai.d.ts.map +1 -0
  207. package/dist/providers/openai.js +80 -0
  208. package/dist/providers/openai.js.map +1 -0
  209. package/dist/providers/openrouter.d.ts +15 -0
  210. package/dist/providers/openrouter.d.ts.map +1 -0
  211. package/dist/providers/openrouter.js +101 -0
  212. package/dist/providers/openrouter.js.map +1 -0
  213. package/dist/providers/router.d.ts +51 -0
  214. package/dist/providers/router.d.ts.map +1 -0
  215. package/dist/providers/router.js +198 -0
  216. package/dist/providers/router.js.map +1 -0
  217. package/dist/quality/anomaly.d.ts +32 -0
  218. package/dist/quality/anomaly.d.ts.map +1 -0
  219. package/dist/quality/anomaly.js +126 -0
  220. package/dist/quality/anomaly.js.map +1 -0
  221. package/dist/quality/consistency.d.ts +26 -0
  222. package/dist/quality/consistency.d.ts.map +1 -0
  223. package/dist/quality/consistency.js +156 -0
  224. package/dist/quality/consistency.js.map +1 -0
  225. package/dist/quality/dual-verifier.d.ts +22 -0
  226. package/dist/quality/dual-verifier.d.ts.map +1 -0
  227. package/dist/quality/dual-verifier.js +137 -0
  228. package/dist/quality/dual-verifier.js.map +1 -0
  229. package/dist/quality/hallucination-guard.d.ts +57 -0
  230. package/dist/quality/hallucination-guard.d.ts.map +1 -0
  231. package/dist/quality/hallucination-guard.js +245 -0
  232. package/dist/quality/hallucination-guard.js.map +1 -0
  233. package/dist/quality/index.d.ts +7 -0
  234. package/dist/quality/index.d.ts.map +1 -0
  235. package/dist/quality/index.js +7 -0
  236. package/dist/quality/index.js.map +1 -0
  237. package/dist/quality/regression.d.ts +44 -0
  238. package/dist/quality/regression.d.ts.map +1 -0
  239. package/dist/quality/regression.js +181 -0
  240. package/dist/quality/regression.js.map +1 -0
  241. package/dist/quality/secret-scanner.d.ts +36 -0
  242. package/dist/quality/secret-scanner.d.ts.map +1 -0
  243. package/dist/quality/secret-scanner.js +187 -0
  244. package/dist/quality/secret-scanner.js.map +1 -0
  245. package/dist/schemas/index.d.ts +2 -0
  246. package/dist/schemas/index.d.ts.map +1 -0
  247. package/dist/schemas/index.js +2 -0
  248. package/dist/schemas/index.js.map +1 -0
  249. package/dist/schemas/registry.d.ts +72 -0
  250. package/dist/schemas/registry.d.ts.map +1 -0
  251. package/dist/schemas/registry.js +483 -0
  252. package/dist/schemas/registry.js.map +1 -0
  253. package/dist/templates/engine.d.ts +70 -0
  254. package/dist/templates/engine.d.ts.map +1 -0
  255. package/dist/templates/engine.js +71 -0
  256. package/dist/templates/engine.js.map +1 -0
  257. package/dist/templates/index.d.ts +2 -0
  258. package/dist/templates/index.d.ts.map +1 -0
  259. package/dist/templates/index.js +2 -0
  260. package/dist/templates/index.js.map +1 -0
  261. package/dist/types.d.ts +912 -0
  262. package/dist/types.d.ts.map +1 -0
  263. package/dist/types.js +75 -0
  264. package/dist/types.js.map +1 -0
  265. package/package.json +85 -0
@@ -0,0 +1,483 @@
1
+ /**
2
+ * PhantomMindAI — Schema Registry
3
+ * Manages JSON Schema definitions for structured AI output validation.
4
+ * Supports prebuilt schemas and custom user schemas.
5
+ */
6
+ import { readFile, writeFile, readdir, mkdir } from 'node:fs/promises';
7
+ import { existsSync } from 'node:fs';
8
+ import { join } from 'node:path';
9
+ import { z } from 'zod';
10
+ export class SchemaRegistry {
11
+ schemas = new Map();
12
+ projectRoot;
13
+ customSchemaDir;
14
+ constructor(projectRoot) {
15
+ this.projectRoot = projectRoot;
16
+ this.customSchemaDir = join(projectRoot, '.phantomind', 'schemas');
17
+ this.loadPrebuilt();
18
+ }
19
+ /**
20
+ * Load prebuilt schemas
21
+ */
22
+ loadPrebuilt() {
23
+ for (const [name, schema] of Object.entries(PREBUILT_SCHEMAS)) {
24
+ this.schemas.set(name, schema);
25
+ }
26
+ }
27
+ /**
28
+ * Load custom schemas from project directory
29
+ */
30
+ async loadCustomSchemas() {
31
+ if (!existsSync(this.customSchemaDir))
32
+ return 0;
33
+ let loaded = 0;
34
+ const files = await readdir(this.customSchemaDir);
35
+ for (const file of files) {
36
+ if (!file.endsWith('.json'))
37
+ continue;
38
+ try {
39
+ const content = await readFile(join(this.customSchemaDir, file), 'utf-8');
40
+ const schema = JSON.parse(content);
41
+ if (schema.name && schema.schema) {
42
+ this.schemas.set(schema.name, schema);
43
+ loaded++;
44
+ }
45
+ }
46
+ catch {
47
+ // Skip invalid schemas
48
+ }
49
+ }
50
+ return loaded;
51
+ }
52
+ /**
53
+ * Register a schema
54
+ */
55
+ register(schema) {
56
+ this.schemas.set(schema.name, schema);
57
+ }
58
+ /**
59
+ * Get a schema by name
60
+ */
61
+ get(name) {
62
+ return this.schemas.get(name);
63
+ }
64
+ /**
65
+ * List all available schemas
66
+ */
67
+ list() {
68
+ return Array.from(this.schemas.values());
69
+ }
70
+ /**
71
+ * Search schemas by name or tag
72
+ */
73
+ search(query) {
74
+ const q = query.toLowerCase();
75
+ return this.list().filter(s => s.name.toLowerCase().includes(q) ||
76
+ s.description.toLowerCase().includes(q) ||
77
+ s.tags?.some(t => t.toLowerCase().includes(q)));
78
+ }
79
+ /**
80
+ * Validate data against a schema
81
+ */
82
+ validate(schemaName, data) {
83
+ const schema = this.schemas.get(schemaName);
84
+ if (!schema) {
85
+ return { valid: false, errors: [`Schema '${schemaName}' not found`] };
86
+ }
87
+ const errors = [];
88
+ this.validateValue(data, schema.schema, '', errors);
89
+ return { valid: errors.length === 0, errors };
90
+ }
91
+ /**
92
+ * Generate a prompt instruction for structured output
93
+ */
94
+ getPromptInstruction(schemaName) {
95
+ const schema = this.schemas.get(schemaName);
96
+ if (!schema)
97
+ return '';
98
+ const lines = [
99
+ `Respond with valid JSON matching this schema:`,
100
+ '```json',
101
+ JSON.stringify(schema.schema, null, 2),
102
+ '```',
103
+ ];
104
+ if (schema.examples && schema.examples.length > 0) {
105
+ lines.push('', 'Example output:');
106
+ lines.push('```json');
107
+ lines.push(JSON.stringify(schema.examples[0], null, 2));
108
+ lines.push('```');
109
+ }
110
+ return lines.join('\n');
111
+ }
112
+ /**
113
+ * Save a custom schema to disk
114
+ */
115
+ async saveSchema(schema) {
116
+ if (!existsSync(this.customSchemaDir)) {
117
+ await mkdir(this.customSchemaDir, { recursive: true });
118
+ }
119
+ const filename = `${schema.name.replace(/[^a-z0-9-]/gi, '-')}.json`;
120
+ await writeFile(join(this.customSchemaDir, filename), JSON.stringify(schema, null, 2));
121
+ this.schemas.set(schema.name, schema);
122
+ }
123
+ /**
124
+ * Remove a schema
125
+ */
126
+ remove(name) {
127
+ return this.schemas.delete(name);
128
+ }
129
+ /**
130
+ * Convert a Zod schema to JSON Schema (basic)
131
+ */
132
+ static fromZod(name, description, zodSchema) {
133
+ // Basic Zod-to-JSON-Schema conversion for common types
134
+ const schema = zodToJsonSchema(zodSchema);
135
+ return { name, description, version: '1.0.0', schema };
136
+ }
137
+ /**
138
+ * Basic recursive JSON Schema validation
139
+ */
140
+ validateValue(data, schema, path, errors) {
141
+ const type = schema.type;
142
+ if (type === 'object') {
143
+ if (typeof data !== 'object' || data === null || Array.isArray(data)) {
144
+ errors.push(`${path || 'root'}: expected object`);
145
+ return;
146
+ }
147
+ const required = (schema.required ?? []);
148
+ for (const req of required) {
149
+ if (!(req in data)) {
150
+ errors.push(`${path}.${req}: required field missing`);
151
+ }
152
+ }
153
+ const properties = (schema.properties ?? {});
154
+ for (const [key, propSchema] of Object.entries(properties)) {
155
+ if (key in data) {
156
+ this.validateValue(data[key], propSchema, path ? `${path}.${key}` : key, errors);
157
+ }
158
+ }
159
+ }
160
+ else if (type === 'array') {
161
+ if (!Array.isArray(data)) {
162
+ errors.push(`${path || 'root'}: expected array`);
163
+ return;
164
+ }
165
+ const items = schema.items;
166
+ if (items) {
167
+ for (let i = 0; i < data.length; i++) {
168
+ this.validateValue(data[i], items, `${path}[${i}]`, errors);
169
+ }
170
+ }
171
+ }
172
+ else if (type === 'string') {
173
+ if (typeof data !== 'string')
174
+ errors.push(`${path || 'root'}: expected string`);
175
+ }
176
+ else if (type === 'number' || type === 'integer') {
177
+ if (typeof data !== 'number')
178
+ errors.push(`${path || 'root'}: expected number`);
179
+ }
180
+ else if (type === 'boolean') {
181
+ if (typeof data !== 'boolean')
182
+ errors.push(`${path || 'root'}: expected boolean`);
183
+ }
184
+ }
185
+ }
186
+ /**
187
+ * Basic Zod to JSON Schema converter
188
+ */
189
+ function zodToJsonSchema(schema) {
190
+ if (schema instanceof z.ZodString)
191
+ return { type: 'string' };
192
+ if (schema instanceof z.ZodNumber)
193
+ return { type: 'number' };
194
+ if (schema instanceof z.ZodBoolean)
195
+ return { type: 'boolean' };
196
+ if (schema instanceof z.ZodArray) {
197
+ return { type: 'array', items: zodToJsonSchema(schema.element) };
198
+ }
199
+ if (schema instanceof z.ZodObject) {
200
+ const shape = schema.shape;
201
+ const properties = {};
202
+ const required = [];
203
+ for (const [key, value] of Object.entries(shape)) {
204
+ properties[key] = zodToJsonSchema(value);
205
+ if (!(value instanceof z.ZodOptional)) {
206
+ required.push(key);
207
+ }
208
+ }
209
+ return { type: 'object', properties, required };
210
+ }
211
+ if (schema instanceof z.ZodEnum) {
212
+ return { type: 'string', enum: schema.options };
213
+ }
214
+ if (schema instanceof z.ZodOptional) {
215
+ return zodToJsonSchema(schema.unwrap());
216
+ }
217
+ if (schema instanceof z.ZodDefault) {
218
+ const inner = zodToJsonSchema(schema.removeDefault());
219
+ return { ...inner, default: schema._def.defaultValue() };
220
+ }
221
+ return {};
222
+ }
223
+ /**
224
+ * Prebuilt schema definitions for common AI output formats.
225
+ */
226
+ const PREBUILT_SCHEMAS = {
227
+ 'code-review': {
228
+ name: 'code-review',
229
+ description: 'Structured code review output',
230
+ version: '1.0.0',
231
+ tags: ['review', 'quality'],
232
+ schema: {
233
+ type: 'object',
234
+ required: ['summary', 'issues', 'suggestions', 'rating'],
235
+ properties: {
236
+ summary: { type: 'string', description: 'Overall review summary' },
237
+ issues: {
238
+ type: 'array',
239
+ items: {
240
+ type: 'object',
241
+ required: ['severity', 'file', 'line', 'description'],
242
+ properties: {
243
+ severity: { type: 'string', enum: ['critical', 'major', 'minor', 'info'] },
244
+ file: { type: 'string' },
245
+ line: { type: 'number' },
246
+ description: { type: 'string' },
247
+ suggestion: { type: 'string' },
248
+ },
249
+ },
250
+ },
251
+ suggestions: { type: 'array', items: { type: 'string' } },
252
+ rating: { type: 'number', minimum: 1, maximum: 10 },
253
+ },
254
+ },
255
+ examples: [{
256
+ summary: 'Generally well-structured code with minor improvements needed',
257
+ issues: [
258
+ { severity: 'minor', file: 'src/utils.ts', line: 42, description: 'Consider using const instead of let', suggestion: 'const result = ...' },
259
+ ],
260
+ suggestions: ['Add error handling for edge cases', 'Consider extracting helper function'],
261
+ rating: 8,
262
+ }],
263
+ },
264
+ 'api-endpoint': {
265
+ name: 'api-endpoint',
266
+ description: 'API endpoint specification',
267
+ version: '1.0.0',
268
+ tags: ['api', 'specification'],
269
+ schema: {
270
+ type: 'object',
271
+ required: ['method', 'path', 'description', 'request', 'response'],
272
+ properties: {
273
+ method: { type: 'string', enum: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE'] },
274
+ path: { type: 'string' },
275
+ description: { type: 'string' },
276
+ parameters: {
277
+ type: 'array',
278
+ items: {
279
+ type: 'object',
280
+ properties: {
281
+ name: { type: 'string' },
282
+ in: { type: 'string', enum: ['path', 'query', 'header'] },
283
+ type: { type: 'string' },
284
+ required: { type: 'boolean' },
285
+ },
286
+ },
287
+ },
288
+ request: {
289
+ type: 'object',
290
+ properties: {
291
+ contentType: { type: 'string' },
292
+ body: { type: 'object' },
293
+ },
294
+ },
295
+ response: {
296
+ type: 'object',
297
+ properties: {
298
+ statusCode: { type: 'number' },
299
+ contentType: { type: 'string' },
300
+ body: { type: 'object' },
301
+ },
302
+ },
303
+ },
304
+ },
305
+ },
306
+ 'test-plan': {
307
+ name: 'test-plan',
308
+ description: 'Test plan specification',
309
+ version: '1.0.0',
310
+ tags: ['testing', 'quality'],
311
+ schema: {
312
+ type: 'object',
313
+ required: ['feature', 'testCases'],
314
+ properties: {
315
+ feature: { type: 'string' },
316
+ testCases: {
317
+ type: 'array',
318
+ items: {
319
+ type: 'object',
320
+ required: ['name', 'type', 'steps', 'expected'],
321
+ properties: {
322
+ name: { type: 'string' },
323
+ type: { type: 'string', enum: ['unit', 'integration', 'e2e'] },
324
+ steps: { type: 'array', items: { type: 'string' } },
325
+ expected: { type: 'string' },
326
+ priority: { type: 'string', enum: ['high', 'medium', 'low'] },
327
+ },
328
+ },
329
+ },
330
+ coverage: {
331
+ type: 'object',
332
+ properties: {
333
+ happyPath: { type: 'boolean' },
334
+ edgeCases: { type: 'boolean' },
335
+ errorHandling: { type: 'boolean' },
336
+ },
337
+ },
338
+ },
339
+ },
340
+ },
341
+ 'migration-plan': {
342
+ name: 'migration-plan',
343
+ description: 'Database or code migration plan',
344
+ version: '1.0.0',
345
+ tags: ['migration', 'database'],
346
+ schema: {
347
+ type: 'object',
348
+ required: ['name', 'steps', 'rollbackPlan'],
349
+ properties: {
350
+ name: { type: 'string' },
351
+ description: { type: 'string' },
352
+ steps: {
353
+ type: 'array',
354
+ items: {
355
+ type: 'object',
356
+ required: ['order', 'action', 'description'],
357
+ properties: {
358
+ order: { type: 'number' },
359
+ action: { type: 'string' },
360
+ description: { type: 'string' },
361
+ sql: { type: 'string' },
362
+ reversible: { type: 'boolean' },
363
+ },
364
+ },
365
+ },
366
+ rollbackPlan: {
367
+ type: 'array',
368
+ items: {
369
+ type: 'object',
370
+ properties: {
371
+ order: { type: 'number' },
372
+ action: { type: 'string' },
373
+ },
374
+ },
375
+ },
376
+ risks: { type: 'array', items: { type: 'string' } },
377
+ },
378
+ },
379
+ },
380
+ 'refactoring-plan': {
381
+ name: 'refactoring-plan',
382
+ description: 'Code refactoring plan',
383
+ version: '1.0.0',
384
+ tags: ['refactoring', 'code-quality'],
385
+ schema: {
386
+ type: 'object',
387
+ required: ['reason', 'changes', 'impact'],
388
+ properties: {
389
+ reason: { type: 'string' },
390
+ changes: {
391
+ type: 'array',
392
+ items: {
393
+ type: 'object',
394
+ required: ['file', 'description', 'type'],
395
+ properties: {
396
+ file: { type: 'string' },
397
+ description: { type: 'string' },
398
+ type: { type: 'string', enum: ['rename', 'move', 'extract', 'inline', 'restructure'] },
399
+ before: { type: 'string' },
400
+ after: { type: 'string' },
401
+ },
402
+ },
403
+ },
404
+ impact: {
405
+ type: 'object',
406
+ properties: {
407
+ filesAffected: { type: 'number' },
408
+ breakingChanges: { type: 'boolean' },
409
+ testsNeeded: { type: 'boolean' },
410
+ },
411
+ },
412
+ },
413
+ },
414
+ },
415
+ 'architecture-decision': {
416
+ name: 'architecture-decision',
417
+ description: 'Architecture Decision Record (ADR)',
418
+ version: '1.0.0',
419
+ tags: ['architecture', 'decision'],
420
+ schema: {
421
+ type: 'object',
422
+ required: ['title', 'status', 'context', 'decision', 'consequences'],
423
+ properties: {
424
+ title: { type: 'string' },
425
+ status: { type: 'string', enum: ['proposed', 'accepted', 'deprecated', 'superseded'] },
426
+ context: { type: 'string' },
427
+ decision: { type: 'string' },
428
+ alternatives: {
429
+ type: 'array',
430
+ items: {
431
+ type: 'object',
432
+ properties: {
433
+ name: { type: 'string' },
434
+ pros: { type: 'array', items: { type: 'string' } },
435
+ cons: { type: 'array', items: { type: 'string' } },
436
+ },
437
+ },
438
+ },
439
+ consequences: {
440
+ type: 'object',
441
+ properties: {
442
+ positive: { type: 'array', items: { type: 'string' } },
443
+ negative: { type: 'array', items: { type: 'string' } },
444
+ neutral: { type: 'array', items: { type: 'string' } },
445
+ },
446
+ },
447
+ },
448
+ },
449
+ },
450
+ 'error-analysis': {
451
+ name: 'error-analysis',
452
+ description: 'Error/bug analysis report',
453
+ version: '1.0.0',
454
+ tags: ['debugging', 'error'],
455
+ schema: {
456
+ type: 'object',
457
+ required: ['error', 'rootCause', 'fix'],
458
+ properties: {
459
+ error: {
460
+ type: 'object',
461
+ properties: {
462
+ message: { type: 'string' },
463
+ stack: { type: 'string' },
464
+ file: { type: 'string' },
465
+ line: { type: 'number' },
466
+ },
467
+ },
468
+ rootCause: { type: 'string' },
469
+ fix: {
470
+ type: 'object',
471
+ properties: {
472
+ description: { type: 'string' },
473
+ code: { type: 'string' },
474
+ file: { type: 'string' },
475
+ },
476
+ },
477
+ prevention: { type: 'string' },
478
+ relatedIssues: { type: 'array', items: { type: 'string' } },
479
+ },
480
+ },
481
+ },
482
+ };
483
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/schemas/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * PhantomMindAI — Template Engine
3
+ * Renders mustache-like templates with project data.
4
+ */
5
+ export interface TemplateData {
6
+ projectName: string;
7
+ projectType: string;
8
+ primaryLanguage: string;
9
+ framework: string;
10
+ timestamp: string;
11
+ techStack: string[];
12
+ architectureDescription: string;
13
+ directoryStructure: string;
14
+ namingConventions: string[];
15
+ importPatterns: string[];
16
+ codeStyle: string[];
17
+ commonPatterns: Array<{
18
+ name: string;
19
+ description: string;
20
+ }>;
21
+ antiPatterns: string[];
22
+ keyFiles: Array<{
23
+ path: string;
24
+ description: string;
25
+ }>;
26
+ dependencies: Array<{
27
+ name: string;
28
+ version: string;
29
+ description: string;
30
+ }>;
31
+ devDependencies: Array<{
32
+ name: string;
33
+ version: string;
34
+ }>;
35
+ testFramework: string;
36
+ testCommand: string;
37
+ testPattern: string;
38
+ buildCommand: string;
39
+ devCommand: string;
40
+ deployTarget: string;
41
+ additionalContext: string;
42
+ languageRules: string[];
43
+ frameworkRules: string[];
44
+ fileOrganization: string[];
45
+ importRules: string[];
46
+ testingRules: string[];
47
+ branchNaming: string;
48
+ commitFormat: string;
49
+ prRequirements: string;
50
+ securityRules: string[];
51
+ performanceRules: string[];
52
+ documentationRules: string[];
53
+ forbiddenPatterns: string[];
54
+ customRules: string[];
55
+ }
56
+ export declare class TemplateEngine {
57
+ /**
58
+ * Render a template with data
59
+ */
60
+ static render(template: string, data: Partial<TemplateData>): string;
61
+ /**
62
+ * Load and render the SKILLS template
63
+ */
64
+ static renderSkills(data: Partial<TemplateData>): Promise<string>;
65
+ /**
66
+ * Load and render the RULES template
67
+ */
68
+ static renderRules(data: Partial<TemplateData>): Promise<string>;
69
+ }
70
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/templates/engine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,uBAAuB,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E,eAAe,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAE1B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,qBAAa,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM;IA8CpE;;OAEG;WACU,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IASvE;;OAEG;WACU,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;CAQvE"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * PhantomMindAI — Template Engine
3
+ * Renders mustache-like templates with project data.
4
+ */
5
+ import { readFile } from 'node:fs/promises';
6
+ import { join, dirname } from 'node:path';
7
+ import { fileURLToPath } from 'node:url';
8
+ const __dirname = dirname(fileURLToPath(import.meta.url));
9
+ export class TemplateEngine {
10
+ /**
11
+ * Render a template with data
12
+ */
13
+ static render(template, data) {
14
+ let result = template;
15
+ // Handle array sections {{#key}}...{{/key}}
16
+ result = result.replace(/\{\{#(\w+)\}\}([\s\S]*?)\{\{\/\1\}\}/g, (_, key, content) => {
17
+ const value = data[key];
18
+ if (!value)
19
+ return '';
20
+ if (Array.isArray(value)) {
21
+ return value.map(item => {
22
+ if (typeof item === 'string') {
23
+ return content.replace(/\{\{\.\}\}/g, item);
24
+ }
25
+ if (typeof item === 'object') {
26
+ let rendered = content;
27
+ for (const [k, v] of Object.entries(item)) {
28
+ rendered = rendered.replace(new RegExp(`\\{\\{${k}\\}\\}`, 'g'), String(v));
29
+ }
30
+ return rendered;
31
+ }
32
+ return content;
33
+ }).join('');
34
+ }
35
+ return value ? content : '';
36
+ });
37
+ // Handle simple variables {{key}}
38
+ result = result.replace(/\{\{(\w+)\}\}/g, (_, key) => {
39
+ const value = data[key];
40
+ if (value === undefined || value === null)
41
+ return '';
42
+ return String(value);
43
+ });
44
+ // Clean up empty lines from removed sections
45
+ result = result.replace(/\n{3,}/g, '\n\n');
46
+ return result;
47
+ }
48
+ /**
49
+ * Load and render the SKILLS template
50
+ */
51
+ static async renderSkills(data) {
52
+ const templatePath = join(__dirname, 'SKILLS.template.md');
53
+ const template = await readFile(templatePath, 'utf-8');
54
+ return this.render(template, {
55
+ ...data,
56
+ timestamp: new Date().toISOString(),
57
+ });
58
+ }
59
+ /**
60
+ * Load and render the RULES template
61
+ */
62
+ static async renderRules(data) {
63
+ const templatePath = join(__dirname, 'RULES.template.md');
64
+ const template = await readFile(templatePath, 'utf-8');
65
+ return this.render(template, {
66
+ ...data,
67
+ timestamp: new Date().toISOString(),
68
+ });
69
+ }
70
+ }
71
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/templates/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { TemplateEngine, type TemplateData } from './engine.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { TemplateEngine } from './engine.js';
2
+ //# sourceMappingURL=index.js.map