@falai/agent 0.6.8 → 0.7.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/README.md +62 -59
- package/dist/adapters/MemoryAdapter.js +2 -2
- package/dist/adapters/MemoryAdapter.js.map +1 -1
- package/dist/adapters/MongoAdapter.js +2 -2
- package/dist/adapters/MongoAdapter.js.map +1 -1
- package/dist/adapters/OpenSearchAdapter.js +7 -7
- package/dist/adapters/OpenSearchAdapter.js.map +1 -1
- package/dist/adapters/PostgreSQLAdapter.js +9 -9
- package/dist/adapters/PostgreSQLAdapter.js.map +1 -1
- package/dist/adapters/PrismaAdapter.js +3 -3
- package/dist/adapters/PrismaAdapter.js.map +1 -1
- package/dist/adapters/RedisAdapter.js +2 -2
- package/dist/adapters/RedisAdapter.js.map +1 -1
- package/dist/adapters/SQLiteAdapter.d.ts +3 -3
- package/dist/adapters/SQLiteAdapter.d.ts.map +1 -1
- package/dist/adapters/SQLiteAdapter.js +11 -11
- package/dist/adapters/SQLiteAdapter.js.map +1 -1
- package/dist/adapters/index.d.ts +1 -1
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/cjs/adapters/MemoryAdapter.js +2 -2
- package/dist/cjs/adapters/MemoryAdapter.js.map +1 -1
- package/dist/cjs/adapters/MongoAdapter.js +2 -2
- package/dist/cjs/adapters/MongoAdapter.js.map +1 -1
- package/dist/cjs/adapters/OpenSearchAdapter.js +7 -7
- package/dist/cjs/adapters/OpenSearchAdapter.js.map +1 -1
- package/dist/cjs/adapters/PostgreSQLAdapter.js +9 -9
- package/dist/cjs/adapters/PostgreSQLAdapter.js.map +1 -1
- package/dist/cjs/adapters/PrismaAdapter.js +3 -3
- package/dist/cjs/adapters/PrismaAdapter.js.map +1 -1
- package/dist/cjs/adapters/RedisAdapter.js +2 -2
- package/dist/cjs/adapters/RedisAdapter.js.map +1 -1
- package/dist/cjs/adapters/SQLiteAdapter.d.ts +3 -3
- package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/SQLiteAdapter.js +11 -11
- package/dist/cjs/adapters/SQLiteAdapter.js.map +1 -1
- package/dist/cjs/adapters/index.d.ts +1 -1
- package/dist/cjs/adapters/index.d.ts.map +1 -1
- package/dist/cjs/constants/index.d.ts +4 -4
- package/dist/cjs/constants/index.js +5 -5
- package/dist/cjs/core/Agent.d.ts +22 -22
- package/dist/cjs/core/Agent.d.ts.map +1 -1
- package/dist/cjs/core/Agent.js +160 -152
- package/dist/cjs/core/Agent.js.map +1 -1
- package/dist/cjs/core/Events.d.ts +6 -6
- package/dist/cjs/core/Events.d.ts.map +1 -1
- package/dist/cjs/core/PersistenceManager.d.ts +13 -13
- package/dist/cjs/core/PersistenceManager.d.ts.map +1 -1
- package/dist/cjs/core/PersistenceManager.js +24 -24
- package/dist/cjs/core/PersistenceManager.js.map +1 -1
- package/dist/cjs/core/ResponseEngine.d.ts +3 -8
- package/dist/cjs/core/ResponseEngine.d.ts.map +1 -1
- package/dist/cjs/core/ResponseEngine.js +8 -8
- package/dist/cjs/core/ResponseEngine.js.map +1 -1
- package/dist/cjs/core/Route.d.ts +17 -17
- package/dist/cjs/core/Route.d.ts.map +1 -1
- package/dist/cjs/core/Route.js +33 -33
- package/dist/cjs/core/Route.js.map +1 -1
- package/dist/cjs/core/RoutingEngine.d.ts +30 -30
- package/dist/cjs/core/RoutingEngine.d.ts.map +1 -1
- package/dist/cjs/core/RoutingEngine.js +192 -192
- package/dist/cjs/core/RoutingEngine.js.map +1 -1
- package/dist/cjs/core/Step.d.ts +72 -0
- package/dist/cjs/core/Step.d.ts.map +1 -0
- package/dist/cjs/core/Step.js +150 -0
- package/dist/cjs/core/Step.js.map +1 -0
- package/dist/cjs/core/ToolExecutor.d.ts +5 -5
- package/dist/cjs/core/ToolExecutor.d.ts.map +1 -1
- package/dist/cjs/core/ToolExecutor.js +8 -8
- package/dist/cjs/core/ToolExecutor.js.map +1 -1
- package/dist/cjs/core/Transition.d.ts +14 -14
- package/dist/cjs/core/Transition.d.ts.map +1 -1
- package/dist/cjs/core/Transition.js +48 -19
- package/dist/cjs/core/Transition.js.map +1 -1
- package/dist/cjs/index.d.ts +7 -7
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +8 -8
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/agent.d.ts +8 -8
- package/dist/cjs/types/agent.d.ts.map +1 -1
- package/dist/cjs/types/ai.d.ts +2 -2
- package/dist/cjs/types/ai.d.ts.map +1 -1
- package/dist/cjs/types/history.d.ts +3 -3
- package/dist/cjs/types/history.d.ts.map +1 -1
- package/dist/cjs/types/index.d.ts +1 -1
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/types/persistence.d.ts +5 -5
- package/dist/cjs/types/persistence.d.ts.map +1 -1
- package/dist/cjs/types/route.d.ts +57 -52
- package/dist/cjs/types/route.d.ts.map +1 -1
- package/dist/cjs/types/session.d.ts +27 -27
- package/dist/cjs/types/session.d.ts.map +1 -1
- package/dist/cjs/types/session.js +48 -50
- package/dist/cjs/types/session.js.map +1 -1
- package/dist/cjs/types/tool.d.ts +13 -13
- package/dist/cjs/types/tool.d.ts.map +1 -1
- package/dist/cjs/utils/id.d.ts +8 -3
- package/dist/cjs/utils/id.d.ts.map +1 -1
- package/dist/cjs/utils/id.js +16 -7
- package/dist/cjs/utils/id.js.map +1 -1
- package/dist/constants/index.d.ts +4 -4
- package/dist/constants/index.js +4 -4
- package/dist/core/Agent.d.ts +22 -22
- package/dist/core/Agent.d.ts.map +1 -1
- package/dist/core/Agent.js +162 -154
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/Events.d.ts +6 -6
- package/dist/core/Events.d.ts.map +1 -1
- package/dist/core/PersistenceManager.d.ts +13 -13
- package/dist/core/PersistenceManager.d.ts.map +1 -1
- package/dist/core/PersistenceManager.js +25 -25
- package/dist/core/PersistenceManager.js.map +1 -1
- package/dist/core/ResponseEngine.d.ts +3 -8
- package/dist/core/ResponseEngine.d.ts.map +1 -1
- package/dist/core/ResponseEngine.js +8 -8
- package/dist/core/ResponseEngine.js.map +1 -1
- package/dist/core/Route.d.ts +17 -17
- package/dist/core/Route.d.ts.map +1 -1
- package/dist/core/Route.js +33 -33
- package/dist/core/Route.js.map +1 -1
- package/dist/core/RoutingEngine.d.ts +30 -30
- package/dist/core/RoutingEngine.d.ts.map +1 -1
- package/dist/core/RoutingEngine.js +193 -193
- package/dist/core/RoutingEngine.js.map +1 -1
- package/dist/core/Step.d.ts +72 -0
- package/dist/core/Step.d.ts.map +1 -0
- package/dist/core/Step.js +146 -0
- package/dist/core/Step.js.map +1 -0
- package/dist/core/ToolExecutor.d.ts +5 -5
- package/dist/core/ToolExecutor.d.ts.map +1 -1
- package/dist/core/ToolExecutor.js +8 -8
- package/dist/core/ToolExecutor.js.map +1 -1
- package/dist/core/Transition.d.ts +14 -14
- package/dist/core/Transition.d.ts.map +1 -1
- package/dist/core/Transition.js +48 -19
- package/dist/core/Transition.js.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/types/agent.d.ts +8 -8
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/ai.d.ts +2 -2
- package/dist/types/ai.d.ts.map +1 -1
- package/dist/types/history.d.ts +3 -3
- package/dist/types/history.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/persistence.d.ts +5 -5
- package/dist/types/persistence.d.ts.map +1 -1
- package/dist/types/route.d.ts +57 -52
- package/dist/types/route.d.ts.map +1 -1
- package/dist/types/session.d.ts +27 -27
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types/session.js +44 -46
- package/dist/types/session.js.map +1 -1
- package/dist/types/tool.d.ts +13 -13
- package/dist/types/tool.d.ts.map +1 -1
- package/dist/utils/id.d.ts +8 -3
- package/dist/utils/id.d.ts.map +1 -1
- package/dist/utils/id.js +14 -6
- package/dist/utils/id.js.map +1 -1
- package/docs/ADAPTERS.md +21 -21
- package/docs/AGENT.md +57 -55
- package/docs/API_REFERENCE.md +218 -220
- package/docs/ARCHITECTURE.md +99 -104
- package/docs/CONTEXT_MANAGEMENT.md +81 -88
- package/docs/DOCS.md +18 -18
- package/docs/DOMAINS.md +16 -16
- package/docs/EXAMPLES.md +43 -43
- package/docs/GETTING_STARTED.md +60 -63
- package/docs/PERSISTENCE.md +66 -70
- package/docs/PROVIDERS.md +2 -2
- package/docs/README.md +6 -6
- package/docs/ROUTES.md +218 -220
- package/docs/STEPS.md +883 -0
- package/examples/business-onboarding.ts +84 -81
- package/examples/company-qna-agent.ts +68 -67
- package/examples/custom-database-persistence.ts +87 -89
- package/examples/declarative-agent.ts +32 -32
- package/examples/domain-scoping.ts +18 -18
- package/examples/extracted-data-modification.ts +92 -97
- package/examples/healthcare-agent.ts +89 -91
- package/examples/openai-agent.ts +29 -32
- package/examples/opensearch-persistence.ts +43 -45
- package/examples/persistent-onboarding.ts +65 -66
- package/examples/prisma-persistence.ts +108 -112
- package/examples/prisma-schema.example.prisma +3 -3
- package/examples/redis-persistence.ts +67 -73
- package/examples/route-transitions.ts +71 -47
- package/examples/rules-prohibitions.ts +28 -28
- package/examples/streaming-agent.ts +24 -24
- package/examples/travel-agent.ts +94 -109
- package/package.json +1 -1
- package/src/adapters/MemoryAdapter.ts +3 -3
- package/src/adapters/MongoAdapter.ts +3 -3
- package/src/adapters/OpenSearchAdapter.ts +8 -8
- package/src/adapters/PostgreSQLAdapter.ts +10 -10
- package/src/adapters/PrismaAdapter.ts +4 -4
- package/src/adapters/RedisAdapter.ts +3 -3
- package/src/adapters/SQLiteAdapter.ts +15 -15
- package/src/adapters/index.ts +1 -1
- package/src/constants/index.ts +4 -4
- package/src/core/Agent.ts +210 -206
- package/src/core/Events.ts +12 -12
- package/src/core/PersistenceManager.ts +32 -36
- package/src/core/ResponseEngine.ts +11 -17
- package/src/core/Route.ts +55 -49
- package/src/core/RoutingEngine.ts +244 -252
- package/src/core/Step.ts +197 -0
- package/src/core/ToolExecutor.ts +11 -11
- package/src/core/Transition.ts +72 -26
- package/src/index.ts +8 -8
- package/src/types/agent.ts +8 -8
- package/src/types/ai.ts +2 -2
- package/src/types/history.ts +3 -3
- package/src/types/index.ts +1 -1
- package/src/types/persistence.ts +6 -6
- package/src/types/route.ts +77 -61
- package/src/types/session.ts +75 -78
- package/src/types/tool.ts +17 -17
- package/src/utils/id.ts +15 -6
- package/dist/cjs/core/State.d.ts +0 -72
- package/dist/cjs/core/State.d.ts.map +0 -1
- package/dist/cjs/core/State.js +0 -148
- package/dist/cjs/core/State.js.map +0 -1
- package/dist/core/State.d.ts +0 -72
- package/dist/core/State.d.ts.map +0 -1
- package/dist/core/State.js +0 -144
- package/dist/core/State.js.map +0 -1
- package/docs/STATES.md +0 -888
- package/src/core/State.ts +0 -212
package/dist/cjs/core/State.d.ts
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* State in the route DSL
|
|
3
|
-
*/
|
|
4
|
-
import type { StateRef, TransitionSpec, TransitionResult } from "../types/route";
|
|
5
|
-
import type { Guideline } from "../types/agent";
|
|
6
|
-
import { Transition } from "./Transition";
|
|
7
|
-
/**
|
|
8
|
-
* Represents a state within a route
|
|
9
|
-
*/
|
|
10
|
-
export declare class State<TContext = unknown, TExtracted = unknown> {
|
|
11
|
-
readonly routeId: string;
|
|
12
|
-
description?: string | undefined;
|
|
13
|
-
readonly id: string;
|
|
14
|
-
private transitions;
|
|
15
|
-
private guidelines;
|
|
16
|
-
gatherFields?: string[];
|
|
17
|
-
skipIf?: (extracted: Partial<TExtracted>) => boolean;
|
|
18
|
-
requiredData?: string[];
|
|
19
|
-
chatState?: string;
|
|
20
|
-
constructor(routeId: string, description?: string | undefined, customId?: string, gatherFields?: string[], skipIf?: (extracted: Partial<TExtracted>) => boolean, requiredData?: string[], chatState?: string);
|
|
21
|
-
/**
|
|
22
|
-
* Configure the state properties after creation
|
|
23
|
-
* Useful for overriding initial state configuration
|
|
24
|
-
*/
|
|
25
|
-
configure(config: {
|
|
26
|
-
description?: string;
|
|
27
|
-
gatherFields?: string[];
|
|
28
|
-
skipIf?: (extracted: Partial<TExtracted>) => boolean;
|
|
29
|
-
requiredData?: string[];
|
|
30
|
-
chatState?: string;
|
|
31
|
-
}): this;
|
|
32
|
-
/**
|
|
33
|
-
* Create a transition from this state to another
|
|
34
|
-
*
|
|
35
|
-
* @param spec - Transition specification (chatState, toolState, or direct state)
|
|
36
|
-
* @returns TransitionResult that supports chaining
|
|
37
|
-
*/
|
|
38
|
-
transitionTo(spec: TransitionSpec<TContext, TExtracted>): TransitionResult<TContext, TExtracted>;
|
|
39
|
-
/**
|
|
40
|
-
* Add a guideline specific to this state
|
|
41
|
-
*/
|
|
42
|
-
addGuideline(guideline: Guideline): void;
|
|
43
|
-
/**
|
|
44
|
-
* Get guidelines for this state
|
|
45
|
-
*/
|
|
46
|
-
getGuidelines(): Guideline[];
|
|
47
|
-
/**
|
|
48
|
-
* Get all transitions from this state
|
|
49
|
-
*/
|
|
50
|
-
getTransitions(): Transition<TContext, TExtracted>[];
|
|
51
|
-
/**
|
|
52
|
-
* Check if this state should be skipped based on extracted data
|
|
53
|
-
*/
|
|
54
|
-
shouldSkip(extracted: Partial<TExtracted>): boolean;
|
|
55
|
-
/**
|
|
56
|
-
* Check if this state has all required data to proceed
|
|
57
|
-
*/
|
|
58
|
-
hasRequiredData(extracted: Partial<TExtracted>): boolean;
|
|
59
|
-
/**
|
|
60
|
-
* Get state reference
|
|
61
|
-
*/
|
|
62
|
-
getRef(): StateRef;
|
|
63
|
-
/**
|
|
64
|
-
* Create a state reference with transitionTo capability for chaining
|
|
65
|
-
*/
|
|
66
|
-
private createStateRefWithTransition;
|
|
67
|
-
/**
|
|
68
|
-
* Create a terminal state reference (for END_STATE)
|
|
69
|
-
*/
|
|
70
|
-
private createTerminalRef;
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=State.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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;aAUvC,OAAO,EAAE,MAAM;IACxB,WAAW,CAAC,EAAE,MAAM;IAV7B,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,WAAW,CAA0C;IAC7D,OAAO,CAAC,UAAU,CAAmB;IAC9B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC;IACrD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAGR,OAAO,EAAE,MAAM,EACxB,WAAW,CAAC,EAAE,MAAM,YAAA,EAC3B,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,EACvB,SAAS,CAAC,EAAE,MAAM;IAUpB;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC;QACrD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,IAAI;IAmBR;;;;;OAKG;IACH,YAAY,CACV,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,GACzC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC;IAiDzC;;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
DELETED
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* State in the route DSL
|
|
4
|
-
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.State = void 0;
|
|
7
|
-
const constants_1 = require("../constants");
|
|
8
|
-
const Transition_1 = require("./Transition");
|
|
9
|
-
const id_1 = require("../utils/id");
|
|
10
|
-
/**
|
|
11
|
-
* Represents a state within a route
|
|
12
|
-
*/
|
|
13
|
-
class State {
|
|
14
|
-
constructor(routeId, description, customId, gatherFields, skipIf, requiredData, chatState) {
|
|
15
|
-
this.routeId = routeId;
|
|
16
|
-
this.description = description;
|
|
17
|
-
this.transitions = [];
|
|
18
|
-
this.guidelines = [];
|
|
19
|
-
// Use provided ID or generate a deterministic one
|
|
20
|
-
this.id = customId || (0, id_1.generateStateId)(routeId, description);
|
|
21
|
-
this.gatherFields = gatherFields;
|
|
22
|
-
this.skipIf = skipIf;
|
|
23
|
-
this.requiredData = requiredData;
|
|
24
|
-
this.chatState = chatState;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Configure the state properties after creation
|
|
28
|
-
* Useful for overriding initial state configuration
|
|
29
|
-
*/
|
|
30
|
-
configure(config) {
|
|
31
|
-
if (config.description !== undefined) {
|
|
32
|
-
this.description = config.description;
|
|
33
|
-
}
|
|
34
|
-
if (config.gatherFields !== undefined) {
|
|
35
|
-
this.gatherFields = config.gatherFields;
|
|
36
|
-
}
|
|
37
|
-
if (config.skipIf !== undefined) {
|
|
38
|
-
this.skipIf = config.skipIf;
|
|
39
|
-
}
|
|
40
|
-
if (config.requiredData !== undefined) {
|
|
41
|
-
this.requiredData = config.requiredData;
|
|
42
|
-
}
|
|
43
|
-
if (config.chatState !== undefined) {
|
|
44
|
-
this.chatState = config.chatState;
|
|
45
|
-
}
|
|
46
|
-
return this;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Create a transition from this state to another
|
|
50
|
-
*
|
|
51
|
-
* @param spec - Transition specification (chatState, toolState, or direct state)
|
|
52
|
-
* @returns TransitionResult that supports chaining
|
|
53
|
-
*/
|
|
54
|
-
transitionTo(spec) {
|
|
55
|
-
// Handle END_STATE
|
|
56
|
-
if (spec.state &&
|
|
57
|
-
typeof spec.state === "symbol" &&
|
|
58
|
-
spec.state === constants_1.END_STATE) {
|
|
59
|
-
const endTransition = new Transition_1.Transition(this.getRef(), { state: constants_1.END_STATE, condition: spec.condition, chatState: spec.chatState });
|
|
60
|
-
this.transitions.push(endTransition);
|
|
61
|
-
// Return a terminal state reference
|
|
62
|
-
return this.createTerminalRef();
|
|
63
|
-
}
|
|
64
|
-
// Handle direct state reference
|
|
65
|
-
if (spec.state && typeof spec.state !== "symbol") {
|
|
66
|
-
const transition = new Transition_1.Transition(this.getRef(), spec);
|
|
67
|
-
this.transitions.push(transition);
|
|
68
|
-
return this.createStateRefWithTransition(spec.state);
|
|
69
|
-
}
|
|
70
|
-
// Create new target state for chatState or toolState
|
|
71
|
-
const targetState = new State(this.routeId, spec.chatState, spec.id, // Use custom ID if provided
|
|
72
|
-
spec.gather, spec.skipIf, spec.requiredData, spec.chatState);
|
|
73
|
-
const transition = new Transition_1.Transition(this.getRef(), spec);
|
|
74
|
-
transition.setTarget(targetState);
|
|
75
|
-
this.transitions.push(transition);
|
|
76
|
-
return this.createStateRefWithTransition(targetState.getRef(), targetState);
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Add a guideline specific to this state
|
|
80
|
-
*/
|
|
81
|
-
addGuideline(guideline) {
|
|
82
|
-
this.guidelines.push(guideline);
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Get guidelines for this state
|
|
86
|
-
*/
|
|
87
|
-
getGuidelines() {
|
|
88
|
-
return [...this.guidelines];
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Get all transitions from this state
|
|
92
|
-
*/
|
|
93
|
-
getTransitions() {
|
|
94
|
-
return [...this.transitions];
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Check if this state should be skipped based on extracted data
|
|
98
|
-
*/
|
|
99
|
-
shouldSkip(extracted) {
|
|
100
|
-
if (!this.skipIf)
|
|
101
|
-
return false;
|
|
102
|
-
return this.skipIf(extracted);
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Check if this state has all required data to proceed
|
|
106
|
-
*/
|
|
107
|
-
hasRequiredData(extracted) {
|
|
108
|
-
if (!this.requiredData || this.requiredData.length === 0)
|
|
109
|
-
return true;
|
|
110
|
-
return this.requiredData.every((key) => extracted[key] !== undefined);
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Get state reference
|
|
114
|
-
*/
|
|
115
|
-
getRef() {
|
|
116
|
-
return {
|
|
117
|
-
id: this.id,
|
|
118
|
-
routeId: this.routeId,
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Create a state reference with transitionTo capability for chaining
|
|
123
|
-
*/
|
|
124
|
-
createStateRefWithTransition(ref, state) {
|
|
125
|
-
const stateInstance = state || this;
|
|
126
|
-
return {
|
|
127
|
-
...ref,
|
|
128
|
-
transitionTo: (spec) => stateInstance.transitionTo(spec),
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Create a terminal state reference (for END_STATE)
|
|
133
|
-
*/
|
|
134
|
-
createTerminalRef() {
|
|
135
|
-
const terminalRef = {
|
|
136
|
-
id: "END",
|
|
137
|
-
routeId: this.routeId,
|
|
138
|
-
};
|
|
139
|
-
return {
|
|
140
|
-
...terminalRef,
|
|
141
|
-
transitionTo: () => {
|
|
142
|
-
throw new Error("Cannot transition from END_STATE state");
|
|
143
|
-
},
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
exports.State = State;
|
|
148
|
-
//# sourceMappingURL=State.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"State.js","sourceRoot":"","sources":["../../../src/core/State.ts"],"names":[],"mappings":"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"}
|
package/dist/core/State.d.ts
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* State in the route DSL
|
|
3
|
-
*/
|
|
4
|
-
import type { StateRef, TransitionSpec, TransitionResult } from "../types/route";
|
|
5
|
-
import type { Guideline } from "../types/agent";
|
|
6
|
-
import { Transition } from "./Transition";
|
|
7
|
-
/**
|
|
8
|
-
* Represents a state within a route
|
|
9
|
-
*/
|
|
10
|
-
export declare class State<TContext = unknown, TExtracted = unknown> {
|
|
11
|
-
readonly routeId: string;
|
|
12
|
-
description?: string | undefined;
|
|
13
|
-
readonly id: string;
|
|
14
|
-
private transitions;
|
|
15
|
-
private guidelines;
|
|
16
|
-
gatherFields?: string[];
|
|
17
|
-
skipIf?: (extracted: Partial<TExtracted>) => boolean;
|
|
18
|
-
requiredData?: string[];
|
|
19
|
-
chatState?: string;
|
|
20
|
-
constructor(routeId: string, description?: string | undefined, customId?: string, gatherFields?: string[], skipIf?: (extracted: Partial<TExtracted>) => boolean, requiredData?: string[], chatState?: string);
|
|
21
|
-
/**
|
|
22
|
-
* Configure the state properties after creation
|
|
23
|
-
* Useful for overriding initial state configuration
|
|
24
|
-
*/
|
|
25
|
-
configure(config: {
|
|
26
|
-
description?: string;
|
|
27
|
-
gatherFields?: string[];
|
|
28
|
-
skipIf?: (extracted: Partial<TExtracted>) => boolean;
|
|
29
|
-
requiredData?: string[];
|
|
30
|
-
chatState?: string;
|
|
31
|
-
}): this;
|
|
32
|
-
/**
|
|
33
|
-
* Create a transition from this state to another
|
|
34
|
-
*
|
|
35
|
-
* @param spec - Transition specification (chatState, toolState, or direct state)
|
|
36
|
-
* @returns TransitionResult that supports chaining
|
|
37
|
-
*/
|
|
38
|
-
transitionTo(spec: TransitionSpec<TContext, TExtracted>): TransitionResult<TContext, TExtracted>;
|
|
39
|
-
/**
|
|
40
|
-
* Add a guideline specific to this state
|
|
41
|
-
*/
|
|
42
|
-
addGuideline(guideline: Guideline): void;
|
|
43
|
-
/**
|
|
44
|
-
* Get guidelines for this state
|
|
45
|
-
*/
|
|
46
|
-
getGuidelines(): Guideline[];
|
|
47
|
-
/**
|
|
48
|
-
* Get all transitions from this state
|
|
49
|
-
*/
|
|
50
|
-
getTransitions(): Transition<TContext, TExtracted>[];
|
|
51
|
-
/**
|
|
52
|
-
* Check if this state should be skipped based on extracted data
|
|
53
|
-
*/
|
|
54
|
-
shouldSkip(extracted: Partial<TExtracted>): boolean;
|
|
55
|
-
/**
|
|
56
|
-
* Check if this state has all required data to proceed
|
|
57
|
-
*/
|
|
58
|
-
hasRequiredData(extracted: Partial<TExtracted>): boolean;
|
|
59
|
-
/**
|
|
60
|
-
* Get state reference
|
|
61
|
-
*/
|
|
62
|
-
getRef(): StateRef;
|
|
63
|
-
/**
|
|
64
|
-
* Create a state reference with transitionTo capability for chaining
|
|
65
|
-
*/
|
|
66
|
-
private createStateRefWithTransition;
|
|
67
|
-
/**
|
|
68
|
-
* Create a terminal state reference (for END_STATE)
|
|
69
|
-
*/
|
|
70
|
-
private createTerminalRef;
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=State.d.ts.map
|
package/dist/core/State.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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;aAUvC,OAAO,EAAE,MAAM;IACxB,WAAW,CAAC,EAAE,MAAM;IAV7B,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,WAAW,CAA0C;IAC7D,OAAO,CAAC,UAAU,CAAmB;IAC9B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC;IACrD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAGR,OAAO,EAAE,MAAM,EACxB,WAAW,CAAC,EAAE,MAAM,YAAA,EAC3B,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,EACvB,SAAS,CAAC,EAAE,MAAM;IAUpB;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC;QACrD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,IAAI;IAmBR;;;;;OAKG;IACH,YAAY,CACV,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,GACzC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC;IAiDzC;;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
DELETED
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* State in the route DSL
|
|
3
|
-
*/
|
|
4
|
-
import { END_STATE } from "../constants";
|
|
5
|
-
import { Transition } from "./Transition";
|
|
6
|
-
import { generateStateId } from "../utils/id";
|
|
7
|
-
/**
|
|
8
|
-
* Represents a state within a route
|
|
9
|
-
*/
|
|
10
|
-
export class State {
|
|
11
|
-
constructor(routeId, description, customId, gatherFields, skipIf, requiredData, chatState) {
|
|
12
|
-
this.routeId = routeId;
|
|
13
|
-
this.description = description;
|
|
14
|
-
this.transitions = [];
|
|
15
|
-
this.guidelines = [];
|
|
16
|
-
// Use provided ID or generate a deterministic one
|
|
17
|
-
this.id = customId || generateStateId(routeId, description);
|
|
18
|
-
this.gatherFields = gatherFields;
|
|
19
|
-
this.skipIf = skipIf;
|
|
20
|
-
this.requiredData = requiredData;
|
|
21
|
-
this.chatState = chatState;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Configure the state properties after creation
|
|
25
|
-
* Useful for overriding initial state configuration
|
|
26
|
-
*/
|
|
27
|
-
configure(config) {
|
|
28
|
-
if (config.description !== undefined) {
|
|
29
|
-
this.description = config.description;
|
|
30
|
-
}
|
|
31
|
-
if (config.gatherFields !== undefined) {
|
|
32
|
-
this.gatherFields = config.gatherFields;
|
|
33
|
-
}
|
|
34
|
-
if (config.skipIf !== undefined) {
|
|
35
|
-
this.skipIf = config.skipIf;
|
|
36
|
-
}
|
|
37
|
-
if (config.requiredData !== undefined) {
|
|
38
|
-
this.requiredData = config.requiredData;
|
|
39
|
-
}
|
|
40
|
-
if (config.chatState !== undefined) {
|
|
41
|
-
this.chatState = config.chatState;
|
|
42
|
-
}
|
|
43
|
-
return this;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Create a transition from this state to another
|
|
47
|
-
*
|
|
48
|
-
* @param spec - Transition specification (chatState, toolState, or direct state)
|
|
49
|
-
* @returns TransitionResult that supports chaining
|
|
50
|
-
*/
|
|
51
|
-
transitionTo(spec) {
|
|
52
|
-
// Handle END_STATE
|
|
53
|
-
if (spec.state &&
|
|
54
|
-
typeof spec.state === "symbol" &&
|
|
55
|
-
spec.state === END_STATE) {
|
|
56
|
-
const endTransition = new Transition(this.getRef(), { state: END_STATE, condition: spec.condition, chatState: spec.chatState });
|
|
57
|
-
this.transitions.push(endTransition);
|
|
58
|
-
// Return a terminal state reference
|
|
59
|
-
return this.createTerminalRef();
|
|
60
|
-
}
|
|
61
|
-
// Handle direct state reference
|
|
62
|
-
if (spec.state && typeof spec.state !== "symbol") {
|
|
63
|
-
const transition = new Transition(this.getRef(), spec);
|
|
64
|
-
this.transitions.push(transition);
|
|
65
|
-
return this.createStateRefWithTransition(spec.state);
|
|
66
|
-
}
|
|
67
|
-
// Create new target state for chatState or toolState
|
|
68
|
-
const targetState = new State(this.routeId, spec.chatState, spec.id, // Use custom ID if provided
|
|
69
|
-
spec.gather, spec.skipIf, spec.requiredData, spec.chatState);
|
|
70
|
-
const transition = new Transition(this.getRef(), spec);
|
|
71
|
-
transition.setTarget(targetState);
|
|
72
|
-
this.transitions.push(transition);
|
|
73
|
-
return this.createStateRefWithTransition(targetState.getRef(), targetState);
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Add a guideline specific to this state
|
|
77
|
-
*/
|
|
78
|
-
addGuideline(guideline) {
|
|
79
|
-
this.guidelines.push(guideline);
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Get guidelines for this state
|
|
83
|
-
*/
|
|
84
|
-
getGuidelines() {
|
|
85
|
-
return [...this.guidelines];
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Get all transitions from this state
|
|
89
|
-
*/
|
|
90
|
-
getTransitions() {
|
|
91
|
-
return [...this.transitions];
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Check if this state should be skipped based on extracted data
|
|
95
|
-
*/
|
|
96
|
-
shouldSkip(extracted) {
|
|
97
|
-
if (!this.skipIf)
|
|
98
|
-
return false;
|
|
99
|
-
return this.skipIf(extracted);
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Check if this state has all required data to proceed
|
|
103
|
-
*/
|
|
104
|
-
hasRequiredData(extracted) {
|
|
105
|
-
if (!this.requiredData || this.requiredData.length === 0)
|
|
106
|
-
return true;
|
|
107
|
-
return this.requiredData.every((key) => extracted[key] !== undefined);
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Get state reference
|
|
111
|
-
*/
|
|
112
|
-
getRef() {
|
|
113
|
-
return {
|
|
114
|
-
id: this.id,
|
|
115
|
-
routeId: this.routeId,
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Create a state reference with transitionTo capability for chaining
|
|
120
|
-
*/
|
|
121
|
-
createStateRefWithTransition(ref, state) {
|
|
122
|
-
const stateInstance = state || this;
|
|
123
|
-
return {
|
|
124
|
-
...ref,
|
|
125
|
-
transitionTo: (spec) => stateInstance.transitionTo(spec),
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Create a terminal state reference (for END_STATE)
|
|
130
|
-
*/
|
|
131
|
-
createTerminalRef() {
|
|
132
|
-
const terminalRef = {
|
|
133
|
-
id: "END",
|
|
134
|
-
routeId: this.routeId,
|
|
135
|
-
};
|
|
136
|
-
return {
|
|
137
|
-
...terminalRef,
|
|
138
|
-
transitionTo: () => {
|
|
139
|
-
throw new Error("Cannot transition from END_STATE state");
|
|
140
|
-
},
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
//# sourceMappingURL=State.js.map
|
package/dist/core/State.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"State.js","sourceRoot":"","sources":["../../src/core/State.ts"],"names":[],"mappings":"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"}
|