ekairos 1.22.3 → 1.22.4-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/README.md CHANGED
@@ -1,123 +1,22 @@
1
1
  # ekairos
2
2
 
3
- Unified entrypoint for Ekairos core libraries.
3
+ Convenience package that re-exports the main Ekairos surfaces.
4
4
 
5
- `ekairos` re-exports:
5
+ ## Main entrypoints
6
6
 
7
- - `@ekairos/domain`
8
- - `@ekairos/thread`
7
+ - `ekairos` -> `@ekairos/events` + `@ekairos/domain`
8
+ - `ekairos/context` -> context runtime/builder surface
9
+ - `ekairos/dataset`
10
+ - `ekairos/domain`
9
11
 
10
- Use this package when you want one dependency and a clean DX surface for app teams.
11
-
12
- ## What You Build With It
13
-
14
- Ekairos is for domain-native AI applications:
15
-
16
- - model your business as domains,
17
- - run durable AI threads on top of those domains,
18
- - keep state, traces, and workflow execution aligned.
19
-
20
- ## Installation
21
-
22
- ```bash
23
- pnpm add ekairos
24
- ```
25
-
26
- ## Minimal App Bootstrap
27
-
28
- ```ts
29
- import "server-only";
30
- import { configureRuntime } from "ekairos/runtime";
31
- import { getOrgAdminDb } from "@/lib/admin-org-db";
32
- import appDomain from "@/lib/domain";
33
-
34
- export const runtimeConfig = configureRuntime({
35
- runtime: async (env: { orgId: string }) => {
36
- const db = await getOrgAdminDb(env.orgId, appDomain);
37
- return { db };
38
- },
39
- domain: { domain: appDomain },
40
- });
41
- ```
42
-
43
- The runtime bootstrap is single-source:
44
-
45
- - no per-thread runtime bootstrap,
46
- - no duplicated store wiring in app code,
47
- - no extra SDK wrapper required.
48
-
49
- Thread builds its store from the runtime-resolved db.
50
-
51
- ## Define a Thread
12
+ ## Example
52
13
 
53
14
  ```ts
54
- import { createThread } from "ekairos";
55
- import { tool } from "ai";
56
- import { z } from "zod";
15
+ import { createContext } from "ekairos/context";
57
16
 
58
- const demoThread = createThread<{ orgId: string; sessionId: string }>("demo")
59
- .context(async (stored, env) => ({ ...(stored.content ?? {}), ...env }))
60
- .narrative(() => "You are a reliable assistant.")
61
- .actions(() => ({
62
- ping: tool({
63
- description: "Return pong",
64
- inputSchema: z.object({ text: z.string().optional() }),
65
- execute: async ({ text }) => ({ pong: text ?? "ok" }),
66
- }),
67
- }))
68
- .model("openai/gpt-5.2")
17
+ const demoContext = createContext("demo")
18
+ .context((stored) => stored.content ?? {})
19
+ .narrative(() => "Demo context")
20
+ .actions(() => ({}))
69
21
  .build();
70
22
  ```
71
-
72
- ## Preconfigured Coding Thread (`thread/codex`)
73
-
74
- If your app uses Codex App Server:
75
-
76
- ```ts
77
- import { createCodexThreadBuilder } from "ekairos/thread";
78
-
79
- const codingBuilder = createCodexThreadBuilder({
80
- key: "code.agent",
81
- context: async (stored, env) => ({ ...(stored.content ?? {}), ...env }),
82
- executeCodex: async ({ input, env }) => {
83
- // call app server and return normalized output
84
- return {
85
- threadId: "t_1",
86
- turnId: "turn_1",
87
- assistantText: "completed",
88
- reasoningText: "",
89
- diff: "",
90
- toolParts: [],
91
- };
92
- },
93
- });
94
- ```
95
-
96
- ## Workflow Integration
97
-
98
- Ekairos threads are designed to run inside Workflow DevKit:
99
-
100
- - thread logic stays declarative,
101
- - side effects run in workflow-safe steps,
102
- - streams are resumable via workflow run streams.
103
-
104
- Important boundary:
105
-
106
- - workflow wrapper owns `"use workflow"`,
107
- - thread engine stays workflow-compatible but does not declare `"use workflow"` internally.
108
-
109
- ## Package Surface
110
-
111
- - `ekairos` -> root re-exports (`domain` + `thread` APIs)
112
- - `ekairos/domain` -> domain constructors and types
113
- - `ekairos/thread` -> thread runtime and builders
114
- - `ekairos/dataset` -> dataset tools (separate package support)
115
-
116
- ## DX Principles
117
-
118
- - Keep startup config short.
119
- - Keep thread definitions easy to read.
120
- - Keep runtime explicit and deterministic.
121
- - Keep domain as source of truth.
122
-
123
- This package is optimized for fast onboarding without sacrificing production durability.
package/dist/agent.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export * from '@ekairos/thread';
1
+ export * from '@ekairos/events';
2
2
  //# sourceMappingURL=agent.d.ts.map
package/dist/agent.js CHANGED
@@ -14,6 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- // Re-export agent functionality from @ekairos/thread
18
- __exportStar(require("@ekairos/thread"), exports);
17
+ // Re-export agent functionality from @ekairos/events
18
+ __exportStar(require("@ekairos/events"), exports);
19
19
  //# sourceMappingURL=agent.js.map
@@ -0,0 +1,2 @@
1
+ export * from "@ekairos/events";
2
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -14,5 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("@ekairos/thread"), exports);
18
- //# sourceMappingURL=thread.js.map
17
+ __exportStar(require("@ekairos/events"), exports);
18
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC"}
package/dist/dataset.d.ts CHANGED
@@ -1,17 +1,2 @@
1
- import { type InstantAdminDatabase } from "@instantdb/admin";
2
- import { datasetDomain, DatasetService } from "@ekairos/dataset";
3
- import type { SchemaOf } from "@ekairos/domain";
4
- export type DatasetDb = InstantAdminDatabase<SchemaOf<typeof datasetDomain>>;
5
- export type DatasetsOptions = {
6
- db?: DatasetDb;
7
- appId?: string;
8
- adminToken?: string;
9
- schema?: unknown;
10
- };
11
- export type DatasetsClient = {
12
- db: DatasetDb;
13
- domain: typeof datasetDomain;
14
- service: DatasetService;
15
- };
16
- export declare function datasets(options?: DatasetsOptions): DatasetsClient;
1
+ export * from "@ekairos/dataset";
17
2
  //# sourceMappingURL=dataset.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataset.d.ts","sourceRoot":"","sources":["../src/dataset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,SAAS,GAAG,oBAAoB,CAAC,QAAQ,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC;AAE7E,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,SAAS,CAAC;IACd,MAAM,EAAE,OAAO,aAAa,CAAC;IAC7B,OAAO,EAAE,cAAc,CAAC;CACzB,CAAC;AAeF,wBAAgB,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,cAAc,CAgCtE"}
1
+ {"version":3,"file":"dataset.d.ts","sourceRoot":"","sources":["../src/dataset.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
package/dist/dataset.js CHANGED
@@ -1,41 +1,18 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.datasets = datasets;
4
- const admin_1 = require("@instantdb/admin");
5
- const dataset_1 = require("@ekairos/dataset");
6
- function resolveAppId(options) {
7
- return (options.appId ??
8
- process.env.INSTANT_APP_ID ??
9
- process.env.NEXT_PUBLIC_INSTANT_APP_ID ??
10
- "");
11
- }
12
- function resolveAdminToken(options) {
13
- return options.adminToken ?? process.env.INSTANT_APP_ADMIN_TOKEN ?? "";
14
- }
15
- function datasets(options = {}) {
16
- if (options.db) {
17
- return {
18
- db: options.db,
19
- domain: dataset_1.datasetDomain,
20
- service: new dataset_1.DatasetService(options.db),
21
- };
22
- }
23
- const appId = resolveAppId(options);
24
- const adminToken = resolveAdminToken(options);
25
- if (!appId || !adminToken) {
26
- throw new Error("datasets() requires Instant credentials. Provide { db } or { appId, adminToken }.");
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
27
7
  }
28
- const schema = options.schema ??
29
- (typeof dataset_1.datasetDomain.toInstantSchema === "function"
30
- ? dataset_1.datasetDomain.toInstantSchema()
31
- : typeof dataset_1.datasetDomain.schema === "function"
32
- ? dataset_1.datasetDomain.schema()
33
- : undefined);
34
- const db = (0, admin_1.init)({ appId, adminToken, ...(schema ? { schema } : {}) });
35
- return {
36
- db,
37
- domain: dataset_1.datasetDomain,
38
- service: new dataset_1.DatasetService(db),
39
- };
40
- }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("@ekairos/dataset"), exports);
41
18
  //# sourceMappingURL=dataset.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataset.js","sourceRoot":"","sources":["../src/dataset.ts"],"names":[],"mappings":";;AAgCA,4BAgCC;AAhED,4CAAmE;AACnE,8CAAiE;AAkBjE,SAAS,YAAY,CAAC,OAAwB;IAC5C,OAAO,CACL,OAAO,CAAC,KAAK;QACb,OAAO,CAAC,GAAG,CAAC,cAAc;QAC1B,OAAO,CAAC,GAAG,CAAC,0BAA0B;QACtC,EAAE,CACH,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAwB;IACjD,OAAO,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC;AACzE,CAAC;AAED,SAAgB,QAAQ,CAAC,UAA2B,EAAE;IACpD,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;QACf,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,MAAM,EAAE,uBAAa;YACrB,OAAO,EAAE,IAAI,wBAAc,CAAC,OAAO,CAAC,EAAE,CAAC;SACxC,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAE9C,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GACV,OAAO,CAAC,MAAM;QACd,CAAC,OAAQ,uBAAqB,CAAC,eAAe,KAAK,UAAU;YAC3D,CAAC,CAAE,uBAAqB,CAAC,eAAe,EAAE;YAC1C,CAAC,CAAC,OAAQ,uBAAqB,CAAC,MAAM,KAAK,UAAU;gBACnD,CAAC,CAAE,uBAAqB,CAAC,MAAM,EAAE;gBACjC,CAAC,CAAC,SAAS,CAAC,CAAC;IACnB,MAAM,EAAE,GAAG,IAAA,YAAI,EAAC,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAc,CAAC;IAEnF,OAAO;QACL,EAAE;QACF,MAAM,EAAE,uBAAa;QACrB,OAAO,EAAE,IAAI,wBAAc,CAAC,EAAE,CAAC;KAChC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"dataset.js","sourceRoot":"","sources":["../src/dataset.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export * from '@ekairos/thread';
1
+ export * from '@ekairos/events';
2
2
  export * from '@ekairos/domain';
3
3
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -14,8 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- // Re-export todo de thread (el paquete principal)
18
- __exportStar(require("@ekairos/thread"), exports);
17
+ // Re-export principal de context/events
18
+ __exportStar(require("@ekairos/events"), exports);
19
19
  // Re-export domain utilities
20
20
  __exportStar(require("@ekairos/domain"), exports);
21
21
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAkD;AAClD,kDAAgC;AAEhC,6BAA6B;AAC7B,kDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAwC;AACxC,kDAAgC;AAEhC,6BAA6B;AAC7B,kDAAgC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ekairos",
3
- "version": "1.22.3",
3
+ "version": "1.22.4-beta.development.0",
4
4
  "description": "Ekairos - AI Stories and Workflows Runtime",
5
5
  "type": "commonjs",
6
6
  "main": "dist/index.js",
@@ -34,11 +34,11 @@
34
34
  "require": "./dist/dataset.js",
35
35
  "default": "./dist/dataset.js"
36
36
  },
37
- "./thread": {
38
- "types": "./dist/thread.d.ts",
39
- "import": "./dist/thread.js",
40
- "require": "./dist/thread.js",
41
- "default": "./dist/thread.js"
37
+ "./context": {
38
+ "types": "./dist/context.d.ts",
39
+ "import": "./dist/context.js",
40
+ "require": "./dist/context.js",
41
+ "default": "./dist/context.js"
42
42
  },
43
43
  "./domain": {
44
44
  "types": "./dist/domain.d.ts",
@@ -73,10 +73,10 @@
73
73
  },
74
74
  "dependencies": {
75
75
  "@ekairos/dataset": "^1.21.85-beta.0",
76
- "@ekairos/domain": "^1.22.3",
77
- "@ekairos/thread": "^1.22.3",
76
+ "@ekairos/domain": "^1.22.4-beta.development.0",
77
+ "@ekairos/events": "^1.22.4-beta.development.0",
78
78
  "@instantdb/admin": "0.22.126",
79
- "ekairos-cli": "^1.22.3"
79
+ "ekairos-cli": "^1.22.4-beta.development.0"
80
80
  },
81
81
  "devDependencies": {
82
82
  "@ekairos/tsconfig": "workspace:*",
package/dist/thread.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from "@ekairos/thread";
2
- //# sourceMappingURL=thread.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"thread.d.ts","sourceRoot":"","sources":["../src/thread.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"thread.js","sourceRoot":"","sources":["../src/thread.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC"}