@databridgeai/toolkit 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/agent.d.ts CHANGED
@@ -1,11 +1,12 @@
1
1
  import { Pool } from "pg";
2
2
  import { Db } from "mongodb";
3
3
  import { UserContext } from "@databridgeai/core";
4
+ import type { CouchbaseIntrospectConfig } from "./introspect-couchbase";
4
5
  export interface AgentConfig {
5
6
  /** API key for authenticating with the runtime */
6
7
  apiKey: string;
7
- /** Database connection — Postgres Pool or Mongo Db instance */
8
- db: Pool | Db;
8
+ /** Database connection — Postgres Pool, Mongo Db instance, or Couchbase config */
9
+ db: Pool | Db | CouchbaseIntrospectConfig;
9
10
  /** Tables/collections to expose to the AI agent */
10
11
  exposeTables: string[];
11
12
  /** Field used for tenant isolation (e.g., "org_id") */
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAe,EAAE,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAA+B,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAO9E,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IAEf,+DAA+D;IAC/D,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC;IAEd,mDAAmD;IACnD,YAAY,EAAE,MAAM,EAAE,CAAC;IAEvB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,EAAE,WAAW;IAK/B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IA0C5C;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAgC3C;;;OAGG;IACH,UAAU,KACM,KAAK,GAAG,EAAE,KAAK,GAAG;IAyBlC;;;;;OAKG;IACH,YAAY,CAAC,OAAO,CAAC,EAAE;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,IASS,MAAM,GAAG,EAAE,KAAK,GAAG;IAgB7B,OAAO,CAAC,SAAS;YAaH,gBAAgB;IAgB9B,OAAO,CAAC,mBAAmB;CA+B5B;AAID;;;;;;;;;;;;GAYG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,WAAW,CAAC,CAItB"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAe,EAAE,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAA+B,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAI9E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAKxE,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IAEf,kFAAkF;IAClF,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,yBAAyB,CAAC;IAE1C,mDAAmD;IACnD,YAAY,EAAE,MAAM,EAAE,CAAC;IAEvB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,EAAE,WAAW;IAK/B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IA0C5C;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAgC3C;;;OAGG;IACH,UAAU,KACM,KAAK,GAAG,EAAE,KAAK,GAAG;IAyBlC;;;;;OAKG;IACH,YAAY,CAAC,OAAO,CAAC,EAAE;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,IASS,MAAM,GAAG,EAAE,KAAK,GAAG;IAgB7B,OAAO,CAAC,SAAS;YAsBH,gBAAgB;IAqB9B,OAAO,CAAC,mBAAmB;CAqC5B;AAID;;;;;;;;;;;;GAYG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,WAAW,CAAC,CAItB"}
package/dist/agent.js CHANGED
@@ -5,6 +5,7 @@ exports.initAgent = initAgent;
5
5
  const pg_1 = require("pg");
6
6
  const introspect_postgres_1 = require("./introspect-postgres");
7
7
  const introspect_mongo_1 = require("./introspect-mongo");
8
+ const introspect_couchbase_1 = require("./introspect-couchbase");
8
9
  const playground_1 = require("./playground");
9
10
  // ─── Agent Client ─────────────────────────────────────────
10
11
  class AgentClient {
@@ -122,6 +123,13 @@ class AgentClient {
122
123
  getDbType() {
123
124
  if (this.config.db instanceof pg_1.Pool)
124
125
  return "postgres";
126
+ // Check if it's a Couchbase config object
127
+ if (this.config.db &&
128
+ typeof this.config.db === "object" &&
129
+ "connectionString" in this.config.db &&
130
+ "bucketName" in this.config.db) {
131
+ return "couchbase";
132
+ }
125
133
  // Check if it's a Mongo Db instance
126
134
  if (this.config.db &&
127
135
  typeof this.config.db.collection === "function" &&
@@ -135,6 +143,9 @@ class AgentClient {
135
143
  if (dbType === "postgres") {
136
144
  return (0, introspect_postgres_1.introspectPostgres)(this.config.db, this.config.exposeTables);
137
145
  }
146
+ else if (dbType === "couchbase") {
147
+ return (0, introspect_couchbase_1.introspectCouchbase)(this.config.db, this.config.exposeTables);
148
+ }
138
149
  else {
139
150
  return (0, introspect_mongo_1.introspectMongo)(this.config.db, this.config.exposeTables);
140
151
  }
@@ -155,6 +166,13 @@ class AgentClient {
155
166
  const password = opts?.password || "";
156
167
  return `postgresql://${user}:${password}@${host}:${port}/${database}`;
157
168
  }
169
+ else if (dbType === "couchbase") {
170
+ const cbConfig = this.config.db;
171
+ // Encode Couchbase connection details into a connection string
172
+ const base = cbConfig.connectionString;
173
+ const host = base.replace("couchbase://", "");
174
+ return `couchbase://${host}?bucket=${cbConfig.bucketName}&username=${cbConfig.username}&password=${cbConfig.password}`;
175
+ }
158
176
  else {
159
177
  // For Mongo, the connection string is typically in the client
160
178
  const db = this.config.db;
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,5 +2,7 @@ export { AgentClient, initAgent } from "./agent";
2
2
  export type { AgentConfig } from "./agent";
3
3
  export { introspectPostgres } from "./introspect-postgres";
4
4
  export { introspectMongo } from "./introspect-mongo";
5
+ export { introspectCouchbase } from "./introspect-couchbase";
6
+ export type { CouchbaseIntrospectConfig } from "./introspect-couchbase";
5
7
  export { getPlaygroundHTML } from "./playground";
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,YAAY,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  // ─── @databridgeai/toolkit ────────────────────────────────────────────
3
3
  // Customer-facing SDK for AI Agent integration.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.getPlaygroundHTML = exports.introspectMongo = exports.introspectPostgres = exports.initAgent = exports.AgentClient = void 0;
5
+ exports.getPlaygroundHTML = exports.introspectCouchbase = exports.introspectMongo = exports.introspectPostgres = exports.initAgent = exports.AgentClient = void 0;
6
6
  var agent_1 = require("./agent");
7
7
  Object.defineProperty(exports, "AgentClient", { enumerable: true, get: function () { return agent_1.AgentClient; } });
8
8
  Object.defineProperty(exports, "initAgent", { enumerable: true, get: function () { return agent_1.initAgent; } });
@@ -10,6 +10,8 @@ var introspect_postgres_1 = require("./introspect-postgres");
10
10
  Object.defineProperty(exports, "introspectPostgres", { enumerable: true, get: function () { return introspect_postgres_1.introspectPostgres; } });
11
11
  var introspect_mongo_1 = require("./introspect-mongo");
12
12
  Object.defineProperty(exports, "introspectMongo", { enumerable: true, get: function () { return introspect_mongo_1.introspectMongo; } });
13
+ var introspect_couchbase_1 = require("./introspect-couchbase");
14
+ Object.defineProperty(exports, "introspectCouchbase", { enumerable: true, get: function () { return introspect_couchbase_1.introspectCouchbase; } });
13
15
  var playground_1 = require("./playground");
14
16
  Object.defineProperty(exports, "getPlaygroundHTML", { enumerable: true, get: function () { return playground_1.getPlaygroundHTML; } });
15
17
  //# 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,yEAAyE;AACzE,gDAAgD;;;AAEhD,iCAAiD;AAAxC,oGAAA,WAAW,OAAA;AAAE,kGAAA,SAAS,OAAA;AAE/B,6DAA2D;AAAlD,yHAAA,kBAAkB,OAAA;AAC3B,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,2CAAiD;AAAxC,+GAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,yEAAyE;AACzE,gDAAgD;;;AAEhD,iCAAiD;AAAxC,oGAAA,WAAW,OAAA;AAAE,kGAAA,SAAS,OAAA;AAE/B,6DAA2D;AAAlD,yHAAA,kBAAkB,OAAA;AAC3B,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,+DAA6D;AAApD,2HAAA,mBAAmB,OAAA;AAE5B,2CAAiD;AAAxC,+GAAA,iBAAiB,OAAA"}
@@ -0,0 +1,25 @@
1
+ import { SchemaMetadata } from "@databridgeai/core";
2
+ /**
3
+ * Couchbase connection options for introspection.
4
+ */
5
+ export interface CouchbaseIntrospectConfig {
6
+ /** Couchbase connection string (e.g., "couchbase://localhost") */
7
+ connectionString: string;
8
+ /** Username for authentication */
9
+ username: string;
10
+ /** Password for authentication */
11
+ password: string;
12
+ /** Bucket name */
13
+ bucketName: string;
14
+ /** Scope name (defaults to "_default") */
15
+ scopeName?: string;
16
+ }
17
+ /**
18
+ * Introspects a Couchbase bucket by using N1QL INFER statements or
19
+ * falling back to document sampling to discover field names and types.
20
+ *
21
+ * Couchbase is schema-less (documents are JSON), so we infer the schema
22
+ * by examining actual document structures.
23
+ */
24
+ export declare function introspectCouchbase(config: CouchbaseIntrospectConfig, exposeCollections: string[]): Promise<SchemaMetadata>;
25
+ //# sourceMappingURL=introspect-couchbase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"introspect-couchbase.d.ts","sourceRoot":"","sources":["../src/introspect-couchbase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAGf,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,kEAAkE;IAClE,gBAAgB,EAAE,MAAM,CAAC;IACzB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,yBAAyB,EACjC,iBAAiB,EAAE,MAAM,EAAE,GAC1B,OAAO,CAAC,cAAc,CAAC,CA+CzB"}
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.introspectCouchbase = introspectCouchbase;
37
+ /**
38
+ * Introspects a Couchbase bucket by using N1QL INFER statements or
39
+ * falling back to document sampling to discover field names and types.
40
+ *
41
+ * Couchbase is schema-less (documents are JSON), so we infer the schema
42
+ * by examining actual document structures.
43
+ */
44
+ async function introspectCouchbase(config, exposeCollections) {
45
+ const couchbase = await Promise.resolve().then(() => __importStar(require("couchbase")));
46
+ const cluster = await couchbase.connect(config.connectionString, {
47
+ username: config.username,
48
+ password: config.password,
49
+ });
50
+ const scopeName = config.scopeName || "_default";
51
+ const tables = [];
52
+ for (const collectionName of exposeCollections) {
53
+ try {
54
+ // Try INFER first — Couchbase's built-in schema inference
55
+ const fields = await inferViaInfer(cluster, config.bucketName, scopeName, collectionName);
56
+ if (fields.length > 0) {
57
+ tables.push({ name: collectionName, fields });
58
+ continue;
59
+ }
60
+ }
61
+ catch {
62
+ // INFER might not be available on all editions, fall back to sampling
63
+ }
64
+ // Fallback: sample documents and infer schema
65
+ const fields = await inferViaSampling(cluster, config.bucketName, scopeName, collectionName);
66
+ if (fields.length === 0) {
67
+ console.warn(`[sdk] Warning: collection "${collectionName}" is empty or has no inferable fields.`);
68
+ }
69
+ tables.push({ name: collectionName, fields });
70
+ }
71
+ await cluster.close();
72
+ return { tables };
73
+ }
74
+ /**
75
+ * Uses Couchbase's INFER statement to discover schema.
76
+ * INFER analyzes a sample of documents and returns field type information.
77
+ *
78
+ * Note: INFER is available in Couchbase Enterprise and some Community editions.
79
+ */
80
+ async function inferViaInfer(cluster, bucketName, scopeName, collectionName) {
81
+ const qualified = `\`${bucketName}\`.\`${scopeName}\`.\`${collectionName}\``;
82
+ const result = await cluster.query(`INFER ${qualified} WITH {"sample_size": 100}`);
83
+ if (!result.rows || result.rows.length === 0) {
84
+ return [];
85
+ }
86
+ const fields = [];
87
+ const seen = new Set();
88
+ // INFER returns an array of inferred type descriptors
89
+ for (const inferResult of result.rows) {
90
+ const properties = inferResult?.properties || inferResult?.[0]?.properties;
91
+ if (!properties)
92
+ continue;
93
+ for (const [fieldName, fieldInfo] of Object.entries(properties)) {
94
+ // Skip internal Couchbase metadata fields
95
+ if (fieldName === "meta" || fieldName === "__$docId")
96
+ continue;
97
+ if (seen.has(fieldName))
98
+ continue;
99
+ seen.add(fieldName);
100
+ fields.push({
101
+ name: fieldName,
102
+ type: mapCouchbaseType(fieldInfo?.type),
103
+ });
104
+ }
105
+ }
106
+ return fields;
107
+ }
108
+ /**
109
+ * Fallback: sample documents via N1QL SELECT and infer field types
110
+ * from the document values. Works on all Couchbase editions.
111
+ */
112
+ async function inferViaSampling(cluster, bucketName, scopeName, collectionName) {
113
+ const qualified = `\`${bucketName}\`.\`${scopeName}\`.\`${collectionName}\``;
114
+ const result = await cluster.query(`SELECT d.* FROM ${qualified} AS d LIMIT 100`);
115
+ if (!result.rows || result.rows.length === 0) {
116
+ return [];
117
+ }
118
+ // Build a union of all field names and their most common types
119
+ const fieldTypeMap = new Map();
120
+ for (const doc of result.rows) {
121
+ for (const [key, value] of Object.entries(doc)) {
122
+ // Skip internal metadata
123
+ if (key === "meta" || key === "__$docId")
124
+ continue;
125
+ if (!fieldTypeMap.has(key)) {
126
+ fieldTypeMap.set(key, new Map());
127
+ }
128
+ const typeCount = fieldTypeMap.get(key);
129
+ const jsType = inferFieldType(value);
130
+ typeCount.set(jsType, (typeCount.get(jsType) || 0) + 1);
131
+ }
132
+ }
133
+ const fields = [];
134
+ for (const [fieldName, typeCounts] of fieldTypeMap) {
135
+ // Pick the most common type
136
+ let maxType = "string";
137
+ let maxCount = 0;
138
+ for (const [type, count] of typeCounts) {
139
+ if (count > maxCount) {
140
+ maxType = type;
141
+ maxCount = count;
142
+ }
143
+ }
144
+ fields.push({ name: fieldName, type: maxType });
145
+ }
146
+ return fields;
147
+ }
148
+ /**
149
+ * Maps Couchbase INFER type strings to our normalized type names.
150
+ */
151
+ function mapCouchbaseType(cbType) {
152
+ if (!cbType)
153
+ return "string";
154
+ const lower = cbType.toLowerCase();
155
+ switch (lower) {
156
+ case "number":
157
+ case "integer":
158
+ case "int":
159
+ return "number";
160
+ case "boolean":
161
+ case "bool":
162
+ return "boolean";
163
+ case "string":
164
+ return "string";
165
+ case "array":
166
+ return "array";
167
+ case "object":
168
+ case "json":
169
+ return "object";
170
+ case "null":
171
+ return "string";
172
+ default:
173
+ return "string";
174
+ }
175
+ }
176
+ /**
177
+ * Infers field type from a JavaScript value (for sampling fallback).
178
+ */
179
+ function inferFieldType(value) {
180
+ if (value === null || value === undefined)
181
+ return "string";
182
+ if (typeof value === "number") {
183
+ return Number.isInteger(value) ? "integer" : "number";
184
+ }
185
+ if (typeof value === "boolean")
186
+ return "boolean";
187
+ if (typeof value === "string")
188
+ return "string";
189
+ if (Array.isArray(value))
190
+ return "array";
191
+ if (typeof value === "object")
192
+ return "object";
193
+ return "string";
194
+ }
195
+ //# sourceMappingURL=introspect-couchbase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"introspect-couchbase.js","sourceRoot":"","sources":["../src/introspect-couchbase.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@databridgeai/toolkit",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "DataBridge AI Toolkit — Schema introspection, playground helpers, and utility functions",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -11,7 +11,8 @@
11
11
  "dependencies": {
12
12
  "@databridgeai/core": "*",
13
13
  "pg": "^8.11.3",
14
- "mongodb": "^6.3.0"
14
+ "mongodb": "^6.3.0",
15
+ "couchbase": "^4.4.0"
15
16
  },
16
17
  "devDependencies": {
17
18
  "@types/pg": "^8.10.9",