@falai/agent 1.1.0 ā 1.1.2
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/adapters/MemoryAdapter.d.ts.map +1 -1
- package/dist/adapters/MemoryAdapter.js +2 -1
- package/dist/adapters/MemoryAdapter.js.map +1 -1
- package/dist/adapters/MongoAdapter.d.ts.map +1 -1
- package/dist/adapters/MongoAdapter.js +2 -1
- package/dist/adapters/MongoAdapter.js.map +1 -1
- package/dist/adapters/OpenSearchAdapter.d.ts.map +1 -1
- package/dist/adapters/OpenSearchAdapter.js +2 -1
- package/dist/adapters/OpenSearchAdapter.js.map +1 -1
- package/dist/adapters/PostgreSQLAdapter.d.ts.map +1 -1
- package/dist/adapters/PostgreSQLAdapter.js +2 -1
- package/dist/adapters/PostgreSQLAdapter.js.map +1 -1
- package/dist/adapters/PrismaAdapter.d.ts.map +1 -1
- package/dist/adapters/PrismaAdapter.js +2 -1
- package/dist/adapters/PrismaAdapter.js.map +1 -1
- package/dist/adapters/RedisAdapter.d.ts.map +1 -1
- package/dist/adapters/RedisAdapter.js.map +1 -1
- package/dist/adapters/SQLiteAdapter.d.ts.map +1 -1
- package/dist/adapters/SQLiteAdapter.js.map +1 -1
- package/dist/cjs/adapters/MemoryAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/MemoryAdapter.js +2 -1
- package/dist/cjs/adapters/MemoryAdapter.js.map +1 -1
- package/dist/cjs/adapters/MongoAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/MongoAdapter.js +2 -1
- package/dist/cjs/adapters/MongoAdapter.js.map +1 -1
- package/dist/cjs/adapters/OpenSearchAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/OpenSearchAdapter.js +2 -1
- package/dist/cjs/adapters/OpenSearchAdapter.js.map +1 -1
- package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/PostgreSQLAdapter.js +2 -1
- package/dist/cjs/adapters/PostgreSQLAdapter.js.map +1 -1
- package/dist/cjs/adapters/PrismaAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/PrismaAdapter.js +2 -1
- package/dist/cjs/adapters/PrismaAdapter.js.map +1 -1
- package/dist/cjs/adapters/RedisAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/RedisAdapter.js.map +1 -1
- package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/SQLiteAdapter.js.map +1 -1
- package/dist/cjs/core/Agent.d.ts +202 -67
- package/dist/cjs/core/Agent.d.ts.map +1 -1
- package/dist/cjs/core/Agent.js +366 -158
- package/dist/cjs/core/Agent.js.map +1 -1
- package/dist/cjs/core/BatchExecutor.js +5 -6
- package/dist/cjs/core/BatchExecutor.js.map +1 -1
- package/dist/cjs/core/BatchPromptBuilder.d.ts.map +1 -1
- package/dist/cjs/core/BatchPromptBuilder.js +5 -2
- package/dist/cjs/core/BatchPromptBuilder.js.map +1 -1
- package/dist/cjs/core/ResponseEngine.d.ts.map +1 -1
- package/dist/cjs/core/ResponseEngine.js +6 -3
- package/dist/cjs/core/ResponseEngine.js.map +1 -1
- package/dist/cjs/core/ResponseModal.d.ts.map +1 -1
- package/dist/cjs/core/ResponseModal.js +18 -17
- package/dist/cjs/core/ResponseModal.js.map +1 -1
- package/dist/cjs/core/RoutingEngine.d.ts.map +1 -1
- package/dist/cjs/core/RoutingEngine.js +8 -73
- package/dist/cjs/core/RoutingEngine.js.map +1 -1
- package/dist/cjs/core/SessionManager.d.ts.map +1 -1
- package/dist/cjs/core/SessionManager.js +4 -11
- package/dist/cjs/core/SessionManager.js.map +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/utils/session.d.ts +6 -0
- package/dist/cjs/utils/session.d.ts.map +1 -1
- package/dist/cjs/utils/session.js +26 -8
- package/dist/cjs/utils/session.js.map +1 -1
- package/dist/core/Agent.d.ts +202 -67
- package/dist/core/Agent.d.ts.map +1 -1
- package/dist/core/Agent.js +366 -158
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/BatchExecutor.js +6 -7
- package/dist/core/BatchExecutor.js.map +1 -1
- package/dist/core/BatchPromptBuilder.d.ts.map +1 -1
- package/dist/core/BatchPromptBuilder.js +5 -2
- package/dist/core/BatchPromptBuilder.js.map +1 -1
- package/dist/core/ResponseEngine.d.ts.map +1 -1
- package/dist/core/ResponseEngine.js +6 -3
- package/dist/core/ResponseEngine.js.map +1 -1
- package/dist/core/ResponseModal.d.ts.map +1 -1
- package/dist/core/ResponseModal.js +18 -17
- package/dist/core/ResponseModal.js.map +1 -1
- package/dist/core/RoutingEngine.d.ts.map +1 -1
- package/dist/core/RoutingEngine.js +8 -73
- package/dist/core/RoutingEngine.js.map +1 -1
- package/dist/core/SessionManager.d.ts.map +1 -1
- package/dist/core/SessionManager.js +4 -11
- package/dist/core/SessionManager.js.map +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/utils/session.d.ts +6 -0
- package/dist/utils/session.d.ts.map +1 -1
- package/dist/utils/session.js +26 -8
- package/dist/utils/session.js.map +1 -1
- package/docs/api/README.md +33 -4
- package/docs/api/overview.md +9 -5
- package/docs/architecture/data-extraction-flow.md +17 -19
- package/docs/core/conversation-flows/data-collection.md +9 -3
- package/docs/core/conversation-flows/route-dsl.md +8 -1
- package/docs/core/error-handling.md +3 -4
- package/docs/core/persistence/session-storage.md +12 -0
- package/examples/integrations/database-integration.ts +10 -9
- package/examples/persistence/custom-adapter.ts +12 -15
- package/package.json +2 -2
- package/src/adapters/MemoryAdapter.ts +6 -8
- package/src/adapters/MongoAdapter.ts +6 -8
- package/src/adapters/OpenSearchAdapter.ts +6 -8
- package/src/adapters/PostgreSQLAdapter.ts +6 -8
- package/src/adapters/PrismaAdapter.ts +4 -6
- package/src/adapters/RedisAdapter.ts +4 -7
- package/src/adapters/SQLiteAdapter.ts +6 -9
- package/src/core/Agent.ts +427 -195
- package/src/core/BatchExecutor.ts +129 -129
- package/src/core/BatchPromptBuilder.ts +41 -38
- package/src/core/ResponseEngine.ts +56 -53
- package/src/core/ResponseModal.ts +79 -81
- package/src/core/RoutingEngine.ts +67 -149
- package/src/core/SessionManager.ts +4 -13
- package/src/index.ts +11 -11
- package/src/utils/session.ts +48 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionManager.js","sourceRoot":"","sources":["../../src/core/SessionManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"SessionManager.js","sourceRoot":"","sources":["../../src/core/SessionManager.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -42,5 +42,5 @@ export { ConditionEvaluator, createConditionEvaluator, extractAIContextStrings,
|
|
|
42
42
|
export { normalizeHistory, historyItemToEvent, historyToEvents, eventToHistoryItem, eventsToHistory, userMessage, assistantMessage, toolMessage, systemMessage, } from "./utils/history";
|
|
43
43
|
export type { AgentOptions, AgentResponse, Term, Guideline, GuidelineMatch, ContextLifecycleHooks, ContextProvider, Event, EmittedEvent, MessageEventData, ToolEventData, StatusEventData, Participant, RouteRef, StepRef, RouteOptions, StepOptions, RouteTransitionConfig, RouteCompletionHandler, SessionState, PendingTransition, ToolContext, ToolResult, ToolHandler, Tool, DataEnrichmentConfig, ValidationConfig, ValidationError, ApiCallConfig, ComputationConfig, ToolScope, AiProvider, GenerateMessageInput, GenerateMessageOutput, AgentStructuredResponse, ReasoningConfig, StructuredSchema, SessionData, MessageData, CollectedStateData, SessionStatus, SessionRepository, MessageRepository, PersistenceConfig, CreateSessionOptions, SaveMessageOptions, AgentResponseStreamChunk, Role, HistoryItem, History, PersistenceAdapter, Template, TemplateContext, ConditionTemplate, ConditionEvaluationResult, UserHistoryItem, AssistantHistoryItem, ToolHistoryItem, SystemHistoryItem, StoppedReason, BatchResult, BatchExecutionResult, BatchExecutionEvent, BatchExecutionEventType, BatchExecutionTiming, BatchExecutionError, } from "./types";
|
|
44
44
|
export { CompositionMode, EventKind, MessageRole } from "./types";
|
|
45
|
-
export { createSession, enterRoute, enterStep, mergeCollected } from "./utils";
|
|
45
|
+
export { createSession, createSessionId, enterRoute, enterStep, mergeCollected } from "./utils";
|
|
46
46
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -35,5 +35,5 @@ export { formatKnowledgeBase } from "./utils/template";
|
|
|
35
35
|
export { ConditionEvaluator, createConditionEvaluator, extractAIContextStrings, hasProgrammaticConditions } from "./utils/condition";
|
|
36
36
|
export { normalizeHistory, historyItemToEvent, historyToEvents, eventToHistoryItem, eventsToHistory, userMessage, assistantMessage, toolMessage, systemMessage, } from "./utils/history";
|
|
37
37
|
export { CompositionMode, EventKind, MessageRole } from "./types";
|
|
38
|
-
export { createSession, enterRoute, enterStep, mergeCollected } from "./utils";
|
|
38
|
+
export { createSession, createSessionId, enterRoute, enterStep, mergeCollected } from "./utils";
|
|
39
39
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO;AACP,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAOrD,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,UAAU,EAAkD,MAAM,sBAAsB,CAAC;AACjH,OAAO,EAAE,kBAAkB,EAAuD,MAAM,2BAA2B,CAAC;AAEpH,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,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,aAAa,GACd,MAAM,iBAAiB,CAAC;AAyEzB,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,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,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAOrD,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,UAAU,EAAkD,MAAM,sBAAsB,CAAC;AACjH,OAAO,EAAE,kBAAkB,EAAuD,MAAM,2BAA2B,CAAC;AAEpH,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,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,aAAa,GACd,MAAM,iBAAiB,CAAC;AAyEzB,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/utils/session.d.ts
CHANGED
|
@@ -2,10 +2,16 @@ import type { SessionState } from "../types/session";
|
|
|
2
2
|
import type { CollectedStateData } from "../types/persistence";
|
|
3
3
|
/**
|
|
4
4
|
* Helper to create a new session
|
|
5
|
+
*
|
|
6
|
+
* Overload 1: Create with optional sessionId and metadata
|
|
5
7
|
* @param sessionId - Optional session ID (e.g., from database)
|
|
6
8
|
* @param metadata - Optional metadata to attach
|
|
9
|
+
*
|
|
10
|
+
* Overload 2: Create from a partial session state (merged with defaults)
|
|
11
|
+
* @param state - Partial session state to merge with defaults
|
|
7
12
|
*/
|
|
8
13
|
export declare function createSession<TData = Record<string, unknown>>(sessionId?: string, metadata?: SessionState<TData>["metadata"]): SessionState<TData>;
|
|
14
|
+
export declare function createSession<TData = Record<string, unknown>>(state: Partial<SessionState<TData>>): SessionState<TData>;
|
|
9
15
|
/**
|
|
10
16
|
* Helper to create a new session ID
|
|
11
17
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GACzC,YAAY,CAAC,KAAK,CAAC,CAAC;AACvB,wBAAgB,aAAa,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GAClC,YAAY,CAAC,KAAK,CAAC,CAAC;AA8CvB;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AACD;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAChC,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,GAC3B,YAAY,CAAC,KAAK,CAAC,CAErB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxD,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,EAC5B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,YAAY,CAAC,KAAK,CAAC,CAoCrB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvD,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,EAC5B,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,MAAM,GACvB,YAAY,CAAC,KAAK,CAAC,CAarB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5D,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,EAC5B,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GACrB,YAAY,CAAC,KAAK,CAAC,CAcrB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,GAC3B;IACD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;CAC1C,CAaA;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;IACJ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;CAC3C,GACA,YAAY,CAAC,KAAK,CAAC,CA+BrB"}
|
package/dist/utils/session.js
CHANGED
|
@@ -1,14 +1,32 @@
|
|
|
1
1
|
import { cloneDeep } from "./clone";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
export function createSession(sessionIdOrState, metadata) {
|
|
3
|
+
// Overload 2: partial state object
|
|
4
|
+
if (typeof sessionIdOrState === "object" && sessionIdOrState !== null) {
|
|
5
|
+
const state = sessionIdOrState;
|
|
6
|
+
const now = new Date();
|
|
7
|
+
const id = state.id ||
|
|
8
|
+
`session_${Date.now()}_${Math.random().toString(36).slice(2)}`;
|
|
9
|
+
return {
|
|
10
|
+
id,
|
|
11
|
+
data: state.data ?? {},
|
|
12
|
+
routeHistory: state.routeHistory ?? [],
|
|
13
|
+
currentRoute: state.currentRoute,
|
|
14
|
+
currentStep: state.currentStep,
|
|
15
|
+
pendingTransition: state.pendingTransition,
|
|
16
|
+
history: state.history,
|
|
17
|
+
metadata: {
|
|
18
|
+
createdAt: now,
|
|
19
|
+
lastUpdatedAt: now,
|
|
20
|
+
...state.metadata,
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
// Overload 1: sessionId + metadata
|
|
25
|
+
const id = sessionIdOrState ||
|
|
26
|
+
`session_${Date.now()}_${Math.random().toString(36).slice(2)}`;
|
|
9
27
|
return {
|
|
10
28
|
id,
|
|
11
|
-
data: {},
|
|
29
|
+
data: {},
|
|
12
30
|
routeHistory: [],
|
|
13
31
|
metadata: {
|
|
14
32
|
...metadata,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"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"}
|
package/docs/api/README.md
CHANGED
|
@@ -449,7 +449,7 @@ interface RespondOutput {
|
|
|
449
449
|
}>;
|
|
450
450
|
/**
|
|
451
451
|
* NEW: Indicates if the current route has reached END_ROUTE
|
|
452
|
-
* When true,
|
|
452
|
+
* When true, the step flow has reached its end and the route is complete.
|
|
453
453
|
* Your application should handle this appropriately (e.g., process collected data,
|
|
454
454
|
* show completion UI, start a new route, etc.)
|
|
455
455
|
*/
|
|
@@ -657,7 +657,7 @@ interface StreamChunk {
|
|
|
657
657
|
}>;
|
|
658
658
|
/**
|
|
659
659
|
* Indicates if the current route has reached END_ROUTE (only in final chunk)
|
|
660
|
-
* When true,
|
|
660
|
+
* When true, the step flow has reached its end and the route is complete.
|
|
661
661
|
*/
|
|
662
662
|
isRouteComplete?: boolean;
|
|
663
663
|
}
|
|
@@ -2856,14 +2856,19 @@ console.log(response.session?.data.destination); // Type-safe!
|
|
|
2856
2856
|
### Session Helper Functions
|
|
2857
2857
|
|
|
2858
2858
|
#### `createSession<TData>(sessionId?, metadata?): SessionState<TData>`
|
|
2859
|
+
#### `createSession<TData>(state: Partial<SessionState<TData>>): SessionState<TData>`
|
|
2859
2860
|
|
|
2860
|
-
Creates a new session
|
|
2861
|
+
Creates a new session state object. Supports two overloaded signatures:
|
|
2861
2862
|
|
|
2862
|
-
**
|
|
2863
|
+
**Signature 1 ā ID + metadata (original):**
|
|
2863
2864
|
|
|
2864
2865
|
- `sessionId` (optional): Unique session identifier from database
|
|
2865
2866
|
- `metadata` (optional): Additional metadata to attach
|
|
2866
2867
|
|
|
2868
|
+
**Signature 2 ā Partial state (new):**
|
|
2869
|
+
|
|
2870
|
+
- `state`: A `Partial<SessionState<TData>>` object that is merged with sensible defaults (auto-generated `id`, empty `data`, empty `routeHistory`, and timestamped `metadata`)
|
|
2871
|
+
|
|
2867
2872
|
**Example:**
|
|
2868
2873
|
|
|
2869
2874
|
```typescript
|
|
@@ -2878,6 +2883,30 @@ const session = createSession<OnboardingData>("session_123", {
|
|
|
2878
2883
|
userId: "user_456",
|
|
2879
2884
|
channel: "whatsapp",
|
|
2880
2885
|
});
|
|
2886
|
+
|
|
2887
|
+
// NEW: From partial state ā pre-populate any fields
|
|
2888
|
+
const session = createSession<OnboardingData>({
|
|
2889
|
+
id: "session_123",
|
|
2890
|
+
data: { fullName: "Alice" },
|
|
2891
|
+
history: previousHistory,
|
|
2892
|
+
currentRoute: { id: "onboarding", title: "Onboarding" },
|
|
2893
|
+
});
|
|
2894
|
+
|
|
2895
|
+
// NEW: Minimal partial ā only override what you need
|
|
2896
|
+
const session = createSession<OnboardingData>({
|
|
2897
|
+
history: restoredHistory,
|
|
2898
|
+
});
|
|
2899
|
+
```
|
|
2900
|
+
|
|
2901
|
+
#### `createSessionId(): string`
|
|
2902
|
+
|
|
2903
|
+
Generates a unique session ID string in the format `session_{timestamp}_{random}`. Use this when you need to generate an ID without creating a full session object.
|
|
2904
|
+
|
|
2905
|
+
**Example:**
|
|
2906
|
+
|
|
2907
|
+
```typescript
|
|
2908
|
+
const id = createSessionId();
|
|
2909
|
+
// e.g. "session_1709388025123_k8f2m9x"
|
|
2881
2910
|
```
|
|
2882
2911
|
|
|
2883
2912
|
#### `enterRoute<TData>(session, routeId, routeTitle): SessionState<TData>`
|
package/docs/api/overview.md
CHANGED
|
@@ -317,7 +317,7 @@ getAllSteps(): Step<TContext, TData>[]
|
|
|
317
317
|
isComplete(data: Partial<TData>): boolean
|
|
318
318
|
```
|
|
319
319
|
|
|
320
|
-
Checks if
|
|
320
|
+
Checks if all required fields are collected based on agent-level data.
|
|
321
321
|
|
|
322
322
|
```typescript
|
|
323
323
|
getMissingRequiredFields(data: Partial<TData>): (keyof TData)[]
|
|
@@ -1110,10 +1110,14 @@ interface GenerateMessageInput<TContext = unknown> {
|
|
|
1110
1110
|
### Session Utilities
|
|
1111
1111
|
|
|
1112
1112
|
```typescript
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1113
|
+
// Overload 1: Classic ā ID + metadata
|
|
1114
|
+
createSession<TData = unknown>(sessionId?: string, metadata?: SessionMetadata): SessionState<TData>
|
|
1115
|
+
|
|
1116
|
+
// Overload 2: Partial state ā merge with defaults
|
|
1117
|
+
createSession<TData = unknown>(state: Partial<SessionState<TData>>): SessionState<TData>
|
|
1118
|
+
|
|
1119
|
+
// Generate a unique session ID without creating a full session
|
|
1120
|
+
createSessionId(): string
|
|
1117
1121
|
|
|
1118
1122
|
enterRoute<TData>(
|
|
1119
1123
|
session: SessionState<TData>,
|
|
@@ -43,9 +43,9 @@ When a user message arrives:
|
|
|
43
43
|
}
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
### Phase 2:
|
|
46
|
+
### Phase 2: Step Skipping
|
|
47
47
|
|
|
48
|
-
After pre-extraction, the system
|
|
48
|
+
After pre-extraction, the system evaluates the route's steps:
|
|
49
49
|
|
|
50
50
|
```typescript
|
|
51
51
|
// Route defines required fields
|
|
@@ -55,11 +55,11 @@ agent.createRoute({
|
|
|
55
55
|
// ...
|
|
56
56
|
});
|
|
57
57
|
|
|
58
|
-
// After pre-extraction, all required fields are present
|
|
59
|
-
//
|
|
58
|
+
// After pre-extraction, all required fields are present.
|
|
59
|
+
// The data is now in the session, which allows steps to be evaluated.
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
-
**Key Insight:** Routes complete
|
|
62
|
+
**Key Insight:** Routes complete by naturally reaching the `END_ROUTE` step. If all required data is pre-extracted, the system will rapidly skip through the data-collection steps and naturally reach the end of the route.
|
|
63
63
|
|
|
64
64
|
### Phase 3: Smart Step Selection
|
|
65
65
|
|
|
@@ -111,8 +111,8 @@ User: "I want to book the Grand Hotel for 2 people next Friday"
|
|
|
111
111
|
System:
|
|
112
112
|
1. Routes to "Book Hotel" (AI scoring)
|
|
113
113
|
2. Pre-extracts: { hotelName: "Grand Hotel", guests: 2, date: "next Friday" }
|
|
114
|
-
3.
|
|
115
|
-
4.
|
|
114
|
+
3. Evaluates steps: All collection steps are skipped (data already present)
|
|
115
|
+
4. Reaches END_ROUTE and generates completion message
|
|
116
116
|
5. Marks route as complete
|
|
117
117
|
|
|
118
118
|
AI: "Perfect! Booking confirmed for 2 guests at Grand Hotel on Friday!"
|
|
@@ -152,8 +152,8 @@ User: "2 people next Friday"
|
|
|
152
152
|
System:
|
|
153
153
|
1. Already in "Book Hotel" route
|
|
154
154
|
2. Pre-extracts: { guests: 2, date: "next Friday" }
|
|
155
|
-
3.
|
|
156
|
-
4.
|
|
155
|
+
3. Evaluates steps: All collection steps are skipped (data already present)
|
|
156
|
+
4. Reaches END_ROUTE and generates completion message
|
|
157
157
|
|
|
158
158
|
AI: "Booking confirmed for 2 guests at Grand Hotel on Friday!"
|
|
159
159
|
```
|
|
@@ -171,10 +171,9 @@ This minimizes unnecessary AI calls for purely conversational routes.
|
|
|
171
171
|
### 2. Route Completion Logic
|
|
172
172
|
|
|
173
173
|
A route is complete when:
|
|
174
|
-
- **
|
|
175
|
-
- **Reached END_ROUTE marker in step flow**
|
|
174
|
+
- **It reaches the END_ROUTE marker in its step flow**
|
|
176
175
|
|
|
177
|
-
|
|
176
|
+
`requiredFields` act as a validation gate. While they must be collected, simply collecting them doesn't instantly end the route; the conversation naturally progresses through any remaining steps (or skips them) until it finishes.
|
|
178
177
|
|
|
179
178
|
### 3. Completed Route Exclusion
|
|
180
179
|
|
|
@@ -273,10 +272,9 @@ agent.createRoute({
|
|
|
273
272
|
title: "Booking",
|
|
274
273
|
requiredFields: ["hotel", "date"],
|
|
275
274
|
optionalFields: ["specialRequests", "dietaryRestrictions"],
|
|
276
|
-
|
|
277
|
-
//
|
|
278
|
-
//
|
|
279
|
-
// But won't block completion
|
|
275
|
+
// Route completes when it naturally reaches END_ROUTE
|
|
276
|
+
// Optional fields can be collected if user provides them,
|
|
277
|
+
// but they won't block steps from progressing.
|
|
280
278
|
});
|
|
281
279
|
```
|
|
282
280
|
|
|
@@ -340,8 +338,8 @@ Look for these log messages:
|
|
|
340
338
|
```
|
|
341
339
|
[ResponseModal] Pre-extracting data for route: Book Hotel
|
|
342
340
|
[ResponseModal] Pre-extracted data: { hotelName: "Grand Hotel", ... }
|
|
343
|
-
[
|
|
344
|
-
[RoutingEngine] Excluding completed route: Book Hotel
|
|
341
|
+
[RoutingEngine] Route Book Hotel completed - END_ROUTE reached
|
|
342
|
+
[RoutingEngine] Excluding completed route: Book Hotel
|
|
345
343
|
```
|
|
346
344
|
|
|
347
345
|
## Summary
|
|
@@ -350,7 +348,7 @@ The pre-extraction system creates efficient conversations by:
|
|
|
350
348
|
|
|
351
349
|
1. **Extracting data early** - Before entering steps
|
|
352
350
|
2. **Skipping unnecessary steps** - When data is already present
|
|
353
|
-
3. **
|
|
351
|
+
3. **Reaching completion naturally** - By skipping to the end when data is gathered
|
|
354
352
|
4. **Protecting completed routes** - Preventing re-entry
|
|
355
353
|
|
|
356
354
|
This results in natural, efficient conversations that respect user time.
|
|
@@ -8,7 +8,7 @@ The agent-level data collection system provides:
|
|
|
8
8
|
|
|
9
9
|
- **Centralized JSON Schema**: Define comprehensive data structures at the agent level
|
|
10
10
|
- **Cross-Route Data Sharing**: Data collected by any route is available to all routes
|
|
11
|
-
- **Route Completion Logic**: Routes complete when
|
|
11
|
+
- **Route Completion Logic**: Routes complete when step flows reach `END_ROUTE`, with required fields acting as validation gates along the way
|
|
12
12
|
- **Type-Safe Extraction**: Automatic mapping from AI responses to typed data
|
|
13
13
|
- **Natural Conversations**: AI handles information gathering conversationally
|
|
14
14
|
- **Validation & Enrichment**: Agent-level lifecycle hooks for data processing
|
|
@@ -330,7 +330,7 @@ const profileRoute = agent
|
|
|
330
330
|
requires: ["name", "email"],
|
|
331
331
|
});
|
|
332
332
|
|
|
333
|
-
// Route completes when
|
|
333
|
+
// Route completes when the step flow naturally reaches its end
|
|
334
334
|
// Data is available to all other routes
|
|
335
335
|
```
|
|
336
336
|
|
|
@@ -709,8 +709,14 @@ const dynamicRoute = agent
|
|
|
709
709
|
### Testing
|
|
710
710
|
|
|
711
711
|
```typescript
|
|
712
|
-
// Test data collection
|
|
712
|
+
// Test data collection ā classic signature
|
|
713
713
|
const mockSession = createSession();
|
|
714
|
+
|
|
715
|
+
// Or pre-populate fields with the partial state overload
|
|
716
|
+
const prepopulatedSession = createSession({
|
|
717
|
+
data: { name: "Test User", email: "test@example.com" },
|
|
718
|
+
});
|
|
719
|
+
|
|
714
720
|
const testData = {
|
|
715
721
|
name: "Test User",
|
|
716
722
|
email: "test@example.com",
|
|
@@ -481,8 +481,15 @@ const hasRequirements = step.hasRequires(collectedData);
|
|
|
481
481
|
### Route Testing
|
|
482
482
|
|
|
483
483
|
```typescript
|
|
484
|
-
// Simulate route execution
|
|
484
|
+
// Simulate route execution ā classic signature
|
|
485
485
|
const mockSession = createSession();
|
|
486
|
+
|
|
487
|
+
// Or pre-populate with known data using partial state overload
|
|
488
|
+
const prepopSession = createSession({
|
|
489
|
+
data: { name: "Test User" },
|
|
490
|
+
history: [{ role: "user", content: "Hello" }],
|
|
491
|
+
});
|
|
492
|
+
|
|
486
493
|
const mockHistory = [
|
|
487
494
|
{
|
|
488
495
|
role: "user",
|
|
@@ -317,12 +317,11 @@ if (response.isRouteComplete) {
|
|
|
317
317
|
// Route completion with error handling
|
|
318
318
|
const checkRouteCompletion = (route: Route, collectedData: any) => {
|
|
319
319
|
try {
|
|
320
|
-
//
|
|
320
|
+
// Required fields are a prerequisite for completion, not the trigger itself
|
|
321
321
|
const missingFields = route.getMissingRequiredFields(collectedData);
|
|
322
322
|
|
|
323
|
-
if (missingFields.length
|
|
324
|
-
|
|
325
|
-
return { complete: true, reason: "all_data_collected" };
|
|
323
|
+
if (missingFields.length > 0) {
|
|
324
|
+
return { complete: false, missingFields };
|
|
326
325
|
}
|
|
327
326
|
|
|
328
327
|
// Check if route explicitly ended
|
|
@@ -154,12 +154,24 @@ model AgentMessage {
|
|
|
154
154
|
While sessions are managed automatically, you can perform manual operations when needed:
|
|
155
155
|
|
|
156
156
|
```typescript
|
|
157
|
+
import { createSession, createSessionId } from "@falai/agent";
|
|
158
|
+
|
|
157
159
|
// Access session manager directly
|
|
158
160
|
const sessionManager = agent.session;
|
|
159
161
|
|
|
160
162
|
// Create session with specific ID
|
|
161
163
|
await sessionManager.getOrCreate("custom-session-id");
|
|
162
164
|
|
|
165
|
+
// Generate a session ID without creating a session object
|
|
166
|
+
const id = createSessionId();
|
|
167
|
+
|
|
168
|
+
// Create a pre-populated session using the partial state overload
|
|
169
|
+
const restoredSession = createSession<MyDataType>({
|
|
170
|
+
id: "custom-session-id",
|
|
171
|
+
data: { userName: "John" },
|
|
172
|
+
history: previousHistory,
|
|
173
|
+
});
|
|
174
|
+
|
|
163
175
|
// Session data management
|
|
164
176
|
await sessionManager.setData({
|
|
165
177
|
userName: "John",
|
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
SessionState,
|
|
18
18
|
END_ROUTE,
|
|
19
19
|
History,
|
|
20
|
+
createSessionId,
|
|
20
21
|
} from "../../src";
|
|
21
22
|
|
|
22
23
|
/**
|
|
@@ -64,7 +65,7 @@ class CustomDatabase {
|
|
|
64
65
|
data: Omit<CustomDatabaseSession, "id" | "createdAt" | "updatedAt">
|
|
65
66
|
): CustomDatabaseSession {
|
|
66
67
|
const session: CustomDatabaseSession = {
|
|
67
|
-
id:
|
|
68
|
+
id: createSessionId(),
|
|
68
69
|
...data,
|
|
69
70
|
createdAt: new Date(),
|
|
70
71
|
updatedAt: new Date(),
|
|
@@ -266,7 +267,7 @@ async function example() {
|
|
|
266
267
|
* Simulate conversation with automatic sync
|
|
267
268
|
*/
|
|
268
269
|
console.log("\n--- Turn 1 ---");
|
|
269
|
-
|
|
270
|
+
|
|
270
271
|
// Add user message to SessionManager
|
|
271
272
|
await agent.session.addMessage("user", "Hi! I'm John Smith and my email is john@acme.com", "User");
|
|
272
273
|
|
|
@@ -286,7 +287,7 @@ async function example() {
|
|
|
286
287
|
|
|
287
288
|
// Turn 2: User provides company
|
|
288
289
|
console.log("\n--- Turn 2 ---");
|
|
289
|
-
|
|
290
|
+
|
|
290
291
|
await agent.session.addMessage("user", "I work for Acme Corporation", "User");
|
|
291
292
|
|
|
292
293
|
const response2 = await agent.respond({
|
|
@@ -312,7 +313,7 @@ async function example() {
|
|
|
312
313
|
* Demonstrate session recovery with new Agent instance
|
|
313
314
|
*/
|
|
314
315
|
console.log("\n--- Session Recovery (New Agent Instance) ---");
|
|
315
|
-
|
|
316
|
+
|
|
316
317
|
// Create new agent instance (simulating app restart)
|
|
317
318
|
const newAgent = new Agent({
|
|
318
319
|
name: "Onboarding Assistant",
|
|
@@ -360,11 +361,11 @@ async function example() {
|
|
|
360
361
|
|
|
361
362
|
// Continue conversation with recovered session
|
|
362
363
|
await newAgent.session.addMessage("user", "Can you confirm my details?");
|
|
363
|
-
|
|
364
|
+
|
|
364
365
|
const confirmResponse = await newAgent.respond({
|
|
365
366
|
history: newAgent.session.getHistory(),
|
|
366
367
|
});
|
|
367
|
-
|
|
368
|
+
|
|
368
369
|
console.log("š¤ Confirmation:", confirmResponse.message);
|
|
369
370
|
await newAgent.session.addMessage("assistant", confirmResponse.message);
|
|
370
371
|
|
|
@@ -414,7 +415,7 @@ async function syncSessionToDatabase(
|
|
|
414
415
|
/**
|
|
415
416
|
* Mock function to simulate processing the completed onboarding data.
|
|
416
417
|
*/
|
|
417
|
-
async function processOnboarding(data) {
|
|
418
|
+
async function processOnboarding(data: Partial<OnboardingData>) {
|
|
418
419
|
console.log("\nš Processing onboarding data...");
|
|
419
420
|
console.log(
|
|
420
421
|
` - Creating account for ${data?.fullName} at ${data?.companyName}`
|
|
@@ -542,7 +543,7 @@ async function serverEndpointExample() {
|
|
|
542
543
|
});
|
|
543
544
|
|
|
544
545
|
// Load or create session
|
|
545
|
-
const effectiveSessionId = sessionId ||
|
|
546
|
+
const effectiveSessionId = sessionId || createSessionId();
|
|
546
547
|
await agent.session.getOrCreate(effectiveSessionId);
|
|
547
548
|
|
|
548
549
|
// Try to load from database if session exists
|
|
@@ -571,7 +572,7 @@ async function serverEndpointExample() {
|
|
|
571
572
|
|
|
572
573
|
// Add user message and respond
|
|
573
574
|
await agent.session.addMessage("user", message);
|
|
574
|
-
|
|
575
|
+
|
|
575
576
|
const response = await agent.respond({
|
|
576
577
|
history: agent.session.getHistory(),
|
|
577
578
|
});
|
|
@@ -22,7 +22,7 @@ import type {
|
|
|
22
22
|
SessionStatus,
|
|
23
23
|
CollectedStateData,
|
|
24
24
|
} from "../../src/types";
|
|
25
|
-
import { Agent, GeminiProvider } from "../../src";
|
|
25
|
+
import { Agent, GeminiProvider, createSessionId } from "../../src";
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
28
|
* Simple in-memory storage for demonstration
|
|
@@ -40,7 +40,7 @@ class InMemoryStorage {
|
|
|
40
40
|
}
|
|
41
41
|
): SessionData {
|
|
42
42
|
const id =
|
|
43
|
-
data.id ||
|
|
43
|
+
data.id || createSessionId();
|
|
44
44
|
const session: SessionData = {
|
|
45
45
|
...data,
|
|
46
46
|
id,
|
|
@@ -249,9 +249,8 @@ class InMemoryStorage {
|
|
|
249
249
|
* Custom Session Repository implementation
|
|
250
250
|
*/
|
|
251
251
|
class CustomSessionRepository<TData = Record<string, unknown>>
|
|
252
|
-
implements SessionRepository<TData>
|
|
253
|
-
{
|
|
254
|
-
constructor(private storage: InMemoryStorage) {}
|
|
252
|
+
implements SessionRepository<TData> {
|
|
253
|
+
constructor(private storage: InMemoryStorage) { }
|
|
255
254
|
|
|
256
255
|
async create(
|
|
257
256
|
data: Omit<SessionData<TData>, "createdAt" | "updatedAt"> & {
|
|
@@ -263,7 +262,7 @@ class CustomSessionRepository<TData = Record<string, unknown>>
|
|
|
263
262
|
...data,
|
|
264
263
|
id:
|
|
265
264
|
data.id ||
|
|
266
|
-
|
|
265
|
+
createSessionId(),
|
|
267
266
|
}) as SessionData<TData>
|
|
268
267
|
);
|
|
269
268
|
}
|
|
@@ -278,7 +277,7 @@ class CustomSessionRepository<TData = Record<string, unknown>>
|
|
|
278
277
|
const sessions = this.storage.getSessionsByUserId(userId);
|
|
279
278
|
return Promise.resolve(
|
|
280
279
|
(sessions.find((s) => s.status === "active") as SessionData<TData>) ||
|
|
281
|
-
|
|
280
|
+
null
|
|
282
281
|
);
|
|
283
282
|
}
|
|
284
283
|
|
|
@@ -354,7 +353,7 @@ class CustomSessionRepository<TData = Record<string, unknown>>
|
|
|
354
353
|
* Custom Message Repository implementation
|
|
355
354
|
*/
|
|
356
355
|
class CustomMessageRepository implements MessageRepository {
|
|
357
|
-
constructor(private storage: InMemoryStorage) {}
|
|
356
|
+
constructor(private storage: InMemoryStorage) { }
|
|
358
357
|
|
|
359
358
|
async create(
|
|
360
359
|
data: Omit<MessageData, "id" | "createdAt">
|
|
@@ -398,9 +397,7 @@ class CustomMessageRepository implements MessageRepository {
|
|
|
398
397
|
* This adapter demonstrates how to implement a custom persistence layer.
|
|
399
398
|
* Replace the InMemoryStorage with actual database calls for production use.
|
|
400
399
|
*/
|
|
401
|
-
export class CustomAdapter<TData = Record<string, unknown>>
|
|
402
|
-
implements PersistenceAdapter<TData>
|
|
403
|
-
{
|
|
400
|
+
export class CustomAdapter<TData = Record<string, unknown>> implements PersistenceAdapter<TData> {
|
|
404
401
|
private storage = new InMemoryStorage();
|
|
405
402
|
|
|
406
403
|
readonly sessionRepository: SessionRepository<TData>;
|
|
@@ -479,9 +476,9 @@ async function demonstrateCustomAdapter() {
|
|
|
479
476
|
|
|
480
477
|
// First interaction
|
|
481
478
|
console.log("\nš¬ First interaction:");
|
|
482
|
-
|
|
479
|
+
|
|
483
480
|
await agent.session.addMessage("user", "Hi, I need help booking a flight", "Alice");
|
|
484
|
-
|
|
481
|
+
|
|
485
482
|
const response1 = await agent.respond({
|
|
486
483
|
history: agent.session.getHistory(),
|
|
487
484
|
});
|
|
@@ -493,9 +490,9 @@ async function demonstrateCustomAdapter() {
|
|
|
493
490
|
|
|
494
491
|
// Second interaction
|
|
495
492
|
console.log("\nš¬ Second interaction:");
|
|
496
|
-
|
|
493
|
+
|
|
497
494
|
await agent.session.addMessage("user", "I want to fly to Paris next week", "Alice");
|
|
498
|
-
|
|
495
|
+
|
|
499
496
|
const response2 = await agent.respond({
|
|
500
497
|
history: agent.session.getHistory(),
|
|
501
498
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@falai/agent",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "Standalone, strongly-typed AI Agent framework with route DSL and AI provider strategy",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/cjs/index.js",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"release:major": "npm version major && npm publish",
|
|
55
55
|
"release:alpha": "npm publish --tag alpha",
|
|
56
56
|
"release": "npm publish",
|
|
57
|
-
"test": "bun
|
|
57
|
+
"test": "bun test tests/*.test.ts",
|
|
58
58
|
"preinstall": "node preinstall.js"
|
|
59
59
|
},
|
|
60
60
|
"keywords": [
|