@cogitator-ai/core 0.21.0 → 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.
- package/README.md +29 -30
- package/dist/agent.d.ts +1 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +17 -1
- package/dist/agent.js.map +1 -1
- package/dist/cogitator/initializers.d.ts +5 -6
- package/dist/cogitator/initializers.d.ts.map +1 -1
- package/dist/cogitator/initializers.js +18 -17
- package/dist/cogitator/initializers.js.map +1 -1
- package/dist/cogitator/response-format.d.ts +17 -0
- package/dist/cogitator/response-format.d.ts.map +1 -0
- package/dist/cogitator/response-format.js +78 -0
- package/dist/cogitator/response-format.js.map +1 -0
- package/dist/cogitator/run-limiter.d.ts +18 -0
- package/dist/cogitator/run-limiter.d.ts.map +1 -0
- package/dist/cogitator/run-limiter.js +64 -0
- package/dist/cogitator/run-limiter.js.map +1 -0
- package/dist/cogitator/streaming.d.ts +2 -2
- package/dist/cogitator/streaming.d.ts.map +1 -1
- package/dist/cogitator/streaming.js +2 -1
- package/dist/cogitator/streaming.js.map +1 -1
- package/dist/cogitator/tool-executor.d.ts.map +1 -1
- package/dist/cogitator/tool-executor.js +18 -4
- package/dist/cogitator/tool-executor.js.map +1 -1
- package/dist/constitutional/constitutional-ai.d.ts +5 -0
- package/dist/constitutional/constitutional-ai.d.ts.map +1 -1
- package/dist/constitutional/constitutional-ai.js +19 -28
- package/dist/constitutional/constitutional-ai.js.map +1 -1
- package/dist/context/context-manager.d.ts +4 -1
- package/dist/context/context-manager.d.ts.map +1 -1
- package/dist/context/context-manager.js +12 -11
- package/dist/context/context-manager.js.map +1 -1
- package/dist/cost-routing/cost-estimator.d.ts +2 -0
- package/dist/cost-routing/cost-estimator.d.ts.map +1 -1
- package/dist/cost-routing/cost-estimator.js +6 -2
- package/dist/cost-routing/cost-estimator.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/learning/agent-optimizer.d.ts +21 -5
- package/dist/learning/agent-optimizer.d.ts.map +1 -1
- package/dist/learning/agent-optimizer.js +97 -142
- package/dist/learning/agent-optimizer.js.map +1 -1
- package/dist/learning/index.d.ts +1 -1
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/trace-builder.d.ts +20 -0
- package/dist/learning/trace-builder.d.ts.map +1 -0
- package/dist/learning/trace-builder.js +159 -0
- package/dist/learning/trace-builder.js.map +1 -0
- package/dist/llm/anthropic.d.ts.map +1 -1
- package/dist/llm/anthropic.js +10 -0
- package/dist/llm/anthropic.js.map +1 -1
- package/dist/llm/google.d.ts.map +1 -1
- package/dist/llm/google.js +26 -6
- package/dist/llm/google.js.map +1 -1
- package/dist/llm/index.d.ts +1 -0
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +2 -16
- package/dist/llm/index.js.map +1 -1
- package/dist/llm/providers.d.ts +4 -0
- package/dist/llm/providers.d.ts.map +1 -0
- package/dist/llm/providers.js +18 -0
- package/dist/llm/providers.js.map +1 -0
- package/dist/observability/opentelemetry.d.ts +12 -5
- package/dist/observability/opentelemetry.d.ts.map +1 -1
- package/dist/observability/opentelemetry.js +58 -32
- package/dist/observability/opentelemetry.js.map +1 -1
- package/dist/reasoning/thought-tree.js +2 -2
- package/dist/reasoning/thought-tree.js.map +1 -1
- package/dist/runtime.d.ts +22 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +132 -33
- package/dist/runtime.js.map +1 -1
- package/dist/time-travel/checkpoint-store.d.ts +1 -0
- package/dist/time-travel/checkpoint-store.d.ts.map +1 -1
- package/dist/time-travel/checkpoint-store.js +16 -7
- package/dist/time-travel/checkpoint-store.js.map +1 -1
- package/dist/time-travel/replayer.d.ts +9 -1
- package/dist/time-travel/replayer.d.ts.map +1 -1
- package/dist/time-travel/replayer.js +40 -23
- package/dist/time-travel/replayer.js.map +1 -1
- package/dist/time-travel/time-travel.d.ts +13 -0
- package/dist/time-travel/time-travel.d.ts.map +1 -1
- package/dist/time-travel/time-travel.js +79 -9
- package/dist/time-travel/time-travel.js.map +1 -1
- 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(
|
|
674
|
+
const optimizer = new AgentOptimizer({
|
|
675
|
+
llm: cogitator.getLLMBackend('openai/gpt-6.1-sol'),
|
|
676
|
+
model: 'gpt-6.1-sol',
|
|
680
677
|
traceStore,
|
|
681
|
-
|
|
682
|
-
maxCandidates: 5,
|
|
683
|
-
evaluationRuns: 3,
|
|
678
|
+
cogitator,
|
|
684
679
|
});
|
|
685
680
|
|
|
686
|
-
const result = await optimizer.compile(
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
{ input: 'Calculate
|
|
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
|
-
|
|
692
|
-
|
|
693
|
-
});
|
|
687
|
+
{ maxRounds: 3 }
|
|
688
|
+
);
|
|
694
689
|
|
|
695
|
-
console.log('Optimized instructions:', result.
|
|
696
|
-
console.log('
|
|
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.
|
|
876
|
+
console.log('Replayed from step 2:', replayResult.output);
|
|
880
877
|
|
|
881
878
|
const forkResult = await timeTravel.fork(agent, checkpoints[2].id, {
|
|
882
|
-
|
|
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
|
-
{
|
|
917
|
-
{
|
|
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
|
-
|
|
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
|
|
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 */
|
package/dist/agent.d.ts.map
CHANGED
|
@@ -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,
|
|
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":"
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import type { CogitatorConfig,
|
|
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,
|
|
58
|
-
export declare function initializeGuardrails(config: CogitatorConfig, state: InitializerState,
|
|
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,
|
|
61
|
-
export declare function initializeContextManager(config: CogitatorConfig, state: InitializerState,
|
|
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":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"initializers.d.ts","sourceRoot":"","sources":["../../src/cogitator/initializers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAIL,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,gBAAgB,EAAwB,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,CACL,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,EACD,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GACA,OAAO,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE;YACL,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,MAAM,CAAC;YACjB,QAAQ,EAAE,OAAO,CAAC;YAClB,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,sBAAsB,EAAE,OAAO,CAAC;IAChC,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;IAC5C,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,yBAAyB,EAAE,OAAO,CAAC;CACpC;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,IAAI,CAAC,CA2Df;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAkBrC;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,gBAAgB,EACvB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,UAAU,GACnC,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,gBAAgB,EACvB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,UAAU,GACnC,IAAI,CAgBN;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAK5F;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,gBAAgB,EACvB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,UAAU,GACnC,IAAI,CAaN;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,UAAU,GACnC,IAAI,CASN;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBzE"}
|
|
@@ -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,
|
|
86
|
+
export async function initializeReflection(config, state, agentModel, route) {
|
|
88
87
|
if (state.reflectionInitialized || !config.reflection?.enabled)
|
|
89
88
|
return;
|
|
90
|
-
const
|
|
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:
|
|
94
|
+
config: { ...config.reflection, reflectionModel: model },
|
|
97
95
|
});
|
|
98
96
|
state.reflectionInitialized = true;
|
|
99
97
|
}
|
|
100
|
-
export function initializeGuardrails(config, state,
|
|
101
|
-
if (state.guardrailsInitialized
|
|
98
|
+
export function initializeGuardrails(config, state, agentModel, route) {
|
|
99
|
+
if (state.guardrailsInitialized)
|
|
102
100
|
return;
|
|
103
|
-
|
|
104
|
-
|
|
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
|
|
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,
|
|
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
|
|
124
|
-
injectionConfig.llmBackend =
|
|
125
|
-
injectionConfig.llmModel =
|
|
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,
|
|
131
|
+
export function initializeContextManager(config, state, route) {
|
|
131
132
|
if (state.contextManagerInitialized)
|
|
132
133
|
return;
|
|
133
|
-
if (!config.context
|
|
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, {
|
|
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":"AACA,OAAO,EACL,eAAe,EACf,YAAY,EACZ,eAAe,EACf,cAAc,GAEf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,WAAW,GAAG,UAAU,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAkC;IAElC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,MAAM;YACT,OAAO,SAAS,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QACjC,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAGtE,CAAC;YACF,OAAO,MAAM,CAAC,OAAO,CAAC;YACtB,MAAM,WAAW,GAAG,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5F,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,UAAU,EAAE;oBACV,IAAI,EAAE,WAAW;oBACjB,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;oBACnC,MAAM;oBACN,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC;iBACnC;aACF,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAe;IACzC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/D,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,MAAiC,CAAC;IAE/C,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;QACtE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,QAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1F,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5E,IAAI,IAAI,CAAC,oBAAoB,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;IACxD,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAC/B,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,MAAM,IAAI,kBAAkB,CAAC,KAAK,CAAC,CACpF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAkC,EAAE,MAAc;IACtF,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IAExD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,uCAAuC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC/C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAY,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -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;
|
|
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":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAgB3D,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAmB,EACnB,KAAa,EACb,QAAmB,EACnB,QAAsB,EACtB,KAAY,EACZ,OAAgC,EAChC,MAAoB;
|
|
1
|
+
{"version":3,"file":"streaming.js","sourceRoot":"","sources":["../../src/cogitator/streaming.ts"],"names":[],"mappings":"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"}
|