@ekairos/dataset 1.8.3

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 (76) hide show
  1. package/dist/clearDataset.tool.d.ts +22 -0
  2. package/dist/clearDataset.tool.d.ts.map +1 -0
  3. package/dist/clearDataset.tool.js +58 -0
  4. package/dist/clearDataset.tool.js.map +1 -0
  5. package/dist/completeDataset.tool.d.ts +27 -0
  6. package/dist/completeDataset.tool.d.ts.map +1 -0
  7. package/dist/completeDataset.tool.js +258 -0
  8. package/dist/completeDataset.tool.js.map +1 -0
  9. package/dist/datasetFiles.d.ts +4 -0
  10. package/dist/datasetFiles.d.ts.map +1 -0
  11. package/dist/datasetFiles.js +13 -0
  12. package/dist/datasetFiles.js.map +1 -0
  13. package/dist/domain.d.ts +2 -0
  14. package/dist/domain.d.ts.map +1 -0
  15. package/dist/domain.js +6 -0
  16. package/dist/domain.js.map +1 -0
  17. package/dist/executeCommand.tool.d.ts +37 -0
  18. package/dist/executeCommand.tool.d.ts.map +1 -0
  19. package/dist/executeCommand.tool.js +123 -0
  20. package/dist/executeCommand.tool.js.map +1 -0
  21. package/dist/file/file-dataset.agent.d.ts +51 -0
  22. package/dist/file/file-dataset.agent.d.ts.map +1 -0
  23. package/dist/file/file-dataset.agent.js +272 -0
  24. package/dist/file/file-dataset.agent.js.map +1 -0
  25. package/dist/file/filepreview.d.ts +41 -0
  26. package/dist/file/filepreview.d.ts.map +1 -0
  27. package/dist/file/filepreview.js +188 -0
  28. package/dist/file/filepreview.js.map +1 -0
  29. package/dist/file/generateSchema.tool.d.ts +31 -0
  30. package/dist/file/generateSchema.tool.d.ts.map +1 -0
  31. package/dist/file/generateSchema.tool.js +108 -0
  32. package/dist/file/generateSchema.tool.js.map +1 -0
  33. package/dist/file/index.d.ts +2 -0
  34. package/dist/file/index.d.ts.map +1 -0
  35. package/dist/file/index.js +18 -0
  36. package/dist/file/index.js.map +1 -0
  37. package/dist/file/prompts.d.ts +3 -0
  38. package/dist/file/prompts.d.ts.map +1 -0
  39. package/dist/file/prompts.js +194 -0
  40. package/dist/file/prompts.js.map +1 -0
  41. package/dist/file/scripts/file_metadata.py +71 -0
  42. package/dist/file/scripts/preview_head_csv.py +24 -0
  43. package/dist/file/scripts/preview_head_excel.py +30 -0
  44. package/dist/file/scripts/preview_mid_csv.py +36 -0
  45. package/dist/file/scripts/preview_mid_excel.py +39 -0
  46. package/dist/file/scripts/preview_tail_csv.py +27 -0
  47. package/dist/file/scripts/preview_tail_excel.py +29 -0
  48. package/dist/index.d.ts +8 -0
  49. package/dist/index.d.ts.map +1 -0
  50. package/dist/index.js +24 -0
  51. package/dist/index.js.map +1 -0
  52. package/dist/schema.d.ts +62 -0
  53. package/dist/schema.d.ts.map +1 -0
  54. package/dist/schema.js +46 -0
  55. package/dist/schema.js.map +1 -0
  56. package/dist/service.d.ts +73 -0
  57. package/dist/service.d.ts.map +1 -0
  58. package/dist/service.js +423 -0
  59. package/dist/service.js.map +1 -0
  60. package/dist/transform/filepreview.d.ts +24 -0
  61. package/dist/transform/filepreview.d.ts.map +1 -0
  62. package/dist/transform/filepreview.js +92 -0
  63. package/dist/transform/filepreview.js.map +1 -0
  64. package/dist/transform/index.d.ts +2 -0
  65. package/dist/transform/index.d.ts.map +1 -0
  66. package/dist/transform/index.js +18 -0
  67. package/dist/transform/index.js.map +1 -0
  68. package/dist/transform/prompts.d.ts +35 -0
  69. package/dist/transform/prompts.d.ts.map +1 -0
  70. package/dist/transform/prompts.js +137 -0
  71. package/dist/transform/prompts.js.map +1 -0
  72. package/dist/transform/transform-dataset.agent.d.ts +58 -0
  73. package/dist/transform/transform-dataset.agent.d.ts.map +1 -0
  74. package/dist/transform/transform-dataset.agent.js +283 -0
  75. package/dist/transform/transform-dataset.agent.js.map +1 -0
  76. package/package.json +56 -0
@@ -0,0 +1,283 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransformDatasetAgent = void 0;
4
+ const story_1 = require("@ekairos/story");
5
+ const story_2 = require("@ekairos/story");
6
+ const completeDataset_tool_1 = require("../completeDataset.tool");
7
+ const executeCommand_tool_1 = require("../executeCommand.tool");
8
+ const clearDataset_tool_1 = require("../clearDataset.tool");
9
+ const prompts_1 = require("./prompts");
10
+ const datasetFiles_1 = require("../datasetFiles");
11
+ const admin_1 = require("@instantdb/admin");
12
+ const story_3 = require("@ekairos/story");
13
+ const service_1 = require("../service");
14
+ const filepreview_1 = require("./filepreview");
15
+ class InternalTransformDatasetAgent extends story_1.Agent {
16
+ constructor(opts) {
17
+ super(opts);
18
+ this.isSandboxInitialized = false;
19
+ this.sandboxSourcePaths = [];
20
+ this.datasetId = (0, admin_1.id)();
21
+ this.sourceDatasetIds = opts.sourceDatasetIds;
22
+ this.outputSchema = opts.outputSchema;
23
+ this.sandbox = opts.sandbox;
24
+ this.service = opts.service;
25
+ this.instructions = opts.instructions;
26
+ }
27
+ getDatasetId() {
28
+ return this.datasetId;
29
+ }
30
+ async ensureSourcesInSandbox() {
31
+ if (this.isSandboxInitialized) {
32
+ return { sourcePaths: this.sandboxSourcePaths, outputPath: (0, datasetFiles_1.getDatasetOutputPath)(this.datasetId) };
33
+ }
34
+ const workstation = (0, datasetFiles_1.getDatasetWorkstation)(this.datasetId);
35
+ await this.sandbox.runCommand({
36
+ cmd: "mkdir",
37
+ args: ["-p", workstation],
38
+ });
39
+ const sourcePaths = [];
40
+ for (const sourceDatasetId of this.sourceDatasetIds) {
41
+ const existingSourcePath = (0, datasetFiles_1.getDatasetOutputPath)(sourceDatasetId);
42
+ const sourceExists = await this.sandbox.runCommand({
43
+ cmd: "test",
44
+ args: ["-f", existingSourcePath],
45
+ });
46
+ if (sourceExists.exitCode === 0) {
47
+ sourcePaths.push({ datasetId: sourceDatasetId, path: existingSourcePath });
48
+ continue;
49
+ }
50
+ const storagePath = `/dataset/${sourceDatasetId}/output.jsonl`;
51
+ const fileQuery = await this.db.query({
52
+ $files: {
53
+ $: {
54
+ where: { path: storagePath },
55
+ limit: 1,
56
+ },
57
+ },
58
+ });
59
+ const fileRecord = Array.isArray(fileQuery.$files) ? fileQuery.$files[0] : undefined;
60
+ if (!fileRecord || !fileRecord.url) {
61
+ throw new Error(`Source dataset output not found for datasetId=${sourceDatasetId}`);
62
+ }
63
+ const fileBuffer = await fetch(fileRecord.url).then((r) => r.arrayBuffer());
64
+ const sourcePath = `${workstation}/source_${sourceDatasetId}.jsonl`;
65
+ await this.sandbox.writeFiles([
66
+ {
67
+ path: sourcePath,
68
+ content: Buffer.from(fileBuffer),
69
+ },
70
+ ]);
71
+ sourcePaths.push({ datasetId: sourceDatasetId, path: sourcePath });
72
+ }
73
+ this.sandboxSourcePaths = sourcePaths;
74
+ this.isSandboxInitialized = true;
75
+ return { sourcePaths, outputPath: (0, datasetFiles_1.getDatasetOutputPath)(this.datasetId) };
76
+ }
77
+ async initialize(context) {
78
+ const { sourcePaths, outputPath } = await this.ensureSourcesInSandbox();
79
+ const sourcePreviews = [];
80
+ for (const sourcePathInfo of sourcePaths) {
81
+ try {
82
+ const preview = await (0, filepreview_1.generateSourcePreview)(this.sandbox, sourcePathInfo.path, this.datasetId);
83
+ sourcePreviews.push({ datasetId: sourcePathInfo.datasetId, preview });
84
+ }
85
+ catch (error) {
86
+ console.error(`[TransformDatasetAgent ${this.datasetId}] Failed to generate source preview for ${sourcePathInfo.datasetId}:`, error);
87
+ }
88
+ }
89
+ try {
90
+ await this.service.updateDatasetSchema({
91
+ datasetId: this.datasetId,
92
+ schema: this.outputSchema,
93
+ status: "schema_complete",
94
+ });
95
+ }
96
+ catch (error) {
97
+ const message = error instanceof Error ? error.message : String(error);
98
+ console.error(`[TransformDatasetAgent ${this.datasetId}] Failed to persist output schema:`, message);
99
+ }
100
+ return {
101
+ datasetId: this.datasetId,
102
+ sourceDatasetIds: this.sourceDatasetIds,
103
+ outputSchema: this.outputSchema,
104
+ sandboxConfig: {
105
+ sourcePaths: sourcePaths,
106
+ outputPath: outputPath,
107
+ },
108
+ sourcePreviews: sourcePreviews.length > 0 ? sourcePreviews : undefined,
109
+ errors: [],
110
+ iterationCount: 0,
111
+ instructions: this.instructions,
112
+ };
113
+ }
114
+ async buildSystemPrompt(context) {
115
+ const promptContext = {
116
+ datasetId: context.content.datasetId,
117
+ sourceDatasetIds: context.content.sourceDatasetIds,
118
+ outputSchema: context.content.outputSchema,
119
+ sandboxConfig: {
120
+ sourcePaths: context.content.sandboxConfig.sourcePaths,
121
+ outputPath: context.content.sandboxConfig.outputPath,
122
+ },
123
+ sourcePreviews: context.content.sourcePreviews,
124
+ errors: context.content.errors,
125
+ };
126
+ let basePrompt = (0, prompts_1.buildTransformDatasetPrompt)(promptContext);
127
+ // Append instructions if provided
128
+ if (context.content.instructions) {
129
+ basePrompt += `\n\n## ADDITIONAL CONTEXT AND INSTRUCTIONS\n\n${context.content.instructions}`;
130
+ }
131
+ return basePrompt;
132
+ }
133
+ async buildTools(context, dataStream) {
134
+ const ctx = context.content;
135
+ return {
136
+ executeCommand: (0, executeCommand_tool_1.createExecuteCommandTool)({
137
+ service: this.service,
138
+ datasetId: ctx.datasetId,
139
+ sandbox: this.sandbox,
140
+ }),
141
+ completeDataset: (0, completeDataset_tool_1.createCompleteDatasetTool)({
142
+ service: this.service,
143
+ datasetId: ctx.datasetId,
144
+ sandbox: this.sandbox,
145
+ }),
146
+ clearDataset: (0, clearDataset_tool_1.createClearDatasetTool)({
147
+ service: this.service,
148
+ datasetId: ctx.datasetId,
149
+ sandbox: this.sandbox,
150
+ }),
151
+ };
152
+ }
153
+ getModel(_context) {
154
+ return "gpt-5-codex";
155
+ }
156
+ includeBaseTools() {
157
+ return { createMessage: false, requestDirection: false, end: false };
158
+ }
159
+ async getFinalizationToolNames() {
160
+ return ["completeDataset"];
161
+ }
162
+ async onEnd(_lastEvent) {
163
+ return { end: false };
164
+ }
165
+ async onToolCallExecuted(executionEvent) {
166
+ try {
167
+ const name = executionEvent?.toolCall?.toolName || executionEvent?.toolCall?.name || "unknown";
168
+ console.log(`[TransformDatasetAgent ${this.datasetId}] Tool call executed: ${name}`);
169
+ }
170
+ catch { }
171
+ }
172
+ }
173
+ class TransformDatasetAgent {
174
+ constructor(params) {
175
+ this.sourceDatasetIds = Array.isArray(params.sourceDatasetIds) ? params.sourceDatasetIds : [params.sourceDatasetIds];
176
+ this.outputSchema = params.outputSchema;
177
+ this.sandbox = params.sandbox;
178
+ this.service = new service_1.DatasetService();
179
+ this.agentService = new story_2.AgentService();
180
+ this.instructions = params.instructions;
181
+ }
182
+ async getDataset() {
183
+ const internalAgent = new InternalTransformDatasetAgent({
184
+ sourceDatasetIds: this.sourceDatasetIds,
185
+ outputSchema: this.outputSchema,
186
+ sandbox: this.sandbox,
187
+ service: this.service,
188
+ instructions: this.instructions,
189
+ });
190
+ const datasetId = internalAgent.getDatasetId();
191
+ const datasetCountText = this.sourceDatasetIds.length === 1
192
+ ? "the source dataset"
193
+ : `${this.sourceDatasetIds.length} source datasets`;
194
+ const userEvent = {
195
+ id: (0, admin_1.id)(),
196
+ type: story_3.USER_MESSAGE_TYPE,
197
+ channel: story_3.WEB_CHANNEL,
198
+ content: {
199
+ parts: [
200
+ {
201
+ type: "text",
202
+ text: `Transform ${datasetCountText} into a new dataset matching the provided output schema`,
203
+ },
204
+ ],
205
+ },
206
+ createdAt: new Date().toISOString(),
207
+ };
208
+ const reaction = await internalAgent.progressStream(userEvent, null);
209
+ const stream = reaction.stream;
210
+ const streamResult = await this.agentService.readEventStream(stream);
211
+ if (streamResult.persistedEvent?.status !== "completed") {
212
+ throw new Error(`Dataset transformation failed with status: ${streamResult.persistedEvent?.status}`);
213
+ }
214
+ const datasetResult = await this.service.getDatasetById(datasetId);
215
+ if (!datasetResult.ok) {
216
+ throw new Error(datasetResult.error);
217
+ }
218
+ const dataset = datasetResult.data;
219
+ return {
220
+ id: dataset.id,
221
+ status: dataset.status,
222
+ title: dataset.title,
223
+ schema: dataset.schema,
224
+ analysis: dataset.analysis,
225
+ calculatedTotalRows: dataset.calculatedTotalRows,
226
+ actualGeneratedRowCount: dataset.actualGeneratedRowCount,
227
+ createdAt: dataset.createdAt,
228
+ updatedAt: dataset.updatedAt,
229
+ };
230
+ }
231
+ async followUp(datasetId, feedback) {
232
+ const internalAgent = new InternalTransformDatasetAgent({
233
+ sourceDatasetIds: this.sourceDatasetIds,
234
+ outputSchema: this.outputSchema,
235
+ sandbox: this.sandbox,
236
+ service: this.service,
237
+ instructions: this.instructions,
238
+ });
239
+ const userEvent = {
240
+ id: (0, admin_1.id)(),
241
+ type: story_3.USER_MESSAGE_TYPE,
242
+ channel: story_3.WEB_CHANNEL,
243
+ content: {
244
+ parts: [
245
+ {
246
+ type: "text",
247
+ text: feedback,
248
+ },
249
+ ],
250
+ },
251
+ createdAt: new Date().toISOString(),
252
+ };
253
+ const contextResult = await this.service.getContextByDatasetId(datasetId);
254
+ if (!contextResult.ok) {
255
+ throw new Error(contextResult.error);
256
+ }
257
+ const contextId = contextResult.data.id;
258
+ const reaction = await internalAgent.progressStream(userEvent, { id: contextId });
259
+ const stream = reaction.stream;
260
+ const streamResult = await this.agentService.readEventStream(stream);
261
+ if (streamResult.persistedEvent?.status !== "completed") {
262
+ throw new Error(`Dataset transformation iteration failed with status: ${streamResult.persistedEvent?.status}`);
263
+ }
264
+ const datasetResult = await this.service.getDatasetById(datasetId);
265
+ if (!datasetResult.ok) {
266
+ throw new Error(datasetResult.error);
267
+ }
268
+ const dataset = datasetResult.data;
269
+ return {
270
+ id: dataset.id,
271
+ status: dataset.status,
272
+ title: dataset.title,
273
+ schema: dataset.schema,
274
+ analysis: dataset.analysis,
275
+ calculatedTotalRows: dataset.calculatedTotalRows,
276
+ actualGeneratedRowCount: dataset.actualGeneratedRowCount,
277
+ createdAt: dataset.createdAt,
278
+ updatedAt: dataset.updatedAt,
279
+ };
280
+ }
281
+ }
282
+ exports.TransformDatasetAgent = TransformDatasetAgent;
283
+ //# sourceMappingURL=transform-dataset.agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform-dataset.agent.js","sourceRoot":"","sources":["../../src/transform/transform-dataset.agent.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@ekairos/dataset",
3
+ "version": "1.8.3",
4
+ "description": "Pulzar Dataset Tools",
5
+ "type": "commonjs",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "files": [
9
+ "dist",
10
+ "file/scripts"
11
+ ],
12
+ "publishConfig": {
13
+ "access": "public"
14
+ },
15
+ "license": "MIT",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/pulz-ar/pulzar-lib-core.git",
19
+ "directory": "packages/dataset"
20
+ },
21
+ "exports": {
22
+ ".": {
23
+ "types": "./dist/index.d.ts",
24
+ "require": "./dist/index.js",
25
+ "default": "./dist/index.js"
26
+ },
27
+ "./file/scripts": {
28
+ "default": "./dist/file/scripts"
29
+ },
30
+ "./file/scripts/*": {
31
+ "default": "./dist/file/scripts/*"
32
+ }
33
+ },
34
+ "scripts": {
35
+ "build": "tsc -p tsconfig.json && node scripts/copy-python-scripts.js",
36
+ "dev": "tsc -p tsconfig.json --watch",
37
+ "clean": "node -e \"require('fs').rmSync('dist', {recursive:true, force:true})\"",
38
+ "typecheck": "tsc --noEmit"
39
+ },
40
+ "dependencies": {
41
+ "@ekairos/story": "^1.8.3",
42
+ "@ekairos/domain": "^1.8.3",
43
+ "@instantdb/admin": "^0.22.13",
44
+ "@instantdb/core": "^0.22.13",
45
+ "@vercel/sandbox": "^0.0.23",
46
+ "ai": "^5.0.44",
47
+ "ajv": "^8.17.1",
48
+ "xmlbuilder2": "^3.1.1",
49
+ "zod": "^4.1.8"
50
+ },
51
+ "devDependencies": {
52
+ "@ekairos/tsconfig": "workspace:*",
53
+ "@types/node": "^24.5.0",
54
+ "typescript": "^5.9.2"
55
+ }
56
+ }