@specverse/engines 4.1.19 → 4.1.21
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.
- package/dist/ai/behavior-regenerate.d.ts +24 -0
- package/dist/ai/behavior-regenerate.d.ts.map +1 -0
- package/dist/ai/behavior-regenerate.js +41 -0
- package/dist/ai/behavior-regenerate.js.map +1 -0
- package/dist/ai/index.d.ts +2 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +3 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/libs/instance-factories/applications/templates/react/package-json-generator.js +1 -1
- package/dist/libs/instance-factories/applications/templates/react/runtime-package-json-generator.js +1 -1
- package/dist/libs/instance-factories/cli/templates/commander/command-generator.js +81 -0
- package/dist/libs/instance-factories/services/templates/prisma/ai-behaviors-generator.js +153 -3
- package/dist/libs/instance-factories/tools/templates/vscode/vscode-extension-generator.js +7 -1
- package/dist/libs/instance-factories/tools/templates/vscode/vscode-extension-generator.js.bak +244 -0
- package/dist/realize/index.js.bak +758 -0
- package/libs/instance-factories/applications/templates/react/package-json-generator.ts +1 -1
- package/libs/instance-factories/applications/templates/react/runtime-package-json-generator.ts +1 -1
- package/libs/instance-factories/cli/templates/commander/command-generator.ts +81 -0
- package/libs/instance-factories/services/templates/prisma/ai-behaviors-generator.ts +213 -2
- package/libs/instance-factories/tools/templates/mcp/static/package.json +2 -2
- package/libs/instance-factories/tools/templates/vscode/vscode-extension-generator.ts +7 -1
- package/package.json +1 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Behavior Regeneration
|
|
3
|
+
*
|
|
4
|
+
* Thin wrapper around the ai-behaviors-generator's regenerateAiBehaviors
|
|
5
|
+
* helper. Published via @specverse/engines/ai so the generated CLI can
|
|
6
|
+
* call it without reaching into libs/ paths.
|
|
7
|
+
*
|
|
8
|
+
* Used by `specverse ai regenerate <Owner.fn>`.
|
|
9
|
+
*/
|
|
10
|
+
export interface RegenerateBehaviorOptions {
|
|
11
|
+
spec: any;
|
|
12
|
+
ownerName: string;
|
|
13
|
+
targetFunction: string | null;
|
|
14
|
+
outputDir: string;
|
|
15
|
+
allFunctions?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface RegenerateBehaviorResult {
|
|
18
|
+
filePath: string;
|
|
19
|
+
targetFound: boolean;
|
|
20
|
+
unmatchedCount: number;
|
|
21
|
+
cacheCleared: number;
|
|
22
|
+
}
|
|
23
|
+
export declare function regenerateBehavior(opts: RegenerateBehaviorOptions): Promise<RegenerateBehaviorResult>;
|
|
24
|
+
//# sourceMappingURL=behavior-regenerate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"behavior-regenerate.d.ts","sourceRoot":"","sources":["../../src/ai/behavior-regenerate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,GAAG,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAuBD,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,wBAAwB,CAAC,CASnC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Behavior Regeneration
|
|
3
|
+
*
|
|
4
|
+
* Thin wrapper around the ai-behaviors-generator's regenerateAiBehaviors
|
|
5
|
+
* helper. Published via @specverse/engines/ai so the generated CLI can
|
|
6
|
+
* call it without reaching into libs/ paths.
|
|
7
|
+
*
|
|
8
|
+
* Used by `specverse ai regenerate <Owner.fn>`.
|
|
9
|
+
*/
|
|
10
|
+
import { existsSync } from 'fs';
|
|
11
|
+
import { join, dirname } from 'path';
|
|
12
|
+
import { fileURLToPath } from 'url';
|
|
13
|
+
/**
|
|
14
|
+
* Load the AI behaviors generator module dynamically — it lives under
|
|
15
|
+
* engines/libs/ (not src/) and has to be loaded from the compiled .js in
|
|
16
|
+
* dist/libs/ at runtime because the template is compiled separately.
|
|
17
|
+
*/
|
|
18
|
+
async function loadGenerator() {
|
|
19
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
20
|
+
// dist/ai/ → dist/libs/instance-factories/services/templates/prisma/
|
|
21
|
+
const candidates = [
|
|
22
|
+
join(__dirname, '..', 'libs', 'instance-factories', 'services', 'templates', 'prisma', 'ai-behaviors-generator.js'),
|
|
23
|
+
// Fallback: uncompiled .ts source (only works in dev)
|
|
24
|
+
join(__dirname, '..', '..', 'libs', 'instance-factories', 'services', 'templates', 'prisma', 'ai-behaviors-generator.ts'),
|
|
25
|
+
];
|
|
26
|
+
for (const path of candidates) {
|
|
27
|
+
if (existsSync(path)) {
|
|
28
|
+
return await import(path);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
throw new Error('ai-behaviors-generator not found — is @specverse/engines installed correctly?');
|
|
32
|
+
}
|
|
33
|
+
export async function regenerateBehavior(opts) {
|
|
34
|
+
const mod = await loadGenerator();
|
|
35
|
+
if (typeof mod.regenerateAiBehaviors !== 'function') {
|
|
36
|
+
throw new Error('regenerateAiBehaviors helper not found in @specverse/engines. ' +
|
|
37
|
+
'Upgrade to engines >= 4.1.21.');
|
|
38
|
+
}
|
|
39
|
+
return mod.regenerateAiBehaviors(opts);
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=behavior-regenerate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"behavior-regenerate.js","sourceRoot":"","sources":["../../src/ai/behavior-regenerate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAiBpC;;;;GAIG;AACH,KAAK,UAAU,aAAa;IAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,qEAAqE;IACrE,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,2BAA2B,CAAC;QACnH,sDAAsD;QACtD,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,2BAA2B,CAAC;KAC1H,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;AACnG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAA+B;IAE/B,MAAM,GAAG,GAAG,MAAM,aAAa,EAAE,CAAC;IAClC,IAAI,OAAO,GAAG,CAAC,qBAAqB,KAAK,UAAU,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,gEAAgE;YAChE,+BAA+B,CAChC,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC"}
|
package/dist/ai/index.d.ts
CHANGED
|
@@ -10,6 +10,8 @@ export { SessionManager } from './session/session-manager.js';
|
|
|
10
10
|
export type { SessionInfo, JobRequest, JobStatus, CreateSessionOptions } from './session/types.js';
|
|
11
11
|
export { BehaviorAIService } from './behavior-ai-service.js';
|
|
12
12
|
export type { BehaviorAIServiceOptions, BehaviorGenerateContext } from './behavior-ai-service.js';
|
|
13
|
+
export { regenerateBehavior } from './behavior-regenerate.js';
|
|
14
|
+
export type { RegenerateBehaviorOptions, RegenerateBehaviorResult } from './behavior-regenerate.js';
|
|
13
15
|
export { LLMProvider, LLMProviderRegistry } from './providers/llm-provider.js';
|
|
14
16
|
export type { LLMMessage, LLMCompletionOptions, LLMCompletionResponse, LLMProviderConfig, LLMStreamChunk } from './providers/llm-provider.js';
|
|
15
17
|
export { ProviderFactory } from './providers/provider-factory.js';
|
package/dist/ai/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,oCAAoC,CAAC;AACnD,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAGnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,YAAY,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ai/index.js
CHANGED
|
@@ -9,6 +9,9 @@ export * from './config-loader.js';
|
|
|
9
9
|
export { SessionManager } from './session/session-manager.js';
|
|
10
10
|
// Behavior AI service — session-based Claude conversation for realize-time code generation
|
|
11
11
|
export { BehaviorAIService } from './behavior-ai-service.js';
|
|
12
|
+
// Regenerate a single owner's AI behaviors file on demand.
|
|
13
|
+
// Used by `specverse ai regenerate <Owner.fn>`.
|
|
14
|
+
export { regenerateBehavior } from './behavior-regenerate.js';
|
|
12
15
|
// Providers — LLM execution layer
|
|
13
16
|
export { LLMProvider, LLMProviderRegistry } from './providers/llm-provider.js';
|
|
14
17
|
export { ProviderFactory } from './providers/provider-factory.js';
|
package/dist/ai/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,oCAAoC,CAAC;AACnD,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG9D,2FAA2F;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,kCAAkC;AAClC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAE/E,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,4CAA4C;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAE7E,+CAA+C;AAC/C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAgC/D,MAAM,iBAAiB;IACrB,IAAI,GAAG,IAAI,CAAC;IACZ,OAAO,GAAG,OAAO,CAAC;IAClB,YAAY,GAAG,CAAC,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC;IAE5F,OAAO,GAAQ,IAAI,CAAC;IAE5B,KAAK,CAAC,UAAU,CAAC,MAAoD;QACnE,IAAI,CAAC;YACH,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAAC;YACtF,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAsB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAS,EAAE,QAAc;QAC5C,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,4FAA4F,CAAC,CAAC;QACzG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,iBAAiB,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9C,IAAI,SAAS,CAAC,WAAW;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;YACpE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEf,SAAS;YACT,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC;YACtC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC5C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBACjC,IAAI,KAAK,CAAC,WAAW;wBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;oBACrD,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;oBACrC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACrB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACf,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;wBACvD,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;wBACvD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;4BACzB,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,IAAI,QAAQ,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;wBAC9H,CAAC;oBACH,CAAC;oBACD,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC;oBACvC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACf,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;wBACjC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;4BACvB,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;wBACzD,CAAC;oBACH,CAAC;oBACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACjB,CAAC;YACH,CAAC;YAED,cAAc;YACd,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,IAAI,EAAE,CAAC;YAChD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,oBAAoB,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;gBACtD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;oBAC/B,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;gBAC7F,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;YAED,WAAW;YACX,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC;YAC1C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,iBAAiB,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC3B,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;oBAChC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;wBACnB,KAAK,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,UAAiC,CAAC,EAAE,CAAC;4BACjF,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,KAAK,EAAE,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC;wBACvD,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;YAED,SAAS;YACT,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC;YACtC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC5C,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;oBACzB,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;gBAClC,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;QAC/F,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QACvE,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;QAC9E,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,mHAAmH,CAAC,CAAC;QAChI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAS,EAAE,QAAiB;QACxC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;QACpE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,gBAAgB,CAAC,IAAY,EAAE,OAA2B;QAC9D,IAAI,CAAC;YACH,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,WAAW;gBAAE,OAAO,IAAI,CAAC;YACtC,OAAO,MAAM,OAAO,CAAC,gBAAgB,CAAC;gBACpC,IAAI;gBACJ,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,EAAE;gBAC9C,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,OAAa;QAC7C,IAAI,CAAC;YACH,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;YAC/D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,SAAgB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;YACvF,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAC/B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;YACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAClE,CAAC;YACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,4EAA4E;YAC5E,OAAO,eAAe,SAAS,0FAA0F,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACpL,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAC9C,eAAe,MAAM,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,7 +34,7 @@ function generatePackageJson(context) {
|
|
|
34
34
|
"postcss": "^8.4.47",
|
|
35
35
|
"tailwindcss": "^3.4.13",
|
|
36
36
|
"typescript": "^5.2.0",
|
|
37
|
-
"vite": "^
|
|
37
|
+
"vite": "^6.0.0",
|
|
38
38
|
"eslint": "^8.53.0",
|
|
39
39
|
"@typescript-eslint/eslint-plugin": "^6.10.0",
|
|
40
40
|
"@typescript-eslint/parser": "^6.10.0",
|
package/dist/libs/instance-factories/applications/templates/react/runtime-package-json-generator.js
CHANGED
|
@@ -36,7 +36,7 @@ function generateRuntimePackageJson(context) {
|
|
|
36
36
|
"postcss": "^8.4.47",
|
|
37
37
|
"tailwindcss": "^3.4.13",
|
|
38
38
|
"typescript": "^5.2.0",
|
|
39
|
-
"vite": "^
|
|
39
|
+
"vite": "^6.0.0",
|
|
40
40
|
"eslint": "^8.53.0",
|
|
41
41
|
"@typescript-eslint/eslint-plugin": "^6.10.0",
|
|
42
42
|
"@typescript-eslint/parser": "^6.10.0",
|
|
@@ -788,6 +788,87 @@ import { EngineRegistry } from '@specverse/entities';`,
|
|
|
788
788
|
console.log(template);
|
|
789
789
|
}`
|
|
790
790
|
},
|
|
791
|
+
"ai.regenerate": {
|
|
792
|
+
imports: `import { readFileSync, existsSync } from 'fs';
|
|
793
|
+
import { resolve } from 'path';
|
|
794
|
+
import { EngineRegistry } from '@specverse/entities';
|
|
795
|
+
import type { ParserEngine } from '@specverse/types';`,
|
|
796
|
+
handler: `// Parse Owner.functionName \u2014 or just Owner with --all
|
|
797
|
+
const target = fn;
|
|
798
|
+
const dotIdx = target.indexOf('.');
|
|
799
|
+
const ownerName = dotIdx >= 0 ? target.slice(0, dotIdx) : target;
|
|
800
|
+
const functionName = dotIdx >= 0 ? target.slice(dotIdx + 1) : null;
|
|
801
|
+
if (!functionName && !options.all) {
|
|
802
|
+
console.error('Function must be specified as Owner.functionName, or use --all to regenerate every AI function in the owner.');
|
|
803
|
+
process.exit(1);
|
|
804
|
+
}
|
|
805
|
+
|
|
806
|
+
// Resolve spec file \u2014 default to specs/main-inferred.specly next to cwd
|
|
807
|
+
const userCwd = process.env.SPECVERSE_USER_CWD || process.cwd();
|
|
808
|
+
const specCandidates = options.spec
|
|
809
|
+
? [resolve(userCwd, options.spec)]
|
|
810
|
+
: [resolve(userCwd, 'specs/main-inferred.specly'), resolve(userCwd, 'specs/main.specly')];
|
|
811
|
+
const specPath = specCandidates.find(p => existsSync(p));
|
|
812
|
+
if (!specPath) {
|
|
813
|
+
console.error('Spec not found. Tried: ' + specCandidates.join(', '));
|
|
814
|
+
console.error('Pass --spec <file> or run from a project root with specs/main.specly.');
|
|
815
|
+
process.exit(1);
|
|
816
|
+
}
|
|
817
|
+
console.log('Using spec: ' + specPath);
|
|
818
|
+
|
|
819
|
+
const registry = new EngineRegistry();
|
|
820
|
+
await registry.discover();
|
|
821
|
+
const parser = registry.getEngineForCapability('parse') as ParserEngine;
|
|
822
|
+
if (!parser) { console.error('No parser engine found.'); process.exit(1); }
|
|
823
|
+
await parser.initialize();
|
|
824
|
+
|
|
825
|
+
const specContent = readFileSync(specPath, 'utf8');
|
|
826
|
+
const parseResult = parser.parseContent(specContent, specPath);
|
|
827
|
+
if (parseResult.errors.length > 0) {
|
|
828
|
+
console.error('Invalid spec:');
|
|
829
|
+
parseResult.errors.forEach((e: string) => console.error(' ' + e));
|
|
830
|
+
process.exit(1);
|
|
831
|
+
}
|
|
832
|
+
|
|
833
|
+
// Flatten components down to a realize-shaped spec
|
|
834
|
+
// (controllers, services, models at top level) \u2014 matches what
|
|
835
|
+
// regenerateBehavior expects. Collections may be arrays (parser
|
|
836
|
+
// output) or objects (inferred spec); preserve the incoming shape.
|
|
837
|
+
const ast: any = parseResult.ast;
|
|
838
|
+
const flat: any = { ...ast };
|
|
839
|
+
const components = ast?.components || {};
|
|
840
|
+
for (const comp of Object.values(components) as any[]) {
|
|
841
|
+
for (const key of ['models', 'controllers', 'services']) {
|
|
842
|
+
const collection = comp?.[key];
|
|
843
|
+
if (!collection) continue;
|
|
844
|
+
if (Array.isArray(collection)) {
|
|
845
|
+
flat[key] = [...(Array.isArray(flat[key]) ? flat[key] : []), ...collection];
|
|
846
|
+
} else {
|
|
847
|
+
flat[key] = { ...(flat[key] && !Array.isArray(flat[key]) ? flat[key] : {}), ...collection };
|
|
848
|
+
}
|
|
849
|
+
}
|
|
850
|
+
}
|
|
851
|
+
|
|
852
|
+
const { regenerateBehavior } = await import('@specverse/engines/ai');
|
|
853
|
+
const outputDir = resolve(userCwd, options.output || 'generated/code');
|
|
854
|
+
try {
|
|
855
|
+
const result = await regenerateBehavior({
|
|
856
|
+
spec: flat,
|
|
857
|
+
ownerName,
|
|
858
|
+
targetFunction: options.all ? null : functionName,
|
|
859
|
+
outputDir,
|
|
860
|
+
allFunctions: !!options.all,
|
|
861
|
+
});
|
|
862
|
+
console.log(\`\u2705 Regenerated \${result.filePath}\`);
|
|
863
|
+
console.log(\` Owner: \${ownerName}\`);
|
|
864
|
+
console.log(\` Unmatched functions: \${result.unmatchedCount}\`);
|
|
865
|
+
console.log(\` Target: \${options.all ? 'all' : functionName}\`);
|
|
866
|
+
console.log(\` Cache entries cleared: \${result.cacheCleared}\`);
|
|
867
|
+
} catch (err: any) {
|
|
868
|
+
console.error('Regeneration failed: ' + (err?.message || err));
|
|
869
|
+
process.exit(1);
|
|
870
|
+
}`
|
|
871
|
+
},
|
|
791
872
|
// === session subcommands ===
|
|
792
873
|
"session.create": {
|
|
793
874
|
imports: `import { EngineRegistry } from '@specverse/entities';`,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { matchStep } from "./step-conventions.js";
|
|
2
2
|
import { createHash } from "crypto";
|
|
3
|
-
import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
|
|
4
|
-
import { join } from "path";
|
|
3
|
+
import { readFileSync, writeFileSync, existsSync, mkdirSync, unlinkSync } from "fs";
|
|
4
|
+
import { dirname, join } from "path";
|
|
5
5
|
async function validateTypeScript(code) {
|
|
6
6
|
try {
|
|
7
7
|
const esbuild = await import("esbuild");
|
|
@@ -243,7 +243,157 @@ const prisma = new PrismaClient();
|
|
|
243
243
|
${functions.join("\n\n")}
|
|
244
244
|
`;
|
|
245
245
|
}
|
|
246
|
+
async function regenerateAiBehaviors(opts) {
|
|
247
|
+
const { spec, ownerName, targetFunction, outputDir, allFunctions } = opts;
|
|
248
|
+
const findOwner = (collection) => {
|
|
249
|
+
if (!collection) return null;
|
|
250
|
+
if (Array.isArray(collection)) return collection.find((c) => c?.name === ownerName) || null;
|
|
251
|
+
return collection[ownerName] || null;
|
|
252
|
+
};
|
|
253
|
+
const controller = findOwner(spec.controllers);
|
|
254
|
+
const service = findOwner(spec.services);
|
|
255
|
+
if (!controller && !service) {
|
|
256
|
+
throw new Error(
|
|
257
|
+
`Owner '${ownerName}' not found in spec. Looked in controllers and services \u2014 check that the name matches exactly (case-sensitive) and that you're pointing at an inferred spec (try 'specs/main-inferred.specly').`
|
|
258
|
+
);
|
|
259
|
+
}
|
|
260
|
+
const unmatched = [];
|
|
261
|
+
const allModels = Object.keys(spec.models || {});
|
|
262
|
+
if (controller) {
|
|
263
|
+
const modelName = controller.model || controller.modelReference || ownerName.replace(/Controller$/, "");
|
|
264
|
+
const modelVar = modelName.charAt(0).toLowerCase() + modelName.slice(1);
|
|
265
|
+
const actions = controller.actions || {};
|
|
266
|
+
for (const [actionName, action] of Object.entries(actions)) {
|
|
267
|
+
const steps = action.steps || [];
|
|
268
|
+
const parameterNames = Object.keys(action.parameters || {});
|
|
269
|
+
const declaredVars = /* @__PURE__ */ new Set();
|
|
270
|
+
const preconditions = action.requires || action.preconditions || [];
|
|
271
|
+
for (const pc of preconditions) {
|
|
272
|
+
const m = typeof pc === "string" ? pc.match(/^(\w+)\s+(?:exists|is\s+\w+)$/i) : null;
|
|
273
|
+
if (m) declaredVars.add(m[1].charAt(0).toLowerCase() + m[1].slice(1));
|
|
274
|
+
}
|
|
275
|
+
for (let i = 0; i < steps.length; i++) {
|
|
276
|
+
const stepInput = steps[i];
|
|
277
|
+
const stepText = typeof stepInput === "string" ? stepInput : stepInput?.step;
|
|
278
|
+
const stepReturns = typeof stepInput === "object" ? stepInput?.returns : void 0;
|
|
279
|
+
if (typeof stepText !== "string") continue;
|
|
280
|
+
const ctx = {
|
|
281
|
+
modelName,
|
|
282
|
+
prismaModel: modelVar,
|
|
283
|
+
serviceName: ownerName,
|
|
284
|
+
operationName: actionName,
|
|
285
|
+
stepNum: i + 1,
|
|
286
|
+
parameterNames,
|
|
287
|
+
declaredVars,
|
|
288
|
+
resultName: typeof stepInput === "object" ? stepInput?.as : void 0
|
|
289
|
+
};
|
|
290
|
+
const result = matchStep(stepText, ctx);
|
|
291
|
+
if (!result.matched && result.functionName) {
|
|
292
|
+
if (!unmatched.find((f) => f.functionName === result.functionName)) {
|
|
293
|
+
unmatched.push({
|
|
294
|
+
functionName: result.functionName,
|
|
295
|
+
step: stepText,
|
|
296
|
+
operationName: actionName,
|
|
297
|
+
parameterNames,
|
|
298
|
+
inputs: result.inputs || [],
|
|
299
|
+
returns: stepReturns,
|
|
300
|
+
modelName
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
} else if (service) {
|
|
307
|
+
const modelName = service.name?.replace(/Service$/, "") || ownerName;
|
|
308
|
+
const operations = service.operations || {};
|
|
309
|
+
const opEntries = Array.isArray(operations) ? operations.map((op) => [op.name, op]) : Object.entries(operations);
|
|
310
|
+
for (const [opName, operation] of opEntries) {
|
|
311
|
+
const steps = operation.steps || operation.implementation?.steps || [];
|
|
312
|
+
const parameterNames = Object.keys(operation.parameters || {});
|
|
313
|
+
const declaredVars = /* @__PURE__ */ new Set();
|
|
314
|
+
const preconditions = operation.requires || operation.preconditions || [];
|
|
315
|
+
for (const pc of preconditions) {
|
|
316
|
+
const m = typeof pc === "string" ? pc.match(/^(\w+)\s+(?:exists|is\s+\w+)$/i) : null;
|
|
317
|
+
if (m) declaredVars.add(m[1].charAt(0).toLowerCase() + m[1].slice(1));
|
|
318
|
+
}
|
|
319
|
+
for (let i = 0; i < steps.length; i++) {
|
|
320
|
+
const stepInput = steps[i];
|
|
321
|
+
const stepText = typeof stepInput === "string" ? stepInput : stepInput?.step;
|
|
322
|
+
const stepReturns = typeof stepInput === "object" ? stepInput?.returns : void 0;
|
|
323
|
+
if (typeof stepText !== "string") continue;
|
|
324
|
+
const ctx = {
|
|
325
|
+
modelName,
|
|
326
|
+
prismaModel: modelName.charAt(0).toLowerCase() + modelName.slice(1),
|
|
327
|
+
serviceName: ownerName,
|
|
328
|
+
operationName: opName,
|
|
329
|
+
stepNum: i + 1,
|
|
330
|
+
parameterNames,
|
|
331
|
+
declaredVars,
|
|
332
|
+
resultName: typeof stepInput === "object" ? stepInput?.as : void 0
|
|
333
|
+
};
|
|
334
|
+
const result = matchStep(stepText, ctx);
|
|
335
|
+
if (!result.matched && result.functionName) {
|
|
336
|
+
if (!unmatched.find((f) => f.functionName === result.functionName)) {
|
|
337
|
+
unmatched.push({
|
|
338
|
+
functionName: result.functionName,
|
|
339
|
+
step: stepText,
|
|
340
|
+
operationName: opName,
|
|
341
|
+
parameterNames,
|
|
342
|
+
inputs: result.inputs || [],
|
|
343
|
+
returns: stepReturns,
|
|
344
|
+
modelName: ownerName
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
if (unmatched.length === 0) {
|
|
352
|
+
throw new Error(
|
|
353
|
+
`No AI behaviors to regenerate for '${ownerName}'. All of its steps match built-in convention patterns (see step-conventions.ts). If you expected an AI-generated function, double-check the spec step text.`
|
|
354
|
+
);
|
|
355
|
+
}
|
|
356
|
+
const targetFound = !targetFunction || unmatched.some((f) => f.functionName === targetFunction);
|
|
357
|
+
if (targetFunction && !targetFound) {
|
|
358
|
+
const known = unmatched.map((f) => f.functionName).join(", ");
|
|
359
|
+
throw new Error(
|
|
360
|
+
`Function '${targetFunction}' not found among '${ownerName}' unmatched functions. Known: ${known || "(none)"}.`
|
|
361
|
+
);
|
|
362
|
+
}
|
|
363
|
+
let cacheCleared = 0;
|
|
364
|
+
const functionsToInvalidate = allFunctions ? unmatched.map((f) => f.functionName) : targetFunction ? [targetFunction] : [];
|
|
365
|
+
for (const fnName of functionsToInvalidate) {
|
|
366
|
+
const fn = unmatched.find((f) => f.functionName === fnName);
|
|
367
|
+
const key = cacheKey(fn.step, fn.modelName, fn.operationName, fn.functionName, fn.inputs);
|
|
368
|
+
const path = join(cacheDir(), `${key}.ts`);
|
|
369
|
+
if (existsSync(path)) {
|
|
370
|
+
try {
|
|
371
|
+
unlinkSync(path);
|
|
372
|
+
cacheCleared++;
|
|
373
|
+
} catch (err) {
|
|
374
|
+
console.warn(` [ai-cache] failed to delete ${path}: ${err?.message || err}`);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
const code = await generateAiBehaviorsFile({
|
|
379
|
+
ownerName,
|
|
380
|
+
unmatchedFunctions: unmatched,
|
|
381
|
+
availableModels: allModels,
|
|
382
|
+
spec
|
|
383
|
+
});
|
|
384
|
+
const filePath = join(outputDir, "backend", "src", "behaviors", `${ownerName}.ai.ts`);
|
|
385
|
+
const dir = dirname(filePath);
|
|
386
|
+
if (!existsSync(dir)) mkdirSync(dir, { recursive: true });
|
|
387
|
+
writeFileSync(filePath, code, "utf8");
|
|
388
|
+
return {
|
|
389
|
+
filePath,
|
|
390
|
+
targetFound,
|
|
391
|
+
unmatchedCount: unmatched.length,
|
|
392
|
+
cacheCleared
|
|
393
|
+
};
|
|
394
|
+
}
|
|
246
395
|
export {
|
|
247
396
|
generateAiBehaviors as default,
|
|
248
|
-
generateAiBehaviorsFile
|
|
397
|
+
generateAiBehaviorsFile,
|
|
398
|
+
regenerateAiBehaviors
|
|
249
399
|
};
|
|
@@ -195,7 +195,13 @@ function generatePackageJson(commands, _entityTypes, specVersion = "1.0.0") {
|
|
|
195
195
|
devDependencies: {
|
|
196
196
|
"@types/vscode": "^1.80.0",
|
|
197
197
|
"@vscode/vsce": "^3.0.0",
|
|
198
|
-
esbuild: "^0.
|
|
198
|
+
esbuild: "^0.25.0"
|
|
199
|
+
},
|
|
200
|
+
overrides: {
|
|
201
|
+
// Force the patched version of lodash through @vscode/vsce →
|
|
202
|
+
// @secretlint → @textlint transitive chain (4.17.23 has a
|
|
203
|
+
// code-injection advisory in `_.template`).
|
|
204
|
+
lodash: "^4.18.1"
|
|
199
205
|
}
|
|
200
206
|
};
|
|
201
207
|
}
|