@recombine-ai/platform 0.9.1-test.0 → 0.9.1-test.2
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/build/bosun-app/frontend/client/_app/immutable/chunks/B3sRmUmR.js +1 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/B3sRmUmR.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/B3sRmUmR.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BIYJrTTr.js +1 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/BIYJrTTr.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{DdpjwoIh.js.gz → BIYJrTTr.js.gz} +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{YE72mAzG.js → COI2cH3y.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/COI2cH3y.js.br +3 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/COI2cH3y.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/{7py9MbgR.js → CdiiHmb_.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CdiiHmb_.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/CdiiHmb_.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/YRWW-SW8.js +1 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/YRWW-SW8.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/YRWW-SW8.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/entry/{app.B0WyhTXQ.js → app.0r1adPhk.js} +2 -2
- package/build/bosun-app/frontend/client/_app/immutable/entry/app.0r1adPhk.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/entry/app.0r1adPhk.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/entry/start.BNSaABB8.js +1 -0
- package/build/bosun-app/frontend/client/_app/immutable/entry/start.BNSaABB8.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/entry/start.BNSaABB8.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/{0.B-xccOtn.js → 0.BCslgDHp.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/nodes/0.BCslgDHp.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/0.BCslgDHp.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/{1.D3-4ehn_.js → 1.DfDHVqM0.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/nodes/1.DfDHVqM0.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/1.DfDHVqM0.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/{10.DWK1AGJD.js → 10.BXbQQ1q5.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/nodes/10.BXbQQ1q5.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/10.BXbQQ1q5.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/17.DSps31HJ.js +3 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/17.DSps31HJ.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/17.DSps31HJ.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/{18.Bjr8I-7a.js → 18.8hAfbPPt.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/nodes/18.8hAfbPPt.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/18.8hAfbPPt.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/{2.BDwIMjum.js → 2.DLZcnXo3.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/nodes/2.DLZcnXo3.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/2.DLZcnXo3.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/{3.BX2jDq0d.js → 3.Dzl7FcjU.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/nodes/3.Dzl7FcjU.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/3.Dzl7FcjU.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/{4.B0PTNAkY.js → 4.BlHeYRVW.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/nodes/4.BlHeYRVW.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/4.BlHeYRVW.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/{5.DtXjhQi9.js → 5.DE3muGEs.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/nodes/5.DE3muGEs.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/5.DE3muGEs.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/{6.CIpO8gDQ.js → 6.DauPUI6w.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/nodes/6.DauPUI6w.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/6.DauPUI6w.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/{8.Dljnutoy.js → 8.DIwMEVk7.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/nodes/8.DIwMEVk7.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/8.DIwMEVk7.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/{9.BQUquGeo.js → 9.BoyHpLCi.js} +1 -1
- package/build/bosun-app/frontend/client/_app/immutable/nodes/9.BoyHpLCi.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/9.BoyHpLCi.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/version.json +1 -1
- package/build/bosun-app/frontend/client/_app/version.json.br +0 -0
- package/build/bosun-app/frontend/client/_app/version.json.gz +0 -0
- package/build/bosun-app/frontend/handler.js +4 -4
- package/build/bosun-app/frontend/index.js +4 -4
- package/build/bosun-app/frontend/server/chunks/chunks/{internal.js-BzUEmxtM.js → internal.js-Cr3b1H4k.js} +2 -2
- package/build/bosun-app/frontend/server/chunks/chunks/{internal.js-BzUEmxtM.js.map → internal.js-Cr3b1H4k.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_conversationId_/latency/{_page.svelte.js-SjAtxtA0.js → _page.svelte.js-ib8_Fg04.js} +27 -2
- package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_conversationId_/latency/_page.svelte.js-ib8_Fg04.js.map +1 -0
- package/build/bosun-app/frontend/server/chunks/{handler-CFjEFb1h.js → handler-DqsNau3u.js} +3 -3
- package/build/bosun-app/frontend/server/chunks/{handler-CFjEFb1h.js.map → handler-DqsNau3u.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/{index.js-CxSWZHu3.js → index.js-DZUC5rml.js} +2 -2
- package/build/bosun-app/frontend/server/chunks/{index.js-CxSWZHu3.js.map → index.js-DZUC5rml.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/{manifest.js-B77RWxaX.js → manifest.js-Ba8Iww95.js} +14 -14
- package/build/bosun-app/frontend/server/chunks/{manifest.js-B77RWxaX.js.map → manifest.js-Ba8Iww95.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/nodes/{0.js-B7wbeJFl.js → 0.js-ErWLOg9o.js} +2 -2
- package/build/bosun-app/frontend/server/chunks/nodes/{0.js-B7wbeJFl.js.map → 0.js-ErWLOg9o.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/nodes/{1.js-CNTEs79R.js → 1.js-BucIct8J.js} +2 -2
- package/build/bosun-app/frontend/server/chunks/nodes/{1.js-CNTEs79R.js.map → 1.js-BucIct8J.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/nodes/{10.js-3vQy72mr.js → 10.js-CmuGuxqs.js} +2 -2
- package/build/bosun-app/frontend/server/chunks/nodes/{10.js-3vQy72mr.js.map → 10.js-CmuGuxqs.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/nodes/{17.js-BQznQUjn.js → 17.js-R-YLRxxY.js} +3 -3
- package/build/bosun-app/frontend/server/chunks/nodes/{17.js-BQznQUjn.js.map → 17.js-R-YLRxxY.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/nodes/{18.js-Bo2MexI0.js → 18.js-Bwqlseie.js} +2 -2
- package/build/bosun-app/frontend/server/chunks/nodes/{18.js-Bo2MexI0.js.map → 18.js-Bwqlseie.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/nodes/{2.js-BosH410E.js → 2.js-DWsjBpYQ.js} +2 -2
- package/build/bosun-app/frontend/server/chunks/nodes/{2.js-BosH410E.js.map → 2.js-DWsjBpYQ.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/nodes/{3.js-mn0WrcAG.js → 3.js-Bw_XtVfk.js} +2 -2
- package/build/bosun-app/frontend/server/chunks/nodes/{3.js-mn0WrcAG.js.map → 3.js-Bw_XtVfk.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/nodes/{4.js-B8BFcPBH.js → 4.js-ZjhIMlzQ.js} +2 -2
- package/build/bosun-app/frontend/server/chunks/nodes/{4.js-B8BFcPBH.js.map → 4.js-ZjhIMlzQ.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/nodes/{5.js-C7XaU1e9.js → 5.js-1hrIQeCi.js} +2 -2
- package/build/bosun-app/frontend/server/chunks/nodes/{5.js-C7XaU1e9.js.map → 5.js-1hrIQeCi.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/nodes/{6.js-BeGnlxE4.js → 6.js-DqwEZ7GV.js} +2 -2
- package/build/bosun-app/frontend/server/chunks/nodes/{6.js-BeGnlxE4.js.map → 6.js-DqwEZ7GV.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/nodes/{8.js-DFxb3iv1.js → 8.js-DN3WDIfO.js} +2 -2
- package/build/bosun-app/frontend/server/chunks/nodes/{8.js-DFxb3iv1.js.map → 8.js-DN3WDIfO.js.map} +1 -1
- package/build/bosun-app/frontend/server/chunks/nodes/{9.js-DjLvoBf2.js → 9.js-C_SjLW8b.js} +2 -2
- package/build/bosun-app/frontend/server/chunks/nodes/{9.js-DjLvoBf2.js.map → 9.js-C_SjLW8b.js.map} +1 -1
- package/build/engine/index.d.ts +6 -4
- package/build/engine/index.d.ts.map +1 -1
- package/build/engine/index.js +3 -2
- package/build/engine/interfaces/stream.d.ts +57 -2
- package/build/engine/interfaces/stream.d.ts.map +1 -1
- package/build/engine/interfaces/stream.js +8 -1
- package/build/engine/llm-adapters/index.d.ts +2 -0
- package/build/engine/llm-adapters/index.d.ts.map +1 -1
- package/build/engine/llm-adapters/index.js +1 -0
- package/build/engine/llm-adapters/provider.d.ts.map +1 -1
- package/build/engine/llm-adapters/provider.js +2 -0
- package/build/engine/llm-adapters/together.d.ts +8 -0
- package/build/engine/llm-adapters/together.d.ts.map +1 -0
- package/build/engine/llm-adapters/together.js +39 -0
- package/build/engine/stream/engine.d.ts +1 -1
- package/build/engine/stream/engine.d.ts.map +1 -1
- package/build/engine/stream/engine.js +2 -0
- package/build/engine/stream/get-client.d.ts +1 -0
- package/build/engine/stream/get-client.d.ts.map +1 -1
- package/build/engine/stream/get-client.js +1 -0
- package/build/engine/stream/index.d.ts +3 -1
- package/build/engine/stream/index.d.ts.map +1 -1
- package/build/engine/stream/index.js +2 -0
- package/build/engine/stream/jev-prediction-chooser.d.ts +11 -0
- package/build/engine/stream/jev-prediction-chooser.d.ts.map +1 -0
- package/build/engine/stream/jev-prediction-chooser.js +101 -0
- package/build/engine/stream/predictive-prompts.d.ts +3 -0
- package/build/engine/stream/predictive-prompts.d.ts.map +1 -0
- package/build/engine/stream/predictive-prompts.js +21 -0
- package/build/engine/stream/predictive-workflow.d.ts +4 -0
- package/build/engine/stream/predictive-workflow.d.ts.map +1 -0
- package/build/engine/stream/predictive-workflow.js +517 -0
- package/build/telescope/latency-events.d.ts +1 -1
- package/build/telescope/latency-events.d.ts.map +1 -1
- package/build/telescope/latency-events.js +2 -0
- package/package.json +2 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/7py9MbgR.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/7py9MbgR.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/B6DLXdp3.js +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/B6DLXdp3.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/B6DLXdp3.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/ByRLqhAV.js +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/ByRLqhAV.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/ByRLqhAV.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DdpjwoIh.js +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/DdpjwoIh.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/chunks/YE72mAzG.js.br +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/chunks/YE72mAzG.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/entry/app.B0WyhTXQ.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/entry/app.B0WyhTXQ.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/entry/start.BPxqLgPa.js +0 -1
- package/build/bosun-app/frontend/client/_app/immutable/entry/start.BPxqLgPa.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/entry/start.BPxqLgPa.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/0.B-xccOtn.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/0.B-xccOtn.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/1.D3-4ehn_.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/1.D3-4ehn_.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/10.DWK1AGJD.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/10.DWK1AGJD.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/17.Bs51j1UA.js +0 -3
- package/build/bosun-app/frontend/client/_app/immutable/nodes/17.Bs51j1UA.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/17.Bs51j1UA.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/18.Bjr8I-7a.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/18.Bjr8I-7a.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/2.BDwIMjum.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/2.BDwIMjum.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/3.BX2jDq0d.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/3.BX2jDq0d.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/4.B0PTNAkY.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/4.B0PTNAkY.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/5.DtXjhQi9.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/5.DtXjhQi9.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/6.CIpO8gDQ.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/6.CIpO8gDQ.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/8.Dljnutoy.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/8.Dljnutoy.js.gz +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/9.BQUquGeo.js.br +0 -0
- package/build/bosun-app/frontend/client/_app/immutable/nodes/9.BQUquGeo.js.gz +0 -0
- package/build/bosun-app/frontend/server/chunks/entries/pages/traces/conversations/_conversationId_/latency/_page.svelte.js-SjAtxtA0.js.map +0 -1
package/build/engine/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
export type { AIEngine, AIStreamEngine, BasicStep, BeforeEachStep, Conversation, EngineConfig, JsonLlmStep, LlmStep, LlmAdapter, LlmProviderInfo, LlmStreamAdapter, Logger, Message, ProgrammaticStep, ResponseChunk, ScheduleAction, Scheduler, StepBuilder, StreamWorkflowConfig, StreamingEngineConfig, StringLlmStep, Transcript, Workflow, WorkflowConfig, WorkflowControls, WorkflowStep, } from './interfaces/index.js';
|
|
1
|
+
export type { AIEngine, AIStreamEngine, BasicStep, BeforeEachStep, Conversation, EngineConfig, JsonLlmStep, LlmStep, LlmAdapter, LlmProviderInfo, LlmStreamAdapter, Logger, Message, PredictionCandidate, PredictionChooser, PredictionChooserInput, PredictionChooserResult, PredictiveStreamingWorkflow, PredictiveWorkflowConfig, ProgrammaticStep, ResponseChunk, ScheduleAction, Scheduler, StepBuilder, StreamWorkflowConfig, StreamingEngineConfig, SupplementalPrediction, StringLlmStep, Transcript, Workflow, WorkflowConfig, WorkflowControls, WorkflowStep, } from './interfaces/index.js';
|
|
2
2
|
export { createAIEngine, createConversation, getStepBuilder } from './engine.js';
|
|
3
|
-
export { createAIStreamEngine, getAzureClient, getOpenAiClient } from './stream/index.js';
|
|
3
|
+
export { createAIStreamEngine, createJevPredictionChooser, getAzureClient, getOpenAiClient, } from './stream/index.js';
|
|
4
|
+
export type { JevPredictionChooserOptions } from './stream/index.js';
|
|
5
|
+
export { predictionTemplates } from './stream/index.js';
|
|
4
6
|
export type { StreamingWorkflowConfig } from './stream/index.js';
|
|
5
7
|
export { ScheduleQuery, createScheduleQuery, delayFactory } from './schedule.js';
|
|
6
8
|
export type { Schedule } from './schedule.js';
|
|
@@ -8,8 +10,8 @@ export { createContext, createMock, createStubApiCallTracer, createStubConversat
|
|
|
8
10
|
export type { Action, ApiCallTrace, ApiCallTracer, Context, ConversationalTrace, ConversationalTracer, LlmUsage, PromptString, SendAction, StepDef, StepRegistry, StepTrace, StepTracer, TestAgent, TestAgentFactory, TestAgentFactoryProps, TestTextAgent, TestVoiceAgent, } from './bosun/index.js';
|
|
9
11
|
export { createLocalFS } from './prompt-fs.js';
|
|
10
12
|
export type { FsConfig, PromptFS, PromptFile } from './prompt-fs.js';
|
|
11
|
-
export { createMockAdapter, createOpenAIAdapter, createOpenAIStreamAdapter, detectProvider, } from './llm-adapters/index.js';
|
|
12
|
-
export type { OpenAIChatOptions } from './llm-adapters/index.js';
|
|
13
|
+
export { createMockAdapter, createOpenAIAdapter, createOpenAIStreamAdapter, createTogetherAdapter, detectProvider, } from './llm-adapters/index.js';
|
|
14
|
+
export type { OpenAIChatOptions, TogetherChatOptions } from './llm-adapters/index.js';
|
|
13
15
|
export { classifyProviderError, reportProviderError } from './monitoring/index.js';
|
|
14
16
|
export type { ProviderErrorReport } from './monitoring/index.js';
|
|
15
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,QAAQ,EACR,cAAc,EACd,SAAS,EACT,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,OAAO,EACP,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,MAAM,EACN,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,SAAS,EACT,WAAW,EACX,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,UAAU,EACV,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,YAAY,GACf,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAChF,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,QAAQ,EACR,cAAc,EACd,SAAS,EACT,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,OAAO,EACP,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,MAAM,EACN,OAAO,EACP,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,SAAS,EACT,WAAW,EACX,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,UAAU,EACV,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,YAAY,GACf,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAChF,OAAO,EACH,oBAAoB,EACpB,0BAA0B,EAC1B,cAAc,EACd,eAAe,GAClB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,YAAY,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAChF,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EACH,aAAa,EACb,UAAU,EACV,uBAAuB,EACvB,8BAA8B,EAC9B,oBAAoB,EACpB,sBAAsB,EACtB,UAAU,EACV,iBAAiB,GACpB,MAAM,kBAAkB,CAAA;AACzB,YAAY,EACR,MAAM,EACN,YAAY,EACZ,aAAa,EACb,OAAO,EACP,mBAAmB,EACnB,oBAAoB,EACpB,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,OAAO,EACP,YAAY,EACZ,SAAS,EACT,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,cAAc,GACjB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACpE,OAAO,EACH,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,cAAc,GACjB,MAAM,yBAAyB,CAAA;AAChC,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AACrF,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAClF,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA"}
|
package/build/engine/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export { createAIEngine, createConversation, getStepBuilder } from './engine.js';
|
|
2
|
-
export { createAIStreamEngine, getAzureClient, getOpenAiClient } from './stream/index.js';
|
|
2
|
+
export { createAIStreamEngine, createJevPredictionChooser, getAzureClient, getOpenAiClient, } from './stream/index.js';
|
|
3
|
+
export { predictionTemplates } from './stream/index.js';
|
|
3
4
|
export { ScheduleQuery, createScheduleQuery, delayFactory } from './schedule.js';
|
|
4
5
|
export { createContext, createMock, createStubApiCallTracer, createStubConversationalTracer, createStubStepTracer, createTestAgentFactory, makeAction, makeActionWrapper, } from './bosun/index.js';
|
|
5
6
|
export { createLocalFS } from './prompt-fs.js';
|
|
6
|
-
export { createMockAdapter, createOpenAIAdapter, createOpenAIStreamAdapter, detectProvider, } from './llm-adapters/index.js';
|
|
7
|
+
export { createMockAdapter, createOpenAIAdapter, createOpenAIStreamAdapter, createTogetherAdapter, detectProvider, } from './llm-adapters/index.js';
|
|
7
8
|
export { classifyProviderError, reportProviderError } from './monitoring/index.js';
|
|
@@ -2,13 +2,14 @@ import { Environment } from 'nunjucks';
|
|
|
2
2
|
import type { EventTracer } from '../../telescope/index.js';
|
|
3
3
|
import { StepRegistry, StepTracer } from '../bosun/index.js';
|
|
4
4
|
import { PromptFile } from '../prompt-fs.js';
|
|
5
|
-
import { LlmProviderInfo } from './adapter.js';
|
|
5
|
+
import { LlmAdapter, LlmProviderInfo } from './adapter.js';
|
|
6
6
|
import { Message } from './conversation.js';
|
|
7
7
|
import { Logger } from './other.js';
|
|
8
|
-
export interface AIStreamEngine<CTX extends
|
|
8
|
+
export interface AIStreamEngine<CTX extends object> {
|
|
9
9
|
createWorkflow: (config: StreamWorkflowConfig<CTX>) => {
|
|
10
10
|
run: (messages: Message[], ctx: CTX) => Promise<ReadableStream<ResponseChunk>>;
|
|
11
11
|
};
|
|
12
|
+
createPredictiveWorkflow: (config: PredictiveWorkflowConfig<CTX>) => PredictiveStreamingWorkflow<CTX>;
|
|
12
13
|
}
|
|
13
14
|
export interface StreamingEngineConfig {
|
|
14
15
|
logger?: Logger;
|
|
@@ -16,6 +17,33 @@ export interface StreamingEngineConfig {
|
|
|
16
17
|
stepTracer?: StepTracer;
|
|
17
18
|
eventTracer?: EventTracer;
|
|
18
19
|
nunjucksEnv?: Environment;
|
|
20
|
+
predictive?: {
|
|
21
|
+
predictorModel: LlmAdapter;
|
|
22
|
+
chooser: PredictionChooser;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export interface PredictionCandidate {
|
|
26
|
+
userResponse: string;
|
|
27
|
+
agentResponse: string;
|
|
28
|
+
}
|
|
29
|
+
export interface PredictionChooserInput {
|
|
30
|
+
history: Message[];
|
|
31
|
+
actualUserResponse: string;
|
|
32
|
+
candidates: readonly PredictionCandidate[];
|
|
33
|
+
}
|
|
34
|
+
export interface PredictionChooserResult {
|
|
35
|
+
selectedIndex?: number;
|
|
36
|
+
scores: number[];
|
|
37
|
+
model?: string;
|
|
38
|
+
usage?: {
|
|
39
|
+
inputTokens: number;
|
|
40
|
+
outputTokens: number;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export interface PredictionChooser {
|
|
44
|
+
choose: (input: PredictionChooserInput) => Promise<PredictionChooserResult>;
|
|
45
|
+
getOptions: () => unknown;
|
|
46
|
+
getProviderInfo?: () => LlmProviderInfo;
|
|
19
47
|
}
|
|
20
48
|
export interface StreamWorkflowConfig<CTX> {
|
|
21
49
|
name: string;
|
|
@@ -24,6 +52,33 @@ export interface StreamWorkflowConfig<CTX> {
|
|
|
24
52
|
onError: (error: Error | string, ctx: CTX) => Promise<void>;
|
|
25
53
|
tokenTransformers?: (() => TransformStream<string, string>)[];
|
|
26
54
|
}
|
|
55
|
+
export interface SupplementalPrediction {
|
|
56
|
+
userResponse: string;
|
|
57
|
+
agentResponse?: string;
|
|
58
|
+
}
|
|
59
|
+
export interface PredictiveWorkflowConfig<CTX> extends Omit<StreamWorkflowConfig<CTX>, 'tokenTransformers'> {
|
|
60
|
+
predictionCount: number;
|
|
61
|
+
prewarmPredictions: readonly SupplementalPrediction[];
|
|
62
|
+
normalFlowPredictions: readonly SupplementalPrediction[];
|
|
63
|
+
}
|
|
64
|
+
export interface PredictiveStreamingWorkflow<CTX> {
|
|
65
|
+
run: (messages: Message[], ctx: CTX) => Promise<ReadableStream<ResponseChunk>>;
|
|
66
|
+
prewarmForUsersHello: (ctx: CTX) => void;
|
|
67
|
+
waitForPendingPrediction: (callId: string) => Promise<void>;
|
|
68
|
+
clear: (callId: string) => void;
|
|
69
|
+
}
|
|
70
|
+
export declare const predictionTemplates: {
|
|
71
|
+
readonly usersHello: {
|
|
72
|
+
readonly userResponse: "Hello?";
|
|
73
|
+
};
|
|
74
|
+
readonly usersSpeaking: {
|
|
75
|
+
readonly userResponse: "Speaking?";
|
|
76
|
+
};
|
|
77
|
+
readonly hesitation: {
|
|
78
|
+
readonly userResponse: "Uh...";
|
|
79
|
+
readonly agentResponse: "<WAIT reason=\"user may be just starting\"/>";
|
|
80
|
+
};
|
|
81
|
+
};
|
|
27
82
|
export interface Transcript {
|
|
28
83
|
responseChunks: ResponseChunk[];
|
|
29
84
|
messages: Message[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../src/engine/interfaces/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../src/engine/interfaces/stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,4 +2,6 @@ export * from './openai.js';
|
|
|
2
2
|
export { createOpenAIStreamAdapter } from './openai-stream.js';
|
|
3
3
|
export * from './mock.js';
|
|
4
4
|
export { detectProvider } from './provider.js';
|
|
5
|
+
export { createTogetherAdapter } from './together.js';
|
|
6
|
+
export type { TogetherChatOptions } from './together.js';
|
|
5
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/llm-adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,cAAc,WAAW,CAAA;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/llm-adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,cAAc,WAAW,CAAA;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/engine/llm-adapters/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAQlE,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/engine/llm-adapters/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAQlE,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAajE"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { OpenAI } from 'openai';
|
|
2
|
+
import type { LlmAdapter } from '../interfaces/index.js';
|
|
3
|
+
export interface TogetherChatOptions {
|
|
4
|
+
model: string;
|
|
5
|
+
maxTokens?: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function createTogetherAdapter(options: TogetherChatOptions, client: OpenAI, timeoutMs?: number): LlmAdapter;
|
|
8
|
+
//# sourceMappingURL=together.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"together.d.ts","sourceRoot":"","sources":["../../../src/engine/llm-adapters/together.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAG/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAGxD,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB;AAOD,wBAAgB,qBAAqB,CACjC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,MAAM,EACd,SAAS,SAAS,GACnB,UAAU,CAmCZ"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { requestTimeout } from './timeout.js';
|
|
2
|
+
export function createTogetherAdapter(options, client, timeoutMs = 60_000) {
|
|
3
|
+
return {
|
|
4
|
+
getOptions: () => ({
|
|
5
|
+
model: options.model,
|
|
6
|
+
temperature: 0,
|
|
7
|
+
max_tokens: options.maxTokens ?? 16,
|
|
8
|
+
reasoning: { enabled: false },
|
|
9
|
+
}),
|
|
10
|
+
getProviderInfo: () => ({ provider: 'together', model: options.model }),
|
|
11
|
+
async generateResponse(systemPrompt, messages, schema) {
|
|
12
|
+
if (schema)
|
|
13
|
+
throw new Error('The Together chooser does not accept a response schema.');
|
|
14
|
+
const timeout = requestTimeout(timeoutMs);
|
|
15
|
+
const body = {
|
|
16
|
+
model: options.model,
|
|
17
|
+
messages: [
|
|
18
|
+
{
|
|
19
|
+
role: 'user',
|
|
20
|
+
content: [systemPrompt, messages].filter(Boolean).join('\n\n'),
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
temperature: 0,
|
|
24
|
+
max_tokens: options.maxTokens ?? 16,
|
|
25
|
+
reasoning: { enabled: false },
|
|
26
|
+
};
|
|
27
|
+
const response = await client.chat.completions
|
|
28
|
+
.create(body, { signal: timeout.signal })
|
|
29
|
+
.catch((error) => {
|
|
30
|
+
throw timeout.wrap(error);
|
|
31
|
+
})
|
|
32
|
+
.finally(timeout.clear);
|
|
33
|
+
const content = response.choices[0]?.message?.content;
|
|
34
|
+
if (!content)
|
|
35
|
+
throw new Error('No response from Together AI');
|
|
36
|
+
return content;
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { AIStreamEngine, StreamingEngineConfig } from '../interfaces/index.js';
|
|
2
|
-
export declare function createAIStreamEngine<CTX extends
|
|
2
|
+
export declare function createAIStreamEngine<CTX extends object>(cfg: StreamingEngineConfig): AIStreamEngine<CTX>;
|
|
3
3
|
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/engine/stream/engine.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,cAAc,EAKd,qBAAqB,EAExB,MAAM,wBAAwB,CAAA;AAM/B,wBAAgB,oBAAoB,CAAC,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/engine/stream/engine.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,cAAc,EAKd,qBAAqB,EAExB,MAAM,wBAAwB,CAAA;AAM/B,wBAAgB,oBAAoB,CAAC,GAAG,SAAS,MAAM,EACnD,GAAG,EAAE,qBAAqB,GAC3B,cAAc,CAAC,GAAG,CAAC,CAyJrB"}
|
|
@@ -3,6 +3,7 @@ import { createStubStepTracer } from '../bosun/index.js';
|
|
|
3
3
|
import { defaultLogger } from '../default-logger.js';
|
|
4
4
|
import { reportProviderError } from '../monitoring/index.js';
|
|
5
5
|
import { stdPrompt } from '../step-registry.js';
|
|
6
|
+
import { createPredictiveWorkflow } from './predictive-workflow.js';
|
|
6
7
|
import { agentFilter, composeTokenTransformers } from './token-transformers.js';
|
|
7
8
|
export function createAIStreamEngine(cfg) {
|
|
8
9
|
const nunjucksEnv = cfg.nunjucksEnv ??
|
|
@@ -122,6 +123,7 @@ export function createAIStreamEngine(cfg) {
|
|
|
122
123
|
}
|
|
123
124
|
return {
|
|
124
125
|
createWorkflow,
|
|
126
|
+
createPredictiveWorkflow: (config) => createPredictiveWorkflow(config, cfg, nunjucksEnv),
|
|
125
127
|
};
|
|
126
128
|
}
|
|
127
129
|
function createTranscript(logger, initialMessages) {
|
|
@@ -8,6 +8,7 @@ interface AzureConfig {
|
|
|
8
8
|
}
|
|
9
9
|
interface OpenAiConfig {
|
|
10
10
|
apiKey: string;
|
|
11
|
+
baseURL?: string;
|
|
11
12
|
}
|
|
12
13
|
export declare function getAzureClient(logger: Logger, config: AzureConfig): AzureOpenAI;
|
|
13
14
|
export declare function getOpenAiClient(logger: Logger, config: OpenAiConfig): OpenAI;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-client.d.ts","sourceRoot":"","sources":["../../../src/engine/stream/get-client.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAG5C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,UAAU,WAAW;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;CACjB;AAED,UAAU,YAAY;IAClB,MAAM,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"get-client.d.ts","sourceRoot":"","sources":["../../../src/engine/stream/get-client.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAG5C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,UAAU,WAAW;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;CACjB;AAED,UAAU,YAAY;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB;AAiBD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,eASjE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,UAOnE"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { createAIStreamEngine } from './engine.js';
|
|
2
|
-
export { AIStreamEngine, LlmStreamAdapter, ResponseChunk, Transcript, StreamingEngineConfig, StreamWorkflowConfig as StreamingWorkflowConfig, } from '../interfaces/stream.js';
|
|
2
|
+
export { AIStreamEngine, LlmStreamAdapter, PredictionCandidate, PredictionChooser, PredictionChooserInput, PredictionChooserResult, PredictiveStreamingWorkflow, PredictiveWorkflowConfig, ResponseChunk, SupplementalPrediction, Transcript, StreamingEngineConfig, StreamWorkflowConfig as StreamingWorkflowConfig, predictionTemplates, } from '../interfaces/stream.js';
|
|
3
3
|
export { getAzureClient, getOpenAiClient } from './get-client.js';
|
|
4
|
+
export { createJevPredictionChooser } from './jev-prediction-chooser.js';
|
|
5
|
+
export type { JevPredictionChooserOptions } from './jev-prediction-chooser.js';
|
|
4
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/stream/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,EACH,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,oBAAoB,IAAI,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/stream/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,EACH,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,aAAa,EACb,sBAAsB,EACtB,UAAU,EACV,qBAAqB,EACrB,oBAAoB,IAAI,uBAAuB,EAC/C,mBAAmB,GACtB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACxE,YAAY,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type Fetch } from '@typesafe-ai/sdk';
|
|
2
|
+
import type { PredictionChooser } from '../interfaces/index.js';
|
|
3
|
+
export interface JevPredictionChooserOptions {
|
|
4
|
+
apiKey: string;
|
|
5
|
+
model: string;
|
|
6
|
+
matchThreshold: number;
|
|
7
|
+
timeoutMs: number;
|
|
8
|
+
fetch?: Fetch;
|
|
9
|
+
}
|
|
10
|
+
export declare function createJevPredictionChooser(options: JevPredictionChooserOptions): PredictionChooser;
|
|
11
|
+
//# sourceMappingURL=jev-prediction-chooser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jev-prediction-chooser.d.ts","sourceRoot":"","sources":["../../../src/engine/stream/jev-prediction-chooser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAA2C,MAAM,kBAAkB,CAAA;AAEtF,OAAO,KAAK,EAAE,iBAAiB,EAA2B,MAAM,wBAAwB,CAAA;AAGxF,MAAM,WAAW,2BAA2B;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IAEjB,KAAK,CAAC,EAAE,KAAK,CAAA;CAChB;AAED,wBAAgB,0BAA0B,CACtC,OAAO,EAAE,2BAA2B,GACrC,iBAAiB,CAgEnB"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { TypeSafeClient, noul } from '@typesafe-ai/sdk';
|
|
2
|
+
import { chooserPrompt } from './predictive-prompts.js';
|
|
3
|
+
export function createJevPredictionChooser(options) {
|
|
4
|
+
validateOptions(options);
|
|
5
|
+
const client = new TypeSafeClient({
|
|
6
|
+
apiKey: options.apiKey,
|
|
7
|
+
defaultModel: options.model,
|
|
8
|
+
fetch: options.fetch,
|
|
9
|
+
logLevel: 'off',
|
|
10
|
+
timeout: options.timeoutMs,
|
|
11
|
+
});
|
|
12
|
+
return {
|
|
13
|
+
getOptions: () => ({
|
|
14
|
+
model: options.model,
|
|
15
|
+
matchThreshold: options.matchThreshold,
|
|
16
|
+
timeoutMs: options.timeoutMs,
|
|
17
|
+
}),
|
|
18
|
+
getProviderInfo: () => ({ provider: 'typesafe', model: options.model }),
|
|
19
|
+
async choose(input) {
|
|
20
|
+
if (input.candidates.length === 0) {
|
|
21
|
+
throw new Error('Jev prediction chooser requires at least one candidate.');
|
|
22
|
+
}
|
|
23
|
+
const questions = createQuestions(input.candidates.length);
|
|
24
|
+
const result = await client.systemOne({
|
|
25
|
+
model: options.model,
|
|
26
|
+
state: {
|
|
27
|
+
conversation_history: input.history.map((message) => ({
|
|
28
|
+
role: message.sender,
|
|
29
|
+
text: message.text,
|
|
30
|
+
})),
|
|
31
|
+
actual_user_response: input.actualUserResponse,
|
|
32
|
+
candidates: input.candidates.map((candidate) => ({
|
|
33
|
+
predicted_user_response: candidate.userResponse,
|
|
34
|
+
prepared_agent_response: candidate.agentResponse,
|
|
35
|
+
})),
|
|
36
|
+
},
|
|
37
|
+
questions,
|
|
38
|
+
});
|
|
39
|
+
const scores = input.candidates.map((_, index) => {
|
|
40
|
+
const answer = result.answers[questionId(index)];
|
|
41
|
+
if (!answer ||
|
|
42
|
+
answer.type !== 'noul' ||
|
|
43
|
+
!Number.isFinite(answer.noul) ||
|
|
44
|
+
answer.noul < 0 ||
|
|
45
|
+
answer.noul > 1) {
|
|
46
|
+
throw new Error(`Jev returned an invalid answer for candidate ${index + 1}.`);
|
|
47
|
+
}
|
|
48
|
+
return answer.noul;
|
|
49
|
+
});
|
|
50
|
+
const selectedIndex = selectCandidate(scores, options.matchThreshold);
|
|
51
|
+
return {
|
|
52
|
+
selectedIndex,
|
|
53
|
+
scores,
|
|
54
|
+
model: result.model,
|
|
55
|
+
usage: {
|
|
56
|
+
inputTokens: result.usage.input_tokens,
|
|
57
|
+
outputTokens: result.usage.output_tokens,
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function createQuestions(candidateCount) {
|
|
64
|
+
return Object.fromEntries(Array.from({ length: candidateCount }, (_, index) => [
|
|
65
|
+
questionId(index),
|
|
66
|
+
noul(`${chooserPrompt}\n\nEvaluate \`candidates[${index}]\` against \`actual_user_response\` and \`conversation_history\`.`, {
|
|
67
|
+
true: 'The prepared agent response meets every safety and relevance condition.',
|
|
68
|
+
false: 'The prepared agent response violates one or more safety or relevance conditions.',
|
|
69
|
+
}),
|
|
70
|
+
]));
|
|
71
|
+
}
|
|
72
|
+
function selectCandidate(scores, threshold) {
|
|
73
|
+
let selectedIndex;
|
|
74
|
+
let selectedScore = threshold;
|
|
75
|
+
for (const [index, score] of scores.entries()) {
|
|
76
|
+
if (score < selectedScore)
|
|
77
|
+
continue;
|
|
78
|
+
if (score === selectedScore && selectedIndex !== undefined)
|
|
79
|
+
continue;
|
|
80
|
+
selectedIndex = index;
|
|
81
|
+
selectedScore = score;
|
|
82
|
+
}
|
|
83
|
+
return selectedIndex;
|
|
84
|
+
}
|
|
85
|
+
function questionId(index) {
|
|
86
|
+
return `candidate_${index + 1}_reply_is_safe`;
|
|
87
|
+
}
|
|
88
|
+
function validateOptions(options) {
|
|
89
|
+
if (!options.apiKey.trim())
|
|
90
|
+
throw new Error('Jev prediction chooser requires an API key.');
|
|
91
|
+
if (!options.model.trim())
|
|
92
|
+
throw new Error('Jev prediction chooser requires a model.');
|
|
93
|
+
if (!Number.isFinite(options.matchThreshold) ||
|
|
94
|
+
options.matchThreshold < 0 ||
|
|
95
|
+
options.matchThreshold > 1) {
|
|
96
|
+
throw new Error('Jev matchThreshold must be between 0 and 1.');
|
|
97
|
+
}
|
|
98
|
+
if (!Number.isFinite(options.timeoutMs) || options.timeoutMs <= 0) {
|
|
99
|
+
throw new Error('Jev timeoutMs must be a positive number.');
|
|
100
|
+
}
|
|
101
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const predictorPrompt = "# Response Structure\n\nResponse structure has been given in the JSON Schema. Your goal is to predict the next user message and the next agent message.\n\n{% if predictionCount %}The generated predicted user messages should be significantly different. Assume the prompt is correct and shows the variability of responses.\n{% endif %}\n\n{% if supplementalPredictions.length %}The following user replies are already covered by predefined pairs. Generate the agent response when the schema does not define it. Do not repeat these cases in the generated pairs:\n{% for prediction in supplementalPredictions %}- {{ prediction.userResponse }}\n{% endfor %}{% endif %}\nThe prompt is given below for reference.\n--- PROMPT for reference ---";
|
|
2
|
+
export declare const chooserPrompt = "Decide whether each prepared agent response is safe and natural to\nsend after the actual user response in the conversation.\n\nThe predicted user response explains the case that produced the prepared response. It does not\nreplace or override the actual user response.\n\nA safe response directly addresses the actual user response. It does not contradict the user,\nassume unsupported facts, or ignore a direct question. Every transfer, booking, schedule change,\nhang-up, or other side effect must remain supported by what the user actually said.";
|
|
3
|
+
//# sourceMappingURL=predictive-prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"predictive-prompts.d.ts","sourceRoot":"","sources":["../../../src/engine/stream/predictive-prompts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,muBAWC,CAAA;AAE7B,eAAO,MAAM,aAAa,0iBAQ0D,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export const predictorPrompt = `# Response Structure
|
|
2
|
+
|
|
3
|
+
Response structure has been given in the JSON Schema. Your goal is to predict the next user message and the next agent message.
|
|
4
|
+
|
|
5
|
+
{% if predictionCount %}The generated predicted user messages should be significantly different. Assume the prompt is correct and shows the variability of responses.
|
|
6
|
+
{% endif %}
|
|
7
|
+
|
|
8
|
+
{% if supplementalPredictions.length %}The following user replies are already covered by predefined pairs. Generate the agent response when the schema does not define it. Do not repeat these cases in the generated pairs:
|
|
9
|
+
{% for prediction in supplementalPredictions %}- {{ prediction.userResponse }}
|
|
10
|
+
{% endfor %}{% endif %}
|
|
11
|
+
The prompt is given below for reference.
|
|
12
|
+
--- PROMPT for reference ---`;
|
|
13
|
+
export const chooserPrompt = `Decide whether each prepared agent response is safe and natural to
|
|
14
|
+
send after the actual user response in the conversation.
|
|
15
|
+
|
|
16
|
+
The predicted user response explains the case that produced the prepared response. It does not
|
|
17
|
+
replace or override the actual user response.
|
|
18
|
+
|
|
19
|
+
A safe response directly addresses the actual user response. It does not contradict the user,
|
|
20
|
+
assume unsupported facts, or ignore a direct question. Every transfer, booking, schedule change,
|
|
21
|
+
hang-up, or other side effect must remain supported by what the user actually said.`;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import nunjucks from 'nunjucks';
|
|
2
|
+
import type { PredictiveStreamingWorkflow, PredictiveWorkflowConfig, StreamingEngineConfig } from '../interfaces/index.js';
|
|
3
|
+
export declare function createPredictiveWorkflow<CTX extends object>(config: PredictiveWorkflowConfig<CTX>, engineConfig: StreamingEngineConfig, nunjucksEnv: nunjucks.Environment): PredictiveStreamingWorkflow<CTX>;
|
|
4
|
+
//# sourceMappingURL=predictive-workflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"predictive-workflow.d.ts","sourceRoot":"","sources":["../../../src/engine/stream/predictive-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAM/B,OAAO,KAAK,EAOR,2BAA2B,EAC3B,wBAAwB,EAExB,qBAAqB,EAExB,MAAM,wBAAwB,CAAA;AAgD/B,wBAAgB,wBAAwB,CAAC,GAAG,SAAS,MAAM,EACvD,MAAM,EAAE,wBAAwB,CAAC,GAAG,CAAC,EACrC,YAAY,EAAE,qBAAqB,EACnC,WAAW,EAAE,QAAQ,CAAC,WAAW,GAClC,2BAA2B,CAAC,GAAG,CAAC,CAoclC"}
|