@kapeta/local-cluster-service 0.47.3 → 0.48.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.
- package/CHANGELOG.md +14 -0
- package/dist/cjs/src/storm/codegen.js +46 -1
- package/dist/cjs/src/storm/routes.js +1 -0
- package/dist/esm/src/storm/codegen.js +46 -1
- package/dist/esm/src/storm/routes.js +1 -0
- package/package.json +1 -1
- package/src/storm/codegen.ts +25 -3
- package/src/storm/routes.ts +1 -0
package/CHANGELOG.md
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
# [0.48.0](https://github.com/kapetacom/local-cluster-service/compare/v0.47.4...v0.48.0) (2024-06-03)
|
2
|
+
|
3
|
+
|
4
|
+
### Features
|
5
|
+
|
6
|
+
* write files to disk ([8cb2d28](https://github.com/kapetacom/local-cluster-service/commit/8cb2d28a3bc41fd8dc81f52f77054ccc7a9ac294))
|
7
|
+
|
8
|
+
## [0.47.4](https://github.com/kapetacom/local-cluster-service/compare/v0.47.3...v0.47.4) (2024-05-31)
|
9
|
+
|
10
|
+
|
11
|
+
### Bug Fixes
|
12
|
+
|
13
|
+
* end request on prompt error ([#153](https://github.com/kapetacom/local-cluster-service/issues/153)) ([1edc6eb](https://github.com/kapetacom/local-cluster-service/commit/1edc6eb436a92583c0c03836c56d12bf0dc64dce))
|
14
|
+
|
1
15
|
## [0.47.3](https://github.com/kapetacom/local-cluster-service/compare/v0.47.2...v0.47.3) (2024-05-31)
|
2
16
|
|
3
17
|
|
@@ -3,12 +3,41 @@
|
|
3
3
|
* Copyright 2023 Kapeta Inc.
|
4
4
|
* SPDX-License-Identifier: BUSL-1.1
|
5
5
|
*/
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
7
|
+
if (k2 === undefined) k2 = k;
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
11
|
+
}
|
12
|
+
Object.defineProperty(o, k2, desc);
|
13
|
+
}) : (function(o, m, k, k2) {
|
14
|
+
if (k2 === undefined) k2 = k;
|
15
|
+
o[k2] = m[k];
|
16
|
+
}));
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
19
|
+
}) : function(o, v) {
|
20
|
+
o["default"] = v;
|
21
|
+
});
|
22
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
23
|
+
if (mod && mod.__esModule) return mod;
|
24
|
+
var result = {};
|
25
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
26
|
+
__setModuleDefault(result, mod);
|
27
|
+
return result;
|
28
|
+
};
|
29
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
30
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
31
|
+
};
|
6
32
|
Object.defineProperty(exports, "__esModule", { value: true });
|
7
33
|
exports.StormCodegen = void 0;
|
8
34
|
const codegen_1 = require("@kapeta/codegen");
|
9
35
|
const codeGeneratorManager_1 = require("../codeGeneratorManager");
|
10
36
|
const stormClient_1 = require("./stormClient");
|
11
37
|
const stream_1 = require("./stream");
|
38
|
+
const promises_1 = require("fs/promises");
|
39
|
+
const path_1 = __importStar(require("path"));
|
40
|
+
const node_os_1 = __importDefault(require("node:os"));
|
12
41
|
class StormCodegen {
|
13
42
|
userPrompt;
|
14
43
|
blocks;
|
@@ -100,6 +129,19 @@ class StormCodegen {
|
|
100
129
|
if (serviceFiles.length > 0) {
|
101
130
|
await this.processTemplates(block.uri, block.aiName, stormClient_1.stormClient.createServiceImplementation.bind(stormClient_1.stormClient), serviceFiles, contextFiles);
|
102
131
|
}
|
132
|
+
const basePath = path_1.default.join(node_os_1.default.tmpdir(), block.content.metadata.name);
|
133
|
+
for (const serviceFile of serviceFiles) {
|
134
|
+
const filePath = (0, path_1.join)(basePath, serviceFile.filename);
|
135
|
+
await (0, promises_1.writeFile)(filePath, serviceFile.content);
|
136
|
+
}
|
137
|
+
for (const serviceFile of contextFiles) {
|
138
|
+
const filePath = (0, path_1.join)(basePath, serviceFile.filename);
|
139
|
+
await (0, promises_1.writeFile)(filePath, serviceFile.content);
|
140
|
+
}
|
141
|
+
for (const uiFile of uiTemplates) {
|
142
|
+
const filePath = (0, path_1.join)(basePath, uiFile.filename);
|
143
|
+
await (0, promises_1.writeFile)(filePath, uiFile.content);
|
144
|
+
}
|
103
145
|
}
|
104
146
|
/**
|
105
147
|
* Emits the text-based files to the stream
|
@@ -203,9 +245,12 @@ class StormCodegen {
|
|
203
245
|
if (!(await codeGeneratorManager_1.codeGeneratorManager.ensureTarget(yamlContent.spec.target?.kind))) {
|
204
246
|
return;
|
205
247
|
}
|
248
|
+
const basePath = path_1.default.join(node_os_1.default.tmpdir(), yamlContent.metadata.name);
|
206
249
|
const codeGenerator = new codegen_1.BlockCodeGenerator(yamlContent);
|
207
250
|
codeGenerator.withOption('AIContext', stormClient_1.STORM_ID);
|
208
|
-
|
251
|
+
const generatedResult = await codeGenerator.generate();
|
252
|
+
new codegen_1.CodeWriter(basePath).write(generatedResult);
|
253
|
+
return generatedResult;
|
209
254
|
}
|
210
255
|
}
|
211
256
|
exports.StormCodegen = StormCodegen;
|
@@ -3,12 +3,41 @@
|
|
3
3
|
* Copyright 2023 Kapeta Inc.
|
4
4
|
* SPDX-License-Identifier: BUSL-1.1
|
5
5
|
*/
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
7
|
+
if (k2 === undefined) k2 = k;
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
11
|
+
}
|
12
|
+
Object.defineProperty(o, k2, desc);
|
13
|
+
}) : (function(o, m, k, k2) {
|
14
|
+
if (k2 === undefined) k2 = k;
|
15
|
+
o[k2] = m[k];
|
16
|
+
}));
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
19
|
+
}) : function(o, v) {
|
20
|
+
o["default"] = v;
|
21
|
+
});
|
22
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
23
|
+
if (mod && mod.__esModule) return mod;
|
24
|
+
var result = {};
|
25
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
26
|
+
__setModuleDefault(result, mod);
|
27
|
+
return result;
|
28
|
+
};
|
29
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
30
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
31
|
+
};
|
6
32
|
Object.defineProperty(exports, "__esModule", { value: true });
|
7
33
|
exports.StormCodegen = void 0;
|
8
34
|
const codegen_1 = require("@kapeta/codegen");
|
9
35
|
const codeGeneratorManager_1 = require("../codeGeneratorManager");
|
10
36
|
const stormClient_1 = require("./stormClient");
|
11
37
|
const stream_1 = require("./stream");
|
38
|
+
const promises_1 = require("fs/promises");
|
39
|
+
const path_1 = __importStar(require("path"));
|
40
|
+
const node_os_1 = __importDefault(require("node:os"));
|
12
41
|
class StormCodegen {
|
13
42
|
userPrompt;
|
14
43
|
blocks;
|
@@ -100,6 +129,19 @@ class StormCodegen {
|
|
100
129
|
if (serviceFiles.length > 0) {
|
101
130
|
await this.processTemplates(block.uri, block.aiName, stormClient_1.stormClient.createServiceImplementation.bind(stormClient_1.stormClient), serviceFiles, contextFiles);
|
102
131
|
}
|
132
|
+
const basePath = path_1.default.join(node_os_1.default.tmpdir(), block.content.metadata.name);
|
133
|
+
for (const serviceFile of serviceFiles) {
|
134
|
+
const filePath = (0, path_1.join)(basePath, serviceFile.filename);
|
135
|
+
await (0, promises_1.writeFile)(filePath, serviceFile.content);
|
136
|
+
}
|
137
|
+
for (const serviceFile of contextFiles) {
|
138
|
+
const filePath = (0, path_1.join)(basePath, serviceFile.filename);
|
139
|
+
await (0, promises_1.writeFile)(filePath, serviceFile.content);
|
140
|
+
}
|
141
|
+
for (const uiFile of uiTemplates) {
|
142
|
+
const filePath = (0, path_1.join)(basePath, uiFile.filename);
|
143
|
+
await (0, promises_1.writeFile)(filePath, uiFile.content);
|
144
|
+
}
|
103
145
|
}
|
104
146
|
/**
|
105
147
|
* Emits the text-based files to the stream
|
@@ -203,9 +245,12 @@ class StormCodegen {
|
|
203
245
|
if (!(await codeGeneratorManager_1.codeGeneratorManager.ensureTarget(yamlContent.spec.target?.kind))) {
|
204
246
|
return;
|
205
247
|
}
|
248
|
+
const basePath = path_1.default.join(node_os_1.default.tmpdir(), yamlContent.metadata.name);
|
206
249
|
const codeGenerator = new codegen_1.BlockCodeGenerator(yamlContent);
|
207
250
|
codeGenerator.withOption('AIContext', stormClient_1.STORM_ID);
|
208
|
-
|
251
|
+
const generatedResult = await codeGenerator.generate();
|
252
|
+
new codegen_1.CodeWriter(basePath).write(generatedResult);
|
253
|
+
return generatedResult;
|
209
254
|
}
|
210
255
|
}
|
211
256
|
exports.StormCodegen = StormCodegen;
|
package/package.json
CHANGED
package/src/storm/codegen.ts
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
*/
|
5
5
|
|
6
6
|
import { Definition } from '@kapeta/local-cluster-config';
|
7
|
-
import { AIFileTypes, BlockCodeGenerator, GeneratedFile, GeneratedResult } from '@kapeta/codegen';
|
7
|
+
import { AIFileTypes, BlockCodeGenerator, CodeWriter, GeneratedFile, GeneratedResult } from '@kapeta/codegen';
|
8
8
|
import { BlockDefinition } from '@kapeta/schemas';
|
9
9
|
import { codeGeneratorManager } from '../codeGeneratorManager';
|
10
10
|
import { STORM_ID, stormClient } from './stormClient';
|
@@ -12,6 +12,9 @@ import { StormEvent, StormEventFile } from './events';
|
|
12
12
|
import { BlockDefinitionInfo } from './event-parser';
|
13
13
|
import { ConversationItem, StormFileImplementationPrompt, StormFileInfo, StormStream } from './stream';
|
14
14
|
import { KapetaURI } from '@kapeta/nodejs-utils';
|
15
|
+
import { writeFile } from 'fs/promises';
|
16
|
+
import path, { join } from 'path';
|
17
|
+
import os from 'node:os';
|
15
18
|
|
16
19
|
type ImplementationGenerator = (prompt: StormFileImplementationPrompt, conversationId?: string) => Promise<StormStream>;
|
17
20
|
|
@@ -131,6 +134,23 @@ export class StormCodegen {
|
|
131
134
|
contextFiles
|
132
135
|
);
|
133
136
|
}
|
137
|
+
|
138
|
+
const basePath = path.join(os.tmpdir(), block.content.metadata.name);
|
139
|
+
|
140
|
+
for (const serviceFile of serviceFiles) {
|
141
|
+
const filePath = join(basePath, serviceFile.filename);
|
142
|
+
await writeFile(filePath, serviceFile.content);
|
143
|
+
}
|
144
|
+
|
145
|
+
for (const serviceFile of contextFiles) {
|
146
|
+
const filePath = join(basePath, serviceFile.filename);
|
147
|
+
await writeFile(filePath, serviceFile.content);
|
148
|
+
}
|
149
|
+
|
150
|
+
for(const uiFile of uiTemplates){
|
151
|
+
const filePath = join(basePath, uiFile.filename);
|
152
|
+
await writeFile(filePath, uiFile.content);
|
153
|
+
}
|
134
154
|
}
|
135
155
|
|
136
156
|
/**
|
@@ -263,10 +283,12 @@ export class StormCodegen {
|
|
263
283
|
if (!(await codeGeneratorManager.ensureTarget(yamlContent.spec.target?.kind))) {
|
264
284
|
return;
|
265
285
|
}
|
286
|
+
const basePath = path.join(os.tmpdir(), yamlContent.metadata.name);
|
266
287
|
|
267
288
|
const codeGenerator = new BlockCodeGenerator(yamlContent as BlockDefinition);
|
268
289
|
codeGenerator.withOption('AIContext', STORM_ID);
|
269
|
-
|
270
|
-
|
290
|
+
const generatedResult = await codeGenerator.generate();
|
291
|
+
new CodeWriter(basePath).write(generatedResult);
|
292
|
+
return generatedResult;
|
271
293
|
}
|
272
294
|
}
|