@jsonstudio/llms 0.6.3238 → 0.6.3275

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 (27) hide show
  1. package/dist/conversion/bridge-actions.js +37 -322
  2. package/dist/conversion/bridge-instructions.js +12 -109
  3. package/dist/conversion/codecs/anthropic-openai-codec.js +1 -1
  4. package/dist/conversion/compat/actions/anthropic-claude-code-system-prompt.js +38 -0
  5. package/dist/conversion/compat/actions/deepseek-web-request.js +43 -110
  6. package/dist/conversion/compat/actions/deepseek-web-response.d.ts +3 -0
  7. package/dist/conversion/compat/actions/deepseek-web-response.js +150 -11
  8. package/dist/conversion/hub/response/response-runtime.d.ts +1 -0
  9. package/dist/conversion/hub/response/response-runtime.js +26 -0
  10. package/dist/conversion/shared/anthropic-message-utils.d.ts +3 -1
  11. package/dist/conversion/shared/anthropic-message-utils.js +23 -15
  12. package/dist/conversion/shared/openai-finalizer.d.ts +0 -3
  13. package/dist/conversion/shared/openai-finalizer.js +11 -169
  14. package/dist/conversion/shared/openai-message-normalize.js +11 -72
  15. package/dist/conversion/shared/tool-mapping.js +5 -0
  16. package/dist/native/router_hotpath_napi.node +0 -0
  17. package/dist/router/virtual-router/bootstrap/provider-normalization.js +11 -3
  18. package/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics.d.ts +20 -0
  19. package/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics.js +71 -0
  20. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-inbound-semantics.d.ts +1 -0
  21. package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-inbound-semantics.js +30 -0
  22. package/dist/router/virtual-router/engine-selection/native-router-hotpath-loader.js +6 -0
  23. package/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics.d.ts +2 -0
  24. package/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics.js +61 -0
  25. package/dist/router/virtual-router/engine.js +58 -1
  26. package/dist/router/virtual-router/types.d.ts +1 -1
  27. package/package.json +1 -1
@@ -6,6 +6,8 @@ import { cleanRoutingInstructionMarkersWithNative, parseRoutingInstructionKindsW
6
6
  import { getLatestUserTextFromResponsesContext, hasLatestUserRoutingInstructionMarker, hasRoutingInstructionMarkerInResponsesContext } from './engine-legacy/helpers.js';
7
7
  import { ProviderRegistry } from './provider-registry.js';
8
8
  import { resolveStopMessageScope } from './engine/routing-state/store.js';
9
+ import { loadRoutingInstructionStateSync } from './sticky-session-store.js';
10
+ import { mergeStopMessageFromPersisted } from './stop-message-state-sync.js';
9
11
  export class VirtualRouterEngine {
10
12
  nativeProxy;
11
13
  registry;
@@ -80,7 +82,9 @@ export class VirtualRouterEngine {
80
82
  }
81
83
  getStopMessageState(metadata) {
82
84
  const raw = this.nativeProxy.getStopMessageState(JSON.stringify(metadata));
83
- return JSON.parse(raw);
85
+ const snapshot = JSON.parse(raw);
86
+ const scope = resolveStopMessageScope(metadata);
87
+ return mergeStopMessageSnapshotWithPersisted(snapshot, scope);
84
88
  }
85
89
  getPreCommandState(metadata) {
86
90
  const raw = this.nativeProxy.getPreCommandState(JSON.stringify(metadata));
@@ -114,6 +118,59 @@ function normalizeNativeVirtualRouterError(error) {
114
118
  }
115
119
  return error instanceof Error ? error : new Error(message || 'Virtual router error');
116
120
  }
121
+ function mergeStopMessageSnapshotWithPersisted(snapshot, scope) {
122
+ if (!scope) {
123
+ return snapshot;
124
+ }
125
+ let persisted = null;
126
+ try {
127
+ persisted = loadRoutingInstructionStateSync(scope);
128
+ }
129
+ catch {
130
+ return snapshot;
131
+ }
132
+ if (!persisted) {
133
+ return snapshot;
134
+ }
135
+ const persistedText = typeof persisted.stopMessageText === 'string' ? persisted.stopMessageText.trim() : '';
136
+ if (!snapshot && !persistedText) {
137
+ return snapshot;
138
+ }
139
+ const existing = {
140
+ stopMessageSource: snapshot?.stopMessageSource,
141
+ stopMessageText: snapshot?.stopMessageText,
142
+ stopMessageMaxRepeats: snapshot?.stopMessageMaxRepeats,
143
+ stopMessageUsed: snapshot?.stopMessageUsed,
144
+ stopMessageUpdatedAt: snapshot?.stopMessageUpdatedAt,
145
+ stopMessageLastUsedAt: snapshot?.stopMessageLastUsedAt,
146
+ stopMessageStageMode: snapshot?.stopMessageStageMode,
147
+ stopMessageAiMode: snapshot?.stopMessageAiMode,
148
+ stopMessageAiSeedPrompt: snapshot?.stopMessageAiSeedPrompt,
149
+ stopMessageAiHistory: snapshot?.stopMessageAiHistory
150
+ };
151
+ const merged = mergeStopMessageFromPersisted(existing, persisted);
152
+ const base = snapshot ?? {
153
+ stopMessageMaxRepeats: typeof merged.stopMessageMaxRepeats === 'number' && Number.isFinite(merged.stopMessageMaxRepeats)
154
+ ? merged.stopMessageMaxRepeats
155
+ : 0
156
+ };
157
+ const mergedMaxRepeats = typeof merged.stopMessageMaxRepeats === 'number' && Number.isFinite(merged.stopMessageMaxRepeats)
158
+ ? merged.stopMessageMaxRepeats
159
+ : base.stopMessageMaxRepeats;
160
+ return {
161
+ ...base,
162
+ stopMessageSource: merged.stopMessageSource,
163
+ stopMessageText: merged.stopMessageText,
164
+ stopMessageMaxRepeats: mergedMaxRepeats,
165
+ stopMessageUsed: merged.stopMessageUsed,
166
+ stopMessageUpdatedAt: merged.stopMessageUpdatedAt,
167
+ stopMessageLastUsedAt: merged.stopMessageLastUsedAt,
168
+ stopMessageStageMode: merged.stopMessageStageMode,
169
+ stopMessageAiMode: merged.stopMessageAiMode,
170
+ stopMessageAiSeedPrompt: merged.stopMessageAiSeedPrompt,
171
+ stopMessageAiHistory: merged.stopMessageAiHistory
172
+ };
173
+ }
117
174
  function extractNativeErrorMessage(error) {
118
175
  if (typeof error === 'string') {
119
176
  return error;
@@ -46,7 +46,7 @@ export interface ProviderAuthConfig {
46
46
  }
47
47
  export interface DeepSeekCompatRuntimeOptions {
48
48
  strictToolRequired?: boolean;
49
- textToolFallback?: boolean;
49
+ toolProtocol?: 'native' | 'text';
50
50
  }
51
51
  export interface ProviderProfile {
52
52
  providerKey: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsonstudio/llms",
3
- "version": "0.6.3238",
3
+ "version": "0.6.3275",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",