@superblocksteam/vite-plugin-file-sync 2.0.154 → 2.0.155-next.1
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/prompts/build-base-system-prompt.d.ts +23 -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 +84 -29
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
- package/dist/ai-service/agent/subagents/apis/prompt-builder.d.ts +2 -0
- package/dist/ai-service/agent/subagents/apis/prompt-builder.d.ts.map +1 -1
- package/dist/ai-service/agent/subagents/apis/prompt-builder.js +11 -2
- package/dist/ai-service/agent/subagents/apis/prompt-builder.js.map +1 -1
- package/dist/ai-service/agent/tool-permission-delivery.d.ts.map +1 -1
- package/dist/ai-service/agent/tool-permission-delivery.js +4 -0
- package/dist/ai-service/agent/tool-permission-delivery.js.map +1 -1
- package/dist/ai-service/agent/tools/app-environment/update-app-environment.d.ts +29 -0
- package/dist/ai-service/agent/tools/app-environment/update-app-environment.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/app-environment/update-app-environment.js +387 -0
- package/dist/ai-service/agent/tools/app-environment/update-app-environment.js.map +1 -0
- package/dist/ai-service/agent/tools/databases/destructive-migration-prompt.d.ts +58 -0
- package/dist/ai-service/agent/tools/databases/destructive-migration-prompt.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/databases/destructive-migration-prompt.js +258 -0
- package/dist/ai-service/agent/tools/databases/destructive-migration-prompt.js.map +1 -0
- package/dist/ai-service/agent/tools/databases/dev-database-tasks.d.ts +18 -6
- package/dist/ai-service/agent/tools/databases/dev-database-tasks.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/databases/dev-database-tasks.js +203 -51
- package/dist/ai-service/agent/tools/databases/dev-database-tasks.js.map +1 -1
- package/dist/ai-service/agent/tools/databases/dev-database-tools.d.ts +12 -10
- package/dist/ai-service/agent/tools/databases/dev-database-tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/databases/dev-database-tools.js +29 -8
- package/dist/ai-service/agent/tools/databases/dev-database-tools.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/metadata.d.ts +3 -0
- package/dist/ai-service/agent/tools/integrations/metadata.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/metadata.js +10 -2
- package/dist/ai-service/agent/tools/integrations/metadata.js.map +1 -1
- package/dist/ai-service/agent/tools.d.ts +9 -1
- package/dist/ai-service/agent/tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.js +25 -1
- package/dist/ai-service/agent/tools.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts +8 -0
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +104 -14
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
- package/dist/ai-service/app-interface/npm-registry.d.ts +9 -0
- package/dist/ai-service/app-interface/npm-registry.d.ts.map +1 -1
- package/dist/ai-service/app-interface/npm-registry.js +50 -1
- package/dist/ai-service/app-interface/npm-registry.js.map +1 -1
- package/dist/ai-service/app-skills/helpers.d.ts.map +1 -1
- package/dist/ai-service/app-skills/helpers.js +1 -0
- package/dist/ai-service/app-skills/helpers.js.map +1 -1
- package/dist/ai-service/dev-database-client.d.ts +3 -1
- package/dist/ai-service/dev-database-client.d.ts.map +1 -1
- package/dist/ai-service/dev-database-client.js.map +1 -1
- package/dist/ai-service/features.d.ts +24 -0
- package/dist/ai-service/features.d.ts.map +1 -1
- package/dist/ai-service/features.js +24 -0
- package/dist/ai-service/features.js.map +1 -1
- package/dist/ai-service/helper-system-ai-attributes.d.ts +19 -0
- package/dist/ai-service/helper-system-ai-attributes.d.ts.map +1 -0
- package/dist/ai-service/helper-system-ai-attributes.js +17 -0
- package/dist/ai-service/helper-system-ai-attributes.js.map +1 -0
- package/dist/ai-service/index.d.ts +58 -2
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +186 -34
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/integrations/store.d.ts +3 -0
- package/dist/ai-service/integrations/store.d.ts.map +1 -1
- package/dist/ai-service/integrations/store.js +3 -0
- package/dist/ai-service/integrations/store.js.map +1 -1
- package/dist/ai-service/live-edit-events/bridge.d.ts +21 -0
- package/dist/ai-service/live-edit-events/bridge.d.ts.map +1 -0
- package/dist/ai-service/live-edit-events/bridge.js +52 -0
- package/dist/ai-service/live-edit-events/bridge.js.map +1 -0
- package/dist/ai-service/live-edit-events/forwarder.d.ts +158 -0
- package/dist/ai-service/live-edit-events/forwarder.d.ts.map +1 -0
- package/dist/ai-service/live-edit-events/forwarder.js +403 -0
- package/dist/ai-service/live-edit-events/forwarder.js.map +1 -0
- package/dist/ai-service/state-machine/clark-fsm.d.ts +14 -0
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/awaiting-user.js +4 -0
- package/dist/ai-service/state-machine/handlers/awaiting-user.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/idle.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/idle.js +3 -0
- package/dist/ai-service/state-machine/handlers/idle.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.d.ts +2 -0
- package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.js +93 -3
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/headless-turn-lifecycle.d.ts +27 -0
- package/dist/ai-service/state-machine/helpers/headless-turn-lifecycle.d.ts.map +1 -0
- package/dist/ai-service/state-machine/helpers/headless-turn-lifecycle.js +34 -0
- package/dist/ai-service/state-machine/helpers/headless-turn-lifecycle.js.map +1 -0
- package/dist/ai-service/state-machine/helpers/peer.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/peer.js +24 -0
- package/dist/ai-service/state-machine/helpers/peer.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/policy-gate-usage-metrics.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/policy-gate-usage-metrics.js +4 -0
- package/dist/ai-service/state-machine/helpers/policy-gate-usage-metrics.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/prompt-request-metrics.d.ts +103 -1
- package/dist/ai-service/state-machine/helpers/prompt-request-metrics.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/prompt-request-metrics.js +263 -3
- package/dist/ai-service/state-machine/helpers/prompt-request-metrics.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/stable-peer.d.ts +143 -0
- package/dist/ai-service/state-machine/helpers/stable-peer.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/stable-peer.js +220 -2
- package/dist/ai-service/state-machine/helpers/stable-peer.js.map +1 -1
- package/dist/ai-service/tasks/peer-push.d.ts.map +1 -1
- package/dist/ai-service/tasks/peer-push.js +7 -0
- package/dist/ai-service/tasks/peer-push.js.map +1 -1
- package/dist/dev-server-ws-smoke-client.d.ts.map +1 -1
- package/dist/dev-server-ws-smoke-client.js +1 -0
- package/dist/dev-server-ws-smoke-client.js.map +1 -1
- package/dist/file-sync-vite-plugin.d.ts.map +1 -1
- package/dist/file-sync-vite-plugin.js +9 -2
- package/dist/file-sync-vite-plugin.js.map +1 -1
- package/dist/lock-service/activity-tracker.d.ts.map +1 -1
- package/dist/lock-service/activity-tracker.js +5 -6
- package/dist/lock-service/activity-tracker.js.map +1 -1
- package/dist/lock-service/index.d.ts +56 -1
- package/dist/lock-service/index.d.ts.map +1 -1
- package/dist/lock-service/index.js +158 -13
- package/dist/lock-service/index.js.map +1 -1
- package/dist/rename-manager.d.ts.map +1 -1
- package/dist/rename-manager.js +2 -6
- package/dist/rename-manager.js.map +1 -1
- package/dist/socket-manager.d.ts +64 -0
- package/dist/socket-manager.d.ts.map +1 -1
- package/dist/socket-manager.js +236 -51
- package/dist/socket-manager.js.map +1 -1
- package/dist/util/logger.d.ts +2 -0
- package/dist/util/logger.d.ts.map +1 -1
- package/dist/util/logger.js +5 -0
- package/dist/util/logger.js.map +1 -1
- package/package.json +9 -9
- package/dist/parsing/entity/to-code-entity.d.ts +0 -3
- package/dist/parsing/entity/to-code-entity.d.ts.map +0 -1
- package/dist/parsing/entity/to-code-entity.js +0 -77
- package/dist/parsing/entity/to-code-entity.js.map +0 -1
- package/dist/parsing/entity/to-value-entity.d.ts +0 -8
- package/dist/parsing/entity/to-value-entity.d.ts.map +0 -1
- package/dist/parsing/entity/to-value-entity.js +0 -129
- package/dist/parsing/entity/to-value-entity.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper-system-ai-attributes.d.ts","sourceRoot":"","sources":["../../src/ai-service/helper-system-ai-attributes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,KAAK,uBAAuB,GACxB,mBAAmB,CAAC,iBAAiB,GACrC,mBAAmB,CAAC,gBAAgB,GACpC,mBAAmB,CAAC,aAAa,CAAC;AAEtC;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,uBAAuB,CAAC;CACtC,GAAG,YAAY,CAMf"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Billing attributes for non-chat Clark helpers (error summary, API usage
|
|
3
|
+
* summary, attachment labeling).
|
|
4
|
+
*
|
|
5
|
+
* These must omit `prompt_id` so the AI proxy classifies them as system
|
|
6
|
+
* events (`AI_BILLING_SYSTEM`) and stamps `trigger_type`. Minting a
|
|
7
|
+
* random `prompt_id` previously made them look like untagged builder
|
|
8
|
+
* prompts in Snowflake.
|
|
9
|
+
*/
|
|
10
|
+
export function helperSystemAiAttributes(args) {
|
|
11
|
+
return {
|
|
12
|
+
application_id: args.applicationId,
|
|
13
|
+
session_id: args.sessionId,
|
|
14
|
+
trigger_type: args.triggerType,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=helper-system-ai-attributes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper-system-ai-attributes.js","sourceRoot":"","sources":["../../src/ai-service/helper-system-ai-attributes.ts"],"names":[],"mappings":"AAQA;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAIxC;IACC,OAAO;QACL,cAAc,EAAE,IAAI,CAAC,aAAa;QAClC,UAAU,EAAE,IAAI,CAAC,SAAS;QAC1B,YAAY,EAAE,IAAI,CAAC,WAAW;KAC/B,CAAC;AACJ,CAAC"}
|
|
@@ -14,6 +14,7 @@ import type { JudgeEvaluationOptions, JudgeEvaluationResult } from "./judge/judg
|
|
|
14
14
|
import type { ContextId } from "./llm/context-v2/types.js";
|
|
15
15
|
import { RecordingManager } from "./recording/index.js";
|
|
16
16
|
import type { BuildErrorPhase } from "./state-machine/clark-fsm.js";
|
|
17
|
+
import { CLARK_USAGE_ORIGIN } from "./state-machine/helpers/prompt-request-metrics.js";
|
|
17
18
|
import type { AiServiceConfig, AiServiceEvents, EditorClient, UserChange, ApiUpdate } from "./types.ts";
|
|
18
19
|
export { AiServiceFeatureFlags } from "./features.js";
|
|
19
20
|
export { getManagedNativeDbGateDenialReason, hasEditLifecycleCapability, isManagedNativeDbAvailableForClark, } from "./managed-native-db-availability.js";
|
|
@@ -53,7 +54,7 @@ interface MigrationUsageMetadata extends Record<string, unknown> {
|
|
|
53
54
|
applicationId: string;
|
|
54
55
|
branchName: string | undefined;
|
|
55
56
|
migrationSource: "superblocks_2_0";
|
|
56
|
-
origin:
|
|
57
|
+
origin: typeof CLARK_USAGE_ORIGIN.app_migration;
|
|
57
58
|
pendingSeedApiCount: number;
|
|
58
59
|
retryMode: "focused-debug" | "none";
|
|
59
60
|
surface: ClarkUsageSurface;
|
|
@@ -144,6 +145,16 @@ export declare class AiService extends TracedEventEmitter<AiServiceEvents> {
|
|
|
144
145
|
* non-optional once the AiService has been initialized.
|
|
145
146
|
*/
|
|
146
147
|
getNpmRegistryClient(): NpmRegistryClient;
|
|
148
|
+
/**
|
|
149
|
+
* Opens the relay that lets a Gateway-driven turn see what Clark is doing.
|
|
150
|
+
*
|
|
151
|
+
* The sandbox holds a socket to the editor, but a Gateway turn has no editor
|
|
152
|
+
* on the far end, so its caller would otherwise learn nothing until the turn
|
|
153
|
+
* ended. Where the deployment does not run this channel the environment is
|
|
154
|
+
* simply absent, and this leaves the relay closed rather than failing to
|
|
155
|
+
* start.
|
|
156
|
+
*/
|
|
157
|
+
private startLiveEditEventForwarding;
|
|
147
158
|
remediateDeclaredDependencies(): Promise<void>;
|
|
148
159
|
/**
|
|
149
160
|
* Injects git and sync services for the git tool (called by the plugin when native git is available).
|
|
@@ -477,6 +488,40 @@ export declare class AiService extends TracedEventEmitter<AiServiceEvents> {
|
|
|
477
488
|
*/
|
|
478
489
|
private buildDenialContinuationPrompt;
|
|
479
490
|
resolveGenerationStateForUi(): import("@superblocksteam/library-shared/types").AiGenerationStateSnapshot | undefined;
|
|
491
|
+
/**
|
|
492
|
+
* A gateway peer asked for a turn. Clark's pushes and tool callbacks for it
|
|
493
|
+
* are routed to that peer for as long as it is attached, without giving it
|
|
494
|
+
* the editor binding: a browser tab opening or closing mid-turn changes
|
|
495
|
+
* nothing about where the turn reports.
|
|
496
|
+
*
|
|
497
|
+
* `turnId` is the correlator the caller sent with the prompt, and is what
|
|
498
|
+
* lets that same caller reacquire this turn on a replacement socket.
|
|
499
|
+
* Returned so the caller can be told which turn it now owns; a turn started
|
|
500
|
+
* without one is reachable by this socket alone.
|
|
501
|
+
*/
|
|
502
|
+
beginHeadlessTurn(peer: EditorClient, peerId: string, turnId?: string): string | undefined;
|
|
503
|
+
/**
|
|
504
|
+
* A gateway peer offered the correlator of a turn in flight, which is what a
|
|
505
|
+
* reattach looks like: the peer that started the turn lost its socket, so the
|
|
506
|
+
* turn moves onto the replacement.
|
|
507
|
+
*
|
|
508
|
+
* Runs on every authorized gateway RPC, so the two uninteresting outcomes —
|
|
509
|
+
* the caller already owns the turn, or is talking about a turn that is not
|
|
510
|
+
* this one — are silent. Only an actual handover is worth a line.
|
|
511
|
+
*/
|
|
512
|
+
claimHeadlessTurn(peer: EditorClient, peerId: string, turnId?: string): void;
|
|
513
|
+
/**
|
|
514
|
+
* The prompt a turn was bound for never started, so there is no generation
|
|
515
|
+
* coming that could settle it. Scoped to the exact turn: a reattach or a
|
|
516
|
+
* later turn may already own routing.
|
|
517
|
+
*/
|
|
518
|
+
abandonHeadlessTurn(peerId: string, turnId?: string): void;
|
|
519
|
+
/**
|
|
520
|
+
* The gateway peer went away. Only the peer still holding the turn can end
|
|
521
|
+
* it, so a socket that a reattach already replaced cannot strip routing from
|
|
522
|
+
* its successor.
|
|
523
|
+
*/
|
|
524
|
+
endHeadlessTurn(peerId: string): void;
|
|
480
525
|
handleUserConnected(peer: EditorClient, peerId: string): void;
|
|
481
526
|
/**
|
|
482
527
|
* Per-session set of peer IDs that connected since their last task
|
|
@@ -519,7 +564,18 @@ export declare class AiService extends TracedEventEmitter<AiServiceEvents> {
|
|
|
519
564
|
* threat surface (see PR #19718 review feedback).
|
|
520
565
|
*/
|
|
521
566
|
notifyAuthenticatedRpc(peerId: string, callerUserId?: string): void;
|
|
522
|
-
|
|
567
|
+
/**
|
|
568
|
+
* @param replacement An editor socket that is still attached. Clark's RPCs
|
|
569
|
+
* are bound to one peer at a time, so when the departing peer was the bound
|
|
570
|
+
* one, handing the binding to a survivor keeps API execution working for
|
|
571
|
+
* whoever is still watching. Without it those calls queue for a peer that
|
|
572
|
+
* will never answer — the case a headless build leaves behind when its
|
|
573
|
+
* gateway socket closes over an open editor tab.
|
|
574
|
+
*/
|
|
575
|
+
handleUserDisconnected(peerId: string, replacement?: {
|
|
576
|
+
peer: EditorClient;
|
|
577
|
+
peerId: string;
|
|
578
|
+
}): void;
|
|
523
579
|
private clearPeerConnection;
|
|
524
580
|
handleBuildSystemError(error: Error, phase?: BuildErrorPhase): void;
|
|
525
581
|
handleRuntimeError(errorData: RuntimeErrorData): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai-service/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai-service/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ai-service/index.js
CHANGED
|
@@ -4,9 +4,9 @@ import path from "node:path";
|
|
|
4
4
|
import { context as otelContext, propagation, SpanKind, SpanStatusCode, trace, } from "@opentelemetry/api";
|
|
5
5
|
import { hasToolCall, streamText as aiStreamText, } from "ai";
|
|
6
6
|
import { z } from "zod";
|
|
7
|
-
import { AiGenerationState, AiMode, resolveAttachmentFileName, } from "@superblocksteam/library-shared/types";
|
|
7
|
+
import { AiGenerationState, AiMode, MAX_OUTPUT_TOKENS, resolveAttachmentFileName, } from "@superblocksteam/library-shared/types";
|
|
8
8
|
import { isToolPermissionClarification } from "@superblocksteam/library-shared/types/tool-permission-response";
|
|
9
|
-
import { addTracingToMethods, classifyAttachmentDelivery, FactAccessType, FactCreatedSource, FactEntityScope, TracedEventEmitter, getAiQuotaPaywallReasonFromMessage, } from "@superblocksteam/shared";
|
|
9
|
+
import { addTracingToMethods, AiSystemTriggerType, classifyAttachmentDelivery, FactAccessType, FactCreatedSource, FactEntityScope, TracedEventEmitter, getAiQuotaPaywallReasonFromMessage, } from "@superblocksteam/shared";
|
|
10
10
|
import { npmRegistryEmitter } from "@superblocksteam/telemetry";
|
|
11
11
|
import { applyTestApiDenialSideEffects, buildMigrationTestApiDenialContinuationPrompt, } from "../migration/mark-api-testing-denied.js";
|
|
12
12
|
import { buildTranslationPrompt } from "../migration/translation-prompt.js";
|
|
@@ -18,7 +18,7 @@ import { buildSecurityScanTools, isBackgroundTaskFrameworkEnabled, } from "./age
|
|
|
18
18
|
import { hasPendingEscalations, flushPendingEscalations, } from "./agent/tools/apis/api-validation-orchestrator.js";
|
|
19
19
|
import { safeSampleJson } from "./agent/tools/apis/sample-json.js";
|
|
20
20
|
import { resolveSdkApiEntryPoint } from "./agent/tools/apis/sdk-registry.js";
|
|
21
|
-
import { createDevDatabaseTaskTypes, wireDevDatabaseIntegrationPriming, } from "./agent/tools/databases/dev-database-tasks.js";
|
|
21
|
+
import { applyDevDatabaseMigrationsTaskMetadata, createDevDatabaseTaskTypes, wireDevDatabaseIntegrationPriming, } from "./agent/tools/databases/dev-database-tasks.js";
|
|
22
22
|
import { debugCache } from "./agent/tools/debug-cache.js";
|
|
23
23
|
import { securityScanResultSchema, } from "./agent/tools/report-security-findings.js";
|
|
24
24
|
import { SessionEntityPermissionStore, } from "./agent/tools2/entity-permissions.js";
|
|
@@ -40,10 +40,13 @@ import { AppContextStore } from "./context/app-context.js";
|
|
|
40
40
|
import { createDevDatabaseHttpTransport, DevDatabaseClient, } from "./dev-database-client.js";
|
|
41
41
|
import { buildEnsureDevDatabaseFilesSynced, } from "./dev-database-file-sync.js";
|
|
42
42
|
import { filterDisabledToolsForMigration } from "./filter-disabled-tools-for-migration.js";
|
|
43
|
+
import { helperSystemAiAttributes } from "./helper-system-ai-attributes.js";
|
|
43
44
|
import { IntegrationStore } from "./integrations/store.js";
|
|
44
45
|
import { JudgeService } from "./judge/judge-service.js";
|
|
45
46
|
import { CsvJudgeStorage } from "./judge/storage/csv-storage.js";
|
|
46
47
|
import { KnowledgeManager } from "./knowledge/knowledge-manager.js";
|
|
48
|
+
import { setGatewayTurnSource, setLiveEditEventForwarder, } from "./live-edit-events/bridge.js";
|
|
49
|
+
import { LiveEditEventForwarder, readForwarderConfigFromEnv, } from "./live-edit-events/forwarder.js";
|
|
47
50
|
import { createChaosFetch } from "./llm/chaos-fetch.js";
|
|
48
51
|
import { createClarkStreamTelemetrySink } from "./llm/clark-stream-telemetry-sink.js";
|
|
49
52
|
import { LLMClient } from "./llm/client.js";
|
|
@@ -83,12 +86,13 @@ import { doPostProcessing } from "./state-machine/handlers/post-processing.js";
|
|
|
83
86
|
import { doRuntimeReviewing } from "./state-machine/handlers/runtime-reviewing.js";
|
|
84
87
|
import { classificationHelper } from "./state-machine/helpers/classification.js";
|
|
85
88
|
import { getContextId } from "./state-machine/helpers/context-id.js";
|
|
89
|
+
import { bindHeadlessTurnLifecycle } from "./state-machine/helpers/headless-turn-lifecycle.js";
|
|
86
90
|
import { sendUserGenerationStateChannel } from "./state-machine/helpers/peer.js";
|
|
87
91
|
import { sendUserMessageChannel, clearPendingToolPermissionRequest, } from "./state-machine/helpers/peer.js";
|
|
88
92
|
import { collectPolicyGateLlmUsage, finalizePolicyGateUsageMetrics, policyGateFailureFromStream, recordPolicyGateAttempt, } from "./state-machine/helpers/policy-gate-usage-metrics.js";
|
|
89
93
|
import { finalizePromptBillingMetrics } from "./state-machine/helpers/prompt-billing-metrics.js";
|
|
90
94
|
import { paywallStopAdvice } from "./state-machine/helpers/prompt-failure.js";
|
|
91
|
-
import { promptFailureFromStreamAbort, promptFailurePaywall, promptFailurePlatform, promptFailureUserCanceled, recordBaseCommitResolutionFailed, recordPromptAttempt, recordPromptEntryRejection, recordPromptOutcome, recordAwaitingUserHandoffDismissed, resolvePromptMetricLabels, resolvePromptOutcomeDedupeKey, resolvePromptRequestDedupeKey, setPromptRequestMetricIdentity, } from "./state-machine/helpers/prompt-request-metrics.js";
|
|
95
|
+
import { CLARK_USAGE_ORIGIN, promptFailureFromStreamAbort, promptFailurePaywall, promptFailurePlatform, promptFailureUserCanceled, PROMPT_ATTEMPT_ENTRYPOINT, recordBaseCommitResolutionFailed, recordPromptAttempt, recordPromptEntryRejection, recordPromptOutcome, recordAwaitingUserHandoffDismissed, resolvePromptMetricLabels, resolvePromptOutcomeDedupeKey, resolvePromptRequestDedupeKey, setPromptRequestMetricIdentity, } from "./state-machine/helpers/prompt-request-metrics.js";
|
|
92
96
|
import { catchBackgroundPeerDisconnect, StablePeer, } from "./state-machine/helpers/stable-peer.js";
|
|
93
97
|
import { transitionFrom } from "./state-machine/helpers/transition.js";
|
|
94
98
|
import { isTaskAccessibleTo, registerBackgroundTaskTypes, resyncActiveTaskStatusesToPeer, TaskStore, wireTaskStatusPushToPeer, } from "./tasks/index.js";
|
|
@@ -343,11 +347,11 @@ const mergePlanContexts = (existing, incoming) => {
|
|
|
343
347
|
};
|
|
344
348
|
};
|
|
345
349
|
const APP_CLARK_GENERATION_METADATA = {
|
|
346
|
-
origin:
|
|
350
|
+
origin: CLARK_USAGE_ORIGIN.app_clark_generation,
|
|
347
351
|
surface: "app",
|
|
348
352
|
};
|
|
349
353
|
const POLICY_GATE_USAGE_METADATA = {
|
|
350
|
-
origin:
|
|
354
|
+
origin: CLARK_USAGE_ORIGIN.policy_gate,
|
|
351
355
|
surface: "policy_gate",
|
|
352
356
|
};
|
|
353
357
|
export class AiService extends TracedEventEmitter {
|
|
@@ -452,6 +456,35 @@ export class AiService extends TracedEventEmitter {
|
|
|
452
456
|
getNpmRegistryClient() {
|
|
453
457
|
return this.npmRegistryClient;
|
|
454
458
|
}
|
|
459
|
+
/**
|
|
460
|
+
* Opens the relay that lets a Gateway-driven turn see what Clark is doing.
|
|
461
|
+
*
|
|
462
|
+
* The sandbox holds a socket to the editor, but a Gateway turn has no editor
|
|
463
|
+
* on the far end, so its caller would otherwise learn nothing until the turn
|
|
464
|
+
* ended. Where the deployment does not run this channel the environment is
|
|
465
|
+
* simply absent, and this leaves the relay closed rather than failing to
|
|
466
|
+
* start.
|
|
467
|
+
*/
|
|
468
|
+
startLiveEditEventForwarding() {
|
|
469
|
+
const forwarderConfig = readForwarderConfigFromEnv();
|
|
470
|
+
if (!forwarderConfig) {
|
|
471
|
+
return;
|
|
472
|
+
}
|
|
473
|
+
setLiveEditEventForwarder(new LiveEditEventForwarder({
|
|
474
|
+
config: {
|
|
475
|
+
...forwarderConfig,
|
|
476
|
+
// The edit-scoped JWT rotates mid-session via the editor's push to
|
|
477
|
+
// `/_sb_update_token`, which only the token manager sees; the
|
|
478
|
+
// environment variable is written once at activation and never
|
|
479
|
+
// again. Prefer the live value and keep the environment as the
|
|
480
|
+
// cold-start fallback.
|
|
481
|
+
token: () => this.tokenManagerJwt ?? forwarderConfig.token(),
|
|
482
|
+
},
|
|
483
|
+
}));
|
|
484
|
+
// Read live rather than copied: StablePeer releases a turn from several
|
|
485
|
+
// paths, and a copy would attribute later work to a finished turn.
|
|
486
|
+
setGatewayTurnSource(() => this.stablePeer.turnId);
|
|
487
|
+
}
|
|
455
488
|
async remediateDeclaredDependencies() {
|
|
456
489
|
await this.appShell.remediateDeclaredDependencies();
|
|
457
490
|
}
|
|
@@ -572,6 +605,7 @@ export class AiService extends TracedEventEmitter {
|
|
|
572
605
|
applicationId: config.applicationId,
|
|
573
606
|
organizationId: config.organizationId,
|
|
574
607
|
});
|
|
608
|
+
this.startLiveEditEventForwarding();
|
|
575
609
|
// Store the wrapped logger so getLogger() can return it
|
|
576
610
|
// The wrapped logger forwards logs to the browser console when Clark logs are enabled
|
|
577
611
|
this._logger = getLogger();
|
|
@@ -928,6 +962,12 @@ export class AiService extends TracedEventEmitter {
|
|
|
928
962
|
"handleJudgeEvaluation",
|
|
929
963
|
];
|
|
930
964
|
addTracingToMethods(this, handlerMethods, config.tracer);
|
|
965
|
+
// A headless turn belongs to the generation it started, not to the socket
|
|
966
|
+
// that asked for it: the gateway keeps that socket a while longer, and
|
|
967
|
+
// whatever the user does next belongs to the browser again. The socket
|
|
968
|
+
// closing is still a backstop for a turn that never reaches a terminal
|
|
969
|
+
// state.
|
|
970
|
+
bindHeadlessTurnLifecycle(this, this.stablePeer, () => this.clark.context.promptId, () => this.clark.context.promptOutcomeDedupeKey);
|
|
931
971
|
// TODO apply isocket error handling
|
|
932
972
|
}
|
|
933
973
|
/**
|
|
@@ -1719,7 +1759,7 @@ export class AiService extends TracedEventEmitter {
|
|
|
1719
1759
|
applicationId: this.config.applicationId,
|
|
1720
1760
|
branchName,
|
|
1721
1761
|
migrationSource: "superblocks_2_0",
|
|
1722
|
-
origin:
|
|
1762
|
+
origin: CLARK_USAGE_ORIGIN.app_migration,
|
|
1723
1763
|
pendingSeedApiCount,
|
|
1724
1764
|
retryMode,
|
|
1725
1765
|
surface: "app",
|
|
@@ -1729,6 +1769,7 @@ export class AiService extends TracedEventEmitter {
|
|
|
1729
1769
|
this.clark.updateContext((context) => ({
|
|
1730
1770
|
...context,
|
|
1731
1771
|
promptId,
|
|
1772
|
+
promptOutcomeDedupeKey: promptId,
|
|
1732
1773
|
baseCommitId,
|
|
1733
1774
|
usageMetadata: migrationUsageMetadata,
|
|
1734
1775
|
llmConfig: migrationLlmConfig,
|
|
@@ -2146,6 +2187,11 @@ export class AiService extends TracedEventEmitter {
|
|
|
2146
2187
|
outcomeDedupeKey: resolvePromptRequestDedupeKey(request),
|
|
2147
2188
|
coreModel: request.llmConfig?.coreModel,
|
|
2148
2189
|
});
|
|
2190
|
+
const generateStreakEligible = resolvePromptMetricLabels({
|
|
2191
|
+
usageMetadata: request.importSource
|
|
2192
|
+
? { origin: CLARK_USAGE_ORIGIN.app_migration }
|
|
2193
|
+
: undefined,
|
|
2194
|
+
}).streakEligible;
|
|
2149
2195
|
// The id is now recorded. If anything below throws before generation is
|
|
2150
2196
|
// actually kicked off (the `transitionTo` USER_SENT_PROMPT), evict it so a
|
|
2151
2197
|
// legitimate reconnect re-send of this same prompt is not swallowed as a
|
|
@@ -2188,7 +2234,7 @@ export class AiService extends TracedEventEmitter {
|
|
|
2188
2234
|
// this object replaces.
|
|
2189
2235
|
usageMetadata: request.importSource
|
|
2190
2236
|
? {
|
|
2191
|
-
origin:
|
|
2237
|
+
origin: CLARK_USAGE_ORIGIN.app_migration,
|
|
2192
2238
|
source: request.importSource,
|
|
2193
2239
|
surface: "app",
|
|
2194
2240
|
}
|
|
@@ -2229,6 +2275,8 @@ export class AiService extends TracedEventEmitter {
|
|
|
2229
2275
|
outcome: "failure",
|
|
2230
2276
|
failure: promptFailurePlatform("handler_error"),
|
|
2231
2277
|
coreModel: request.llmConfig?.coreModel,
|
|
2278
|
+
promptId,
|
|
2279
|
+
streakEligible: generateStreakEligible,
|
|
2232
2280
|
});
|
|
2233
2281
|
this.getLogger().error("[ai-service] Failed to start generation", {
|
|
2234
2282
|
error,
|
|
@@ -2245,6 +2293,8 @@ export class AiService extends TracedEventEmitter {
|
|
|
2245
2293
|
outcome: "failure",
|
|
2246
2294
|
failure: promptFailurePlatform("handler_error"),
|
|
2247
2295
|
coreModel: request.llmConfig?.coreModel,
|
|
2296
|
+
promptId: this.clark.context.promptId,
|
|
2297
|
+
streakEligible: generateStreakEligible,
|
|
2248
2298
|
});
|
|
2249
2299
|
throw error;
|
|
2250
2300
|
}
|
|
@@ -2332,12 +2382,10 @@ export class AiService extends TracedEventEmitter {
|
|
|
2332
2382
|
: undefined;
|
|
2333
2383
|
const { providerOptions, headers } = processLLMConfig(llmConfig, 5000, `AI Summarize API Usage (${request.apiName})`);
|
|
2334
2384
|
const llmProviderSettings = this.getLLMProviderSettings(llmConfig);
|
|
2335
|
-
const
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
application_id: this.config.applicationId,
|
|
2340
|
-
session_id: this.sessionId,
|
|
2385
|
+
const llmProvider = createLLMProvider(llmProviderSettings, () => this.requireProvidedInferenceJwt(request.jwt, "live-edit request"), llmConfig, () => helperSystemAiAttributes({
|
|
2386
|
+
applicationId: this.config.applicationId,
|
|
2387
|
+
sessionId: this.sessionId,
|
|
2388
|
+
triggerType: AiSystemTriggerType.API_USAGE_SUMMARY,
|
|
2341
2389
|
}));
|
|
2342
2390
|
const { model, providerConfig } = llmProvider.modelForTask("explain");
|
|
2343
2391
|
await traceLLM("handleAiSummarizeApiUsage", model.modelId, model.provider, async () => {
|
|
@@ -2441,15 +2489,10 @@ export class AiService extends TracedEventEmitter {
|
|
|
2441
2489
|
: undefined;
|
|
2442
2490
|
const { providerOptions, headers } = processLLMConfig(llmConfig, 2000, `AI Summarize Error`);
|
|
2443
2491
|
const llmProviderSettings = this.getLLMProviderSettings(llmConfig);
|
|
2444
|
-
const
|
|
2445
|
-
getLogger().info("[ai-service] Generated prompt_id for summarize error", {
|
|
2446
|
-
promptId,
|
|
2492
|
+
const llmProvider = createLLMProvider(llmProviderSettings, () => this.requireProvidedInferenceJwt(request.jwt, "live-edit request"), llmConfig, () => helperSystemAiAttributes({
|
|
2447
2493
|
applicationId: this.config.applicationId,
|
|
2448
|
-
|
|
2449
|
-
|
|
2450
|
-
prompt_id: promptId,
|
|
2451
|
-
application_id: this.config.applicationId,
|
|
2452
|
-
session_id: this.sessionId,
|
|
2494
|
+
sessionId: this.sessionId,
|
|
2495
|
+
triggerType: AiSystemTriggerType.ERROR_SUMMARY,
|
|
2453
2496
|
}));
|
|
2454
2497
|
const { model, providerConfig } = llmProvider.modelForTask("explain");
|
|
2455
2498
|
await traceLLM("handleAiSummarizeError", model.modelId, model.provider, async () => {
|
|
@@ -2530,16 +2573,10 @@ export class AiService extends TracedEventEmitter {
|
|
|
2530
2573
|
}
|
|
2531
2574
|
: undefined;
|
|
2532
2575
|
const llmProviderSettings = this.getLLMProviderSettings(llmConfig);
|
|
2533
|
-
|
|
2534
|
-
const promptId = randomUUID();
|
|
2535
|
-
getLogger().info("[ai-service] Generated prompt_id for label attachment", {
|
|
2536
|
-
promptId,
|
|
2576
|
+
const llmProvider = createLLMProvider(llmProviderSettings, () => this.requireProvidedInferenceJwt(request.jwt, "live-edit request"), llmConfig, () => helperSystemAiAttributes({
|
|
2537
2577
|
applicationId: this.config.applicationId,
|
|
2538
|
-
|
|
2539
|
-
|
|
2540
|
-
prompt_id: promptId,
|
|
2541
|
-
application_id: this.config.applicationId,
|
|
2542
|
-
session_id: this.sessionId,
|
|
2578
|
+
sessionId: this.sessionId,
|
|
2579
|
+
triggerType: AiSystemTriggerType.ATTACHMENT_LABEL,
|
|
2543
2580
|
}));
|
|
2544
2581
|
const { model, providerConfig } = llmProvider.modelForTask("fast");
|
|
2545
2582
|
const LabelAttachmentSchema = z.object({
|
|
@@ -2737,6 +2774,7 @@ export class AiService extends TracedEventEmitter {
|
|
|
2737
2774
|
dedupeKey: resolvePromptOutcomeDedupeKey(this.clark.context),
|
|
2738
2775
|
outcome: "failure",
|
|
2739
2776
|
failure: promptFailureUserCanceled(),
|
|
2777
|
+
promptId: this.clark.context.promptId,
|
|
2740
2778
|
...labels,
|
|
2741
2779
|
});
|
|
2742
2780
|
}
|
|
@@ -3175,7 +3213,8 @@ export class AiService extends TracedEventEmitter {
|
|
|
3175
3213
|
await applyTestApiDenialSideEffects({
|
|
3176
3214
|
apiName,
|
|
3177
3215
|
appRootDirPath: this.appRootDirPath,
|
|
3178
|
-
isAppMigration: this.clark.context.usageMetadata?.origin ===
|
|
3216
|
+
isAppMigration: this.clark.context.usageMetadata?.origin ===
|
|
3217
|
+
CLARK_USAGE_ORIGIN.app_migration,
|
|
3179
3218
|
apiTestingState: this.clark.context.apiTestingState,
|
|
3180
3219
|
logger,
|
|
3181
3220
|
});
|
|
@@ -3248,6 +3287,21 @@ export class AiService extends TracedEventEmitter {
|
|
|
3248
3287
|
trace
|
|
3249
3288
|
.getActiveSpan()
|
|
3250
3289
|
?.setAttribute("clark.tool_permission.clarification", isClarification);
|
|
3290
|
+
const promptOutcomeDedupeKey = randomUUID();
|
|
3291
|
+
this.clark.updateContext((context) => ({
|
|
3292
|
+
...context,
|
|
3293
|
+
promptOutcomeDedupeKey,
|
|
3294
|
+
}));
|
|
3295
|
+
// The continuation is a genuine new turn on a fresh key (the handoff
|
|
3296
|
+
// already recorded an outcome on the original). Pair it with an attempt
|
|
3297
|
+
// so attempts_total and outcomes_total stay aligned (ENG-5477 review).
|
|
3298
|
+
// Tag the entrypoint so dashboards can separate ~server-driven volume
|
|
3299
|
+
// from user aiGenerate (ENG-5477 scout review).
|
|
3300
|
+
recordPromptAttempt({
|
|
3301
|
+
coreModel: this.clark.context.llmConfig?.coreModel,
|
|
3302
|
+
entrypoint: PROMPT_ATTEMPT_ENTRYPOINT.tool_permission_continuation,
|
|
3303
|
+
outcomeDedupeKey: promptOutcomeDedupeKey,
|
|
3304
|
+
});
|
|
3251
3305
|
const continueRequest = {
|
|
3252
3306
|
prompt: request.approved
|
|
3253
3307
|
? ``
|
|
@@ -3262,6 +3316,7 @@ export class AiService extends TracedEventEmitter {
|
|
|
3262
3316
|
llmConfig: this.clark.context.llmConfig,
|
|
3263
3317
|
mode: this.clark.context.currentMode,
|
|
3264
3318
|
browserContext: this.clark.context.browserContext,
|
|
3319
|
+
requestId: promptOutcomeDedupeKey,
|
|
3265
3320
|
responseMetadata: {
|
|
3266
3321
|
type: "tool_permission_response",
|
|
3267
3322
|
responseToMessageId: request.messageId,
|
|
@@ -3281,11 +3336,33 @@ export class AiService extends TracedEventEmitter {
|
|
|
3281
3336
|
* For testApi, provides specific guidance to continue testing other APIs.
|
|
3282
3337
|
*/
|
|
3283
3338
|
buildDenialContinuationPrompt(toolName, rawInput) {
|
|
3339
|
+
// A declined deletion must not read as "find another way". The generic
|
|
3340
|
+
// fallback below says "continue using alternative approaches", which is
|
|
3341
|
+
// exactly the bypass this tool's own description forbids (raw SQL, or
|
|
3342
|
+
// telling the user to drop objects by hand). It also has to correct the
|
|
3343
|
+
// likely misunderstanding: no is "not now", because the migration file
|
|
3344
|
+
// Clark wrote is still in the app.
|
|
3345
|
+
if (toolName === applyDevDatabaseMigrationsTaskMetadata.name) {
|
|
3346
|
+
return ("The user said no. Nothing was applied and nothing was deleted. " +
|
|
3347
|
+
"Do NOT run that SQL another way: no raw SQL, and do not ask them to " +
|
|
3348
|
+
"drop objects by hand. Tell them nothing was deleted, that the " +
|
|
3349
|
+
"migration file you wrote is still in the app so the next apply will " +
|
|
3350
|
+
"ask again, and offer to delete or rewrite it. " +
|
|
3351
|
+
// The card invites the reader to say no in order to ask a question
|
|
3352
|
+
// ("Ask what else this deletes before you approve"), so refusing to
|
|
3353
|
+
// re-request would make that a dead end. The rule is not "never ask
|
|
3354
|
+
// again", it is "do not ask again for the same thing unprompted".
|
|
3355
|
+
"If they are asking rather than refusing, answer their question; you " +
|
|
3356
|
+
"may call this tool again once they say to go ahead. Otherwise carry " +
|
|
3357
|
+
"on with work that does not need this migration, and do not re-raise " +
|
|
3358
|
+
"the same apply on your own.");
|
|
3359
|
+
}
|
|
3284
3360
|
if (toolName === "testApi") {
|
|
3285
3361
|
const deniedApiName = rawInput?.apiName;
|
|
3286
3362
|
const apiName = deniedApiName ?? "unknown";
|
|
3287
3363
|
const apiTestingState = this.clark.context.apiTestingState;
|
|
3288
|
-
if (this.clark.context.usageMetadata?.origin ===
|
|
3364
|
+
if (this.clark.context.usageMetadata?.origin ===
|
|
3365
|
+
CLARK_USAGE_ORIGIN.app_migration) {
|
|
3289
3366
|
const remainingUntested = apiTestingState?.untested
|
|
3290
3367
|
? Array.from(apiTestingState.untested)
|
|
3291
3368
|
: [];
|
|
@@ -3311,6 +3388,60 @@ export class AiService extends TracedEventEmitter {
|
|
|
3311
3388
|
lastGenerationState: this.clark.context.lastGenerationState,
|
|
3312
3389
|
});
|
|
3313
3390
|
}
|
|
3391
|
+
/**
|
|
3392
|
+
* A gateway peer asked for a turn. Clark's pushes and tool callbacks for it
|
|
3393
|
+
* are routed to that peer for as long as it is attached, without giving it
|
|
3394
|
+
* the editor binding: a browser tab opening or closing mid-turn changes
|
|
3395
|
+
* nothing about where the turn reports.
|
|
3396
|
+
*
|
|
3397
|
+
* `turnId` is the correlator the caller sent with the prompt, and is what
|
|
3398
|
+
* lets that same caller reacquire this turn on a replacement socket.
|
|
3399
|
+
* Returned so the caller can be told which turn it now owns; a turn started
|
|
3400
|
+
* without one is reachable by this socket alone.
|
|
3401
|
+
*/
|
|
3402
|
+
beginHeadlessTurn(peer, peerId, turnId) {
|
|
3403
|
+
this.getLogger().info(`[ai-service] headless turn started by gateway peer ${peerId}`);
|
|
3404
|
+
this.stablePeer.beginTurn({ peer, peerId, turnId });
|
|
3405
|
+
return turnId;
|
|
3406
|
+
}
|
|
3407
|
+
/**
|
|
3408
|
+
* A gateway peer offered the correlator of a turn in flight, which is what a
|
|
3409
|
+
* reattach looks like: the peer that started the turn lost its socket, so the
|
|
3410
|
+
* turn moves onto the replacement.
|
|
3411
|
+
*
|
|
3412
|
+
* Runs on every authorized gateway RPC, so the two uninteresting outcomes —
|
|
3413
|
+
* the caller already owns the turn, or is talking about a turn that is not
|
|
3414
|
+
* this one — are silent. Only an actual handover is worth a line.
|
|
3415
|
+
*/
|
|
3416
|
+
claimHeadlessTurn(peer, peerId, turnId) {
|
|
3417
|
+
if (this.stablePeer.claimTurn({ peer, peerId, turnId }) !== "claimed") {
|
|
3418
|
+
return;
|
|
3419
|
+
}
|
|
3420
|
+
this.getLogger().info(`[ai-service] headless turn moved to reattached gateway peer ${peerId}`);
|
|
3421
|
+
}
|
|
3422
|
+
/**
|
|
3423
|
+
* The prompt a turn was bound for never started, so there is no generation
|
|
3424
|
+
* coming that could settle it. Scoped to the exact turn: a reattach or a
|
|
3425
|
+
* later turn may already own routing.
|
|
3426
|
+
*/
|
|
3427
|
+
abandonHeadlessTurn(peerId, turnId) {
|
|
3428
|
+
if (!this.stablePeer.abandonTurn({ peerId, turnId })) {
|
|
3429
|
+
return;
|
|
3430
|
+
}
|
|
3431
|
+
this.getLogger().warn(`[ai-service] headless turn for gateway peer ${peerId} never started; routing returns to the editor binding`);
|
|
3432
|
+
}
|
|
3433
|
+
/**
|
|
3434
|
+
* The gateway peer went away. Only the peer still holding the turn can end
|
|
3435
|
+
* it, so a socket that a reattach already replaced cannot strip routing from
|
|
3436
|
+
* its successor.
|
|
3437
|
+
*/
|
|
3438
|
+
endHeadlessTurn(peerId) {
|
|
3439
|
+
if (this.stablePeer.turnPeerId !== peerId) {
|
|
3440
|
+
return;
|
|
3441
|
+
}
|
|
3442
|
+
this.getLogger().info(`[ai-service] headless turn peer ${peerId} detached; falling back to the editor binding`);
|
|
3443
|
+
this.stablePeer.releaseTurnPeer(peerId);
|
|
3444
|
+
}
|
|
3314
3445
|
handleUserConnected(peer, peerId) {
|
|
3315
3446
|
const existingPeerId = this.stablePeer.peerId;
|
|
3316
3447
|
this.getLogger().info(`[ai-service] handleUserConnected: peerId=${peerId}`);
|
|
@@ -3465,7 +3596,15 @@ export class AiService extends TracedEventEmitter {
|
|
|
3465
3596
|
}, callerUserId);
|
|
3466
3597
|
}
|
|
3467
3598
|
}
|
|
3468
|
-
|
|
3599
|
+
/**
|
|
3600
|
+
* @param replacement An editor socket that is still attached. Clark's RPCs
|
|
3601
|
+
* are bound to one peer at a time, so when the departing peer was the bound
|
|
3602
|
+
* one, handing the binding to a survivor keeps API execution working for
|
|
3603
|
+
* whoever is still watching. Without it those calls queue for a peer that
|
|
3604
|
+
* will never answer — the case a headless build leaves behind when its
|
|
3605
|
+
* gateway socket closes over an open editor tab.
|
|
3606
|
+
*/
|
|
3607
|
+
handleUserDisconnected(peerId, replacement) {
|
|
3469
3608
|
const currentPeerId = this.stablePeer.peerId;
|
|
3470
3609
|
this.getLogger().info(`[ai-service] handleUserDisconnected: peerId=${peerId}`);
|
|
3471
3610
|
if (!currentPeerId) {
|
|
@@ -3494,6 +3633,13 @@ export class AiService extends TracedEventEmitter {
|
|
|
3494
3633
|
if (contextId) {
|
|
3495
3634
|
this.contextManagerV2.clearContext(contextId);
|
|
3496
3635
|
}
|
|
3636
|
+
if (replacement && replacement.peerId !== peerId) {
|
|
3637
|
+
this.getLogger().info(`[ai-service] Rebinding peer ${peerId} to surviving editor ${replacement.peerId}`);
|
|
3638
|
+
// Same door a fresh tab comes through, so the survivor gets the state
|
|
3639
|
+
// resync and re-auth a newly bound peer is owed.
|
|
3640
|
+
this.handleUserConnected(replacement.peer, replacement.peerId);
|
|
3641
|
+
return;
|
|
3642
|
+
}
|
|
3497
3643
|
this.clearPeerConnection();
|
|
3498
3644
|
}
|
|
3499
3645
|
clearPeerConnection() {
|
|
@@ -3871,7 +4017,13 @@ export class AiService extends TracedEventEmitter {
|
|
|
3871
4017
|
role: "user",
|
|
3872
4018
|
},
|
|
3873
4019
|
],
|
|
4020
|
+
// Same output cap Clark uses (see processLLMConfig). Without it the
|
|
4021
|
+
// provider default applies, which is model-dependent.
|
|
4022
|
+
maxOutputTokens: MAX_OUTPUT_TOKENS,
|
|
3874
4023
|
model,
|
|
4024
|
+
// The unified router resolves the model from the request, falling back
|
|
4025
|
+
// to Clark's core-model flag when absent.
|
|
4026
|
+
...(coreModel ? { providerOptions: { unified: { coreModel } } } : {}),
|
|
3875
4027
|
tools,
|
|
3876
4028
|
stopWhen: hasToolCall("reportReviewRun"),
|
|
3877
4029
|
timeout: { totalMs: POLICY_GATE_MAX_TOTAL_TIME_MS },
|