@superblocksteam/vite-plugin-file-sync 2.0.161-next.0 → 2.0.162-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/prompts/build-base-system-prompt.d.ts +2 -0
- 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 +39 -27
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
- package/dist/ai-service/agent/tools/rbac/effective-permissions.d.ts +13 -0
- package/dist/ai-service/agent/tools/rbac/effective-permissions.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/rbac/effective-permissions.js +49 -0
- package/dist/ai-service/agent/tools/rbac/effective-permissions.js.map +1 -0
- package/dist/ai-service/agent/tools.d.ts +5 -5
- package/dist/ai-service/agent/tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.js +27 -9
- package/dist/ai-service/agent/tools.js.map +1 -1
- package/dist/ai-service/agent/tools2/access-control.d.ts +5 -0
- package/dist/ai-service/agent/tools2/access-control.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/access-control.js +16 -0
- package/dist/ai-service/agent/tools2/access-control.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts +2 -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 +6 -2
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
- package/dist/ai-service/app-skills/helpers.d.ts +1 -1
- package/dist/ai-service/app-skills/helpers.d.ts.map +1 -1
- package/dist/ai-service/app-skills/helpers.js +2 -1
- package/dist/ai-service/app-skills/helpers.js.map +1 -1
- package/dist/ai-service/chat/chat-session-store.d.ts +2 -0
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +2 -2
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/checkpoint-screenshot.d.ts +9 -0
- package/dist/ai-service/checkpoint-screenshot.d.ts.map +1 -0
- package/dist/ai-service/checkpoint-screenshot.js +40 -0
- package/dist/ai-service/checkpoint-screenshot.js.map +1 -0
- package/dist/ai-service/index.d.ts +15 -9
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +141 -58
- package/dist/ai-service/index.js.map +1 -1
- 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 +9 -7
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts +18 -9
- 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/agent-planning.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.js +68 -53
- 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 +15 -2
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/peer.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/peer.js +21 -9
- package/dist/ai-service/state-machine/helpers/peer.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/stable-peer.d.ts +20 -6
- package/dist/ai-service/state-machine/helpers/stable-peer.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/stable-peer.js +124 -30
- package/dist/ai-service/state-machine/helpers/stable-peer.js.map +1 -1
- package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
- package/dist/ai-service/state-machine/mocks.js +1 -0
- package/dist/ai-service/state-machine/mocks.js.map +1 -1
- package/dist/ai-service/types.d.ts +4 -0
- package/dist/ai-service/types.d.ts.map +1 -1
- package/dist/file-sync-vite-plugin.d.ts +5 -1
- package/dist/file-sync-vite-plugin.d.ts.map +1 -1
- package/dist/file-sync-vite-plugin.js +27 -11
- package/dist/file-sync-vite-plugin.js.map +1 -1
- package/dist/inject-index-vite-plugin.d.ts +15 -0
- package/dist/inject-index-vite-plugin.d.ts.map +1 -1
- package/dist/inject-index-vite-plugin.js +31 -0
- package/dist/inject-index-vite-plugin.js.map +1 -1
- package/dist/lock-service/index.d.ts +1 -0
- package/dist/lock-service/index.d.ts.map +1 -1
- package/dist/lock-service/index.js +14 -7
- package/dist/lock-service/index.js.map +1 -1
- package/dist/socket-manager.d.ts +12 -4
- package/dist/socket-manager.d.ts.map +1 -1
- package/dist/socket-manager.js +195 -39
- package/dist/socket-manager.js.map +1 -1
- package/package.json +9 -9
|
@@ -15,7 +15,8 @@ import type { ContextId } from "./llm/context-v2/types.js";
|
|
|
15
15
|
import { RecordingManager } from "./recording/index.js";
|
|
16
16
|
import type { BuildErrorPhase, BuildSystemError } from "./state-machine/clark-fsm.js";
|
|
17
17
|
import { CLARK_USAGE_ORIGIN } from "./state-machine/helpers/prompt-request-metrics.js";
|
|
18
|
-
import
|
|
18
|
+
import { StablePeer } from "./state-machine/helpers/stable-peer.js";
|
|
19
|
+
import type { AiServiceConfig, AiServiceEvents, AiInputSource, EditorClient, UserChange, ApiUpdate } from "./types.ts";
|
|
19
20
|
import type { PeerConnectionLiveness } from "./util/peer-liveness.js";
|
|
20
21
|
export { AiServiceFeatureFlags } from "./features.js";
|
|
21
22
|
export { getManagedNativeDbGateDenialReason, hasEditLifecycleCapability, isManagedNativeDbAvailableForClark, } from "./managed-native-db-availability.js";
|
|
@@ -87,7 +88,7 @@ export declare class AiService extends TracedEventEmitter<AiServiceEvents> {
|
|
|
87
88
|
private readonly toolRegistry;
|
|
88
89
|
private readonly requestDeduplicator;
|
|
89
90
|
private readonly entityPermissionStore;
|
|
90
|
-
private
|
|
91
|
+
private readonly generationCompleteWaiters;
|
|
91
92
|
private activeGenerationTrace;
|
|
92
93
|
/** JWT-derived userId of the currently-authenticated peer, set by
|
|
93
94
|
* `notifyAuthenticatedRpc` and cleared on disconnect / peer swap.
|
|
@@ -172,6 +173,8 @@ export declare class AiService extends TracedEventEmitter<AiServiceEvents> {
|
|
|
172
173
|
getBranchName: () => string;
|
|
173
174
|
getLastCommitId: () => string | undefined;
|
|
174
175
|
}): void;
|
|
176
|
+
setAuthenticatedEditorPeersProvider(provider: Parameters<StablePeer["setAuthenticatedEditorPeersProvider"]>[0]): void;
|
|
177
|
+
setAuthenticatedGatewayPeersProvider(provider: Parameters<StablePeer["setAuthenticatedGatewayPeersProvider"]>[0]): void;
|
|
175
178
|
setOnGitOperationComplete(callback: () => void): void;
|
|
176
179
|
get appRootDirPath(): string;
|
|
177
180
|
get organizationId(): string;
|
|
@@ -391,6 +394,7 @@ export declare class AiService extends TracedEventEmitter<AiServiceEvents> {
|
|
|
391
394
|
* with no UI state. (APPS-4080)
|
|
392
395
|
*/
|
|
393
396
|
private tryHandlePaywallForRequest;
|
|
397
|
+
private publishUserInput;
|
|
394
398
|
/**
|
|
395
399
|
* Persist the user's prompt + the "credits ran out" advice and open the
|
|
396
400
|
* paywall modal when the pre-call quota check denies the request. Mirrors
|
|
@@ -415,7 +419,7 @@ export declare class AiService extends TracedEventEmitter<AiServiceEvents> {
|
|
|
415
419
|
* the chat is durable across refresh even if the live peer push drops.
|
|
416
420
|
*/
|
|
417
421
|
private handlePreCallPaywall;
|
|
418
|
-
handleAiGenerate(request: AiGenerateRequest): Promise<void>;
|
|
422
|
+
handleAiGenerate(request: AiGenerateRequest, inputSource?: AiInputSource): Promise<void>;
|
|
419
423
|
handleAiSummarizeApiUsage(request: AiSummarizeApiUsageRequest): Promise<void>;
|
|
420
424
|
handleAiSummarizeError(request: AiSummarizeErrorRequest): Promise<void>;
|
|
421
425
|
handleAiLabelAttachment(request: AiLabelAttachmentRequest): Promise<AiLabelAttachmentResponse>;
|
|
@@ -427,10 +431,12 @@ export declare class AiService extends TracedEventEmitter<AiServiceEvents> {
|
|
|
427
431
|
handleUserAcceptedDraft(silently?: boolean): Promise<void>;
|
|
428
432
|
handleUserRejectedDraft(silently?: boolean): Promise<void>;
|
|
429
433
|
/**
|
|
430
|
-
* Called when the
|
|
431
|
-
*
|
|
434
|
+
* Called when the integration setup form closes. Clears backend state so
|
|
435
|
+
* Clark knows the form is no longer open.
|
|
432
436
|
*/
|
|
433
|
-
handleIntegrationSetupClosed(
|
|
437
|
+
handleIntegrationSetupClosed(request?: void | {
|
|
438
|
+
outcome: "abandoned" | "saved";
|
|
439
|
+
}): Promise<void>;
|
|
434
440
|
handleUserCanceled(): Promise<void>;
|
|
435
441
|
/**
|
|
436
442
|
* UI-initiated cancellation of a background task. Delegates to
|
|
@@ -460,7 +466,8 @@ export declare class AiService extends TracedEventEmitter<AiServiceEvents> {
|
|
|
460
466
|
* Submit a prompt with interrupt behavior.
|
|
461
467
|
* If not busy, starts immediately. Otherwise interrupts and continues.
|
|
462
468
|
*/
|
|
463
|
-
handleAiGenerateWithQueue(request: AiGenerateRequest, mode: "queue" | "interrupt"): Promise<{
|
|
469
|
+
handleAiGenerateWithQueue(request: AiGenerateRequest, mode: "queue" | "interrupt", inputSource?: AiInputSource): Promise<{
|
|
470
|
+
generationId?: string;
|
|
464
471
|
status: "started" | "interrupted";
|
|
465
472
|
}>;
|
|
466
473
|
/**
|
|
@@ -685,8 +692,7 @@ export declare class AiService extends TracedEventEmitter<AiServiceEvents> {
|
|
|
685
692
|
*/
|
|
686
693
|
waitUntilGenerationComplete(): Promise<void>;
|
|
687
694
|
/**
|
|
688
|
-
*
|
|
689
|
-
* Should be called when Clark transitions to Idle or AwaitingUser state.
|
|
695
|
+
* Resolve generation waiters when Clark reaches a terminal state.
|
|
690
696
|
*/
|
|
691
697
|
private triggerGenerationComplete;
|
|
692
698
|
isGeneratingFullAppOrBroadUpdate(): Promise<boolean>;
|
|
@@ -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
|
@@ -362,6 +362,7 @@ const NPM_REGISTRY_REFRESH_WAIT_MS = 5_000;
|
|
|
362
362
|
* prompt proceeds with no baseCommitId rather than waiting indefinitely.
|
|
363
363
|
*/
|
|
364
364
|
const RESOLVE_BASE_COMMIT_ID_CHAT_STORE_TIMEOUT_MS = 2_000;
|
|
365
|
+
const GENERATION_COMPLETION_WAIT_TIMEOUT_MS = 30_000;
|
|
365
366
|
export function truncateString(str, maxBytes) {
|
|
366
367
|
// Rough approximation: assume 2 bytes per character
|
|
367
368
|
const maxChars = Math.floor(maxBytes / 2);
|
|
@@ -427,11 +428,13 @@ export class AiService extends TracedEventEmitter {
|
|
|
427
428
|
chatSessionStore;
|
|
428
429
|
contextManagerV2;
|
|
429
430
|
llmClient;
|
|
430
|
-
stablePeer = new StablePeer(
|
|
431
|
+
stablePeer = new StablePeer({
|
|
432
|
+
currentRequestKey: () => this.clark.context.promptOutcomeDedupeKey,
|
|
433
|
+
});
|
|
431
434
|
toolRegistry = new ToolRegistry();
|
|
432
435
|
requestDeduplicator = new RequestDeduplicator();
|
|
433
436
|
entityPermissionStore = new SessionEntityPermissionStore();
|
|
434
|
-
|
|
437
|
+
generationCompleteWaiters = new Set();
|
|
435
438
|
activeGenerationTrace;
|
|
436
439
|
/** JWT-derived userId of the currently-authenticated peer, set by
|
|
437
440
|
* `notifyAuthenticatedRpc` and cleared on disconnect / peer swap.
|
|
@@ -557,6 +560,12 @@ export class AiService extends TracedEventEmitter {
|
|
|
557
560
|
setSyncContextProvider(provider) {
|
|
558
561
|
this._syncContextProvider = provider;
|
|
559
562
|
}
|
|
563
|
+
setAuthenticatedEditorPeersProvider(provider) {
|
|
564
|
+
this.stablePeer.setAuthenticatedEditorPeersProvider(provider);
|
|
565
|
+
}
|
|
566
|
+
setAuthenticatedGatewayPeersProvider(provider) {
|
|
567
|
+
this.stablePeer.setAuthenticatedGatewayPeersProvider(provider);
|
|
568
|
+
}
|
|
560
569
|
setOnGitOperationComplete(callback) {
|
|
561
570
|
this._onGitOperationComplete = callback;
|
|
562
571
|
}
|
|
@@ -1416,20 +1425,6 @@ export class AiService extends TracedEventEmitter {
|
|
|
1416
1425
|
this.getLogger().info(`[ai-service] Transitioned from ${from} to ${to} with event ${event.type}`);
|
|
1417
1426
|
try {
|
|
1418
1427
|
await handler(transition);
|
|
1419
|
-
// Trigger callback when Clark enters idle states (generation complete)
|
|
1420
|
-
if (to === ClarkStateNames.Idle ||
|
|
1421
|
-
to === ClarkStateNames.AwaitingUser) {
|
|
1422
|
-
// The turn is over: drop per-turn billing attribution so stray
|
|
1423
|
-
// LLM calls before the next prompt bill as default generation.
|
|
1424
|
-
if (clark.context.usageMetadata || clark.context.baseCommitId) {
|
|
1425
|
-
clark.updateContext((context) => ({
|
|
1426
|
-
...context,
|
|
1427
|
-
usageMetadata: undefined,
|
|
1428
|
-
baseCommitId: undefined,
|
|
1429
|
-
}));
|
|
1430
|
-
}
|
|
1431
|
-
this.triggerGenerationComplete();
|
|
1432
|
-
}
|
|
1433
1428
|
}
|
|
1434
1429
|
catch (error) {
|
|
1435
1430
|
const errorMeta = getErrorMeta(error);
|
|
@@ -1451,6 +1446,22 @@ export class AiService extends TracedEventEmitter {
|
|
|
1451
1446
|
}
|
|
1452
1447
|
throw error;
|
|
1453
1448
|
}
|
|
1449
|
+
finally {
|
|
1450
|
+
if (to === ClarkStateNames.Idle ||
|
|
1451
|
+
to === ClarkStateNames.AwaitingUser ||
|
|
1452
|
+
to === ClarkStateNames.Dead) {
|
|
1453
|
+
// The turn is over: drop per-turn billing attribution so stray
|
|
1454
|
+
// LLM calls before the next prompt bill as default generation.
|
|
1455
|
+
if (clark.context.usageMetadata || clark.context.baseCommitId) {
|
|
1456
|
+
clark.updateContext((context) => ({
|
|
1457
|
+
...context,
|
|
1458
|
+
usageMetadata: undefined,
|
|
1459
|
+
baseCommitId: undefined,
|
|
1460
|
+
}));
|
|
1461
|
+
}
|
|
1462
|
+
this.triggerGenerationComplete();
|
|
1463
|
+
}
|
|
1464
|
+
}
|
|
1454
1465
|
};
|
|
1455
1466
|
};
|
|
1456
1467
|
}
|
|
@@ -1943,7 +1954,7 @@ export class AiService extends TracedEventEmitter {
|
|
|
1943
1954
|
* chat record + modal — instead of the interrupt path silently rejecting
|
|
1944
1955
|
* with no UI state. (APPS-4080)
|
|
1945
1956
|
*/
|
|
1946
|
-
async tryHandlePaywallForRequest(request) {
|
|
1957
|
+
async tryHandlePaywallForRequest(request, inputSource) {
|
|
1947
1958
|
try {
|
|
1948
1959
|
await this.ensureAiQuotaAvailable(this.config.inferenceAuthToken ?? request.jwt);
|
|
1949
1960
|
return undefined;
|
|
@@ -1952,13 +1963,28 @@ export class AiService extends TracedEventEmitter {
|
|
|
1952
1963
|
if (error instanceof Error) {
|
|
1953
1964
|
const reason = getAiQuotaPaywallReasonFromMessage(error.message);
|
|
1954
1965
|
if (reason) {
|
|
1955
|
-
await this.handlePreCallPaywall(request, reason);
|
|
1966
|
+
await this.handlePreCallPaywall(request, reason, inputSource);
|
|
1956
1967
|
return reason;
|
|
1957
1968
|
}
|
|
1958
1969
|
}
|
|
1959
1970
|
throw error;
|
|
1960
1971
|
}
|
|
1961
1972
|
}
|
|
1973
|
+
publishUserInput(message, inputSource, includeInputPeer) {
|
|
1974
|
+
if (inputSource?.kind === "editor") {
|
|
1975
|
+
this.stablePeer.pushMessageToObservers(message, inputSource, {
|
|
1976
|
+
includeInputPeer,
|
|
1977
|
+
});
|
|
1978
|
+
return;
|
|
1979
|
+
}
|
|
1980
|
+
if (!includeInputPeer || !this.clark.context.peer)
|
|
1981
|
+
return;
|
|
1982
|
+
void this.clark.context.peer.call
|
|
1983
|
+
.aiPushMessage(message)
|
|
1984
|
+
.catch((err) => {
|
|
1985
|
+
this.getLogger().warn("[ai-service] Failed to publish user input", getErrorMeta(err));
|
|
1986
|
+
});
|
|
1987
|
+
}
|
|
1962
1988
|
/**
|
|
1963
1989
|
* Persist the user's prompt + the "credits ran out" advice and open the
|
|
1964
1990
|
* paywall modal when the pre-call quota check denies the request. Mirrors
|
|
@@ -1982,7 +2008,7 @@ export class AiService extends TracedEventEmitter {
|
|
|
1982
2008
|
* - Uses fire-and-forget peer pushes after each `await` on the store so
|
|
1983
2009
|
* the chat is durable across refresh even if the live peer push drops.
|
|
1984
2010
|
*/
|
|
1985
|
-
async handlePreCallPaywall(request, paywallReason) {
|
|
2011
|
+
async handlePreCallPaywall(request, paywallReason, inputSource) {
|
|
1986
2012
|
this.getLogger().info(`[ai-service] Pre-call paywall denial; persisting prompt + advice for chat history`, { paywallReason });
|
|
1987
2013
|
// APPS-4080: pre-cache the CANCELLED + paywallReason snapshot into
|
|
1988
2014
|
// `lastGenerationState` BEFORE any chat-persistence await. Without
|
|
@@ -2004,22 +2030,20 @@ export class AiService extends TracedEventEmitter {
|
|
|
2004
2030
|
// 1. Persist + echo the user's prompt so the chat doesn't lose it.
|
|
2005
2031
|
const responseMetadata = request.responseMetadata;
|
|
2006
2032
|
if (!responseMetadata) {
|
|
2033
|
+
const messageId = randomUUID();
|
|
2034
|
+
this.publishUserInput({
|
|
2035
|
+
attachments: request.promptContext?.attachments,
|
|
2036
|
+
content: request.prompt,
|
|
2037
|
+
id: messageId,
|
|
2038
|
+
role: "user",
|
|
2039
|
+
timestamp: Date.now(),
|
|
2040
|
+
type: "text",
|
|
2041
|
+
}, inputSource, true);
|
|
2007
2042
|
try {
|
|
2008
|
-
|
|
2009
|
-
|
|
2010
|
-
|
|
2011
|
-
|
|
2012
|
-
role: "user",
|
|
2013
|
-
type: "text",
|
|
2014
|
-
content: request.prompt,
|
|
2015
|
-
id: chatmessageId,
|
|
2016
|
-
timestamp: Date.now(),
|
|
2017
|
-
attachments: request.promptContext?.attachments,
|
|
2018
|
-
})
|
|
2019
|
-
.catch((err) => {
|
|
2020
|
-
this.getLogger().warn("[ai-service] Failed to echo pre-call paywall user prompt", getErrorMeta(err));
|
|
2021
|
-
});
|
|
2022
|
-
}
|
|
2043
|
+
await this.chatSessionStore.recordUser(request.prompt, {
|
|
2044
|
+
attachments: request.promptContext?.attachments,
|
|
2045
|
+
messageId,
|
|
2046
|
+
});
|
|
2023
2047
|
}
|
|
2024
2048
|
catch (err) {
|
|
2025
2049
|
this.getLogger().warn("[ai-service] Failed to persist pre-call paywall user prompt", getErrorMeta(err));
|
|
@@ -2036,8 +2060,37 @@ export class AiService extends TracedEventEmitter {
|
|
|
2036
2060
|
// `tool_permission_response` is intentionally skipped — those
|
|
2037
2061
|
// don't have a persisted chat representation. The user will see
|
|
2038
2062
|
// the permission prompt again on resume.
|
|
2063
|
+
const isTypedOverride = (responseMetadata.type === "multi_choice_response" &&
|
|
2064
|
+
responseMetadata.selectedChoiceIndices.length === 0) ||
|
|
2065
|
+
(responseMetadata.type === "plan_response" &&
|
|
2066
|
+
!responseMetadata.approved);
|
|
2067
|
+
const responseMessage = responseMetadata.type === "multi_choice_response" &&
|
|
2068
|
+
responseMetadata.selectedChoiceIndices.length > 0
|
|
2069
|
+
? {
|
|
2070
|
+
content: request.prompt,
|
|
2071
|
+
id: randomUUID(),
|
|
2072
|
+
responseToMessageId: responseMetadata.responseToMessageId,
|
|
2073
|
+
role: "user",
|
|
2074
|
+
selectedChoiceIndices: responseMetadata.selectedChoiceIndices,
|
|
2075
|
+
selectedScopes: responseMetadata.selectedScopes,
|
|
2076
|
+
timestamp: Date.now(),
|
|
2077
|
+
type: "multi_choice_response",
|
|
2078
|
+
}
|
|
2079
|
+
: isTypedOverride
|
|
2080
|
+
? {
|
|
2081
|
+
content: request.prompt,
|
|
2082
|
+
id: randomUUID(),
|
|
2083
|
+
role: "user",
|
|
2084
|
+
timestamp: Date.now(),
|
|
2085
|
+
type: "text",
|
|
2086
|
+
}
|
|
2087
|
+
: undefined;
|
|
2088
|
+
if (responseMessage) {
|
|
2089
|
+
this.publishUserInput(responseMessage, inputSource, isTypedOverride);
|
|
2090
|
+
}
|
|
2039
2091
|
const metadata = responseMetadata.type === "multi_choice_response"
|
|
2040
2092
|
? {
|
|
2093
|
+
...(responseMessage?.id ? { messageId: responseMessage.id } : {}),
|
|
2041
2094
|
responseToMessageId: responseMetadata.responseToMessageId,
|
|
2042
2095
|
selectedChoiceIndices: responseMetadata.selectedChoiceIndices,
|
|
2043
2096
|
selectedScopes: responseMetadata.selectedScopes,
|
|
@@ -2061,13 +2114,19 @@ export class AiService extends TracedEventEmitter {
|
|
|
2061
2114
|
selectedLabel: responseMetadata.selectedLabel,
|
|
2062
2115
|
}
|
|
2063
2116
|
: {
|
|
2117
|
+
...(responseMessage?.id
|
|
2118
|
+
? { messageId: responseMessage.id }
|
|
2119
|
+
: {}),
|
|
2064
2120
|
responseToMessageId: responseMetadata.responseToMessageId,
|
|
2065
2121
|
approved: responseMetadata.approved,
|
|
2066
2122
|
enableTesting: responseMetadata.enableTesting,
|
|
2067
2123
|
};
|
|
2068
2124
|
try {
|
|
2069
2125
|
const chatmessageId = await this.chatSessionStore.recordUserResponse(request.prompt, responseMetadata.type, metadata);
|
|
2070
|
-
if (chatmessageId &&
|
|
2126
|
+
if (chatmessageId &&
|
|
2127
|
+
this.clark.context.peer &&
|
|
2128
|
+
!responseMessage &&
|
|
2129
|
+
inputSource?.kind !== "editor") {
|
|
2071
2130
|
void this.clark.context.peer.call
|
|
2072
2131
|
.aiPushMessage({
|
|
2073
2132
|
role: "user",
|
|
@@ -2218,7 +2277,7 @@ export class AiService extends TracedEventEmitter {
|
|
|
2218
2277
|
}
|
|
2219
2278
|
}
|
|
2220
2279
|
}
|
|
2221
|
-
async handleAiGenerate(request) {
|
|
2280
|
+
async handleAiGenerate(request, inputSource) {
|
|
2222
2281
|
this.getLogger().info(`[ai-service] handleAiGenerate: peerId=${this.stablePeer.peerId ?? "unknown"}`);
|
|
2223
2282
|
this.storeMigrationTurnCredentials(request.jwt, request.llmConfig);
|
|
2224
2283
|
if (this.clark.state === ClarkStateNames.Dead) {
|
|
@@ -2254,7 +2313,7 @@ export class AiService extends TracedEventEmitter {
|
|
|
2254
2313
|
// advice + open modal via the same `aiSetGenerationState(CANCELLED,
|
|
2255
2314
|
// paywallReason)` saga path the mid-stream paywall uses, then resolve
|
|
2256
2315
|
// the socket call so the UI's catch doesn't run. (APPS-4080)
|
|
2257
|
-
const paywallReason = await this.tryHandlePaywallForRequest(request);
|
|
2316
|
+
const paywallReason = await this.tryHandlePaywallForRequest(request, inputSource);
|
|
2258
2317
|
if (paywallReason) {
|
|
2259
2318
|
recordPromptEntryRejection({
|
|
2260
2319
|
dedupeKey: resolvePromptRequestDedupeKey(request),
|
|
@@ -2348,6 +2407,7 @@ export class AiService extends TracedEventEmitter {
|
|
|
2348
2407
|
.with(activeGenerationTrace.context, () => Promise.resolve(transitionTo({
|
|
2349
2408
|
type: USER_SENT_PROMPT,
|
|
2350
2409
|
request,
|
|
2410
|
+
inputSource,
|
|
2351
2411
|
})))
|
|
2352
2412
|
.catch((error) => {
|
|
2353
2413
|
activeGenerationTrace.finish(error);
|
|
@@ -2789,6 +2849,9 @@ export class AiService extends TracedEventEmitter {
|
|
|
2789
2849
|
}
|
|
2790
2850
|
async handleUserAcceptedDraft(silently) {
|
|
2791
2851
|
this.getLogger().info(`[ai-service] handleUserAcceptedDraft`);
|
|
2852
|
+
if (this.clark.state === ClarkStateNames.Idle) {
|
|
2853
|
+
return;
|
|
2854
|
+
}
|
|
2792
2855
|
this.submitAcceptanceEvaluation(true);
|
|
2793
2856
|
if (this.clark.state !== ClarkStateNames.AwaitingUser) {
|
|
2794
2857
|
throw new Error("Service is not awaiting user input");
|
|
@@ -2809,10 +2872,10 @@ export class AiService extends TracedEventEmitter {
|
|
|
2809
2872
|
});
|
|
2810
2873
|
}
|
|
2811
2874
|
/**
|
|
2812
|
-
* Called when the
|
|
2813
|
-
*
|
|
2875
|
+
* Called when the integration setup form closes. Clears backend state so
|
|
2876
|
+
* Clark knows the form is no longer open.
|
|
2814
2877
|
*/
|
|
2815
|
-
async handleIntegrationSetupClosed() {
|
|
2878
|
+
async handleIntegrationSetupClosed(request = undefined) {
|
|
2816
2879
|
this.clark.updateContext((ctx) => ({
|
|
2817
2880
|
...ctx,
|
|
2818
2881
|
pendingIntegrationActionPrompt: undefined,
|
|
@@ -2825,7 +2888,9 @@ export class AiService extends TracedEventEmitter {
|
|
|
2825
2888
|
contextManagerV2: this.contextManagerV2,
|
|
2826
2889
|
applicationId: this.config.applicationId,
|
|
2827
2890
|
};
|
|
2828
|
-
await this.clark.recordSystemMessage(params, "Environment event",
|
|
2891
|
+
await this.clark.recordSystemMessage(params, "Environment event", request && request.outcome === "saved"
|
|
2892
|
+
? "User saved the integration and closed the integration setup form successfully."
|
|
2893
|
+
: "User closed the integration setup form. The integration setup might not have been completed successfully.");
|
|
2829
2894
|
}
|
|
2830
2895
|
async handleUserCanceled() {
|
|
2831
2896
|
// Drop parked/in-flight permission prompts first so interval replay and
|
|
@@ -2934,7 +2999,7 @@ export class AiService extends TracedEventEmitter {
|
|
|
2934
2999
|
* Submit a prompt with interrupt behavior.
|
|
2935
3000
|
* If not busy, starts immediately. Otherwise interrupts and continues.
|
|
2936
3001
|
*/
|
|
2937
|
-
async handleAiGenerateWithQueue(request, mode) {
|
|
3002
|
+
async handleAiGenerateWithQueue(request, mode, inputSource) {
|
|
2938
3003
|
this.getLogger().info(`[ai-service] handleAiGenerateWithQueue: peerId=${this.stablePeer.peerId ?? "unknown"}, mode=${mode}`);
|
|
2939
3004
|
if (this.clark.state === ClarkStateNames.Dead) {
|
|
2940
3005
|
recordPromptEntryRejection({
|
|
@@ -2953,18 +3018,25 @@ export class AiService extends TracedEventEmitter {
|
|
|
2953
3018
|
return { status: "started" };
|
|
2954
3019
|
}
|
|
2955
3020
|
this.assertNoActivePolicyGateRun();
|
|
3021
|
+
// Read after the generation is under way: both paths write the prompt id
|
|
3022
|
+
// into context before they return, and it is the same id every
|
|
3023
|
+
// `aiSetGenerationState` push for this generation carries. Handing it back
|
|
3024
|
+
// is what lets a caller recognize its own terminal state. (APPS-5161)
|
|
2956
3025
|
if (!this.isBusy()) {
|
|
2957
|
-
await this.handleAiGenerate(request);
|
|
2958
|
-
return { status: "started" };
|
|
3026
|
+
await this.handleAiGenerate(request, inputSource);
|
|
3027
|
+
return { generationId: this.clark.context.promptId, status: "started" };
|
|
2959
3028
|
}
|
|
2960
|
-
await this.interruptAndContinue(request);
|
|
2961
|
-
return {
|
|
3029
|
+
await this.interruptAndContinue(request, inputSource);
|
|
3030
|
+
return {
|
|
3031
|
+
generationId: this.clark.context.promptId,
|
|
3032
|
+
status: "interrupted",
|
|
3033
|
+
};
|
|
2962
3034
|
}
|
|
2963
3035
|
/**
|
|
2964
3036
|
* Interrupt current generation and continue with new prompt.
|
|
2965
3037
|
* The partial response is preserved in chat history for context.
|
|
2966
3038
|
*/
|
|
2967
|
-
async interruptAndContinue(request) {
|
|
3039
|
+
async interruptAndContinue(request, inputSource) {
|
|
2968
3040
|
// The user interrupted — abort the in-flight generation FIRST, before
|
|
2969
3041
|
// anything else. The caller (UI saga) signals `interrupted` immediately
|
|
2970
3042
|
// on this method's return, so the old run must actually be dead by
|
|
@@ -3015,7 +3087,7 @@ export class AiService extends TracedEventEmitter {
|
|
|
3015
3087
|
// `handleAiGenerate`. The aborted run is NOT resumed; the user can
|
|
3016
3088
|
// start fresh once credits are restored via the same "send any
|
|
3017
3089
|
// message" affordance the standard paywall uses.
|
|
3018
|
-
const paywallReason = await this.tryHandlePaywallForRequest(request);
|
|
3090
|
+
const paywallReason = await this.tryHandlePaywallForRequest(request, inputSource);
|
|
3019
3091
|
if (paywallReason) {
|
|
3020
3092
|
recordPromptEntryRejection({
|
|
3021
3093
|
dedupeKey: resolvePromptRequestDedupeKey(request),
|
|
@@ -3039,7 +3111,7 @@ export class AiService extends TracedEventEmitter {
|
|
|
3039
3111
|
...request,
|
|
3040
3112
|
prompt: enhancedPrompt,
|
|
3041
3113
|
};
|
|
3042
|
-
await this.handleAiGenerate(enhancedRequest);
|
|
3114
|
+
await this.handleAiGenerate(enhancedRequest, inputSource);
|
|
3043
3115
|
}
|
|
3044
3116
|
/**
|
|
3045
3117
|
* Wait for the FSM to transition out of busy state after abort.
|
|
@@ -4930,14 +5002,25 @@ export class AiService extends TracedEventEmitter {
|
|
|
4930
5002
|
// Not generating, return immediately
|
|
4931
5003
|
return;
|
|
4932
5004
|
}
|
|
4933
|
-
|
|
4934
|
-
|
|
4935
|
-
|
|
5005
|
+
return new Promise((resolve, reject) => {
|
|
5006
|
+
const complete = () => {
|
|
5007
|
+
clearTimeout(timeout);
|
|
5008
|
+
resolve();
|
|
5009
|
+
};
|
|
5010
|
+
this.generationCompleteWaiters.add(complete);
|
|
5011
|
+
const timeout = setTimeout(() => {
|
|
5012
|
+
if (!this.generationCompleteWaiters.delete(complete)) {
|
|
5013
|
+
return;
|
|
5014
|
+
}
|
|
5015
|
+
const error = new Error(`generation completion wait timed out after ${GENERATION_COMPLETION_WAIT_TIMEOUT_MS}ms`);
|
|
5016
|
+
this.getLogger().warn(`[ai-service] ${error.message}`);
|
|
5017
|
+
reject(error);
|
|
5018
|
+
}, GENERATION_COMPLETION_WAIT_TIMEOUT_MS);
|
|
5019
|
+
timeout.unref();
|
|
4936
5020
|
});
|
|
4937
5021
|
}
|
|
4938
5022
|
/**
|
|
4939
|
-
*
|
|
4940
|
-
* Should be called when Clark transitions to Idle or AwaitingUser state.
|
|
5023
|
+
* Resolve generation waiters when Clark reaches a terminal state.
|
|
4941
5024
|
*/
|
|
4942
5025
|
triggerGenerationComplete() {
|
|
4943
5026
|
// The FSM parked, so any still-open generation span is over. Runs that
|
|
@@ -4945,10 +5028,10 @@ export class AiService extends TracedEventEmitter {
|
|
|
4945
5028
|
// ends it on the paths that emit neither (user/agent cancel,
|
|
4946
5029
|
// runtime-updated-without-edits, planning errors that park in Idle).
|
|
4947
5030
|
this.activeGenerationTrace?.finish();
|
|
4948
|
-
|
|
4949
|
-
|
|
4950
|
-
|
|
4951
|
-
|
|
5031
|
+
const waiters = Array.from(this.generationCompleteWaiters);
|
|
5032
|
+
this.generationCompleteWaiters.clear();
|
|
5033
|
+
for (const resolve of waiters) {
|
|
5034
|
+
resolve();
|
|
4952
5035
|
}
|
|
4953
5036
|
}
|
|
4954
5037
|
async isGeneratingFullAppOrBroadUpdate() {
|