@falai/agent 0.6.3 → 0.6.5
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 +89 -29
- package/dist/cjs/constants/index.d.ts +6 -1
- package/dist/cjs/constants/index.d.ts.map +1 -1
- package/dist/cjs/constants/index.js +8 -3
- package/dist/cjs/constants/index.js.map +1 -1
- package/dist/cjs/core/Agent.d.ts +22 -0
- package/dist/cjs/core/Agent.d.ts.map +1 -1
- package/dist/cjs/core/Agent.js +113 -26
- package/dist/cjs/core/Agent.js.map +1 -1
- package/dist/cjs/core/Events.d.ts +13 -0
- package/dist/cjs/core/Events.d.ts.map +1 -1
- package/dist/cjs/core/Events.js +28 -14
- package/dist/cjs/core/Events.js.map +1 -1
- package/dist/cjs/core/ResponseEngine.d.ts +1 -1
- package/dist/cjs/core/ResponseEngine.d.ts.map +1 -1
- package/dist/cjs/core/ResponseEngine.js +4 -1
- package/dist/cjs/core/ResponseEngine.js.map +1 -1
- package/dist/cjs/core/Route.d.ts.map +1 -1
- package/dist/cjs/core/Route.js +4 -4
- package/dist/cjs/core/Route.js.map +1 -1
- package/dist/cjs/core/RoutingEngine.d.ts +6 -1
- package/dist/cjs/core/RoutingEngine.d.ts.map +1 -1
- package/dist/cjs/core/RoutingEngine.js +116 -41
- package/dist/cjs/core/RoutingEngine.js.map +1 -1
- package/dist/cjs/core/State.d.ts +18 -6
- package/dist/cjs/core/State.d.ts.map +1 -1
- package/dist/cjs/core/State.js +30 -7
- package/dist/cjs/core/State.js.map +1 -1
- package/dist/cjs/core/Tool.d.ts +8 -1
- package/dist/cjs/core/Tool.d.ts.map +1 -1
- package/dist/cjs/core/Tool.js +25 -28
- package/dist/cjs/core/Tool.js.map +1 -1
- package/dist/cjs/core/Transition.js +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/agent.d.ts +5 -0
- package/dist/cjs/types/agent.d.ts.map +1 -1
- package/dist/cjs/types/agent.js.map +1 -1
- package/dist/cjs/types/route.d.ts +7 -1
- package/dist/cjs/types/route.d.ts.map +1 -1
- package/dist/cjs/types/session.d.ts +13 -2
- package/dist/cjs/types/session.d.ts.map +1 -1
- package/dist/cjs/types/session.js +28 -5
- package/dist/cjs/types/session.js.map +1 -1
- package/dist/cjs/utils/logger.d.ts +10 -0
- package/dist/cjs/utils/logger.d.ts.map +1 -0
- package/dist/cjs/utils/logger.js +23 -0
- package/dist/cjs/utils/logger.js.map +1 -0
- package/dist/constants/index.d.ts +6 -1
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +6 -1
- package/dist/constants/index.js.map +1 -1
- package/dist/core/Agent.d.ts +22 -0
- package/dist/core/Agent.d.ts.map +1 -1
- package/dist/core/Agent.js +113 -26
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/Events.d.ts +13 -0
- package/dist/core/Events.d.ts.map +1 -1
- package/dist/core/Events.js +28 -14
- package/dist/core/Events.js.map +1 -1
- package/dist/core/ResponseEngine.d.ts +1 -1
- package/dist/core/ResponseEngine.d.ts.map +1 -1
- package/dist/core/ResponseEngine.js +4 -1
- package/dist/core/ResponseEngine.js.map +1 -1
- package/dist/core/Route.d.ts.map +1 -1
- package/dist/core/Route.js +4 -4
- package/dist/core/Route.js.map +1 -1
- package/dist/core/RoutingEngine.d.ts +6 -1
- package/dist/core/RoutingEngine.d.ts.map +1 -1
- package/dist/core/RoutingEngine.js +116 -41
- package/dist/core/RoutingEngine.js.map +1 -1
- package/dist/core/State.d.ts +18 -6
- package/dist/core/State.d.ts.map +1 -1
- package/dist/core/State.js +31 -8
- package/dist/core/State.js.map +1 -1
- package/dist/core/Tool.d.ts +8 -1
- package/dist/core/Tool.d.ts.map +1 -1
- package/dist/core/Tool.js +25 -28
- package/dist/core/Tool.js.map +1 -1
- package/dist/core/Transition.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types/agent.d.ts +5 -0
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/agent.js.map +1 -1
- package/dist/types/route.d.ts +7 -1
- package/dist/types/route.d.ts.map +1 -1
- package/dist/types/session.d.ts +13 -2
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types/session.js +28 -5
- package/dist/types/session.js.map +1 -1
- package/dist/utils/logger.d.ts +10 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +17 -0
- package/dist/utils/logger.js.map +1 -0
- package/docs/{CONSTRUCTOR_OPTIONS.md → AGENT.md} +79 -7
- package/docs/API_REFERENCE.md +309 -18
- package/docs/ARCHITECTURE.md +1 -1
- package/docs/DOCS.md +46 -22
- package/docs/GETTING_STARTED.md +1 -1
- package/docs/README.md +13 -5
- package/docs/ROUTES.md +743 -0
- package/docs/STATES.md +798 -0
- package/examples/business-onboarding.ts +46 -5
- package/examples/company-qna-agent.ts +107 -1
- package/examples/custom-database-persistence.ts +44 -1
- package/examples/declarative-agent.ts +80 -37
- package/examples/domain-scoping.ts +91 -21
- package/examples/extracted-data-modification.ts +64 -2
- package/examples/healthcare-agent.ts +61 -4
- package/examples/openai-agent.ts +24 -2
- package/examples/opensearch-persistence.ts +26 -1
- package/examples/persistent-onboarding.ts +84 -18
- package/examples/prisma-persistence.ts +90 -16
- package/examples/redis-persistence.ts +89 -17
- package/examples/rules-prohibitions.ts +300 -139
- package/examples/streaming-agent.ts +60 -0
- package/examples/travel-agent.ts +66 -24
- package/package.json +3 -2
- package/src/constants/index.ts +6 -1
- package/src/core/Agent.ts +140 -24
- package/src/core/Events.ts +73 -10
- package/src/core/ResponseEngine.ts +6 -0
- package/src/core/Route.ts +8 -4
- package/src/core/RoutingEngine.ts +154 -43
- package/src/core/State.ts +45 -12
- package/src/core/Tool.ts +67 -10
- package/src/core/Transition.ts +1 -1
- package/src/index.ts +1 -1
- package/src/types/agent.ts +5 -0
- package/src/types/route.ts +10 -1
- package/src/types/session.ts +47 -7
- package/src/utils/logger.ts +19 -0
package/dist/core/Tool.js
CHANGED
|
@@ -2,33 +2,30 @@
|
|
|
2
2
|
* Tool definition and creation utilities
|
|
3
3
|
*/
|
|
4
4
|
import { generateToolId } from "../utils/id";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
description: options?.description,
|
|
31
|
-
parameters: options?.parameters,
|
|
32
|
-
};
|
|
5
|
+
export function defineTool(nameOrOptions, handler, options) {
|
|
6
|
+
if (typeof nameOrOptions === "string") {
|
|
7
|
+
// Original signature: defineTool(name, handler, options)
|
|
8
|
+
const name = nameOrOptions;
|
|
9
|
+
const id = options?.id || generateToolId(name);
|
|
10
|
+
return {
|
|
11
|
+
id,
|
|
12
|
+
name,
|
|
13
|
+
handler: handler,
|
|
14
|
+
description: options?.description,
|
|
15
|
+
parameters: options?.parameters,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
// New signature: defineTool(options)
|
|
20
|
+
const { name, handler: newHandler, id, description, parameters, } = nameOrOptions;
|
|
21
|
+
const toolId = id || generateToolId(name);
|
|
22
|
+
return {
|
|
23
|
+
id: toolId,
|
|
24
|
+
name,
|
|
25
|
+
handler: newHandler,
|
|
26
|
+
description,
|
|
27
|
+
parameters,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
33
30
|
}
|
|
34
31
|
//# sourceMappingURL=Tool.js.map
|
package/dist/core/Tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tool.js","sourceRoot":"","sources":["../../src/core/Tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Tool.js","sourceRoot":"","sources":["../../src/core/Tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AA4C7C,MAAM,UAAU,UAAU,CAKxB,aAQK,EACL,OAA+C,EAC/C,OAIC;IAED,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;QACtC,yDAAyD;QACzD,MAAM,IAAI,GAAG,aAAa,CAAC;QAC3B,MAAM,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QAE/C,OAAO;YACL,EAAE;YACF,IAAI;YACJ,OAAO,EAAE,OAAQ;YACjB,WAAW,EAAE,OAAO,EAAE,WAAW;YACjC,UAAU,EAAE,OAAO,EAAE,UAAU;SAChC,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,qCAAqC;QACrC,MAAM,EACJ,IAAI,EACJ,OAAO,EAAE,UAAU,EACnB,EAAE,EACF,WAAW,EACX,UAAU,GACX,GAAG,aAAa,CAAC;QAClB,MAAM,MAAM,GAAG,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QAE1C,OAAO;YACL,EAAE,EAAE,MAAM;YACV,IAAI;YACJ,OAAO,EAAE,UAAU;YACnB,WAAW;YACX,UAAU;SACX,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/core/Transition.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ export type { SqliteDatabase, SqliteStatement, SQLiteAdapterOptions, } from "./a
|
|
|
34
34
|
export { MemoryAdapter } from "./adapters/MemoryAdapter";
|
|
35
35
|
export { OpenSearchAdapter } from "./adapters/OpenSearchAdapter";
|
|
36
36
|
export type { OpenSearchClient, OpenSearchAdapterOptions, } from "./adapters/OpenSearchAdapter";
|
|
37
|
-
export {
|
|
37
|
+
export { END_STATE, END_STATE_ID } from "./constants";
|
|
38
38
|
export { generateRouteId, generateStateId, generateToolId } from "./utils/id";
|
|
39
39
|
export type { AgentOptions, Term, Guideline, Capability, GuidelineMatch, ContextLifecycleHooks, ContextProvider, } from "./types/agent";
|
|
40
40
|
export { CompositionMode } from "./types/agent";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,YAAY,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,YAAY,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAG9E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,YAAY,EACV,YAAY,EACZ,aAAa,EACb,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,YAAY,EACV,WAAW,EACX,aAAa,EACb,eAAe,EACf,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EACV,QAAQ,EACR,aAAa,EACb,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,YAAY,EACV,cAAc,EACd,eAAe,EACf,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EACV,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -27,7 +27,7 @@ export { SQLiteAdapter } from "./adapters/SQLiteAdapter";
|
|
|
27
27
|
export { MemoryAdapter } from "./adapters/MemoryAdapter";
|
|
28
28
|
export { OpenSearchAdapter } from "./adapters/OpenSearchAdapter";
|
|
29
29
|
// Constants
|
|
30
|
-
export {
|
|
30
|
+
export { END_STATE, END_STATE_ID } from "./constants";
|
|
31
31
|
// Utils
|
|
32
32
|
export { generateRouteId, generateStateId, generateToolId } from "./utils/id";
|
|
33
33
|
export { CompositionMode } from "./types/agent";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO;AACP,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,YAAY;AACZ,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGlE,WAAW;AACX,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAMzD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAOvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAMjE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAMzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAMjE,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO;AACP,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,YAAY;AACZ,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGlE,WAAW;AACX,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAMzD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAOvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAMjE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAMzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAMjE,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEtD,QAAQ;AACR,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAY9E,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAUhD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAWzD,OAAO,EACL,aAAa,EACb,UAAU,EACV,UAAU,EACV,cAAc,GACf,MAAM,iBAAiB,CAAC"}
|
package/dist/types/agent.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type { AiProvider } from "./ai";
|
|
|
5
5
|
import type { ToolRef } from "./tool";
|
|
6
6
|
import type { RouteOptions } from "./route";
|
|
7
7
|
import type { PersistenceConfig } from "./persistence";
|
|
8
|
+
import type { SessionState } from "./session";
|
|
8
9
|
/**
|
|
9
10
|
* Composition mode determines how the agent processes and structures responses
|
|
10
11
|
*/
|
|
@@ -60,8 +61,12 @@ export interface AgentOptions<TContext = unknown> {
|
|
|
60
61
|
goal?: string;
|
|
61
62
|
/** Optional personality/tone instructions used in prompts */
|
|
62
63
|
personality?: string;
|
|
64
|
+
/** Enable debug logging */
|
|
65
|
+
debug?: boolean;
|
|
63
66
|
/** Default context data available to the agent */
|
|
64
67
|
context?: TContext;
|
|
68
|
+
/** Optional current session for convenience methods */
|
|
69
|
+
session?: SessionState;
|
|
65
70
|
/** Context provider function for always-fresh context (alternative to static context) */
|
|
66
71
|
contextProvider?: ContextProvider<TContext>;
|
|
67
72
|
/** Lifecycle hooks for context management */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/types/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH;;GAEG;AACH,MAAM,CAAN,IAAY,eASX;AATD,WAAY,eAAe;IACzB,2DAA2D;IAC3D,kCAAe,CAAA;IACf,2CAA2C;IAC3C,gDAA6B,CAAA;IAC7B,kCAAkC;IAClC,0DAAuC,CAAA;IACvC,mCAAmC;IACnC,kDAA+B,CAAA;AACjC,CAAC,EATW,eAAe,KAAf,eAAe,QAS1B"}
|
package/dist/types/route.d.ts
CHANGED
|
@@ -61,10 +61,16 @@ export interface RouteOptions<TExtracted = unknown> {
|
|
|
61
61
|
initialData?: Partial<TExtracted>;
|
|
62
62
|
/**
|
|
63
63
|
* NEW: Sequential steps for simple linear flows
|
|
64
|
-
* If provided, automatically chains the steps from initialState to
|
|
64
|
+
* If provided, automatically chains the steps from initialState to END_STATE
|
|
65
65
|
* For complex flows with branching, build the state machine manually instead
|
|
66
66
|
*/
|
|
67
67
|
steps?: TransitionSpec<unknown, TExtracted>[];
|
|
68
|
+
/**
|
|
69
|
+
* Configure the initial state (optional)
|
|
70
|
+
* Accepts full TransitionSpec configuration (id, chatState, gather, skipIf, etc.)
|
|
71
|
+
* Note: toolState and state properties are ignored for initial state
|
|
72
|
+
*/
|
|
73
|
+
initialState?: Omit<TransitionSpec<unknown, TExtracted>, "toolState" | "state" | "condition">;
|
|
68
74
|
}
|
|
69
75
|
/**
|
|
70
76
|
* Specification for a state transition
|
|
@@ -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,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;
|
|
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;IAC9C;;;;OAIG;IACH,YAAY,CAAC,EAAE,IAAI,CACjB,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,EACnC,WAAW,GAAG,OAAO,GAAG,WAAW,CACpC,CAAC;CACH;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"}
|
package/dist/types/session.d.ts
CHANGED
|
@@ -20,8 +20,17 @@ export interface SessionState<TExtracted = Record<string, unknown>> {
|
|
|
20
20
|
description?: string;
|
|
21
21
|
enteredAt: Date;
|
|
22
22
|
};
|
|
23
|
-
/**
|
|
24
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Data extracted during the current route
|
|
25
|
+
* This is a convenience reference to extractedByRoute[currentRoute.id]
|
|
26
|
+
*/
|
|
27
|
+
extracted?: Partial<TExtracted>;
|
|
28
|
+
/**
|
|
29
|
+
* Extracted data organized by route ID
|
|
30
|
+
* Preserves data when switching between routes
|
|
31
|
+
* Format: { "routeId": { ...extractedData } }
|
|
32
|
+
*/
|
|
33
|
+
extractedByRoute?: Record<string, Partial<unknown>>;
|
|
25
34
|
/** History of routes visited in this session */
|
|
26
35
|
routeHistory: Array<{
|
|
27
36
|
routeId: string;
|
|
@@ -44,6 +53,7 @@ export interface SessionState<TExtracted = Record<string, unknown>> {
|
|
|
44
53
|
export declare function createSession<TExtracted = Record<string, unknown>>(sessionId?: string, metadata?: SessionState<TExtracted>["metadata"]): SessionState<TExtracted>;
|
|
45
54
|
/**
|
|
46
55
|
* Helper to update session with new route
|
|
56
|
+
* Preserves extracted data per route in extractedByRoute map
|
|
47
57
|
*/
|
|
48
58
|
export declare function enterRoute<TExtracted = Record<string, unknown>>(session: SessionState<TExtracted>, routeId: string, routeTitle: string): SessionState<TExtracted>;
|
|
49
59
|
/**
|
|
@@ -52,6 +62,7 @@ export declare function enterRoute<TExtracted = Record<string, unknown>>(session
|
|
|
52
62
|
export declare function enterState<TExtracted = Record<string, unknown>>(session: SessionState<TExtracted>, stateId: string, stateDescription?: string): SessionState<TExtracted>;
|
|
53
63
|
/**
|
|
54
64
|
* Helper to merge extracted data into session
|
|
65
|
+
* Updates both the extracted field and the extractedByRoute map
|
|
55
66
|
*/
|
|
56
67
|
export declare function mergeExtracted<TExtracted = Record<string, unknown>>(session: SessionState<TExtracted>, extracted: Partial<TExtracted>): SessionState<TExtracted>;
|
|
57
68
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,MAAM,WAAW,YAAY,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAChE,yDAAyD;IACzD,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,2CAA2C;IAC3C,YAAY,CAAC,EAAE;QACb,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,IAAI,CAAC;KACjB,CAAC;IAEF,qCAAqC;IACrC,YAAY,CAAC,EAAE;QACb,EAAE,EAAE,MAAM,CAAC;QACX,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,IAAI,CAAC;KACjB,CAAC;IAEF
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"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"}
|
package/dist/types/session.js
CHANGED
|
@@ -10,6 +10,7 @@ export function createSession(sessionId, metadata) {
|
|
|
10
10
|
return {
|
|
11
11
|
id: sessionId,
|
|
12
12
|
extracted: {},
|
|
13
|
+
extractedByRoute: {},
|
|
13
14
|
routeHistory: [],
|
|
14
15
|
metadata: {
|
|
15
16
|
...metadata,
|
|
@@ -20,8 +21,16 @@ export function createSession(sessionId, metadata) {
|
|
|
20
21
|
}
|
|
21
22
|
/**
|
|
22
23
|
* Helper to update session with new route
|
|
24
|
+
* Preserves extracted data per route in extractedByRoute map
|
|
23
25
|
*/
|
|
24
26
|
export function enterRoute(session, routeId, routeTitle) {
|
|
27
|
+
// Save current route's extracted data before switching
|
|
28
|
+
const extractedByRoute = { ...session.extractedByRoute };
|
|
29
|
+
if (session.currentRoute &&
|
|
30
|
+
session.extracted &&
|
|
31
|
+
Object.keys(session.extracted).length > 0) {
|
|
32
|
+
extractedByRoute[session.currentRoute.id] = session.extracted;
|
|
33
|
+
}
|
|
25
34
|
// Exit current route if exists
|
|
26
35
|
const routeHistory = [...session.routeHistory];
|
|
27
36
|
if (session.currentRoute) {
|
|
@@ -30,6 +39,8 @@ export function enterRoute(session, routeId, routeTitle) {
|
|
|
30
39
|
routeHistory[lastRouteIndex].exitedAt = new Date();
|
|
31
40
|
}
|
|
32
41
|
}
|
|
42
|
+
// Load extracted data for new route (if resuming) or start fresh
|
|
43
|
+
const newExtracted = extractedByRoute[routeId] || {};
|
|
33
44
|
// Enter new route
|
|
34
45
|
const now = new Date();
|
|
35
46
|
return {
|
|
@@ -40,7 +51,8 @@ export function enterRoute(session, routeId, routeTitle) {
|
|
|
40
51
|
enteredAt: now,
|
|
41
52
|
},
|
|
42
53
|
currentState: undefined,
|
|
43
|
-
extracted:
|
|
54
|
+
extracted: newExtracted, // Load route's data or start fresh
|
|
55
|
+
extractedByRoute,
|
|
44
56
|
routeHistory: [
|
|
45
57
|
...routeHistory,
|
|
46
58
|
{
|
|
@@ -74,14 +86,22 @@ export function enterState(session, stateId, stateDescription) {
|
|
|
74
86
|
}
|
|
75
87
|
/**
|
|
76
88
|
* Helper to merge extracted data into session
|
|
89
|
+
* Updates both the extracted field and the extractedByRoute map
|
|
77
90
|
*/
|
|
78
91
|
export function mergeExtracted(session, extracted) {
|
|
92
|
+
const newExtracted = {
|
|
93
|
+
...session.extracted,
|
|
94
|
+
...extracted,
|
|
95
|
+
};
|
|
96
|
+
// Also update the extractedByRoute map for the current route
|
|
97
|
+
const extractedByRoute = { ...session.extractedByRoute };
|
|
98
|
+
if (session.currentRoute) {
|
|
99
|
+
extractedByRoute[session.currentRoute.id] = newExtracted;
|
|
100
|
+
}
|
|
79
101
|
return {
|
|
80
102
|
...session,
|
|
81
|
-
extracted:
|
|
82
|
-
|
|
83
|
-
...extracted,
|
|
84
|
-
},
|
|
103
|
+
extracted: newExtracted,
|
|
104
|
+
extractedByRoute,
|
|
85
105
|
metadata: {
|
|
86
106
|
...session.metadata,
|
|
87
107
|
lastUpdatedAt: new Date(),
|
|
@@ -98,6 +118,7 @@ export function sessionStateToData(session) {
|
|
|
98
118
|
currentState: session.currentState?.id,
|
|
99
119
|
collectedData: {
|
|
100
120
|
extracted: session.extracted,
|
|
121
|
+
extractedByRoute: session.extractedByRoute, // Include per-route data
|
|
101
122
|
routeHistory: session.routeHistory,
|
|
102
123
|
currentRouteTitle: session.currentRoute?.title,
|
|
103
124
|
currentStateDescription: session.currentState?.description,
|
|
@@ -130,6 +151,8 @@ export function sessionDataToState(sessionId, data) {
|
|
|
130
151
|
}
|
|
131
152
|
: undefined,
|
|
132
153
|
extracted: collectedData.extracted || {},
|
|
154
|
+
extractedByRoute: collectedData.extractedByRoute ||
|
|
155
|
+
{}, // Restore per-route data
|
|
133
156
|
routeHistory: collectedData.routeHistory ||
|
|
134
157
|
[],
|
|
135
158
|
metadata: collectedData.metadata || {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,UAAU,CAAC;AAE3B,oBAAY,WAAW;IACrB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAUD,eAAO,MAAM,MAAM,gBAAM,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import log from "loglevel";
|
|
2
|
+
export var LoggerLevel;
|
|
3
|
+
(function (LoggerLevel) {
|
|
4
|
+
LoggerLevel["DEBUG"] = "debug";
|
|
5
|
+
LoggerLevel["INFO"] = "info";
|
|
6
|
+
LoggerLevel["WARN"] = "warn";
|
|
7
|
+
LoggerLevel["ERROR"] = "error";
|
|
8
|
+
LoggerLevel["SILENT"] = "silent";
|
|
9
|
+
})(LoggerLevel || (LoggerLevel = {}));
|
|
10
|
+
/**
|
|
11
|
+
* Default log level
|
|
12
|
+
*/
|
|
13
|
+
const DEFAULT_LOG_LEVEL = LoggerLevel.SILENT;
|
|
14
|
+
// Initialize logger
|
|
15
|
+
log.setLevel(DEFAULT_LOG_LEVEL);
|
|
16
|
+
export const logger = log;
|
|
17
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,UAAU,CAAC;AAE3B,MAAM,CAAN,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,gCAAiB,CAAA;AACnB,CAAC,EANW,WAAW,KAAX,WAAW,QAMtB;AAED;;GAEG;AACH,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAM,CAAC;AAE7C,oBAAoB;AACpB,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAEhC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Agent Configuration Guide
|
|
2
2
|
|
|
3
3
|
## Overview
|
|
4
4
|
|
|
@@ -7,11 +7,11 @@ The `@falai/agent` framework supports **two complementary patterns** for configu
|
|
|
7
7
|
1. **Declarative** - Pass arrays/objects in constructors (great for static configs)
|
|
8
8
|
2. **Fluent/Programmatic** - Chain methods to build dynamically (great for runtime logic)
|
|
9
9
|
|
|
10
|
-
You can **mix both patterns** - initialize with
|
|
10
|
+
You can **mix both patterns** - initialize with agent, then add more dynamically!
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
-
## 📦 Agent
|
|
14
|
+
## 📦 Agent Agent
|
|
15
15
|
|
|
16
16
|
```typescript
|
|
17
17
|
interface AgentOptions<TContext = unknown> {
|
|
@@ -24,6 +24,9 @@ interface AgentOptions<TContext = unknown> {
|
|
|
24
24
|
goal?: string;
|
|
25
25
|
context?: TContext;
|
|
26
26
|
|
|
27
|
+
// Optional current session for convenience methods
|
|
28
|
+
session?: SessionState;
|
|
29
|
+
|
|
27
30
|
// Context provider for always-fresh context
|
|
28
31
|
contextProvider?: () => Promise<TContext> | TContext;
|
|
29
32
|
|
|
@@ -74,6 +77,11 @@ const agent = new Agent<FlightBookingContext>({
|
|
|
74
77
|
availableFlights: [],
|
|
75
78
|
},
|
|
76
79
|
|
|
80
|
+
// Optional: Set initial session for convenience methods
|
|
81
|
+
session: createSession<FlightData>({
|
|
82
|
+
extracted: { destination: 'Paris' }, // Pre-populate with known data
|
|
83
|
+
}),
|
|
84
|
+
|
|
77
85
|
// Enhanced lifecycle hooks
|
|
78
86
|
hooks: {
|
|
79
87
|
// Refresh context before each response
|
|
@@ -141,24 +149,87 @@ const agent = new Agent<FlightBookingContext>({
|
|
|
141
149
|
enabled: true,
|
|
142
150
|
},
|
|
143
151
|
],
|
|
144
|
-
],
|
|
145
152
|
|
|
146
153
|
capabilities: [
|
|
147
154
|
{ title: 'Ticket Management', description: 'Create and track tickets' },
|
|
148
155
|
],
|
|
149
156
|
});
|
|
150
157
|
|
|
151
|
-
// Use
|
|
158
|
+
// Option 1: Use session passed to respond (traditional)
|
|
152
159
|
let session = createSession<FlightData>();
|
|
153
160
|
const response = await agent.respond({ history, session });
|
|
154
161
|
console.log(response.session?.extracted); // Extracted flight data
|
|
162
|
+
|
|
163
|
+
// Option 2: Use session set in constructor (convenience methods)
|
|
164
|
+
// Since we set session in constructor, no need to pass it!
|
|
165
|
+
const response2 = await agent.respond({ history });
|
|
166
|
+
console.log(agent.getExtractedData()); // Uses constructor session
|
|
167
|
+
|
|
168
|
+
// Option 3: Override session for specific calls
|
|
169
|
+
const customSession = createSession<FlightData>({ extracted: { destination: 'Tokyo' } });
|
|
170
|
+
const response3 = await agent.respond({ history, session: customSession });
|
|
171
|
+
console.log(response3.session?.extracted); // Uses custom session
|
|
155
172
|
```
|
|
156
173
|
|
|
157
174
|
````
|
|
158
175
|
|
|
159
176
|
---
|
|
160
177
|
|
|
161
|
-
##
|
|
178
|
+
## 💾 Session Management
|
|
179
|
+
|
|
180
|
+
The agent supports flexible session management for conversation state tracking:
|
|
181
|
+
|
|
182
|
+
### Constructor Session (Optional)
|
|
183
|
+
|
|
184
|
+
Set an initial session in the constructor for convenience:
|
|
185
|
+
|
|
186
|
+
```typescript
|
|
187
|
+
const agent = new Agent({
|
|
188
|
+
name: 'Bot',
|
|
189
|
+
ai: provider,
|
|
190
|
+
session: createSession<MyData>({
|
|
191
|
+
extracted: { name: 'John' }, // Pre-populate data
|
|
192
|
+
}),
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
// Use convenience methods without passing session
|
|
196
|
+
const response = await agent.respond({ history });
|
|
197
|
+
const data = agent.getExtractedData(); // Uses constructor session
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Runtime Session Management
|
|
201
|
+
|
|
202
|
+
```typescript
|
|
203
|
+
// Set session for convenience methods
|
|
204
|
+
agent.setCurrentSession(session);
|
|
205
|
+
|
|
206
|
+
// Use without passing session parameter
|
|
207
|
+
const extracted = agent.getExtractedData();
|
|
208
|
+
const routeData = agent.getExtractedData('onboarding');
|
|
209
|
+
|
|
210
|
+
// Override for specific calls
|
|
211
|
+
const response = await agent.respond({ history, session: customSession });
|
|
212
|
+
|
|
213
|
+
// Clear when done
|
|
214
|
+
agent.clearCurrentSession();
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### Session Preservation
|
|
218
|
+
|
|
219
|
+
When switching routes, extracted data is preserved in `extractedByRoute`:
|
|
220
|
+
|
|
221
|
+
```typescript
|
|
222
|
+
// User switches from onboarding to booking
|
|
223
|
+
const response = await agent.respond({ history }); // Switches routes
|
|
224
|
+
|
|
225
|
+
// Access data from previous routes
|
|
226
|
+
const onboardingData = agent.getExtractedData('onboarding');
|
|
227
|
+
const bookingData = agent.getExtractedData('booking');
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## 🛤️ Route Agent
|
|
162
233
|
|
|
163
234
|
```typescript
|
|
164
235
|
interface RouteOptions<TExtracted = unknown> {
|
|
@@ -375,7 +446,7 @@ const agent = new Agent({
|
|
|
375
446
|
|
|
376
447
|
## 🔄 Fluent API (Still Available!)
|
|
377
448
|
|
|
378
|
-
All
|
|
449
|
+
All agents also have fluent methods that **return `this`** for chaining:
|
|
379
450
|
|
|
380
451
|
```typescript
|
|
381
452
|
agent
|
|
@@ -449,6 +520,7 @@ const agent = new Agent<MyContext>({
|
|
|
449
520
|
goal?: string,
|
|
450
521
|
ai: AiProvider,
|
|
451
522
|
context?: MyContext,
|
|
523
|
+
session?: SessionState, // Optional current session
|
|
452
524
|
maxEngineIterations?: number,
|
|
453
525
|
compositionMode?: CompositionMode,
|
|
454
526
|
terms?: Term[],
|