@soulcraft/sdk 3.4.2 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/modules/ai/index.d.ts +14 -8
- package/dist/modules/ai/index.d.ts.map +1 -1
- package/dist/modules/ai/index.js +64 -11
- package/dist/modules/ai/index.js.map +1 -1
- package/dist/modules/ai/ollama.d.ts +27 -0
- package/dist/modules/ai/ollama.d.ts.map +1 -0
- package/dist/modules/ai/ollama.js +231 -0
- package/dist/modules/ai/ollama.js.map +1 -0
- package/dist/modules/ai/types.d.ts +34 -0
- package/dist/modules/ai/types.d.ts.map +1 -1
- package/dist/modules/ai/types.js +13 -0
- package/dist/modules/ai/types.js.map +1 -1
- package/dist/modules/auth/sveltekit.d.ts +11 -0
- package/dist/modules/auth/sveltekit.d.ts.map +1 -1
- package/dist/modules/auth/sveltekit.js +53 -2
- package/dist/modules/auth/sveltekit.js.map +1 -1
- package/dist/modules/skills/index.d.ts +19 -29
- package/dist/modules/skills/index.d.ts.map +1 -1
- package/dist/modules/skills/index.js +54 -171
- package/dist/modules/skills/index.js.map +1 -1
- package/dist/modules/skills/types.d.ts +39 -62
- package/dist/modules/skills/types.d.ts.map +1 -1
- package/dist/modules/skills/types.js +12 -9
- package/dist/modules/skills/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -35,21 +35,27 @@
|
|
|
35
35
|
*/
|
|
36
36
|
import type { AiModule } from './types.js';
|
|
37
37
|
/**
|
|
38
|
-
* Creates an `AiModule`
|
|
38
|
+
* Creates an `AiModule` with pluggable provider support.
|
|
39
39
|
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
40
|
+
* By default, uses the Anthropic Claude API. Set `AI_DEFAULT_PROVIDER=local`
|
|
41
|
+
* or pass `provider: 'local'` per-call to route to Ollama instead.
|
|
42
42
|
*
|
|
43
43
|
* @returns A configured {@link AiModule} instance.
|
|
44
|
-
* @throws {Error} If `ANTHROPIC_API_KEY` is absent in production.
|
|
45
44
|
*
|
|
46
|
-
* @example
|
|
45
|
+
* @example Default (Claude)
|
|
46
|
+
* ```typescript
|
|
47
|
+
* const ai = createAiModule()
|
|
48
|
+
* const result = await ai.complete({ messages: [...] }) // → Claude
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* @example Mixed providers
|
|
47
52
|
* ```typescript
|
|
48
53
|
* const ai = createAiModule()
|
|
49
|
-
* const
|
|
54
|
+
* const plan = await ai.complete({ provider: 'anthropic', model: 'opus', messages }) // → Claude
|
|
55
|
+
* const exec = await ai.complete({ provider: 'local', model: 'haiku', messages }) // → Ollama
|
|
50
56
|
* ```
|
|
51
57
|
*/
|
|
52
58
|
export declare function createAiModule(): AiModule;
|
|
53
|
-
export type { AiModule, AiCompleteOptions, AiCompleteResult, AiStreamOptions, AiStreamEvent, AiToolCall, AiMessage, AiContentBlock, AiTool, AiModel, } from './types.js';
|
|
54
|
-
export { AI_MODELS } from './types.js';
|
|
59
|
+
export type { AiModule, AiCompleteOptions, AiCompleteResult, AiStreamOptions, AiStreamEvent, AiToolCall, AiMessage, AiContentBlock, AiTool, AiModel, AiProvider, } from './types.js';
|
|
60
|
+
export { AI_MODELS, OLLAMA_MODELS } from './types.js';
|
|
55
61
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,KAAK,EACV,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,KAAK,EACV,QAAQ,EAOT,MAAM,YAAY,CAAA;AAgDnB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,IAAI,QAAQ,CAqDzC;AA6MD,YAAY,EACV,QAAQ,EACR,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,UAAU,EACV,SAAS,EACT,cAAc,EACd,MAAM,EACN,OAAO,EACP,UAAU,GACX,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA"}
|
package/dist/modules/ai/index.js
CHANGED
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
*/
|
|
36
36
|
import Anthropic from '@anthropic-ai/sdk';
|
|
37
37
|
import { AI_MODELS } from './types.js';
|
|
38
|
+
import { ollamaComplete, ollamaStream } from './ollama.js';
|
|
38
39
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
39
40
|
// Factory
|
|
40
41
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
@@ -53,31 +54,83 @@ import { AI_MODELS } from './types.js';
|
|
|
53
54
|
* const result = await ai.complete({ messages: [...], model: 'claude-sonnet-4-6' })
|
|
54
55
|
* ```
|
|
55
56
|
*/
|
|
57
|
+
/**
|
|
58
|
+
* @description Resolve the Ollama base URL for a given provider type.
|
|
59
|
+
* @param provider - 'local' or 'remote'.
|
|
60
|
+
* @returns The Ollama API base URL.
|
|
61
|
+
*/
|
|
62
|
+
function _resolveOllamaUrl(provider) {
|
|
63
|
+
if (provider === 'local') {
|
|
64
|
+
return process.env['AI_LOCAL_URL'] || 'http://localhost:11434';
|
|
65
|
+
}
|
|
66
|
+
if (provider === 'remote') {
|
|
67
|
+
const url = process.env['AI_REMOTE_URL'];
|
|
68
|
+
if (!url)
|
|
69
|
+
throw new Error('AI_REMOTE_URL is required when using provider: "remote"');
|
|
70
|
+
return url;
|
|
71
|
+
}
|
|
72
|
+
throw new Error(`Unknown provider: ${provider}`);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* @description Resolve which provider to use for a given call.
|
|
76
|
+
* Per-call `options.provider` overrides the `AI_DEFAULT_PROVIDER` env var.
|
|
77
|
+
*/
|
|
78
|
+
function _resolveProvider(options) {
|
|
79
|
+
return options.provider ?? process.env['AI_DEFAULT_PROVIDER'] ?? 'anthropic';
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Creates an `AiModule` with pluggable provider support.
|
|
83
|
+
*
|
|
84
|
+
* By default, uses the Anthropic Claude API. Set `AI_DEFAULT_PROVIDER=local`
|
|
85
|
+
* or pass `provider: 'local'` per-call to route to Ollama instead.
|
|
86
|
+
*
|
|
87
|
+
* @returns A configured {@link AiModule} instance.
|
|
88
|
+
*
|
|
89
|
+
* @example Default (Claude)
|
|
90
|
+
* ```typescript
|
|
91
|
+
* const ai = createAiModule()
|
|
92
|
+
* const result = await ai.complete({ messages: [...] }) // → Claude
|
|
93
|
+
* ```
|
|
94
|
+
*
|
|
95
|
+
* @example Mixed providers
|
|
96
|
+
* ```typescript
|
|
97
|
+
* const ai = createAiModule()
|
|
98
|
+
* const plan = await ai.complete({ provider: 'anthropic', model: 'opus', messages }) // → Claude
|
|
99
|
+
* const exec = await ai.complete({ provider: 'local', model: 'haiku', messages }) // → Ollama
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
56
102
|
export function createAiModule() {
|
|
57
103
|
const apiKey = process.env['ANTHROPIC_API_KEY'];
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
104
|
+
const defaultProvider = process.env['AI_DEFAULT_PROVIDER'] ?? 'anthropic';
|
|
105
|
+
if (!apiKey && defaultProvider === 'anthropic' && process.env['NODE_ENV'] === 'production') {
|
|
106
|
+
throw new Error('ANTHROPIC_API_KEY is required when AI_DEFAULT_PROVIDER is "anthropic" in production.');
|
|
61
107
|
}
|
|
62
|
-
if (!apiKey) {
|
|
63
|
-
console.warn('[SDK/ai] ANTHROPIC_API_KEY is not set. ' +
|
|
64
|
-
'
|
|
108
|
+
if (!apiKey && defaultProvider === 'anthropic') {
|
|
109
|
+
console.warn('[SDK/ai] ANTHROPIC_API_KEY is not set. Anthropic provider will throw on use. ' +
|
|
110
|
+
'Set AI_DEFAULT_PROVIDER=local to use Ollama instead.');
|
|
65
111
|
}
|
|
66
|
-
// When the API key is absent in non-production, we defer the error to call time
|
|
67
|
-
// so the SDK can be constructed (e.g. for testing non-AI paths) without throwing.
|
|
68
112
|
const client = apiKey ? new Anthropic({ apiKey }) : null;
|
|
69
113
|
return {
|
|
70
114
|
async complete(options) {
|
|
115
|
+
const provider = _resolveProvider(options);
|
|
116
|
+
if (provider === 'local' || provider === 'remote') {
|
|
117
|
+
return ollamaComplete(_resolveOllamaUrl(provider), options);
|
|
118
|
+
}
|
|
71
119
|
if (!client) {
|
|
72
120
|
throw new Error('ANTHROPIC_API_KEY is not set. ' +
|
|
73
|
-
'
|
|
121
|
+
'Set it, or use provider: "local" / AI_DEFAULT_PROVIDER=local for Ollama.');
|
|
74
122
|
}
|
|
75
123
|
return _complete(client, options);
|
|
76
124
|
},
|
|
77
125
|
async *stream(options) {
|
|
126
|
+
const provider = _resolveProvider(options);
|
|
127
|
+
if (provider === 'local' || provider === 'remote') {
|
|
128
|
+
yield* ollamaStream(_resolveOllamaUrl(provider), options);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
78
131
|
if (!client) {
|
|
79
132
|
throw new Error('ANTHROPIC_API_KEY is not set. ' +
|
|
80
|
-
'
|
|
133
|
+
'Set it, or use provider: "local" / AI_DEFAULT_PROVIDER=local for Ollama.');
|
|
81
134
|
}
|
|
82
135
|
yield* _stream(client, options);
|
|
83
136
|
},
|
|
@@ -273,5 +326,5 @@ function _parseResponse(response) {
|
|
|
273
326
|
},
|
|
274
327
|
};
|
|
275
328
|
}
|
|
276
|
-
export { AI_MODELS } from './types.js';
|
|
329
|
+
export { AI_MODELS, OLLAMA_MODELS } from './types.js';
|
|
277
330
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,SAAS,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/ai/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module modules/ai/ollama
|
|
3
|
+
* @description Ollama provider for the SDK AI module. Translates Anthropic-format
|
|
4
|
+
* requests to Ollama's OpenAI-compatible API and back.
|
|
5
|
+
*
|
|
6
|
+
* Supports:
|
|
7
|
+
* - Non-streaming completion via `/api/chat`
|
|
8
|
+
* - Streaming completion via `/api/chat` with `stream: true`
|
|
9
|
+
* - Tool calling (Ollama supports OpenAI-format tools)
|
|
10
|
+
* - Automatic model tier mapping (claude-* → Ollama model names)
|
|
11
|
+
*/
|
|
12
|
+
import type { AiCompleteOptions, AiCompleteResult, AiStreamEvent } from './types.js';
|
|
13
|
+
/**
|
|
14
|
+
* @description Execute a non-streaming completion against Ollama.
|
|
15
|
+
* @param baseUrl - The Ollama API base URL (e.g. 'http://localhost:11434').
|
|
16
|
+
* @param options - SDK completion options.
|
|
17
|
+
* @returns SDK-formatted completion result.
|
|
18
|
+
*/
|
|
19
|
+
export declare function ollamaComplete(baseUrl: string, options: AiCompleteOptions): Promise<AiCompleteResult>;
|
|
20
|
+
/**
|
|
21
|
+
* @description Execute a streaming completion against Ollama.
|
|
22
|
+
* @param baseUrl - The Ollama API base URL.
|
|
23
|
+
* @param options - SDK completion options.
|
|
24
|
+
* @yields SDK-formatted stream events.
|
|
25
|
+
*/
|
|
26
|
+
export declare function ollamaStream(baseUrl: string, options: AiCompleteOptions): AsyncIterable<AiStreamEvent>;
|
|
27
|
+
//# sourceMappingURL=ollama.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../../src/modules/ai/ollama.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EAEd,MAAM,YAAY,CAAA;AA2EnB;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CA6D3B;AAED;;;;;GAKG;AACH,wBAAuB,YAAY,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,iBAAiB,GACzB,aAAa,CAAC,aAAa,CAAC,CAgG9B"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module modules/ai/ollama
|
|
3
|
+
* @description Ollama provider for the SDK AI module. Translates Anthropic-format
|
|
4
|
+
* requests to Ollama's OpenAI-compatible API and back.
|
|
5
|
+
*
|
|
6
|
+
* Supports:
|
|
7
|
+
* - Non-streaming completion via `/api/chat`
|
|
8
|
+
* - Streaming completion via `/api/chat` with `stream: true`
|
|
9
|
+
* - Tool calling (Ollama supports OpenAI-format tools)
|
|
10
|
+
* - Automatic model tier mapping (claude-* → Ollama model names)
|
|
11
|
+
*/
|
|
12
|
+
import { AI_MODELS, OLLAMA_MODELS } from './types.js';
|
|
13
|
+
/**
|
|
14
|
+
* @description Resolve the Ollama model name from a Claude model ID or tier name.
|
|
15
|
+
* @param model - The model string from AiCompleteOptions (e.g. 'claude-sonnet-4-6' or 'haiku').
|
|
16
|
+
* @returns The Ollama model tag (e.g. 'qwen2.5:7b').
|
|
17
|
+
*/
|
|
18
|
+
function resolveModel(model) {
|
|
19
|
+
if (!model)
|
|
20
|
+
return OLLAMA_MODELS[AI_MODELS.sonnet] ?? 'qwen2.5:7b';
|
|
21
|
+
return OLLAMA_MODELS[model] ?? model;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @description Convert SDK messages to Ollama/OpenAI chat format.
|
|
25
|
+
*/
|
|
26
|
+
function toOllamaMessages(messages, systemPrompt) {
|
|
27
|
+
const result = [];
|
|
28
|
+
if (systemPrompt) {
|
|
29
|
+
result.push({ role: 'system', content: systemPrompt });
|
|
30
|
+
}
|
|
31
|
+
for (const msg of messages) {
|
|
32
|
+
if (typeof msg.content === 'string') {
|
|
33
|
+
result.push({ role: msg.role, content: msg.content });
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
// Flatten content blocks to text + handle tool results
|
|
37
|
+
const textParts = [];
|
|
38
|
+
for (const block of msg.content) {
|
|
39
|
+
if (block.type === 'text') {
|
|
40
|
+
textParts.push(block.text);
|
|
41
|
+
}
|
|
42
|
+
else if (block.type === 'tool_result') {
|
|
43
|
+
result.push({ role: 'tool', content: block.content });
|
|
44
|
+
}
|
|
45
|
+
else if (block.type === 'tool_use') {
|
|
46
|
+
// Assistant's tool call — reconstruct as OpenAI format
|
|
47
|
+
result.push({
|
|
48
|
+
role: 'assistant',
|
|
49
|
+
content: '',
|
|
50
|
+
tool_calls: [{
|
|
51
|
+
id: block.id,
|
|
52
|
+
type: 'function',
|
|
53
|
+
function: { name: block.name, arguments: JSON.stringify(block.input) },
|
|
54
|
+
}],
|
|
55
|
+
});
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (textParts.length > 0) {
|
|
60
|
+
result.push({ role: msg.role, content: textParts.join('\n') });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* @description Convert SDK tool definitions to Ollama/OpenAI format.
|
|
68
|
+
*/
|
|
69
|
+
function toOllamaTools(tools) {
|
|
70
|
+
if (!tools || tools.length === 0)
|
|
71
|
+
return undefined;
|
|
72
|
+
return tools.map((t) => ({
|
|
73
|
+
type: 'function',
|
|
74
|
+
function: {
|
|
75
|
+
name: t.name,
|
|
76
|
+
description: t.description,
|
|
77
|
+
parameters: t.inputSchema,
|
|
78
|
+
},
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* @description Execute a non-streaming completion against Ollama.
|
|
83
|
+
* @param baseUrl - The Ollama API base URL (e.g. 'http://localhost:11434').
|
|
84
|
+
* @param options - SDK completion options.
|
|
85
|
+
* @returns SDK-formatted completion result.
|
|
86
|
+
*/
|
|
87
|
+
export async function ollamaComplete(baseUrl, options) {
|
|
88
|
+
const model = resolveModel(options.model);
|
|
89
|
+
const messages = toOllamaMessages(options.messages, options.systemPrompt);
|
|
90
|
+
const tools = toOllamaTools(options.tools);
|
|
91
|
+
const body = {
|
|
92
|
+
model,
|
|
93
|
+
messages,
|
|
94
|
+
stream: false,
|
|
95
|
+
options: {
|
|
96
|
+
num_predict: options.maxTokens ?? 8192,
|
|
97
|
+
...(options.temperature !== undefined ? { temperature: options.temperature } : {}),
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
if (tools)
|
|
101
|
+
body.tools = tools;
|
|
102
|
+
const res = await fetch(`${baseUrl}/api/chat`, {
|
|
103
|
+
method: 'POST',
|
|
104
|
+
headers: { 'Content-Type': 'application/json' },
|
|
105
|
+
body: JSON.stringify(body),
|
|
106
|
+
});
|
|
107
|
+
if (!res.ok) {
|
|
108
|
+
const text = await res.text();
|
|
109
|
+
throw new Error(`Ollama error (${res.status}): ${text}`);
|
|
110
|
+
}
|
|
111
|
+
const data = await res.json();
|
|
112
|
+
const toolCalls = [];
|
|
113
|
+
if (data.message.tool_calls) {
|
|
114
|
+
for (const tc of data.message.tool_calls) {
|
|
115
|
+
let input = {};
|
|
116
|
+
try {
|
|
117
|
+
input = JSON.parse(tc.function.arguments);
|
|
118
|
+
}
|
|
119
|
+
catch { }
|
|
120
|
+
toolCalls.push({
|
|
121
|
+
id: `tool_${crypto.randomUUID().slice(0, 8)}`,
|
|
122
|
+
name: tc.function.name,
|
|
123
|
+
input,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return {
|
|
128
|
+
text: data.message.content || null,
|
|
129
|
+
toolCalls: toolCalls.length > 0 ? toolCalls : null,
|
|
130
|
+
stopReason: toolCalls.length > 0 ? 'tool_use' : 'end_turn',
|
|
131
|
+
usage: {
|
|
132
|
+
inputTokens: data.prompt_eval_count ?? 0,
|
|
133
|
+
outputTokens: data.eval_count ?? 0,
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* @description Execute a streaming completion against Ollama.
|
|
139
|
+
* @param baseUrl - The Ollama API base URL.
|
|
140
|
+
* @param options - SDK completion options.
|
|
141
|
+
* @yields SDK-formatted stream events.
|
|
142
|
+
*/
|
|
143
|
+
export async function* ollamaStream(baseUrl, options) {
|
|
144
|
+
const model = resolveModel(options.model);
|
|
145
|
+
const messages = toOllamaMessages(options.messages, options.systemPrompt);
|
|
146
|
+
const tools = toOllamaTools(options.tools);
|
|
147
|
+
const body = {
|
|
148
|
+
model,
|
|
149
|
+
messages,
|
|
150
|
+
stream: true,
|
|
151
|
+
options: {
|
|
152
|
+
num_predict: options.maxTokens ?? 8192,
|
|
153
|
+
...(options.temperature !== undefined ? { temperature: options.temperature } : {}),
|
|
154
|
+
},
|
|
155
|
+
};
|
|
156
|
+
if (tools)
|
|
157
|
+
body.tools = tools;
|
|
158
|
+
const res = await fetch(`${baseUrl}/api/chat`, {
|
|
159
|
+
method: 'POST',
|
|
160
|
+
headers: { 'Content-Type': 'application/json' },
|
|
161
|
+
body: JSON.stringify(body),
|
|
162
|
+
});
|
|
163
|
+
if (!res.ok) {
|
|
164
|
+
const text = await res.text();
|
|
165
|
+
throw new Error(`Ollama error (${res.status}): ${text}`);
|
|
166
|
+
}
|
|
167
|
+
const reader = res.body?.getReader();
|
|
168
|
+
if (!reader)
|
|
169
|
+
throw new Error('No response body from Ollama');
|
|
170
|
+
const decoder = new TextDecoder();
|
|
171
|
+
let buffer = '';
|
|
172
|
+
let accumulatedText = '';
|
|
173
|
+
const accumulatedToolCalls = [];
|
|
174
|
+
let totalInputTokens = 0;
|
|
175
|
+
let totalOutputTokens = 0;
|
|
176
|
+
while (true) {
|
|
177
|
+
const { done, value } = await reader.read();
|
|
178
|
+
if (done)
|
|
179
|
+
break;
|
|
180
|
+
buffer += decoder.decode(value, { stream: true });
|
|
181
|
+
const lines = buffer.split('\n');
|
|
182
|
+
buffer = lines.pop() ?? '';
|
|
183
|
+
for (const line of lines) {
|
|
184
|
+
if (!line.trim())
|
|
185
|
+
continue;
|
|
186
|
+
try {
|
|
187
|
+
const chunk = JSON.parse(line);
|
|
188
|
+
if (chunk.message?.content) {
|
|
189
|
+
accumulatedText += chunk.message.content;
|
|
190
|
+
yield { type: 'text', text: chunk.message.content };
|
|
191
|
+
}
|
|
192
|
+
if (chunk.message?.tool_calls) {
|
|
193
|
+
for (const tc of chunk.message.tool_calls) {
|
|
194
|
+
let input = {};
|
|
195
|
+
try {
|
|
196
|
+
input = JSON.parse(tc.function.arguments);
|
|
197
|
+
}
|
|
198
|
+
catch { }
|
|
199
|
+
const toolCall = {
|
|
200
|
+
id: `tool_${crypto.randomUUID().slice(0, 8)}`,
|
|
201
|
+
name: tc.function.name,
|
|
202
|
+
input,
|
|
203
|
+
};
|
|
204
|
+
accumulatedToolCalls.push(toolCall);
|
|
205
|
+
yield { type: 'tool_use', toolCall };
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
if (chunk.done) {
|
|
209
|
+
totalInputTokens = chunk.prompt_eval_count ?? 0;
|
|
210
|
+
totalOutputTokens = chunk.eval_count ?? 0;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
catch {
|
|
214
|
+
// Skip malformed NDJSON lines
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
yield {
|
|
219
|
+
type: 'done',
|
|
220
|
+
result: {
|
|
221
|
+
text: accumulatedText || null,
|
|
222
|
+
toolCalls: accumulatedToolCalls.length > 0 ? accumulatedToolCalls : null,
|
|
223
|
+
stopReason: accumulatedToolCalls.length > 0 ? 'tool_use' : 'end_turn',
|
|
224
|
+
usage: {
|
|
225
|
+
inputTokens: totalInputTokens,
|
|
226
|
+
outputTokens: totalOutputTokens,
|
|
227
|
+
},
|
|
228
|
+
},
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
//# sourceMappingURL=ollama.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../../src/modules/ai/ollama.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAErD;;;;GAIG;AACH,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,KAAK;QAAE,OAAO,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,YAAY,CAAA;IAClE,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,CAAA;AACtC,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACvB,QAAuC,EACvC,YAAqB;IAErB,MAAM,MAAM,GAAqE,EAAE,CAAA;IAEnF,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;IACxD,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;QACvD,CAAC;aAAM,CAAC;YACN,uDAAuD;YACvD,MAAM,SAAS,GAAa,EAAE,CAAA;YAC9B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAChC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC1B,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAC5B,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACxC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;gBACvD,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACrC,uDAAuD;oBACvD,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,EAAE;wBACX,UAAU,EAAE,CAAC;gCACX,EAAE,EAAE,KAAK,CAAC,EAAE;gCACZ,IAAI,EAAE,UAAU;gCAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;6BACvE,CAAC;qBACH,CAAC,CAAA;oBACF,SAAQ;gBACV,CAAC;YACH,CAAC;YACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAChE,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,KAAkC;IACvD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAClD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,UAAU,EAAE,CAAC,CAAC,WAAW;SAC1B;KACF,CAAC,CAAC,CAAA;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAe,EACf,OAA0B;IAE1B,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACzC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IACzE,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAE1C,MAAM,IAAI,GAA4B;QACpC,KAAK;QACL,QAAQ;QACR,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,WAAW,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;YACtC,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnF;KACF,CAAA;IACD,IAAI,KAAK;QAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IAE7B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,WAAW,EAAE;QAC7C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAA;IAEF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;QAC7B,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAU1B,CAAA;IAED,MAAM,SAAS,GAAiB,EAAE,CAAA;IAClC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC5B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACzC,IAAI,KAAK,GAA4B,EAAE,CAAA;YACvC,IAAI,CAAC;gBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YAC1D,SAAS,CAAC,IAAI,CAAC;gBACb,EAAE,EAAE,QAAQ,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;gBAC7C,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI;gBACtB,KAAK;aACN,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI;QAClC,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;QAClD,UAAU,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;QAC1D,KAAK,EAAE;YACL,WAAW,EAAE,IAAI,CAAC,iBAAiB,IAAI,CAAC;YACxC,YAAY,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC;SACnC;KACF,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,YAAY,CACjC,OAAe,EACf,OAA0B;IAE1B,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACzC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IACzE,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAE1C,MAAM,IAAI,GAA4B;QACpC,KAAK;QACL,QAAQ;QACR,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE;YACP,WAAW,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;YACtC,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnF;KACF,CAAA;IACD,IAAI,KAAK;QAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IAE7B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,WAAW,EAAE;QAC7C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAA;IAEF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;QAC7B,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,CAAA;IACpC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IAE5D,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;IACjC,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAI,eAAe,GAAG,EAAE,CAAA;IACxB,MAAM,oBAAoB,GAAiB,EAAE,CAAA;IAC7C,IAAI,gBAAgB,GAAG,CAAC,CAAA;IACxB,IAAI,iBAAiB,GAAG,CAAC,CAAA;IAEzB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QAC3C,IAAI,IAAI;YAAE,MAAK;QAEf,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QACjD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAChC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;QAE1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBAAE,SAAQ;YAC1B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAK5B,CAAA;gBAED,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;oBAC3B,eAAe,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAA;oBACxC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;gBACrD,CAAC;gBAED,IAAI,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;oBAC9B,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;wBAC1C,IAAI,KAAK,GAA4B,EAAE,CAAA;wBACvC,IAAI,CAAC;4BAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;wBAAC,CAAC;wBAAC,MAAM,CAAC,CAAA,CAAC;wBAC1D,MAAM,QAAQ,GAAe;4BAC3B,EAAE,EAAE,QAAQ,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;4BAC7C,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI;4BACtB,KAAK;yBACN,CAAA;wBACD,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;wBACnC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAA;oBACtC,CAAC;gBACH,CAAC;gBAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACf,gBAAgB,GAAG,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAA;oBAC/C,iBAAiB,GAAG,KAAK,CAAC,UAAU,IAAI,CAAC,CAAA;gBAC3C,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,8BAA8B;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM;QACJ,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE;YACN,IAAI,EAAE,eAAe,IAAI,IAAI;YAC7B,SAAS,EAAE,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI;YACxE,UAAU,EAAE,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;YACrE,KAAK,EAAE;gBACL,WAAW,EAAE,gBAAgB;gBAC7B,YAAY,EAAE,iBAAiB;aAChC;SACF;KACF,CAAA;AACH,CAAC"}
|
|
@@ -24,6 +24,20 @@ export declare const AI_MODELS: {
|
|
|
24
24
|
/** Most capable — complex reasoning, long-form synthesis, multi-step planning. */
|
|
25
25
|
readonly opus: "claude-opus-4-6";
|
|
26
26
|
};
|
|
27
|
+
/**
|
|
28
|
+
* @description AI provider identifiers. Each provider maps model tiers
|
|
29
|
+
* (haiku/sonnet/opus) to its own model names automatically.
|
|
30
|
+
*
|
|
31
|
+
* - `anthropic` — Claude via Anthropic API (default)
|
|
32
|
+
* - `local` — Ollama on localhost (CPU/GPU inference)
|
|
33
|
+
* - `remote` — Ollama on a remote server (e.g. llm.bxl9000.com)
|
|
34
|
+
*/
|
|
35
|
+
export type AiProvider = 'anthropic' | 'local' | 'remote';
|
|
36
|
+
/**
|
|
37
|
+
* @description Model tier mapping for Ollama providers. Maps Soulcraft's
|
|
38
|
+
* standard tiers to specific Ollama model tags.
|
|
39
|
+
*/
|
|
40
|
+
export declare const OLLAMA_MODELS: Record<string, string>;
|
|
27
41
|
/** A valid Soulcraft Claude model tier ID. */
|
|
28
42
|
export type AiModel = typeof AI_MODELS[keyof typeof AI_MODELS] | string;
|
|
29
43
|
/**
|
|
@@ -106,6 +120,26 @@ export interface AiCompleteOptions {
|
|
|
106
120
|
* @default AI_MODELS.sonnet
|
|
107
121
|
*/
|
|
108
122
|
model?: AiModel;
|
|
123
|
+
/**
|
|
124
|
+
* AI provider to use for this specific call. Overrides the default provider
|
|
125
|
+
* set via `AI_DEFAULT_PROVIDER` environment variable.
|
|
126
|
+
*
|
|
127
|
+
* - `'anthropic'` — Claude via Anthropic API (default)
|
|
128
|
+
* - `'local'` — Ollama on localhost (`AI_LOCAL_URL`, default `http://localhost:11434`)
|
|
129
|
+
* - `'remote'` — Ollama on a remote server (`AI_REMOTE_URL`)
|
|
130
|
+
*
|
|
131
|
+
* Enables mixing providers in a single workflow — e.g. Claude for planning,
|
|
132
|
+
* local models for fast execution tasks.
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```typescript
|
|
136
|
+
* // Deep reasoning with Claude
|
|
137
|
+
* const plan = await ai.complete({ provider: 'anthropic', model: 'opus', messages })
|
|
138
|
+
* // Fast execution with local LLM
|
|
139
|
+
* const result = await ai.complete({ provider: 'local', model: 'haiku', messages })
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
provider?: AiProvider;
|
|
109
143
|
/**
|
|
110
144
|
* Tools available to Claude during this completion.
|
|
111
145
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/ai/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/ai/types.ts"],"names":[],"mappings":"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"}
|
package/dist/modules/ai/types.js
CHANGED
|
@@ -27,4 +27,17 @@ export const AI_MODELS = {
|
|
|
27
27
|
/** Most capable — complex reasoning, long-form synthesis, multi-step planning. */
|
|
28
28
|
opus: 'claude-opus-4-6',
|
|
29
29
|
};
|
|
30
|
+
/**
|
|
31
|
+
* @description Model tier mapping for Ollama providers. Maps Soulcraft's
|
|
32
|
+
* standard tiers to specific Ollama model tags.
|
|
33
|
+
*/
|
|
34
|
+
export const OLLAMA_MODELS = {
|
|
35
|
+
'claude-haiku-4-5-20251001': 'qwen2.5:7b',
|
|
36
|
+
'claude-sonnet-4-6': 'qwen2.5:32b-instruct-q4_K_M',
|
|
37
|
+
'claude-opus-4-6': 'llama3.1:70b',
|
|
38
|
+
// Also accept tier shortnames
|
|
39
|
+
haiku: 'qwen2.5:7b',
|
|
40
|
+
sonnet: 'qwen2.5:32b-instruct-q4_K_M',
|
|
41
|
+
opus: 'llama3.1:70b',
|
|
42
|
+
};
|
|
30
43
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/modules/ai/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,uEAAuE;IACvE,KAAK,EAAE,2BAA2B;IAClC,oEAAoE;IACpE,MAAM,EAAE,mBAAmB;IAC3B,kFAAkF;IAClF,IAAI,EAAE,iBAAiB;CACf,CAAA"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/modules/ai/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,uEAAuE;IACvE,KAAK,EAAE,2BAA2B;IAClC,oEAAoE;IACpE,MAAM,EAAE,mBAAmB;IAC3B,kFAAkF;IAClF,IAAI,EAAE,iBAAiB;CACf,CAAA;AAYV;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,2BAA2B,EAAE,YAAY;IACzC,mBAAmB,EAAE,6BAA6B;IAClD,iBAAiB,EAAE,cAAc;IACjC,8BAA8B;IAC9B,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,6BAA6B;IACrC,IAAI,EAAE,cAAc;CACrB,CAAA"}
|
|
@@ -123,6 +123,17 @@ export interface SoulcraftAuthOptions {
|
|
|
123
123
|
* Default: `'/api/auth/backchannel-logout'`.
|
|
124
124
|
*/
|
|
125
125
|
backchannelPath?: string;
|
|
126
|
+
/**
|
|
127
|
+
* Default role for auto-login in dev mode. When set and no `SOULCRAFT_IDP_URL`
|
|
128
|
+
* is configured, the auth handle automatically creates a dev session on the
|
|
129
|
+
* first request if no dev cookie is present. The developer is logged in the
|
|
130
|
+
* moment the page loads — no manual `/api/dev/login` call needed.
|
|
131
|
+
*
|
|
132
|
+
* Set to `false` to disable auto-login (require explicit `/api/dev/login`).
|
|
133
|
+
*
|
|
134
|
+
* @default 'owner'
|
|
135
|
+
*/
|
|
136
|
+
defaultDevRole?: SoulcraftSessionUser['platformRole'] | false;
|
|
126
137
|
}
|
|
127
138
|
/**
|
|
128
139
|
* @description The return value of `createSoulcraftAuth()`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sveltekit.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/sveltekit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAoB,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"sveltekit.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/sveltekit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAoB,MAAM,YAAY,CAAA;AAOxE;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,GAAG,CAAA;IACR,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,OAAO,EAAE;QACP,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAA;KACrD,CAAA;CACF;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE;IACpC,KAAK,EAAE,cAAc,CAAA;IACrB,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;CACtD,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEvB;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAMlF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAA;IAEf;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAA;IAE1B;;;;;;;;;;;;;;;;;;OAkBG;IACH,UAAU,CAAC,EAAE,CACX,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,cAAc,KAClB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAE/D;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAC,cAAc,CAAC,GAAG,KAAK,CAAA;CAC9D;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;;;OAQG;IACH,MAAM,EAAE,eAAe,CAAA;IAEvB;;;;;;;;;;;;OAYG;IACH,kBAAkB,EAAE,uBAAuB,CAAA;IAE3C;;;;;;;;;;;OAWG;IACH,aAAa,EAAE,uBAAuB,CAAA;IAEtC;;;;;;;;;;;OAWG;IACH,eAAe,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,QAAQ,CAAA;IAEpD;;;OAGG;IACH,aAAa,EAAE,eAAe,CAAA;CAC/B;AAuFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAgNhF;AAMD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAE5B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAiBnE"}
|