@tutti-os/agent-gui 0.0.190 → 0.0.192
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/AgentRichTextReadonly-HJQQ4KAL.js +19 -0
- package/dist/agent-conversation/index.d.ts +29 -15
- package/dist/agent-conversation/index.js +11 -11
- package/dist/agent-env/index.js +1 -1
- package/dist/agent-gui.d.ts +310 -11
- package/dist/agent-gui.js +23 -23
- package/dist/agent-message-center/index.d.ts +4 -7
- package/dist/agent-message-center/index.js +9 -9
- package/dist/{agentGuiNodeTypes-RL1iNmSe.d.ts → agentGuiNodeTypes-B23ubO8n.d.ts} +8 -3
- package/dist/agents.d.ts +2 -1
- package/dist/app/renderer/agentactivity.css +16 -0
- package/dist/{chunk-DCZTHKWI.js → chunk-4CHBM3G3.js} +9 -3
- package/dist/chunk-4CHBM3G3.js.map +1 -0
- package/dist/{chunk-4ZCSXKK5.js → chunk-5VECGOBU.js} +3 -3
- package/dist/{chunk-F2U7LSJN.js → chunk-AFUVWWQY.js} +2 -2
- package/dist/{chunk-MHOYBRCY.js → chunk-CBMWHQ7P.js} +1 -1
- package/dist/chunk-CBMWHQ7P.js.map +1 -0
- package/dist/{chunk-2TPRBVDM.js → chunk-CUIJXYHG.js} +3566 -786
- package/dist/chunk-CUIJXYHG.js.map +1 -0
- package/dist/{chunk-THBCAUBR.js → chunk-CXC3ROXQ.js} +2 -2
- package/dist/{chunk-THBCAUBR.js.map → chunk-CXC3ROXQ.js.map} +1 -1
- package/dist/{chunk-44IFVKLS.js → chunk-DKGFEIZ7.js} +2 -2
- package/dist/{chunk-HH5PLD7L.js → chunk-DNHDR2YC.js} +3 -3
- package/dist/{chunk-V3VPKWVK.js → chunk-FGD2K7AB.js} +3 -3
- package/dist/chunk-FGD2K7AB.js.map +1 -0
- package/dist/{chunk-CFWR4C36.js → chunk-G7DS23D4.js} +2 -2
- package/dist/{chunk-AHDJFZAC.js → chunk-I4ICM3U4.js} +175 -33
- package/dist/chunk-I4ICM3U4.js.map +1 -0
- package/dist/{chunk-ML53N3II.js → chunk-KDN6SLJM.js} +2 -2
- package/dist/{chunk-RSFK6YRS.js → chunk-L3YCXXMA.js} +9 -9
- package/dist/{chunk-RWUYIHO3.js → chunk-M6HTOCQK.js} +3 -3
- package/dist/{chunk-UCDLFE2I.js → chunk-MGSRWYRN.js} +2 -2
- package/dist/{chunk-EWS7OGQK.js → chunk-O433KXLK.js} +2 -2
- package/dist/chunk-O433KXLK.js.map +1 -0
- package/dist/{chunk-2CZIBPST.js → chunk-PFTST5V6.js} +4 -4
- package/dist/{chunk-6YRJ4OPB.js → chunk-S7OROGUS.js} +2 -2
- package/dist/{chunk-HOT2PJ6T.js → chunk-SQZIKBOM.js} +4 -7
- package/dist/{chunk-HOT2PJ6T.js.map → chunk-SQZIKBOM.js.map} +1 -1
- package/dist/{chunk-FJ4A3A6W.js → chunk-TYQTSC7Y.js} +5 -5
- package/dist/{chunk-HD2TXBXU.js → chunk-U6TH4RJJ.js} +228 -43
- package/dist/chunk-U6TH4RJJ.js.map +1 -0
- package/dist/{chunk-KE3UYJMW.js → chunk-Z5Y3RB2U.js} +2 -2
- package/dist/{chunk-QKCSWK7Y.js → chunk-ZE6VLLFC.js} +51 -4
- package/dist/chunk-ZE6VLLFC.js.map +1 -0
- package/dist/context-mention-palette/index.js +10 -10
- package/dist/context-mention-provider.d.ts +1 -0
- package/dist/conversation-rail-runtime.d.ts +4 -1
- package/dist/dock-icons.js +2 -2
- package/dist/i18n/index.d.ts +280 -154
- package/dist/i18n/index.js +2 -2
- package/dist/index.d.ts +1285 -835
- package/dist/index.js +23 -23
- package/dist/index.js.map +1 -1
- package/dist/mention-search.js +8 -8
- package/dist/planImplementationPresentation-BxVOLt6A.d.ts +24 -0
- package/dist/provider-identity.js +1 -1
- package/dist/{types-izfKbJ8v.d.ts → types-CWKbqBmi.d.ts} +4 -0
- package/dist/workbench/contribution.js +10 -10
- package/dist/workbench/index.js +10 -10
- package/dist/workbench/launch.d.ts +4 -0
- package/dist/workbench/launch.js +4 -4
- package/dist/workbench/providerCatalog.js +2 -2
- package/dist/workbench/sessionTitle.js +3 -3
- package/dist/workbench/state.js +3 -3
- package/dist/workbench/types.d.ts +3 -0
- package/dist/workbench/types.js +1 -1
- package/package.json +14 -14
- package/dist/AgentRichTextReadonly-UZQ5VSGO.js +0 -19
- package/dist/chunk-2TPRBVDM.js.map +0 -1
- package/dist/chunk-AHDJFZAC.js.map +0 -1
- package/dist/chunk-DCZTHKWI.js.map +0 -1
- package/dist/chunk-EWS7OGQK.js.map +0 -1
- package/dist/chunk-HD2TXBXU.js.map +0 -1
- package/dist/chunk-MHOYBRCY.js.map +0 -1
- package/dist/chunk-QKCSWK7Y.js.map +0 -1
- package/dist/chunk-V3VPKWVK.js.map +0 -1
- package/dist/{AgentRichTextReadonly-UZQ5VSGO.js.map → AgentRichTextReadonly-HJQQ4KAL.js.map} +0 -0
- package/dist/{chunk-4ZCSXKK5.js.map → chunk-5VECGOBU.js.map} +0 -0
- package/dist/{chunk-F2U7LSJN.js.map → chunk-AFUVWWQY.js.map} +0 -0
- package/dist/{chunk-44IFVKLS.js.map → chunk-DKGFEIZ7.js.map} +0 -0
- package/dist/{chunk-HH5PLD7L.js.map → chunk-DNHDR2YC.js.map} +0 -0
- package/dist/{chunk-CFWR4C36.js.map → chunk-G7DS23D4.js.map} +0 -0
- package/dist/{chunk-ML53N3II.js.map → chunk-KDN6SLJM.js.map} +0 -0
- package/dist/{chunk-RSFK6YRS.js.map → chunk-L3YCXXMA.js.map} +0 -0
- package/dist/{chunk-RWUYIHO3.js.map → chunk-M6HTOCQK.js.map} +0 -0
- package/dist/{chunk-UCDLFE2I.js.map → chunk-MGSRWYRN.js.map} +0 -0
- package/dist/{chunk-2CZIBPST.js.map → chunk-PFTST5V6.js.map} +0 -0
- package/dist/{chunk-6YRJ4OPB.js.map → chunk-S7OROGUS.js.map} +0 -0
- package/dist/{chunk-FJ4A3A6W.js.map → chunk-TYQTSC7Y.js.map} +0 -0
- package/dist/{chunk-KE3UYJMW.js.map → chunk-Z5Y3RB2U.js.map} +0 -0
- package/dist/{agentConversationVM-Bn5s1UMx.d.ts → workspaceLinkActions-BmVLZszV.d.ts} +72 -72
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import react__default, { ReactNode, PropsWithChildren, JSX } from 'react';
|
|
|
3
3
|
import * as _tutti_os_ui_i18n_runtime from '@tutti-os/ui-i18n-runtime';
|
|
4
4
|
import { I18nRuntime } from '@tutti-os/ui-i18n-runtime';
|
|
5
5
|
import * as _tutti_os_agent_activity_core from '@tutti-os/agent-activity-core';
|
|
6
|
-
import { AgentActivityGoalControlInput, AgentActivityGoalControlResult, AgentActivityCreateSessionInput, AgentActivitySession, AgentActivityDeleteSessionInput, AgentActivityDeleteSessionResult, AgentActivitySendInput, AgentActivitySessionSettings, AgentActivityActivateSessionResult, AgentActivitySnapshot, AgentSessionEngine, AgentActivityMessageOrder, AgentActivityMessagePage, AgentActivitySendInputResult, AgentActivityRenameSessionInput, AgentActivitySetCollaborationAdoptionInput, AgentActivityCollaborationRun, AgentActivitySubmitInteractiveInput, AgentActivitySubmitInteractiveResult, AgentActivitySnapshotListener, AgentActivityMessageSemantics, AgentActivityGoalControlAction, AgentActivityTurn, AgentActivitySlashCommandPolicy, AgentActivityUsage, CanonicalAgentSession, AgentActivitySubmitSettingsPatch, AgentSessionEngineState } from '@tutti-os/agent-activity-core';
|
|
6
|
+
import { AgentActivityGoalControlInput, AgentActivityGoalControlResult, AgentActivityCreateSessionInput, AgentActivitySession, AgentActivityDeleteSessionInput, AgentActivityDeleteSessionResult, AgentActivitySendInput, AgentActivitySessionSettings, AgentActivityActivateSessionResult, AgentActivityUpdateTuttiModeActivationInput, AgentActivityUpdateTuttiModeActivationResult, AgentActivitySnapshot, AgentSessionEngine, AgentActivityMessageOrder, AgentActivityMessagePage, AgentActivitySendInputResult, AgentActivityRenameSessionInput, AgentActivitySetCollaborationAdoptionInput, AgentActivityCollaborationRun, AgentActivitySubmitInteractiveInput, AgentActivitySubmitInteractiveResult, AgentActivitySnapshotListener, AgentActivityMessageSemantics, AgentActivityGoalControlAction, AgentActivityTurn, AgentActivitySlashCommandPolicy, AgentActivityUsage, CanonicalAgentSession, AgentActivitySubmitSettingsPatch, AgentSessionEngineState } from '@tutti-os/agent-activity-core';
|
|
7
7
|
export { AgentActivityAdapter, AgentActivityMessage, AgentActivityNeedsAttentionItem, AgentActivitySnapshot, selectNeedsAttentionCount, selectNeedsAttentionItems } from '@tutti-os/agent-activity-core';
|
|
8
8
|
import { WorkspaceUserProjectService, WorkspaceUserProject } from '@tutti-os/workspace-user-project/contracts';
|
|
9
9
|
import { WorkspaceFileReference, ReferenceLocateTarget, WorkspaceFileReferenceAdapter, ReferenceProvenanceCatalog } from '@tutti-os/workspace-file-reference/contracts';
|
|
@@ -397,6 +397,7 @@ interface AgentActivityRuntimeDiagnosticInput {
|
|
|
397
397
|
}
|
|
398
398
|
interface AgentActivityRuntimeActivateSessionInputBase {
|
|
399
399
|
agentSessionId: string;
|
|
400
|
+
capabilityRefs?: AgentActivityCreateSessionInput["capabilityRefs"];
|
|
400
401
|
cwd?: string;
|
|
401
402
|
initialContent?: AgentActivitySendInput["content"];
|
|
402
403
|
/** 仅展示用首轮文本(bundle 折叠成一个 chip);initialContent 仍带展开后的文件。 */
|
|
@@ -411,6 +412,7 @@ interface AgentActivityRuntimeActivateSessionInputBase {
|
|
|
411
412
|
type AgentActivityRuntimeActivateSessionInput = (AgentActivityRuntimeActivateSessionInputBase & {
|
|
412
413
|
agentTargetId: string;
|
|
413
414
|
clientSubmitId: string;
|
|
415
|
+
initialTuttiModeActivation?: AgentActivityCreateSessionInput["initialTuttiModeActivation"];
|
|
414
416
|
mode: "new";
|
|
415
417
|
}) | (AgentActivityRuntimeActivateSessionInputBase & {
|
|
416
418
|
agentTargetId?: string | null;
|
|
@@ -543,6 +545,7 @@ interface AgentActivityRuntime {
|
|
|
543
545
|
getSession(workspaceId: string, agentSessionId: string): Promise<AgentActivitySession>;
|
|
544
546
|
getComposerOptions(input: AgentActivityRuntimeGetComposerOptionsInput): Promise<unknown>;
|
|
545
547
|
updateSessionSettings(input: AgentActivityRuntimeUpdateSessionSettingsInput): Promise<AgentActivityRuntimeUpdateSessionSettingsResult>;
|
|
548
|
+
updateTuttiModeActivation(input: AgentActivityUpdateTuttiModeActivationInput): Promise<AgentActivityUpdateTuttiModeActivationResult>;
|
|
546
549
|
getSnapshot(workspaceId: string): AgentActivitySnapshot;
|
|
547
550
|
getSessionEngine(workspaceId: string): AgentSessionEngine;
|
|
548
551
|
getSessionSectionsQueryCache?(workspaceId: string): WorkspaceQueryCache<unknown>;
|
|
@@ -1028,304 +1031,6 @@ interface AgentSettings {
|
|
|
1028
1031
|
hideWorktreeMismatchDropWarning: boolean;
|
|
1029
1032
|
}
|
|
1030
1033
|
|
|
1031
|
-
interface AgentGUINodeData {
|
|
1032
|
-
provider: AgentGUIProvider;
|
|
1033
|
-
agentTargetId?: string | null;
|
|
1034
|
-
lastActiveAgentSessionId: string | null;
|
|
1035
|
-
lastActiveAgentSessionIdByAgentTargetId?: Record<string, string> | null;
|
|
1036
|
-
conversationCount?: number | null;
|
|
1037
|
-
conversationRailWidthPx?: number | null;
|
|
1038
|
-
conversationRailCollapsed?: boolean | null;
|
|
1039
|
-
composerOverrides?: AgentHostAgentSessionComposerSettings | null;
|
|
1040
|
-
composerOverridesByAgentTargetId?: Record<string, AgentHostAgentSessionComposerSettings | null> | null;
|
|
1041
|
-
composerOverridesByProvider?: Partial<Record<AgentGUIProvider, AgentHostAgentSessionComposerSettings | null>> | null;
|
|
1042
|
-
}
|
|
1043
|
-
/**
|
|
1044
|
-
* Open runtime metadata reported by an Agent Target.
|
|
1045
|
-
*
|
|
1046
|
-
* Built-in providers still use AgentProvider, while externally installed ACP
|
|
1047
|
-
* extensions use namespaced values such as `acp:gemini`.
|
|
1048
|
-
*/
|
|
1049
|
-
type AgentGUIProvider = string;
|
|
1050
|
-
/**
|
|
1051
|
-
* Stable identifiers for the starter entries shown below the empty new-session
|
|
1052
|
-
* composer. Hosts can pass these values to `AgentGUI.disabled` to hide entries
|
|
1053
|
-
* that should not be available in their integration.
|
|
1054
|
-
*/
|
|
1055
|
-
type AgentGUIHomeSuggestionId = "meet-tutti" | "task-breakdown" | "quality-review" | "agent-interaction" | "import-session";
|
|
1056
|
-
type AgentGUIAgentAvailabilityStatus = "ready" | "checking" | "coming_soon" | "not_installed" | "auth_required" | "unavailable";
|
|
1057
|
-
type AgentGUIAgentAvailabilityAction = "install" | "login" | "refresh";
|
|
1058
|
-
interface AgentGUIAgentAvailability {
|
|
1059
|
-
status: AgentGUIAgentAvailabilityStatus;
|
|
1060
|
-
reason?: string | null;
|
|
1061
|
-
pendingAction?: AgentGUIAgentAvailabilityAction | null;
|
|
1062
|
-
}
|
|
1063
|
-
interface AgentGUIAgentOwner {
|
|
1064
|
-
userId?: string | null;
|
|
1065
|
-
name?: string | null;
|
|
1066
|
-
avatarUrl?: string | null;
|
|
1067
|
-
}
|
|
1068
|
-
/** Host-authoritative ownership classification for Agent directory entries. */
|
|
1069
|
-
type AgentGUIAgentOwnership = "self" | "shared";
|
|
1070
|
-
interface AgentGUISharedAgentQuota {
|
|
1071
|
-
unit: "runs" | "tokens";
|
|
1072
|
-
remaining: number;
|
|
1073
|
-
limit?: number;
|
|
1074
|
-
resetAt?: string | null;
|
|
1075
|
-
}
|
|
1076
|
-
interface AgentGUISharedAgentConcurrency {
|
|
1077
|
-
active: number;
|
|
1078
|
-
limit: number;
|
|
1079
|
-
}
|
|
1080
|
-
interface AgentGUISharedAgentCostQuota {
|
|
1081
|
-
currency: string;
|
|
1082
|
-
remainingMicros: number;
|
|
1083
|
-
limitMicros?: number;
|
|
1084
|
-
}
|
|
1085
|
-
interface AgentGUISharedAgentAllowedModel {
|
|
1086
|
-
modelPlanId?: string | null;
|
|
1087
|
-
model: string;
|
|
1088
|
-
}
|
|
1089
|
-
interface AgentGUISharedAgentPolicyPermissions {
|
|
1090
|
-
consult: boolean;
|
|
1091
|
-
review: boolean;
|
|
1092
|
-
delegate: boolean;
|
|
1093
|
-
upgrade: boolean;
|
|
1094
|
-
}
|
|
1095
|
-
/** Credential-free access snapshot supplied by the shared-Agent control plane. */
|
|
1096
|
-
interface AgentGUISharedAgentAccess {
|
|
1097
|
-
grantId: string;
|
|
1098
|
-
ownerUserId: string;
|
|
1099
|
-
ownerOnline: boolean;
|
|
1100
|
-
auditRequired: boolean;
|
|
1101
|
-
quota?: AgentGUISharedAgentQuota | null;
|
|
1102
|
-
concurrency?: AgentGUISharedAgentConcurrency | null;
|
|
1103
|
-
costQuota?: AgentGUISharedAgentCostQuota | null;
|
|
1104
|
-
allowedModels?: readonly AgentGUISharedAgentAllowedModel[] | null;
|
|
1105
|
-
policyPermissions?: AgentGUISharedAgentPolicyPermissions | null;
|
|
1106
|
-
}
|
|
1107
|
-
/**
|
|
1108
|
-
* Host-projected entry from the workspace `/agents` directory.
|
|
1109
|
-
*
|
|
1110
|
-
* `agentTargetId` is the only UI and launch identity. `provider` remains
|
|
1111
|
-
* execution metadata for provider-native composer/runtime policy and must not
|
|
1112
|
-
* be used to group, deduplicate, name, or select entries.
|
|
1113
|
-
*/
|
|
1114
|
-
interface AgentGUIAgent {
|
|
1115
|
-
agentTargetId: string;
|
|
1116
|
-
name: string;
|
|
1117
|
-
iconUrl: string;
|
|
1118
|
-
/** Single-color artwork rendered through the conversation rail CSS mask. */
|
|
1119
|
-
maskIconUrl?: string | null;
|
|
1120
|
-
heroImageUrl?: string | null;
|
|
1121
|
-
description?: string | null;
|
|
1122
|
-
/** Host-resolved display name of the device that owns this Agent target. */
|
|
1123
|
-
ownerDeviceLabel?: string | null;
|
|
1124
|
-
owner?: AgentGUIAgentOwner | null;
|
|
1125
|
-
ownership?: AgentGUIAgentOwnership | null;
|
|
1126
|
-
sharedAccess?: AgentGUISharedAgentAccess | null;
|
|
1127
|
-
availability: AgentGUIAgentAvailability;
|
|
1128
|
-
provider: AgentGUIProvider;
|
|
1129
|
-
setupKind?: "target_runtime" | null;
|
|
1130
|
-
}
|
|
1131
|
-
type AgentGUIAgentDirectoryStatus = "idle" | "loading" | "ready" | "error";
|
|
1132
|
-
interface AgentGUIAgentDirectorySnapshot {
|
|
1133
|
-
agents: readonly AgentGUIAgent[];
|
|
1134
|
-
capturedAtUnixMs: number | null;
|
|
1135
|
-
error: string | null;
|
|
1136
|
-
status: AgentGUIAgentDirectoryStatus;
|
|
1137
|
-
}
|
|
1138
|
-
interface AgentGUIAgentDirectoryPort {
|
|
1139
|
-
getSnapshot(): AgentGUIAgentDirectorySnapshot;
|
|
1140
|
-
subscribe(listener: () => void): () => void;
|
|
1141
|
-
}
|
|
1142
|
-
interface AgentGUIAllAgentsPresentation {
|
|
1143
|
-
iconUrl?: string | null;
|
|
1144
|
-
}
|
|
1145
|
-
interface AgentGUIAgentTargetRef {
|
|
1146
|
-
kind: string;
|
|
1147
|
-
provider: AgentGUIProvider;
|
|
1148
|
-
[key: string]: unknown;
|
|
1149
|
-
}
|
|
1150
|
-
interface AgentGUIAgentTargetBadge {
|
|
1151
|
-
iconUrl: string;
|
|
1152
|
-
label?: string;
|
|
1153
|
-
}
|
|
1154
|
-
interface AgentGUIAgentTarget {
|
|
1155
|
-
targetId: string;
|
|
1156
|
-
agentTargetId?: string | null;
|
|
1157
|
-
provider: AgentGUIProvider;
|
|
1158
|
-
ref: AgentGUIAgentTargetRef;
|
|
1159
|
-
label: string;
|
|
1160
|
-
description?: string;
|
|
1161
|
-
iconUrl?: string | null;
|
|
1162
|
-
maskIconUrl?: string | null;
|
|
1163
|
-
heroImageUrl?: string | null;
|
|
1164
|
-
badge?: AgentGUIAgentTargetBadge | null;
|
|
1165
|
-
ownerLabel?: string;
|
|
1166
|
-
ownerDeviceLabel?: string;
|
|
1167
|
-
ownership?: AgentGUIAgentOwnership;
|
|
1168
|
-
availability?: AgentGUIAgentAvailability;
|
|
1169
|
-
disabled?: boolean;
|
|
1170
|
-
unavailableReason?: string;
|
|
1171
|
-
}
|
|
1172
|
-
interface AgentGUIProviderRailAllPresentation {
|
|
1173
|
-
iconUrl?: string | null;
|
|
1174
|
-
}
|
|
1175
|
-
/**
|
|
1176
|
-
* How the provider rail composes the target list.
|
|
1177
|
-
* - "catalog" (default): host-provided targets are augmented with the static
|
|
1178
|
-
* local provider catalog, disabled placeholders (nexight/hermes/openclaw),
|
|
1179
|
-
* and coming-soon markers. When no targets are provided, the full local
|
|
1180
|
-
* catalog is shown.
|
|
1181
|
-
* - "exact": the rail renders exactly the provided targets — no static catalog
|
|
1182
|
-
* fallback, no disabled placeholders, no coming-soon injection. When the list
|
|
1183
|
-
* is empty (and not loading) the host-provided empty renderer is shown. Use
|
|
1184
|
-
* this when the list is fully orchestrated externally (e.g. shared agents,
|
|
1185
|
-
* custom /agents).
|
|
1186
|
-
*/
|
|
1187
|
-
type AgentGUIProviderRailMode = "catalog" | "exact";
|
|
1188
|
-
type AgentGUIProviderReadinessGateStatus = "checking" | "coming_soon" | "not_installed" | "auth_required" | "unavailable";
|
|
1189
|
-
type AgentGUIProviderReadinessGateAction = "install" | "login" | "refresh";
|
|
1190
|
-
interface AgentGUIProviderReadinessGate {
|
|
1191
|
-
status: AgentGUIProviderReadinessGateStatus;
|
|
1192
|
-
pendingAction?: AgentGUIProviderReadinessGateAction | null;
|
|
1193
|
-
onAction?: (provider: AgentGUIProvider, action: AgentGUIProviderReadinessGateAction) => void;
|
|
1194
|
-
}
|
|
1195
|
-
interface Size {
|
|
1196
|
-
width: number;
|
|
1197
|
-
height: number;
|
|
1198
|
-
}
|
|
1199
|
-
interface Point {
|
|
1200
|
-
x: number;
|
|
1201
|
-
y: number;
|
|
1202
|
-
}
|
|
1203
|
-
interface NodeFrame {
|
|
1204
|
-
position: Point;
|
|
1205
|
-
size: Size;
|
|
1206
|
-
}
|
|
1207
|
-
|
|
1208
|
-
type AgentGuiWorkbenchSessionAction = "rename" | "copy-markdown" | "copy-reference";
|
|
1209
|
-
interface AgentGuiWorkbenchSessionActionRequest {
|
|
1210
|
-
action: AgentGuiWorkbenchSessionAction;
|
|
1211
|
-
agentSessionId: string | null;
|
|
1212
|
-
sequence: number;
|
|
1213
|
-
}
|
|
1214
|
-
|
|
1215
|
-
type WorkspaceLinkActionSource = "agent-markdown" | "agent-file-change" | string;
|
|
1216
|
-
interface OpenWorkspaceFileLinkAction {
|
|
1217
|
-
type: "open-workspace-file";
|
|
1218
|
-
mode?: "reveal" | "open-directory";
|
|
1219
|
-
path: string;
|
|
1220
|
-
directoryPath: string;
|
|
1221
|
-
workspaceRoot: string;
|
|
1222
|
-
source: WorkspaceLinkActionSource;
|
|
1223
|
-
prefetchedDirectoryListing?: WorkspaceFileLinkDirectoryListing | null;
|
|
1224
|
-
}
|
|
1225
|
-
interface OpenLocalAssetPreviewLinkAction {
|
|
1226
|
-
type: "open-local-asset-preview";
|
|
1227
|
-
path: string;
|
|
1228
|
-
name: string;
|
|
1229
|
-
source: WorkspaceLinkActionSource;
|
|
1230
|
-
}
|
|
1231
|
-
interface WorkspaceFileLinkDirectoryEntry {
|
|
1232
|
-
path: string;
|
|
1233
|
-
name: string;
|
|
1234
|
-
kind: "file" | "directory" | "unknown";
|
|
1235
|
-
hasChildren: boolean | null;
|
|
1236
|
-
sizeBytes: number | null;
|
|
1237
|
-
mtimeMs: number | null;
|
|
1238
|
-
}
|
|
1239
|
-
interface WorkspaceFileLinkDirectoryListing {
|
|
1240
|
-
workspaceId: string;
|
|
1241
|
-
root: string;
|
|
1242
|
-
directoryPath: string;
|
|
1243
|
-
entries: WorkspaceFileLinkDirectoryEntry[];
|
|
1244
|
-
}
|
|
1245
|
-
interface OpenWorkspaceUrlLinkAction {
|
|
1246
|
-
type: "open-url";
|
|
1247
|
-
url: string;
|
|
1248
|
-
source: WorkspaceLinkActionSource;
|
|
1249
|
-
}
|
|
1250
|
-
interface OpenAgentSessionLinkAction {
|
|
1251
|
-
type: "open-agent-session";
|
|
1252
|
-
workspaceId: string;
|
|
1253
|
-
agentSessionId: string;
|
|
1254
|
-
agentTargetId?: string | null;
|
|
1255
|
-
source: WorkspaceLinkActionSource;
|
|
1256
|
-
}
|
|
1257
|
-
interface OpenWorkspaceIssueLinkAction {
|
|
1258
|
-
type: "open-workspace-issue";
|
|
1259
|
-
workspaceId: string;
|
|
1260
|
-
issueId: string | null;
|
|
1261
|
-
mode?: WorkspaceIssueMentionMode;
|
|
1262
|
-
outputDir?: string | null;
|
|
1263
|
-
runId?: string | null;
|
|
1264
|
-
taskId?: string | null;
|
|
1265
|
-
topicId?: string | null;
|
|
1266
|
-
source: WorkspaceLinkActionSource;
|
|
1267
|
-
}
|
|
1268
|
-
interface OpenWorkspaceAppLinkAction {
|
|
1269
|
-
type: "open-workspace-app";
|
|
1270
|
-
workspaceId: string;
|
|
1271
|
-
appId: string;
|
|
1272
|
-
conversationId?: string | null;
|
|
1273
|
-
messageId?: string | null;
|
|
1274
|
-
summaryTaskId?: string | null;
|
|
1275
|
-
source: WorkspaceLinkActionSource;
|
|
1276
|
-
}
|
|
1277
|
-
interface OpenCustomMentionLinkAction {
|
|
1278
|
-
type: "open-custom-mention";
|
|
1279
|
-
/** 注册表里的 kind(= mention:// providerId)。 */
|
|
1280
|
-
kind: string;
|
|
1281
|
-
href: string;
|
|
1282
|
-
source: WorkspaceLinkActionSource;
|
|
1283
|
-
}
|
|
1284
|
-
type WorkspaceLinkAction = OpenWorkspaceFileLinkAction | OpenLocalAssetPreviewLinkAction | OpenWorkspaceUrlLinkAction | OpenAgentSessionLinkAction | OpenWorkspaceIssueLinkAction | OpenWorkspaceAppLinkAction | OpenCustomMentionLinkAction;
|
|
1285
|
-
|
|
1286
|
-
interface AgentMessageMarkdownWorkspaceAppIcon {
|
|
1287
|
-
appId: string;
|
|
1288
|
-
iconUrl: string | null;
|
|
1289
|
-
workspaceId?: string | null;
|
|
1290
|
-
}
|
|
1291
|
-
|
|
1292
|
-
interface AgentGUIAccountMenuState {
|
|
1293
|
-
user: {
|
|
1294
|
-
userId: string;
|
|
1295
|
-
name?: string | null;
|
|
1296
|
-
email?: string | null;
|
|
1297
|
-
avatar?: string | null;
|
|
1298
|
-
} | null;
|
|
1299
|
-
membershipLabel: string;
|
|
1300
|
-
creditsLabel: string | null;
|
|
1301
|
-
loading: boolean;
|
|
1302
|
-
error: string | null;
|
|
1303
|
-
partialError?: boolean;
|
|
1304
|
-
registrationCreditsToast?: {
|
|
1305
|
-
id: string;
|
|
1306
|
-
creditsLabel: string;
|
|
1307
|
-
visible: boolean;
|
|
1308
|
-
autoDismissMs?: number;
|
|
1309
|
-
onDismiss(): void;
|
|
1310
|
-
} | null;
|
|
1311
|
-
links: {
|
|
1312
|
-
planUrl: string;
|
|
1313
|
-
usageUrl: string;
|
|
1314
|
-
settingsUrl: string;
|
|
1315
|
-
};
|
|
1316
|
-
onOpenChange(open: boolean): void;
|
|
1317
|
-
onLogin(): void;
|
|
1318
|
-
onLogout?(): void;
|
|
1319
|
-
onSettings?(): void;
|
|
1320
|
-
onOpenExternal(url: string): void;
|
|
1321
|
-
}
|
|
1322
|
-
|
|
1323
|
-
type AgentSessionCommand = AgentHostAgentSessionCommand;
|
|
1324
|
-
type AgentSessionComposerSettings = AgentHostAgentSessionComposerSettings;
|
|
1325
|
-
type AgentSessionPermissionConfig = AgentHostAgentSessionPermissionConfig;
|
|
1326
|
-
type AgentSessionReasoningEffort = AgentHostAgentSessionReasoningEffort;
|
|
1327
|
-
type AgentSessionSpeed = AgentHostAgentSessionSpeed;
|
|
1328
|
-
|
|
1329
1034
|
interface WorkspaceAgentActivityFileChange {
|
|
1330
1035
|
path: string;
|
|
1331
1036
|
change?: "added" | "modified" | "deleted" | "moved" | string;
|
|
@@ -1402,14 +1107,224 @@ interface WorkspaceAgentActivityCard {
|
|
|
1402
1107
|
readTimeUnixMs?: number;
|
|
1403
1108
|
}
|
|
1404
1109
|
|
|
1405
|
-
interface WorkspaceAgentSessionDetailMessage {
|
|
1110
|
+
interface WorkspaceAgentSessionDetailMessage {
|
|
1111
|
+
id: string;
|
|
1112
|
+
body: string;
|
|
1113
|
+
status?: string | null;
|
|
1114
|
+
statusKind?: ToolCallStatusKind | null;
|
|
1115
|
+
turnId?: string;
|
|
1116
|
+
occurredAtUnixMs?: number | null;
|
|
1117
|
+
sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
|
|
1118
|
+
visibleError?: {
|
|
1119
|
+
code: string | null;
|
|
1120
|
+
phase: string | null;
|
|
1121
|
+
provider: string | null;
|
|
1122
|
+
detail: string | null;
|
|
1123
|
+
retryable: boolean | null;
|
|
1124
|
+
} | null;
|
|
1125
|
+
systemNotice?: {
|
|
1126
|
+
noticeKind: string | null;
|
|
1127
|
+
severity: string | null;
|
|
1128
|
+
source?: string | null;
|
|
1129
|
+
command?: AgentActivityMessageSemantics["noticeCommand"] | null;
|
|
1130
|
+
commandStatus?: AgentActivityMessageSemantics["noticeCommandStatus"] | null;
|
|
1131
|
+
title: string | null;
|
|
1132
|
+
detail: string | null;
|
|
1133
|
+
retryable: boolean | null;
|
|
1134
|
+
} | null;
|
|
1135
|
+
}
|
|
1136
|
+
interface WorkspaceAgentSessionDetailThinking {
|
|
1137
|
+
id: string;
|
|
1138
|
+
body: string;
|
|
1139
|
+
statusKind?: ToolCallStatusKind | null;
|
|
1140
|
+
turnId?: string;
|
|
1141
|
+
occurredAtUnixMs?: number | null;
|
|
1142
|
+
sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
|
|
1143
|
+
}
|
|
1144
|
+
interface WorkspaceAgentSessionDetailGoalControl {
|
|
1145
|
+
id: string;
|
|
1146
|
+
action: AgentActivityGoalControlAction;
|
|
1147
|
+
body: string;
|
|
1148
|
+
occurredAtUnixMs?: number | null;
|
|
1149
|
+
sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
|
|
1150
|
+
}
|
|
1151
|
+
interface WorkspaceAgentSessionDetailToolCall {
|
|
1152
|
+
id: string;
|
|
1153
|
+
name: string;
|
|
1154
|
+
toolName: string | null;
|
|
1155
|
+
callType: string | null;
|
|
1156
|
+
status: string | null;
|
|
1157
|
+
statusKind: ToolCallStatusKind | null;
|
|
1158
|
+
summary: string;
|
|
1159
|
+
payload: Record<string, unknown> | null;
|
|
1160
|
+
turnId?: string;
|
|
1161
|
+
compactSummary?: string | null;
|
|
1162
|
+
occurredAtUnixMs?: number | null;
|
|
1163
|
+
sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
|
|
1164
|
+
}
|
|
1165
|
+
type WorkspaceAgentSessionDetailToolGroupEntry = {
|
|
1166
|
+
kind: "thinking";
|
|
1167
|
+
thinking: WorkspaceAgentSessionDetailThinking;
|
|
1168
|
+
} | {
|
|
1169
|
+
kind: "tool-call";
|
|
1170
|
+
call: WorkspaceAgentSessionDetailToolCall;
|
|
1171
|
+
};
|
|
1172
|
+
type WorkspaceAgentSessionDetailAgentItem = {
|
|
1173
|
+
kind: "message";
|
|
1174
|
+
message: WorkspaceAgentSessionDetailMessage;
|
|
1175
|
+
} | {
|
|
1176
|
+
kind: "thinking";
|
|
1177
|
+
thinking: WorkspaceAgentSessionDetailThinking;
|
|
1178
|
+
} | {
|
|
1179
|
+
kind: "tool-calls";
|
|
1180
|
+
id: string;
|
|
1181
|
+
toolCalls: WorkspaceAgentSessionDetailToolCall[];
|
|
1182
|
+
toolCallCount: number;
|
|
1183
|
+
hasFailedToolCall: boolean;
|
|
1184
|
+
summary?: string | null;
|
|
1185
|
+
groupEntries?: WorkspaceAgentSessionDetailToolGroupEntry[];
|
|
1186
|
+
};
|
|
1187
|
+
interface WorkspaceAgentSessionDetailTurn {
|
|
1188
|
+
id: string;
|
|
1189
|
+
userMessage: WorkspaceAgentSessionDetailMessage | null;
|
|
1190
|
+
userMessages: WorkspaceAgentSessionDetailMessage[];
|
|
1191
|
+
agentMessages: WorkspaceAgentSessionDetailMessage[];
|
|
1192
|
+
toolCalls: WorkspaceAgentSessionDetailToolCall[];
|
|
1193
|
+
toolCallCount: number;
|
|
1194
|
+
hasFailedToolCall: boolean;
|
|
1195
|
+
rawAgentItems?: WorkspaceAgentSessionDetailAgentItem[];
|
|
1196
|
+
agentItems: WorkspaceAgentSessionDetailAgentItem[];
|
|
1197
|
+
}
|
|
1198
|
+
interface WorkspaceAgentSessionDetailViewModel {
|
|
1199
|
+
activity: WorkspaceAgentActivityCard;
|
|
1200
|
+
session: AgentActivitySession;
|
|
1201
|
+
cwd: string;
|
|
1202
|
+
workspaceRoot: string | null;
|
|
1203
|
+
goalControls?: WorkspaceAgentSessionDetailGoalControl[];
|
|
1204
|
+
turns: WorkspaceAgentSessionDetailTurn[];
|
|
1205
|
+
sessionTurns?: readonly AgentActivityTurn[];
|
|
1206
|
+
showProcessingIndicator?: boolean;
|
|
1207
|
+
}
|
|
1208
|
+
|
|
1209
|
+
type AgentApprovalPurpose = "edit-files";
|
|
1210
|
+
|
|
1211
|
+
interface AgentApprovalOptionVM {
|
|
1212
|
+
id: string;
|
|
1213
|
+
label: string;
|
|
1214
|
+
kind: string;
|
|
1215
|
+
description?: string;
|
|
1216
|
+
}
|
|
1217
|
+
interface AgentApprovalItemVM {
|
|
1218
|
+
kind: "approval";
|
|
1219
|
+
id: string;
|
|
1220
|
+
turnId: string;
|
|
1221
|
+
requestId: string;
|
|
1222
|
+
callId: string;
|
|
1223
|
+
approvalPurpose?: AgentApprovalPurpose;
|
|
1224
|
+
title: string;
|
|
1225
|
+
toolName: string | null;
|
|
1226
|
+
status: string | null;
|
|
1227
|
+
input: Record<string, unknown> | null;
|
|
1228
|
+
options: AgentApprovalOptionVM[];
|
|
1229
|
+
output?: Record<string, unknown> | null;
|
|
1230
|
+
occurredAtUnixMs: number | null;
|
|
1231
|
+
}
|
|
1232
|
+
|
|
1233
|
+
interface AgentAskUserQuestionOptionVM {
|
|
1234
|
+
label: string;
|
|
1235
|
+
description: string;
|
|
1236
|
+
}
|
|
1237
|
+
interface AgentAskUserQuestionVM {
|
|
1238
|
+
id: string;
|
|
1239
|
+
header: string;
|
|
1240
|
+
question: string;
|
|
1241
|
+
options: AgentAskUserQuestionOptionVM[];
|
|
1242
|
+
multiSelect: boolean;
|
|
1243
|
+
answer?: string | string[] | null;
|
|
1244
|
+
}
|
|
1245
|
+
interface AgentAskUserQuestionItemVM {
|
|
1246
|
+
kind: "ask-user";
|
|
1247
|
+
id: string;
|
|
1248
|
+
turnId: string;
|
|
1249
|
+
requestId: string;
|
|
1250
|
+
title: string;
|
|
1251
|
+
status: string | null;
|
|
1252
|
+
questions: AgentAskUserQuestionVM[];
|
|
1253
|
+
occurredAtUnixMs: number | null;
|
|
1254
|
+
}
|
|
1255
|
+
|
|
1256
|
+
interface AgentGeneratedImageRowVM {
|
|
1257
|
+
kind: "generated-image";
|
|
1258
|
+
id: string;
|
|
1259
|
+
turnId: string;
|
|
1260
|
+
sourceCallId: string;
|
|
1261
|
+
uri: string;
|
|
1262
|
+
mimeType: string | null;
|
|
1263
|
+
prompt: string | null;
|
|
1264
|
+
occurredAtUnixMs: number | null;
|
|
1265
|
+
}
|
|
1266
|
+
|
|
1267
|
+
interface AgentGoalControlRowVM {
|
|
1268
|
+
kind: "goal-control";
|
|
1269
|
+
id: string;
|
|
1270
|
+
turnId: null;
|
|
1271
|
+
action: AgentActivityGoalControlAction;
|
|
1272
|
+
body: string;
|
|
1273
|
+
occurredAtUnixMs: number | null;
|
|
1274
|
+
sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
|
|
1275
|
+
}
|
|
1276
|
+
|
|
1277
|
+
type AgentTranscriptPresentationKind = "content" | "specific-progress" | "turn-boundary";
|
|
1278
|
+
|
|
1279
|
+
interface AgentCollaborationUsageVM {
|
|
1280
|
+
inputTokens: number;
|
|
1281
|
+
outputTokens: number;
|
|
1282
|
+
}
|
|
1283
|
+
/**
|
|
1284
|
+
* Typed projection of one durable "collaboration" timeline message (the
|
|
1285
|
+
* daemon projects each collaboration run into the source session transcript
|
|
1286
|
+
* with messageId `collab:<runId>`; status transitions update the same message
|
|
1287
|
+
* in place). Pure data — rendering and adoption actions live in
|
|
1288
|
+
* `AgentCollaborationRow`.
|
|
1289
|
+
*/
|
|
1290
|
+
interface AgentCollaborationVM {
|
|
1291
|
+
kind: "collaboration";
|
|
1292
|
+
runId: string;
|
|
1293
|
+
/** Session identity of the source transcript row, for adoption commands. */
|
|
1294
|
+
workspaceId: string | null;
|
|
1295
|
+
agentSessionId: string | null;
|
|
1296
|
+
mode: "consult" | "fork" | "delegate" | "handoff" | (string & {});
|
|
1297
|
+
status: "running" | "completed" | "failed" | "canceled" | (string & {});
|
|
1298
|
+
triggerSource: "user" | "agent" | "policy" | (string & {});
|
|
1299
|
+
triggerReason: string | null;
|
|
1300
|
+
targetSessionId: string | null;
|
|
1301
|
+
targetAgentTargetId: string | null;
|
|
1302
|
+
modelPlanId: string | null;
|
|
1303
|
+
/** Optional display name when the daemon payload carries it. */
|
|
1304
|
+
modelPlanName: string | null;
|
|
1305
|
+
model: string | null;
|
|
1306
|
+
contextScope: string | null;
|
|
1307
|
+
resultText: string | null;
|
|
1308
|
+
failureReason: string | null;
|
|
1309
|
+
durationMs: number | null;
|
|
1310
|
+
usage: AgentCollaborationUsageVM | null;
|
|
1311
|
+
adoption: "pending" | "adopted" | "rejected" | "not_applicable" | (string & {});
|
|
1312
|
+
}
|
|
1313
|
+
|
|
1314
|
+
interface AgentMessageContentVM {
|
|
1315
|
+
kind: "message-content";
|
|
1406
1316
|
id: string;
|
|
1317
|
+
turnId: string;
|
|
1407
1318
|
body: string;
|
|
1408
|
-
|
|
1319
|
+
presentationKind: AgentTranscriptPresentationKind;
|
|
1320
|
+
copyText?: string | null;
|
|
1409
1321
|
statusKind?: ToolCallStatusKind | null;
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1322
|
+
contentKind?: "text" | "image-grid" | "plan" | "collaboration";
|
|
1323
|
+
isTurnFinalText?: true;
|
|
1324
|
+
/** Typed payload for `contentKind: "collaboration"` rows. */
|
|
1325
|
+
collaboration?: AgentCollaborationVM | null;
|
|
1326
|
+
images?: AgentMessageImageVM[];
|
|
1327
|
+
occurredAtUnixMs: number | null;
|
|
1413
1328
|
visibleError?: {
|
|
1414
1329
|
code: string | null;
|
|
1415
1330
|
phase: string | null;
|
|
@@ -1427,437 +1342,549 @@ interface WorkspaceAgentSessionDetailMessage {
|
|
|
1427
1342
|
detail: string | null;
|
|
1428
1343
|
retryable: boolean | null;
|
|
1429
1344
|
} | null;
|
|
1345
|
+
sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
|
|
1430
1346
|
}
|
|
1431
|
-
interface
|
|
1347
|
+
interface AgentMessageImageVM {
|
|
1348
|
+
id: string;
|
|
1349
|
+
workspaceId?: string | null;
|
|
1350
|
+
agentSessionId: string;
|
|
1351
|
+
attachmentId?: string | null;
|
|
1352
|
+
mimeType: string;
|
|
1353
|
+
name?: string | null;
|
|
1354
|
+
data?: string | null;
|
|
1355
|
+
url?: string | null;
|
|
1356
|
+
path?: string | null;
|
|
1357
|
+
}
|
|
1358
|
+
interface AgentThinkingContentVM {
|
|
1359
|
+
kind: "thinking-content";
|
|
1432
1360
|
id: string;
|
|
1361
|
+
turnId: string;
|
|
1433
1362
|
body: string;
|
|
1434
1363
|
statusKind?: ToolCallStatusKind | null;
|
|
1435
|
-
|
|
1436
|
-
occurredAtUnixMs?: number | null;
|
|
1364
|
+
occurredAtUnixMs: number | null;
|
|
1437
1365
|
sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
|
|
1438
1366
|
}
|
|
1439
|
-
interface
|
|
1367
|
+
interface AgentMessageRowVM {
|
|
1368
|
+
kind: "message";
|
|
1440
1369
|
id: string;
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1370
|
+
turnId: string;
|
|
1371
|
+
speaker: "user" | "assistant";
|
|
1372
|
+
messages: AgentMessageContentVM[];
|
|
1373
|
+
thinking: AgentThinkingContentVM[];
|
|
1374
|
+
occurredAtUnixMs: number | null;
|
|
1445
1375
|
}
|
|
1446
|
-
|
|
1376
|
+
|
|
1377
|
+
interface AgentProcessingRowVM {
|
|
1378
|
+
kind: "processing";
|
|
1379
|
+
id: string;
|
|
1380
|
+
turnId: string | null;
|
|
1381
|
+
label?: string | null;
|
|
1382
|
+
occurredAtUnixMs: number | null;
|
|
1383
|
+
}
|
|
1384
|
+
|
|
1385
|
+
type AgentPlanModeKind = "enter" | "exit";
|
|
1386
|
+
interface AgentPlanModeItemVM {
|
|
1387
|
+
itemKind: "plan-mode";
|
|
1388
|
+
id: string;
|
|
1389
|
+
turnId: string;
|
|
1390
|
+
requestId?: string;
|
|
1391
|
+
kind: AgentPlanModeKind;
|
|
1392
|
+
title: string;
|
|
1393
|
+
plan?: string | null;
|
|
1394
|
+
status: string | null;
|
|
1395
|
+
filePath?: string | null;
|
|
1396
|
+
options?: AgentApprovalOptionVM[];
|
|
1397
|
+
keepPlanningOptionId?: string;
|
|
1398
|
+
occurredAtUnixMs: number | null;
|
|
1399
|
+
}
|
|
1400
|
+
|
|
1401
|
+
type AgentTaskSubAgentStatus = "running" | "completed" | "failed" | "canceled";
|
|
1402
|
+
type AgentTaskSubAgentActivityKind = "message" | "reasoning" | "tool";
|
|
1403
|
+
interface AgentTaskSubAgentActivityVM {
|
|
1404
|
+
kind: AgentTaskSubAgentActivityKind;
|
|
1405
|
+
text: string;
|
|
1406
|
+
atUnixMs: number | null;
|
|
1407
|
+
}
|
|
1408
|
+
interface AgentTaskSubAgentVM {
|
|
1409
|
+
childSessionId: string;
|
|
1410
|
+
parentToolCallId: string;
|
|
1411
|
+
status: AgentTaskSubAgentStatus;
|
|
1412
|
+
name: string | null;
|
|
1413
|
+
task: string | null;
|
|
1414
|
+
laneIndex: number;
|
|
1415
|
+
laneCount: number;
|
|
1416
|
+
latestActivity: string | null;
|
|
1417
|
+
latestActivityKind: AgentTaskSubAgentActivityKind | null;
|
|
1418
|
+
activityLog: readonly AgentTaskSubAgentActivityVM[];
|
|
1419
|
+
activityOmittedCount: number;
|
|
1420
|
+
queued?: boolean;
|
|
1421
|
+
failureDetail: string | null;
|
|
1422
|
+
startedAtUnixMs: number | null;
|
|
1423
|
+
latestActivityAtUnixMs: number | null;
|
|
1424
|
+
terminalAtUnixMs: number | null;
|
|
1425
|
+
childSessions: readonly AgentTaskSubAgentVM[];
|
|
1426
|
+
}
|
|
1427
|
+
interface AgentTaskStepVM {
|
|
1428
|
+
id: string;
|
|
1429
|
+
turnId: string;
|
|
1430
|
+
name: string;
|
|
1431
|
+
toolName: string | null;
|
|
1432
|
+
status: string | null;
|
|
1433
|
+
summary: string;
|
|
1434
|
+
payload: Record<string, unknown> | null;
|
|
1435
|
+
tool: AgentToolCallVM | null;
|
|
1436
|
+
occurredAtUnixMs: number | null;
|
|
1437
|
+
}
|
|
1438
|
+
interface AgentTaskItemVM {
|
|
1439
|
+
kind: "task";
|
|
1440
|
+
id: string;
|
|
1441
|
+
turnId: string;
|
|
1442
|
+
title: string;
|
|
1443
|
+
status: string | null;
|
|
1444
|
+
prompt?: string | null;
|
|
1445
|
+
delegateSessionId?: string | null;
|
|
1446
|
+
steps: AgentTaskStepVM[];
|
|
1447
|
+
subAgents?: AgentTaskSubAgentVM[];
|
|
1448
|
+
result?: string | null;
|
|
1449
|
+
resultMarkdown?: string | null;
|
|
1450
|
+
durationMs?: number | null;
|
|
1451
|
+
occurredAtUnixMs: number | null;
|
|
1452
|
+
}
|
|
1453
|
+
|
|
1454
|
+
type AgentToolRendererKind = "default" | "approval" | "plan-enter" | "plan-exit" | "ask-user" | "task" | "read" | "write" | "edit" | "bash" | "search" | "web-search" | "web-fetch" | "image-generation" | "todo-write" | "tool-search" | "skill" | "mcp";
|
|
1455
|
+
interface AgentToolCallVM {
|
|
1456
|
+
kind: "tool-call";
|
|
1447
1457
|
id: string;
|
|
1458
|
+
turnId: string;
|
|
1448
1459
|
name: string;
|
|
1449
1460
|
toolName: string | null;
|
|
1450
1461
|
callType: string | null;
|
|
1451
1462
|
status: string | null;
|
|
1452
1463
|
statusKind: ToolCallStatusKind | null;
|
|
1453
1464
|
summary: string;
|
|
1465
|
+
compactSummary: string | null;
|
|
1454
1466
|
payload: Record<string, unknown> | null;
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1467
|
+
toolState: Record<string, unknown> | null;
|
|
1468
|
+
input: Record<string, unknown> | null;
|
|
1469
|
+
output: Record<string, unknown> | null;
|
|
1470
|
+
error: Record<string, unknown> | null;
|
|
1471
|
+
metadata: Record<string, unknown> | null;
|
|
1472
|
+
content: unknown[] | null;
|
|
1473
|
+
locations: unknown[] | null;
|
|
1474
|
+
rendererKind: AgentToolRendererKind;
|
|
1475
|
+
approval: AgentApprovalItemVM | null;
|
|
1476
|
+
planMode: AgentPlanModeItemVM | null;
|
|
1477
|
+
askUserQuestion: AgentAskUserQuestionItemVM | null;
|
|
1478
|
+
task: AgentTaskItemVM | null;
|
|
1479
|
+
occurredAtUnixMs: number | null;
|
|
1458
1480
|
sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
|
|
1459
1481
|
}
|
|
1460
|
-
|
|
1482
|
+
|
|
1483
|
+
type AgentToolGroupEntryVM = {
|
|
1461
1484
|
kind: "thinking";
|
|
1462
|
-
thinking:
|
|
1485
|
+
thinking: AgentThinkingContentVM;
|
|
1463
1486
|
} | {
|
|
1464
1487
|
kind: "tool-call";
|
|
1465
|
-
call:
|
|
1466
|
-
};
|
|
1467
|
-
type WorkspaceAgentSessionDetailAgentItem = {
|
|
1468
|
-
kind: "message";
|
|
1469
|
-
message: WorkspaceAgentSessionDetailMessage;
|
|
1470
|
-
} | {
|
|
1471
|
-
kind: "thinking";
|
|
1472
|
-
thinking: WorkspaceAgentSessionDetailThinking;
|
|
1473
|
-
} | {
|
|
1474
|
-
kind: "tool-calls";
|
|
1475
|
-
id: string;
|
|
1476
|
-
toolCalls: WorkspaceAgentSessionDetailToolCall[];
|
|
1477
|
-
toolCallCount: number;
|
|
1478
|
-
hasFailedToolCall: boolean;
|
|
1479
|
-
summary?: string | null;
|
|
1480
|
-
groupEntries?: WorkspaceAgentSessionDetailToolGroupEntry[];
|
|
1488
|
+
call: AgentToolCallVM;
|
|
1481
1489
|
};
|
|
1482
|
-
interface
|
|
1483
|
-
|
|
1484
|
-
userMessage: WorkspaceAgentSessionDetailMessage | null;
|
|
1485
|
-
userMessages: WorkspaceAgentSessionDetailMessage[];
|
|
1486
|
-
agentMessages: WorkspaceAgentSessionDetailMessage[];
|
|
1487
|
-
toolCalls: WorkspaceAgentSessionDetailToolCall[];
|
|
1488
|
-
toolCallCount: number;
|
|
1489
|
-
hasFailedToolCall: boolean;
|
|
1490
|
-
rawAgentItems?: WorkspaceAgentSessionDetailAgentItem[];
|
|
1491
|
-
agentItems: WorkspaceAgentSessionDetailAgentItem[];
|
|
1492
|
-
}
|
|
1493
|
-
interface WorkspaceAgentSessionDetailViewModel {
|
|
1494
|
-
activity: WorkspaceAgentActivityCard;
|
|
1495
|
-
session: AgentActivitySession;
|
|
1496
|
-
cwd: string;
|
|
1497
|
-
workspaceRoot: string | null;
|
|
1498
|
-
goalControls?: WorkspaceAgentSessionDetailGoalControl[];
|
|
1499
|
-
turns: WorkspaceAgentSessionDetailTurn[];
|
|
1500
|
-
sessionTurns?: readonly AgentActivityTurn[];
|
|
1501
|
-
showProcessingIndicator?: boolean;
|
|
1502
|
-
}
|
|
1503
|
-
|
|
1504
|
-
type AgentApprovalPurpose = "edit-files";
|
|
1505
|
-
|
|
1506
|
-
interface AgentApprovalOptionVM {
|
|
1507
|
-
id: string;
|
|
1508
|
-
label: string;
|
|
1509
|
-
kind: string;
|
|
1510
|
-
description?: string;
|
|
1511
|
-
}
|
|
1512
|
-
interface AgentApprovalItemVM {
|
|
1513
|
-
kind: "approval";
|
|
1490
|
+
interface AgentToolGroupRowVM {
|
|
1491
|
+
kind: "tool-group";
|
|
1514
1492
|
id: string;
|
|
1493
|
+
expansionKey?: string;
|
|
1515
1494
|
turnId: string;
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
toolName: string | null;
|
|
1521
|
-
status: string | null;
|
|
1522
|
-
input: Record<string, unknown> | null;
|
|
1523
|
-
options: AgentApprovalOptionVM[];
|
|
1524
|
-
output?: Record<string, unknown> | null;
|
|
1495
|
+
grouped: boolean;
|
|
1496
|
+
calls: AgentToolCallVM[];
|
|
1497
|
+
summary?: string | null;
|
|
1498
|
+
entries: AgentToolGroupEntryVM[];
|
|
1525
1499
|
occurredAtUnixMs: number | null;
|
|
1526
1500
|
}
|
|
1527
1501
|
|
|
1528
|
-
interface
|
|
1502
|
+
interface AgentTurnSummaryFileVM {
|
|
1529
1503
|
label: string;
|
|
1530
|
-
|
|
1504
|
+
path: string;
|
|
1505
|
+
fileName: string;
|
|
1506
|
+
directory: string | null;
|
|
1507
|
+
changeType: "modified" | "created" | "deleted";
|
|
1508
|
+
toolName: string | null;
|
|
1509
|
+
messageId: string;
|
|
1510
|
+
unifiedDiff?: string | null;
|
|
1511
|
+
oldString?: string | null;
|
|
1512
|
+
newString?: string | null;
|
|
1513
|
+
content?: string | null;
|
|
1514
|
+
occurredAtUnixMs: number | null;
|
|
1531
1515
|
}
|
|
1532
|
-
interface
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1516
|
+
interface AgentTurnSummaryPatchChangeVM {
|
|
1517
|
+
path: string;
|
|
1518
|
+
changeType: "modified" | "created" | "deleted";
|
|
1519
|
+
unifiedDiff?: string | null;
|
|
1520
|
+
oldString?: string | null;
|
|
1521
|
+
newString?: string | null;
|
|
1522
|
+
content?: string | null;
|
|
1539
1523
|
}
|
|
1540
|
-
interface
|
|
1541
|
-
|
|
1524
|
+
interface AgentTurnSummaryPatchBatchVM {
|
|
1525
|
+
cwd: string | null;
|
|
1526
|
+
toolCallId: string;
|
|
1527
|
+
changes: AgentTurnSummaryPatchChangeVM[];
|
|
1528
|
+
}
|
|
1529
|
+
interface AgentTurnSummaryRowVM {
|
|
1530
|
+
kind: "turn-summary";
|
|
1542
1531
|
id: string;
|
|
1543
1532
|
turnId: string;
|
|
1533
|
+
files: AgentTurnSummaryFileVM[];
|
|
1534
|
+
patchBatches?: AgentTurnSummaryPatchBatchVM[];
|
|
1535
|
+
fileCount: number;
|
|
1536
|
+
modifiedCount: number;
|
|
1537
|
+
createdCount: number;
|
|
1538
|
+
occurredAtUnixMs: number | null;
|
|
1539
|
+
}
|
|
1540
|
+
|
|
1541
|
+
type AgentTranscriptRowVM = AgentGeneratedImageRowVM | AgentGoalControlRowVM | AgentMessageRowVM | AgentToolGroupRowVM | AgentTurnSummaryRowVM | AgentProcessingRowVM;
|
|
1542
|
+
|
|
1543
|
+
type AgentConversationPromptVM = AgentApprovalItemVM | {
|
|
1544
|
+
kind: "ask-user";
|
|
1544
1545
|
requestId: string;
|
|
1545
1546
|
title: string;
|
|
1546
|
-
status: string | null;
|
|
1547
1547
|
questions: AgentAskUserQuestionVM[];
|
|
1548
|
-
|
|
1548
|
+
} | {
|
|
1549
|
+
kind: "exit-plan";
|
|
1550
|
+
requestId: string;
|
|
1551
|
+
title: string;
|
|
1552
|
+
options: AgentApprovalOptionVM[];
|
|
1553
|
+
keepPlanningOptionId?: string;
|
|
1554
|
+
} | {
|
|
1555
|
+
kind: "plan-implementation";
|
|
1556
|
+
requestId: string;
|
|
1557
|
+
title: string;
|
|
1558
|
+
};
|
|
1559
|
+
interface AgentConversationVM {
|
|
1560
|
+
activity: WorkspaceAgentActivityCard;
|
|
1561
|
+
workspaceRoot: string | null;
|
|
1562
|
+
sourceDetail: WorkspaceAgentSessionDetailViewModel;
|
|
1563
|
+
rows: AgentTranscriptRowVM[];
|
|
1549
1564
|
}
|
|
1550
1565
|
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
mimeType: string | null;
|
|
1558
|
-
prompt: string | null;
|
|
1559
|
-
occurredAtUnixMs: number | null;
|
|
1566
|
+
declare const PLAN_IMPLEMENTATION_ACTION_IMPLEMENT = "implement";
|
|
1567
|
+
declare const PLAN_IMPLEMENTATION_ACTION_FEEDBACK = "feedback";
|
|
1568
|
+
declare const PLAN_IMPLEMENTATION_ACTION_SKIP = "skip";
|
|
1569
|
+
interface PlanIssueExecutionProfile {
|
|
1570
|
+
reasoningIntensity: number;
|
|
1571
|
+
orchestrationIntensity: number;
|
|
1560
1572
|
}
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1573
|
+
interface PlanIssueBudget {
|
|
1574
|
+
mode: "auto" | "fixed";
|
|
1575
|
+
tokenLimit: number;
|
|
1576
|
+
quotaWaterlinePercent: number;
|
|
1577
|
+
}
|
|
1578
|
+
/**
|
|
1579
|
+
* Remembered planning defaults chosen before a Plan turn is submitted. The
|
|
1580
|
+
* generated plan can still provide explicit values; otherwise these values
|
|
1581
|
+
* seed the mandatory Issue-decomposition review.
|
|
1582
|
+
*/
|
|
1583
|
+
interface PlanIssueBudgetPreset {
|
|
1584
|
+
executionProfile: PlanIssueExecutionProfile;
|
|
1585
|
+
budget: PlanIssueBudget;
|
|
1570
1586
|
}
|
|
1571
1587
|
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1588
|
+
interface AgentGUINodeData {
|
|
1589
|
+
provider: AgentGUIProvider;
|
|
1590
|
+
agentTargetId?: string | null;
|
|
1591
|
+
lastActiveAgentSessionId: string | null;
|
|
1592
|
+
lastActiveAgentSessionIdByAgentTargetId?: Record<string, string> | null;
|
|
1593
|
+
conversationCount?: number | null;
|
|
1594
|
+
conversationRailWidthPx?: number | null;
|
|
1595
|
+
conversationRailCollapsed?: boolean | null;
|
|
1596
|
+
composerOverrides?: AgentHostAgentSessionComposerSettings | null;
|
|
1597
|
+
composerOverridesByAgentTargetId?: Record<string, AgentHostAgentSessionComposerSettings | null> | null;
|
|
1598
|
+
composerOverridesByProvider?: Partial<Record<AgentGUIProvider, AgentHostAgentSessionComposerSettings | null>> | null;
|
|
1599
|
+
/** Remembered defaults for provider Plan decomposition review. */
|
|
1600
|
+
planIssueBudgetPreset?: PlanIssueBudgetPreset | null;
|
|
1577
1601
|
}
|
|
1578
1602
|
/**
|
|
1579
|
-
*
|
|
1580
|
-
*
|
|
1581
|
-
*
|
|
1582
|
-
*
|
|
1583
|
-
* `AgentCollaborationRow`.
|
|
1603
|
+
* Open runtime metadata reported by an Agent Target.
|
|
1604
|
+
*
|
|
1605
|
+
* Built-in providers still use AgentProvider, while externally installed ACP
|
|
1606
|
+
* extensions use namespaced values such as `acp:gemini`.
|
|
1584
1607
|
*/
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
/** Optional display name when the daemon payload carries it. */
|
|
1599
|
-
modelPlanName: string | null;
|
|
1600
|
-
model: string | null;
|
|
1601
|
-
contextScope: string | null;
|
|
1602
|
-
resultText: string | null;
|
|
1603
|
-
failureReason: string | null;
|
|
1604
|
-
durationMs: number | null;
|
|
1605
|
-
usage: AgentCollaborationUsageVM | null;
|
|
1606
|
-
adoption: "pending" | "adopted" | "rejected" | "not_applicable" | (string & {});
|
|
1608
|
+
type AgentGUIProvider = string;
|
|
1609
|
+
/**
|
|
1610
|
+
* Stable identifiers for the starter entries shown below the empty new-session
|
|
1611
|
+
* composer. Hosts can pass these values to `AgentGUI.disabled` to hide entries
|
|
1612
|
+
* that should not be available in their integration.
|
|
1613
|
+
*/
|
|
1614
|
+
type AgentGUIHomeSuggestionId = "meet-tutti" | "task-breakdown" | "quality-review" | "agent-interaction" | "import-session";
|
|
1615
|
+
type AgentGUIAgentAvailabilityStatus = "ready" | "checking" | "coming_soon" | "not_installed" | "auth_required" | "unavailable";
|
|
1616
|
+
type AgentGUIAgentAvailabilityAction = "install" | "login" | "refresh";
|
|
1617
|
+
interface AgentGUIAgentAvailability {
|
|
1618
|
+
status: AgentGUIAgentAvailabilityStatus;
|
|
1619
|
+
reason?: string | null;
|
|
1620
|
+
pendingAction?: AgentGUIAgentAvailabilityAction | null;
|
|
1607
1621
|
}
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1622
|
+
interface AgentGUIAgentOwner {
|
|
1623
|
+
userId?: string | null;
|
|
1624
|
+
name?: string | null;
|
|
1625
|
+
avatarUrl?: string | null;
|
|
1626
|
+
}
|
|
1627
|
+
/** Host-authoritative ownership classification for Agent directory entries. */
|
|
1628
|
+
type AgentGUIAgentOwnership = "self" | "shared";
|
|
1629
|
+
interface AgentGUISharedAgentQuota {
|
|
1630
|
+
unit: "runs" | "tokens";
|
|
1631
|
+
remaining: number;
|
|
1632
|
+
limit?: number;
|
|
1633
|
+
resetAt?: string | null;
|
|
1634
|
+
}
|
|
1635
|
+
interface AgentGUISharedAgentConcurrency {
|
|
1636
|
+
active: number;
|
|
1637
|
+
limit: number;
|
|
1638
|
+
}
|
|
1639
|
+
interface AgentGUISharedAgentCostQuota {
|
|
1640
|
+
currency: string;
|
|
1641
|
+
remainingMicros: number;
|
|
1642
|
+
limitMicros?: number;
|
|
1643
|
+
}
|
|
1644
|
+
interface AgentGUISharedAgentAllowedModel {
|
|
1645
|
+
modelPlanId?: string | null;
|
|
1646
|
+
model: string;
|
|
1647
|
+
}
|
|
1648
|
+
interface AgentGUISharedAgentPolicyPermissions {
|
|
1649
|
+
consult: boolean;
|
|
1650
|
+
review: boolean;
|
|
1651
|
+
delegate: boolean;
|
|
1652
|
+
upgrade: boolean;
|
|
1653
|
+
}
|
|
1654
|
+
/** Credential-free access snapshot supplied by the shared-Agent control plane. */
|
|
1655
|
+
interface AgentGUISharedAgentAccess {
|
|
1656
|
+
grantId: string;
|
|
1657
|
+
ownerUserId: string;
|
|
1658
|
+
ownerOnline: boolean;
|
|
1659
|
+
auditRequired: boolean;
|
|
1660
|
+
quota?: AgentGUISharedAgentQuota | null;
|
|
1661
|
+
concurrency?: AgentGUISharedAgentConcurrency | null;
|
|
1662
|
+
costQuota?: AgentGUISharedAgentCostQuota | null;
|
|
1663
|
+
allowedModels?: readonly AgentGUISharedAgentAllowedModel[] | null;
|
|
1664
|
+
policyPermissions?: AgentGUISharedAgentPolicyPermissions | null;
|
|
1665
|
+
}
|
|
1666
|
+
/**
|
|
1667
|
+
* Host-projected entry from the workspace `/agents` directory.
|
|
1668
|
+
*
|
|
1669
|
+
* `agentTargetId` is the only UI and launch identity. `provider` remains
|
|
1670
|
+
* execution metadata for provider-native composer/runtime policy and must not
|
|
1671
|
+
* be used to group, deduplicate, name, or select entries.
|
|
1672
|
+
*/
|
|
1673
|
+
interface AgentGUIAgent {
|
|
1674
|
+
agentTargetId: string;
|
|
1675
|
+
name: string;
|
|
1676
|
+
iconUrl: string;
|
|
1677
|
+
/** Single-color artwork rendered through the conversation rail CSS mask. */
|
|
1678
|
+
maskIconUrl?: string | null;
|
|
1679
|
+
heroImageUrl?: string | null;
|
|
1680
|
+
description?: string | null;
|
|
1681
|
+
/** Host-resolved display name of the device that owns this Agent target. */
|
|
1682
|
+
ownerDeviceLabel?: string | null;
|
|
1683
|
+
owner?: AgentGUIAgentOwner | null;
|
|
1684
|
+
ownership?: AgentGUIAgentOwnership | null;
|
|
1685
|
+
sharedAccess?: AgentGUISharedAgentAccess | null;
|
|
1686
|
+
availability: AgentGUIAgentAvailability;
|
|
1687
|
+
provider: AgentGUIProvider;
|
|
1688
|
+
setupKind?: "target_runtime" | null;
|
|
1689
|
+
}
|
|
1690
|
+
type AgentGUIAgentDirectoryStatus = "idle" | "loading" | "ready" | "error";
|
|
1691
|
+
interface AgentGUIAgentDirectorySnapshot {
|
|
1692
|
+
agents: readonly AgentGUIAgent[];
|
|
1693
|
+
capturedAtUnixMs: number | null;
|
|
1694
|
+
error: string | null;
|
|
1695
|
+
status: AgentGUIAgentDirectoryStatus;
|
|
1641
1696
|
}
|
|
1642
|
-
interface
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
agentSessionId: string;
|
|
1646
|
-
attachmentId?: string | null;
|
|
1647
|
-
mimeType: string;
|
|
1648
|
-
name?: string | null;
|
|
1649
|
-
data?: string | null;
|
|
1650
|
-
url?: string | null;
|
|
1651
|
-
path?: string | null;
|
|
1697
|
+
interface AgentGUIAgentDirectoryPort {
|
|
1698
|
+
getSnapshot(): AgentGUIAgentDirectorySnapshot;
|
|
1699
|
+
subscribe(listener: () => void): () => void;
|
|
1652
1700
|
}
|
|
1653
|
-
interface
|
|
1654
|
-
|
|
1655
|
-
id: string;
|
|
1656
|
-
turnId: string;
|
|
1657
|
-
body: string;
|
|
1658
|
-
statusKind?: ToolCallStatusKind | null;
|
|
1659
|
-
occurredAtUnixMs: number | null;
|
|
1660
|
-
sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
|
|
1701
|
+
interface AgentGUIAllAgentsPresentation {
|
|
1702
|
+
iconUrl?: string | null;
|
|
1661
1703
|
}
|
|
1662
|
-
interface
|
|
1663
|
-
kind:
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
speaker: "user" | "assistant";
|
|
1667
|
-
messages: AgentMessageContentVM[];
|
|
1668
|
-
thinking: AgentThinkingContentVM[];
|
|
1669
|
-
occurredAtUnixMs: number | null;
|
|
1704
|
+
interface AgentGUIAgentTargetRef {
|
|
1705
|
+
kind: string;
|
|
1706
|
+
provider: AgentGUIProvider;
|
|
1707
|
+
[key: string]: unknown;
|
|
1670
1708
|
}
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
id: string;
|
|
1675
|
-
turnId: string | null;
|
|
1676
|
-
label?: string | null;
|
|
1677
|
-
occurredAtUnixMs: number | null;
|
|
1709
|
+
interface AgentGUIAgentTargetBadge {
|
|
1710
|
+
iconUrl: string;
|
|
1711
|
+
label?: string;
|
|
1678
1712
|
}
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1713
|
+
interface AgentGUIAgentTarget {
|
|
1714
|
+
targetId: string;
|
|
1715
|
+
agentTargetId?: string | null;
|
|
1716
|
+
provider: AgentGUIProvider;
|
|
1717
|
+
ref: AgentGUIAgentTargetRef;
|
|
1718
|
+
label: string;
|
|
1719
|
+
description?: string;
|
|
1720
|
+
iconUrl?: string | null;
|
|
1721
|
+
maskIconUrl?: string | null;
|
|
1722
|
+
heroImageUrl?: string | null;
|
|
1723
|
+
badge?: AgentGUIAgentTargetBadge | null;
|
|
1724
|
+
ownerLabel?: string;
|
|
1725
|
+
ownerDeviceLabel?: string;
|
|
1726
|
+
ownership?: AgentGUIAgentOwnership;
|
|
1727
|
+
availability?: AgentGUIAgentAvailability;
|
|
1728
|
+
disabled?: boolean;
|
|
1729
|
+
unavailableReason?: string;
|
|
1694
1730
|
}
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
type AgentTaskSubAgentActivityKind = "message" | "reasoning" | "tool";
|
|
1698
|
-
interface AgentTaskSubAgentActivityVM {
|
|
1699
|
-
kind: AgentTaskSubAgentActivityKind;
|
|
1700
|
-
text: string;
|
|
1701
|
-
atUnixMs: number | null;
|
|
1731
|
+
interface AgentGUIProviderRailAllPresentation {
|
|
1732
|
+
iconUrl?: string | null;
|
|
1702
1733
|
}
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1734
|
+
/**
|
|
1735
|
+
* How the provider rail composes the target list.
|
|
1736
|
+
* - "catalog" (default): host-provided targets are augmented with the static
|
|
1737
|
+
* local provider catalog, disabled placeholders (nexight/hermes/openclaw),
|
|
1738
|
+
* and coming-soon markers. When no targets are provided, the full local
|
|
1739
|
+
* catalog is shown.
|
|
1740
|
+
* - "exact": the rail renders exactly the provided targets — no static catalog
|
|
1741
|
+
* fallback, no disabled placeholders, no coming-soon injection. When the list
|
|
1742
|
+
* is empty (and not loading) the host-provided empty renderer is shown. Use
|
|
1743
|
+
* this when the list is fully orchestrated externally (e.g. shared agents,
|
|
1744
|
+
* custom /agents).
|
|
1745
|
+
*/
|
|
1746
|
+
type AgentGUIProviderRailMode = "catalog" | "exact";
|
|
1747
|
+
type AgentGUIProviderReadinessGateStatus = "checking" | "coming_soon" | "not_installed" | "auth_required" | "unavailable";
|
|
1748
|
+
type AgentGUIProviderReadinessGateAction = "install" | "login" | "refresh";
|
|
1749
|
+
interface AgentGUIProviderReadinessGate {
|
|
1750
|
+
status: AgentGUIProviderReadinessGateStatus;
|
|
1751
|
+
pendingAction?: AgentGUIProviderReadinessGateAction | null;
|
|
1752
|
+
onAction?: (provider: AgentGUIProvider, action: AgentGUIProviderReadinessGateAction) => void;
|
|
1721
1753
|
}
|
|
1722
|
-
interface
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
name: string;
|
|
1726
|
-
toolName: string | null;
|
|
1727
|
-
status: string | null;
|
|
1728
|
-
summary: string;
|
|
1729
|
-
payload: Record<string, unknown> | null;
|
|
1730
|
-
tool: AgentToolCallVM | null;
|
|
1731
|
-
occurredAtUnixMs: number | null;
|
|
1754
|
+
interface Size {
|
|
1755
|
+
width: number;
|
|
1756
|
+
height: number;
|
|
1732
1757
|
}
|
|
1733
|
-
interface
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
turnId: string;
|
|
1737
|
-
title: string;
|
|
1738
|
-
status: string | null;
|
|
1739
|
-
prompt?: string | null;
|
|
1740
|
-
delegateSessionId?: string | null;
|
|
1741
|
-
steps: AgentTaskStepVM[];
|
|
1742
|
-
subAgents?: AgentTaskSubAgentVM[];
|
|
1743
|
-
result?: string | null;
|
|
1744
|
-
resultMarkdown?: string | null;
|
|
1745
|
-
durationMs?: number | null;
|
|
1746
|
-
occurredAtUnixMs: number | null;
|
|
1758
|
+
interface Point {
|
|
1759
|
+
x: number;
|
|
1760
|
+
y: number;
|
|
1747
1761
|
}
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
kind: "tool-call";
|
|
1752
|
-
id: string;
|
|
1753
|
-
turnId: string;
|
|
1754
|
-
name: string;
|
|
1755
|
-
toolName: string | null;
|
|
1756
|
-
callType: string | null;
|
|
1757
|
-
status: string | null;
|
|
1758
|
-
statusKind: ToolCallStatusKind | null;
|
|
1759
|
-
summary: string;
|
|
1760
|
-
compactSummary: string | null;
|
|
1761
|
-
payload: Record<string, unknown> | null;
|
|
1762
|
-
toolState: Record<string, unknown> | null;
|
|
1763
|
-
input: Record<string, unknown> | null;
|
|
1764
|
-
output: Record<string, unknown> | null;
|
|
1765
|
-
error: Record<string, unknown> | null;
|
|
1766
|
-
metadata: Record<string, unknown> | null;
|
|
1767
|
-
content: unknown[] | null;
|
|
1768
|
-
locations: unknown[] | null;
|
|
1769
|
-
rendererKind: AgentToolRendererKind;
|
|
1770
|
-
approval: AgentApprovalItemVM | null;
|
|
1771
|
-
planMode: AgentPlanModeItemVM | null;
|
|
1772
|
-
askUserQuestion: AgentAskUserQuestionItemVM | null;
|
|
1773
|
-
task: AgentTaskItemVM | null;
|
|
1774
|
-
occurredAtUnixMs: number | null;
|
|
1775
|
-
sourceTimelineItems?: WorkspaceAgentActivityTimelineItem[];
|
|
1762
|
+
interface NodeFrame {
|
|
1763
|
+
position: Point;
|
|
1764
|
+
size: Size;
|
|
1776
1765
|
}
|
|
1777
1766
|
|
|
1778
|
-
type
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
call: AgentToolCallVM;
|
|
1784
|
-
};
|
|
1785
|
-
interface AgentToolGroupRowVM {
|
|
1786
|
-
kind: "tool-group";
|
|
1787
|
-
id: string;
|
|
1788
|
-
expansionKey?: string;
|
|
1789
|
-
turnId: string;
|
|
1790
|
-
grouped: boolean;
|
|
1791
|
-
calls: AgentToolCallVM[];
|
|
1792
|
-
summary?: string | null;
|
|
1793
|
-
entries: AgentToolGroupEntryVM[];
|
|
1794
|
-
occurredAtUnixMs: number | null;
|
|
1767
|
+
type AgentGuiWorkbenchSessionAction = "rename" | "copy-markdown" | "copy-reference";
|
|
1768
|
+
interface AgentGuiWorkbenchSessionActionRequest {
|
|
1769
|
+
action: AgentGuiWorkbenchSessionAction;
|
|
1770
|
+
agentSessionId: string | null;
|
|
1771
|
+
sequence: number;
|
|
1795
1772
|
}
|
|
1796
1773
|
|
|
1797
|
-
|
|
1798
|
-
|
|
1774
|
+
type WorkspaceLinkActionSource = "agent-markdown" | "agent-file-change" | string;
|
|
1775
|
+
interface OpenWorkspaceFileLinkAction {
|
|
1776
|
+
type: "open-workspace-file";
|
|
1777
|
+
mode?: "reveal" | "open-directory";
|
|
1799
1778
|
path: string;
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1779
|
+
directoryPath: string;
|
|
1780
|
+
workspaceRoot: string;
|
|
1781
|
+
source: WorkspaceLinkActionSource;
|
|
1782
|
+
prefetchedDirectoryListing?: WorkspaceFileLinkDirectoryListing | null;
|
|
1783
|
+
}
|
|
1784
|
+
interface OpenLocalAssetPreviewLinkAction {
|
|
1785
|
+
type: "open-local-asset-preview";
|
|
1786
|
+
path: string;
|
|
1787
|
+
name: string;
|
|
1788
|
+
source: WorkspaceLinkActionSource;
|
|
1789
|
+
}
|
|
1790
|
+
interface WorkspaceFileLinkDirectoryEntry {
|
|
1791
|
+
path: string;
|
|
1792
|
+
name: string;
|
|
1793
|
+
kind: "file" | "directory" | "unknown";
|
|
1794
|
+
hasChildren: boolean | null;
|
|
1795
|
+
sizeBytes: number | null;
|
|
1796
|
+
mtimeMs: number | null;
|
|
1797
|
+
}
|
|
1798
|
+
interface WorkspaceFileLinkDirectoryListing {
|
|
1799
|
+
workspaceId: string;
|
|
1800
|
+
root: string;
|
|
1801
|
+
directoryPath: string;
|
|
1802
|
+
entries: WorkspaceFileLinkDirectoryEntry[];
|
|
1803
|
+
}
|
|
1804
|
+
interface OpenWorkspaceUrlLinkAction {
|
|
1805
|
+
type: "open-url";
|
|
1806
|
+
url: string;
|
|
1807
|
+
source: WorkspaceLinkActionSource;
|
|
1810
1808
|
}
|
|
1811
|
-
interface
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
content?: string | null;
|
|
1809
|
+
interface OpenAgentSessionLinkAction {
|
|
1810
|
+
type: "open-agent-session";
|
|
1811
|
+
workspaceId: string;
|
|
1812
|
+
agentSessionId: string;
|
|
1813
|
+
agentTargetId?: string | null;
|
|
1814
|
+
source: WorkspaceLinkActionSource;
|
|
1818
1815
|
}
|
|
1819
|
-
interface
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1816
|
+
interface OpenWorkspaceIssueLinkAction {
|
|
1817
|
+
type: "open-workspace-issue";
|
|
1818
|
+
workspaceId: string;
|
|
1819
|
+
issueId: string | null;
|
|
1820
|
+
mode?: WorkspaceIssueMentionMode;
|
|
1821
|
+
outputDir?: string | null;
|
|
1822
|
+
runId?: string | null;
|
|
1823
|
+
taskId?: string | null;
|
|
1824
|
+
topicId?: string | null;
|
|
1825
|
+
source: WorkspaceLinkActionSource;
|
|
1823
1826
|
}
|
|
1824
|
-
interface
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1827
|
+
interface OpenWorkspaceAppLinkAction {
|
|
1828
|
+
type: "open-workspace-app";
|
|
1829
|
+
workspaceId: string;
|
|
1830
|
+
appId: string;
|
|
1831
|
+
conversationId?: string | null;
|
|
1832
|
+
messageId?: string | null;
|
|
1833
|
+
summaryTaskId?: string | null;
|
|
1834
|
+
source: WorkspaceLinkActionSource;
|
|
1835
|
+
}
|
|
1836
|
+
interface OpenCustomMentionLinkAction {
|
|
1837
|
+
type: "open-custom-mention";
|
|
1838
|
+
/** 注册表里的 kind(= mention:// providerId)。 */
|
|
1839
|
+
kind: string;
|
|
1840
|
+
href: string;
|
|
1841
|
+
source: WorkspaceLinkActionSource;
|
|
1834
1842
|
}
|
|
1843
|
+
type WorkspaceLinkAction = OpenWorkspaceFileLinkAction | OpenLocalAssetPreviewLinkAction | OpenWorkspaceUrlLinkAction | OpenAgentSessionLinkAction | OpenWorkspaceIssueLinkAction | OpenWorkspaceAppLinkAction | OpenCustomMentionLinkAction;
|
|
1835
1844
|
|
|
1836
|
-
|
|
1845
|
+
interface AgentMessageMarkdownWorkspaceAppIcon {
|
|
1846
|
+
appId: string;
|
|
1847
|
+
iconUrl: string | null;
|
|
1848
|
+
workspaceId?: string | null;
|
|
1849
|
+
}
|
|
1837
1850
|
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1851
|
+
interface AgentGUIAccountMenuState {
|
|
1852
|
+
user: {
|
|
1853
|
+
userId: string;
|
|
1854
|
+
name?: string | null;
|
|
1855
|
+
email?: string | null;
|
|
1856
|
+
avatar?: string | null;
|
|
1857
|
+
} | null;
|
|
1858
|
+
membershipLabel: string;
|
|
1859
|
+
creditsLabel: string | null;
|
|
1860
|
+
loading: boolean;
|
|
1861
|
+
error: string | null;
|
|
1862
|
+
partialError?: boolean;
|
|
1863
|
+
registrationCreditsToast?: {
|
|
1864
|
+
id: string;
|
|
1865
|
+
creditsLabel: string;
|
|
1866
|
+
visible: boolean;
|
|
1867
|
+
autoDismissMs?: number;
|
|
1868
|
+
onDismiss(): void;
|
|
1869
|
+
} | null;
|
|
1870
|
+
links: {
|
|
1871
|
+
planUrl: string;
|
|
1872
|
+
usageUrl: string;
|
|
1873
|
+
settingsUrl: string;
|
|
1874
|
+
};
|
|
1875
|
+
onOpenChange(open: boolean): void;
|
|
1876
|
+
onLogin(): void;
|
|
1877
|
+
onLogout?(): void;
|
|
1878
|
+
onSettings?(): void;
|
|
1879
|
+
onOpenExternal(url: string): void;
|
|
1859
1880
|
}
|
|
1860
1881
|
|
|
1882
|
+
type AgentSessionCommand = AgentHostAgentSessionCommand;
|
|
1883
|
+
type AgentSessionComposerSettings = AgentHostAgentSessionComposerSettings;
|
|
1884
|
+
type AgentSessionPermissionConfig = AgentHostAgentSessionPermissionConfig;
|
|
1885
|
+
type AgentSessionReasoningEffort = AgentHostAgentSessionReasoningEffort;
|
|
1886
|
+
type AgentSessionSpeed = AgentHostAgentSessionSpeed;
|
|
1887
|
+
|
|
1861
1888
|
type AgentFileMentionKind = "file" | "directory" | "unknown";
|
|
1862
1889
|
type AgentMentionFileNavigationAction = "agent-generated-folder" | "agent-generated-folder-back" | "workspace-folder" | "workspace-folder-back";
|
|
1863
1890
|
type AgentMentionScope = "my_sessions" | "collab_sessions";
|
|
@@ -2078,7 +2105,7 @@ type AgentCapabilityUse = "browserUse" | "computerUse";
|
|
|
2078
2105
|
|
|
2079
2106
|
interface AgentSlashCommandCapability {
|
|
2080
2107
|
aliases?: readonly string[];
|
|
2081
|
-
capability: AgentCapabilityUse;
|
|
2108
|
+
capability: AgentCapabilityUse | "tutti";
|
|
2082
2109
|
kind: "capability";
|
|
2083
2110
|
name: string;
|
|
2084
2111
|
}
|
|
@@ -2301,6 +2328,11 @@ interface AgentGUIComposerViewModel {
|
|
|
2301
2328
|
/** Provider goal exposes a real paused state and pause/resume controls. */
|
|
2302
2329
|
goalPauseSupported: boolean;
|
|
2303
2330
|
canSubmit: boolean;
|
|
2331
|
+
isTuttiModeActive: boolean;
|
|
2332
|
+
isTuttiModeUpdating: boolean;
|
|
2333
|
+
/** Effective Tutti orchestration intensity (0-100) for the budget popup. */
|
|
2334
|
+
tuttiModeOrchestrationIntensity: number;
|
|
2335
|
+
tuttiModeUpdateStatus: "idle" | "pending_create" | "updating" | "failed" | "uncertain";
|
|
2304
2336
|
composerSettings: AgentGUIComposerSettingsVM;
|
|
2305
2337
|
queuedPrompts: AgentGUIQueuedPromptVM[];
|
|
2306
2338
|
queueStatus: AgentGUIQueueStatus;
|
|
@@ -3259,6 +3291,223 @@ declare const agentGuiI18nResources: {
|
|
|
3259
3291
|
readonly removeAgentFromSidebar: "Remove {{agent}} from sidebar";
|
|
3260
3292
|
readonly addAgentToSidebar: "Add {{agent}} to sidebar";
|
|
3261
3293
|
readonly dragAgentToReorder: "Drag {{agent}} to reorder";
|
|
3294
|
+
readonly planCardTitle: "Plan";
|
|
3295
|
+
readonly planCardCopy: "Copy plan";
|
|
3296
|
+
readonly copyCode: "Copy code";
|
|
3297
|
+
readonly planCardExpand: "Expand plan";
|
|
3298
|
+
readonly planCardCollapse: "Collapse plan";
|
|
3299
|
+
readonly planImplementationLead: "Implement this plan?";
|
|
3300
|
+
readonly planImplementationConfirm: "Yes, implement this plan";
|
|
3301
|
+
readonly planImplementationFeedbackPlaceholder: "No — tell the agent how to adjust the approach";
|
|
3302
|
+
readonly planImplementationSend: "Send";
|
|
3303
|
+
readonly planImplementationSkip: "Stay in Plan Mode";
|
|
3304
|
+
readonly noRunningResponse: "No running response to stop.";
|
|
3305
|
+
readonly composerTextMenu: "Composer text actions";
|
|
3306
|
+
readonly pastedTextFilesHeader: "Referenced pasted text files:";
|
|
3307
|
+
readonly pastedTextFileLine: "- pasted text file \"{{preview}}\": {{path}}. Read this file before continuing.";
|
|
3308
|
+
readonly pastedTextAttachmentTitle: "Pasted text";
|
|
3309
|
+
readonly pastedTextAttachmentFailed: "Pasted text couldn't be saved";
|
|
3310
|
+
readonly pastedTextRestoreToComposer: "Show in text field";
|
|
3311
|
+
readonly copyMessage: "Copy message";
|
|
3312
|
+
readonly copyImage: "Copy image";
|
|
3313
|
+
readonly messageCopied: "Copied";
|
|
3314
|
+
readonly promptTipsPrefix: "Tips: ";
|
|
3315
|
+
readonly reviewPicker: {
|
|
3316
|
+
readonly title: "Code review";
|
|
3317
|
+
readonly targetLabel: "What to review";
|
|
3318
|
+
readonly searchPlaceholder: "Search";
|
|
3319
|
+
readonly noResults: "No matches";
|
|
3320
|
+
readonly uncommitted: "Uncommitted changes";
|
|
3321
|
+
readonly baseBranch: "Compare against a branch";
|
|
3322
|
+
readonly commit: "A specific commit";
|
|
3323
|
+
readonly custom: "Custom instructions";
|
|
3324
|
+
readonly branchLabel: "Base branch";
|
|
3325
|
+
readonly branchPlaceholder: "Select a branch";
|
|
3326
|
+
readonly branchLoading: "Loading branches…";
|
|
3327
|
+
readonly branchEmpty: "No branches found";
|
|
3328
|
+
readonly commitPlaceholder: "Commit SHA";
|
|
3329
|
+
readonly customPlaceholder: "Describe what to review";
|
|
3330
|
+
readonly submit: "Start review";
|
|
3331
|
+
readonly cancel: "Cancel";
|
|
3332
|
+
};
|
|
3333
|
+
readonly promptTips: {
|
|
3334
|
+
readonly setWorkspace: {
|
|
3335
|
+
readonly label: "Set the workspace";
|
|
3336
|
+
readonly prompt: "Let the Agent know where to read files, run commands, and understand code.";
|
|
3337
|
+
};
|
|
3338
|
+
readonly useIssue: {
|
|
3339
|
+
readonly label: "Use Tasks well";
|
|
3340
|
+
readonly prompt: "Put requirements, constraints, and acceptance criteria in a Task so the Agent can work toward a clear target.";
|
|
3341
|
+
};
|
|
3342
|
+
readonly mapCurrentState: {
|
|
3343
|
+
readonly label: "Map the current state";
|
|
3344
|
+
readonly prompt: "When the next step is unclear, ask the Agent to summarize status, risks, and what to do next.";
|
|
3345
|
+
};
|
|
3346
|
+
readonly continueRecentSession: {
|
|
3347
|
+
readonly label: "Continue recent work";
|
|
3348
|
+
readonly prompt: "When resuming, have the Agent recap recent progress, unfinished work, and blockers first.";
|
|
3349
|
+
};
|
|
3350
|
+
readonly referenceOtherAgents: {
|
|
3351
|
+
readonly label: "Reference other Agent conversations";
|
|
3352
|
+
readonly prompt: "Make context handoffs more complete and reduce lost details.";
|
|
3353
|
+
};
|
|
3354
|
+
readonly controlPermissions: {
|
|
3355
|
+
readonly label: "Control permissions";
|
|
3356
|
+
readonly prompt: "Use Ask for approval when you want caution, then switch to higher access once file changes are expected.";
|
|
3357
|
+
};
|
|
3358
|
+
};
|
|
3359
|
+
readonly empty: "What can {{provider}} help you with?";
|
|
3360
|
+
readonly homeSuggestionsClose: "Close suggestions";
|
|
3361
|
+
readonly homeSuggestions: {
|
|
3362
|
+
readonly about: {
|
|
3363
|
+
readonly title: "Meet Tutti";
|
|
3364
|
+
readonly prompt: "Tell me what Tutti can help me do";
|
|
3365
|
+
};
|
|
3366
|
+
readonly breakdown: {
|
|
3367
|
+
readonly title: "Task breakdown";
|
|
3368
|
+
readonly taskCenterLabel: "Task management";
|
|
3369
|
+
readonly prompt: "Use {{taskCenterMention}} to help me break down the task, topic { enter here }";
|
|
3370
|
+
};
|
|
3371
|
+
readonly review: {
|
|
3372
|
+
readonly title: "Quality review";
|
|
3373
|
+
readonly prompt: "Have { @agent } review the output quality of { @agent session }";
|
|
3374
|
+
};
|
|
3375
|
+
readonly interaction: {
|
|
3376
|
+
readonly title: "Agent interaction";
|
|
3377
|
+
readonly prompt: "Have { @agent } and { @agent } work together to { do something }, topic { enter here }";
|
|
3378
|
+
};
|
|
3379
|
+
readonly import: {
|
|
3380
|
+
readonly title: "Import session";
|
|
3381
|
+
};
|
|
3382
|
+
};
|
|
3383
|
+
readonly conversations: "Sessions";
|
|
3384
|
+
readonly newConversation: "New session";
|
|
3385
|
+
readonly accountMenuTitle: "Tutti Agent";
|
|
3386
|
+
readonly accountMenuMember: "Membership";
|
|
3387
|
+
readonly accountMenuUpgrade: "Upgrade";
|
|
3388
|
+
readonly accountMenuCreditsBalance: "Credits";
|
|
3389
|
+
readonly accountMenuAccountCenter: "Account center";
|
|
3390
|
+
readonly accountMenuSettings: "Settings";
|
|
3391
|
+
readonly accountMenuFree: "Free";
|
|
3392
|
+
readonly accountMenuSignIn: "Sign in";
|
|
3393
|
+
readonly accountMenuSignOut: "Sign out";
|
|
3394
|
+
readonly accountMenuLoading: "Loading";
|
|
3395
|
+
readonly accountMenuUnavailable: "--";
|
|
3396
|
+
readonly accountMenuDataUnavailable: "Some account data is unavailable";
|
|
3397
|
+
readonly accountRewardToastTitle: "New user credits";
|
|
3398
|
+
readonly accountRewardToastCreditsUnit: "credits";
|
|
3399
|
+
readonly accountRewardToastDescription: "Added to account balance";
|
|
3400
|
+
readonly accountRewardToastClose: "Close credits reward notification";
|
|
3401
|
+
readonly agentConfig: "Check & Settings";
|
|
3402
|
+
readonly agentSettingsMenu: "Settings";
|
|
3403
|
+
readonly agentEnvSetup: "Environment Check";
|
|
3404
|
+
readonly noConversations: "No sessions yet";
|
|
3405
|
+
readonly emptyProjectConversations: "No chats yet";
|
|
3406
|
+
readonly agentsEmpty: "No agents are available";
|
|
3407
|
+
readonly conversationFilterAll: "All";
|
|
3408
|
+
readonly slashStatusTitle: "Status";
|
|
3409
|
+
readonly slashStatusSession: "Session";
|
|
3410
|
+
readonly slashStatusBaseUrl: "Base URL";
|
|
3411
|
+
readonly slashStatusContext: "Context";
|
|
3412
|
+
readonly slashStatusLimits: "Usage Limits";
|
|
3413
|
+
readonly slashStatusAccount: "Account";
|
|
3414
|
+
readonly slashStatusClose: "Close";
|
|
3415
|
+
readonly slashStatusFiveHourLimit: "5h limit";
|
|
3416
|
+
readonly slashStatusWeeklyLimit: "7d limit";
|
|
3417
|
+
readonly slashStatusLimitPercentLeft: "{{percent}}% left";
|
|
3418
|
+
readonly slashStatusLimitReset: "resets {{reset}}";
|
|
3419
|
+
readonly slashStatusContextValue: "{{percentLeft}}% left ({{usedTokens}} used / {{totalTokens}})";
|
|
3420
|
+
readonly slashStatusContextUnavailable: "Context usage unavailable";
|
|
3421
|
+
readonly slashStatusLimitsUnavailable: "Rate limits unavailable from this agent";
|
|
3422
|
+
readonly slashStatusEmptyValue: "—";
|
|
3423
|
+
readonly slashStatusUsageJustUpdated: "Updated just now";
|
|
3424
|
+
readonly slashStatusUsageMinutesAgo: "Updated {{count}}m ago";
|
|
3425
|
+
readonly slashStatusUsageHoursAgo: "Updated {{count}}h ago";
|
|
3426
|
+
readonly slashStatusUsageUpdating: "Updating…";
|
|
3427
|
+
readonly slashStatusUsageRefreshFailed: "Refresh failed";
|
|
3428
|
+
readonly slashStatusUsageRefreshAria: "Refresh usage";
|
|
3429
|
+
readonly usageChipLabel: "Context {{percent}}%";
|
|
3430
|
+
readonly usageTooltipLabel: "Context usage";
|
|
3431
|
+
readonly usagePopoverTitle: "Context Usage";
|
|
3432
|
+
readonly usageContextWindowLabel: "Context window";
|
|
3433
|
+
readonly usageTokensLabel: "Tokens";
|
|
3434
|
+
readonly usageLimitsLabel: "Limits";
|
|
3435
|
+
readonly usageCompactAction: "Compact";
|
|
3436
|
+
readonly queuedLabel: "Queued";
|
|
3437
|
+
readonly queuePausedByUserLabel: "The queue is paused because you interrupted the current response.";
|
|
3438
|
+
readonly sendQueuedPromptNext: "Send next";
|
|
3439
|
+
readonly editQueuedPrompt: "Edit";
|
|
3440
|
+
readonly deleteQueuedPrompt: "Delete";
|
|
3441
|
+
readonly queuedPromptMoreActions: "More queued prompt actions";
|
|
3442
|
+
readonly stop: "Stop";
|
|
3443
|
+
readonly stopping: "Stopping...";
|
|
3444
|
+
readonly planModeLabel: "Plan Mode";
|
|
3445
|
+
readonly normalModeLabel: "Normal";
|
|
3446
|
+
readonly normalModeDescription: "Execute the request directly";
|
|
3447
|
+
readonly tuttiModeLabel: "Tutti";
|
|
3448
|
+
readonly tuttiModeDescription: "Ask the agent to prefer Tutti's native workflow capabilities";
|
|
3449
|
+
readonly tuttiModeRemove: "Turn off Tutti mode";
|
|
3450
|
+
readonly tuttiBudgetTitle: "Tutti intensity";
|
|
3451
|
+
readonly tuttiBudgetIntensityLabel: "Intensity";
|
|
3452
|
+
readonly tuttiBudgetIntensityMin: "Minimal";
|
|
3453
|
+
readonly tuttiBudgetIntensityMax: "Maximal";
|
|
3454
|
+
readonly tuttiBudgetConfirm: "Confirm";
|
|
3455
|
+
readonly tuttiBudgetCancel: "Cancel";
|
|
3456
|
+
readonly tuttiModeUpdateFailed: "Tutti mode couldn't be updated. Try again.";
|
|
3457
|
+
readonly tuttiModeUpdateUncertain: "Tutti mode is still being reconciled. Try again after it finishes.";
|
|
3458
|
+
readonly tuttiModePlan: {
|
|
3459
|
+
readonly mode: "Tutti mode plan";
|
|
3460
|
+
readonly taskReview: "Plan review";
|
|
3461
|
+
readonly pending: "Needs review";
|
|
3462
|
+
readonly cancel: "Cancel plan";
|
|
3463
|
+
readonly reviewHint: "Send to accept · type feedback to request changes";
|
|
3464
|
+
readonly reviewHintReplan: "Intensity changed · send to re-plan at the new intensity";
|
|
3465
|
+
readonly sendAccept: "Accept plan";
|
|
3466
|
+
readonly sendRequestChanges: "Request changes";
|
|
3467
|
+
readonly replanFeedback: "Intensity was adjusted from {{from}} to {{to}}. Re-plan at the new intensity: rescale the task decomposition granularity and each task's model/reasoning tier.";
|
|
3468
|
+
readonly replanFeedbackSuffix: " (Intensity was adjusted to {{to}}; re-plan accordingly.)";
|
|
3469
|
+
readonly tasks: "Tasks";
|
|
3470
|
+
readonly priority: "Priority";
|
|
3471
|
+
readonly priorityHigh: "High";
|
|
3472
|
+
readonly priorityMedium: "Medium";
|
|
3473
|
+
readonly priorityLow: "Low";
|
|
3474
|
+
readonly agentTarget: "Agent";
|
|
3475
|
+
readonly model: "Model";
|
|
3476
|
+
readonly permissionMode: "Permission mode";
|
|
3477
|
+
readonly reasoningEffort: "Reasoning effort";
|
|
3478
|
+
readonly parallelizable: "Parallel";
|
|
3479
|
+
readonly autoAccept: "Auto-accept";
|
|
3480
|
+
readonly assignmentOptionsLoading: "Loading options...";
|
|
3481
|
+
readonly notSpecified: "Not specified";
|
|
3482
|
+
readonly loadFailed: "Tutti mode plans could not be loaded";
|
|
3483
|
+
readonly retry: "Try again";
|
|
3484
|
+
readonly issueOpen: "Open Issue";
|
|
3485
|
+
readonly issueStopExecution: "Stop";
|
|
3486
|
+
readonly issueListView: "List";
|
|
3487
|
+
readonly issueBoardView: "Board";
|
|
3488
|
+
readonly issueSummary: "{{done}}/{{total}} done · {{running}} running";
|
|
3489
|
+
readonly issueDependencies: "Depends";
|
|
3490
|
+
readonly issueAccept: "Accept";
|
|
3491
|
+
readonly issueRework: "Rework";
|
|
3492
|
+
readonly issueStageParallel: "Stage {{index}} · parallel ×{{count}}";
|
|
3493
|
+
readonly issueStageSequential: "Stage {{index}} · sequential";
|
|
3494
|
+
readonly issueStatusNotStarted: "Todo";
|
|
3495
|
+
readonly issueStatusRunning: "Running";
|
|
3496
|
+
readonly issueStatusPendingAcceptance: "In review";
|
|
3497
|
+
readonly issueStatusCompleted: "Done";
|
|
3498
|
+
readonly issueStatusFailed: "Failed";
|
|
3499
|
+
readonly issueStatusCanceled: "Canceled";
|
|
3500
|
+
readonly issueStripRunning: "{{count}} subtasks running";
|
|
3501
|
+
readonly issueStripPending: "{{count}} awaiting acceptance";
|
|
3502
|
+
readonly issueStripFailed: "{{count}} failed";
|
|
3503
|
+
readonly issueStripDone: "{{done}}/{{total}} done";
|
|
3504
|
+
readonly issueStripJump: "View the subtask board";
|
|
3505
|
+
readonly issueCreateFailed: "The approved plan could not create its Issue: {{message}}. Ask the Agent to revise the plan.";
|
|
3506
|
+
};
|
|
3507
|
+
readonly planModeDescription: "Plan first, then implement or break down into an Issue";
|
|
3508
|
+
readonly planModeOnLabel: "On";
|
|
3509
|
+
readonly planModeOffLabel: "Off";
|
|
3510
|
+
readonly planUnavailable: "Plan unavailable";
|
|
3262
3511
|
readonly initialPlaceholder: "Type @ to reference sessions, files, tasks, and apps";
|
|
3263
3512
|
readonly followupPlaceholder: "Request follow-up changes from {{provider}}";
|
|
3264
3513
|
readonly installRequiredPlaceholder: "Connect {{provider}} to send messages";
|
|
@@ -3481,160 +3730,6 @@ declare const agentGuiI18nResources: {
|
|
|
3481
3730
|
readonly professionalLongRunning: "Optimized for professional work and long-running agents";
|
|
3482
3731
|
};
|
|
3483
3732
|
readonly permissionLabel: "Run permissions";
|
|
3484
|
-
readonly planModeLabel: "Plan Mode";
|
|
3485
|
-
readonly planModeOnLabel: "On";
|
|
3486
|
-
readonly planModeOffLabel: "Off";
|
|
3487
|
-
readonly planUnavailable: "Plan unavailable";
|
|
3488
|
-
readonly queuedLabel: "Queued";
|
|
3489
|
-
readonly queuePausedByUserLabel: "The queue is paused because you interrupted the current response.";
|
|
3490
|
-
readonly sendQueuedPromptNext: "Send next";
|
|
3491
|
-
readonly editQueuedPrompt: "Edit";
|
|
3492
|
-
readonly deleteQueuedPrompt: "Delete";
|
|
3493
|
-
readonly queuedPromptMoreActions: "More queued prompt actions";
|
|
3494
|
-
readonly stop: "Stop";
|
|
3495
|
-
readonly stopping: "Stopping...";
|
|
3496
|
-
readonly slashStatusTitle: "Status";
|
|
3497
|
-
readonly slashStatusSession: "Session";
|
|
3498
|
-
readonly slashStatusBaseUrl: "Base URL";
|
|
3499
|
-
readonly slashStatusContext: "Context";
|
|
3500
|
-
readonly slashStatusLimits: "Usage Limits";
|
|
3501
|
-
readonly slashStatusAccount: "Account";
|
|
3502
|
-
readonly slashStatusClose: "Close";
|
|
3503
|
-
readonly slashStatusFiveHourLimit: "5h limit";
|
|
3504
|
-
readonly slashStatusWeeklyLimit: "7d limit";
|
|
3505
|
-
readonly slashStatusLimitPercentLeft: "{{percent}}% left";
|
|
3506
|
-
readonly slashStatusLimitReset: "resets {{reset}}";
|
|
3507
|
-
readonly slashStatusContextValue: "{{percentLeft}}% left ({{usedTokens}} used / {{totalTokens}})";
|
|
3508
|
-
readonly slashStatusContextUnavailable: "—";
|
|
3509
|
-
readonly slashStatusLimitsUnavailable: "Rate limits unavailable from this agent";
|
|
3510
|
-
readonly slashStatusEmptyValue: "—";
|
|
3511
|
-
readonly slashStatusUsageJustUpdated: "Updated just now";
|
|
3512
|
-
readonly slashStatusUsageMinutesAgo: "Updated {{count}}m ago";
|
|
3513
|
-
readonly slashStatusUsageHoursAgo: "Updated {{count}}h ago";
|
|
3514
|
-
readonly slashStatusUsageUpdating: "Updating…";
|
|
3515
|
-
readonly slashStatusUsageRefreshFailed: "Refresh failed";
|
|
3516
|
-
readonly slashStatusUsageRefreshAria: "Refresh usage";
|
|
3517
|
-
readonly usageChipLabel: "Context {{percent}}%";
|
|
3518
|
-
readonly usageTooltipLabel: "Context usage";
|
|
3519
|
-
readonly usagePopoverTitle: "Context Usage";
|
|
3520
|
-
readonly usageContextWindowLabel: "Context window";
|
|
3521
|
-
readonly usageTokensLabel: "Tokens";
|
|
3522
|
-
readonly usageLimitsLabel: "Limits";
|
|
3523
|
-
readonly usageCompactAction: "Compact";
|
|
3524
|
-
readonly planCardTitle: "Plan";
|
|
3525
|
-
readonly planCardCopy: "Copy plan";
|
|
3526
|
-
readonly copyCode: "Copy code";
|
|
3527
|
-
readonly planCardExpand: "Expand plan";
|
|
3528
|
-
readonly planCardCollapse: "Collapse plan";
|
|
3529
|
-
readonly planImplementationLead: "Implement this plan?";
|
|
3530
|
-
readonly planImplementationConfirm: "Yes, implement this plan";
|
|
3531
|
-
readonly planImplementationFeedbackPlaceholder: "No — tell the agent how to adjust the approach";
|
|
3532
|
-
readonly planImplementationSend: "Send";
|
|
3533
|
-
readonly planImplementationSkip: "Stay in Plan Mode";
|
|
3534
|
-
readonly noRunningResponse: "No running response to stop.";
|
|
3535
|
-
readonly composerTextMenu: "Composer text actions";
|
|
3536
|
-
readonly pastedTextFilesHeader: "Referenced pasted text files:";
|
|
3537
|
-
readonly pastedTextFileLine: "- pasted text file \"{{preview}}\": {{path}}. Read this file before continuing.";
|
|
3538
|
-
readonly pastedTextAttachmentTitle: "Pasted text";
|
|
3539
|
-
readonly pastedTextAttachmentFailed: "Pasted text couldn't be saved";
|
|
3540
|
-
readonly pastedTextRestoreToComposer: "Show in text field";
|
|
3541
|
-
readonly copyMessage: "Copy message";
|
|
3542
|
-
readonly copyImage: "Copy image";
|
|
3543
|
-
readonly messageCopied: "Copied";
|
|
3544
|
-
readonly promptTipsPrefix: "Tips: ";
|
|
3545
|
-
readonly reviewPicker: {
|
|
3546
|
-
readonly title: "Code review";
|
|
3547
|
-
readonly targetLabel: "What to review";
|
|
3548
|
-
readonly searchPlaceholder: "Search";
|
|
3549
|
-
readonly noResults: "No matches";
|
|
3550
|
-
readonly uncommitted: "Uncommitted changes";
|
|
3551
|
-
readonly baseBranch: "Compare against a branch";
|
|
3552
|
-
readonly commit: "A specific commit";
|
|
3553
|
-
readonly custom: "Custom instructions";
|
|
3554
|
-
readonly branchLabel: "Base branch";
|
|
3555
|
-
readonly branchPlaceholder: "Select a branch";
|
|
3556
|
-
readonly branchLoading: "Loading branches…";
|
|
3557
|
-
readonly branchEmpty: "No branches found";
|
|
3558
|
-
readonly commitPlaceholder: "Commit SHA";
|
|
3559
|
-
readonly customPlaceholder: "Describe what to review";
|
|
3560
|
-
readonly submit: "Start review";
|
|
3561
|
-
readonly cancel: "Cancel";
|
|
3562
|
-
};
|
|
3563
|
-
readonly promptTips: {
|
|
3564
|
-
readonly setWorkspace: {
|
|
3565
|
-
readonly label: "Set the workspace";
|
|
3566
|
-
readonly prompt: "Let the Agent know where to read files, run commands, and understand code.";
|
|
3567
|
-
};
|
|
3568
|
-
readonly useIssue: {
|
|
3569
|
-
readonly label: "Use Tasks well";
|
|
3570
|
-
readonly prompt: "Put requirements, constraints, and acceptance criteria in a Task so the Agent can work toward a clear target.";
|
|
3571
|
-
};
|
|
3572
|
-
readonly mapCurrentState: {
|
|
3573
|
-
readonly label: "Map the current state";
|
|
3574
|
-
readonly prompt: "When the next step is unclear, ask the Agent to summarize status, risks, and what to do next.";
|
|
3575
|
-
};
|
|
3576
|
-
readonly continueRecentSession: {
|
|
3577
|
-
readonly label: "Continue recent work";
|
|
3578
|
-
readonly prompt: "When resuming, have the Agent recap recent progress, unfinished work, and blockers first.";
|
|
3579
|
-
};
|
|
3580
|
-
readonly referenceOtherAgents: {
|
|
3581
|
-
readonly label: "Reference other Agent conversations";
|
|
3582
|
-
readonly prompt: "Make context handoffs more complete and reduce lost details.";
|
|
3583
|
-
};
|
|
3584
|
-
readonly controlPermissions: {
|
|
3585
|
-
readonly label: "Control permissions";
|
|
3586
|
-
readonly prompt: "Use Ask for approval when you want caution, then switch to higher access once file changes are expected.";
|
|
3587
|
-
};
|
|
3588
|
-
};
|
|
3589
|
-
readonly empty: "What can {{provider}} help you with?";
|
|
3590
|
-
readonly homeSuggestionsClose: "Close suggestions";
|
|
3591
|
-
readonly homeSuggestions: {
|
|
3592
|
-
readonly about: {
|
|
3593
|
-
readonly title: "Meet Tutti";
|
|
3594
|
-
readonly prompt: "Tell me what Tutti can help me do";
|
|
3595
|
-
};
|
|
3596
|
-
readonly breakdown: {
|
|
3597
|
-
readonly title: "Task breakdown";
|
|
3598
|
-
readonly taskCenterLabel: "Task management";
|
|
3599
|
-
readonly prompt: "Use {{taskCenterMention}} to help me break down the task, topic { enter here }";
|
|
3600
|
-
};
|
|
3601
|
-
readonly review: {
|
|
3602
|
-
readonly title: "Quality review";
|
|
3603
|
-
readonly prompt: "Have { @agent } review the output quality of { @agent session }";
|
|
3604
|
-
};
|
|
3605
|
-
readonly interaction: {
|
|
3606
|
-
readonly title: "Agent interaction";
|
|
3607
|
-
readonly prompt: "Have { @agent } and { @agent } work together to { do something }, topic { enter here }";
|
|
3608
|
-
};
|
|
3609
|
-
readonly import: {
|
|
3610
|
-
readonly title: "Import session";
|
|
3611
|
-
};
|
|
3612
|
-
};
|
|
3613
|
-
readonly conversations: "Sessions";
|
|
3614
|
-
readonly newConversation: "New session";
|
|
3615
|
-
readonly accountMenuTitle: "Tutti Agent";
|
|
3616
|
-
readonly accountMenuMember: "Membership";
|
|
3617
|
-
readonly accountMenuUpgrade: "Upgrade";
|
|
3618
|
-
readonly accountMenuCreditsBalance: "Credits";
|
|
3619
|
-
readonly accountMenuAccountCenter: "Account center";
|
|
3620
|
-
readonly accountMenuSettings: "Settings";
|
|
3621
|
-
readonly accountMenuFree: "Free";
|
|
3622
|
-
readonly accountMenuSignIn: "Sign in";
|
|
3623
|
-
readonly accountMenuSignOut: "Sign out";
|
|
3624
|
-
readonly accountMenuLoading: "Loading";
|
|
3625
|
-
readonly accountMenuUnavailable: "--";
|
|
3626
|
-
readonly accountMenuDataUnavailable: "Some account data is unavailable";
|
|
3627
|
-
readonly accountRewardToastTitle: "New user credits";
|
|
3628
|
-
readonly accountRewardToastCreditsUnit: "credits";
|
|
3629
|
-
readonly accountRewardToastDescription: "Added to account balance";
|
|
3630
|
-
readonly accountRewardToastClose: "Close credits reward notification";
|
|
3631
|
-
readonly agentConfig: "Check & Settings";
|
|
3632
|
-
readonly agentSettingsMenu: "Settings";
|
|
3633
|
-
readonly agentEnvSetup: "Environment Check";
|
|
3634
|
-
readonly noConversations: "No sessions yet";
|
|
3635
|
-
readonly emptyProjectConversations: "No chats yet";
|
|
3636
|
-
readonly agentsEmpty: "No agents are available";
|
|
3637
|
-
readonly conversationFilterAll: "All";
|
|
3638
3733
|
};
|
|
3639
3734
|
readonly workspaceInsights: {
|
|
3640
3735
|
readonly runtimeTitle: "Runtime";
|
|
@@ -6206,6 +6301,69 @@ declare const agentGuiI18nResources: {
|
|
|
6206
6301
|
};
|
|
6207
6302
|
readonly permissionLabel: "运行权限";
|
|
6208
6303
|
readonly planModeLabel: "计划模式";
|
|
6304
|
+
readonly normalModeLabel: "普通";
|
|
6305
|
+
readonly normalModeDescription: "直接执行请求";
|
|
6306
|
+
readonly tuttiModeLabel: "Tutti";
|
|
6307
|
+
readonly tuttiModeDescription: "提示 Agent 优先使用 Tutti 原生工作流能力";
|
|
6308
|
+
readonly tuttiModeRemove: "关闭 Tutti mode";
|
|
6309
|
+
readonly tuttiBudgetTitle: "Tutti 强度";
|
|
6310
|
+
readonly tuttiBudgetIntensityLabel: "强度";
|
|
6311
|
+
readonly tuttiBudgetIntensityMin: "最低";
|
|
6312
|
+
readonly tuttiBudgetIntensityMax: "最高";
|
|
6313
|
+
readonly tuttiBudgetConfirm: "确认";
|
|
6314
|
+
readonly tuttiBudgetCancel: "取消";
|
|
6315
|
+
readonly tuttiModeUpdateFailed: "Tutti 模式更新失败,请重试";
|
|
6316
|
+
readonly tuttiModeUpdateUncertain: "Tutti 模式状态仍在确认中,请稍后重试";
|
|
6317
|
+
readonly tuttiModePlan: {
|
|
6318
|
+
readonly mode: "Tutti mode plan";
|
|
6319
|
+
readonly taskReview: "计划确认";
|
|
6320
|
+
readonly pending: "待确认";
|
|
6321
|
+
readonly cancel: "取消计划";
|
|
6322
|
+
readonly reviewHint: "直接发送即接受 · 输入反馈后发送即请求修改";
|
|
6323
|
+
readonly reviewHintReplan: "强度已调整 · 发送即按新强度重新规划";
|
|
6324
|
+
readonly sendAccept: "接受计划";
|
|
6325
|
+
readonly sendRequestChanges: "请求修改";
|
|
6326
|
+
readonly replanFeedback: "强度已从 {{from}} 调整为 {{to}}。请按新强度重新规划:调整任务拆解粒度与各任务的模型/推理档位。";
|
|
6327
|
+
readonly replanFeedbackSuffix: "(强度已调整为 {{to}},请一并按新强度重新规划。)";
|
|
6328
|
+
readonly tasks: "任务";
|
|
6329
|
+
readonly priority: "优先级";
|
|
6330
|
+
readonly priorityHigh: "高";
|
|
6331
|
+
readonly priorityMedium: "中";
|
|
6332
|
+
readonly priorityLow: "低";
|
|
6333
|
+
readonly agentTarget: "Agent";
|
|
6334
|
+
readonly model: "模型";
|
|
6335
|
+
readonly permissionMode: "权限模式";
|
|
6336
|
+
readonly reasoningEffort: "推理强度";
|
|
6337
|
+
readonly parallelizable: "可并行";
|
|
6338
|
+
readonly autoAccept: "自动验收";
|
|
6339
|
+
readonly assignmentOptionsLoading: "选项加载中...";
|
|
6340
|
+
readonly notSpecified: "未指定";
|
|
6341
|
+
readonly loadFailed: "无法加载 Tutti mode plan";
|
|
6342
|
+
readonly retry: "重试";
|
|
6343
|
+
readonly issueOpen: "打开 Issue";
|
|
6344
|
+
readonly issueStopExecution: "停止";
|
|
6345
|
+
readonly issueListView: "列表";
|
|
6346
|
+
readonly issueBoardView: "看板";
|
|
6347
|
+
readonly issueSummary: "{{done}}/{{total}} 已完成 · {{running}} 运行中";
|
|
6348
|
+
readonly issueDependencies: "依赖";
|
|
6349
|
+
readonly issueAccept: "验收";
|
|
6350
|
+
readonly issueRework: "重做";
|
|
6351
|
+
readonly issueStageParallel: "阶段 {{index}} · 并行 ×{{count}}";
|
|
6352
|
+
readonly issueStageSequential: "阶段 {{index}} · 串行";
|
|
6353
|
+
readonly issueStatusNotStarted: "待开始";
|
|
6354
|
+
readonly issueStatusRunning: "运行中";
|
|
6355
|
+
readonly issueStatusPendingAcceptance: "待验收";
|
|
6356
|
+
readonly issueStatusCompleted: "已完成";
|
|
6357
|
+
readonly issueStatusFailed: "失败";
|
|
6358
|
+
readonly issueStatusCanceled: "已取消";
|
|
6359
|
+
readonly issueStripRunning: "{{count}} 个子任务进行中";
|
|
6360
|
+
readonly issueStripPending: "{{count}} 待验收";
|
|
6361
|
+
readonly issueStripFailed: "{{count}} 失败";
|
|
6362
|
+
readonly issueStripDone: "{{done}}/{{total}} 已完成";
|
|
6363
|
+
readonly issueStripJump: "查看子任务面板";
|
|
6364
|
+
readonly issueCreateFailed: "已核准的计划未能创建 Issue:{{message}}。请让 Agent 修订计划。";
|
|
6365
|
+
};
|
|
6366
|
+
readonly planModeDescription: "先生成计划,再实施或拆解为 Issue";
|
|
6209
6367
|
readonly planModeOnLabel: "开启";
|
|
6210
6368
|
readonly planModeOffLabel: "关闭";
|
|
6211
6369
|
readonly planUnavailable: "规划模式不可用";
|
|
@@ -7930,6 +8088,11 @@ interface AgentComposerReferenceProvenanceFilter {
|
|
|
7930
8088
|
}
|
|
7931
8089
|
interface AgentComposerSubmitOptions {
|
|
7932
8090
|
requiredSettingsPatch?: AgentActivitySubmitSettingsPatch;
|
|
8091
|
+
capabilityRefs?: readonly AgentComposerCapabilityReference[];
|
|
8092
|
+
}
|
|
8093
|
+
interface AgentComposerCapabilityReference {
|
|
8094
|
+
capability: "tutti";
|
|
8095
|
+
source: "slash_command";
|
|
7933
8096
|
}
|
|
7934
8097
|
interface AgentComposerProps {
|
|
7935
8098
|
workspaceId: string;
|
|
@@ -7949,6 +8112,10 @@ interface AgentComposerProps {
|
|
|
7949
8112
|
disabled: boolean;
|
|
7950
8113
|
disabledReason?: string | null;
|
|
7951
8114
|
submitDisabled: boolean;
|
|
8115
|
+
/** Canonical engine projection of the independent TuttiModeActivation. */
|
|
8116
|
+
tuttiModeActive?: boolean;
|
|
8117
|
+
/** Blocks submission/removal while activation CAS or creation is unresolved. */
|
|
8118
|
+
tuttiModeUpdating?: boolean;
|
|
7952
8119
|
placeholder: string;
|
|
7953
8120
|
composerSettings: AgentGUIComposerSettingsVM;
|
|
7954
8121
|
queueStatus?: AgentGUIQueueStatus;
|
|
@@ -7988,6 +8155,13 @@ interface AgentComposerProps {
|
|
|
7988
8155
|
handoffMenuLabel?: string;
|
|
7989
8156
|
labels: {
|
|
7990
8157
|
send: string;
|
|
8158
|
+
/**
|
|
8159
|
+
* Plan-review send copy: with an empty-send override active the send
|
|
8160
|
+
* button reads sendAccept on an empty draft and sendRequestChanges once
|
|
8161
|
+
* feedback is typed, so the composer decision semantics stay legible.
|
|
8162
|
+
*/
|
|
8163
|
+
sendAccept?: string;
|
|
8164
|
+
sendRequestChanges?: string;
|
|
7991
8165
|
modelLabel: string;
|
|
7992
8166
|
modelSelectionLabel: string;
|
|
7993
8167
|
modelContextWindowSuffix: string;
|
|
@@ -8026,6 +8200,15 @@ interface AgentComposerProps {
|
|
|
8026
8200
|
professionalLongRunning: string;
|
|
8027
8201
|
};
|
|
8028
8202
|
planModeLabel: string;
|
|
8203
|
+
tuttiModeLabel: string;
|
|
8204
|
+
tuttiModeDescription: string;
|
|
8205
|
+
tuttiBudgetTitle: string;
|
|
8206
|
+
tuttiBudgetIntensityLabel: string;
|
|
8207
|
+
tuttiBudgetIntensityMin: string;
|
|
8208
|
+
tuttiBudgetIntensityMax: string;
|
|
8209
|
+
tuttiBudgetConfirm: string;
|
|
8210
|
+
tuttiBudgetCancel: string;
|
|
8211
|
+
planModeDescription?: string;
|
|
8029
8212
|
planModeOnLabel: string;
|
|
8030
8213
|
planModeOffLabel: string;
|
|
8031
8214
|
planUnavailable: string;
|
|
@@ -8182,6 +8365,7 @@ interface AgentComposerProps {
|
|
|
8182
8365
|
computerUse?: boolean;
|
|
8183
8366
|
permissionModeId?: string | null;
|
|
8184
8367
|
}) => void;
|
|
8368
|
+
onTuttiModeChange?: (active: boolean) => void;
|
|
8185
8369
|
capabilityMenuState?: AgentComposerCapabilityMenuState;
|
|
8186
8370
|
capabilityControlsReadOnly?: boolean;
|
|
8187
8371
|
onCapabilitySettingsRequest?: (capability: AgentComposerCapabilitySettingsTarget) => void;
|
|
@@ -8189,7 +8373,19 @@ interface AgentComposerProps {
|
|
|
8189
8373
|
onSlashStatusClose?: () => void;
|
|
8190
8374
|
onSlashStatusRefresh?: () => void;
|
|
8191
8375
|
onSubmit: (content: AgentPromptContentBlock[], displayPrompt?: string, options?: AgentComposerSubmitOptions) => void;
|
|
8192
|
-
|
|
8376
|
+
/**
|
|
8377
|
+
* When set, an empty-draft send is enabled and routed here instead of being
|
|
8378
|
+
* blocked (e.g. Tutti plan review: empty send = accept). Typed sends keep
|
|
8379
|
+
* flowing through onSubmit.
|
|
8380
|
+
*/
|
|
8381
|
+
onSubmitEmpty?: () => void;
|
|
8382
|
+
/**
|
|
8383
|
+
* Overrides the empty-draft send button copy while the empty-send override
|
|
8384
|
+
* is active (e.g. plan review with a diverged intensity reads "Request
|
|
8385
|
+
* changes" instead of "Accept plan"). Falls back to labels.sendAccept.
|
|
8386
|
+
*/
|
|
8387
|
+
emptySubmitLabel?: string;
|
|
8388
|
+
onSubmitGuidance?: (content: AgentPromptContentBlock[], displayPrompt?: string, options?: AgentComposerSubmitOptions) => void;
|
|
8193
8389
|
onSendQueuedPromptNext: (queuedPromptId: string) => void;
|
|
8194
8390
|
onRemoveQueuedPrompt: (queuedPromptId: string) => void;
|
|
8195
8391
|
onEditQueuedPrompt: (queuedPromptId: string) => void;
|
|
@@ -8212,7 +8408,7 @@ interface AgentComposerProps {
|
|
|
8212
8408
|
onRequestGitBranches?: AgentComposerGitBranchLoader | null;
|
|
8213
8409
|
referenceProvenanceFilter?: AgentComposerReferenceProvenanceFilter | null;
|
|
8214
8410
|
}
|
|
8215
|
-
type AgentComposerCapabilitySettingsTarget = AgentSlashCommandCapability["capability"]
|
|
8411
|
+
type AgentComposerCapabilitySettingsTarget = Exclude<AgentSlashCommandCapability["capability"], "tutti">;
|
|
8216
8412
|
interface AgentComposerCapabilityMenuState {
|
|
8217
8413
|
browserUse?: {
|
|
8218
8414
|
connectionMode?: "autoConnect" | "isolated" | null;
|
|
@@ -8221,6 +8417,9 @@ interface AgentComposerCapabilityMenuState {
|
|
|
8221
8417
|
authorization?: AgentComposerComputerUseAuthorizationState | null;
|
|
8222
8418
|
installed?: boolean | null;
|
|
8223
8419
|
};
|
|
8420
|
+
tuttiMode?: {
|
|
8421
|
+
enabled?: boolean | null;
|
|
8422
|
+
};
|
|
8224
8423
|
}
|
|
8225
8424
|
type AgentComposerComputerUseAuthorizationState = "authorized" | "needs-authorization" | "unknown";
|
|
8226
8425
|
interface AgentComposerGitBranches {
|
|
@@ -8271,6 +8470,256 @@ interface OpenAgentEnvPanelInput {
|
|
|
8271
8470
|
focus?: AgentEnvPanelFocus | null;
|
|
8272
8471
|
}
|
|
8273
8472
|
|
|
8473
|
+
type TuttiModePlanWorkflowStatus = "pending_review" | "in_progress" | "accepted" | "rejected" | "completed" | "failed" | "canceled";
|
|
8474
|
+
type TuttiModePlanCheckpointKind = "configuration_review" | "task_review";
|
|
8475
|
+
type TuttiModePlanCheckpointStatus = "pending" | "accepted" | "rejected" | "superseded" | "canceled";
|
|
8476
|
+
interface TuttiModePlanReviewSnapshot {
|
|
8477
|
+
workflow: TuttiModePlanWorkflow;
|
|
8478
|
+
revisions: TuttiModePlanRevision[];
|
|
8479
|
+
checkpoints: TuttiModePlanCheckpoint[];
|
|
8480
|
+
}
|
|
8481
|
+
interface TuttiModePlanWorkflow {
|
|
8482
|
+
id: string;
|
|
8483
|
+
workspaceId: string;
|
|
8484
|
+
type: string;
|
|
8485
|
+
owner: string;
|
|
8486
|
+
triggerKind: string;
|
|
8487
|
+
sourceSessionId: string;
|
|
8488
|
+
sourceTurnId?: string | null;
|
|
8489
|
+
sourceToolCallId?: string | null;
|
|
8490
|
+
status: TuttiModePlanWorkflowStatus;
|
|
8491
|
+
currentRevisionId: string;
|
|
8492
|
+
}
|
|
8493
|
+
interface TuttiModePlanRevision {
|
|
8494
|
+
id: string;
|
|
8495
|
+
workflowId: string;
|
|
8496
|
+
sequence: number;
|
|
8497
|
+
schemaVersion: string;
|
|
8498
|
+
documentPath: string;
|
|
8499
|
+
sha256: string;
|
|
8500
|
+
producedByTurnId?: string | null;
|
|
8501
|
+
createdAtUnixMs: number;
|
|
8502
|
+
document: TuttiModePlanDocument;
|
|
8503
|
+
}
|
|
8504
|
+
interface TuttiModePlanDocument {
|
|
8505
|
+
schema: string;
|
|
8506
|
+
phase: "configuration" | "task_graph";
|
|
8507
|
+
title: string;
|
|
8508
|
+
topicId: string;
|
|
8509
|
+
markdownBody: string;
|
|
8510
|
+
execution: TuttiModePlanExecution;
|
|
8511
|
+
budget: TuttiModePlanBudget;
|
|
8512
|
+
tasks: TuttiModePlanTask[];
|
|
8513
|
+
}
|
|
8514
|
+
interface TuttiModePlanExecution {
|
|
8515
|
+
mode: "sequential" | "parallel";
|
|
8516
|
+
reasoningIntensity: number;
|
|
8517
|
+
orchestrationIntensity: number;
|
|
8518
|
+
}
|
|
8519
|
+
interface TuttiModePlanBudget {
|
|
8520
|
+
mode: "auto" | "fixed";
|
|
8521
|
+
tokenLimit: number;
|
|
8522
|
+
quotaWaterlinePercent: number;
|
|
8523
|
+
}
|
|
8524
|
+
interface TuttiModePlanTask {
|
|
8525
|
+
id: string;
|
|
8526
|
+
title: string;
|
|
8527
|
+
content: string;
|
|
8528
|
+
priority: "high" | "medium" | "low";
|
|
8529
|
+
agentTargetId?: string | null;
|
|
8530
|
+
modelPlanId?: string | null;
|
|
8531
|
+
model?: string | null;
|
|
8532
|
+
permissionModeId?: string | null;
|
|
8533
|
+
reasoningEffort?: string | null;
|
|
8534
|
+
executionDirectory?: string | null;
|
|
8535
|
+
dependsOn: string[];
|
|
8536
|
+
parallelizable?: boolean;
|
|
8537
|
+
autoAccept?: boolean;
|
|
8538
|
+
}
|
|
8539
|
+
interface TuttiModePlanCheckpoint {
|
|
8540
|
+
id: string;
|
|
8541
|
+
workflowId: string;
|
|
8542
|
+
kind: TuttiModePlanCheckpointKind;
|
|
8543
|
+
revisionId: string;
|
|
8544
|
+
status: TuttiModePlanCheckpointStatus;
|
|
8545
|
+
decidedBy?: string | null;
|
|
8546
|
+
decisionReason?: string | null;
|
|
8547
|
+
createdAtUnixMs: number;
|
|
8548
|
+
updatedAtUnixMs: number;
|
|
8549
|
+
decidedAtUnixMs?: number | null;
|
|
8550
|
+
}
|
|
8551
|
+
|
|
8552
|
+
interface TuttiModePlanReviewUpdate {
|
|
8553
|
+
kind: "workflow_updated";
|
|
8554
|
+
workspaceId: string;
|
|
8555
|
+
workflowId: string;
|
|
8556
|
+
sourceSessionId: string;
|
|
8557
|
+
checkpointId: string;
|
|
8558
|
+
changeKind: "proposal_created" | "revision_created" | "checkpoint_decided" | "operation_updated";
|
|
8559
|
+
}
|
|
8560
|
+
interface TuttiModePlanReviewConnectionRestored {
|
|
8561
|
+
kind: "connection_restored";
|
|
8562
|
+
workspaceId: string;
|
|
8563
|
+
}
|
|
8564
|
+
/**
|
|
8565
|
+
* A root turn of the source session settled. The host derives this from the
|
|
8566
|
+
* daemon's canonical turn fan-out and relays it as a read-repair trigger: a
|
|
8567
|
+
* plan proposed mid-turn announces itself through one workflow event, and if
|
|
8568
|
+
* that single event is lost no later workflow signal re-reads review state.
|
|
8569
|
+
*/
|
|
8570
|
+
interface TuttiModePlanReviewSessionSettled {
|
|
8571
|
+
kind: "session_settled";
|
|
8572
|
+
workspaceId: string;
|
|
8573
|
+
sourceSessionId: string;
|
|
8574
|
+
}
|
|
8575
|
+
type TuttiModePlanReviewInvalidation = TuttiModePlanReviewUpdate | TuttiModePlanReviewConnectionRestored | TuttiModePlanReviewSessionSettled;
|
|
8576
|
+
interface TuttiModePlanTaskAssignmentInput {
|
|
8577
|
+
taskId: string;
|
|
8578
|
+
agentTargetId?: string | null;
|
|
8579
|
+
modelPlanId?: string | null;
|
|
8580
|
+
model?: string | null;
|
|
8581
|
+
permissionModeId?: string | null;
|
|
8582
|
+
reasoningEffort?: string | null;
|
|
8583
|
+
parallelizable?: boolean | null;
|
|
8584
|
+
autoAccept?: boolean | null;
|
|
8585
|
+
}
|
|
8586
|
+
interface TuttiModePlanReviewDecisionInput {
|
|
8587
|
+
workspaceId: string;
|
|
8588
|
+
workflowId: string;
|
|
8589
|
+
checkpointId: string;
|
|
8590
|
+
decision: "accepted" | "rejected" | "canceled";
|
|
8591
|
+
decidedBy: string;
|
|
8592
|
+
reason?: string | null;
|
|
8593
|
+
/** Per-task overrides; only meaningful with an accepted task review. */
|
|
8594
|
+
taskAssignments?: readonly TuttiModePlanTaskAssignmentInput[];
|
|
8595
|
+
}
|
|
8596
|
+
interface TuttiModePlanAssignmentAgentOption {
|
|
8597
|
+
agentTargetId: string;
|
|
8598
|
+
label: string;
|
|
8599
|
+
}
|
|
8600
|
+
interface TuttiModePlanAssignmentAgentDetail {
|
|
8601
|
+
/** Provider-native models usable without a model plan. */
|
|
8602
|
+
models: readonly string[];
|
|
8603
|
+
modelPlans: readonly {
|
|
8604
|
+
modelPlanId: string;
|
|
8605
|
+
label: string;
|
|
8606
|
+
models: readonly string[];
|
|
8607
|
+
}[];
|
|
8608
|
+
permissionModes: readonly {
|
|
8609
|
+
id: string;
|
|
8610
|
+
label: string;
|
|
8611
|
+
}[];
|
|
8612
|
+
reasoningEfforts: readonly string[];
|
|
8613
|
+
}
|
|
8614
|
+
interface TuttiPlanIssueTaskSnapshot {
|
|
8615
|
+
taskId: string;
|
|
8616
|
+
title: string;
|
|
8617
|
+
content: string;
|
|
8618
|
+
status: string;
|
|
8619
|
+
sortIndex: number;
|
|
8620
|
+
parallelizable: boolean;
|
|
8621
|
+
autoAccept: boolean;
|
|
8622
|
+
dependencyTaskIds: string[];
|
|
8623
|
+
}
|
|
8624
|
+
/** Read-only snapshot of the Issue a session's accepted plan materialized. */
|
|
8625
|
+
interface TuttiPlanIssueSnapshot {
|
|
8626
|
+
workflowId: string;
|
|
8627
|
+
sourceTurnId: string | null;
|
|
8628
|
+
issueId: string;
|
|
8629
|
+
topicId: string;
|
|
8630
|
+
title: string;
|
|
8631
|
+
tasks: TuttiPlanIssueTaskSnapshot[];
|
|
8632
|
+
}
|
|
8633
|
+
/**
|
|
8634
|
+
* An accepted plan whose create_issue operation durably failed. The
|
|
8635
|
+
* conversation must surface this instead of rendering nothing: there is no
|
|
8636
|
+
* pending checkpoint (the review panel is gone) and no Issue (the issue panel
|
|
8637
|
+
* never appears), so silence would hide the failure entirely.
|
|
8638
|
+
*/
|
|
8639
|
+
interface TuttiPlanIssueMaterializationFailure {
|
|
8640
|
+
workflowId: string;
|
|
8641
|
+
sourceTurnId: string | null;
|
|
8642
|
+
errorMessage: string | null;
|
|
8643
|
+
}
|
|
8644
|
+
type TuttiPlanIssueQueryResult = {
|
|
8645
|
+
kind: "issue";
|
|
8646
|
+
issue: TuttiPlanIssueSnapshot;
|
|
8647
|
+
} | ({
|
|
8648
|
+
kind: "materialization_failed";
|
|
8649
|
+
} & TuttiPlanIssueMaterializationFailure) | null;
|
|
8650
|
+
/**
|
|
8651
|
+
* Read-only source for the embedded plan-issue panel in the conversation.
|
|
8652
|
+
* The host resolves "the Issue this session's accepted plan created" and
|
|
8653
|
+
* relays live issue updates; all mutations stay in the Issue Manager.
|
|
8654
|
+
*/
|
|
8655
|
+
interface TuttiPlanIssueSource {
|
|
8656
|
+
getSessionPlanIssue(input: {
|
|
8657
|
+
workspaceId: string;
|
|
8658
|
+
sourceSessionId: string;
|
|
8659
|
+
}): Promise<TuttiPlanIssueQueryResult>;
|
|
8660
|
+
subscribeIssueUpdates(workspaceId: string, listener: (update: {
|
|
8661
|
+
issueId: string;
|
|
8662
|
+
}) => void): () => void;
|
|
8663
|
+
/** Accepts a pending-acceptance task (the human gate) from the embed. */
|
|
8664
|
+
acceptTask(input: {
|
|
8665
|
+
workspaceId: string;
|
|
8666
|
+
issueId: string;
|
|
8667
|
+
taskId: string;
|
|
8668
|
+
}): Promise<void>;
|
|
8669
|
+
/** Sends a pending-acceptance task back to rework (re-dispatch). */
|
|
8670
|
+
rejectTask(input: {
|
|
8671
|
+
workspaceId: string;
|
|
8672
|
+
issueId: string;
|
|
8673
|
+
taskId: string;
|
|
8674
|
+
}): Promise<void>;
|
|
8675
|
+
/**
|
|
8676
|
+
* Stops the Issue's execution: pauses future dispatch and cancels every
|
|
8677
|
+
* running task run. Idempotent; the daemon owns the cascade.
|
|
8678
|
+
*/
|
|
8679
|
+
cancelExecution(input: {
|
|
8680
|
+
workspaceId: string;
|
|
8681
|
+
issueId: string;
|
|
8682
|
+
}): Promise<void>;
|
|
8683
|
+
/**
|
|
8684
|
+
* Resolves the delegate agent session that ran (or is running) a task's
|
|
8685
|
+
* latest run, so a task card can jump straight into that conversation.
|
|
8686
|
+
* Null when the task has not launched yet.
|
|
8687
|
+
*/
|
|
8688
|
+
resolveTaskSession(input: {
|
|
8689
|
+
workspaceId: string;
|
|
8690
|
+
issueId: string;
|
|
8691
|
+
taskId: string;
|
|
8692
|
+
}): Promise<{
|
|
8693
|
+
agentSessionId: string;
|
|
8694
|
+
} | null>;
|
|
8695
|
+
}
|
|
8696
|
+
/**
|
|
8697
|
+
* Option catalogs for per-task assignment editing. The desktop host reuses
|
|
8698
|
+
* its agent directory and composer capability catalogs; the panel never
|
|
8699
|
+
* hardcodes providers or modes.
|
|
8700
|
+
*/
|
|
8701
|
+
interface TuttiModePlanAssignmentOptionsSource {
|
|
8702
|
+
listAgents(input: {
|
|
8703
|
+
workspaceId: string;
|
|
8704
|
+
}): Promise<readonly TuttiModePlanAssignmentAgentOption[]>;
|
|
8705
|
+
loadAgentOptions(input: {
|
|
8706
|
+
workspaceId: string;
|
|
8707
|
+
agentTargetId: string;
|
|
8708
|
+
}): Promise<TuttiModePlanAssignmentAgentDetail>;
|
|
8709
|
+
}
|
|
8710
|
+
interface TuttiModePlanReviewRuntime {
|
|
8711
|
+
listPending(input: {
|
|
8712
|
+
workspaceId: string;
|
|
8713
|
+
sourceSessionId: string;
|
|
8714
|
+
}): Promise<readonly TuttiModePlanReviewSnapshot[]>;
|
|
8715
|
+
decide(input: TuttiModePlanReviewDecisionInput): Promise<void>;
|
|
8716
|
+
subscribe(workspaceId: string, listener: (update: TuttiModePlanReviewInvalidation) => void): () => void;
|
|
8717
|
+
/** Optional; the panel degrades to read-only assignment display without it. */
|
|
8718
|
+
assignmentOptions?: TuttiModePlanAssignmentOptionsSource;
|
|
8719
|
+
/** Optional; without it the embedded plan-issue panel never renders. */
|
|
8720
|
+
planIssues?: TuttiPlanIssueSource;
|
|
8721
|
+
}
|
|
8722
|
+
|
|
8274
8723
|
type AgentMentionReferenceTargetResolver = (item: AgentContextMentionItem) => ReferenceLocateTarget | null;
|
|
8275
8724
|
interface AgentWorkspaceReferenceInitialTargetInput {
|
|
8276
8725
|
activeConversation: AgentGUINodeViewModel["rail"]["activeConversation"];
|
|
@@ -8334,11 +8783,6 @@ interface AgentGUIRememberComposerDefaultsResult {
|
|
|
8334
8783
|
supersededFields: AgentGUIComposerDefaultsField[];
|
|
8335
8784
|
}
|
|
8336
8785
|
|
|
8337
|
-
interface AgentGUIOpenSessionRequest {
|
|
8338
|
-
agentSessionId: string;
|
|
8339
|
-
sequence: number;
|
|
8340
|
-
}
|
|
8341
|
-
|
|
8342
8786
|
type AgentGUIComposerAppendRequest = {
|
|
8343
8787
|
files: readonly AgentComposerDraftFile[];
|
|
8344
8788
|
prompt?: string;
|
|
@@ -8353,11 +8797,18 @@ interface AgentGUIPrefillPromptRequest {
|
|
|
8353
8797
|
agentTargetId?: string | null;
|
|
8354
8798
|
autoSubmit?: boolean;
|
|
8355
8799
|
draftPrompt: string;
|
|
8800
|
+
model?: string | null;
|
|
8801
|
+
modelPlanId?: string | null;
|
|
8356
8802
|
provider?: AgentGUIProvider;
|
|
8357
8803
|
sequence: number;
|
|
8358
8804
|
userProjectPath?: string | null;
|
|
8359
8805
|
}
|
|
8360
8806
|
|
|
8807
|
+
interface AgentGUIOpenSessionRequest {
|
|
8808
|
+
agentSessionId: string;
|
|
8809
|
+
sequence: number;
|
|
8810
|
+
}
|
|
8811
|
+
|
|
8361
8812
|
declare const AGENT_CONVERSATION_BATCH_DELETION_RUNTIME_METHODS: readonly ["deleteSessionsBatch", "listSessionSectionDeletionCandidates"];
|
|
8362
8813
|
declare const AGENT_CONVERSATION_RAIL_SOURCE_METHODS: readonly ["deleteSessionsBatch", "listPinnedSessionsPage", "listSessionSectionDeletionCandidates", "listSessionSectionPage", "listSessionSections", "listSessionsPage"];
|
|
8363
8814
|
declare const AGENT_CONVERSATION_RAIL_RUNTIME_METHODS: readonly ["getSessionSectionsQueryCache", "deleteSessionsBatch", "listPinnedSessionsPage", "listSessionSectionDeletionCandidates", "listSessionSectionPage", "listSessionSections", "listSessionsPage"];
|
|
@@ -8541,6 +8992,7 @@ interface AgentGUINodeHostActions {
|
|
|
8541
8992
|
agentTargetId?: string | null;
|
|
8542
8993
|
draftPrompt: string;
|
|
8543
8994
|
provider: AgentGUIProvider;
|
|
8995
|
+
sourceAgentSessionId: string;
|
|
8544
8996
|
userProjectPath?: string | null;
|
|
8545
8997
|
}) => void | Promise<void>;
|
|
8546
8998
|
onCapabilitySettingsRequest?: (capability: AgentComposerCapabilitySettingsTarget) => void;
|
|
@@ -8592,6 +9044,7 @@ interface AgentGUIProps extends Omit<AgentGUINodeProps, "hostCapabilities" | "re
|
|
|
8592
9044
|
renderAgentsEmpty?: AgentGUIAgentsEmptyRenderer;
|
|
8593
9045
|
agentActivityRuntime: AgentActivityRuntime;
|
|
8594
9046
|
agentHostApi?: AgentHostInputApi | null;
|
|
9047
|
+
tuttiModePlanReviewRuntime?: TuttiModePlanReviewRuntime | null;
|
|
8595
9048
|
/** Starter entries to hide below the empty new-session composer. */
|
|
8596
9049
|
disabled?: readonly AgentGUIHomeSuggestionId[];
|
|
8597
9050
|
i18n?: I18nRuntime<string> | null;
|
|
@@ -8707,6 +9160,7 @@ declare const AGENT_CONTEXT_MENTION_PROVIDER_IDS: {
|
|
|
8707
9160
|
readonly file: "file";
|
|
8708
9161
|
readonly workspaceApp: "workspace-app";
|
|
8709
9162
|
readonly workspaceIssue: "workspace-issue";
|
|
9163
|
+
readonly workspaceModel: "workspace-model";
|
|
8710
9164
|
};
|
|
8711
9165
|
type AgentContextMentionProviderId = TuttiExternalAtProviderId;
|
|
8712
9166
|
type AgentContextMentionQueryInput = RichTextTriggerQueryInput & {
|
|
@@ -8762,10 +9216,6 @@ interface EngineStateStore<TState> {
|
|
|
8762
9216
|
}
|
|
8763
9217
|
declare function useEngineSelector<TState, TSelected>(engine: EngineStateStore<TState>, selector: (state: TState) => TSelected, isEqual?: (a: TSelected, b: TSelected) => boolean): TSelected;
|
|
8764
9218
|
|
|
8765
|
-
declare const PLAN_IMPLEMENTATION_ACTION_IMPLEMENT = "implement";
|
|
8766
|
-
declare const PLAN_IMPLEMENTATION_ACTION_FEEDBACK = "feedback";
|
|
8767
|
-
declare const PLAN_IMPLEMENTATION_ACTION_SKIP = "skip";
|
|
8768
|
-
|
|
8769
9219
|
type AgentPlanPromptAction = typeof PLAN_IMPLEMENTATION_ACTION_IMPLEMENT | typeof PLAN_IMPLEMENTATION_ACTION_FEEDBACK | typeof PLAN_IMPLEMENTATION_ACTION_SKIP;
|
|
8770
9220
|
declare function selectAgentPlanPromptTurn(state: AgentSessionEngineState, agentSessionId: string, requestId: string): _tutti_os_agent_activity_core.AgentActivityTurn | null;
|
|
8771
9221
|
declare function dispatchAgentPlanPromptAction(input: {
|
|
@@ -8778,4 +9228,4 @@ declare function dispatchAgentPlanPromptAction(input: {
|
|
|
8778
9228
|
workspaceId: string;
|
|
8779
9229
|
}): boolean;
|
|
8780
9230
|
|
|
8781
|
-
export { AGENT_CONTEXT_MENTION_PROVIDER_IDS, AGENT_CONVERSATION_RAIL_RUNTIME_METHODS, AGENT_GUI_DETAIL_MIN_WIDTH_PX, AGENT_GUI_EXPANDED_TARGET_WIDTH_PX, AGENT_GUI_STANDALONE_AUTO_COLLAPSE_WIDTH_PX, AGENT_PASTED_TEXT_BLOCK_KIND, AGENT_PASTED_TEXT_MENTION_KIND, AgentActivityHostProvider, type AgentActivityHostProviderProps, type AgentActivityRuntime, type AgentActivityRuntimeDeleteSessionsBatchInput, type AgentActivityRuntimeDeleteSessionsBatchResult, type AgentActivityRuntimeListSessionMessagesInput, type AgentActivityRuntimePromptContentBlock, AgentActivityRuntimeProvider, type AgentActivityRuntimeProviderProps, type AgentActivityRuntimeSessionSectionDeletionCandidates, type AgentActivityRuntimeSessionSectionScopeInput, type AgentActivityRuntimeSetSessionPinnedInput, type AgentActivityRuntimeUpdateSessionSettingsInput, type AgentActivityRuntimeUpdateSessionSettingsResult, type AgentActivityRuntimeUploadPromptContentInput, type AgentActivityRuntimeUploadPromptContentResult, type AgentComposerDraftFile, type AgentContextMentionProvider, type AgentContextMentionProviderId, type AgentConversationBatchDeletionCapability, type AgentConversationRailRuntime, type AgentConversationRailRuntimeSource, type AgentCustomMentionChipContext, type AgentCustomMentionIdentity, type AgentCustomMentionKindDefinition, type AgentCustomMentionPresentation, type AgentExternalPromptEntryResolution, type AgentExternalPromptEntryResolver, type AgentExternalPromptFilePreparationErrorCode, type AgentExternalPromptFilePreparationResult, type AgentExternalPromptFilePreparer, AgentGUI, type AgentGUIAccountMenuState, type AgentGUIAgent, type AgentGUIAgentAvailability, type AgentGUIAgentAvailabilityAction, type AgentGUIAgentAvailabilityStatus, type AgentGUIAgentDirectoryPort, type AgentGUIAgentDirectorySnapshot, type AgentGUIAgentDirectoryStatus, type AgentGUIAgentOwner, type AgentGUIAgentOwnership, type AgentGUIAgentTarget, type AgentGUIAgentTargetBadge, type AgentGUIAgentTargetRef, type AgentGUIAgentsEmptyRenderer, type AgentGUIAllAgentsPresentation, type AgentGUIComposerAppendRequest, type AgentGUIComposerContentType, type AgentGUIComposerFocusMethod, type AgentGUIConversationRailLayout, type AgentGUIEngagementContext, type AgentGUIEngagementEvent, type AgentGUIEngagementEventSink, type AgentGUIHomeSuggestionId, type AgentGUIProps, type AgentGUIProvider, type AgentGUIProviderRailAllPresentation, type AgentGUIProviderRailMode, type AgentGUIProviderReadinessGate, type AgentGUIProviderReadinessGateAction, type AgentGUIProviderReadinessGateStatus, type AgentGUIProviderUnavailableStateContext, type AgentGUIProviderUnavailableStateRenderer, type AgentGUISidebarFooterContext, type AgentGUISidebarFooterRenderer, type AgentGuiI18nLocale, AgentGuiI18nProvider, AgentHandoffMenu, type AgentHandoffMenuLabels, type AgentHandoffMenuProps, type AgentHostAgentTargetAuthenticatedAccount, type AgentHostAgentTargetSetupSnapshot, type AgentHostAgentTargetSetupState, type AgentHostAgentTargetSetupWatch, type AgentHostApi, type AgentHostApplyWorkspaceGitPatchInput, type AgentHostInputApi, type AgentHostQuickPrompt, type AgentHostQuickPromptSnapshot, type AgentHostQuickPromptsApi, type AgentHostRuntimeApi, type AgentHostSelectFilesInput, type AgentHostUserProject, type AgentPlanPromptAction, type AgentPreparedExternalPromptFile, type AgentProbeProvider, type AgentProbeSnapshot, type AgentProviderProbeListInput, type AgentProviderProbeListResult, type AgentStatusController, type AgentStatusControllerOptions, type AgentStatusControllerSnapshot, type AgentStatusFrame, type AgentStatusQuery, type AgentStatusRequestPhase, type AgentStatusRequestReason, type AgentStatusSectionState, type AgentStatusSelectionKey, type AgentStatusSource, type AgentStatusSourceError, type AgentStatusStreamObserver, type AgentStatusValue, type AgentUsageQuota, type AgentUsageSnapshot, type CreateAgentSessionHandoffPromptInput, type CreateAgentSessionMarkdownLinkInput, type EngineStateStore, type PersistWriteResult, type ReadWorkspaceAgentReadStateInput, type WorkspaceAgentReadStateSnapshot, type WriteWorkspaceAgentReadStateInput, agentGUIAgentIsReady, agentGUIDefaultTargetProviders, agentGuiDockIconUrl, agentGuiDockIconUrls, agentGuiI18nModule, agentGuiI18nResources, createAgentConversationRailRuntime, createAgentSessionHandoffPrompt, createAgentSessionMarkdownLink, createAgentStatusController, createLocalAgentGUIAgentTarget, createLocalAgentGUIAgentTargets, createSharedAgentGUIAgentTarget, dispatchAgentPlanPromptAction, getAgentCustomMentionKind, inspectAgentConversationBatchDeletionCapability, localAgentGUIAgentTargetId, normalizeAgentGUIAgentTargets, normalizeAgentGUIAgents, preloadAgentMentionBrowse, projectAgentGUIAgentsToTargets, registerAgentCustomMentionKind, resetAgentActivityRuntimeForTests, resetAgentCustomMentionKindsForTests, resolveAgentGUIAgentTarget, resolveAgentGUIExpandedWindowFrame, resolveAgentGUISelectedDirectoryAgent, selectAgentPlanPromptTurn, selectAgentStatusControllerSnapshot, setAgentActivityRuntimeForTests, shouldAutoCollapseAgentGUIConversationRail, useAgentActivityRuntime, useAgentActivitySnapshot, useEngineSelector, useOptionalAgentActivityRuntime };
|
|
9231
|
+
export { AGENT_CONTEXT_MENTION_PROVIDER_IDS, AGENT_CONVERSATION_RAIL_RUNTIME_METHODS, AGENT_GUI_DETAIL_MIN_WIDTH_PX, AGENT_GUI_EXPANDED_TARGET_WIDTH_PX, AGENT_GUI_STANDALONE_AUTO_COLLAPSE_WIDTH_PX, AGENT_PASTED_TEXT_BLOCK_KIND, AGENT_PASTED_TEXT_MENTION_KIND, AgentActivityHostProvider, type AgentActivityHostProviderProps, type AgentActivityRuntime, type AgentActivityRuntimeDeleteSessionsBatchInput, type AgentActivityRuntimeDeleteSessionsBatchResult, type AgentActivityRuntimeListSessionMessagesInput, type AgentActivityRuntimePromptContentBlock, AgentActivityRuntimeProvider, type AgentActivityRuntimeProviderProps, type AgentActivityRuntimeSessionSectionDeletionCandidates, type AgentActivityRuntimeSessionSectionScopeInput, type AgentActivityRuntimeSetSessionPinnedInput, type AgentActivityRuntimeUpdateSessionSettingsInput, type AgentActivityRuntimeUpdateSessionSettingsResult, type AgentActivityRuntimeUploadPromptContentInput, type AgentActivityRuntimeUploadPromptContentResult, type AgentComposerDraftFile, type AgentContextMentionProvider, type AgentContextMentionProviderId, type AgentConversationBatchDeletionCapability, type AgentConversationRailRuntime, type AgentConversationRailRuntimeSource, type AgentCustomMentionChipContext, type AgentCustomMentionIdentity, type AgentCustomMentionKindDefinition, type AgentCustomMentionPresentation, type AgentExternalPromptEntryResolution, type AgentExternalPromptEntryResolver, type AgentExternalPromptFilePreparationErrorCode, type AgentExternalPromptFilePreparationResult, type AgentExternalPromptFilePreparer, AgentGUI, type AgentGUIAccountMenuState, type AgentGUIAgent, type AgentGUIAgentAvailability, type AgentGUIAgentAvailabilityAction, type AgentGUIAgentAvailabilityStatus, type AgentGUIAgentDirectoryPort, type AgentGUIAgentDirectorySnapshot, type AgentGUIAgentDirectoryStatus, type AgentGUIAgentOwner, type AgentGUIAgentOwnership, type AgentGUIAgentTarget, type AgentGUIAgentTargetBadge, type AgentGUIAgentTargetRef, type AgentGUIAgentsEmptyRenderer, type AgentGUIAllAgentsPresentation, type AgentGUIComposerAppendRequest, type AgentGUIComposerContentType, type AgentGUIComposerFocusMethod, type AgentGUIConversationRailLayout, type AgentGUIEngagementContext, type AgentGUIEngagementEvent, type AgentGUIEngagementEventSink, type AgentGUIHomeSuggestionId, type AgentGUIProps, type AgentGUIProvider, type AgentGUIProviderRailAllPresentation, type AgentGUIProviderRailMode, type AgentGUIProviderReadinessGate, type AgentGUIProviderReadinessGateAction, type AgentGUIProviderReadinessGateStatus, type AgentGUIProviderUnavailableStateContext, type AgentGUIProviderUnavailableStateRenderer, type AgentGUISidebarFooterContext, type AgentGUISidebarFooterRenderer, type AgentGuiI18nLocale, AgentGuiI18nProvider, AgentHandoffMenu, type AgentHandoffMenuLabels, type AgentHandoffMenuProps, type AgentHostAgentTargetAuthenticatedAccount, type AgentHostAgentTargetSetupSnapshot, type AgentHostAgentTargetSetupState, type AgentHostAgentTargetSetupWatch, type AgentHostApi, type AgentHostApplyWorkspaceGitPatchInput, type AgentHostInputApi, type AgentHostQuickPrompt, type AgentHostQuickPromptSnapshot, type AgentHostQuickPromptsApi, type AgentHostRuntimeApi, type AgentHostSelectFilesInput, type AgentHostUserProject, type AgentPlanPromptAction, type AgentPreparedExternalPromptFile, type AgentProbeProvider, type AgentProbeSnapshot, type AgentProviderProbeListInput, type AgentProviderProbeListResult, type AgentStatusController, type AgentStatusControllerOptions, type AgentStatusControllerSnapshot, type AgentStatusFrame, type AgentStatusQuery, type AgentStatusRequestPhase, type AgentStatusRequestReason, type AgentStatusSectionState, type AgentStatusSelectionKey, type AgentStatusSource, type AgentStatusSourceError, type AgentStatusStreamObserver, type AgentStatusValue, type AgentUsageQuota, type AgentUsageSnapshot, type CreateAgentSessionHandoffPromptInput, type CreateAgentSessionMarkdownLinkInput, type EngineStateStore, type PersistWriteResult, type ReadWorkspaceAgentReadStateInput, type TuttiModePlanAssignmentAgentDetail, type TuttiModePlanAssignmentAgentOption, type TuttiModePlanAssignmentOptionsSource, type TuttiModePlanReviewRuntime, type TuttiModePlanReviewSnapshot, type TuttiModePlanTaskAssignmentInput, type TuttiPlanIssueMaterializationFailure, type TuttiPlanIssueQueryResult, type TuttiPlanIssueSnapshot, type TuttiPlanIssueSource, type TuttiPlanIssueTaskSnapshot, type WorkspaceAgentReadStateSnapshot, type WriteWorkspaceAgentReadStateInput, agentGUIAgentIsReady, agentGUIDefaultTargetProviders, agentGuiDockIconUrl, agentGuiDockIconUrls, agentGuiI18nModule, agentGuiI18nResources, createAgentConversationRailRuntime, createAgentSessionHandoffPrompt, createAgentSessionMarkdownLink, createAgentStatusController, createLocalAgentGUIAgentTarget, createLocalAgentGUIAgentTargets, createSharedAgentGUIAgentTarget, dispatchAgentPlanPromptAction, getAgentCustomMentionKind, inspectAgentConversationBatchDeletionCapability, localAgentGUIAgentTargetId, normalizeAgentGUIAgentTargets, normalizeAgentGUIAgents, preloadAgentMentionBrowse, projectAgentGUIAgentsToTargets, registerAgentCustomMentionKind, resetAgentActivityRuntimeForTests, resetAgentCustomMentionKindsForTests, resolveAgentGUIAgentTarget, resolveAgentGUIExpandedWindowFrame, resolveAgentGUISelectedDirectoryAgent, selectAgentPlanPromptTurn, selectAgentStatusControllerSnapshot, setAgentActivityRuntimeForTests, shouldAutoCollapseAgentGUIConversationRail, useAgentActivityRuntime, useAgentActivitySnapshot, useEngineSelector, useOptionalAgentActivityRuntime };
|