@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.
Files changed (182) hide show
  1. package/README.md +531 -167
  2. package/dist/agent-tool.d.ts +4 -3
  3. package/dist/agent-tool.d.ts.map +1 -1
  4. package/dist/agent-tool.js +15 -2
  5. package/dist/agent-tool.js.map +1 -1
  6. package/dist/agent.d.ts.map +1 -1
  7. package/dist/agent.js +3 -1
  8. package/dist/agent.js.map +1 -1
  9. package/dist/cache/cache-key.d.ts +1 -0
  10. package/dist/cache/cache-key.d.ts.map +1 -1
  11. package/dist/cache/cache-key.js +2 -1
  12. package/dist/cache/cache-key.js.map +1 -1
  13. package/dist/cache/storage/memory.d.ts +8 -1
  14. package/dist/cache/storage/memory.d.ts.map +1 -1
  15. package/dist/cache/storage/memory.js +8 -1
  16. package/dist/cache/storage/memory.js.map +1 -1
  17. package/dist/cache/storage/redis.d.ts +4 -0
  18. package/dist/cache/storage/redis.d.ts.map +1 -1
  19. package/dist/cache/storage/redis.js +17 -18
  20. package/dist/cache/storage/redis.js.map +1 -1
  21. package/dist/cache/tool-cache.d.ts +2 -0
  22. package/dist/cache/tool-cache.d.ts.map +1 -1
  23. package/dist/cache/tool-cache.js +4 -2
  24. package/dist/cache/tool-cache.js.map +1 -1
  25. package/dist/causal/inference/counterfactual.d.ts +2 -0
  26. package/dist/causal/inference/counterfactual.d.ts.map +1 -1
  27. package/dist/causal/inference/counterfactual.js +24 -3
  28. package/dist/causal/inference/counterfactual.js.map +1 -1
  29. package/dist/causal/inference/expression.d.ts +19 -0
  30. package/dist/causal/inference/expression.d.ts.map +1 -0
  31. package/dist/causal/inference/expression.js +177 -0
  32. package/dist/causal/inference/expression.js.map +1 -0
  33. package/dist/cogitator/initializers.d.ts +4 -3
  34. package/dist/cogitator/initializers.d.ts.map +1 -1
  35. package/dist/cogitator/initializers.js +100 -46
  36. package/dist/cogitator/initializers.js.map +1 -1
  37. package/dist/cogitator/message-builder.d.ts.map +1 -1
  38. package/dist/cogitator/message-builder.js +5 -1
  39. package/dist/cogitator/message-builder.js.map +1 -1
  40. package/dist/cogitator/prompts.d.ts.map +1 -1
  41. package/dist/cogitator/prompts.js +5 -1
  42. package/dist/cogitator/prompts.js.map +1 -1
  43. package/dist/cogitator/response-format.d.ts +7 -2
  44. package/dist/cogitator/response-format.d.ts.map +1 -1
  45. package/dist/cogitator/response-format.js +45 -7
  46. package/dist/cogitator/response-format.js.map +1 -1
  47. package/dist/cogitator/run-limiter.d.ts.map +1 -1
  48. package/dist/cogitator/run-limiter.js +5 -1
  49. package/dist/cogitator/run-limiter.js.map +1 -1
  50. package/dist/cogitator/tool-executor.d.ts +8 -2
  51. package/dist/cogitator/tool-executor.d.ts.map +1 -1
  52. package/dist/cogitator/tool-executor.js +54 -5
  53. package/dist/cogitator/tool-executor.js.map +1 -1
  54. package/dist/constitutional/constitutional-ai.d.ts +7 -0
  55. package/dist/constitutional/constitutional-ai.d.ts.map +1 -1
  56. package/dist/constitutional/constitutional-ai.js +11 -0
  57. package/dist/constitutional/constitutional-ai.js.map +1 -1
  58. package/dist/constitutional/tool-guard.d.ts +9 -0
  59. package/dist/constitutional/tool-guard.d.ts.map +1 -1
  60. package/dist/constitutional/tool-guard.js +25 -20
  61. package/dist/constitutional/tool-guard.js.map +1 -1
  62. package/dist/cost-routing/cost-estimator.d.ts.map +1 -1
  63. package/dist/cost-routing/cost-estimator.js +5 -1
  64. package/dist/cost-routing/cost-estimator.js.map +1 -1
  65. package/dist/cost-routing/cost-router.d.ts +13 -0
  66. package/dist/cost-routing/cost-router.d.ts.map +1 -1
  67. package/dist/cost-routing/cost-router.js +22 -1
  68. package/dist/cost-routing/cost-router.js.map +1 -1
  69. package/dist/cost-routing/model-selector.d.ts +13 -0
  70. package/dist/cost-routing/model-selector.d.ts.map +1 -1
  71. package/dist/cost-routing/model-selector.js +25 -16
  72. package/dist/cost-routing/model-selector.js.map +1 -1
  73. package/dist/index.d.ts +3 -3
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +2 -2
  76. package/dist/index.js.map +1 -1
  77. package/dist/learning/ab-testing.d.ts +1 -1
  78. package/dist/learning/ab-testing.d.ts.map +1 -1
  79. package/dist/learning/ab-testing.js +6 -28
  80. package/dist/learning/ab-testing.js.map +1 -1
  81. package/dist/learning/agent-optimizer.d.ts +2 -0
  82. package/dist/learning/agent-optimizer.d.ts.map +1 -1
  83. package/dist/learning/agent-optimizer.js +20 -2
  84. package/dist/learning/agent-optimizer.js.map +1 -1
  85. package/dist/learning/auto-optimizer.d.ts +11 -0
  86. package/dist/learning/auto-optimizer.d.ts.map +1 -1
  87. package/dist/learning/auto-optimizer.js +47 -16
  88. package/dist/learning/auto-optimizer.js.map +1 -1
  89. package/dist/learning/metrics.d.ts +8 -1
  90. package/dist/learning/metrics.d.ts.map +1 -1
  91. package/dist/learning/metrics.js +48 -16
  92. package/dist/learning/metrics.js.map +1 -1
  93. package/dist/learning/postgres-trace-store.d.ts +3 -1
  94. package/dist/learning/postgres-trace-store.d.ts.map +1 -1
  95. package/dist/learning/postgres-trace-store.js +27 -4
  96. package/dist/learning/postgres-trace-store.js.map +1 -1
  97. package/dist/learning/prompt-logger.d.ts +2 -2
  98. package/dist/learning/prompt-logger.d.ts.map +1 -1
  99. package/dist/learning/prompt-logger.js.map +1 -1
  100. package/dist/learning/trace-builder.d.ts.map +1 -1
  101. package/dist/learning/trace-builder.js +1 -0
  102. package/dist/learning/trace-builder.js.map +1 -1
  103. package/dist/llm/anthropic.d.ts +1 -0
  104. package/dist/llm/anthropic.d.ts.map +1 -1
  105. package/dist/llm/anthropic.js +6 -1
  106. package/dist/llm/anthropic.js.map +1 -1
  107. package/dist/llm/base.d.ts +2 -2
  108. package/dist/llm/base.d.ts.map +1 -1
  109. package/dist/llm/bedrock.d.ts.map +1 -1
  110. package/dist/llm/bedrock.js +3 -1
  111. package/dist/llm/bedrock.js.map +1 -1
  112. package/dist/llm/debug.d.ts +2 -2
  113. package/dist/llm/debug.d.ts.map +1 -1
  114. package/dist/llm/debug.js.map +1 -1
  115. package/dist/llm/google.d.ts.map +1 -1
  116. package/dist/llm/google.js +56 -6
  117. package/dist/llm/google.js.map +1 -1
  118. package/dist/llm/openai-compatible-base.d.ts +4 -0
  119. package/dist/llm/openai-compatible-base.d.ts.map +1 -1
  120. package/dist/llm/openai-compatible-base.js +38 -13
  121. package/dist/llm/openai-compatible-base.js.map +1 -1
  122. package/dist/llm/openai-responses.js +1 -1
  123. package/dist/llm/openai-responses.js.map +1 -1
  124. package/dist/llm/retry.d.ts +2 -2
  125. package/dist/llm/retry.d.ts.map +1 -1
  126. package/dist/llm/retry.js.map +1 -1
  127. package/dist/logger.d.ts +11 -2
  128. package/dist/logger.d.ts.map +1 -1
  129. package/dist/logger.js +35 -6
  130. package/dist/logger.js.map +1 -1
  131. package/dist/observability/langfuse.d.ts +1 -0
  132. package/dist/observability/langfuse.d.ts.map +1 -1
  133. package/dist/observability/langfuse.js.map +1 -1
  134. package/dist/observability/opentelemetry.d.ts +1 -0
  135. package/dist/observability/opentelemetry.d.ts.map +1 -1
  136. package/dist/observability/opentelemetry.js.map +1 -1
  137. package/dist/reasoning/thought-tree.d.ts +28 -4
  138. package/dist/reasoning/thought-tree.d.ts.map +1 -1
  139. package/dist/reasoning/thought-tree.js +173 -110
  140. package/dist/reasoning/thought-tree.js.map +1 -1
  141. package/dist/runtime.d.ts +39 -5
  142. package/dist/runtime.d.ts.map +1 -1
  143. package/dist/runtime.js +158 -50
  144. package/dist/runtime.js.map +1 -1
  145. package/dist/security/pii.d.ts +2 -2
  146. package/dist/security/pii.d.ts.map +1 -1
  147. package/dist/security/pii.js.map +1 -1
  148. package/dist/time-travel/checkpoint-store.d.ts +6 -1
  149. package/dist/time-travel/checkpoint-store.d.ts.map +1 -1
  150. package/dist/time-travel/checkpoint-store.js +15 -18
  151. package/dist/time-travel/checkpoint-store.js.map +1 -1
  152. package/dist/time-travel/replayer.d.ts +0 -1
  153. package/dist/time-travel/replayer.d.ts.map +1 -1
  154. package/dist/time-travel/replayer.js +12 -19
  155. package/dist/time-travel/replayer.js.map +1 -1
  156. package/dist/time-travel/time-travel.d.ts +0 -1
  157. package/dist/time-travel/time-travel.d.ts.map +1 -1
  158. package/dist/time-travel/time-travel.js +15 -14
  159. package/dist/time-travel/time-travel.js.map +1 -1
  160. package/dist/tool.d.ts +7 -0
  161. package/dist/tool.d.ts.map +1 -1
  162. package/dist/tool.js +10 -0
  163. package/dist/tool.js.map +1 -1
  164. package/dist/tools/index.d.ts +3 -416
  165. package/dist/tools/index.d.ts.map +1 -1
  166. package/dist/tools/index.js +1 -0
  167. package/dist/tools/index.js.map +1 -1
  168. package/dist/tools/memory-tools.d.ts +4 -4
  169. package/dist/tools/memory-tools.d.ts.map +1 -1
  170. package/dist/tools/memory-tools.js +2 -2
  171. package/dist/tools/memory-tools.js.map +1 -1
  172. package/dist/tools/scheduler-tools.d.ts +4 -4
  173. package/dist/tools/scheduler-tools.d.ts.map +1 -1
  174. package/dist/tools/scheduler-tools.js +2 -2
  175. package/dist/tools/scheduler-tools.js.map +1 -1
  176. package/dist/tools/sql-query.d.ts.map +1 -1
  177. package/dist/tools/sql-query.js +2 -1
  178. package/dist/tools/sql-query.js.map +1 -1
  179. package/dist/tools/vector-search.d.ts.map +1 -1
  180. package/dist/tools/vector-search.js +12 -3
  181. package/dist/tools/vector-search.js.map +1 -1
  182. 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 Error(`Run timed out after ${timeout}ms`));
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
- if (this.state.costRouter && this.config.costRouting?.autoSelectModel) {
289
- const recommendation = await this.state.costRouter.recommendModel(input);
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 = recommendation.provider;
292
- const budgetCheck = this.state.costRouter.checkBudget(recommendation.estimatedCost);
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 Error(`Budget exceeded: ${budgetCheck.reason}`);
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 || decisions.has(toolCall.id) || !needsApproval(tool, toolCall.arguments)) {
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 (options.stream && options.onToken) {
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 Error(`Output blocked: ${outputResult.blockedReason ?? 'Policy violation'}`);
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.finishReason === 'tool_calls' &&
591
- response.toolCalls &&
592
- response.toolCalls.length > 0) {
593
- pausedTurn = await handleToolTurn(response.toolCalls);
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 Error(`Input blocked: ${inputResult.blockedReason ?? 'Policy violation'}`);
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
- if (this.config.memory?.adapter && !this.state.memoryInitialized) {
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
- if (this.config.guardrails && !this.state.guardrailsInitialized) {
937
- initializeGuardrails(this.config, this.state, agentModel, (model) => this.route(model));
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
- if (explicitProvider) {
962
- return { backend: this.backendFor(explicitProvider), model: modelString };
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 { backend: this.backendFor(prefix), model: modelString.slice(slash + 1) };
1021
+ return { provider: prefix, model: modelString.slice(slash + 1) };
969
1022
  }
970
1023
  }
971
- return {
972
- backend: this.backendFor(this.config.llm?.defaultProvider ?? 'ollama'),
973
- model: modelString,
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
- * @returns ConstitutionalAI instance, undefined if guardrails not enabled
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.state.constitutionalAI?.setConstitution(constitution);
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
- * Get the memory adapter if configured and initialized.
1112
- * Returns undefined if memory is not configured or not yet initialized.
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;
@@ -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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"}
@@ -1,4 +1,4 @@
1
- import type { ChatRequest, ChatResponse, ChatStreamChunk, LLMBackend, LLMProvider, PiiConfig, PiiFinding, PiiType } from '@cogitator-ai/types';
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: LLMProvider;
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,WAAW,EAEX,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,WAAW,CAAC;IAC/B,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"}
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"}