@keystrokehq/keystroke 0.0.83 → 0.0.84
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent.cjs +2 -2
- package/dist/agent.mjs +2 -2
- package/dist/config.d.cts.map +1 -1
- package/dist/config.d.mts.map +1 -1
- package/dist/{dist-D9kmfOVj.cjs → dist-B1Dy8DVb.cjs} +60 -2
- package/dist/{dist-D9kmfOVj.cjs.map → dist-B1Dy8DVb.cjs.map} +1 -1
- package/dist/dist-BdtvGgfO.mjs +380 -0
- package/dist/dist-BdtvGgfO.mjs.map +1 -0
- package/dist/dist-CZZMGcuu.cjs +409 -0
- package/dist/dist-CZZMGcuu.cjs.map +1 -0
- package/dist/{dist-D6CLdIst.mjs → dist-DgIJtGrg.mjs} +60 -2
- package/dist/{dist-D6CLdIst.mjs.map → dist-DgIJtGrg.mjs.map} +1 -1
- package/dist/{index-BzsZvKGT.d.mts → index-Bv6uZ8Xd.d.mts} +87 -11
- package/dist/index-Bv6uZ8Xd.d.mts.map +1 -0
- package/dist/{index-CtyQ1EEq.d.cts → index-CpJJgeJ2.d.cts} +87 -11
- package/dist/index-CpJJgeJ2.d.cts.map +1 -0
- package/dist/{mistral-1tV3Hawf.cjs → mistral-Deqt4GvJ.cjs} +2 -2
- package/dist/{mistral-1tV3Hawf.cjs.map → mistral-Deqt4GvJ.cjs.map} +1 -1
- package/dist/{mistral-YEx-0Ny0.mjs → mistral-wT_K1dZn.mjs} +2 -2
- package/dist/{mistral-YEx-0Ny0.mjs.map → mistral-wT_K1dZn.mjs.map} +1 -1
- package/dist/{sse-CYVBGHvF.mjs → sse-D12n5Ckf.mjs} +2 -2
- package/dist/{sse-CYVBGHvF.mjs.map → sse-D12n5Ckf.mjs.map} +1 -1
- package/dist/{sse-_Xt5AdRl.cjs → sse-DvOq9Ntd.cjs} +2 -2
- package/dist/{sse-_Xt5AdRl.cjs.map → sse-DvOq9Ntd.cjs.map} +1 -1
- package/dist/trigger.cjs +1 -1
- package/dist/trigger.d.cts +1 -1
- package/dist/trigger.d.mts +1 -1
- package/dist/trigger.mjs +1 -1
- package/dist/workflow.cjs +2 -1
- package/dist/workflow.d.cts +2 -2
- package/dist/workflow.d.mts +2 -2
- package/dist/workflow.mjs +2 -2
- package/package.json +1 -1
- package/dist/dist-BgFwZKGS.mjs +0 -154
- package/dist/dist-BgFwZKGS.mjs.map +0 -1
- package/dist/dist-NUfD1tQj.cjs +0 -177
- package/dist/dist-NUfD1tQj.cjs.map +0 -1
- package/dist/index-BzsZvKGT.d.mts.map +0 -1
- package/dist/index-CtyQ1EEq.d.cts.map +0 -1
|
@@ -12,6 +12,18 @@ interface ActionStore {
|
|
|
12
12
|
get(runId: string, actionKey: string): Promise<unknown | undefined>;
|
|
13
13
|
set(runId: string, actionKey: string, output: unknown): Promise<void>;
|
|
14
14
|
}
|
|
15
|
+
type SleepDuration = number | string | Date;
|
|
16
|
+
type WorkflowSleep = (duration: SleepDuration) => Promise<void>;
|
|
17
|
+
type HookOptions<T> = {
|
|
18
|
+
/** Reuse a stable token instead of generating one. */token?: string; /** Optional schema to validate the resume payload. */
|
|
19
|
+
schema?: z.ZodType<T>;
|
|
20
|
+
};
|
|
21
|
+
/** Awaitable handle returned by `ctx.hook()`; awaiting it suspends until resumed. */
|
|
22
|
+
type HookHandle<T> = PromiseLike<T> & {
|
|
23
|
+
token: string;
|
|
24
|
+
resumeUrl: string;
|
|
25
|
+
};
|
|
26
|
+
type WorkflowHook = <T = unknown>(options?: HookOptions<T>) => HookHandle<T>;
|
|
15
27
|
type WorkflowRunContext = {
|
|
16
28
|
runId: string;
|
|
17
29
|
workspacesRoot?: string;
|
|
@@ -19,7 +31,9 @@ type WorkflowRunContext = {
|
|
|
19
31
|
root: string;
|
|
20
32
|
};
|
|
21
33
|
trigger?: "api" | "cron" | "webhook" | "poll" | "retry";
|
|
22
|
-
triggeredAt?: Date;
|
|
34
|
+
triggeredAt?: Date; /** Durably suspend the run for a duration (or until a Date). */
|
|
35
|
+
sleep: WorkflowSleep; /** Create a resume token and suspend the run until it is resumed externally. */
|
|
36
|
+
hook: WorkflowHook;
|
|
23
37
|
}; //#endregion
|
|
24
38
|
//#region src/workflow-definition.d.ts
|
|
25
39
|
/** Runtime validation for an unbranded workflow definition. */
|
|
@@ -75,19 +89,73 @@ type WorkflowDefinitionInput<TInputSchema extends z.ZodType = z.ZodType, TOutput
|
|
|
75
89
|
declare function isWorkflow(value: unknown): value is WorkflowDefinition; //#endregion
|
|
76
90
|
//#region src/define-workflow.d.ts
|
|
77
91
|
declare function defineWorkflow<TInputSchema extends z.ZodType, TOutputSchema extends z.ZodType>(def: WorkflowDefinitionInput<TInputSchema, TOutputSchema>): WorkflowDefinition<z.infer<TInputSchema>, z.infer<TOutputSchema>>; //#endregion
|
|
92
|
+
//#region src/replay/types.d.ts
|
|
93
|
+
type WorkflowEventType = "run_started" | "step_completed" | "step_failed" | "sleep_scheduled" | "sleep_completed" | "hook_created" | "hook_resumed" | "run_completed" | "run_failed";
|
|
94
|
+
/** Structural shape of a persisted event row (matches @keystrokehq/database). */
|
|
95
|
+
type ReplayEvent = {
|
|
96
|
+
id: string;
|
|
97
|
+
runId: string;
|
|
98
|
+
seq: number;
|
|
99
|
+
type: WorkflowEventType;
|
|
100
|
+
correlationId: string | null;
|
|
101
|
+
data: unknown;
|
|
102
|
+
};
|
|
103
|
+
type AppendEventInput = {
|
|
104
|
+
id?: string;
|
|
105
|
+
runId: string;
|
|
106
|
+
type: WorkflowEventType;
|
|
107
|
+
correlationId?: string | null;
|
|
108
|
+
data?: unknown;
|
|
109
|
+
};
|
|
110
|
+
/** Injected durable log (DB-backed in the server, in-memory in tests). */
|
|
111
|
+
type DurableEventLog = {
|
|
112
|
+
append(event: AppendEventInput): Promise<boolean>;
|
|
113
|
+
listReplay(runId: string): Promise<ReplayEvent[]>;
|
|
114
|
+
};
|
|
115
|
+
type SleepPendingItem = {
|
|
116
|
+
kind: "sleep";
|
|
117
|
+
correlationId: string;
|
|
118
|
+
resumeAt: Date;
|
|
119
|
+
};
|
|
120
|
+
type HookPendingItem = {
|
|
121
|
+
kind: "hook";
|
|
122
|
+
correlationId: string;
|
|
123
|
+
token: string;
|
|
124
|
+
};
|
|
125
|
+
type PendingItem = SleepPendingItem | HookPendingItem;
|
|
126
|
+
type ReplayResult = {
|
|
127
|
+
status: "completed";
|
|
128
|
+
output: unknown;
|
|
129
|
+
} | {
|
|
130
|
+
status: "failed";
|
|
131
|
+
error: unknown;
|
|
132
|
+
} | {
|
|
133
|
+
status: "suspended";
|
|
134
|
+
items: PendingItem[];
|
|
135
|
+
}; //#endregion
|
|
78
136
|
//#region src/execute-workflow.d.ts
|
|
79
137
|
type ExecuteWorkflowOptions = {
|
|
80
|
-
runId?: string;
|
|
138
|
+
runId?: string; /** Durable event log. Defaults to an in-memory log (single, non-resumable pass). */
|
|
139
|
+
eventLog?: DurableEventLog; /** Action checkpoint store. Defaults to in-memory. */
|
|
81
140
|
actionStore?: ActionStore;
|
|
82
|
-
actionStoreFactory?: () => ActionStore;
|
|
83
141
|
resolveCredentials?: ActionRunnerOptions["resolveCredentials"];
|
|
84
|
-
credentialContext?:
|
|
85
|
-
oauthAdapter?:
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
142
|
+
credentialContext?: ActionRunnerOptions["credentialContext"];
|
|
143
|
+
oauthAdapter?: ActionRunnerOptions["oauthAdapter"]; /** Public base URL used to build hook resume URLs. */
|
|
144
|
+
hookBaseUrl?: string; /** Captured once per pass; primitives use this for deterministic time math. */
|
|
145
|
+
now?: Date;
|
|
146
|
+
context?: Partial<Omit<WorkflowRunContext, "runId" | "sleep" | "hook">>;
|
|
89
147
|
};
|
|
90
|
-
|
|
148
|
+
/**
|
|
149
|
+
* The single way to run a workflow: replay its event log from the top, execute
|
|
150
|
+
* un-cached primitives, and either complete/fail or suspend at the first
|
|
151
|
+
* un-satisfied sleep/hook. New events (sleep_scheduled/sleep_completed/
|
|
152
|
+
* hook_created/run_completed/run_failed) are flushed before returning.
|
|
153
|
+
*
|
|
154
|
+
* Durability comes entirely from the log — a suspended run resumes by calling
|
|
155
|
+
* this again with the same `runId` and event log once the sleep is due or the
|
|
156
|
+
* hook is resumed.
|
|
157
|
+
*/
|
|
158
|
+
declare function executeWorkflow<TInput, TOutput>(workflow: WorkflowDefinition<TInput, TOutput>, input: unknown, options?: ExecuteWorkflowOptions): Promise<ReplayResult>; //#endregion
|
|
91
159
|
//#region src/memory-action-store.d.ts
|
|
92
160
|
declare class MemoryActionStore implements ActionStore {
|
|
93
161
|
private readonly records;
|
|
@@ -95,6 +163,14 @@ declare class MemoryActionStore implements ActionStore {
|
|
|
95
163
|
get(runId: string, actionKey: string): Promise<unknown | undefined>;
|
|
96
164
|
set(runId: string, actionKey: string, output: unknown): Promise<void>;
|
|
97
165
|
} //#endregion
|
|
166
|
+
//#region src/replay/memory-event-log.d.ts
|
|
167
|
+
/** In-memory durable log for inline execution and tests. */
|
|
168
|
+
declare class MemoryEventLog implements DurableEventLog {
|
|
169
|
+
private readonly events;
|
|
170
|
+
private readonly ids;
|
|
171
|
+
append(event: AppendEventInput): Promise<boolean>;
|
|
172
|
+
listReplay(runId: string): Promise<ReplayEvent[]>;
|
|
173
|
+
} //#endregion
|
|
98
174
|
//#endregion
|
|
99
|
-
export {
|
|
100
|
-
//# sourceMappingURL=index-
|
|
175
|
+
export { isWorkflow as S, WorkflowHook as _, HookHandle as a, defineWorkflow as b, MemoryActionStore as c, ReplayEvent as d, ReplayResult as f, WorkflowEventType as g, WorkflowDefinition as h, ExecuteWorkflowOptions as i, MemoryEventLog as l, SleepPendingItem as m, AppendEventInput as n, HookOptions as o, SleepDuration as p, DurableEventLog as r, HookPendingItem as s, ActionStore as t, PendingItem as u, WorkflowRunContext as v, executeWorkflow as x, WorkflowSleep as y };
|
|
176
|
+
//# sourceMappingURL=index-Bv6uZ8Xd.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-Bv6uZ8Xd.d.mts","names":["z","CredentialList","ResolvedCredentials","CredentialConsumer","CredentialRunContext","OAuthTokenAdapter","ActionRunnerOptions","T","Partial","Promise","resolveCredentials","requirements","consumer","contextOverride","credentialContext","oauthAdapter","ActionStore","get","runId","actionKey","set","output","SleepDuration","Date","WorkflowSleep","duration","HookOptions","ZodType","token","schema","HookHandle","PromiseLike","resumeUrl","WorkflowHook","options","WorkflowRunContext","workspacesRoot","sandbox","root","trigger","triggeredAt","sleep","hook","workflowCoreSchema","ZodString","ZodOptional","ZodEnum","core","$strip","ZodObject","ZodArray","$ZodTypeInternals","ZodCustom","$ZodFunctionArgs","$ZodFunctionOut","ZodFunction","key","name","description","subscription","mode","system","subscribable","files","path","file","dir","input","run","WorkflowMeta","infer","Omit","WorkflowIO","TInputSchema","TOutputSchema","ctx","WORKFLOW","WorkflowDefinition","TInput","TOutput","WorkflowDefinitionInput","isWorkflow","value","defineWorkflow","def","WorkflowEventType","ReplayEvent","id","seq","type","correlationId","data","AppendEventInput","DurableEventLog","append","event","listReplay","SleepPendingItem","kind","resumeAt","HookPendingItem","PendingItem","ReplayResult","status","error","items","ExecuteWorkflowOptions","eventLog","actionStore","hookBaseUrl","now","context","executeWorkflow","workflow","MemoryActionStore","records","MemoryEventLog","events","ids"],"sources":["../../workflow/dist/index.d.mts"],"mappings":"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"}
|
|
@@ -12,6 +12,18 @@ interface ActionStore {
|
|
|
12
12
|
get(runId: string, actionKey: string): Promise<unknown | undefined>;
|
|
13
13
|
set(runId: string, actionKey: string, output: unknown): Promise<void>;
|
|
14
14
|
}
|
|
15
|
+
type SleepDuration = number | string | Date;
|
|
16
|
+
type WorkflowSleep = (duration: SleepDuration) => Promise<void>;
|
|
17
|
+
type HookOptions<T> = {
|
|
18
|
+
/** Reuse a stable token instead of generating one. */token?: string; /** Optional schema to validate the resume payload. */
|
|
19
|
+
schema?: z.ZodType<T>;
|
|
20
|
+
};
|
|
21
|
+
/** Awaitable handle returned by `ctx.hook()`; awaiting it suspends until resumed. */
|
|
22
|
+
type HookHandle<T> = PromiseLike<T> & {
|
|
23
|
+
token: string;
|
|
24
|
+
resumeUrl: string;
|
|
25
|
+
};
|
|
26
|
+
type WorkflowHook = <T = unknown>(options?: HookOptions<T>) => HookHandle<T>;
|
|
15
27
|
type WorkflowRunContext = {
|
|
16
28
|
runId: string;
|
|
17
29
|
workspacesRoot?: string;
|
|
@@ -19,7 +31,9 @@ type WorkflowRunContext = {
|
|
|
19
31
|
root: string;
|
|
20
32
|
};
|
|
21
33
|
trigger?: "api" | "cron" | "webhook" | "poll" | "retry";
|
|
22
|
-
triggeredAt?: Date;
|
|
34
|
+
triggeredAt?: Date; /** Durably suspend the run for a duration (or until a Date). */
|
|
35
|
+
sleep: WorkflowSleep; /** Create a resume token and suspend the run until it is resumed externally. */
|
|
36
|
+
hook: WorkflowHook;
|
|
23
37
|
}; //#endregion
|
|
24
38
|
//#region src/workflow-definition.d.ts
|
|
25
39
|
/** Runtime validation for an unbranded workflow definition. */
|
|
@@ -75,19 +89,73 @@ type WorkflowDefinitionInput<TInputSchema extends z.ZodType = z.ZodType, TOutput
|
|
|
75
89
|
declare function isWorkflow(value: unknown): value is WorkflowDefinition; //#endregion
|
|
76
90
|
//#region src/define-workflow.d.ts
|
|
77
91
|
declare function defineWorkflow<TInputSchema extends z.ZodType, TOutputSchema extends z.ZodType>(def: WorkflowDefinitionInput<TInputSchema, TOutputSchema>): WorkflowDefinition<z.infer<TInputSchema>, z.infer<TOutputSchema>>; //#endregion
|
|
92
|
+
//#region src/replay/types.d.ts
|
|
93
|
+
type WorkflowEventType = "run_started" | "step_completed" | "step_failed" | "sleep_scheduled" | "sleep_completed" | "hook_created" | "hook_resumed" | "run_completed" | "run_failed";
|
|
94
|
+
/** Structural shape of a persisted event row (matches @keystrokehq/database). */
|
|
95
|
+
type ReplayEvent = {
|
|
96
|
+
id: string;
|
|
97
|
+
runId: string;
|
|
98
|
+
seq: number;
|
|
99
|
+
type: WorkflowEventType;
|
|
100
|
+
correlationId: string | null;
|
|
101
|
+
data: unknown;
|
|
102
|
+
};
|
|
103
|
+
type AppendEventInput = {
|
|
104
|
+
id?: string;
|
|
105
|
+
runId: string;
|
|
106
|
+
type: WorkflowEventType;
|
|
107
|
+
correlationId?: string | null;
|
|
108
|
+
data?: unknown;
|
|
109
|
+
};
|
|
110
|
+
/** Injected durable log (DB-backed in the server, in-memory in tests). */
|
|
111
|
+
type DurableEventLog = {
|
|
112
|
+
append(event: AppendEventInput): Promise<boolean>;
|
|
113
|
+
listReplay(runId: string): Promise<ReplayEvent[]>;
|
|
114
|
+
};
|
|
115
|
+
type SleepPendingItem = {
|
|
116
|
+
kind: "sleep";
|
|
117
|
+
correlationId: string;
|
|
118
|
+
resumeAt: Date;
|
|
119
|
+
};
|
|
120
|
+
type HookPendingItem = {
|
|
121
|
+
kind: "hook";
|
|
122
|
+
correlationId: string;
|
|
123
|
+
token: string;
|
|
124
|
+
};
|
|
125
|
+
type PendingItem = SleepPendingItem | HookPendingItem;
|
|
126
|
+
type ReplayResult = {
|
|
127
|
+
status: "completed";
|
|
128
|
+
output: unknown;
|
|
129
|
+
} | {
|
|
130
|
+
status: "failed";
|
|
131
|
+
error: unknown;
|
|
132
|
+
} | {
|
|
133
|
+
status: "suspended";
|
|
134
|
+
items: PendingItem[];
|
|
135
|
+
}; //#endregion
|
|
78
136
|
//#region src/execute-workflow.d.ts
|
|
79
137
|
type ExecuteWorkflowOptions = {
|
|
80
|
-
runId?: string;
|
|
138
|
+
runId?: string; /** Durable event log. Defaults to an in-memory log (single, non-resumable pass). */
|
|
139
|
+
eventLog?: DurableEventLog; /** Action checkpoint store. Defaults to in-memory. */
|
|
81
140
|
actionStore?: ActionStore;
|
|
82
|
-
actionStoreFactory?: () => ActionStore;
|
|
83
141
|
resolveCredentials?: ActionRunnerOptions["resolveCredentials"];
|
|
84
|
-
credentialContext?:
|
|
85
|
-
oauthAdapter?:
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
142
|
+
credentialContext?: ActionRunnerOptions["credentialContext"];
|
|
143
|
+
oauthAdapter?: ActionRunnerOptions["oauthAdapter"]; /** Public base URL used to build hook resume URLs. */
|
|
144
|
+
hookBaseUrl?: string; /** Captured once per pass; primitives use this for deterministic time math. */
|
|
145
|
+
now?: Date;
|
|
146
|
+
context?: Partial<Omit<WorkflowRunContext, "runId" | "sleep" | "hook">>;
|
|
89
147
|
};
|
|
90
|
-
|
|
148
|
+
/**
|
|
149
|
+
* The single way to run a workflow: replay its event log from the top, execute
|
|
150
|
+
* un-cached primitives, and either complete/fail or suspend at the first
|
|
151
|
+
* un-satisfied sleep/hook. New events (sleep_scheduled/sleep_completed/
|
|
152
|
+
* hook_created/run_completed/run_failed) are flushed before returning.
|
|
153
|
+
*
|
|
154
|
+
* Durability comes entirely from the log — a suspended run resumes by calling
|
|
155
|
+
* this again with the same `runId` and event log once the sleep is due or the
|
|
156
|
+
* hook is resumed.
|
|
157
|
+
*/
|
|
158
|
+
declare function executeWorkflow<TInput, TOutput>(workflow: WorkflowDefinition<TInput, TOutput>, input: unknown, options?: ExecuteWorkflowOptions): Promise<ReplayResult>; //#endregion
|
|
91
159
|
//#region src/memory-action-store.d.ts
|
|
92
160
|
declare class MemoryActionStore implements ActionStore {
|
|
93
161
|
private readonly records;
|
|
@@ -95,6 +163,14 @@ declare class MemoryActionStore implements ActionStore {
|
|
|
95
163
|
get(runId: string, actionKey: string): Promise<unknown | undefined>;
|
|
96
164
|
set(runId: string, actionKey: string, output: unknown): Promise<void>;
|
|
97
165
|
} //#endregion
|
|
166
|
+
//#region src/replay/memory-event-log.d.ts
|
|
167
|
+
/** In-memory durable log for inline execution and tests. */
|
|
168
|
+
declare class MemoryEventLog implements DurableEventLog {
|
|
169
|
+
private readonly events;
|
|
170
|
+
private readonly ids;
|
|
171
|
+
append(event: AppendEventInput): Promise<boolean>;
|
|
172
|
+
listReplay(runId: string): Promise<ReplayEvent[]>;
|
|
173
|
+
} //#endregion
|
|
98
174
|
//#endregion
|
|
99
|
-
export {
|
|
100
|
-
//# sourceMappingURL=index-
|
|
175
|
+
export { isWorkflow as S, WorkflowHook as _, HookHandle as a, defineWorkflow as b, MemoryActionStore as c, ReplayEvent as d, ReplayResult as f, WorkflowEventType as g, WorkflowDefinition as h, ExecuteWorkflowOptions as i, MemoryEventLog as l, SleepPendingItem as m, AppendEventInput as n, HookOptions as o, SleepDuration as p, DurableEventLog as r, HookPendingItem as s, ActionStore as t, PendingItem as u, WorkflowRunContext as v, executeWorkflow as x, WorkflowSleep as y };
|
|
176
|
+
//# sourceMappingURL=index-CpJJgeJ2.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-CpJJgeJ2.d.cts","names":["z","CredentialList","ResolvedCredentials","CredentialConsumer","CredentialRunContext","OAuthTokenAdapter","ActionRunnerOptions","T","Partial","Promise","resolveCredentials","requirements","consumer","contextOverride","credentialContext","oauthAdapter","ActionStore","get","runId","actionKey","set","output","SleepDuration","Date","WorkflowSleep","duration","HookOptions","ZodType","token","schema","HookHandle","PromiseLike","resumeUrl","WorkflowHook","options","WorkflowRunContext","workspacesRoot","sandbox","root","trigger","triggeredAt","sleep","hook","workflowCoreSchema","ZodString","ZodOptional","ZodEnum","core","$strip","ZodObject","ZodArray","$ZodTypeInternals","ZodCustom","$ZodFunctionArgs","$ZodFunctionOut","ZodFunction","key","name","description","subscription","mode","system","subscribable","files","path","file","dir","input","run","WorkflowMeta","infer","Omit","WorkflowIO","TInputSchema","TOutputSchema","ctx","WORKFLOW","WorkflowDefinition","TInput","TOutput","WorkflowDefinitionInput","isWorkflow","value","defineWorkflow","def","WorkflowEventType","ReplayEvent","id","seq","type","correlationId","data","AppendEventInput","DurableEventLog","append","event","listReplay","SleepPendingItem","kind","resumeAt","HookPendingItem","PendingItem","ReplayResult","status","error","items","ExecuteWorkflowOptions","eventLog","actionStore","hookBaseUrl","now","context","executeWorkflow","workflow","MemoryActionStore","records","MemoryEventLog","events","ids"],"sources":["../../workflow/dist/index.d.mts"],"mappings":";;;;;KAKKM,mBAAAA;EACHI,kBAAAA,cAAgCT,cAAAA,EAAgBU,YAAAA,EAAcJ,CAAAA,EAAGK,QAAAA,EAAUT,kBAAAA,EAAoBU,eAAAA,GAAkBL,OAAAA,CAAQJ,oBAAAA,MAA0BK,OAAAA,CAAQP,mBAAAA,CAAoBK,CAAAA;EAC/KO,iBAAAA,GAAoBV,oBAAAA;EACpBW,YAAAA,GAAeV,iBAAAA;AAAAA;AAAAA,UAEPW,WAAAA;EACRC,GAAAA,CAAIC,KAAAA,UAAeC,SAAAA,WAAoBV,OAAAA;EACvCW,GAAAA,CAAIF,KAAAA,UAAeC,SAAAA,UAAmBE,MAAAA,YAAkBZ,OAAO;AAAA;AAAA,KAE5Da,aAAAA,qBAAkCC,IAAI;AAAA,KACtCC,aAAAA,IAAiBC,QAAAA,EAAUH,aAAAA,KAAkBb,OAAO;AAAA,KACpDiB,WAAAA;EARYrB,sDASuCuB,KAAAA,WATvCvB;EAUfwB,MAAAA,GAAS7B,CAAAA,CAAE2B,OAAO,CAACpB,CAAAA;AAAAA;;KAGhBuB,UAAAA,MAAgBC,WAAW,CAACxB,CAAAA;EAC/BqB,KAAAA;EACAI,SAAAA;AAAAA;AAAAA,KAEGC,YAAAA,iBAA6BC,OAAAA,GAAUR,WAAAA,CAAYnB,CAAAA,MAAOuB,UAAAA,CAAWvB,CAAAA;AAAAA,KACrE4B,kBAAAA;EACHjB,KAAAA;EACAkB,cAAAA;EACAC,OAAAA;IACEC,IAAAA;EAAAA;EAEFC,OAAAA;EACAC,WAAAA,GAAcjB,IAAAA,EA1BdT;EA2BA2B,KAAAA,EAAOjB,aAAAA,EA3BapB;EA4BpBsC,IAAAA,EAAMT,YAAAA;AAAAA;AAAAA;AA3B0B;AAAA,cAgCpBU,kBAAAA,EAAoB3C,CAAAA,CAAEiD,SAAAA;EAClCO,GAAAA,EAAKxD,CAAAA,CAAE4C,SAAAA;EACPa,IAAAA,EAAMzD,CAAAA,CAAE6C,WAAAA,CAAY7C,CAAAA,CAAE4C,SAAAA;EACtBc,WAAAA,EAAa1D,CAAAA,CAAE6C,WAAAA,CAAY7C,CAAAA,CAAE4C,SAAAA;EAC7Be,YAAAA,EAAc3D,CAAAA,CAAE6C,WAAAA,CAAY7C,CAAAA,CAAEiD,SAAAA;IAC5BW,IAAAA,EAAM5D,CAAAA,CAAE6C,WAAAA,CAAY7C,CAAAA,CAAE8C,OAAAA;MACpBe,MAAAA;MACAC,YAAAA;IAAAA;EAAAA,GAED9D,CAAAA,CAAE+C,IAAAA,CAAKC,MAAAA;EACVX,OAAAA,EAASrC,CAAAA,CAAE6C,WAAAA,CAAY7C,CAAAA,CAAEiD,SAAAA;IACvBO,GAAAA,EAAKxD,CAAAA,CAAE6C,WAAAA,CAAY7C,CAAAA,CAAE4C,SAAAA;IACrBmB,KAAAA,EAAO/D,CAAAA,CAAE6C,WAAAA,CAAY7C,CAAAA,CAAEkD,QAAAA,CAASlD,CAAAA,CAAEiD,SAAAA;MAChCe,IAAAA,EAAMhE,CAAAA,CAAE4C,SAAAA;MACRqB,IAAAA,EAAMjE,CAAAA,CAAE6C,WAAAA,CAAY7C,CAAAA,CAAE4C,SAAAA;MACtBsB,GAAAA,EAAKlE,CAAAA,CAAE6C,WAAAA,CAAY7C,CAAAA,CAAEkD,QAAAA,CAASlD,CAAAA,CAAEiD,SAAAA;QAC9Be,IAAAA,EAAMhE,CAAAA,CAAE4C,SAAAA;QACRqB,IAAAA,EAAMjE,CAAAA,CAAE4C,SAAAA;MAAAA,GACP5C,CAAAA,CAAE+C,IAAAA,CAAKC,MAAAA;IAAAA,GACThD,CAAAA,CAAE+C,IAAAA,CAAKC,MAAAA;EAAAA,GACThD,CAAAA,CAAE+C,IAAAA,CAAKC,MAAAA;EACVmB,KAAAA,EAAOnE,CAAAA,CAAEoD,SAAAA,CAAUpD,CAAAA,CAAE2B,OAAAA,mBAA0B3B,CAAAA,CAAE+C,IAAAA,CAAKI,iBAAAA,qBAAsCnD,CAAAA,CAAE2B,OAAAA,mBAA0B3B,CAAAA,CAAE+C,IAAAA,CAAKI,iBAAAA;EAC/H9B,MAAAA,EAAQrB,CAAAA,CAAEoD,SAAAA,CAAUpD,CAAAA,CAAE2B,OAAAA,mBAA0B3B,CAAAA,CAAE+C,IAAAA,CAAKI,iBAAAA,qBAAsCnD,CAAAA,CAAE2B,OAAAA,mBAA0B3B,CAAAA,CAAE+C,IAAAA,CAAKI,iBAAAA;EAChIiB,GAAAA,EAAKpE,CAAAA,CAAEuD,WAAAA,CAAYvD,CAAAA,CAAE+C,IAAAA,CAAKM,gBAAAA,EAAkBrD,CAAAA,CAAE+C,IAAAA,CAAKO,eAAAA;AAAAA,GAClDtD,CAAAA,CAAE+C,IAAAA,CAAKC,MAAAA;;KAELqB,YAAAA,GAAeE,IAAAA,CAAKvE,CAAAA,CAAEsE,KAAAA,QAAa3B,kBAAAA;AAAAA,KACnC6B,UAAAA,sBAAgCxE,CAAAA,CAAE2B,OAAAA,wBAA+B3B,CAAAA,CAAE2B,OAAAA;EACtEwC,KAAAA,EAAOM,YAAAA;EACPpD,MAAAA,EAAQqD,aAAAA;EACRN,GAAAA,CAAID,KAAAA,EAAOnE,CAAAA,CAAEsE,KAAAA,CAAMG,YAAAA,GAAeE,GAAAA,EAAKxC,kBAAAA,GAAqB1B,OAAAA,CAAQT,CAAAA,CAAEsE,KAAAA,CAAMI,aAAAA;AAAAA;AAAAA,cAEhEE,QAAAA;;;;;KAKTC,kBAAAA,wCAA0DR,YAAAA,GAAeG,UAAAA,CAAWxE,CAAAA,CAAE2B,OAAAA,CAAQmD,MAAAA,GAAS9E,CAAAA,CAAE2B,OAAAA,CAAQoD,OAAAA;EAAAA,UAC1GH,QAAAA;AAAAA;AA5DU;;;;AAAA,KAkEjBI,uBAAAA,sBAA6ChF,CAAAA,CAAE2B,OAAAA,GAAU3B,CAAAA,CAAE2B,OAAAA,wBAA+B3B,CAAAA,CAAE2B,OAAAA,GAAU3B,CAAAA,CAAE2B,OAAAA,IAAW0C,YAAAA,GAAeG,UAAAA,CAAWC,YAAAA,EAAcC,aAAAA;;;;;iBAK/IO,UAAAA,CAAWC,KAAAA,YAAiBA,KAAAA,IAASL,kBAAkB;AAAA;AAAA,iBAGvDM,cAAAA,sBAAoCnF,CAAAA,CAAE2B,OAAAA,wBAA+B3B,CAAAA,CAAE2B,OAAAA,CAAAA,CAASyD,GAAAA,EAAKJ,uBAAAA,CAAwBP,YAAAA,EAAcC,aAAAA,IAAiBG,kBAAAA,CAAmB7E,CAAAA,CAAEsE,KAAAA,CAAMG,YAAAA,GAAezE,CAAAA,CAAEsE,KAAAA,CAAMI,aAAAA;AAAAA;AAAAA,KAG1MW,iBAAAA;;KAEAC,WAAAA;EACHC,EAAAA;EACArE,KAAAA;EACAsE,GAAAA;EACAC,IAAAA,EAAMJ,iBAAiB;EACvBK,aAAAA;EACAC,IAAAA;AAAAA;AAAAA,KAEGC,gBAAAA;EACHL,EAAAA;EACArE,KAAAA;EACAuE,IAAAA,EAAMJ,iBAAiB;EACvBK,aAAAA;EACAC,IAAAA;AAAAA;;KAGGE,eAAAA;EACHC,MAAAA,CAAOC,KAAAA,EAAOH,gBAAAA,GAAmBnF,OAAAA;EACjCuF,UAAAA,CAAW9E,KAAAA,WAAgBT,OAAAA,CAAQ6E,WAAAA;AAAAA;AAAAA,KAEhCW,gBAAAA;EACHC,IAAAA;EACAR,aAAAA;EACAS,QAAAA,EAAU5E,IAAI;AAAA;AAAA,KAEX6E,eAAAA;EACHF,IAAAA;EACAR,aAAAA;EACA9D,KAAAA;AAAAA;AAAAA,KAEGyE,WAAAA,GAAcJ,gBAAAA,GAAmBG,eAAe;AAAA,KAChDE,YAAAA;EACHC,MAAAA;EACAlF,MAAAA;AAAAA;EAEAkF,MAAAA;EACAC,KAAAA;AAAAA;EAEAD,MAAAA;EACAE,KAAAA,EAAOJ,WAAW;AAAA;AAAA;AAAA,KAIfK,sBAAAA;EACHxF,KAAAA,WAjGgB2B;EAkGhB8D,QAAAA,GAAWd,eAAAA,EA3FYjD;EA4FvBgE,WAAAA,GAAc5F,WAAAA;EACdN,kBAAAA,GAAqBJ,mBAAAA;EACrBQ,iBAAAA,GAAoBR,mBAAAA;EACpBS,YAAAA,GAAeT,mBAAAA,kBA5FHuC;EA6FZgE,WAAAA,WA3FcjE;EA4FdkE,GAAAA,GAAMvF,IAAAA;EACNwF,OAAAA,GAAUvG,OAAAA,CAAQ+D,IAAAA,CAAKpC,kBAAAA;AAAAA;;;;;;;;;;;iBAYR6E,eAAAA,iBAAAA,CAAiCC,QAAAA,EAAUpC,kBAAAA,CAAmBC,MAAAA,EAAQC,OAAAA,GAAUZ,KAAAA,WAAgBjC,OAAAA,GAAUwE,sBAAAA,GAAyBjG,OAAAA,CAAQ6F,YAAAA;AAAAA;AAAAA,cAG9IY,iBAAAA,YAA6BlG,WAAAA;EAAAA,iBACxBmG,OAAAA;EAAAA,QACT3D,GAAAA;EACRvC,GAAAA,CAAIC,KAAAA,UAAeC,SAAAA,WAAoBV,OAAAA;EACvCW,GAAAA,CAAIF,KAAAA,UAAeC,SAAAA,UAAmBE,MAAAA,YAAkBZ,OAAAA;AAAAA;AAAAA;;cAK5C2G,cAAAA,YAA0BvB,eAAAA;EAAAA,iBACrBwB,MAAAA;EAAAA,iBACAC,GAAAA;EACjBxB,MAAAA,CAAOC,KAAAA,EAAOH,gBAAAA,GAAmBnF,OAAAA;EACjCuF,UAAAA,CAAW9E,KAAAA,WAAgBT,OAAAA,CAAQ6E,WAAAA;AAAAA"}
|
|
@@ -2,7 +2,7 @@ const require_dist = require("./dist-CLqJza2Y.cjs");
|
|
|
2
2
|
const require_env_api_keys = require("./env-api-keys-BFptfIIs.cjs");
|
|
3
3
|
const require_event_stream = require("./event-stream-CS-ls7wC.cjs");
|
|
4
4
|
const require_json_parse = require("./json-parse-CpkTvzp8.cjs");
|
|
5
|
-
const require_dist$1 = require("./dist-
|
|
5
|
+
const require_dist$1 = require("./dist-B1Dy8DVb.cjs");
|
|
6
6
|
const require_sanitize_unicode = require("./sanitize-unicode-Bh6iO3Nz.cjs");
|
|
7
7
|
const require_transform_messages = require("./transform-messages-BwOWnhwJ.cjs");
|
|
8
8
|
const require_hash = require("./hash-DEgLRlHK.cjs");
|
|
@@ -27563,4 +27563,4 @@ function mapChatStopReason(reason) {
|
|
|
27563
27563
|
exports.streamMistral = streamMistral;
|
|
27564
27564
|
exports.streamSimpleMistral = streamSimpleMistral;
|
|
27565
27565
|
|
|
27566
|
-
//# sourceMappingURL=mistral-
|
|
27566
|
+
//# sourceMappingURL=mistral-Deqt4GvJ.cjs.map
|