@intella/sdk 0.0.1 → 0.0.3
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 +6 -483
- package/dist/agent-manager.d.ts +47 -0
- package/dist/agent-manager.d.ts.map +1 -0
- package/dist/agent-manager.js +90 -0
- package/dist/agent-manager.js.map +1 -0
- package/dist/agents/base-agent.d.ts +41 -0
- package/dist/agents/base-agent.d.ts.map +1 -0
- package/dist/agents/base-agent.js +148 -0
- package/dist/agents/base-agent.js.map +1 -0
- package/dist/agents/claude-agent.d.ts +24 -0
- package/dist/agents/claude-agent.d.ts.map +1 -0
- package/dist/agents/claude-agent.js +65 -0
- package/dist/agents/claude-agent.js.map +1 -0
- package/dist/agents/codex-agent.d.ts +25 -0
- package/dist/agents/codex-agent.d.ts.map +1 -0
- package/dist/agents/codex-agent.js +62 -0
- package/dist/agents/codex-agent.js.map +1 -0
- package/dist/agents/intella-lite-agent.d.ts +21 -0
- package/dist/agents/intella-lite-agent.d.ts.map +1 -0
- package/dist/agents/intella-lite-agent.js +43 -0
- package/dist/agents/intella-lite-agent.js.map +1 -0
- package/dist/agents/opencode-agent.d.ts +20 -0
- package/dist/agents/opencode-agent.d.ts.map +1 -0
- package/dist/agents/opencode-agent.js +36 -0
- package/dist/agents/opencode-agent.js.map +1 -0
- package/dist/filesystem/base-provider.d.ts +55 -0
- package/dist/filesystem/base-provider.d.ts.map +1 -0
- package/dist/filesystem/base-provider.js +45 -0
- package/dist/filesystem/base-provider.js.map +1 -0
- package/dist/filesystem/index.d.ts +3 -0
- package/dist/filesystem/index.d.ts.map +1 -0
- package/{src/filesystem/index.ts → dist/filesystem/index.js} +1 -2
- package/dist/filesystem/index.js.map +1 -0
- package/dist/filesystem/memory-provider.d.ts +44 -0
- package/dist/filesystem/memory-provider.d.ts.map +1 -0
- package/dist/filesystem/memory-provider.js +227 -0
- package/dist/filesystem/memory-provider.js.map +1 -0
- package/dist/filesystem-manager.d.ts +75 -0
- package/dist/filesystem-manager.d.ts.map +1 -0
- package/dist/filesystem-manager.js +162 -0
- package/dist/filesystem-manager.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/{src/index.ts → dist/index.js} +4 -47
- package/dist/index.js.map +1 -0
- package/dist/orchestrator.d.ts +32 -0
- package/dist/orchestrator.d.ts.map +1 -0
- package/dist/orchestrator.js +137 -0
- package/dist/orchestrator.js.map +1 -0
- package/dist/sandbox/base-provider.d.ts +106 -0
- package/dist/sandbox/base-provider.d.ts.map +1 -0
- package/dist/sandbox/base-provider.js +74 -0
- package/dist/sandbox/base-provider.js.map +1 -0
- package/dist/sandbox/daytona-provider.d.ts +93 -0
- package/dist/sandbox/daytona-provider.d.ts.map +1 -0
- package/dist/sandbox/daytona-provider.js +378 -0
- package/dist/sandbox/daytona-provider.js.map +1 -0
- package/dist/sandbox/e2b-provider.d.ts +85 -0
- package/dist/sandbox/e2b-provider.d.ts.map +1 -0
- package/dist/sandbox/e2b-provider.js +363 -0
- package/dist/sandbox/e2b-provider.js.map +1 -0
- package/dist/sandbox/modal-provider.d.ts +92 -0
- package/dist/sandbox/modal-provider.d.ts.map +1 -0
- package/dist/sandbox/modal-provider.js +516 -0
- package/dist/sandbox/modal-provider.js.map +1 -0
- package/dist/sandbox-manager.d.ts +59 -0
- package/dist/sandbox-manager.d.ts.map +1 -0
- package/dist/sandbox-manager.js +141 -0
- package/dist/sandbox-manager.js.map +1 -0
- package/dist/sdk.d.ts +173 -0
- package/dist/sdk.d.ts.map +1 -0
- package/dist/sdk.js +277 -0
- package/dist/sdk.js.map +1 -0
- package/dist/types.d.ts +423 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/code-extractor.d.ts +103 -0
- package/dist/utils/code-extractor.d.ts.map +1 -0
- package/dist/utils/code-extractor.js +133 -0
- package/dist/utils/code-extractor.js.map +1 -0
- package/package.json +23 -11
- package/examples/claude-code/README.md +0 -178
- package/examples/claude-code/advanced-config.ts +0 -55
- package/examples/claude-code/basic-usage.ts +0 -56
- package/examples/claude-code/model-comparison.ts +0 -50
- package/examples/claude-code/orchestration.ts +0 -70
- package/examples/claude-code/streaming.ts +0 -69
- package/examples/claude-code/tsconfig.json +0 -19
- package/examples/code-extractor/README.md +0 -77
- package/examples/code-extractor/example.ts +0 -145
- package/examples/filesystem/basic-usage.ts +0 -84
- package/examples/integrated-task/README.md +0 -68
- package/examples/integrated-task/integrated-usage.ts +0 -193
- package/examples/integrated-task/simple-example.ts +0 -51
- package/examples/integrated-task/tsconfig.json +0 -19
- package/examples/sandbox/basic-usage.ts +0 -173
- package/src/agent-manager.ts +0 -104
- package/src/agents/base-agent.ts +0 -166
- package/src/agents/claude-agent.ts +0 -77
- package/src/agents/codex-agent.ts +0 -72
- package/src/agents/intella-lite-agent.ts +0 -55
- package/src/agents/opencode-agent.ts +0 -45
- package/src/filesystem/agentfs-provider.ts +0 -328
- package/src/filesystem/base-provider.ts +0 -98
- package/src/filesystem/memory-provider.ts +0 -267
- package/src/filesystem-manager.ts +0 -213
- package/src/orchestrator.ts +0 -177
- package/src/sandbox/base-provider.ts +0 -184
- package/src/sandbox/daytona-provider.ts +0 -462
- package/src/sandbox/e2b-provider.ts +0 -419
- package/src/sandbox/modal-provider.ts +0 -597
- package/src/sandbox-manager.ts +0 -175
- package/src/sdk.ts +0 -401
- package/src/types.ts +0 -451
- package/src/utils/code-extractor.ts +0 -194
- package/tsconfig.json +0 -25
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { generateText, streamText } from 'ai';
|
|
2
|
+
/**
|
|
3
|
+
* Abstract base class for all agents
|
|
4
|
+
* Provides common functionality using AI SDK v6
|
|
5
|
+
*/
|
|
6
|
+
export class BaseAgent {
|
|
7
|
+
config;
|
|
8
|
+
type;
|
|
9
|
+
constructor(type, config = {}) {
|
|
10
|
+
this.type = type;
|
|
11
|
+
this.config = { ...config };
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Execute a task and return the response
|
|
15
|
+
*/
|
|
16
|
+
async execute(request) {
|
|
17
|
+
const model = await Promise.resolve(this.getModel());
|
|
18
|
+
const messages = this.buildMessages(request);
|
|
19
|
+
const result = await generateText({
|
|
20
|
+
model,
|
|
21
|
+
messages,
|
|
22
|
+
temperature: request.temperature ?? this.config.temperature,
|
|
23
|
+
maxOutputTokens: request.maxTokens ?? this.config.maxTokens,
|
|
24
|
+
});
|
|
25
|
+
return {
|
|
26
|
+
text: result.text,
|
|
27
|
+
agentType: this.type,
|
|
28
|
+
metadata: {
|
|
29
|
+
usage: result.usage,
|
|
30
|
+
finishReason: result.finishReason,
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Stream a task execution
|
|
36
|
+
*/
|
|
37
|
+
async *stream(request) {
|
|
38
|
+
const model = await Promise.resolve(this.getModel());
|
|
39
|
+
const messages = this.buildMessages(request);
|
|
40
|
+
const result = streamText({
|
|
41
|
+
model,
|
|
42
|
+
messages,
|
|
43
|
+
temperature: request.temperature ?? this.config.temperature,
|
|
44
|
+
maxOutputTokens: request.maxTokens ?? this.config.maxTokens,
|
|
45
|
+
});
|
|
46
|
+
let fullText = '';
|
|
47
|
+
for await (const chunk of result.fullStream) {
|
|
48
|
+
console.log('chunk', chunk);
|
|
49
|
+
let text = '';
|
|
50
|
+
if (chunk.type === 'text-delta' || 'text' in chunk) {
|
|
51
|
+
fullText += chunk.text;
|
|
52
|
+
text = chunk.text;
|
|
53
|
+
}
|
|
54
|
+
yield {
|
|
55
|
+
id: `chunk-${Date.now() * 1}`,
|
|
56
|
+
text: text,
|
|
57
|
+
agentType: this.type,
|
|
58
|
+
isDone: false,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
// Final chunk to indicate completion
|
|
62
|
+
yield {
|
|
63
|
+
id: `chunk-${Date.now() * 1}`,
|
|
64
|
+
text: '',
|
|
65
|
+
agentType: this.type,
|
|
66
|
+
isDone: true,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Configure the agent
|
|
71
|
+
*/
|
|
72
|
+
configure(config) {
|
|
73
|
+
this.config = { ...this.config, ...config };
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get current configuration
|
|
77
|
+
*/
|
|
78
|
+
getConfig() {
|
|
79
|
+
return { ...this.config };
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Convert TaskRequest content to AI SDK ModelMessage content format
|
|
83
|
+
*/
|
|
84
|
+
convertContent(content) {
|
|
85
|
+
// If content is a string, return as-is
|
|
86
|
+
if (typeof content === 'string') {
|
|
87
|
+
return content;
|
|
88
|
+
}
|
|
89
|
+
// If content is an array, convert to AI SDK format
|
|
90
|
+
return content.map(part => {
|
|
91
|
+
if (part.type === 'text') {
|
|
92
|
+
return {
|
|
93
|
+
type: 'text',
|
|
94
|
+
text: part.text,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
else if (part.type === 'file') {
|
|
98
|
+
return {
|
|
99
|
+
type: 'file',
|
|
100
|
+
data: part.data,
|
|
101
|
+
filename: part.filename,
|
|
102
|
+
mediaType: part.mediaType,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
// Fallback for unknown types
|
|
106
|
+
return {
|
|
107
|
+
type: 'text',
|
|
108
|
+
text: String(part),
|
|
109
|
+
};
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Build messages array from request
|
|
114
|
+
*/
|
|
115
|
+
buildMessages(request) {
|
|
116
|
+
const messages = [];
|
|
117
|
+
// Add system prompt if provided
|
|
118
|
+
if (request.systemPrompt) {
|
|
119
|
+
messages.push({
|
|
120
|
+
role: 'system',
|
|
121
|
+
content: request.systemPrompt,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
// Add previous messages if provided
|
|
125
|
+
if (request.messages && request.messages.length > 0) {
|
|
126
|
+
for (const msg of request.messages) {
|
|
127
|
+
// Skip system messages in the messages array (they're handled separately)
|
|
128
|
+
if (msg.role === 'system') {
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
messages.push({
|
|
132
|
+
role: msg.role,
|
|
133
|
+
content: this.convertContent(msg.content),
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
// Add the main prompt as user message (only if not empty)
|
|
138
|
+
// If prompt is empty, the message is likely already in the messages array
|
|
139
|
+
if (request.prompt && request.prompt.trim()) {
|
|
140
|
+
messages.push({
|
|
141
|
+
role: 'user',
|
|
142
|
+
content: request.prompt,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
return messages;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=base-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-agent.js","sourceRoot":"","sources":["../../src/agents/base-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BaseAgent } from './base-agent.js';
|
|
2
|
+
import type { AgentConfig } from '../types.js';
|
|
3
|
+
import type { LanguageModel } from 'ai';
|
|
4
|
+
/**
|
|
5
|
+
* Claude Agent
|
|
6
|
+
* Powered by Claude Code provider
|
|
7
|
+
*/
|
|
8
|
+
export declare class ClaudeAgent extends BaseAgent {
|
|
9
|
+
private modelInstance;
|
|
10
|
+
constructor(config?: AgentConfig);
|
|
11
|
+
/**
|
|
12
|
+
* Get or create the language model instance
|
|
13
|
+
*
|
|
14
|
+
* Supports Claude Code provider options:
|
|
15
|
+
* - allowedTools, disallowedTools, mcpServers, permissionMode, maxTurns, cwd, verbose
|
|
16
|
+
* See: https://ai-sdk.dev/providers/community-providers/claude-code
|
|
17
|
+
*/
|
|
18
|
+
getModel(): Promise<LanguageModel>;
|
|
19
|
+
/**
|
|
20
|
+
* Override configure to reset model instance when config changes
|
|
21
|
+
*/
|
|
22
|
+
configure(config: AgentConfig): void;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=claude-agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-agent.d.ts","sourceRoot":"","sources":["../../src/agents/claude-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAKxC;;;GAGG;AACH,qBAAa,WAAY,SAAQ,SAAS;IACxC,OAAO,CAAC,aAAa,CAA8B;gBAEvC,MAAM,GAAE,WAAgB;IAIpC;;;;;;OAMG;IACG,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC;IA0CxC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;CAKrC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { BaseAgent } from './base-agent.js';
|
|
2
|
+
import { claudeCode, createClaudeCode } from 'ai-sdk-provider-claude-code';
|
|
3
|
+
/**
|
|
4
|
+
* Claude Agent
|
|
5
|
+
* Powered by Claude Code provider
|
|
6
|
+
*/
|
|
7
|
+
export class ClaudeAgent extends BaseAgent {
|
|
8
|
+
modelInstance = null;
|
|
9
|
+
constructor(config = {}) {
|
|
10
|
+
super('claude', config);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Get or create the language model instance
|
|
14
|
+
*
|
|
15
|
+
* Supports Claude Code provider options:
|
|
16
|
+
* - allowedTools, disallowedTools, mcpServers, permissionMode, maxTurns, cwd, verbose
|
|
17
|
+
* See: https://ai-sdk.dev/providers/community-providers/claude-code
|
|
18
|
+
*/
|
|
19
|
+
async getModel() {
|
|
20
|
+
if (!this.modelInstance) {
|
|
21
|
+
// Dynamic import to handle optional peer dependency
|
|
22
|
+
// Claude Code provider takes model ID as string parameter
|
|
23
|
+
// Uses CLI authentication (claude login) - API key not needed in code
|
|
24
|
+
// Model shortcuts: 'opus', 'sonnet', 'haiku'
|
|
25
|
+
const modelId = this.config.model || 'sonnet';
|
|
26
|
+
// Check if custom provider options are provided
|
|
27
|
+
const hasCustomOptions = this.config.allowedTools ||
|
|
28
|
+
this.config.disallowedTools ||
|
|
29
|
+
this.config.mcpServers ||
|
|
30
|
+
this.config.permissionMode ||
|
|
31
|
+
this.config.maxTurns ||
|
|
32
|
+
this.config.cwd !== undefined ||
|
|
33
|
+
this.config.verbose !== undefined;
|
|
34
|
+
if (hasCustomOptions) {
|
|
35
|
+
// Create custom provider instance with options
|
|
36
|
+
const customProvider = createClaudeCode({
|
|
37
|
+
defaultSettings: {
|
|
38
|
+
allowedTools: this.config.allowedTools,
|
|
39
|
+
disallowedTools: this.config.disallowedTools,
|
|
40
|
+
mcpServers: this.config.mcpServers,
|
|
41
|
+
permissionMode: this.config.permissionMode,
|
|
42
|
+
maxTurns: this.config.maxTurns,
|
|
43
|
+
cwd: this.config.cwd,
|
|
44
|
+
verbose: this.config.verbose,
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
this.modelInstance = customProvider(modelId);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
// Use default provider instance
|
|
51
|
+
this.modelInstance = claudeCode(modelId);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return this.modelInstance;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Override configure to reset model instance when config changes
|
|
58
|
+
*/
|
|
59
|
+
configure(config) {
|
|
60
|
+
super.configure(config);
|
|
61
|
+
// Reset model instance so it's recreated with new config
|
|
62
|
+
this.modelInstance = null;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=claude-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-agent.js","sourceRoot":"","sources":["../../src/agents/claude-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAwB,MAAM,6BAA6B,CAAC;AAGjG;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,SAAS;IAChC,aAAa,GAAyB,IAAI,CAAC;IAEnD,YAAY,SAAsB,EAAE;QAClC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,oDAAoD;YAEpD,0DAA0D;YAC1D,sEAAsE;YACtE,6CAA6C;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC;YAE9C,gDAAgD;YAChD,MAAM,gBAAgB,GACpB,IAAI,CAAC,MAAM,CAAC,YAAY;gBACxB,IAAI,CAAC,MAAM,CAAC,eAAe;gBAC3B,IAAI,CAAC,MAAM,CAAC,UAAU;gBACtB,IAAI,CAAC,MAAM,CAAC,cAAc;gBAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ;gBACpB,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS;gBAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC;YAEpC,IAAI,gBAAgB,EAAE,CAAC;gBACrB,+CAA+C;gBAC/C,MAAM,cAAc,GAAG,gBAAgB,CAAC;oBACtC,eAAe,EAAE;wBACf,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAoC;wBAC9D,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,eAAuC;wBACpE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAyD;wBACjF,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,cAAsF;wBAClH,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAA8B;wBACpD,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAyB;wBAC1C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAA8B;qBACpD;iBACF,CAAC,CAAC;gBACH,IAAI,CAAC,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,gCAAgC;gBAChC,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAmB;QAC3B,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACxB,yDAAyD;QACzD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { BaseAgent } from './base-agent.js';
|
|
2
|
+
import type { AgentConfig } from '../types.js';
|
|
3
|
+
import type { LanguageModel } from 'ai';
|
|
4
|
+
/**
|
|
5
|
+
* Codex Agent
|
|
6
|
+
* Powered by Codex CLI provider
|
|
7
|
+
*/
|
|
8
|
+
export declare class CodexAgent extends BaseAgent {
|
|
9
|
+
private modelInstance;
|
|
10
|
+
constructor(config?: AgentConfig);
|
|
11
|
+
/**
|
|
12
|
+
* Get or create the language model instance
|
|
13
|
+
*
|
|
14
|
+
* Supports Codex CLI provider options:
|
|
15
|
+
* - reasoningEffort, approvalMode, sandboxMode, mcpServers, verbose, logger
|
|
16
|
+
* - Can use OPENAI_API_KEY environment variable for authentication
|
|
17
|
+
* See: https://ai-sdk.dev/providers/community-providers/codex-cli
|
|
18
|
+
*/
|
|
19
|
+
getModel(): Promise<LanguageModel>;
|
|
20
|
+
/**
|
|
21
|
+
* Override configure to reset model instance when config changes
|
|
22
|
+
*/
|
|
23
|
+
configure(config: AgentConfig): void;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=codex-agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-agent.d.ts","sourceRoot":"","sources":["../../src/agents/codex-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC;;;GAGG;AACH,qBAAa,UAAW,SAAQ,SAAS;IACvC,OAAO,CAAC,aAAa,CAA8B;gBAEvC,MAAM,GAAE,WAAgB;IAIpC;;;;;;;OAOG;IACG,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC;IAuCxC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;CAKrC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { BaseAgent } from './base-agent.js';
|
|
2
|
+
/**
|
|
3
|
+
* Codex Agent
|
|
4
|
+
* Powered by Codex CLI provider
|
|
5
|
+
*/
|
|
6
|
+
export class CodexAgent extends BaseAgent {
|
|
7
|
+
modelInstance = null;
|
|
8
|
+
constructor(config = {}) {
|
|
9
|
+
super('codex', config);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Get or create the language model instance
|
|
13
|
+
*
|
|
14
|
+
* Supports Codex CLI provider options:
|
|
15
|
+
* - reasoningEffort, approvalMode, sandboxMode, mcpServers, verbose, logger
|
|
16
|
+
* - Can use OPENAI_API_KEY environment variable for authentication
|
|
17
|
+
* See: https://ai-sdk.dev/providers/community-providers/codex-cli
|
|
18
|
+
*/
|
|
19
|
+
async getModel() {
|
|
20
|
+
if (!this.modelInstance) {
|
|
21
|
+
// Dynamic import to handle optional peer dependency
|
|
22
|
+
const { codexCli } = await import('ai-sdk-provider-codex-cli');
|
|
23
|
+
// Codex CLI provider takes model ID as string parameter
|
|
24
|
+
// Uses CLI authentication or OPENAI_API_KEY env var
|
|
25
|
+
// Current models: 'gpt-5.2-codex', 'gpt-5.2', 'gpt-5.1-codex-max', 'gpt-5.1-codex-mini'
|
|
26
|
+
const modelId = this.config.model || 'gpt-5.2-codex';
|
|
27
|
+
// Check if per-model settings are provided
|
|
28
|
+
const hasModelSettings = this.config.reasoningEffort !== undefined ||
|
|
29
|
+
this.config.approvalMode !== undefined ||
|
|
30
|
+
this.config.sandboxMode !== undefined ||
|
|
31
|
+
this.config.mcpServers !== undefined ||
|
|
32
|
+
this.config.verbose !== undefined ||
|
|
33
|
+
this.config.logger !== undefined;
|
|
34
|
+
if (hasModelSettings) {
|
|
35
|
+
// Pass settings as second parameter
|
|
36
|
+
// Using type assertion for flexibility with provider-specific types
|
|
37
|
+
this.modelInstance = codexCli(modelId, {
|
|
38
|
+
reasoningEffort: this.config.reasoningEffort,
|
|
39
|
+
approvalMode: this.config.approvalMode,
|
|
40
|
+
sandboxMode: this.config.sandboxMode,
|
|
41
|
+
mcpServers: this.config.mcpServers,
|
|
42
|
+
verbose: this.config.verbose,
|
|
43
|
+
logger: this.config.logger,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
// Create model instance without additional settings
|
|
48
|
+
this.modelInstance = codexCli(modelId);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return this.modelInstance;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Override configure to reset model instance when config changes
|
|
55
|
+
*/
|
|
56
|
+
configure(config) {
|
|
57
|
+
super.configure(config);
|
|
58
|
+
// Reset model instance so it's recreated with new config
|
|
59
|
+
this.modelInstance = null;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=codex-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-agent.js","sourceRoot":"","sources":["../../src/agents/codex-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C;;;GAGG;AACH,MAAM,OAAO,UAAW,SAAQ,SAAS;IAC/B,aAAa,GAAyB,IAAI,CAAC;IAEnD,YAAY,SAAsB,EAAE;QAClC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,oDAAoD;YACpD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;YAE/D,wDAAwD;YACxD,oDAAoD;YACpD,wFAAwF;YACxF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,eAAe,CAAC;YAErD,2CAA2C;YAC3C,MAAM,gBAAgB,GACpB,IAAI,CAAC,MAAM,CAAC,eAAe,KAAK,SAAS;gBACzC,IAAI,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS;gBACtC,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS;gBACrC,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS;gBACpC,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS;gBACjC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC;YAEnC,IAAI,gBAAgB,EAAE,CAAC;gBACrB,oCAAoC;gBACpC,oEAAoE;gBACpE,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,OAAO,EAAE;oBACrC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,eAAuF;oBACpH,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAA+E;oBACzG,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAiF;oBAC1G,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAiB;oBACzC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAA8B;oBACnD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAa;iBAC3B,CAAC,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,oDAAoD;gBACpD,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAmB;QAC3B,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACxB,yDAAyD;QACzD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { LanguageModel } from 'ai';
|
|
2
|
+
import { BaseAgent } from './base-agent.js';
|
|
3
|
+
import type { AgentConfig } from '../types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Intella Lite Agent
|
|
6
|
+
* Lightweight default agent using OpenAI-compatible interface
|
|
7
|
+
* This is a separate implementation from Mielto
|
|
8
|
+
*/
|
|
9
|
+
export declare class IntellaLiteAgent extends BaseAgent {
|
|
10
|
+
private modelInstance;
|
|
11
|
+
constructor(config?: AgentConfig);
|
|
12
|
+
/**
|
|
13
|
+
* Get or create the language model instance
|
|
14
|
+
*/
|
|
15
|
+
getModel(): LanguageModel;
|
|
16
|
+
/**
|
|
17
|
+
* Override configure to reset model instance when config changes
|
|
18
|
+
*/
|
|
19
|
+
configure(config: AgentConfig): void;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=intella-lite-agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intella-lite-agent.d.ts","sourceRoot":"","sources":["../../src/agents/intella-lite-agent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,SAAS;IAC7C,OAAO,CAAC,aAAa,CAA8B;gBAEvC,MAAM,GAAE,WAAgB;IAIpC;;OAEG;IACH,QAAQ,IAAI,aAAa;IAyBzB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;CAKrC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { createOpenAI } from '@ai-sdk/openai';
|
|
2
|
+
import { BaseAgent } from './base-agent.js';
|
|
3
|
+
/**
|
|
4
|
+
* Intella Lite Agent
|
|
5
|
+
* Lightweight default agent using OpenAI-compatible interface
|
|
6
|
+
* This is a separate implementation from Mielto
|
|
7
|
+
*/
|
|
8
|
+
export class IntellaLiteAgent extends BaseAgent {
|
|
9
|
+
modelInstance = null;
|
|
10
|
+
constructor(config = {}) {
|
|
11
|
+
super('intella-lite', config);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Get or create the language model instance
|
|
15
|
+
*/
|
|
16
|
+
getModel() {
|
|
17
|
+
if (!this.modelInstance) {
|
|
18
|
+
// Use OpenAI provider as base for Intella Lite
|
|
19
|
+
// Default to a lightweight model if not specified
|
|
20
|
+
const modelId = this.config.model || 'gpt-4o-mini';
|
|
21
|
+
const apiKey = this.config.apiKey || process.env.OPENAI_API_KEY;
|
|
22
|
+
if (!apiKey) {
|
|
23
|
+
throw new Error('OpenAI API key is required for Intella Lite agent. Set OPENAI_API_KEY environment variable or provide apiKey in config.');
|
|
24
|
+
}
|
|
25
|
+
const provider = createOpenAI({
|
|
26
|
+
apiKey,
|
|
27
|
+
baseURL: this.config.baseURL || process.env.OPENAI_BASE_URL,
|
|
28
|
+
headers: this.config.headers,
|
|
29
|
+
});
|
|
30
|
+
this.modelInstance = provider.chat(modelId);
|
|
31
|
+
}
|
|
32
|
+
return this.modelInstance;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Override configure to reset model instance when config changes
|
|
36
|
+
*/
|
|
37
|
+
configure(config) {
|
|
38
|
+
super.configure(config);
|
|
39
|
+
// Reset model instance so it's recreated with new config
|
|
40
|
+
this.modelInstance = null;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=intella-lite-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intella-lite-agent.js","sourceRoot":"","sources":["../../src/agents/intella-lite-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C;;;;GAIG;AACH,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IACrC,aAAa,GAAyB,IAAI,CAAC;IAEnD,YAAY,SAAsB,EAAE;QAClC,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,+CAA+C;YAC/C,kDAAkD;YAClD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,aAAa,CAAC;YAEnD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;YAChE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CACb,yHAAyH,CAC1H,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAG,YAAY,CAAC;gBAC5B,MAAM;gBACN,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe;gBAC3D,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;aAC7B,CAAC,CAAC;YAEH,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAmB;QAC3B,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACxB,yDAAyD;QACzD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BaseAgent } from './base-agent.js';
|
|
2
|
+
import type { AgentConfig } from '../types.js';
|
|
3
|
+
import type { LanguageModel } from 'ai';
|
|
4
|
+
/**
|
|
5
|
+
* OpenCode Agent
|
|
6
|
+
* Powered by OpenCode SDK provider
|
|
7
|
+
*/
|
|
8
|
+
export declare class OpenCodeAgent extends BaseAgent {
|
|
9
|
+
private modelInstance;
|
|
10
|
+
constructor(config?: AgentConfig);
|
|
11
|
+
/**
|
|
12
|
+
* Get or create the language model instance
|
|
13
|
+
*/
|
|
14
|
+
getModel(): Promise<LanguageModel>;
|
|
15
|
+
/**
|
|
16
|
+
* Override configure to reset model instance when config changes
|
|
17
|
+
*/
|
|
18
|
+
configure(config: AgentConfig): void;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=opencode-agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-agent.d.ts","sourceRoot":"","sources":["../../src/agents/opencode-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAGxC;;;GAGG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC1C,OAAO,CAAC,aAAa,CAA8B;gBAEvC,MAAM,GAAE,WAAgB;IAIpC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC;IAiBxC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;CAKrC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { BaseAgent } from './base-agent.js';
|
|
2
|
+
import { opencode } from 'ai-sdk-provider-opencode-sdk';
|
|
3
|
+
/**
|
|
4
|
+
* OpenCode Agent
|
|
5
|
+
* Powered by OpenCode SDK provider
|
|
6
|
+
*/
|
|
7
|
+
export class OpenCodeAgent extends BaseAgent {
|
|
8
|
+
modelInstance = null;
|
|
9
|
+
constructor(config = {}) {
|
|
10
|
+
super('opencode', config);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Get or create the language model instance
|
|
14
|
+
*/
|
|
15
|
+
async getModel() {
|
|
16
|
+
if (!this.modelInstance) {
|
|
17
|
+
// Dynamic import to handle optional peer dependency
|
|
18
|
+
// OpenCode provider takes model ID as string parameter
|
|
19
|
+
// Uses CLI authentication (opencode login) - API key not needed in code
|
|
20
|
+
// Model format: 'provider/model-id' (e.g., 'anthropic/claude-sonnet-4-5-20250929')
|
|
21
|
+
const modelId = this.config.model || 'anthropic/claude-sonnet-4-5-20250929';
|
|
22
|
+
// Create model instance directly
|
|
23
|
+
this.modelInstance = opencode(modelId);
|
|
24
|
+
}
|
|
25
|
+
return this.modelInstance;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Override configure to reset model instance when config changes
|
|
29
|
+
*/
|
|
30
|
+
configure(config) {
|
|
31
|
+
super.configure(config);
|
|
32
|
+
// Reset model instance so it's recreated with new config
|
|
33
|
+
this.modelInstance = null;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=opencode-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-agent.js","sourceRoot":"","sources":["../../src/agents/opencode-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,SAAS;IAClC,aAAa,GAAyB,IAAI,CAAC;IAEnD,YAAY,SAAsB,EAAE;QAClC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,oDAAoD;YAGpD,uDAAuD;YACvD,wEAAwE;YACxE,mFAAmF;YACnF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,sCAAsC,CAAC;YAE5E,iCAAiC;YACjC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAmB;QAC3B,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACxB,yDAAyD;QACzD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { FilesystemProviderType, FilesystemConfig, FileStats, DirectoryEntry, ToolCallMetadata, IFilesystemProvider } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Base filesystem provider
|
|
4
|
+
* Abstract implementation that provides common functionality
|
|
5
|
+
*/
|
|
6
|
+
export declare abstract class BaseFilesystemProvider implements IFilesystemProvider {
|
|
7
|
+
protected initialized: boolean;
|
|
8
|
+
protected config: FilesystemConfig;
|
|
9
|
+
readonly type: FilesystemProviderType;
|
|
10
|
+
constructor(type: FilesystemProviderType);
|
|
11
|
+
/**
|
|
12
|
+
* Initialize the filesystem
|
|
13
|
+
*/
|
|
14
|
+
abstract initialize(config?: FilesystemConfig): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Check if filesystem is initialized
|
|
17
|
+
*/
|
|
18
|
+
isInitialized(): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Close/cleanup the filesystem
|
|
21
|
+
*/
|
|
22
|
+
abstract close(): Promise<void>;
|
|
23
|
+
abstract readFile(path: string): Promise<Buffer | string>;
|
|
24
|
+
abstract writeFile(path: string, data: Buffer | string): Promise<void>;
|
|
25
|
+
abstract appendFile(path: string, data: Buffer | string): Promise<void>;
|
|
26
|
+
abstract exists(path: string): Promise<boolean>;
|
|
27
|
+
abstract stat(path: string): Promise<FileStats>;
|
|
28
|
+
abstract readdir(path: string): Promise<DirectoryEntry[]>;
|
|
29
|
+
abstract mkdir(path: string, recursive?: boolean): Promise<void>;
|
|
30
|
+
abstract unlink(path: string, recursive?: boolean): Promise<void>;
|
|
31
|
+
abstract copy(src: string, dest: string): Promise<void>;
|
|
32
|
+
abstract move(src: string, dest: string): Promise<void>;
|
|
33
|
+
abstract get(key: string): Promise<unknown>;
|
|
34
|
+
abstract set(key: string, value: unknown): Promise<void>;
|
|
35
|
+
abstract delete(key: string): Promise<void>;
|
|
36
|
+
abstract listKeys(prefix?: string): Promise<string[]>;
|
|
37
|
+
abstract hasKey(key: string): Promise<boolean>;
|
|
38
|
+
abstract recordToolCall(metadata: ToolCallMetadata): Promise<void>;
|
|
39
|
+
abstract getToolCallHistory(filter?: {
|
|
40
|
+
tool?: string;
|
|
41
|
+
status?: ToolCallMetadata['status'];
|
|
42
|
+
since?: number;
|
|
43
|
+
until?: number;
|
|
44
|
+
limit?: number;
|
|
45
|
+
}): Promise<ToolCallMetadata[]>;
|
|
46
|
+
/**
|
|
47
|
+
* Normalize path (remove leading/trailing slashes, handle ..)
|
|
48
|
+
*/
|
|
49
|
+
protected normalizePath(path: string): string;
|
|
50
|
+
/**
|
|
51
|
+
* Ensure filesystem is initialized before operation
|
|
52
|
+
*/
|
|
53
|
+
protected ensureInitialized(): void;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=base-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-provider.d.ts","sourceRoot":"","sources":["../../src/filesystem/base-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base filesystem provider
|
|
3
|
+
* Abstract implementation that provides common functionality
|
|
4
|
+
*/
|
|
5
|
+
export class BaseFilesystemProvider {
|
|
6
|
+
initialized = false;
|
|
7
|
+
config = {};
|
|
8
|
+
type;
|
|
9
|
+
constructor(type) {
|
|
10
|
+
this.type = type;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Check if filesystem is initialized
|
|
14
|
+
*/
|
|
15
|
+
isInitialized() {
|
|
16
|
+
return this.initialized;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Normalize path (remove leading/trailing slashes, handle ..)
|
|
20
|
+
*/
|
|
21
|
+
normalizePath(path) {
|
|
22
|
+
return path
|
|
23
|
+
.split('/')
|
|
24
|
+
.filter((segment) => segment !== '' && segment !== '.')
|
|
25
|
+
.reduce((acc, segment) => {
|
|
26
|
+
if (segment === '..') {
|
|
27
|
+
acc.pop();
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
acc.push(segment);
|
|
31
|
+
}
|
|
32
|
+
return acc;
|
|
33
|
+
}, [])
|
|
34
|
+
.join('/');
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Ensure filesystem is initialized before operation
|
|
38
|
+
*/
|
|
39
|
+
ensureInitialized() {
|
|
40
|
+
if (!this.initialized) {
|
|
41
|
+
throw new Error(`Filesystem provider ${this.type} is not initialized. Call initialize() first.`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=base-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-provider.js","sourceRoot":"","sources":["../../src/filesystem/base-provider.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,MAAM,OAAgB,sBAAsB;IAChC,WAAW,GAAG,KAAK,CAAC;IACpB,MAAM,GAAqB,EAAE,CAAC;IACxB,IAAI,CAAyB;IAE7C,YAAY,IAA4B;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAOD;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAoCD;;OAEG;IACO,aAAa,CAAC,IAAY;QAClC,OAAO,IAAI;aACR,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,GAAG,CAAC;aACtD,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YACvB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAc,CAAC;aACjB,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED;;OAEG;IACO,iBAAiB;QACzB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,CAAC,IAAI,+CAA+C,CAChF,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/filesystem/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/filesystem/index.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC"}
|