@ekairos/events 1.22.34-beta.development.0 → 1.22.35

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 (74) hide show
  1. package/README.md +58 -83
  2. package/dist/codex.d.ts +11 -2
  3. package/dist/codex.js +16 -8
  4. package/dist/context.action-calls.d.ts +48 -0
  5. package/dist/context.action-calls.js +123 -0
  6. package/dist/context.action.d.ts +55 -0
  7. package/dist/context.action.js +25 -0
  8. package/dist/context.builder.d.ts +71 -43
  9. package/dist/context.builder.js +123 -28
  10. package/dist/context.config.d.ts +2 -1
  11. package/dist/context.config.js +8 -3
  12. package/dist/context.contract.d.ts +2 -4
  13. package/dist/context.contract.js +3 -9
  14. package/dist/context.d.ts +3 -2
  15. package/dist/context.engine.d.ts +75 -46
  16. package/dist/context.engine.js +538 -302
  17. package/dist/context.events.js +28 -87
  18. package/dist/context.js +1 -0
  19. package/dist/context.part-identity.d.ts +40 -0
  20. package/dist/context.part-identity.js +270 -0
  21. package/dist/context.parts.d.ts +389 -164
  22. package/dist/context.parts.js +343 -218
  23. package/dist/context.registry.d.ts +1 -1
  24. package/dist/context.runtime.d.ts +21 -0
  25. package/dist/context.runtime.js +39 -0
  26. package/dist/context.step-stream.d.ts +16 -2
  27. package/dist/context.step-stream.js +58 -16
  28. package/dist/context.store.d.ts +63 -10
  29. package/dist/context.stream.d.ts +14 -4
  30. package/dist/context.stream.js +31 -3
  31. package/dist/domain.d.ts +1 -0
  32. package/dist/domain.js +1 -0
  33. package/dist/index.d.ts +13 -10
  34. package/dist/index.js +7 -6
  35. package/dist/react.context-event-parts.d.ts +18 -0
  36. package/dist/react.context-event-parts.js +509 -0
  37. package/dist/react.d.ts +7 -42
  38. package/dist/react.js +4 -87
  39. package/dist/react.step-stream.d.ts +39 -0
  40. package/dist/react.step-stream.js +625 -0
  41. package/dist/react.types.d.ts +121 -0
  42. package/dist/react.types.js +2 -0
  43. package/dist/react.use-context.d.ts +7 -0
  44. package/dist/react.use-context.js +867 -0
  45. package/dist/reactors/ai-sdk.chunk-map.d.ts +1 -0
  46. package/dist/reactors/ai-sdk.chunk-map.js +56 -5
  47. package/dist/reactors/ai-sdk.reactor.d.ts +8 -5
  48. package/dist/reactors/ai-sdk.reactor.js +10 -9
  49. package/dist/reactors/ai-sdk.step.d.ts +6 -6
  50. package/dist/reactors/ai-sdk.step.js +32 -24
  51. package/dist/reactors/scripted.reactor.d.ts +7 -4
  52. package/dist/reactors/types.d.ts +23 -8
  53. package/dist/runtime.d.ts +6 -0
  54. package/dist/runtime.js +9 -0
  55. package/dist/runtime.step.js +2 -2
  56. package/dist/schema.d.ts +268 -2
  57. package/dist/schema.js +5 -9
  58. package/dist/steps/do-context-stream-step.d.ts +2 -2
  59. package/dist/steps/do-context-stream-step.js +6 -8
  60. package/dist/steps/durable.steps.d.ts +28 -0
  61. package/dist/steps/durable.steps.js +34 -0
  62. package/dist/steps/store.steps.d.ts +121 -39
  63. package/dist/steps/store.steps.js +266 -111
  64. package/dist/steps/stream.steps.d.ts +36 -3
  65. package/dist/steps/stream.steps.js +137 -14
  66. package/dist/steps/trace.steps.d.ts +4 -2
  67. package/dist/steps/trace.steps.js +26 -8
  68. package/dist/stores/instant.store.d.ts +15 -11
  69. package/dist/stores/instant.store.js +155 -6
  70. package/dist/tools-to-model-tools.d.ts +39 -3
  71. package/dist/tools-to-model-tools.js +63 -6
  72. package/package.json +20 -6
  73. package/dist/context.toolcalls.d.ts +0 -60
  74. package/dist/context.toolcalls.js +0 -117
@@ -1,16 +1,22 @@
1
- import type { Tool, UIMessageChunk } from "ai";
1
+ import type { ModelMessage, UIMessageChunk } from "ai";
2
+ import type { DomainLike } from "@ekairos/domain";
2
3
  import type { ContextEnvironment } from "./context.config.js";
3
- import type { ContextExecution, ContextItem, ContextIdentifier, StoredContext } from "./context.store.js";
4
+ import type { ContextTool } from "./context.action.js";
5
+ import type { ContextRuntime, ContextRuntimeHandleForDomain, ContextRuntimeForDomain } from "./context.runtime.js";
6
+ import { eventsDomain } from "./schema.js";
7
+ import type { ContextExecution, ContextItem, ContextIdentifier, ContextResource, StoredContext } from "./context.store.js";
4
8
  import type { ContextSkillPackage } from "./context.skill.js";
5
9
  import { type ContextReactor } from "./context.reactor.js";
6
10
  import { getClientResumeHookUrl, toolApprovalHookToken, toolApprovalWebhookToken } from "./context.hooks.js";
7
- export interface ContextOptions<Context = any, Env extends ContextEnvironment = ContextEnvironment> {
11
+ export interface ContextOptions<Context = any, Env extends ContextEnvironment = ContextEnvironment, RequiredDomain extends DomainLike = typeof eventsDomain> {
8
12
  onContextCreated?: (args: {
9
13
  env: Env;
14
+ runtime: ContextRuntimeHandleForDomain<Env, RequiredDomain>;
10
15
  context: StoredContext<Context>;
11
16
  }) => void | Promise<void>;
12
17
  onContextUpdated?: (args: {
13
18
  env: Env;
19
+ runtime: ContextRuntimeHandleForDomain<Env, RequiredDomain>;
14
20
  context: StoredContext<Context>;
15
21
  }) => void | Promise<void>;
16
22
  onEventCreated?: (event: ContextItem) => void | Promise<void>;
@@ -22,7 +28,7 @@ type ContextBenchmarkRecorder = {
22
28
  add?(name: string, value: number): void;
23
29
  getCurrentStage?(): string | undefined;
24
30
  };
25
- export declare function runContextReactionDirect<Context, Env extends ContextEnvironment = ContextEnvironment>(context: ContextEngine<Context, Env>, triggerEvent: ContextItem, params: ContextReactParams<Env>): Promise<ContextReactResult<Context>>;
31
+ export declare function runContextReactionDirect<Context, Env extends ContextEnvironment = ContextEnvironment, RequiredDomain extends DomainLike = typeof eventsDomain, Runtime extends ContextRuntime<Env> = ContextRuntime<Env>>(context: ContextEngine<Context, Env, RequiredDomain>, triggerEvent: ContextItem, params: ContextReactParams<Env, RequiredDomain, Runtime>): Promise<ContextReactResult<Context>>;
26
32
  export interface ContextStreamOptions {
27
33
  /**
28
34
  * Maximum loop iterations (LLM call → tool execution → repeat).
@@ -44,14 +50,6 @@ export interface ContextStreamOptions {
44
50
  * Default: true.
45
51
  */
46
52
  sendFinish?: boolean;
47
- /**
48
- * If true, the story loop runs silently (no UI streaming output).
49
- *
50
- * Persistence (contexts/events/executions) still happens normally.
51
- *
52
- * Default: false.
53
- */
54
- silent?: boolean;
55
53
  /**
56
54
  * Optional writable stream used by direct/non-durable execution.
57
55
  *
@@ -67,8 +65,8 @@ export interface ContextStreamOptions {
67
65
  * be a `"use-step"` function (so it can be serialized by reference).
68
66
  */
69
67
  export type ContextModelInit = string | (() => Promise<any>);
70
- export type ContextReactParams<Env extends ContextEnvironment = ContextEnvironment> = {
71
- env: Env;
68
+ export type ContextReactParams<Env extends ContextEnvironment = ContextEnvironment, RequiredDomain extends DomainLike = typeof eventsDomain, Runtime extends ContextRuntime<Env> = ContextRuntime<Env>> = {
69
+ runtime: ContextRuntimeForDomain<Runtime, RequiredDomain>;
72
70
  /**
73
71
  * Context selector (exclusive: `{ id }` OR `{ key }`).
74
72
  * - `{ id }` resolves a concrete context id.
@@ -87,24 +85,61 @@ export type ContextReactParams<Env extends ContextEnvironment = ContextEnvironme
87
85
  trigger: ContextItem;
88
86
  reaction: ContextItem;
89
87
  execution: ContextExecution;
88
+ returnValueHookToken?: string | null;
90
89
  };
90
+ __initialContent?: unknown;
91
91
  __benchmark?: ContextBenchmarkRecorder;
92
92
  };
93
- export type ContextReactResult<Context = any> = {
93
+ export type ContextDurableReactParams<Env extends ContextEnvironment = ContextEnvironment, RequiredDomain extends DomainLike = typeof eventsDomain, Runtime extends ContextRuntime<Env> = ContextRuntime<Env>> = Omit<ContextReactParams<Env, RequiredDomain, Runtime>, "durable"> & {
94
+ durable?: true | undefined;
95
+ };
96
+ export type ContextDirectReactParams<Env extends ContextEnvironment = ContextEnvironment, RequiredDomain extends DomainLike = typeof eventsDomain, Runtime extends ContextRuntime<Env> = ContextRuntime<Env>> = Omit<ContextReactParams<Env, RequiredDomain, Runtime>, "durable"> & {
97
+ durable: false;
98
+ };
99
+ export type ContextReactBase<Context = any> = {
94
100
  context: StoredContext<Context>;
95
101
  trigger: ContextItem;
96
102
  reaction: ContextItem;
97
103
  execution: ContextExecution;
98
104
  };
99
- export type ContextDurableWorkflowPayload<Env extends ContextEnvironment = ContextEnvironment> = {
105
+ export type ContextReactFinalResult<Context = any> = ContextReactBase<Context>;
106
+ export type ContextDirectRun<Context = any> = Promise<ContextReactFinalResult<Context>>;
107
+ export type ContextWorkflowRun<Context = any> = {
108
+ runId: string;
109
+ status: Promise<"pending" | "running" | "completed" | "failed" | "cancelled">;
110
+ returnValue: Promise<ContextReactFinalResult<Context>>;
111
+ returnValueHook?: {
112
+ token: string;
113
+ parentWorkflowRunId: string;
114
+ } | null;
115
+ };
116
+ export type ContextReactRun<Context = any> = ContextWorkflowRun<Context> | ContextDirectRun<Context>;
117
+ export type ContextReactResult<Context = any, Run extends ContextReactRun<Context> = ContextReactRun<Context>> = ContextReactBase<Context> & {
118
+ run?: Run;
119
+ };
120
+ export type ContextDurableWorkflowPayload<Env extends ContextEnvironment = ContextEnvironment, RequiredDomain extends DomainLike = typeof eventsDomain, Runtime extends ContextRuntime<Env> = ContextRuntime<Env>> = {
100
121
  contextKey: string;
101
- env: Env;
122
+ runtime: ContextRuntimeForDomain<Runtime, RequiredDomain>;
102
123
  context?: ContextIdentifier | null;
103
124
  triggerEvent: ContextItem;
104
125
  options?: Omit<ContextStreamOptions, "writable">;
105
- bootstrap: NonNullable<ContextReactParams<Env>["__bootstrap"]>;
126
+ bootstrap: NonNullable<ContextReactParams<Env, RequiredDomain, Runtime>["__bootstrap"]>;
127
+ };
128
+ export type ContextDurableWorkflowFunction<Context = any, Env extends ContextEnvironment = ContextEnvironment, RequiredDomain extends DomainLike = typeof eventsDomain, Runtime extends ContextRuntime<Env> = ContextRuntime<Env>> = (payload: ContextDurableWorkflowPayload<Env, RequiredDomain, Runtime>) => Promise<ContextReactFinalResult<Context>>;
129
+ export type ContextToolExecuteContext<Context = any, Env extends ContextEnvironment = ContextEnvironment, RequiredDomain extends DomainLike = typeof eventsDomain, Runtime extends ContextRuntime<Env> = ContextRuntime<Env>> = {
130
+ runtime: ContextRuntimeForDomain<Runtime, RequiredDomain>;
131
+ context: StoredContext<Context>;
132
+ contextIdentifier: ContextIdentifier;
133
+ toolCallId: string;
134
+ messages: ModelMessage[];
135
+ eventId: string;
136
+ executionId: string;
137
+ triggerEventId: string;
138
+ contextId: string;
139
+ stepId: string;
140
+ iteration: number;
141
+ contextStepStream?: WritableStream<string>;
106
142
  };
107
- export type ContextDurableWorkflowFunction<Context = any, Env extends ContextEnvironment = ContextEnvironment> = (payload: ContextDurableWorkflowPayload<Env>) => Promise<ContextReactResult<Context>>;
108
143
  export { toolApprovalHookToken, toolApprovalWebhookToken, getClientResumeHookUrl };
109
144
  /**
110
145
  * Context-level tool type.
@@ -114,13 +149,6 @@ export { toolApprovalHookToken, toolApprovalWebhookToken, getClientResumeHookUrl
114
149
  *
115
150
  * Default behavior when omitted: `auto === true`.
116
151
  */
117
- export type ContextTool = Tool & {
118
- /**
119
- * If `false`, this action is not intended for automatic execution by the engine.
120
- * (Validation/enforcement can be added by callers; default is `true`.)
121
- */
122
- auto?: boolean;
123
- };
124
152
  /**
125
153
  * ## Context loop continuation signal
126
154
  *
@@ -132,8 +160,9 @@ export type ContextTool = Tool & {
132
160
  * (No imports required in callers.)
133
161
  */
134
162
  export type ShouldContinue = boolean;
135
- export type ContextShouldContinueArgs<Context = any, Env extends ContextEnvironment = ContextEnvironment> = {
163
+ export type ContextShouldContinueArgs<Context = any, Env extends ContextEnvironment = ContextEnvironment, RequiredDomain extends DomainLike = typeof eventsDomain> = {
136
164
  env: Env;
165
+ runtime: ContextRuntimeHandleForDomain<Env, RequiredDomain>;
137
166
  context: StoredContext<Context>;
138
167
  /**
139
168
  * The persisted reaction event **so far** for the current streaming run.
@@ -162,14 +191,17 @@ export type ContextShouldContinueArgs<Context = any, Env extends ContextEnvironm
162
191
  errorText?: string;
163
192
  }>;
164
193
  };
165
- export declare abstract class ContextEngine<Context, Env extends ContextEnvironment = ContextEnvironment> {
166
- protected readonly opts: ContextOptions<Context, Env>;
194
+ export declare abstract class ContextEngine<Context, Env extends ContextEnvironment = ContextEnvironment, RequiredDomain extends DomainLike = typeof eventsDomain> {
195
+ protected readonly opts: ContextOptions<Context, Env, RequiredDomain>;
167
196
  private readonly reactor;
168
- constructor(opts?: ContextOptions<Context, Env>, reactor?: ContextReactor<Context, Env>);
169
- protected abstract initialize(context: StoredContext<Context>, env: Env): Promise<Context> | Context;
170
- protected abstract buildSystemPrompt(context: StoredContext<Context>, env: Env): Promise<string> | string;
171
- protected abstract buildTools(context: StoredContext<Context>, env: Env): Promise<Record<string, ContextTool>> | Record<string, ContextTool>;
172
- protected buildSkills(_context: StoredContext<Context>, _env: Env): Promise<ContextSkillPackage[]>;
197
+ constructor(opts?: ContextOptions<Context, Env, RequiredDomain>, reactor?: ContextReactor<Context, Env, RequiredDomain>);
198
+ protected abstract initialize(context: StoredContext<Context>, env: Env, runtime: ContextRuntimeHandleForDomain<Env, RequiredDomain>): Promise<Context> | Context;
199
+ protected abstract buildSystemPrompt(context: StoredContext<Context>, env: Env, runtime: ContextRuntimeHandleForDomain<Env, RequiredDomain>): Promise<string> | string;
200
+ protected describeContext(_content: Context, _context: StoredContext<Context>, _env: Env, _runtime: ContextRuntimeHandleForDomain<Env, RequiredDomain>): Promise<string | null>;
201
+ protected defineGoal(_content: Context, _context: StoredContext<Context>, _env: Env, _runtime: ContextRuntimeHandleForDomain<Env, RequiredDomain>): Promise<string | null>;
202
+ protected defineResources(_content: Context, _context: StoredContext<Context>, _env: Env, _runtime: ContextRuntimeHandleForDomain<Env, RequiredDomain>): Promise<ContextResource[]>;
203
+ protected abstract buildTools(context: StoredContext<Context>, env: Env, runtime: ContextRuntimeHandleForDomain<Env, RequiredDomain>): Promise<Record<string, ContextTool<Context, Env, RequiredDomain>>> | Record<string, ContextTool<Context, Env, RequiredDomain>>;
204
+ protected buildSkills(_context: StoredContext<Context>, _env: Env, _runtime: ContextRuntimeHandleForDomain<Env, RequiredDomain>): Promise<ContextSkillPackage[]>;
173
205
  /**
174
206
  * First-class event expansion stage (runs on every iteration of the durable loop).
175
207
  *
@@ -187,9 +219,9 @@ export declare abstract class ContextEngine<Context, Env extends ContextEnvironm
187
219
  * the builder) so results are durable and replay-safe.
188
220
  * - If it’s pure/deterministic, it can run in workflow context.
189
221
  */
190
- protected expandEvents(events: ContextItem[], _context: StoredContext<Context>, _env: Env): Promise<ContextItem[]>;
191
- protected getModel(_context: StoredContext<Context>, _env: Env): ContextModelInit;
192
- protected getReactor(_context: StoredContext<Context>, _env: Env): ContextReactor<Context, Env>;
222
+ protected expandEvents(events: ContextItem[], _context: StoredContext<Context>, _env: Env, _runtime: ContextRuntimeHandleForDomain<Env, RequiredDomain>): Promise<ContextItem[]>;
223
+ protected getModel(_context: StoredContext<Context>, _env: Env, _runtime: ContextRuntimeHandleForDomain<Env, RequiredDomain>): ContextModelInit;
224
+ protected getReactor(_context: StoredContext<Context>, _env: Env, _runtime: ContextRuntimeHandleForDomain<Env, RequiredDomain>): ContextReactor<Context, Env, RequiredDomain>;
193
225
  /**
194
226
  * Context stop/continue hook.
195
227
  *
@@ -198,19 +230,16 @@ export declare abstract class ContextEngine<Context, Env extends ContextEnvironm
198
230
  *
199
231
  * Default: `true` (continue).
200
232
  */
201
- protected shouldContinue(_args: ContextShouldContinueArgs<Context, Env>): Promise<ShouldContinue>;
202
- react(triggerEvent: ContextItem, params: ContextReactParams<Env>): Promise<ContextReactResult<Context>>;
233
+ protected shouldContinue(_args: ContextShouldContinueArgs<Context, Env, RequiredDomain>): Promise<ShouldContinue>;
234
+ react<Runtime extends ContextRuntime<Env>>(triggerEvent: ContextItem, params: ContextDurableReactParams<Env, RequiredDomain, Runtime>): Promise<ContextReactResult<Context, ContextWorkflowRun<Context>>>;
235
+ react<Runtime extends ContextRuntime<Env>>(triggerEvent: ContextItem, params: ContextDirectReactParams<Env, RequiredDomain, Runtime>): Promise<ContextReactResult<Context, ContextDirectRun<Context>>>;
236
+ react<Runtime extends ContextRuntime<Env>>(triggerEvent: ContextItem, params: ContextReactParams<Env, RequiredDomain, Runtime>): Promise<ContextReactResult<Context>>;
203
237
  private static prepareExecutionShell;
204
238
  private static startDurable;
205
- static runDirect<Context, Env extends ContextEnvironment>(story: ContextEngine<Context, Env>, triggerEvent: ContextItem, params: ContextReactParams<Env>): Promise<{
206
- context: StoredContext<Context>;
207
- trigger: ContextItem;
208
- reaction: ContextItem;
209
- execution: ContextExecution;
210
- }>;
239
+ static runDirect<Context, Env extends ContextEnvironment, RequiredDomain extends DomainLike, Runtime extends ContextRuntime<Env>>(story: ContextEngine<Context, Env, RequiredDomain>, triggerEvent: ContextItem, params: ContextReactParams<Env, RequiredDomain, Runtime>): Promise<ContextReactResult<Context, ContextDirectRun<Context>>>;
211
240
  /**
212
241
  * @deprecated Use `react()` instead. Kept for backwards compatibility.
213
242
  */
214
- stream(triggerEvent: ContextItem, params: ContextReactParams<Env>): Promise<ContextReactResult<Context>>;
243
+ stream<Runtime extends ContextRuntime<Env>>(triggerEvent: ContextItem, params: ContextReactParams<Env, RequiredDomain, Runtime>): Promise<ContextReactResult<Context, ContextWorkflowRun<Context>>>;
215
244
  private callOnEnd;
216
245
  }