@jsonstudio/llms 0.6.802 → 0.6.954

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 (188) hide show
  1. package/dist/bridge/routecodex-adapter.d.ts +74 -0
  2. package/dist/config-unified/enhanced-path-resolver.d.ts +5 -0
  3. package/dist/config-unified/unified-config.d.ts +26 -0
  4. package/dist/conversion/codec-registry.d.ts +10 -0
  5. package/dist/conversion/codecs/gemini-openai-codec.d.ts +16 -0
  6. package/dist/conversion/codecs/openai-openai-codec.d.ts +12 -0
  7. package/dist/conversion/codecs/responses-openai-codec.d.ts +12 -0
  8. package/dist/conversion/compat/profiles/chat-gemini.json +12 -0
  9. package/dist/conversion/config/config-manager.d.ts +212 -0
  10. package/dist/conversion/hub/config/types.d.ts +26 -0
  11. package/dist/conversion/hub/core/detour-registry.d.ts +9 -0
  12. package/dist/conversion/hub/core/hub-context.d.ts +21 -0
  13. package/dist/conversion/hub/core/index.d.ts +3 -0
  14. package/dist/conversion/hub/core/stage-driver.d.ts +30 -0
  15. package/dist/conversion/hub/format-adapters/anthropic-format-adapter.d.ts +16 -0
  16. package/dist/conversion/hub/format-adapters/chat-format-adapter.d.ts +17 -0
  17. package/dist/conversion/hub/format-adapters/gemini-format-adapter.d.ts +16 -0
  18. package/dist/conversion/hub/format-adapters/index.d.ts +21 -0
  19. package/dist/conversion/hub/hub-feature.d.ts +1 -0
  20. package/dist/conversion/hub/node-support.d.ts +19 -0
  21. package/dist/conversion/hub/pipeline/compat/compat-pipeline-executor.js +11 -0
  22. package/dist/conversion/hub/pipeline/compat/compat-types.d.ts +3 -0
  23. package/dist/conversion/hub/pipeline/hub-pipeline.d.ts +7 -0
  24. package/dist/conversion/hub/pipeline/hub-pipeline.js +113 -17
  25. package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/index.js +6 -3
  26. package/dist/conversion/hub/pipeline/stages/req_process/req_process_stage1_tool_governance/index.js +4 -0
  27. package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/index.js +23 -1
  28. package/dist/conversion/hub/pipelines/inbound.d.ts +22 -0
  29. package/dist/conversion/hub/pipelines/outbound.d.ts +22 -0
  30. package/dist/conversion/hub/policy/policy-engine.d.ts +46 -0
  31. package/dist/conversion/hub/policy/policy-engine.js +176 -0
  32. package/dist/conversion/hub/policy/protocol-spec.d.ts +50 -0
  33. package/dist/conversion/hub/policy/protocol-spec.js +105 -0
  34. package/dist/conversion/hub/process/chat-process.d.ts +32 -0
  35. package/dist/conversion/hub/registry.d.ts +28 -0
  36. package/dist/conversion/hub/response/chat-response-utils.d.ts +6 -0
  37. package/dist/conversion/hub/response/provider-response.js +31 -0
  38. package/dist/conversion/hub/semantic-mappers/chat-mapper.js +32 -1
  39. package/dist/conversion/hub/semantic-mappers/gemini-mapper.d.ts +7 -0
  40. package/dist/conversion/hub/semantic-mappers/gemini-mapper.js +96 -1
  41. package/dist/conversion/hub/semantic-mappers/index.d.ts +4 -0
  42. package/dist/conversion/hub/semantic-mappers/responses-mapper.d.ts +21 -0
  43. package/dist/conversion/hub/standardized-bridge.d.ts +12 -0
  44. package/dist/conversion/hub/types/chat-schema.d.ts +112 -0
  45. package/dist/conversion/hub/types/errors.d.ts +5 -0
  46. package/dist/conversion/hub/types/format-envelope.d.ts +7 -0
  47. package/dist/conversion/hub/types/index.d.ts +6 -0
  48. package/dist/conversion/hub/types/json.d.ts +9 -0
  49. package/dist/conversion/hub/types/node.d.ts +31 -0
  50. package/dist/conversion/responses/responses-openai-bridge.js +263 -10
  51. package/dist/conversion/schema-validator.d.ts +7 -0
  52. package/dist/conversion/shared/args-mapping.d.ts +18 -0
  53. package/dist/conversion/shared/chat-request-filters.d.ts +9 -0
  54. package/dist/conversion/shared/errors.d.ts +1 -1
  55. package/dist/conversion/shared/gemini-tool-utils.js +105 -1
  56. package/dist/conversion/shared/jsonish.d.ts +3 -0
  57. package/dist/conversion/shared/mcp-injection.d.ts +2 -0
  58. package/dist/conversion/shared/media.d.ts +1 -0
  59. package/dist/conversion/shared/openai-message-normalize.d.ts +1 -0
  60. package/dist/conversion/shared/payload-budget.d.ts +13 -0
  61. package/dist/conversion/shared/reasoning-mapping.d.ts +5 -0
  62. package/dist/conversion/shared/responses-request-adapter.d.ts +1 -28
  63. package/dist/conversion/shared/responses-request-adapter.js +1 -430
  64. package/dist/conversion/shared/snapshot-hooks.js +58 -3
  65. package/dist/conversion/shared/tool-governor.js +8 -2
  66. package/dist/conversion/shared/tool-harvester.d.ts +31 -0
  67. package/dist/conversion/shared/tool-mapping.js +10 -29
  68. package/dist/conversion/types.d.ts +33 -0
  69. package/dist/filters/builtin/add-fields-filter.d.ts +8 -0
  70. package/dist/filters/builtin/blacklist-filter.d.ts +8 -0
  71. package/dist/filters/builtin/whitelist-filter.d.ts +8 -0
  72. package/dist/filters/engine.d.ts +16 -0
  73. package/dist/filters/special/request-tool-choice-policy.d.ts +11 -0
  74. package/dist/filters/special/response-finish-invariants.d.ts +11 -0
  75. package/dist/filters/special/response-openai-to-responses-bridge.d.ts +13 -0
  76. package/dist/filters/special/response-tool-arguments-blacklist.d.ts +12 -0
  77. package/dist/filters/special/response-tool-arguments-schema-converge.d.ts +13 -0
  78. package/dist/filters/special/response-tool-arguments-stringify.d.ts +9 -0
  79. package/dist/filters/special/response-tool-arguments-whitelist.d.ts +11 -0
  80. package/dist/filters/special/tool-filter-hooks.d.ts +19 -0
  81. package/dist/filters/special/tool-post-constraints.d.ts +31 -0
  82. package/dist/filters/types.d.ts +68 -0
  83. package/dist/filters/utils/fieldmap-loader.d.ts +2 -0
  84. package/dist/filters/utils/snapshot-writer.d.ts +10 -0
  85. package/dist/guidance/index.d.ts +3 -0
  86. package/dist/guidance/index.js +78 -83
  87. package/dist/http/sse-response.d.ts +22 -0
  88. package/dist/router/virtual-router/bootstrap.d.ts +6 -0
  89. package/dist/router/virtual-router/bootstrap.js +49 -5
  90. package/dist/router/virtual-router/classifier.d.ts +10 -0
  91. package/dist/router/virtual-router/engine-selection.js +98 -11
  92. package/dist/router/virtual-router/engine.js +177 -31
  93. package/dist/router/virtual-router/error-center.d.ts +10 -0
  94. package/dist/router/virtual-router/features.d.ts +3 -0
  95. package/dist/router/virtual-router/routing-instructions.d.ts +23 -1
  96. package/dist/router/virtual-router/routing-instructions.js +120 -30
  97. package/dist/router/virtual-router/types.d.ts +11 -0
  98. package/dist/servertool/engine.js +192 -17
  99. package/dist/servertool/handlers/apply-patch-guard.js +269 -0
  100. package/dist/servertool/handlers/exec-command-guard.js +558 -0
  101. package/dist/servertool/handlers/followup-message-trimmer.d.ts +16 -0
  102. package/dist/servertool/handlers/followup-message-trimmer.js +198 -0
  103. package/dist/servertool/handlers/followup-request-builder.d.ts +17 -0
  104. package/dist/servertool/handlers/followup-request-builder.js +122 -0
  105. package/dist/servertool/handlers/gemini-empty-reply-continue.js +252 -51
  106. package/dist/servertool/handlers/iflow-model-error-retry.js +12 -22
  107. package/dist/servertool/handlers/stop-message-auto.js +237 -75
  108. package/dist/servertool/handlers/vision.js +15 -27
  109. package/dist/servertool/handlers/web-search.js +17 -43
  110. package/dist/servertool/server-side-tools.d.ts +3 -0
  111. package/dist/servertool/server-side-tools.js +3 -0
  112. package/dist/sse/json-to-sse/anthropic-json-to-sse-converter.d.ts +2 -1
  113. package/dist/sse/json-to-sse/chat-json-to-sse-converter.d.ts +80 -0
  114. package/dist/sse/json-to-sse/event-generators/chat.d.ts +55 -0
  115. package/dist/sse/json-to-sse/event-generators/responses.d.ts +99 -0
  116. package/dist/sse/json-to-sse/gemini-json-to-sse-converter.d.ts +2 -1
  117. package/dist/sse/json-to-sse/responses-json-to-sse-converter.d.ts +80 -0
  118. package/dist/sse/json-to-sse/sequencers/anthropic-sequencer.d.ts +1 -1
  119. package/dist/sse/json-to-sse/sequencers/chat-sequencer.d.ts +2 -2
  120. package/dist/sse/json-to-sse/sequencers/gemini-sequencer.d.ts +1 -1
  121. package/dist/sse/json-to-sse/sequencers/responses-sequencer.d.ts +40 -0
  122. package/dist/sse/shared/chat-serializer.d.ts +4 -0
  123. package/dist/sse/shared/constants.d.ts +272 -0
  124. package/dist/sse/shared/serializers/anthropic-event-serializer.d.ts +1 -1
  125. package/dist/sse/shared/serializers/base-serializer.d.ts +158 -0
  126. package/dist/sse/shared/serializers/chat-event-serializer.d.ts +82 -0
  127. package/dist/sse/shared/serializers/gemini-event-serializer.d.ts +1 -1
  128. package/dist/sse/shared/serializers/index.d.ts +2 -1
  129. package/dist/sse/shared/serializers/responses-event-serializer.d.ts +123 -0
  130. package/dist/sse/shared/serializers/types.d.ts +51 -0
  131. package/dist/sse/shared/utils.d.ts +254 -0
  132. package/dist/sse/shared/writer.d.ts +2 -2
  133. package/dist/sse/sse-to-json/anthropic-sse-to-json-converter.d.ts +1 -1
  134. package/dist/sse/sse-to-json/builders/anthropic-response-builder.d.ts +1 -1
  135. package/dist/sse/sse-to-json/builders/response-builder.d.ts +1 -1
  136. package/dist/sse/sse-to-json/chat-sse-to-json-converter.d.ts +2 -1
  137. package/dist/sse/sse-to-json/gemini-sse-to-json-converter.d.ts +2 -1
  138. package/dist/sse/sse-to-json/parsers/sse-parser.d.ts +73 -0
  139. package/dist/sse/sse-to-json/responses-sse-to-json-converter.d.ts +1 -1
  140. package/dist/sse/types/chat-types.d.ts +1 -1
  141. package/dist/sse/types/responses-types.d.ts +1 -1
  142. package/dist/tools/apply-patch/execution-capturer.d.ts +13 -0
  143. package/dist/tools/apply-patch/execution-capturer.js +158 -0
  144. package/dist/tools/apply-patch/regression-capturer.d.ts +1 -0
  145. package/dist/tools/apply-patch/regression-capturer.js +5 -4
  146. package/dist/tools/apply-patch/structured.js +109 -13
  147. package/dist/tools/apply-patch/validator.js +112 -18
  148. package/dist/tools/tool-registry.d.ts +8 -0
  149. package/dist/tools/tool-registry.js +2 -1
  150. package/package.json +4 -4
  151. package/dist/conversion/compat/actions/apply-patch-format-fixer.js +0 -233
  152. package/dist/conversion/config/compat-profiles.json +0 -38
  153. package/dist/conversion/hub/pipeline/context-limit.d.ts +0 -13
  154. package/dist/conversion/hub/pipeline/context-limit.js +0 -55
  155. package/dist/conversion/hub/response/server-side-tools.d.ts +0 -26
  156. package/dist/conversion/hub/response/server-side-tools.js +0 -383
  157. package/dist/conversion/shared/bridge-conversation-store.d.ts +0 -41
  158. package/dist/conversion/shared/bridge-conversation-store.js +0 -279
  159. package/dist/conversion/shared/bridge-request-adapter.d.ts +0 -28
  160. package/dist/conversion/shared/bridge-request-adapter.js +0 -430
  161. package/dist/conversion/shared/responses-id-utils.js +0 -42
  162. package/dist/conversion/shared/responses-instructions.js +0 -113
  163. package/dist/conversion/shared/responses-message-utils.d.ts +0 -15
  164. package/dist/conversion/shared/responses-message-utils.js +0 -206
  165. package/dist/conversion/shared/responses-metadata.js +0 -1
  166. package/dist/conversion/shared/responses-output-utils.d.ts +0 -7
  167. package/dist/conversion/shared/responses-output-utils.js +0 -108
  168. package/dist/conversion/shared/responses-types.d.ts +0 -33
  169. package/dist/conversion/shared/tool-normalizers.d.ts +0 -4
  170. package/dist/conversion/shared/tool-normalizers.js +0 -84
  171. package/dist/filters/special/request-streaming-to-nonstreaming.d.ts +0 -13
  172. package/dist/filters/special/request-streaming-to-nonstreaming.js +0 -39
  173. package/dist/filters/special/response-apply-patch-toon-decode.d.ts +0 -23
  174. package/dist/filters/special/response-apply-patch-toon-decode.js +0 -460
  175. package/dist/filters/special/response-tool-arguments-toon-decode.d.ts +0 -10
  176. package/dist/filters/special/response-tool-arguments-toon-decode.js +0 -154
  177. package/dist/servertool/flow-types.d.ts +0 -40
  178. package/dist/servertool/flow-types.js +0 -1
  179. package/dist/servertool/orchestration-types.d.ts +0 -33
  180. package/dist/servertool/orchestration-types.js +0 -1
  181. package/dist/servertool/vision-tool.d.ts +0 -2
  182. package/dist/servertool/vision-tool.js +0 -185
  183. package/dist/tools/patch-args-normalizer.d.ts +0 -15
  184. package/dist/tools/patch-args-normalizer.js +0 -472
  185. package/dist/utils/toon.d.ts +0 -4
  186. package/dist/utils/toon.js +0 -75
  187. /package/dist/{conversion/compat/actions/apply-patch-format-fixer.d.ts → servertool/handlers/apply-patch-guard.d.ts} +0 -0
  188. /package/dist/{conversion/shared/responses-types.js → servertool/handlers/exec-command-guard.d.ts} +0 -0
@@ -1,33 +0,0 @@
1
- import type { AdapterContext } from '../conversion/hub/types/chat-envelope.js';
2
- import type { JsonObject } from '../conversion/hub/types/json.js';
3
- import type { ProviderInvoker } from './types.js';
4
- export interface ServerToolOrchestrationOptions {
5
- chat: JsonObject;
6
- adapterContext: AdapterContext;
7
- requestId: string;
8
- entryEndpoint: string;
9
- providerProtocol: string;
10
- /**
11
- * 将带有工具结果的新 ChatEnvelope 作为普通请求再送入 HubPipeline。
12
- * 支持 routeHint 来强制路由(例如 web_search)
13
- */
14
- reenterPipeline?: (options: {
15
- entryEndpoint: string;
16
- requestId: string;
17
- body: JsonObject;
18
- metadata?: JsonObject;
19
- }) => Promise<{
20
- body?: JsonObject;
21
- __sse_responses?: unknown;
22
- format?: string;
23
- }>;
24
- providerInvoker?: ProviderInvoker;
25
- }
26
- export interface ServerToolOrchestrationResult {
27
- chat: JsonObject;
28
- executed: boolean;
29
- /**
30
- * 记录本次执行使用的骨架流程,便于日志输出和后续扩展。
31
- */
32
- flowId?: string;
33
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- import type { ServerToolFlow } from './flow-types.js';
2
- export declare const visionToolFlow: ServerToolFlow;
@@ -1,185 +0,0 @@
1
- import { extractTextFromChatLike } from './server-side-tools.js';
2
- const VISION_FLOW_ID = 'vision_flow';
3
- export const visionToolFlow = {
4
- id: VISION_FLOW_ID,
5
- shouldRun(context) {
6
- if (!context.options.reenterPipeline) {
7
- return false;
8
- }
9
- return shouldRunVisionFlow(context);
10
- },
11
- async run(context, helpers) {
12
- const captured = context.capturedChatRequest;
13
- if (!captured) {
14
- return null;
15
- }
16
- const visionPayload = buildVisionAnalysisPayload(captured);
17
- if (!visionPayload) {
18
- return null;
19
- }
20
- const visionResponse = await helpers.callReenterHop({
21
- requestIdSuffix: ':vision',
22
- body: visionPayload,
23
- metadata: {
24
- routeHint: 'vision'
25
- }
26
- });
27
- const visionBody = asObject(visionResponse?.body);
28
- if (!visionBody) {
29
- return null;
30
- }
31
- const visionSummary = extractTextFromChatLike(visionBody);
32
- if (!visionSummary) {
33
- return null;
34
- }
35
- const followupPayload = buildVisionFollowupPayload(captured, visionSummary);
36
- if (!followupPayload) {
37
- return null;
38
- }
39
- const followupRouteHint = helpers.getRouteHintForFollowup('vision');
40
- const followup = await helpers.callReenterHop({
41
- requestIdSuffix: ':vision_followup',
42
- body: followupPayload,
43
- metadata: followupRouteHint ? { routeHint: followupRouteHint } : undefined
44
- });
45
- const followupBody = asObject(followup?.body);
46
- if (followupBody) {
47
- return {
48
- chat: followupBody,
49
- executed: true,
50
- flowId: VISION_FLOW_ID
51
- };
52
- }
53
- return null;
54
- }
55
- };
56
- function shouldRunVisionFlow(context) {
57
- const adapterCtx = context.options.adapterContext;
58
- const followupFlag = adapterCtx.serverToolFollowup === true || adapterCtx.serverToolFollowup === 'true';
59
- if (followupFlag) {
60
- return false;
61
- }
62
- return adapterCtx.hasImageAttachment === true || adapterCtx.hasImageAttachment === 'true';
63
- }
64
- function asObject(value) {
65
- if (!value || typeof value !== 'object')
66
- return undefined;
67
- if (Array.isArray(value))
68
- return undefined;
69
- return value;
70
- }
71
- function buildVisionAnalysisPayload(source) {
72
- if (!source || typeof source !== 'object') {
73
- return null;
74
- }
75
- const payload = {};
76
- if (typeof source.model === 'string' && source.model.trim()) {
77
- payload.model = source.model.trim();
78
- }
79
- if (Array.isArray(source.messages)) {
80
- payload.messages = cloneJson(source.messages);
81
- }
82
- else {
83
- return null;
84
- }
85
- if (Array.isArray(source.tools) && source.tools.length) {
86
- payload.tools = cloneJson(source.tools);
87
- }
88
- const parameters = source.parameters;
89
- if (parameters && typeof parameters === 'object' && !Array.isArray(parameters)) {
90
- const params = cloneJson(parameters);
91
- Object.assign(payload, params);
92
- }
93
- return payload;
94
- }
95
- function buildVisionFollowupPayload(source, summary) {
96
- if (!source || typeof source !== 'object') {
97
- return null;
98
- }
99
- const payload = {};
100
- if (typeof source.model === 'string' && source.model.trim()) {
101
- payload.model = source.model.trim();
102
- }
103
- payload.messages = injectVisionSummary(source.messages, summary);
104
- if (Array.isArray(source.tools) && source.tools.length) {
105
- payload.tools = cloneJson(source.tools);
106
- }
107
- const parameters = source.parameters;
108
- if (parameters && typeof parameters === 'object' && !Array.isArray(parameters)) {
109
- const params = cloneJson(parameters);
110
- Object.assign(payload, params);
111
- }
112
- return payload;
113
- }
114
- function injectVisionSummary(source, summary) {
115
- const messages = Array.isArray(source) ? cloneJson(source) : [];
116
- let injected = false;
117
- for (const message of messages) {
118
- if (!message || typeof message !== 'object')
119
- continue;
120
- const content = message.content;
121
- if (!Array.isArray(content))
122
- continue;
123
- const nextParts = [];
124
- let removed = false;
125
- for (const part of content) {
126
- if (part && typeof part === 'object') {
127
- const typeValue = typeof part.type === 'string'
128
- ? part.type.toLowerCase()
129
- : '';
130
- if (typeValue.includes('image')) {
131
- removed = true;
132
- continue;
133
- }
134
- }
135
- nextParts.push(part);
136
- }
137
- if (removed) {
138
- nextParts.push({
139
- type: 'text',
140
- text: `[Vision] ${summary}`
141
- });
142
- message.content = nextParts;
143
- injected = true;
144
- }
145
- }
146
- if (!injected) {
147
- for (let i = messages.length - 1; i >= 0; i -= 1) {
148
- const msg = messages[i];
149
- if (!msg || typeof msg !== 'object')
150
- continue;
151
- const role = typeof msg.role === 'string'
152
- ? msg.role.toLowerCase()
153
- : '';
154
- if (role !== 'user')
155
- continue;
156
- const content = msg.content;
157
- if (Array.isArray(content)) {
158
- content.push({
159
- type: 'text',
160
- text: `[Vision] ${summary}`
161
- });
162
- injected = true;
163
- break;
164
- }
165
- if (typeof content === 'string' && content.length) {
166
- msg.content = `${content}\n[Vision] ${summary}`;
167
- }
168
- else {
169
- msg.content = `[Vision] ${summary}`;
170
- }
171
- injected = true;
172
- break;
173
- }
174
- }
175
- if (!injected) {
176
- messages.push({
177
- role: 'system',
178
- content: `[Vision] ${summary}`
179
- });
180
- }
181
- return messages;
182
- }
183
- function cloneJson(value) {
184
- return JSON.parse(JSON.stringify(value));
185
- }
@@ -1,15 +0,0 @@
1
- export interface PatchNormalizationResult {
2
- normalized?: string;
3
- error?: string;
4
- }
5
- /**
6
- * Attempt to fix common apply_patch argument format issues:
7
- * 1. Missing *** Begin Patch / *** End Patch markers
8
- * 2. Lines missing +/- prefix in hunks
9
- * 3. Field aliases (input->patch, code->patch, diff->patch)
10
- * 4. Structured changes array conversion
11
- * 5. Git diff format conversion
12
- */
13
- export declare function normalizeApplyPatchArgs(argsStr: string): PatchNormalizationResult;
14
- export declare function looksLikePatch(text?: string): boolean;
15
- export declare function normalizeApplyPatchText(raw: string): string;