@kortyx/runtime 0.4.1 → 0.5.1

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 (54) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/index.d.ts +127 -11
  3. package/dist/index.js +1303 -25
  4. package/dist/index.js.map +1 -0
  5. package/package.json +6 -5
  6. package/dist/checkpointer.d.ts +0 -3
  7. package/dist/checkpointer.d.ts.map +0 -1
  8. package/dist/checkpointer.js +0 -20
  9. package/dist/framework/adapter.d.ts +0 -21
  10. package/dist/framework/adapter.d.ts.map +0 -1
  11. package/dist/framework/adapter.js +0 -74
  12. package/dist/framework/in-memory-checkpointer.d.ts +0 -9
  13. package/dist/framework/in-memory-checkpointer.d.ts.map +0 -1
  14. package/dist/framework/in-memory-checkpointer.js +0 -134
  15. package/dist/framework/pending-requests.d.ts +0 -33
  16. package/dist/framework/pending-requests.d.ts.map +0 -1
  17. package/dist/framework/pending-requests.js +0 -32
  18. package/dist/framework/redis/pending-request-store.d.ts +0 -8
  19. package/dist/framework/redis/pending-request-store.d.ts.map +0 -1
  20. package/dist/framework/redis/pending-request-store.js +0 -30
  21. package/dist/framework/redis/redis-checkpointer.d.ts +0 -13
  22. package/dist/framework/redis/redis-checkpointer.d.ts.map +0 -1
  23. package/dist/framework/redis/redis-checkpointer.js +0 -159
  24. package/dist/framework/redis/redis-client.d.ts +0 -13
  25. package/dist/framework/redis/redis-client.d.ts.map +0 -1
  26. package/dist/framework/redis/redis-client.js +0 -181
  27. package/dist/framework/redis/redis-store.d.ts +0 -20
  28. package/dist/framework/redis/redis-store.d.ts.map +0 -1
  29. package/dist/framework/redis/redis-store.js +0 -107
  30. package/dist/graph/create-langgraph.d.ts +0 -17
  31. package/dist/graph/create-langgraph.d.ts.map +0 -1
  32. package/dist/graph/create-langgraph.js +0 -337
  33. package/dist/index.d.ts.map +0 -1
  34. package/dist/interrupt/tokens.d.ts +0 -3
  35. package/dist/interrupt/tokens.d.ts.map +0 -1
  36. package/dist/interrupt/tokens.js +0 -11
  37. package/dist/node-loader.d.ts +0 -7
  38. package/dist/node-loader.d.ts.map +0 -1
  39. package/dist/node-loader.js +0 -58
  40. package/dist/node-registry.d.ts +0 -7
  41. package/dist/node-registry.d.ts.map +0 -1
  42. package/dist/node-registry.js +0 -27
  43. package/dist/registry/file-registry.d.ts +0 -9
  44. package/dist/registry/file-registry.d.ts.map +0 -1
  45. package/dist/registry/file-registry.js +0 -105
  46. package/dist/registry/in-memory-registry.d.ts +0 -6
  47. package/dist/registry/in-memory-registry.d.ts.map +0 -1
  48. package/dist/registry/in-memory-registry.js +0 -25
  49. package/dist/registry/interface.d.ts +0 -12
  50. package/dist/registry/interface.d.ts.map +0 -1
  51. package/dist/registry/interface.js +0 -2
  52. package/dist/state/build-initial-state.d.ts +0 -9
  53. package/dist/state/build-initial-state.d.ts.map +0 -1
  54. package/dist/state/build-initial-state.js +0 -18
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.5.1](https://github.com/kortyx-io/kortyx/compare/runtime-v0.5.0...runtime-v0.5.1) (2026-02-17)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **build:** align package tsconfig with shared lib baseline ([48d2b57](https://github.com/kortyx-io/kortyx/commit/48d2b5765fefbb5fcbbe548e749e7b5f51b450b9))
9
+ * **build:** wire tsup for publishable packages ([e7b1b5c](https://github.com/kortyx-io/kortyx/commit/e7b1b5c28af55becffc137233dd92d8953d7cb8e))
10
+ * **dev:** restore tsc watch flow for local workspace ([4305823](https://github.com/kortyx-io/kortyx/commit/430582372cad466bf28af554042aa11bdb8bf027))
11
+
12
+ ## [0.5.0](https://github.com/kortyx-io/kortyx/compare/runtime-v0.4.1...runtime-v0.5.0) (2026-02-17)
13
+
14
+
15
+ ### Features
16
+
17
+ * **agent:** strict createAgent and unify useReason streaming ([6725f97](https://github.com/kortyx-io/kortyx/commit/6725f976fc32083fb7d2590f1353d16a99afb46f))
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * **hooks:** move reason engine to internal subpath export ([b82f2f2](https://github.com/kortyx-io/kortyx/commit/b82f2f2a93067f91dd010334486eb0f3a3a547b8))
23
+
3
24
  ## [0.4.1](https://github.com/kortyx-io/kortyx/compare/runtime-v0.4.0...runtime-v0.4.1) (2026-02-15)
4
25
 
5
26
 
package/dist/index.d.ts CHANGED
@@ -1,11 +1,127 @@
1
- export * from "./checkpointer";
2
- export * from "./framework/adapter";
3
- export * from "./framework/pending-requests";
4
- export * from "./graph/create-langgraph";
5
- export * from "./interrupt/tokens";
6
- export * from "./node-registry";
7
- export * from "./registry/file-registry";
8
- export * from "./registry/in-memory-registry";
9
- export * from "./registry/interface";
10
- export * from "./state/build-initial-state";
11
- //# sourceMappingURL=index.d.ts.map
1
+ import { BaseCheckpointSaver } from '@langchain/langgraph-checkpoint';
2
+ import { GraphState, WorkflowDefinition, NodeFn, MemoryEnvelope } from '@kortyx/core';
3
+ import { MemoryAdapter } from '@kortyx/memory';
4
+ import { GetProviderFn } from '@kortyx/providers';
5
+
6
+ declare function getCheckpointer(key: string): BaseCheckpointSaver;
7
+
8
+ type HumanInputKind = "choice" | "multi-choice" | "text";
9
+ interface HumanInputOption {
10
+ id: string;
11
+ label: string;
12
+ description?: string;
13
+ value?: unknown;
14
+ }
15
+ interface PendingRequestRecord {
16
+ token: string;
17
+ requestId: string;
18
+ sessionId?: string | undefined;
19
+ /**
20
+ * Framework run identifier used by the checkpointer (thread_id).
21
+ * This must be stable across interrupt/resume, but should not be reused for new messages.
22
+ */
23
+ runId: string;
24
+ workflow: string;
25
+ node: string;
26
+ state?: GraphState;
27
+ schema: {
28
+ kind: HumanInputKind;
29
+ multiple: boolean;
30
+ question?: string;
31
+ };
32
+ options: HumanInputOption[];
33
+ createdAt: number;
34
+ ttlMs: number;
35
+ }
36
+ interface PendingRequestStore {
37
+ save: (rec: PendingRequestRecord) => Promise<void>;
38
+ get: (token: string) => Promise<PendingRequestRecord | null>;
39
+ delete: (token: string) => Promise<void>;
40
+ update: (token: string, patch: Partial<PendingRequestRecord>) => Promise<void>;
41
+ }
42
+ declare function createInMemoryPendingRequestStore(): PendingRequestStore;
43
+
44
+ type FrameworkAdapter = {
45
+ kind: "memory" | "redis";
46
+ pendingRequests: PendingRequestStore;
47
+ checkpointer: BaseCheckpointSaver;
48
+ ttlMs: number;
49
+ /**
50
+ * Best-effort cleanup for ephemeral framework state for a single run.
51
+ * Called when a workflow completes without pausing for an interrupt.
52
+ */
53
+ cleanupRun?: (runId: string, namespaces: string[]) => Promise<void>;
54
+ };
55
+ type CreateInMemoryFrameworkAdapterOptions = {
56
+ ttlMs?: number;
57
+ };
58
+ declare function createInMemoryFrameworkAdapter(options?: CreateInMemoryFrameworkAdapterOptions): FrameworkAdapter;
59
+ type CreateRedisFrameworkAdapterOptions = {
60
+ url: string;
61
+ ttlMs?: number;
62
+ prefix?: string;
63
+ };
64
+ declare function createRedisFrameworkAdapter(options: CreateRedisFrameworkAdapterOptions): FrameworkAdapter;
65
+ declare function createFrameworkAdapterFromEnv(env?: Record<string, string | undefined>): FrameworkAdapter;
66
+
67
+ interface GraphRuntimeConfig {
68
+ emit?: (event: string, payload: unknown) => void;
69
+ onCheckpoint?: (args: {
70
+ nodeId: string;
71
+ state: GraphState;
72
+ }) => void;
73
+ memoryAdapter?: MemoryAdapter;
74
+ checkpointer?: BaseCheckpointSaver;
75
+ /**
76
+ * Provider factory used by ctx.speak to obtain a streaming model.
77
+ * Use @kortyx/providers or implement your own GetProviderFn.
78
+ */
79
+ getProvider?: GetProviderFn;
80
+ [key: string]: unknown;
81
+ }
82
+ declare function createLangGraph(workflow: WorkflowDefinition, config: GraphRuntimeConfig): Promise<any>;
83
+
84
+ declare function makeResumeToken(): string;
85
+ declare function makeRequestId(prefix?: string): string;
86
+
87
+ declare function registerNode(id: string, fn: NodeFn): void;
88
+ declare function getRegisteredNode(id: string): NodeFn | null;
89
+ declare function listRegisteredNodes(): string[];
90
+ declare function clearRegisteredNodes(): void;
91
+ declare function resolveNode(id: string): NodeFn;
92
+
93
+ type AnyWorkflow = WorkflowDefinition;
94
+ interface WorkflowRegistry {
95
+ list: () => Promise<AnyWorkflow[]>;
96
+ get: (id: string) => Promise<AnyWorkflow | null>;
97
+ select: (id: string, options?: {
98
+ fallbackId?: string;
99
+ }) => Promise<AnyWorkflow>;
100
+ refresh?: () => Promise<void>;
101
+ }
102
+
103
+ interface FileWorkflowRegistryOptions {
104
+ workflowsDir: string;
105
+ fallbackId?: string;
106
+ cache?: boolean;
107
+ extensions?: string[];
108
+ }
109
+ declare function createFileWorkflowRegistry(options: FileWorkflowRegistryOptions): WorkflowRegistry;
110
+
111
+ declare function createInMemoryWorkflowRegistry(workflows: WorkflowDefinition[], options?: {
112
+ fallbackId?: string;
113
+ }): WorkflowRegistry;
114
+
115
+ /**
116
+ * Prepares the initial runtime graph state from chat context, memory, and runtime config.
117
+ * This stays deliberately generic in the config type so apps can shape it.
118
+ */
119
+ interface InitialStateArgs<Config = unknown> {
120
+ input: unknown;
121
+ memory: MemoryEnvelope;
122
+ config: Config;
123
+ defaultWorkflowId?: string;
124
+ }
125
+ declare function buildInitialGraphState<Config>({ input, memory, config, defaultWorkflowId, }: InitialStateArgs<Config>): Promise<GraphState>;
126
+
127
+ export { type CreateInMemoryFrameworkAdapterOptions, type CreateRedisFrameworkAdapterOptions, type FileWorkflowRegistryOptions, type FrameworkAdapter, type GraphRuntimeConfig, type HumanInputKind, type HumanInputOption, type InitialStateArgs, type PendingRequestRecord, type PendingRequestStore, type WorkflowRegistry, buildInitialGraphState, clearRegisteredNodes, createFileWorkflowRegistry, createFrameworkAdapterFromEnv, createInMemoryFrameworkAdapter, createInMemoryPendingRequestStore, createInMemoryWorkflowRegistry, createLangGraph, createRedisFrameworkAdapter, getCheckpointer, getRegisteredNode, listRegisteredNodes, makeRequestId, makeResumeToken, registerNode, resolveNode };