@agentknight/sdk 0.9.44 → 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,19 +1875,19 @@ 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;
@@ -1880,24 +1899,24 @@ var SESSION_GIT_DIFF_MAX_RESPONSE_BYTES = 512 * 1024;
1880
1899
  var SESSION_GIT_DIFF_MAX_TRANSFER_BYTES = SESSION_GIT_DIFF_MAX_RESPONSE_BYTES + 1024;
1881
1900
  var SESSION_GIT_DIFF_MAX_BASE64_LENGTH = Math.ceil(SESSION_GIT_DIFF_MAX_TRANSFER_BYTES / 3) * 4;
1882
1901
  var SESSION_GIT_DIFF_MAX_GZIP_RESPONSE_BYTES = SESSION_GIT_DIFF_MAX_BASE64_LENGTH + 1024;
1883
- var commitSchema = z19.string().regex(/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/u);
1884
- var SessionGitDiffDataSchema = z19.object({
1902
+ var commitSchema = z20.string().regex(/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/u);
1903
+ var SessionGitDiffDataSchema = z20.object({
1885
1904
  rootRevision: SessionFileReadDataSchema.shape.rootRevision,
1886
1905
  path: SessionFileReadDataSchema.shape.path.optional(),
1887
1906
  baseCommit: commitSchema.optional()
1888
1907
  }).strict().refine((value) => value.path === void 0 === (value.baseCommit === void 0), "A file diff must identify its listed base commit");
1889
- var SessionGitDiffEntrySchema = z19.object({
1908
+ var SessionGitDiffEntrySchema = z20.object({
1890
1909
  path: SessionFileReadDataSchema.shape.path,
1891
- status: z19.enum(["added", "modified", "deleted", "untracked"])
1910
+ status: z20.enum(["added", "modified", "deleted", "untracked"])
1892
1911
  }).strict();
1893
- var SessionGitDiffResultDataSchema = z19.object({
1912
+ var SessionGitDiffResultDataSchema = z20.object({
1894
1913
  rootRevision: SessionFileReadDataSchema.shape.rootRevision,
1895
- baseRef: z19.enum(["origin/main", "main"]),
1914
+ baseRef: z20.enum(["origin/main", "main"]),
1896
1915
  baseCommit: commitSchema,
1897
- files: z19.array(SessionGitDiffEntrySchema).max(SESSION_GIT_DIFF_MAX_FILES).optional(),
1916
+ files: z20.array(SessionGitDiffEntrySchema).max(SESSION_GIT_DIFF_MAX_FILES).optional(),
1898
1917
  path: SessionFileReadDataSchema.shape.path.optional(),
1899
- patch: z19.string().max(SESSION_GIT_DIFF_MAX_PATCH_BYTES).optional(),
1900
- binary: z19.boolean().optional()
1918
+ patch: z20.string().max(SESSION_GIT_DIFF_MAX_PATCH_BYTES).optional(),
1919
+ binary: z20.boolean().optional()
1901
1920
  }).strict().superRefine((value, context) => {
1902
1921
  const encoder = new TextEncoder();
1903
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) {
@@ -1911,13 +1930,13 @@ var SessionGitDiffResultDataSchema = z19.object({
1911
1930
  context.addIssue({ code: "custom", message: "Expected a text patch or an explicit binary change" });
1912
1931
  }
1913
1932
  });
1914
- var SessionGitDiffFileErrorSchema = z19.object({
1915
- code: z19.enum(["DIFF_BLOCKED", "DIFF_FILE_UNAVAILABLE"]),
1916
- message: z19.string().min(1).max(512)
1933
+ var SessionGitDiffFileErrorSchema = z20.object({
1934
+ code: z20.enum(["DIFF_BLOCKED", "DIFF_FILE_UNAVAILABLE"]),
1935
+ message: z20.string().min(1).max(512)
1917
1936
  }).strict();
1918
1937
  var SessionGitDiffPartialEntrySchema = SessionGitDiffEntrySchema.extend({
1919
1938
  // Error paths are display-only: they must never be used for file requests.
1920
- path: z19.string().min(1).max(32768).refine((value) => !value.includes("\0")),
1939
+ path: z20.string().min(1).max(32768).refine((value) => !value.includes("\0")),
1921
1940
  error: SessionGitDiffFileErrorSchema.optional()
1922
1941
  }).superRefine((value, context) => {
1923
1942
  if (value.error === void 0 && !SessionGitDiffEntrySchema.shape.path.safeParse(value.path).success) {
@@ -1925,12 +1944,12 @@ var SessionGitDiffPartialEntrySchema = SessionGitDiffEntrySchema.extend({
1925
1944
  }
1926
1945
  });
1927
1946
  var SessionGitDiffPartialResultDataSchema = SessionGitDiffResultDataSchema.safeExtend({
1928
- files: z19.array(SessionGitDiffPartialEntrySchema).max(SESSION_GIT_DIFF_MAX_FILES).optional()
1947
+ files: z20.array(SessionGitDiffPartialEntrySchema).max(SESSION_GIT_DIFF_MAX_FILES).optional()
1929
1948
  });
1930
- var SessionGitDiffGzipResultDataSchema = z19.object({
1931
- encoding: z19.literal("gzip"),
1932
- byteLength: z19.number().int().min(1).max(SESSION_GIT_DIFF_MAX_RESPONSE_BYTES),
1933
- data: z19.string().max(SESSION_GIT_DIFF_MAX_BASE64_LENGTH).regex(/^[A-Za-z0-9+/]*={0,2}$/u)
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)
1934
1953
  }).strict().superRefine((value, context) => {
1935
1954
  const padding = value.data.endsWith("==") ? 2 : value.data.endsWith("=") ? 1 : 0;
1936
1955
  const bytes = value.data.length / 4 * 3 - padding;
@@ -1940,13 +1959,13 @@ var SessionGitDiffGzipResultDataSchema = z19.object({
1940
1959
  context.addIssue({ code: "custom", message: "Invalid gzip transfer" });
1941
1960
  }
1942
1961
  });
1943
- var SessionGitDiffV2ResultDataSchema = z19.union([
1962
+ var SessionGitDiffV2ResultDataSchema = z20.union([
1944
1963
  SessionGitDiffResultDataSchema,
1945
1964
  SessionGitDiffGzipResultDataSchema
1946
1965
  ]);
1947
1966
 
1948
1967
  // ../protocol/dist/sessions/session-resource.js
1949
- import { z as z20 } from "zod";
1968
+ import { z as z21 } from "zod";
1950
1969
  var SESSION_RESOURCE_READ_OPERATION = "session.resource.read";
1951
1970
  var SESSION_RESOURCE_READ_VERSION = 1;
1952
1971
  var SESSION_RESOURCE_MAX_ORIGINAL_BYTES = 499999;
@@ -1962,18 +1981,18 @@ var SESSION_RESOURCE_MEDIA_TYPES = [
1962
1981
  "text/css",
1963
1982
  "text/javascript"
1964
1983
  ];
1965
- var SessionResourceReadDataSchema = z20.object({
1966
- path: z20.string().min(1).max(SESSION_DIRECTORY_MAX_PATH_LENGTH).refine(isSafeSessionDirectoryPath),
1967
- 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)
1968
1987
  }).strict();
1969
- var SessionResourceReadResultDataSchema = z20.object({
1988
+ var SessionResourceReadResultDataSchema = z21.object({
1970
1989
  path: SessionResourceReadDataSchema.shape.path,
1971
1990
  rootRevision: SessionResourceReadDataSchema.shape.rootRevision,
1972
- mediaType: z20.enum(SESSION_RESOURCE_MEDIA_TYPES),
1973
- originalByteLength: z20.number().int().min(0).max(SESSION_RESOURCE_MAX_ORIGINAL_BYTES),
1974
- byteLength: z20.number().int().min(0).max(SESSION_RESOURCE_MAX_ORIGINAL_BYTES),
1975
- encoding: z20.enum(["identity", "gzip"]),
1976
- 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)
1977
1996
  }).strict().superRefine((result, context) => {
1978
1997
  const invalid = () => context.addIssue({ code: "custom", message: "Invalid resource content" });
1979
1998
  if (result.encoding === "gzip" !== result.originalByteLength >= SESSION_RESOURCE_GZIP_THRESHOLD_BYTES || result.byteLength !== result.originalByteLength || result.mediaType.startsWith("image/") && result.byteLength === 0)
@@ -1986,112 +2005,112 @@ var SessionResourceReadResultDataSchema = z20.object({
1986
2005
  });
1987
2006
 
1988
2007
  // ../protocol/dist/sessions/session-images.js
1989
- import { z as z21 } from "zod";
2008
+ import { z as z22 } from "zod";
1990
2009
  var SESSION_IMAGE_MAX_BYTES = 3 * 1024 * 1024;
1991
2010
  var SESSION_IMAGE_MAX_PIXELS = 16 * 1024 * 1024;
1992
2011
  var SESSION_IMAGE_API_PATH = "/api/v3/session-images";
1993
2012
  var TIMELINE_IMAGE_BLOB_OPERATION = "session.image.blob";
1994
2013
  var TIMELINE_IMAGE_BLOB_VERSION = 1;
1995
- var SessionImageIdSchema = z21.uuid();
1996
- var SessionImageTransferModeSchema = z21.enum(["direct", "proxy"]);
1997
- 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) => {
1998
2017
  if (!URL.canParse(raw))
1999
2018
  return false;
2000
2019
  const url = new URL(raw);
2001
2020
  return url.protocol === "https:" && url.username === "" && url.password === "" && url.hash === "";
2002
2021
  }, "Direct transfers require HTTPS without userinfo, fragments or unsafe characters");
2003
- var ProxyUrlSchema = z21.string().regex(/^\/api\/v3\/session-images\/[0-9a-f-]+\/content\?[^#\\\s\x00-\x1f\x7f]+$/u);
2004
- 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));
2005
- 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({
2006
2025
  machineId: IdSchema,
2007
2026
  sessionId: IdSchema,
2008
- sizeBytes: z21.number().int().min(1).max(SESSION_IMAGE_MAX_BYTES)
2027
+ sizeBytes: z22.number().int().min(1).max(SESSION_IMAGE_MAX_BYTES)
2009
2028
  }).strict();
2010
- var SessionImageScopeSchema = z21.object({
2029
+ var SessionImageScopeSchema = z22.object({
2011
2030
  machineId: IdSchema,
2012
2031
  sessionId: IdSchema
2013
2032
  }).strict();
2014
2033
  var UploadResultFields = {
2015
2034
  imageId: SessionImageIdSchema,
2016
- uploadExpiresAt: z21.number().int().positive(),
2017
- method: z21.literal("PUT"),
2018
- contentType: z21.literal("image/webp"),
2035
+ uploadExpiresAt: z22.number().int().positive(),
2036
+ method: z22.literal("PUT"),
2037
+ contentType: z22.literal("image/webp"),
2019
2038
  headers: SessionImageTransferHeadersSchema.refine((headers) => headers["content-type"] === "image/webp")
2020
2039
  };
2021
- var SessionImageUploadResultSchema = z21.discriminatedUnion("mode", [
2022
- z21.object({ ...UploadResultFields, mode: z21.literal("direct"), uploadUrl: DirectUrlSchema }).strict(),
2023
- 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()
2024
2043
  ]);
2025
- var SessionImageCommitResultSchema = z21.object({
2044
+ var SessionImageCommitResultSchema = z22.object({
2026
2045
  imageId: SessionImageIdSchema,
2027
2046
  machineId: IdSchema,
2028
2047
  sessionId: IdSchema,
2029
- sizeBytes: z21.number().int().min(1).max(SESSION_IMAGE_MAX_BYTES),
2030
- width: z21.number().int().positive(),
2031
- height: z21.number().int().positive(),
2032
- sha256: z21.string().regex(/^[a-f0-9]{64}$/u),
2033
- 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()
2034
2053
  }).strict();
2035
2054
  var DownloadResultFields = {
2036
2055
  image: SessionImageCommitResultSchema,
2037
- downloadExpiresAt: z21.number().int().positive(),
2038
- method: z21.literal("GET"),
2056
+ downloadExpiresAt: z22.number().int().positive(),
2057
+ method: z22.literal("GET"),
2039
2058
  headers: SessionImageTransferHeadersSchema
2040
2059
  };
2041
- var SessionImageDownloadResultSchema = z21.discriminatedUnion("mode", [
2042
- z21.object({ ...DownloadResultFields, mode: z21.literal("direct"), downloadUrl: DirectUrlSchema }).strict(),
2043
- 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()
2044
2063
  ]);
2045
- var TimelineImageBlobRequestSchema = z21.object({
2046
- sha256: z21.string().regex(/^[a-f0-9]{64}$/u)
2064
+ var TimelineImageBlobRequestSchema = z22.object({
2065
+ sha256: z22.string().regex(/^[a-f0-9]{64}$/u)
2047
2066
  }).strict();
2048
- var TimelineImageBlobResultSchema = z21.object({
2067
+ var TimelineImageBlobResultSchema = z22.object({
2049
2068
  sha256: TimelineImageBlobRequestSchema.shape.sha256,
2050
2069
  image: SessionImageCommitResultSchema
2051
2070
  }).strict();
2052
2071
 
2053
2072
  // ../protocol/dist/sessions/session-rename.js
2054
- import { z as z22 } from "zod";
2073
+ import { z as z23 } from "zod";
2055
2074
  var SESSION_RENAME_OPERATION = "session.rename";
2056
2075
  var SESSION_RENAME_VERSION = 1;
2057
2076
  var SESSION_RENAME_CAPABILITY = sessionCommunicationOperationCapability(SESSION_RENAME_OPERATION, SESSION_RENAME_VERSION);
2058
2077
  var SESSION_NAME_MAX_LENGTH = 100;
2059
- var SessionNameSchema = z22.string().regex(/^[^\u0000-\u001f\u007f]*$/u).trim().min(1).max(SESSION_NAME_MAX_LENGTH);
2060
- var SessionRenameDataSchema = z22.object({ name: SessionNameSchema }).strict();
2061
- 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();
2062
2081
 
2063
2082
  // ../protocol/dist/sessions/group-chat.js
2064
- import { z as z23 } from "zod";
2083
+ import { z as z24 } from "zod";
2065
2084
  var GROUP_CHAT_CREATE_OPERATION = "group-chat.create";
2066
2085
  var GROUP_CHAT_CREATE_VERSION = 1;
2067
2086
  var GROUP_CHAT_CREATE_CAPABILITY = sessionCommunicationOperationCapability(GROUP_CHAT_CREATE_OPERATION, GROUP_CHAT_CREATE_VERSION);
2068
- var GroupChatCreateDataSchema = z23.object({
2087
+ var GroupChatCreateDataSchema = z24.object({
2069
2088
  peerSessionId: IdSchema
2070
2089
  }).strict();
2071
- var GroupChatCreateResultDataSchema = z23.object({
2090
+ var GroupChatCreateResultDataSchema = z24.object({
2072
2091
  session: SessionSummarySchema.refine((session) => session.groupChat !== void 0, "Group creation must return a virtual group session")
2073
2092
  }).strict();
2074
2093
 
2075
2094
  // ../protocol/dist/sessions/prompts.js
2076
- import { z as z24 } from "zod";
2095
+ import { z as z25 } from "zod";
2077
2096
  var SESSION_FILE_ATTACHMENTS_CAPABILITY = "session-file-attachments";
2078
2097
  var SESSION_PROMPT_SUBMISSION_TIME_CAPABILITY = "session-prompt-submission-time";
2079
2098
  var SESSION_AVATAR_PERSONA_CAPABILITY = "session-avatar-persona";
2080
- var SessionAvatarPersonaSchema = z24.object({
2081
- role: z24.enum(["designer", "filmmaker", "developer", "secretary", "default"]),
2082
- 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()
2083
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" });
2084
2103
  var MAX_PROMPT_IMAGE_BYTES = 3 * 1024 * 1024;
2085
- var SessionPromptRequestSchema = z24.object({
2104
+ var SessionPromptRequestSchema = z25.object({
2086
2105
  requestId: IdSchema,
2087
2106
  operationId: IdSchema,
2088
2107
  machineId: IdSchema,
2089
2108
  sessionId: IdSchema,
2090
- prompt: z24.string().trim().max(1e5),
2091
- attachments: z24.array(PromptImageAttachmentSchema).max(4).optional(),
2092
- 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(),
2093
2112
  avatarPersona: SessionAvatarPersonaSchema.optional(),
2094
- mode: z24.enum(["enqueue", "immediate"]).default("enqueue")
2113
+ mode: z25.enum(["enqueue", "immediate"]).default("enqueue")
2095
2114
  }).strict().superRefine((request, context) => {
2096
2115
  if (request.prompt.length === 0 && (request.attachments?.length ?? 0) === 0 && (request.fileAttachments?.length ?? 0) === 0) {
2097
2116
  context.addIssue({
@@ -2117,22 +2136,22 @@ var SessionPromptRequestSchema = z24.object({
2117
2136
  });
2118
2137
  }
2119
2138
  });
2120
- var SessionPromptResultSchema = z24.discriminatedUnion("ok", [
2121
- z24.object({
2122
- ok: z24.literal(true),
2139
+ var SessionPromptResultSchema = z25.discriminatedUnion("ok", [
2140
+ z25.object({
2141
+ ok: z25.literal(true),
2123
2142
  requestId: IdSchema,
2124
2143
  operationId: IdSchema,
2125
2144
  machineId: IdSchema,
2126
2145
  sessionId: IdSchema,
2127
2146
  messageId: IdSchema,
2128
- mode: z24.enum(["enqueue", "immediate"]),
2129
- deliveryState: z24.enum(["queued", "processing"]),
2147
+ mode: z25.enum(["enqueue", "immediate"]),
2148
+ deliveryState: z25.enum(["queued", "processing"]),
2130
2149
  // Negotiated lower bound from the native event clock. Exact text and history
2131
2150
  // ownership checks still apply; this is not an identity or proof of persistence.
2132
2151
  submittedAt: IsoDateSchema.optional()
2133
2152
  }),
2134
- z24.object({
2135
- ok: z24.literal(false),
2153
+ z25.object({
2154
+ ok: z25.literal(false),
2136
2155
  requestId: IdSchema,
2137
2156
  operationId: IdSchema,
2138
2157
  machineId: IdSchema,
@@ -2140,29 +2159,29 @@ var SessionPromptResultSchema = z24.discriminatedUnion("ok", [
2140
2159
  error: ProtocolFailureSchema
2141
2160
  })
2142
2161
  ]);
2143
- var SessionActivityUpdateSchema = z24.object({
2162
+ var SessionActivityUpdateSchema = z25.object({
2144
2163
  userId: IdSchema,
2145
2164
  machineId: IdSchema,
2146
2165
  sessionId: IdSchema,
2147
- state: z24.enum(["working", "idle"]),
2166
+ state: z25.enum(["working", "idle"]),
2148
2167
  occurredAt: IsoDateSchema,
2149
2168
  assistantPreview: SessionAssistantPreviewSchema.optional(),
2150
2169
  userPreview: SessionUserPreviewSchema.optional()
2151
2170
  });
2152
- var SessionAbortRequestSchema = z24.object({
2171
+ var SessionAbortRequestSchema = z25.object({
2153
2172
  requestId: IdSchema,
2154
2173
  machineId: IdSchema,
2155
2174
  sessionId: IdSchema
2156
2175
  });
2157
- var SessionAbortResultSchema = z24.discriminatedUnion("ok", [
2158
- z24.object({
2159
- ok: z24.literal(true),
2176
+ var SessionAbortResultSchema = z25.discriminatedUnion("ok", [
2177
+ z25.object({
2178
+ ok: z25.literal(true),
2160
2179
  requestId: IdSchema,
2161
2180
  machineId: IdSchema,
2162
2181
  sessionId: IdSchema
2163
2182
  }),
2164
- z24.object({
2165
- ok: z24.literal(false),
2183
+ z25.object({
2184
+ ok: z25.literal(false),
2166
2185
  requestId: IdSchema,
2167
2186
  machineId: IdSchema,
2168
2187
  sessionId: IdSchema,
@@ -2171,7 +2190,7 @@ var SessionAbortResultSchema = z24.discriminatedUnion("ok", [
2171
2190
  ]);
2172
2191
 
2173
2192
  // ../protocol/dist/conversation/timeline-sync.js
2174
- import { z as z25 } from "zod";
2193
+ import { z as z26 } from "zod";
2175
2194
  var TIMELINE_SYNC_OPERATION = "session.timeline.sync";
2176
2195
  var TIMELINE_IMAGE_OPERATION = "session.image.read";
2177
2196
  var TIMELINE_SYNC_VERSION = 1;
@@ -2179,37 +2198,37 @@ var TIMELINE_SYNC_MAX_EVENTS = 128;
2179
2198
  var TIMELINE_SYNC_MAX_BYTES = 6 * 1024 * 1024;
2180
2199
  var TIMELINE_IMAGE_CHUNK_BYTES = 48 * 1024;
2181
2200
  var TIMELINE_IMAGE_MAX_BYTES = 3 * 1024 * 1024;
2182
- var identity = z25.string().min(1).max(256);
2183
- var sequence = z25.number().int().min(0).max(Number.MAX_SAFE_INTEGER);
2184
- var hash = z25.string().regex(/^[a-f0-9]{64}$/u);
2185
- 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({
2186
2205
  epoch: identity,
2187
2206
  sequence
2188
2207
  }).strict();
2189
- var TimelineSyncRequestSchema = z25.object({
2208
+ var TimelineSyncRequestSchema = z26.object({
2190
2209
  watermark: TimelineWatermarkSchema.optional(),
2191
- waitMs: z25.number().int().min(0).max(2e4).optional(),
2192
- resume: z25.boolean().optional()
2210
+ waitMs: z26.number().int().min(0).max(2e4).optional(),
2211
+ resume: z26.boolean().optional()
2193
2212
  }).strict();
2194
- var TimelineTextAppendSchema = z25.object({
2213
+ var TimelineTextAppendSchema = z26.object({
2195
2214
  itemId: identity,
2196
- baseRevision: z25.number().int().positive(),
2197
- revision: z25.number().int().positive(),
2198
- appendText: z25.string().min(1).max(5e5),
2199
- sourceEventIds: z25.array(identity).min(1).max(1e3).optional(),
2200
- sourceMessageIds: z25.array(identity).min(1).max(1e3).optional(),
2201
- sourceInteractionIds: z25.array(identity).min(1).max(1e3).optional()
2202
- }).strict();
2203
- var TimelineSyncEventSchema = z25.discriminatedUnion("kind", [
2204
- z25.object({ kind: z25.literal("upsert"), sequence, item: ConversationItemSchema }).strict(),
2205
- z25.object({ kind: z25.literal("append"), sequence, append: TimelineTextAppendSchema }).strict(),
2206
- z25.object({
2207
- 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"),
2208
2227
  sequence,
2209
2228
  upsert: ConversationActivityStepUpsertSchema
2210
2229
  }).strict()
2211
2230
  ]);
2212
- var TimelineResyncReasonSchema = z25.enum([
2231
+ var TimelineResyncReasonSchema = z26.enum([
2213
2232
  "initial",
2214
2233
  "epoch-changed",
2215
2234
  "evicted",
@@ -2218,36 +2237,36 @@ var TimelineResyncReasonSchema = z25.enum([
2218
2237
  "rewind",
2219
2238
  "oversized"
2220
2239
  ]);
2221
- var TimelineSyncResponseSchema = z25.discriminatedUnion("status", [
2222
- z25.object({
2223
- status: z25.literal("snapshot"),
2240
+ var TimelineSyncResponseSchema = z26.discriminatedUnion("status", [
2241
+ z26.object({
2242
+ status: z26.literal("snapshot"),
2224
2243
  watermark: TimelineWatermarkSchema,
2225
2244
  page: SessionTimelinePageSchema
2226
2245
  }).strict(),
2227
- z25.object({
2228
- status: z25.literal("replay"),
2246
+ z26.object({
2247
+ status: z26.literal("replay"),
2229
2248
  watermark: TimelineWatermarkSchema,
2230
2249
  afterSequence: sequence,
2231
- events: z25.array(TimelineSyncEventSchema).max(TIMELINE_SYNC_MAX_EVENTS),
2232
- hasMore: z25.boolean()
2250
+ events: z26.array(TimelineSyncEventSchema).max(TIMELINE_SYNC_MAX_EVENTS),
2251
+ hasMore: z26.boolean()
2233
2252
  }).strict(),
2234
- z25.object({
2235
- status: z25.literal("resync"),
2253
+ z26.object({
2254
+ status: z26.literal("resync"),
2236
2255
  epoch: identity,
2237
2256
  reason: TimelineResyncReasonSchema
2238
2257
  }).strict()
2239
2258
  ]);
2240
- var TimelineImageRequestSchema = z25.object({
2259
+ var TimelineImageRequestSchema = z26.object({
2241
2260
  sha256: hash,
2242
- 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)
2243
2262
  }).strict();
2244
- var TimelineImageChunkSchema = z25.object({
2263
+ var TimelineImageChunkSchema = z26.object({
2245
2264
  sha256: hash,
2246
- offset: z25.number().int().min(0).max(TIMELINE_IMAGE_MAX_BYTES - 1),
2247
- totalBytes: z25.number().int().positive().max(TIMELINE_IMAGE_MAX_BYTES),
2248
- mimeType: z25.enum(["image/gif", "image/jpeg", "image/png", "image/webp"]),
2249
- 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),
2250
- 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()
2251
2270
  }).strict().superRefine((chunk, context) => {
2252
2271
  const padding = chunk.data.endsWith("==") ? 2 : chunk.data.endsWith("=") ? 1 : 0;
2253
2272
  const length = chunk.data.length / 4 * 3 - padding;
@@ -2258,10 +2277,10 @@ var TimelineImageChunkSchema = z25.object({
2258
2277
  });
2259
2278
 
2260
2279
  // ../protocol/dist/workbench.js
2261
- import { z as z27 } from "zod";
2280
+ import { z as z28 } from "zod";
2262
2281
 
2263
2282
  // ../protocol/dist/schedules.js
2264
- import { z as z26 } from "zod";
2283
+ import { z as z27 } from "zod";
2265
2284
  var SCHEDULES_CAPABILITY = "session-schedules-v1";
2266
2285
  var SCHEDULE_OPERATIONS = [
2267
2286
  "schedule.snapshot",
@@ -2270,90 +2289,90 @@ var SCHEDULE_OPERATIONS = [
2270
2289
  "schedule.draft.dismiss",
2271
2290
  "schedule.resume"
2272
2291
  ];
2273
- var Id = z26.string().min(1).max(256);
2274
- var NativeId = z26.number().int().positive().max(Number.MAX_SAFE_INTEGER);
2275
- var Time = z26.iso.datetime({ offset: true });
2276
- var WorkbenchScheduleRuleSchema = z26.discriminatedUnion("kind", [
2277
- z26.object({ kind: z26.literal("once"), at: Time }).strict(),
2278
- z26.object({
2279
- kind: z26.literal("interval"),
2280
- seconds: z26.number().int().min(10).max(86400),
2281
- 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()
2282
2301
  }).strict(),
2283
- z26.object({
2284
- kind: z26.literal("cron"),
2285
- expression: z26.string().trim().min(9).max(256).regex(/^\S+(?: +\S+){4}$/),
2286
- 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_+./-]+$/)
2287
2306
  }).strict()
2288
2307
  ]);
2289
2308
  var Content = {
2290
2309
  rule: WorkbenchScheduleRuleSchema,
2291
- 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."),
2292
- 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.")
2293
2312
  };
2294
- var WorkbenchScheduleProposalSchema = z26.object(Content).strict().refine((value) => value.prompt.trim().length > 0 || value.skill !== void 0, { message: "A prompt or skill is required" });
2295
- var WorkbenchScheduleDraftSchema = z26.object({
2296
- 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(),
2297
2316
  createdAt: Time,
2298
2317
  ...Content
2299
2318
  }).strict();
2300
- var WorkbenchScheduleEntrySchema = z26.object({
2319
+ var WorkbenchScheduleEntrySchema = z27.object({
2301
2320
  id: NativeId,
2302
- prompt: z26.string().max(1e5),
2303
- displayPrompt: z26.string().max(1e5).optional(),
2304
- recurring: z26.boolean(),
2321
+ prompt: z27.string().max(1e5),
2322
+ displayPrompt: z27.string().max(1e5).optional(),
2323
+ recurring: z27.boolean(),
2305
2324
  nextRunAt: Time,
2306
- intervalMs: z26.number().int().positive().optional(),
2307
- cron: z26.string().max(256).optional(),
2308
- 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(),
2309
2328
  at: Time.optional()
2310
2329
  }).strict();
2311
- var WorkbenchScheduleResultSchema = z26.object({
2330
+ var WorkbenchScheduleResultSchema = z27.object({
2312
2331
  id: Id,
2313
2332
  scheduleId: NativeId,
2314
2333
  triggerEventId: Id,
2315
2334
  time: Time,
2316
- prompt: z26.string().max(16e3),
2317
- status: z26.enum(["reply", "error", "merged", "pending", "unknown"]),
2318
- 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(),
2319
2338
  replyEventId: Id.optional(),
2320
- error: z26.string().max(1024).optional()
2321
- }).strict();
2322
- var WorkbenchScheduleSnapshotSchema = z26.object({
2323
- state: z26.enum(["active", "needs-resume"]),
2324
- workingDirectory: z26.string().max(32768).optional(),
2325
- timezone: z26.string().max(128).optional(),
2326
- entries: z26.array(WorkbenchScheduleEntrySchema).max(256),
2327
- drafts: z26.array(WorkbenchScheduleDraftSchema).max(100),
2328
- results: z26.array(WorkbenchScheduleResultSchema).max(100),
2329
- 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(),
2330
2349
  sampledAt: Time
2331
2350
  }).strict();
2332
2351
  var Submission = {
2333
- operationId: z26.uuid(),
2334
- operationCreatedAt: z26.iso.datetime(),
2352
+ operationId: z27.uuid(),
2353
+ operationCreatedAt: z27.iso.datetime(),
2335
2354
  expectedAgentRunId: Id
2336
2355
  };
2337
- var WorkbenchScheduleCreateRequestSchema = z26.object({
2356
+ var WorkbenchScheduleCreateRequestSchema = z27.object({
2338
2357
  ...Submission,
2339
2358
  ...Content,
2340
- draftId: z26.uuid().optional()
2359
+ draftId: z27.uuid().optional()
2341
2360
  }).strict().refine((value) => value.prompt.trim().length > 0 || value.skill !== void 0, { message: "A prompt or skill is required" });
2342
- var WorkbenchScheduleCreateResultSchema = z26.object({
2361
+ var WorkbenchScheduleCreateResultSchema = z27.object({
2343
2362
  snapshot: WorkbenchScheduleSnapshotSchema,
2344
- verified: z26.boolean()
2363
+ verified: z27.boolean()
2345
2364
  }).strict();
2346
- var WorkbenchScheduleDeleteRequestSchema = z26.object({
2365
+ var WorkbenchScheduleDeleteRequestSchema = z27.object({
2347
2366
  ...Submission,
2348
2367
  id: NativeId
2349
2368
  }).strict();
2350
- var WorkbenchScheduleDeleteResultSchema = z26.object({
2369
+ var WorkbenchScheduleDeleteResultSchema = z27.object({
2351
2370
  snapshot: WorkbenchScheduleSnapshotSchema,
2352
- removed: z26.boolean()
2371
+ removed: z27.boolean()
2353
2372
  }).strict();
2354
- var WorkbenchScheduleDraftDismissRequestSchema = z26.object({
2373
+ var WorkbenchScheduleDraftDismissRequestSchema = z27.object({
2355
2374
  ...Submission,
2356
- draftId: z26.uuid()
2375
+ draftId: z27.uuid()
2357
2376
  }).strict();
2358
2377
  var ScheduleAndroidSchemas = {
2359
2378
  WorkbenchScheduleRule: WorkbenchScheduleRuleSchema,
@@ -2370,10 +2389,10 @@ var ScheduleAndroidSchemas = {
2370
2389
  };
2371
2390
 
2372
2391
  // ../protocol/dist/workbench.js
2373
- var Id2 = z27.string().trim().min(1).max(256);
2374
- var Text = z27.string().max(1e5);
2375
- var Count = z27.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER);
2376
- 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();
2377
2396
  var WORKBENCH_VERSION = 1;
2378
2397
  var RESEARCH_CHAT_CAPABILITY = "research-chat-v1";
2379
2398
  var WORKBENCH_OPERATIONS = [
@@ -2395,104 +2414,104 @@ var WORKBENCH_OPERATIONS = [
2395
2414
  ];
2396
2415
  var workbenchCapability = (operation) => `${operation}.v${WORKBENCH_VERSION}`;
2397
2416
  var Submission2 = {
2398
- operationId: z27.uuid(),
2399
- operationCreatedAt: z27.iso.datetime(),
2417
+ operationId: z28.uuid(),
2418
+ operationCreatedAt: z28.iso.datetime(),
2400
2419
  expectedAgentRunId: Id2
2401
2420
  };
2402
- var WorkbenchOperationGetSchema = z27.object({ operationId: z27.uuid() }).strict();
2403
- var WorkbenchOperationStatusSchema = z27.object({
2404
- operationId: z27.uuid(),
2405
- 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),
2406
2425
  agentRunId: Id2,
2407
- state: z27.enum(["running", "succeeded", "failed", "uncertain", "result-expired"]),
2408
- 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(),
2409
2428
  error: Failure.optional()
2410
2429
  }).strict().superRefine((value, context) => {
2411
2430
  if (value.state === "succeeded" !== (value.result !== void 0) || (value.state === "failed" || value.state === "uncertain") !== (value.error !== void 0)) {
2412
2431
  context.addIssue({ code: "custom", message: "Invalid operation state payload" });
2413
2432
  }
2414
2433
  });
2415
- var WorkbenchAskRequestSchema = z27.object({
2434
+ var WorkbenchAskRequestSchema = z28.object({
2416
2435
  ...Submission2,
2417
- question: z27.string().trim().min(1).max(16e3)
2436
+ question: z28.string().trim().min(1).max(16e3)
2418
2437
  }).strict();
2419
- var WorkbenchAskResultSchema = z27.object({ answer: Text }).strict();
2420
- var WorkbenchEmptyRequestSchema = z27.object({}).strict();
2421
- var WorkbenchSubmitRequestSchema = z27.object(Submission2).strict();
2422
- 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({
2423
2442
  ...Submission2,
2424
- title: z27.string().trim().min(1).max(120),
2425
- 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),
2426
2445
  sourceItemId: Id2.optional(),
2427
- deferInitialPrompt: z27.literal(true).optional()
2446
+ deferInitialPrompt: z28.literal(true).optional()
2428
2447
  }).strict();
2429
- var WorkbenchResearchThreadSchema = z27.object({
2448
+ var WorkbenchResearchThreadSchema = z28.object({
2430
2449
  sessionId: Id2,
2431
2450
  parentSessionId: Id2,
2432
- title: z27.string().min(1).max(120),
2433
- createdAt: z27.iso.datetime(),
2451
+ title: z28.string().min(1).max(120),
2452
+ createdAt: z28.iso.datetime(),
2434
2453
  contextAnchor: Id2.optional(),
2435
- contextTruncated: z27.boolean(),
2436
- detached: z27.boolean(),
2437
- state: z27.enum(["creating", "ready", "failed"])
2454
+ contextTruncated: z28.boolean(),
2455
+ detached: z28.boolean(),
2456
+ state: z28.enum(["creating", "ready", "failed"])
2438
2457
  }).strict();
2439
- var WorkbenchResearchCreateResultSchema = z27.object({
2458
+ var WorkbenchResearchCreateResultSchema = z28.object({
2440
2459
  thread: WorkbenchResearchThreadSchema
2441
2460
  }).strict();
2442
- var WorkbenchResearchListResultSchema = z27.object({
2443
- threads: z27.array(WorkbenchResearchThreadSchema).max(100)
2461
+ var WorkbenchResearchListResultSchema = z28.object({
2462
+ threads: z28.array(WorkbenchResearchThreadSchema).max(100)
2444
2463
  }).strict();
2445
- var WorkbenchResearchTimelineRequestSchema = z27.object({
2464
+ var WorkbenchResearchTimelineRequestSchema = z28.object({
2446
2465
  cursor: Id2.optional()
2447
2466
  }).strict();
2448
- var WorkbenchResearchSendRequestSchema = z27.object({
2467
+ var WorkbenchResearchSendRequestSchema = z28.object({
2449
2468
  ...Submission2,
2450
- prompt: z27.string().trim().min(1).max(16e3)
2451
- }).strict();
2452
- var WorkbenchResearchSendResultSchema = z27.object({ messageId: Id2 }).strict();
2453
- var WorkbenchCompletedResultSchema = z27.object({ completed: z27.boolean() }).strict();
2454
- var WorkbenchCommandSchema = z27.object({
2455
- name: z27.string().min(1).max(260),
2456
- description: z27.string().max(4096),
2457
- argumentHint: z27.string().max(1024).optional(),
2458
- kind: z27.enum(["builtin", "skill", "client"]),
2459
- allowDuringExecution: z27.boolean(),
2460
- supported: z27.boolean(),
2461
- reason: z27.string().max(1024).optional()
2462
- }).strict();
2463
- var WorkbenchCommandListResultSchema = z27.object({
2464
- commands: z27.array(WorkbenchCommandSchema).max(512)
2465
- }).strict();
2466
- 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({
2467
2486
  ...Submission2,
2468
- name: z27.string().trim().min(1).max(260),
2469
- input: z27.string().max(16e3)
2470
- }).strict();
2471
- var WorkbenchCommandChoiceSchema = z27.object({
2472
- name: z27.string().min(1).max(260),
2473
- label: z27.string().min(1).max(1024),
2474
- input: z27.string().max(16e3)
2475
- }).strict();
2476
- var WorkbenchCommandResultSchema = z27.discriminatedUnion("kind", [
2477
- z27.object({ kind: z27.literal("text"), text: Text }).strict(),
2478
- z27.object({ kind: z27.literal("completed") }).strict(),
2479
- z27.object({ kind: z27.literal("sent"), messageId: Id2 }).strict(),
2480
- z27.object({
2481
- kind: z27.literal("select-subcommand"),
2482
- 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)
2483
2502
  }).strict()
2484
2503
  ]);
2485
- var WorkbenchQueueItemSchema = z27.object({
2504
+ var WorkbenchQueueItemSchema = z28.object({
2486
2505
  id: Id2,
2487
- kind: z27.string().min(1).max(64),
2488
- texts: z27.array(z27.string().max(1e5)).min(1).max(100),
2489
- 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)
2490
2509
  }).strict();
2491
- var WorkbenchQueueSnapshotSchema = z27.object({
2510
+ var WorkbenchQueueSnapshotSchema = z28.object({
2492
2511
  generation: Id2,
2493
2512
  revision: Id2,
2494
- items: z27.array(WorkbenchQueueItemSchema).max(512),
2495
- 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)
2496
2515
  }).strict();
2497
2516
  var QueueMutation = {
2498
2517
  ...Submission2,
@@ -2500,48 +2519,48 @@ var QueueMutation = {
2500
2519
  revision: Id2,
2501
2520
  id: Id2
2502
2521
  };
2503
- var WorkbenchQueueMutationRequestSchema = z27.discriminatedUnion("action", [
2504
- z27.object({ ...QueueMutation, action: z27.literal("edit"), prompt: z27.string().trim().min(1).max(1e5) }).strict(),
2505
- z27.object({ ...QueueMutation, action: z27.literal("remove") }).strict(),
2506
- z27.object({ ...QueueMutation, action: z27.literal("move"), toPosition: z27.number().int().min(0).max(511) }).strict(),
2507
- z27.object({ ...QueueMutation, action: z27.literal("send-now") }).strict()
2508
- ]);
2509
- var WorkbenchQueueMutationResultSchema = z27.object({
2510
- 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(),
2511
2530
  snapshot: WorkbenchQueueSnapshotSchema
2512
2531
  }).strict();
2513
- var WorkbenchTokenMetricSchema = z27.object({
2514
- kind: z27.string().min(1).max(128),
2532
+ var WorkbenchTokenMetricSchema = z28.object({
2533
+ kind: z28.string().min(1).max(128),
2515
2534
  count: Count
2516
2535
  }).strict();
2517
- var WorkbenchModelUsageSchema = z27.object({
2536
+ var WorkbenchModelUsageSchema = z28.object({
2518
2537
  model: Id2,
2519
2538
  requests: Count,
2520
- premiumRequestCost: z27.number().finite().nonnegative(),
2521
- tokens: z27.array(WorkbenchTokenMetricSchema).max(32)
2539
+ premiumRequestCost: z28.number().finite().nonnegative(),
2540
+ tokens: z28.array(WorkbenchTokenMetricSchema).max(32)
2522
2541
  }).strict();
2523
- var WorkbenchContextSchema = z27.object({
2542
+ var WorkbenchContextSchema = z28.object({
2524
2543
  currentTokens: Count,
2525
2544
  tokenLimit: Count,
2526
2545
  systemTokens: Count.optional(),
2527
2546
  conversationTokens: Count.optional(),
2528
2547
  toolTokens: Count.optional()
2529
2548
  }).strict();
2530
- var WorkbenchInsightsSchema = z27.object({
2531
- sampledAt: z27.iso.datetime(),
2549
+ var WorkbenchInsightsSchema = z28.object({
2550
+ sampledAt: z28.iso.datetime(),
2532
2551
  generation: Id2,
2533
2552
  model: Id2.optional(),
2534
2553
  totalUserRequests: Count,
2535
- premiumRequestCost: z27.number().finite().nonnegative(),
2536
- nanoAiu: z27.string().regex(/^\d+$/).max(40).optional(),
2537
- tokens: z27.array(WorkbenchTokenMetricSchema).max(32),
2538
- 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),
2539
2558
  context: WorkbenchContextSchema.optional(),
2540
- canCompact: z27.boolean(),
2541
- compactUnavailableReason: z27.string().max(1024).optional()
2559
+ canCompact: z28.boolean(),
2560
+ compactUnavailableReason: z28.string().max(1024).optional()
2542
2561
  }).strict();
2543
- var WorkbenchCompactResultSchema = z27.object({
2544
- success: z27.boolean(),
2562
+ var WorkbenchCompactResultSchema = z28.object({
2563
+ success: z28.boolean(),
2545
2564
  tokensRemoved: Count,
2546
2565
  messagesRemoved: Count
2547
2566
  }).strict();
@@ -2577,6 +2596,8 @@ var WorkbenchAndroidSchemas = {
2577
2596
 
2578
2597
  // ../protocol/dist/codegen/android-schemas.js
2579
2598
  var AndroidProtocolSchemas = {
2599
+ BrowserOpenUrlParams: BrowserOpenUrlParamsSchema,
2600
+ BrowserOpenUrlResult: BrowserOpenUrlResultSchema,
2580
2601
  TimelineImageBlobRequest: TimelineImageBlobRequestSchema,
2581
2602
  TimelineImageBlobResult: TimelineImageBlobResultSchema,
2582
2603
  SessionImageUploadRequest: SessionImageUploadRequestSchema,