@vellumai/plugin-api 0.10.10-dev.202607212031.507c9c7 → 0.10.10-staging.2
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/index.d.ts +19 -477
- package/index.js +0 -8
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -295,21 +295,33 @@ declare const AssistantConfigSchema: z.ZodObject<{
|
|
|
295
295
|
}>>;
|
|
296
296
|
}, z.core.$strip>>;
|
|
297
297
|
"web-fetch": z.ZodDefault<z.ZodObject<{
|
|
298
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
299
|
+
managed: "managed";
|
|
300
|
+
"your-own": "your-own";
|
|
301
|
+
}>>;
|
|
298
302
|
provider: z.ZodDefault<z.ZodEnum<{
|
|
299
303
|
[x: string]: string;
|
|
300
304
|
}>>;
|
|
301
305
|
}, z.core.$strip>>;
|
|
302
306
|
stt: z.ZodDefault<z.ZodObject<{
|
|
303
|
-
|
|
307
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
308
|
+
managed: "managed";
|
|
309
|
+
"your-own": "your-own";
|
|
310
|
+
}>>;
|
|
311
|
+
provider: z.ZodEnum<{
|
|
304
312
|
vellum: "vellum";
|
|
305
313
|
deepgram: "deepgram";
|
|
306
314
|
"google-gemini": "google-gemini";
|
|
307
315
|
"openai-whisper": "openai-whisper";
|
|
308
316
|
xai: "xai";
|
|
309
|
-
}
|
|
317
|
+
}>;
|
|
310
318
|
providers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>>>;
|
|
311
319
|
}, z.core.$strip>>;
|
|
312
320
|
tts: z.ZodDefault<z.ZodObject<{
|
|
321
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
322
|
+
managed: "managed";
|
|
323
|
+
"your-own": "your-own";
|
|
324
|
+
}>>;
|
|
313
325
|
provider: z.ZodDefault<z.ZodEnum<{
|
|
314
326
|
vellum: "vellum";
|
|
315
327
|
deepgram: "deepgram";
|
|
@@ -358,9 +370,7 @@ declare const AssistantConfigSchema: z.ZodObject<{
|
|
|
358
370
|
sampleRate: z.ZodDefault<z.ZodNumber>;
|
|
359
371
|
bitRate: z.ZodDefault<z.ZodNumber>;
|
|
360
372
|
}, z.core.$strip>>;
|
|
361
|
-
vellum: z.ZodDefault<z.ZodObject<{
|
|
362
|
-
model: z.ZodOptional<z.ZodString>;
|
|
363
|
-
}, z.core.$strip>>;
|
|
373
|
+
vellum: z.ZodDefault<z.ZodObject<{}, z.core.$strip>>;
|
|
364
374
|
}, z.core.$strip>>;
|
|
365
375
|
}, z.core.$strip>>;
|
|
366
376
|
"google-oauth": z.ZodDefault<z.ZodObject<{
|
|
@@ -707,16 +717,13 @@ declare const AssistantConfigSchema: z.ZodObject<{
|
|
|
707
717
|
gemini: "gemini";
|
|
708
718
|
fireworks: "fireworks";
|
|
709
719
|
openrouter: "openrouter";
|
|
710
|
-
vellum: "vellum";
|
|
711
720
|
ollama: "ollama";
|
|
712
721
|
"vercel-ai-gateway": "vercel-ai-gateway";
|
|
713
722
|
"openai-compatible": "openai-compatible";
|
|
714
723
|
minimax: "minimax";
|
|
715
724
|
atlascloud: "atlascloud";
|
|
716
725
|
together: "together";
|
|
717
|
-
litellm: "litellm";
|
|
718
726
|
baseten: "baseten";
|
|
719
|
-
chatgpt: "chatgpt";
|
|
720
727
|
}>>;
|
|
721
728
|
model: z.ZodOptional<z.ZodString>;
|
|
722
729
|
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
@@ -832,7 +839,6 @@ declare const AssistantConfigSchema: z.ZodObject<{
|
|
|
832
839
|
skillCategoryInference: "skillCategoryInference";
|
|
833
840
|
inference: "inference";
|
|
834
841
|
vision: "vision";
|
|
835
|
-
voiceFrontDecision: "voiceFrontDecision";
|
|
836
842
|
trustRuleSuggestion: "trustRuleSuggestion";
|
|
837
843
|
homeGreeting: "homeGreeting";
|
|
838
844
|
homeSuggestedPrompts: "homeSuggestedPrompts";
|
|
@@ -844,16 +850,13 @@ declare const AssistantConfigSchema: z.ZodObject<{
|
|
|
844
850
|
gemini: "gemini";
|
|
845
851
|
fireworks: "fireworks";
|
|
846
852
|
openrouter: "openrouter";
|
|
847
|
-
vellum: "vellum";
|
|
848
853
|
ollama: "ollama";
|
|
849
854
|
"vercel-ai-gateway": "vercel-ai-gateway";
|
|
850
855
|
"openai-compatible": "openai-compatible";
|
|
851
856
|
minimax: "minimax";
|
|
852
857
|
atlascloud: "atlascloud";
|
|
853
858
|
together: "together";
|
|
854
|
-
litellm: "litellm";
|
|
855
859
|
baseten: "baseten";
|
|
856
|
-
chatgpt: "chatgpt";
|
|
857
860
|
}>>;
|
|
858
861
|
model: z.ZodOptional<z.ZodString>;
|
|
859
862
|
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
@@ -1177,21 +1180,6 @@ declare const AssistantConfigSchema: z.ZodObject<{
|
|
|
1177
1180
|
maxTurnDurationMs: z.ZodDefault<z.ZodNumber>;
|
|
1178
1181
|
bargeInMinSpeechMs: z.ZodDefault<z.ZodNumber>;
|
|
1179
1182
|
}, z.core.$strip>>;
|
|
1180
|
-
frontModel: z.ZodDefault<z.ZodObject<{
|
|
1181
|
-
endpointDecisionTimeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
1182
|
-
endpointExtensionMs: z.ZodDefault<z.ZodNumber>;
|
|
1183
|
-
endpointMaxExtensions: z.ZodDefault<z.ZodNumber>;
|
|
1184
|
-
ackFirstDeltaTimeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
1185
|
-
ackGenerationTimeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
1186
|
-
llmAckText: z.ZodDefault<z.ZodBoolean>;
|
|
1187
|
-
progress: z.ZodDefault<z.ZodObject<{
|
|
1188
|
-
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
1189
|
-
opsThreshold: z.ZodDefault<z.ZodNumber>;
|
|
1190
|
-
idleIntervalMs: z.ZodDefault<z.ZodNumber>;
|
|
1191
|
-
minGapMs: z.ZodDefault<z.ZodNumber>;
|
|
1192
|
-
generationTimeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
1193
|
-
}, z.core.$strip>>;
|
|
1194
|
-
}, z.core.$strip>>;
|
|
1195
1183
|
maxSessionDurationSeconds: z.ZodDefault<z.ZodNumber>;
|
|
1196
1184
|
archiveAudio: z.ZodDefault<z.ZodBoolean>;
|
|
1197
1185
|
}, z.core.$strip>>;
|
|
@@ -1949,8 +1937,6 @@ declare interface ConfigChanged {
|
|
|
1949
1937
|
type: "config_changed";
|
|
1950
1938
|
}
|
|
1951
1939
|
|
|
1952
|
-
declare type ConfiguredProviderOptions = Pick<ResolveCallSiteOpts, "overrideProfile" | "forceOverrideProfile" | "selectionSeed">;
|
|
1953
|
-
|
|
1954
1940
|
declare type ConfirmationRequestEvent = z.infer<typeof ConfirmationRequestEventSchema>;
|
|
1955
1941
|
|
|
1956
1942
|
declare const ConfirmationRequestEventSchema: z.ZodObject<{
|
|
@@ -2404,11 +2390,6 @@ declare interface CopyBlockSurfaceData {
|
|
|
2404
2390
|
language?: string;
|
|
2405
2391
|
}
|
|
2406
2392
|
|
|
2407
|
-
/** Create a live voice connection bound to the caller's `send` transport. */
|
|
2408
|
-
export declare function createLiveVoiceConnection(options: {
|
|
2409
|
-
send: LiveVoiceFrameSender;
|
|
2410
|
-
}): LiveVoiceConnection;
|
|
2411
|
-
|
|
2412
2393
|
/**
|
|
2413
2394
|
* Plugin-facing credential resolution.
|
|
2414
2395
|
*
|
|
@@ -2824,7 +2805,10 @@ export declare function getAssistantName(): string | null;
|
|
|
2824
2805
|
* `callSite` is required — see `resolveConfiguredProvider`. Returns `null`
|
|
2825
2806
|
* when no providers are available.
|
|
2826
2807
|
*/
|
|
2827
|
-
export declare function getConfiguredProvider(callSite: LLMCallSite, opts?:
|
|
2808
|
+
export declare function getConfiguredProvider(callSite: LLMCallSite, opts?: {
|
|
2809
|
+
overrideProfile?: string;
|
|
2810
|
+
forceOverrideProfile?: boolean;
|
|
2811
|
+
}): Promise<Provider | null>;
|
|
2828
2812
|
|
|
2829
2813
|
/** Look up a conversation row by id. */
|
|
2830
2814
|
export declare function getConversation(id: string): Promise<ConversationRow | null>;
|
|
@@ -2858,34 +2842,6 @@ declare interface GetSigningIdentityRequest {
|
|
|
2858
2842
|
requestId: string;
|
|
2859
2843
|
}
|
|
2860
2844
|
|
|
2861
|
-
/**
|
|
2862
|
-
* Returns the workspace root for user-facing state.
|
|
2863
|
-
*
|
|
2864
|
-
* When the VELLUM_WORKSPACE_DIR env var is set, returns that value (used in
|
|
2865
|
-
* containerized deployments where the workspace is a separate volume).
|
|
2866
|
-
* Otherwise falls back to ~/.vellum/workspace.
|
|
2867
|
-
*/
|
|
2868
|
-
export declare function getWorkspaceDir(): string;
|
|
2869
|
-
|
|
2870
|
-
/**
|
|
2871
|
-
* The subset of the Qdrant client the orphan sweep needs, narrowed to an
|
|
2872
|
-
* interface so the sweep can be unit-tested with a fake client.
|
|
2873
|
-
*/
|
|
2874
|
-
declare interface GraphNodeSweepClient {
|
|
2875
|
-
scrollByTargetType(targetType: string): Promise<Array<{
|
|
2876
|
-
id: string;
|
|
2877
|
-
payload: Record<string, unknown>;
|
|
2878
|
-
}>>;
|
|
2879
|
-
deleteByTarget(targetType: string, targetId: string): Promise<void>;
|
|
2880
|
-
}
|
|
2881
|
-
|
|
2882
|
-
declare interface GraphNodeSweepResult {
|
|
2883
|
-
/** Distinct `graph_node` target ids currently indexed in Qdrant. */
|
|
2884
|
-
scanned: number;
|
|
2885
|
-
/** Orphan target ids whose Qdrant points were deleted. */
|
|
2886
|
-
deleted: number;
|
|
2887
|
-
}
|
|
2888
|
-
|
|
2889
2845
|
declare interface GuardianActionDecisionResponse {
|
|
2890
2846
|
type: "guardian_action_decision_response";
|
|
2891
2847
|
applied: boolean;
|
|
@@ -3665,34 +3621,6 @@ export declare function isConversationProcessing(id: string): Promise<boolean>;
|
|
|
3665
3621
|
*/
|
|
3666
3622
|
export declare function isMaxTokensStopReason(stopReason: string | null | undefined): boolean;
|
|
3667
3623
|
|
|
3668
|
-
/**
|
|
3669
|
-
* A user-role message carrying only tool results — local `tool_result` or
|
|
3670
|
-
* server `web_search_tool_result` — not a fresh prompt.
|
|
3671
|
-
*/
|
|
3672
|
-
export declare function isToolResultMessage(message: Message): boolean;
|
|
3673
|
-
|
|
3674
|
-
/**
|
|
3675
|
-
* Whether a provider error message indicates the model can't accept image
|
|
3676
|
-
* input. Providers wrap raw upstream rejections in their own prose (e.g.
|
|
3677
|
-
* `Anthropic API error (400): …`, `Gemini API error (…): …`), so the classifier
|
|
3678
|
-
* matches the full {@link VISION_NOT_SUPPORTED_PATTERNS} set rather than any
|
|
3679
|
-
* single normalized phrase.
|
|
3680
|
-
*/
|
|
3681
|
-
export declare function isVisionNotSupportedError(message: string): boolean;
|
|
3682
|
-
|
|
3683
|
-
/**
|
|
3684
|
-
* Index of the last user message carrying `tool_result` blocks — the
|
|
3685
|
-
* "current turn" boundary {@link stripOldMediaBlocks} keeps intact while
|
|
3686
|
-
* stripping media from older tool results. Returns -1 when no user message
|
|
3687
|
-
* has tool results.
|
|
3688
|
-
*
|
|
3689
|
-
* Targets the last user message with tool_results (not just the last user
|
|
3690
|
-
* message) because a plain-text user message may follow the tool-result turn;
|
|
3691
|
-
* using the last user message unconditionally would leave the most recent tool
|
|
3692
|
-
* screenshots unprotected from stripping.
|
|
3693
|
-
*/
|
|
3694
|
-
export declare function lastToolResultUserMessageIndex(history: Message[]): number;
|
|
3695
|
-
|
|
3696
3624
|
/**
|
|
3697
3625
|
* The remote skill catalog, fetched via the shared catalog cache. Entries
|
|
3698
3626
|
* whose declared feature flag is disabled are reported with
|
|
@@ -3733,209 +3661,6 @@ declare interface ListSurfaceData {
|
|
|
3733
3661
|
selectionMode: "single" | "multiple" | "none";
|
|
3734
3662
|
}
|
|
3735
3663
|
|
|
3736
|
-
declare const _LIVE_VOICE_SERVER_FRAME_TYPES: readonly ["ready", "busy", "speech_started", "utterance_end", "utterance_discarded", "stt_partial", "stt_final", "thinking", "assistant_text_delta", "tts_audio", "tts_done", "turn_cancelled", "metrics", "archived", "error"];
|
|
3737
|
-
|
|
3738
|
-
declare const LIVE_VOICE_TURN_DETECTION_MODES: readonly ["manual", "server_vad"];
|
|
3739
|
-
|
|
3740
|
-
declare interface LiveVoiceArchivedServerFrame extends LiveVoiceServerFrameBase {
|
|
3741
|
-
readonly type: "archived";
|
|
3742
|
-
readonly conversationId: string;
|
|
3743
|
-
readonly sessionId: string;
|
|
3744
|
-
readonly turnId?: string;
|
|
3745
|
-
readonly role?: "user" | "assistant";
|
|
3746
|
-
readonly attachmentId?: string;
|
|
3747
|
-
readonly attachmentIds?: string[];
|
|
3748
|
-
readonly warning?: {
|
|
3749
|
-
readonly code: string;
|
|
3750
|
-
readonly message: string;
|
|
3751
|
-
};
|
|
3752
|
-
}
|
|
3753
|
-
|
|
3754
|
-
declare interface LiveVoiceAssistantTextDeltaServerFrame extends LiveVoiceServerFrameBase {
|
|
3755
|
-
readonly type: "assistant_text_delta";
|
|
3756
|
-
readonly text: string;
|
|
3757
|
-
}
|
|
3758
|
-
|
|
3759
|
-
declare interface LiveVoiceBusyServerFrame extends LiveVoiceServerFrameBase {
|
|
3760
|
-
readonly type: "busy";
|
|
3761
|
-
readonly activeSessionId: string;
|
|
3762
|
-
}
|
|
3763
|
-
|
|
3764
|
-
export declare interface LiveVoiceConnection {
|
|
3765
|
-
/**
|
|
3766
|
-
* The active session id once a `start` frame has been accepted, else
|
|
3767
|
-
* `undefined`. Read-only — the connection assigns it on `start` and clears
|
|
3768
|
-
* it on `end`, teardown, or a session that the manager no longer knows.
|
|
3769
|
-
*/
|
|
3770
|
-
readonly sessionId: string | undefined;
|
|
3771
|
-
/**
|
|
3772
|
-
* Handle one inbound transport message — a JSON text frame or a binary
|
|
3773
|
-
* audio chunk. Never rejects: protocol and handler failures are reported
|
|
3774
|
-
* back to the client as `error` frames.
|
|
3775
|
-
*/
|
|
3776
|
-
handleMessage(message: string | ArrayBuffer | ArrayBufferView): Promise<void>;
|
|
3777
|
-
/**
|
|
3778
|
-
* Release the session bound to this connection when the transport closes.
|
|
3779
|
-
* Idempotent — a no-op when no session is active.
|
|
3780
|
-
*/
|
|
3781
|
-
release(reason?: LiveVoiceSessionCloseReason): void;
|
|
3782
|
-
}
|
|
3783
|
-
|
|
3784
|
-
declare interface LiveVoiceErrorServerFrame extends LiveVoiceServerFrameBase {
|
|
3785
|
-
readonly type: "error";
|
|
3786
|
-
readonly code: LiveVoiceProtocolErrorCode;
|
|
3787
|
-
readonly message: string;
|
|
3788
|
-
/**
|
|
3789
|
-
* True when the session continues past the error (e.g. a transient
|
|
3790
|
-
* transcriber blip or one failed TTS segment). Absent (including on frames
|
|
3791
|
-
* from older daemons) means the error is terminal for the session.
|
|
3792
|
-
*/
|
|
3793
|
-
readonly recoverable?: boolean;
|
|
3794
|
-
}
|
|
3795
|
-
|
|
3796
|
-
/**
|
|
3797
|
-
* Sends one fully-sequenced server frame to the client over the caller's
|
|
3798
|
-
* transport. The frame is a plain object; the caller is responsible for wire
|
|
3799
|
-
* encoding (e.g. `JSON.stringify` for a text WebSocket).
|
|
3800
|
-
*/
|
|
3801
|
-
export declare type LiveVoiceFrameSender = (frame: LiveVoiceServerFrame) => void;
|
|
3802
|
-
|
|
3803
|
-
declare interface LiveVoiceMetricsServerFrame extends LiveVoiceServerFrameBase {
|
|
3804
|
-
readonly type: "metrics";
|
|
3805
|
-
readonly event?: string;
|
|
3806
|
-
readonly sessionId?: string;
|
|
3807
|
-
readonly conversationId?: string;
|
|
3808
|
-
readonly turnId: string;
|
|
3809
|
-
readonly metrics?: unknown;
|
|
3810
|
-
readonly sttMs: number | null;
|
|
3811
|
-
readonly llmFirstDeltaMs: number | null;
|
|
3812
|
-
readonly ttsFirstAudioMs: number | null;
|
|
3813
|
-
/** End-of-speech (utterance_end, or ptt_release in manual mode) to first TTS audio. */
|
|
3814
|
-
readonly roundTripMs: number | null;
|
|
3815
|
-
readonly totalMs: number | null;
|
|
3816
|
-
/**
|
|
3817
|
-
* Semantic-endpointing "hold" decisions taken during the turn. Present only
|
|
3818
|
-
* when the endpoint decider was consulted (otherwise the field is absent,
|
|
3819
|
-
* keeping frames unchanged).
|
|
3820
|
-
*/
|
|
3821
|
-
readonly endpointHoldCount?: number;
|
|
3822
|
-
/** Worst endpoint-decision latency observed during the turn. */
|
|
3823
|
-
readonly endpointDecisionMaxLatencyMs?: number;
|
|
3824
|
-
/** Which floor-holding ack actually spoke during the turn, if any. */
|
|
3825
|
-
readonly ackSpoken?: "first_delta" | "tool_use";
|
|
3826
|
-
/**
|
|
3827
|
-
* Spoken progress narrations during the turn. Present only when at least
|
|
3828
|
-
* one progress update spoke (otherwise the field is absent, keeping frames
|
|
3829
|
-
* unchanged).
|
|
3830
|
-
*/
|
|
3831
|
-
readonly progressUpdatesSpoken?: number;
|
|
3832
|
-
}
|
|
3833
|
-
|
|
3834
|
-
declare const LiveVoiceProtocolErrorCode: {
|
|
3835
|
-
readonly InvalidJson: "invalid_json";
|
|
3836
|
-
readonly InvalidFrame: "invalid_frame";
|
|
3837
|
-
readonly UnknownType: "unknown_type";
|
|
3838
|
-
readonly MissingRequiredField: "missing_required_field";
|
|
3839
|
-
readonly InvalidField: "invalid_field";
|
|
3840
|
-
readonly InvalidAudioPayload: "invalid_audio_payload";
|
|
3841
|
-
/**
|
|
3842
|
-
* Session startup was rejected because the daemon cannot run both audio
|
|
3843
|
-
* legs (STT/TTS providers or credentials are unresolved). The error
|
|
3844
|
-
* `message` names the offending provider(s) and missing credential(s).
|
|
3845
|
-
*/
|
|
3846
|
-
readonly CredentialsUnavailable: "credentials_unavailable";
|
|
3847
|
-
};
|
|
3848
|
-
|
|
3849
|
-
declare type LiveVoiceProtocolErrorCode = (typeof LiveVoiceProtocolErrorCode)[keyof typeof LiveVoiceProtocolErrorCode];
|
|
3850
|
-
|
|
3851
|
-
declare interface LiveVoiceReadyServerFrame extends LiveVoiceServerFrameBase {
|
|
3852
|
-
readonly type: "ready";
|
|
3853
|
-
readonly sessionId: string;
|
|
3854
|
-
readonly conversationId: string;
|
|
3855
|
-
/**
|
|
3856
|
-
* Echoes the turn-detection mode the session is actually running, so
|
|
3857
|
-
* clients can detect a daemon that ignored a requested mode. Absent
|
|
3858
|
-
* (older daemons) means "manual".
|
|
3859
|
-
*/
|
|
3860
|
-
readonly turnDetection?: LiveVoiceTurnDetectionMode;
|
|
3861
|
-
}
|
|
3862
|
-
|
|
3863
|
-
export declare type LiveVoiceServerFrame = LiveVoiceReadyServerFrame | LiveVoiceBusyServerFrame | LiveVoiceSpeechStartedServerFrame | LiveVoiceUtteranceEndServerFrame | LiveVoiceUtteranceDiscardedServerFrame | LiveVoiceSttPartialServerFrame | LiveVoiceSttFinalServerFrame | LiveVoiceThinkingServerFrame | LiveVoiceAssistantTextDeltaServerFrame | LiveVoiceTtsAudioServerFrame | LiveVoiceTtsDoneServerFrame | LiveVoiceTurnCancelledServerFrame | LiveVoiceMetricsServerFrame | LiveVoiceArchivedServerFrame | LiveVoiceErrorServerFrame;
|
|
3864
|
-
|
|
3865
|
-
declare interface LiveVoiceServerFrameBase {
|
|
3866
|
-
readonly type: LiveVoiceServerFrameType;
|
|
3867
|
-
readonly seq: number;
|
|
3868
|
-
}
|
|
3869
|
-
|
|
3870
|
-
declare type LiveVoiceServerFrameType = (typeof _LIVE_VOICE_SERVER_FRAME_TYPES)[number];
|
|
3871
|
-
|
|
3872
|
-
export declare type LiveVoiceSessionCloseReason = "client_end" | "error" | "websocket_close" | "transport_closed" | "manager_shutdown";
|
|
3873
|
-
|
|
3874
|
-
/**
|
|
3875
|
-
* Emitted when the server VAD detects user speech. The client MUST
|
|
3876
|
-
* immediately stop local TTS playback — this doubles as the flush-tail-audio
|
|
3877
|
-
* signal (the in-app analog of the phone stack's buffered-audio clear).
|
|
3878
|
-
*/
|
|
3879
|
-
declare interface LiveVoiceSpeechStartedServerFrame extends LiveVoiceServerFrameBase {
|
|
3880
|
-
readonly type: "speech_started";
|
|
3881
|
-
}
|
|
3882
|
-
|
|
3883
|
-
declare interface LiveVoiceSttFinalServerFrame extends LiveVoiceServerFrameBase {
|
|
3884
|
-
readonly type: "stt_final";
|
|
3885
|
-
readonly text: string;
|
|
3886
|
-
}
|
|
3887
|
-
|
|
3888
|
-
declare interface LiveVoiceSttPartialServerFrame extends LiveVoiceServerFrameBase {
|
|
3889
|
-
readonly type: "stt_partial";
|
|
3890
|
-
readonly text: string;
|
|
3891
|
-
}
|
|
3892
|
-
|
|
3893
|
-
declare interface LiveVoiceThinkingServerFrame extends LiveVoiceServerFrameBase {
|
|
3894
|
-
readonly type: "thinking";
|
|
3895
|
-
readonly turnId: string;
|
|
3896
|
-
}
|
|
3897
|
-
|
|
3898
|
-
declare interface LiveVoiceTtsAudioServerFrame extends LiveVoiceServerFrameBase {
|
|
3899
|
-
readonly type: "tts_audio";
|
|
3900
|
-
readonly mimeType: string;
|
|
3901
|
-
readonly sampleRate: number;
|
|
3902
|
-
readonly dataBase64: string;
|
|
3903
|
-
}
|
|
3904
|
-
|
|
3905
|
-
declare interface LiveVoiceTtsDoneServerFrame extends LiveVoiceServerFrameBase {
|
|
3906
|
-
readonly type: "tts_done";
|
|
3907
|
-
readonly turnId: string;
|
|
3908
|
-
}
|
|
3909
|
-
|
|
3910
|
-
/**
|
|
3911
|
-
* Emitted when an in-flight assistant turn is aborted by barge-in. The client
|
|
3912
|
-
* must drop any buffered tts_audio for that turn; no tts_done will follow.
|
|
3913
|
-
*/
|
|
3914
|
-
declare interface LiveVoiceTurnCancelledServerFrame extends LiveVoiceServerFrameBase {
|
|
3915
|
-
readonly type: "turn_cancelled";
|
|
3916
|
-
readonly turnId: string;
|
|
3917
|
-
}
|
|
3918
|
-
|
|
3919
|
-
declare type LiveVoiceTurnDetectionMode = (typeof LIVE_VOICE_TURN_DETECTION_MODES)[number];
|
|
3920
|
-
|
|
3921
|
-
/**
|
|
3922
|
-
* Emitted only in server_vad mode when the closed utterance produced no
|
|
3923
|
-
* usable speech: it is dropped without an assistant turn and the client
|
|
3924
|
-
* should return to listening.
|
|
3925
|
-
*/
|
|
3926
|
-
declare interface LiveVoiceUtteranceDiscardedServerFrame extends LiveVoiceServerFrameBase {
|
|
3927
|
-
readonly type: "utterance_discarded";
|
|
3928
|
-
}
|
|
3929
|
-
|
|
3930
|
-
/**
|
|
3931
|
-
* Emitted when the server VAD closes the utterance and the turn's
|
|
3932
|
-
* transcription begins (plays the role ptt_release plays in manual mode).
|
|
3933
|
-
*/
|
|
3934
|
-
declare interface LiveVoiceUtteranceEndServerFrame extends LiveVoiceServerFrameBase {
|
|
3935
|
-
readonly type: "utterance_end";
|
|
3936
|
-
readonly reason: "silence" | "max-duration";
|
|
3937
|
-
}
|
|
3938
|
-
|
|
3939
3664
|
export declare type LLMCallSite = z.infer<typeof LLMCallSiteEnum>;
|
|
3940
3665
|
|
|
3941
3666
|
/**
|
|
@@ -3982,7 +3707,6 @@ declare const LLMCallSiteEnum: z.ZodEnum<{
|
|
|
3982
3707
|
skillCategoryInference: "skillCategoryInference";
|
|
3983
3708
|
inference: "inference";
|
|
3984
3709
|
vision: "vision";
|
|
3985
|
-
voiceFrontDecision: "voiceFrontDecision";
|
|
3986
3710
|
trustRuleSuggestion: "trustRuleSuggestion";
|
|
3987
3711
|
homeGreeting: "homeGreeting";
|
|
3988
3712
|
homeSuggestedPrompts: "homeSuggestedPrompts";
|
|
@@ -4941,13 +4665,6 @@ export declare interface ProviderResponse {
|
|
|
4941
4665
|
model: string;
|
|
4942
4666
|
/** Provider that actually produced this response, which may differ from a wrapper provider name. */
|
|
4943
4667
|
actualProvider?: string;
|
|
4944
|
-
/**
|
|
4945
|
-
* Base URL the provider's HTTP client actually resolved to for this request,
|
|
4946
|
-
* read from the live SDK client instance rather than re-derived from config.
|
|
4947
|
-
* Lets diagnostics observe the true routing target (e.g. a misrouted host)
|
|
4948
|
-
* instead of inferring it. Absent for providers that don't surface it.
|
|
4949
|
-
*/
|
|
4950
|
-
resolvedEndpoint?: string;
|
|
4951
4668
|
usage: {
|
|
4952
4669
|
/** Total input tokens (input_tokens + cache_creation + cache_read). */
|
|
4953
4670
|
inputTokens: number;
|
|
@@ -4997,18 +4714,6 @@ declare interface PublishPageResponse {
|
|
|
4997
4714
|
errorCode?: string;
|
|
4998
4715
|
}
|
|
4999
4716
|
|
|
5000
|
-
/**
|
|
5001
|
-
* Remove every previously-refused exchange from a working history: for each
|
|
5002
|
-
* assistant message that is exactly the refusal fallback, drop it together with
|
|
5003
|
-
* the contiguous run back to (and including) the nearest genuine user prompt.
|
|
5004
|
-
* That excises the flagged prompt (and any tool exchange in that run) so the
|
|
5005
|
-
* provider never replays it. Returns a new array; the input is untouched.
|
|
5006
|
-
*/
|
|
5007
|
-
export declare function quarantineRefusedExchanges(messages: Message[]): {
|
|
5008
|
-
messages: Message[];
|
|
5009
|
-
droppedExchanges: number;
|
|
5010
|
-
};
|
|
5011
|
-
|
|
5012
4717
|
declare type QuestionRequestEvent = z.infer<typeof QuestionRequestEventSchema>;
|
|
5013
4718
|
|
|
5014
4719
|
declare const QuestionRequestEventSchema: z.ZodObject<{
|
|
@@ -5080,19 +4785,6 @@ export declare interface RedactedThinkingContent {
|
|
|
5080
4785
|
data: string;
|
|
5081
4786
|
}
|
|
5082
4787
|
|
|
5083
|
-
/**
|
|
5084
|
-
* User-facing text a refusal turn is rewritten into (single source of truth for
|
|
5085
|
-
* both the producer — the empty-response plugin's `post-model-call` hook — and
|
|
5086
|
-
* the detector below).
|
|
5087
|
-
*
|
|
5088
|
-
* DETECTION COUPLING: `isRefusalFallbackMessage` matches this string exactly,
|
|
5089
|
-
* so it doubles as the quarantine marker for already-persisted transcripts.
|
|
5090
|
-
* Editing the wording silently stops the sweep from recognizing conversations
|
|
5091
|
-
* poisoned under the old wording (re-introducing the dead-end for that cohort).
|
|
5092
|
-
* If the copy must change, keep matching the historical variants too.
|
|
5093
|
-
*/
|
|
5094
|
-
export declare const REFUSAL_FALLBACK_TEXT = "Sorry \u2014 I wasn't able to generate a response to that. Please try rephrasing or asking in a different way.";
|
|
5095
|
-
|
|
5096
4788
|
declare type RelationshipStateUpdatedEvent = z.infer<typeof RelationshipStateUpdatedEventSchema>;
|
|
5097
4789
|
|
|
5098
4790
|
declare const RelationshipStateUpdatedEventSchema: z.ZodObject<{
|
|
@@ -5100,99 +4792,6 @@ declare const RelationshipStateUpdatedEventSchema: z.ZodObject<{
|
|
|
5100
4792
|
updatedAt: z.ZodString;
|
|
5101
4793
|
}, z.core.$strip>;
|
|
5102
4794
|
|
|
5103
|
-
declare type ResolutionFallbackReason = "missing" | "disabled" | "incomplete";
|
|
5104
|
-
|
|
5105
|
-
/**
|
|
5106
|
-
* Resolves a fully-specified `LLMConfigBase` for a given call site.
|
|
5107
|
-
*
|
|
5108
|
-
* Selection is a single-winner chain (see `selectWinningProfile`): the
|
|
5109
|
-
* highest-precedence rung that names a usable, complete profile wins, and the
|
|
5110
|
-
* resolved config is composed as code-owned schema defaults + the winning
|
|
5111
|
-
* profile's fragment + the call site's own tuning tweak. No profile ever
|
|
5112
|
-
* contributes a field to another profile — `deepMerge` here only lets nested
|
|
5113
|
-
* tweaks (e.g. `thinking.enabled`) combine leaf-wise with the winner rather
|
|
5114
|
-
* than wholesale-replacing sibling fields.
|
|
5115
|
-
*
|
|
5116
|
-
* Precedence of the selection chain (high → low):
|
|
5117
|
-
* 1. `opts.overrideProfile` (per-turn / per-conversation pin)
|
|
5118
|
-
* 2. `llm.activeProfile` — `mainAgent` only, since it IS that call site's
|
|
5119
|
-
* user-facing chat-model selection
|
|
5120
|
-
* 3. `llm.callSites[callSite].profile` (the call site's named profile)
|
|
5121
|
-
* 4. `CALL_SITE_DEFAULTS[callSite].profile` intent resolved through
|
|
5122
|
-
* `llm.defaultProvider`
|
|
5123
|
-
* 5. balanced intent through `llm.defaultProvider` — the code-owned anchor
|
|
5124
|
-
* for profileless call sites, or when nothing above is usable
|
|
5125
|
-
*
|
|
5126
|
-
* A winner must carry its own `provider` AND `model`: the base layer's schema
|
|
5127
|
-
* default identity never stands in for a selected profile. The anchor is
|
|
5128
|
-
* code-owned and resolved through `llm.defaultProvider`, never through
|
|
5129
|
-
* user-mutable state.
|
|
5130
|
-
*
|
|
5131
|
-
* `temperature`/`top_p` come only from the winner (or an explicit call-site
|
|
5132
|
-
* tweak); `logitBias` only ever from the winner. These are provider-coupled, so
|
|
5133
|
-
* a shadowed profile can never leak its sampling onto a different provider.
|
|
5134
|
-
*
|
|
5135
|
-
* `opts.forceOverrideProfile` is a no-op here: the override profile already
|
|
5136
|
-
* sits at the top of the chain for every call site.
|
|
5137
|
-
*
|
|
5138
|
-
* Profile names are resolved against the effective profile catalog
|
|
5139
|
-
* (code-defined defaults + workspace `llm.profiles`; see `getEffectiveProfile`).
|
|
5140
|
-
* A "mix" profile is expanded to one of its arms by a seeded weighted pick (see
|
|
5141
|
-
* `resolveProfileFragment` and `opts.selectionSeed`), uniformly wherever a name
|
|
5142
|
-
* is dereferenced. Missing references silently fall through (no throw) so the
|
|
5143
|
-
* resolver stays pure; schema validation catches unknown static references at
|
|
5144
|
-
* config-load time.
|
|
5145
|
-
*
|
|
5146
|
-
* Nested objects (`thinking`, `contextWindow`, and
|
|
5147
|
-
* `contextWindow.overflowRecovery`) are deep-merged so partial tweaks at any
|
|
5148
|
-
* nesting level merge into — rather than replace — the corresponding base
|
|
5149
|
-
* value.
|
|
5150
|
-
*
|
|
5151
|
-
* Pure & synchronous: no I/O, no async work. (Random selection only occurs for
|
|
5152
|
-
* mix profiles when no `selectionSeed` is supplied; with a seed the pick is
|
|
5153
|
-
* deterministic.)
|
|
5154
|
-
*/
|
|
5155
|
-
declare interface ResolveCallSiteOpts {
|
|
5156
|
-
overrideProfile?: string;
|
|
5157
|
-
/**
|
|
5158
|
-
* Float `overrideProfile` above the call-site layers for non-main-agent call
|
|
5159
|
-
* sites. Retained for API compatibility; under single-winner selection the
|
|
5160
|
-
* override already sits at the top of the chain, so this is effectively a
|
|
5161
|
-
* no-op. Inert when `overrideProfile` is absent or references a missing
|
|
5162
|
-
* profile.
|
|
5163
|
-
*/
|
|
5164
|
-
forceOverrideProfile?: boolean;
|
|
5165
|
-
/**
|
|
5166
|
-
* Per-conversation seed for expanding `mix` profiles. The chosen constituent
|
|
5167
|
-
* is a deterministic function of `selectionSeed` + the mix profile's own
|
|
5168
|
-
* name, so every `resolveCallSiteConfig` call for the same conversation picks
|
|
5169
|
-
* the SAME arm (stable across turns, retries, and restarts). Pass the
|
|
5170
|
-
* conversation id. When absent, the resolver falls back to a fresh random
|
|
5171
|
-
* pick per call — acceptable only for one-shot/background call sites that
|
|
5172
|
-
* resolve config exactly once per invocation.
|
|
5173
|
-
*/
|
|
5174
|
-
selectionSeed?: string;
|
|
5175
|
-
/**
|
|
5176
|
-
* Invoked once for each mix profile the resolver expands, reporting which
|
|
5177
|
-
* constituent was chosen. Used by A/B-eval recording (usage attribution).
|
|
5178
|
-
*/
|
|
5179
|
-
onMixSelected?: (info: {
|
|
5180
|
-
mixProfile: string;
|
|
5181
|
-
chosenProfile: string;
|
|
5182
|
-
}) => void;
|
|
5183
|
-
/**
|
|
5184
|
-
* Invoked once per chain rung that named a profile the resolver could not
|
|
5185
|
-
* use, before resolution continues to the next rung. Fallback is silent to
|
|
5186
|
-
* the call but must be visible in logs — callers on user-facing paths should
|
|
5187
|
-
* log at warn.
|
|
5188
|
-
*/
|
|
5189
|
-
onResolutionFallback?: (info: {
|
|
5190
|
-
callSite: LLMCallSite;
|
|
5191
|
-
requested: string;
|
|
5192
|
-
reason: ResolutionFallbackReason;
|
|
5193
|
-
}) => void;
|
|
5194
|
-
}
|
|
5195
|
-
|
|
5196
4795
|
/**
|
|
5197
4796
|
* Resolve a credential reference to its plaintext value.
|
|
5198
4797
|
*
|
|
@@ -5326,15 +4925,6 @@ export declare interface RunConversationTurnOptions {
|
|
|
5326
4925
|
* controller fires, terminating the in-flight agent loop.
|
|
5327
4926
|
*/
|
|
5328
4927
|
signal?: AbortSignal;
|
|
5329
|
-
/**
|
|
5330
|
-
* Conversation type for newly created conversations. When omitted,
|
|
5331
|
-
* defaults to `"standard"` (visible in the sidebar). Set to
|
|
5332
|
-
* `"background"` for plugin-driven conversations that should not
|
|
5333
|
-
* appear in the sidebar's Recents grouping.
|
|
5334
|
-
*
|
|
5335
|
-
* Ignored when `conversationId` references an existing conversation.
|
|
5336
|
-
*/
|
|
5337
|
-
conversationType?: "standard" | "background";
|
|
5338
4928
|
}
|
|
5339
4929
|
|
|
5340
4930
|
export declare interface RunConversationTurnResult {
|
|
@@ -5998,34 +5588,6 @@ declare type SurfaceData = CardSurfaceData | ChoiceSurfaceData | CopyBlockSurfac
|
|
|
5998
5588
|
|
|
5999
5589
|
declare type _SurfacesServerMessages = UiSurfaceShow | UiSurfaceUpdate | UiSurfaceDismiss | UiSurfaceComplete | UiSurfaceUndoResult;
|
|
6000
5590
|
|
|
6001
|
-
/**
|
|
6002
|
-
* Delete `graph_node` Qdrant points whose backing `memory_graph_nodes` row no
|
|
6003
|
-
* longer exists.
|
|
6004
|
-
*
|
|
6005
|
-
* `embedAndUpsert` treats the `memory_embeddings` cache write as best-effort: on
|
|
6006
|
-
* a cache-write failure it logs and still upserts the Qdrant point, so a node
|
|
6007
|
-
* can end up with a `graph_node` point but no cache row. Migration 340 discovers
|
|
6008
|
-
* orphans only through cache rows, so those cacheless points survive its sweep;
|
|
6009
|
-
* once migration 323 hard-deletes their backing nodes they keep consuming
|
|
6010
|
-
* `searchGraphNodes` top-K slots (the query hydrates hits from
|
|
6011
|
-
* `memory_graph_nodes` and silently drops rows that are gone).
|
|
6012
|
-
*
|
|
6013
|
-
* This enumerates the authoritative set of indexed `graph_node` points straight
|
|
6014
|
-
* from Qdrant — the only place cacheless points are recorded — and deletes any
|
|
6015
|
-
* whose `target_id` has no row in `memory_graph_nodes`. Membership is
|
|
6016
|
-
* existence-based, matching migration 340: a soft-deleted node keeps its row
|
|
6017
|
-
* (`fidelity = 'gone'`) and therefore its point.
|
|
6018
|
-
*
|
|
6019
|
-
* Idempotent: a second run finds no orphans. Deletion is by Qdrant payload
|
|
6020
|
-
* (`target_type` + `target_id`) via `deleteByTarget`, so it removes cacheless
|
|
6021
|
-
* points a cache lookup could never surface. Both the initial scroll and each
|
|
6022
|
-
* delete go through the Qdrant circuit breaker: an already-open circuit surfaces
|
|
6023
|
-
* as `QdrantCircuitOpenError` so the caller (the memory worker) defers the sweep
|
|
6024
|
-
* instead of spending its bounded retries, and a transient failure propagates
|
|
6025
|
-
* for retry on a later cycle.
|
|
6026
|
-
*/
|
|
6027
|
-
export declare function sweepOrphanedGraphNodePoints(qdrant: GraphNodeSweepClient): Promise<GraphNodeSweepResult>;
|
|
6028
|
-
|
|
6029
5591
|
declare type SyncChangedEvent = z.infer<typeof SyncChangedEventSchema>;
|
|
6030
5592
|
|
|
6031
5593
|
declare const SyncChangedEventSchema: z.ZodObject<{
|
|
@@ -6445,27 +6007,8 @@ export declare interface ToolExecutionResult {
|
|
|
6445
6007
|
content: string;
|
|
6446
6008
|
/** When true, the agent loop treats `content` as an error and may surface it / retry. */
|
|
6447
6009
|
isError: boolean;
|
|
6448
|
-
/**
|
|
6449
|
-
* Stable, machine-readable classification for an error result (e.g.
|
|
6450
|
-
* `acp_claude_oauth_missing`). Threaded to the client on the `tool_result`
|
|
6451
|
-
* event so surfaces can render a structured affordance for a known failure
|
|
6452
|
-
* instead of re-parsing the human `content` string. Only meaningful when
|
|
6453
|
-
* `isError` is true.
|
|
6454
|
-
*/
|
|
6455
|
-
errorCode?: string;
|
|
6456
6010
|
/** Optional short status message for client display (e.g. `"truncated"`, `"timed out"`). */
|
|
6457
6011
|
status?: string;
|
|
6458
|
-
/**
|
|
6459
|
-
* Typed side channel from the app-builder executors to their post-execution
|
|
6460
|
-
* side-effect hooks (`daemon/tool-side-effects.ts`): the exact app id the
|
|
6461
|
-
* executor operated on. `app_id` is optional for the fallback tools
|
|
6462
|
-
* (`app_update`, `app_refresh`, `app_generate_icon`) — when the model omits
|
|
6463
|
-
* it the skill script resolves the conversation's active app — so hooks read
|
|
6464
|
-
* this authoritative id instead of re-parsing the LLM-facing `content`
|
|
6465
|
-
* payload, whose shape must stay decoupled from daemon logic (see
|
|
6466
|
-
* assistant/AGENTS.md § Post-execution hooks). Set only by the app_* executors.
|
|
6467
|
-
*/
|
|
6468
|
-
resolvedAppId?: string;
|
|
6469
6012
|
/**
|
|
6470
6013
|
* When true, the agent loop should yield control back to the user after
|
|
6471
6014
|
* returning this result — tool results are pushed to history and the loop
|
|
@@ -6707,7 +6250,6 @@ declare const ToolResultEventSchema: z.ZodObject<{
|
|
|
6707
6250
|
mayRequireJavaScript: z.ZodOptional<z.ZodBoolean>;
|
|
6708
6251
|
}, z.core.$strip>>;
|
|
6709
6252
|
}, z.core.$strip>>;
|
|
6710
|
-
errorCode: z.ZodOptional<z.ZodString>;
|
|
6711
6253
|
completedAt: z.ZodOptional<z.ZodNumber>;
|
|
6712
6254
|
}, z.core.$strip>;
|
|
6713
6255
|
|
package/index.js
CHANGED
|
@@ -4,13 +4,11 @@ export const CLI_COMMAND_HELP = api.CLI_COMMAND_HELP;
|
|
|
4
4
|
export const CredentialResolutionError = api.CredentialResolutionError;
|
|
5
5
|
export const HOOKS = api.HOOKS;
|
|
6
6
|
export const INTERNAL_NUDGE_OUTPUT_SUPPRESSION = api.INTERNAL_NUDGE_OUTPUT_SUPPRESSION;
|
|
7
|
-
export const REFUSAL_FALLBACK_TEXT = api.REFUSAL_FALLBACK_TEXT;
|
|
8
7
|
export const RiskLevel = api.RiskLevel;
|
|
9
8
|
export const TtsSynthesisError = api.TtsSynthesisError;
|
|
10
9
|
export const addMessage = api.addMessage;
|
|
11
10
|
export const assistantEventHub = api.assistantEventHub;
|
|
12
11
|
export const buildMessageExcerpt = api.buildMessageExcerpt;
|
|
13
|
-
export const createLiveVoiceConnection = api.createLiveVoiceConnection;
|
|
14
12
|
export const deleteConversation = api.deleteConversation;
|
|
15
13
|
export const doesSupportVision = api.doesSupportVision;
|
|
16
14
|
export const embedAndUpsert = api.embedAndUpsert;
|
|
@@ -21,18 +19,13 @@ export const getConversation = api.getConversation;
|
|
|
21
19
|
export const getConversationDirPath = api.getConversationDirPath;
|
|
22
20
|
export const getMessages = api.getMessages;
|
|
23
21
|
export const getModelProfiles = api.getModelProfiles;
|
|
24
|
-
export const getWorkspaceDir = api.getWorkspaceDir;
|
|
25
22
|
export const hasLexicalTokens = api.hasLexicalTokens;
|
|
26
23
|
export const isConversationProcessing = api.isConversationProcessing;
|
|
27
24
|
export const isMaxTokensStopReason = api.isMaxTokensStopReason;
|
|
28
|
-
export const isToolResultMessage = api.isToolResultMessage;
|
|
29
|
-
export const isVisionNotSupportedError = api.isVisionNotSupportedError;
|
|
30
|
-
export const lastToolResultUserMessageIndex = api.lastToolResultUserMessageIndex;
|
|
31
25
|
export const listCatalogSkills = api.listCatalogSkills;
|
|
32
26
|
export const listConversations = api.listConversations;
|
|
33
27
|
export const listInstalledSkills = api.listInstalledSkills;
|
|
34
28
|
export const parseMessageMetadata = api.parseMessageMetadata;
|
|
35
|
-
export const quarantineRefusedExchanges = api.quarantineRefusedExchanges;
|
|
36
29
|
export const resolveCredential = api.resolveCredential;
|
|
37
30
|
export const resolveMediaSourceData = api.resolveMediaSourceData;
|
|
38
31
|
export const resolveUserName = api.resolveUserName;
|
|
@@ -40,7 +33,6 @@ export const runConversationTurn = api.runConversationTurn;
|
|
|
40
33
|
export const searchMessageIdsLexical = api.searchMessageIdsLexical;
|
|
41
34
|
export const selectedBackendSupportsMultimodal = api.selectedBackendSupportsMultimodal;
|
|
42
35
|
export const stringifyMessageContent = api.stringifyMessageContent;
|
|
43
|
-
export const sweepOrphanedGraphNodePoints = api.sweepOrphanedGraphNodePoints;
|
|
44
36
|
export const syncMessageToDisk = api.syncMessageToDisk;
|
|
45
37
|
export const synthesizeText = api.synthesizeText;
|
|
46
38
|
export const updateMessageMetadata = api.updateMessageMetadata;
|
package/package.json
CHANGED