@jsonstudio/llms 0.6.2172 → 0.6.2979
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 +2 -0
- package/dist/conversion/compat/antigravity-session-signature.js +35 -1
- package/dist/conversion/compat/profiles/chat-gemini-cli.json +0 -7
- package/dist/conversion/compat/profiles/chat-gemini.json +0 -6
- package/dist/conversion/hub/core/detour-registry.d.ts +2 -0
- package/dist/conversion/hub/core/hub-context.d.ts +3 -1
- package/dist/conversion/hub/core/index.d.ts +1 -0
- package/dist/conversion/hub/core/stage-driver.js +2 -0
- package/dist/conversion/hub/format-adapters/anthropic-format-adapter.js +15 -4
- package/dist/conversion/hub/format-adapters/chat-format-adapter.js +15 -4
- package/dist/conversion/hub/format-adapters/gemini-format-adapter.js +15 -4
- package/dist/conversion/hub/format-adapters/responses-format-adapter.js +15 -4
- package/dist/conversion/hub/hub-feature.js +3 -2
- package/dist/conversion/hub/node-support.js +9 -4
- package/dist/conversion/hub/operation-table/operation-table-runner.js +10 -6
- package/dist/conversion/hub/operation-table/semantic-mappers/anthropic-mapper.js +2 -2
- package/dist/conversion/hub/operation-table/semantic-mappers/chat-mapper.js +10 -10
- package/dist/conversion/hub/operation-table/semantic-mappers/gemini-mapper.js +4 -8
- package/dist/conversion/hub/operation-table/semantic-mappers/responses-mapper.js +19 -65
- package/dist/conversion/hub/ops/operations.js +2 -121
- package/dist/conversion/hub/pipeline/compat/compat-engine.js +6 -0
- package/dist/conversion/hub/pipeline/compat/compat-pipeline-executor.d.ts +1 -1
- package/dist/conversion/hub/pipeline/compat/compat-pipeline-executor.js +33 -1042
- package/dist/conversion/hub/pipeline/compat/compat-profile-resolver.js +2 -0
- package/dist/conversion/hub/pipeline/compat/compat-profile-store.js +2 -0
- package/dist/conversion/hub/pipeline/compat/compat-types.d.ts +14 -17
- package/dist/conversion/hub/pipeline/compat/native-adapter-context.d.ts +3 -0
- package/dist/conversion/hub/pipeline/compat/native-adapter-context.js +39 -0
- package/dist/conversion/hub/pipeline/hub-pipeline.js +115 -262
- package/dist/conversion/hub/pipeline/session-identifiers.js +6 -196
- package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage1_format_parse/index.d.ts +1 -2
- package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage1_format_parse/index.js +37 -1
- package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/index.js +12 -86
- package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/semantic-lift.d.ts +14 -0
- package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage2_semantic_map/semantic-lift.js +24 -0
- package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/archive/shell-like-tool-call-normalization-fallback.d.ts +2 -0
- package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/archive/shell-like-tool-call-normalization-fallback.js +157 -0
- package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/context-capture-orchestration.d.ts +16 -0
- package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/context-capture-orchestration.js +29 -0
- package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/context-factories.js +3 -1
- package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/index.d.ts +2 -15
- package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/index.js +8 -595
- package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/responses-context-snapshot.d.ts +8 -0
- package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/responses-context-snapshot.js +28 -0
- package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/tool-output-diagnostics.d.ts +2 -0
- package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/tool-output-diagnostics.js +4 -0
- package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/tool-output-snapshot.d.ts +10 -0
- package/dist/conversion/hub/pipeline/stages/req_inbound/req_inbound_stage3_context_capture/tool-output-snapshot.js +12 -0
- package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage1_semantic_map/context-merge.d.ts +3 -0
- package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage1_semantic_map/context-merge.js +30 -0
- package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage1_semantic_map/index.js +9 -129
- package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage2_format_build/index.d.ts +1 -4
- package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage2_format_build/index.js +9 -26
- package/dist/conversion/hub/pipeline/stages/req_outbound/req_outbound_stage3_compat/index.js +32 -14
- package/dist/conversion/hub/pipeline/stages/req_process/req_process_stage1_tool_governance/index.d.ts +2 -2
- package/dist/conversion/hub/pipeline/stages/req_process/req_process_stage1_tool_governance/index.js +48 -8
- package/dist/conversion/hub/pipeline/stages/req_process/req_process_stage2_route_select/index.js +18 -3
- package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage1_sse_decode/index.js +10 -198
- package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage1_sse_decode/stream-json-sniffer.d.ts +3 -0
- package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage1_sse_decode/stream-json-sniffer.js +81 -0
- package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage2_format_parse/index.d.ts +1 -2
- package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage2_format_parse/index.js +36 -1
- package/dist/conversion/hub/pipeline/stages/resp_inbound/resp_inbound_stage3_semantic_map/index.js +3 -1
- package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/chat-process-semantics-bridge.d.ts +6 -0
- package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/chat-process-semantics-bridge.js +17 -0
- package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/client-remap-protocol-switch.d.ts +9 -0
- package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/client-remap-protocol-switch.js +28 -0
- package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/index.d.ts +1 -2
- package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage1_client_remap/index.js +14 -102
- package/dist/conversion/hub/pipeline/stages/resp_outbound/resp_outbound_stage2_sse_stream/index.js +3 -1
- package/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage1_tool_governance/index.js +12 -10
- package/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage2_finalize/index.js +6 -5
- package/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage3_servertool_orchestration/index.d.ts +11 -1
- package/dist/conversion/hub/pipeline/stages/resp_process/resp_process_stage3_servertool_orchestration/index.js +10 -32
- package/dist/conversion/hub/pipeline/stages/utils.js +17 -1
- package/dist/conversion/hub/pipeline/target-utils.js +14 -91
- package/dist/conversion/hub/pipelines/inbound.js +3 -1
- package/dist/conversion/hub/pipelines/outbound.js +2 -0
- package/dist/conversion/hub/policy/policy-engine.js +9 -3
- package/dist/conversion/hub/policy/protocol-spec.js +20 -148
- package/dist/conversion/hub/process/chat-process-anthropic-alias.d.ts +2 -0
- package/dist/conversion/hub/process/chat-process-anthropic-alias.js +36 -0
- package/dist/conversion/hub/process/chat-process-clock-directive-parser.d.ts +5 -0
- package/dist/conversion/hub/process/chat-process-clock-directive-parser.js +48 -0
- package/dist/conversion/hub/process/chat-process-clock-directives.d.ts +24 -0
- package/dist/conversion/hub/process/chat-process-clock-directives.js +98 -0
- package/dist/conversion/hub/process/chat-process-clock-reminder-directives.d.ts +8 -0
- package/dist/conversion/hub/process/chat-process-clock-reminder-directives.js +42 -0
- package/dist/conversion/hub/process/chat-process-clock-reminder-finalize.d.ts +14 -0
- package/dist/conversion/hub/process/chat-process-clock-reminder-finalize.js +10 -0
- package/dist/conversion/hub/process/chat-process-clock-reminder-messages.d.ts +5 -0
- package/dist/conversion/hub/process/chat-process-clock-reminder-messages.js +10 -0
- package/dist/conversion/hub/process/chat-process-clock-reminder-orchestration.d.ts +30 -0
- package/dist/conversion/hub/process/chat-process-clock-reminder-orchestration.js +68 -0
- package/dist/conversion/hub/process/chat-process-clock-reminder-time-tag.d.ts +9 -0
- package/dist/conversion/hub/process/chat-process-clock-reminder-time-tag.js +18 -0
- package/dist/conversion/hub/process/chat-process-clock-reminders.d.ts +2 -0
- package/dist/conversion/hub/process/chat-process-clock-reminders.js +104 -0
- package/dist/conversion/hub/process/chat-process-clock-tool-schemas.d.ts +3 -0
- package/dist/conversion/hub/process/chat-process-clock-tool-schemas.js +233 -0
- package/dist/conversion/hub/process/chat-process-clock-tools.d.ts +6 -0
- package/dist/conversion/hub/process/chat-process-clock-tools.js +41 -0
- package/dist/conversion/hub/process/chat-process-continue-execution.d.ts +11 -0
- package/dist/conversion/hub/process/chat-process-continue-execution.js +82 -0
- package/dist/conversion/hub/process/chat-process-governance-context.d.ts +15 -0
- package/dist/conversion/hub/process/chat-process-governance-context.js +7 -0
- package/dist/conversion/hub/process/chat-process-governance-finalize.d.ts +16 -0
- package/dist/conversion/hub/process/chat-process-governance-finalize.js +11 -0
- package/dist/conversion/hub/process/chat-process-governance-orchestration.d.ts +9 -0
- package/dist/conversion/hub/process/chat-process-governance-orchestration.js +47 -0
- package/dist/conversion/hub/process/chat-process-governed-control-ops.d.ts +8 -0
- package/dist/conversion/hub/process/chat-process-governed-control-ops.js +5 -0
- package/dist/conversion/hub/process/chat-process-governed-filter-call.d.ts +12 -0
- package/dist/conversion/hub/process/chat-process-governed-filter-call.js +18 -0
- package/dist/conversion/hub/process/chat-process-governed-merge.d.ts +8 -0
- package/dist/conversion/hub/process/chat-process-governed-merge.js +11 -0
- package/dist/conversion/hub/process/chat-process-media.d.ts +3 -0
- package/dist/conversion/hub/process/chat-process-media.js +18 -0
- package/dist/conversion/hub/process/chat-process-node-result.d.ts +23 -0
- package/dist/conversion/hub/process/chat-process-node-result.js +24 -0
- package/dist/conversion/hub/process/chat-process-pending-tool-sync.d.ts +14 -0
- package/dist/conversion/hub/process/chat-process-pending-tool-sync.js +52 -0
- package/dist/conversion/hub/process/chat-process-post-governed-normalization.d.ts +8 -0
- package/dist/conversion/hub/process/chat-process-post-governed-normalization.js +16 -0
- package/dist/conversion/hub/process/chat-process-review.d.ts +2 -0
- package/dist/conversion/hub/process/chat-process-review.js +8 -0
- package/dist/conversion/hub/process/chat-process-servertool-orchestration.d.ts +8 -0
- package/dist/conversion/hub/process/chat-process-servertool-orchestration.js +22 -0
- package/dist/conversion/hub/process/chat-process-tool-normalization.d.ts +2 -0
- package/dist/conversion/hub/process/chat-process-tool-normalization.js +4 -0
- package/dist/conversion/hub/process/chat-process-web-search-intent.d.ts +12 -0
- package/dist/conversion/hub/process/chat-process-web-search-intent.js +13 -0
- package/dist/conversion/hub/process/chat-process-web-search-tool-schema.d.ts +3 -0
- package/dist/conversion/hub/process/chat-process-web-search-tool-schema.js +4 -0
- package/dist/conversion/hub/process/chat-process-web-search.d.ts +8 -0
- package/dist/conversion/hub/process/chat-process-web-search.js +26 -0
- package/dist/conversion/hub/process/chat-process.d.ts +2 -19
- package/dist/conversion/hub/process/chat-process.js +12 -1701
- package/dist/conversion/hub/process/client-inject-readiness.d.ts +1 -0
- package/dist/conversion/hub/process/client-inject-readiness.js +4 -0
- package/dist/conversion/hub/registry.js +5 -2
- package/dist/conversion/hub/response/chat-response-utils.js +5 -86
- package/dist/conversion/hub/response/provider-response.d.ts +9 -0
- package/dist/conversion/hub/response/provider-response.js +6 -21
- package/dist/conversion/hub/response/response-mappers.js +2 -26
- package/dist/conversion/hub/response/response-runtime.js +2 -93
- package/dist/conversion/hub/semantic-mappers/anthropic-mapper.d.ts +1 -0
- package/dist/conversion/hub/semantic-mappers/anthropic-mapper.js +1 -0
- package/dist/conversion/hub/semantic-mappers/chat-mapper.d.ts +1 -0
- package/dist/conversion/hub/semantic-mappers/chat-mapper.js +1 -0
- package/dist/conversion/hub/semantic-mappers/gemini-mapper.d.ts +1 -0
- package/dist/conversion/hub/semantic-mappers/gemini-mapper.js +1 -0
- package/dist/conversion/hub/semantic-mappers/responses-mapper.d.ts +1 -0
- package/dist/conversion/hub/semantic-mappers/responses-mapper.js +1 -0
- package/dist/conversion/hub/snapshot-recorder.js +10 -3
- package/dist/conversion/hub/standardized-bridge.js +11 -288
- package/dist/conversion/hub/tool-governance/engine.js +5 -0
- package/dist/conversion/hub/tool-governance/rules.js +10 -10
- package/dist/conversion/hub/tool-session-compat.d.ts +2 -2
- package/dist/conversion/hub/tool-session-compat.js +17 -231
- package/dist/conversion/hub/tool-surface/tool-surface-engine.js +5 -3
- package/dist/conversion/responses/responses-host-policy.js +2 -12
- package/dist/conversion/responses/responses-openai-bridge/response-payload.js +6 -82
- package/dist/conversion/responses/responses-openai-bridge/types.d.ts +1 -0
- package/dist/conversion/responses/responses-openai-bridge.js +21 -54
- package/dist/conversion/shared/anthropic-message-utils.js +151 -13
- package/dist/conversion/shared/args-mapping.js +2 -146
- package/dist/conversion/shared/bridge-actions.js +203 -718
- package/dist/conversion/shared/bridge-id-utils.js +5 -71
- package/dist/conversion/shared/bridge-instructions.js +2 -1
- package/dist/conversion/shared/bridge-message-types.d.ts +2 -0
- package/dist/conversion/shared/bridge-message-utils.js +1 -2
- package/dist/conversion/shared/bridge-metadata.d.ts +1 -0
- package/dist/conversion/shared/bridge-metadata.js +4 -0
- package/dist/conversion/shared/bridge-policies.js +5 -189
- package/dist/conversion/shared/chat-envelope-validator.js +2 -126
- package/dist/conversion/shared/chat-output-normalizer.js +2 -54
- package/dist/conversion/shared/compaction-detect.js +2 -57
- package/dist/conversion/shared/gemini-tool-utils.js +9 -524
- package/dist/conversion/shared/jsonish.js +3 -160
- package/dist/conversion/shared/mcp-injection.js +3 -169
- package/dist/conversion/shared/media.js +2 -7
- package/dist/conversion/shared/metadata-passthrough.js +9 -46
- package/dist/conversion/shared/openai-finalizer.js +2 -1
- package/dist/conversion/shared/openai-message-normalize.js +11 -283
- package/dist/conversion/shared/output-content-normalizer.js +9 -112
- package/dist/conversion/shared/payload-budget.js +2 -85
- package/dist/conversion/shared/protocol-state.js +11 -7
- package/dist/conversion/shared/reasoning-mapping.js +2 -6
- package/dist/conversion/shared/reasoning-normalizer.js +4 -1
- package/dist/conversion/shared/reasoning-tool-normalizer.js +14 -126
- package/dist/conversion/shared/reasoning-tool-parser.js +4 -87
- package/dist/conversion/shared/reasoning-utils.js +2 -6
- package/dist/conversion/shared/responses-conversation-store.js +4 -82
- package/dist/conversion/shared/responses-output-builder.js +11 -47
- package/dist/conversion/shared/responses-reasoning-registry.js +7 -1
- package/dist/conversion/shared/responses-request-adapter.d.ts +7 -1
- package/dist/conversion/shared/responses-request-adapter.js +14 -1
- package/dist/conversion/shared/responses-response-utils.js +6 -7
- package/dist/conversion/shared/responses-tool-utils.d.ts +1 -0
- package/dist/conversion/shared/responses-tool-utils.js +90 -14
- package/dist/conversion/shared/runtime-metadata.js +13 -5
- package/dist/conversion/shared/streaming-text-extractor.js +2 -7
- package/dist/conversion/shared/text-markup-normalizer/normalize.d.ts +1 -1
- package/dist/conversion/shared/text-markup-normalizer/normalize.js +43 -17
- package/dist/conversion/shared/text-markup-normalizer.d.ts +1 -0
- package/dist/conversion/shared/text-markup-normalizer.js +1 -0
- package/dist/conversion/shared/thought-signature-validator.js +3 -2
- package/dist/conversion/shared/tool-argument-repairer.js +2 -2
- package/dist/conversion/shared/tool-call-id-manager.js +5 -7
- package/dist/conversion/shared/tool-call-utils.js +3 -45
- package/dist/conversion/shared/tool-canonicalizer.js +25 -29
- package/dist/conversion/shared/tool-filter-pipeline.js +4 -99
- package/dist/conversion/shared/tool-governor.d.ts +6 -0
- package/dist/conversion/shared/tool-governor.js +43 -125
- package/dist/conversion/shared/tool-harvester.js +2 -8
- package/dist/conversion/shared/tool-mapping.js +2 -5
- package/dist/conversion/shared/tooling.d.ts +0 -4
- package/dist/conversion/shared/tooling.js +18 -0
- package/dist/native/router_hotpath_napi.node +0 -0
- package/dist/router/virtual-router/engine/provider-key/parse.d.ts +1 -6
- package/dist/router/virtual-router/engine/provider-key/parse.js +1 -43
- package/dist/router/virtual-router/engine/routing-state/store.js +48 -12
- package/dist/router/virtual-router/engine-logging.js +4 -3
- package/dist/router/virtual-router/engine-selection/alias-selection.js +45 -83
- package/dist/router/virtual-router/engine-selection/key-parsing.js +9 -23
- package/dist/router/virtual-router/engine-selection/native-chat-process-clock-directive-parser.d.ts +20 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-clock-directive-parser.js +163 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-directives.d.ts +7 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-directives.js +103 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-orchestration-semantics.d.ts +10 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-orchestration-semantics.js +110 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-semantics.d.ts +8 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-semantics.js +281 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-time-tag-semantics.d.ts +1 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminder-time-tag-semantics.js +25 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminders-semantics.d.ts +4 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-clock-reminders-semantics.js +44 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-clock-tool-schema-semantics.d.ts +2 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-clock-tool-schema-semantics.js +62 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-governance-semantics.d.ts +40 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-governance-semantics.js +484 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-governed-filter-semantics.d.ts +9 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-governed-filter-semantics.js +64 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-node-result-semantics.d.ts +5 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-node-result-semantics.js +163 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-post-governed-normalization-semantics.d.ts +1 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-post-governed-normalization-semantics.js +49 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-servertool-orchestration-semantics.d.ts +30 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-servertool-orchestration-semantics.js +446 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-web-search-intent-semantics.d.ts +1 -0
- package/dist/router/virtual-router/engine-selection/native-chat-process-web-search-intent-semantics.js +49 -0
- package/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics.d.ts +134 -0
- package/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics.js +729 -0
- package/dist/router/virtual-router/engine-selection/native-hub-bridge-policy-semantics.d.ts +62 -0
- package/dist/router/virtual-router/engine-selection/native-hub-bridge-policy-semantics.js +338 -0
- package/dist/router/virtual-router/engine-selection/native-hub-pipeline-edge-stage-semantics.d.ts +18 -0
- package/dist/router/virtual-router/engine-selection/native-hub-pipeline-edge-stage-semantics.js +317 -0
- package/dist/router/virtual-router/engine-selection/native-hub-pipeline-inbound-outbound-semantics.d.ts +22 -0
- package/dist/router/virtual-router/engine-selection/native-hub-pipeline-inbound-outbound-semantics.js +426 -0
- package/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics.d.ts +57 -0
- package/dist/router/virtual-router/engine-selection/native-hub-pipeline-orchestration-semantics.js +705 -0
- package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-inbound-semantics.d.ts +46 -0
- package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-inbound-semantics.js +503 -0
- package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-outbound-semantics.d.ts +146 -0
- package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-outbound-semantics.js +570 -0
- package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-process-semantics.d.ts +25 -0
- package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-process-semantics.js +148 -0
- package/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics.d.ts +25 -0
- package/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics.js +637 -0
- package/dist/router/virtual-router/engine-selection/native-hub-pipeline-session-identifiers-semantics.d.ts +11 -0
- package/dist/router/virtual-router/engine-selection/native-hub-pipeline-session-identifiers-semantics.js +207 -0
- package/dist/router/virtual-router/engine-selection/native-hub-pipeline-target-semantics.d.ts +3 -0
- package/dist/router/virtual-router/engine-selection/native-hub-pipeline-target-semantics.js +128 -0
- package/dist/router/virtual-router/engine-selection/native-router-hotpath-analysis.d.ts +57 -0
- package/dist/router/virtual-router/engine-selection/native-router-hotpath-analysis.js +217 -0
- package/dist/router/virtual-router/engine-selection/native-router-hotpath-loader.d.ts +5 -0
- package/dist/router/virtual-router/engine-selection/native-router-hotpath-loader.js +284 -0
- package/dist/router/virtual-router/engine-selection/native-router-hotpath-policy.d.ts +5 -0
- package/dist/router/virtual-router/engine-selection/native-router-hotpath-policy.js +18 -0
- package/dist/router/virtual-router/engine-selection/native-router-hotpath-quota-buckets.d.ts +25 -0
- package/dist/router/virtual-router/engine-selection/native-router-hotpath-quota-buckets.js +85 -0
- package/dist/router/virtual-router/engine-selection/native-router-hotpath.d.ts +59 -0
- package/dist/router/virtual-router/engine-selection/native-router-hotpath.js +117 -0
- package/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics.d.ts +76 -0
- package/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics.js +1166 -0
- package/dist/router/virtual-router/engine-selection/native-virtual-router-alias-selection-semantics.d.ts +16 -0
- package/dist/router/virtual-router/engine-selection/native-virtual-router-alias-selection-semantics.js +96 -0
- package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-actions-semantics.d.ts +6 -0
- package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-actions-semantics.js +85 -0
- package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-semantics.d.ts +9 -0
- package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-semantics.js +70 -0
- package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-state-semantics.d.ts +2 -0
- package/dist/router/virtual-router/engine-selection/native-virtual-router-stop-message-state-semantics.js +76 -0
- package/dist/router/virtual-router/engine-selection/route-utils.js +1 -1
- package/dist/router/virtual-router/engine-selection/tier-selection-antigravity-session-lease.d.ts +10 -0
- package/dist/router/virtual-router/engine-selection/tier-selection-antigravity-session-lease.js +231 -0
- package/dist/router/virtual-router/engine-selection/tier-selection-antigravity-target-split.d.ts +4 -0
- package/dist/router/virtual-router/engine-selection/tier-selection-antigravity-target-split.js +43 -0
- package/dist/router/virtual-router/engine-selection/tier-selection-quota-integration.d.ts +27 -0
- package/dist/router/virtual-router/engine-selection/tier-selection-quota-integration.js +116 -0
- package/dist/router/virtual-router/engine-selection/tier-selection-select.d.ts +1 -1
- package/dist/router/virtual-router/engine-selection/tier-selection-select.js +29 -129
- package/dist/router/virtual-router/engine-selection/tier-selection.js +2 -265
- package/dist/router/virtual-router/engine.js +258 -249
- package/dist/router/virtual-router/features.js +2 -2
- package/dist/router/virtual-router/routing-instructions.d.ts +5 -7
- package/dist/router/virtual-router/routing-instructions.js +93 -66
- package/dist/router/virtual-router/routing-stop-message-actions.js +91 -112
- package/dist/router/virtual-router/routing-stop-message-parser.js +9 -132
- package/dist/router/virtual-router/routing-stop-message-state-codec.d.ts +1 -0
- package/dist/router/virtual-router/routing-stop-message-state-codec.js +58 -71
- package/dist/router/virtual-router/sticky-session-store.js +4 -2
- package/dist/router/virtual-router/stop-message-file-resolver.d.ts +1 -0
- package/dist/router/virtual-router/stop-message-file-resolver.js +10 -0
- package/dist/router/virtual-router/stop-message-state-sync.d.ts +1 -1
- package/dist/router/virtual-router/stop-message-state-sync.js +3 -7
- package/dist/router/virtual-router/token-counter.js +0 -9
- package/dist/router/virtual-router/types.d.ts +9 -7
- package/dist/servertool/clock/config.js +23 -51
- package/dist/servertool/clock/io.js +1 -0
- package/dist/servertool/clock/session-scope.d.ts +2 -2
- package/dist/servertool/clock/session-scope.js +5 -47
- package/dist/servertool/engine.d.ts +9 -0
- package/dist/servertool/engine.js +196 -79
- package/dist/servertool/handlers/antigravity-thought-signature-bootstrap.js +2 -2
- package/dist/servertool/handlers/clock.js +1 -1
- package/dist/servertool/handlers/continue-execution.js +8 -4
- package/dist/servertool/handlers/followup-request-builder.js +18 -1
- package/dist/servertool/handlers/gemini-empty-reply-continue.js +7 -1
- package/dist/servertool/handlers/review.js +180 -0
- package/dist/servertool/handlers/stop-message-auto/blocked-report.js +59 -1
- package/dist/servertool/handlers/stop-message-auto/iflow-followup.d.ts +23 -2
- package/dist/servertool/handlers/stop-message-auto/iflow-followup.js +397 -89
- package/dist/servertool/handlers/stop-message-auto/routing-state.d.ts +5 -15
- package/dist/servertool/handlers/stop-message-auto/routing-state.js +29 -55
- package/dist/servertool/handlers/stop-message-auto/runtime-utils.d.ts +6 -0
- package/dist/servertool/handlers/stop-message-auto/runtime-utils.js +35 -61
- package/dist/servertool/handlers/stop-message-auto.js +392 -76
- package/dist/servertool/server-side-tools.d.ts +1 -0
- package/dist/servertool/server-side-tools.js +90 -52
- package/dist/servertool/types.d.ts +17 -0
- package/dist/tools/apply-patch/patch-text/normalize.js +11 -0
- package/dist/tools/exec-command/validator.d.ts +4 -1
- package/dist/tools/exec-command/validator.js +87 -3
- package/dist/tools/tool-registry.d.ts +7 -1
- package/dist/tools/tool-registry.js +3 -2
- package/package.json +115 -7
- package/dist/servertool/handlers/stop-message-stage-policy/bd-runtime.d.ts +0 -18
- package/dist/servertool/handlers/stop-message-stage-policy/bd-runtime.js +0 -398
- package/dist/servertool/handlers/stop-message-stage-policy/decision.d.ts +0 -9
- package/dist/servertool/handlers/stop-message-stage-policy/decision.js +0 -127
- package/dist/servertool/handlers/stop-message-stage-policy/observation.d.ts +0 -2
- package/dist/servertool/handlers/stop-message-stage-policy/observation.js +0 -179
- package/dist/servertool/handlers/stop-message-stage-policy/templates.d.ts +0 -4
- package/dist/servertool/handlers/stop-message-stage-policy/templates.js +0 -96
- package/dist/servertool/handlers/stop-message-stage-policy/text-utils.d.ts +0 -9
- package/dist/servertool/handlers/stop-message-stage-policy/text-utils.js +0 -89
- package/dist/servertool/handlers/stop-message-stage-policy/types.d.ts +0 -59
- package/dist/servertool/handlers/stop-message-stage-policy.d.ts +0 -3
- package/dist/servertool/handlers/stop-message-stage-policy.js +0 -2
- /package/dist/servertool/handlers/{stop-message-stage-policy/types.js → review.d.ts} +0 -0
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import { buildClockStandardToolAppendOperationsWithNative, buildClockToolAppendOperationsWithNative } from '../../../router/virtual-router/engine-selection/native-chat-process-clock-tool-schema-semantics.js';
|
|
2
|
+
const CLOCK_PARAMETERS = {
|
|
3
|
+
type: 'object',
|
|
4
|
+
properties: {
|
|
5
|
+
action: {
|
|
6
|
+
type: 'string',
|
|
7
|
+
enum: ['get', 'schedule', 'update', 'list', 'cancel', 'clear'],
|
|
8
|
+
description: 'Get current time, or schedule/update/list/cancel/clear session-scoped reminders. If waiting longer than 2 minutes is required, use action="schedule" immediately.'
|
|
9
|
+
},
|
|
10
|
+
items: {
|
|
11
|
+
type: 'array',
|
|
12
|
+
description: 'For schedule/update: list of reminder payloads. update uses items[0] as patch source.',
|
|
13
|
+
items: {
|
|
14
|
+
type: 'object',
|
|
15
|
+
properties: {
|
|
16
|
+
dueAt: {
|
|
17
|
+
type: 'string',
|
|
18
|
+
description: 'ISO8601 datetime with timezone (e.g. 2026-01-21T20:30:00-08:00).'
|
|
19
|
+
},
|
|
20
|
+
task: {
|
|
21
|
+
type: 'string',
|
|
22
|
+
description: 'Reminder text that states the exact action to execute on wake-up (no vague placeholders).'
|
|
23
|
+
},
|
|
24
|
+
tool: {
|
|
25
|
+
type: 'string',
|
|
26
|
+
description: 'Optional suggested tool name (hint only).'
|
|
27
|
+
},
|
|
28
|
+
arguments: {
|
|
29
|
+
type: 'string',
|
|
30
|
+
description: 'Optional suggested tool arguments as a JSON string (hint only). Use "{}" when unsure.'
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
required: ['dueAt', 'task', 'tool', 'arguments'],
|
|
34
|
+
additionalProperties: false
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
taskId: {
|
|
38
|
+
type: 'string',
|
|
39
|
+
description: 'For cancel/update: target taskId.'
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
required: ['action', 'items', 'taskId'],
|
|
43
|
+
additionalProperties: false
|
|
44
|
+
};
|
|
45
|
+
const CLOCK_TOOL = {
|
|
46
|
+
type: 'function',
|
|
47
|
+
function: {
|
|
48
|
+
name: 'clock',
|
|
49
|
+
description: 'Time + Alarm for this session. If waiting longer than 2 minutes is required, MUST call clock.schedule now (never promise to wait without scheduling). Format example: {"action":"schedule","items":[{"dueAt":"<ISO8601>","task":"<exact follow-up action>","tool":"<tool-name-or-empty>","arguments":"<json-string-or-{}>"}],"taskId":""}. Use get/schedule/update/list/cancel/clear. Scheduled reminders are injected into future requests.',
|
|
50
|
+
parameters: CLOCK_PARAMETERS,
|
|
51
|
+
strict: true
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
const CLOCK_STANDARD_TOOLS = [
|
|
55
|
+
{
|
|
56
|
+
type: 'function',
|
|
57
|
+
function: {
|
|
58
|
+
name: 'clock',
|
|
59
|
+
description: 'Time + Alarm for this session. If waiting longer than 2 minutes is required, call clock.schedule now. Format example: {"action":"schedule","items":[{"dueAt":"<ISO8601>","task":"<exact follow-up action>","tool":"<tool-name-or-empty>","arguments":"<json-string-or-{}>"}],"taskId":""}. Use schedule/update/list/cancel/clear.',
|
|
60
|
+
parameters: {
|
|
61
|
+
type: 'object',
|
|
62
|
+
properties: {
|
|
63
|
+
action: {
|
|
64
|
+
type: 'string',
|
|
65
|
+
enum: ['get', 'schedule', 'update', 'list', 'cancel', 'clear']
|
|
66
|
+
},
|
|
67
|
+
items: {
|
|
68
|
+
type: 'array',
|
|
69
|
+
items: {
|
|
70
|
+
type: 'object',
|
|
71
|
+
properties: {
|
|
72
|
+
dueAt: { type: 'string' },
|
|
73
|
+
task: { type: 'string' },
|
|
74
|
+
tool: { type: 'string' },
|
|
75
|
+
arguments: { type: 'string' }
|
|
76
|
+
},
|
|
77
|
+
required: ['dueAt', 'task', 'tool', 'arguments'],
|
|
78
|
+
additionalProperties: false
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
taskId: { type: 'string' }
|
|
82
|
+
},
|
|
83
|
+
required: ['action', 'items', 'taskId'],
|
|
84
|
+
additionalProperties: false
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'function',
|
|
90
|
+
function: {
|
|
91
|
+
name: 'shell',
|
|
92
|
+
description: 'Runs a shell command and returns its output.',
|
|
93
|
+
parameters: {
|
|
94
|
+
type: 'object',
|
|
95
|
+
properties: {
|
|
96
|
+
command: { oneOf: [{ type: 'string' }, { type: 'array', items: { type: 'string' } }] },
|
|
97
|
+
workdir: { type: 'string' }
|
|
98
|
+
},
|
|
99
|
+
required: ['command'],
|
|
100
|
+
additionalProperties: false
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'function',
|
|
106
|
+
function: {
|
|
107
|
+
name: 'exec_command',
|
|
108
|
+
description: 'Execute a command in a PTY and return output.',
|
|
109
|
+
parameters: {
|
|
110
|
+
type: 'object',
|
|
111
|
+
properties: {
|
|
112
|
+
cmd: { type: 'string' },
|
|
113
|
+
workdir: { type: 'string' },
|
|
114
|
+
timeout_ms: { type: 'number' },
|
|
115
|
+
max_output_tokens: { type: 'number' },
|
|
116
|
+
yield_time_ms: { type: 'number' }
|
|
117
|
+
},
|
|
118
|
+
required: ['cmd'],
|
|
119
|
+
additionalProperties: false
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'function',
|
|
125
|
+
function: {
|
|
126
|
+
name: 'apply_patch',
|
|
127
|
+
description: 'Apply a patch to repository files.',
|
|
128
|
+
parameters: {
|
|
129
|
+
type: 'object',
|
|
130
|
+
properties: {
|
|
131
|
+
patch: { type: 'string' }
|
|
132
|
+
},
|
|
133
|
+
required: ['patch'],
|
|
134
|
+
additionalProperties: false
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
type: 'function',
|
|
140
|
+
function: {
|
|
141
|
+
name: 'update_plan',
|
|
142
|
+
description: 'Update the task plan.',
|
|
143
|
+
parameters: {
|
|
144
|
+
type: 'object',
|
|
145
|
+
properties: {
|
|
146
|
+
explanation: { type: 'string' },
|
|
147
|
+
plan: {
|
|
148
|
+
type: 'array',
|
|
149
|
+
items: {
|
|
150
|
+
type: 'object',
|
|
151
|
+
properties: {
|
|
152
|
+
step: { type: 'string' },
|
|
153
|
+
status: { type: 'string' }
|
|
154
|
+
},
|
|
155
|
+
required: ['step', 'status'],
|
|
156
|
+
additionalProperties: false
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
required: ['plan'],
|
|
161
|
+
additionalProperties: false
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
type: 'function',
|
|
167
|
+
function: {
|
|
168
|
+
name: 'view_image',
|
|
169
|
+
description: 'View a local image by file path.',
|
|
170
|
+
parameters: {
|
|
171
|
+
type: 'object',
|
|
172
|
+
properties: {
|
|
173
|
+
path: { type: 'string' }
|
|
174
|
+
},
|
|
175
|
+
required: ['path'],
|
|
176
|
+
additionalProperties: false
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
type: 'function',
|
|
182
|
+
function: {
|
|
183
|
+
name: 'list_mcp_resources',
|
|
184
|
+
description: 'List resources exposed by MCP servers.',
|
|
185
|
+
parameters: {
|
|
186
|
+
type: 'object',
|
|
187
|
+
properties: {
|
|
188
|
+
server: { type: 'string' },
|
|
189
|
+
filter: { type: 'string' },
|
|
190
|
+
root: { type: 'string' }
|
|
191
|
+
},
|
|
192
|
+
additionalProperties: false
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
type: 'function',
|
|
198
|
+
function: {
|
|
199
|
+
name: 'list_mcp_resource_templates',
|
|
200
|
+
description: 'List resource templates exposed by MCP servers.',
|
|
201
|
+
parameters: {
|
|
202
|
+
type: 'object',
|
|
203
|
+
properties: {
|
|
204
|
+
server: { type: 'string' },
|
|
205
|
+
cursor: { type: 'string' }
|
|
206
|
+
},
|
|
207
|
+
additionalProperties: false
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
type: 'function',
|
|
213
|
+
function: {
|
|
214
|
+
name: 'read_mcp_resource',
|
|
215
|
+
description: 'Read a specific MCP resource by { server, uri }.',
|
|
216
|
+
parameters: {
|
|
217
|
+
type: 'object',
|
|
218
|
+
properties: {
|
|
219
|
+
server: { type: 'string' },
|
|
220
|
+
uri: { type: 'string' }
|
|
221
|
+
},
|
|
222
|
+
required: ['server', 'uri'],
|
|
223
|
+
additionalProperties: false
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
];
|
|
228
|
+
export function buildClockToolAppendOperations(hasSessionId) {
|
|
229
|
+
return buildClockToolAppendOperationsWithNative(hasSessionId, CLOCK_TOOL);
|
|
230
|
+
}
|
|
231
|
+
export function buildClockStandardToolAppendOperations() {
|
|
232
|
+
return buildClockStandardToolAppendOperationsWithNative(CLOCK_STANDARD_TOOLS);
|
|
233
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { HubOperation } from '../ops/operations.js';
|
|
2
|
+
export declare function buildClockOperations(metadata: Record<string, unknown>): HubOperation[];
|
|
3
|
+
export declare function buildClockOperationsWithPlan(metadata: Record<string, unknown>, precomputedPlan?: {
|
|
4
|
+
shouldInject: boolean;
|
|
5
|
+
}): HubOperation[];
|
|
6
|
+
export declare function buildClockStandardToolsOperations(): HubOperation[];
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { readRuntimeMetadata } from '../../shared/runtime-metadata.js';
|
|
2
|
+
import { logClock } from '../../../servertool/clock/log.js';
|
|
3
|
+
import { buildClockStandardToolAppendOperations, buildClockToolAppendOperations } from './chat-process-clock-tool-schemas.js';
|
|
4
|
+
import { planChatClockOperationsWithNative } from '../../../router/virtual-router/engine-selection/native-chat-process-servertool-orchestration-semantics.js';
|
|
5
|
+
import { isClientInjectReady } from './client-inject-readiness.js';
|
|
6
|
+
function readString(value) {
|
|
7
|
+
return typeof value === 'string' && value.trim() ? value.trim() : undefined;
|
|
8
|
+
}
|
|
9
|
+
export function buildClockOperations(metadata) {
|
|
10
|
+
if (!isClientInjectReady(metadata)) {
|
|
11
|
+
return [];
|
|
12
|
+
}
|
|
13
|
+
const rt = (readRuntimeMetadata(metadata) ?? {});
|
|
14
|
+
const rawConfig = rt?.clock;
|
|
15
|
+
const plan = planChatClockOperationsWithNative(rt);
|
|
16
|
+
if (!plan.shouldInject) {
|
|
17
|
+
return [];
|
|
18
|
+
}
|
|
19
|
+
const sessionId = readString(metadata.sessionId);
|
|
20
|
+
const hasSessionId = Boolean(sessionId && sessionId.trim());
|
|
21
|
+
logClock('inject_schema', { hasSessionId });
|
|
22
|
+
return buildClockToolAppendOperations(hasSessionId);
|
|
23
|
+
}
|
|
24
|
+
export function buildClockOperationsWithPlan(metadata, precomputedPlan) {
|
|
25
|
+
if (!isClientInjectReady(metadata)) {
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
if (!precomputedPlan) {
|
|
29
|
+
return buildClockOperations(metadata);
|
|
30
|
+
}
|
|
31
|
+
if (!precomputedPlan.shouldInject) {
|
|
32
|
+
return [];
|
|
33
|
+
}
|
|
34
|
+
const sessionId = readString(metadata.sessionId);
|
|
35
|
+
const hasSessionId = Boolean(sessionId && sessionId.trim());
|
|
36
|
+
logClock('inject_schema', { hasSessionId });
|
|
37
|
+
return buildClockToolAppendOperations(hasSessionId);
|
|
38
|
+
}
|
|
39
|
+
export function buildClockStandardToolsOperations() {
|
|
40
|
+
return buildClockStandardToolAppendOperations();
|
|
41
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type NativeContinueExecutionPlan } from '../../../router/virtual-router/engine-selection/native-chat-process-servertool-orchestration-semantics.js';
|
|
2
|
+
import type { HubOperation } from '../ops/operations.js';
|
|
3
|
+
import type { StandardizedRequest } from '../types/standardized.js';
|
|
4
|
+
type ContinueExecutionBuildOptions = {
|
|
5
|
+
hasActiveStopMessage?: boolean;
|
|
6
|
+
precomputedPlan?: NativeContinueExecutionPlan;
|
|
7
|
+
};
|
|
8
|
+
export declare function buildContinueExecutionOperations(metadata: Record<string, unknown>, options?: ContinueExecutionBuildOptions): HubOperation[];
|
|
9
|
+
export declare function injectContinueExecutionDirectiveIntoUserMessage(request: StandardizedRequest, metadata: Record<string, unknown>): StandardizedRequest;
|
|
10
|
+
export declare function resolveHasActiveStopMessageForContinueExecution(metadata: Record<string, unknown>): boolean;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { readRuntimeMetadata } from '../../shared/runtime-metadata.js';
|
|
2
|
+
import { loadRoutingInstructionStateSync } from '../../../router/virtual-router/sticky-session-store.js';
|
|
3
|
+
import { logContinueExecution } from '../../../servertool/continue-execution/log.js';
|
|
4
|
+
import { buildContinueExecutionOperationsWithNative, injectContinueExecutionDirectiveWithNative, planContinueExecutionOperationsWithNative, resolveHasActiveStopMessageForContinueExecutionWithNative, resolveStopMessageSessionScopeWithNative } from '../../../router/virtual-router/engine-selection/native-chat-process-servertool-orchestration-semantics.js';
|
|
5
|
+
import { isClientInjectReady } from './client-inject-readiness.js';
|
|
6
|
+
const CONTINUE_EXECUTION_INJECTION_MARKER = '[routecodex:continue_execution_injection]';
|
|
7
|
+
const CONTINUE_EXECUTION_INJECTION_TEXT = '继续执行';
|
|
8
|
+
export function buildContinueExecutionOperations(metadata, options) {
|
|
9
|
+
const rt = (readRuntimeMetadata(metadata) ?? {});
|
|
10
|
+
const sessionId = readString(metadata.sessionId);
|
|
11
|
+
const hasSessionId = Boolean(sessionId && sessionId.trim());
|
|
12
|
+
if (!isClientInjectReady(metadata)) {
|
|
13
|
+
logContinueExecution('skip_schema_due_client_inject_unready', { hasSessionId });
|
|
14
|
+
return [];
|
|
15
|
+
}
|
|
16
|
+
const hasActiveStopMessage = options && typeof options.hasActiveStopMessage === 'boolean'
|
|
17
|
+
? options.hasActiveStopMessage
|
|
18
|
+
: hasActiveStopMessageStateForContinueExecution(metadata);
|
|
19
|
+
const plan = options?.precomputedPlan ??
|
|
20
|
+
planContinueExecutionOperationsWithNative(rt, hasActiveStopMessage);
|
|
21
|
+
const operations = buildContinueExecutionOperationsWithNative(Boolean(plan.shouldInject));
|
|
22
|
+
if (operations.length === 0) {
|
|
23
|
+
if (hasActiveStopMessage) {
|
|
24
|
+
logContinueExecution('skip_schema_due_stopmessage', { hasSessionId });
|
|
25
|
+
}
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
logContinueExecution('inject_schema', { hasSessionId });
|
|
29
|
+
return operations;
|
|
30
|
+
}
|
|
31
|
+
export function injectContinueExecutionDirectiveIntoUserMessage(request, metadata) {
|
|
32
|
+
const rt = (readRuntimeMetadata(metadata) ?? {});
|
|
33
|
+
if (!isClientInjectReady(metadata)) {
|
|
34
|
+
return request;
|
|
35
|
+
}
|
|
36
|
+
if (rt?.serverToolFollowup === true) {
|
|
37
|
+
return request;
|
|
38
|
+
}
|
|
39
|
+
if (hasActiveStopMessageStateForContinueExecution(metadata)) {
|
|
40
|
+
const sessionId = readString(metadata.sessionId);
|
|
41
|
+
const hasSessionId = Boolean(sessionId && sessionId.trim());
|
|
42
|
+
logContinueExecution('skip_user_directive_due_stopmessage', { hasSessionId });
|
|
43
|
+
return request;
|
|
44
|
+
}
|
|
45
|
+
const messages = Array.isArray(request.messages) ? request.messages : [];
|
|
46
|
+
if (messages.length === 0) {
|
|
47
|
+
return request;
|
|
48
|
+
}
|
|
49
|
+
const injected = injectContinueExecutionDirectiveWithNative(messages, CONTINUE_EXECUTION_INJECTION_MARKER, CONTINUE_EXECUTION_INJECTION_TEXT);
|
|
50
|
+
if (!injected.changed) {
|
|
51
|
+
return request;
|
|
52
|
+
}
|
|
53
|
+
const sessionId = readString(metadata.sessionId);
|
|
54
|
+
const hasSessionId = Boolean(sessionId && sessionId.trim());
|
|
55
|
+
logContinueExecution('inject_user_directive', { hasSessionId });
|
|
56
|
+
return {
|
|
57
|
+
...request,
|
|
58
|
+
messages: injected.messages
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function hasActiveStopMessageStateForContinueExecution(metadata) {
|
|
62
|
+
const rt = (readRuntimeMetadata(metadata) ?? {});
|
|
63
|
+
const runtimeState = rt?.stopMessageState;
|
|
64
|
+
const persistedState = resolvePersistedStopMessageState(metadata);
|
|
65
|
+
return resolveHasActiveStopMessageForContinueExecutionWithNative(runtimeState, persistedState);
|
|
66
|
+
}
|
|
67
|
+
export function resolveHasActiveStopMessageForContinueExecution(metadata) {
|
|
68
|
+
return hasActiveStopMessageStateForContinueExecution(metadata);
|
|
69
|
+
}
|
|
70
|
+
function resolvePersistedStopMessageState(metadata) {
|
|
71
|
+
const sessionScope = resolveStopMessageSessionScope(metadata);
|
|
72
|
+
if (!sessionScope) {
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
return loadRoutingInstructionStateSync(sessionScope);
|
|
76
|
+
}
|
|
77
|
+
function resolveStopMessageSessionScope(metadata) {
|
|
78
|
+
return resolveStopMessageSessionScopeWithNative(metadata);
|
|
79
|
+
}
|
|
80
|
+
function readString(value) {
|
|
81
|
+
return typeof value === 'string' ? value : undefined;
|
|
82
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { StandardizedRequest } from '../types/standardized.js';
|
|
2
|
+
interface GovernanceContextSource {
|
|
3
|
+
entryEndpoint: string;
|
|
4
|
+
metadata: Record<string, unknown>;
|
|
5
|
+
}
|
|
6
|
+
export interface ResolvedGovernanceContext {
|
|
7
|
+
entryEndpoint: string;
|
|
8
|
+
metadata: Record<string, unknown>;
|
|
9
|
+
providerProtocol: string;
|
|
10
|
+
metadataToolHints: unknown;
|
|
11
|
+
inboundStreamIntent: boolean;
|
|
12
|
+
rawRequestBody?: Record<string, unknown>;
|
|
13
|
+
}
|
|
14
|
+
export declare function resolveGovernanceContext(request: StandardizedRequest, context: GovernanceContextSource): ResolvedGovernanceContext;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { resolveGovernanceContextWithNative } from '../../../router/virtual-router/engine-selection/native-chat-process-governance-semantics.js';
|
|
2
|
+
export function resolveGovernanceContext(request, context) {
|
|
3
|
+
const nativeResolved = resolveGovernanceContextWithNative(request, context);
|
|
4
|
+
return {
|
|
5
|
+
...nativeResolved
|
|
6
|
+
};
|
|
7
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { StandardizedRequest } from '../types/standardized.js';
|
|
2
|
+
export interface ToolGovernanceLike {
|
|
3
|
+
governRequest(request: StandardizedRequest, providerProtocol: string): {
|
|
4
|
+
request: StandardizedRequest;
|
|
5
|
+
summary: {
|
|
6
|
+
applied?: boolean;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
interface GovernanceFinalizeOptions {
|
|
11
|
+
request: StandardizedRequest;
|
|
12
|
+
providerProtocol: string;
|
|
13
|
+
governanceEngine: ToolGovernanceLike;
|
|
14
|
+
}
|
|
15
|
+
export declare function finalizeGovernedRequest(options: GovernanceFinalizeOptions): StandardizedRequest;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { finalizeGovernedRequestWithNative } from '../../../router/virtual-router/engine-selection/native-chat-process-governance-semantics.js';
|
|
2
|
+
export function finalizeGovernedRequest(options) {
|
|
3
|
+
const { request, providerProtocol, governanceEngine } = options;
|
|
4
|
+
const { request: sanitized, summary } = governanceEngine.governRequest(request, providerProtocol);
|
|
5
|
+
if (summary.applied !== true) {
|
|
6
|
+
return sanitized;
|
|
7
|
+
}
|
|
8
|
+
const finalized = finalizeGovernedRequestWithNative(sanitized, summary);
|
|
9
|
+
sanitized.metadata = finalized.metadata;
|
|
10
|
+
return sanitized;
|
|
11
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { StandardizedRequest } from '../types/standardized.js';
|
|
2
|
+
import type { ToolGovernanceLike } from './chat-process-governance-finalize.js';
|
|
3
|
+
export interface GovernanceContext {
|
|
4
|
+
entryEndpoint: string;
|
|
5
|
+
requestId: string;
|
|
6
|
+
metadata: Record<string, unknown>;
|
|
7
|
+
rawPayload?: Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
export declare function applyRequestToolGovernance(request: StandardizedRequest, context: GovernanceContext, governanceEngine?: ToolGovernanceLike): Promise<StandardizedRequest>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { applyReqProcessToolGovernanceWithNative } from '../../../router/virtual-router/engine-selection/native-hub-pipeline-req-process-semantics.js';
|
|
2
|
+
import { maybeInjectClockRemindersAndApplyDirectives } from './chat-process-clock-reminders.js';
|
|
3
|
+
import { finalizeGovernedRequest } from './chat-process-governance-finalize.js';
|
|
4
|
+
function isRecord(value) {
|
|
5
|
+
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
6
|
+
}
|
|
7
|
+
function parseGovernedRequest(value) {
|
|
8
|
+
const row = value;
|
|
9
|
+
if (!Array.isArray(row.messages)) {
|
|
10
|
+
throw new Error('native chat governance returned malformed request envelope');
|
|
11
|
+
}
|
|
12
|
+
const normalized = {
|
|
13
|
+
...row,
|
|
14
|
+
parameters: isRecord(row.parameters) ? row.parameters : {},
|
|
15
|
+
metadata: isRecord(row.metadata) ? row.metadata : {}
|
|
16
|
+
};
|
|
17
|
+
return normalized;
|
|
18
|
+
}
|
|
19
|
+
function resolveProviderProtocol(context) {
|
|
20
|
+
const metadataProtocol = context.metadata.providerProtocol;
|
|
21
|
+
if (typeof metadataProtocol === 'string' && metadataProtocol) {
|
|
22
|
+
return metadataProtocol;
|
|
23
|
+
}
|
|
24
|
+
return context.entryEndpoint === '/v1/messages' ? 'anthropic-chat' : 'openai-chat';
|
|
25
|
+
}
|
|
26
|
+
export async function applyRequestToolGovernance(request, context, governanceEngine) {
|
|
27
|
+
if (!isRecord(request) || !Array.isArray(request.messages)) {
|
|
28
|
+
throw new Error('chat governance input request is invalid');
|
|
29
|
+
}
|
|
30
|
+
const nativeResult = applyReqProcessToolGovernanceWithNative({
|
|
31
|
+
request: request,
|
|
32
|
+
rawPayload: context.rawPayload ?? request,
|
|
33
|
+
metadata: context.metadata,
|
|
34
|
+
entryEndpoint: context.entryEndpoint,
|
|
35
|
+
requestId: context.requestId
|
|
36
|
+
});
|
|
37
|
+
const governedRequest = parseGovernedRequest(nativeResult.processedRequest);
|
|
38
|
+
const requestAfterInject = await maybeInjectClockRemindersAndApplyDirectives(governedRequest, context.metadata, context.requestId);
|
|
39
|
+
if (!governanceEngine) {
|
|
40
|
+
return requestAfterInject;
|
|
41
|
+
}
|
|
42
|
+
return finalizeGovernedRequest({
|
|
43
|
+
request: requestAfterInject,
|
|
44
|
+
providerProtocol: resolveProviderProtocol(context),
|
|
45
|
+
governanceEngine
|
|
46
|
+
});
|
|
47
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { StandardizedRequest } from '../types/standardized.js';
|
|
2
|
+
interface GovernedControlOpsOptions {
|
|
3
|
+
request: StandardizedRequest;
|
|
4
|
+
governed: Record<string, unknown>;
|
|
5
|
+
inboundStreamIntent: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function applyGovernedControlOperations(options: GovernedControlOpsOptions): StandardizedRequest;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { applyGovernedControlOperationsWithNative } from '../../../router/virtual-router/engine-selection/native-chat-process-governance-semantics.js';
|
|
2
|
+
export function applyGovernedControlOperations(options) {
|
|
3
|
+
const { request, governed, inboundStreamIntent } = options;
|
|
4
|
+
return applyGovernedControlOperationsWithNative(request, governed, inboundStreamIntent);
|
|
5
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { StandardizedRequest } from '../types/standardized.js';
|
|
2
|
+
interface GovernedFilterCallOptions {
|
|
3
|
+
request: StandardizedRequest;
|
|
4
|
+
entryEndpoint: string;
|
|
5
|
+
requestId: string;
|
|
6
|
+
providerProtocol: string;
|
|
7
|
+
inboundStreamIntent: boolean;
|
|
8
|
+
metadataToolHints: unknown;
|
|
9
|
+
rawRequestBody?: Record<string, unknown>;
|
|
10
|
+
}
|
|
11
|
+
export declare function runGovernedChatRequestFilters(options: GovernedFilterCallOptions): Promise<Record<string, unknown>>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { runChatRequestToolFilters } from '../../shared/tool-filter-pipeline.js';
|
|
2
|
+
import { buildGovernedFilterPayloadWithNative } from '../../../router/virtual-router/engine-selection/native-chat-process-governed-filter-semantics.js';
|
|
3
|
+
export async function runGovernedChatRequestFilters(options) {
|
|
4
|
+
const { request } = options;
|
|
5
|
+
const shaped = buildGovernedFilterPayloadWithNative(request);
|
|
6
|
+
const governedPayload = await runChatRequestToolFilters(shaped, {
|
|
7
|
+
entryEndpoint: options.entryEndpoint,
|
|
8
|
+
requestId: options.requestId,
|
|
9
|
+
model: request.model,
|
|
10
|
+
profile: options.providerProtocol,
|
|
11
|
+
stream: options.inboundStreamIntent,
|
|
12
|
+
toolFilterHints: options.metadataToolHints,
|
|
13
|
+
rawPayload: options.rawRequestBody && typeof options.rawRequestBody === 'object'
|
|
14
|
+
? options.rawRequestBody
|
|
15
|
+
: undefined
|
|
16
|
+
});
|
|
17
|
+
return governedPayload;
|
|
18
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { StandardizedRequest } from '../types/standardized.js';
|
|
2
|
+
interface GovernedMergeOptions {
|
|
3
|
+
request: StandardizedRequest;
|
|
4
|
+
governed: Record<string, unknown>;
|
|
5
|
+
inboundStreamIntent: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function buildGovernedMergedRequest(options: GovernedMergeOptions): StandardizedRequest;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { castGovernedTools } from './chat-process-tool-normalization.js';
|
|
2
|
+
import { applyGovernedMergeRequestWithNative } from '../../../router/virtual-router/engine-selection/native-chat-process-governance-semantics.js';
|
|
3
|
+
export function buildGovernedMergedRequest(options) {
|
|
4
|
+
const { request, governed, inboundStreamIntent } = options;
|
|
5
|
+
const governanceTimestamp = Date.now();
|
|
6
|
+
const mergedBase = applyGovernedMergeRequestWithNative(request, governed, inboundStreamIntent, governanceTimestamp);
|
|
7
|
+
return {
|
|
8
|
+
...mergedBase,
|
|
9
|
+
tools: governed.tools !== undefined ? castGovernedTools(governed.tools) : request.tools
|
|
10
|
+
};
|
|
11
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { StandardizedMessage } from '../types/standardized.js';
|
|
2
|
+
export declare function stripHistoricalImageAttachments(messages: StandardizedMessage[]): StandardizedMessage[];
|
|
3
|
+
export declare function containsImageAttachment(messages: StandardizedMessage[]): boolean;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { analyzeChatProcessMedia, stripChatProcessHistoricalImages } from '../../../router/virtual-router/engine-selection/native-router-hotpath.js';
|
|
2
|
+
export function stripHistoricalImageAttachments(messages) {
|
|
3
|
+
if (!Array.isArray(messages) || !messages.length) {
|
|
4
|
+
return messages;
|
|
5
|
+
}
|
|
6
|
+
const placeholderText = '[Image omitted]';
|
|
7
|
+
const stripped = stripChatProcessHistoricalImages(messages, placeholderText);
|
|
8
|
+
if (stripped.changed !== true || !Array.isArray(stripped.messages)) {
|
|
9
|
+
return messages;
|
|
10
|
+
}
|
|
11
|
+
return stripped.messages;
|
|
12
|
+
}
|
|
13
|
+
export function containsImageAttachment(messages) {
|
|
14
|
+
if (!Array.isArray(messages) || !messages.length) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
return analyzeChatProcessMedia(messages).containsCurrentTurnImage === true;
|
|
18
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ProcessedRequest, StandardizedRequest } from '../types/standardized.js';
|
|
2
|
+
import type { JsonObject } from '../types/json.js';
|
|
3
|
+
export interface HubProcessNodeResult {
|
|
4
|
+
success: boolean;
|
|
5
|
+
metadata: {
|
|
6
|
+
node: string;
|
|
7
|
+
executionTime: number;
|
|
8
|
+
startTime: number;
|
|
9
|
+
endTime: number;
|
|
10
|
+
dataProcessed?: {
|
|
11
|
+
messages: number;
|
|
12
|
+
tools: number;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
error?: {
|
|
16
|
+
code?: string;
|
|
17
|
+
message: string;
|
|
18
|
+
details?: JsonObject;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export declare function buildProcessedRequest(request: StandardizedRequest): ProcessedRequest;
|
|
22
|
+
export declare function buildSuccessResult(startTime: number, processedRequest: ProcessedRequest): HubProcessNodeResult;
|
|
23
|
+
export declare function buildErrorResult(startTime: number, error: unknown): HubProcessNodeResult;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { applyChatProcessedRequestWithNative, buildChatNodeResultMetadataWithNative } from '../../../router/virtual-router/engine-selection/native-chat-process-node-result-semantics.js';
|
|
2
|
+
export function buildProcessedRequest(request) {
|
|
3
|
+
const timestamp = Date.now();
|
|
4
|
+
return applyChatProcessedRequestWithNative(request, timestamp);
|
|
5
|
+
}
|
|
6
|
+
export function buildSuccessResult(startTime, processedRequest) {
|
|
7
|
+
const endTime = Date.now();
|
|
8
|
+
const metadata = buildChatNodeResultMetadataWithNative(startTime, endTime, processedRequest.messages.length, processedRequest.tools?.length ?? 0, true);
|
|
9
|
+
return {
|
|
10
|
+
success: true,
|
|
11
|
+
metadata: metadata
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export function buildErrorResult(startTime, error) {
|
|
15
|
+
const endTime = Date.now();
|
|
16
|
+
const metadata = buildChatNodeResultMetadataWithNative(startTime, endTime, 0, 0, false);
|
|
17
|
+
return {
|
|
18
|
+
success: false,
|
|
19
|
+
metadata: metadata,
|
|
20
|
+
error: {
|
|
21
|
+
message: error instanceof Error ? error.message : String(error)
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { StandardizedMessage, StandardizedRequest } from '../types/standardized.js';
|
|
2
|
+
type PendingToolSyncDeps = {
|
|
3
|
+
loadPendingServerToolInjectionFn?: (sessionId: string) => Promise<{
|
|
4
|
+
afterToolCallIds?: unknown;
|
|
5
|
+
messages?: unknown;
|
|
6
|
+
} | null>;
|
|
7
|
+
clearPendingServerToolInjectionFn?: (sessionId: string) => Promise<void>;
|
|
8
|
+
analyzePendingToolSyncFn?: (messages: StandardizedMessage[], afterToolCallIds: string[]) => {
|
|
9
|
+
ready: boolean;
|
|
10
|
+
insertAt: number;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export declare function maybeInjectPendingServerToolResultsAfterClientTools(request: StandardizedRequest, metadata: Record<string, unknown>, deps?: PendingToolSyncDeps): Promise<StandardizedRequest>;
|
|
14
|
+
export {};
|