@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.
- package/LICENSE +19 -0
- package/README.md +117 -0
- package/dist/agents/agent.d.ts +22 -0
- package/dist/agents/agent.d.ts.map +1 -0
- package/dist/agents/agent.js +138 -0
- package/dist/agents/agent.js.map +1 -0
- package/dist/agents/config.d.ts +13 -0
- package/dist/agents/config.d.ts.map +1 -0
- package/dist/agents/config.js +24 -0
- package/dist/agents/config.js.map +1 -0
- package/dist/agents/index.d.ts +10 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +9 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/tools.d.ts +14 -0
- package/dist/agents/tools.d.ts.map +1 -0
- package/dist/agents/tools.js +15 -0
- package/dist/agents/tools.js.map +1 -0
- package/dist/context/context.d.ts +118 -0
- package/dist/context/context.d.ts.map +1 -0
- package/dist/context/context.js +132 -0
- package/dist/context/context.js.map +1 -0
- package/dist/embeddings/config.d.ts +13 -0
- package/dist/embeddings/config.d.ts.map +1 -0
- package/dist/embeddings/config.js +25 -0
- package/dist/embeddings/config.js.map +1 -0
- package/dist/embeddings/embedder.d.ts +20 -0
- package/dist/embeddings/embedder.d.ts.map +1 -0
- package/dist/embeddings/embedder.js +100 -0
- package/dist/embeddings/embedder.js.map +1 -0
- package/dist/embeddings/index.d.ts +9 -0
- package/dist/embeddings/index.d.ts.map +1 -0
- package/dist/embeddings/index.js +8 -0
- package/dist/embeddings/index.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/rag/chunker.d.ts +11 -0
- package/dist/rag/chunker.d.ts.map +1 -0
- package/dist/rag/chunker.js +109 -0
- package/dist/rag/chunker.js.map +1 -0
- package/dist/rag/config.d.ts +13 -0
- package/dist/rag/config.d.ts.map +1 -0
- package/dist/rag/config.js +35 -0
- package/dist/rag/config.js.map +1 -0
- package/dist/rag/index.d.ts +10 -0
- package/dist/rag/index.d.ts.map +1 -0
- package/dist/rag/index.js +9 -0
- package/dist/rag/index.js.map +1 -0
- package/dist/rag/pipeline.d.ts +26 -0
- package/dist/rag/pipeline.d.ts.map +1 -0
- package/dist/rag/pipeline.js +79 -0
- package/dist/rag/pipeline.js.map +1 -0
- package/dist/types/agents.d.ts +118 -0
- package/dist/types/agents.d.ts.map +1 -0
- package/dist/types/agents.js +5 -0
- package/dist/types/agents.js.map +1 -0
- package/dist/types/embeddings.d.ts +69 -0
- package/dist/types/embeddings.d.ts.map +1 -0
- package/dist/types/embeddings.js +5 -0
- package/dist/types/embeddings.js.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/rag.d.ts +92 -0
- package/dist/types/rag.d.ts.map +1 -0
- package/dist/types/rag.js +5 -0
- package/dist/types/rag.js.map +1 -0
- package/dist/types/vectors.d.ts +98 -0
- package/dist/types/vectors.d.ts.map +1 -0
- package/dist/types/vectors.js +5 -0
- package/dist/types/vectors.js.map +1 -0
- package/dist/vectors/config.d.ts +13 -0
- package/dist/vectors/config.d.ts.map +1 -0
- package/dist/vectors/config.js +24 -0
- package/dist/vectors/config.js.map +1 -0
- package/dist/vectors/index.d.ts +9 -0
- package/dist/vectors/index.d.ts.map +1 -0
- package/dist/vectors/index.js +8 -0
- package/dist/vectors/index.js.map +1 -0
- package/dist/vectors/store.d.ts +24 -0
- package/dist/vectors/store.d.ts.map +1 -0
- package/dist/vectors/store.js +156 -0
- package/dist/vectors/store.js.map +1 -0
- 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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"}
|