@superblocksteam/vite-plugin-file-sync 2.0.162-next.2 → 2.0.163-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai-service/agent/middleware.d.ts.map +1 -1
- package/dist/ai-service/agent/middleware.js +18 -7
- package/dist/ai-service/agent/middleware.js.map +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js +43 -29
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
- package/dist/ai-service/agent/prompts/build-security-scan-prompt.d.ts.map +1 -1
- package/dist/ai-service/agent/prompts/build-security-scan-prompt.js +25 -0
- package/dist/ai-service/agent/prompts/build-security-scan-prompt.js.map +1 -1
- package/dist/ai-service/agent/subagents/coding/run-coding-subagent.d.ts.map +1 -1
- package/dist/ai-service/agent/subagents/coding/run-coding-subagent.js +15 -0
- package/dist/ai-service/agent/subagents/coding/run-coding-subagent.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.js +4 -2
- package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
- package/dist/ai-service/agent/tools/app-environment/switch-selected-environment.d.ts +18 -0
- package/dist/ai-service/agent/tools/app-environment/switch-selected-environment.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/app-environment/switch-selected-environment.js +61 -0
- package/dist/ai-service/agent/tools/app-environment/switch-selected-environment.js.map +1 -0
- package/dist/ai-service/agent/tools/build-capture-screenshot.js +1 -1
- package/dist/ai-service/agent/tools/build-install-packages.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-install-packages.js +21 -8
- package/dist/ai-service/agent/tools/build-install-packages.js.map +1 -1
- package/dist/ai-service/agent/tools/build-read-file.d.ts +87 -1
- package/dist/ai-service/agent/tools/build-read-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-read-file.js +453 -82
- package/dist/ai-service/agent/tools/build-read-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-write-file.d.ts +1 -0
- package/dist/ai-service/agent/tools/build-write-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-write-file.js +18 -2
- package/dist/ai-service/agent/tools/build-write-file.js.map +1 -1
- package/dist/ai-service/agent/tools/debug-cache.d.ts +11 -0
- package/dist/ai-service/agent/tools/debug-cache.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/debug-cache.js +62 -14
- package/dist/ai-service/agent/tools/debug-cache.js.map +1 -1
- package/dist/ai-service/agent/tools/index.d.ts +2 -1
- package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/index.js +2 -1
- package/dist/ai-service/agent/tools/index.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/metadata.d.ts +1 -0
- package/dist/ai-service/agent/tools/integrations/metadata.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/metadata.js +7 -2
- package/dist/ai-service/agent/tools/integrations/metadata.js.map +1 -1
- package/dist/ai-service/agent/tools/read-file-metrics.d.ts +30 -0
- package/dist/ai-service/agent/tools/read-file-metrics.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/read-file-metrics.js +158 -0
- package/dist/ai-service/agent/tools/read-file-metrics.js.map +1 -0
- package/dist/ai-service/agent/tools/subagent-isolation.d.ts +27 -0
- package/dist/ai-service/agent/tools/subagent-isolation.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/subagent-isolation.js +57 -0
- package/dist/ai-service/agent/tools/subagent-isolation.js.map +1 -0
- package/dist/ai-service/agent/tools.d.ts +4 -1
- package/dist/ai-service/agent/tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.js +51 -5
- package/dist/ai-service/agent/tools.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/download-attachments.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/download-attachments.js +1 -0
- package/dist/ai-service/agent/tools2/tools/download-attachments.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/start-test-run.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/start-test-run.js +14 -0
- package/dist/ai-service/agent/tools2/tools/start-test-run.js.map +1 -1
- package/dist/ai-service/agent/utils.d.ts.map +1 -1
- package/dist/ai-service/agent/utils.js +2 -2
- package/dist/ai-service/agent/utils.js.map +1 -1
- package/dist/ai-service/app-interface/filesystem/draft-manager.d.ts +2 -1
- package/dist/ai-service/app-interface/filesystem/draft-manager.d.ts.map +1 -1
- package/dist/ai-service/app-interface/filesystem/draft-manager.js +3 -0
- package/dist/ai-service/app-interface/filesystem/draft-manager.js.map +1 -1
- package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.d.ts +2 -1
- package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.d.ts.map +1 -1
- package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.js +13 -11
- package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.js.map +1 -1
- package/dist/ai-service/app-interface/filesystem/virtual-file-system.d.ts.map +1 -1
- package/dist/ai-service/app-interface/filesystem/virtual-file-system.js +1 -1
- package/dist/ai-service/app-interface/filesystem/virtual-file-system.js.map +1 -1
- package/dist/ai-service/app-interface/shell.d.ts +18 -9
- package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
- package/dist/ai-service/app-interface/shell.js +92 -112
- package/dist/ai-service/app-interface/shell.js.map +1 -1
- package/dist/ai-service/app-interface/typecheck-output-parser.d.ts +9 -0
- package/dist/ai-service/app-interface/typecheck-output-parser.d.ts.map +1 -0
- package/dist/ai-service/app-interface/typecheck-output-parser.js +21 -0
- package/dist/ai-service/app-interface/typecheck-output-parser.js.map +1 -0
- package/dist/ai-service/app-interface/vulnerability-gate.d.ts +5 -0
- package/dist/ai-service/app-interface/vulnerability-gate.d.ts.map +1 -1
- package/dist/ai-service/app-interface/vulnerability-gate.js +9 -2
- package/dist/ai-service/app-interface/vulnerability-gate.js.map +1 -1
- package/dist/ai-service/app-layout.d.ts +13 -0
- package/dist/ai-service/app-layout.d.ts.map +1 -0
- package/dist/ai-service/app-layout.js +25 -0
- package/dist/ai-service/app-layout.js.map +1 -0
- package/dist/ai-service/app-skills/manager.d.ts +2 -0
- package/dist/ai-service/app-skills/manager.d.ts.map +1 -1
- package/dist/ai-service/app-skills/manager.js +13 -6
- package/dist/ai-service/app-skills/manager.js.map +1 -1
- package/dist/ai-service/attachment-label-metrics.d.ts +5 -0
- package/dist/ai-service/attachment-label-metrics.d.ts.map +1 -0
- package/dist/ai-service/attachment-label-metrics.js +26 -0
- package/dist/ai-service/attachment-label-metrics.js.map +1 -0
- package/dist/ai-service/attachment-upload.d.ts.map +1 -1
- package/dist/ai-service/attachment-upload.js +6 -1
- package/dist/ai-service/attachment-upload.js.map +1 -1
- package/dist/ai-service/attachments/validate-prompt-attachments.d.ts +7 -0
- package/dist/ai-service/attachments/validate-prompt-attachments.d.ts.map +1 -0
- package/dist/ai-service/attachments/validate-prompt-attachments.js +96 -0
- package/dist/ai-service/attachments/validate-prompt-attachments.js.map +1 -0
- package/dist/ai-service/chat/chat-push-metrics.d.ts +17 -0
- package/dist/ai-service/chat/chat-push-metrics.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-push-metrics.js +45 -0
- package/dist/ai-service/chat/chat-push-metrics.js.map +1 -1
- package/dist/ai-service/chat/chat-session-store.d.ts +51 -0
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +181 -4
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/features.d.ts +32 -0
- package/dist/ai-service/features.d.ts.map +1 -1
- package/dist/ai-service/features.js +32 -0
- package/dist/ai-service/features.js.map +1 -1
- package/dist/ai-service/helper-system-ai-attributes.d.ts +1 -1
- package/dist/ai-service/helper-system-ai-attributes.d.ts.map +1 -1
- package/dist/ai-service/helper-system-ai-attributes.js.map +1 -1
- package/dist/ai-service/index.d.ts +19 -4
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +176 -23
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/llm/client.d.ts +9 -0
- package/dist/ai-service/llm/client.d.ts.map +1 -1
- package/dist/ai-service/llm/client.js +13 -43
- package/dist/ai-service/llm/client.js.map +1 -1
- package/dist/ai-service/llm/context-v2/adapter.d.ts +2 -0
- package/dist/ai-service/llm/context-v2/adapter.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/adapter.js +6 -0
- package/dist/ai-service/llm/context-v2/adapter.js.map +1 -1
- package/dist/ai-service/llm/context-v2/compaction/server-side.d.ts +8 -0
- package/dist/ai-service/llm/context-v2/compaction/server-side.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/compaction/server-side.js +8 -0
- package/dist/ai-service/llm/context-v2/compaction/server-side.js.map +1 -1
- package/dist/ai-service/llm/context-v2/context-component-partition.d.ts +24 -0
- package/dist/ai-service/llm/context-v2/context-component-partition.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/context-component-partition.js +222 -0
- package/dist/ai-service/llm/context-v2/context-component-partition.js.map +1 -0
- package/dist/ai-service/llm/context-v2/context-metrics.d.ts +9 -0
- package/dist/ai-service/llm/context-v2/context-metrics.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/context-metrics.js +40 -2
- package/dist/ai-service/llm/context-v2/context-metrics.js.map +1 -1
- package/dist/ai-service/llm/context-v2/context.d.ts +116 -4
- package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/context.js +276 -64
- package/dist/ai-service/llm/context-v2/context.js.map +1 -1
- package/dist/ai-service/llm/context-v2/conversation-context.d.ts +18 -0
- package/dist/ai-service/llm/context-v2/conversation-context.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/file-read-ledger.d.ts +218 -0
- package/dist/ai-service/llm/context-v2/file-read-ledger.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/file-read-ledger.js +275 -0
- package/dist/ai-service/llm/context-v2/file-read-ledger.js.map +1 -0
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js +5 -2
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js.map +1 -1
- package/dist/ai-service/llm/context-v2/token-tracker.d.ts +2 -0
- package/dist/ai-service/llm/context-v2/token-tracker.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/token-tracker.js +4 -0
- package/dist/ai-service/llm/context-v2/token-tracker.js.map +1 -1
- package/dist/ai-service/llm/context-v2/tool-schema-tokens.d.ts +22 -0
- package/dist/ai-service/llm/context-v2/tool-schema-tokens.d.ts.map +1 -0
- package/dist/ai-service/llm/context-v2/tool-schema-tokens.js +36 -0
- package/dist/ai-service/llm/context-v2/tool-schema-tokens.js.map +1 -0
- package/dist/ai-service/llm/context-v2/types.d.ts +8 -0
- package/dist/ai-service/llm/context-v2/types.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/types.js +48 -0
- package/dist/ai-service/llm/context-v2/types.js.map +1 -1
- package/dist/ai-service/llm/error.d.ts +2 -0
- package/dist/ai-service/llm/error.d.ts.map +1 -1
- package/dist/ai-service/llm/error.js +1 -0
- package/dist/ai-service/llm/error.js.map +1 -1
- package/dist/ai-service/llm/retry-exhaustion-reason.d.ts +2 -0
- package/dist/ai-service/llm/retry-exhaustion-reason.d.ts.map +1 -0
- package/dist/ai-service/llm/retry-exhaustion-reason.js +2 -0
- package/dist/ai-service/llm/retry-exhaustion-reason.js.map +1 -0
- package/dist/ai-service/llm/stream/errors.d.ts +6 -7
- package/dist/ai-service/llm/stream/errors.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/errors.js +7 -1
- package/dist/ai-service/llm/stream/errors.js.map +1 -1
- package/dist/ai-service/llm/stream/event-bus.d.ts +9 -1
- package/dist/ai-service/llm/stream/event-bus.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/event-bus.js.map +1 -1
- package/dist/ai-service/llm/stream/idle-monitor.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/idle-monitor.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/context.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/context.js +13 -0
- package/dist/ai-service/llm/stream/observers/context.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/llmobs.d.ts +14 -1
- package/dist/ai-service/llm/stream/observers/llmobs.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/llmobs.js +91 -7
- package/dist/ai-service/llm/stream/observers/llmobs.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/logging.d.ts +3 -1
- package/dist/ai-service/llm/stream/observers/logging.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/logging.js +73 -52
- package/dist/ai-service/llm/stream/observers/logging.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/retry-notification.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/retry-notification.js +16 -9
- package/dist/ai-service/llm/stream/observers/retry-notification.js.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.d.ts +5 -1
- package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.js +103 -12
- package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.d.ts +3 -1
- package/dist/ai-service/llm/stream/retry-engine.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.js +9 -0
- package/dist/ai-service/llm/stream/retry-engine.js.map +1 -1
- package/dist/ai-service/llm/stream/session.d.ts +8 -1
- package/dist/ai-service/llm/stream/session.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/session.js +19 -0
- package/dist/ai-service/llm/stream/session.js.map +1 -1
- package/dist/ai-service/llm/stream/types.d.ts +13 -0
- package/dist/ai-service/llm/stream/types.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/wait-state-tracker.d.ts +5 -14
- package/dist/ai-service/llm/stream/wait-state-tracker.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/wait-state-tracker.js +25 -0
- package/dist/ai-service/llm/stream/wait-state-tracker.js.map +1 -1
- package/dist/ai-service/mcp/embedded-playwright-mcp-server.js +8 -8
- package/dist/ai-service/mcp/embedded-playwright-mcp-server.js.map +1 -1
- package/dist/ai-service/policy-gate-remediation-usage.d.ts +2 -0
- package/dist/ai-service/policy-gate-remediation-usage.d.ts.map +1 -0
- package/dist/ai-service/policy-gate-remediation-usage.js +56 -0
- package/dist/ai-service/policy-gate-remediation-usage.js.map +1 -0
- package/dist/ai-service/prompts/summarize-destructive-migration.d.ts +12 -0
- package/dist/ai-service/prompts/summarize-destructive-migration.d.ts.map +1 -0
- package/dist/ai-service/prompts/summarize-destructive-migration.js +37 -0
- package/dist/ai-service/prompts/summarize-destructive-migration.js.map +1 -0
- package/dist/ai-service/recording/storage/session-recording-storage.js +2 -2
- package/dist/ai-service/recording/storage/session-recording-storage.js.map +1 -1
- package/dist/ai-service/security/secret-scanner-service.d.ts.map +1 -1
- package/dist/ai-service/security/secret-scanner-service.js +88 -23
- package/dist/ai-service/security/secret-scanner-service.js.map +1 -1
- package/dist/ai-service/skills/index.d.ts +0 -7
- package/dist/ai-service/skills/index.d.ts.map +1 -1
- package/dist/ai-service/skills/index.js +0 -9
- package/dist/ai-service/skills/index.js.map +1 -1
- package/dist/ai-service/skills/system/_registry.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/_registry.generated.js +4 -0
- package/dist/ai-service/skills/system/_registry.generated.js.map +1 -1
- package/dist/ai-service/skills/system/resolve.d.ts +2 -0
- package/dist/ai-service/skills/system/resolve.d.ts.map +1 -0
- package/dist/ai-service/skills/system/resolve.js +32 -0
- package/dist/ai-service/skills/system/resolve.js.map +1 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-legacy.generated.d.ts +2 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-legacy.generated.d.ts.map +1 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-legacy.generated.js +9 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-legacy.generated.js.map +1 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-sdk.generated.d.ts +2 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-sdk.generated.d.ts.map +1 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-sdk.generated.js +11 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-imports-sdk.generated.js.map +1 -0
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts +1 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js +16 -24
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js.map +1 -1
- package/dist/ai-service/skills/system/third-party-migration/skill.generated.d.ts +1 -1
- package/dist/ai-service/skills/system/third-party-migration/skill.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/third-party-migration/skill.generated.js +1 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts +11 -0
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js +7 -1
- package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.js +21 -0
- package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.js +32 -9
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/runtime-reviewing.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/runtime-reviewing.js +21 -2
- package/dist/ai-service/state-machine/handlers/runtime-reviewing.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/stable-peer.d.ts +11 -2
- package/dist/ai-service/state-machine/helpers/stable-peer.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/stable-peer.js +105 -18
- package/dist/ai-service/state-machine/helpers/stable-peer.js.map +1 -1
- package/dist/ai-service/state-machine/mocks.d.ts +3 -1
- package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
- package/dist/ai-service/state-machine/mocks.js +52 -13
- package/dist/ai-service/state-machine/mocks.js.map +1 -1
- package/dist/ai-service/tasks/peer-push.d.ts +3 -0
- package/dist/ai-service/tasks/peer-push.d.ts.map +1 -1
- package/dist/ai-service/tasks/peer-push.js +33 -0
- package/dist/ai-service/tasks/peer-push.js.map +1 -1
- package/dist/ai-service/util/call-peer.d.ts +2 -0
- package/dist/ai-service/util/call-peer.d.ts.map +1 -1
- package/dist/ai-service/util/call-peer.js +17 -4
- package/dist/ai-service/util/call-peer.js.map +1 -1
- package/dist/ai-service/util/line-ranges.d.ts +21 -0
- package/dist/ai-service/util/line-ranges.d.ts.map +1 -0
- package/dist/ai-service/util/line-ranges.js +36 -0
- package/dist/ai-service/util/line-ranges.js.map +1 -0
- package/dist/ai-service/util/peer-liveness.d.ts +1 -0
- package/dist/ai-service/util/peer-liveness.d.ts.map +1 -1
- package/dist/ai-service/util/peer-liveness.js +2 -0
- package/dist/ai-service/util/peer-liveness.js.map +1 -1
- package/dist/dev-server-ws-smoke-client.d.ts.map +1 -1
- package/dist/dev-server-ws-smoke-client.js +7 -0
- package/dist/dev-server-ws-smoke-client.js.map +1 -1
- package/dist/draft-interface.d.ts +8 -0
- package/dist/draft-interface.d.ts.map +1 -1
- package/dist/early-error-relay.d.ts +2 -0
- package/dist/early-error-relay.d.ts.map +1 -1
- package/dist/early-error-relay.js +7 -3
- package/dist/early-error-relay.js.map +1 -1
- package/dist/file-sync-vite-plugin.d.ts.map +1 -1
- package/dist/file-sync-vite-plugin.js +43 -15
- package/dist/file-sync-vite-plugin.js.map +1 -1
- package/dist/file-system-helpers.d.ts +2 -2
- package/dist/file-system-helpers.d.ts.map +1 -1
- package/dist/file-system-helpers.js +3 -3
- package/dist/file-system-helpers.js.map +1 -1
- package/dist/git-service/errors.d.ts +9 -0
- package/dist/git-service/errors.d.ts.map +1 -1
- package/dist/git-service/errors.js +15 -0
- package/dist/git-service/errors.js.map +1 -1
- package/dist/git-service/index.d.ts +2 -2
- package/dist/git-service/index.d.ts.map +1 -1
- package/dist/git-service/index.js +2 -2
- package/dist/git-service/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lock-service/activity-tracker.d.ts +5 -0
- package/dist/lock-service/activity-tracker.d.ts.map +1 -1
- package/dist/lock-service/activity-tracker.js +10 -0
- package/dist/lock-service/activity-tracker.js.map +1 -1
- package/dist/lock-service/index.d.ts +69 -4
- package/dist/lock-service/index.d.ts.map +1 -1
- package/dist/lock-service/index.js +139 -29
- package/dist/lock-service/index.js.map +1 -1
- package/dist/migration-templates/app-fullstack/client/components/ui/accordion.tsx +9 -65
- package/dist/migration-templates/app-fullstack/client/components/ui/area-chart.tsx +36 -156
- package/dist/migration-templates/app-fullstack/client/components/ui/aspect-ratio.tsx +1 -5
- package/dist/migration-templates/app-fullstack/client/components/ui/avatar.tsx +4 -18
- package/dist/migration-templates/app-fullstack/client/components/ui/badge.tsx +6 -29
- package/dist/migration-templates/app-fullstack/client/components/ui/bar-chart.tsx +41 -167
- package/dist/migration-templates/app-fullstack/client/components/ui/breadcrumb.tsx +1 -4
- package/dist/migration-templates/app-fullstack/client/components/ui/button.tsx +5 -64
- package/dist/migration-templates/app-fullstack/client/components/ui/calendar.tsx +6 -42
- package/dist/migration-templates/app-fullstack/client/components/ui/card.tsx +1 -4
- package/dist/migration-templates/app-fullstack/client/components/ui/checkbox.tsx +4 -29
- package/dist/migration-templates/app-fullstack/client/components/ui/date-range-picker.tsx +13 -154
- package/dist/migration-templates/app-fullstack/client/components/ui/dialog.tsx +7 -34
- package/dist/migration-templates/app-fullstack/client/components/ui/file-dropzone.tsx +12 -95
- package/dist/migration-templates/app-fullstack/client/components/ui/file-input.tsx +12 -73
- package/dist/migration-templates/app-fullstack/client/components/ui/hover-card.tsx +10 -66
- package/dist/migration-templates/app-fullstack/client/components/ui/icon.tsx +3 -16
- package/dist/migration-templates/app-fullstack/client/components/ui/image.tsx +4 -16
- package/dist/migration-templates/app-fullstack/client/components/ui/input.tsx +18 -159
- package/dist/migration-templates/app-fullstack/client/components/ui/label.tsx +1 -4
- package/dist/migration-templates/app-fullstack/client/components/ui/line-chart.tsx +32 -148
- package/dist/migration-templates/app-fullstack/client/components/ui/link.tsx +4 -24
- package/dist/migration-templates/app-fullstack/client/components/ui/navigation-menu.tsx +3 -24
- package/dist/migration-templates/app-fullstack/client/components/ui/pagination.tsx +4 -24
- package/dist/migration-templates/app-fullstack/client/components/ui/pie-chart.tsx +28 -142
- package/dist/migration-templates/app-fullstack/client/components/ui/popover.tsx +9 -61
- package/dist/migration-templates/app-fullstack/client/components/ui/progress.tsx +2 -11
- package/dist/migration-templates/app-fullstack/client/components/ui/radar-chart.tsx +37 -171
- package/dist/migration-templates/app-fullstack/client/components/ui/radial-chart.tsx +50 -202
- package/dist/migration-templates/app-fullstack/client/components/ui/select.tsx +5 -35
- package/dist/migration-templates/app-fullstack/client/components/ui/separator.tsx +1 -8
- package/dist/migration-templates/app-fullstack/client/components/ui/sheet.tsx +7 -40
- package/dist/migration-templates/app-fullstack/client/components/ui/sidebar.tsx +3 -35
- package/dist/migration-templates/app-fullstack/client/components/ui/slider.tsx +11 -95
- package/dist/migration-templates/app-fullstack/client/components/ui/switch.tsx +5 -32
- package/dist/migration-templates/app-fullstack/client/components/ui/textarea.tsx +13 -90
- package/dist/migration-templates/app-fullstack/client/components/ui/toggle-group.tsx +11 -75
- package/dist/migration-templates/app-fullstack/client/components/ui/toggle.tsx +8 -70
- package/dist/migration-templates/app-fullstack/client/components/ui/tooltip.tsx +9 -62
- package/dist/parsing/imports.d.ts +22 -0
- package/dist/parsing/imports.d.ts.map +1 -1
- package/dist/parsing/imports.js +71 -0
- package/dist/parsing/imports.js.map +1 -1
- package/dist/reconnect-guard-plugin.d.ts +53 -0
- package/dist/reconnect-guard-plugin.d.ts.map +1 -0
- package/dist/reconnect-guard-plugin.js +203 -0
- package/dist/reconnect-guard-plugin.js.map +1 -0
- package/dist/resolver.d.ts +2 -1
- package/dist/resolver.d.ts.map +1 -1
- package/dist/resolver.js +4 -6
- package/dist/resolver.js.map +1 -1
- package/dist/router-parser-metrics.d.ts +2 -1
- package/dist/router-parser-metrics.d.ts.map +1 -1
- package/dist/router-parser-metrics.js.map +1 -1
- package/dist/router-parser.d.ts +10 -1
- package/dist/router-parser.d.ts.map +1 -1
- package/dist/router-parser.js +306 -69
- package/dist/router-parser.js.map +1 -1
- package/dist/scan-scope-merge-metrics.d.ts +2 -0
- package/dist/scan-scope-merge-metrics.d.ts.map +1 -0
- package/dist/scan-scope-merge-metrics.js +18 -0
- package/dist/scan-scope-merge-metrics.js.map +1 -0
- package/dist/scan-scope-merge.d.ts +2 -2
- package/dist/scan-scope-merge.d.ts.map +1 -1
- package/dist/scan-scope-merge.js +64 -14
- package/dist/scan-scope-merge.js.map +1 -1
- package/dist/server-rpc/index.d.ts.map +1 -1
- package/dist/server-rpc/index.js +12 -2
- package/dist/server-rpc/index.js.map +1 -1
- package/dist/socket-manager.d.ts +1 -1
- package/dist/socket-manager.d.ts.map +1 -1
- package/dist/socket-manager.js +276 -15
- package/dist/socket-manager.js.map +1 -1
- package/dist/sync-service/download.js +2 -2
- package/dist/sync-service/download.js.map +1 -1
- package/dist/sync-service/index.d.ts +95 -22
- package/dist/sync-service/index.d.ts.map +1 -1
- package/dist/sync-service/index.js +402 -56
- package/dist/sync-service/index.js.map +1 -1
- package/dist/sync-service/page-reference-guard.d.ts +17 -0
- package/dist/sync-service/page-reference-guard.d.ts.map +1 -0
- package/dist/sync-service/page-reference-guard.js +170 -0
- package/dist/sync-service/page-reference-guard.js.map +1 -0
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +16 -2
- package/dist/util.js.map +1 -1
- package/package.json +15 -14
package/dist/ai-service/index.js
CHANGED
|
@@ -31,6 +31,7 @@ import { NpmPackageLookup } from "./app-interface/npm-package-lookup.js";
|
|
|
31
31
|
import { NpmRegistryClient, createDiskRegistryPolicyStore, } from "./app-interface/npm-registry.js";
|
|
32
32
|
import { AppShell } from "./app-interface/shell.js";
|
|
33
33
|
import { AppSkillsManager } from "./app-skills/manager.js";
|
|
34
|
+
import { recordAttachmentLabelTruncated } from "./attachment-label-metrics.js";
|
|
34
35
|
import { parseDataUrl } from "./attachments/parse-data-url.js";
|
|
35
36
|
import { isUploadedAttachment, toUploadedAttachmentContentPart, } from "./attachments/uploaded-content-part.js";
|
|
36
37
|
import { ChatSessionStore } from "./chat/chat-session-store.js";
|
|
@@ -71,9 +72,11 @@ import { isMigrationSessionActive } from "./migration-session-active.js";
|
|
|
71
72
|
import { hasSettledNormalMigrationTurn, recordMigrationTurnDispatched, recordMigrationTurnSettled, } from "./migration-turns-log.js";
|
|
72
73
|
import { recordPolicyAgentExecution, } from "./policy-agent-metrics.js";
|
|
73
74
|
import { classifyPolicyGateError } from "./policy-gate-error.js";
|
|
75
|
+
import { buildPolicyGateRemediationUsageMetadata } from "./policy-gate-remediation-usage.js";
|
|
74
76
|
import { policyGateStreamPartToAgentStep } from "./policy-gate-step.js";
|
|
75
77
|
import { ClarkProfiler } from "./profiler/clark-profiler.js";
|
|
76
78
|
import { buildSummarizeApiUsagePrompt } from "./prompts/summarize-api-usage.js";
|
|
79
|
+
import { buildSummarizeDestructiveMigrationPrompt } from "./prompts/summarize-destructive-migration.js";
|
|
77
80
|
import { checkAiQuota } from "./quota-client.js";
|
|
78
81
|
import { RecordingManager, createRecordingFetch } from "./recording/index.js";
|
|
79
82
|
import { RequestDeduplicator } from "./request-deduplicator.js";
|
|
@@ -141,6 +144,18 @@ export { isSdkApiTemplate } from "./sdk-api-templates.js";
|
|
|
141
144
|
export function buildLastKnownPolicyStore(opts) {
|
|
142
145
|
return createDiskRegistryPolicyStore(opts);
|
|
143
146
|
}
|
|
147
|
+
// A label + one-sentence insight only needs the head of a file.
|
|
148
|
+
const LABEL_ATTACHMENT_TRUNCATION_CHARS = 50_000;
|
|
149
|
+
// Back off one char if the cut point falls inside a UTF-16 surrogate pair,
|
|
150
|
+
// so we never emit a lone unpaired surrogate to the model.
|
|
151
|
+
function truncateTextForLabeling(content, maxChars) {
|
|
152
|
+
let end = maxChars;
|
|
153
|
+
const code = content.charCodeAt(end - 1);
|
|
154
|
+
if (code >= 0xd800 && code <= 0xdbff) {
|
|
155
|
+
end -= 1;
|
|
156
|
+
}
|
|
157
|
+
return content.slice(0, end);
|
|
158
|
+
}
|
|
144
159
|
const MAX_POLICY_GATE_STREAM_ERRORS = 5;
|
|
145
160
|
const MAX_POLICY_GATE_STREAM_ERROR_ARRAY_LENGTH = 10;
|
|
146
161
|
const MAX_POLICY_GATE_STREAM_ERROR_FIELD_LENGTH = 500;
|
|
@@ -599,9 +614,6 @@ export class AiService extends TracedEventEmitter {
|
|
|
599
614
|
/**
|
|
600
615
|
* Updates the JWT in Clark context.
|
|
601
616
|
*
|
|
602
|
-
* A token that expires before the one already installed is ignored, because
|
|
603
|
-
* primes can arrive out of order.
|
|
604
|
-
*
|
|
605
617
|
* @returns whether the pod ended up holding a usable token. A rejected token
|
|
606
618
|
* used to look exactly like one that landed, and like one that was never
|
|
607
619
|
* sent at all, which is why a run could die holding a credential nobody
|
|
@@ -613,11 +625,6 @@ export class AiService extends TracedEventEmitter {
|
|
|
613
625
|
getLogger().warn(`[ai-service] Rejected an inference JWT (present: ${jwtDetails.present}, hasFederatedToken: ${jwtDetails.hasFederatedToken}, scope: ${jwtDetails.scope ?? "none"})`);
|
|
614
626
|
return false;
|
|
615
627
|
}
|
|
616
|
-
// Whichever prime finishes last wins. Two overlapping browser
|
|
617
|
-
// connections can therefore leave the pod holding a token one refresh
|
|
618
|
-
// generation old, which the next refresh repairs because primes on a
|
|
619
|
-
// single connection run one at a time and newest-last. Deciding which
|
|
620
|
-
// connection owns the pod is ENG-6236.
|
|
621
628
|
getLogger().info("[ai-service] Accepted a new inference JWT");
|
|
622
629
|
this.clark.updateContext({ jwt });
|
|
623
630
|
const llmConfig = this.lastMigrationTurnCredentials?.llmConfig ??
|
|
@@ -2331,10 +2338,15 @@ export class AiService extends TracedEventEmitter {
|
|
|
2331
2338
|
outcomeDedupeKey: resolvePromptRequestDedupeKey(request),
|
|
2332
2339
|
coreModel: request.llmConfig?.coreModel,
|
|
2333
2340
|
});
|
|
2341
|
+
const requestUsageMetadata = request.importSource
|
|
2342
|
+
? {
|
|
2343
|
+
origin: CLARK_USAGE_ORIGIN.app_migration,
|
|
2344
|
+
source: request.importSource,
|
|
2345
|
+
surface: "app",
|
|
2346
|
+
}
|
|
2347
|
+
: buildPolicyGateRemediationUsageMetadata(request.policyGateRemediation);
|
|
2334
2348
|
const generateStreakEligible = resolvePromptMetricLabels({
|
|
2335
|
-
usageMetadata:
|
|
2336
|
-
? { origin: CLARK_USAGE_ORIGIN.app_migration }
|
|
2337
|
-
: undefined,
|
|
2349
|
+
usageMetadata: requestUsageMetadata,
|
|
2338
2350
|
}).streakEligible;
|
|
2339
2351
|
// The id is now recorded. If anything below throws before generation is
|
|
2340
2352
|
// actually kicked off (the `transitionTo` USER_SENT_PROMPT), evict it so a
|
|
@@ -2372,17 +2384,10 @@ export class AiService extends TracedEventEmitter {
|
|
|
2372
2384
|
baseCommitId,
|
|
2373
2385
|
isInterruptAbort: undefined,
|
|
2374
2386
|
userInitiatedPromptAbort: undefined,
|
|
2375
|
-
//
|
|
2376
|
-
//
|
|
2377
|
-
//
|
|
2378
|
-
|
|
2379
|
-
usageMetadata: request.importSource
|
|
2380
|
-
? {
|
|
2381
|
-
origin: CLARK_USAGE_ORIGIN.app_migration,
|
|
2382
|
-
source: request.importSource,
|
|
2383
|
-
surface: "app",
|
|
2384
|
-
}
|
|
2385
|
-
: undefined,
|
|
2387
|
+
// Explicit per-turn attribution replaces the default in-app Clark
|
|
2388
|
+
// metadata. Both migration and policy remediation still use the app
|
|
2389
|
+
// surface, while the origin and IDs make their spend queryable.
|
|
2390
|
+
usageMetadata: requestUsageMetadata,
|
|
2386
2391
|
useMockGeneration: request.mockGeneration ?? false,
|
|
2387
2392
|
planContext: mergePlanContexts(context.planContext, request.planContext),
|
|
2388
2393
|
browserContext: request.browserContext,
|
|
@@ -2678,6 +2683,96 @@ export class AiService extends TracedEventEmitter {
|
|
|
2678
2683
|
});
|
|
2679
2684
|
}
|
|
2680
2685
|
}
|
|
2686
|
+
async handleAiSummarizeDestructiveMigration(request) {
|
|
2687
|
+
if (this.clark.state === ClarkStateNames.Dead) {
|
|
2688
|
+
throw new Error("Service is unavailable");
|
|
2689
|
+
}
|
|
2690
|
+
const peer = this.clark.context.peer;
|
|
2691
|
+
try {
|
|
2692
|
+
const wantedFiles = [
|
|
2693
|
+
...new Set(request.findings.map((finding) => finding.fileName)),
|
|
2694
|
+
];
|
|
2695
|
+
const migrationFiles = {};
|
|
2696
|
+
if (wantedFiles.length > 0) {
|
|
2697
|
+
let sqlPaths = [];
|
|
2698
|
+
try {
|
|
2699
|
+
sqlPaths = await this.appShell.listFiles(["**/*.sql"]);
|
|
2700
|
+
}
|
|
2701
|
+
catch {
|
|
2702
|
+
sqlPaths = [];
|
|
2703
|
+
}
|
|
2704
|
+
for (const fileName of wantedFiles) {
|
|
2705
|
+
const match = sqlPaths.find((sqlPath) => sqlPath === fileName || sqlPath.endsWith(`/${fileName}`));
|
|
2706
|
+
if (match === undefined) {
|
|
2707
|
+
continue;
|
|
2708
|
+
}
|
|
2709
|
+
try {
|
|
2710
|
+
migrationFiles[fileName] = await this.appShell.readFile(match);
|
|
2711
|
+
}
|
|
2712
|
+
catch {
|
|
2713
|
+
// The excerpt on the finding is enough when the file cannot be read.
|
|
2714
|
+
}
|
|
2715
|
+
}
|
|
2716
|
+
}
|
|
2717
|
+
const prompt = buildSummarizeDestructiveMigrationPrompt({
|
|
2718
|
+
findings: request.findings,
|
|
2719
|
+
migrationFiles: Object.keys(migrationFiles).length > 0 ? migrationFiles : undefined,
|
|
2720
|
+
scanUnavailable: request.scanUnavailable,
|
|
2721
|
+
});
|
|
2722
|
+
const llmConfig = request.llmConfig
|
|
2723
|
+
? {
|
|
2724
|
+
...request.llmConfig,
|
|
2725
|
+
interleavedThinking: false,
|
|
2726
|
+
thinkingEnabled: false,
|
|
2727
|
+
}
|
|
2728
|
+
: undefined;
|
|
2729
|
+
const { providerOptions, headers } = processLLMConfig(llmConfig, 2000, `AI Summarize Destructive Migration`);
|
|
2730
|
+
const llmProviderSettings = this.getLLMProviderSettings(llmConfig);
|
|
2731
|
+
const llmProvider = createLLMProvider(llmProviderSettings, () => this.requireProvidedInferenceJwt(request.jwt, "live-edit request"), llmConfig, () => helperSystemAiAttributes({
|
|
2732
|
+
applicationId: this.config.applicationId,
|
|
2733
|
+
sessionId: this.sessionId,
|
|
2734
|
+
triggerType: AiSystemTriggerType.DESTRUCTIVE_MIGRATION_SUMMARY,
|
|
2735
|
+
}));
|
|
2736
|
+
const { model, providerConfig } = llmProvider.modelForTask("explain");
|
|
2737
|
+
await traceLLM("handleAiSummarizeDestructiveMigration", model.modelId, model.provider, async () => {
|
|
2738
|
+
try {
|
|
2739
|
+
const streamResult = await this.llmClient.streamText({
|
|
2740
|
+
model,
|
|
2741
|
+
user: { role: "user", content: prompt },
|
|
2742
|
+
providerOptions,
|
|
2743
|
+
headers,
|
|
2744
|
+
providerConfig,
|
|
2745
|
+
enableFallback: llmConfig?.unifiedProviderEnabled ?? false,
|
|
2746
|
+
});
|
|
2747
|
+
for await (const chunk of streamResult.textStream) {
|
|
2748
|
+
if (chunk) {
|
|
2749
|
+
await peer.call.aiPushDestructiveMigrationSummary({
|
|
2750
|
+
summaryKey: request.summaryKey,
|
|
2751
|
+
delta: chunk,
|
|
2752
|
+
});
|
|
2753
|
+
}
|
|
2754
|
+
}
|
|
2755
|
+
await peer.call.aiPushDestructiveMigrationSummary({
|
|
2756
|
+
summaryKey: request.summaryKey,
|
|
2757
|
+
isComplete: true,
|
|
2758
|
+
});
|
|
2759
|
+
}
|
|
2760
|
+
catch (error) {
|
|
2761
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
2762
|
+
getLogger().error(`[ai-service] streamText error for destructive migration summary: ${errorMsg}`);
|
|
2763
|
+
throw error;
|
|
2764
|
+
}
|
|
2765
|
+
}, {}, llmobs);
|
|
2766
|
+
}
|
|
2767
|
+
catch (error) {
|
|
2768
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
2769
|
+
getLogger().error(`[ai-service] Error summarizing destructive migrations: ${errorMessage}`, getErrorMeta(error));
|
|
2770
|
+
await peer.call.aiPushDestructiveMigrationSummary({
|
|
2771
|
+
summaryKey: request.summaryKey,
|
|
2772
|
+
error: "Failed to generate destructive migration summary",
|
|
2773
|
+
});
|
|
2774
|
+
}
|
|
2775
|
+
}
|
|
2681
2776
|
async handleAiLabelAttachment(request) {
|
|
2682
2777
|
const logger = getLogger();
|
|
2683
2778
|
const startTime = Date.now();
|
|
@@ -2824,9 +2919,20 @@ export class AiService extends TracedEventEmitter {
|
|
|
2824
2919
|
.replace(/'/g, "'")
|
|
2825
2920
|
.replace(/</g, "<")
|
|
2826
2921
|
.replace(/>/g, ">");
|
|
2922
|
+
// Cap content sent for labeling only; the model never sees the rest.
|
|
2923
|
+
const isTruncated = normalizedTextAttachment.content.length >
|
|
2924
|
+
LABEL_ATTACHMENT_TRUNCATION_CHARS;
|
|
2925
|
+
const content = isTruncated
|
|
2926
|
+
? truncateTextForLabeling(normalizedTextAttachment.content, LABEL_ATTACHMENT_TRUNCATION_CHARS) + "\n...[truncated]"
|
|
2927
|
+
: normalizedTextAttachment.content;
|
|
2928
|
+
if (isTruncated) {
|
|
2929
|
+
recordAttachmentLabelTruncated({
|
|
2930
|
+
mimeType: normalizedTextAttachment.mimeType,
|
|
2931
|
+
});
|
|
2932
|
+
}
|
|
2827
2933
|
return {
|
|
2828
2934
|
type: "text",
|
|
2829
|
-
text: `<${normalizedTextAttachment.tagName}_file name="${sanitizedFileName}" mimeType="${sanitizedMimeType}">\n${
|
|
2935
|
+
text: `<${normalizedTextAttachment.tagName}_file name="${sanitizedFileName}" mimeType="${sanitizedMimeType}">\n${content}\n</${normalizedTextAttachment.tagName}_file>`,
|
|
2830
2936
|
};
|
|
2831
2937
|
}
|
|
2832
2938
|
throw new Error(`Unsupported attachment type: ${attachment.type}`);
|
|
@@ -3811,6 +3917,13 @@ export class AiService extends TracedEventEmitter {
|
|
|
3811
3917
|
if (this.taskStore) {
|
|
3812
3918
|
this.pendingTaskResyncPeerIds.add(peerId);
|
|
3813
3919
|
}
|
|
3920
|
+
// 4. Close out tool calls the transcript still reports as running but
|
|
3921
|
+
// that no process is executing (ENG-6785). Does not gate the connect
|
|
3922
|
+
// handshake: the peer is already bound, and the reconcile is several
|
|
3923
|
+
// RPCs long. Reconnect `getMessages({ force })` joins this promise so
|
|
3924
|
+
// the open tab's history reload includes the repair. A failed load or
|
|
3925
|
+
// push retries on a later bind.
|
|
3926
|
+
void this.chatSessionStore.reconcileAbandonedToolCalls();
|
|
3814
3927
|
this.tryAutoDispatchMigrationTurnIfReady();
|
|
3815
3928
|
}
|
|
3816
3929
|
/**
|
|
@@ -3939,6 +4052,46 @@ export class AiService extends TracedEventEmitter {
|
|
|
3939
4052
|
}
|
|
3940
4053
|
this.clearPeerConnection();
|
|
3941
4054
|
}
|
|
4055
|
+
/**
|
|
4056
|
+
* A lifecycle transition failed after potentially replacing the transport.
|
|
4057
|
+
* The socket manager no longer has a trustworthy owner to disconnect by ID.
|
|
4058
|
+
* Drop the actual binding even if context disposal fails; the caller must
|
|
4059
|
+
* retry this cleanup successfully before allowing another editor to bind.
|
|
4060
|
+
*/
|
|
4061
|
+
resetEditorConnection() {
|
|
4062
|
+
try {
|
|
4063
|
+
const contextId = this.getContextId();
|
|
4064
|
+
if (contextId)
|
|
4065
|
+
this.contextManagerV2.clearContext(contextId);
|
|
4066
|
+
}
|
|
4067
|
+
finally {
|
|
4068
|
+
this.pendingTaskResyncPeerIds.clear();
|
|
4069
|
+
this.authenticatedPeerUserId = undefined;
|
|
4070
|
+
this.authenticatedPeerId = undefined;
|
|
4071
|
+
this.clearPeerConnection();
|
|
4072
|
+
this.stablePeer.closeAndRejectPendingRequests();
|
|
4073
|
+
}
|
|
4074
|
+
}
|
|
4075
|
+
/**
|
|
4076
|
+
* The bound editor's transport is gone, but a reconnect for the same peer
|
|
4077
|
+
* is already open and on its way to proving its authorization. The
|
|
4078
|
+
* conversation stays: only the socket is dropped, so calls made in the
|
|
4079
|
+
* meantime queue on the StablePeer and flush when that reconnect binds,
|
|
4080
|
+
* instead of being written into a dead connection. The peer identity is
|
|
4081
|
+
* kept, so the full teardown in `handleUserDisconnected` still recognizes
|
|
4082
|
+
* the peer when the last socket for it closes.
|
|
4083
|
+
*/
|
|
4084
|
+
detachPeerTransport(peerId) {
|
|
4085
|
+
if (this.stablePeer.peerId !== peerId) {
|
|
4086
|
+
this.getLogger().debug("[ai-service] Ignored detach for a different peer", {
|
|
4087
|
+
"peer.id": peerId,
|
|
4088
|
+
"peer.bound_id": this.stablePeer.peerId,
|
|
4089
|
+
});
|
|
4090
|
+
return;
|
|
4091
|
+
}
|
|
4092
|
+
this.getLogger().info(`[ai-service] Editor transport detached while peer ${peerId} reconnects`);
|
|
4093
|
+
this.stablePeer.detachTransport();
|
|
4094
|
+
}
|
|
3942
4095
|
clearPeerConnection() {
|
|
3943
4096
|
this.getLogger().info(`[ai-service] Clearing peer connection`);
|
|
3944
4097
|
// The StablePeer reference on `clark.context.peer` stays — we only mark
|