@agentknight/sdk 0.9.37 → 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),
@@ -1831,8 +1847,69 @@ var SessionProjectIdentityResultDataSchema = z18.object({
1831
1847
  project: SessionGitProjectSchema.optional()
1832
1848
  }).strict();
1833
1849
 
1834
- // ../protocol/dist/sessions/session-resource.js
1850
+ // ../protocol/dist/sessions/session-git-diff.js
1835
1851
  import { z as z19 } from "zod";
1852
+ var SESSION_GIT_DIFF_OPERATION = "session.git.diff";
1853
+ var SESSION_GIT_DIFF_VERSION = 1;
1854
+ var SESSION_GIT_DIFF_GZIP_VERSION = 2;
1855
+ var SESSION_GIT_DIFF_GZIP_MIN_BYTES = 2 * 1024;
1856
+ var SESSION_GIT_DIFF_MAX_FILES = 500;
1857
+ var SESSION_GIT_DIFF_MAX_PATCH_BYTES = 128 * 1024;
1858
+ var SESSION_GIT_DIFF_MAX_RESPONSE_BYTES = 512 * 1024;
1859
+ var SESSION_GIT_DIFF_MAX_TRANSFER_BYTES = SESSION_GIT_DIFF_MAX_RESPONSE_BYTES + 1024;
1860
+ var SESSION_GIT_DIFF_MAX_BASE64_LENGTH = Math.ceil(SESSION_GIT_DIFF_MAX_TRANSFER_BYTES / 3) * 4;
1861
+ var SESSION_GIT_DIFF_MAX_GZIP_RESPONSE_BYTES = SESSION_GIT_DIFF_MAX_BASE64_LENGTH + 1024;
1862
+ var commitSchema = z19.string().regex(/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/u);
1863
+ var SessionGitDiffDataSchema = z19.object({
1864
+ rootRevision: SessionFileReadDataSchema.shape.rootRevision,
1865
+ path: SessionFileReadDataSchema.shape.path.optional(),
1866
+ baseCommit: commitSchema.optional()
1867
+ }).strict().refine((value) => value.path === void 0 === (value.baseCommit === void 0), "A file diff must identify its listed base commit");
1868
+ var SessionGitDiffEntrySchema = z19.object({
1869
+ path: SessionFileReadDataSchema.shape.path,
1870
+ status: z19.enum(["added", "modified", "deleted", "untracked"])
1871
+ }).strict();
1872
+ var SessionGitDiffResultDataSchema = z19.object({
1873
+ rootRevision: SessionFileReadDataSchema.shape.rootRevision,
1874
+ baseRef: z19.enum(["origin/main", "main"]),
1875
+ baseCommit: commitSchema,
1876
+ files: z19.array(SessionGitDiffEntrySchema).max(SESSION_GIT_DIFF_MAX_FILES).optional(),
1877
+ path: SessionFileReadDataSchema.shape.path.optional(),
1878
+ patch: z19.string().max(SESSION_GIT_DIFF_MAX_PATCH_BYTES).optional(),
1879
+ binary: z19.boolean().optional()
1880
+ }).strict().superRefine((value, context) => {
1881
+ const encoder = new TextEncoder();
1882
+ if (value.patch !== void 0 && encoder.encode(value.patch).length > SESSION_GIT_DIFF_MAX_PATCH_BYTES || encoder.encode(JSON.stringify(value)).length > SESSION_GIT_DIFF_MAX_RESPONSE_BYTES) {
1883
+ context.addIssue({ code: "custom", message: "Git diff exceeds its transfer limit" });
1884
+ }
1885
+ if (value.path === void 0) {
1886
+ if (value.files === void 0 || value.patch !== void 0 || value.binary !== void 0 || new Set(value.files?.map((entry) => entry.path)).size !== value.files?.length) {
1887
+ context.addIssue({ code: "custom", message: "Expected a unique changed-file list" });
1888
+ }
1889
+ } else if (value.files !== void 0 || value.patch === void 0 || value.binary === void 0 || value.binary && value.patch !== "") {
1890
+ context.addIssue({ code: "custom", message: "Expected a text patch or an explicit binary change" });
1891
+ }
1892
+ });
1893
+ var SessionGitDiffGzipResultDataSchema = z19.object({
1894
+ encoding: z19.literal("gzip"),
1895
+ byteLength: z19.number().int().min(1).max(SESSION_GIT_DIFF_MAX_RESPONSE_BYTES),
1896
+ data: z19.string().max(SESSION_GIT_DIFF_MAX_BASE64_LENGTH).regex(/^[A-Za-z0-9+/]*={0,2}$/u)
1897
+ }).strict().superRefine((value, context) => {
1898
+ const padding = value.data.endsWith("==") ? 2 : value.data.endsWith("=") ? 1 : 0;
1899
+ const bytes = value.data.length / 4 * 3 - padding;
1900
+ const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
1901
+ const tail = alphabet.indexOf(value.data[value.data.length - padding - 1] ?? "");
1902
+ if (value.data.length % 4 !== 0 || bytes < 20 || bytes > SESSION_GIT_DIFF_MAX_TRANSFER_BYTES || padding === 2 && (tail & 15) !== 0 || padding === 1 && (tail & 3) !== 0) {
1903
+ context.addIssue({ code: "custom", message: "Invalid gzip transfer" });
1904
+ }
1905
+ });
1906
+ var SessionGitDiffV2ResultDataSchema = z19.union([
1907
+ SessionGitDiffResultDataSchema,
1908
+ SessionGitDiffGzipResultDataSchema
1909
+ ]);
1910
+
1911
+ // ../protocol/dist/sessions/session-resource.js
1912
+ import { z as z20 } from "zod";
1836
1913
  var SESSION_RESOURCE_READ_OPERATION = "session.resource.read";
1837
1914
  var SESSION_RESOURCE_READ_VERSION = 1;
1838
1915
  var SESSION_RESOURCE_MAX_ORIGINAL_BYTES = 499999;
@@ -1848,18 +1925,18 @@ var SESSION_RESOURCE_MEDIA_TYPES = [
1848
1925
  "text/css",
1849
1926
  "text/javascript"
1850
1927
  ];
1851
- var SessionResourceReadDataSchema = z19.object({
1852
- path: z19.string().min(1).max(SESSION_DIRECTORY_MAX_PATH_LENGTH).refine(isSafeSessionDirectoryPath),
1853
- rootRevision: z19.string().regex(/^[A-Za-z0-9_-]{43}$/u)
1928
+ var SessionResourceReadDataSchema = z20.object({
1929
+ path: z20.string().min(1).max(SESSION_DIRECTORY_MAX_PATH_LENGTH).refine(isSafeSessionDirectoryPath),
1930
+ rootRevision: z20.string().regex(/^[A-Za-z0-9_-]{43}$/u)
1854
1931
  }).strict();
1855
- var SessionResourceReadResultDataSchema = z19.object({
1932
+ var SessionResourceReadResultDataSchema = z20.object({
1856
1933
  path: SessionResourceReadDataSchema.shape.path,
1857
1934
  rootRevision: SessionResourceReadDataSchema.shape.rootRevision,
1858
- mediaType: z19.enum(SESSION_RESOURCE_MEDIA_TYPES),
1859
- originalByteLength: z19.number().int().min(0).max(SESSION_RESOURCE_MAX_ORIGINAL_BYTES),
1860
- byteLength: z19.number().int().min(0).max(SESSION_RESOURCE_MAX_ORIGINAL_BYTES),
1861
- encoding: z19.enum(["identity", "gzip"]),
1862
- data: z19.string().max(SESSION_RESOURCE_MAX_BASE64_LENGTH)
1935
+ mediaType: z20.enum(SESSION_RESOURCE_MEDIA_TYPES),
1936
+ originalByteLength: z20.number().int().min(0).max(SESSION_RESOURCE_MAX_ORIGINAL_BYTES),
1937
+ byteLength: z20.number().int().min(0).max(SESSION_RESOURCE_MAX_ORIGINAL_BYTES),
1938
+ encoding: z20.enum(["identity", "gzip"]),
1939
+ data: z20.string().max(SESSION_RESOURCE_MAX_BASE64_LENGTH)
1863
1940
  }).strict().superRefine((result, context) => {
1864
1941
  const invalid = () => context.addIssue({ code: "custom", message: "Invalid resource content" });
1865
1942
  if (result.encoding === "gzip" !== result.originalByteLength >= SESSION_RESOURCE_GZIP_THRESHOLD_BYTES || result.byteLength !== result.originalByteLength || result.mediaType.startsWith("image/") && result.byteLength === 0)
@@ -1871,42 +1948,107 @@ var SessionResourceReadResultDataSchema = z19.object({
1871
1948
  invalid();
1872
1949
  });
1873
1950
 
1951
+ // ../protocol/dist/sessions/session-images.js
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
+
1874
2016
  // ../protocol/dist/sessions/session-rename.js
1875
- import { z as z20 } from "zod";
2017
+ import { z as z22 } from "zod";
1876
2018
  var SESSION_RENAME_OPERATION = "session.rename";
1877
2019
  var SESSION_RENAME_VERSION = 1;
1878
2020
  var SESSION_RENAME_CAPABILITY = sessionCommunicationOperationCapability(SESSION_RENAME_OPERATION, SESSION_RENAME_VERSION);
1879
2021
  var SESSION_NAME_MAX_LENGTH = 100;
1880
- var SessionNameSchema = z20.string().regex(/^[^\u0000-\u001f\u007f]*$/u).trim().min(1).max(SESSION_NAME_MAX_LENGTH);
1881
- var SessionRenameDataSchema = z20.object({ name: SessionNameSchema }).strict();
1882
- var SessionRenameResultDataSchema = z20.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();
1883
2025
 
1884
2026
  // ../protocol/dist/sessions/group-chat.js
1885
- import { z as z21 } from "zod";
2027
+ import { z as z23 } from "zod";
1886
2028
  var GROUP_CHAT_CREATE_OPERATION = "group-chat.create";
1887
2029
  var GROUP_CHAT_CREATE_VERSION = 1;
1888
2030
  var GROUP_CHAT_CREATE_CAPABILITY = sessionCommunicationOperationCapability(GROUP_CHAT_CREATE_OPERATION, GROUP_CHAT_CREATE_VERSION);
1889
- var GroupChatCreateDataSchema = z21.object({
2031
+ var GroupChatCreateDataSchema = z23.object({
1890
2032
  peerSessionId: IdSchema
1891
2033
  }).strict();
1892
- var GroupChatCreateResultDataSchema = z21.object({
2034
+ var GroupChatCreateResultDataSchema = z23.object({
1893
2035
  session: SessionSummarySchema.refine((session) => session.groupChat !== void 0, "Group creation must return a virtual group session")
1894
2036
  }).strict();
1895
2037
 
1896
2038
  // ../protocol/dist/sessions/prompts.js
1897
- import { z as z22 } from "zod";
2039
+ import { z as z24 } from "zod";
1898
2040
  var SESSION_FILE_ATTACHMENTS_CAPABILITY = "session-file-attachments";
1899
2041
  var SESSION_PROMPT_SUBMISSION_TIME_CAPABILITY = "session-prompt-submission-time";
1900
2042
  var MAX_PROMPT_IMAGE_BYTES = 3 * 1024 * 1024;
1901
- var SessionPromptRequestSchema = z22.object({
2043
+ var SessionPromptRequestSchema = z24.object({
1902
2044
  requestId: IdSchema,
1903
2045
  operationId: IdSchema,
1904
2046
  machineId: IdSchema,
1905
2047
  sessionId: IdSchema,
1906
- prompt: z22.string().trim().max(1e5),
1907
- attachments: z22.array(PromptImageAttachmentSchema).max(4).optional(),
1908
- fileAttachments: z22.array(PromptFileAttachmentSchema).max(4).optional(),
1909
- mode: z22.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")
1910
2052
  }).strict().superRefine((request, context) => {
1911
2053
  if (request.prompt.length === 0 && (request.attachments?.length ?? 0) === 0 && (request.fileAttachments?.length ?? 0) === 0) {
1912
2054
  context.addIssue({
@@ -1932,22 +2074,22 @@ var SessionPromptRequestSchema = z22.object({
1932
2074
  });
1933
2075
  }
1934
2076
  });
1935
- var SessionPromptResultSchema = z22.discriminatedUnion("ok", [
1936
- z22.object({
1937
- ok: z22.literal(true),
2077
+ var SessionPromptResultSchema = z24.discriminatedUnion("ok", [
2078
+ z24.object({
2079
+ ok: z24.literal(true),
1938
2080
  requestId: IdSchema,
1939
2081
  operationId: IdSchema,
1940
2082
  machineId: IdSchema,
1941
2083
  sessionId: IdSchema,
1942
2084
  messageId: IdSchema,
1943
- mode: z22.enum(["enqueue", "immediate"]),
1944
- deliveryState: z22.enum(["queued", "processing"]),
2085
+ mode: z24.enum(["enqueue", "immediate"]),
2086
+ deliveryState: z24.enum(["queued", "processing"]),
1945
2087
  // Negotiated lower bound from the native event clock. Exact text and history
1946
2088
  // ownership checks still apply; this is not an identity or proof of persistence.
1947
2089
  submittedAt: IsoDateSchema.optional()
1948
2090
  }),
1949
- z22.object({
1950
- ok: z22.literal(false),
2091
+ z24.object({
2092
+ ok: z24.literal(false),
1951
2093
  requestId: IdSchema,
1952
2094
  operationId: IdSchema,
1953
2095
  machineId: IdSchema,
@@ -1955,29 +2097,29 @@ var SessionPromptResultSchema = z22.discriminatedUnion("ok", [
1955
2097
  error: ProtocolFailureSchema
1956
2098
  })
1957
2099
  ]);
1958
- var SessionActivityUpdateSchema = z22.object({
2100
+ var SessionActivityUpdateSchema = z24.object({
1959
2101
  userId: IdSchema,
1960
2102
  machineId: IdSchema,
1961
2103
  sessionId: IdSchema,
1962
- state: z22.enum(["working", "idle"]),
2104
+ state: z24.enum(["working", "idle"]),
1963
2105
  occurredAt: IsoDateSchema,
1964
2106
  assistantPreview: SessionAssistantPreviewSchema.optional(),
1965
2107
  userPreview: SessionUserPreviewSchema.optional()
1966
2108
  });
1967
- var SessionAbortRequestSchema = z22.object({
2109
+ var SessionAbortRequestSchema = z24.object({
1968
2110
  requestId: IdSchema,
1969
2111
  machineId: IdSchema,
1970
2112
  sessionId: IdSchema
1971
2113
  });
1972
- var SessionAbortResultSchema = z22.discriminatedUnion("ok", [
1973
- z22.object({
1974
- ok: z22.literal(true),
2114
+ var SessionAbortResultSchema = z24.discriminatedUnion("ok", [
2115
+ z24.object({
2116
+ ok: z24.literal(true),
1975
2117
  requestId: IdSchema,
1976
2118
  machineId: IdSchema,
1977
2119
  sessionId: IdSchema
1978
2120
  }),
1979
- z22.object({
1980
- ok: z22.literal(false),
2121
+ z24.object({
2122
+ ok: z24.literal(false),
1981
2123
  requestId: IdSchema,
1982
2124
  machineId: IdSchema,
1983
2125
  sessionId: IdSchema,
@@ -1986,7 +2128,7 @@ var SessionAbortResultSchema = z22.discriminatedUnion("ok", [
1986
2128
  ]);
1987
2129
 
1988
2130
  // ../protocol/dist/conversation/timeline-sync.js
1989
- import { z as z23 } from "zod";
2131
+ import { z as z25 } from "zod";
1990
2132
  var TIMELINE_SYNC_OPERATION = "session.timeline.sync";
1991
2133
  var TIMELINE_IMAGE_OPERATION = "session.image.read";
1992
2134
  var TIMELINE_SYNC_VERSION = 1;
@@ -1994,37 +2136,37 @@ var TIMELINE_SYNC_MAX_EVENTS = 128;
1994
2136
  var TIMELINE_SYNC_MAX_BYTES = 6 * 1024 * 1024;
1995
2137
  var TIMELINE_IMAGE_CHUNK_BYTES = 48 * 1024;
1996
2138
  var TIMELINE_IMAGE_MAX_BYTES = 3 * 1024 * 1024;
1997
- var identity = z23.string().min(1).max(256);
1998
- var sequence = z23.number().int().min(0).max(Number.MAX_SAFE_INTEGER);
1999
- var hash = z23.string().regex(/^[a-f0-9]{64}$/u);
2000
- var TimelineWatermarkSchema = z23.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({
2001
2143
  epoch: identity,
2002
2144
  sequence
2003
2145
  }).strict();
2004
- var TimelineSyncRequestSchema = z23.object({
2146
+ var TimelineSyncRequestSchema = z25.object({
2005
2147
  watermark: TimelineWatermarkSchema.optional(),
2006
- waitMs: z23.number().int().min(0).max(2e4).optional(),
2007
- resume: z23.boolean().optional()
2148
+ waitMs: z25.number().int().min(0).max(2e4).optional(),
2149
+ resume: z25.boolean().optional()
2008
2150
  }).strict();
2009
- var TimelineTextAppendSchema = z23.object({
2151
+ var TimelineTextAppendSchema = z25.object({
2010
2152
  itemId: identity,
2011
- baseRevision: z23.number().int().positive(),
2012
- revision: z23.number().int().positive(),
2013
- appendText: z23.string().min(1).max(5e5),
2014
- sourceEventIds: z23.array(identity).min(1).max(1e3).optional(),
2015
- sourceMessageIds: z23.array(identity).min(1).max(1e3).optional(),
2016
- sourceInteractionIds: z23.array(identity).min(1).max(1e3).optional()
2017
- }).strict();
2018
- var TimelineSyncEventSchema = z23.discriminatedUnion("kind", [
2019
- z23.object({ kind: z23.literal("upsert"), sequence, item: ConversationItemSchema }).strict(),
2020
- z23.object({ kind: z23.literal("append"), sequence, append: TimelineTextAppendSchema }).strict(),
2021
- z23.object({
2022
- kind: z23.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"),
2023
2165
  sequence,
2024
2166
  upsert: ConversationActivityStepUpsertSchema
2025
2167
  }).strict()
2026
2168
  ]);
2027
- var TimelineResyncReasonSchema = z23.enum([
2169
+ var TimelineResyncReasonSchema = z25.enum([
2028
2170
  "initial",
2029
2171
  "epoch-changed",
2030
2172
  "evicted",
@@ -2033,36 +2175,36 @@ var TimelineResyncReasonSchema = z23.enum([
2033
2175
  "rewind",
2034
2176
  "oversized"
2035
2177
  ]);
2036
- var TimelineSyncResponseSchema = z23.discriminatedUnion("status", [
2037
- z23.object({
2038
- status: z23.literal("snapshot"),
2178
+ var TimelineSyncResponseSchema = z25.discriminatedUnion("status", [
2179
+ z25.object({
2180
+ status: z25.literal("snapshot"),
2039
2181
  watermark: TimelineWatermarkSchema,
2040
2182
  page: SessionTimelinePageSchema
2041
2183
  }).strict(),
2042
- z23.object({
2043
- status: z23.literal("replay"),
2184
+ z25.object({
2185
+ status: z25.literal("replay"),
2044
2186
  watermark: TimelineWatermarkSchema,
2045
2187
  afterSequence: sequence,
2046
- events: z23.array(TimelineSyncEventSchema).max(TIMELINE_SYNC_MAX_EVENTS),
2047
- hasMore: z23.boolean()
2188
+ events: z25.array(TimelineSyncEventSchema).max(TIMELINE_SYNC_MAX_EVENTS),
2189
+ hasMore: z25.boolean()
2048
2190
  }).strict(),
2049
- z23.object({
2050
- status: z23.literal("resync"),
2191
+ z25.object({
2192
+ status: z25.literal("resync"),
2051
2193
  epoch: identity,
2052
2194
  reason: TimelineResyncReasonSchema
2053
2195
  }).strict()
2054
2196
  ]);
2055
- var TimelineImageRequestSchema = z23.object({
2197
+ var TimelineImageRequestSchema = z25.object({
2056
2198
  sha256: hash,
2057
- offset: z23.number().int().min(0).max(TIMELINE_IMAGE_MAX_BYTES - 1)
2199
+ offset: z25.number().int().min(0).max(TIMELINE_IMAGE_MAX_BYTES - 1)
2058
2200
  }).strict();
2059
- var TimelineImageChunkSchema = z23.object({
2201
+ var TimelineImageChunkSchema = z25.object({
2060
2202
  sha256: hash,
2061
- offset: z23.number().int().min(0).max(TIMELINE_IMAGE_MAX_BYTES - 1),
2062
- totalBytes: z23.number().int().positive().max(TIMELINE_IMAGE_MAX_BYTES),
2063
- mimeType: z23.enum(["image/gif", "image/jpeg", "image/png", "image/webp"]),
2064
- data: z23.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),
2065
- eof: z23.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()
2066
2208
  }).strict().superRefine((chunk, context) => {
2067
2209
  const padding = chunk.data.endsWith("==") ? 2 : chunk.data.endsWith("=") ? 1 : 0;
2068
2210
  const length = chunk.data.length / 4 * 3 - padding;
@@ -2073,10 +2215,10 @@ var TimelineImageChunkSchema = z23.object({
2073
2215
  });
2074
2216
 
2075
2217
  // ../protocol/dist/workbench.js
2076
- import { z as z25 } from "zod";
2218
+ import { z as z27 } from "zod";
2077
2219
 
2078
2220
  // ../protocol/dist/schedules.js
2079
- import { z as z24 } from "zod";
2221
+ import { z as z26 } from "zod";
2080
2222
  var SCHEDULES_CAPABILITY = "session-schedules-v1";
2081
2223
  var SCHEDULE_OPERATIONS = [
2082
2224
  "schedule.snapshot",
@@ -2085,90 +2227,90 @@ var SCHEDULE_OPERATIONS = [
2085
2227
  "schedule.draft.dismiss",
2086
2228
  "schedule.resume"
2087
2229
  ];
2088
- var Id = z24.string().min(1).max(256);
2089
- var NativeId = z24.number().int().positive().max(Number.MAX_SAFE_INTEGER);
2090
- var Time = z24.iso.datetime({ offset: true });
2091
- var WorkbenchScheduleRuleSchema = z24.discriminatedUnion("kind", [
2092
- z24.object({ kind: z24.literal("once"), at: Time }).strict(),
2093
- z24.object({
2094
- kind: z24.literal("interval"),
2095
- seconds: z24.number().int().min(10).max(86400),
2096
- recurring: z24.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()
2097
2239
  }).strict(),
2098
- z24.object({
2099
- kind: z24.literal("cron"),
2100
- expression: z24.string().trim().min(9).max(256).regex(/^\S+(?: +\S+){4}$/),
2101
- timezone: z24.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_+./-]+$/)
2102
2244
  }).strict()
2103
2245
  ]);
2104
2246
  var Content = {
2105
2247
  rule: WorkbenchScheduleRuleSchema,
2106
- prompt: z24.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."),
2107
- skill: z24.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.")
2108
2250
  };
2109
- var WorkbenchScheduleProposalSchema = z24.object(Content).strict().refine((value) => value.prompt.trim().length > 0 || value.skill !== void 0, { message: "A prompt or skill is required" });
2110
- var WorkbenchScheduleDraftSchema = z24.object({
2111
- id: z24.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(),
2112
2254
  createdAt: Time,
2113
2255
  ...Content
2114
2256
  }).strict();
2115
- var WorkbenchScheduleEntrySchema = z24.object({
2257
+ var WorkbenchScheduleEntrySchema = z26.object({
2116
2258
  id: NativeId,
2117
- prompt: z24.string().max(1e5),
2118
- displayPrompt: z24.string().max(1e5).optional(),
2119
- recurring: z24.boolean(),
2259
+ prompt: z26.string().max(1e5),
2260
+ displayPrompt: z26.string().max(1e5).optional(),
2261
+ recurring: z26.boolean(),
2120
2262
  nextRunAt: Time,
2121
- intervalMs: z24.number().int().positive().optional(),
2122
- cron: z24.string().max(256).optional(),
2123
- timezone: z24.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(),
2124
2266
  at: Time.optional()
2125
2267
  }).strict();
2126
- var WorkbenchScheduleResultSchema = z24.object({
2268
+ var WorkbenchScheduleResultSchema = z26.object({
2127
2269
  id: Id,
2128
2270
  scheduleId: NativeId,
2129
2271
  triggerEventId: Id,
2130
2272
  time: Time,
2131
- prompt: z24.string().max(16e3),
2132
- status: z24.enum(["reply", "error", "merged", "pending", "unknown"]),
2133
- reply: z24.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(),
2134
2276
  replyEventId: Id.optional(),
2135
- error: z24.string().max(1024).optional()
2136
- }).strict();
2137
- var WorkbenchScheduleSnapshotSchema = z24.object({
2138
- state: z24.enum(["active", "needs-resume"]),
2139
- workingDirectory: z24.string().max(32768).optional(),
2140
- timezone: z24.string().max(128).optional(),
2141
- entries: z24.array(WorkbenchScheduleEntrySchema).max(256),
2142
- drafts: z24.array(WorkbenchScheduleDraftSchema).max(100),
2143
- results: z24.array(WorkbenchScheduleResultSchema).max(100),
2144
- historyTruncated: z24.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(),
2145
2287
  sampledAt: Time
2146
2288
  }).strict();
2147
2289
  var Submission = {
2148
- operationId: z24.uuid(),
2149
- operationCreatedAt: z24.iso.datetime(),
2290
+ operationId: z26.uuid(),
2291
+ operationCreatedAt: z26.iso.datetime(),
2150
2292
  expectedAgentRunId: Id
2151
2293
  };
2152
- var WorkbenchScheduleCreateRequestSchema = z24.object({
2294
+ var WorkbenchScheduleCreateRequestSchema = z26.object({
2153
2295
  ...Submission,
2154
2296
  ...Content,
2155
- draftId: z24.uuid().optional()
2297
+ draftId: z26.uuid().optional()
2156
2298
  }).strict().refine((value) => value.prompt.trim().length > 0 || value.skill !== void 0, { message: "A prompt or skill is required" });
2157
- var WorkbenchScheduleCreateResultSchema = z24.object({
2299
+ var WorkbenchScheduleCreateResultSchema = z26.object({
2158
2300
  snapshot: WorkbenchScheduleSnapshotSchema,
2159
- verified: z24.boolean()
2301
+ verified: z26.boolean()
2160
2302
  }).strict();
2161
- var WorkbenchScheduleDeleteRequestSchema = z24.object({
2303
+ var WorkbenchScheduleDeleteRequestSchema = z26.object({
2162
2304
  ...Submission,
2163
2305
  id: NativeId
2164
2306
  }).strict();
2165
- var WorkbenchScheduleDeleteResultSchema = z24.object({
2307
+ var WorkbenchScheduleDeleteResultSchema = z26.object({
2166
2308
  snapshot: WorkbenchScheduleSnapshotSchema,
2167
- removed: z24.boolean()
2309
+ removed: z26.boolean()
2168
2310
  }).strict();
2169
- var WorkbenchScheduleDraftDismissRequestSchema = z24.object({
2311
+ var WorkbenchScheduleDraftDismissRequestSchema = z26.object({
2170
2312
  ...Submission,
2171
- draftId: z24.uuid()
2313
+ draftId: z26.uuid()
2172
2314
  }).strict();
2173
2315
  var ScheduleAndroidSchemas = {
2174
2316
  WorkbenchScheduleRule: WorkbenchScheduleRuleSchema,
@@ -2185,10 +2327,10 @@ var ScheduleAndroidSchemas = {
2185
2327
  };
2186
2328
 
2187
2329
  // ../protocol/dist/workbench.js
2188
- var Id2 = z25.string().trim().min(1).max(256);
2189
- var Text = z25.string().max(1e5);
2190
- var Count = z25.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER);
2191
- var Failure = z25.object({ code: Id2, message: z25.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();
2192
2334
  var WORKBENCH_VERSION = 1;
2193
2335
  var RESEARCH_CHAT_CAPABILITY = "research-chat-v1";
2194
2336
  var WORKBENCH_OPERATIONS = [
@@ -2210,104 +2352,104 @@ var WORKBENCH_OPERATIONS = [
2210
2352
  ];
2211
2353
  var workbenchCapability = (operation) => `${operation}.v${WORKBENCH_VERSION}`;
2212
2354
  var Submission2 = {
2213
- operationId: z25.uuid(),
2214
- operationCreatedAt: z25.iso.datetime(),
2355
+ operationId: z27.uuid(),
2356
+ operationCreatedAt: z27.iso.datetime(),
2215
2357
  expectedAgentRunId: Id2
2216
2358
  };
2217
- var WorkbenchOperationGetSchema = z25.object({ operationId: z25.uuid() }).strict();
2218
- var WorkbenchOperationStatusSchema = z25.object({
2219
- operationId: z25.uuid(),
2220
- operation: z25.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),
2221
2363
  agentRunId: Id2,
2222
- state: z25.enum(["running", "succeeded", "failed", "uncertain", "result-expired"]),
2223
- result: z25.record(z25.string(), z25.json()).optional(),
2364
+ state: z27.enum(["running", "succeeded", "failed", "uncertain", "result-expired"]),
2365
+ result: z27.record(z27.string(), z27.json()).optional(),
2224
2366
  error: Failure.optional()
2225
2367
  }).strict().superRefine((value, context) => {
2226
2368
  if (value.state === "succeeded" !== (value.result !== void 0) || (value.state === "failed" || value.state === "uncertain") !== (value.error !== void 0)) {
2227
2369
  context.addIssue({ code: "custom", message: "Invalid operation state payload" });
2228
2370
  }
2229
2371
  });
2230
- var WorkbenchAskRequestSchema = z25.object({
2372
+ var WorkbenchAskRequestSchema = z27.object({
2231
2373
  ...Submission2,
2232
- question: z25.string().trim().min(1).max(16e3)
2374
+ question: z27.string().trim().min(1).max(16e3)
2233
2375
  }).strict();
2234
- var WorkbenchAskResultSchema = z25.object({ answer: Text }).strict();
2235
- var WorkbenchEmptyRequestSchema = z25.object({}).strict();
2236
- var WorkbenchSubmitRequestSchema = z25.object(Submission2).strict();
2237
- var WorkbenchResearchCreateRequestSchema = z25.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({
2238
2380
  ...Submission2,
2239
- title: z25.string().trim().min(1).max(120),
2240
- question: z25.string().trim().min(1).max(16e3),
2381
+ title: z27.string().trim().min(1).max(120),
2382
+ question: z27.string().trim().min(1).max(16e3),
2241
2383
  sourceItemId: Id2.optional(),
2242
- deferInitialPrompt: z25.literal(true).optional()
2384
+ deferInitialPrompt: z27.literal(true).optional()
2243
2385
  }).strict();
2244
- var WorkbenchResearchThreadSchema = z25.object({
2386
+ var WorkbenchResearchThreadSchema = z27.object({
2245
2387
  sessionId: Id2,
2246
2388
  parentSessionId: Id2,
2247
- title: z25.string().min(1).max(120),
2248
- createdAt: z25.iso.datetime(),
2389
+ title: z27.string().min(1).max(120),
2390
+ createdAt: z27.iso.datetime(),
2249
2391
  contextAnchor: Id2.optional(),
2250
- contextTruncated: z25.boolean(),
2251
- detached: z25.boolean(),
2252
- state: z25.enum(["creating", "ready", "failed"])
2392
+ contextTruncated: z27.boolean(),
2393
+ detached: z27.boolean(),
2394
+ state: z27.enum(["creating", "ready", "failed"])
2253
2395
  }).strict();
2254
- var WorkbenchResearchCreateResultSchema = z25.object({
2396
+ var WorkbenchResearchCreateResultSchema = z27.object({
2255
2397
  thread: WorkbenchResearchThreadSchema
2256
2398
  }).strict();
2257
- var WorkbenchResearchListResultSchema = z25.object({
2258
- threads: z25.array(WorkbenchResearchThreadSchema).max(100)
2399
+ var WorkbenchResearchListResultSchema = z27.object({
2400
+ threads: z27.array(WorkbenchResearchThreadSchema).max(100)
2259
2401
  }).strict();
2260
- var WorkbenchResearchTimelineRequestSchema = z25.object({
2402
+ var WorkbenchResearchTimelineRequestSchema = z27.object({
2261
2403
  cursor: Id2.optional()
2262
2404
  }).strict();
2263
- var WorkbenchResearchSendRequestSchema = z25.object({
2405
+ var WorkbenchResearchSendRequestSchema = z27.object({
2264
2406
  ...Submission2,
2265
- prompt: z25.string().trim().min(1).max(16e3)
2266
- }).strict();
2267
- var WorkbenchResearchSendResultSchema = z25.object({ messageId: Id2 }).strict();
2268
- var WorkbenchCompletedResultSchema = z25.object({ completed: z25.boolean() }).strict();
2269
- var WorkbenchCommandSchema = z25.object({
2270
- name: z25.string().min(1).max(260),
2271
- description: z25.string().max(4096),
2272
- argumentHint: z25.string().max(1024).optional(),
2273
- kind: z25.enum(["builtin", "skill", "client"]),
2274
- allowDuringExecution: z25.boolean(),
2275
- supported: z25.boolean(),
2276
- reason: z25.string().max(1024).optional()
2277
- }).strict();
2278
- var WorkbenchCommandListResultSchema = z25.object({
2279
- commands: z25.array(WorkbenchCommandSchema).max(512)
2280
- }).strict();
2281
- var WorkbenchCommandInvokeRequestSchema = z25.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({
2282
2424
  ...Submission2,
2283
- name: z25.string().trim().min(1).max(260),
2284
- input: z25.string().max(16e3)
2285
- }).strict();
2286
- var WorkbenchCommandChoiceSchema = z25.object({
2287
- name: z25.string().min(1).max(260),
2288
- label: z25.string().min(1).max(1024),
2289
- input: z25.string().max(16e3)
2290
- }).strict();
2291
- var WorkbenchCommandResultSchema = z25.discriminatedUnion("kind", [
2292
- z25.object({ kind: z25.literal("text"), text: Text }).strict(),
2293
- z25.object({ kind: z25.literal("completed") }).strict(),
2294
- z25.object({ kind: z25.literal("sent"), messageId: Id2 }).strict(),
2295
- z25.object({
2296
- kind: z25.literal("select-subcommand"),
2297
- choices: z25.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)
2298
2440
  }).strict()
2299
2441
  ]);
2300
- var WorkbenchQueueItemSchema = z25.object({
2442
+ var WorkbenchQueueItemSchema = z27.object({
2301
2443
  id: Id2,
2302
- kind: z25.string().min(1).max(64),
2303
- texts: z25.array(z25.string().max(1e5)).min(1).max(100),
2304
- actions: z25.array(z25.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)
2305
2447
  }).strict();
2306
- var WorkbenchQueueSnapshotSchema = z25.object({
2448
+ var WorkbenchQueueSnapshotSchema = z27.object({
2307
2449
  generation: Id2,
2308
2450
  revision: Id2,
2309
- items: z25.array(WorkbenchQueueItemSchema).max(512),
2310
- steeringMessages: z25.array(z25.string().max(1e5)).max(512)
2451
+ items: z27.array(WorkbenchQueueItemSchema).max(512),
2452
+ steeringMessages: z27.array(z27.string().max(1e5)).max(512)
2311
2453
  }).strict();
2312
2454
  var QueueMutation = {
2313
2455
  ...Submission2,
@@ -2315,48 +2457,48 @@ var QueueMutation = {
2315
2457
  revision: Id2,
2316
2458
  id: Id2
2317
2459
  };
2318
- var WorkbenchQueueMutationRequestSchema = z25.discriminatedUnion("action", [
2319
- z25.object({ ...QueueMutation, action: z25.literal("edit"), prompt: z25.string().trim().min(1).max(1e5) }).strict(),
2320
- z25.object({ ...QueueMutation, action: z25.literal("remove") }).strict(),
2321
- z25.object({ ...QueueMutation, action: z25.literal("move"), toPosition: z25.number().int().min(0).max(511) }).strict(),
2322
- z25.object({ ...QueueMutation, action: z25.literal("send-now") }).strict()
2323
- ]);
2324
- var WorkbenchQueueMutationResultSchema = z25.object({
2325
- changed: z25.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(),
2326
2468
  snapshot: WorkbenchQueueSnapshotSchema
2327
2469
  }).strict();
2328
- var WorkbenchTokenMetricSchema = z25.object({
2329
- kind: z25.string().min(1).max(128),
2470
+ var WorkbenchTokenMetricSchema = z27.object({
2471
+ kind: z27.string().min(1).max(128),
2330
2472
  count: Count
2331
2473
  }).strict();
2332
- var WorkbenchModelUsageSchema = z25.object({
2474
+ var WorkbenchModelUsageSchema = z27.object({
2333
2475
  model: Id2,
2334
2476
  requests: Count,
2335
- premiumRequestCost: z25.number().finite().nonnegative(),
2336
- tokens: z25.array(WorkbenchTokenMetricSchema).max(32)
2477
+ premiumRequestCost: z27.number().finite().nonnegative(),
2478
+ tokens: z27.array(WorkbenchTokenMetricSchema).max(32)
2337
2479
  }).strict();
2338
- var WorkbenchContextSchema = z25.object({
2480
+ var WorkbenchContextSchema = z27.object({
2339
2481
  currentTokens: Count,
2340
2482
  tokenLimit: Count,
2341
2483
  systemTokens: Count.optional(),
2342
2484
  conversationTokens: Count.optional(),
2343
2485
  toolTokens: Count.optional()
2344
2486
  }).strict();
2345
- var WorkbenchInsightsSchema = z25.object({
2346
- sampledAt: z25.iso.datetime(),
2487
+ var WorkbenchInsightsSchema = z27.object({
2488
+ sampledAt: z27.iso.datetime(),
2347
2489
  generation: Id2,
2348
2490
  model: Id2.optional(),
2349
2491
  totalUserRequests: Count,
2350
- premiumRequestCost: z25.number().finite().nonnegative(),
2351
- nanoAiu: z25.string().regex(/^\d+$/).max(40).optional(),
2352
- tokens: z25.array(WorkbenchTokenMetricSchema).max(32),
2353
- models: z25.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),
2354
2496
  context: WorkbenchContextSchema.optional(),
2355
- canCompact: z25.boolean(),
2356
- compactUnavailableReason: z25.string().max(1024).optional()
2497
+ canCompact: z27.boolean(),
2498
+ compactUnavailableReason: z27.string().max(1024).optional()
2357
2499
  }).strict();
2358
- var WorkbenchCompactResultSchema = z25.object({
2359
- success: z25.boolean(),
2500
+ var WorkbenchCompactResultSchema = z27.object({
2501
+ success: z27.boolean(),
2360
2502
  tokensRemoved: Count,
2361
2503
  messagesRemoved: Count
2362
2504
  }).strict();
@@ -2392,15 +2534,27 @@ var WorkbenchAndroidSchemas = {
2392
2534
 
2393
2535
  // ../protocol/dist/codegen/android-schemas.js
2394
2536
  var AndroidProtocolSchemas = {
2537
+ TimelineImageBlobRequest: TimelineImageBlobRequestSchema,
2538
+ TimelineImageBlobResult: TimelineImageBlobResultSchema,
2539
+ SessionImageUploadRequest: SessionImageUploadRequestSchema,
2540
+ SessionImageScope: SessionImageScopeSchema,
2541
+ SessionImageUploadResult: SessionImageUploadResultSchema,
2542
+ SessionImageCommitResult: SessionImageCommitResultSchema,
2543
+ SessionImageDownloadResult: SessionImageDownloadResultSchema,
2395
2544
  ...WorkbenchAndroidSchemas,
2396
2545
  ...ScheduleAndroidSchemas,
2397
2546
  SessionCommunication: SessionCommunicationSchema,
2547
+ SessionGitDiffData: SessionGitDiffDataSchema,
2548
+ SessionGitDiffEntry: SessionGitDiffEntrySchema,
2549
+ SessionGitDiffResultData: SessionGitDiffResultDataSchema,
2550
+ SessionGitDiffGzipResultData: SessionGitDiffGzipResultDataSchema,
2398
2551
  SessionRenameData: SessionRenameDataSchema,
2399
2552
  SessionRenameResultData: SessionRenameResultDataSchema,
2400
2553
  SessionDirectoryListData: SessionDirectoryListDataSchema,
2401
2554
  SessionDirectoryListResultData: SessionDirectoryListResultDataSchema,
2402
2555
  SessionFileReadData: SessionFileReadDataSchema,
2403
2556
  SessionFileReadResultData: SessionFileReadResultDataSchema,
2557
+ SessionFileReadV2ResultData: SessionFileReadV2ResultDataSchema,
2404
2558
  SessionResourceReadData: SessionResourceReadDataSchema,
2405
2559
  SessionResourceReadResultData: SessionResourceReadResultDataSchema,
2406
2560
  SessionDirectoryListRequest: SessionDirectoryListRequestSchema,
@@ -2525,19 +2679,33 @@ export {
2525
2679
  SESSION_DIRECTORY_MAX_RESPONSE_BYTES,
2526
2680
  SESSION_FILE_READ_OPERATION,
2527
2681
  SESSION_FILE_READ_VERSION,
2682
+ SESSION_FILE_READ_V2_VERSION,
2528
2683
  SESSION_FILE_MAX_ORIGINAL_BYTES,
2684
+ SESSION_FILE_V2_MAX_ORIGINAL_BYTES,
2529
2685
  SESSION_FILE_GZIP_THRESHOLD_BYTES,
2530
2686
  SESSION_FILE_MAX_IMAGE_BYTES,
2531
2687
  SESSION_FILE_MAX_IMAGE_EDGE,
2532
2688
  SESSION_FILE_MAX_IMAGE_PIXELS,
2689
+ SESSION_FILE_MAX_VIDEO_PIXELS,
2533
2690
  isSafeSessionDirectoryPath,
2534
2691
  SessionDirectoryListDataSchema,
2535
2692
  SessionDirectoryListResultDataSchema,
2536
2693
  SessionFileReadDataSchema,
2537
2694
  SessionFileReadResultDataSchema,
2695
+ SessionFileReadV2ResultDataSchema,
2538
2696
  SessionGitProjectSchema,
2539
2697
  SessionProjectIdentityRequestDataSchema,
2540
2698
  SessionProjectIdentityResultDataSchema,
2699
+ SESSION_GIT_DIFF_OPERATION,
2700
+ SESSION_GIT_DIFF_VERSION,
2701
+ SESSION_GIT_DIFF_GZIP_VERSION,
2702
+ SESSION_GIT_DIFF_GZIP_MIN_BYTES,
2703
+ SESSION_GIT_DIFF_MAX_FILES,
2704
+ SESSION_GIT_DIFF_MAX_PATCH_BYTES,
2705
+ SESSION_GIT_DIFF_MAX_RESPONSE_BYTES,
2706
+ SessionGitDiffDataSchema,
2707
+ SessionGitDiffResultDataSchema,
2708
+ SessionGitDiffGzipResultDataSchema,
2541
2709
  SESSION_RESOURCE_READ_OPERATION,
2542
2710
  SESSION_RESOURCE_READ_VERSION,
2543
2711
  SESSION_RESOURCE_MAX_ORIGINAL_BYTES,
@@ -2545,6 +2713,17 @@ export {
2545
2713
  SESSION_RESOURCE_MAX_IMAGE_PIXELS,
2546
2714
  SessionResourceReadDataSchema,
2547
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,
2548
2727
  SESSION_RENAME_OPERATION,
2549
2728
  SESSION_RENAME_VERSION,
2550
2729
  SESSION_NAME_MAX_LENGTH,
@@ -2623,6 +2802,7 @@ export {
2623
2802
  TIMELINE_IMAGE_CHUNK_BYTES,
2624
2803
  TIMELINE_IMAGE_MAX_BYTES,
2625
2804
  TimelineSyncRequestSchema,
2805
+ TimelineResyncReasonSchema,
2626
2806
  TimelineSyncResponseSchema,
2627
2807
  TimelineImageRequestSchema,
2628
2808
  TimelineImageChunkSchema,