@agentknight/sdk 0.9.38 → 0.9.39

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