@cogitator-ai/core 0.24.0 → 0.26.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/README.md +531 -167
- package/dist/agent-tool.d.ts +4 -3
- package/dist/agent-tool.d.ts.map +1 -1
- package/dist/agent-tool.js +15 -2
- package/dist/agent-tool.js.map +1 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +3 -1
- package/dist/agent.js.map +1 -1
- package/dist/cache/cache-key.d.ts +1 -0
- package/dist/cache/cache-key.d.ts.map +1 -1
- package/dist/cache/cache-key.js +2 -1
- package/dist/cache/cache-key.js.map +1 -1
- package/dist/cache/storage/memory.d.ts +8 -1
- package/dist/cache/storage/memory.d.ts.map +1 -1
- package/dist/cache/storage/memory.js +8 -1
- package/dist/cache/storage/memory.js.map +1 -1
- package/dist/cache/storage/redis.d.ts +4 -0
- package/dist/cache/storage/redis.d.ts.map +1 -1
- package/dist/cache/storage/redis.js +17 -18
- package/dist/cache/storage/redis.js.map +1 -1
- package/dist/cache/tool-cache.d.ts +2 -0
- package/dist/cache/tool-cache.d.ts.map +1 -1
- package/dist/cache/tool-cache.js +4 -2
- package/dist/cache/tool-cache.js.map +1 -1
- package/dist/causal/inference/counterfactual.d.ts +2 -0
- package/dist/causal/inference/counterfactual.d.ts.map +1 -1
- package/dist/causal/inference/counterfactual.js +24 -3
- package/dist/causal/inference/counterfactual.js.map +1 -1
- package/dist/causal/inference/expression.d.ts +19 -0
- package/dist/causal/inference/expression.d.ts.map +1 -0
- package/dist/causal/inference/expression.js +177 -0
- package/dist/causal/inference/expression.js.map +1 -0
- package/dist/cogitator/initializers.d.ts +4 -3
- package/dist/cogitator/initializers.d.ts.map +1 -1
- package/dist/cogitator/initializers.js +100 -46
- package/dist/cogitator/initializers.js.map +1 -1
- package/dist/cogitator/message-builder.d.ts.map +1 -1
- package/dist/cogitator/message-builder.js +5 -1
- package/dist/cogitator/message-builder.js.map +1 -1
- package/dist/cogitator/prompts.d.ts.map +1 -1
- package/dist/cogitator/prompts.js +5 -1
- package/dist/cogitator/prompts.js.map +1 -1
- package/dist/cogitator/response-format.d.ts +7 -2
- package/dist/cogitator/response-format.d.ts.map +1 -1
- package/dist/cogitator/response-format.js +45 -7
- package/dist/cogitator/response-format.js.map +1 -1
- package/dist/cogitator/run-limiter.d.ts.map +1 -1
- package/dist/cogitator/run-limiter.js +5 -1
- package/dist/cogitator/run-limiter.js.map +1 -1
- package/dist/cogitator/tool-executor.d.ts +8 -2
- package/dist/cogitator/tool-executor.d.ts.map +1 -1
- package/dist/cogitator/tool-executor.js +54 -5
- package/dist/cogitator/tool-executor.js.map +1 -1
- package/dist/constitutional/constitutional-ai.d.ts +7 -0
- package/dist/constitutional/constitutional-ai.d.ts.map +1 -1
- package/dist/constitutional/constitutional-ai.js +11 -0
- package/dist/constitutional/constitutional-ai.js.map +1 -1
- package/dist/constitutional/tool-guard.d.ts +9 -0
- package/dist/constitutional/tool-guard.d.ts.map +1 -1
- package/dist/constitutional/tool-guard.js +25 -20
- package/dist/constitutional/tool-guard.js.map +1 -1
- package/dist/cost-routing/cost-estimator.d.ts.map +1 -1
- package/dist/cost-routing/cost-estimator.js +5 -1
- package/dist/cost-routing/cost-estimator.js.map +1 -1
- package/dist/cost-routing/cost-router.d.ts +13 -0
- package/dist/cost-routing/cost-router.d.ts.map +1 -1
- package/dist/cost-routing/cost-router.js +22 -1
- package/dist/cost-routing/cost-router.js.map +1 -1
- package/dist/cost-routing/model-selector.d.ts +13 -0
- package/dist/cost-routing/model-selector.d.ts.map +1 -1
- package/dist/cost-routing/model-selector.js +25 -16
- package/dist/cost-routing/model-selector.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/learning/ab-testing.d.ts +1 -1
- package/dist/learning/ab-testing.d.ts.map +1 -1
- package/dist/learning/ab-testing.js +6 -28
- package/dist/learning/ab-testing.js.map +1 -1
- package/dist/learning/agent-optimizer.d.ts +2 -0
- package/dist/learning/agent-optimizer.d.ts.map +1 -1
- package/dist/learning/agent-optimizer.js +20 -2
- package/dist/learning/agent-optimizer.js.map +1 -1
- package/dist/learning/auto-optimizer.d.ts +11 -0
- package/dist/learning/auto-optimizer.d.ts.map +1 -1
- package/dist/learning/auto-optimizer.js +47 -16
- package/dist/learning/auto-optimizer.js.map +1 -1
- package/dist/learning/metrics.d.ts +8 -1
- package/dist/learning/metrics.d.ts.map +1 -1
- package/dist/learning/metrics.js +48 -16
- package/dist/learning/metrics.js.map +1 -1
- package/dist/learning/postgres-trace-store.d.ts +3 -1
- package/dist/learning/postgres-trace-store.d.ts.map +1 -1
- package/dist/learning/postgres-trace-store.js +27 -4
- package/dist/learning/postgres-trace-store.js.map +1 -1
- package/dist/learning/prompt-logger.d.ts +2 -2
- package/dist/learning/prompt-logger.d.ts.map +1 -1
- package/dist/learning/prompt-logger.js.map +1 -1
- package/dist/learning/trace-builder.d.ts.map +1 -1
- package/dist/learning/trace-builder.js +1 -0
- package/dist/learning/trace-builder.js.map +1 -1
- package/dist/llm/anthropic.d.ts +1 -0
- package/dist/llm/anthropic.d.ts.map +1 -1
- package/dist/llm/anthropic.js +6 -1
- package/dist/llm/anthropic.js.map +1 -1
- package/dist/llm/base.d.ts +2 -2
- package/dist/llm/base.d.ts.map +1 -1
- package/dist/llm/bedrock.d.ts.map +1 -1
- package/dist/llm/bedrock.js +3 -1
- package/dist/llm/bedrock.js.map +1 -1
- package/dist/llm/debug.d.ts +2 -2
- package/dist/llm/debug.d.ts.map +1 -1
- package/dist/llm/debug.js.map +1 -1
- package/dist/llm/google.d.ts.map +1 -1
- package/dist/llm/google.js +56 -6
- package/dist/llm/google.js.map +1 -1
- package/dist/llm/openai-compatible-base.d.ts +4 -0
- package/dist/llm/openai-compatible-base.d.ts.map +1 -1
- package/dist/llm/openai-compatible-base.js +38 -13
- package/dist/llm/openai-compatible-base.js.map +1 -1
- package/dist/llm/openai-responses.js +1 -1
- package/dist/llm/openai-responses.js.map +1 -1
- package/dist/llm/retry.d.ts +2 -2
- package/dist/llm/retry.d.ts.map +1 -1
- package/dist/llm/retry.js.map +1 -1
- package/dist/logger.d.ts +11 -2
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +35 -6
- package/dist/logger.js.map +1 -1
- package/dist/observability/langfuse.d.ts +1 -0
- package/dist/observability/langfuse.d.ts.map +1 -1
- package/dist/observability/langfuse.js.map +1 -1
- package/dist/observability/opentelemetry.d.ts +1 -0
- package/dist/observability/opentelemetry.d.ts.map +1 -1
- package/dist/observability/opentelemetry.js.map +1 -1
- package/dist/reasoning/thought-tree.d.ts +28 -4
- package/dist/reasoning/thought-tree.d.ts.map +1 -1
- package/dist/reasoning/thought-tree.js +173 -110
- package/dist/reasoning/thought-tree.js.map +1 -1
- package/dist/runtime.d.ts +39 -5
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +158 -50
- package/dist/runtime.js.map +1 -1
- package/dist/security/pii.d.ts +2 -2
- package/dist/security/pii.d.ts.map +1 -1
- package/dist/security/pii.js.map +1 -1
- package/dist/time-travel/checkpoint-store.d.ts +6 -1
- package/dist/time-travel/checkpoint-store.d.ts.map +1 -1
- package/dist/time-travel/checkpoint-store.js +15 -18
- package/dist/time-travel/checkpoint-store.js.map +1 -1
- package/dist/time-travel/replayer.d.ts +0 -1
- package/dist/time-travel/replayer.d.ts.map +1 -1
- package/dist/time-travel/replayer.js +12 -19
- package/dist/time-travel/replayer.js.map +1 -1
- package/dist/time-travel/time-travel.d.ts +0 -1
- package/dist/time-travel/time-travel.d.ts.map +1 -1
- package/dist/time-travel/time-travel.js +15 -14
- package/dist/time-travel/time-travel.js.map +1 -1
- package/dist/tool.d.ts +7 -0
- package/dist/tool.d.ts.map +1 -1
- package/dist/tool.js +10 -0
- package/dist/tool.js.map +1 -1
- package/dist/tools/index.d.ts +3 -416
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/memory-tools.d.ts +4 -4
- package/dist/tools/memory-tools.d.ts.map +1 -1
- package/dist/tools/memory-tools.js +2 -2
- package/dist/tools/memory-tools.js.map +1 -1
- package/dist/tools/scheduler-tools.d.ts +4 -4
- package/dist/tools/scheduler-tools.d.ts.map +1 -1
- package/dist/tools/scheduler-tools.js +2 -2
- package/dist/tools/scheduler-tools.js.map +1 -1
- package/dist/tools/sql-query.d.ts.map +1 -1
- package/dist/tools/sql-query.js +2 -1
- package/dist/tools/sql-query.js.map +1 -1
- package/dist/tools/vector-search.d.ts.map +1 -1
- package/dist/tools/vector-search.js +12 -3
- package/dist/tools/vector-search.js.map +1 -1
- package/package.json +6 -6
package/dist/runtime.js
CHANGED
|
@@ -6,7 +6,7 @@ import { isLLMProvider } from './llm/providers.js';
|
|
|
6
6
|
import { createLLMBackendFromPlugin, hasLLMPlugin } from './llm/plugin.js';
|
|
7
7
|
import { withLLMRetry } from './llm/retry.js';
|
|
8
8
|
import { PiiMasker, withPiiMasking } from './security/pii.js';
|
|
9
|
-
import { getLogger } from './logger.js';
|
|
9
|
+
import { createLoggerFromConfig, getLogger, setLogger } from './logger.js';
|
|
10
10
|
import { initializeMemory, initializeSandbox, initializeReflection, initializeGuardrails, initializeCostRouting, initializeSecurity, initializeContextManager, cleanupState, } from './cogitator/initializers.js';
|
|
11
11
|
import { CogitatorError, ErrorCode } from '@cogitator-ai/types';
|
|
12
12
|
import { buildInitialMessages, buildInputWithAudio, saveEntry, enrichMessagesWithInsights, addContextToMessages, } from './cogitator/message-builder.js';
|
|
@@ -17,7 +17,7 @@ import { RunLimiter } from './cogitator/run-limiter.js';
|
|
|
17
17
|
import { findHandoffAgent, handoffTools } from './cogitator/handoffs.js';
|
|
18
18
|
import { PromptRegistry } from './cogitator/prompts.js';
|
|
19
19
|
import { InMemoryRunCheckpointStore, ThreadRunCheckpointStore } from './cogitator/run-checkpoints.js';
|
|
20
|
-
import { parseStructuredOutput, toLLMResponseFormat } from './cogitator/response-format.js';
|
|
20
|
+
import { parseStructuredOutput, structuredOutputProblem, toLLMResponseFormat, } from './cogitator/response-format.js';
|
|
21
21
|
import { CostEstimator } from './cost-routing/cost-estimator.js';
|
|
22
22
|
import { readEnv } from './utils/env.js';
|
|
23
23
|
/** Run timeout when neither the run, the agent nor `limits.defaultTimeout` sets one. */
|
|
@@ -89,7 +89,9 @@ export class Cogitator {
|
|
|
89
89
|
};
|
|
90
90
|
costEstimator;
|
|
91
91
|
initPromise;
|
|
92
|
+
memoryInit;
|
|
92
93
|
runLimiter;
|
|
94
|
+
constitution;
|
|
93
95
|
/**
|
|
94
96
|
* Create a new Cogitator runtime.
|
|
95
97
|
*
|
|
@@ -100,9 +102,13 @@ export class Cogitator {
|
|
|
100
102
|
* @param config.reflection - Reflection engine settings
|
|
101
103
|
* @param config.guardrails - Constitutional AI settings
|
|
102
104
|
* @param config.costRouting - Cost-aware routing settings
|
|
105
|
+
* @param config.logging - Level, format and destination of the process-wide
|
|
106
|
+
* logger (`getLogger()`); the last runtime created with `logging` sets it
|
|
103
107
|
*/
|
|
104
108
|
constructor(config = {}) {
|
|
105
109
|
this.config = config;
|
|
110
|
+
if (config.logging)
|
|
111
|
+
setLogger(createLoggerFromConfig(config.logging));
|
|
106
112
|
}
|
|
107
113
|
/**
|
|
108
114
|
* Run an agent with the given input.
|
|
@@ -205,7 +211,11 @@ export class Cogitator {
|
|
|
205
211
|
}
|
|
206
212
|
if (timeout && timeout > 0) {
|
|
207
213
|
timeoutId = setTimeout(() => {
|
|
208
|
-
abortController.abort(new
|
|
214
|
+
abortController.abort(new CogitatorError({
|
|
215
|
+
message: `Run timed out after ${timeout}ms`,
|
|
216
|
+
code: ErrorCode.RUN_TIMEOUT,
|
|
217
|
+
details: { timeout },
|
|
218
|
+
}));
|
|
209
219
|
}, timeout);
|
|
210
220
|
}
|
|
211
221
|
const rootSpanId = `span_${nanoid(12)}`;
|
|
@@ -285,19 +295,25 @@ export class Cogitator {
|
|
|
285
295
|
signal: abortController.signal,
|
|
286
296
|
});
|
|
287
297
|
const runOptions = input === options.input ? options : { ...options, input };
|
|
288
|
-
|
|
289
|
-
|
|
298
|
+
const costRouter = this.state.costRouter;
|
|
299
|
+
const recommendation = costRouter && this.config.costRouting?.autoSelectModel
|
|
300
|
+
? await costRouter.recommendAvailableModel(input, (provider) => this.servesProvider(provider, agentModel, agent.config.provider))
|
|
301
|
+
: undefined;
|
|
302
|
+
if (recommendation) {
|
|
290
303
|
effectiveModel = `${recommendation.provider}/${recommendation.modelId}`;
|
|
291
|
-
routeProvider =
|
|
292
|
-
|
|
304
|
+
routeProvider = undefined;
|
|
305
|
+
}
|
|
306
|
+
({ backend, model } = this.route(effectiveModel, routeProvider));
|
|
307
|
+
if (costRouter) {
|
|
308
|
+
const budgetCheck = recommendation
|
|
309
|
+
? costRouter.checkBudget(recommendation.estimatedCost)
|
|
310
|
+
: costRouter.checkRunBudget(input, model);
|
|
293
311
|
if (!budgetCheck.allowed) {
|
|
294
|
-
throw new
|
|
312
|
+
throw new CogitatorError({
|
|
313
|
+
message: `Budget exceeded: ${budgetCheck.reason}`,
|
|
314
|
+
code: ErrorCode.BUDGET_EXCEEDED,
|
|
315
|
+
});
|
|
295
316
|
}
|
|
296
|
-
backend = this.getBackend(effectiveModel, recommendation.provider);
|
|
297
|
-
model = recommendation.modelId;
|
|
298
|
-
}
|
|
299
|
-
else {
|
|
300
|
-
({ backend, model } = this.route(effectiveModel, agent.config.provider));
|
|
301
317
|
}
|
|
302
318
|
await this.abandonPausedRun(agent, runOptions, threadId);
|
|
303
319
|
messages = await this.prepareMessages(agent, runOptions, input, threadId);
|
|
@@ -393,7 +409,10 @@ export class Cogitator {
|
|
|
393
409
|
const pending = [];
|
|
394
410
|
for (const toolCall of toolCalls) {
|
|
395
411
|
const tool = registry.get(toolCall.name);
|
|
396
|
-
if (!tool ||
|
|
412
|
+
if (!tool ||
|
|
413
|
+
decisions.has(toolCall.id) ||
|
|
414
|
+
!(needsApproval(tool, toolCall.arguments) ||
|
|
415
|
+
this.state.constitutionalAI?.toolNeedsApproval(tool, toolCall.arguments))) {
|
|
397
416
|
continue;
|
|
398
417
|
}
|
|
399
418
|
const request = {
|
|
@@ -431,7 +450,7 @@ export class Cogitator {
|
|
|
431
450
|
userId: options.userId,
|
|
432
451
|
channelType: options.channelType,
|
|
433
452
|
channelId: options.channelId,
|
|
434
|
-
}, decision?.approved === true), abortController.signal);
|
|
453
|
+
}, decision?.approved === true, this.config.sandbox?.allowNativeFallback !== false), abortController.signal);
|
|
435
454
|
const toolSpanEnd = Date.now();
|
|
436
455
|
return { toolCall, result, toolSpanStart, toolSpanEnd };
|
|
437
456
|
};
|
|
@@ -510,6 +529,8 @@ export class Cogitator {
|
|
|
510
529
|
fallback: resumeFrom.defaultDecision,
|
|
511
530
|
});
|
|
512
531
|
}
|
|
532
|
+
const streaming = Boolean(options.stream && options.onToken);
|
|
533
|
+
let structuredRepaired = false;
|
|
513
534
|
while (!pausedTurn && iterations < maxIterations) {
|
|
514
535
|
throwIfAborted(abortController.signal);
|
|
515
536
|
this.assertTokenBudget(totalInputTokens + totalOutputTokens);
|
|
@@ -523,7 +544,7 @@ export class Cogitator {
|
|
|
523
544
|
agentContext.previousActions = [...allActions];
|
|
524
545
|
const llmSpanStart = Date.now();
|
|
525
546
|
let response;
|
|
526
|
-
if (
|
|
547
|
+
if (streaming && options.onToken) {
|
|
527
548
|
response = await waitForAbortable(streamChat(backend, model, messages, registry, active, options.onToken, abortController.signal, responseFormat, { reasoning, cache: promptCache, onReasoning: options.onReasoning }), abortController.signal);
|
|
528
549
|
}
|
|
529
550
|
else {
|
|
@@ -570,7 +591,11 @@ export class Cogitator {
|
|
|
570
591
|
outputContent = outputResult.suggestedRevision;
|
|
571
592
|
}
|
|
572
593
|
else {
|
|
573
|
-
throw new
|
|
594
|
+
throw new CogitatorError({
|
|
595
|
+
message: `Output blocked: ${outputResult.blockedReason ?? 'Policy violation'}`,
|
|
596
|
+
code: ErrorCode.LLM_CONTENT_FILTERED,
|
|
597
|
+
details: { harmScores: outputResult.harmScores },
|
|
598
|
+
});
|
|
574
599
|
}
|
|
575
600
|
}
|
|
576
601
|
}
|
|
@@ -582,21 +607,30 @@ export class Cogitator {
|
|
|
582
607
|
}
|
|
583
608
|
: { role: 'assistant', content: outputContent };
|
|
584
609
|
messages.push(assistantMessage);
|
|
610
|
+
const finalAnswer = !(response.finishReason === 'tool_calls' &&
|
|
611
|
+
response.toolCalls &&
|
|
612
|
+
response.toolCalls.length > 0);
|
|
613
|
+
const structuredProblem = finalAnswer && !streaming && !structuredRepaired && iterations < maxIterations
|
|
614
|
+
? structuredOutputProblem(active.config.responseFormat, outputContent)
|
|
615
|
+
: undefined;
|
|
616
|
+
if (structuredProblem) {
|
|
617
|
+
structuredRepaired = true;
|
|
618
|
+
messages.push({
|
|
619
|
+
role: 'user',
|
|
620
|
+
content: `Your answer does not match the required response format (${structuredProblem}). Reply again with only the corrected JSON.`,
|
|
621
|
+
});
|
|
622
|
+
continue;
|
|
623
|
+
}
|
|
585
624
|
if (this.state.memoryAdapter &&
|
|
586
625
|
options.saveHistory !== false &&
|
|
587
626
|
options.useMemory !== false) {
|
|
588
627
|
await saveEntry(threadId, active.id, assistantMessage, this.state.memoryAdapter, response.toolCalls, undefined, options.onMemoryError, options.userId);
|
|
589
628
|
}
|
|
590
|
-
if (response.
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
if (pausedTurn)
|
|
595
|
-
break;
|
|
596
|
-
}
|
|
597
|
-
else {
|
|
629
|
+
if (finalAnswer || !response.toolCalls)
|
|
630
|
+
break;
|
|
631
|
+
pausedTurn = await handleToolTurn(response.toolCalls);
|
|
632
|
+
if (pausedTurn)
|
|
598
633
|
break;
|
|
599
|
-
}
|
|
600
634
|
}
|
|
601
635
|
if (pausedTurn) {
|
|
602
636
|
const pausedCheckpoint = {
|
|
@@ -794,7 +828,11 @@ export class Cogitator {
|
|
|
794
828
|
if (this.state.constitutionalAI?.config.filterInput) {
|
|
795
829
|
const inputResult = await this.state.constitutionalAI.filterInput(input);
|
|
796
830
|
if (!inputResult.allowed) {
|
|
797
|
-
throw new
|
|
831
|
+
throw new CogitatorError({
|
|
832
|
+
message: `Input blocked: ${inputResult.blockedReason ?? 'Policy violation'}`,
|
|
833
|
+
code: ErrorCode.LLM_CONTENT_FILTERED,
|
|
834
|
+
details: { harmScores: inputResult.harmScores },
|
|
835
|
+
});
|
|
798
836
|
}
|
|
799
837
|
}
|
|
800
838
|
if (options.context) {
|
|
@@ -927,18 +965,12 @@ export class Cogitator {
|
|
|
927
965
|
await this.initPromise;
|
|
928
966
|
}
|
|
929
967
|
async _doInitializeAll(agentModel) {
|
|
930
|
-
|
|
931
|
-
await initializeMemory(this.config, this.state);
|
|
932
|
-
}
|
|
968
|
+
await this.getMemory();
|
|
933
969
|
if (this.config.reflection?.enabled && !this.state.reflectionInitialized) {
|
|
934
970
|
await initializeReflection(this.config, this.state, agentModel, (model) => this.route(model));
|
|
935
971
|
}
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
}
|
|
939
|
-
if (this.config.costRouting?.enabled && !this.state.costRoutingInitialized) {
|
|
940
|
-
initializeCostRouting(this.config, this.state);
|
|
941
|
-
}
|
|
972
|
+
this.ensureGuardrails(agentModel);
|
|
973
|
+
this.ensureCostRouting();
|
|
942
974
|
if (this.config.security?.promptInjection && !this.state.securityInitialized) {
|
|
943
975
|
initializeSecurity(this.config, this.state, agentModel, (model) => this.route(model));
|
|
944
976
|
}
|
|
@@ -946,6 +978,24 @@ export class Cogitator {
|
|
|
946
978
|
initializeContextManager(this.config, this.state, (model) => this.route(model));
|
|
947
979
|
}
|
|
948
980
|
}
|
|
981
|
+
/**
|
|
982
|
+
* Builds the guardrails once their model is known: `guardrails.model`, else
|
|
983
|
+
* the model of the agent being run, else `llm.defaultModel` — so they exist
|
|
984
|
+
* before the first run whenever one of the configured models names them.
|
|
985
|
+
*/
|
|
986
|
+
ensureGuardrails(agentModel) {
|
|
987
|
+
if (this.state.guardrailsInitialized || !this.config.guardrails)
|
|
988
|
+
return;
|
|
989
|
+
const model = agentModel ?? this.config.guardrails.model ?? this.config.llm?.defaultModel;
|
|
990
|
+
if (!model)
|
|
991
|
+
return;
|
|
992
|
+
initializeGuardrails(this.config, this.state, model, (target) => this.route(target), this.constitution);
|
|
993
|
+
}
|
|
994
|
+
ensureCostRouting() {
|
|
995
|
+
if (this.config.costRouting?.enabled && !this.state.costRoutingInitialized) {
|
|
996
|
+
initializeCostRouting(this.config, this.state);
|
|
997
|
+
}
|
|
998
|
+
}
|
|
949
999
|
getBackend(modelString, explicitProvider) {
|
|
950
1000
|
return this.route(modelString, explicitProvider).backend;
|
|
951
1001
|
}
|
|
@@ -958,20 +1008,44 @@ export class Cogitator {
|
|
|
958
1008
|
* An explicit provider keeps the model string as it is.
|
|
959
1009
|
*/
|
|
960
1010
|
route(modelString, explicitProvider) {
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
1011
|
+
const { provider, model } = this.resolveRoute(modelString, explicitProvider);
|
|
1012
|
+
return { backend: this.backendFor(provider), model };
|
|
1013
|
+
}
|
|
1014
|
+
resolveRoute(modelString, explicitProvider) {
|
|
1015
|
+
if (explicitProvider)
|
|
1016
|
+
return { provider: explicitProvider, model: modelString };
|
|
964
1017
|
const slash = modelString.indexOf('/');
|
|
965
1018
|
if (slash > 0) {
|
|
966
1019
|
const prefix = modelString.slice(0, slash);
|
|
967
1020
|
if (this.knowsProvider(prefix)) {
|
|
968
|
-
return {
|
|
1021
|
+
return { provider: prefix, model: modelString.slice(slash + 1) };
|
|
969
1022
|
}
|
|
970
1023
|
}
|
|
971
|
-
return {
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
1024
|
+
return { provider: this.config.llm?.defaultProvider ?? 'ollama', model: modelString };
|
|
1025
|
+
}
|
|
1026
|
+
/**
|
|
1027
|
+
* Whether runs can be sent to `provider`: a backend in `llm.backends`, a
|
|
1028
|
+
* registered plugin, `llm.defaultProvider`, the provider the agent's own
|
|
1029
|
+
* model runs on, or a built-in provider configured in `llm.providers` with
|
|
1030
|
+
* the credentials it needs.
|
|
1031
|
+
*/
|
|
1032
|
+
servesProvider(provider, agentModel, agentProvider) {
|
|
1033
|
+
const llm = this.config.llm;
|
|
1034
|
+
if (Object.hasOwn(llm?.backends ?? {}, provider) || hasLLMPlugin(provider))
|
|
1035
|
+
return true;
|
|
1036
|
+
if (provider === llm?.defaultProvider)
|
|
1037
|
+
return true;
|
|
1038
|
+
if (provider === this.resolveRoute(agentModel, agentProvider).provider)
|
|
1039
|
+
return true;
|
|
1040
|
+
if (!isLLMProvider(provider) || !Object.hasOwn(llm?.providers ?? {}, provider))
|
|
1041
|
+
return false;
|
|
1042
|
+
try {
|
|
1043
|
+
this.backendFor(provider);
|
|
1044
|
+
return true;
|
|
1045
|
+
}
|
|
1046
|
+
catch {
|
|
1047
|
+
return false;
|
|
1048
|
+
}
|
|
975
1049
|
}
|
|
976
1050
|
knowsProvider(name) {
|
|
977
1051
|
return (Object.hasOwn(this.config.llm?.backends ?? {}, name) ||
|
|
@@ -1035,28 +1109,46 @@ export class Cogitator {
|
|
|
1035
1109
|
/**
|
|
1036
1110
|
* Get the constitutional AI guardrails instance.
|
|
1037
1111
|
*
|
|
1038
|
-
*
|
|
1112
|
+
* Built on first use from `guardrails.model` or `llm.defaultModel`; when
|
|
1113
|
+
* neither is set, the first run builds it with its agent's model.
|
|
1114
|
+
*
|
|
1115
|
+
* @returns ConstitutionalAI instance, undefined if guardrails are not
|
|
1116
|
+
* configured (or are disabled), or no model for them is known yet
|
|
1039
1117
|
*/
|
|
1040
1118
|
getGuardrails() {
|
|
1119
|
+
this.ensureGuardrails();
|
|
1041
1120
|
return this.state.constitutionalAI;
|
|
1042
1121
|
}
|
|
1043
1122
|
/**
|
|
1044
1123
|
* Set or update the constitution for guardrails.
|
|
1045
1124
|
*
|
|
1046
1125
|
* The constitution defines principles and rules that the agent
|
|
1047
|
-
* must follow, filtering both input and output.
|
|
1126
|
+
* must follow, filtering both input and output. It takes effect at once,
|
|
1127
|
+
* or — when the guardrails are built later — as soon as they are, and
|
|
1128
|
+
* stays in force after {@link close}. Has no effect without `guardrails`
|
|
1129
|
+
* in the config.
|
|
1048
1130
|
*
|
|
1049
1131
|
* @param constitution - New constitution to apply
|
|
1050
1132
|
*/
|
|
1051
1133
|
setConstitution(constitution) {
|
|
1052
|
-
this.
|
|
1134
|
+
if (!this.config.guardrails || this.config.guardrails.enabled === false) {
|
|
1135
|
+
getLogger().warn('setConstitution has no effect: guardrails are not enabled in the config');
|
|
1136
|
+
return;
|
|
1137
|
+
}
|
|
1138
|
+
this.constitution = constitution;
|
|
1139
|
+
if (this.state.constitutionalAI)
|
|
1140
|
+
this.state.constitutionalAI.setConstitution(constitution);
|
|
1141
|
+
else
|
|
1142
|
+
this.ensureGuardrails();
|
|
1053
1143
|
}
|
|
1054
1144
|
/**
|
|
1055
1145
|
* Get cost tracking summary across all runs.
|
|
1056
1146
|
*
|
|
1057
|
-
* @returns Cost summary with total spent, runs count, and per-model breakdown
|
|
1147
|
+
* @returns Cost summary with total spent, runs count, and per-model breakdown,
|
|
1148
|
+
* undefined if cost routing is not enabled
|
|
1058
1149
|
*/
|
|
1059
1150
|
getCostSummary() {
|
|
1151
|
+
this.ensureCostRouting();
|
|
1060
1152
|
return this.state.costRouter?.getCostSummary();
|
|
1061
1153
|
}
|
|
1062
1154
|
/**
|
|
@@ -1065,6 +1157,7 @@ export class Cogitator {
|
|
|
1065
1157
|
* @returns CostAwareRouter instance, undefined if cost routing not enabled
|
|
1066
1158
|
*/
|
|
1067
1159
|
getCostRouter() {
|
|
1160
|
+
this.ensureCostRouting();
|
|
1068
1161
|
return this.state.costRouter;
|
|
1069
1162
|
}
|
|
1070
1163
|
/**
|
|
@@ -1108,8 +1201,23 @@ export class Cogitator {
|
|
|
1108
1201
|
});
|
|
1109
1202
|
}
|
|
1110
1203
|
/**
|
|
1111
|
-
*
|
|
1112
|
-
*
|
|
1204
|
+
* The memory adapter, connecting it on first use when `memory` is
|
|
1205
|
+
* configured, so threads can be read before any agent has run. `undefined`
|
|
1206
|
+
* when memory is not configured or could not connect (it is tried again
|
|
1207
|
+
* on the next call).
|
|
1208
|
+
*/
|
|
1209
|
+
async getMemory() {
|
|
1210
|
+
if (!this.state.memoryInitialized && this.config.memory?.adapter) {
|
|
1211
|
+
this.memoryInit ??= initializeMemory(this.config, this.state).finally(() => {
|
|
1212
|
+
this.memoryInit = undefined;
|
|
1213
|
+
});
|
|
1214
|
+
await this.memoryInit;
|
|
1215
|
+
}
|
|
1216
|
+
return this.state.memoryAdapter;
|
|
1217
|
+
}
|
|
1218
|
+
/**
|
|
1219
|
+
* The memory adapter once connected: by a run, by {@link getMemory}, or
|
|
1220
|
+
* set here. `undefined` before then — use `getMemory()` to connect it.
|
|
1113
1221
|
*/
|
|
1114
1222
|
get memory() {
|
|
1115
1223
|
return this.state.memoryAdapter;
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/security/pii.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ChatRequest, ChatResponse, ChatStreamChunk, LLMBackend,
|
|
1
|
+
import type { ChatRequest, ChatResponse, ChatStreamChunk, LLMBackend, LLMBackendProvider, PiiConfig, PiiFinding, PiiType } from '@cogitator-ai/types';
|
|
2
2
|
export declare const PII_TYPES: PiiType[];
|
|
3
3
|
/**
|
|
4
4
|
* Finds personal data and secrets in text and stands placeholders in for
|
|
@@ -31,7 +31,7 @@ export declare class PiiVault {
|
|
|
31
31
|
export declare class PiiMaskingBackend implements LLMBackend {
|
|
32
32
|
readonly inner: LLMBackend;
|
|
33
33
|
private readonly config;
|
|
34
|
-
readonly provider:
|
|
34
|
+
readonly provider: LLMBackendProvider;
|
|
35
35
|
private readonly masker;
|
|
36
36
|
constructor(inner: LLMBackend, config: PiiConfig);
|
|
37
37
|
chat(request: ChatRequest): Promise<ChatResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pii.d.ts","sourceRoot":"","sources":["../../src/security/pii.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EAEf,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"pii.d.ts","sourceRoot":"","sources":["../../src/security/pii.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EAEf,UAAU,EACV,kBAAkB,EAElB,SAAS,EACT,UAAU,EACV,OAAO,EAER,MAAM,qBAAqB,CAAC;AA2C7B,eAAO,MAAM,SAAS,EAA4B,OAAO,EAAE,CAAC;AAE5D;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;gBAE3B,MAAM,GAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAM;IAY7D,wDAAwD;IACxD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE;IAoBhC,wEAAwE;IACxE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM;CAO5C;AAED,gFAAgF;AAChF,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAM;IAErC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAanD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAQ7B,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;CAUtC;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,UAAU;IAKhD,QAAQ,CAAC,KAAK,EAAE,UAAU;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;gBAGxB,KAAK,EAAE,UAAU,EACT,MAAM,EAAE,SAAS;IAM9B,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAchD,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,eAAe,CAAC;IAuCxE,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,CAAC,WAAW;CAMpB;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAG7F"}
|