@stateflowx/runtime 0.2.6 → 0.3.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.
Files changed (63) hide show
  1. package/README.md +78 -28
  2. package/dist/__tests__/runtime-direct-usage.spec.d.ts +1 -0
  3. package/dist/__tests__/runtime-direct-usage.spec.js +26 -0
  4. package/dist/__tests__/runtime-direct-usage.spec.js.map +1 -0
  5. package/dist/core/artifact/artifact.interface.d.ts +8 -0
  6. package/dist/core/artifact/artifact.interface.js +2 -0
  7. package/dist/core/artifact/artifact.interface.js.map +1 -0
  8. package/dist/core/events/dispatchers/event-dispatcher.interface.d.ts +4 -0
  9. package/dist/core/events/dispatchers/event-dispatcher.interface.js +2 -0
  10. package/dist/core/events/dispatchers/event-dispatcher.interface.js.map +1 -0
  11. package/dist/core/events/dispatchers/ws/websocket-event-dispatcher.d.ts +8 -0
  12. package/dist/core/events/dispatchers/ws/websocket-event-dispatcher.js +16 -0
  13. package/dist/core/events/dispatchers/ws/websocket-event-dispatcher.js.map +1 -0
  14. package/dist/core/events/runtime-event-bus.d.ts +17 -0
  15. package/dist/core/events/runtime-event-bus.js +14 -0
  16. package/dist/core/events/runtime-event-bus.js.map +1 -0
  17. package/dist/core/exec/execution.interface.d.ts +19 -0
  18. package/dist/core/exec/execution.interface.js +12 -0
  19. package/dist/core/exec/execution.interface.js.map +1 -0
  20. package/dist/core/init/initialize-execution-artifacts.d.ts +3 -0
  21. package/dist/core/init/initialize-execution-artifacts.js +7 -0
  22. package/dist/core/init/initialize-execution-artifacts.js.map +1 -0
  23. package/dist/core/init/initialize-execution-events.d.ts +2 -0
  24. package/dist/core/init/initialize-execution-events.js +5 -0
  25. package/dist/core/init/initialize-execution-events.js.map +1 -0
  26. package/dist/core/init/initialize-execution.d.ts +3 -0
  27. package/dist/core/init/initialize-execution.js +19 -0
  28. package/dist/core/init/initialize-execution.js.map +1 -0
  29. package/dist/core/init/initialize-runtime-capabilities.d.ts +3 -0
  30. package/dist/core/init/initialize-runtime-capabilities.js +10 -0
  31. package/dist/core/init/initialize-runtime-capabilities.js.map +1 -0
  32. package/dist/core/runtime/bootstrap.js +9 -1
  33. package/dist/core/runtime/bootstrap.js.map +1 -1
  34. package/dist/core/runtime/create-runtime-config.interface.d.ts +9 -0
  35. package/dist/core/runtime/create-runtime-context.js +1 -0
  36. package/dist/core/runtime/create-runtime-context.js.map +1 -1
  37. package/dist/core/runtime/create-runtime.js +30 -16
  38. package/dist/core/runtime/create-runtime.js.map +1 -1
  39. package/dist/core/runtime/normalize-runtime-config.d.ts +3 -0
  40. package/dist/core/runtime/normalize-runtime-config.js +20 -0
  41. package/dist/core/runtime/normalize-runtime-config.js.map +1 -0
  42. package/dist/core/runtime/runtime-app-init.js +38 -11
  43. package/dist/core/runtime/runtime-app-init.js.map +1 -1
  44. package/dist/core/runtime/runtime-config.interface.d.ts +13 -0
  45. package/dist/core/runtime/runtime-context.interface.d.ts +2 -0
  46. package/dist/core/service/providers/http.service.js +16 -0
  47. package/dist/core/service/providers/http.service.js.map +1 -1
  48. package/dist/core/transport/ws/ws.transport.js +7 -1
  49. package/dist/core/transport/ws/ws.transport.js.map +1 -1
  50. package/dist/examples/ping-pong/ping-pong.app.spec.js +6 -0
  51. package/dist/examples/ping-pong/ping-pong.app.spec.js.map +1 -1
  52. package/dist/http/bootstrap-http-runtime.js.map +1 -1
  53. package/dist/http-runtime.module.js +2 -6
  54. package/dist/http-runtime.module.js.map +1 -1
  55. package/dist/main.js +34 -4
  56. package/dist/main.js.map +1 -1
  57. package/dist/runtime.spec.js.map +1 -1
  58. package/dist/websocket-runtime.module.js +3 -3
  59. package/dist/websocket-runtime.module.js.map +1 -1
  60. package/package.json +1 -1
  61. package/dist/app.module.d.ts +0 -2
  62. package/dist/app.module.js +0 -20
  63. package/dist/app.module.js.map +0 -1
package/README.md CHANGED
@@ -1,14 +1,16 @@
1
1
  # @stateflowx/runtime
2
2
 
3
- StateFlowX Runtime is a lightweight orchestration runtime for building operational workflows, realtime systems, and AI-driven execution pipelines using pluggable transports and providers.
3
+ StateFlowX Runtime is a lightweight orchestration runtime for building operational workflows, realtime systems, and AI-driven execution pipelines using pluggable transports, providers, and realtime runtime events.
4
4
 
5
5
  ## Features
6
6
 
7
7
  - JSON-RPC over WebSockets
8
8
  - Runtime composition
9
- - Pluggable provider architecture
10
- - Transport abstraction
9
+ - Runtime event streaming
10
+ - Workflow lifecycle events
11
+ - Realtime observability foundation
11
12
  - Dynamic workflow registration
13
+ - Pluggable provider architecture
12
14
  - Service orchestration foundation
13
15
  - Realtime execution flow
14
16
  - NestJS-based runtime infrastructure
@@ -35,6 +37,8 @@ This demonstrates:
35
37
  - WebSocket runtime hosting
36
38
  - JSON-RPC transport
37
39
  - dynamic runtime initialization
40
+ - workflow execution
41
+ - runtime event streaming
38
42
  - Gemini provider integration
39
43
  - remote workflow execution
40
44
 
@@ -52,14 +56,14 @@ import {
52
56
  GeminiProvider,
53
57
  JsonRpcProtocol,
54
58
  WebSocketTransport,
59
+ WebSocketEventDispatcher,
55
60
  } from '@stateflowx/runtime';
56
61
 
57
62
  import { WebSocketServer } from 'ws';
58
63
 
59
- const server =
60
- new WebSocketServer({
61
- port: 3000,
62
- });
64
+ const server = new WebSocketServer({
65
+ port: 3000,
66
+ });
63
67
 
64
68
  const transport =
65
69
  new WebSocketTransport(server);
@@ -67,28 +71,44 @@ const transport =
67
71
  const protocol =
68
72
  new JsonRpcProtocol();
69
73
 
70
- const runtime =
71
- createRuntime({
72
- transport,
74
+ const runtime = createRuntime({
75
+ transport,
73
76
 
74
- protocol,
77
+ protocol,
75
78
 
76
- providers: [
77
- {
78
- name: 'default',
79
+ providers: [
80
+ {
81
+ name: 'default',
79
82
 
80
- provider:
81
- new GeminiProvider(),
82
- },
83
- ],
83
+ provider:
84
+ new GeminiProvider(),
85
+ },
86
+ ],
84
87
 
85
- services: [],
86
- });
88
+ services: [],
89
+ });
90
+
91
+ //
92
+ // Realtime runtime event dispatcher
93
+ //
94
+ const dispatcher =
95
+ new WebSocketEventDispatcher(
96
+ server
97
+ );
98
+
99
+ runtime.events.on(
100
+ '*',
101
+
102
+ async (event) => {
103
+ await dispatcher.dispatch(
104
+ event
105
+ );
106
+ }
107
+ );
87
108
 
88
109
  bootstrapRuntime(
89
- [
90
- new RuntimeInitializeApp(),
91
- ],
110
+ [new RuntimeInitializeApp()],
111
+
92
112
  runtime
93
113
  );
94
114
 
@@ -104,28 +124,58 @@ console.log(
104
124
  ```text
105
125
  Client
106
126
  ->
107
- HTTP / WebSocket
127
+ WebSocket Transport
108
128
  ->
109
- JSON-RPC
129
+ JSON-RPC Protocol
110
130
  ->
111
131
  StateFlowX Runtime
112
132
  ->
113
133
  Workflow Execution
114
134
  ->
115
- Services
135
+ Services / Providers
136
+ ->
137
+ Runtime Events
138
+ ->
139
+ Realtime Client Observability
140
+ ```
141
+
142
+ ---
143
+
144
+ ## Runtime Event Flow
145
+
146
+ ```text
147
+ workflow.started
148
+ ->
149
+ service.execute
116
150
  ->
117
- AI Providers
151
+ provider.generate
118
152
  ->
119
- Structured Response
153
+ workflow.completed
154
+ ->
155
+ realtime websocket event stream
120
156
  ```
121
157
 
122
158
  ---
123
159
 
160
+ ## Current Transport Support
161
+
162
+ StateFlowX V1 currently standardizes on:
163
+
164
+ - JSON-RPC
165
+ - WebSocket transport
166
+ - realtime runtime event streaming
167
+
168
+ Additional transport and protocol adapters may be explored in future releases.
169
+
170
+ ---
171
+
124
172
  ## Related Demos
125
173
 
126
174
  - React Client Demo:
127
175
  <https://github.com/bws9000/react-stateflowx-demo>
128
176
 
177
+ ---
178
+
129
179
  ## Current Status
130
180
 
131
181
  StateFlowX Runtime is currently experimental and under active development.
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,26 @@
1
+ import { describe, expect, it, jest } from '@jest/globals';
2
+ import { createRuntime } from '../core/runtime/create-runtime.js';
3
+ import { GeminiProvider } from '../core/provider/providers/gemini.provider.js';
4
+ describe('Runtime Direct Usage', () => {
5
+ it('should bootstrap runtime without client sdk', async () => {
6
+ const mockTransport = {
7
+ onMessage: jest.fn(),
8
+ send: jest.fn(),
9
+ start: jest.fn(),
10
+ };
11
+ const mockProtocol = {};
12
+ const runtime = createRuntime({
13
+ transport: mockTransport,
14
+ protocol: mockProtocol,
15
+ providers: [
16
+ {
17
+ name: 'gemini',
18
+ provider: new GeminiProvider(),
19
+ },
20
+ ],
21
+ services: [],
22
+ });
23
+ expect(runtime).toBeDefined();
24
+ });
25
+ });
26
+ //# sourceMappingURL=runtime-direct-usage.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-direct-usage.spec.js","sourceRoot":"","sources":["../../src/__tests__/runtime-direct-usage.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAE/E,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,aAAa,GAAG;YACpB,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE;YACpB,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;YACf,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;SACjB,CAAC;QAEF,MAAM,YAAY,GAAG,EAAE,CAAC;QAExB,MAAM,OAAO,GAAG,aAAa,CAAC;YAC5B,SAAS,EAAE,aAAoB;YAC/B,QAAQ,EAAE,YAAmB;YAE7B,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI,cAAc,EAAE;iBAC/B;aACF;YAED,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface Artifact {
2
+ id: string;
3
+ type: string;
4
+ filename?: string;
5
+ mimeType?: string;
6
+ metadata?: Record<string, unknown>;
7
+ createdAt: number;
8
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=artifact.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact.interface.js","sourceRoot":"","sources":["../../../src/core/artifact/artifact.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { RuntimeEvent } from '../runtime-event-bus.js';
2
+ export interface EventDispatcher {
3
+ dispatch(event: RuntimeEvent): Promise<void>;
4
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=event-dispatcher.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-dispatcher.interface.js","sourceRoot":"","sources":["../../../../src/core/events/dispatchers/event-dispatcher.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { WebSocketServer } from 'ws';
2
+ import { RuntimeEvent } from '../../runtime-event-bus.js';
3
+ import { EventDispatcher } from '../event-dispatcher.interface.js';
4
+ export declare class WebSocketEventDispatcher implements EventDispatcher {
5
+ private server;
6
+ constructor(server: WebSocketServer);
7
+ dispatch(event: RuntimeEvent): Promise<void>;
8
+ }
@@ -0,0 +1,16 @@
1
+ export class WebSocketEventDispatcher {
2
+ constructor(server) {
3
+ this.server = server;
4
+ }
5
+ async dispatch(event) {
6
+ const payload = JSON.stringify({
7
+ type: 'runtime.event',
8
+ payload: event,
9
+ });
10
+ // console.log('[DISPATCHING EVENT]', this.server.clients.size);
11
+ this.server.clients.forEach((client) => {
12
+ client.send(payload);
13
+ });
14
+ }
15
+ }
16
+ //# sourceMappingURL=websocket-event-dispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-event-dispatcher.js","sourceRoot":"","sources":["../../../../../src/core/events/dispatchers/ws/websocket-event-dispatcher.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,wBAAwB;IACnC,YAAoB,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;IAAG,CAAC;IAE/C,KAAK,CAAC,QAAQ,CAAC,KAAmB;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;YAC7B,IAAI,EAAE,eAAe;YAErB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,gEAAgE;QAEhE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACrC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ export interface RuntimeEvent {
2
+ id?: string;
3
+ type: string;
4
+ source?: string;
5
+ workflow?: string;
6
+ service?: string;
7
+ provider?: string;
8
+ payload?: unknown;
9
+ error?: string;
10
+ metadata?: Record<string, unknown>;
11
+ timestamp?: number;
12
+ }
13
+ export declare class RuntimeEventBus {
14
+ private emitter;
15
+ emit(event: RuntimeEvent): void;
16
+ on(type: string, handler: (event: RuntimeEvent) => void): void;
17
+ }
@@ -0,0 +1,14 @@
1
+ import { EventEmitter } from 'events';
2
+ export class RuntimeEventBus {
3
+ constructor() {
4
+ this.emitter = new EventEmitter();
5
+ }
6
+ emit(event) {
7
+ this.emitter.emit(event.type, event);
8
+ this.emitter.emit('*', event);
9
+ }
10
+ on(type, handler) {
11
+ this.emitter.on(type, handler);
12
+ }
13
+ }
14
+ //# sourceMappingURL=runtime-event-bus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-event-bus.js","sourceRoot":"","sources":["../../../src/core/events/runtime-event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAwBtC,MAAM,OAAO,eAAe;IAA5B;QACU,YAAO,GAAG,IAAI,YAAY,EAAE,CAAC;IAWvC,CAAC;IATC,IAAI,CAAC,KAAmB;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAErC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,EAAE,CAAC,IAAY,EAAE,OAAsC;QACrD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ export declare enum ExecutionState {
2
+ QUEUED = "queued",
3
+ PENDING = "pending",
4
+ RUNNING = "running",
5
+ COMPLETED = "completed",
6
+ FAILED = "failed",
7
+ CANCELED = "canceled"
8
+ }
9
+ export interface Execution {
10
+ id: string;
11
+ parentExecutionId?: string;
12
+ type: string;
13
+ status: ExecutionState;
14
+ createdAt: number;
15
+ updatedAt: number;
16
+ startedAt?: number;
17
+ completedAt?: number;
18
+ metadata?: Record<string, unknown>;
19
+ }
@@ -0,0 +1,12 @@
1
+ export var ExecutionState;
2
+ (function (ExecutionState) {
3
+ ExecutionState["QUEUED"] = "queued";
4
+ ExecutionState["PENDING"] = "pending";
5
+ ExecutionState["RUNNING"] = "running";
6
+ ExecutionState["COMPLETED"] = "completed";
7
+ ExecutionState["FAILED"] = "failed";
8
+ ExecutionState["CANCELED"] = "canceled";
9
+ // RETRYING = 'retrying',
10
+ // PAUSED = 'paused',
11
+ })(ExecutionState || (ExecutionState = {}));
12
+ //# sourceMappingURL=execution.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.interface.js","sourceRoot":"","sources":["../../../src/core/exec/execution.interface.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,cASX;AATD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;IACnB,yCAAuB,CAAA;IACvB,mCAAiB,CAAA;IACjB,uCAAqB,CAAA;IACrB,yBAAyB;IACzB,qBAAqB;AACvB,CAAC,EATW,cAAc,KAAd,cAAc,QASzB"}
@@ -0,0 +1,3 @@
1
+ import { CreateRuntimeConfig } from '../runtime/create-runtime-config.interface.js';
2
+ import { RuntimeConfig } from '../runtime/runtime-config.interface.js';
3
+ export declare function initializeExecutionArtifacts(_runtime: RuntimeConfig, _config: CreateRuntimeConfig): void;
@@ -0,0 +1,7 @@
1
+ export function initializeExecutionArtifacts(_runtime, _config) {
2
+ //
3
+ // TODO:
4
+ // initialize artifact registry
5
+ //
6
+ }
7
+ //# sourceMappingURL=initialize-execution-artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialize-execution-artifacts.js","sourceRoot":"","sources":["../../../src/core/init/initialize-execution-artifacts.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,4BAA4B,CAC1C,QAAuB,EACvB,OAA4B;IAE5B,EAAE;IACF,QAAQ;IACR,+BAA+B;IAC/B,EAAE;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { RuntimeConfig } from '../runtime/runtime-config.interface.js';
2
+ export declare function initializeExecutionEvents(runtime: RuntimeConfig): void;
@@ -0,0 +1,5 @@
1
+ import { RuntimeEventBus } from '../events/runtime-event-bus.js';
2
+ export function initializeExecutionEvents(runtime) {
3
+ runtime.events ??= new RuntimeEventBus();
4
+ }
5
+ //# sourceMappingURL=initialize-execution-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialize-execution-events.js","sourceRoot":"","sources":["../../../src/core/init/initialize-execution-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAIjE,MAAM,UAAU,yBAAyB,CAAC,OAAsB;IAC9D,OAAO,CAAC,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { CreateRuntimeConfig } from '../runtime/create-runtime-config.interface.js';
2
+ import { RuntimeConfig } from '../runtime/runtime-config.interface.js';
3
+ export declare function initializeExecution(runtime: RuntimeConfig, config: CreateRuntimeConfig): void;
@@ -0,0 +1,19 @@
1
+ import { initializeExecutionArtifacts } from './initialize-execution-artifacts.js';
2
+ import { initializeExecutionEvents } from './initialize-execution-events.js';
3
+ export function initializeExecution(runtime, config) {
4
+ if (!config.execution?.enabled) {
5
+ return;
6
+ }
7
+ //
8
+ // execution events
9
+ if (config.execution?.events?.enabled) {
10
+ initializeExecutionEvents(runtime);
11
+ }
12
+ //
13
+ // Execution artifacts
14
+ //
15
+ if (config.execution?.artifacts?.enabled) {
16
+ initializeExecutionArtifacts(runtime, config);
17
+ }
18
+ }
19
+ //# sourceMappingURL=initialize-execution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialize-execution.js","sourceRoot":"","sources":["../../../src/core/init/initialize-execution.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AAEnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,MAAM,UAAU,mBAAmB,CACjC,OAAsB,EACtB,MAA2B;IAE3B,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;QAC/B,OAAO;IACT,CAAC;IAED,EAAE;IACF,mBAAmB;IACnB,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QACtC,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,EAAE;IACF,sBAAsB;IACtB,EAAE;IACF,IAAI,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QACzC,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { CreateRuntimeConfig } from '../runtime/create-runtime-config.interface.js';
2
+ import { RuntimeConfig } from '../runtime/runtime-config.interface.js';
3
+ export declare function initializeRuntimeCapabilities(runtime: RuntimeConfig, config: CreateRuntimeConfig): void;
@@ -0,0 +1,10 @@
1
+ import { initializeExecution } from './initialize-execution.js';
2
+ export function initializeRuntimeCapabilities(runtime, config) {
3
+ //
4
+ // Execution capability
5
+ //
6
+ if (config.execution?.enabled) {
7
+ initializeExecution(runtime, config);
8
+ }
9
+ }
10
+ //# sourceMappingURL=initialize-runtime-capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialize-runtime-capabilities.js","sourceRoot":"","sources":["../../../src/core/init/initialize-runtime-capabilities.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,UAAU,6BAA6B,CAC3C,OAAsB,EACtB,MAA2B;IAE3B,EAAE;IACF,uBAAuB;IACvB,EAAE;IACF,IAAI,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;QAC9B,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;AACH,CAAC"}
@@ -1,7 +1,15 @@
1
+ import { RuntimeEventBus } from '../events/runtime-event-bus.js';
1
2
  import { createRuntimeContext } from './create-runtime-context.js';
2
3
  export function bootstrapRuntime(apps, config) {
4
+ //
5
+ // SINGLE SHARED RUNTIME EVENT BUS
6
+ //
7
+ const events = config.events ?? new RuntimeEventBus();
3
8
  apps.forEach((app) => {
4
- const context = createRuntimeContext(app, config);
9
+ const context = createRuntimeContext(app, {
10
+ ...config,
11
+ events,
12
+ });
5
13
  app.register(context);
6
14
  });
7
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/core/runtime/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAMnE,MAAM,UAAU,gBAAgB,CAAC,IAAkB,EAAE,MAAqB;IACxE,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAElD,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/core/runtime/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAMnE,MAAM,UAAU,gBAAgB,CAAC,IAAkB,EAAE,MAAqB;IACxE,EAAE;IACF,kCAAkC;IAClC,EAAE;IACF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;IAEtD,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,EAAE;YACxC,GAAG,MAAM;YACT,MAAM;SACP,CAAC,CAAC;QAEH,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -8,5 +8,14 @@ export interface CreateRuntimeConfig {
8
8
  protocol: Protocol;
9
9
  providers: ProviderConfig[];
10
10
  services?: ServiceConfig[];
11
+ execution?: {
12
+ enabled?: boolean;
13
+ events?: {
14
+ enabled: boolean;
15
+ };
16
+ artifacts?: {
17
+ enabled: boolean;
18
+ };
19
+ };
11
20
  db?: DB;
12
21
  }
@@ -11,6 +11,7 @@ export function createRuntimeContext(app, config) {
11
11
  protocol: config.protocol,
12
12
  ai: providerManager,
13
13
  services: serviceManager,
14
+ events: config.events, //ts can't fully infer this, but im ensure it's set in bootstrapRuntime
14
15
  prompt(route, handler) {
15
16
  config.protocol?.addMethod(route, handler);
16
17
  },
@@ -1 +1 @@
1
- {"version":3,"file":"create-runtime-context.js","sourceRoot":"","sources":["../../../src/core/runtime/create-runtime-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAMxD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,MAAM,UAAU,oBAAoB,CAClC,GAAe,EACf,MAAqB;IAErB,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC;IAEpD,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9D,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE3D,OAAO;QACL,EAAE;QAEF,KAAK,EAAE,EAAE;QAET,QAAQ,EAAE,MAAM,CAAC,QAAQ;QAEzB,EAAE,EAAE,eAAe;QAEnB,QAAQ,EAAE,cAAc;QAExB,MAAM,CAAC,KAAa,EAAE,OAAiB;YACrC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"create-runtime-context.js","sourceRoot":"","sources":["../../../src/core/runtime/create-runtime-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAMxD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGlE,MAAM,UAAU,oBAAoB,CAClC,GAAe,EACf,MAAqB;IAErB,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC;IAEpD,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9D,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE3D,OAAO;QACL,EAAE;QAEF,KAAK,EAAE,EAAE;QAET,QAAQ,EAAE,MAAM,CAAC,QAAQ;QAEzB,EAAE,EAAE,eAAe;QAEnB,QAAQ,EAAE,cAAc;QAExB,MAAM,EAAE,MAAM,CAAC,MAAO,EAAE,uEAAuE;QAE/F,MAAM,CAAC,KAAa,EAAE,OAAiB;YACrC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,27 +1,41 @@
1
- import { InMemoryDB } from '../storage/in-memory.db.js';
1
+ import { randomUUID } from 'crypto';
2
+ import { initializeRuntimeCapabilities } from '../init/initialize-runtime-capabilities.js';
3
+ import { normalizeRuntimeConfig } from './normalize-runtime-config.js';
2
4
  export function createRuntime(config) {
3
- const runtimeConfig = {
4
- db: config.db ?? new InMemoryDB(),
5
- protocol: config.protocol,
6
- providers: config.providers,
7
- services: config.services,
8
- };
9
- config.transport.onMessage(async (clientId, payload) => {
10
- const response = await config.protocol.receive(payload);
11
- console.log('PROTOCOL RESPONSE:', response);
5
+ const runtimeConfig = normalizeRuntimeConfig(config);
6
+ initializeRuntimeCapabilities(runtimeConfig, config);
7
+ runtimeConfig.transport.onMessage(async (clientId, payload) => {
8
+ //
9
+ // Runtime ingress event
10
+ //
11
+ runtimeConfig.events?.emit({
12
+ id: randomUUID(),
13
+ type: 'runtime.message.received',
14
+ timestamp: Date.now(),
15
+ source: 'transport',
16
+ payload,
17
+ });
18
+ const response = await runtimeConfig.protocol.receive(payload);
12
19
  //
13
20
  // Push-based transports
14
- // (websocket, mqtt, tcp)
15
- // send responses
21
+ // (WebSocket, MQTT, TCP)
16
22
  //
17
23
  if (response !== undefined) {
18
- await config.transport.send(clientId, response);
24
+ await runtimeConfig.transport.send(clientId, response);
19
25
  }
20
26
  //
21
- // Request/response transports
22
- // (http)
23
- // use direct return values
27
+ // Runtime response event
28
+ //
29
+ runtimeConfig.events?.emit({
30
+ id: randomUUID(),
31
+ type: 'runtime.message.completed',
32
+ timestamp: Date.now(),
33
+ source: 'runtime',
34
+ payload: response,
35
+ });
24
36
  //
37
+ // HTTP transports will ignore
38
+ // transport.send() and instead return the response directly
25
39
  return response;
26
40
  });
27
41
  return runtimeConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"create-runtime.js","sourceRoot":"","sources":["../../../src/core/runtime/create-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAKxD,MAAM,UAAU,aAAa,CAC3B,MAA2B;IAE3B,MAAM,aAAa,GAAkB;QACnC,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,IAAI,UAAU,EAAE;QACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC;IAEF,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;QACrD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAExD,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;QAE5C,EAAE;QACF,wBAAwB;QACxB,yBAAyB;QACzB,iBAAiB;QACjB,EAAE;QACF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAClD,CAAC;QAED,EAAE;QACF,8BAA8B;QAC9B,SAAS;QACT,2BAA2B;QAC3B,EAAE;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,aAAa,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"create-runtime.js","sourceRoot":"","sources":["../../../src/core/runtime/create-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAI3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAIvE,MAAM,UAAU,aAAa,CAAC,MAA2B;IACvD,MAAM,aAAa,GAAkB,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAEpE,6BAA6B,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAErD,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;QAC5D,EAAE;QACF,wBAAwB;QACxB,EAAE;QACF,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC;YACzB,EAAE,EAAE,UAAU,EAAE;YAEhB,IAAI,EAAE,0BAA0B;YAEhC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YAErB,MAAM,EAAE,WAAW;YAEnB,OAAO;SACR,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE/D,EAAE;QACF,wBAAwB;QACxB,yBAAyB;QACzB,EAAE;QACF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACzD,CAAC;QAED,EAAE;QACF,yBAAyB;QACzB,EAAE;QACF,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC;YACzB,EAAE,EAAE,UAAU,EAAE;YAEhB,IAAI,EAAE,2BAA2B;YAEjC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YAErB,MAAM,EAAE,SAAS;YAEjB,OAAO,EAAE,QAAQ;SAClB,CAAC,CAAC;QAEH,EAAE;QACF,8BAA8B;QAC9B,4DAA4D;QAC5D,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,aAAa,CAAC;AACvB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { CreateRuntimeConfig } from './create-runtime-config.interface.js';
2
+ import { RuntimeConfig } from './runtime-config.interface.js';
3
+ export declare function normalizeRuntimeConfig(config: CreateRuntimeConfig): RuntimeConfig;
@@ -0,0 +1,20 @@
1
+ import { InMemoryDB } from '../storage/in-memory.db.js';
2
+ export function normalizeRuntimeConfig(config) {
3
+ return {
4
+ db: config.db ?? new InMemoryDB(),
5
+ transport: config.transport,
6
+ protocol: config.protocol,
7
+ providers: config.providers,
8
+ services: config.services,
9
+ execution: {
10
+ enabled: config.execution?.enabled ?? false,
11
+ events: {
12
+ enabled: config.execution?.events?.enabled ?? false,
13
+ },
14
+ artifacts: {
15
+ enabled: config.execution?.artifacts?.enabled ?? false,
16
+ },
17
+ },
18
+ };
19
+ }
20
+ //# sourceMappingURL=normalize-runtime-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-runtime-config.js","sourceRoot":"","sources":["../../../src/core/runtime/normalize-runtime-config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,MAAM,UAAU,sBAAsB,CACpC,MAA2B;IAE3B,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,IAAI,UAAU,EAAE;QAEjC,SAAS,EAAE,MAAM,CAAC,SAAS;QAE3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QAEzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAE3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QAEzB,SAAS,EAAE;YACT,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,IAAI,KAAK;YAE3C,MAAM,EAAE;gBACN,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK;aACpD;YAED,SAAS,EAAE;gBACT,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,IAAI,KAAK;aACvD;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -25,18 +25,45 @@ export class RuntimeInitializeApp {
25
25
  //
26
26
  config.workflows?.forEach((workflow) => {
27
27
  runtime.prompt(workflow.route, async () => {
28
- const service = runtime.services.get(workflow.service);
29
- if (!service) {
30
- throw new Error(`Service not found: ${workflow.service}`);
31
- }
32
- const data = await service.execute();
33
- const enhancedPrompt = `
34
- ${workflow.prompt}
28
+ runtime.events.emit({
29
+ type: 'workflow.started',
30
+ metadata: {
31
+ workflow: workflow.route,
32
+ },
33
+ });
34
+ try {
35
+ const service = runtime.services.get(workflow.service);
36
+ if (!service) {
37
+ throw new Error(`Service not found: ${workflow.service}`);
38
+ }
39
+ const data = await service.execute();
40
+ const enhancedPrompt = `
41
+ ${workflow.prompt}
35
42
 
36
- DATA:
37
- ${JSON.stringify(data)}
38
- `;
39
- return runtime.ai.generate(enhancedPrompt);
43
+ DATA:
44
+ ${JSON.stringify(data)}
45
+ `;
46
+ const result = await runtime.ai.generate(enhancedPrompt);
47
+ runtime.events.emit({
48
+ type: 'workflow.completed',
49
+ metadata: {
50
+ workflow: workflow.route,
51
+ },
52
+ });
53
+ return result;
54
+ }
55
+ catch (err) {
56
+ runtime.events.emit({
57
+ type: 'workflow.failed',
58
+ metadata: {
59
+ workflow: workflow.route,
60
+ },
61
+ payload: {
62
+ error: String(err),
63
+ },
64
+ });
65
+ throw err;
66
+ }
40
67
  });
41
68
  logger.info({
42
69
  route: workflow.route,
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-app-init.js","sourceRoot":"","sources":["../../../src/core/runtime/runtime-app-init.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEzE,MAAM,OAAO,oBAAoB;IAC/B,QAAQ,CAAC,OAAuB;QAC9B,OAAO,CAAC,MAAM,CACZ,oBAAoB,EAEpB,KAAK,EAAE,OAAgB,EAAE,EAAE;YACzB,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAE1C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,MAAM,GAAG,OAwBd,CAAC;YAEF,EAAE;YACF,oBAAoB;YACpB,EAAE;YACF,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;gBACzC,IAAI,aAAa,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAClC,MAAM,OAAO,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;oBAEjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAEnC,MAAM,CAAC,IAAI,CACT;wBACE,OAAO,EAAE,aAAa,CAAC,IAAI;qBAC5B,EACD,oBAAoB,CACrB,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,EAAE;YACF,qBAAqB;YACrB,EAAE;YACF,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACrC,OAAO,CAAC,MAAM,CACZ,QAAQ,CAAC,KAAK,EAEd,KAAK,IAAI,EAAE;oBACT,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAEvD,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC5D,CAAC;oBAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;oBAErC,MAAM,cAAc,GAAG;gBACrB,QAAQ,CAAC,MAAM;;;kBAGb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;iBACrB,CAAC;oBAEJ,OAAO,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBAC7C,CAAC,CACF,CAAC;gBAEF,MAAM,CAAC,IAAI,CACT;oBACE,KAAK,EAAE,QAAQ,CAAC,KAAK;iBACtB,EACD,qBAAqB,CACtB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"runtime-app-init.js","sourceRoot":"","sources":["../../../src/core/runtime/runtime-app-init.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,23 @@
1
1
  import { DB } from '../db.interface.js';
2
+ import { RuntimeEventBus } from '../events/runtime-event-bus.js';
2
3
  import { Protocol } from '../protocol/protocol.interface.js';
3
4
  import { ProviderConfig } from '../provider/provider.config.interface.js';
4
5
  import { ServiceConfig } from '../service/service-config.interface.js';
6
+ import { Transport } from '../transport/transport.interface.js';
5
7
  export interface RuntimeConfig {
8
+ transport: Transport;
6
9
  protocol: Protocol;
7
10
  providers: ProviderConfig[];
8
11
  services?: ServiceConfig[];
12
+ execution?: {
13
+ enabled?: boolean;
14
+ events?: {
15
+ enabled: boolean;
16
+ };
17
+ artifacts?: {
18
+ enabled: boolean;
19
+ };
20
+ };
21
+ events?: RuntimeEventBus;
9
22
  db?: DB;
10
23
  }
@@ -1,4 +1,5 @@
1
1
  import { DB } from '../db.interface.js';
2
+ import { RuntimeEventBus } from '../events/runtime-event-bus.js';
2
3
  import { Protocol } from '../protocol/protocol.interface.js';
3
4
  import { ProviderManager } from '../provider/provider.manager.js';
4
5
  import { ServiceManager } from '../service/service.manager.js';
@@ -7,6 +8,7 @@ export interface RuntimeContext {
7
8
  db: DB;
8
9
  state: Record<string, unknown>;
9
10
  protocol: Protocol;
11
+ events: RuntimeEventBus;
10
12
  ai: ProviderManager;
11
13
  services: ServiceManager;
12
14
  prompt(route: string, handler: PromptHandler): void;
@@ -7,6 +7,22 @@ export function createHttpService(config) {
7
7
  return {
8
8
  name: config.name,
9
9
  async execute() {
10
+ //
11
+ // MOCK SERVICES
12
+ //
13
+ if (config.url === 'mock://weather') {
14
+ logger.info({
15
+ service: config.name,
16
+ }, 'Executing mock weather service');
17
+ return {
18
+ current_weather: {
19
+ temperature: 72,
20
+ weathercode: 1,
21
+ city: 'Newark',
22
+ condition: 'Clear',
23
+ },
24
+ };
25
+ }
10
26
  const response = await fetch(config.url, {
11
27
  method: config.method ?? 'GET',
12
28
  headers: config.headers,
@@ -1 +1 @@
1
- {"version":3,"file":"http.service.js","sourceRoot":"","sources":["../../../../src/core/service/providers/http.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAgBhD,MAAM,UAAU,iBAAiB,CAAC,MAAyB;IACzD,MAAM,CAAC,KAAK,CACV;QACE,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAC3D,EACD,sBAAsB,CACvB,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QAEjB,KAAK,CAAC,OAAO;YACX,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE;gBACvC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK;gBAE9B,OAAO,EAAE,MAAM,CAAC,OAAO;gBAEvB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;aAC5D,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YACrE,CAAC;YAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"http.service.js","sourceRoot":"","sources":["../../../../src/core/service/providers/http.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAgBhD,MAAM,UAAU,iBAAiB,CAAC,MAAyB;IACzD,MAAM,CAAC,KAAK,CACV;QACE,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAC3D,EACD,sBAAsB,CACvB,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QAEjB,KAAK,CAAC,OAAO;YACX,EAAE;YACF,gBAAgB;YAChB,EAAE;YACF,IAAI,MAAM,CAAC,GAAG,KAAK,gBAAgB,EAAE,CAAC;gBACpC,MAAM,CAAC,IAAI,CACT;oBACE,OAAO,EAAE,MAAM,CAAC,IAAI;iBACrB,EACD,gCAAgC,CACjC,CAAC;gBAEF,OAAO;oBACL,eAAe,EAAE;wBACf,WAAW,EAAE,EAAE;wBACf,WAAW,EAAE,CAAC;wBACd,IAAI,EAAE,QAAQ;wBACd,SAAS,EAAE,OAAO;qBACnB;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE;gBACvC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK;gBAE9B,OAAO,EAAE,MAAM,CAAC,OAAO;gBAEvB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;aAC5D,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YACrE,CAAC;YAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { randomUUID } from 'crypto';
2
+ import { logger } from '../../logger/logger.js';
2
3
  export class WebSocketTransport {
3
4
  constructor(server) {
4
5
  this.server = server;
@@ -31,7 +32,12 @@ export class WebSocketTransport {
31
32
  await this.messageHandler(client.id, payload);
32
33
  }
33
34
  catch (err) {
34
- console.error(err);
35
+ logger.error({
36
+ type: 'transport.error',
37
+ transport: 'websocket',
38
+ clientId: client.id,
39
+ error: err,
40
+ });
35
41
  }
36
42
  });
37
43
  client.on('close', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"ws.transport.js","sourceRoot":"","sources":["../../../../src/core/transport/ws/ws.transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAQpC,MAAM,OAAO,kBAAkB;IAQ7B,YAAoB,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;QAPnC,YAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;QAQ9C,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,KAAK,KAAmB,CAAC;IAE/B,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,SAAS,CACP,OAA8D;QAE9D,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,OAAgB;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,CAAC;IAEO,gBAAgB,CAAC,MAAkB;QACzC,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC;QAEzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAEpC,MAAM,CAAC,EAAE,CACP,SAAS,EAET,KAAK,EAAE,GAAY,EAAE,EAAE;YACrB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzB,OAAO;YACT,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAE3C,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CACF,CAAC;QAEF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"ws.transport.js","sourceRoot":"","sources":["../../../../src/core/transport/ws/ws.transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAOpC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,MAAM,OAAO,kBAAkB;IAQ7B,YAAoB,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;QAPnC,YAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;QAQ9C,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,KAAK,KAAmB,CAAC;IAE/B,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,SAAS,CACP,OAA8D;QAE9D,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,OAAgB;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,CAAC;IAEO,gBAAgB,CAAC,MAAkB;QACzC,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC;QAEzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAEpC,MAAM,CAAC,EAAE,CACP,SAAS,EAET,KAAK,EAAE,GAAY,EAAE,EAAE;YACrB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzB,OAAO;YACT,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAE3C,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC;oBACX,IAAI,EAAE,iBAAiB;oBACvB,SAAS,EAAE,WAAW;oBACtB,QAAQ,EAAE,MAAM,CAAC,EAAE;oBACnB,KAAK,EAAE,GAAG;iBACX,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CACF,CAAC;QAEF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -9,6 +9,12 @@ describe('PingPongApp', () => {
9
9
  beforeEach(() => {
10
10
  server = new JSONRPCServer();
11
11
  bootstrapRuntime([new PingPongApp()], {
12
+ transport: {
13
+ onMessage: () => { },
14
+ send: async () => { },
15
+ start: async () => { },
16
+ stop: async () => { },
17
+ },
12
18
  providers: [],
13
19
  db: new InMemoryDB(),
14
20
  protocol: new JsonRpcProtocol(server),
@@ -1 +1 @@
1
- {"version":3,"file":"ping-pong.app.spec.js","sourceRoot":"","sources":["../../../src/examples/ping-pong/ping-pong.app.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,MAAqB,CAAC;IAE1B,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAE7B,gBAAgB,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,EAAE;YACpC,SAAS,EAAE,EAAE;YAEb,EAAE,EAAE,IAAI,UAAU,EAAE;YAEpB,QAAQ,EAAE,IAAI,eAAe,CAAC,MAAM,CAAC;SACtC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YAClC,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,MAAM;YACd,EAAE,EAAE,CAAC;SACN,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,CAAC;YACL,MAAM,EAAE;gBACN,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,CAAC;gBACV,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;aACzB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,MAAM,CAAC,OAAO,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,WAAW;YACnB,EAAE,EAAE,CAAC;SACN,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YAClC,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,MAAM;YACd,EAAE,EAAE,CAAC;SACN,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,CAAC;YACL,MAAM,EAAE;gBACN,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,CAAC;gBACV,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;aACzB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"ping-pong.app.spec.js","sourceRoot":"","sources":["../../../src/examples/ping-pong/ping-pong.app.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,MAAqB,CAAC;IAE1B,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAE7B,gBAAgB,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,EAAE;YACpC,SAAS,EAAE;gBACT,SAAS,EAAE,GAAG,EAAE,GAAE,CAAC;gBACnB,IAAI,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;gBACpB,KAAK,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;gBACrB,IAAI,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;aACrB;YAED,SAAS,EAAE,EAAE;YAEb,EAAE,EAAE,IAAI,UAAU,EAAE;YAEpB,QAAQ,EAAE,IAAI,eAAe,CAAC,MAAM,CAAC;SACtC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YAClC,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,MAAM;YACd,EAAE,EAAE,CAAC;SACN,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,CAAC;YACL,MAAM,EAAE;gBACN,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,CAAC;gBACV,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;aACzB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,MAAM,CAAC,OAAO,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,WAAW;YACnB,EAAE,EAAE,CAAC;SACN,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YAClC,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,MAAM;YACd,EAAE,EAAE,CAAC;SACN,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,CAAC;YACL,MAAM,EAAE;gBACN,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,CAAC;gBACV,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;aACzB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap-http-runtime.js","sourceRoot":"","sources":["../../src/http/bootstrap-http-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAEjF,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAElE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,SAAc,EAAE;IAEhB,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAChC,iBAAiB,EACjB;QACI,IAAI,EAAE,IAAI;KACb,CACJ,CAAC;IAEF,MAAM,SAAS,GACX,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAE3B,MAAM,QAAQ,GACV,IAAI,eAAe,EAAE,CAAC;IAE1B,MAAM,OAAO,GACT,aAAa,CAAC;QACV,SAAS;QAET,QAAQ;QAER,GAAG,MAAM;KACZ,CAAC,CAAC;IAEP,gBAAgB,CACZ,MAAM,CAAC,IAAI,IAAI,EAAE,EACjB,OAAO,CACV,CAAC;IAEF,MAAM,IAAI,GACN,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC;IAExB,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEvB,OAAO,CAAC,GAAG,CACP,oDAAoD,IAAI,MAAM,CACjE,CAAC;IAEF,OAAO,GAAG,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"bootstrap-http-runtime.js","sourceRoot":"","sources":["../../src/http/bootstrap-http-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAEjF,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAElE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,SAAc,EAAE;IACzD,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,iBAAiB,EAAE;QACtD,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAEzC,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IAEvC,MAAM,OAAO,GAAG,aAAa,CAAC;QAC5B,SAAS;QAET,QAAQ;QAER,GAAG,MAAM;KACV,CAAC,CAAC;IAEH,gBAAgB,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAE7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC;IAEjC,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEvB,OAAO,CAAC,GAAG,CAAC,oDAAoD,IAAI,MAAM,CAAC,CAAC;IAE5E,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -11,12 +11,8 @@ let HttpRuntimeModule = class HttpRuntimeModule {
11
11
  };
12
12
  HttpRuntimeModule = __decorate([
13
13
  Module({
14
- providers: [
15
- HttpTransport,
16
- ],
17
- controllers: [
18
- HttpRpcController,
19
- ],
14
+ providers: [HttpTransport],
15
+ controllers: [HttpRpcController],
20
16
  })
21
17
  ], HttpRuntimeModule);
22
18
  export { HttpRuntimeModule };
@@ -1 +1 @@
1
- {"version":3,"file":"http-runtime.module.js","sourceRoot":"","sources":["../src/http-runtime.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAWtE,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAAI,CAAA;AAArB,iBAAiB;IAT7B,MAAM,CAAC;QACJ,SAAS,EAAE;YACP,aAAa;SAChB;QAED,WAAW,EAAE;YACT,iBAAiB;SACpB;KACJ,CAAC;GACW,iBAAiB,CAAI"}
1
+ {"version":3,"file":"http-runtime.module.js","sourceRoot":"","sources":["../src/http-runtime.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAOtE,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAAG,CAAA;AAApB,iBAAiB;IAL7B,MAAM,CAAC;QACN,SAAS,EAAE,CAAC,aAAa,CAAC;QAE1B,WAAW,EAAE,CAAC,iBAAiB,CAAC;KACjC,CAAC;GACW,iBAAiB,CAAG"}
package/dist/main.js CHANGED
@@ -1,11 +1,20 @@
1
1
  import 'dotenv/config';
2
2
  import { NestFactory } from '@nestjs/core';
3
3
  import { WsAdapter } from '@nestjs/platform-ws';
4
+ import { WebSocketServer } from 'ws';
4
5
  import { WebSocketRuntimeModule } from './websocket-runtime.module.js';
5
- import { createRuntime, bootstrapRuntime, RuntimeInitializeApp, GeminiProvider, } from './index.js';
6
+ import { bootstrapRuntime, createRuntime, GeminiProvider, RuntimeInitializeApp, } from './index.js';
6
7
  import { JsonRpcProtocol } from './core/protocol/json-rpc/json-rpc.protocol.js';
7
- import { HttpTransport } from './core/transport/http/http.transport.js';
8
+ import { WebSocketTransport } from './core/transport/ws/ws.transport.js';
9
+ import { WebSocketEventDispatcher } from './core/events/dispatchers/ws/websocket-event-dispatcher.js';
8
10
  async function bootstrap() {
11
+ // const app =
12
+ // await NestFactory.create(
13
+ // HttpRuntimeModule,
14
+ // {
15
+ // cors: true,
16
+ // },
17
+ // );
9
18
  const app = await NestFactory.create(WebSocketRuntimeModule, {
10
19
  cors: true,
11
20
  });
@@ -14,7 +23,15 @@ async function bootstrap() {
14
23
  origin: 'http://localhost:4200',
15
24
  });
16
25
  await app.listen(3000);
17
- const transport = app.get(HttpTransport);
26
+ //
27
+ // Runtime transport server
28
+ //
29
+ const server = new WebSocketServer({
30
+ port: 3001,
31
+ });
32
+ const transport = new WebSocketTransport(server);
33
+ // const transport =
34
+ // app.get(HttpTransport);
18
35
  const protocol = new JsonRpcProtocol();
19
36
  const runtime = createRuntime({
20
37
  transport,
@@ -26,9 +43,22 @@ async function bootstrap() {
26
43
  },
27
44
  ],
28
45
  services: [],
46
+ execution: {
47
+ enabled: true,
48
+ events: {
49
+ enabled: true,
50
+ },
51
+ artifacts: {
52
+ enabled: false,
53
+ },
54
+ },
55
+ });
56
+ const dispatcher = new WebSocketEventDispatcher(server);
57
+ runtime.events?.on('*', async (event) => {
58
+ await dispatcher.dispatch(event);
29
59
  });
30
60
  bootstrapRuntime([new RuntimeInitializeApp()], runtime);
31
- console.log('StateFlowX runtime listening on ws://localhost:3000');
61
+ console.log('StateFlowX runtime listening on ws://localhost:3001');
32
62
  }
33
63
  bootstrap();
34
64
  //# sourceMappingURL=main.js.map
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAEvB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,sBAAsB,EAAE,MAC1B,+BAA+B,CAAC;AAEvC,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAExE,KAAK,UAAU,SAAS;IACtB,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,sBAAsB,EAAE;QAC3D,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IAEH,GAAG,CAAC,mBAAmB,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAE5C,GAAG,CAAC,UAAU,CAAC;QACb,MAAM,EAAE,uBAAuB;KAChC,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEvB,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IAEvC,MAAM,OAAO,GAAG,aAAa,CAAC;QAC5B,SAAS;QACT,QAAQ;QACR,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI,cAAc,EAAE;aAC/B;SACF;QACD,QAAQ,EAAE,EAAE;KACb,CAAC,CAAC;IAEH,gBAAgB,CAAC,CAAC,IAAI,oBAAoB,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAExD,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAEvB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAErC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AAEhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4DAA4D,CAAC;AAEtG,KAAK,UAAU,SAAS;IACtB,cAAc;IACd,8BAA8B;IAC9B,yBAAyB;IACzB,QAAQ;IACR,oBAAoB;IACpB,SAAS;IACT,OAAO;IAEP,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,sBAAsB,EAAE;QAC3D,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IAEH,GAAG,CAAC,mBAAmB,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAE5C,GAAG,CAAC,UAAU,CAAC;QACb,MAAM,EAAE,uBAAuB;KAChC,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEvB,EAAE;IACF,2BAA2B;IAC3B,EAAE;IACF,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAEjD,oBAAoB;IACpB,4BAA4B;IAE5B,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IAEvC,MAAM,OAAO,GAAG,aAAa,CAAC;QAC5B,SAAS;QACT,QAAQ;QAER,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,QAAQ;gBAEd,QAAQ,EAAE,IAAI,cAAc,EAAE;aAC/B;SACF;QAED,QAAQ,EAAE,EAAE;QAEZ,SAAS,EAAE;YACT,OAAO,EAAE,IAAI;YAEb,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI;aACd;YAED,SAAS,EAAE;gBACT,OAAO,EAAE,KAAK;aACf;SACF;KACF,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAExD,OAAO,CAAC,MAAM,EAAE,EAAE,CAChB,GAAG,EAEH,KAAK,EAAE,KAAK,EAAE,EAAE;QACd,MAAM,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,CACF,CAAC;IAEF,gBAAgB,CACd,CAAC,IAAI,oBAAoB,EAAE,CAAC,EAE5B,OAAO,CACR,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.spec.js","sourceRoot":"","sources":["../src/runtime.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AAEhF,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAExE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,SAAS,GAAG,IAAI,aAAa,EAAE,CAAC;QAEtC,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;QAE1D,MAAM,OAAO,GAAG,aAAa,CAAC;YAC1B,SAAS;YAET,QAAQ;YAER,SAAS,EAAE,EAAE;YAEb,QAAQ,EAAE,EAAE;SACf,CAAC,CAAC;QAEH,gBAAgB,CAAC,CAAC,IAAI,oBAAoB,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAExD,EAAE;QACF,qBAAqB;QACrB,EAAE;QACF,MAAM,kBAAkB,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC;YACrD,OAAO,EAAE,KAAK;YAEd,MAAM,EAAE,oBAAoB;YAE5B,MAAM,EAAE;gBACJ,QAAQ,EAAE;oBACN;wBACI,IAAI,EAAE,MAAM;wBAEZ,IAAI,EAAE,MAAM;wBAEZ,MAAM,EAAE,KAAK;wBAEb,GAAG,EAAE,qBAAqB;qBAC7B;iBACJ;gBAED,SAAS,EAAE;oBACP;wBACI,KAAK,EAAE,cAAc;wBAErB,OAAO,EAAE,MAAM;wBAEf,QAAQ,EAAE,SAAS;wBAEnB,MAAM,EAAE,aAAa;qBACxB;iBACJ;aACJ;YAED,EAAE,EAAE,CAAC;SACR,CAAC,CAAC;QAEH,MAAM,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC;YAC/B,OAAO,EAAE,KAAK;YAEd,EAAE,EAAE,CAAC;YAEL,MAAM,EAAE;gBACJ,OAAO,EAAE,IAAI;aAChB;SACJ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,SAAS,GAAG,IAAI,aAAa,EAAE,CAAC;QAEtC,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;QAE1D,MAAM,OAAO,GAAG,aAAa,CAAC;YAC1B,SAAS;YAET,QAAQ;YAER,SAAS,EAAE,EAAE;YAEb,QAAQ,EAAE,EAAE;SACf,CAAC,CAAC;QAEH,gBAAgB,CAAC,CAAC,IAAI,oBAAoB,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAExD,EAAE;QACF,qBAAqB;QACrB,EAAE;QACF,MAAM,kBAAkB,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC;YACrD,OAAO,EAAE,KAAK;YAEd,MAAM,EAAE,oBAAoB;YAE5B,MAAM,EAAE;gBACJ,QAAQ,EAAE;oBACN;wBACI,IAAI,EAAE,MAAM;wBAEZ,IAAI,EAAE,MAAM;wBAEZ,MAAM,EAAE,KAAK;wBAEb,GAAG,EAAE,qBAAqB;qBAC7B;iBACJ;gBAED,SAAS,EAAE;oBACP;wBACI,KAAK,EAAE,cAAc;wBAErB,OAAO,EAAE,MAAM;wBAEf,QAAQ,EAAE,SAAS;wBAEnB,MAAM,EAAE,aAAa;qBACxB;iBACJ;aACJ;YAED,EAAE,EAAE,CAAC;SACR,CAAC,CAAC;QAEH,MAAM,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC;YAC/B,OAAO,EAAE,KAAK;YAEd,EAAE,EAAE,CAAC;YAEL,MAAM,EAAE;gBACJ,OAAO,EAAE,IAAI;aAChB;SACJ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"runtime.spec.js","sourceRoot":"","sources":["../src/runtime.spec.ts"],"names":[],"mappings":"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"}
@@ -6,13 +6,13 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { Module } from '@nestjs/common';
8
8
  import EventsGateway from './core/transport/ws/events.gateway.js';
9
+ // import { WebSocketTransport }
10
+ // from './core/transport/ws/ws.transport.js';
9
11
  let WebSocketRuntimeModule = class WebSocketRuntimeModule {
10
12
  };
11
13
  WebSocketRuntimeModule = __decorate([
12
14
  Module({
13
- providers: [
14
- EventsGateway,
15
- ],
15
+ providers: [EventsGateway],
16
16
  })
17
17
  ], WebSocketRuntimeModule);
18
18
  export { WebSocketRuntimeModule };
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-runtime.module.js","sourceRoot":"","sources":["../src/websocket-runtime.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,aAAa,MAAM,uCAAuC,CAAC;AAO3D,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CAAI,CAAA;AAA1B,sBAAsB;IALlC,MAAM,CAAC;QACJ,SAAS,EAAE;YACP,aAAa;SAChB;KACJ,CAAC;GACW,sBAAsB,CAAI"}
1
+ {"version":3,"file":"websocket-runtime.module.js","sourceRoot":"","sources":["../src/websocket-runtime.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,aAAa,MAAM,uCAAuC,CAAC;AAElE,gCAAgC;AAChC,kDAAkD;AAK3C,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CAAG,CAAA;AAAzB,sBAAsB;IAHlC,MAAM,CAAC;QACN,SAAS,EAAE,CAAC,aAAa,CAAC;KAC3B,CAAC;GACW,sBAAsB,CAAG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stateflowx/runtime",
3
- "version": "0.2.6",
3
+ "version": "0.3.0",
4
4
  "description": "Realtime orchestration runtime framework for AI workflows and distributed systems.",
5
5
  "author": "Burt Snyder <snyder.burt@gmail.com>",
6
6
  "repository": {
@@ -1,2 +0,0 @@
1
- export declare class AppModule {
2
- }
@@ -1,20 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { Module } from '@nestjs/common';
8
- import EventsGateway from './core/transport/ws/events.gateway.js';
9
- import { HttpTransport } from './core/transport/http/http.transport.js';
10
- import { HttpRpcController } from './core/transport/http/http.controller.js';
11
- let AppModule = class AppModule {
12
- };
13
- AppModule = __decorate([
14
- Module({
15
- providers: [EventsGateway, HttpTransport],
16
- controllers: [HttpRpcController],
17
- })
18
- ], AppModule);
19
- export { AppModule };
20
- //# sourceMappingURL=app.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,aAAa,MAAM,uCAAuC,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAOtE,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,SAAS;IALrB,MAAM,CAAC;QACN,SAAS,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC;QAEzC,WAAW,EAAE,CAAC,iBAAiB,CAAC;KACjC,CAAC;GACW,SAAS,CAAG"}