@falai/agent 0.5.5 → 0.6.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.
- package/dist/cjs/core/ResponseEngine.js +2 -2
- package/dist/cjs/core/ResponseEngine.js.map +1 -1
- package/dist/cjs/core/Route.d.ts +6 -1
- package/dist/cjs/core/Route.d.ts.map +1 -1
- package/dist/cjs/core/Route.js +19 -1
- package/dist/cjs/core/Route.js.map +1 -1
- package/dist/cjs/core/State.d.ts +1 -2
- package/dist/cjs/core/State.d.ts.map +1 -1
- package/dist/cjs/core/State.js +5 -6
- package/dist/cjs/core/State.js.map +1 -1
- package/dist/cjs/core/Transition.d.ts +2 -2
- package/dist/cjs/core/Transition.d.ts.map +1 -1
- package/dist/cjs/core/Transition.js +3 -2
- package/dist/cjs/core/Transition.js.map +1 -1
- package/dist/cjs/types/route.d.ts +15 -4
- package/dist/cjs/types/route.d.ts.map +1 -1
- package/dist/core/ResponseEngine.js +2 -2
- package/dist/core/ResponseEngine.js.map +1 -1
- package/dist/core/Route.d.ts +6 -1
- package/dist/core/Route.d.ts.map +1 -1
- package/dist/core/Route.js +19 -1
- package/dist/core/Route.js.map +1 -1
- package/dist/core/State.d.ts +1 -2
- package/dist/core/State.d.ts.map +1 -1
- package/dist/core/State.js +5 -6
- package/dist/core/State.js.map +1 -1
- package/dist/core/Transition.d.ts +2 -2
- package/dist/core/Transition.d.ts.map +1 -1
- package/dist/core/Transition.js +3 -2
- package/dist/core/Transition.js.map +1 -1
- package/dist/types/route.d.ts +15 -4
- package/dist/types/route.d.ts.map +1 -1
- package/docs/ADAPTERS.md +1 -1
- package/docs/API_REFERENCE.md +22 -25
- package/docs/ARCHITECTURE.md +18 -22
- package/docs/CONSTRUCTOR_OPTIONS.md +2 -2
- package/docs/CONTEXT_MANAGEMENT.md +1 -1
- package/docs/GETTING_STARTED.md +1 -1
- package/docs/PERSISTENCE.md +3 -3
- package/examples/business-onboarding.ts +86 -70
- package/examples/company-qna-agent.ts +4 -4
- package/examples/custom-database-persistence.ts +2 -2
- package/examples/declarative-agent.ts +3 -3
- package/examples/extracted-data-modification.ts +1 -1
- package/examples/healthcare-agent.ts +24 -30
- package/examples/openai-agent.ts +1 -1
- package/examples/opensearch-persistence.ts +2 -2
- package/examples/persistent-onboarding.ts +2 -2
- package/examples/prisma-persistence.ts +3 -3
- package/examples/redis-persistence.ts +3 -3
- package/examples/travel-agent.ts +73 -96
- package/package.json +1 -1
- package/src/core/ResponseEngine.ts +2 -2
- package/src/core/Route.ts +34 -3
- package/src/core/State.ts +6 -13
- package/src/core/Transition.ts +6 -3
- package/src/types/route.ts +15 -5
|
@@ -17,9 +17,9 @@ class ResponseEngine {
|
|
|
17
17
|
base.properties.data = route.responseOutputSchema;
|
|
18
18
|
}
|
|
19
19
|
// Add gather fields from current state
|
|
20
|
-
if (currentState?.gatherFields && route.
|
|
20
|
+
if (currentState?.gatherFields && route.extractionSchema?.properties) {
|
|
21
21
|
for (const field of currentState.gatherFields) {
|
|
22
|
-
const fieldSchema = route.
|
|
22
|
+
const fieldSchema = route.extractionSchema.properties[field];
|
|
23
23
|
if (fieldSchema) {
|
|
24
24
|
base.properties[field] = fieldSchema;
|
|
25
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResponseEngine.js","sourceRoot":"","sources":["../../../src/core/ResponseEngine.ts"],"names":[],"mappings":";;;AAIA,qDAAkD;AAQlD,MAAa,cAAc;IACzB,sBAAsB,CACpB,KAAkC,EAClC,YAA0C;QAE1C,MAAM,IAAI,GAAqB;YAC7B,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;aACtE;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;YACrB,oBAAoB,EAAE,KAAK;SAC5B,CAAC;QAEF,wDAAwD;QACxD,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;YAC/B,IAAI,CAAC,UAAW,CAAC,IAAI,GAAG,KAAK,CAAC,oBAAoB,CAAC;QACrD,CAAC;QAED,uCAAuC;QACvC,IAAI,YAAY,EAAE,YAAY,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"ResponseEngine.js","sourceRoot":"","sources":["../../../src/core/ResponseEngine.ts"],"names":[],"mappings":";;;AAIA,qDAAkD;AAQlD,MAAa,cAAc;IACzB,sBAAsB,CACpB,KAAkC,EAClC,YAA0C;QAE1C,MAAM,IAAI,GAAqB;YAC7B,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;aACtE;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;YACrB,oBAAoB,EAAE,KAAK;SAC5B,CAAC;QAEF,wDAAwD;QACxD,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;YAC/B,IAAI,CAAC,UAAW,CAAC,IAAI,GAAG,KAAK,CAAC,oBAAoB,CAAC;QACrD,CAAC;QAED,uCAAuC;QACvC,IAAI,YAAY,EAAE,YAAY,IAAI,KAAK,CAAC,gBAAgB,EAAE,UAAU,EAAE,CAAC;YACrE,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;gBAC9C,MAAM,WAAW,GAAG,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC7D,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,CAAC,UAAW,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;gBACxC,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mBAAmB,CACjB,KAAsB,EACtB,KAAe,EACf,YAAsB,EACtB,UAAgC,EAChC,OAAgB,EAChB,WAAmB,EACnB,SAKC;QAED,MAAM,EAAE,GAAG,IAAI,+BAAc,EAAE,CAAC;QAChC,IAAI,SAAS,EAAE,IAAI,IAAI,SAAS,EAAE,IAAI,IAAI,SAAS,EAAE,WAAW;YAC9D,EAAE,CAAC,YAAY,CAAC;gBACd,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,OAAO;gBAChC,IAAI,EAAE,SAAS,EAAE,IAAI;gBACrB,WAAW,EAAE,SAAS,EAAE,WAAW;aACpC,CAAC,CAAC;QACL,MAAM,WAAW,GACf,SAAS,EAAE,WAAW,IAAI,4CAA4C,CAAC;QACzE,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAC/B,EAAE,CAAC,cAAc,CACf,UAAU,KAAK,CAAC,KAAK,GACnB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAClD,EAAE,CACH,CAAC;QACF,IAAI,KAAK,CAAC,MAAM;YAAE,EAAE,CAAC,cAAc,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvE,IAAI,YAAY,CAAC,MAAM;YACrB,EAAE,CAAC,cAAc,CAAC,oBAAoB,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrE,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC7B,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAClC,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAC/B,EAAE,CAAC,cAAc,CACf,wEAAwE,CACzE,CAAC;QACF,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;CACF;AAxED,wCAwEC"}
|
package/dist/cjs/core/Route.d.ts
CHANGED
|
@@ -18,11 +18,16 @@ export declare class Route<TContext = unknown, TExtracted = unknown> {
|
|
|
18
18
|
readonly prohibitions: string[];
|
|
19
19
|
readonly initialState: State<TContext, TExtracted>;
|
|
20
20
|
readonly responseOutputSchema?: StructuredSchema;
|
|
21
|
-
readonly
|
|
21
|
+
readonly extractionSchema?: StructuredSchema;
|
|
22
22
|
readonly initialData?: Partial<TExtracted>;
|
|
23
23
|
private routingExtrasSchema?;
|
|
24
24
|
private guidelines;
|
|
25
25
|
constructor(options: RouteOptions<TExtracted>);
|
|
26
|
+
/**
|
|
27
|
+
* Build a sequential state machine from an array of steps
|
|
28
|
+
* @private
|
|
29
|
+
*/
|
|
30
|
+
private buildSequentialSteps;
|
|
26
31
|
/**
|
|
27
32
|
* Create a guideline specific to this route
|
|
28
33
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../../../src/core/Route.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../../../src/core/Route.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,QAAQ,EAGT,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC;;GAEG;AACH,qBAAa,KAAK,CAAC,QAAQ,GAAG,OAAO,EAAE,UAAU,GAAG,OAAO;IACzD,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrC,SAAgB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrC,SAAgB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,SAAgB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChC,SAAgB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvC,SAAgB,YAAY,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC1D,SAAgB,oBAAoB,CAAC,EAAE,gBAAgB,CAAC;IACxD,SAAgB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpD,SAAgB,WAAW,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAClD,OAAO,CAAC,mBAAmB,CAAC,CAAmB;IAC/C,OAAO,CAAC,UAAU,CAAmB;gBAEzB,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC;IA+B7C;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAiB5B;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAS3C;;OAEG;IACH,aAAa,IAAI,SAAS,EAAE;IAI5B;;;OAGG;IACH,UAAU,IAAI,MAAM,EAAE,GAAG,SAAS;IAIlC;;OAEG;IACH,QAAQ,IAAI,MAAM,EAAE;IAIpB;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;IAI3B;;OAEG;IACH,sBAAsB,IAAI,gBAAgB,GAAG,SAAS;IAItD;;OAEG;IACH,uBAAuB,IAAI,gBAAgB,GAAG,SAAS;IAIvD;;OAEG;IACH,MAAM,IAAI,QAAQ;IAMlB;;OAEG;IACH,YAAY,IAAI,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE;IA2B7C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,SAAS;IAKlE;;OAEG;IACH,QAAQ,IAAI,MAAM;CAwBnB"}
|
package/dist/cjs/core/Route.js
CHANGED
|
@@ -23,7 +23,7 @@ class Route {
|
|
|
23
23
|
this.initialState = new State_1.State(this.id, "Initial state");
|
|
24
24
|
this.routingExtrasSchema = options.routingExtrasSchema;
|
|
25
25
|
this.responseOutputSchema = options.responseOutputSchema;
|
|
26
|
-
this.
|
|
26
|
+
this.extractionSchema = options.extractionSchema;
|
|
27
27
|
this.initialData = options.initialData;
|
|
28
28
|
// Initialize guidelines from options
|
|
29
29
|
if (options.guidelines) {
|
|
@@ -31,6 +31,24 @@ class Route {
|
|
|
31
31
|
this.createGuideline(guideline);
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
|
+
// Build sequential steps if provided
|
|
35
|
+
if (options.steps && options.steps.length > 0) {
|
|
36
|
+
this.buildSequentialSteps(options.steps);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Build a sequential state machine from an array of steps
|
|
41
|
+
* @private
|
|
42
|
+
*/
|
|
43
|
+
buildSequentialSteps(steps) {
|
|
44
|
+
// Import END_ROUTE dynamically to avoid circular dependency
|
|
45
|
+
const END_ROUTE = Symbol.for("END_ROUTE");
|
|
46
|
+
let currentState = this.initialState;
|
|
47
|
+
for (const step of steps) {
|
|
48
|
+
currentState = currentState.transitionTo(step);
|
|
49
|
+
}
|
|
50
|
+
// End the route
|
|
51
|
+
currentState.transitionTo({ state: END_ROUTE });
|
|
34
52
|
}
|
|
35
53
|
/**
|
|
36
54
|
* Create a guideline specific to this route
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Route.js","sourceRoot":"","sources":["../../../src/core/Route.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"Route.js","sourceRoot":"","sources":["../../../src/core/Route.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/core/State.d.ts
CHANGED
|
@@ -21,10 +21,9 @@ export declare class State<TContext = unknown, TExtracted = unknown> {
|
|
|
21
21
|
* Create a transition from this state to another
|
|
22
22
|
*
|
|
23
23
|
* @param spec - Transition specification (chatState, toolState, or direct state)
|
|
24
|
-
* @param condition - Optional condition for this transition
|
|
25
24
|
* @returns TransitionResult that supports chaining
|
|
26
25
|
*/
|
|
27
|
-
transitionTo(spec: TransitionSpec<TContext, TExtracted
|
|
26
|
+
transitionTo(spec: TransitionSpec<TContext, TExtracted>): TransitionResult<TContext, TExtracted>;
|
|
28
27
|
/**
|
|
29
28
|
* Add a guideline specific to this state
|
|
30
29
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../src/core/State.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C;;GAEG;AACH,qBAAa,KAAK,CAAC,QAAQ,GAAG,OAAO,EAAE,UAAU,GAAG,OAAO;aASvC,OAAO,EAAE,MAAM;aACf,WAAW,CAAC,EAAE,MAAM;IATtC,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,WAAW,CAA0C;IAC7D,OAAO,CAAC,UAAU,CAAmB;IACrC,SAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxC,SAAgB,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC;IACrE,SAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;gBAGtB,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,YAAA,EACpC,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,OAAO,EACpD,YAAY,CAAC,EAAE,MAAM,EAAE;IASzB
|
|
1
|
+
{"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../src/core/State.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C;;GAEG;AACH,qBAAa,KAAK,CAAC,QAAQ,GAAG,OAAO,EAAE,UAAU,GAAG,OAAO;aASvC,OAAO,EAAE,MAAM;aACf,WAAW,CAAC,EAAE,MAAM;IATtC,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,WAAW,CAA0C;IAC7D,OAAO,CAAC,UAAU,CAAmB;IACrC,SAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxC,SAAgB,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC;IACrE,SAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;gBAGtB,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,YAAA,EACpC,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,OAAO,EACpD,YAAY,CAAC,EAAE,MAAM,EAAE;IASzB;;;;;OAKG;IACH,YAAY,CACV,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,GACzC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC;IAgDzC;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAIxC;;OAEG;IACH,aAAa,IAAI,SAAS,EAAE;IAI5B;;OAEG;IACH,cAAc,IAAI,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE;IAIpD;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO;IAKnD;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO;IAOxD;;OAEG;IACH,MAAM,IAAI,QAAQ;IAOlB;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAapC;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAa1B"}
|
package/dist/cjs/core/State.js
CHANGED
|
@@ -26,29 +26,28 @@ class State {
|
|
|
26
26
|
* Create a transition from this state to another
|
|
27
27
|
*
|
|
28
28
|
* @param spec - Transition specification (chatState, toolState, or direct state)
|
|
29
|
-
* @param condition - Optional condition for this transition
|
|
30
29
|
* @returns TransitionResult that supports chaining
|
|
31
30
|
*/
|
|
32
|
-
transitionTo(spec
|
|
31
|
+
transitionTo(spec) {
|
|
33
32
|
// Handle END_ROUTE
|
|
34
33
|
if (spec.state &&
|
|
35
34
|
typeof spec.state === "symbol" &&
|
|
36
35
|
spec.state === constants_1.END_ROUTE) {
|
|
37
|
-
const endTransition = new Transition_1.Transition(this.getRef(), { state: constants_1.END_ROUTE
|
|
36
|
+
const endTransition = new Transition_1.Transition(this.getRef(), { state: constants_1.END_ROUTE, condition: spec.condition });
|
|
38
37
|
this.transitions.push(endTransition);
|
|
39
38
|
// Return a terminal state reference
|
|
40
39
|
return this.createTerminalRef();
|
|
41
40
|
}
|
|
42
41
|
// Handle direct state reference
|
|
43
42
|
if (spec.state && typeof spec.state !== "symbol") {
|
|
44
|
-
const transition = new Transition_1.Transition(this.getRef(), spec
|
|
43
|
+
const transition = new Transition_1.Transition(this.getRef(), spec);
|
|
45
44
|
this.transitions.push(transition);
|
|
46
45
|
return this.createStateRefWithTransition(spec.state);
|
|
47
46
|
}
|
|
48
47
|
// Create new target state for chatState or toolState
|
|
49
48
|
const targetState = new State(this.routeId, spec.chatState, spec.id, // Use custom ID if provided
|
|
50
49
|
spec.gather, spec.skipIf, spec.requiredData);
|
|
51
|
-
const transition = new Transition_1.Transition(this.getRef(), spec
|
|
50
|
+
const transition = new Transition_1.Transition(this.getRef(), spec);
|
|
52
51
|
transition.setTarget(targetState);
|
|
53
52
|
this.transitions.push(transition);
|
|
54
53
|
return this.createStateRefWithTransition(targetState.getRef(), targetState);
|
|
@@ -103,7 +102,7 @@ class State {
|
|
|
103
102
|
const stateInstance = state || this;
|
|
104
103
|
return {
|
|
105
104
|
...ref,
|
|
106
|
-
transitionTo: (spec
|
|
105
|
+
transitionTo: (spec) => stateInstance.transitionTo(spec),
|
|
107
106
|
};
|
|
108
107
|
}
|
|
109
108
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"State.js","sourceRoot":"","sources":["../../../src/core/State.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AASH,4CAAyC;AACzC,6CAA0C;AAC1C,oCAA8C;AAE9C;;GAEG;AACH,MAAa,KAAK;IAQhB,YACkB,OAAe,EACf,WAAoB,EACpC,QAAiB,EACjB,YAAuB,EACvB,MAAoD,EACpD,YAAuB;QALP,YAAO,GAAP,OAAO,CAAQ;QACf,gBAAW,GAAX,WAAW,CAAS;QAR9B,gBAAW,GAAuC,EAAE,CAAC;QACrD,eAAU,GAAgB,EAAE,CAAC;QAanC,kDAAkD;QAClD,IAAI,CAAC,EAAE,GAAG,QAAQ,IAAI,IAAA,oBAAe,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC5D,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"State.js","sourceRoot":"","sources":["../../../src/core/State.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,9 +9,9 @@ import type { State } from "./State";
|
|
|
9
9
|
export declare class Transition<TContext = unknown, TExtracted = unknown> {
|
|
10
10
|
readonly source: StateRef;
|
|
11
11
|
readonly spec: TransitionSpec<TContext, TExtracted>;
|
|
12
|
-
readonly condition?: string | undefined;
|
|
13
12
|
private target?;
|
|
14
|
-
|
|
13
|
+
readonly condition?: string;
|
|
14
|
+
constructor(source: StateRef, spec: TransitionSpec<TContext, TExtracted>);
|
|
15
15
|
/**
|
|
16
16
|
* Set the target state for this transition
|
|
17
17
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transition.d.ts","sourceRoot":"","sources":["../../../src/core/Transition.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;GAEG;AACH,qBAAa,UAAU,CAAC,QAAQ,GAAG,OAAO,EAAE,UAAU,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"Transition.d.ts","sourceRoot":"","sources":["../../../src/core/Transition.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;GAEG;AACH,qBAAa,UAAU,CAAC,QAAQ,GAAG,OAAO,EAAE,UAAU,GAAG,OAAO;aAK5C,MAAM,EAAE,QAAQ;aAChB,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;IAL5D,OAAO,CAAC,MAAM,CAAC,CAA8B;IAC7C,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAGjB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;IAM5D;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,IAAI;IAInD;;OAEG;IACH,SAAS,IAAI,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,SAAS;IAIpD;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,QAAQ,IAAI,MAAM;CAsBnB"}
|
|
@@ -8,10 +8,11 @@ exports.Transition = void 0;
|
|
|
8
8
|
* Represents a transition from one state to another
|
|
9
9
|
*/
|
|
10
10
|
class Transition {
|
|
11
|
-
constructor(source, spec
|
|
11
|
+
constructor(source, spec) {
|
|
12
12
|
this.source = source;
|
|
13
13
|
this.spec = spec;
|
|
14
|
-
|
|
14
|
+
// Extract condition from spec for convenience
|
|
15
|
+
this.condition = spec.condition;
|
|
15
16
|
}
|
|
16
17
|
/**
|
|
17
18
|
* Set the target state for this transition
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transition.js","sourceRoot":"","sources":["../../../src/core/Transition.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAKH;;GAEG;AACH,MAAa,UAAU;
|
|
1
|
+
{"version":3,"file":"Transition.js","sourceRoot":"","sources":["../../../src/core/Transition.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAKH;;GAEG;AACH,MAAa,UAAU;IAIrB,YACkB,MAAgB,EAChB,IAA0C;QAD1C,WAAM,GAAN,MAAM,CAAU;QAChB,SAAI,GAAJ,IAAI,CAAsC;QAE1D,8CAA8C;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,KAAkC;QAC1C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACxC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAEzE,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,UAAU,IAAI,aAAa,EAAE,CAAC;IAChE,CAAC;CACF;AA1DD,gCA0DC"}
|
|
@@ -25,7 +25,7 @@ export interface StateRef {
|
|
|
25
25
|
import type { Guideline } from "./agent";
|
|
26
26
|
/**
|
|
27
27
|
* Options for creating a route
|
|
28
|
-
* @template TExtracted - Type of data extracted throughout the route (inferred from
|
|
28
|
+
* @template TExtracted - Type of data extracted throughout the route (inferred from extractionSchema)
|
|
29
29
|
*/
|
|
30
30
|
export interface RouteOptions<TExtracted = unknown> {
|
|
31
31
|
/** Custom ID for the route (optional - will generate deterministic ID from title if not provided) */
|
|
@@ -52,13 +52,19 @@ export interface RouteOptions<TExtracted = unknown> {
|
|
|
52
52
|
* NEW: Schema defining data to extract throughout this route
|
|
53
53
|
* This creates a type-safe contract for what data the route collects
|
|
54
54
|
*/
|
|
55
|
-
|
|
55
|
+
extractionSchema?: StructuredSchema;
|
|
56
56
|
/**
|
|
57
57
|
* NEW: Initial data to pre-populate when entering this route
|
|
58
58
|
* Useful for restoring sessions or pre-filling known information
|
|
59
59
|
* States with skipIf conditions will be automatically bypassed if data is present
|
|
60
60
|
*/
|
|
61
61
|
initialData?: Partial<TExtracted>;
|
|
62
|
+
/**
|
|
63
|
+
* NEW: Sequential steps for simple linear flows
|
|
64
|
+
* If provided, automatically chains the steps from initialState to END_ROUTE
|
|
65
|
+
* For complex flows with branching, build the state machine manually instead
|
|
66
|
+
*/
|
|
67
|
+
steps?: TransitionSpec<unknown, TExtracted>[];
|
|
62
68
|
}
|
|
63
69
|
/**
|
|
64
70
|
* Specification for a state transition
|
|
@@ -74,7 +80,7 @@ export interface TransitionSpec<TContext = unknown, TExtracted = unknown> {
|
|
|
74
80
|
state?: StateRef | symbol;
|
|
75
81
|
/**
|
|
76
82
|
* NEW: Fields to gather from the conversation in this state
|
|
77
|
-
* These should match keys in the route's
|
|
83
|
+
* These should match keys in the route's extractionSchema
|
|
78
84
|
*/
|
|
79
85
|
gather?: string[];
|
|
80
86
|
/**
|
|
@@ -90,6 +96,11 @@ export interface TransitionSpec<TContext = unknown, TExtracted = unknown> {
|
|
|
90
96
|
* Uses string[] for developer-friendly usage (same as gather)
|
|
91
97
|
*/
|
|
92
98
|
requiredData?: string[];
|
|
99
|
+
/**
|
|
100
|
+
* Optional condition for this transition
|
|
101
|
+
* Description of when this transition should be taken
|
|
102
|
+
*/
|
|
103
|
+
condition?: string;
|
|
93
104
|
}
|
|
94
105
|
/**
|
|
95
106
|
* Result of a transition operation
|
|
@@ -97,6 +108,6 @@ export interface TransitionSpec<TContext = unknown, TExtracted = unknown> {
|
|
|
97
108
|
*/
|
|
98
109
|
export interface TransitionResult<TContext = unknown, TExtracted = unknown> extends StateRef {
|
|
99
110
|
/** Allow chaining transitions */
|
|
100
|
-
transitionTo: (spec: TransitionSpec<TContext, TExtracted
|
|
111
|
+
transitionTo: (spec: TransitionSpec<TContext, TExtracted>) => TransitionResult<TContext, TExtracted>;
|
|
101
112
|
}
|
|
102
113
|
//# sourceMappingURL=route.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/types/route.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,uBAAuB;IACvB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,uBAAuB;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;GAGG;AACH,MAAM,WAAW,YAAY,CAAC,UAAU,GAAG,OAAO;IAChD,qGAAqG;IACrG,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,wCAAwC;IACxC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,gBAAgB,CAAC;IACvC,6EAA6E;IAC7E,oBAAoB,CAAC,EAAE,gBAAgB,CAAC;IACxC;;;OAGG;IACH,
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/types/route.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,uBAAuB;IACvB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,uBAAuB;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;GAGG;AACH,MAAM,WAAW,YAAY,CAAC,UAAU,GAAG,OAAO;IAChD,qGAAqG;IACrG,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,wCAAwC;IACxC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,gBAAgB,CAAC;IACvC,6EAA6E;IAC7E,oBAAoB,CAAC,EAAE,gBAAgB,CAAC;IACxC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAClC;;;;OAIG;IACH,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,QAAQ,GAAG,OAAO,EAAE,UAAU,GAAG,OAAO;IACtE,2FAA2F;IAC3F,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IAEnC,SAAS,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;IAC1C,mDAAmD;IACnD,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC;IACrD;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB,CAAC,QAAQ,GAAG,OAAO,EAAE,UAAU,GAAG,OAAO,CACxE,SAAQ,QAAQ;IAChB,iCAAiC;IACjC,YAAY,EAAE,CACZ,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,KACvC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;CAC7C"}
|
|
@@ -14,9 +14,9 @@ export class ResponseEngine {
|
|
|
14
14
|
base.properties.data = route.responseOutputSchema;
|
|
15
15
|
}
|
|
16
16
|
// Add gather fields from current state
|
|
17
|
-
if (currentState?.gatherFields && route.
|
|
17
|
+
if (currentState?.gatherFields && route.extractionSchema?.properties) {
|
|
18
18
|
for (const field of currentState.gatherFields) {
|
|
19
|
-
const fieldSchema = route.
|
|
19
|
+
const fieldSchema = route.extractionSchema.properties[field];
|
|
20
20
|
if (fieldSchema) {
|
|
21
21
|
base.properties[field] = fieldSchema;
|
|
22
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResponseEngine.js","sourceRoot":"","sources":["../../src/core/ResponseEngine.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAQlD,MAAM,OAAO,cAAc;IACzB,sBAAsB,CACpB,KAAkC,EAClC,YAA0C;QAE1C,MAAM,IAAI,GAAqB;YAC7B,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;aACtE;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;YACrB,oBAAoB,EAAE,KAAK;SAC5B,CAAC;QAEF,wDAAwD;QACxD,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;YAC/B,IAAI,CAAC,UAAW,CAAC,IAAI,GAAG,KAAK,CAAC,oBAAoB,CAAC;QACrD,CAAC;QAED,uCAAuC;QACvC,IAAI,YAAY,EAAE,YAAY,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"ResponseEngine.js","sourceRoot":"","sources":["../../src/core/ResponseEngine.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAQlD,MAAM,OAAO,cAAc;IACzB,sBAAsB,CACpB,KAAkC,EAClC,YAA0C;QAE1C,MAAM,IAAI,GAAqB;YAC7B,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;aACtE;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;YACrB,oBAAoB,EAAE,KAAK;SAC5B,CAAC;QAEF,wDAAwD;QACxD,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;YAC/B,IAAI,CAAC,UAAW,CAAC,IAAI,GAAG,KAAK,CAAC,oBAAoB,CAAC;QACrD,CAAC;QAED,uCAAuC;QACvC,IAAI,YAAY,EAAE,YAAY,IAAI,KAAK,CAAC,gBAAgB,EAAE,UAAU,EAAE,CAAC;YACrE,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;gBAC9C,MAAM,WAAW,GAAG,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC7D,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,CAAC,UAAW,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;gBACxC,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mBAAmB,CACjB,KAAsB,EACtB,KAAe,EACf,YAAsB,EACtB,UAAgC,EAChC,OAAgB,EAChB,WAAmB,EACnB,SAKC;QAED,MAAM,EAAE,GAAG,IAAI,cAAc,EAAE,CAAC;QAChC,IAAI,SAAS,EAAE,IAAI,IAAI,SAAS,EAAE,IAAI,IAAI,SAAS,EAAE,WAAW;YAC9D,EAAE,CAAC,YAAY,CAAC;gBACd,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,OAAO;gBAChC,IAAI,EAAE,SAAS,EAAE,IAAI;gBACrB,WAAW,EAAE,SAAS,EAAE,WAAW;aACpC,CAAC,CAAC;QACL,MAAM,WAAW,GACf,SAAS,EAAE,WAAW,IAAI,4CAA4C,CAAC;QACzE,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAC/B,EAAE,CAAC,cAAc,CACf,UAAU,KAAK,CAAC,KAAK,GACnB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAClD,EAAE,CACH,CAAC;QACF,IAAI,KAAK,CAAC,MAAM;YAAE,EAAE,CAAC,cAAc,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvE,IAAI,YAAY,CAAC,MAAM;YACrB,EAAE,CAAC,cAAc,CAAC,oBAAoB,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrE,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC7B,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAClC,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAC/B,EAAE,CAAC,cAAc,CACf,wEAAwE,CACzE,CAAC;QACF,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;CACF"}
|
package/dist/core/Route.d.ts
CHANGED
|
@@ -18,11 +18,16 @@ export declare class Route<TContext = unknown, TExtracted = unknown> {
|
|
|
18
18
|
readonly prohibitions: string[];
|
|
19
19
|
readonly initialState: State<TContext, TExtracted>;
|
|
20
20
|
readonly responseOutputSchema?: StructuredSchema;
|
|
21
|
-
readonly
|
|
21
|
+
readonly extractionSchema?: StructuredSchema;
|
|
22
22
|
readonly initialData?: Partial<TExtracted>;
|
|
23
23
|
private routingExtrasSchema?;
|
|
24
24
|
private guidelines;
|
|
25
25
|
constructor(options: RouteOptions<TExtracted>);
|
|
26
|
+
/**
|
|
27
|
+
* Build a sequential state machine from an array of steps
|
|
28
|
+
* @private
|
|
29
|
+
*/
|
|
30
|
+
private buildSequentialSteps;
|
|
26
31
|
/**
|
|
27
32
|
* Create a guideline specific to this route
|
|
28
33
|
*/
|
package/dist/core/Route.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../../src/core/Route.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../../src/core/Route.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,QAAQ,EAGT,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC;;GAEG;AACH,qBAAa,KAAK,CAAC,QAAQ,GAAG,OAAO,EAAE,UAAU,GAAG,OAAO;IACzD,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrC,SAAgB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrC,SAAgB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,SAAgB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChC,SAAgB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvC,SAAgB,YAAY,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC1D,SAAgB,oBAAoB,CAAC,EAAE,gBAAgB,CAAC;IACxD,SAAgB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpD,SAAgB,WAAW,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAClD,OAAO,CAAC,mBAAmB,CAAC,CAAmB;IAC/C,OAAO,CAAC,UAAU,CAAmB;gBAEzB,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC;IA+B7C;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAiB5B;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAS3C;;OAEG;IACH,aAAa,IAAI,SAAS,EAAE;IAI5B;;;OAGG;IACH,UAAU,IAAI,MAAM,EAAE,GAAG,SAAS;IAIlC;;OAEG;IACH,QAAQ,IAAI,MAAM,EAAE;IAIpB;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;IAI3B;;OAEG;IACH,sBAAsB,IAAI,gBAAgB,GAAG,SAAS;IAItD;;OAEG;IACH,uBAAuB,IAAI,gBAAgB,GAAG,SAAS;IAIvD;;OAEG;IACH,MAAM,IAAI,QAAQ;IAMlB;;OAEG;IACH,YAAY,IAAI,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE;IA2B7C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,SAAS;IAKlE;;OAEG;IACH,QAAQ,IAAI,MAAM;CAwBnB"}
|
package/dist/core/Route.js
CHANGED
|
@@ -20,7 +20,7 @@ export class Route {
|
|
|
20
20
|
this.initialState = new State(this.id, "Initial state");
|
|
21
21
|
this.routingExtrasSchema = options.routingExtrasSchema;
|
|
22
22
|
this.responseOutputSchema = options.responseOutputSchema;
|
|
23
|
-
this.
|
|
23
|
+
this.extractionSchema = options.extractionSchema;
|
|
24
24
|
this.initialData = options.initialData;
|
|
25
25
|
// Initialize guidelines from options
|
|
26
26
|
if (options.guidelines) {
|
|
@@ -28,6 +28,24 @@ export class Route {
|
|
|
28
28
|
this.createGuideline(guideline);
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
|
+
// Build sequential steps if provided
|
|
32
|
+
if (options.steps && options.steps.length > 0) {
|
|
33
|
+
this.buildSequentialSteps(options.steps);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Build a sequential state machine from an array of steps
|
|
38
|
+
* @private
|
|
39
|
+
*/
|
|
40
|
+
buildSequentialSteps(steps) {
|
|
41
|
+
// Import END_ROUTE dynamically to avoid circular dependency
|
|
42
|
+
const END_ROUTE = Symbol.for("END_ROUTE");
|
|
43
|
+
let currentState = this.initialState;
|
|
44
|
+
for (const step of steps) {
|
|
45
|
+
currentState = currentState.transitionTo(step);
|
|
46
|
+
}
|
|
47
|
+
// End the route
|
|
48
|
+
currentState.transitionTo({ state: END_ROUTE });
|
|
31
49
|
}
|
|
32
50
|
/**
|
|
33
51
|
* Create a guideline specific to this route
|
package/dist/core/Route.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Route.js","sourceRoot":"","sources":["../../src/core/Route.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"Route.js","sourceRoot":"","sources":["../../src/core/Route.ts"],"names":[],"mappings":"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"}
|
package/dist/core/State.d.ts
CHANGED
|
@@ -21,10 +21,9 @@ export declare class State<TContext = unknown, TExtracted = unknown> {
|
|
|
21
21
|
* Create a transition from this state to another
|
|
22
22
|
*
|
|
23
23
|
* @param spec - Transition specification (chatState, toolState, or direct state)
|
|
24
|
-
* @param condition - Optional condition for this transition
|
|
25
24
|
* @returns TransitionResult that supports chaining
|
|
26
25
|
*/
|
|
27
|
-
transitionTo(spec: TransitionSpec<TContext, TExtracted
|
|
26
|
+
transitionTo(spec: TransitionSpec<TContext, TExtracted>): TransitionResult<TContext, TExtracted>;
|
|
28
27
|
/**
|
|
29
28
|
* Add a guideline specific to this state
|
|
30
29
|
*/
|
package/dist/core/State.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../src/core/State.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C;;GAEG;AACH,qBAAa,KAAK,CAAC,QAAQ,GAAG,OAAO,EAAE,UAAU,GAAG,OAAO;aASvC,OAAO,EAAE,MAAM;aACf,WAAW,CAAC,EAAE,MAAM;IATtC,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,WAAW,CAA0C;IAC7D,OAAO,CAAC,UAAU,CAAmB;IACrC,SAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxC,SAAgB,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC;IACrE,SAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;gBAGtB,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,YAAA,EACpC,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,OAAO,EACpD,YAAY,CAAC,EAAE,MAAM,EAAE;IASzB
|
|
1
|
+
{"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../src/core/State.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C;;GAEG;AACH,qBAAa,KAAK,CAAC,QAAQ,GAAG,OAAO,EAAE,UAAU,GAAG,OAAO;aASvC,OAAO,EAAE,MAAM;aACf,WAAW,CAAC,EAAE,MAAM;IATtC,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,WAAW,CAA0C;IAC7D,OAAO,CAAC,UAAU,CAAmB;IACrC,SAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxC,SAAgB,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC;IACrE,SAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;gBAGtB,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,YAAA,EACpC,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,OAAO,EACpD,YAAY,CAAC,EAAE,MAAM,EAAE;IASzB;;;;;OAKG;IACH,YAAY,CACV,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,GACzC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC;IAgDzC;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAIxC;;OAEG;IACH,aAAa,IAAI,SAAS,EAAE;IAI5B;;OAEG;IACH,cAAc,IAAI,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE;IAIpD;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO;IAKnD;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO;IAOxD;;OAEG;IACH,MAAM,IAAI,QAAQ;IAOlB;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAapC;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAa1B"}
|
package/dist/core/State.js
CHANGED
|
@@ -23,29 +23,28 @@ export class State {
|
|
|
23
23
|
* Create a transition from this state to another
|
|
24
24
|
*
|
|
25
25
|
* @param spec - Transition specification (chatState, toolState, or direct state)
|
|
26
|
-
* @param condition - Optional condition for this transition
|
|
27
26
|
* @returns TransitionResult that supports chaining
|
|
28
27
|
*/
|
|
29
|
-
transitionTo(spec
|
|
28
|
+
transitionTo(spec) {
|
|
30
29
|
// Handle END_ROUTE
|
|
31
30
|
if (spec.state &&
|
|
32
31
|
typeof spec.state === "symbol" &&
|
|
33
32
|
spec.state === END_ROUTE) {
|
|
34
|
-
const endTransition = new Transition(this.getRef(), { state: END_ROUTE
|
|
33
|
+
const endTransition = new Transition(this.getRef(), { state: END_ROUTE, condition: spec.condition });
|
|
35
34
|
this.transitions.push(endTransition);
|
|
36
35
|
// Return a terminal state reference
|
|
37
36
|
return this.createTerminalRef();
|
|
38
37
|
}
|
|
39
38
|
// Handle direct state reference
|
|
40
39
|
if (spec.state && typeof spec.state !== "symbol") {
|
|
41
|
-
const transition = new Transition(this.getRef(), spec
|
|
40
|
+
const transition = new Transition(this.getRef(), spec);
|
|
42
41
|
this.transitions.push(transition);
|
|
43
42
|
return this.createStateRefWithTransition(spec.state);
|
|
44
43
|
}
|
|
45
44
|
// Create new target state for chatState or toolState
|
|
46
45
|
const targetState = new State(this.routeId, spec.chatState, spec.id, // Use custom ID if provided
|
|
47
46
|
spec.gather, spec.skipIf, spec.requiredData);
|
|
48
|
-
const transition = new Transition(this.getRef(), spec
|
|
47
|
+
const transition = new Transition(this.getRef(), spec);
|
|
49
48
|
transition.setTarget(targetState);
|
|
50
49
|
this.transitions.push(transition);
|
|
51
50
|
return this.createStateRefWithTransition(targetState.getRef(), targetState);
|
|
@@ -100,7 +99,7 @@ export class State {
|
|
|
100
99
|
const stateInstance = state || this;
|
|
101
100
|
return {
|
|
102
101
|
...ref,
|
|
103
|
-
transitionTo: (spec
|
|
102
|
+
transitionTo: (spec) => stateInstance.transitionTo(spec),
|
|
104
103
|
};
|
|
105
104
|
}
|
|
106
105
|
/**
|
package/dist/core/State.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"State.js","sourceRoot":"","sources":["../../src/core/State.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,MAAM,OAAO,KAAK;IAQhB,YACkB,OAAe,EACf,WAAoB,EACpC,QAAiB,EACjB,YAAuB,EACvB,MAAoD,EACpD,YAAuB;QALP,YAAO,GAAP,OAAO,CAAQ;QACf,gBAAW,GAAX,WAAW,CAAS;QAR9B,gBAAW,GAAuC,EAAE,CAAC;QACrD,eAAU,GAAgB,EAAE,CAAC;QAanC,kDAAkD;QAClD,IAAI,CAAC,EAAE,GAAG,QAAQ,IAAI,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC5D,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"State.js","sourceRoot":"","sources":["../../src/core/State.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,MAAM,OAAO,KAAK;IAQhB,YACkB,OAAe,EACf,WAAoB,EACpC,QAAiB,EACjB,YAAuB,EACvB,MAAoD,EACpD,YAAuB;QALP,YAAO,GAAP,OAAO,CAAQ;QACf,gBAAW,GAAX,WAAW,CAAS;QAR9B,gBAAW,GAAuC,EAAE,CAAC;QACrD,eAAU,GAAgB,EAAE,CAAC;QAanC,kDAAkD;QAClD,IAAI,CAAC,EAAE,GAAG,QAAQ,IAAI,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC5D,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACH,YAAY,CACV,IAA0C;QAE1C,mBAAmB;QACnB,IACE,IAAI,CAAC,KAAK;YACV,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;YAC9B,IAAI,CAAC,KAAK,KAAK,SAAS,EACxB,CAAC;YACD,MAAM,aAAa,GAAG,IAAI,UAAU,CAClC,IAAI,CAAC,MAAM,EAAE,EACb,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAChD,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAErC,oCAAoC;YACpC,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAClC,CAAC;QAED,gCAAgC;QAChC,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACjD,MAAM,UAAU,GAAG,IAAI,UAAU,CAC/B,IAAI,CAAC,MAAM,EAAE,EACb,IAAI,CACL,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAElC,OAAO,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC;QAED,qDAAqD;QACrD,MAAM,WAAW,GAAG,IAAI,KAAK,CAC3B,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,EAAE,EAAE,4BAA4B;QACrC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,YAAY,CAClB,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,UAAU,CAC/B,IAAI,CAAC,MAAM,EAAE,EACb,IAAI,CACL,CAAC;QACF,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAElC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAElC,OAAO,IAAI,CAAC,4BAA4B,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,SAAoB;QAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,SAA8B;QACvC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,SAA8B;QAC5C,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACtE,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAC5B,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAuB,CAAC,KAAK,SAAS,CAC1D,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,4BAA4B,CAClC,GAAa,EACb,KAAmC;QAEnC,MAAM,aAAa,GAAG,KAAK,IAAI,IAAI,CAAC;QAEpC,OAAO;YACL,GAAG,GAAG;YACN,YAAY,EAAE,CAAC,IAA0C,EAAE,EAAE,CAC3D,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC;SACnC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,MAAM,WAAW,GAAa;YAC5B,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;QAEF,OAAO;YACL,GAAG,WAAW;YACd,YAAY,EAAE,GAAG,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC5D,CAAC;SACF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -9,9 +9,9 @@ import type { State } from "./State";
|
|
|
9
9
|
export declare class Transition<TContext = unknown, TExtracted = unknown> {
|
|
10
10
|
readonly source: StateRef;
|
|
11
11
|
readonly spec: TransitionSpec<TContext, TExtracted>;
|
|
12
|
-
readonly condition?: string | undefined;
|
|
13
12
|
private target?;
|
|
14
|
-
|
|
13
|
+
readonly condition?: string;
|
|
14
|
+
constructor(source: StateRef, spec: TransitionSpec<TContext, TExtracted>);
|
|
15
15
|
/**
|
|
16
16
|
* Set the target state for this transition
|
|
17
17
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transition.d.ts","sourceRoot":"","sources":["../../src/core/Transition.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;GAEG;AACH,qBAAa,UAAU,CAAC,QAAQ,GAAG,OAAO,EAAE,UAAU,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"Transition.d.ts","sourceRoot":"","sources":["../../src/core/Transition.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;GAEG;AACH,qBAAa,UAAU,CAAC,QAAQ,GAAG,OAAO,EAAE,UAAU,GAAG,OAAO;aAK5C,MAAM,EAAE,QAAQ;aAChB,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;IAL5D,OAAO,CAAC,MAAM,CAAC,CAA8B;IAC7C,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAGjB,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;IAM5D;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,IAAI;IAInD;;OAEG;IACH,SAAS,IAAI,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,SAAS;IAIpD;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,QAAQ,IAAI,MAAM;CAsBnB"}
|
package/dist/core/Transition.js
CHANGED
|
@@ -5,10 +5,11 @@
|
|
|
5
5
|
* Represents a transition from one state to another
|
|
6
6
|
*/
|
|
7
7
|
export class Transition {
|
|
8
|
-
constructor(source, spec
|
|
8
|
+
constructor(source, spec) {
|
|
9
9
|
this.source = source;
|
|
10
10
|
this.spec = spec;
|
|
11
|
-
|
|
11
|
+
// Extract condition from spec for convenience
|
|
12
|
+
this.condition = spec.condition;
|
|
12
13
|
}
|
|
13
14
|
/**
|
|
14
15
|
* Set the target state for this transition
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transition.js","sourceRoot":"","sources":["../../src/core/Transition.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,MAAM,OAAO,UAAU;
|
|
1
|
+
{"version":3,"file":"Transition.js","sourceRoot":"","sources":["../../src/core/Transition.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,MAAM,OAAO,UAAU;IAIrB,YACkB,MAAgB,EAChB,IAA0C;QAD1C,WAAM,GAAN,MAAM,CAAU;QAChB,SAAI,GAAJ,IAAI,CAAsC;QAE1D,8CAA8C;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,KAAkC;QAC1C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACxC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAEzE,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,UAAU,IAAI,aAAa,EAAE,CAAC;IAChE,CAAC;CACF"}
|
package/dist/types/route.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export interface StateRef {
|
|
|
25
25
|
import type { Guideline } from "./agent";
|
|
26
26
|
/**
|
|
27
27
|
* Options for creating a route
|
|
28
|
-
* @template TExtracted - Type of data extracted throughout the route (inferred from
|
|
28
|
+
* @template TExtracted - Type of data extracted throughout the route (inferred from extractionSchema)
|
|
29
29
|
*/
|
|
30
30
|
export interface RouteOptions<TExtracted = unknown> {
|
|
31
31
|
/** Custom ID for the route (optional - will generate deterministic ID from title if not provided) */
|
|
@@ -52,13 +52,19 @@ export interface RouteOptions<TExtracted = unknown> {
|
|
|
52
52
|
* NEW: Schema defining data to extract throughout this route
|
|
53
53
|
* This creates a type-safe contract for what data the route collects
|
|
54
54
|
*/
|
|
55
|
-
|
|
55
|
+
extractionSchema?: StructuredSchema;
|
|
56
56
|
/**
|
|
57
57
|
* NEW: Initial data to pre-populate when entering this route
|
|
58
58
|
* Useful for restoring sessions or pre-filling known information
|
|
59
59
|
* States with skipIf conditions will be automatically bypassed if data is present
|
|
60
60
|
*/
|
|
61
61
|
initialData?: Partial<TExtracted>;
|
|
62
|
+
/**
|
|
63
|
+
* NEW: Sequential steps for simple linear flows
|
|
64
|
+
* If provided, automatically chains the steps from initialState to END_ROUTE
|
|
65
|
+
* For complex flows with branching, build the state machine manually instead
|
|
66
|
+
*/
|
|
67
|
+
steps?: TransitionSpec<unknown, TExtracted>[];
|
|
62
68
|
}
|
|
63
69
|
/**
|
|
64
70
|
* Specification for a state transition
|
|
@@ -74,7 +80,7 @@ export interface TransitionSpec<TContext = unknown, TExtracted = unknown> {
|
|
|
74
80
|
state?: StateRef | symbol;
|
|
75
81
|
/**
|
|
76
82
|
* NEW: Fields to gather from the conversation in this state
|
|
77
|
-
* These should match keys in the route's
|
|
83
|
+
* These should match keys in the route's extractionSchema
|
|
78
84
|
*/
|
|
79
85
|
gather?: string[];
|
|
80
86
|
/**
|
|
@@ -90,6 +96,11 @@ export interface TransitionSpec<TContext = unknown, TExtracted = unknown> {
|
|
|
90
96
|
* Uses string[] for developer-friendly usage (same as gather)
|
|
91
97
|
*/
|
|
92
98
|
requiredData?: string[];
|
|
99
|
+
/**
|
|
100
|
+
* Optional condition for this transition
|
|
101
|
+
* Description of when this transition should be taken
|
|
102
|
+
*/
|
|
103
|
+
condition?: string;
|
|
93
104
|
}
|
|
94
105
|
/**
|
|
95
106
|
* Result of a transition operation
|
|
@@ -97,6 +108,6 @@ export interface TransitionSpec<TContext = unknown, TExtracted = unknown> {
|
|
|
97
108
|
*/
|
|
98
109
|
export interface TransitionResult<TContext = unknown, TExtracted = unknown> extends StateRef {
|
|
99
110
|
/** Allow chaining transitions */
|
|
100
|
-
transitionTo: (spec: TransitionSpec<TContext, TExtracted
|
|
111
|
+
transitionTo: (spec: TransitionSpec<TContext, TExtracted>) => TransitionResult<TContext, TExtracted>;
|
|
101
112
|
}
|
|
102
113
|
//# sourceMappingURL=route.d.ts.map
|