@specverse/engines 4.3.5 → 5.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 (64) hide show
  1. package/assets/examples/10-api/README.md +3 -3
  2. package/assets/prompts/core/README.md +1 -1
  3. package/dist/inference/core/rule-engine.d.ts +0 -12
  4. package/dist/inference/core/rule-engine.d.ts.map +1 -1
  5. package/dist/inference/core/rule-engine.js +99 -968
  6. package/dist/inference/core/rule-engine.js.map +1 -1
  7. package/dist/inference/core/template-helpers.d.ts +56 -0
  8. package/dist/inference/core/template-helpers.d.ts.map +1 -0
  9. package/dist/inference/core/template-helpers.js +87 -0
  10. package/dist/inference/core/template-helpers.js.map +1 -0
  11. package/dist/inference/logical/generators/service-generator.d.ts.map +1 -1
  12. package/dist/inference/logical/generators/service-generator.js +0 -4
  13. package/dist/inference/logical/generators/service-generator.js.map +1 -1
  14. package/dist/libs/instance-factories/cli/templates/commander/command-generator.js +27 -5
  15. package/dist/libs/instance-factories/tools/README.md +1 -1
  16. package/dist/libs/instance-factories/tools/mcp.yaml +1 -1
  17. package/dist/libs/instance-factories/tools/templates/mcp/mcp-server-generator.js +336 -116
  18. package/dist/libs/instance-factories/tools/templates/vscode/vscode-extension-generator.js +172 -8
  19. package/dist/libs/instance-factories/tools/vscode.yaml +1 -1
  20. package/libs/instance-factories/cli/templates/commander/command-generator.ts +27 -5
  21. package/libs/instance-factories/tools/README.md +1 -1
  22. package/libs/instance-factories/tools/mcp.yaml +1 -1
  23. package/libs/instance-factories/tools/templates/mcp/mcp-server-generator.ts +386 -141
  24. package/libs/instance-factories/tools/templates/vscode/static/extension.ts +9 -2
  25. package/libs/instance-factories/tools/templates/vscode/vscode-extension-generator.ts +246 -10
  26. package/libs/instance-factories/tools/vscode.yaml +1 -1
  27. package/package.json +5 -4
  28. package/libs/instance-factories/tools/templates/mcp/static/docs/DEPLOYMENT_GUIDE.md +0 -630
  29. package/libs/instance-factories/tools/templates/mcp/static/docs/HYBRID_RESOURCE_SYSTEM.md +0 -330
  30. package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/EXTENSION_DEPLOYMENT.md +0 -552
  31. package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/LOCAL_DEPLOYMENT.md +0 -164
  32. package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/WEB_DEPLOYMENT.md +0 -247
  33. package/libs/instance-factories/tools/templates/mcp/static/package.json +0 -94
  34. package/libs/instance-factories/tools/templates/mcp/static/scripts/build-enterprise.js +0 -284
  35. package/libs/instance-factories/tools/templates/mcp/static/scripts/build-extension.js +0 -139
  36. package/libs/instance-factories/tools/templates/mcp/static/scripts/build-local.js +0 -74
  37. package/libs/instance-factories/tools/templates/mcp/static/scripts/build-web.js +0 -156
  38. package/libs/instance-factories/tools/templates/mcp/static/scripts/copy-canonical-files.js +0 -41
  39. package/libs/instance-factories/tools/templates/mcp/static/scripts/test-deployments.js +0 -259
  40. package/libs/instance-factories/tools/templates/mcp/static/scripts/test-hybrid-resources.js +0 -231
  41. package/libs/instance-factories/tools/templates/mcp/static/scripts/test-hybrid-simple.js +0 -196
  42. package/libs/instance-factories/tools/templates/mcp/static/src/controllers/MCPServerController.ts +0 -293
  43. package/libs/instance-factories/tools/templates/mcp/static/src/events/EventEmitter.ts +0 -90
  44. package/libs/instance-factories/tools/templates/mcp/static/src/index.ts +0 -24
  45. package/libs/instance-factories/tools/templates/mcp/static/src/interfaces/ResourceProvider.ts +0 -15
  46. package/libs/instance-factories/tools/templates/mcp/static/src/models/LibrarySuggestion.ts +0 -106
  47. package/libs/instance-factories/tools/templates/mcp/static/src/models/SpecVerseResource.ts +0 -75
  48. package/libs/instance-factories/tools/templates/mcp/static/src/server/mcp-server.ts +0 -239
  49. package/libs/instance-factories/tools/templates/mcp/static/src/services/CLIProxyService.ts +0 -1501
  50. package/libs/instance-factories/tools/templates/mcp/static/src/services/EmbeddedResourcesAdapter.ts +0 -211
  51. package/libs/instance-factories/tools/templates/mcp/static/src/services/EntityModuleService.ts +0 -308
  52. package/libs/instance-factories/tools/templates/mcp/static/src/services/HybridResourcesProvider.ts +0 -210
  53. package/libs/instance-factories/tools/templates/mcp/static/src/services/LibraryToolsService.ts +0 -356
  54. package/libs/instance-factories/tools/templates/mcp/static/src/services/OrchestratorBridge.ts +0 -522
  55. package/libs/instance-factories/tools/templates/mcp/static/src/services/OrchestratorToolsService.ts +0 -530
  56. package/libs/instance-factories/tools/templates/mcp/static/src/services/PromptToolsService.ts +0 -594
  57. package/libs/instance-factories/tools/templates/mcp/static/src/services/ResourcesProviderService.ts +0 -170
  58. package/libs/instance-factories/tools/templates/mcp/static/src/tests/unit/CLIProxyService.init.test.ts +0 -544
  59. package/libs/instance-factories/tools/templates/mcp/static/src/tests/unit/CLIProxyService.test.ts +0 -189
  60. package/libs/instance-factories/tools/templates/mcp/static/src/tests/unit/ResourcesProviderService.test.ts +0 -89
  61. package/libs/instance-factories/tools/templates/mcp/static/src/types/index.ts +0 -110
  62. package/libs/instance-factories/tools/templates/mcp/static/tsconfig.json +0 -28
  63. package/libs/instance-factories/tools/templates/vscode/static/schemas/specverse-v3-schema.json +0 -4279
  64. /package/libs/instance-factories/tools/templates/vscode/static/themes/{specverse-complete-theme.json → specverse-dark-theme.json} +0 -0
@@ -1,530 +0,0 @@
1
- /**
2
- * Orchestrator Tools Service for MCP Integration
3
- *
4
- * Provides orchestrator workflow capabilities as MCP tools
5
- */
6
-
7
- import { OrchestratorBridge, OrchestratorExecutionContext } from './OrchestratorBridge.js';
8
- import { EventEmitter } from '../events/EventEmitter.js';
9
-
10
- export interface OrchestratorToolsConfig {
11
- orchestratorBridge: OrchestratorBridge;
12
- eventEmitter: EventEmitter;
13
- }
14
-
15
- export interface AnalyseCodebaseParams {
16
- codePath: string;
17
- framework?: string;
18
- outputPath?: string;
19
- interactive?: boolean;
20
- }
21
-
22
- export interface CreateSpecificationParams {
23
- requirements: string;
24
- scale?: 'personal' | 'business' | 'enterprise';
25
- framework?: string;
26
- outputPath?: string;
27
- interactive?: boolean;
28
- }
29
-
30
- export interface InferSpecificationParams {
31
- specificationPath: string;
32
- outputPath?: string;
33
- framework?: string;
34
- }
35
-
36
- export interface MaterialiseImplementationParams {
37
- specificationPath: string;
38
- framework: string;
39
- outputPath?: string;
40
- scale?: 'personal' | 'business' | 'enterprise';
41
- interactive?: boolean;
42
- }
43
-
44
- export interface RealizeApplicationParams {
45
- specificationPath: string;
46
- framework: string;
47
- outputPath?: string;
48
- scale?: 'personal' | 'business' | 'enterprise';
49
- interactive?: boolean;
50
- }
51
-
52
- export interface WorkflowStatusParams {
53
- sessionId?: string;
54
- }
55
-
56
- export class OrchestratorToolsService {
57
- private orchestratorBridge: OrchestratorBridge;
58
- private eventEmitter: EventEmitter;
59
-
60
- constructor(config: OrchestratorToolsConfig) {
61
- this.orchestratorBridge = config.orchestratorBridge;
62
- this.eventEmitter = config.eventEmitter;
63
- }
64
-
65
- /**
66
- * Analyze existing codebase and extract SpecVerse specifications
67
- */
68
- async analyseCodebase(params: AnalyseCodebaseParams): Promise<string> {
69
- this.eventEmitter.emit('tool-called', {
70
- toolName: 'analyse_codebase',
71
- arguments: params,
72
- executionTime: 0
73
- });
74
-
75
- try {
76
- const context: OrchestratorExecutionContext = {
77
- operation: 'analyse',
78
- inputPath: params.codePath,
79
- inputType: 'code',
80
- outputPath: params.outputPath,
81
- framework: params.framework,
82
- interactive: params.interactive || false
83
- };
84
-
85
- const result = await this.orchestratorBridge.execute(context);
86
-
87
- if (result.success) {
88
- const response = {
89
- operation: 'analyse',
90
- success: true,
91
- result: result.content,
92
- metadata: {
93
- codePath: params.codePath,
94
- framework: params.framework || 'auto-detected',
95
- outputPath: params.outputPath,
96
- executionTime: result.executionTime,
97
- provider: result.provider,
98
- sessionId: result.sessionId
99
- }
100
- };
101
-
102
- if (result.sessionId) {
103
- response.metadata.sessionId = result.sessionId;
104
- }
105
-
106
- return JSON.stringify(response, null, 2);
107
- } else {
108
- const errorResponse = {
109
- operation: 'analyse',
110
- success: false,
111
- error: result.error,
112
- metadata: {
113
- codePath: params.codePath,
114
- executionTime: result.executionTime
115
- }
116
- };
117
-
118
- return JSON.stringify(errorResponse, null, 2);
119
- }
120
-
121
- } catch (error) {
122
- const errorMessage = error instanceof Error ? error.message : String(error);
123
-
124
- this.eventEmitter.emit('error-occurred', {
125
- operation: 'analyse_codebase',
126
- error: errorMessage,
127
- context: params
128
- });
129
-
130
- const errorResponse = {
131
- operation: 'analyse',
132
- success: false,
133
- error: errorMessage,
134
- metadata: {
135
- codePath: params.codePath
136
- }
137
- };
138
-
139
- return JSON.stringify(errorResponse, null, 2);
140
- }
141
- }
142
-
143
- /**
144
- * Create SpecVerse specifications from natural language requirements
145
- */
146
- async createSpecification(params: CreateSpecificationParams): Promise<string> {
147
- this.eventEmitter.emit('tool-called', {
148
- toolName: 'create_specification',
149
- arguments: params,
150
- executionTime: 0
151
- });
152
-
153
- try {
154
- const context: OrchestratorExecutionContext = {
155
- operation: 'create',
156
- input: params.requirements,
157
- inputType: 'requirements',
158
- outputPath: params.outputPath,
159
- framework: params.framework,
160
- scale: params.scale || 'business',
161
- interactive: params.interactive || false
162
- };
163
-
164
- const result = await this.orchestratorBridge.execute(context);
165
-
166
- if (result.success) {
167
- const response = {
168
- operation: 'create',
169
- success: true,
170
- result: result.content,
171
- metadata: {
172
- requirements: params.requirements,
173
- scale: params.scale || 'business',
174
- framework: params.framework,
175
- outputPath: params.outputPath,
176
- executionTime: result.executionTime,
177
- provider: result.provider,
178
- sessionId: result.sessionId
179
- }
180
- };
181
-
182
- return JSON.stringify(response, null, 2);
183
- } else {
184
- const errorResponse = {
185
- operation: 'create',
186
- success: false,
187
- error: result.error,
188
- metadata: {
189
- requirements: params.requirements,
190
- executionTime: result.executionTime
191
- }
192
- };
193
-
194
- return JSON.stringify(errorResponse, null, 2);
195
- }
196
-
197
- } catch (error) {
198
- const errorMessage = error instanceof Error ? error.message : String(error);
199
-
200
- this.eventEmitter.emit('error-occurred', {
201
- operation: 'create_specification',
202
- error: errorMessage,
203
- context: params
204
- });
205
-
206
- const errorResponse = {
207
- operation: 'create',
208
- success: false,
209
- error: errorMessage,
210
- metadata: {
211
- requirements: params.requirements
212
- }
213
- };
214
-
215
- return JSON.stringify(errorResponse, null, 2);
216
- }
217
- }
218
-
219
- /**
220
- * Infer expanded specifications using AI inference engine
221
- */
222
- async inferSpecification(params: InferSpecificationParams): Promise<string> {
223
- this.eventEmitter.emit('tool-called', {
224
- toolName: 'infer_specification',
225
- arguments: params,
226
- executionTime: 0
227
- });
228
-
229
- try {
230
- // Check if inference is available
231
- const capabilities = this.orchestratorBridge.getCapabilities();
232
- if (!capabilities.inferenceEngine) {
233
- const fallbackResponse = {
234
- operation: 'infer',
235
- success: false,
236
- error: 'Inference operation requires full SpecVerse orchestrator with inference engine',
237
- suggestion: 'Use get_creation_prompt or get_analysis_prompt tools for AI-assisted specification development',
238
- metadata: {
239
- specificationPath: params.specificationPath,
240
- availableCapabilities: capabilities
241
- }
242
- };
243
-
244
- return JSON.stringify(fallbackResponse, null, 2);
245
- }
246
-
247
- const context: OrchestratorExecutionContext = {
248
- operation: 'infer',
249
- inputPath: params.specificationPath,
250
- inputType: 'specification',
251
- outputPath: params.outputPath,
252
- framework: params.framework
253
- };
254
-
255
- const result = await this.orchestratorBridge.execute(context);
256
-
257
- if (result.success) {
258
- const response = {
259
- operation: 'infer',
260
- success: true,
261
- result: result.content,
262
- metadata: {
263
- specificationPath: params.specificationPath,
264
- outputPath: params.outputPath,
265
- framework: params.framework,
266
- executionTime: result.executionTime,
267
- inferenceRules: result.metadata?.inferenceRules,
268
- provider: result.provider
269
- }
270
- };
271
-
272
- return JSON.stringify(response, null, 2);
273
- } else {
274
- const errorResponse = {
275
- operation: 'infer',
276
- success: false,
277
- error: result.error,
278
- metadata: {
279
- specificationPath: params.specificationPath,
280
- executionTime: result.executionTime
281
- }
282
- };
283
-
284
- return JSON.stringify(errorResponse, null, 2);
285
- }
286
-
287
- } catch (error) {
288
- const errorMessage = error instanceof Error ? error.message : String(error);
289
-
290
- this.eventEmitter.emit('error-occurred', {
291
- operation: 'infer_specification',
292
- error: errorMessage,
293
- context: params
294
- });
295
-
296
- const errorResponse = {
297
- operation: 'infer',
298
- success: false,
299
- error: errorMessage,
300
- metadata: {
301
- specificationPath: params.specificationPath
302
- }
303
- };
304
-
305
- return JSON.stringify(errorResponse, null, 2);
306
- }
307
- }
308
-
309
- /**
310
- * Materialize clean implementation from specifications
311
- */
312
- async materialiseImplementation(params: MaterialiseImplementationParams): Promise<string> {
313
- this.eventEmitter.emit('tool-called', {
314
- toolName: 'materialise_implementation',
315
- arguments: params,
316
- executionTime: 0
317
- });
318
-
319
- try {
320
- const context: OrchestratorExecutionContext = {
321
- operation: 'materialise',
322
- inputPath: params.specificationPath,
323
- inputType: 'specification',
324
- outputPath: params.outputPath,
325
- framework: params.framework,
326
- scale: params.scale || 'business',
327
- interactive: params.interactive || false
328
- };
329
-
330
- const result = await this.orchestratorBridge.execute(context);
331
-
332
- if (result.success) {
333
- const response = {
334
- operation: 'materialise',
335
- success: true,
336
- result: result.content,
337
- metadata: {
338
- specificationPath: params.specificationPath,
339
- framework: params.framework,
340
- scale: params.scale || 'business',
341
- outputPath: params.outputPath,
342
- executionTime: result.executionTime,
343
- provider: result.provider,
344
- sessionId: result.sessionId
345
- }
346
- };
347
-
348
- return JSON.stringify(response, null, 2);
349
- } else {
350
- const errorResponse = {
351
- operation: 'materialise',
352
- success: false,
353
- error: result.error,
354
- metadata: {
355
- specificationPath: params.specificationPath,
356
- framework: params.framework,
357
- executionTime: result.executionTime
358
- }
359
- };
360
-
361
- return JSON.stringify(errorResponse, null, 2);
362
- }
363
-
364
- } catch (error) {
365
- const errorMessage = error instanceof Error ? error.message : String(error);
366
-
367
- this.eventEmitter.emit('error-occurred', {
368
- operation: 'materialise_implementation',
369
- error: errorMessage,
370
- context: params
371
- });
372
-
373
- const errorResponse = {
374
- operation: 'materialise',
375
- success: false,
376
- error: errorMessage,
377
- metadata: {
378
- specificationPath: params.specificationPath,
379
- framework: params.framework
380
- }
381
- };
382
-
383
- return JSON.stringify(errorResponse, null, 2);
384
- }
385
- }
386
-
387
- /**
388
- * Realize complete application from specifications
389
- */
390
- async realizeApplication(params: RealizeApplicationParams): Promise<string> {
391
- this.eventEmitter.emit('tool-called', {
392
- toolName: 'realize_application',
393
- arguments: params,
394
- executionTime: 0
395
- });
396
-
397
- try {
398
- const context: OrchestratorExecutionContext = {
399
- operation: 'realize',
400
- inputPath: params.specificationPath,
401
- inputType: 'specification',
402
- outputPath: params.outputPath,
403
- framework: params.framework,
404
- scale: params.scale || 'business',
405
- interactive: params.interactive || false
406
- };
407
-
408
- const result = await this.orchestratorBridge.execute(context);
409
-
410
- if (result.success) {
411
- const response = {
412
- operation: 'realize',
413
- success: true,
414
- result: result.content,
415
- metadata: {
416
- specificationPath: params.specificationPath,
417
- framework: params.framework,
418
- scale: params.scale || 'business',
419
- outputPath: params.outputPath,
420
- executionTime: result.executionTime,
421
- provider: result.provider,
422
- sessionId: result.sessionId
423
- }
424
- };
425
-
426
- return JSON.stringify(response, null, 2);
427
- } else {
428
- const errorResponse = {
429
- operation: 'realize',
430
- success: false,
431
- error: result.error,
432
- metadata: {
433
- specificationPath: params.specificationPath,
434
- framework: params.framework,
435
- executionTime: result.executionTime
436
- }
437
- };
438
-
439
- return JSON.stringify(errorResponse, null, 2);
440
- }
441
-
442
- } catch (error) {
443
- const errorMessage = error instanceof Error ? error.message : String(error);
444
-
445
- this.eventEmitter.emit('error-occurred', {
446
- operation: 'realize_application',
447
- error: errorMessage,
448
- context: params
449
- });
450
-
451
- const errorResponse = {
452
- operation: 'realize',
453
- success: false,
454
- error: errorMessage,
455
- metadata: {
456
- specificationPath: params.specificationPath,
457
- framework: params.framework
458
- }
459
- };
460
-
461
- return JSON.stringify(errorResponse, null, 2);
462
- }
463
- }
464
-
465
- /**
466
- * Get orchestrator workflow status and capabilities
467
- */
468
- async getWorkflowStatus(params: WorkflowStatusParams = {}): Promise<string> {
469
- this.eventEmitter.emit('tool-called', {
470
- toolName: 'get_workflow_status',
471
- arguments: params,
472
- executionTime: 0
473
- });
474
-
475
- try {
476
- const capabilities = this.orchestratorBridge.getCapabilities();
477
- const isAvailable = this.orchestratorBridge.isAvailable();
478
- const supportedOperations = this.orchestratorBridge.getSupportedOperations();
479
-
480
- const status = {
481
- orchestratorAvailable: isAvailable,
482
- capabilities,
483
- supportedOperations,
484
- workflowInformation: {
485
- fullWorkflowSupport: capabilities.hasFullOrchestrator,
486
- sessionSupport: capabilities.sessionSupport,
487
- inferenceEngine: capabilities.inferenceEngine,
488
- workingDirectory: capabilities.workingDirectory,
489
- ...(params.sessionId ? {
490
- sessionId: params.sessionId,
491
- sessionStatus: 'Session support requires full orchestrator'
492
- } : {})
493
- }
494
- };
495
-
496
- const response = {
497
- operation: 'workflow_status',
498
- success: true,
499
- result: status,
500
- metadata: {
501
- queryTime: Date.now(),
502
- hasFullOrchestrator: capabilities.hasFullOrchestrator,
503
- availableOperations: supportedOperations.length
504
- }
505
- };
506
-
507
- return JSON.stringify(response, null, 2);
508
-
509
- } catch (error) {
510
- const errorMessage = error instanceof Error ? error.message : String(error);
511
-
512
- this.eventEmitter.emit('error-occurred', {
513
- operation: 'get_workflow_status',
514
- error: errorMessage,
515
- context: params
516
- });
517
-
518
- const errorResponse = {
519
- operation: 'workflow_status',
520
- success: false,
521
- error: errorMessage,
522
- metadata: {
523
- queryTime: Date.now()
524
- }
525
- };
526
-
527
- return JSON.stringify(errorResponse, null, 2);
528
- }
529
- }
530
- }