@agentknight/sdk 0.9.38 → 0.9.40

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.
@@ -35,6 +35,7 @@ var SESSION_WORKTREE_CREATION_CAPABILITY = "session-worktree-creation";
35
35
  var MANAGED_SESSION_SELECTION_CAPABILITY = "coding-agent:managed";
36
36
  var AGENT_CONTROLS_CAPABILITY = "coding-agent-controls-v1";
37
37
  var SESSION_OPTIONS_PARTIAL_CAPABILITY = "session-options-partial-v1";
38
+ var SESSION_OPTIONS_PROGRESSIVE_CAPABILITY = "session-options-progressive-v1";
38
39
  var GroupChatParticipantSchema = z3.object({
39
40
  sessionId: IdSchema,
40
41
  title: z3.string().trim().min(1).max(260)
@@ -231,6 +232,7 @@ var SessionOptionsResultSchema = z3.discriminatedUnion("ok", [
231
232
  currentAgentMode: SessionAgentModeSchema.optional(),
232
233
  currentReasoningEffort: CurrentReasoningEffortSchema.optional(),
233
234
  environment: SessionEnvironmentInfoSchema.optional(),
235
+ environmentPending: z3.literal(true).optional(),
234
236
  agentName: z3.string().trim().min(1).max(260).optional(),
235
237
  configOptions: z3.array(AgentConfigurationOptionSchema).max(32).optional()
236
238
  }),
@@ -661,7 +663,8 @@ var SessionAssistantPreviewSchema = z6.object({
661
663
  sourceEventIds: z6.array(IdSchema).min(1).max(1e3),
662
664
  text: z6.string().max(4096),
663
665
  final: z6.boolean(),
664
- attachments: z6.array(ConversationAttachmentSchema.refine((attachment) => attachment.kind === "image" && attachment.imageRef === "sha256", "Assistant previews contain image references only")).max(4)
666
+ attachments: z6.array(ConversationAttachmentSchema.refine((attachment) => attachment.kind === "image" && attachment.imageRef === "sha256", "Assistant previews contain image references only")).max(4),
667
+ kind: z6.enum(["assistant-message", "task-completion"]).optional()
665
668
  });
666
669
  var SESSION_TIMELINE_PAGE_SIZE = 100;
667
670
  var SessionTimelinePageRequestSchema = z6.object({
@@ -1742,7 +1745,9 @@ var SESSION_DIRECTORY_MAX_ENTRIES = 500;
1742
1745
  var SESSION_DIRECTORY_MAX_RESPONSE_BYTES = 128 * 1024;
1743
1746
  var SESSION_FILE_READ_OPERATION = "session.file.read";
1744
1747
  var SESSION_FILE_READ_VERSION = 1;
1748
+ var SESSION_FILE_READ_V2_VERSION = 2;
1745
1749
  var SESSION_FILE_MAX_ORIGINAL_BYTES = 500 * 1024;
1750
+ var SESSION_FILE_V2_MAX_ORIGINAL_BYTES = 1024 * 1024;
1746
1751
  var SESSION_FILE_GZIP_THRESHOLD_BYTES = 20 * 1024;
1747
1752
  var SESSION_FILE_MAX_IMAGE_BYTES = 100 * 1024;
1748
1753
  var SESSION_FILE_MAX_IMAGE_EDGE = 1280;
@@ -1750,6 +1755,9 @@ var SESSION_FILE_MAX_IMAGE_PIXELS = 16 * 1024 * 1024;
1750
1755
  var SESSION_FILE_MAX_TRANSFER_BYTES = SESSION_FILE_MAX_ORIGINAL_BYTES + 1024;
1751
1756
  var SESSION_FILE_MAX_BASE64_LENGTH = Math.ceil(SESSION_FILE_MAX_TRANSFER_BYTES / 3) * 4;
1752
1757
  var SESSION_FILE_MAX_RESPONSE_BYTES = SESSION_FILE_MAX_BASE64_LENGTH + 8192;
1758
+ var SESSION_FILE_V2_MAX_TRANSFER_BYTES = SESSION_FILE_V2_MAX_ORIGINAL_BYTES + 1024;
1759
+ var SESSION_FILE_V2_MAX_BASE64_LENGTH = Math.ceil(SESSION_FILE_V2_MAX_TRANSFER_BYTES / 3) * 4;
1760
+ var SESSION_FILE_V2_MAX_RESPONSE_BYTES = SESSION_FILE_V2_MAX_BASE64_LENGTH + 8192;
1753
1761
  var SESSION_FILE_MEDIA_TYPES = [
1754
1762
  "text/plain",
1755
1763
  "text/html",
@@ -1762,6 +1770,9 @@ var SESSION_FILE_MEDIA_TYPES = [
1762
1770
  "application/yaml",
1763
1771
  "image/webp"
1764
1772
  ];
1773
+ var SESSION_FILE_VIDEO_MEDIA_TYPES = ["video/mp4", "video/webm"];
1774
+ var SESSION_FILE_V2_MEDIA_TYPES = [...SESSION_FILE_MEDIA_TYPES, ...SESSION_FILE_VIDEO_MEDIA_TYPES];
1775
+ var SESSION_FILE_MAX_VIDEO_PIXELS = 16 * 1024 * 1024;
1765
1776
  function isSafeSessionDirectoryPath(path) {
1766
1777
  if (path === "")
1767
1778
  return true;
@@ -1799,27 +1810,35 @@ var SessionFileReadDataSchema = z18.object({
1799
1810
  path: z18.string().min(1).max(SESSION_DIRECTORY_MAX_PATH_LENGTH).refine(isSafeSessionDirectoryPath),
1800
1811
  rootRevision: z18.string().regex(/^[A-Za-z0-9_-]{43}$/u)
1801
1812
  }).strict();
1802
- var SessionFileReadResultDataSchema = z18.object({
1803
- path: SessionFileReadDataSchema.shape.path,
1804
- rootRevision: SessionFileReadDataSchema.shape.rootRevision,
1805
- mediaType: z18.enum(SESSION_FILE_MEDIA_TYPES),
1806
- originalByteLength: z18.number().int().min(0).max(SESSION_FILE_MAX_ORIGINAL_BYTES),
1807
- // Canonical length after decompression, not the length of the transport bytes.
1808
- byteLength: z18.number().int().min(0).max(SESSION_FILE_MAX_ORIGINAL_BYTES),
1809
- encoding: z18.enum(["identity", "gzip"]),
1810
- data: z18.string().max(SESSION_FILE_MAX_BASE64_LENGTH)
1811
- }).strict().superRefine((result, context) => {
1812
- const invalid = () => context.addIssue({ code: "custom", message: "Invalid file content" });
1813
- if (result.encoding === "gzip" !== result.originalByteLength >= SESSION_FILE_GZIP_THRESHOLD_BYTES)
1814
- invalid();
1815
- if (result.mediaType === "image/webp" ? result.byteLength === 0 || result.byteLength > SESSION_FILE_MAX_IMAGE_BYTES || result.originalByteLength === 0 : result.byteLength !== result.originalByteLength)
1816
- invalid();
1817
- const base64 = result.data;
1818
- const padding = base64.endsWith("==") ? 2 : base64.endsWith("=") ? 1 : 0;
1819
- const length = base64.length / 4 * 3 - padding;
1820
- if (base64.length % 4 !== 0 || !/^[A-Za-z0-9+/]*={0,2}$/u.test(base64) || length > SESSION_FILE_MAX_TRANSFER_BYTES || padding === 2 && !/[AQgw]==$/u.test(base64) || padding === 1 && !/[AEIMQUYcgkosw048]=$/u.test(base64) || (result.encoding === "identity" ? length !== result.byteLength : length < 20))
1821
- invalid();
1822
- });
1813
+ function fileResultSchema(mediaTypes, extended) {
1814
+ const maxOriginal = extended ? SESSION_FILE_V2_MAX_ORIGINAL_BYTES : SESSION_FILE_MAX_ORIGINAL_BYTES;
1815
+ const maxTransfer = extended ? SESSION_FILE_V2_MAX_TRANSFER_BYTES : SESSION_FILE_MAX_TRANSFER_BYTES;
1816
+ return z18.object({
1817
+ path: SessionFileReadDataSchema.shape.path,
1818
+ rootRevision: SessionFileReadDataSchema.shape.rootRevision,
1819
+ mediaType: z18.enum(mediaTypes),
1820
+ originalByteLength: z18.number().int().min(0).max(maxOriginal),
1821
+ // Canonical length after decompression, not the length of the transport bytes.
1822
+ byteLength: z18.number().int().min(0).max(maxOriginal),
1823
+ encoding: z18.enum(["identity", "gzip"]),
1824
+ data: z18.string().max(extended ? SESSION_FILE_V2_MAX_BASE64_LENGTH : SESSION_FILE_MAX_BASE64_LENGTH)
1825
+ }).strict().superRefine((result, context) => {
1826
+ const invalid = () => context.addIssue({ code: "custom", message: "Invalid file content" });
1827
+ if (result.encoding === "gzip" !== result.originalByteLength >= SESSION_FILE_GZIP_THRESHOLD_BYTES)
1828
+ invalid();
1829
+ if (result.mediaType === "image/webp" ? result.byteLength === 0 || result.byteLength > SESSION_FILE_MAX_IMAGE_BYTES || result.originalByteLength === 0 : result.byteLength !== result.originalByteLength)
1830
+ invalid();
1831
+ if (result.mediaType.startsWith("video/") && (result.byteLength === 0 || !result.path.toLowerCase().endsWith(result.mediaType === "video/mp4" ? ".mp4" : ".webm")))
1832
+ invalid();
1833
+ const base64 = result.data;
1834
+ const padding = base64.endsWith("==") ? 2 : base64.endsWith("=") ? 1 : 0;
1835
+ const length = base64.length / 4 * 3 - padding;
1836
+ if (base64.length % 4 !== 0 || !/^[A-Za-z0-9+/]*={0,2}$/u.test(base64) || length > maxTransfer || padding === 2 && !/[AQgw]==$/u.test(base64) || padding === 1 && !/[AEIMQUYcgkosw048]=$/u.test(base64) || (result.encoding === "identity" ? length !== result.byteLength : length < 20))
1837
+ invalid();
1838
+ });
1839
+ }
1840
+ var SessionFileReadResultDataSchema = fileResultSchema(SESSION_FILE_MEDIA_TYPES, false);
1841
+ var SessionFileReadV2ResultDataSchema = fileResultSchema(SESSION_FILE_V2_MEDIA_TYPES, true);
1823
1842
  var SessionGitProjectSchema = z18.object({
1824
1843
  localRepositoryKey: z18.string().length(43).regex(/^[A-Za-z0-9_-]{43}$/),
1825
1844
  worktreeRoot: z18.string().min(1).max(SESSION_PROJECT_IDENTITY_MAX_PATH_LENGTH),
@@ -1932,42 +1951,113 @@ var SessionResourceReadResultDataSchema = z20.object({
1932
1951
  invalid();
1933
1952
  });
1934
1953
 
1935
- // ../protocol/dist/sessions/session-rename.js
1954
+ // ../protocol/dist/sessions/session-images.js
1936
1955
  import { z as z21 } from "zod";
1956
+ var SESSION_IMAGE_MAX_BYTES = 3 * 1024 * 1024;
1957
+ var SESSION_IMAGE_MAX_PIXELS = 16 * 1024 * 1024;
1958
+ var SESSION_IMAGE_API_PATH = "/api/v3/session-images";
1959
+ var TIMELINE_IMAGE_BLOB_OPERATION = "session.image.blob";
1960
+ var TIMELINE_IMAGE_BLOB_VERSION = 1;
1961
+ var SessionImageIdSchema = z21.uuid();
1962
+ var SessionImageTransferModeSchema = z21.enum(["direct", "proxy"]);
1963
+ var DirectUrlSchema = z21.string().regex(/^https:\/\/[^/?#@\\\s\x00-\x1f\x7f]+(?:[/?][^#\\\s\x00-\x1f\x7f]*)?$/u).refine((raw) => {
1964
+ if (!URL.canParse(raw))
1965
+ return false;
1966
+ const url = new URL(raw);
1967
+ return url.protocol === "https:" && url.username === "" && url.password === "" && url.hash === "";
1968
+ }, "Direct transfers require HTTPS without userinfo, fragments or unsafe characters");
1969
+ var ProxyUrlSchema = z21.string().regex(/^\/api\/v3\/session-images\/[0-9a-f-]+\/content\?[^#\\\s\x00-\x1f\x7f]+$/u);
1970
+ var SessionImageTransferHeadersSchema = z21.record(z21.string().regex(/^(?:content-type|if-none-match|x-ms-blob-type)$/u), z21.string().min(1).max(256).regex(/^[\x20-\x7e]+$/u));
1971
+ var SessionImageUploadRequestSchema = z21.object({
1972
+ machineId: IdSchema,
1973
+ sessionId: IdSchema,
1974
+ sizeBytes: z21.number().int().min(1).max(SESSION_IMAGE_MAX_BYTES)
1975
+ }).strict();
1976
+ var SessionImageScopeSchema = z21.object({
1977
+ machineId: IdSchema,
1978
+ sessionId: IdSchema
1979
+ }).strict();
1980
+ var UploadResultFields = {
1981
+ imageId: SessionImageIdSchema,
1982
+ uploadExpiresAt: z21.number().int().positive(),
1983
+ method: z21.literal("PUT"),
1984
+ contentType: z21.literal("image/webp"),
1985
+ headers: SessionImageTransferHeadersSchema.refine((headers) => headers["content-type"] === "image/webp")
1986
+ };
1987
+ var SessionImageUploadResultSchema = z21.discriminatedUnion("mode", [
1988
+ z21.object({ ...UploadResultFields, mode: z21.literal("direct"), uploadUrl: DirectUrlSchema }).strict(),
1989
+ z21.object({ ...UploadResultFields, mode: z21.literal("proxy"), uploadUrl: ProxyUrlSchema }).strict()
1990
+ ]);
1991
+ var SessionImageCommitResultSchema = z21.object({
1992
+ imageId: SessionImageIdSchema,
1993
+ machineId: IdSchema,
1994
+ sessionId: IdSchema,
1995
+ sizeBytes: z21.number().int().min(1).max(SESSION_IMAGE_MAX_BYTES),
1996
+ width: z21.number().int().positive(),
1997
+ height: z21.number().int().positive(),
1998
+ sha256: z21.string().regex(/^[a-f0-9]{64}$/u),
1999
+ expiresAt: z21.number().int().positive()
2000
+ }).strict();
2001
+ var DownloadResultFields = {
2002
+ image: SessionImageCommitResultSchema,
2003
+ downloadExpiresAt: z21.number().int().positive(),
2004
+ method: z21.literal("GET"),
2005
+ headers: SessionImageTransferHeadersSchema
2006
+ };
2007
+ var SessionImageDownloadResultSchema = z21.discriminatedUnion("mode", [
2008
+ z21.object({ ...DownloadResultFields, mode: z21.literal("direct"), downloadUrl: DirectUrlSchema }).strict(),
2009
+ z21.object({ ...DownloadResultFields, mode: z21.literal("proxy"), downloadUrl: ProxyUrlSchema }).strict()
2010
+ ]);
2011
+ var TimelineImageBlobRequestSchema = z21.object({
2012
+ sha256: z21.string().regex(/^[a-f0-9]{64}$/u)
2013
+ }).strict();
2014
+ var TimelineImageBlobResultSchema = z21.object({
2015
+ sha256: TimelineImageBlobRequestSchema.shape.sha256,
2016
+ image: SessionImageCommitResultSchema
2017
+ }).strict();
2018
+
2019
+ // ../protocol/dist/sessions/session-rename.js
2020
+ import { z as z22 } from "zod";
1937
2021
  var SESSION_RENAME_OPERATION = "session.rename";
1938
2022
  var SESSION_RENAME_VERSION = 1;
1939
2023
  var SESSION_RENAME_CAPABILITY = sessionCommunicationOperationCapability(SESSION_RENAME_OPERATION, SESSION_RENAME_VERSION);
1940
2024
  var SESSION_NAME_MAX_LENGTH = 100;
1941
- var SessionNameSchema = z21.string().regex(/^[^\u0000-\u001f\u007f]*$/u).trim().min(1).max(SESSION_NAME_MAX_LENGTH);
1942
- var SessionRenameDataSchema = z21.object({ name: SessionNameSchema }).strict();
1943
- var SessionRenameResultDataSchema = z21.object({ name: SessionNameSchema }).strict();
2025
+ var SessionNameSchema = z22.string().regex(/^[^\u0000-\u001f\u007f]*$/u).trim().min(1).max(SESSION_NAME_MAX_LENGTH);
2026
+ var SessionRenameDataSchema = z22.object({ name: SessionNameSchema }).strict();
2027
+ var SessionRenameResultDataSchema = z22.object({ name: SessionNameSchema }).strict();
1944
2028
 
1945
2029
  // ../protocol/dist/sessions/group-chat.js
1946
- import { z as z22 } from "zod";
2030
+ import { z as z23 } from "zod";
1947
2031
  var GROUP_CHAT_CREATE_OPERATION = "group-chat.create";
1948
2032
  var GROUP_CHAT_CREATE_VERSION = 1;
1949
2033
  var GROUP_CHAT_CREATE_CAPABILITY = sessionCommunicationOperationCapability(GROUP_CHAT_CREATE_OPERATION, GROUP_CHAT_CREATE_VERSION);
1950
- var GroupChatCreateDataSchema = z22.object({
2034
+ var GroupChatCreateDataSchema = z23.object({
1951
2035
  peerSessionId: IdSchema
1952
2036
  }).strict();
1953
- var GroupChatCreateResultDataSchema = z22.object({
2037
+ var GroupChatCreateResultDataSchema = z23.object({
1954
2038
  session: SessionSummarySchema.refine((session) => session.groupChat !== void 0, "Group creation must return a virtual group session")
1955
2039
  }).strict();
1956
2040
 
1957
2041
  // ../protocol/dist/sessions/prompts.js
1958
- import { z as z23 } from "zod";
2042
+ import { z as z24 } from "zod";
1959
2043
  var SESSION_FILE_ATTACHMENTS_CAPABILITY = "session-file-attachments";
1960
2044
  var SESSION_PROMPT_SUBMISSION_TIME_CAPABILITY = "session-prompt-submission-time";
2045
+ var SESSION_AVATAR_PERSONA_CAPABILITY = "session-avatar-persona";
2046
+ var SessionAvatarPersonaSchema = z24.object({
2047
+ role: z24.enum(["designer", "filmmaker", "developer", "secretary", "default"]),
2048
+ displayName: z24.string().trim().min(1).max(40).regex(/^[^\u0000-\u001f\u007f-\u009f]*$/).optional()
2049
+ }).strict().refine((value) => value.role === "default" ? value.displayName === void 0 : value.displayName !== void 0, { message: "A role requires a display name; default must not include one" });
1961
2050
  var MAX_PROMPT_IMAGE_BYTES = 3 * 1024 * 1024;
1962
- var SessionPromptRequestSchema = z23.object({
2051
+ var SessionPromptRequestSchema = z24.object({
1963
2052
  requestId: IdSchema,
1964
2053
  operationId: IdSchema,
1965
2054
  machineId: IdSchema,
1966
2055
  sessionId: IdSchema,
1967
- prompt: z23.string().trim().max(1e5),
1968
- attachments: z23.array(PromptImageAttachmentSchema).max(4).optional(),
1969
- fileAttachments: z23.array(PromptFileAttachmentSchema).max(4).optional(),
1970
- mode: z23.enum(["enqueue", "immediate"]).default("enqueue")
2056
+ prompt: z24.string().trim().max(1e5),
2057
+ attachments: z24.array(PromptImageAttachmentSchema).max(4).optional(),
2058
+ fileAttachments: z24.array(PromptFileAttachmentSchema).max(4).optional(),
2059
+ avatarPersona: SessionAvatarPersonaSchema.optional(),
2060
+ mode: z24.enum(["enqueue", "immediate"]).default("enqueue")
1971
2061
  }).strict().superRefine((request, context) => {
1972
2062
  if (request.prompt.length === 0 && (request.attachments?.length ?? 0) === 0 && (request.fileAttachments?.length ?? 0) === 0) {
1973
2063
  context.addIssue({
@@ -1993,22 +2083,22 @@ var SessionPromptRequestSchema = z23.object({
1993
2083
  });
1994
2084
  }
1995
2085
  });
1996
- var SessionPromptResultSchema = z23.discriminatedUnion("ok", [
1997
- z23.object({
1998
- ok: z23.literal(true),
2086
+ var SessionPromptResultSchema = z24.discriminatedUnion("ok", [
2087
+ z24.object({
2088
+ ok: z24.literal(true),
1999
2089
  requestId: IdSchema,
2000
2090
  operationId: IdSchema,
2001
2091
  machineId: IdSchema,
2002
2092
  sessionId: IdSchema,
2003
2093
  messageId: IdSchema,
2004
- mode: z23.enum(["enqueue", "immediate"]),
2005
- deliveryState: z23.enum(["queued", "processing"]),
2094
+ mode: z24.enum(["enqueue", "immediate"]),
2095
+ deliveryState: z24.enum(["queued", "processing"]),
2006
2096
  // Negotiated lower bound from the native event clock. Exact text and history
2007
2097
  // ownership checks still apply; this is not an identity or proof of persistence.
2008
2098
  submittedAt: IsoDateSchema.optional()
2009
2099
  }),
2010
- z23.object({
2011
- ok: z23.literal(false),
2100
+ z24.object({
2101
+ ok: z24.literal(false),
2012
2102
  requestId: IdSchema,
2013
2103
  operationId: IdSchema,
2014
2104
  machineId: IdSchema,
@@ -2016,29 +2106,29 @@ var SessionPromptResultSchema = z23.discriminatedUnion("ok", [
2016
2106
  error: ProtocolFailureSchema
2017
2107
  })
2018
2108
  ]);
2019
- var SessionActivityUpdateSchema = z23.object({
2109
+ var SessionActivityUpdateSchema = z24.object({
2020
2110
  userId: IdSchema,
2021
2111
  machineId: IdSchema,
2022
2112
  sessionId: IdSchema,
2023
- state: z23.enum(["working", "idle"]),
2113
+ state: z24.enum(["working", "idle"]),
2024
2114
  occurredAt: IsoDateSchema,
2025
2115
  assistantPreview: SessionAssistantPreviewSchema.optional(),
2026
2116
  userPreview: SessionUserPreviewSchema.optional()
2027
2117
  });
2028
- var SessionAbortRequestSchema = z23.object({
2118
+ var SessionAbortRequestSchema = z24.object({
2029
2119
  requestId: IdSchema,
2030
2120
  machineId: IdSchema,
2031
2121
  sessionId: IdSchema
2032
2122
  });
2033
- var SessionAbortResultSchema = z23.discriminatedUnion("ok", [
2034
- z23.object({
2035
- ok: z23.literal(true),
2123
+ var SessionAbortResultSchema = z24.discriminatedUnion("ok", [
2124
+ z24.object({
2125
+ ok: z24.literal(true),
2036
2126
  requestId: IdSchema,
2037
2127
  machineId: IdSchema,
2038
2128
  sessionId: IdSchema
2039
2129
  }),
2040
- z23.object({
2041
- ok: z23.literal(false),
2130
+ z24.object({
2131
+ ok: z24.literal(false),
2042
2132
  requestId: IdSchema,
2043
2133
  machineId: IdSchema,
2044
2134
  sessionId: IdSchema,
@@ -2047,7 +2137,7 @@ var SessionAbortResultSchema = z23.discriminatedUnion("ok", [
2047
2137
  ]);
2048
2138
 
2049
2139
  // ../protocol/dist/conversation/timeline-sync.js
2050
- import { z as z24 } from "zod";
2140
+ import { z as z25 } from "zod";
2051
2141
  var TIMELINE_SYNC_OPERATION = "session.timeline.sync";
2052
2142
  var TIMELINE_IMAGE_OPERATION = "session.image.read";
2053
2143
  var TIMELINE_SYNC_VERSION = 1;
@@ -2055,37 +2145,37 @@ var TIMELINE_SYNC_MAX_EVENTS = 128;
2055
2145
  var TIMELINE_SYNC_MAX_BYTES = 6 * 1024 * 1024;
2056
2146
  var TIMELINE_IMAGE_CHUNK_BYTES = 48 * 1024;
2057
2147
  var TIMELINE_IMAGE_MAX_BYTES = 3 * 1024 * 1024;
2058
- var identity = z24.string().min(1).max(256);
2059
- var sequence = z24.number().int().min(0).max(Number.MAX_SAFE_INTEGER);
2060
- var hash = z24.string().regex(/^[a-f0-9]{64}$/u);
2061
- var TimelineWatermarkSchema = z24.object({
2148
+ var identity = z25.string().min(1).max(256);
2149
+ var sequence = z25.number().int().min(0).max(Number.MAX_SAFE_INTEGER);
2150
+ var hash = z25.string().regex(/^[a-f0-9]{64}$/u);
2151
+ var TimelineWatermarkSchema = z25.object({
2062
2152
  epoch: identity,
2063
2153
  sequence
2064
2154
  }).strict();
2065
- var TimelineSyncRequestSchema = z24.object({
2155
+ var TimelineSyncRequestSchema = z25.object({
2066
2156
  watermark: TimelineWatermarkSchema.optional(),
2067
- waitMs: z24.number().int().min(0).max(2e4).optional(),
2068
- resume: z24.boolean().optional()
2157
+ waitMs: z25.number().int().min(0).max(2e4).optional(),
2158
+ resume: z25.boolean().optional()
2069
2159
  }).strict();
2070
- var TimelineTextAppendSchema = z24.object({
2160
+ var TimelineTextAppendSchema = z25.object({
2071
2161
  itemId: identity,
2072
- baseRevision: z24.number().int().positive(),
2073
- revision: z24.number().int().positive(),
2074
- appendText: z24.string().min(1).max(5e5),
2075
- sourceEventIds: z24.array(identity).min(1).max(1e3).optional(),
2076
- sourceMessageIds: z24.array(identity).min(1).max(1e3).optional(),
2077
- sourceInteractionIds: z24.array(identity).min(1).max(1e3).optional()
2078
- }).strict();
2079
- var TimelineSyncEventSchema = z24.discriminatedUnion("kind", [
2080
- z24.object({ kind: z24.literal("upsert"), sequence, item: ConversationItemSchema }).strict(),
2081
- z24.object({ kind: z24.literal("append"), sequence, append: TimelineTextAppendSchema }).strict(),
2082
- z24.object({
2083
- kind: z24.literal("step"),
2162
+ baseRevision: z25.number().int().positive(),
2163
+ revision: z25.number().int().positive(),
2164
+ appendText: z25.string().min(1).max(5e5),
2165
+ sourceEventIds: z25.array(identity).min(1).max(1e3).optional(),
2166
+ sourceMessageIds: z25.array(identity).min(1).max(1e3).optional(),
2167
+ sourceInteractionIds: z25.array(identity).min(1).max(1e3).optional()
2168
+ }).strict();
2169
+ var TimelineSyncEventSchema = z25.discriminatedUnion("kind", [
2170
+ z25.object({ kind: z25.literal("upsert"), sequence, item: ConversationItemSchema }).strict(),
2171
+ z25.object({ kind: z25.literal("append"), sequence, append: TimelineTextAppendSchema }).strict(),
2172
+ z25.object({
2173
+ kind: z25.literal("step"),
2084
2174
  sequence,
2085
2175
  upsert: ConversationActivityStepUpsertSchema
2086
2176
  }).strict()
2087
2177
  ]);
2088
- var TimelineResyncReasonSchema = z24.enum([
2178
+ var TimelineResyncReasonSchema = z25.enum([
2089
2179
  "initial",
2090
2180
  "epoch-changed",
2091
2181
  "evicted",
@@ -2094,36 +2184,36 @@ var TimelineResyncReasonSchema = z24.enum([
2094
2184
  "rewind",
2095
2185
  "oversized"
2096
2186
  ]);
2097
- var TimelineSyncResponseSchema = z24.discriminatedUnion("status", [
2098
- z24.object({
2099
- status: z24.literal("snapshot"),
2187
+ var TimelineSyncResponseSchema = z25.discriminatedUnion("status", [
2188
+ z25.object({
2189
+ status: z25.literal("snapshot"),
2100
2190
  watermark: TimelineWatermarkSchema,
2101
2191
  page: SessionTimelinePageSchema
2102
2192
  }).strict(),
2103
- z24.object({
2104
- status: z24.literal("replay"),
2193
+ z25.object({
2194
+ status: z25.literal("replay"),
2105
2195
  watermark: TimelineWatermarkSchema,
2106
2196
  afterSequence: sequence,
2107
- events: z24.array(TimelineSyncEventSchema).max(TIMELINE_SYNC_MAX_EVENTS),
2108
- hasMore: z24.boolean()
2197
+ events: z25.array(TimelineSyncEventSchema).max(TIMELINE_SYNC_MAX_EVENTS),
2198
+ hasMore: z25.boolean()
2109
2199
  }).strict(),
2110
- z24.object({
2111
- status: z24.literal("resync"),
2200
+ z25.object({
2201
+ status: z25.literal("resync"),
2112
2202
  epoch: identity,
2113
2203
  reason: TimelineResyncReasonSchema
2114
2204
  }).strict()
2115
2205
  ]);
2116
- var TimelineImageRequestSchema = z24.object({
2206
+ var TimelineImageRequestSchema = z25.object({
2117
2207
  sha256: hash,
2118
- offset: z24.number().int().min(0).max(TIMELINE_IMAGE_MAX_BYTES - 1)
2208
+ offset: z25.number().int().min(0).max(TIMELINE_IMAGE_MAX_BYTES - 1)
2119
2209
  }).strict();
2120
- var TimelineImageChunkSchema = z24.object({
2210
+ var TimelineImageChunkSchema = z25.object({
2121
2211
  sha256: hash,
2122
- offset: z24.number().int().min(0).max(TIMELINE_IMAGE_MAX_BYTES - 1),
2123
- totalBytes: z24.number().int().positive().max(TIMELINE_IMAGE_MAX_BYTES),
2124
- mimeType: z24.enum(["image/gif", "image/jpeg", "image/png", "image/webp"]),
2125
- data: z24.string().min(4).max(Math.ceil(TIMELINE_IMAGE_CHUNK_BYTES / 3) * 4).regex(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u),
2126
- eof: z24.boolean()
2212
+ offset: z25.number().int().min(0).max(TIMELINE_IMAGE_MAX_BYTES - 1),
2213
+ totalBytes: z25.number().int().positive().max(TIMELINE_IMAGE_MAX_BYTES),
2214
+ mimeType: z25.enum(["image/gif", "image/jpeg", "image/png", "image/webp"]),
2215
+ data: z25.string().min(4).max(Math.ceil(TIMELINE_IMAGE_CHUNK_BYTES / 3) * 4).regex(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u),
2216
+ eof: z25.boolean()
2127
2217
  }).strict().superRefine((chunk, context) => {
2128
2218
  const padding = chunk.data.endsWith("==") ? 2 : chunk.data.endsWith("=") ? 1 : 0;
2129
2219
  const length = chunk.data.length / 4 * 3 - padding;
@@ -2134,10 +2224,10 @@ var TimelineImageChunkSchema = z24.object({
2134
2224
  });
2135
2225
 
2136
2226
  // ../protocol/dist/workbench.js
2137
- import { z as z26 } from "zod";
2227
+ import { z as z27 } from "zod";
2138
2228
 
2139
2229
  // ../protocol/dist/schedules.js
2140
- import { z as z25 } from "zod";
2230
+ import { z as z26 } from "zod";
2141
2231
  var SCHEDULES_CAPABILITY = "session-schedules-v1";
2142
2232
  var SCHEDULE_OPERATIONS = [
2143
2233
  "schedule.snapshot",
@@ -2146,90 +2236,90 @@ var SCHEDULE_OPERATIONS = [
2146
2236
  "schedule.draft.dismiss",
2147
2237
  "schedule.resume"
2148
2238
  ];
2149
- var Id = z25.string().min(1).max(256);
2150
- var NativeId = z25.number().int().positive().max(Number.MAX_SAFE_INTEGER);
2151
- var Time = z25.iso.datetime({ offset: true });
2152
- var WorkbenchScheduleRuleSchema = z25.discriminatedUnion("kind", [
2153
- z25.object({ kind: z25.literal("once"), at: Time }).strict(),
2154
- z25.object({
2155
- kind: z25.literal("interval"),
2156
- seconds: z25.number().int().min(10).max(86400),
2157
- recurring: z25.boolean().optional()
2239
+ var Id = z26.string().min(1).max(256);
2240
+ var NativeId = z26.number().int().positive().max(Number.MAX_SAFE_INTEGER);
2241
+ var Time = z26.iso.datetime({ offset: true });
2242
+ var WorkbenchScheduleRuleSchema = z26.discriminatedUnion("kind", [
2243
+ z26.object({ kind: z26.literal("once"), at: Time }).strict(),
2244
+ z26.object({
2245
+ kind: z26.literal("interval"),
2246
+ seconds: z26.number().int().min(10).max(86400),
2247
+ recurring: z26.boolean().optional()
2158
2248
  }).strict(),
2159
- z25.object({
2160
- kind: z25.literal("cron"),
2161
- expression: z25.string().trim().min(9).max(256).regex(/^\S+(?: +\S+){4}$/),
2162
- timezone: z25.string().min(1).max(128).regex(/^[A-Za-z0-9_+./-]+$/)
2249
+ z26.object({
2250
+ kind: z26.literal("cron"),
2251
+ expression: z26.string().trim().min(9).max(256).regex(/^\S+(?: +\S+){4}$/),
2252
+ timezone: z26.string().min(1).max(128).regex(/^[A-Za-z0-9_+./-]+$/)
2163
2253
  }).strict()
2164
2254
  ]);
2165
2255
  var Content = {
2166
2256
  rule: WorkbenchScheduleRuleSchema,
2167
- prompt: z25.string().max(16e3).describe("The execution prompt, or ONLY the user's exact arguments when skill is set. Do not include the skill name, slash prefix, scheduling instructions, or extra explanation in skill arguments."),
2168
- skill: z25.string().min(1).max(256).regex(/^[A-Za-z0-9][A-Za-z0-9_.:-]*$/).optional().describe("A genuine callable skill name from this session, without the leading slash. Set this field when the user requests a skill; put only its exact arguments in prompt.")
2257
+ prompt: z26.string().max(16e3).describe("The execution prompt, or ONLY the user's exact arguments when skill is set. Do not include the skill name, slash prefix, scheduling instructions, or extra explanation in skill arguments."),
2258
+ skill: z26.string().min(1).max(256).regex(/^[A-Za-z0-9][A-Za-z0-9_.:-]*$/).optional().describe("A genuine callable skill name from this session, without the leading slash. Set this field when the user requests a skill; put only its exact arguments in prompt.")
2169
2259
  };
2170
- var WorkbenchScheduleProposalSchema = z25.object(Content).strict().refine((value) => value.prompt.trim().length > 0 || value.skill !== void 0, { message: "A prompt or skill is required" });
2171
- var WorkbenchScheduleDraftSchema = z25.object({
2172
- id: z25.uuid(),
2260
+ var WorkbenchScheduleProposalSchema = z26.object(Content).strict().refine((value) => value.prompt.trim().length > 0 || value.skill !== void 0, { message: "A prompt or skill is required" });
2261
+ var WorkbenchScheduleDraftSchema = z26.object({
2262
+ id: z26.uuid(),
2173
2263
  createdAt: Time,
2174
2264
  ...Content
2175
2265
  }).strict();
2176
- var WorkbenchScheduleEntrySchema = z25.object({
2266
+ var WorkbenchScheduleEntrySchema = z26.object({
2177
2267
  id: NativeId,
2178
- prompt: z25.string().max(1e5),
2179
- displayPrompt: z25.string().max(1e5).optional(),
2180
- recurring: z25.boolean(),
2268
+ prompt: z26.string().max(1e5),
2269
+ displayPrompt: z26.string().max(1e5).optional(),
2270
+ recurring: z26.boolean(),
2181
2271
  nextRunAt: Time,
2182
- intervalMs: z25.number().int().positive().optional(),
2183
- cron: z25.string().max(256).optional(),
2184
- timezone: z25.string().max(128).optional(),
2272
+ intervalMs: z26.number().int().positive().optional(),
2273
+ cron: z26.string().max(256).optional(),
2274
+ timezone: z26.string().max(128).optional(),
2185
2275
  at: Time.optional()
2186
2276
  }).strict();
2187
- var WorkbenchScheduleResultSchema = z25.object({
2277
+ var WorkbenchScheduleResultSchema = z26.object({
2188
2278
  id: Id,
2189
2279
  scheduleId: NativeId,
2190
2280
  triggerEventId: Id,
2191
2281
  time: Time,
2192
- prompt: z25.string().max(16e3),
2193
- status: z25.enum(["reply", "error", "merged", "pending", "unknown"]),
2194
- reply: z25.string().max(16e3).optional(),
2282
+ prompt: z26.string().max(16e3),
2283
+ status: z26.enum(["reply", "error", "merged", "pending", "unknown"]),
2284
+ reply: z26.string().max(16e3).optional(),
2195
2285
  replyEventId: Id.optional(),
2196
- error: z25.string().max(1024).optional()
2197
- }).strict();
2198
- var WorkbenchScheduleSnapshotSchema = z25.object({
2199
- state: z25.enum(["active", "needs-resume"]),
2200
- workingDirectory: z25.string().max(32768).optional(),
2201
- timezone: z25.string().max(128).optional(),
2202
- entries: z25.array(WorkbenchScheduleEntrySchema).max(256),
2203
- drafts: z25.array(WorkbenchScheduleDraftSchema).max(100),
2204
- results: z25.array(WorkbenchScheduleResultSchema).max(100),
2205
- historyTruncated: z25.boolean(),
2286
+ error: z26.string().max(1024).optional()
2287
+ }).strict();
2288
+ var WorkbenchScheduleSnapshotSchema = z26.object({
2289
+ state: z26.enum(["active", "needs-resume"]),
2290
+ workingDirectory: z26.string().max(32768).optional(),
2291
+ timezone: z26.string().max(128).optional(),
2292
+ entries: z26.array(WorkbenchScheduleEntrySchema).max(256),
2293
+ drafts: z26.array(WorkbenchScheduleDraftSchema).max(100),
2294
+ results: z26.array(WorkbenchScheduleResultSchema).max(100),
2295
+ historyTruncated: z26.boolean(),
2206
2296
  sampledAt: Time
2207
2297
  }).strict();
2208
2298
  var Submission = {
2209
- operationId: z25.uuid(),
2210
- operationCreatedAt: z25.iso.datetime(),
2299
+ operationId: z26.uuid(),
2300
+ operationCreatedAt: z26.iso.datetime(),
2211
2301
  expectedAgentRunId: Id
2212
2302
  };
2213
- var WorkbenchScheduleCreateRequestSchema = z25.object({
2303
+ var WorkbenchScheduleCreateRequestSchema = z26.object({
2214
2304
  ...Submission,
2215
2305
  ...Content,
2216
- draftId: z25.uuid().optional()
2306
+ draftId: z26.uuid().optional()
2217
2307
  }).strict().refine((value) => value.prompt.trim().length > 0 || value.skill !== void 0, { message: "A prompt or skill is required" });
2218
- var WorkbenchScheduleCreateResultSchema = z25.object({
2308
+ var WorkbenchScheduleCreateResultSchema = z26.object({
2219
2309
  snapshot: WorkbenchScheduleSnapshotSchema,
2220
- verified: z25.boolean()
2310
+ verified: z26.boolean()
2221
2311
  }).strict();
2222
- var WorkbenchScheduleDeleteRequestSchema = z25.object({
2312
+ var WorkbenchScheduleDeleteRequestSchema = z26.object({
2223
2313
  ...Submission,
2224
2314
  id: NativeId
2225
2315
  }).strict();
2226
- var WorkbenchScheduleDeleteResultSchema = z25.object({
2316
+ var WorkbenchScheduleDeleteResultSchema = z26.object({
2227
2317
  snapshot: WorkbenchScheduleSnapshotSchema,
2228
- removed: z25.boolean()
2318
+ removed: z26.boolean()
2229
2319
  }).strict();
2230
- var WorkbenchScheduleDraftDismissRequestSchema = z25.object({
2320
+ var WorkbenchScheduleDraftDismissRequestSchema = z26.object({
2231
2321
  ...Submission,
2232
- draftId: z25.uuid()
2322
+ draftId: z26.uuid()
2233
2323
  }).strict();
2234
2324
  var ScheduleAndroidSchemas = {
2235
2325
  WorkbenchScheduleRule: WorkbenchScheduleRuleSchema,
@@ -2246,10 +2336,10 @@ var ScheduleAndroidSchemas = {
2246
2336
  };
2247
2337
 
2248
2338
  // ../protocol/dist/workbench.js
2249
- var Id2 = z26.string().trim().min(1).max(256);
2250
- var Text = z26.string().max(1e5);
2251
- var Count = z26.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER);
2252
- var Failure = z26.object({ code: Id2, message: z26.string().min(1).max(1024) }).strict();
2339
+ var Id2 = z27.string().trim().min(1).max(256);
2340
+ var Text = z27.string().max(1e5);
2341
+ var Count = z27.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER);
2342
+ var Failure = z27.object({ code: Id2, message: z27.string().min(1).max(1024) }).strict();
2253
2343
  var WORKBENCH_VERSION = 1;
2254
2344
  var RESEARCH_CHAT_CAPABILITY = "research-chat-v1";
2255
2345
  var WORKBENCH_OPERATIONS = [
@@ -2271,104 +2361,104 @@ var WORKBENCH_OPERATIONS = [
2271
2361
  ];
2272
2362
  var workbenchCapability = (operation) => `${operation}.v${WORKBENCH_VERSION}`;
2273
2363
  var Submission2 = {
2274
- operationId: z26.uuid(),
2275
- operationCreatedAt: z26.iso.datetime(),
2364
+ operationId: z27.uuid(),
2365
+ operationCreatedAt: z27.iso.datetime(),
2276
2366
  expectedAgentRunId: Id2
2277
2367
  };
2278
- var WorkbenchOperationGetSchema = z26.object({ operationId: z26.uuid() }).strict();
2279
- var WorkbenchOperationStatusSchema = z26.object({
2280
- operationId: z26.uuid(),
2281
- operation: z26.enum(WORKBENCH_OPERATIONS),
2368
+ var WorkbenchOperationGetSchema = z27.object({ operationId: z27.uuid() }).strict();
2369
+ var WorkbenchOperationStatusSchema = z27.object({
2370
+ operationId: z27.uuid(),
2371
+ operation: z27.enum(WORKBENCH_OPERATIONS),
2282
2372
  agentRunId: Id2,
2283
- state: z26.enum(["running", "succeeded", "failed", "uncertain", "result-expired"]),
2284
- result: z26.record(z26.string(), z26.json()).optional(),
2373
+ state: z27.enum(["running", "succeeded", "failed", "uncertain", "result-expired"]),
2374
+ result: z27.record(z27.string(), z27.json()).optional(),
2285
2375
  error: Failure.optional()
2286
2376
  }).strict().superRefine((value, context) => {
2287
2377
  if (value.state === "succeeded" !== (value.result !== void 0) || (value.state === "failed" || value.state === "uncertain") !== (value.error !== void 0)) {
2288
2378
  context.addIssue({ code: "custom", message: "Invalid operation state payload" });
2289
2379
  }
2290
2380
  });
2291
- var WorkbenchAskRequestSchema = z26.object({
2381
+ var WorkbenchAskRequestSchema = z27.object({
2292
2382
  ...Submission2,
2293
- question: z26.string().trim().min(1).max(16e3)
2383
+ question: z27.string().trim().min(1).max(16e3)
2294
2384
  }).strict();
2295
- var WorkbenchAskResultSchema = z26.object({ answer: Text }).strict();
2296
- var WorkbenchEmptyRequestSchema = z26.object({}).strict();
2297
- var WorkbenchSubmitRequestSchema = z26.object(Submission2).strict();
2298
- var WorkbenchResearchCreateRequestSchema = z26.object({
2385
+ var WorkbenchAskResultSchema = z27.object({ answer: Text }).strict();
2386
+ var WorkbenchEmptyRequestSchema = z27.object({}).strict();
2387
+ var WorkbenchSubmitRequestSchema = z27.object(Submission2).strict();
2388
+ var WorkbenchResearchCreateRequestSchema = z27.object({
2299
2389
  ...Submission2,
2300
- title: z26.string().trim().min(1).max(120),
2301
- question: z26.string().trim().min(1).max(16e3),
2390
+ title: z27.string().trim().min(1).max(120),
2391
+ question: z27.string().trim().min(1).max(16e3),
2302
2392
  sourceItemId: Id2.optional(),
2303
- deferInitialPrompt: z26.literal(true).optional()
2393
+ deferInitialPrompt: z27.literal(true).optional()
2304
2394
  }).strict();
2305
- var WorkbenchResearchThreadSchema = z26.object({
2395
+ var WorkbenchResearchThreadSchema = z27.object({
2306
2396
  sessionId: Id2,
2307
2397
  parentSessionId: Id2,
2308
- title: z26.string().min(1).max(120),
2309
- createdAt: z26.iso.datetime(),
2398
+ title: z27.string().min(1).max(120),
2399
+ createdAt: z27.iso.datetime(),
2310
2400
  contextAnchor: Id2.optional(),
2311
- contextTruncated: z26.boolean(),
2312
- detached: z26.boolean(),
2313
- state: z26.enum(["creating", "ready", "failed"])
2401
+ contextTruncated: z27.boolean(),
2402
+ detached: z27.boolean(),
2403
+ state: z27.enum(["creating", "ready", "failed"])
2314
2404
  }).strict();
2315
- var WorkbenchResearchCreateResultSchema = z26.object({
2405
+ var WorkbenchResearchCreateResultSchema = z27.object({
2316
2406
  thread: WorkbenchResearchThreadSchema
2317
2407
  }).strict();
2318
- var WorkbenchResearchListResultSchema = z26.object({
2319
- threads: z26.array(WorkbenchResearchThreadSchema).max(100)
2408
+ var WorkbenchResearchListResultSchema = z27.object({
2409
+ threads: z27.array(WorkbenchResearchThreadSchema).max(100)
2320
2410
  }).strict();
2321
- var WorkbenchResearchTimelineRequestSchema = z26.object({
2411
+ var WorkbenchResearchTimelineRequestSchema = z27.object({
2322
2412
  cursor: Id2.optional()
2323
2413
  }).strict();
2324
- var WorkbenchResearchSendRequestSchema = z26.object({
2414
+ var WorkbenchResearchSendRequestSchema = z27.object({
2325
2415
  ...Submission2,
2326
- prompt: z26.string().trim().min(1).max(16e3)
2327
- }).strict();
2328
- var WorkbenchResearchSendResultSchema = z26.object({ messageId: Id2 }).strict();
2329
- var WorkbenchCompletedResultSchema = z26.object({ completed: z26.boolean() }).strict();
2330
- var WorkbenchCommandSchema = z26.object({
2331
- name: z26.string().min(1).max(260),
2332
- description: z26.string().max(4096),
2333
- argumentHint: z26.string().max(1024).optional(),
2334
- kind: z26.enum(["builtin", "skill", "client"]),
2335
- allowDuringExecution: z26.boolean(),
2336
- supported: z26.boolean(),
2337
- reason: z26.string().max(1024).optional()
2338
- }).strict();
2339
- var WorkbenchCommandListResultSchema = z26.object({
2340
- commands: z26.array(WorkbenchCommandSchema).max(512)
2341
- }).strict();
2342
- var WorkbenchCommandInvokeRequestSchema = z26.object({
2416
+ prompt: z27.string().trim().min(1).max(16e3)
2417
+ }).strict();
2418
+ var WorkbenchResearchSendResultSchema = z27.object({ messageId: Id2 }).strict();
2419
+ var WorkbenchCompletedResultSchema = z27.object({ completed: z27.boolean() }).strict();
2420
+ var WorkbenchCommandSchema = z27.object({
2421
+ name: z27.string().min(1).max(260),
2422
+ description: z27.string().max(4096),
2423
+ argumentHint: z27.string().max(1024).optional(),
2424
+ kind: z27.enum(["builtin", "skill", "client"]),
2425
+ allowDuringExecution: z27.boolean(),
2426
+ supported: z27.boolean(),
2427
+ reason: z27.string().max(1024).optional()
2428
+ }).strict();
2429
+ var WorkbenchCommandListResultSchema = z27.object({
2430
+ commands: z27.array(WorkbenchCommandSchema).max(512)
2431
+ }).strict();
2432
+ var WorkbenchCommandInvokeRequestSchema = z27.object({
2343
2433
  ...Submission2,
2344
- name: z26.string().trim().min(1).max(260),
2345
- input: z26.string().max(16e3)
2346
- }).strict();
2347
- var WorkbenchCommandChoiceSchema = z26.object({
2348
- name: z26.string().min(1).max(260),
2349
- label: z26.string().min(1).max(1024),
2350
- input: z26.string().max(16e3)
2351
- }).strict();
2352
- var WorkbenchCommandResultSchema = z26.discriminatedUnion("kind", [
2353
- z26.object({ kind: z26.literal("text"), text: Text }).strict(),
2354
- z26.object({ kind: z26.literal("completed") }).strict(),
2355
- z26.object({ kind: z26.literal("sent"), messageId: Id2 }).strict(),
2356
- z26.object({
2357
- kind: z26.literal("select-subcommand"),
2358
- choices: z26.array(WorkbenchCommandChoiceSchema).min(1).max(100)
2434
+ name: z27.string().trim().min(1).max(260),
2435
+ input: z27.string().max(16e3)
2436
+ }).strict();
2437
+ var WorkbenchCommandChoiceSchema = z27.object({
2438
+ name: z27.string().min(1).max(260),
2439
+ label: z27.string().min(1).max(1024),
2440
+ input: z27.string().max(16e3)
2441
+ }).strict();
2442
+ var WorkbenchCommandResultSchema = z27.discriminatedUnion("kind", [
2443
+ z27.object({ kind: z27.literal("text"), text: Text }).strict(),
2444
+ z27.object({ kind: z27.literal("completed") }).strict(),
2445
+ z27.object({ kind: z27.literal("sent"), messageId: Id2 }).strict(),
2446
+ z27.object({
2447
+ kind: z27.literal("select-subcommand"),
2448
+ choices: z27.array(WorkbenchCommandChoiceSchema).min(1).max(100)
2359
2449
  }).strict()
2360
2450
  ]);
2361
- var WorkbenchQueueItemSchema = z26.object({
2451
+ var WorkbenchQueueItemSchema = z27.object({
2362
2452
  id: Id2,
2363
- kind: z26.string().min(1).max(64),
2364
- texts: z26.array(z26.string().max(1e5)).min(1).max(100),
2365
- actions: z26.array(z26.enum(["edit", "remove", "move", "send-now"])).max(4)
2453
+ kind: z27.string().min(1).max(64),
2454
+ texts: z27.array(z27.string().max(1e5)).min(1).max(100),
2455
+ actions: z27.array(z27.enum(["edit", "remove", "move", "send-now"])).max(4)
2366
2456
  }).strict();
2367
- var WorkbenchQueueSnapshotSchema = z26.object({
2457
+ var WorkbenchQueueSnapshotSchema = z27.object({
2368
2458
  generation: Id2,
2369
2459
  revision: Id2,
2370
- items: z26.array(WorkbenchQueueItemSchema).max(512),
2371
- steeringMessages: z26.array(z26.string().max(1e5)).max(512)
2460
+ items: z27.array(WorkbenchQueueItemSchema).max(512),
2461
+ steeringMessages: z27.array(z27.string().max(1e5)).max(512)
2372
2462
  }).strict();
2373
2463
  var QueueMutation = {
2374
2464
  ...Submission2,
@@ -2376,48 +2466,48 @@ var QueueMutation = {
2376
2466
  revision: Id2,
2377
2467
  id: Id2
2378
2468
  };
2379
- var WorkbenchQueueMutationRequestSchema = z26.discriminatedUnion("action", [
2380
- z26.object({ ...QueueMutation, action: z26.literal("edit"), prompt: z26.string().trim().min(1).max(1e5) }).strict(),
2381
- z26.object({ ...QueueMutation, action: z26.literal("remove") }).strict(),
2382
- z26.object({ ...QueueMutation, action: z26.literal("move"), toPosition: z26.number().int().min(0).max(511) }).strict(),
2383
- z26.object({ ...QueueMutation, action: z26.literal("send-now") }).strict()
2384
- ]);
2385
- var WorkbenchQueueMutationResultSchema = z26.object({
2386
- changed: z26.boolean(),
2469
+ var WorkbenchQueueMutationRequestSchema = z27.discriminatedUnion("action", [
2470
+ z27.object({ ...QueueMutation, action: z27.literal("edit"), prompt: z27.string().trim().min(1).max(1e5) }).strict(),
2471
+ z27.object({ ...QueueMutation, action: z27.literal("remove") }).strict(),
2472
+ z27.object({ ...QueueMutation, action: z27.literal("move"), toPosition: z27.number().int().min(0).max(511) }).strict(),
2473
+ z27.object({ ...QueueMutation, action: z27.literal("send-now") }).strict()
2474
+ ]);
2475
+ var WorkbenchQueueMutationResultSchema = z27.object({
2476
+ changed: z27.boolean(),
2387
2477
  snapshot: WorkbenchQueueSnapshotSchema
2388
2478
  }).strict();
2389
- var WorkbenchTokenMetricSchema = z26.object({
2390
- kind: z26.string().min(1).max(128),
2479
+ var WorkbenchTokenMetricSchema = z27.object({
2480
+ kind: z27.string().min(1).max(128),
2391
2481
  count: Count
2392
2482
  }).strict();
2393
- var WorkbenchModelUsageSchema = z26.object({
2483
+ var WorkbenchModelUsageSchema = z27.object({
2394
2484
  model: Id2,
2395
2485
  requests: Count,
2396
- premiumRequestCost: z26.number().finite().nonnegative(),
2397
- tokens: z26.array(WorkbenchTokenMetricSchema).max(32)
2486
+ premiumRequestCost: z27.number().finite().nonnegative(),
2487
+ tokens: z27.array(WorkbenchTokenMetricSchema).max(32)
2398
2488
  }).strict();
2399
- var WorkbenchContextSchema = z26.object({
2489
+ var WorkbenchContextSchema = z27.object({
2400
2490
  currentTokens: Count,
2401
2491
  tokenLimit: Count,
2402
2492
  systemTokens: Count.optional(),
2403
2493
  conversationTokens: Count.optional(),
2404
2494
  toolTokens: Count.optional()
2405
2495
  }).strict();
2406
- var WorkbenchInsightsSchema = z26.object({
2407
- sampledAt: z26.iso.datetime(),
2496
+ var WorkbenchInsightsSchema = z27.object({
2497
+ sampledAt: z27.iso.datetime(),
2408
2498
  generation: Id2,
2409
2499
  model: Id2.optional(),
2410
2500
  totalUserRequests: Count,
2411
- premiumRequestCost: z26.number().finite().nonnegative(),
2412
- nanoAiu: z26.string().regex(/^\d+$/).max(40).optional(),
2413
- tokens: z26.array(WorkbenchTokenMetricSchema).max(32),
2414
- models: z26.array(WorkbenchModelUsageSchema).max(100),
2501
+ premiumRequestCost: z27.number().finite().nonnegative(),
2502
+ nanoAiu: z27.string().regex(/^\d+$/).max(40).optional(),
2503
+ tokens: z27.array(WorkbenchTokenMetricSchema).max(32),
2504
+ models: z27.array(WorkbenchModelUsageSchema).max(100),
2415
2505
  context: WorkbenchContextSchema.optional(),
2416
- canCompact: z26.boolean(),
2417
- compactUnavailableReason: z26.string().max(1024).optional()
2506
+ canCompact: z27.boolean(),
2507
+ compactUnavailableReason: z27.string().max(1024).optional()
2418
2508
  }).strict();
2419
- var WorkbenchCompactResultSchema = z26.object({
2420
- success: z26.boolean(),
2509
+ var WorkbenchCompactResultSchema = z27.object({
2510
+ success: z27.boolean(),
2421
2511
  tokensRemoved: Count,
2422
2512
  messagesRemoved: Count
2423
2513
  }).strict();
@@ -2453,6 +2543,13 @@ var WorkbenchAndroidSchemas = {
2453
2543
 
2454
2544
  // ../protocol/dist/codegen/android-schemas.js
2455
2545
  var AndroidProtocolSchemas = {
2546
+ TimelineImageBlobRequest: TimelineImageBlobRequestSchema,
2547
+ TimelineImageBlobResult: TimelineImageBlobResultSchema,
2548
+ SessionImageUploadRequest: SessionImageUploadRequestSchema,
2549
+ SessionImageScope: SessionImageScopeSchema,
2550
+ SessionImageUploadResult: SessionImageUploadResultSchema,
2551
+ SessionImageCommitResult: SessionImageCommitResultSchema,
2552
+ SessionImageDownloadResult: SessionImageDownloadResultSchema,
2456
2553
  ...WorkbenchAndroidSchemas,
2457
2554
  ...ScheduleAndroidSchemas,
2458
2555
  SessionCommunication: SessionCommunicationSchema,
@@ -2466,6 +2563,7 @@ var AndroidProtocolSchemas = {
2466
2563
  SessionDirectoryListResultData: SessionDirectoryListResultDataSchema,
2467
2564
  SessionFileReadData: SessionFileReadDataSchema,
2468
2565
  SessionFileReadResultData: SessionFileReadResultDataSchema,
2566
+ SessionFileReadV2ResultData: SessionFileReadV2ResultDataSchema,
2469
2567
  SessionResourceReadData: SessionResourceReadDataSchema,
2470
2568
  SessionResourceReadResultData: SessionResourceReadResultDataSchema,
2471
2569
  SessionDirectoryListRequest: SessionDirectoryListRequestSchema,
@@ -2590,16 +2688,20 @@ export {
2590
2688
  SESSION_DIRECTORY_MAX_RESPONSE_BYTES,
2591
2689
  SESSION_FILE_READ_OPERATION,
2592
2690
  SESSION_FILE_READ_VERSION,
2691
+ SESSION_FILE_READ_V2_VERSION,
2593
2692
  SESSION_FILE_MAX_ORIGINAL_BYTES,
2693
+ SESSION_FILE_V2_MAX_ORIGINAL_BYTES,
2594
2694
  SESSION_FILE_GZIP_THRESHOLD_BYTES,
2595
2695
  SESSION_FILE_MAX_IMAGE_BYTES,
2596
2696
  SESSION_FILE_MAX_IMAGE_EDGE,
2597
2697
  SESSION_FILE_MAX_IMAGE_PIXELS,
2698
+ SESSION_FILE_MAX_VIDEO_PIXELS,
2598
2699
  isSafeSessionDirectoryPath,
2599
2700
  SessionDirectoryListDataSchema,
2600
2701
  SessionDirectoryListResultDataSchema,
2601
2702
  SessionFileReadDataSchema,
2602
2703
  SessionFileReadResultDataSchema,
2704
+ SessionFileReadV2ResultDataSchema,
2603
2705
  SessionGitProjectSchema,
2604
2706
  SessionProjectIdentityRequestDataSchema,
2605
2707
  SessionProjectIdentityResultDataSchema,
@@ -2620,6 +2722,17 @@ export {
2620
2722
  SESSION_RESOURCE_MAX_IMAGE_PIXELS,
2621
2723
  SessionResourceReadDataSchema,
2622
2724
  SessionResourceReadResultDataSchema,
2725
+ SESSION_IMAGE_MAX_BYTES,
2726
+ SESSION_IMAGE_MAX_PIXELS,
2727
+ SESSION_IMAGE_API_PATH,
2728
+ TIMELINE_IMAGE_BLOB_OPERATION,
2729
+ TIMELINE_IMAGE_BLOB_VERSION,
2730
+ SessionImageUploadRequestSchema,
2731
+ SessionImageScopeSchema,
2732
+ SessionImageUploadResultSchema,
2733
+ SessionImageCommitResultSchema,
2734
+ TimelineImageBlobRequestSchema,
2735
+ TimelineImageBlobResultSchema,
2623
2736
  SESSION_RENAME_OPERATION,
2624
2737
  SESSION_RENAME_VERSION,
2625
2738
  SESSION_NAME_MAX_LENGTH,
@@ -2632,6 +2745,7 @@ export {
2632
2745
  MANAGED_SESSION_SELECTION_CAPABILITY,
2633
2746
  AGENT_CONTROLS_CAPABILITY,
2634
2747
  SESSION_OPTIONS_PARTIAL_CAPABILITY,
2748
+ SESSION_OPTIONS_PROGRESSIVE_CAPABILITY,
2635
2749
  GroupChatParticipantSchema,
2636
2750
  GroupChatInfoSchema,
2637
2751
  SessionSummarySchema,
@@ -2677,6 +2791,8 @@ export {
2677
2791
  SessionTimelineInvalidatedSchema,
2678
2792
  SESSION_FILE_ATTACHMENTS_CAPABILITY,
2679
2793
  SESSION_PROMPT_SUBMISSION_TIME_CAPABILITY,
2794
+ SESSION_AVATAR_PERSONA_CAPABILITY,
2795
+ SessionAvatarPersonaSchema,
2680
2796
  SessionPromptRequestSchema,
2681
2797
  SessionActivityUpdateSchema,
2682
2798
  SessionAbortRequestSchema,