@specverse/engines 4.3.5 → 5.0.1

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