@falai/agent 0.3.21 ā 0.3.23
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 +18 -8
- package/dist/adapters/OpenSearchAdapter.d.ts +169 -0
- package/dist/adapters/OpenSearchAdapter.d.ts.map +1 -0
- package/dist/adapters/OpenSearchAdapter.js +457 -0
- package/dist/adapters/OpenSearchAdapter.js.map +1 -0
- package/dist/adapters/index.d.ts +2 -0
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +1 -0
- package/dist/adapters/index.js.map +1 -1
- package/dist/cjs/adapters/OpenSearchAdapter.d.ts +169 -0
- package/dist/cjs/adapters/OpenSearchAdapter.d.ts.map +1 -0
- package/dist/cjs/adapters/OpenSearchAdapter.js +461 -0
- package/dist/cjs/adapters/OpenSearchAdapter.js.map +1 -0
- package/dist/cjs/adapters/index.d.ts +2 -0
- package/dist/cjs/adapters/index.d.ts.map +1 -1
- package/dist/cjs/adapters/index.js +3 -1
- package/dist/cjs/adapters/index.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/docs/ADAPTERS.md +14 -2
- package/docs/API_REFERENCE.md +68 -0
- package/docs/PERSISTENCE.md +78 -7
- package/docs/README.md +27 -2
- package/examples/opensearch-persistence.ts +175 -0
- package/package.json +6 -2
- package/src/adapters/OpenSearchAdapter.ts +666 -0
- package/src/adapters/index.ts +6 -0
- package/src/index.ts +5 -0
|
@@ -12,4 +12,6 @@ export type { PgClient, PgQueryResult, PostgreSQLAdapterOptions, } from "./Postg
|
|
|
12
12
|
export { SQLiteAdapter } from "./SQLiteAdapter";
|
|
13
13
|
export type { SqliteDatabase, SqliteStatement, SQLiteAdapterOptions, } from "./SQLiteAdapter";
|
|
14
14
|
export { MemoryAdapter } from "./MemoryAdapter";
|
|
15
|
+
export { OpenSearchAdapter } from "./OpenSearchAdapter";
|
|
16
|
+
export type { OpenSearchClient, OpenSearchAdapterOptions, } from "./OpenSearchAdapter";
|
|
15
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EACV,YAAY,EACZ,aAAa,EACb,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACV,WAAW,EACX,aAAa,EACb,eAAe,EACf,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EACV,QAAQ,EACR,aAAa,EACb,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EACV,cAAc,EACd,eAAe,EACf,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EACV,YAAY,EACZ,aAAa,EACb,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACV,WAAW,EACX,aAAa,EACb,eAAe,EACf,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EACV,QAAQ,EACR,aAAa,EACb,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EACV,cAAc,EACd,eAAe,EACf,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EACV,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Database adapters for persistence
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.MemoryAdapter = exports.SQLiteAdapter = exports.PostgreSQLAdapter = exports.MongoAdapter = exports.RedisAdapter = exports.PrismaAdapter = void 0;
|
|
6
|
+
exports.OpenSearchAdapter = exports.MemoryAdapter = exports.SQLiteAdapter = exports.PostgreSQLAdapter = exports.MongoAdapter = exports.RedisAdapter = exports.PrismaAdapter = void 0;
|
|
7
7
|
var PrismaAdapter_1 = require("./PrismaAdapter");
|
|
8
8
|
Object.defineProperty(exports, "PrismaAdapter", { enumerable: true, get: function () { return PrismaAdapter_1.PrismaAdapter; } });
|
|
9
9
|
var RedisAdapter_1 = require("./RedisAdapter");
|
|
@@ -16,4 +16,6 @@ var SQLiteAdapter_1 = require("./SQLiteAdapter");
|
|
|
16
16
|
Object.defineProperty(exports, "SQLiteAdapter", { enumerable: true, get: function () { return SQLiteAdapter_1.SQLiteAdapter; } });
|
|
17
17
|
var MemoryAdapter_1 = require("./MemoryAdapter");
|
|
18
18
|
Object.defineProperty(exports, "MemoryAdapter", { enumerable: true, get: function () { return MemoryAdapter_1.MemoryAdapter; } });
|
|
19
|
+
var OpenSearchAdapter_1 = require("./OpenSearchAdapter");
|
|
20
|
+
Object.defineProperty(exports, "OpenSearchAdapter", { enumerable: true, get: function () { return OpenSearchAdapter_1.OpenSearchAdapter; } });
|
|
19
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AAOtB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAGrB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAQrB,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAO1B,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AAOtB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AAOtB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAGrB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAQrB,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAO1B,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AAOtB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AAEtB,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -34,6 +34,8 @@ export type { PgClient, PgQueryResult, PostgreSQLAdapterOptions, } from "./adapt
|
|
|
34
34
|
export { SQLiteAdapter } from "./adapters/SQLiteAdapter";
|
|
35
35
|
export type { SqliteDatabase, SqliteStatement, SQLiteAdapterOptions, } from "./adapters/SQLiteAdapter";
|
|
36
36
|
export { MemoryAdapter } from "./adapters/MemoryAdapter";
|
|
37
|
+
export { OpenSearchAdapter } from "./adapters/OpenSearchAdapter";
|
|
38
|
+
export type { OpenSearchClient, OpenSearchAdapterOptions, } from "./adapters/OpenSearchAdapter";
|
|
37
39
|
export { END_ROUTE } from "./constants";
|
|
38
40
|
export { generateRouteId, generateStateId, generateObservationId, generateToolId, } from "./utils/id";
|
|
39
41
|
export type { AgentOptions, Term, Guideline, Capability, GuidelineMatch, ContextLifecycleHooks, ContextProvider, } from "./types/agent";
|
package/dist/cjs/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,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,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,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* A strongly-typed, modular agent framework with route DSL and AI provider strategy
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.SectionStatus = exports.EventSource = exports.EventKind = exports.CompositionMode = exports.generateToolId = exports.generateObservationId = exports.generateStateId = exports.generateRouteId = exports.END_ROUTE = exports.MemoryAdapter = exports.SQLiteAdapter = exports.PostgreSQLAdapter = exports.MongoAdapter = exports.RedisAdapter = exports.PrismaAdapter = exports.AnthropicProvider = exports.OpenRouterProvider = exports.OpenAIProvider = exports.GeminiProvider = exports.PersistenceManager = exports.BuiltInSection = exports.PromptBuilder = exports.createToolEvent = exports.createMessageEvent = exports.adaptEvent = exports.DomainRegistry = exports.defineTool = exports.Observation = exports.Transition = exports.State = exports.Route = exports.Agent = void 0;
|
|
8
|
+
exports.SectionStatus = exports.EventSource = exports.EventKind = exports.CompositionMode = exports.generateToolId = exports.generateObservationId = exports.generateStateId = exports.generateRouteId = exports.END_ROUTE = exports.OpenSearchAdapter = exports.MemoryAdapter = exports.SQLiteAdapter = exports.PostgreSQLAdapter = exports.MongoAdapter = exports.RedisAdapter = exports.PrismaAdapter = exports.AnthropicProvider = exports.OpenRouterProvider = exports.OpenAIProvider = exports.GeminiProvider = exports.PersistenceManager = exports.BuiltInSection = exports.PromptBuilder = exports.createToolEvent = exports.createMessageEvent = exports.adaptEvent = exports.DomainRegistry = exports.defineTool = exports.Observation = exports.Transition = exports.State = exports.Route = exports.Agent = void 0;
|
|
9
9
|
// Core
|
|
10
10
|
var Agent_1 = require("./core/Agent");
|
|
11
11
|
Object.defineProperty(exports, "Agent", { enumerable: true, get: function () { return Agent_1.Agent; } });
|
|
@@ -53,6 +53,8 @@ var SQLiteAdapter_1 = require("./adapters/SQLiteAdapter");
|
|
|
53
53
|
Object.defineProperty(exports, "SQLiteAdapter", { enumerable: true, get: function () { return SQLiteAdapter_1.SQLiteAdapter; } });
|
|
54
54
|
var MemoryAdapter_1 = require("./adapters/MemoryAdapter");
|
|
55
55
|
Object.defineProperty(exports, "MemoryAdapter", { enumerable: true, get: function () { return MemoryAdapter_1.MemoryAdapter; } });
|
|
56
|
+
var OpenSearchAdapter_1 = require("./adapters/OpenSearchAdapter");
|
|
57
|
+
Object.defineProperty(exports, "OpenSearchAdapter", { enumerable: true, get: function () { return OpenSearchAdapter_1.OpenSearchAdapter; } });
|
|
56
58
|
// Constants
|
|
57
59
|
var constants_1 = require("./constants");
|
|
58
60
|
Object.defineProperty(exports, "END_ROUTE", { enumerable: true, get: function () { return constants_1.END_ROUTE; } });
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,OAAO;AACP,sCAAqC;AAA5B,8FAAA,KAAK,OAAA;AACd,sCAAqC;AAA5B,8FAAA,KAAK,OAAA;AACd,sCAAqC;AAA5B,8FAAA,KAAK,OAAA;AACd,gDAA+C;AAAtC,wGAAA,UAAU,OAAA;AACnB,kDAAiD;AAAxC,0GAAA,WAAW,OAAA;AACpB,oCAAyC;AAAhC,kGAAA,UAAU,OAAA;AACnB,wDAAuD;AAA9C,gHAAA,cAAc,OAAA;AACvB,wCAAgF;AAAvE,oGAAA,UAAU,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAAE,yGAAA,eAAe,OAAA;AACxD,sDAAqD;AAA5C,8GAAA,aAAa,OAAA;AAEtB,sDAAsD;AAA7C,+GAAA,cAAc,OAAA;AACvB,gEAA+D;AAAtD,wHAAA,kBAAkB,OAAA;AAE3B,YAAY;AACZ,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AAEvB,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AAEvB,qEAAoE;AAA3D,wHAAA,kBAAkB,OAAA;AAE3B,mEAAkE;AAAzD,sHAAA,iBAAiB,OAAA;AAG1B,WAAW;AACX,0DAAyD;AAAhD,8GAAA,aAAa,OAAA;AAMtB,wDAAuD;AAA9C,4GAAA,YAAY,OAAA;AAErB,wDAAuD;AAA9C,4GAAA,YAAY,OAAA;AAOrB,kEAAiE;AAAxD,sHAAA,iBAAiB,OAAA;AAM1B,0DAAyD;AAAhD,8GAAA,aAAa,OAAA;AAMtB,0DAAyD;AAAhD,8GAAA,aAAa,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,OAAO;AACP,sCAAqC;AAA5B,8FAAA,KAAK,OAAA;AACd,sCAAqC;AAA5B,8FAAA,KAAK,OAAA;AACd,sCAAqC;AAA5B,8FAAA,KAAK,OAAA;AACd,gDAA+C;AAAtC,wGAAA,UAAU,OAAA;AACnB,kDAAiD;AAAxC,0GAAA,WAAW,OAAA;AACpB,oCAAyC;AAAhC,kGAAA,UAAU,OAAA;AACnB,wDAAuD;AAA9C,gHAAA,cAAc,OAAA;AACvB,wCAAgF;AAAvE,oGAAA,UAAU,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAAE,yGAAA,eAAe,OAAA;AACxD,sDAAqD;AAA5C,8GAAA,aAAa,OAAA;AAEtB,sDAAsD;AAA7C,+GAAA,cAAc,OAAA;AACvB,gEAA+D;AAAtD,wHAAA,kBAAkB,OAAA;AAE3B,YAAY;AACZ,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AAEvB,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AAEvB,qEAAoE;AAA3D,wHAAA,kBAAkB,OAAA;AAE3B,mEAAkE;AAAzD,sHAAA,iBAAiB,OAAA;AAG1B,WAAW;AACX,0DAAyD;AAAhD,8GAAA,aAAa,OAAA;AAMtB,wDAAuD;AAA9C,4GAAA,YAAY,OAAA;AAErB,wDAAuD;AAA9C,4GAAA,YAAY,OAAA;AAOrB,kEAAiE;AAAxD,sHAAA,iBAAiB,OAAA;AAM1B,0DAAyD;AAAhD,8GAAA,aAAa,OAAA;AAMtB,0DAAyD;AAAhD,8GAAA,aAAa,OAAA;AACtB,kEAAiE;AAAxD,sHAAA,iBAAiB,OAAA;AAM1B,YAAY;AACZ,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAElB,QAAQ;AACR,iCAKoB;AAJlB,qGAAA,eAAe,OAAA;AACf,qGAAA,eAAe,OAAA;AACf,2GAAA,qBAAqB,OAAA;AACrB,oGAAA,cAAc,OAAA;AAahB,uCAAgD;AAAvC,wGAAA,eAAe,OAAA;AAUxB,2CAAyD;AAAhD,oGAAA,SAAS,OAAA;AAAE,sGAAA,WAAW,OAAA;AA8B/B,yCAA+C;AAAtC,uGAAA,aAAa,OAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -34,6 +34,8 @@ export type { PgClient, PgQueryResult, PostgreSQLAdapterOptions, } from "./adapt
|
|
|
34
34
|
export { SQLiteAdapter } from "./adapters/SQLiteAdapter";
|
|
35
35
|
export type { SqliteDatabase, SqliteStatement, SQLiteAdapterOptions, } from "./adapters/SQLiteAdapter";
|
|
36
36
|
export { MemoryAdapter } from "./adapters/MemoryAdapter";
|
|
37
|
+
export { OpenSearchAdapter } from "./adapters/OpenSearchAdapter";
|
|
38
|
+
export type { OpenSearchClient, OpenSearchAdapterOptions, } from "./adapters/OpenSearchAdapter";
|
|
37
39
|
export { END_ROUTE } from "./constants";
|
|
38
40
|
export { generateRouteId, generateStateId, generateObservationId, generateToolId, } from "./utils/id";
|
|
39
41
|
export type { AgentOptions, Term, Guideline, Capability, GuidelineMatch, ContextLifecycleHooks, ContextProvider, } 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,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,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,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -27,6 +27,7 @@ export { MongoAdapter } from "./adapters/MongoAdapter";
|
|
|
27
27
|
export { PostgreSQLAdapter } from "./adapters/PostgreSQLAdapter";
|
|
28
28
|
export { SQLiteAdapter } from "./adapters/SQLiteAdapter";
|
|
29
29
|
export { MemoryAdapter } from "./adapters/MemoryAdapter";
|
|
30
|
+
export { OpenSearchAdapter } from "./adapters/OpenSearchAdapter";
|
|
30
31
|
// Constants
|
|
31
32
|
export { END_ROUTE } from "./constants";
|
|
32
33
|
// Utils
|
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,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,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,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,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;
|
|
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,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,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,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,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;AAExC,QAAQ;AACR,OAAO,EACL,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,cAAc,GACf,MAAM,YAAY,CAAC;AAYpB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAUhD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AA8BzD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
|
package/docs/ADAPTERS.md
CHANGED
|
@@ -50,7 +50,18 @@ All adapters follow the **provider pattern** - no dependencies required in the p
|
|
|
50
50
|
- Auto table/index creation
|
|
51
51
|
- Zero configuration
|
|
52
52
|
|
|
53
|
-
### 6. **
|
|
53
|
+
### 6. **OpenSearchAdapter**
|
|
54
|
+
|
|
55
|
+
- **Use case:** Full-text search & analytics
|
|
56
|
+
- **Install:** `npm install @opensearch-project/opensearch`
|
|
57
|
+
- **Features:**
|
|
58
|
+
- Built-in full-text search
|
|
59
|
+
- Powerful aggregations
|
|
60
|
+
- Auto index/mapping creation
|
|
61
|
+
- Compatible with Elasticsearch 7.x
|
|
62
|
+
- AWS OpenSearch Service ready
|
|
63
|
+
|
|
64
|
+
### 7. **MemoryAdapter**
|
|
54
65
|
|
|
55
66
|
- **Use case:** Testing & development
|
|
56
67
|
- **Install:** Built-in (no dependencies required) āØ
|
|
@@ -94,7 +105,8 @@ All database clients are **optional peer dependencies** - they won't be installe
|
|
|
94
105
|
"mongodb": "^6.0.0 || ^7.0.0",
|
|
95
106
|
"pg": "^8.11.0",
|
|
96
107
|
"mysql2": "^3.2.0",
|
|
97
|
-
"better-sqlite3": "^11.0.0 || ^12.0.0"
|
|
108
|
+
"better-sqlite3": "^11.0.0 || ^12.0.0",
|
|
109
|
+
"@opensearch-project/opensearch": "^2.0.0"
|
|
98
110
|
},
|
|
99
111
|
"peerDependenciesMeta": {
|
|
100
112
|
"@prisma/client": { "optional": true },
|
package/docs/API_REFERENCE.md
CHANGED
|
@@ -994,6 +994,74 @@ const agent = new Agent({
|
|
|
994
994
|
|
|
995
995
|
---
|
|
996
996
|
|
|
997
|
+
### `OpenSearchAdapter`
|
|
998
|
+
|
|
999
|
+
Full-text search and analytics-powered persistence. Compatible with OpenSearch and Elasticsearch 7.x.
|
|
1000
|
+
|
|
1001
|
+
#### Constructor
|
|
1002
|
+
|
|
1003
|
+
```typescript
|
|
1004
|
+
new OpenSearchAdapter(client: OpenSearchClient, options?: OpenSearchAdapterOptions)
|
|
1005
|
+
|
|
1006
|
+
interface OpenSearchAdapterOptions {
|
|
1007
|
+
indices?: {
|
|
1008
|
+
sessions?: string; // Default: "agent_sessions"
|
|
1009
|
+
messages?: string; // Default: "agent_messages"
|
|
1010
|
+
};
|
|
1011
|
+
autoCreateIndices?: boolean; // Default: true
|
|
1012
|
+
refresh?: boolean | "wait_for"; // Default: false
|
|
1013
|
+
}
|
|
1014
|
+
```
|
|
1015
|
+
|
|
1016
|
+
#### Methods
|
|
1017
|
+
|
|
1018
|
+
##### `initialize(): Promise<void>`
|
|
1019
|
+
|
|
1020
|
+
Creates indices with proper mappings if they don't exist.
|
|
1021
|
+
|
|
1022
|
+
##### `disconnect(): Promise<void>`
|
|
1023
|
+
|
|
1024
|
+
Gracefully disconnect (no-op for OpenSearch - connection pooling is automatic).
|
|
1025
|
+
|
|
1026
|
+
#### Example
|
|
1027
|
+
|
|
1028
|
+
```typescript
|
|
1029
|
+
import { OpenSearchAdapter } from "@falai/agent";
|
|
1030
|
+
import { Client } from "@opensearch-project/opensearch";
|
|
1031
|
+
|
|
1032
|
+
const client = new Client({
|
|
1033
|
+
node: "https://localhost:9200",
|
|
1034
|
+
auth: {
|
|
1035
|
+
username: "admin",
|
|
1036
|
+
password: "admin",
|
|
1037
|
+
},
|
|
1038
|
+
});
|
|
1039
|
+
|
|
1040
|
+
const adapter = new OpenSearchAdapter(client, {
|
|
1041
|
+
indices: {
|
|
1042
|
+
sessions: "agent_sessions",
|
|
1043
|
+
messages: "agent_messages",
|
|
1044
|
+
},
|
|
1045
|
+
autoCreateIndices: true,
|
|
1046
|
+
refresh: "wait_for", // Wait for documents to be searchable
|
|
1047
|
+
});
|
|
1048
|
+
|
|
1049
|
+
// Auto-create indices with mappings
|
|
1050
|
+
await adapter.initialize();
|
|
1051
|
+
|
|
1052
|
+
const agent = new Agent({
|
|
1053
|
+
persistence: { adapter },
|
|
1054
|
+
});
|
|
1055
|
+
```
|
|
1056
|
+
|
|
1057
|
+
**Install:** `npm install @opensearch-project/opensearch`
|
|
1058
|
+
|
|
1059
|
+
**Perfect for:** Full-text search, analytics, time-series analysis, AWS OpenSearch Service, Elasticsearch 7.x users
|
|
1060
|
+
|
|
1061
|
+
**Full Example:** See [examples/opensearch-persistence.ts](../examples/opensearch-persistence.ts)
|
|
1062
|
+
|
|
1063
|
+
---
|
|
1064
|
+
|
|
997
1065
|
### `MemoryAdapter`
|
|
998
1066
|
|
|
999
1067
|
Zero-dependency in-memory storage for testing and development.
|
package/docs/PERSISTENCE.md
CHANGED
|
@@ -434,16 +434,17 @@ const agent = new Agent({
|
|
|
434
434
|
|
|
435
435
|
**Install:** `npm install ioredis` or `npm install redis`
|
|
436
436
|
|
|
437
|
-
###
|
|
437
|
+
### More Adapters
|
|
438
438
|
|
|
439
|
-
|
|
439
|
+
All adapters are production-ready and available now:
|
|
440
440
|
|
|
441
|
-
- **MongoDB**: Document-based storage ā
|
|
442
|
-
- **PostgreSQL**: Raw SQL for custom schemas ā
|
|
443
|
-
- **
|
|
444
|
-
- **
|
|
441
|
+
- **MongoDB**: Document-based storage ā
|
|
442
|
+
- **PostgreSQL**: Raw SQL for custom schemas ā
|
|
443
|
+
- **SQLite**: Lightweight file-based database ā
|
|
444
|
+
- **OpenSearch**: Full-text search & analytics ā
|
|
445
|
+
- **Memory**: Built-in for testing ā
|
|
445
446
|
|
|
446
|
-
|
|
447
|
+
Create your own adapter by implementing the `PersistenceAdapter` interface!
|
|
447
448
|
|
|
448
449
|
### MongoDB
|
|
449
450
|
|
|
@@ -541,6 +542,76 @@ const agent = new Agent({
|
|
|
541
542
|
- Desktop applications
|
|
542
543
|
- Single-user apps
|
|
543
544
|
|
|
545
|
+
### OpenSearch
|
|
546
|
+
|
|
547
|
+
Full-text search and analytics-powered persistence. Also compatible with Elasticsearch 7.x:
|
|
548
|
+
|
|
549
|
+
```typescript
|
|
550
|
+
import { OpenSearchAdapter } from "@falai/agent";
|
|
551
|
+
import { Client } from "@opensearch-project/opensearch";
|
|
552
|
+
|
|
553
|
+
const client = new Client({
|
|
554
|
+
node: "https://localhost:9200",
|
|
555
|
+
auth: {
|
|
556
|
+
username: "admin",
|
|
557
|
+
password: "admin",
|
|
558
|
+
},
|
|
559
|
+
});
|
|
560
|
+
|
|
561
|
+
const adapter = new OpenSearchAdapter(client, {
|
|
562
|
+
indices: {
|
|
563
|
+
sessions: "agent_sessions",
|
|
564
|
+
messages: "agent_messages",
|
|
565
|
+
},
|
|
566
|
+
autoCreateIndices: true, // Auto-create indices with mappings
|
|
567
|
+
refresh: "wait_for", // Ensure documents are searchable immediately
|
|
568
|
+
});
|
|
569
|
+
|
|
570
|
+
// Auto-create indices with mappings
|
|
571
|
+
await adapter.initialize();
|
|
572
|
+
|
|
573
|
+
const agent = new Agent({
|
|
574
|
+
persistence: { adapter },
|
|
575
|
+
});
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
**Install:** `npm install @opensearch-project/opensearch`
|
|
579
|
+
|
|
580
|
+
**Perfect for:**
|
|
581
|
+
|
|
582
|
+
- Full-text search across conversations
|
|
583
|
+
- Analytics and aggregations
|
|
584
|
+
- Time-series analysis
|
|
585
|
+
- AWS OpenSearch Service
|
|
586
|
+
- Elasticsearch 7.x users
|
|
587
|
+
|
|
588
|
+
**Advanced features:**
|
|
589
|
+
|
|
590
|
+
```typescript
|
|
591
|
+
// Get OpenSearch client for custom queries
|
|
592
|
+
const pm = agent.getPersistenceManager();
|
|
593
|
+
if (pm) {
|
|
594
|
+
const messages = await pm.getSessionMessages(sessionId);
|
|
595
|
+
|
|
596
|
+
// Now use the client directly for advanced queries
|
|
597
|
+
const results = await client.search({
|
|
598
|
+
index: "agent_messages",
|
|
599
|
+
body: {
|
|
600
|
+
query: {
|
|
601
|
+
match: {
|
|
602
|
+
content: "flight booking",
|
|
603
|
+
},
|
|
604
|
+
},
|
|
605
|
+
aggregations: {
|
|
606
|
+
by_route: {
|
|
607
|
+
terms: { field: "route" },
|
|
608
|
+
},
|
|
609
|
+
},
|
|
610
|
+
},
|
|
611
|
+
});
|
|
612
|
+
}
|
|
613
|
+
```
|
|
614
|
+
|
|
544
615
|
### Memory (Built-in)
|
|
545
616
|
|
|
546
617
|
Zero-dependency in-memory storage for testing:
|
package/docs/README.md
CHANGED
|
@@ -16,7 +16,9 @@ Welcome to the `@falai/agent` documentation!
|
|
|
16
16
|
### Reference
|
|
17
17
|
|
|
18
18
|
- **[API Reference](./API_REFERENCE.md)** - Complete API documentation for all classes, methods, and types
|
|
19
|
-
- **[AI Providers Guide](./PROVIDERS.md)** - Gemini, OpenAI, and custom providers
|
|
19
|
+
- **[AI Providers Guide](./PROVIDERS.md)** - Gemini, OpenAI, Anthropic, and custom providers
|
|
20
|
+
- **[Persistence Guide](./PERSISTENCE.md)** - Auto-save sessions and messages to any database
|
|
21
|
+
- **[Database Adapters](./ADAPTERS.md)** - Adapter comparison and configuration examples
|
|
20
22
|
- **[Contributing Guide](./CONTRIBUTING.md)** - How to contribute to the project
|
|
21
23
|
- **[Publishing Guide](./PUBLISHING.md)** - How to publish updates to npm
|
|
22
24
|
|
|
@@ -36,21 +38,44 @@ Welcome to the `@falai/agent` documentation!
|
|
|
36
38
|
**Understanding the codebase?**
|
|
37
39
|
ā Read [Package Structure](./STRUCTURE.md)
|
|
38
40
|
|
|
41
|
+
**Need persistence?**
|
|
42
|
+
ā See [Persistence Guide](./PERSISTENCE.md)
|
|
43
|
+
|
|
39
44
|
### By Topic
|
|
40
45
|
|
|
41
46
|
- **Agent Configuration**: [Constructor Options](./CONSTRUCTOR_OPTIONS.md)
|
|
42
47
|
- **Conversation Flows**: [API Reference - Routes](./API_REFERENCE.md#route)
|
|
43
48
|
- **Tools & Functions**: [API Reference - Tools](./API_REFERENCE.md#definetool)
|
|
44
49
|
- **Disambiguation**: [API Reference - Observations](./API_REFERENCE.md#observation)
|
|
45
|
-
- **AI Providers**: [API Reference
|
|
50
|
+
- **AI Providers**: [Providers Guide](./PROVIDERS.md) | [API Reference](./API_REFERENCE.md#geminiprovider)
|
|
51
|
+
- **Database Persistence**: [Persistence Guide](./PERSISTENCE.md) | [Adapters](./ADAPTERS.md)
|
|
46
52
|
|
|
47
53
|
## š” Examples
|
|
48
54
|
|
|
49
55
|
Check out the [`examples/`](../examples/) directory for complete, runnable examples:
|
|
50
56
|
|
|
57
|
+
### Core Examples
|
|
58
|
+
|
|
51
59
|
- **[Declarative Agent](../examples/declarative-agent.ts)** - Full constructor-based configuration
|
|
52
60
|
- **[Travel Agent](../examples/travel-agent.ts)** - Complex multi-route travel booking system
|
|
53
61
|
- **[Healthcare Agent](../examples/healthcare-agent.ts)** - Disambiguation with observations
|
|
62
|
+
- **[Streaming Agent](../examples/streaming-agent.ts)** - Real-time streaming responses
|
|
63
|
+
|
|
64
|
+
### Persistence Examples
|
|
65
|
+
|
|
66
|
+
- **[Prisma Persistence](../examples/prisma-persistence.ts)** - Auto-save with Prisma ORM
|
|
67
|
+
- **[Redis Persistence](../examples/redis-persistence.ts)** - Fast in-memory persistence
|
|
68
|
+
|
|
69
|
+
### Provider Examples
|
|
70
|
+
|
|
71
|
+
- **[OpenAI Agent](../examples/openai-agent.ts)** - GPT-5 integration
|
|
72
|
+
- **[Gemini Agent](../examples/gemini-agent.ts)** - Google Gemini integration
|
|
73
|
+
- **[Anthropic Agent](../examples/healthcare-agent.ts)** - Claude 3.5 Sonnet
|
|
74
|
+
|
|
75
|
+
### Advanced Examples
|
|
76
|
+
|
|
77
|
+
- **[Domain Scoping](../examples/domain-scoping.ts)** - Control tool access per route
|
|
78
|
+
- **[Rules & Prohibitions](../examples/rules-prohibitions.ts)** - Fine-grained behavior control
|
|
54
79
|
|
|
55
80
|
## š¤ Contributing
|
|
56
81
|
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenSearch Persistence Example
|
|
3
|
+
*
|
|
4
|
+
* This example demonstrates how to use the OpenSearchAdapter for persistent storage.
|
|
5
|
+
* Also compatible with Elasticsearch 7.x.
|
|
6
|
+
*
|
|
7
|
+
* Setup:
|
|
8
|
+
* 1. Install the OpenSearch client: npm install @opensearch-project/opensearch
|
|
9
|
+
* 2. Run OpenSearch locally:
|
|
10
|
+
* docker run -d -p 9200:9200 -p 9600:9600 -e "discovery.type=single-node" opensearchproject/opensearch:latest
|
|
11
|
+
* 3. Run this example: bun run examples/opensearch-persistence.ts
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
// @ts-ignore - OpenSearch is a peer dependency
|
|
15
|
+
import { Client } from "@opensearch-project/opensearch";
|
|
16
|
+
import {
|
|
17
|
+
Agent,
|
|
18
|
+
GeminiProvider,
|
|
19
|
+
OpenSearchAdapter,
|
|
20
|
+
defineTool,
|
|
21
|
+
createMessageEvent,
|
|
22
|
+
EventSource,
|
|
23
|
+
} from "../src/index.js";
|
|
24
|
+
|
|
25
|
+
// Initialize OpenSearch client
|
|
26
|
+
const client = new Client({
|
|
27
|
+
node: process.env.OPENSEARCH_URL || "https://localhost:9200",
|
|
28
|
+
auth: {
|
|
29
|
+
username: process.env.OPENSEARCH_USERNAME || "admin",
|
|
30
|
+
password: process.env.OPENSEARCH_PASSWORD || "admin",
|
|
31
|
+
},
|
|
32
|
+
ssl: {
|
|
33
|
+
rejectUnauthorized: false, // For development only!
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
// Create adapter with custom index names
|
|
38
|
+
const adapter = new OpenSearchAdapter(client, {
|
|
39
|
+
indices: {
|
|
40
|
+
sessions: "my_agent_sessions",
|
|
41
|
+
messages: "my_agent_messages",
|
|
42
|
+
},
|
|
43
|
+
autoCreateIndices: true, // Automatically create indices with mappings
|
|
44
|
+
refresh: "wait_for", // Wait for documents to be searchable (slower but consistent)
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
// Define context type
|
|
48
|
+
interface TravelContext {
|
|
49
|
+
userId: string;
|
|
50
|
+
userName: string;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Define a simple tool
|
|
54
|
+
const bookFlight = defineTool<
|
|
55
|
+
TravelContext,
|
|
56
|
+
[destination: string, date: string],
|
|
57
|
+
{ success: boolean; confirmation: string }
|
|
58
|
+
>(
|
|
59
|
+
"book_flight",
|
|
60
|
+
async ({ context }, destination, date) => {
|
|
61
|
+
console.log(`š Booking flight for ${context.userName}...`);
|
|
62
|
+
return {
|
|
63
|
+
data: {
|
|
64
|
+
success: true,
|
|
65
|
+
confirmation: `Flight to ${destination} booked for ${date}`,
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
description: "Book a flight for the user",
|
|
71
|
+
parameters: {
|
|
72
|
+
type: "object",
|
|
73
|
+
properties: {
|
|
74
|
+
destination: { type: "string", description: "Destination city" },
|
|
75
|
+
date: { type: "string", description: "Travel date" },
|
|
76
|
+
},
|
|
77
|
+
required: ["destination", "date"],
|
|
78
|
+
},
|
|
79
|
+
}
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
// Create agent with OpenSearch persistence
|
|
83
|
+
const agent = new Agent<TravelContext>({
|
|
84
|
+
name: "Travel Assistant",
|
|
85
|
+
description: "A helpful travel booking assistant",
|
|
86
|
+
ai: new GeminiProvider({
|
|
87
|
+
apiKey: process.env.GEMINI_API_KEY || "",
|
|
88
|
+
model: "gemini-2.0-flash-exp",
|
|
89
|
+
}),
|
|
90
|
+
context: {
|
|
91
|
+
userId: "user_123",
|
|
92
|
+
userName: "Alex",
|
|
93
|
+
},
|
|
94
|
+
persistence: {
|
|
95
|
+
adapter,
|
|
96
|
+
autoSave: true,
|
|
97
|
+
userId: "user_123",
|
|
98
|
+
},
|
|
99
|
+
capabilities: [
|
|
100
|
+
{
|
|
101
|
+
title: "Flight Booking",
|
|
102
|
+
description: "Book flights for travel",
|
|
103
|
+
tools: [bookFlight],
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
async function main() {
|
|
109
|
+
try {
|
|
110
|
+
console.log("š Starting OpenSearch persistence example...\n");
|
|
111
|
+
|
|
112
|
+
// First conversation
|
|
113
|
+
console.log("š¬ User: I need to book a flight to Tokyo");
|
|
114
|
+
const history1 = [
|
|
115
|
+
createMessageEvent(
|
|
116
|
+
EventSource.CUSTOMER,
|
|
117
|
+
"Alex",
|
|
118
|
+
"I need to book a flight to Tokyo"
|
|
119
|
+
),
|
|
120
|
+
];
|
|
121
|
+
let response = await agent.respond({ history: history1 });
|
|
122
|
+
console.log("š¤ Agent:", response.message);
|
|
123
|
+
console.log();
|
|
124
|
+
|
|
125
|
+
// Continue conversation (uses same session)
|
|
126
|
+
console.log("š¬ User: Make it for next Monday");
|
|
127
|
+
const history2 = [
|
|
128
|
+
...history1,
|
|
129
|
+
createMessageEvent(
|
|
130
|
+
EventSource.AI_AGENT,
|
|
131
|
+
"Travel Assistant",
|
|
132
|
+
response.message
|
|
133
|
+
),
|
|
134
|
+
createMessageEvent(
|
|
135
|
+
EventSource.CUSTOMER,
|
|
136
|
+
"Alex",
|
|
137
|
+
"Make it for next Monday"
|
|
138
|
+
),
|
|
139
|
+
];
|
|
140
|
+
response = await agent.respond({ history: history2 });
|
|
141
|
+
console.log("š¤ Agent:", response.message);
|
|
142
|
+
console.log();
|
|
143
|
+
|
|
144
|
+
// Get persistence manager
|
|
145
|
+
const pm = agent.getPersistenceManager();
|
|
146
|
+
if (pm) {
|
|
147
|
+
// Query sessions
|
|
148
|
+
const sessions = await pm.getUserSessions("user_123");
|
|
149
|
+
console.log(`š Found ${sessions.length} session(s) for user_123`);
|
|
150
|
+
|
|
151
|
+
if (sessions.length > 0) {
|
|
152
|
+
const session = sessions[0];
|
|
153
|
+
console.log(` Session ID: ${session.id}`);
|
|
154
|
+
console.log(` Status: ${session.status}`);
|
|
155
|
+
console.log(` Messages: ${session.messageCount || 0}`);
|
|
156
|
+
console.log();
|
|
157
|
+
|
|
158
|
+
// Query messages
|
|
159
|
+
const messages = await pm.getSessionMessages(session.id);
|
|
160
|
+
console.log(`š Session has ${messages.length} message(s):`);
|
|
161
|
+
messages.forEach((msg, idx) => {
|
|
162
|
+
console.log(
|
|
163
|
+
` ${idx + 1}. [${msg.role}] ${msg.content.substring(0, 50)}...`
|
|
164
|
+
);
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
console.log("\nā
OpenSearch persistence example completed!");
|
|
170
|
+
} catch (error) {
|
|
171
|
+
console.error("ā Error:", error);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
main();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@falai/agent",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.23",
|
|
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",
|
|
@@ -88,7 +88,8 @@
|
|
|
88
88
|
"mongodb": "^6.0.0 || ^7.0.0",
|
|
89
89
|
"pg": "^8.11.0",
|
|
90
90
|
"mysql2": "^3.2.0",
|
|
91
|
-
"better-sqlite3": "^11.0.0 || ^12.0.0"
|
|
91
|
+
"better-sqlite3": "^11.0.0 || ^12.0.0",
|
|
92
|
+
"@opensearch-project/opensearch": "^2.0.0"
|
|
92
93
|
},
|
|
93
94
|
"peerDependenciesMeta": {
|
|
94
95
|
"@prisma/client": {
|
|
@@ -111,6 +112,9 @@
|
|
|
111
112
|
},
|
|
112
113
|
"better-sqlite3": {
|
|
113
114
|
"optional": true
|
|
115
|
+
},
|
|
116
|
+
"@opensearch-project/opensearch": {
|
|
117
|
+
"optional": true
|
|
114
118
|
}
|
|
115
119
|
}
|
|
116
120
|
}
|