@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
package/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ Copyright 2024 VentureKit
8
+
9
+ Licensed under the Apache License, Version 2.0 (the "License");
10
+ you may not use this file except in compliance with the License.
11
+ You may obtain a copy of the License at
12
+
13
+ http://www.apache.org/licenses/LICENSE-2.0
14
+
15
+ Unless required by applicable law or agreed to in writing, software
16
+ distributed under the License is distributed on an "AS IS" BASIS,
17
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ See the License for the specific language governing permissions and
19
+ limitations under the License.
package/README.md ADDED
@@ -0,0 +1,117 @@
1
+ # @venturekit-pro/ai
2
+
3
+ > **Warning:** This package is in active development and not production-ready. APIs may change without notice.
4
+
5
+ AI utilities for [VentureKit](https://venturekit.dev) — embeddings, vector stores, RAG pipelines, and agents with tool use.
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ npm install @venturekit-pro/ai@dev
11
+ ```
12
+
13
+ ### Optional Peer Dependencies
14
+
15
+ Install the providers you need:
16
+
17
+ ```bash
18
+ # OpenAI (embeddings, agents)
19
+ npm install openai
20
+
21
+ # AWS Bedrock (embeddings)
22
+ npm install @aws-sdk/client-bedrock-runtime
23
+
24
+ # Pinecone (vector store)
25
+ npm install @pinecone-database/pinecone
26
+ ```
27
+
28
+ ## Overview
29
+
30
+ `@venturekit-pro/ai` provides:
31
+
32
+ - **Embeddings** — generate vector embeddings via OpenAI or AWS Bedrock
33
+ - **Vector stores** — store and query vectors with Pinecone, pgvector, or in-memory
34
+ - **RAG pipelines** — chunking, retrieval, and context building for retrieval-augmented generation
35
+ - **Agents** — AI agents with tool use via OpenAI function calling
36
+
37
+ ## Embeddings
38
+
39
+ ```typescript
40
+ import { createEmbedder } from '@venturekit-pro/ai';
41
+
42
+ const embedder = createEmbedder({
43
+ provider: 'openai',
44
+ model: 'text-embedding-3-small',
45
+ apiKey: process.env.OPENAI_API_KEY,
46
+ });
47
+
48
+ const vector = await embedder.embed('What is VentureKit?');
49
+ const vectors = await embedder.embedBatch(['Question 1', 'Question 2']);
50
+ ```
51
+
52
+ ## Vector Stores
53
+
54
+ ```typescript
55
+ import { createVectorStore } from '@venturekit-pro/ai';
56
+
57
+ const store = createVectorStore({
58
+ provider: 'pinecone',
59
+ indexName: 'my-index',
60
+ apiKey: process.env.PINECONE_API_KEY,
61
+ });
62
+
63
+ await store.upsert([{ id: 'doc-1', vector, metadata: { title: 'Guide' } }]);
64
+ const results = await store.query(queryVector, { topK: 5 });
65
+ ```
66
+
67
+ ## RAG Pipeline
68
+
69
+ ```typescript
70
+ import { createRagPipeline, chunkText } from '@venturekit-pro/ai';
71
+
72
+ const rag = createRagPipeline({
73
+ embedder,
74
+ vectorStore: store,
75
+ chunkSize: 500,
76
+ chunkOverlap: 50,
77
+ });
78
+
79
+ // Ingest documents
80
+ const chunks = chunkText(documentText, { size: 500, overlap: 50 });
81
+ await rag.ingest(chunks);
82
+
83
+ // Query with context
84
+ const context = await rag.retrieve('How do I deploy?', { topK: 3 });
85
+ ```
86
+
87
+ ## Agents
88
+
89
+ ```typescript
90
+ import { createAgent, defineTool } from '@venturekit-pro/ai';
91
+
92
+ const searchTool = defineTool({
93
+ name: 'search',
94
+ description: 'Search the knowledge base',
95
+ parameters: { query: { type: 'string', description: 'Search query' } },
96
+ handler: async ({ query }) => {
97
+ return await rag.retrieve(query);
98
+ },
99
+ });
100
+
101
+ const agent = createAgent({
102
+ model: 'gpt-4',
103
+ apiKey: process.env.OPENAI_API_KEY,
104
+ tools: [searchTool],
105
+ systemPrompt: 'You are a helpful assistant.',
106
+ });
107
+
108
+ const response = await agent.run('How do I set up authentication?');
109
+ ```
110
+
111
+ ## API Reference
112
+
113
+ See the [API reference](https://venturekit.dev/api-reference/ai) for full documentation.
114
+
115
+ ## License
116
+
117
+ Apache-2.0 — see [LICENSE](../../LICENSE) for details.
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Agent
3
+ *
4
+ * AI agent with tool use capabilities.
5
+ */
6
+ import type { AgentConfig, ChatMessage, AgentResponse, Tool } from '../types/index.js';
7
+ /**
8
+ * Agent interface
9
+ */
10
+ export interface Agent {
11
+ /** Run agent with a prompt */
12
+ run(prompt: string): Promise<AgentResponse>;
13
+ /** Run agent with conversation history */
14
+ chat(messages: ChatMessage[]): Promise<AgentResponse>;
15
+ /** Add a tool to the agent */
16
+ addTool(tool: Tool): void;
17
+ }
18
+ /**
19
+ * Create an agent
20
+ */
21
+ export declare function createAgent(config: AgentConfig): Agent;
22
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agents/agent.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,8BAA8B;IAC9B,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE5C,0CAA0C;IAC1C,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEtD,8BAA8B;IAC9B,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,CAatD"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Agent
3
+ *
4
+ * AI agent with tool use capabilities.
5
+ */
6
+ /**
7
+ * Create an agent
8
+ */
9
+ export function createAgent(config) {
10
+ const tools = [...(config.tools || [])];
11
+ switch (config.provider) {
12
+ case 'openai':
13
+ return createOpenAIAgent(config, tools);
14
+ case 'anthropic':
15
+ return createAnthropicAgent(config, tools);
16
+ case 'bedrock':
17
+ return createBedrockAgent(config, tools);
18
+ default:
19
+ throw new Error(`Unsupported agent provider: ${config.provider}`);
20
+ }
21
+ }
22
+ /**
23
+ * OpenAI agent implementation
24
+ */
25
+ function createOpenAIAgent(config, tools) {
26
+ return {
27
+ async run(prompt) {
28
+ const messages = [];
29
+ if (config.systemPrompt) {
30
+ messages.push({ role: 'system', content: config.systemPrompt });
31
+ }
32
+ messages.push({ role: 'user', content: prompt });
33
+ return this.chat(messages);
34
+ },
35
+ async chat(messages) {
36
+ const { default: OpenAI } = await import('openai');
37
+ const client = new OpenAI({ apiKey: config.apiKey });
38
+ const toolCalls = [];
39
+ let iterations = 0;
40
+ const openaiMessages = messages.map(m => ({
41
+ role: m.role,
42
+ content: m.content,
43
+ }));
44
+ while (iterations < (config.maxIterations || 10)) {
45
+ iterations++;
46
+ const response = await client.chat.completions.create({
47
+ model: config.model,
48
+ messages: openaiMessages,
49
+ temperature: config.temperature,
50
+ tools: tools.length > 0 ? tools.map(t => ({
51
+ type: 'function',
52
+ function: {
53
+ name: t.name,
54
+ description: t.description,
55
+ parameters: t.parameters,
56
+ },
57
+ })) : undefined,
58
+ });
59
+ const choice = response.choices[0];
60
+ const message = choice.message;
61
+ // No tool calls, return response
62
+ if (!message.tool_calls || message.tool_calls.length === 0) {
63
+ return {
64
+ content: message.content || '',
65
+ toolCalls,
66
+ iterations,
67
+ tokensUsed: response.usage ? {
68
+ prompt: response.usage.prompt_tokens,
69
+ completion: response.usage.completion_tokens,
70
+ total: response.usage.total_tokens,
71
+ } : undefined,
72
+ };
73
+ }
74
+ // Execute tool calls
75
+ openaiMessages.push({
76
+ role: 'assistant',
77
+ content: message.content || '',
78
+ });
79
+ for (const toolCall of message.tool_calls) {
80
+ const tool = tools.find(t => t.name === toolCall.function.name);
81
+ if (!tool) {
82
+ throw new Error(`Unknown tool: ${toolCall.function.name}`);
83
+ }
84
+ const args = JSON.parse(toolCall.function.arguments);
85
+ const result = await tool.execute(args);
86
+ toolCalls.push({
87
+ tool: tool.name,
88
+ input: args,
89
+ output: result,
90
+ });
91
+ openaiMessages.push({
92
+ role: 'assistant',
93
+ content: JSON.stringify(result),
94
+ });
95
+ }
96
+ }
97
+ throw new Error(`Agent exceeded max iterations (${config.maxIterations})`);
98
+ },
99
+ addTool(tool) {
100
+ tools.push(tool);
101
+ },
102
+ };
103
+ }
104
+ /**
105
+ * Anthropic agent implementation (Claude)
106
+ */
107
+ function createAnthropicAgent(config, tools) {
108
+ return {
109
+ async run(prompt) {
110
+ // Anthropic implementation would go here
111
+ throw new Error('Anthropic agent not yet implemented - use OpenAI or Bedrock');
112
+ },
113
+ async chat(_messages) {
114
+ throw new Error('Anthropic agent not yet implemented - use OpenAI or Bedrock');
115
+ },
116
+ addTool(tool) {
117
+ tools.push(tool);
118
+ },
119
+ };
120
+ }
121
+ /**
122
+ * AWS Bedrock agent implementation
123
+ */
124
+ function createBedrockAgent(config, tools) {
125
+ return {
126
+ async run(prompt) {
127
+ // Bedrock implementation would go here
128
+ throw new Error('Bedrock agent not yet implemented - use OpenAI');
129
+ },
130
+ async chat(_messages) {
131
+ throw new Error('Bedrock agent not yet implemented - use OpenAI');
132
+ },
133
+ addTool(tool) {
134
+ tools.push(tool);
135
+ },
136
+ };
137
+ }
138
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agents/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Agent Configuration
3
+ */
4
+ import type { AgentConfig, AgentConfigInput } from '../types/index.js';
5
+ /**
6
+ * Default agent configuration (OpenAI GPT-4)
7
+ */
8
+ export declare const DEFAULT_AGENT_CONFIG: AgentConfig;
9
+ /**
10
+ * Create agent configuration from input
11
+ */
12
+ export declare function createAgentConfig(input?: AgentConfigInput): AgentConfig;
13
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/agents/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAKlC,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,WAAW,CAOvE"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Agent Configuration
3
+ */
4
+ /**
5
+ * Default agent configuration (OpenAI GPT-4)
6
+ */
7
+ export const DEFAULT_AGENT_CONFIG = {
8
+ provider: 'openai',
9
+ model: 'gpt-4-turbo-preview',
10
+ maxIterations: 10,
11
+ temperature: 0.7,
12
+ };
13
+ /**
14
+ * Create agent configuration from input
15
+ */
16
+ export function createAgentConfig(input) {
17
+ if (!input)
18
+ return DEFAULT_AGENT_CONFIG;
19
+ return {
20
+ ...DEFAULT_AGENT_CONFIG,
21
+ ...input,
22
+ };
23
+ }
24
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/agents/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC/C,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,qBAAqB;IAC5B,aAAa,EAAE,EAAE;IACjB,WAAW,EAAE,GAAG;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAwB;IACxD,IAAI,CAAC,KAAK;QAAE,OAAO,oBAAoB,CAAC;IAExC,OAAO;QACL,GAAG,oBAAoB;QACvB,GAAG,KAAK;KACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Agents
3
+ *
4
+ * Utilities for building AI agents with tool use.
5
+ */
6
+ export { createAgentConfig, DEFAULT_AGENT_CONFIG } from './config.js';
7
+ export { createAgent } from './agent.js';
8
+ export { defineTool } from './tools.js';
9
+ export type { Agent } from './agent.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Agents
3
+ *
4
+ * Utilities for building AI agents with tool use.
5
+ */
6
+ export { createAgentConfig, DEFAULT_AGENT_CONFIG } from './config.js';
7
+ export { createAgent } from './agent.js';
8
+ export { defineTool } from './tools.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Tool Definition Helpers
3
+ */
4
+ import type { Tool } from '../types/index.js';
5
+ /**
6
+ * Define a tool for agent use
7
+ */
8
+ export declare function defineTool<T extends Record<string, unknown>>(config: {
9
+ name: string;
10
+ description: string;
11
+ parameters: Tool['parameters'];
12
+ execute: (params: T) => Promise<unknown>;
13
+ }): Tool;
14
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/agents/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/B,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1C,GAAG,IAAI,CAOP"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Tool Definition Helpers
3
+ */
4
+ /**
5
+ * Define a tool for agent use
6
+ */
7
+ export function defineTool(config) {
8
+ return {
9
+ name: config.name,
10
+ description: config.description,
11
+ parameters: config.parameters,
12
+ execute: config.execute,
13
+ };
14
+ }
15
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/agents/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,UAAU,UAAU,CAAoC,MAK7D;IACC,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,OAAO,EAAE,MAAM,CAAC,OAA0B;KAC3C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * VentureKit AI Context Integration
3
+ *
4
+ * Provides tenant-aware, permission-aware AI capabilities.
5
+ * Wraps agents and RAG pipelines with VentureKit context
6
+ * so that all AI operations are scoped to the current tenant
7
+ * and respect user permissions.
8
+ */
9
+ import type { AgentConfig, Tool, AgentResponse, ChatMessage } from '../types/agents.js';
10
+ import type { RagConfig, RagQueryOptions, RetrievedContext } from '../types/rag.js';
11
+ /**
12
+ * VentureKit context for AI operations
13
+ */
14
+ export interface VentureKitAIContext {
15
+ /** Current tenant ID */
16
+ tenantId: string;
17
+ /** Current user ID */
18
+ userId?: string;
19
+ /** User roles/permissions */
20
+ permissions?: string[];
21
+ /** Additional metadata to inject */
22
+ metadata?: Record<string, unknown>;
23
+ }
24
+ /**
25
+ * Permission check function
26
+ */
27
+ export type PermissionCheck = (context: VentureKitAIContext, action: string, resource?: string) => boolean | Promise<boolean>;
28
+ /**
29
+ * Context-aware agent options
30
+ */
31
+ export interface ContextAwareAgentOptions {
32
+ /** Agent config */
33
+ agentConfig: AgentConfig;
34
+ /** Create the underlying agent (injected for testability) */
35
+ createAgent: (config: AgentConfig) => {
36
+ run(prompt: string): Promise<AgentResponse>;
37
+ chat(messages: ChatMessage[]): Promise<AgentResponse>;
38
+ addTool(tool: Tool): void;
39
+ };
40
+ /** Permission check (optional) */
41
+ checkPermission?: PermissionCheck;
42
+ /** Required permission to use agent */
43
+ requiredPermission?: string;
44
+ /** Whether to inject tenant context into system prompt */
45
+ injectContext?: boolean;
46
+ }
47
+ /**
48
+ * Context-aware RAG options
49
+ */
50
+ export interface ContextAwareRagOptions {
51
+ /** Create the underlying RAG pipeline (injected for testability) */
52
+ createPipeline: (config: RagConfig) => {
53
+ index(documents: Array<{
54
+ id: string;
55
+ content: string;
56
+ metadata?: Record<string, unknown>;
57
+ }>): Promise<void>;
58
+ retrieve(query: string, options?: RagQueryOptions): Promise<RetrievedContext>;
59
+ delete(ids: string[]): Promise<void>;
60
+ };
61
+ /** RAG config */
62
+ ragConfig: RagConfig;
63
+ /** Permission check (optional) */
64
+ checkPermission?: PermissionCheck;
65
+ /** Required permission to query */
66
+ requiredPermission?: string;
67
+ }
68
+ /**
69
+ * Build a system prompt suffix with VentureKit context
70
+ */
71
+ export declare function buildContextPrompt(context: VentureKitAIContext): string;
72
+ /**
73
+ * Create a tenant-scoped metadata filter for RAG queries
74
+ */
75
+ export declare function tenantFilter(tenantId: string, additionalFilters?: Record<string, unknown>): Record<string, unknown>;
76
+ /**
77
+ * Create a context-aware agent that scopes all operations to a tenant
78
+ */
79
+ export declare function createContextAwareAgent(context: VentureKitAIContext, options: ContextAwareAgentOptions): {
80
+ /**
81
+ * Run with permission check
82
+ */
83
+ run(prompt: string): Promise<AgentResponse>;
84
+ /**
85
+ * Chat with permission check
86
+ */
87
+ chat(messages: ChatMessage[]): Promise<AgentResponse>;
88
+ /**
89
+ * Add a tool to the underlying agent
90
+ */
91
+ addTool(tool: Tool): void;
92
+ /** The VentureKit context */
93
+ context: VentureKitAIContext;
94
+ };
95
+ /**
96
+ * Create a context-aware RAG pipeline that scopes queries to a tenant
97
+ */
98
+ export declare function createContextAwareRag(context: VentureKitAIContext, options: ContextAwareRagOptions): {
99
+ /**
100
+ * Index documents with tenant metadata automatically injected
101
+ */
102
+ index(documents: Array<{
103
+ id: string;
104
+ content: string;
105
+ metadata?: Record<string, unknown>;
106
+ }>): Promise<void>;
107
+ /**
108
+ * Retrieve with automatic tenant filter
109
+ */
110
+ retrieve(query: string, options?: RagQueryOptions): Promise<RetrievedContext>;
111
+ /**
112
+ * Delete documents (scoped to tenant)
113
+ */
114
+ delete(ids: string[]): Promise<void>;
115
+ /** The VentureKit context */
116
+ context: VentureKitAIContext;
117
+ };
118
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context/context.ts"],"names":[],"mappings":"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"}