@ekairos/dataset 1.22.49-beta.development.0 → 1.22.51-beta.development.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/dist/agents.d.ts +8 -0
- package/dist/agents.js +8 -0
- package/dist/builder/agentMaterializers.d.ts +9 -0
- package/dist/builder/agentMaterializers.js +10 -0
- package/dist/builder/materialize.d.ts +1 -11
- package/dist/builder/materialize.js +25 -77
- package/dist/builder/materializeQuery.d.ts +11 -0
- package/dist/builder/materializeQuery.js +40 -0
- package/dist/builder/persistence.js +13 -21
- package/dist/builder/types.d.ts +3 -0
- package/dist/clearDataset.tool.d.ts +2 -2
- package/dist/clearDataset.tool.js +3 -3
- package/dist/completeDataset.tool.d.ts +31 -3
- package/dist/completeDataset.tool.js +101 -13
- package/dist/dataset/steps.d.ts +32 -8
- package/dist/dataset/steps.js +69 -13
- package/dist/dataset.js +13 -7
- package/dist/executeCommand.tool.d.ts +2 -2
- package/dist/executeCommand.tool.js +3 -3
- package/dist/file/file-dataset.agent.d.ts +17 -11
- package/dist/file/file-dataset.agent.js +54 -47
- package/dist/file/filepreview.d.ts +2 -2
- package/dist/file/filepreview.js +13 -13
- package/dist/file/generateSchema.tool.d.ts +2 -2
- package/dist/file/generateSchema.tool.js +2 -2
- package/dist/file/prompts.d.ts +2 -2
- package/dist/file/prompts.js +6 -1
- package/dist/file/steps.d.ts +1 -1
- package/dist/file/steps.js +8 -2
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/query/queryDomain.d.ts +3 -3
- package/dist/query/queryDomain.js +3 -3
- package/dist/query/queryDomain.step.d.ts +1 -0
- package/dist/query/queryDomain.step.js +8 -4
- package/dist/sandbox/steps.d.ts +6 -6
- package/dist/sandbox/steps.js +16 -12
- package/dist/transform/filepreview.d.ts +1 -1
- package/dist/transform/filepreview.js +6 -6
- package/dist/transform/index.d.ts +1 -1
- package/dist/transform/index.js +1 -1
- package/dist/transform/prompts.js +4 -1
- package/dist/transform/transform-dataset.agent.d.ts +9 -3
- package/dist/transform/transform-dataset.agent.js +39 -32
- package/dist/transform/transformDataset.d.ts +3 -2
- package/dist/transform/transformDataset.js +10 -9
- package/package.json +19 -5
- package/dist/eventsReactRuntime.d.ts +0 -21
- package/dist/eventsReactRuntime.js +0 -25
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { getDatasetWorkstation } from "../datasetFiles.js";
|
|
2
2
|
import { runDatasetSandboxCommandStep, writeDatasetSandboxFilesStep } from "../sandbox/steps.js";
|
|
3
3
|
const DEFAULT_HEAD_LINES = 50;
|
|
4
|
-
async function runPythonSnippet(
|
|
4
|
+
async function runPythonSnippet(runtime, sandboxId, datasetId, scriptName, code, args, description) {
|
|
5
5
|
const workstation = getDatasetWorkstation(datasetId);
|
|
6
6
|
const scriptPath = `${workstation}/${scriptName}.py`;
|
|
7
7
|
await writeDatasetSandboxFilesStep({
|
|
8
|
-
|
|
8
|
+
runtime,
|
|
9
9
|
sandboxId,
|
|
10
10
|
files: [
|
|
11
11
|
{
|
|
@@ -15,7 +15,7 @@ async function runPythonSnippet(env, sandboxId, datasetId, scriptName, code, arg
|
|
|
15
15
|
],
|
|
16
16
|
});
|
|
17
17
|
const result = await runDatasetSandboxCommandStep({
|
|
18
|
-
|
|
18
|
+
runtime,
|
|
19
19
|
sandboxId,
|
|
20
20
|
cmd: "python",
|
|
21
21
|
args: [scriptPath, ...args],
|
|
@@ -30,7 +30,7 @@ async function runPythonSnippet(env, sandboxId, datasetId, scriptName, code, arg
|
|
|
30
30
|
stderr,
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
|
-
export async function generateSourcePreview(
|
|
33
|
+
export async function generateSourcePreview(runtime, sandboxId, sourcePath, datasetId, options = {}) {
|
|
34
34
|
const context = {
|
|
35
35
|
totalRows: 0,
|
|
36
36
|
};
|
|
@@ -54,7 +54,7 @@ try:
|
|
|
54
54
|
except Exception as e:
|
|
55
55
|
print(str(e))
|
|
56
56
|
`;
|
|
57
|
-
const meta = await runPythonSnippet(
|
|
57
|
+
const meta = await runPythonSnippet(runtime, sandboxId, datasetId, "jsonl_count", countScript, [sourcePath], "Counts number of JSONL records with type='row'");
|
|
58
58
|
context.metadata = meta;
|
|
59
59
|
try {
|
|
60
60
|
if (meta.stdout) {
|
|
@@ -89,7 +89,7 @@ try:
|
|
|
89
89
|
except Exception as e:
|
|
90
90
|
print(str(e))
|
|
91
91
|
`;
|
|
92
|
-
const head = await runPythonSnippet(
|
|
92
|
+
const head = await runPythonSnippet(runtime, sandboxId, datasetId, "jsonl_head", headScript, [sourcePath, String(headLines)], `Reads the first ${headLines} JSONL row records`);
|
|
93
93
|
context.head = head;
|
|
94
94
|
return context;
|
|
95
95
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { createTransformDatasetContext, type TransformDatasetAgentParams, type TransformDatasetContext, } from "./transform-dataset.agent.js";
|
|
2
2
|
export { transformDataset, type TransformDatasetInput, type TransformDatasetResult, } from "./transformDataset.js";
|
package/dist/transform/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { createTransformDatasetContext, } from "./transform-dataset.agent.js";
|
|
2
2
|
export { transformDataset, } from "./transformDataset.js";
|
|
@@ -97,19 +97,22 @@ function buildInstructions(context) {
|
|
|
97
97
|
.up()
|
|
98
98
|
.ele("Step", { number: "2", name: "Plan Mapping" })
|
|
99
99
|
.ele("Action").txt("Plan a deterministic mapping from source data fields to the output schema fields (normalize names, types, and formats).").up()
|
|
100
|
-
.ele("Note").txt("If fields are missing, set defaults; if types differ, coerce consistently. When working with multiple sources, decide how to combine or relate them.").up()
|
|
100
|
+
.ele("Note").txt("If fields are missing, set defaults; if types differ, coerce consistently. When working with multiple sources, decide how to combine or relate them. Output field names must remain exactly as declared by the output schema.").up()
|
|
101
101
|
.up()
|
|
102
102
|
.ele("Step", { number: "3", name: "Transform" })
|
|
103
103
|
.ele("Action").txt("Use executeCommand to run a Python script that reads source JSONL file(s) and writes transformed records to output.jsonl. Keep line-per-record JSON objects with { 'type': 'row', 'data': { ... } }.").up()
|
|
104
104
|
.ele("Requirement").txt(`Write file to: ${outputPath}`).up()
|
|
105
|
+
.ele("Requirement").txt("Every data object MUST use the exact property names from OutputSchema required/properties keys. Do not translate, localize, rename, or infer alternative field names.").up()
|
|
105
106
|
.ele("Requirement").txt("Do not print large data to stdout; only progress and summaries.").up()
|
|
106
107
|
.up()
|
|
107
108
|
.ele("Step", { number: "4", name: "Validate and Complete" })
|
|
108
109
|
.ele("Action").txt("Call completeDataset to validate against the output schema and mark as completed.").up()
|
|
110
|
+
.ele("Behavior").txt("If completeDataset returns success:false, inspect validation details, rewrite output.jsonl, and call completeDataset again. Do not stop until completeDataset returns success:true.").up()
|
|
109
111
|
.up()
|
|
110
112
|
.up()
|
|
111
113
|
.ele("Rules")
|
|
112
114
|
.ele("Rule").txt("Output must strictly match the output schema for each record in data.").up()
|
|
115
|
+
.ele("Rule").txt("OutputSchema property names are authoritative. Field names are a technical contract; only field values may preserve source language.").up()
|
|
113
116
|
.ele("Rule").txt("Each line in output.jsonl must be a standalone JSON object with {type:'row', data:{...}}.").up()
|
|
114
117
|
.ele("Rule").txt("Do not include headers, summaries, or metadata as records.").up()
|
|
115
118
|
.ele("Rule").txt("Be robust to malformed lines in source: skip or sanitize, but do not crash.").up()
|
|
@@ -28,6 +28,10 @@ export type TransformDatasetAgentParams = {
|
|
|
28
28
|
sandboxId?: string;
|
|
29
29
|
reactor?: ContextReactor<any, any>;
|
|
30
30
|
};
|
|
31
|
+
export type TransformDatasetRunOptions = {
|
|
32
|
+
prompt?: string;
|
|
33
|
+
durable?: boolean;
|
|
34
|
+
};
|
|
31
35
|
export type TransformDatasetResult = {
|
|
32
36
|
id: string;
|
|
33
37
|
status?: string;
|
|
@@ -39,7 +43,7 @@ export type TransformDatasetResult = {
|
|
|
39
43
|
createdAt?: number;
|
|
40
44
|
updatedAt?: number;
|
|
41
45
|
};
|
|
42
|
-
export declare function
|
|
46
|
+
export declare function createTransformDatasetContext<Env extends {
|
|
43
47
|
orgId: string;
|
|
44
48
|
}>(params: {
|
|
45
49
|
sourceDatasetIds: string[];
|
|
@@ -51,8 +55,10 @@ export declare function createTransformDatasetStory<Env extends {
|
|
|
51
55
|
reactor?: ContextReactor<any, any>;
|
|
52
56
|
}): {
|
|
53
57
|
datasetId: string;
|
|
54
|
-
transform(
|
|
58
|
+
transform(runtime: {
|
|
59
|
+
env: Env;
|
|
60
|
+
}, options?: TransformDatasetRunOptions): Promise<{
|
|
55
61
|
datasetId: string;
|
|
56
62
|
}>;
|
|
57
|
-
|
|
63
|
+
context: any;
|
|
58
64
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createContext,
|
|
2
|
-
import { createCompleteDatasetTool } from "../completeDataset.tool.js";
|
|
1
|
+
import { createContext, INPUT_TEXT_ITEM_TYPE, WEB_CHANNEL } from "@ekairos/events";
|
|
2
|
+
import { createCompleteDatasetTool, didCompleteDatasetSucceed } from "../completeDataset.tool.js";
|
|
3
3
|
import { createExecuteCommandTool } from "../executeCommand.tool.js";
|
|
4
4
|
import { createClearDatasetTool } from "../clearDataset.tool.js";
|
|
5
5
|
import { buildTransformDatasetPrompt } from "./prompts.js";
|
|
@@ -8,19 +8,27 @@ import { id } from "@instantdb/admin";
|
|
|
8
8
|
import { generateSourcePreview } from "./filepreview.js";
|
|
9
9
|
import { datasetReadOutputJsonlStep, datasetUpdateSchemaStep } from "../dataset/steps.js";
|
|
10
10
|
import { runDatasetSandboxCommandStep, writeDatasetSandboxFilesStep } from "../sandbox/steps.js";
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
async function awaitContextRun(run) {
|
|
12
|
+
if (!run)
|
|
13
|
+
return;
|
|
14
|
+
if (run.returnValue) {
|
|
15
|
+
await run.returnValue;
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
await run;
|
|
19
|
+
}
|
|
20
|
+
async function ensureSourcesInSandbox(runtime, sandboxId, datasetId, sourceDatasetIds, state) {
|
|
13
21
|
if (state.initialized) {
|
|
14
22
|
return { sourcePaths: state.sourcePaths, outputPath: getDatasetOutputPath(datasetId) };
|
|
15
23
|
}
|
|
16
24
|
const workstation = getDatasetWorkstation(datasetId);
|
|
17
|
-
await runDatasetSandboxCommandStep({
|
|
25
|
+
await runDatasetSandboxCommandStep({ runtime, sandboxId, cmd: "mkdir", args: ["-p", workstation] });
|
|
18
26
|
const sourcePaths = [];
|
|
19
27
|
for (const sourceDatasetId of sourceDatasetIds) {
|
|
20
28
|
const sourcePath = `${workstation}/source_${sourceDatasetId}.jsonl`;
|
|
21
|
-
const source = await datasetReadOutputJsonlStep({
|
|
29
|
+
const source = await datasetReadOutputJsonlStep({ runtime, datasetId: sourceDatasetId });
|
|
22
30
|
await writeDatasetSandboxFilesStep({
|
|
23
|
-
|
|
31
|
+
runtime,
|
|
24
32
|
sandboxId,
|
|
25
33
|
files: [{ path: sourcePath, contentBase64: source.contentBase64 }],
|
|
26
34
|
});
|
|
@@ -30,22 +38,22 @@ async function ensureSourcesInSandbox(env, sandboxId, datasetId, sourceDatasetId
|
|
|
30
38
|
state.initialized = true;
|
|
31
39
|
return { sourcePaths, outputPath: getDatasetOutputPath(datasetId) };
|
|
32
40
|
}
|
|
33
|
-
function
|
|
41
|
+
function createTransformDatasetContextDefinition(params) {
|
|
34
42
|
const datasetId = params.datasetId ?? id();
|
|
35
43
|
const model = params.model ?? "openai/gpt-5";
|
|
36
|
-
let
|
|
37
|
-
.context(async (stored,
|
|
44
|
+
let contextBuilder = createContext("dataset.transform")
|
|
45
|
+
.context(async (stored, _env, runtime) => {
|
|
38
46
|
const previous = stored?.content ?? {};
|
|
39
47
|
const sandboxState = previous?.sandboxState ?? { initialized: false, sourcePaths: [] };
|
|
40
48
|
const sandboxId = previous?.sandboxId ?? params.sandboxId ?? "";
|
|
41
49
|
if (!sandboxId) {
|
|
42
50
|
throw new Error("dataset_sandbox_required");
|
|
43
51
|
}
|
|
44
|
-
const { sourcePaths, outputPath } = await ensureSourcesInSandbox(
|
|
52
|
+
const { sourcePaths, outputPath } = await ensureSourcesInSandbox(runtime, sandboxId, datasetId, params.sourceDatasetIds, sandboxState);
|
|
45
53
|
const sourcePreviews = [];
|
|
46
54
|
for (const sp of sourcePaths) {
|
|
47
55
|
try {
|
|
48
|
-
const preview = await generateSourcePreview(
|
|
56
|
+
const preview = await generateSourcePreview(runtime, sandboxId, sp.path, datasetId);
|
|
49
57
|
sourcePreviews.push({ datasetId: sp.datasetId, preview });
|
|
50
58
|
}
|
|
51
59
|
catch {
|
|
@@ -54,7 +62,7 @@ function createTransformDatasetStoryDefinition(params) {
|
|
|
54
62
|
}
|
|
55
63
|
// Persist output schema on the dataset record (so completeDataset validates against it)
|
|
56
64
|
await datasetUpdateSchemaStep({
|
|
57
|
-
|
|
65
|
+
runtime,
|
|
58
66
|
datasetId,
|
|
59
67
|
schema: params.outputSchema,
|
|
60
68
|
status: "schema_complete",
|
|
@@ -91,40 +99,40 @@ function createTransformDatasetStoryDefinition(params) {
|
|
|
91
99
|
.narrative(async (stored) => {
|
|
92
100
|
return String(stored?.content?.system ?? "");
|
|
93
101
|
})
|
|
94
|
-
.actions(async (stored,
|
|
102
|
+
.actions(async (stored, _env, runtime) => {
|
|
95
103
|
const sandboxId = stored?.content?.sandboxId ?? params.sandboxId ?? "";
|
|
96
104
|
return {
|
|
97
105
|
executeCommand: createExecuteCommandTool({
|
|
98
106
|
datasetId,
|
|
99
107
|
sandboxId,
|
|
100
|
-
|
|
108
|
+
runtime,
|
|
101
109
|
}),
|
|
102
110
|
completeDataset: createCompleteDatasetTool({
|
|
103
111
|
datasetId,
|
|
104
112
|
sandboxId,
|
|
105
|
-
|
|
113
|
+
runtime,
|
|
106
114
|
}),
|
|
107
115
|
clearDataset: createClearDatasetTool({
|
|
108
116
|
datasetId,
|
|
109
117
|
sandboxId,
|
|
110
|
-
|
|
118
|
+
runtime,
|
|
111
119
|
}),
|
|
112
120
|
};
|
|
113
121
|
})
|
|
114
122
|
.shouldContinue(({ reactionEvent }) => {
|
|
115
|
-
return !
|
|
123
|
+
return !didCompleteDatasetSucceed(reactionEvent);
|
|
116
124
|
});
|
|
117
125
|
if (params.reactor) {
|
|
118
|
-
|
|
126
|
+
contextBuilder = contextBuilder.reactor(params.reactor);
|
|
119
127
|
}
|
|
120
128
|
else {
|
|
121
|
-
|
|
129
|
+
contextBuilder = contextBuilder.model(model);
|
|
122
130
|
}
|
|
123
|
-
const
|
|
124
|
-
return { datasetId,
|
|
131
|
+
const context = contextBuilder.build();
|
|
132
|
+
return { datasetId, context };
|
|
125
133
|
}
|
|
126
|
-
export function
|
|
127
|
-
const { datasetId,
|
|
134
|
+
export function createTransformDatasetContext(params) {
|
|
135
|
+
const { datasetId, context } = createTransformDatasetContextDefinition({
|
|
128
136
|
sourceDatasetIds: params.sourceDatasetIds,
|
|
129
137
|
outputSchema: params.outputSchema,
|
|
130
138
|
instructions: params.instructions,
|
|
@@ -135,7 +143,7 @@ export function createTransformDatasetStory(params) {
|
|
|
135
143
|
});
|
|
136
144
|
return {
|
|
137
145
|
datasetId,
|
|
138
|
-
async transform(
|
|
146
|
+
async transform(runtime, options = {}) {
|
|
139
147
|
const datasetCountText = params.sourceDatasetIds.length === 1
|
|
140
148
|
? "the source dataset"
|
|
141
149
|
: `${params.sourceDatasetIds.length} source datasets`;
|
|
@@ -148,22 +156,21 @@ export function createTransformDatasetStory(params) {
|
|
|
148
156
|
parts: [
|
|
149
157
|
{
|
|
150
158
|
type: "text",
|
|
151
|
-
text: prompt ??
|
|
159
|
+
text: options.prompt ??
|
|
152
160
|
`Transform ${datasetCountText} into a new dataset matching the provided output schema`,
|
|
153
161
|
},
|
|
154
162
|
],
|
|
155
163
|
},
|
|
156
164
|
};
|
|
157
|
-
const
|
|
158
|
-
|
|
159
|
-
runtime,
|
|
165
|
+
const shell = await context.react(triggerEvent, {
|
|
166
|
+
runtime: runtime,
|
|
160
167
|
context: { key: `dataset:${datasetId}` },
|
|
161
|
-
durable: false,
|
|
168
|
+
durable: options.durable ?? false,
|
|
162
169
|
options: { silent: true, preventClose: true, sendFinish: false, maxIterations: 20, maxModelSteps: 5 },
|
|
163
170
|
});
|
|
164
|
-
await shell.run;
|
|
171
|
+
await awaitContextRun(shell.run);
|
|
165
172
|
return { datasetId };
|
|
166
173
|
},
|
|
167
|
-
|
|
174
|
+
context,
|
|
168
175
|
};
|
|
169
176
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { AnyDatasetRuntime } from "../builder/types.js";
|
|
1
2
|
export type TransformDatasetInput = {
|
|
2
3
|
datasets: Array<{
|
|
3
4
|
id: string;
|
|
@@ -14,6 +15,6 @@ export type TransformDatasetResult = {
|
|
|
14
15
|
};
|
|
15
16
|
/**
|
|
16
17
|
* Workflow-compatible dataset transform.
|
|
17
|
-
* Executes the transform
|
|
18
|
+
* Executes the transform context and returns datasetId + preview rows.
|
|
18
19
|
*/
|
|
19
|
-
export declare function transformDataset(input: TransformDatasetInput): Promise<TransformDatasetResult>;
|
|
20
|
+
export declare function transformDataset(runtime: AnyDatasetRuntime, input: TransformDatasetInput): Promise<TransformDatasetResult>;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { getContextEnv } from "@ekairos/events/runtime";
|
|
2
1
|
import { datasetPreviewRowsStep } from "../dataset/steps.js";
|
|
3
|
-
import {
|
|
2
|
+
import { createTransformDatasetContext } from "./transform-dataset.agent.js";
|
|
4
3
|
function buildInstructions(input) {
|
|
5
4
|
const sources = input.datasets
|
|
6
5
|
.map((d, idx) => {
|
|
@@ -22,18 +21,20 @@ function buildInstructions(input) {
|
|
|
22
21
|
}
|
|
23
22
|
/**
|
|
24
23
|
* Workflow-compatible dataset transform.
|
|
25
|
-
* Executes the transform
|
|
24
|
+
* Executes the transform context and returns datasetId + preview rows.
|
|
26
25
|
*/
|
|
27
|
-
export async function transformDataset(input) {
|
|
28
|
-
const
|
|
29
|
-
const { datasetId, story } = createTransformDatasetStory({
|
|
26
|
+
export async function transformDataset(runtime, input) {
|
|
27
|
+
const transformContext = createTransformDatasetContext({
|
|
30
28
|
sourceDatasetIds: input.datasets.map((d) => d.id),
|
|
31
29
|
outputSchema: input.outputSchema,
|
|
32
30
|
instructions: buildInstructions(input),
|
|
33
31
|
datasetId: input.datasetId,
|
|
34
32
|
model: input.model,
|
|
35
33
|
});
|
|
36
|
-
await
|
|
37
|
-
const preview = await datasetPreviewRowsStep({
|
|
38
|
-
|
|
34
|
+
await transformContext.transform(runtime);
|
|
35
|
+
const preview = await datasetPreviewRowsStep({
|
|
36
|
+
runtime,
|
|
37
|
+
datasetId: transformContext.datasetId,
|
|
38
|
+
});
|
|
39
|
+
return { datasetId: transformContext.datasetId, previewRows: preview.rows };
|
|
39
40
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ekairos/dataset",
|
|
3
|
-
"version": "1.22.
|
|
3
|
+
"version": "1.22.51-beta.development.0",
|
|
4
4
|
"description": "Pulzar Dataset Tools",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -35,6 +35,16 @@
|
|
|
35
35
|
"import": "./dist/query/index.js",
|
|
36
36
|
"default": "./dist/query/index.js"
|
|
37
37
|
},
|
|
38
|
+
"./agents": {
|
|
39
|
+
"types": "./dist/agents.d.ts",
|
|
40
|
+
"import": "./dist/agents.js",
|
|
41
|
+
"default": "./dist/agents.js"
|
|
42
|
+
},
|
|
43
|
+
"./skill": {
|
|
44
|
+
"types": "./dist/skill.d.ts",
|
|
45
|
+
"import": "./dist/skill.js",
|
|
46
|
+
"default": "./dist/skill.js"
|
|
47
|
+
},
|
|
38
48
|
"./file/scripts": {
|
|
39
49
|
"default": "./dist/file/scripts"
|
|
40
50
|
},
|
|
@@ -49,14 +59,15 @@
|
|
|
49
59
|
"typecheck": "tsc --noEmit",
|
|
50
60
|
"typecheck:tests": "tsc --noEmit -p tsconfig.typecheck.json",
|
|
51
61
|
"test": "vitest run -c vitest.config.mts",
|
|
62
|
+
"test:workflow": "vitest run -c vitest.workflow.config.mts",
|
|
52
63
|
"test:direct": "vitest run -c vitest.config.mts src/tests/dataset.builder.instant.test.ts",
|
|
53
64
|
"test:tool": "vitest run -c vitest.config.mts src/tests/materializeDataset.tool.instant.test.ts",
|
|
54
65
|
"test:ai-sdk:instant": "vitest run -c vitest.codex.config.mts src/tests/materializeDataset.ai-sdk.instant.test.ts"
|
|
55
66
|
},
|
|
56
67
|
"dependencies": {
|
|
57
|
-
"@ekairos/domain": "^1.22.
|
|
58
|
-
"@ekairos/events": "^1.22.
|
|
59
|
-
"@ekairos/sandbox": "^1.22.
|
|
68
|
+
"@ekairos/domain": "^1.22.51-beta.development.0",
|
|
69
|
+
"@ekairos/events": "^1.22.51-beta.development.0",
|
|
70
|
+
"@ekairos/sandbox": "^1.22.51-beta.development.0",
|
|
60
71
|
"@instantdb/admin": "0.22.158",
|
|
61
72
|
"@instantdb/core": "0.22.142",
|
|
62
73
|
"ai": "^5.0.44",
|
|
@@ -69,7 +80,10 @@
|
|
|
69
80
|
"@ekairos/openai-reactor": "workspace:*",
|
|
70
81
|
"@ekairos/tsconfig": "workspace:*",
|
|
71
82
|
"@types/node": "^24.5.0",
|
|
83
|
+
"@workflow/serde": "5.0.0-beta.0",
|
|
84
|
+
"@workflow/vitest": "5.0.0-beta.1",
|
|
72
85
|
"dotenv": "^17.2.3",
|
|
73
|
-
"typescript": "^5.9.2"
|
|
86
|
+
"typescript": "^5.9.2",
|
|
87
|
+
"workflow": "5.0.0-beta.1"
|
|
74
88
|
}
|
|
75
89
|
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { eventsDomain } from "@ekairos/events";
|
|
2
|
-
export type EventsReactRuntime<Env extends Record<string, unknown>> = {
|
|
3
|
-
env: Env;
|
|
4
|
-
db(): Promise<any>;
|
|
5
|
-
resolve(): Promise<{
|
|
6
|
-
db: any;
|
|
7
|
-
meta: () => {
|
|
8
|
-
domain: typeof eventsDomain;
|
|
9
|
-
schema: ReturnType<typeof eventsDomain.toInstantSchema>;
|
|
10
|
-
context?: unknown;
|
|
11
|
-
contextString?: string;
|
|
12
|
-
};
|
|
13
|
-
}>;
|
|
14
|
-
meta: () => {
|
|
15
|
-
domain: typeof eventsDomain;
|
|
16
|
-
schema: ReturnType<typeof eventsDomain.toInstantSchema>;
|
|
17
|
-
context?: unknown;
|
|
18
|
-
contextString?: string;
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
export declare function createEventsReactRuntime<Env extends Record<string, unknown>>(env: Env): EventsReactRuntime<Env>;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { eventsDomain } from "@ekairos/events";
|
|
2
|
-
import { getContextRuntime } from "@ekairos/events/runtime";
|
|
3
|
-
export function createEventsReactRuntime(env) {
|
|
4
|
-
const meta = () => ({
|
|
5
|
-
domain: eventsDomain,
|
|
6
|
-
schema: eventsDomain.toInstantSchema(),
|
|
7
|
-
context: typeof eventsDomain.context === "function" ? eventsDomain.context() : undefined,
|
|
8
|
-
contextString: typeof eventsDomain.contextString === "function"
|
|
9
|
-
? eventsDomain.contextString()
|
|
10
|
-
: undefined,
|
|
11
|
-
});
|
|
12
|
-
const runtime = {
|
|
13
|
-
env,
|
|
14
|
-
async db() {
|
|
15
|
-
const resolved = (await getContextRuntime(env));
|
|
16
|
-
return resolved.db;
|
|
17
|
-
},
|
|
18
|
-
async resolve() {
|
|
19
|
-
const db = await runtime.db();
|
|
20
|
-
return { db, meta };
|
|
21
|
-
},
|
|
22
|
-
meta,
|
|
23
|
-
};
|
|
24
|
-
return runtime;
|
|
25
|
-
}
|