@specverse/engines 4.3.4 → 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 (66) 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/scaffolding/templates/generic/package-json-generator.js +1 -1
  16. package/dist/libs/instance-factories/tools/README.md +1 -1
  17. package/dist/libs/instance-factories/tools/mcp.yaml +1 -1
  18. package/dist/libs/instance-factories/tools/templates/mcp/mcp-server-generator.js +336 -116
  19. package/dist/libs/instance-factories/tools/templates/vscode/vscode-extension-generator.js +172 -8
  20. package/dist/libs/instance-factories/tools/vscode.yaml +1 -1
  21. package/libs/instance-factories/cli/templates/commander/command-generator.ts +27 -5
  22. package/libs/instance-factories/scaffolding/templates/generic/package-json-generator.ts +10 -6
  23. package/libs/instance-factories/tools/README.md +1 -1
  24. package/libs/instance-factories/tools/mcp.yaml +1 -1
  25. package/libs/instance-factories/tools/templates/mcp/mcp-server-generator.ts +386 -141
  26. package/libs/instance-factories/tools/templates/vscode/static/extension.ts +9 -2
  27. package/libs/instance-factories/tools/templates/vscode/vscode-extension-generator.ts +246 -10
  28. package/libs/instance-factories/tools/vscode.yaml +1 -1
  29. package/package.json +5 -4
  30. package/libs/instance-factories/tools/templates/mcp/static/docs/DEPLOYMENT_GUIDE.md +0 -630
  31. package/libs/instance-factories/tools/templates/mcp/static/docs/HYBRID_RESOURCE_SYSTEM.md +0 -330
  32. package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/EXTENSION_DEPLOYMENT.md +0 -552
  33. package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/LOCAL_DEPLOYMENT.md +0 -164
  34. package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/WEB_DEPLOYMENT.md +0 -247
  35. package/libs/instance-factories/tools/templates/mcp/static/package.json +0 -94
  36. package/libs/instance-factories/tools/templates/mcp/static/scripts/build-enterprise.js +0 -284
  37. package/libs/instance-factories/tools/templates/mcp/static/scripts/build-extension.js +0 -139
  38. package/libs/instance-factories/tools/templates/mcp/static/scripts/build-local.js +0 -74
  39. package/libs/instance-factories/tools/templates/mcp/static/scripts/build-web.js +0 -156
  40. package/libs/instance-factories/tools/templates/mcp/static/scripts/copy-canonical-files.js +0 -41
  41. package/libs/instance-factories/tools/templates/mcp/static/scripts/test-deployments.js +0 -259
  42. package/libs/instance-factories/tools/templates/mcp/static/scripts/test-hybrid-resources.js +0 -231
  43. package/libs/instance-factories/tools/templates/mcp/static/scripts/test-hybrid-simple.js +0 -196
  44. package/libs/instance-factories/tools/templates/mcp/static/src/controllers/MCPServerController.ts +0 -293
  45. package/libs/instance-factories/tools/templates/mcp/static/src/events/EventEmitter.ts +0 -90
  46. package/libs/instance-factories/tools/templates/mcp/static/src/index.ts +0 -24
  47. package/libs/instance-factories/tools/templates/mcp/static/src/interfaces/ResourceProvider.ts +0 -15
  48. package/libs/instance-factories/tools/templates/mcp/static/src/models/LibrarySuggestion.ts +0 -106
  49. package/libs/instance-factories/tools/templates/mcp/static/src/models/SpecVerseResource.ts +0 -75
  50. package/libs/instance-factories/tools/templates/mcp/static/src/server/mcp-server.ts +0 -239
  51. package/libs/instance-factories/tools/templates/mcp/static/src/services/CLIProxyService.ts +0 -1501
  52. package/libs/instance-factories/tools/templates/mcp/static/src/services/EmbeddedResourcesAdapter.ts +0 -211
  53. package/libs/instance-factories/tools/templates/mcp/static/src/services/EntityModuleService.ts +0 -308
  54. package/libs/instance-factories/tools/templates/mcp/static/src/services/HybridResourcesProvider.ts +0 -210
  55. package/libs/instance-factories/tools/templates/mcp/static/src/services/LibraryToolsService.ts +0 -356
  56. package/libs/instance-factories/tools/templates/mcp/static/src/services/OrchestratorBridge.ts +0 -522
  57. package/libs/instance-factories/tools/templates/mcp/static/src/services/OrchestratorToolsService.ts +0 -530
  58. package/libs/instance-factories/tools/templates/mcp/static/src/services/PromptToolsService.ts +0 -594
  59. package/libs/instance-factories/tools/templates/mcp/static/src/services/ResourcesProviderService.ts +0 -170
  60. package/libs/instance-factories/tools/templates/mcp/static/src/tests/unit/CLIProxyService.init.test.ts +0 -544
  61. package/libs/instance-factories/tools/templates/mcp/static/src/tests/unit/CLIProxyService.test.ts +0 -189
  62. package/libs/instance-factories/tools/templates/mcp/static/src/tests/unit/ResourcesProviderService.test.ts +0 -89
  63. package/libs/instance-factories/tools/templates/mcp/static/src/types/index.ts +0 -110
  64. package/libs/instance-factories/tools/templates/mcp/static/tsconfig.json +0 -28
  65. package/libs/instance-factories/tools/templates/vscode/static/schemas/specverse-v3-schema.json +0 -4279
  66. /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
- }