@cogitator-ai/core 0.21.1 → 0.22.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 (86) hide show
  1. package/README.md +29 -30
  2. package/dist/agent.d.ts +1 -1
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +17 -1
  5. package/dist/agent.js.map +1 -1
  6. package/dist/cogitator/initializers.d.ts +5 -6
  7. package/dist/cogitator/initializers.d.ts.map +1 -1
  8. package/dist/cogitator/initializers.js +18 -17
  9. package/dist/cogitator/initializers.js.map +1 -1
  10. package/dist/cogitator/response-format.d.ts +17 -0
  11. package/dist/cogitator/response-format.d.ts.map +1 -0
  12. package/dist/cogitator/response-format.js +78 -0
  13. package/dist/cogitator/response-format.js.map +1 -0
  14. package/dist/cogitator/run-limiter.d.ts +18 -0
  15. package/dist/cogitator/run-limiter.d.ts.map +1 -0
  16. package/dist/cogitator/run-limiter.js +64 -0
  17. package/dist/cogitator/run-limiter.js.map +1 -0
  18. package/dist/cogitator/streaming.d.ts +2 -2
  19. package/dist/cogitator/streaming.d.ts.map +1 -1
  20. package/dist/cogitator/streaming.js +2 -1
  21. package/dist/cogitator/streaming.js.map +1 -1
  22. package/dist/cogitator/tool-executor.d.ts.map +1 -1
  23. package/dist/cogitator/tool-executor.js +18 -4
  24. package/dist/cogitator/tool-executor.js.map +1 -1
  25. package/dist/constitutional/constitutional-ai.d.ts +5 -0
  26. package/dist/constitutional/constitutional-ai.d.ts.map +1 -1
  27. package/dist/constitutional/constitutional-ai.js +19 -28
  28. package/dist/constitutional/constitutional-ai.js.map +1 -1
  29. package/dist/context/context-manager.d.ts +4 -1
  30. package/dist/context/context-manager.d.ts.map +1 -1
  31. package/dist/context/context-manager.js +12 -11
  32. package/dist/context/context-manager.js.map +1 -1
  33. package/dist/cost-routing/cost-estimator.d.ts +2 -0
  34. package/dist/cost-routing/cost-estimator.d.ts.map +1 -1
  35. package/dist/cost-routing/cost-estimator.js +6 -2
  36. package/dist/cost-routing/cost-estimator.js.map +1 -1
  37. package/dist/index.d.ts +1 -1
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/learning/agent-optimizer.d.ts +21 -5
  41. package/dist/learning/agent-optimizer.d.ts.map +1 -1
  42. package/dist/learning/agent-optimizer.js +97 -142
  43. package/dist/learning/agent-optimizer.js.map +1 -1
  44. package/dist/learning/index.d.ts +1 -1
  45. package/dist/learning/index.d.ts.map +1 -1
  46. package/dist/learning/trace-builder.d.ts +20 -0
  47. package/dist/learning/trace-builder.d.ts.map +1 -0
  48. package/dist/learning/trace-builder.js +159 -0
  49. package/dist/learning/trace-builder.js.map +1 -0
  50. package/dist/llm/anthropic.d.ts.map +1 -1
  51. package/dist/llm/anthropic.js +10 -0
  52. package/dist/llm/anthropic.js.map +1 -1
  53. package/dist/llm/google.d.ts.map +1 -1
  54. package/dist/llm/google.js +22 -2
  55. package/dist/llm/google.js.map +1 -1
  56. package/dist/llm/index.d.ts +1 -0
  57. package/dist/llm/index.d.ts.map +1 -1
  58. package/dist/llm/index.js +2 -16
  59. package/dist/llm/index.js.map +1 -1
  60. package/dist/llm/providers.d.ts +4 -0
  61. package/dist/llm/providers.d.ts.map +1 -0
  62. package/dist/llm/providers.js +18 -0
  63. package/dist/llm/providers.js.map +1 -0
  64. package/dist/observability/opentelemetry.d.ts +12 -5
  65. package/dist/observability/opentelemetry.d.ts.map +1 -1
  66. package/dist/observability/opentelemetry.js +58 -32
  67. package/dist/observability/opentelemetry.js.map +1 -1
  68. package/dist/reasoning/thought-tree.js +2 -2
  69. package/dist/reasoning/thought-tree.js.map +1 -1
  70. package/dist/runtime.d.ts +22 -1
  71. package/dist/runtime.d.ts.map +1 -1
  72. package/dist/runtime.js +132 -33
  73. package/dist/runtime.js.map +1 -1
  74. package/dist/time-travel/checkpoint-store.d.ts +1 -0
  75. package/dist/time-travel/checkpoint-store.d.ts.map +1 -1
  76. package/dist/time-travel/checkpoint-store.js +16 -7
  77. package/dist/time-travel/checkpoint-store.js.map +1 -1
  78. package/dist/time-travel/replayer.d.ts +9 -1
  79. package/dist/time-travel/replayer.d.ts.map +1 -1
  80. package/dist/time-travel/replayer.js +40 -23
  81. package/dist/time-travel/replayer.js.map +1 -1
  82. package/dist/time-travel/time-travel.d.ts +13 -0
  83. package/dist/time-travel/time-travel.d.ts.map +1 -1
  84. package/dist/time-travel/time-travel.js +79 -9
  85. package/dist/time-travel/time-travel.js.map +1 -1
  86. package/package.json +5 -5
package/README.md CHANGED
@@ -668,34 +668,31 @@ const executor = new ThoughtTreeExecutor(cogitator, {
668
668
  DSPy-style optimization through execution traces:
669
669
 
670
670
  ```typescript
671
- import {
672
- AgentOptimizer,
673
- InMemoryTraceStore,
674
- createSuccessMetric,
675
- createContainsMetric,
676
- } from '@cogitator-ai/core';
671
+ import { AgentOptimizer, InMemoryTraceStore } from '@cogitator-ai/core';
677
672
 
678
673
  const traceStore = new InMemoryTraceStore();
679
- const optimizer = new AgentOptimizer(cogitator, {
674
+ const optimizer = new AgentOptimizer({
675
+ llm: cogitator.getLLMBackend('openai/gpt-6.1-sol'),
676
+ model: 'gpt-6.1-sol',
680
677
  traceStore,
681
- optimizationModel: 'openai/gpt-6.1-sol',
682
- maxCandidates: 5,
683
- evaluationRuns: 3,
678
+ cogitator,
684
679
  });
685
680
 
686
- const result = await optimizer.compile(agent, {
687
- demos: [
688
- { input: 'Calculate 2+2', expectedOutput: '4' },
689
- { input: 'Calculate 10*5', expectedOutput: '50' },
681
+ const result = await optimizer.compile(
682
+ agent,
683
+ [
684
+ { input: 'Calculate 2+2', expected: '4' },
685
+ { input: 'Calculate 10*5', expected: '50' },
690
686
  ],
691
- metric: createSuccessMetric(),
692
- maxIterations: 10,
693
- });
687
+ { maxRounds: 3 }
688
+ );
694
689
 
695
- console.log('Optimized instructions:', result.optimizedAgent.instructions);
696
- console.log('Improvement:', result.improvement);
690
+ console.log('Optimized instructions:', result.instructionsAfter);
691
+ console.log('Score:', result.scoreBefore, '→', result.scoreAfter);
697
692
  ```
698
693
 
694
+ With `cogitator`, `compile()` runs the trainset with the original agent (those runs score it and become demo candidates) and again with the optimized instructions, so `scoreAfter` is measured. Without it, `compile()` works on the traces already stored and `scoreAfter` is the instruction optimizer's estimate.
695
+
699
696
  ### Built-in Metrics
700
697
 
701
698
  ```typescript
@@ -876,14 +873,14 @@ const result = await cogitator.run(agent, { input: 'Original task...' });
876
873
  const checkpoints = await timeTravel.checkpointAll(result, 'original');
877
874
 
878
875
  const replayResult = await timeTravel.replayLive(agent, checkpoints[2].id);
879
- console.log('Replayed from step 2:', replayResult.result.output);
876
+ console.log('Replayed from step 2:', replayResult.output);
880
877
 
881
878
  const forkResult = await timeTravel.fork(agent, checkpoints[2].id, {
882
- newInput: 'Modified task...',
879
+ input: 'Modified task...',
883
880
  });
884
881
  console.log('Forked result:', forkResult.result.output);
885
882
 
886
- const diff = await timeTravel.compareWithOriginal(forkResult);
883
+ const diff = await timeTravel.compareWithOriginal(forkResult.result);
887
884
  console.log(timeTravel.formatDiff(diff));
888
885
  ```
889
886
 
@@ -913,8 +910,8 @@ const forkWithNewInput = await timeTravel.forkWithNewInput(
913
910
  );
914
911
 
915
912
  const variants = await timeTravel.forkMultiple(agent, checkpointId, [
916
- { newInput: 'Variant A' },
917
- { newInput: 'Variant B' },
913
+ { input: 'Variant A' },
914
+ { input: 'Variant B' },
918
915
  { additionalContext: 'Be more concise' },
919
916
  ]);
920
917
  ```
@@ -925,10 +922,13 @@ const variants = await timeTravel.forkMultiple(agent, checkpointId, [
925
922
  const deterministicReplay = await timeTravel.replayDeterministic(agent, checkpointId);
926
923
 
927
924
  const liveReplay = await timeTravel.replayLive(agent, checkpointId, {
928
- maxSteps: 5,
925
+ skipTools: ['send_email'],
926
+ modifiedToolResults: { web_search: { results: [] } },
929
927
  });
930
928
  ```
931
929
 
930
+ Mocked tool results are keyed by tool name (in deterministic replays also by call id): the tool answers with the given value and never runs. Tools in `skipTools` are removed from the replayed agent. Checkpoints, replays and forks store their traces in the trace store, so `compare()` and `compareWithOriginal()` can read them.
931
+
932
932
  ---
933
933
 
934
934
  ## Causal Reasoning
@@ -1115,7 +1115,7 @@ const cog = new Cogitator({
1115
1115
  },
1116
1116
  });
1117
1117
 
1118
- // Throws PromptInjectionError if attack detected
1118
+ // Throws a CogitatorError with code PROMPT_INJECTION_DETECTED when an attack is found
1119
1119
  await cog.run(agent, { input: userInput });
1120
1120
  ```
1121
1121
 
@@ -1402,17 +1402,16 @@ const cog = new Cogitator({
1402
1402
  Automatic context window management with compression strategies:
1403
1403
 
1404
1404
  ```typescript
1405
- import { ContextManager, TruncateStrategy, SummarizeStrategy } from '@cogitator-ai/core';
1406
-
1407
1405
  const cog = new Cogitator({
1408
1406
  context: {
1409
- enabled: true,
1410
- maxTokens: 8000,
1411
1407
  strategy: 'hybrid',
1408
+ compressionThreshold: 0.8,
1412
1409
  },
1413
1410
  });
1414
1411
  ```
1415
1412
 
1413
+ Setting `context` turns compression on; pass `enabled: false` to keep the config but switch it off.
1414
+
1416
1415
  Available strategies: `TruncateStrategy`, `SlidingWindowStrategy`, `SummarizeStrategy`, `HybridStrategy`.
1417
1416
 
1418
1417
  ---
package/dist/agent.d.ts CHANGED
@@ -46,7 +46,7 @@ export declare class Agent implements IAgent {
46
46
  */
47
47
  constructor(config: AgentConfig);
48
48
  /** LLM model identifier */
49
- get model(): string;
49
+ get model(): string | undefined;
50
50
  /** System prompt defining agent behavior */
51
51
  get instructions(): string;
52
52
  /** Tools available to this agent */
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,IAAI,MAAM,EACf,WAAW,EACX,IAAI,EACJ,aAAa,EACb,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAM7B,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,KAAM,YAAW,MAAM;IAClC,gDAAgD;IAChD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B;;;;;;;;;;;OAWG;gBACS,MAAM,EAAE,WAAW;IAkB/B,2BAA2B;IAC3B,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,4CAA4C;IAC5C,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,oCAAoC;IACpC,IAAI,KAAK,IAAI,IAAI,EAAE,CAElB;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,KAAK;IAQ7C;;;;;;;;;;;OAWG;IACH,SAAS,IAAI,aAAa;IAwB1B;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,GAAE,kBAAuB,GAAG,KAAK;IA4CpF;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,aAAa;CAiBtE"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,IAAI,MAAM,EACf,WAAW,EACX,IAAI,EACJ,aAAa,EACb,kBAAkB,EAGnB,MAAM,qBAAqB,CAAC;AAM7B,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,KAAM,YAAW,MAAM;IAClC,gDAAgD;IAChD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B;;;;;;;;;;;OAWG;gBACS,MAAM,EAAE,WAAW;IAiB/B,2BAA2B;IAC3B,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED,4CAA4C;IAC5C,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,oCAAoC;IACpC,IAAI,KAAK,IAAI,IAAI,EAAE,CAElB;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,KAAK;IAQ7C;;;;;;;;;;;OAWG;IACH,SAAS,IAAI,aAAa;IAyB1B;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,GAAE,kBAAuB,GAAG,KAAK;IA6CpF;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,aAAa;CAiBtE"}
package/dist/agent.js CHANGED
@@ -60,7 +60,6 @@ export class Agent {
60
60
  this.config = {
61
61
  temperature: 0.7,
62
62
  maxIterations: 10,
63
- timeout: 120_000,
64
63
  ...finalConfig,
65
64
  };
66
65
  }
@@ -122,6 +121,7 @@ export class Agent {
122
121
  topP: this.config.topP,
123
122
  maxTokens: this.config.maxTokens,
124
123
  stopSequences: this.config.stopSequences,
124
+ responseFormat: serializeResponseFormat(this.config.responseFormat),
125
125
  maxIterations: this.config.maxIterations,
126
126
  timeout: this.config.timeout,
127
127
  },
@@ -178,6 +178,7 @@ export class Agent {
178
178
  topP: snapshot.config.topP,
179
179
  maxTokens: snapshot.config.maxTokens,
180
180
  stopSequences: snapshot.config.stopSequences,
181
+ responseFormat: deserializeResponseFormat(snapshot, overrides?.responseFormat),
181
182
  maxIterations: snapshot.config.maxIterations,
182
183
  timeout: snapshot.config.timeout,
183
184
  ...overrides,
@@ -213,4 +214,19 @@ export class Agent {
213
214
  return true;
214
215
  }
215
216
  }
217
+ function serializeResponseFormat(format) {
218
+ if (format?.type !== 'json_schema')
219
+ return format;
220
+ const name = format.schema.description;
221
+ return { type: 'json_schema', schemaName: name || 'response' };
222
+ }
223
+ function deserializeResponseFormat(snapshot, override) {
224
+ const format = snapshot.config.responseFormat;
225
+ if (override || !format)
226
+ return override;
227
+ if (format.type !== 'json_schema')
228
+ return format;
229
+ throw new Error(`Agent "${snapshot.name}" was serialized with the JSON schema "${format.schemaName}". ` +
230
+ 'Pass the Zod schema back as overrides.responseFormat to deserialize it.');
231
+ }
216
232
  //# sourceMappingURL=agent.js.map
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEjC,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,KAAK;IAChB,gDAAgD;IACvC,EAAE,CAAS;IACpB,uCAAuC;IAC9B,IAAI,CAAS;IACtB,8EAA8E;IACrE,MAAM,CAAc;IAE7B;;;;;;;;;;;OAWG;IACH,YAAY,MAAmB;QAC7B,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,SAAS,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAExB,IAAI,WAAW,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QAChC,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5F,WAAW,GAAG,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;QAC3F,CAAC;QAED,IAAI,CAAC,MAAM,GAAG;YACZ,WAAW,EAAE,GAAG;YAChB,aAAa,EAAE,EAAE;YACjB,GAAG,WAAW;SACf,CAAC;IACJ,CAAC;IAED,2BAA2B;IAC3B,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,4CAA4C;IAC5C,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;IAClC,CAAC;IAED,oCAAoC;IACpC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IACjC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,SAA+B;QACnC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QACzC,OAAO,IAAI,KAAK,CAAC;YACf,GAAG,IAAI;YACP,GAAG,SAAS;SACb,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;OAWG;IACH,SAAS;QACP,OAAO;YACL,OAAO,EAAE,gBAAgB;YACzB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE;gBACN,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;gBACxB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAC9B,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;gBACtC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBACpC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;gBACpC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;gBACpC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;gBACtB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAChC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;gBACxC,cAAc,EAAE,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;gBACnE,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;gBACxC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;aAC7B;YACD,QAAQ,EAAE;gBACR,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACvC;SACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,WAAW,CAAC,QAAuB,EAAE,UAA8B,EAAE;QAC1E,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,yBAAyB,CAAC,yBAAyB,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QAEhE,MAAM,aAAa,GAAW,EAAE,CAAC;QACjC,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC7C,IAAI,IAAsB,CAAC;YAE3B,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpC,CAAC;iBAAM,IAAI,WAAW,EAAE,CAAC;gBACvB,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;YACtD,CAAC;YAED,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,yBAAyB,CACjC,SAAS,QAAQ,2DAA2D,CAC7E,CAAC;YACJ,CAAC;YAED,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,IAAI,KAAK,CAAC;YACf,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW;YACxC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK;YAC5B,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ;YAClC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY;YAC1C,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW;YACxC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI;YAC1B,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;YACpC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa;YAC5C,cAAc,EAAE,yBAAyB,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC;YAC9E,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa;YAC5C,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO;YAChC,GAAG,SAAS;SACb,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAiB;QACvC,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5D,MAAM,CAAC,GAAG,QAAmC,CAAC;QAE9C,IAAI,CAAC,CAAC,OAAO,KAAK,gBAAgB;YAAE,OAAO,KAAK,CAAC;QACjD,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC3C,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC7C,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE5D,MAAM,MAAM,GAAG,CAAC,CAAC,MAAiC,CAAC;QACnD,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACnD,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;QAElF,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,SAAS,uBAAuB,CAC9B,MAAkC;IAElC,IAAI,MAAM,EAAE,IAAI,KAAK,aAAa;QAAE,OAAO,MAAM,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;IACvC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,IAAI,UAAU,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,yBAAyB,CAChC,QAAuB,EACvB,QAAoC;IAEpC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC;IAC9C,IAAI,QAAQ,IAAI,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAC;IACzC,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa;QAAE,OAAO,MAAM,CAAC;IACjD,MAAM,IAAI,KAAK,CACb,UAAU,QAAQ,CAAC,IAAI,0CAA0C,MAAM,CAAC,UAAU,KAAK;QACrF,yEAAyE,CAC5E,CAAC;AACJ,CAAC"}
@@ -1,11 +1,10 @@
1
- import type { CogitatorConfig, LLMBackend, MemoryAdapter, InsightStore } from '@cogitator-ai/types';
1
+ import type { CogitatorConfig, MemoryAdapter, InsightStore, ModelRoute } from '@cogitator-ai/types';
2
2
  import { ContextBuilder } from '@cogitator-ai/memory';
3
3
  import { ReflectionEngine } from '../reflection/index.js';
4
4
  import { ConstitutionalAI } from '../constitutional/index.js';
5
5
  import { CostAwareRouter } from '../cost-routing/index.js';
6
6
  import { PromptInjectionDetector } from '../security/index.js';
7
7
  import { ContextManager } from '../context/index.js';
8
- import type { Agent } from '../agent.js';
9
8
  export type SandboxManager = {
10
9
  initialize(): Promise<void>;
11
10
  execute(request: {
@@ -54,10 +53,10 @@ export interface InitializerState {
54
53
  }
55
54
  export declare function initializeMemory(config: CogitatorConfig, state: InitializerState): Promise<void>;
56
55
  export declare function initializeSandbox(config: CogitatorConfig, state: InitializerState): Promise<SandboxManager | undefined>;
57
- export declare function initializeReflection(config: CogitatorConfig, state: InitializerState, agent: Agent, getBackend: (model: string) => LLMBackend): Promise<void>;
58
- export declare function initializeGuardrails(config: CogitatorConfig, state: InitializerState, agent: Agent, getBackend: (model: string) => LLMBackend): void;
56
+ export declare function initializeReflection(config: CogitatorConfig, state: InitializerState, agentModel: string, route: (model: string) => ModelRoute): Promise<void>;
57
+ export declare function initializeGuardrails(config: CogitatorConfig, state: InitializerState, agentModel: string, route: (model: string) => ModelRoute): void;
59
58
  export declare function initializeCostRouting(config: CogitatorConfig, state: InitializerState): void;
60
- export declare function initializeSecurity(config: CogitatorConfig, state: InitializerState, agent: Agent, getBackend: (model: string) => LLMBackend): void;
61
- export declare function initializeContextManager(config: CogitatorConfig, state: InitializerState, getBackend: (model: string) => LLMBackend): void;
59
+ export declare function initializeSecurity(config: CogitatorConfig, state: InitializerState, agentModel: string, route: (model: string) => ModelRoute): void;
60
+ export declare function initializeContextManager(config: CogitatorConfig, state: InitializerState, route: (model: string) => ModelRoute): void;
62
61
  export declare function cleanupState(state: InitializerState): Promise<void>;
63
62
  //# sourceMappingURL=initializers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"initializers.d.ts","sourceRoot":"","sources":["../../src/cogitator/initializers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"initializers.d.ts","sourceRoot":"","sources":["../../src/cogitator/initializers.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,6 @@ import { ConstitutionalAI } from '../constitutional/index.js';
5
5
  import { CostAwareRouter } from '../cost-routing/index.js';
6
6
  import { PromptInjectionDetector } from '../security/index.js';
7
7
  import { ContextManager } from '../context/index.js';
8
- import { parseModel } from '../llm/index.js';
9
8
  export async function initializeMemory(config, state) {
10
9
  if (state.memoryInitialized || !config.memory?.adapter)
11
10
  return;
@@ -84,28 +83,30 @@ export async function initializeSandbox(config, state) {
84
83
  return undefined;
85
84
  }
86
85
  }
87
- export async function initializeReflection(config, state, agent, getBackend) {
86
+ export async function initializeReflection(config, state, agentModel, route) {
88
87
  if (state.reflectionInitialized || !config.reflection?.enabled)
89
88
  return;
90
- const modelString = config.reflection.reflectionModel ?? agent.model;
91
- const backend = getBackend(modelString);
89
+ const { backend, model } = route(config.reflection.reflectionModel ?? agentModel);
92
90
  state.insightStore = new InMemoryInsightStore();
93
91
  state.reflectionEngine = new ReflectionEngine({
94
92
  llm: backend,
95
93
  insightStore: state.insightStore,
96
- config: { ...config.reflection, reflectionModel: parseModel(modelString).model },
94
+ config: { ...config.reflection, reflectionModel: model },
97
95
  });
98
96
  state.reflectionInitialized = true;
99
97
  }
100
- export function initializeGuardrails(config, state, agent, getBackend) {
101
- if (state.guardrailsInitialized || !config.guardrails?.enabled)
98
+ export function initializeGuardrails(config, state, agentModel, route) {
99
+ if (state.guardrailsInitialized)
102
100
  return;
103
- const modelString = config.guardrails.model ?? agent.model;
104
- const backend = getBackend(modelString);
101
+ if (!config.guardrails || config.guardrails.enabled === false) {
102
+ state.guardrailsInitialized = true;
103
+ return;
104
+ }
105
+ const { backend, model } = route(config.guardrails.model ?? agentModel);
105
106
  state.constitutionalAI = new ConstitutionalAI({
106
107
  llm: backend,
107
108
  constitution: config.guardrails.constitution,
108
- config: { ...config.guardrails, model: parseModel(modelString).model },
109
+ config: { ...config.guardrails, model },
109
110
  });
110
111
  state.guardrailsInitialized = true;
111
112
  }
@@ -115,26 +116,26 @@ export function initializeCostRouting(config, state) {
115
116
  state.costRouter = new CostAwareRouter({ config: config.costRouting });
116
117
  state.costRoutingInitialized = true;
117
118
  }
118
- export function initializeSecurity(config, state, agent, getBackend) {
119
+ export function initializeSecurity(config, state, agentModel, route) {
119
120
  if (state.securityInitialized || !config.security?.promptInjection)
120
121
  return;
121
122
  const injectionConfig = { ...config.security.promptInjection };
122
123
  if (injectionConfig.classifier === 'llm' && !injectionConfig.llmBackend) {
123
- const modelString = injectionConfig.llmModel ?? agent.model;
124
- injectionConfig.llmBackend = getBackend(modelString);
125
- injectionConfig.llmModel = parseModel(modelString).model;
124
+ const { backend, model } = route(injectionConfig.llmModel ?? agentModel);
125
+ injectionConfig.llmBackend = backend;
126
+ injectionConfig.llmModel = model;
126
127
  }
127
128
  state.injectionDetector = new PromptInjectionDetector(injectionConfig);
128
129
  state.securityInitialized = true;
129
130
  }
130
- export function initializeContextManager(config, state, getBackend) {
131
+ export function initializeContextManager(config, state, route) {
131
132
  if (state.contextManagerInitialized)
132
133
  return;
133
- if (!config.context?.enabled) {
134
+ if (!config.context || config.context.enabled === false) {
134
135
  state.contextManagerInitialized = true;
135
136
  return;
136
137
  }
137
- state.contextManager = new ContextManager(config.context, { getBackend });
138
+ state.contextManager = new ContextManager(config.context, { route });
138
139
  state.contextManagerInitialized = true;
139
140
  }
140
141
  export async function cleanupState(state) {
@@ -1 +1 @@
1
- {"version":3,"file":"initializers.js","sourceRoot":"","sources":["../../src/cogitator/initializers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"initializers.js","sourceRoot":"","sources":["../../src/cogitator/initializers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { LLMResponseFormat, ResponseFormat } from '@cogitator-ai/types';
2
+ /**
3
+ * Translates an agent's `responseFormat` into the format LLM backends take.
4
+ *
5
+ * Zod schemas become JSON Schema. Strict mode is requested only when the
6
+ * schema allows it (every property required, no additional properties),
7
+ * since providers refuse strict schemas with optional fields.
8
+ */
9
+ export declare function toLLMResponseFormat(format: ResponseFormat | undefined): LLMResponseFormat | undefined;
10
+ /**
11
+ * Reads the structured result of a run from its final text.
12
+ *
13
+ * Returns `undefined` when the agent asked for plain text, when the text is not
14
+ * JSON, or when it does not match the agent's schema.
15
+ */
16
+ export declare function parseStructuredOutput(format: ResponseFormat | undefined, output: string): unknown;
17
+ //# sourceMappingURL=response-format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-format.d.ts","sourceRoot":"","sources":["../../src/cogitator/response-format.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI7E;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,cAAc,GAAG,SAAS,GACjC,iBAAiB,GAAG,SAAS,CAyB/B;AAmBD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CASjG"}
@@ -0,0 +1,78 @@
1
+ import { z } from 'zod';
2
+ const SCHEMA_NAME = 'response';
3
+ /**
4
+ * Translates an agent's `responseFormat` into the format LLM backends take.
5
+ *
6
+ * Zod schemas become JSON Schema. Strict mode is requested only when the
7
+ * schema allows it (every property required, no additional properties),
8
+ * since providers refuse strict schemas with optional fields.
9
+ */
10
+ export function toLLMResponseFormat(format) {
11
+ if (!format)
12
+ return undefined;
13
+ switch (format.type) {
14
+ case 'text':
15
+ return undefined;
16
+ case 'json':
17
+ return { type: 'json_object' };
18
+ case 'json_schema': {
19
+ const schema = z.toJSONSchema(format.schema, { unrepresentable: 'any' });
20
+ delete schema.$schema;
21
+ const description = typeof schema.description === 'string' ? schema.description : undefined;
22
+ return {
23
+ type: 'json_schema',
24
+ jsonSchema: {
25
+ name: SCHEMA_NAME,
26
+ ...(description && { description }),
27
+ schema,
28
+ strict: isStrictCompatible(schema),
29
+ },
30
+ };
31
+ }
32
+ }
33
+ }
34
+ function isStrictCompatible(schema) {
35
+ if (typeof schema !== 'object' || schema === null)
36
+ return true;
37
+ if (Array.isArray(schema))
38
+ return schema.every(isStrictCompatible);
39
+ const node = schema;
40
+ if (node.type === 'object' || node.properties !== undefined) {
41
+ const properties = (node.properties ?? {});
42
+ const required = new Set(Array.isArray(node.required) ? node.required : []);
43
+ if (Object.keys(properties).some((key) => !required.has(key)))
44
+ return false;
45
+ if (node.additionalProperties !== false)
46
+ return false;
47
+ }
48
+ return Object.entries(node).every(([key, value]) => key === 'required' || key === 'enum' || isStrictCompatible(value));
49
+ }
50
+ /**
51
+ * Reads the structured result of a run from its final text.
52
+ *
53
+ * Returns `undefined` when the agent asked for plain text, when the text is not
54
+ * JSON, or when it does not match the agent's schema.
55
+ */
56
+ export function parseStructuredOutput(format, output) {
57
+ if (!format || format.type === 'text')
58
+ return undefined;
59
+ const parsed = parseJson(output);
60
+ if (parsed === undefined)
61
+ return undefined;
62
+ if (format.type === 'json')
63
+ return parsed;
64
+ const result = format.schema.safeParse(parsed);
65
+ return result.success ? result.data : undefined;
66
+ }
67
+ function parseJson(text) {
68
+ const trimmed = text.trim();
69
+ const fenced = /^```(?:json)?\s*\n?([\s\S]*?)\n?```$/i.exec(trimmed);
70
+ const candidate = fenced ? fenced[1] : trimmed;
71
+ try {
72
+ return JSON.parse(candidate);
73
+ }
74
+ catch {
75
+ return undefined;
76
+ }
77
+ }
78
+ //# sourceMappingURL=response-format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-format.js","sourceRoot":"","sources":["../../src/cogitator/response-format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Caps how many runs execute at once; the rest wait in arrival order.
3
+ *
4
+ * A waiting run leaves the queue when its signal aborts, so a run timeout or a
5
+ * caller's abort also covers the time spent waiting for a slot.
6
+ */
7
+ export declare class RunLimiter {
8
+ private readonly max;
9
+ private active;
10
+ private readonly waiting;
11
+ constructor(max: number);
12
+ get running(): number;
13
+ get queued(): number;
14
+ /** Waits for a free slot and returns the function that frees it. */
15
+ acquire(signal: AbortSignal): Promise<() => void>;
16
+ private releaser;
17
+ }
18
+ //# sourceMappingURL=run-limiter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-limiter.d.ts","sourceRoot":"","sources":["../../src/cogitator/run-limiter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,UAAU;IAIT,OAAO,CAAC,QAAQ,CAAC,GAAG;IAHhC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;gBAEjC,GAAG,EAAE,MAAM;IAMxC,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,oEAAoE;IAC9D,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IA0BvD,OAAO,CAAC,QAAQ;CAajB"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Caps how many runs execute at once; the rest wait in arrival order.
3
+ *
4
+ * A waiting run leaves the queue when its signal aborts, so a run timeout or a
5
+ * caller's abort also covers the time spent waiting for a slot.
6
+ */
7
+ export class RunLimiter {
8
+ max;
9
+ active = 0;
10
+ waiting = [];
11
+ constructor(max) {
12
+ this.max = max;
13
+ if (!Number.isInteger(max) || max < 1) {
14
+ throw new Error(`limits.maxConcurrentRuns must be a positive integer, got ${max}`);
15
+ }
16
+ }
17
+ get running() {
18
+ return this.active;
19
+ }
20
+ get queued() {
21
+ return this.waiting.length;
22
+ }
23
+ /** Waits for a free slot and returns the function that frees it. */
24
+ async acquire(signal) {
25
+ signal.throwIfAborted();
26
+ if (this.active < this.max) {
27
+ this.active++;
28
+ return this.releaser();
29
+ }
30
+ await new Promise((resolve, reject) => {
31
+ const entry = {
32
+ resolve: () => {
33
+ signal.removeEventListener('abort', onAbort);
34
+ resolve();
35
+ },
36
+ };
37
+ const onAbort = () => {
38
+ const index = this.waiting.indexOf(entry);
39
+ if (index !== -1)
40
+ this.waiting.splice(index, 1);
41
+ reject(signal.reason instanceof Error ? signal.reason : new Error('Run aborted'));
42
+ };
43
+ signal.addEventListener('abort', onAbort, { once: true });
44
+ this.waiting.push(entry);
45
+ });
46
+ return this.releaser();
47
+ }
48
+ releaser() {
49
+ let released = false;
50
+ return () => {
51
+ if (released)
52
+ return;
53
+ released = true;
54
+ const next = this.waiting.shift();
55
+ if (next) {
56
+ next.resolve();
57
+ }
58
+ else {
59
+ this.active--;
60
+ }
61
+ };
62
+ }
63
+ }
64
+ //# sourceMappingURL=run-limiter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-limiter.js","sourceRoot":"","sources":["../../src/cogitator/run-limiter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,OAAO,UAAU;IAIQ;IAHrB,MAAM,GAAG,CAAC,CAAC;IACF,OAAO,GAAmC,EAAE,CAAC;IAE9D,YAA6B,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;QACtC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,4DAA4D,GAAG,EAAE,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,oEAAoE;IACpE,KAAK,CAAC,OAAO,CAAC,MAAmB;QAC/B,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;QAED,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,KAAK,GAAG;gBACZ,OAAO,EAAE,GAAG,EAAE;oBACZ,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC7C,OAAO,EAAE,CAAC;gBACZ,CAAC;aACF,CAAC;YACF,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC1C,IAAI,KAAK,KAAK,CAAC,CAAC;oBAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAChD,MAAM,CAAC,MAAM,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;YACpF,CAAC,CAAC;YACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAEO,QAAQ;QACd,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,OAAO,GAAG,EAAE;YACV,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import type { LLMBackend, Message, ToolCall } from '@cogitator-ai/types';
1
+ import type { LLMBackend, LLMResponseFormat, Message, ToolCall } from '@cogitator-ai/types';
2
2
  import { ToolRegistry } from '../registry.js';
3
3
  import type { Agent } from '../agent.js';
4
4
  export interface StreamChatResult {
@@ -12,5 +12,5 @@ export interface StreamChatResult {
12
12
  totalTokens: number;
13
13
  };
14
14
  }
15
- export declare function streamChat(backend: LLMBackend, model: string, messages: Message[], registry: ToolRegistry, agent: Agent, onToken: (token: string) => void, signal?: AbortSignal): Promise<StreamChatResult>;
15
+ export declare function streamChat(backend: LLMBackend, model: string, messages: Message[], registry: ToolRegistry, agent: Agent, onToken: (token: string) => void, signal?: AbortSignal, responseFormat?: LLMResponseFormat): Promise<StreamChatResult>;
16
16
  //# sourceMappingURL=streaming.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/cogitator/streaming.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC;IACzD,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,OAAO,EAAE,EACnB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAChC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,gBAAgB,CAAC,CA6F3B"}
1
+ {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/cogitator/streaming.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE5F,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC;IACzD,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,OAAO,EAAE,EACnB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAChC,MAAM,CAAC,EAAE,WAAW,EACpB,cAAc,CAAC,EAAE,iBAAiB,GACjC,OAAO,CAAC,gBAAgB,CAAC,CA8F3B"}
@@ -1,6 +1,6 @@
1
1
  import { nanoid } from 'nanoid';
2
2
  import { countMessagesTokens } from '@cogitator-ai/memory';
3
- export async function streamChat(backend, model, messages, registry, agent, onToken, signal) {
3
+ export async function streamChat(backend, model, messages, registry, agent, onToken, signal, responseFormat) {
4
4
  throwIfStreamAborted(signal);
5
5
  let content = '';
6
6
  let toolCalls;
@@ -16,6 +16,7 @@ export async function streamChat(backend, model, messages, registry, agent, onTo
16
16
  topP: agent.config.topP,
17
17
  maxTokens: agent.config.maxTokens,
18
18
  stop: agent.config.stopSequences,
19
+ responseFormat,
19
20
  signal,
20
21
  });
21
22
  for await (const chunk of stream) {
@@ -1 +1 @@
1
- {"version":3,"file":"streaming.js","sourceRoot":"","sources":["../../src/cogitator/streaming.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streaming.js","sourceRoot":"","sources":["../../src/cogitator/streaming.ts"],"names":[],"mappings":"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"}