@agentknight/sdk 0.9.43 → 0.9.45

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.
@@ -1703,34 +1703,53 @@ var A2aRelayResponseSchema = z16.object({
1703
1703
  body: z16.string().max(A2A_BODY_MAX_LENGTH)
1704
1704
  }).strict();
1705
1705
 
1706
- // ../protocol/dist/sessions/session-communication.js
1706
+ // ../protocol/dist/transport/browser-open-url.js
1707
1707
  import { z as z17 } from "zod";
1708
+ var BROWSER_OPEN_URL_MAX_LENGTH = 8192;
1709
+ var BrowserOpenUrlParamsSchema = z17.strictObject({
1710
+ url: z17.string().min(1).max(BROWSER_OPEN_URL_MAX_LENGTH).refine((value) => {
1711
+ if (!/^https?:\/\//i.test(value) || /[\s\p{Cc}\\]/u.test(value) || /%(?![0-9a-f]{2})/i.test(value))
1712
+ return false;
1713
+ const authority = value.split(/[/?#]/)[2];
1714
+ if (!authority || /[@%]|[^\x21-\x7e]/.test(authority))
1715
+ return false;
1716
+ try {
1717
+ return new URL(value).hostname.length > 0;
1718
+ } catch {
1719
+ return false;
1720
+ }
1721
+ }, "Expected an absolute HTTP(S) URL without credentials or whitespace")
1722
+ });
1723
+ var BrowserOpenUrlResultSchema = z17.strictObject({ opened: z17.literal(true) });
1724
+
1725
+ // ../protocol/dist/sessions/session-communication.js
1726
+ import { z as z18 } from "zod";
1708
1727
  var SESSION_COMMUNICATION_CAPABILITY = "session.communication.v1";
1709
- var SessionCommunicationIdSchema = z17.string().min(1).max(256).refine((value) => value === value.trim(), "Expected an unpadded identity");
1728
+ var SessionCommunicationIdSchema = z18.string().min(1).max(256).refine((value) => value === value.trim(), "Expected an unpadded identity");
1710
1729
  var SessionCommunicationIdentityShape = {
1711
1730
  requestId: SessionCommunicationIdSchema,
1712
1731
  machineId: SessionCommunicationIdSchema,
1713
1732
  sessionId: SessionCommunicationIdSchema,
1714
- operation: z17.string().min(1).max(128).regex(/^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$/u),
1715
- version: z17.number().int().positive().max(2147483647)
1733
+ operation: z18.string().min(1).max(128).regex(/^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$/u),
1734
+ version: z18.number().int().positive().max(2147483647)
1716
1735
  };
1717
- var SessionCommunicationDataSchema = z17.record(z17.string(), z17.json());
1718
- var SessionCommunicationRequestSchema = z17.object({
1736
+ var SessionCommunicationDataSchema = z18.record(z18.string(), z18.json());
1737
+ var SessionCommunicationRequestSchema = z18.object({
1719
1738
  ...SessionCommunicationIdentityShape,
1720
- kind: z17.literal("request"),
1739
+ kind: z18.literal("request"),
1721
1740
  data: SessionCommunicationDataSchema
1722
1741
  }).strict();
1723
- var SessionCommunicationResponseSchema = z17.object({
1742
+ var SessionCommunicationResponseSchema = z18.object({
1724
1743
  ...SessionCommunicationIdentityShape,
1725
- kind: z17.literal("response"),
1744
+ kind: z18.literal("response"),
1726
1745
  data: SessionCommunicationDataSchema
1727
1746
  }).strict();
1728
- var SessionCommunicationErrorSchema = z17.object({
1747
+ var SessionCommunicationErrorSchema = z18.object({
1729
1748
  ...SessionCommunicationIdentityShape,
1730
- kind: z17.literal("error"),
1749
+ kind: z18.literal("error"),
1731
1750
  error: ProtocolFailureSchema
1732
1751
  }).strict();
1733
- var SessionCommunicationSchema = z17.discriminatedUnion("kind", [
1752
+ var SessionCommunicationSchema = z18.discriminatedUnion("kind", [
1734
1753
  SessionCommunicationRequestSchema,
1735
1754
  SessionCommunicationResponseSchema,
1736
1755
  SessionCommunicationErrorSchema
@@ -1744,7 +1763,7 @@ function sessionCommunicationError(request, error) {
1744
1763
  }
1745
1764
 
1746
1765
  // ../protocol/dist/sessions/session-workspace.js
1747
- import { z as z18 } from "zod";
1766
+ import { z as z19 } from "zod";
1748
1767
  var SESSION_PROJECT_IDENTITY_OPERATION = "session.project.identity";
1749
1768
  var SESSION_PROJECT_IDENTITY_VERSION = 1;
1750
1769
  var SESSION_PROJECT_IDENTITY_MAX_PATH_LENGTH = 32768;
@@ -1796,47 +1815,47 @@ function isSafeSessionDirectoryPath(path) {
1796
1815
  const segments = path.split("/");
1797
1816
  return segments.length <= SESSION_DIRECTORY_MAX_DEPTH && segments.every((segment) => segment.length > 0 && segment.length <= 255 && segment !== "." && segment !== ".." && !/[\\:<>"|?*\u0000-\u001f\u007f]/u.test(segment) && !/[. ]$/u.test(segment) && !/~[0-9]/u.test(segment) && !/^(?:con|prn|aux|nul|com[0-9¹²³]|lpt[0-9¹²³])(?:[ .]|$)/iu.test(segment) && !/^(?:conin\$|conout\$)$/iu.test(segment));
1798
1817
  }
1799
- var SessionDirectoryListRequestSchema = z18.object({
1818
+ var SessionDirectoryListRequestSchema = z19.object({
1800
1819
  requestId: IdSchema,
1801
1820
  machineId: IdSchema,
1802
1821
  sessionId: IdSchema,
1803
- path: z18.string().max(SESSION_DIRECTORY_MAX_PATH_LENGTH)
1822
+ path: z19.string().max(SESSION_DIRECTORY_MAX_PATH_LENGTH)
1804
1823
  }).strict();
1805
- var SessionDirectoryEntrySchema = z18.object({
1806
- name: z18.string().min(1).max(255),
1807
- kind: z18.enum(["directory", "file", "blocked"])
1824
+ var SessionDirectoryEntrySchema = z19.object({
1825
+ name: z19.string().min(1).max(255),
1826
+ kind: z19.enum(["directory", "file", "blocked"])
1808
1827
  }).strict();
1809
1828
  var SessionDirectoryListDataSchema = SessionDirectoryListRequestSchema.pick({ path: true });
1810
- var SessionDirectoryListResultDataSchema = z18.object({
1811
- path: z18.string().max(SESSION_DIRECTORY_MAX_PATH_LENGTH),
1812
- rootRevision: z18.string().min(1).max(128),
1813
- entries: z18.array(SessionDirectoryEntrySchema).max(SESSION_DIRECTORY_MAX_ENTRIES)
1829
+ var SessionDirectoryListResultDataSchema = z19.object({
1830
+ path: z19.string().max(SESSION_DIRECTORY_MAX_PATH_LENGTH),
1831
+ rootRevision: z19.string().min(1).max(128),
1832
+ entries: z19.array(SessionDirectoryEntrySchema).max(SESSION_DIRECTORY_MAX_ENTRIES)
1814
1833
  }).strict();
1815
1834
  var SessionDirectoryListResponseSchema = SessionDirectoryListRequestSchema.extend({
1816
- rootRevision: z18.string().min(1).max(128).optional(),
1817
- entries: z18.array(SessionDirectoryEntrySchema).max(SESSION_DIRECTORY_MAX_ENTRIES).optional(),
1835
+ rootRevision: z19.string().min(1).max(128).optional(),
1836
+ entries: z19.array(SessionDirectoryEntrySchema).max(SESSION_DIRECTORY_MAX_ENTRIES).optional(),
1818
1837
  error: ProtocolFailureSchema.optional()
1819
1838
  }).superRefine((response, context) => {
1820
1839
  if (response.error === void 0 ? response.entries === void 0 || response.rootRevision === void 0 : response.entries !== void 0 || response.rootRevision !== void 0) {
1821
1840
  context.addIssue({ code: "custom", message: "Expected directory success or failure" });
1822
1841
  }
1823
1842
  });
1824
- var SessionFileReadDataSchema = z18.object({
1825
- path: z18.string().min(1).max(SESSION_DIRECTORY_MAX_PATH_LENGTH).refine(isSafeSessionDirectoryPath),
1826
- rootRevision: z18.string().regex(/^[A-Za-z0-9_-]{43}$/u)
1843
+ var SessionFileReadDataSchema = z19.object({
1844
+ path: z19.string().min(1).max(SESSION_DIRECTORY_MAX_PATH_LENGTH).refine(isSafeSessionDirectoryPath),
1845
+ rootRevision: z19.string().regex(/^[A-Za-z0-9_-]{43}$/u)
1827
1846
  }).strict();
1828
1847
  function fileResultSchema(mediaTypes, extended) {
1829
1848
  const maxOriginal = extended ? SESSION_FILE_V2_MAX_ORIGINAL_BYTES : SESSION_FILE_MAX_ORIGINAL_BYTES;
1830
1849
  const maxTransfer = extended ? SESSION_FILE_V2_MAX_TRANSFER_BYTES : SESSION_FILE_MAX_TRANSFER_BYTES;
1831
- return z18.object({
1850
+ return z19.object({
1832
1851
  path: SessionFileReadDataSchema.shape.path,
1833
1852
  rootRevision: SessionFileReadDataSchema.shape.rootRevision,
1834
- mediaType: z18.enum(mediaTypes),
1835
- originalByteLength: z18.number().int().min(0).max(maxOriginal),
1853
+ mediaType: z19.enum(mediaTypes),
1854
+ originalByteLength: z19.number().int().min(0).max(maxOriginal),
1836
1855
  // Canonical length after decompression, not the length of the transport bytes.
1837
- byteLength: z18.number().int().min(0).max(maxOriginal),
1838
- encoding: z18.enum(["identity", "gzip"]),
1839
- data: z18.string().max(extended ? SESSION_FILE_V2_MAX_BASE64_LENGTH : SESSION_FILE_MAX_BASE64_LENGTH)
1856
+ byteLength: z19.number().int().min(0).max(maxOriginal),
1857
+ encoding: z19.enum(["identity", "gzip"]),
1858
+ data: z19.string().max(extended ? SESSION_FILE_V2_MAX_BASE64_LENGTH : SESSION_FILE_MAX_BASE64_LENGTH)
1840
1859
  }).strict().superRefine((result, context) => {
1841
1860
  const invalid = () => context.addIssue({ code: "custom", message: "Invalid file content" });
1842
1861
  if (result.encoding === "gzip" !== result.originalByteLength >= SESSION_FILE_GZIP_THRESHOLD_BYTES)
@@ -1856,22 +1875,23 @@ var SessionFileReadResultDataSchema = fileResultSchema(SESSION_FILE_MEDIA_TYPES,
1856
1875
  var SessionFileReadV2ResultDataSchema = fileResultSchema(SESSION_FILE_V2_MEDIA_TYPES, true);
1857
1876
  var SessionFileDownloadDataSchema = SessionFileReadDataSchema;
1858
1877
  var SessionFileDownloadResultDataSchema = fileResultSchema(["application/octet-stream"], true);
1859
- var SessionGitProjectSchema = z18.object({
1860
- localRepositoryKey: z18.string().length(43).regex(/^[A-Za-z0-9_-]{43}$/),
1861
- worktreeRoot: z18.string().min(1).max(SESSION_PROJECT_IDENTITY_MAX_PATH_LENGTH),
1862
- mainWorktreeRoot: z18.string().min(1).max(SESSION_PROJECT_IDENTITY_MAX_PATH_LENGTH).optional(),
1863
- gitRemoteUrl: z18.string().max(SESSION_PROJECT_IDENTITY_MAX_PATH_LENGTH).optional()
1864
- }).strict();
1865
- var SessionProjectIdentityRequestDataSchema = z18.object({}).strict();
1866
- var SessionProjectIdentityResultDataSchema = z18.object({
1878
+ var SessionGitProjectSchema = z19.object({
1879
+ localRepositoryKey: z19.string().length(43).regex(/^[A-Za-z0-9_-]{43}$/),
1880
+ worktreeRoot: z19.string().min(1).max(SESSION_PROJECT_IDENTITY_MAX_PATH_LENGTH),
1881
+ mainWorktreeRoot: z19.string().min(1).max(SESSION_PROJECT_IDENTITY_MAX_PATH_LENGTH).optional(),
1882
+ gitRemoteUrl: z19.string().max(SESSION_PROJECT_IDENTITY_MAX_PATH_LENGTH).optional()
1883
+ }).strict();
1884
+ var SessionProjectIdentityRequestDataSchema = z19.object({}).strict();
1885
+ var SessionProjectIdentityResultDataSchema = z19.object({
1867
1886
  project: SessionGitProjectSchema.optional()
1868
1887
  }).strict();
1869
1888
 
1870
1889
  // ../protocol/dist/sessions/session-git-diff.js
1871
- import { z as z19 } from "zod";
1890
+ import { z as z20 } from "zod";
1872
1891
  var SESSION_GIT_DIFF_OPERATION = "session.git.diff";
1873
1892
  var SESSION_GIT_DIFF_VERSION = 1;
1874
1893
  var SESSION_GIT_DIFF_GZIP_VERSION = 2;
1894
+ var SESSION_GIT_DIFF_PARTIAL_VERSION = 3;
1875
1895
  var SESSION_GIT_DIFF_GZIP_MIN_BYTES = 2 * 1024;
1876
1896
  var SESSION_GIT_DIFF_MAX_FILES = 500;
1877
1897
  var SESSION_GIT_DIFF_MAX_PATCH_BYTES = 128 * 1024;
@@ -1879,24 +1899,24 @@ var SESSION_GIT_DIFF_MAX_RESPONSE_BYTES = 512 * 1024;
1879
1899
  var SESSION_GIT_DIFF_MAX_TRANSFER_BYTES = SESSION_GIT_DIFF_MAX_RESPONSE_BYTES + 1024;
1880
1900
  var SESSION_GIT_DIFF_MAX_BASE64_LENGTH = Math.ceil(SESSION_GIT_DIFF_MAX_TRANSFER_BYTES / 3) * 4;
1881
1901
  var SESSION_GIT_DIFF_MAX_GZIP_RESPONSE_BYTES = SESSION_GIT_DIFF_MAX_BASE64_LENGTH + 1024;
1882
- var commitSchema = z19.string().regex(/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/u);
1883
- var SessionGitDiffDataSchema = z19.object({
1902
+ var commitSchema = z20.string().regex(/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/u);
1903
+ var SessionGitDiffDataSchema = z20.object({
1884
1904
  rootRevision: SessionFileReadDataSchema.shape.rootRevision,
1885
1905
  path: SessionFileReadDataSchema.shape.path.optional(),
1886
1906
  baseCommit: commitSchema.optional()
1887
1907
  }).strict().refine((value) => value.path === void 0 === (value.baseCommit === void 0), "A file diff must identify its listed base commit");
1888
- var SessionGitDiffEntrySchema = z19.object({
1908
+ var SessionGitDiffEntrySchema = z20.object({
1889
1909
  path: SessionFileReadDataSchema.shape.path,
1890
- status: z19.enum(["added", "modified", "deleted", "untracked"])
1910
+ status: z20.enum(["added", "modified", "deleted", "untracked"])
1891
1911
  }).strict();
1892
- var SessionGitDiffResultDataSchema = z19.object({
1912
+ var SessionGitDiffResultDataSchema = z20.object({
1893
1913
  rootRevision: SessionFileReadDataSchema.shape.rootRevision,
1894
- baseRef: z19.enum(["origin/main", "main"]),
1914
+ baseRef: z20.enum(["origin/main", "main"]),
1895
1915
  baseCommit: commitSchema,
1896
- files: z19.array(SessionGitDiffEntrySchema).max(SESSION_GIT_DIFF_MAX_FILES).optional(),
1916
+ files: z20.array(SessionGitDiffEntrySchema).max(SESSION_GIT_DIFF_MAX_FILES).optional(),
1897
1917
  path: SessionFileReadDataSchema.shape.path.optional(),
1898
- patch: z19.string().max(SESSION_GIT_DIFF_MAX_PATCH_BYTES).optional(),
1899
- binary: z19.boolean().optional()
1918
+ patch: z20.string().max(SESSION_GIT_DIFF_MAX_PATCH_BYTES).optional(),
1919
+ binary: z20.boolean().optional()
1900
1920
  }).strict().superRefine((value, context) => {
1901
1921
  const encoder = new TextEncoder();
1902
1922
  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) {
@@ -1910,10 +1930,26 @@ var SessionGitDiffResultDataSchema = z19.object({
1910
1930
  context.addIssue({ code: "custom", message: "Expected a text patch or an explicit binary change" });
1911
1931
  }
1912
1932
  });
1913
- var SessionGitDiffGzipResultDataSchema = z19.object({
1914
- encoding: z19.literal("gzip"),
1915
- byteLength: z19.number().int().min(1).max(SESSION_GIT_DIFF_MAX_RESPONSE_BYTES),
1916
- data: z19.string().max(SESSION_GIT_DIFF_MAX_BASE64_LENGTH).regex(/^[A-Za-z0-9+/]*={0,2}$/u)
1933
+ var SessionGitDiffFileErrorSchema = z20.object({
1934
+ code: z20.enum(["DIFF_BLOCKED", "DIFF_FILE_UNAVAILABLE"]),
1935
+ message: z20.string().min(1).max(512)
1936
+ }).strict();
1937
+ var SessionGitDiffPartialEntrySchema = SessionGitDiffEntrySchema.extend({
1938
+ // Error paths are display-only: they must never be used for file requests.
1939
+ path: z20.string().min(1).max(32768).refine((value) => !value.includes("\0")),
1940
+ error: SessionGitDiffFileErrorSchema.optional()
1941
+ }).superRefine((value, context) => {
1942
+ if (value.error === void 0 && !SessionGitDiffEntrySchema.shape.path.safeParse(value.path).success) {
1943
+ context.addIssue({ code: "custom", message: "A readable diff entry must have a safe path" });
1944
+ }
1945
+ });
1946
+ var SessionGitDiffPartialResultDataSchema = SessionGitDiffResultDataSchema.safeExtend({
1947
+ files: z20.array(SessionGitDiffPartialEntrySchema).max(SESSION_GIT_DIFF_MAX_FILES).optional()
1948
+ });
1949
+ var SessionGitDiffGzipResultDataSchema = z20.object({
1950
+ encoding: z20.literal("gzip"),
1951
+ byteLength: z20.number().int().min(1).max(SESSION_GIT_DIFF_MAX_RESPONSE_BYTES),
1952
+ data: z20.string().max(SESSION_GIT_DIFF_MAX_BASE64_LENGTH).regex(/^[A-Za-z0-9+/]*={0,2}$/u)
1917
1953
  }).strict().superRefine((value, context) => {
1918
1954
  const padding = value.data.endsWith("==") ? 2 : value.data.endsWith("=") ? 1 : 0;
1919
1955
  const bytes = value.data.length / 4 * 3 - padding;
@@ -1923,13 +1959,13 @@ var SessionGitDiffGzipResultDataSchema = z19.object({
1923
1959
  context.addIssue({ code: "custom", message: "Invalid gzip transfer" });
1924
1960
  }
1925
1961
  });
1926
- var SessionGitDiffV2ResultDataSchema = z19.union([
1962
+ var SessionGitDiffV2ResultDataSchema = z20.union([
1927
1963
  SessionGitDiffResultDataSchema,
1928
1964
  SessionGitDiffGzipResultDataSchema
1929
1965
  ]);
1930
1966
 
1931
1967
  // ../protocol/dist/sessions/session-resource.js
1932
- import { z as z20 } from "zod";
1968
+ import { z as z21 } from "zod";
1933
1969
  var SESSION_RESOURCE_READ_OPERATION = "session.resource.read";
1934
1970
  var SESSION_RESOURCE_READ_VERSION = 1;
1935
1971
  var SESSION_RESOURCE_MAX_ORIGINAL_BYTES = 499999;
@@ -1945,18 +1981,18 @@ var SESSION_RESOURCE_MEDIA_TYPES = [
1945
1981
  "text/css",
1946
1982
  "text/javascript"
1947
1983
  ];
1948
- var SessionResourceReadDataSchema = z20.object({
1949
- path: z20.string().min(1).max(SESSION_DIRECTORY_MAX_PATH_LENGTH).refine(isSafeSessionDirectoryPath),
1950
- rootRevision: z20.string().regex(/^[A-Za-z0-9_-]{43}$/u)
1984
+ var SessionResourceReadDataSchema = z21.object({
1985
+ path: z21.string().min(1).max(SESSION_DIRECTORY_MAX_PATH_LENGTH).refine(isSafeSessionDirectoryPath),
1986
+ rootRevision: z21.string().regex(/^[A-Za-z0-9_-]{43}$/u)
1951
1987
  }).strict();
1952
- var SessionResourceReadResultDataSchema = z20.object({
1988
+ var SessionResourceReadResultDataSchema = z21.object({
1953
1989
  path: SessionResourceReadDataSchema.shape.path,
1954
1990
  rootRevision: SessionResourceReadDataSchema.shape.rootRevision,
1955
- mediaType: z20.enum(SESSION_RESOURCE_MEDIA_TYPES),
1956
- originalByteLength: z20.number().int().min(0).max(SESSION_RESOURCE_MAX_ORIGINAL_BYTES),
1957
- byteLength: z20.number().int().min(0).max(SESSION_RESOURCE_MAX_ORIGINAL_BYTES),
1958
- encoding: z20.enum(["identity", "gzip"]),
1959
- data: z20.string().max(SESSION_RESOURCE_MAX_BASE64_LENGTH)
1991
+ mediaType: z21.enum(SESSION_RESOURCE_MEDIA_TYPES),
1992
+ originalByteLength: z21.number().int().min(0).max(SESSION_RESOURCE_MAX_ORIGINAL_BYTES),
1993
+ byteLength: z21.number().int().min(0).max(SESSION_RESOURCE_MAX_ORIGINAL_BYTES),
1994
+ encoding: z21.enum(["identity", "gzip"]),
1995
+ data: z21.string().max(SESSION_RESOURCE_MAX_BASE64_LENGTH)
1960
1996
  }).strict().superRefine((result, context) => {
1961
1997
  const invalid = () => context.addIssue({ code: "custom", message: "Invalid resource content" });
1962
1998
  if (result.encoding === "gzip" !== result.originalByteLength >= SESSION_RESOURCE_GZIP_THRESHOLD_BYTES || result.byteLength !== result.originalByteLength || result.mediaType.startsWith("image/") && result.byteLength === 0)
@@ -1969,112 +2005,112 @@ var SessionResourceReadResultDataSchema = z20.object({
1969
2005
  });
1970
2006
 
1971
2007
  // ../protocol/dist/sessions/session-images.js
1972
- import { z as z21 } from "zod";
2008
+ import { z as z22 } from "zod";
1973
2009
  var SESSION_IMAGE_MAX_BYTES = 3 * 1024 * 1024;
1974
2010
  var SESSION_IMAGE_MAX_PIXELS = 16 * 1024 * 1024;
1975
2011
  var SESSION_IMAGE_API_PATH = "/api/v3/session-images";
1976
2012
  var TIMELINE_IMAGE_BLOB_OPERATION = "session.image.blob";
1977
2013
  var TIMELINE_IMAGE_BLOB_VERSION = 1;
1978
- var SessionImageIdSchema = z21.uuid();
1979
- var SessionImageTransferModeSchema = z21.enum(["direct", "proxy"]);
1980
- var DirectUrlSchema = z21.string().regex(/^https:\/\/[^/?#@\\\s\x00-\x1f\x7f]+(?:[/?][^#\\\s\x00-\x1f\x7f]*)?$/u).refine((raw) => {
2014
+ var SessionImageIdSchema = z22.uuid();
2015
+ var SessionImageTransferModeSchema = z22.enum(["direct", "proxy"]);
2016
+ var DirectUrlSchema = z22.string().regex(/^https:\/\/[^/?#@\\\s\x00-\x1f\x7f]+(?:[/?][^#\\\s\x00-\x1f\x7f]*)?$/u).refine((raw) => {
1981
2017
  if (!URL.canParse(raw))
1982
2018
  return false;
1983
2019
  const url = new URL(raw);
1984
2020
  return url.protocol === "https:" && url.username === "" && url.password === "" && url.hash === "";
1985
2021
  }, "Direct transfers require HTTPS without userinfo, fragments or unsafe characters");
1986
- var ProxyUrlSchema = z21.string().regex(/^\/api\/v3\/session-images\/[0-9a-f-]+\/content\?[^#\\\s\x00-\x1f\x7f]+$/u);
1987
- 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));
1988
- var SessionImageUploadRequestSchema = z21.object({
2022
+ var ProxyUrlSchema = z22.string().regex(/^\/api\/v3\/session-images\/[0-9a-f-]+\/content\?[^#\\\s\x00-\x1f\x7f]+$/u);
2023
+ var SessionImageTransferHeadersSchema = z22.record(z22.string().regex(/^(?:content-type|if-none-match|x-ms-blob-type)$/u), z22.string().min(1).max(256).regex(/^[\x20-\x7e]+$/u));
2024
+ var SessionImageUploadRequestSchema = z22.object({
1989
2025
  machineId: IdSchema,
1990
2026
  sessionId: IdSchema,
1991
- sizeBytes: z21.number().int().min(1).max(SESSION_IMAGE_MAX_BYTES)
2027
+ sizeBytes: z22.number().int().min(1).max(SESSION_IMAGE_MAX_BYTES)
1992
2028
  }).strict();
1993
- var SessionImageScopeSchema = z21.object({
2029
+ var SessionImageScopeSchema = z22.object({
1994
2030
  machineId: IdSchema,
1995
2031
  sessionId: IdSchema
1996
2032
  }).strict();
1997
2033
  var UploadResultFields = {
1998
2034
  imageId: SessionImageIdSchema,
1999
- uploadExpiresAt: z21.number().int().positive(),
2000
- method: z21.literal("PUT"),
2001
- contentType: z21.literal("image/webp"),
2035
+ uploadExpiresAt: z22.number().int().positive(),
2036
+ method: z22.literal("PUT"),
2037
+ contentType: z22.literal("image/webp"),
2002
2038
  headers: SessionImageTransferHeadersSchema.refine((headers) => headers["content-type"] === "image/webp")
2003
2039
  };
2004
- var SessionImageUploadResultSchema = z21.discriminatedUnion("mode", [
2005
- z21.object({ ...UploadResultFields, mode: z21.literal("direct"), uploadUrl: DirectUrlSchema }).strict(),
2006
- z21.object({ ...UploadResultFields, mode: z21.literal("proxy"), uploadUrl: ProxyUrlSchema }).strict()
2040
+ var SessionImageUploadResultSchema = z22.discriminatedUnion("mode", [
2041
+ z22.object({ ...UploadResultFields, mode: z22.literal("direct"), uploadUrl: DirectUrlSchema }).strict(),
2042
+ z22.object({ ...UploadResultFields, mode: z22.literal("proxy"), uploadUrl: ProxyUrlSchema }).strict()
2007
2043
  ]);
2008
- var SessionImageCommitResultSchema = z21.object({
2044
+ var SessionImageCommitResultSchema = z22.object({
2009
2045
  imageId: SessionImageIdSchema,
2010
2046
  machineId: IdSchema,
2011
2047
  sessionId: IdSchema,
2012
- sizeBytes: z21.number().int().min(1).max(SESSION_IMAGE_MAX_BYTES),
2013
- width: z21.number().int().positive(),
2014
- height: z21.number().int().positive(),
2015
- sha256: z21.string().regex(/^[a-f0-9]{64}$/u),
2016
- expiresAt: z21.number().int().positive()
2048
+ sizeBytes: z22.number().int().min(1).max(SESSION_IMAGE_MAX_BYTES),
2049
+ width: z22.number().int().positive(),
2050
+ height: z22.number().int().positive(),
2051
+ sha256: z22.string().regex(/^[a-f0-9]{64}$/u),
2052
+ expiresAt: z22.number().int().positive()
2017
2053
  }).strict();
2018
2054
  var DownloadResultFields = {
2019
2055
  image: SessionImageCommitResultSchema,
2020
- downloadExpiresAt: z21.number().int().positive(),
2021
- method: z21.literal("GET"),
2056
+ downloadExpiresAt: z22.number().int().positive(),
2057
+ method: z22.literal("GET"),
2022
2058
  headers: SessionImageTransferHeadersSchema
2023
2059
  };
2024
- var SessionImageDownloadResultSchema = z21.discriminatedUnion("mode", [
2025
- z21.object({ ...DownloadResultFields, mode: z21.literal("direct"), downloadUrl: DirectUrlSchema }).strict(),
2026
- z21.object({ ...DownloadResultFields, mode: z21.literal("proxy"), downloadUrl: ProxyUrlSchema }).strict()
2060
+ var SessionImageDownloadResultSchema = z22.discriminatedUnion("mode", [
2061
+ z22.object({ ...DownloadResultFields, mode: z22.literal("direct"), downloadUrl: DirectUrlSchema }).strict(),
2062
+ z22.object({ ...DownloadResultFields, mode: z22.literal("proxy"), downloadUrl: ProxyUrlSchema }).strict()
2027
2063
  ]);
2028
- var TimelineImageBlobRequestSchema = z21.object({
2029
- sha256: z21.string().regex(/^[a-f0-9]{64}$/u)
2064
+ var TimelineImageBlobRequestSchema = z22.object({
2065
+ sha256: z22.string().regex(/^[a-f0-9]{64}$/u)
2030
2066
  }).strict();
2031
- var TimelineImageBlobResultSchema = z21.object({
2067
+ var TimelineImageBlobResultSchema = z22.object({
2032
2068
  sha256: TimelineImageBlobRequestSchema.shape.sha256,
2033
2069
  image: SessionImageCommitResultSchema
2034
2070
  }).strict();
2035
2071
 
2036
2072
  // ../protocol/dist/sessions/session-rename.js
2037
- import { z as z22 } from "zod";
2073
+ import { z as z23 } from "zod";
2038
2074
  var SESSION_RENAME_OPERATION = "session.rename";
2039
2075
  var SESSION_RENAME_VERSION = 1;
2040
2076
  var SESSION_RENAME_CAPABILITY = sessionCommunicationOperationCapability(SESSION_RENAME_OPERATION, SESSION_RENAME_VERSION);
2041
2077
  var SESSION_NAME_MAX_LENGTH = 100;
2042
- var SessionNameSchema = z22.string().regex(/^[^\u0000-\u001f\u007f]*$/u).trim().min(1).max(SESSION_NAME_MAX_LENGTH);
2043
- var SessionRenameDataSchema = z22.object({ name: SessionNameSchema }).strict();
2044
- var SessionRenameResultDataSchema = z22.object({ name: SessionNameSchema }).strict();
2078
+ var SessionNameSchema = z23.string().regex(/^[^\u0000-\u001f\u007f]*$/u).trim().min(1).max(SESSION_NAME_MAX_LENGTH);
2079
+ var SessionRenameDataSchema = z23.object({ name: SessionNameSchema }).strict();
2080
+ var SessionRenameResultDataSchema = z23.object({ name: SessionNameSchema }).strict();
2045
2081
 
2046
2082
  // ../protocol/dist/sessions/group-chat.js
2047
- import { z as z23 } from "zod";
2083
+ import { z as z24 } from "zod";
2048
2084
  var GROUP_CHAT_CREATE_OPERATION = "group-chat.create";
2049
2085
  var GROUP_CHAT_CREATE_VERSION = 1;
2050
2086
  var GROUP_CHAT_CREATE_CAPABILITY = sessionCommunicationOperationCapability(GROUP_CHAT_CREATE_OPERATION, GROUP_CHAT_CREATE_VERSION);
2051
- var GroupChatCreateDataSchema = z23.object({
2087
+ var GroupChatCreateDataSchema = z24.object({
2052
2088
  peerSessionId: IdSchema
2053
2089
  }).strict();
2054
- var GroupChatCreateResultDataSchema = z23.object({
2090
+ var GroupChatCreateResultDataSchema = z24.object({
2055
2091
  session: SessionSummarySchema.refine((session) => session.groupChat !== void 0, "Group creation must return a virtual group session")
2056
2092
  }).strict();
2057
2093
 
2058
2094
  // ../protocol/dist/sessions/prompts.js
2059
- import { z as z24 } from "zod";
2095
+ import { z as z25 } from "zod";
2060
2096
  var SESSION_FILE_ATTACHMENTS_CAPABILITY = "session-file-attachments";
2061
2097
  var SESSION_PROMPT_SUBMISSION_TIME_CAPABILITY = "session-prompt-submission-time";
2062
2098
  var SESSION_AVATAR_PERSONA_CAPABILITY = "session-avatar-persona";
2063
- var SessionAvatarPersonaSchema = z24.object({
2064
- role: z24.enum(["designer", "filmmaker", "developer", "secretary", "default"]),
2065
- displayName: z24.string().trim().min(1).max(40).regex(/^[^\u0000-\u001f\u007f-\u009f]*$/).optional()
2099
+ var SessionAvatarPersonaSchema = z25.object({
2100
+ role: z25.enum(["designer", "filmmaker", "developer", "secretary", "default"]),
2101
+ displayName: z25.string().trim().min(1).max(40).regex(/^[^\u0000-\u001f\u007f-\u009f]*$/).optional()
2066
2102
  }).strict().refine((value) => value.role === "default" ? value.displayName === void 0 : value.displayName !== void 0, { message: "A role requires a display name; default must not include one" });
2067
2103
  var MAX_PROMPT_IMAGE_BYTES = 3 * 1024 * 1024;
2068
- var SessionPromptRequestSchema = z24.object({
2104
+ var SessionPromptRequestSchema = z25.object({
2069
2105
  requestId: IdSchema,
2070
2106
  operationId: IdSchema,
2071
2107
  machineId: IdSchema,
2072
2108
  sessionId: IdSchema,
2073
- prompt: z24.string().trim().max(1e5),
2074
- attachments: z24.array(PromptImageAttachmentSchema).max(4).optional(),
2075
- fileAttachments: z24.array(PromptFileAttachmentSchema).max(4).optional(),
2109
+ prompt: z25.string().trim().max(1e5),
2110
+ attachments: z25.array(PromptImageAttachmentSchema).max(4).optional(),
2111
+ fileAttachments: z25.array(PromptFileAttachmentSchema).max(4).optional(),
2076
2112
  avatarPersona: SessionAvatarPersonaSchema.optional(),
2077
- mode: z24.enum(["enqueue", "immediate"]).default("enqueue")
2113
+ mode: z25.enum(["enqueue", "immediate"]).default("enqueue")
2078
2114
  }).strict().superRefine((request, context) => {
2079
2115
  if (request.prompt.length === 0 && (request.attachments?.length ?? 0) === 0 && (request.fileAttachments?.length ?? 0) === 0) {
2080
2116
  context.addIssue({
@@ -2100,22 +2136,22 @@ var SessionPromptRequestSchema = z24.object({
2100
2136
  });
2101
2137
  }
2102
2138
  });
2103
- var SessionPromptResultSchema = z24.discriminatedUnion("ok", [
2104
- z24.object({
2105
- ok: z24.literal(true),
2139
+ var SessionPromptResultSchema = z25.discriminatedUnion("ok", [
2140
+ z25.object({
2141
+ ok: z25.literal(true),
2106
2142
  requestId: IdSchema,
2107
2143
  operationId: IdSchema,
2108
2144
  machineId: IdSchema,
2109
2145
  sessionId: IdSchema,
2110
2146
  messageId: IdSchema,
2111
- mode: z24.enum(["enqueue", "immediate"]),
2112
- deliveryState: z24.enum(["queued", "processing"]),
2147
+ mode: z25.enum(["enqueue", "immediate"]),
2148
+ deliveryState: z25.enum(["queued", "processing"]),
2113
2149
  // Negotiated lower bound from the native event clock. Exact text and history
2114
2150
  // ownership checks still apply; this is not an identity or proof of persistence.
2115
2151
  submittedAt: IsoDateSchema.optional()
2116
2152
  }),
2117
- z24.object({
2118
- ok: z24.literal(false),
2153
+ z25.object({
2154
+ ok: z25.literal(false),
2119
2155
  requestId: IdSchema,
2120
2156
  operationId: IdSchema,
2121
2157
  machineId: IdSchema,
@@ -2123,29 +2159,29 @@ var SessionPromptResultSchema = z24.discriminatedUnion("ok", [
2123
2159
  error: ProtocolFailureSchema
2124
2160
  })
2125
2161
  ]);
2126
- var SessionActivityUpdateSchema = z24.object({
2162
+ var SessionActivityUpdateSchema = z25.object({
2127
2163
  userId: IdSchema,
2128
2164
  machineId: IdSchema,
2129
2165
  sessionId: IdSchema,
2130
- state: z24.enum(["working", "idle"]),
2166
+ state: z25.enum(["working", "idle"]),
2131
2167
  occurredAt: IsoDateSchema,
2132
2168
  assistantPreview: SessionAssistantPreviewSchema.optional(),
2133
2169
  userPreview: SessionUserPreviewSchema.optional()
2134
2170
  });
2135
- var SessionAbortRequestSchema = z24.object({
2171
+ var SessionAbortRequestSchema = z25.object({
2136
2172
  requestId: IdSchema,
2137
2173
  machineId: IdSchema,
2138
2174
  sessionId: IdSchema
2139
2175
  });
2140
- var SessionAbortResultSchema = z24.discriminatedUnion("ok", [
2141
- z24.object({
2142
- ok: z24.literal(true),
2176
+ var SessionAbortResultSchema = z25.discriminatedUnion("ok", [
2177
+ z25.object({
2178
+ ok: z25.literal(true),
2143
2179
  requestId: IdSchema,
2144
2180
  machineId: IdSchema,
2145
2181
  sessionId: IdSchema
2146
2182
  }),
2147
- z24.object({
2148
- ok: z24.literal(false),
2183
+ z25.object({
2184
+ ok: z25.literal(false),
2149
2185
  requestId: IdSchema,
2150
2186
  machineId: IdSchema,
2151
2187
  sessionId: IdSchema,
@@ -2154,7 +2190,7 @@ var SessionAbortResultSchema = z24.discriminatedUnion("ok", [
2154
2190
  ]);
2155
2191
 
2156
2192
  // ../protocol/dist/conversation/timeline-sync.js
2157
- import { z as z25 } from "zod";
2193
+ import { z as z26 } from "zod";
2158
2194
  var TIMELINE_SYNC_OPERATION = "session.timeline.sync";
2159
2195
  var TIMELINE_IMAGE_OPERATION = "session.image.read";
2160
2196
  var TIMELINE_SYNC_VERSION = 1;
@@ -2162,37 +2198,37 @@ var TIMELINE_SYNC_MAX_EVENTS = 128;
2162
2198
  var TIMELINE_SYNC_MAX_BYTES = 6 * 1024 * 1024;
2163
2199
  var TIMELINE_IMAGE_CHUNK_BYTES = 48 * 1024;
2164
2200
  var TIMELINE_IMAGE_MAX_BYTES = 3 * 1024 * 1024;
2165
- var identity = z25.string().min(1).max(256);
2166
- var sequence = z25.number().int().min(0).max(Number.MAX_SAFE_INTEGER);
2167
- var hash = z25.string().regex(/^[a-f0-9]{64}$/u);
2168
- var TimelineWatermarkSchema = z25.object({
2201
+ var identity = z26.string().min(1).max(256);
2202
+ var sequence = z26.number().int().min(0).max(Number.MAX_SAFE_INTEGER);
2203
+ var hash = z26.string().regex(/^[a-f0-9]{64}$/u);
2204
+ var TimelineWatermarkSchema = z26.object({
2169
2205
  epoch: identity,
2170
2206
  sequence
2171
2207
  }).strict();
2172
- var TimelineSyncRequestSchema = z25.object({
2208
+ var TimelineSyncRequestSchema = z26.object({
2173
2209
  watermark: TimelineWatermarkSchema.optional(),
2174
- waitMs: z25.number().int().min(0).max(2e4).optional(),
2175
- resume: z25.boolean().optional()
2210
+ waitMs: z26.number().int().min(0).max(2e4).optional(),
2211
+ resume: z26.boolean().optional()
2176
2212
  }).strict();
2177
- var TimelineTextAppendSchema = z25.object({
2213
+ var TimelineTextAppendSchema = z26.object({
2178
2214
  itemId: identity,
2179
- baseRevision: z25.number().int().positive(),
2180
- revision: z25.number().int().positive(),
2181
- appendText: z25.string().min(1).max(5e5),
2182
- sourceEventIds: z25.array(identity).min(1).max(1e3).optional(),
2183
- sourceMessageIds: z25.array(identity).min(1).max(1e3).optional(),
2184
- sourceInteractionIds: z25.array(identity).min(1).max(1e3).optional()
2185
- }).strict();
2186
- var TimelineSyncEventSchema = z25.discriminatedUnion("kind", [
2187
- z25.object({ kind: z25.literal("upsert"), sequence, item: ConversationItemSchema }).strict(),
2188
- z25.object({ kind: z25.literal("append"), sequence, append: TimelineTextAppendSchema }).strict(),
2189
- z25.object({
2190
- kind: z25.literal("step"),
2215
+ baseRevision: z26.number().int().positive(),
2216
+ revision: z26.number().int().positive(),
2217
+ appendText: z26.string().min(1).max(5e5),
2218
+ sourceEventIds: z26.array(identity).min(1).max(1e3).optional(),
2219
+ sourceMessageIds: z26.array(identity).min(1).max(1e3).optional(),
2220
+ sourceInteractionIds: z26.array(identity).min(1).max(1e3).optional()
2221
+ }).strict();
2222
+ var TimelineSyncEventSchema = z26.discriminatedUnion("kind", [
2223
+ z26.object({ kind: z26.literal("upsert"), sequence, item: ConversationItemSchema }).strict(),
2224
+ z26.object({ kind: z26.literal("append"), sequence, append: TimelineTextAppendSchema }).strict(),
2225
+ z26.object({
2226
+ kind: z26.literal("step"),
2191
2227
  sequence,
2192
2228
  upsert: ConversationActivityStepUpsertSchema
2193
2229
  }).strict()
2194
2230
  ]);
2195
- var TimelineResyncReasonSchema = z25.enum([
2231
+ var TimelineResyncReasonSchema = z26.enum([
2196
2232
  "initial",
2197
2233
  "epoch-changed",
2198
2234
  "evicted",
@@ -2201,36 +2237,36 @@ var TimelineResyncReasonSchema = z25.enum([
2201
2237
  "rewind",
2202
2238
  "oversized"
2203
2239
  ]);
2204
- var TimelineSyncResponseSchema = z25.discriminatedUnion("status", [
2205
- z25.object({
2206
- status: z25.literal("snapshot"),
2240
+ var TimelineSyncResponseSchema = z26.discriminatedUnion("status", [
2241
+ z26.object({
2242
+ status: z26.literal("snapshot"),
2207
2243
  watermark: TimelineWatermarkSchema,
2208
2244
  page: SessionTimelinePageSchema
2209
2245
  }).strict(),
2210
- z25.object({
2211
- status: z25.literal("replay"),
2246
+ z26.object({
2247
+ status: z26.literal("replay"),
2212
2248
  watermark: TimelineWatermarkSchema,
2213
2249
  afterSequence: sequence,
2214
- events: z25.array(TimelineSyncEventSchema).max(TIMELINE_SYNC_MAX_EVENTS),
2215
- hasMore: z25.boolean()
2250
+ events: z26.array(TimelineSyncEventSchema).max(TIMELINE_SYNC_MAX_EVENTS),
2251
+ hasMore: z26.boolean()
2216
2252
  }).strict(),
2217
- z25.object({
2218
- status: z25.literal("resync"),
2253
+ z26.object({
2254
+ status: z26.literal("resync"),
2219
2255
  epoch: identity,
2220
2256
  reason: TimelineResyncReasonSchema
2221
2257
  }).strict()
2222
2258
  ]);
2223
- var TimelineImageRequestSchema = z25.object({
2259
+ var TimelineImageRequestSchema = z26.object({
2224
2260
  sha256: hash,
2225
- offset: z25.number().int().min(0).max(TIMELINE_IMAGE_MAX_BYTES - 1)
2261
+ offset: z26.number().int().min(0).max(TIMELINE_IMAGE_MAX_BYTES - 1)
2226
2262
  }).strict();
2227
- var TimelineImageChunkSchema = z25.object({
2263
+ var TimelineImageChunkSchema = z26.object({
2228
2264
  sha256: hash,
2229
- offset: z25.number().int().min(0).max(TIMELINE_IMAGE_MAX_BYTES - 1),
2230
- totalBytes: z25.number().int().positive().max(TIMELINE_IMAGE_MAX_BYTES),
2231
- mimeType: z25.enum(["image/gif", "image/jpeg", "image/png", "image/webp"]),
2232
- 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),
2233
- eof: z25.boolean()
2265
+ offset: z26.number().int().min(0).max(TIMELINE_IMAGE_MAX_BYTES - 1),
2266
+ totalBytes: z26.number().int().positive().max(TIMELINE_IMAGE_MAX_BYTES),
2267
+ mimeType: z26.enum(["image/gif", "image/jpeg", "image/png", "image/webp"]),
2268
+ data: z26.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),
2269
+ eof: z26.boolean()
2234
2270
  }).strict().superRefine((chunk, context) => {
2235
2271
  const padding = chunk.data.endsWith("==") ? 2 : chunk.data.endsWith("=") ? 1 : 0;
2236
2272
  const length = chunk.data.length / 4 * 3 - padding;
@@ -2241,10 +2277,10 @@ var TimelineImageChunkSchema = z25.object({
2241
2277
  });
2242
2278
 
2243
2279
  // ../protocol/dist/workbench.js
2244
- import { z as z27 } from "zod";
2280
+ import { z as z28 } from "zod";
2245
2281
 
2246
2282
  // ../protocol/dist/schedules.js
2247
- import { z as z26 } from "zod";
2283
+ import { z as z27 } from "zod";
2248
2284
  var SCHEDULES_CAPABILITY = "session-schedules-v1";
2249
2285
  var SCHEDULE_OPERATIONS = [
2250
2286
  "schedule.snapshot",
@@ -2253,90 +2289,90 @@ var SCHEDULE_OPERATIONS = [
2253
2289
  "schedule.draft.dismiss",
2254
2290
  "schedule.resume"
2255
2291
  ];
2256
- var Id = z26.string().min(1).max(256);
2257
- var NativeId = z26.number().int().positive().max(Number.MAX_SAFE_INTEGER);
2258
- var Time = z26.iso.datetime({ offset: true });
2259
- var WorkbenchScheduleRuleSchema = z26.discriminatedUnion("kind", [
2260
- z26.object({ kind: z26.literal("once"), at: Time }).strict(),
2261
- z26.object({
2262
- kind: z26.literal("interval"),
2263
- seconds: z26.number().int().min(10).max(86400),
2264
- recurring: z26.boolean().optional()
2292
+ var Id = z27.string().min(1).max(256);
2293
+ var NativeId = z27.number().int().positive().max(Number.MAX_SAFE_INTEGER);
2294
+ var Time = z27.iso.datetime({ offset: true });
2295
+ var WorkbenchScheduleRuleSchema = z27.discriminatedUnion("kind", [
2296
+ z27.object({ kind: z27.literal("once"), at: Time }).strict(),
2297
+ z27.object({
2298
+ kind: z27.literal("interval"),
2299
+ seconds: z27.number().int().min(10).max(86400),
2300
+ recurring: z27.boolean().optional()
2265
2301
  }).strict(),
2266
- z26.object({
2267
- kind: z26.literal("cron"),
2268
- expression: z26.string().trim().min(9).max(256).regex(/^\S+(?: +\S+){4}$/),
2269
- timezone: z26.string().min(1).max(128).regex(/^[A-Za-z0-9_+./-]+$/)
2302
+ z27.object({
2303
+ kind: z27.literal("cron"),
2304
+ expression: z27.string().trim().min(9).max(256).regex(/^\S+(?: +\S+){4}$/),
2305
+ timezone: z27.string().min(1).max(128).regex(/^[A-Za-z0-9_+./-]+$/)
2270
2306
  }).strict()
2271
2307
  ]);
2272
2308
  var Content = {
2273
2309
  rule: WorkbenchScheduleRuleSchema,
2274
- 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."),
2275
- 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.")
2310
+ prompt: z27.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."),
2311
+ skill: z27.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.")
2276
2312
  };
2277
- var WorkbenchScheduleProposalSchema = z26.object(Content).strict().refine((value) => value.prompt.trim().length > 0 || value.skill !== void 0, { message: "A prompt or skill is required" });
2278
- var WorkbenchScheduleDraftSchema = z26.object({
2279
- id: z26.uuid(),
2313
+ var WorkbenchScheduleProposalSchema = z27.object(Content).strict().refine((value) => value.prompt.trim().length > 0 || value.skill !== void 0, { message: "A prompt or skill is required" });
2314
+ var WorkbenchScheduleDraftSchema = z27.object({
2315
+ id: z27.uuid(),
2280
2316
  createdAt: Time,
2281
2317
  ...Content
2282
2318
  }).strict();
2283
- var WorkbenchScheduleEntrySchema = z26.object({
2319
+ var WorkbenchScheduleEntrySchema = z27.object({
2284
2320
  id: NativeId,
2285
- prompt: z26.string().max(1e5),
2286
- displayPrompt: z26.string().max(1e5).optional(),
2287
- recurring: z26.boolean(),
2321
+ prompt: z27.string().max(1e5),
2322
+ displayPrompt: z27.string().max(1e5).optional(),
2323
+ recurring: z27.boolean(),
2288
2324
  nextRunAt: Time,
2289
- intervalMs: z26.number().int().positive().optional(),
2290
- cron: z26.string().max(256).optional(),
2291
- timezone: z26.string().max(128).optional(),
2325
+ intervalMs: z27.number().int().positive().optional(),
2326
+ cron: z27.string().max(256).optional(),
2327
+ timezone: z27.string().max(128).optional(),
2292
2328
  at: Time.optional()
2293
2329
  }).strict();
2294
- var WorkbenchScheduleResultSchema = z26.object({
2330
+ var WorkbenchScheduleResultSchema = z27.object({
2295
2331
  id: Id,
2296
2332
  scheduleId: NativeId,
2297
2333
  triggerEventId: Id,
2298
2334
  time: Time,
2299
- prompt: z26.string().max(16e3),
2300
- status: z26.enum(["reply", "error", "merged", "pending", "unknown"]),
2301
- reply: z26.string().max(16e3).optional(),
2335
+ prompt: z27.string().max(16e3),
2336
+ status: z27.enum(["reply", "error", "merged", "pending", "unknown"]),
2337
+ reply: z27.string().max(16e3).optional(),
2302
2338
  replyEventId: Id.optional(),
2303
- error: z26.string().max(1024).optional()
2304
- }).strict();
2305
- var WorkbenchScheduleSnapshotSchema = z26.object({
2306
- state: z26.enum(["active", "needs-resume"]),
2307
- workingDirectory: z26.string().max(32768).optional(),
2308
- timezone: z26.string().max(128).optional(),
2309
- entries: z26.array(WorkbenchScheduleEntrySchema).max(256),
2310
- drafts: z26.array(WorkbenchScheduleDraftSchema).max(100),
2311
- results: z26.array(WorkbenchScheduleResultSchema).max(100),
2312
- historyTruncated: z26.boolean(),
2339
+ error: z27.string().max(1024).optional()
2340
+ }).strict();
2341
+ var WorkbenchScheduleSnapshotSchema = z27.object({
2342
+ state: z27.enum(["active", "needs-resume"]),
2343
+ workingDirectory: z27.string().max(32768).optional(),
2344
+ timezone: z27.string().max(128).optional(),
2345
+ entries: z27.array(WorkbenchScheduleEntrySchema).max(256),
2346
+ drafts: z27.array(WorkbenchScheduleDraftSchema).max(100),
2347
+ results: z27.array(WorkbenchScheduleResultSchema).max(100),
2348
+ historyTruncated: z27.boolean(),
2313
2349
  sampledAt: Time
2314
2350
  }).strict();
2315
2351
  var Submission = {
2316
- operationId: z26.uuid(),
2317
- operationCreatedAt: z26.iso.datetime(),
2352
+ operationId: z27.uuid(),
2353
+ operationCreatedAt: z27.iso.datetime(),
2318
2354
  expectedAgentRunId: Id
2319
2355
  };
2320
- var WorkbenchScheduleCreateRequestSchema = z26.object({
2356
+ var WorkbenchScheduleCreateRequestSchema = z27.object({
2321
2357
  ...Submission,
2322
2358
  ...Content,
2323
- draftId: z26.uuid().optional()
2359
+ draftId: z27.uuid().optional()
2324
2360
  }).strict().refine((value) => value.prompt.trim().length > 0 || value.skill !== void 0, { message: "A prompt or skill is required" });
2325
- var WorkbenchScheduleCreateResultSchema = z26.object({
2361
+ var WorkbenchScheduleCreateResultSchema = z27.object({
2326
2362
  snapshot: WorkbenchScheduleSnapshotSchema,
2327
- verified: z26.boolean()
2363
+ verified: z27.boolean()
2328
2364
  }).strict();
2329
- var WorkbenchScheduleDeleteRequestSchema = z26.object({
2365
+ var WorkbenchScheduleDeleteRequestSchema = z27.object({
2330
2366
  ...Submission,
2331
2367
  id: NativeId
2332
2368
  }).strict();
2333
- var WorkbenchScheduleDeleteResultSchema = z26.object({
2369
+ var WorkbenchScheduleDeleteResultSchema = z27.object({
2334
2370
  snapshot: WorkbenchScheduleSnapshotSchema,
2335
- removed: z26.boolean()
2371
+ removed: z27.boolean()
2336
2372
  }).strict();
2337
- var WorkbenchScheduleDraftDismissRequestSchema = z26.object({
2373
+ var WorkbenchScheduleDraftDismissRequestSchema = z27.object({
2338
2374
  ...Submission,
2339
- draftId: z26.uuid()
2375
+ draftId: z27.uuid()
2340
2376
  }).strict();
2341
2377
  var ScheduleAndroidSchemas = {
2342
2378
  WorkbenchScheduleRule: WorkbenchScheduleRuleSchema,
@@ -2353,10 +2389,10 @@ var ScheduleAndroidSchemas = {
2353
2389
  };
2354
2390
 
2355
2391
  // ../protocol/dist/workbench.js
2356
- var Id2 = z27.string().trim().min(1).max(256);
2357
- var Text = z27.string().max(1e5);
2358
- var Count = z27.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER);
2359
- var Failure = z27.object({ code: Id2, message: z27.string().min(1).max(1024) }).strict();
2392
+ var Id2 = z28.string().trim().min(1).max(256);
2393
+ var Text = z28.string().max(1e5);
2394
+ var Count = z28.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER);
2395
+ var Failure = z28.object({ code: Id2, message: z28.string().min(1).max(1024) }).strict();
2360
2396
  var WORKBENCH_VERSION = 1;
2361
2397
  var RESEARCH_CHAT_CAPABILITY = "research-chat-v1";
2362
2398
  var WORKBENCH_OPERATIONS = [
@@ -2378,104 +2414,104 @@ var WORKBENCH_OPERATIONS = [
2378
2414
  ];
2379
2415
  var workbenchCapability = (operation) => `${operation}.v${WORKBENCH_VERSION}`;
2380
2416
  var Submission2 = {
2381
- operationId: z27.uuid(),
2382
- operationCreatedAt: z27.iso.datetime(),
2417
+ operationId: z28.uuid(),
2418
+ operationCreatedAt: z28.iso.datetime(),
2383
2419
  expectedAgentRunId: Id2
2384
2420
  };
2385
- var WorkbenchOperationGetSchema = z27.object({ operationId: z27.uuid() }).strict();
2386
- var WorkbenchOperationStatusSchema = z27.object({
2387
- operationId: z27.uuid(),
2388
- operation: z27.enum(WORKBENCH_OPERATIONS),
2421
+ var WorkbenchOperationGetSchema = z28.object({ operationId: z28.uuid() }).strict();
2422
+ var WorkbenchOperationStatusSchema = z28.object({
2423
+ operationId: z28.uuid(),
2424
+ operation: z28.enum(WORKBENCH_OPERATIONS),
2389
2425
  agentRunId: Id2,
2390
- state: z27.enum(["running", "succeeded", "failed", "uncertain", "result-expired"]),
2391
- result: z27.record(z27.string(), z27.json()).optional(),
2426
+ state: z28.enum(["running", "succeeded", "failed", "uncertain", "result-expired"]),
2427
+ result: z28.record(z28.string(), z28.json()).optional(),
2392
2428
  error: Failure.optional()
2393
2429
  }).strict().superRefine((value, context) => {
2394
2430
  if (value.state === "succeeded" !== (value.result !== void 0) || (value.state === "failed" || value.state === "uncertain") !== (value.error !== void 0)) {
2395
2431
  context.addIssue({ code: "custom", message: "Invalid operation state payload" });
2396
2432
  }
2397
2433
  });
2398
- var WorkbenchAskRequestSchema = z27.object({
2434
+ var WorkbenchAskRequestSchema = z28.object({
2399
2435
  ...Submission2,
2400
- question: z27.string().trim().min(1).max(16e3)
2436
+ question: z28.string().trim().min(1).max(16e3)
2401
2437
  }).strict();
2402
- var WorkbenchAskResultSchema = z27.object({ answer: Text }).strict();
2403
- var WorkbenchEmptyRequestSchema = z27.object({}).strict();
2404
- var WorkbenchSubmitRequestSchema = z27.object(Submission2).strict();
2405
- var WorkbenchResearchCreateRequestSchema = z27.object({
2438
+ var WorkbenchAskResultSchema = z28.object({ answer: Text }).strict();
2439
+ var WorkbenchEmptyRequestSchema = z28.object({}).strict();
2440
+ var WorkbenchSubmitRequestSchema = z28.object(Submission2).strict();
2441
+ var WorkbenchResearchCreateRequestSchema = z28.object({
2406
2442
  ...Submission2,
2407
- title: z27.string().trim().min(1).max(120),
2408
- question: z27.string().trim().min(1).max(16e3),
2443
+ title: z28.string().trim().min(1).max(120),
2444
+ question: z28.string().trim().min(1).max(16e3),
2409
2445
  sourceItemId: Id2.optional(),
2410
- deferInitialPrompt: z27.literal(true).optional()
2446
+ deferInitialPrompt: z28.literal(true).optional()
2411
2447
  }).strict();
2412
- var WorkbenchResearchThreadSchema = z27.object({
2448
+ var WorkbenchResearchThreadSchema = z28.object({
2413
2449
  sessionId: Id2,
2414
2450
  parentSessionId: Id2,
2415
- title: z27.string().min(1).max(120),
2416
- createdAt: z27.iso.datetime(),
2451
+ title: z28.string().min(1).max(120),
2452
+ createdAt: z28.iso.datetime(),
2417
2453
  contextAnchor: Id2.optional(),
2418
- contextTruncated: z27.boolean(),
2419
- detached: z27.boolean(),
2420
- state: z27.enum(["creating", "ready", "failed"])
2454
+ contextTruncated: z28.boolean(),
2455
+ detached: z28.boolean(),
2456
+ state: z28.enum(["creating", "ready", "failed"])
2421
2457
  }).strict();
2422
- var WorkbenchResearchCreateResultSchema = z27.object({
2458
+ var WorkbenchResearchCreateResultSchema = z28.object({
2423
2459
  thread: WorkbenchResearchThreadSchema
2424
2460
  }).strict();
2425
- var WorkbenchResearchListResultSchema = z27.object({
2426
- threads: z27.array(WorkbenchResearchThreadSchema).max(100)
2461
+ var WorkbenchResearchListResultSchema = z28.object({
2462
+ threads: z28.array(WorkbenchResearchThreadSchema).max(100)
2427
2463
  }).strict();
2428
- var WorkbenchResearchTimelineRequestSchema = z27.object({
2464
+ var WorkbenchResearchTimelineRequestSchema = z28.object({
2429
2465
  cursor: Id2.optional()
2430
2466
  }).strict();
2431
- var WorkbenchResearchSendRequestSchema = z27.object({
2467
+ var WorkbenchResearchSendRequestSchema = z28.object({
2432
2468
  ...Submission2,
2433
- prompt: z27.string().trim().min(1).max(16e3)
2434
- }).strict();
2435
- var WorkbenchResearchSendResultSchema = z27.object({ messageId: Id2 }).strict();
2436
- var WorkbenchCompletedResultSchema = z27.object({ completed: z27.boolean() }).strict();
2437
- var WorkbenchCommandSchema = z27.object({
2438
- name: z27.string().min(1).max(260),
2439
- description: z27.string().max(4096),
2440
- argumentHint: z27.string().max(1024).optional(),
2441
- kind: z27.enum(["builtin", "skill", "client"]),
2442
- allowDuringExecution: z27.boolean(),
2443
- supported: z27.boolean(),
2444
- reason: z27.string().max(1024).optional()
2445
- }).strict();
2446
- var WorkbenchCommandListResultSchema = z27.object({
2447
- commands: z27.array(WorkbenchCommandSchema).max(512)
2448
- }).strict();
2449
- var WorkbenchCommandInvokeRequestSchema = z27.object({
2469
+ prompt: z28.string().trim().min(1).max(16e3)
2470
+ }).strict();
2471
+ var WorkbenchResearchSendResultSchema = z28.object({ messageId: Id2 }).strict();
2472
+ var WorkbenchCompletedResultSchema = z28.object({ completed: z28.boolean() }).strict();
2473
+ var WorkbenchCommandSchema = z28.object({
2474
+ name: z28.string().min(1).max(260),
2475
+ description: z28.string().max(4096),
2476
+ argumentHint: z28.string().max(1024).optional(),
2477
+ kind: z28.enum(["builtin", "skill", "client"]),
2478
+ allowDuringExecution: z28.boolean(),
2479
+ supported: z28.boolean(),
2480
+ reason: z28.string().max(1024).optional()
2481
+ }).strict();
2482
+ var WorkbenchCommandListResultSchema = z28.object({
2483
+ commands: z28.array(WorkbenchCommandSchema).max(512)
2484
+ }).strict();
2485
+ var WorkbenchCommandInvokeRequestSchema = z28.object({
2450
2486
  ...Submission2,
2451
- name: z27.string().trim().min(1).max(260),
2452
- input: z27.string().max(16e3)
2453
- }).strict();
2454
- var WorkbenchCommandChoiceSchema = z27.object({
2455
- name: z27.string().min(1).max(260),
2456
- label: z27.string().min(1).max(1024),
2457
- input: z27.string().max(16e3)
2458
- }).strict();
2459
- var WorkbenchCommandResultSchema = z27.discriminatedUnion("kind", [
2460
- z27.object({ kind: z27.literal("text"), text: Text }).strict(),
2461
- z27.object({ kind: z27.literal("completed") }).strict(),
2462
- z27.object({ kind: z27.literal("sent"), messageId: Id2 }).strict(),
2463
- z27.object({
2464
- kind: z27.literal("select-subcommand"),
2465
- choices: z27.array(WorkbenchCommandChoiceSchema).min(1).max(100)
2487
+ name: z28.string().trim().min(1).max(260),
2488
+ input: z28.string().max(16e3)
2489
+ }).strict();
2490
+ var WorkbenchCommandChoiceSchema = z28.object({
2491
+ name: z28.string().min(1).max(260),
2492
+ label: z28.string().min(1).max(1024),
2493
+ input: z28.string().max(16e3)
2494
+ }).strict();
2495
+ var WorkbenchCommandResultSchema = z28.discriminatedUnion("kind", [
2496
+ z28.object({ kind: z28.literal("text"), text: Text }).strict(),
2497
+ z28.object({ kind: z28.literal("completed") }).strict(),
2498
+ z28.object({ kind: z28.literal("sent"), messageId: Id2 }).strict(),
2499
+ z28.object({
2500
+ kind: z28.literal("select-subcommand"),
2501
+ choices: z28.array(WorkbenchCommandChoiceSchema).min(1).max(100)
2466
2502
  }).strict()
2467
2503
  ]);
2468
- var WorkbenchQueueItemSchema = z27.object({
2504
+ var WorkbenchQueueItemSchema = z28.object({
2469
2505
  id: Id2,
2470
- kind: z27.string().min(1).max(64),
2471
- texts: z27.array(z27.string().max(1e5)).min(1).max(100),
2472
- actions: z27.array(z27.enum(["edit", "remove", "move", "send-now"])).max(4)
2506
+ kind: z28.string().min(1).max(64),
2507
+ texts: z28.array(z28.string().max(1e5)).min(1).max(100),
2508
+ actions: z28.array(z28.enum(["edit", "remove", "move", "send-now"])).max(4)
2473
2509
  }).strict();
2474
- var WorkbenchQueueSnapshotSchema = z27.object({
2510
+ var WorkbenchQueueSnapshotSchema = z28.object({
2475
2511
  generation: Id2,
2476
2512
  revision: Id2,
2477
- items: z27.array(WorkbenchQueueItemSchema).max(512),
2478
- steeringMessages: z27.array(z27.string().max(1e5)).max(512)
2513
+ items: z28.array(WorkbenchQueueItemSchema).max(512),
2514
+ steeringMessages: z28.array(z28.string().max(1e5)).max(512)
2479
2515
  }).strict();
2480
2516
  var QueueMutation = {
2481
2517
  ...Submission2,
@@ -2483,48 +2519,48 @@ var QueueMutation = {
2483
2519
  revision: Id2,
2484
2520
  id: Id2
2485
2521
  };
2486
- var WorkbenchQueueMutationRequestSchema = z27.discriminatedUnion("action", [
2487
- z27.object({ ...QueueMutation, action: z27.literal("edit"), prompt: z27.string().trim().min(1).max(1e5) }).strict(),
2488
- z27.object({ ...QueueMutation, action: z27.literal("remove") }).strict(),
2489
- z27.object({ ...QueueMutation, action: z27.literal("move"), toPosition: z27.number().int().min(0).max(511) }).strict(),
2490
- z27.object({ ...QueueMutation, action: z27.literal("send-now") }).strict()
2491
- ]);
2492
- var WorkbenchQueueMutationResultSchema = z27.object({
2493
- changed: z27.boolean(),
2522
+ var WorkbenchQueueMutationRequestSchema = z28.discriminatedUnion("action", [
2523
+ z28.object({ ...QueueMutation, action: z28.literal("edit"), prompt: z28.string().trim().min(1).max(1e5) }).strict(),
2524
+ z28.object({ ...QueueMutation, action: z28.literal("remove") }).strict(),
2525
+ z28.object({ ...QueueMutation, action: z28.literal("move"), toPosition: z28.number().int().min(0).max(511) }).strict(),
2526
+ z28.object({ ...QueueMutation, action: z28.literal("send-now") }).strict()
2527
+ ]);
2528
+ var WorkbenchQueueMutationResultSchema = z28.object({
2529
+ changed: z28.boolean(),
2494
2530
  snapshot: WorkbenchQueueSnapshotSchema
2495
2531
  }).strict();
2496
- var WorkbenchTokenMetricSchema = z27.object({
2497
- kind: z27.string().min(1).max(128),
2532
+ var WorkbenchTokenMetricSchema = z28.object({
2533
+ kind: z28.string().min(1).max(128),
2498
2534
  count: Count
2499
2535
  }).strict();
2500
- var WorkbenchModelUsageSchema = z27.object({
2536
+ var WorkbenchModelUsageSchema = z28.object({
2501
2537
  model: Id2,
2502
2538
  requests: Count,
2503
- premiumRequestCost: z27.number().finite().nonnegative(),
2504
- tokens: z27.array(WorkbenchTokenMetricSchema).max(32)
2539
+ premiumRequestCost: z28.number().finite().nonnegative(),
2540
+ tokens: z28.array(WorkbenchTokenMetricSchema).max(32)
2505
2541
  }).strict();
2506
- var WorkbenchContextSchema = z27.object({
2542
+ var WorkbenchContextSchema = z28.object({
2507
2543
  currentTokens: Count,
2508
2544
  tokenLimit: Count,
2509
2545
  systemTokens: Count.optional(),
2510
2546
  conversationTokens: Count.optional(),
2511
2547
  toolTokens: Count.optional()
2512
2548
  }).strict();
2513
- var WorkbenchInsightsSchema = z27.object({
2514
- sampledAt: z27.iso.datetime(),
2549
+ var WorkbenchInsightsSchema = z28.object({
2550
+ sampledAt: z28.iso.datetime(),
2515
2551
  generation: Id2,
2516
2552
  model: Id2.optional(),
2517
2553
  totalUserRequests: Count,
2518
- premiumRequestCost: z27.number().finite().nonnegative(),
2519
- nanoAiu: z27.string().regex(/^\d+$/).max(40).optional(),
2520
- tokens: z27.array(WorkbenchTokenMetricSchema).max(32),
2521
- models: z27.array(WorkbenchModelUsageSchema).max(100),
2554
+ premiumRequestCost: z28.number().finite().nonnegative(),
2555
+ nanoAiu: z28.string().regex(/^\d+$/).max(40).optional(),
2556
+ tokens: z28.array(WorkbenchTokenMetricSchema).max(32),
2557
+ models: z28.array(WorkbenchModelUsageSchema).max(100),
2522
2558
  context: WorkbenchContextSchema.optional(),
2523
- canCompact: z27.boolean(),
2524
- compactUnavailableReason: z27.string().max(1024).optional()
2559
+ canCompact: z28.boolean(),
2560
+ compactUnavailableReason: z28.string().max(1024).optional()
2525
2561
  }).strict();
2526
- var WorkbenchCompactResultSchema = z27.object({
2527
- success: z27.boolean(),
2562
+ var WorkbenchCompactResultSchema = z28.object({
2563
+ success: z28.boolean(),
2528
2564
  tokensRemoved: Count,
2529
2565
  messagesRemoved: Count
2530
2566
  }).strict();
@@ -2560,6 +2596,8 @@ var WorkbenchAndroidSchemas = {
2560
2596
 
2561
2597
  // ../protocol/dist/codegen/android-schemas.js
2562
2598
  var AndroidProtocolSchemas = {
2599
+ BrowserOpenUrlParams: BrowserOpenUrlParamsSchema,
2600
+ BrowserOpenUrlResult: BrowserOpenUrlResultSchema,
2563
2601
  TimelineImageBlobRequest: TimelineImageBlobRequestSchema,
2564
2602
  TimelineImageBlobResult: TimelineImageBlobResultSchema,
2565
2603
  SessionImageUploadRequest: SessionImageUploadRequestSchema,
@@ -2571,8 +2609,9 @@ var AndroidProtocolSchemas = {
2571
2609
  ...ScheduleAndroidSchemas,
2572
2610
  SessionCommunication: SessionCommunicationSchema,
2573
2611
  SessionGitDiffData: SessionGitDiffDataSchema,
2574
- SessionGitDiffEntry: SessionGitDiffEntrySchema,
2575
- SessionGitDiffResultData: SessionGitDiffResultDataSchema,
2612
+ SessionGitDiffEntry: SessionGitDiffPartialEntrySchema,
2613
+ SessionGitDiffResultData: SessionGitDiffPartialResultDataSchema,
2614
+ SessionGitDiffFileError: SessionGitDiffFileErrorSchema,
2576
2615
  SessionGitDiffGzipResultData: SessionGitDiffGzipResultDataSchema,
2577
2616
  SessionRenameData: SessionRenameDataSchema,
2578
2617
  SessionRenameResultData: SessionRenameResultDataSchema,
@@ -2733,12 +2772,14 @@ export {
2733
2772
  SESSION_GIT_DIFF_OPERATION,
2734
2773
  SESSION_GIT_DIFF_VERSION,
2735
2774
  SESSION_GIT_DIFF_GZIP_VERSION,
2775
+ SESSION_GIT_DIFF_PARTIAL_VERSION,
2736
2776
  SESSION_GIT_DIFF_GZIP_MIN_BYTES,
2737
2777
  SESSION_GIT_DIFF_MAX_FILES,
2738
2778
  SESSION_GIT_DIFF_MAX_PATCH_BYTES,
2739
2779
  SESSION_GIT_DIFF_MAX_RESPONSE_BYTES,
2740
2780
  SessionGitDiffDataSchema,
2741
2781
  SessionGitDiffResultDataSchema,
2782
+ SessionGitDiffPartialResultDataSchema,
2742
2783
  SessionGitDiffGzipResultDataSchema,
2743
2784
  SESSION_RESOURCE_READ_OPERATION,
2744
2785
  SESSION_RESOURCE_READ_VERSION,