@venturekit-pro/ai 0.0.0-dev.20260323005827

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.
Files changed (87) hide show
  1. package/LICENSE +19 -0
  2. package/README.md +117 -0
  3. package/dist/agents/agent.d.ts +22 -0
  4. package/dist/agents/agent.d.ts.map +1 -0
  5. package/dist/agents/agent.js +138 -0
  6. package/dist/agents/agent.js.map +1 -0
  7. package/dist/agents/config.d.ts +13 -0
  8. package/dist/agents/config.d.ts.map +1 -0
  9. package/dist/agents/config.js +24 -0
  10. package/dist/agents/config.js.map +1 -0
  11. package/dist/agents/index.d.ts +10 -0
  12. package/dist/agents/index.d.ts.map +1 -0
  13. package/dist/agents/index.js +9 -0
  14. package/dist/agents/index.js.map +1 -0
  15. package/dist/agents/tools.d.ts +14 -0
  16. package/dist/agents/tools.d.ts.map +1 -0
  17. package/dist/agents/tools.js +15 -0
  18. package/dist/agents/tools.js.map +1 -0
  19. package/dist/context/context.d.ts +118 -0
  20. package/dist/context/context.d.ts.map +1 -0
  21. package/dist/context/context.js +132 -0
  22. package/dist/context/context.js.map +1 -0
  23. package/dist/embeddings/config.d.ts +13 -0
  24. package/dist/embeddings/config.d.ts.map +1 -0
  25. package/dist/embeddings/config.js +25 -0
  26. package/dist/embeddings/config.js.map +1 -0
  27. package/dist/embeddings/embedder.d.ts +20 -0
  28. package/dist/embeddings/embedder.d.ts.map +1 -0
  29. package/dist/embeddings/embedder.js +100 -0
  30. package/dist/embeddings/embedder.js.map +1 -0
  31. package/dist/embeddings/index.d.ts +9 -0
  32. package/dist/embeddings/index.d.ts.map +1 -0
  33. package/dist/embeddings/index.js +8 -0
  34. package/dist/embeddings/index.js.map +1 -0
  35. package/dist/index.d.ts +18 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +19 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/rag/chunker.d.ts +11 -0
  40. package/dist/rag/chunker.d.ts.map +1 -0
  41. package/dist/rag/chunker.js +109 -0
  42. package/dist/rag/chunker.js.map +1 -0
  43. package/dist/rag/config.d.ts +13 -0
  44. package/dist/rag/config.d.ts.map +1 -0
  45. package/dist/rag/config.js +35 -0
  46. package/dist/rag/config.js.map +1 -0
  47. package/dist/rag/index.d.ts +10 -0
  48. package/dist/rag/index.d.ts.map +1 -0
  49. package/dist/rag/index.js +9 -0
  50. package/dist/rag/index.js.map +1 -0
  51. package/dist/rag/pipeline.d.ts +26 -0
  52. package/dist/rag/pipeline.d.ts.map +1 -0
  53. package/dist/rag/pipeline.js +79 -0
  54. package/dist/rag/pipeline.js.map +1 -0
  55. package/dist/types/agents.d.ts +118 -0
  56. package/dist/types/agents.d.ts.map +1 -0
  57. package/dist/types/agents.js +5 -0
  58. package/dist/types/agents.js.map +1 -0
  59. package/dist/types/embeddings.d.ts +69 -0
  60. package/dist/types/embeddings.d.ts.map +1 -0
  61. package/dist/types/embeddings.js +5 -0
  62. package/dist/types/embeddings.js.map +1 -0
  63. package/dist/types/index.d.ts +8 -0
  64. package/dist/types/index.d.ts.map +1 -0
  65. package/dist/types/index.js +8 -0
  66. package/dist/types/index.js.map +1 -0
  67. package/dist/types/rag.d.ts +92 -0
  68. package/dist/types/rag.d.ts.map +1 -0
  69. package/dist/types/rag.js +5 -0
  70. package/dist/types/rag.js.map +1 -0
  71. package/dist/types/vectors.d.ts +98 -0
  72. package/dist/types/vectors.d.ts.map +1 -0
  73. package/dist/types/vectors.js +5 -0
  74. package/dist/types/vectors.js.map +1 -0
  75. package/dist/vectors/config.d.ts +13 -0
  76. package/dist/vectors/config.d.ts.map +1 -0
  77. package/dist/vectors/config.js +24 -0
  78. package/dist/vectors/config.js.map +1 -0
  79. package/dist/vectors/index.d.ts +9 -0
  80. package/dist/vectors/index.d.ts.map +1 -0
  81. package/dist/vectors/index.js +8 -0
  82. package/dist/vectors/index.js.map +1 -0
  83. package/dist/vectors/store.d.ts +24 -0
  84. package/dist/vectors/store.d.ts.map +1 -0
  85. package/dist/vectors/store.js +156 -0
  86. package/dist/vectors/store.js.map +1 -0
  87. package/package.json +63 -0
@@ -0,0 +1,156 @@
1
+ /**
2
+ * Vector Store
3
+ *
4
+ * Unified interface for vector storage across providers.
5
+ */
6
+ /**
7
+ * Create a vector store for the configured provider
8
+ */
9
+ export function createVectorStore(config) {
10
+ switch (config.provider) {
11
+ case 'memory':
12
+ return createMemoryStore(config);
13
+ case 'pinecone':
14
+ return createPineconeStore(config);
15
+ case 'pgvector':
16
+ return createPgVectorStore(config);
17
+ default:
18
+ throw new Error(`Unsupported vector store provider: ${config.provider}`);
19
+ }
20
+ }
21
+ /**
22
+ * In-memory vector store (for development/testing)
23
+ */
24
+ function createMemoryStore(config) {
25
+ const vectors = new Map();
26
+ return {
27
+ async upsert(newVectors) {
28
+ for (const v of newVectors) {
29
+ vectors.set(v.id, v);
30
+ }
31
+ },
32
+ async search(query) {
33
+ const results = [];
34
+ for (const [id, vector] of vectors) {
35
+ const score = cosineSimilarity(query.vector, vector.values);
36
+ if (query.minScore && score < query.minScore)
37
+ continue;
38
+ results.push({
39
+ id,
40
+ score,
41
+ metadata: query.includeMetadata ? vector.metadata : undefined,
42
+ values: query.includeValues ? vector.values : undefined,
43
+ });
44
+ }
45
+ return results
46
+ .sort((a, b) => b.score - a.score)
47
+ .slice(0, query.topK);
48
+ },
49
+ async delete(ids) {
50
+ for (const id of ids) {
51
+ vectors.delete(id);
52
+ }
53
+ },
54
+ async fetch(ids) {
55
+ return ids
56
+ .map(id => vectors.get(id))
57
+ .filter((v) => v !== undefined);
58
+ },
59
+ };
60
+ }
61
+ /**
62
+ * Pinecone vector store
63
+ */
64
+ function createPineconeStore(config) {
65
+ if (!config.pinecone?.apiKey) {
66
+ throw new Error('Pinecone API key is required');
67
+ }
68
+ return {
69
+ async upsert(vectors) {
70
+ const { Pinecone } = await import('@pinecone-database/pinecone');
71
+ const client = new Pinecone({ apiKey: config.pinecone.apiKey });
72
+ const index = client.index(config.indexName);
73
+ await index.upsert(vectors.map(v => ({
74
+ id: v.id,
75
+ values: v.values,
76
+ metadata: v.metadata,
77
+ })));
78
+ },
79
+ async search(query) {
80
+ const { Pinecone } = await import('@pinecone-database/pinecone');
81
+ const client = new Pinecone({ apiKey: config.pinecone.apiKey });
82
+ const index = client.index(config.indexName);
83
+ const results = await index.query({
84
+ vector: query.vector,
85
+ topK: query.topK,
86
+ includeMetadata: query.includeMetadata,
87
+ includeValues: query.includeValues,
88
+ filter: query.filter,
89
+ });
90
+ return (results.matches || [])
91
+ .filter(m => !query.minScore || (m.score && m.score >= query.minScore))
92
+ .map(m => ({
93
+ id: m.id,
94
+ score: m.score || 0,
95
+ metadata: m.metadata,
96
+ values: m.values,
97
+ }));
98
+ },
99
+ async delete(ids) {
100
+ const { Pinecone } = await import('@pinecone-database/pinecone');
101
+ const client = new Pinecone({ apiKey: config.pinecone.apiKey });
102
+ const index = client.index(config.indexName);
103
+ await index.deleteMany(ids);
104
+ },
105
+ async fetch(ids) {
106
+ const { Pinecone } = await import('@pinecone-database/pinecone');
107
+ const client = new Pinecone({ apiKey: config.pinecone.apiKey });
108
+ const index = client.index(config.indexName);
109
+ const results = await index.fetch(ids);
110
+ return Object.entries(results.records || {}).map(([id, record]) => ({
111
+ id,
112
+ values: record.values,
113
+ metadata: record.metadata,
114
+ }));
115
+ },
116
+ };
117
+ }
118
+ /**
119
+ * pgvector store (PostgreSQL)
120
+ */
121
+ function createPgVectorStore(config) {
122
+ if (!config.pgvector?.connectionString) {
123
+ throw new Error('pgvector connection string is required');
124
+ }
125
+ const tableName = config.pgvector.tableName || 'vectors';
126
+ return {
127
+ async upsert(_vectors) {
128
+ // Implementation requires pg client
129
+ throw new Error('pgvector upsert requires pg client - use with your database connection');
130
+ },
131
+ async search(_query) {
132
+ throw new Error('pgvector search requires pg client - use with your database connection');
133
+ },
134
+ async delete(_ids) {
135
+ throw new Error('pgvector delete requires pg client - use with your database connection');
136
+ },
137
+ async fetch(_ids) {
138
+ throw new Error('pgvector fetch requires pg client - use with your database connection');
139
+ },
140
+ };
141
+ }
142
+ /**
143
+ * Calculate cosine similarity between two vectors
144
+ */
145
+ function cosineSimilarity(a, b) {
146
+ let dotProduct = 0;
147
+ let normA = 0;
148
+ let normB = 0;
149
+ for (let i = 0; i < a.length; i++) {
150
+ dotProduct += a[i] * b[i];
151
+ normA += a[i] * a[i];
152
+ normB += b[i] * b[i];
153
+ }
154
+ return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));
155
+ }
156
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/vectors/store.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "@venturekit-pro/ai",
3
+ "version": "0.0.0-dev.20260323005827",
4
+ "description": "AI utilities for VentureKit - embeddings, RAG, and agents",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "https://github.com/venturekit-dev/venturekit-pro.git",
14
+ "directory": "packages/ai"
15
+ },
16
+ "publishConfig": {
17
+ "registry": "https://registry.npmjs.org",
18
+ "access": "restricted"
19
+ },
20
+ "license": "Apache-2.0",
21
+ "exports": {
22
+ ".": {
23
+ "import": "./dist/index.js",
24
+ "types": "./dist/index.d.ts"
25
+ }
26
+ },
27
+ "keywords": [
28
+ "venturekit",
29
+ "saas",
30
+ "ai",
31
+ "embeddings",
32
+ "rag"
33
+ ],
34
+ "dependencies": {
35
+ "@venturekit/core": "0.0.0-dev.20260312012510"
36
+ },
37
+ "peerDependencies": {
38
+ "@aws-sdk/client-bedrock-runtime": "^3.0.0",
39
+ "@pinecone-database/pinecone": "^4.0.0",
40
+ "openai": "^4.0.0"
41
+ },
42
+ "peerDependenciesMeta": {
43
+ "@aws-sdk/client-bedrock-runtime": {
44
+ "optional": true
45
+ },
46
+ "@pinecone-database/pinecone": {
47
+ "optional": true
48
+ },
49
+ "openai": {
50
+ "optional": true
51
+ }
52
+ },
53
+ "devDependencies": {
54
+ "@pinecone-database/pinecone": "^4.0.0",
55
+ "@types/node": "^20.10.0",
56
+ "typescript": "^5.3.0"
57
+ },
58
+ "scripts": {
59
+ "build": "tsc",
60
+ "dev": "tsc --watch",
61
+ "clean": "rm -rf dist"
62
+ }
63
+ }