@nexalab/agent-sdk 0.1.5 → 0.1.7

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 (85) hide show
  1. package/README.md +66 -0
  2. package/dist/file-storage.d.ts +3 -0
  3. package/dist/file-storage.d.ts.map +1 -1
  4. package/dist/file-storage.js +9 -0
  5. package/dist/file-storage.js.map +1 -1
  6. package/dist/guided-flows/define-flow.d.ts +4 -0
  7. package/dist/guided-flows/define-flow.d.ts.map +1 -0
  8. package/dist/guided-flows/define-flow.js +34 -0
  9. package/dist/guided-flows/define-flow.js.map +1 -0
  10. package/dist/guided-flows/errors.d.ts +11 -0
  11. package/dist/guided-flows/errors.d.ts.map +1 -0
  12. package/dist/guided-flows/errors.js +15 -0
  13. package/dist/guided-flows/errors.js.map +1 -0
  14. package/dist/guided-flows/events.d.ts +20 -0
  15. package/dist/guided-flows/events.d.ts.map +1 -0
  16. package/dist/guided-flows/events.js +17 -0
  17. package/dist/guided-flows/events.js.map +1 -0
  18. package/dist/guided-flows/index.d.ts +10 -0
  19. package/dist/guided-flows/index.d.ts.map +1 -0
  20. package/dist/guided-flows/index.js +6 -0
  21. package/dist/guided-flows/index.js.map +1 -0
  22. package/dist/guided-flows/persistence.d.ts +32 -0
  23. package/dist/guided-flows/persistence.d.ts.map +1 -0
  24. package/dist/guided-flows/persistence.js +37 -0
  25. package/dist/guided-flows/persistence.js.map +1 -0
  26. package/dist/guided-flows/requirements.d.ts +8 -0
  27. package/dist/guided-flows/requirements.d.ts.map +1 -0
  28. package/dist/guided-flows/requirements.js +21 -0
  29. package/dist/guided-flows/requirements.js.map +1 -0
  30. package/dist/guided-flows/runtime.d.ts +104 -0
  31. package/dist/guided-flows/runtime.d.ts.map +1 -0
  32. package/dist/guided-flows/runtime.js +433 -0
  33. package/dist/guided-flows/runtime.js.map +1 -0
  34. package/dist/guided-flows/state.d.ts +30 -0
  35. package/dist/guided-flows/state.d.ts.map +1 -0
  36. package/dist/guided-flows/state.js +84 -0
  37. package/dist/guided-flows/state.js.map +1 -0
  38. package/dist/guided-flows/steps.d.ts +12 -0
  39. package/dist/guided-flows/steps.d.ts.map +1 -0
  40. package/dist/guided-flows/steps.js +37 -0
  41. package/dist/guided-flows/steps.js.map +1 -0
  42. package/dist/guided-flows/tool-policy.d.ts +16 -0
  43. package/dist/guided-flows/tool-policy.d.ts.map +1 -0
  44. package/dist/guided-flows/tool-policy.js +33 -0
  45. package/dist/guided-flows/tool-policy.js.map +1 -0
  46. package/dist/guided-flows/types.d.ts +141 -0
  47. package/dist/guided-flows/types.d.ts.map +1 -0
  48. package/dist/guided-flows/types.js +2 -0
  49. package/dist/guided-flows/types.js.map +1 -0
  50. package/dist/hooks.d.ts +52 -0
  51. package/dist/hooks.d.ts.map +1 -1
  52. package/dist/hooks.js.map +1 -1
  53. package/dist/index.d.ts +1 -0
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +1 -0
  56. package/dist/index.js.map +1 -1
  57. package/dist/kernel.d.ts +29 -0
  58. package/dist/kernel.d.ts.map +1 -1
  59. package/dist/kernel.js +70 -4
  60. package/dist/kernel.js.map +1 -1
  61. package/dist/manifest.d.ts +3 -2
  62. package/dist/manifest.d.ts.map +1 -1
  63. package/dist/manifest.js +1 -0
  64. package/dist/manifest.js.map +1 -1
  65. package/dist/postgres-storage.d.ts +3 -0
  66. package/dist/postgres-storage.d.ts.map +1 -1
  67. package/dist/postgres-storage.js +9 -0
  68. package/dist/postgres-storage.js.map +1 -1
  69. package/dist/redis-storage.d.ts +3 -0
  70. package/dist/redis-storage.d.ts.map +1 -1
  71. package/dist/redis-storage.js +9 -0
  72. package/dist/redis-storage.js.map +1 -1
  73. package/dist/sessions.d.ts +7 -1
  74. package/dist/sessions.d.ts.map +1 -1
  75. package/dist/sessions.js +2 -2
  76. package/dist/sessions.js.map +1 -1
  77. package/dist/sqlite-storage.d.ts +3 -0
  78. package/dist/sqlite-storage.d.ts.map +1 -1
  79. package/dist/sqlite-storage.js +13 -1
  80. package/dist/sqlite-storage.js.map +1 -1
  81. package/dist/storage.d.ts +4 -0
  82. package/dist/storage.d.ts.map +1 -1
  83. package/dist/storage.js +8 -0
  84. package/dist/storage.js.map +1 -1
  85. package/package.json +16 -4
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Resolves the active step for the current `state`: the first step (in
3
+ * declared order) whose `when` predicate passes (branches that don't apply
4
+ * are skipped, never entered) and that isn't already satisfied. This is a
5
+ * pure function of `state`, never a model decision.
6
+ */
7
+ export function resolveActiveStep(config, state) {
8
+ for (const step of config.steps) {
9
+ if (step.when && !step.when({ state }))
10
+ continue;
11
+ if (isStepSatisfied(step, state))
12
+ continue;
13
+ return step;
14
+ }
15
+ return undefined;
16
+ }
17
+ export function isStepSatisfied(step, state) {
18
+ if (step.exit)
19
+ return Boolean(step.exit({ state }));
20
+ if (!step.collect || step.collect.length === 0)
21
+ return false;
22
+ return step.collect.every((field) => {
23
+ const value = state[String(field)];
24
+ return value !== undefined && value !== null && value !== "";
25
+ });
26
+ }
27
+ export function missingCollectFields(step, state) {
28
+ if (!step?.collect)
29
+ return [];
30
+ return step.collect
31
+ .map(String)
32
+ .filter((field) => {
33
+ const value = state[field];
34
+ return value === undefined || value === null || value === "";
35
+ });
36
+ }
37
+ //# sourceMappingURL=steps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/guided-flows/steps.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAqD,EACrD,KAA4B;IAE5B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;YAAE,SAAS;QACjD,IAAI,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC;YAAE,SAAS;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,eAAe,CAAS,IAA4B,EAAE,KAAa;IACjF,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACpD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7D,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAClC,MAAM,KAAK,GAAI,KAAiC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAS,IAAwC,EAAE,KAAa;IAClG,IAAI,CAAC,IAAI,EAAE,OAAO;QAAE,OAAO,EAAE,CAAC;IAC9B,OAAO,IAAI,CAAC,OAAO;SAChB,GAAG,CAAC,MAAM,CAAC;SACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAChB,MAAM,KAAK,GAAI,KAAiC,CAAC,KAAK,CAAC,CAAC;QACxD,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;IAC/D,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { AgentToolRegistration } from "../openai-agent.js";
2
+ import type { StepToolPolicy } from "./types.js";
3
+ /**
4
+ * Resolves the tool set offered to the model for the active step.
5
+ *
6
+ * Precedence (each layer may only narrow, never widen, the previous one):
7
+ * 1. global/security policy — out of scope for this module, enforced upstream;
8
+ * 2. agent permissions — already applied by `kernel.ts` before `baseTools` ever
9
+ * reaches this function (`filterToolsByPermissions`);
10
+ * 3. step `denied`/`allowed` — applied here.
11
+ * A flow can therefore never expand what the agent itself was permitted to use.
12
+ */
13
+ export declare function resolveStepTools(baseTools: AgentToolRegistration[], policy: StepToolPolicy | undefined): AgentToolRegistration[];
14
+ export declare function missingRequiredTools(policy: StepToolPolicy | undefined, executedToolIds: string[]): string[];
15
+ export declare function missingRequiredBeforeExitTools(policy: StepToolPolicy | undefined, executedToolIds: string[]): string[];
16
+ //# sourceMappingURL=tool-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-policy.d.ts","sourceRoot":"","sources":["../../src/guided-flows/tool-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,qBAAqB,EAAE,EAAE,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,qBAAqB,EAAE,CAQhI;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAG5G;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAGtH"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Resolves the tool set offered to the model for the active step.
3
+ *
4
+ * Precedence (each layer may only narrow, never widen, the previous one):
5
+ * 1. global/security policy — out of scope for this module, enforced upstream;
6
+ * 2. agent permissions — already applied by `kernel.ts` before `baseTools` ever
7
+ * reaches this function (`filterToolsByPermissions`);
8
+ * 3. step `denied`/`allowed` — applied here.
9
+ * A flow can therefore never expand what the agent itself was permitted to use.
10
+ */
11
+ export function resolveStepTools(baseTools, policy) {
12
+ if (!policy)
13
+ return baseTools;
14
+ return baseTools.filter((registration) => {
15
+ const id = registration.tool.id;
16
+ if (policy.denied?.includes(id))
17
+ return false;
18
+ if (policy.allowed && !policy.allowed.includes(id))
19
+ return false;
20
+ return true;
21
+ });
22
+ }
23
+ export function missingRequiredTools(policy, executedToolIds) {
24
+ if (!policy?.required?.length)
25
+ return [];
26
+ return policy.required.filter((toolId) => !executedToolIds.includes(toolId));
27
+ }
28
+ export function missingRequiredBeforeExitTools(policy, executedToolIds) {
29
+ if (!policy?.requiredBeforeExit?.length)
30
+ return [];
31
+ return policy.requiredBeforeExit.filter((toolId) => !executedToolIds.includes(toolId));
32
+ }
33
+ //# sourceMappingURL=tool-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-policy.js","sourceRoot":"","sources":["../../src/guided-flows/tool-policy.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAkC,EAAE,MAAkC;IACrG,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE;QACvC,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,IAAI,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9C,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAkC,EAAE,eAAyB;IAChG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM;QAAE,OAAO,EAAE,CAAC;IACzC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,MAAkC,EAAE,eAAyB;IAC1G,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM;QAAE,OAAO,EAAE,CAAC;IACnD,OAAO,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACzF,CAAC"}
@@ -0,0 +1,141 @@
1
+ import type { z } from "zod";
2
+ import type { JsonObject, JsonValue } from "../types.js";
3
+ import type { ToolExecutionResult } from "../tool-registry.js";
4
+ /**
5
+ * Guided Flow lifecycle. Deliberately its own closed union — not the plan/step
6
+ * engine's `AgentTaskState` (types.ts) or `mission-runtime.ts`'s `MissionStatus`.
7
+ * Those model a planner-driven single run; a Guided Flow models a conversation
8
+ * that pauses across turns waiting on the user.
9
+ */
10
+ export type GuidedFlowStatus = "idle" | "active" | "waiting_for_user" | "waiting_for_tool" | "waiting_for_approval" | "completed" | "cancelled" | "failed";
11
+ export type FlowPatchSource = "user" | "model" | "tool" | "system";
12
+ export type FlowStatePatch<TState> = {
13
+ set?: Partial<TState>;
14
+ unset?: Array<keyof TState>;
15
+ source: FlowPatchSource;
16
+ };
17
+ export type EvaluatedRequirement = {
18
+ id: string;
19
+ description: string;
20
+ satisfied: boolean;
21
+ };
22
+ export type GuidedFlowRequirement<TState> = {
23
+ id: string;
24
+ description: string;
25
+ satisfied: (input: {
26
+ state: TState;
27
+ }) => boolean;
28
+ };
29
+ export type StepToolPolicy = {
30
+ allowed?: string[];
31
+ denied?: string[];
32
+ required?: string[];
33
+ requiredBeforeExit?: string[];
34
+ };
35
+ export type GuidedFlowStep<TState> = {
36
+ id: string;
37
+ description?: string;
38
+ when?: (input: {
39
+ state: TState;
40
+ }) => boolean;
41
+ collect?: Array<keyof TState>;
42
+ instructions?: string;
43
+ skills?: string[];
44
+ tools?: StepToolPolicy;
45
+ exit?: (input: {
46
+ state: TState;
47
+ }) => boolean;
48
+ };
49
+ export type ToolResultBinding<TState> = {
50
+ applyResult: (input: {
51
+ result: ToolExecutionResult;
52
+ state: TState;
53
+ }) => FlowStatePatch<TState> | void;
54
+ };
55
+ export type GuidedFlowToolConfig<TState> = {
56
+ bindings?: Record<string, ToolResultBinding<TState>>;
57
+ };
58
+ export type GuidedFlowConfirmation<TState> = {
59
+ required: boolean;
60
+ stateField: keyof TState;
61
+ resetOnChange?: Array<keyof TState>;
62
+ };
63
+ export type GuidedFlowTriggers = {
64
+ intents?: string[];
65
+ examples?: string[];
66
+ };
67
+ export type GuidedFlowConfig<TStateSchema extends z.AnyZodObject = z.AnyZodObject, TOutputSchema extends z.ZodTypeAny = z.ZodTypeAny> = {
68
+ id: string;
69
+ version: number;
70
+ name: string;
71
+ description?: string;
72
+ goal: string;
73
+ stateSchema: TStateSchema;
74
+ initialState: Partial<z.infer<TStateSchema>>;
75
+ requirements: GuidedFlowRequirement<z.infer<TStateSchema>>[];
76
+ steps: GuidedFlowStep<z.infer<TStateSchema>>[];
77
+ confirmation?: GuidedFlowConfirmation<z.infer<TStateSchema>>;
78
+ protectedFields?: Partial<Record<keyof z.infer<TStateSchema>, FlowPatchSource[]>>;
79
+ tools?: GuidedFlowToolConfig<z.infer<TStateSchema>>;
80
+ triggers?: GuidedFlowTriggers;
81
+ completion: (input: {
82
+ state: z.infer<TStateSchema>;
83
+ requirements: EvaluatedRequirement[];
84
+ }) => boolean;
85
+ outputSchema: TOutputSchema;
86
+ mapOutput: (input: {
87
+ state: z.infer<TStateSchema>;
88
+ }) => z.infer<TOutputSchema>;
89
+ };
90
+ export type GuidedFlow<TStateSchema extends z.AnyZodObject = z.AnyZodObject, TOutputSchema extends z.ZodTypeAny = z.ZodTypeAny> = {
91
+ readonly config: GuidedFlowConfig<TStateSchema, TOutputSchema>;
92
+ readonly id: string;
93
+ readonly version: number;
94
+ };
95
+ export type GuidedFlowRunMeta = {
96
+ id: string;
97
+ version: number;
98
+ status: GuidedFlowStatus;
99
+ currentStepId?: string;
100
+ completedRequirementIds: string[];
101
+ missingRequirementIds: string[];
102
+ startedAt?: string;
103
+ updatedAt: string;
104
+ completedAt?: string;
105
+ };
106
+ export type GuidedFlowRunState<TState = JsonObject> = {
107
+ flowId: string;
108
+ flowVersion: number;
109
+ sessionId: string;
110
+ status: GuidedFlowStatus;
111
+ currentStepId?: string;
112
+ state: TState;
113
+ completedRequirementIds: string[];
114
+ missingRequirementIds: string[];
115
+ stepToolLog: Record<string, string[]>;
116
+ startedAt?: string;
117
+ updatedAt: string;
118
+ completedAt?: string;
119
+ cancelledAt?: string;
120
+ output?: JsonValue;
121
+ };
122
+ export type GuidedFlowRunResult<TState = JsonObject, TOutput = JsonValue> = {
123
+ text: string;
124
+ output?: TOutput;
125
+ state: TState;
126
+ flow: GuidedFlowRunMeta;
127
+ };
128
+ /**
129
+ * Optional declarative subset for documentation/authoring tooling only (e.g.
130
+ * describing a flow's shape from YAML). Never wired into `loadAgentManifest`'s
131
+ * runtime behavior — flows always attach as real `GuidedFlow` objects via
132
+ * `extend.flows`, since steps/requirements/schemas are callbacks and Zod
133
+ * schemas that cannot be safely expressed in YAML.
134
+ */
135
+ export type GuidedFlowManifestDescriptor = {
136
+ id: string;
137
+ version: number;
138
+ goal: string;
139
+ required: string[];
140
+ };
141
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/guided-flows/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/guided-flows/types.ts"],"names":[],"mappings":""}
package/dist/hooks.d.ts CHANGED
@@ -46,6 +46,58 @@ export type AgentHooks = {
46
46
  record: unknown;
47
47
  context: HookContext;
48
48
  }) => void | Promise<void>;
49
+ beforeFlowStart?: (input: {
50
+ flowId: string;
51
+ sessionId: string;
52
+ context: HookContext;
53
+ }) => void | Promise<void>;
54
+ afterFlowStart?: (input: {
55
+ flowId: string;
56
+ sessionId: string;
57
+ context: HookContext;
58
+ }) => void | Promise<void>;
59
+ beforeFlowStep?: (input: {
60
+ flowId: string;
61
+ sessionId: string;
62
+ stepId: string;
63
+ context: HookContext;
64
+ }) => void | Promise<void>;
65
+ afterFlowStep?: (input: {
66
+ flowId: string;
67
+ sessionId: string;
68
+ stepId: string;
69
+ context: HookContext;
70
+ }) => void | Promise<void>;
71
+ beforeFlowStatePatch?: (input: {
72
+ flowId: string;
73
+ sessionId: string;
74
+ patch: unknown;
75
+ context: HookContext;
76
+ }) => void | Promise<void>;
77
+ afterFlowStatePatch?: (input: {
78
+ flowId: string;
79
+ sessionId: string;
80
+ state: unknown;
81
+ context: HookContext;
82
+ }) => void | Promise<void>;
83
+ beforeFlowComplete?: (input: {
84
+ flowId: string;
85
+ sessionId: string;
86
+ state: unknown;
87
+ context: HookContext;
88
+ }) => void | Promise<void>;
89
+ afterFlowComplete?: (input: {
90
+ flowId: string;
91
+ sessionId: string;
92
+ output: unknown;
93
+ context: HookContext;
94
+ }) => void | Promise<void>;
95
+ onFlowError?: (input: {
96
+ flowId: string;
97
+ sessionId: string;
98
+ error: unknown;
99
+ context: HookContext;
100
+ }) => void | Promise<void>;
49
101
  };
50
102
  type HookName = keyof AgentHooks;
51
103
  export declare class HookDispatcher {
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpG,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrF,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvF,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvG,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrG,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1G,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5F,CAAC;AAEF,KAAK,QAAQ,GAAG,MAAM,UAAU,CAAC;AAEjC,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,GAAE,UAAe;IAE7C,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAKzG;AAED,wBAAgB,oBAAoB,CAAC,KAAK,GAAE,UAAe,GAAG,cAAc,CAE3E"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
package/dist/hooks.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAiBA,MAAM,OAAO,cAAc;IACI;IAA7B,YAA6B,QAAoB,EAAE;QAAtB,UAAK,GAAL,KAAK,CAAiB;IAAG,CAAC;IAEvD,KAAK,CAAC,IAAI,CAAqB,IAAO,EAAE,KAAgD;QACtF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAO,OAAoD,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;CACF;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAoB,EAAE;IACzD,OAAO,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AA0BA,MAAM,OAAO,cAAc;IACI;IAA7B,YAA6B,QAAoB,EAAE;QAAtB,UAAK,GAAL,KAAK,CAAiB;IAAG,CAAC;IAEvD,KAAK,CAAC,IAAI,CAAqB,IAAO,EAAE,KAAgD;QACtF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAO,OAAoD,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;CACF;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAoB,EAAE;IACzD,OAAO,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -55,4 +55,5 @@ export * from "./tenancy.js";
55
55
  export * from "./workspace.js";
56
56
  export * from "./kernel.js";
57
57
  export * from "./manifest.js";
58
+ export * from "./guided-flows/index.js";
58
59
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC"}
package/dist/index.js CHANGED
@@ -55,4 +55,5 @@ export * from "./tenancy.js";
55
55
  export * from "./workspace.js";
56
56
  export * from "./kernel.js";
57
57
  export * from "./manifest.js";
58
+ export * from "./guided-flows/index.js";
58
59
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC"}
package/dist/kernel.d.ts CHANGED
@@ -11,6 +11,7 @@ import type { NexaStorage } from "./storage.js";
11
11
  import type { NexaTelemetry } from "./telemetry.js";
12
12
  import type { ModelRouter } from "./model-router.js";
13
13
  import type { ToolRouter, ToolTraceEvent } from "./tool-orchestrator.js";
14
+ import type { JsonObject } from "./types.js";
14
15
  import { type SkillDefinition } from "./skills.js";
15
16
  import { type Artifact } from "./artifacts.js";
16
17
  import type { McpConnection } from "./mcp.js";
@@ -19,6 +20,7 @@ import type { Cache } from "./cache.js";
19
20
  import { type TenantContext } from "./tenancy.js";
20
21
  import type { PermissionMatrix } from "./permissions.js";
21
22
  import type { ModelHarness } from "./model-harness.js";
23
+ import { type FlowStatePatch, type GuidedFlow, type GuidedFlowRunMeta, type GuidedFlowRunState } from "./guided-flows/index.js";
22
24
  export declare function resolveModelString(modelString: string): {
23
25
  provider: OpenAICompatibleProviderConfig;
24
26
  model: string;
@@ -47,21 +49,48 @@ export type NexaAgentConfig = {
47
49
  cacheTtlMs?: number;
48
50
  permissions?: PermissionMatrix;
49
51
  harness?: ModelHarness;
52
+ flows?: GuidedFlow<any, any>[];
53
+ flowSelector?: (input: {
54
+ text: string;
55
+ flows: GuidedFlow<any, any>[];
56
+ }) => string | undefined | Promise<string | undefined>;
50
57
  };
51
58
  export type NexaAgentRunOptions<T = unknown> = {
52
59
  messages?: ChatMessage[];
53
60
  outputSchema?: z.ZodType<T>;
54
61
  tenant?: TenantContext;
62
+ /** Explicit Guided Flow selection for this turn (see `config.flows`). */
63
+ flow?: string;
64
+ /** Identifies the conversation a Guided Flow's state belongs to; defaults to `"default"` for direct `agent.run()` calls. `session()` sets this automatically. */
65
+ sessionId?: string;
66
+ /** Known facts to seed into a Guided Flow's state before its first turn — see `GuidedFlowTurnInput.initialState`. No effect outside a Guided Flow turn, and no effect once that flow run already exists (use `agent.flows.patchState()` for an in-progress flow). */
67
+ initialState?: JsonObject;
68
+ /** Propagated to the Guided Flow turn (extraction call + tool-scoped reply pass) so a caller can cancel an in-flight run. No effect outside a Guided Flow turn in this version. */
69
+ signal?: AbortSignal;
70
+ /** Turn-scoped Guided Flow event sink — see `GuidedFlowTurnInput.onEvent`. No effect when this turn isn't handled by a Guided Flow. */
71
+ onFlowEvent?: (event: import("./guided-flows/index.js").PublishFlowEventInput) => void;
55
72
  };
56
73
  export type NexaAgentRunResult<T = unknown> = AgentMessageResult & {
57
74
  output?: T;
58
75
  artifacts: Artifact[];
59
76
  handoffTo?: string;
77
+ /** Present only when a Guided Flow handled this turn. */
78
+ flow?: GuidedFlowRunMeta;
79
+ /** The Guided Flow's live state as plain JSON, alongside `flow`. */
80
+ state?: JsonObject;
81
+ };
82
+ export type NexaAgentFlows = {
83
+ cancel(sessionId: string, flowId?: string): Promise<void>;
84
+ resume(sessionId: string, flowId?: string): Promise<GuidedFlowRunState | undefined>;
85
+ reset(sessionId: string, flowId?: string): Promise<void>;
86
+ patchState(sessionId: string, flowId: string, patch: FlowStatePatch<Record<string, unknown>>): Promise<GuidedFlowRunState>;
87
+ getState(sessionId: string, flowId?: string): Promise<GuidedFlowRunState | undefined>;
60
88
  };
61
89
  export type NexaAgent = {
62
90
  name: string;
63
91
  underlying: OpenAICompatibleAgent;
64
92
  memory?: AdvancedMemoryStore;
93
+ flows?: NexaAgentFlows;
65
94
  run<T = unknown>(text: string, options?: NexaAgentRunOptions<T>): Promise<NexaAgentRunResult<T>>;
66
95
  session(id?: string): AgentSession;
67
96
  asTool(input?: {
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../src/kernel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../src/kernel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAE1F,OAAO,EAAE,mBAAmB,EAA6B,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAsC,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EAA2C,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACpG,OAAO,EAAwB,KAAK,UAAU,EAAuB,MAAM,YAAY,CAAC;AAExF,OAAO,EAAE,YAAY,EAAiB,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,cAAc,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAmD,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAA0B,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAA0C,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAkD,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAiBhL,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,8BAA8B,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAcnH;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,8BAA8B,CAAC;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,qBAAqB,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAAC;IACvC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACnC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC;IAC5B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IACxC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;KAAE,KAAK,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC7H,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,CAAC,GAAG,OAAO,IAAI;IAC7C,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iKAAiK;IACjK,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qQAAqQ;IACrQ,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,mLAAmL;IACnL,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,uIAAuI;IACvI,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,yBAAyB,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACxF,CAAC;AACF,MAAM,MAAM,kBAAkB,CAAC,CAAC,GAAG,OAAO,IAAI,kBAAkB,GAAG;IACjE,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,oEAAoE;IACpE,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;IACpF,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC3H,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;CACvF,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,qBAAqB,CAAC;IAClC,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IACjG,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IACnC,MAAM,CAAC,KAAK,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,qBAAqB,CAAC;CAC9E,CAAC;AAEF,wBAAsB,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CA4OvE;AA+BD,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEhE,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,kBAAkB,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC;AAE5G,MAAM,MAAM,IAAI,GAAG;IAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;CAAE,CAAC;AAEjE,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CA8BvD"}
package/dist/kernel.js CHANGED
@@ -13,6 +13,7 @@ import { skillsToInstructions, skillsToToolRegistrations } from "./skills.js";
13
13
  import { artifactsFromRunResult } from "./artifacts.js";
14
14
  import { agentWorkerFromAgent, MultiAgentCoordinator } from "./multi-agent.js";
15
15
  import { filterToolsByPermissions, namespaceKey } from "./tenancy.js";
16
+ import { GuidedFlowRuntime, resolveGuidedFlowStateStore } from "./guided-flows/index.js";
16
17
  const PROVIDER_FACTORIES = {
17
18
  openai: openaiProvider,
18
19
  openrouter: openRouterProvider,
@@ -89,6 +90,22 @@ export async function agent(config) {
89
90
  ...(config.modelRouter ? { modelRouter: config.modelRouter } : {}),
90
91
  ...(config.harness ? { harness: config.harness } : {})
91
92
  });
93
+ const flows = config.flows ?? [];
94
+ const flowRuntime = flows.length
95
+ ? new GuidedFlowRuntime({
96
+ flows,
97
+ client: underlying.client,
98
+ providerId: provider.id,
99
+ model: underlying.model,
100
+ toolRegistrations,
101
+ skills,
102
+ hooks,
103
+ events: underlying.sdk.events,
104
+ store: resolveGuidedFlowStateStore(config.storage),
105
+ ...(config.harness ? { harness: config.harness } : {}),
106
+ ...(config.flowSelector ? { flowSelector: config.flowSelector } : {})
107
+ })
108
+ : undefined;
92
109
  async function run(text, options = {}) {
93
110
  const runId = randomUUID();
94
111
  const taskId = runId;
@@ -98,6 +115,41 @@ export async function agent(config) {
98
115
  const guardedInput = guardrails.length
99
116
  ? await runInputGuardrails(guardrails, { text, messages: options.messages ?? [], context: { taskId, runId } })
100
117
  : { text, violations: [] };
118
+ const tenant = options.tenant ?? {};
119
+ if (flowRuntime) {
120
+ const priorNonSystem = (options.messages ?? []).filter((message) => message.role !== "system");
121
+ const outcome = await flowRuntime.runTurn({
122
+ text: guardedInput.text,
123
+ messages: priorNonSystem,
124
+ sessionId: options.sessionId ?? "default",
125
+ ...(tenant.tenantId || tenant.userId ? { tenant } : {}),
126
+ ...(options.flow ? { explicitFlow: options.flow } : {}),
127
+ ...(options.initialState ? { initialState: options.initialState } : {}),
128
+ ...(options.signal ? { signal: options.signal } : {}),
129
+ ...(options.onFlowEvent ? { onEvent: options.onFlowEvent } : {})
130
+ });
131
+ if (outcome.handled) {
132
+ const guardedOutput = guardrails.length
133
+ ? await runOutputGuardrails(guardrails, { text: outcome.text, messages: priorNonSystem, context: { taskId, runId } })
134
+ : { text: outcome.text, violations: [] };
135
+ const newMessages = [
136
+ ...priorNonSystem,
137
+ { role: "user", content: text },
138
+ { role: "assistant", content: guardedOutput.text }
139
+ ];
140
+ const flowResult = {
141
+ text: guardedOutput.text,
142
+ messages: newMessages,
143
+ toolTurn: { selectedTools: [], results: [], contextMessages: [] },
144
+ artifacts: [],
145
+ ...(outcome.output !== undefined ? { output: outcome.output } : {}),
146
+ flow: outcome.flow,
147
+ state: outcome.state
148
+ };
149
+ await hooks.fire("afterRun", { text, result: flowResult, context: hookContext });
150
+ return flowResult;
151
+ }
152
+ }
101
153
  let messages = options.messages;
102
154
  if (contextEngine) {
103
155
  const built = await contextEngine.build({ runId, taskId, text: guardedInput.text, ...(options.messages ? { conversation: options.messages } : {}) });
@@ -108,7 +160,6 @@ export async function agent(config) {
108
160
  }
109
161
  const outputSchema = options.outputSchema ?? config.outputSchema;
110
162
  const effectiveText = outputSchema ? `${guardedInput.text}\n\n${structuredOutputInstruction(outputSchema)}` : guardedInput.text;
111
- const tenant = options.tenant ?? {};
112
163
  const cacheKey = config.cache ? JSON.stringify({ name: config.name, tenant, effectiveText, messages }) : undefined;
113
164
  if (cacheKey) {
114
165
  const cached = config.cache?.get(cacheKey);
@@ -166,12 +217,18 @@ export async function agent(config) {
166
217
  }
167
218
  }
168
219
  function session(id) {
169
- return createSession({
220
+ const created = createSession({
170
221
  ...(id ? { id } : {}),
171
222
  ...(instructions ? { systemPrompt: instructions } : {}),
172
223
  ...(sessionStore ? { store: sessionStore } : {}),
173
- runner: async ({ text, messages }) => run(text, { messages })
224
+ runner: async ({ text, messages, options: runOptions }) => run(text, {
225
+ messages,
226
+ sessionId: created.id,
227
+ ...(runOptions?.flow ? { flow: runOptions.flow } : {}),
228
+ ...(runOptions?.initialState ? { initialState: runOptions.initialState } : {})
229
+ })
174
230
  });
231
+ return created;
175
232
  }
176
233
  function asTool(input = {}) {
177
234
  const id = input.id ?? `agent.${config.name}`;
@@ -193,7 +250,16 @@ export async function agent(config) {
193
250
  }
194
251
  };
195
252
  }
196
- return { name: config.name, underlying, ...(memoryStore ? { memory: memoryStore } : {}), run, session, asTool };
253
+ const flowsApi = flowRuntime
254
+ ? {
255
+ cancel: (sessionId, flowId) => flowRuntime.cancel(sessionId, flowId),
256
+ resume: (sessionId, flowId) => flowRuntime.resume(sessionId, flowId),
257
+ reset: (sessionId, flowId) => flowRuntime.reset(sessionId, flowId),
258
+ patchState: (sessionId, flowId, patch) => flowRuntime.patchState(sessionId, flowId, patch),
259
+ getState: (sessionId, flowId) => flowRuntime.getState(sessionId, flowId)
260
+ }
261
+ : undefined;
262
+ return { name: config.name, underlying, ...(memoryStore ? { memory: memoryStore } : {}), ...(flowsApi ? { flows: flowsApi } : {}), run, session, asTool };
197
263
  }
198
264
  function resolveMemory(memory) {
199
265
  if (!memory)