@soulcraft/sdk 2.2.0 → 2.4.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/namespaces.d.ts +33 -1
- package/dist/namespaces.d.ts.map +1 -1
- package/dist/server/handlers/chat/conversations.d.ts +19 -0
- package/dist/server/handlers/chat/conversations.d.ts.map +1 -1
- package/dist/server/handlers/chat/conversations.js +55 -0
- package/dist/server/handlers/chat/conversations.js.map +1 -1
- package/dist/server/handlers/chat/engine.d.ts.map +1 -1
- package/dist/server/handlers/chat/engine.js +67 -6
- package/dist/server/handlers/chat/engine.js.map +1 -1
- package/dist/server/handlers/chat/index.d.ts +3 -1
- package/dist/server/handlers/chat/index.d.ts.map +1 -1
- package/dist/server/handlers/chat/index.js +3 -1
- package/dist/server/handlers/chat/index.js.map +1 -1
- package/dist/server/handlers/chat/resolve-ai-client.d.ts +75 -0
- package/dist/server/handlers/chat/resolve-ai-client.d.ts.map +1 -0
- package/dist/server/handlers/chat/resolve-ai-client.js +183 -0
- package/dist/server/handlers/chat/resolve-ai-client.js.map +1 -0
- package/dist/server/handlers/chat/types.d.ts +14 -2
- package/dist/server/handlers/chat/types.d.ts.map +1 -1
- package/dist/server/handlers/index.d.ts +2 -2
- package/dist/server/handlers/index.d.ts.map +1 -1
- package/dist/server/handlers/index.js +1 -1
- package/dist/server/handlers/index.js.map +1 -1
- package/dist/server/hono-router.d.ts +13 -2
- package/dist/server/hono-router.d.ts.map +1 -1
- package/dist/server/hono-router.js +13 -5
- package/dist/server/hono-router.js.map +1 -1
- package/dist/server/index.d.ts +4 -2
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +3 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/instance-pool.d.ts +28 -0
- package/dist/server/instance-pool.d.ts.map +1 -1
- package/dist/server/instance-pool.js +28 -0
- package/dist/server/instance-pool.js.map +1 -1
- package/dist/server/namespace-router.d.ts +1 -0
- package/dist/server/namespace-router.d.ts.map +1 -1
- package/dist/server/rpc-cache.d.ts +181 -0
- package/dist/server/rpc-cache.d.ts.map +1 -0
- package/dist/server/rpc-cache.js +314 -0
- package/dist/server/rpc-cache.js.map +1 -0
- package/docs/ADR-006-rpc-cache.md +132 -0
- package/package.json +1 -1
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module server/handlers/chat/resolve-ai-client
|
|
3
|
+
* @description Factory that resolves the correct Anthropic AI client per request,
|
|
4
|
+
* checking the centralized Portal BYOK key store before falling back to the
|
|
5
|
+
* platform API key.
|
|
6
|
+
*
|
|
7
|
+
* The resolver maintains an LRU cache of resolved keys (5 min TTL, max 200
|
|
8
|
+
* entries) to avoid hitting Portal on every chat message.
|
|
9
|
+
*
|
|
10
|
+
* Products use this as the `aiClient` factory in {@link ChatHandlerOptions}:
|
|
11
|
+
*
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { createChatHandler, createAIClientResolver } from '@soulcraft/sdk/server'
|
|
14
|
+
*
|
|
15
|
+
* const chatHandler = createChatHandler({
|
|
16
|
+
* aiClient: createAIClientResolver({
|
|
17
|
+
* portalSecret: process.env.PORTAL_CREDIT_SECRET!,
|
|
18
|
+
* }),
|
|
19
|
+
* tools: myTools,
|
|
20
|
+
* toolExecutor: myExecutor,
|
|
21
|
+
* })
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
import type { ChatAIClient } from './types.js';
|
|
25
|
+
import type { HandlerContext } from '../../namespace-router.js';
|
|
26
|
+
/**
|
|
27
|
+
* Options for {@link createAIClientResolver}.
|
|
28
|
+
*/
|
|
29
|
+
export interface AIClientResolverOptions {
|
|
30
|
+
/**
|
|
31
|
+
* Portal base URL for BYOK key resolution.
|
|
32
|
+
* @default 'https://soulcraft.com'
|
|
33
|
+
*/
|
|
34
|
+
portalUrl?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Shared secret for authenticating with Portal's credit/BYOK API.
|
|
37
|
+
* Sent as `X-Portal-Credit-Secret` header.
|
|
38
|
+
*/
|
|
39
|
+
portalSecret: string;
|
|
40
|
+
/**
|
|
41
|
+
* Platform (fallback) Anthropic API key. Used when no BYOK key is found.
|
|
42
|
+
* @default process.env.ANTHROPIC_API_KEY
|
|
43
|
+
*/
|
|
44
|
+
platformApiKey?: string;
|
|
45
|
+
/**
|
|
46
|
+
* TTL for cached BYOK key lookups in milliseconds.
|
|
47
|
+
* @default 300000 (5 minutes)
|
|
48
|
+
*/
|
|
49
|
+
cacheTtlMs?: number;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Extended {@link ChatAIClient} with BYOK metadata.
|
|
53
|
+
*
|
|
54
|
+
* The engine reads `isByok` to auto-detect personal key usage for billing.
|
|
55
|
+
*/
|
|
56
|
+
export interface ResolvedAIClient extends ChatAIClient {
|
|
57
|
+
/** Whether this client was created with a user's personal BYOK key. */
|
|
58
|
+
isByok: boolean;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Create an AI client resolver factory.
|
|
62
|
+
*
|
|
63
|
+
* Returns a function compatible with `ChatHandlerOptions.aiClient` that
|
|
64
|
+
* resolves a per-user Anthropic client. The resolver:
|
|
65
|
+
*
|
|
66
|
+
* 1. Checks the LRU cache for a previously resolved key
|
|
67
|
+
* 2. On cache miss, calls Portal's `/api/user/ai-key/resolve` endpoint
|
|
68
|
+
* 3. If Portal returns a BYOK key, wraps it in an Anthropic client
|
|
69
|
+
* 4. Otherwise, falls back to the platform API key
|
|
70
|
+
*
|
|
71
|
+
* @param opts - Resolver configuration.
|
|
72
|
+
* @returns An async factory function `(ctx: HandlerContext) => Promise<ResolvedAIClient>`.
|
|
73
|
+
*/
|
|
74
|
+
export declare function createAIClientResolver(opts: AIClientResolverOptions): (ctx: HandlerContext) => Promise<ResolvedAIClient>;
|
|
75
|
+
//# sourceMappingURL=resolve-ai-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-ai-client.d.ts","sourceRoot":"","sources":["../../../../src/server/handlers/chat/resolve-ai-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAwC,MAAM,YAAY,CAAA;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAM/D;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,uEAAuE;IACvE,MAAM,EAAE,OAAO,CAAA;CAChB;AAYD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,uBAAuB,GAC5B,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,gBAAgB,CAAC,CA8BpD"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module server/handlers/chat/resolve-ai-client
|
|
3
|
+
* @description Factory that resolves the correct Anthropic AI client per request,
|
|
4
|
+
* checking the centralized Portal BYOK key store before falling back to the
|
|
5
|
+
* platform API key.
|
|
6
|
+
*
|
|
7
|
+
* The resolver maintains an LRU cache of resolved keys (5 min TTL, max 200
|
|
8
|
+
* entries) to avoid hitting Portal on every chat message.
|
|
9
|
+
*
|
|
10
|
+
* Products use this as the `aiClient` factory in {@link ChatHandlerOptions}:
|
|
11
|
+
*
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { createChatHandler, createAIClientResolver } from '@soulcraft/sdk/server'
|
|
14
|
+
*
|
|
15
|
+
* const chatHandler = createChatHandler({
|
|
16
|
+
* aiClient: createAIClientResolver({
|
|
17
|
+
* portalSecret: process.env.PORTAL_CREDIT_SECRET!,
|
|
18
|
+
* }),
|
|
19
|
+
* tools: myTools,
|
|
20
|
+
* toolExecutor: myExecutor,
|
|
21
|
+
* })
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
import { LRUCache } from 'lru-cache';
|
|
25
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
26
|
+
// Factory
|
|
27
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
28
|
+
/**
|
|
29
|
+
* Create an AI client resolver factory.
|
|
30
|
+
*
|
|
31
|
+
* Returns a function compatible with `ChatHandlerOptions.aiClient` that
|
|
32
|
+
* resolves a per-user Anthropic client. The resolver:
|
|
33
|
+
*
|
|
34
|
+
* 1. Checks the LRU cache for a previously resolved key
|
|
35
|
+
* 2. On cache miss, calls Portal's `/api/user/ai-key/resolve` endpoint
|
|
36
|
+
* 3. If Portal returns a BYOK key, wraps it in an Anthropic client
|
|
37
|
+
* 4. Otherwise, falls back to the platform API key
|
|
38
|
+
*
|
|
39
|
+
* @param opts - Resolver configuration.
|
|
40
|
+
* @returns An async factory function `(ctx: HandlerContext) => Promise<ResolvedAIClient>`.
|
|
41
|
+
*/
|
|
42
|
+
export function createAIClientResolver(opts) {
|
|
43
|
+
const portalUrl = (opts.portalUrl ?? 'https://soulcraft.com').replace(/\/$/, '');
|
|
44
|
+
const cacheTtl = opts.cacheTtlMs ?? 300_000;
|
|
45
|
+
const cache = new LRUCache({
|
|
46
|
+
max: 200,
|
|
47
|
+
ttl: cacheTtl,
|
|
48
|
+
});
|
|
49
|
+
return async (ctx) => {
|
|
50
|
+
const email = ctx.user?.email;
|
|
51
|
+
if (!email) {
|
|
52
|
+
// No email — use platform key
|
|
53
|
+
return createAnthropicAdapter(getPlatformKey(opts), false);
|
|
54
|
+
}
|
|
55
|
+
// Check cache
|
|
56
|
+
let cached = cache.get(email);
|
|
57
|
+
if (cached === undefined) {
|
|
58
|
+
// Fetch from Portal
|
|
59
|
+
cached = await resolveFromPortal(portalUrl, opts.portalSecret, email);
|
|
60
|
+
cache.set(email, cached);
|
|
61
|
+
}
|
|
62
|
+
if (cached.hasKey && cached.apiKey) {
|
|
63
|
+
return createAnthropicAdapter(cached.apiKey, true);
|
|
64
|
+
}
|
|
65
|
+
return createAnthropicAdapter(getPlatformKey(opts), false);
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
69
|
+
// Internal Helpers
|
|
70
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
71
|
+
/**
|
|
72
|
+
* Resolve a user's BYOK key from Portal.
|
|
73
|
+
*
|
|
74
|
+
* @param portalUrl - Portal base URL.
|
|
75
|
+
* @param secret - Portal credit secret.
|
|
76
|
+
* @param email - User email to look up.
|
|
77
|
+
* @returns Cached key result.
|
|
78
|
+
*/
|
|
79
|
+
async function resolveFromPortal(portalUrl, secret, email) {
|
|
80
|
+
try {
|
|
81
|
+
const res = await fetch(`${portalUrl}/api/user/ai-key/resolve`, {
|
|
82
|
+
method: 'POST',
|
|
83
|
+
headers: {
|
|
84
|
+
'Content-Type': 'application/json',
|
|
85
|
+
'X-Portal-Credit-Secret': secret,
|
|
86
|
+
},
|
|
87
|
+
body: JSON.stringify({ email }),
|
|
88
|
+
});
|
|
89
|
+
if (!res.ok) {
|
|
90
|
+
return { hasKey: false };
|
|
91
|
+
}
|
|
92
|
+
const data = await res.json();
|
|
93
|
+
return { hasKey: data.hasKey, apiKey: data.apiKey };
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// Network error — fall back to platform key
|
|
97
|
+
return { hasKey: false };
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Get the platform API key from options or environment.
|
|
102
|
+
*
|
|
103
|
+
* @param opts - Resolver options.
|
|
104
|
+
* @returns The platform Anthropic API key.
|
|
105
|
+
* @throws {Error} If no platform key is available.
|
|
106
|
+
*/
|
|
107
|
+
function getPlatformKey(opts) {
|
|
108
|
+
const key = opts.platformApiKey ?? process.env.ANTHROPIC_API_KEY;
|
|
109
|
+
if (!key) {
|
|
110
|
+
throw new Error('No Anthropic API key available. Set ANTHROPIC_API_KEY or provide platformApiKey.');
|
|
111
|
+
}
|
|
112
|
+
return key;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Create a {@link ResolvedAIClient} that wraps the Anthropic SDK.
|
|
116
|
+
*
|
|
117
|
+
* Dynamically imports `@anthropic-ai/sdk` to keep it out of the critical path
|
|
118
|
+
* when the chat handler isn't used.
|
|
119
|
+
*
|
|
120
|
+
* @param apiKey - Anthropic API key (BYOK or platform).
|
|
121
|
+
* @param isByok - Whether this is a personal BYOK key.
|
|
122
|
+
* @returns A resolved AI client adapter.
|
|
123
|
+
*/
|
|
124
|
+
function createAnthropicAdapter(apiKey, isByok) {
|
|
125
|
+
// Lazy-load the Anthropic SDK — it's already a dependency of @soulcraft/sdk
|
|
126
|
+
let clientPromise = null;
|
|
127
|
+
function getClient() {
|
|
128
|
+
if (!clientPromise) {
|
|
129
|
+
clientPromise = import('@anthropic-ai/sdk').then(mod => {
|
|
130
|
+
const Anthropic = mod.default ?? mod.Anthropic;
|
|
131
|
+
return new Anthropic({ apiKey });
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
return clientPromise;
|
|
135
|
+
}
|
|
136
|
+
return {
|
|
137
|
+
isByok,
|
|
138
|
+
async createStream(options) {
|
|
139
|
+
const client = await getClient();
|
|
140
|
+
const stream = client.messages.stream({
|
|
141
|
+
model: options.model,
|
|
142
|
+
max_tokens: options.maxTokens,
|
|
143
|
+
system: options.system,
|
|
144
|
+
messages: options.messages,
|
|
145
|
+
...(options.tools?.length ? { tools: options.tools } : {}),
|
|
146
|
+
...(options.thinking ? { thinking: options.thinking } : {}),
|
|
147
|
+
});
|
|
148
|
+
return streamToAsyncIterable(stream);
|
|
149
|
+
},
|
|
150
|
+
async create(options) {
|
|
151
|
+
const client = await getClient();
|
|
152
|
+
const response = await client.messages.create({
|
|
153
|
+
model: options.model,
|
|
154
|
+
max_tokens: options.maxTokens,
|
|
155
|
+
system: options.system,
|
|
156
|
+
messages: options.messages,
|
|
157
|
+
...(options.tools?.length ? { tools: options.tools } : {}),
|
|
158
|
+
});
|
|
159
|
+
return {
|
|
160
|
+
content: response.content,
|
|
161
|
+
usage: {
|
|
162
|
+
input_tokens: response.usage.input_tokens,
|
|
163
|
+
output_tokens: response.usage.output_tokens,
|
|
164
|
+
},
|
|
165
|
+
};
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Convert an Anthropic SDK stream object into an AsyncIterable of stream events.
|
|
171
|
+
*
|
|
172
|
+
* The Anthropic SDK's `.stream()` returns a `MessageStream` object. This wrapper
|
|
173
|
+
* yields each raw SSE event as an {@link AnthropicStreamEvent}.
|
|
174
|
+
*
|
|
175
|
+
* @param stream - The Anthropic MessageStream.
|
|
176
|
+
* @returns An async iterable of stream events.
|
|
177
|
+
*/
|
|
178
|
+
async function* streamToAsyncIterable(stream) {
|
|
179
|
+
for await (const event of stream) {
|
|
180
|
+
yield event;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=resolve-ai-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-ai-client.js","sourceRoot":"","sources":["../../../../src/server/handlers/chat/resolve-ai-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -245,9 +245,9 @@ export interface ChatBillingCheck {
|
|
|
245
245
|
* @param ctx - Handler context.
|
|
246
246
|
* @returns Whether the user can proceed, and tier info.
|
|
247
247
|
*/
|
|
248
|
-
checkLimit(userId: string, ctx: HandlerContext): Promise<{
|
|
248
|
+
checkLimit(userId: string, ctx: HandlerContext, isPersonalKey?: boolean): Promise<{
|
|
249
249
|
ok: boolean;
|
|
250
|
-
tier: 'free' | '
|
|
250
|
+
tier: 'free' | 'standard' | 'byok';
|
|
251
251
|
remaining: number;
|
|
252
252
|
useTopUp?: boolean;
|
|
253
253
|
}>;
|
|
@@ -511,5 +511,17 @@ export interface ChatHandlerOptions {
|
|
|
511
511
|
* @default 8000
|
|
512
512
|
*/
|
|
513
513
|
thinkingBudget?: number;
|
|
514
|
+
/**
|
|
515
|
+
* Enable hybrid conversation history — loads recent messages plus
|
|
516
|
+
* semantically relevant messages from other conversations.
|
|
517
|
+
* @default true
|
|
518
|
+
*/
|
|
519
|
+
enableHybridHistory?: boolean;
|
|
520
|
+
/**
|
|
521
|
+
* Maximum number of semantically relevant messages to retrieve from
|
|
522
|
+
* other conversations when hybrid history is enabled.
|
|
523
|
+
* @default 10
|
|
524
|
+
*/
|
|
525
|
+
hybridHistoryRelevantLimit?: number;
|
|
514
526
|
}
|
|
515
527
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/server/handlers/chat/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/server/handlers/chat/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,8 +32,8 @@ export type { AnnotationAiClient, AnnotationsHandlerOptions } from './annotation
|
|
|
32
32
|
export { createAuthHandler } from './auth.js';
|
|
33
33
|
export type { CapabilityTokenFactory, AuthHandlerOptions } from './auth.js';
|
|
34
34
|
export { createChatHandler } from './chat/index.js';
|
|
35
|
-
export type { ChatHandlerOptions, ChatAIClient, AnthropicStreamEvent, ToolDefinition, ToolExecutor, ToolExecutionContext, SystemPromptBuilder, SystemPromptContext, ChatBillingCheck, ChatEventEmitter, ModelSelector, TieredRouting, RetrievedMemory, UserExpertiseProfile, RoutingDecisionType, RoutingDecision, DelegatedTask, TriageResult, TaskExecutionResult, DelegationResult, AIPlan, PlanStep, StepProgress, PlanExecutionResult, ModelConfig, ComplexitySignals, CostEstimate, StreamMessageOptions, GeneratePlanOptions, ExecutePlanOptions, ProgressCallback, } from './chat/index.js';
|
|
36
|
-
export { analyzeComplexity, calculateComplexityScore, selectTieredRouting, createDefaultModelSelector, estimateCost, formatCost, DEFAULT_MODELS, DEFAULT_MODEL_TIERS, triageMessage, delegateAndExecute, generatePlan, storePlan, loadPlan, approvePlan, cancelPlan, executePlan, resumePlanExecution, streamMessage, sendMessage, } from './chat/index.js';
|
|
35
|
+
export type { ChatHandlerOptions, ChatAIClient, AnthropicStreamEvent, ToolDefinition, ToolExecutor, ToolExecutionContext, SystemPromptBuilder, SystemPromptContext, ChatBillingCheck, ChatEventEmitter, ModelSelector, TieredRouting, RetrievedMemory, UserExpertiseProfile, RoutingDecisionType, RoutingDecision, DelegatedTask, TriageResult, TaskExecutionResult, DelegationResult, AIPlan, PlanStep, StepProgress, PlanExecutionResult, ModelConfig, ComplexitySignals, CostEstimate, StreamMessageOptions, GeneratePlanOptions, ExecutePlanOptions, ProgressCallback, AIClientResolverOptions, ResolvedAIClient, } from './chat/index.js';
|
|
36
|
+
export { analyzeComplexity, calculateComplexityScore, selectTieredRouting, createDefaultModelSelector, estimateCost, formatCost, DEFAULT_MODELS, DEFAULT_MODEL_TIERS, triageMessage, delegateAndExecute, generatePlan, storePlan, loadPlan, approvePlan, cancelPlan, executePlan, resumePlanExecution, streamMessage, sendMessage, createAIClientResolver, } from './chat/index.js';
|
|
37
37
|
export { createCertificationHandler } from './certification.js';
|
|
38
38
|
export { createCollectionsHandler } from './collections.js';
|
|
39
39
|
export type { SampleDataProvider, CollectionsHandlerOptions } from './collections.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,YAAY,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AAGrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,YAAY,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAG3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,0BAA0B,EAC1B,YAAY,EACZ,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,WAAW,EACX,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,7 +33,7 @@ export { createAnnotationsHandler } from './annotations.js';
|
|
|
33
33
|
export { createAuthHandler } from './auth.js';
|
|
34
34
|
// ── Chat ────────────────────────────────────────────────────────────────────
|
|
35
35
|
export { createChatHandler } from './chat/index.js';
|
|
36
|
-
export { analyzeComplexity, calculateComplexityScore, selectTieredRouting, createDefaultModelSelector, estimateCost, formatCost, DEFAULT_MODELS, DEFAULT_MODEL_TIERS, triageMessage, delegateAndExecute, generatePlan, storePlan, loadPlan, approvePlan, cancelPlan, executePlan, resumePlanExecution, streamMessage, sendMessage, } from './chat/index.js';
|
|
36
|
+
export { analyzeComplexity, calculateComplexityScore, selectTieredRouting, createDefaultModelSelector, estimateCost, formatCost, DEFAULT_MODELS, DEFAULT_MODEL_TIERS, triageMessage, delegateAndExecute, generatePlan, storePlan, loadPlan, approvePlan, cancelPlan, executePlan, resumePlanExecution, streamMessage, sendMessage, createAIClientResolver, } from './chat/index.js';
|
|
37
37
|
// ── Certification ────────────────────────────────────────────────────────────
|
|
38
38
|
export { createCertificationHandler } from './certification.js';
|
|
39
39
|
// ── Collections ──────────────────────────────────────────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,gFAAgF;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAG3D,gFAAgF;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAG7C,+EAA+E;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,gFAAgF;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAG3D,gFAAgF;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAG7C,+EAA+E;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAoCnD,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,0BAA0B,EAC1B,YAAY,EACZ,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,WAAW,EACX,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,sBAAsB,GACvB,MAAM,iBAAiB,CAAA;AAExB,gFAAgF;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAA;AAE/D,gFAAgF;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAG3D,gFAAgF;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAGrD,gFAAgF;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,gFAAgF;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,gFAAgF;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAGnD,gFAAgF;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/C,gFAAgF;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,gFAAgF;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAG/C,gFAAgF;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAGnD,gFAAgF;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAQnD,gFAAgF;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAG/C,gFAAgF;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAGrD,gFAAgF;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,gFAAgF;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAGnD,gFAAgF;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AASrD,gFAAgF;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -29,12 +29,23 @@
|
|
|
29
29
|
*/
|
|
30
30
|
import { Hono } from 'hono';
|
|
31
31
|
import type { NamespaceRouterConfig } from './namespace-router.js';
|
|
32
|
+
import type { RpcCacheConfig } from './rpc-cache.js';
|
|
32
33
|
/**
|
|
33
34
|
* Configuration for {@link createSoulcraftRouter}.
|
|
34
35
|
*
|
|
35
|
-
*
|
|
36
|
+
* Extends {@link NamespaceRouterConfig} with optional RPC response caching.
|
|
36
37
|
*/
|
|
37
|
-
export
|
|
38
|
+
export interface SoulcraftRouterConfig extends NamespaceRouterConfig {
|
|
39
|
+
/**
|
|
40
|
+
* Optional RPC response cache configuration.
|
|
41
|
+
*
|
|
42
|
+
* When provided, cacheable read methods are served from an in-process LRU cache
|
|
43
|
+
* with singleflight deduplication. Write methods flush the scope automatically.
|
|
44
|
+
*
|
|
45
|
+
* @see {@link RpcCacheConfig}
|
|
46
|
+
*/
|
|
47
|
+
cache?: RpcCacheConfig;
|
|
48
|
+
}
|
|
38
49
|
/**
|
|
39
50
|
* Creates a Hono app with the unified Soulcraft RPC routes.
|
|
40
51
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hono-router.d.ts","sourceRoot":"","sources":["../../src/server/hono-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"hono-router.d.ts","sourceRoot":"","sources":["../../src/server/hono-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,qBAAqB,EAAkB,MAAM,uBAAuB,CAAA;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAGpD;;;;GAIG;AACH,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,cAAc,CAAA;CACvB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAyCzE"}
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
*/
|
|
30
30
|
import { Hono } from 'hono';
|
|
31
31
|
import { createNamespaceRouter } from './namespace-router.js';
|
|
32
|
+
import { createCachedDispatch } from './rpc-cache.js';
|
|
32
33
|
/**
|
|
33
34
|
* Creates a Hono app with the unified Soulcraft RPC routes.
|
|
34
35
|
*
|
|
@@ -50,7 +51,10 @@ import { createNamespaceRouter } from './namespace-router.js';
|
|
|
50
51
|
* ```
|
|
51
52
|
*/
|
|
52
53
|
export function createSoulcraftRouter(config) {
|
|
53
|
-
const
|
|
54
|
+
const baseRouter = createNamespaceRouter(config);
|
|
55
|
+
const router = config.cache
|
|
56
|
+
? createCachedDispatch(baseRouter, config.cache)
|
|
57
|
+
: baseRouter;
|
|
54
58
|
const app = new Hono();
|
|
55
59
|
// ── POST /api/rpc — Unified namespace RPC ────────────────────────────────
|
|
56
60
|
app.post('/api/rpc', async (c) => {
|
|
@@ -94,10 +98,14 @@ function _sendResult(c, result) {
|
|
|
94
98
|
if (result.type === 'response') {
|
|
95
99
|
const { response } = result;
|
|
96
100
|
const status = response.error ? _errorStatusCode(response.error.code) : 200;
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
+
const headers = { 'Content-Type': 'application/json' };
|
|
102
|
+
// Merge cache headers (Cache-Control, ETag, X-Cache) when present.
|
|
103
|
+
if (result.headers) {
|
|
104
|
+
for (const [key, value] of Object.entries(result.headers)) {
|
|
105
|
+
headers[key] = value;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return new Response(JSON.stringify(response), { status, headers });
|
|
101
109
|
}
|
|
102
110
|
// Streaming result — deliver as SSE.
|
|
103
111
|
const { id, iterable } = result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hono-router.js","sourceRoot":"","sources":["../../src/server/hono-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"hono-router.js","sourceRoot":"","sources":["../../src/server/hono-router.ts"],"names":[],"mappings":"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"}
|
package/dist/server/index.d.ts
CHANGED
|
@@ -49,6 +49,8 @@ export type { SoulcraftNamespaces } from '../namespaces.js';
|
|
|
49
49
|
export { createCapabilityToken, verifyCapabilityToken } from '../modules/brainy/auth.js';
|
|
50
50
|
export type { CreateCapabilityTokenOptions, CapabilityTokenClaims } from '../modules/brainy/auth.js';
|
|
51
51
|
export { LocalTransport } from '../transports/local.js';
|
|
52
|
+
export { createCachedDispatch, LruCacheProvider, DEFAULT_CACHEABLE_METHODS } from './rpc-cache.js';
|
|
53
|
+
export type { CacheProvider, CacheEntry, RpcCacheConfig, CacheMetricsEvent } from './rpc-cache.js';
|
|
52
54
|
export { createNamespaceRouter } from './namespace-router.js';
|
|
53
55
|
export type { NamespaceRouterConfig, NamespaceRouter, NamespaceProvider, NamespaceProviders, RequestContext, UserContext, HandlerContext, PreAuthenticatedContext, DispatchResult, } from './namespace-router.js';
|
|
54
56
|
export { createNamespaceWsHandler } from './ws-handler.js';
|
|
@@ -56,6 +58,6 @@ export type { NamespaceWsHandlerConfig, NamespaceWsHandler, WsSession, } from '.
|
|
|
56
58
|
export { createSoulcraftRouter } from './hono-router.js';
|
|
57
59
|
export type { SoulcraftRouterConfig } from './hono-router.js';
|
|
58
60
|
export { createAnnotationsHandler, createAuthHandler, createChatHandler, createCertificationHandler, createCollectionsHandler, createCommerceHandler, createConfigHandler, createExportHandler, createFormatsHandler, createGraphHandler, createImportHandler, createMediaHandler, createProjectHandler, createPublishHandler, createPulseHandler, createRealtimeHandler, createSearchHandler, createSessionHandler, createSettingsHandler, createWorkspaceHandler, } from './handlers/index.js';
|
|
59
|
-
export type { AnnotationAiClient, AnnotationsHandlerOptions, ChatHandlerOptions, ChatAIClient, AnthropicStreamEvent, ToolDefinition, ToolExecutor, ToolExecutionContext, SystemPromptBuilder, SystemPromptContext, ChatBillingCheck, ChatEventEmitter, ModelSelector, TieredRouting, RetrievedMemory, UserExpertiseProfile, AIPlan, PlanStep, StepProgress, PlanExecutionResult, CapabilityTokenFactory, AuthHandlerOptions, SampleDataProvider, CollectionsHandlerOptions, PaymentProvider, CommerceHandlerOptions, ConfigService, ConfigBillingService, ConfigHandlerOptions, ExportPipeline, ExportHandlerOptions, FormatConverter, FormatsHandlerOptions, ImportPipeline, ImportHandlerOptions, MediaBackend, MediaHandlerOptions, KitLoader, ProjectHandlerOptions, PublishBackend, VenueDeployService, AcademyPublishService, PublishHandlerOptions, PulseHandlerOptions, RealtimeBackend, RealtimeHandlerOptions, SessionEventEmitter, SessionHandlerOptions, ApiKeyService, SettingsBillingService, StorageTracker, StorageLimitResolver, SettingsHandlerOptions, WorkspaceManager, WorkspaceHandlerOptions, } from './handlers/index.js';
|
|
60
|
-
export { analyzeComplexity, calculateComplexityScore, selectTieredRouting, createDefaultModelSelector, estimateCost, formatCost, DEFAULT_MODELS, DEFAULT_MODEL_TIERS, streamMessage, sendMessage, } from './handlers/index.js';
|
|
61
|
+
export type { AnnotationAiClient, AnnotationsHandlerOptions, ChatHandlerOptions, ChatAIClient, AnthropicStreamEvent, ToolDefinition, ToolExecutor, ToolExecutionContext, SystemPromptBuilder, SystemPromptContext, ChatBillingCheck, ChatEventEmitter, ModelSelector, TieredRouting, RetrievedMemory, UserExpertiseProfile, AIPlan, PlanStep, StepProgress, PlanExecutionResult, AIClientResolverOptions, ResolvedAIClient, CapabilityTokenFactory, AuthHandlerOptions, SampleDataProvider, CollectionsHandlerOptions, PaymentProvider, CommerceHandlerOptions, ConfigService, ConfigBillingService, ConfigHandlerOptions, ExportPipeline, ExportHandlerOptions, FormatConverter, FormatsHandlerOptions, ImportPipeline, ImportHandlerOptions, MediaBackend, MediaHandlerOptions, KitLoader, ProjectHandlerOptions, PublishBackend, VenueDeployService, AcademyPublishService, PublishHandlerOptions, PulseHandlerOptions, RealtimeBackend, RealtimeHandlerOptions, SessionEventEmitter, SessionHandlerOptions, ApiKeyService, SettingsBillingService, StorageTracker, StorageLimitResolver, SettingsHandlerOptions, WorkspaceManager, WorkspaceHandlerOptions, } from './handlers/index.js';
|
|
62
|
+
export { analyzeComplexity, calculateComplexityScore, selectTieredRouting, createDefaultModelSelector, estimateCost, formatCost, DEFAULT_MODELS, DEFAULT_MODEL_TIERS, streamMessage, sendMessage, createAIClientResolver, } from './handlers/index.js';
|
|
61
63
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
package/dist/server/index.js
CHANGED
|
@@ -46,6 +46,8 @@ export { createKitsModule } from '../modules/kits/index.js';
|
|
|
46
46
|
export { createNotificationsModule } from '../modules/notifications/index.js';
|
|
47
47
|
export { createCapabilityToken, verifyCapabilityToken } from '../modules/brainy/auth.js';
|
|
48
48
|
export { LocalTransport } from '../transports/local.js';
|
|
49
|
+
// ── RPC response cache ────────────────────────────────────────────────────────
|
|
50
|
+
export { createCachedDispatch, LruCacheProvider, DEFAULT_CACHEABLE_METHODS } from './rpc-cache.js';
|
|
49
51
|
// ── Namespace router ─────────────────────────────────────────────────────────
|
|
50
52
|
export { createNamespaceRouter } from './namespace-router.js';
|
|
51
53
|
// ── Namespace WebSocket handler ─────────────────────────────────────────────
|
|
@@ -55,5 +57,5 @@ export { createSoulcraftRouter } from './hono-router.js';
|
|
|
55
57
|
// ── Namespace handler factories ──────────────────────────────────────────────
|
|
56
58
|
// Each factory creates a NamespaceProvider wired into `providers` on the router.
|
|
57
59
|
export { createAnnotationsHandler, createAuthHandler, createChatHandler, createCertificationHandler, createCollectionsHandler, createCommerceHandler, createConfigHandler, createExportHandler, createFormatsHandler, createGraphHandler, createImportHandler, createMediaHandler, createProjectHandler, createPublishHandler, createPulseHandler, createRealtimeHandler, createSearchHandler, createSessionHandler, createSettingsHandler, createWorkspaceHandler, } from './handlers/index.js';
|
|
58
|
-
export { analyzeComplexity, calculateComplexityScore, selectTieredRouting, createDefaultModelSelector, estimateCost, formatCost, DEFAULT_MODELS, DEFAULT_MODEL_TIERS, streamMessage, sendMessage, } from './handlers/index.js';
|
|
60
|
+
export { analyzeComplexity, calculateComplexityScore, selectTieredRouting, createDefaultModelSelector, estimateCost, formatCost, DEFAULT_MODELS, DEFAULT_MODEL_TIERS, streamMessage, sendMessage, createAIClientResolver, } from './handlers/index.js';
|
|
59
61
|
//# sourceMappingURL=index.js.map
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,iFAAiF;AACjF,OAAO,EACL,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,oBAAoB,CAAA;AAM3B,iFAAiF;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAE/D,gFAAgF;AAChF,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,UAAU,EACV,eAAe,GAChB,MAAM,oBAAoB,CAAA;AA4C3B,iFAAiF;AACjF,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,GACd,MAAM,+BAA+B,CAAA;AAYtC,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAA;AAM/E,iFAAiF;AACjF,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,kCAAkC,CAAA;AAEzC,gFAAgF;AAChF,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,WAAW,EACX,mBAAmB,GACpB,MAAM,2BAA2B,CAAA;AAElC,gFAAgF;AAChF,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,kBAAkB,GACnB,MAAM,6BAA6B,CAAA;AAMpC,gFAAgF;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAK7E,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AAExF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,gFAAgF;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAa7D,+EAA+E;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAO1D,+EAA+E;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAGxD,gFAAgF;AAChF,iFAAiF;AACjF,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,iFAAiF;AACjF,OAAO,EACL,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,oBAAoB,CAAA;AAM3B,iFAAiF;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAE/D,gFAAgF;AAChF,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,UAAU,EACV,eAAe,GAChB,MAAM,oBAAoB,CAAA;AA4C3B,iFAAiF;AACjF,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,GACd,MAAM,+BAA+B,CAAA;AAYtC,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAA;AAM/E,iFAAiF;AACjF,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,kCAAkC,CAAA;AAEzC,gFAAgF;AAChF,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,WAAW,EACX,mBAAmB,GACpB,MAAM,2BAA2B,CAAA;AAElC,gFAAgF;AAChF,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,kBAAkB,GACnB,MAAM,6BAA6B,CAAA;AAMpC,gFAAgF;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAK7E,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AAExF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,iFAAiF;AACjF,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AAGlG,gFAAgF;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAa7D,+EAA+E;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAO1D,+EAA+E;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAGxD,gFAAgF;AAChF,iFAAiF;AACjF,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AA4D5B,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,0BAA0B,EAC1B,YAAY,EACZ,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,sBAAsB,GACvB,MAAM,qBAAqB,CAAA"}
|
|
@@ -55,6 +55,34 @@
|
|
|
55
55
|
* const brain = await pool.forUser(session.user.emailHash, workspaceId)
|
|
56
56
|
* const results = await brain.find({ query: 'inventory items' })
|
|
57
57
|
* ```
|
|
58
|
+
*
|
|
59
|
+
* @example Singleton pattern — single fixed instance with pool benefits
|
|
60
|
+
*
|
|
61
|
+
* For a "platform brain" or other single-instance use case that still needs
|
|
62
|
+
* mutex deduplication, Cortex loading, and proper `close()` on shutdown,
|
|
63
|
+
* use `per-scope` with `maxInstances: 1` and a fixed scope key:
|
|
64
|
+
*
|
|
65
|
+
* ```typescript
|
|
66
|
+
* import { BrainyInstancePool } from '@soulcraft/sdk/server'
|
|
67
|
+
*
|
|
68
|
+
* // One pool for the single platform-wide brain
|
|
69
|
+
* const platformPool = new BrainyInstancePool({
|
|
70
|
+
* storage: 'mmap-filesystem',
|
|
71
|
+
* dataPath: '/mnt/brainy-data/platform',
|
|
72
|
+
* strategy: 'per-scope',
|
|
73
|
+
* maxInstances: 1,
|
|
74
|
+
* })
|
|
75
|
+
*
|
|
76
|
+
* // Always use the same fixed key — the pool handles init-once and dedup
|
|
77
|
+
* const brain = await platformPool.forScope('platform', async (dataPath) => {
|
|
78
|
+
* const brain = await Brainy.create({ storage: 'mmap-filesystem', dataPath })
|
|
79
|
+
* // Run any one-time setup (migrations, seed data, etc.)
|
|
80
|
+
* return brain
|
|
81
|
+
* })
|
|
82
|
+
*
|
|
83
|
+
* // Shutdown flushes and closes the single instance
|
|
84
|
+
* await platformPool.shutdown()
|
|
85
|
+
* ```
|
|
58
86
|
*/
|
|
59
87
|
import { Brainy } from '@soulcraft/brainy';
|
|
60
88
|
import type { InstanceStrategy } from '../types.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-pool.d.ts","sourceRoot":"","sources":["../../src/server/instance-pool.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"instance-pool.d.ts","sourceRoot":"","sources":["../../src/server/instance-pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqFG;AAMH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAMnD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;OAMG;IACH,OAAO,EAAE,YAAY,GAAG,iBAAiB,CAAA;IAEzC;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB,iCAAiC;IACjC,QAAQ,EAAE,gBAAgB,CAAA;IAE1B;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,MAAM,CAAA;IAE1D;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/D;AAMD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAA;IACZ,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAA;IACf,oDAAoD;IACpD,IAAI,EAAE,MAAM,EAAE,CAAA;CACf;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;IACrD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAChD,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAE7D;;OAEG;gBACS,MAAM,EAAE,kBAAkB;IA0BtC;;;;;;;;;;OAUG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASnE;;;;;;;;OAQG;IACG,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASpD;;;;;;;;;;;OAWG;IACG,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAyB5E;;;;;;;;;;;;;OAaG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxC;;;;;;OAMG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAa/B;;;;;OAKG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAK/B;;OAEG;IACH,QAAQ,IAAI,iBAAiB;IAU7B;;;;;;;;;OASG;IACH,OAAO,CAAC,YAAY;IAqBpB;;;;;;;;;OASG;YACW,WAAW;CA0B1B;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD"}
|