@vm0/cli 9.244.5 → 9.244.6

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.
Files changed (100) hide show
  1. package/{agent-NQVS6VCY.js → agent-AOWGKKI7.js} +7 -7
  2. package/{banking-U5U2G6QH.js → banking-2ZRGXQJB.js} +3 -3
  3. package/{chat-BGF7IB3O.js → chat-XT3ZFO2U.js} +4 -4
  4. package/{chunk-SBH7L4UT.js → chunk-2GMLVBYY.js} +4 -4
  5. package/{chunk-PBFD5MP4.js → chunk-GGJ3V5JF.js} +3 -3
  6. package/{chunk-CK6ATTWW.js → chunk-HEAUPGDO.js} +1 -2
  7. package/{chunk-624QMD56.js → chunk-J7NZ4R4R.js} +2 -2
  8. package/{chunk-NOUED6XP.js → chunk-LX7FTB2W.js} +2 -2
  9. package/{chunk-KS62N6VR.js → chunk-MBYTQ3JJ.js} +14 -98
  10. package/chunk-MBYTQ3JJ.js.map +1 -0
  11. package/{chunk-UEGRDQR3.js → chunk-MWXV2NJK.js} +2 -2
  12. package/{chunk-UEGRDQR3.js.map → chunk-MWXV2NJK.js.map} +1 -1
  13. package/{chunk-ZMTKJ4VW.js → chunk-MZUWWKCF.js} +69 -6
  14. package/chunk-MZUWWKCF.js.map +1 -0
  15. package/{chunk-VUUGKMER.js → chunk-OPYEYUSY.js} +28 -192
  16. package/chunk-OPYEYUSY.js.map +1 -0
  17. package/chunk-PB66MQ5U.js +55 -0
  18. package/chunk-PB66MQ5U.js.map +1 -0
  19. package/{chunk-4V373IPM.js → chunk-RPQMDXP2.js} +2 -2
  20. package/{chunk-MKPBFN7W.js → chunk-V33YE2AE.js} +2 -2
  21. package/{computer-use-F4VFLO6X.js → computer-use-IP4SF35H.js} +3 -3
  22. package/{connector-SWU3H7YL.js → connector-XK7EPZWH.js} +9 -21
  23. package/connector-XK7EPZWH.js.map +1 -0
  24. package/{credit-ZMXGA5CQ.js → credit-VPTX7ZTC.js} +4 -4
  25. package/{developer-support-IOTX3JWR.js → developer-support-3ED5W5G3.js} +3 -3
  26. package/{doctor-DTMFWDXL.js → doctor-JZG5ZNW2.js} +3 -3
  27. package/{generate-IQUCOIYW.js → generate-PAMRL3B5.js} +4 -4
  28. package/{github-AJT3E56L.js → github-OUIYACCV.js} +3 -3
  29. package/{goal-NCK5T57P.js → goal-PXTE4BCJ.js} +3 -3
  30. package/{host-BRKGWZLP.js → host-3KVI5HIB.js} +4 -5
  31. package/{host-BRKGWZLP.js.map → host-3KVI5HIB.js.map} +1 -1
  32. package/index.js +28 -1337
  33. package/index.js.map +1 -1
  34. package/{logs-WZVT4BS7.js → logs-LEPXLZOA.js} +8 -8
  35. package/{mail-QS4HABXH.js → mail-22YJ3HFW.js} +5 -5
  36. package/{maps-3X6V34JQ.js → maps-GTBQWQOV.js} +3 -3
  37. package/{model-6ETRDASM.js → model-RWQNBS3N.js} +4 -4
  38. package/{model-provider-XEKOLWZY.js → model-provider-6B54DC7X.js} +4 -4
  39. package/{org-DKGPME4L.js → org-JEJIR4XQ.js} +3 -3
  40. package/package.json +1 -1
  41. package/{phone-6455TFON.js → phone-CI77EG37.js} +3 -3
  42. package/{preference-2XMANS52.js → preference-546TA23L.js} +3 -3
  43. package/{resource-MIFLTTK6.js → resource-HRVLBG7N.js} +4 -4
  44. package/{scrape-CIP2FZED.js → scrape-VZJ67GNU.js} +3 -3
  45. package/{search-GCQ55FYS.js → search-L5ICIORF.js} +7 -7
  46. package/{secret-NVLEVYXQ.js → secret-FKMH53Y4.js} +3 -3
  47. package/{slack-EGYW76W2.js → slack-BQ4KIZPV.js} +3 -3
  48. package/{teams-2D63XX2R.js → teams-YZSKKRY4.js} +3 -3
  49. package/{telegram-GQARG3MD.js → telegram-HHGB5PE3.js} +3 -3
  50. package/{variable-WMKLX7TF.js → variable-4CIAHKLM.js} +3 -3
  51. package/{video-NAUNUYGP.js → video-54PFQIQD.js} +2 -2
  52. package/{web-7U3YS3KP.js → web-BOBLQ27H.js} +3 -3
  53. package/{web-search-EIO3GVKH.js → web-search-27452WDH.js} +3 -3
  54. package/{whoami-QZJAGTDW.js → whoami-5SIOEBZY.js} +5 -5
  55. package/{workflow-RMJIYOUB.js → workflow-62JWPXNK.js} +3 -3
  56. package/zero.js +35 -35
  57. package/chunk-KS62N6VR.js.map +0 -1
  58. package/chunk-T6TZMDU6.js +0 -132
  59. package/chunk-T6TZMDU6.js.map +0 -1
  60. package/chunk-VUUGKMER.js.map +0 -1
  61. package/chunk-ZMTKJ4VW.js.map +0 -1
  62. package/connector-SWU3H7YL.js.map +0 -1
  63. /package/{agent-NQVS6VCY.js.map → agent-AOWGKKI7.js.map} +0 -0
  64. /package/{banking-U5U2G6QH.js.map → banking-2ZRGXQJB.js.map} +0 -0
  65. /package/{chat-BGF7IB3O.js.map → chat-XT3ZFO2U.js.map} +0 -0
  66. /package/{chunk-SBH7L4UT.js.map → chunk-2GMLVBYY.js.map} +0 -0
  67. /package/{chunk-PBFD5MP4.js.map → chunk-GGJ3V5JF.js.map} +0 -0
  68. /package/{chunk-CK6ATTWW.js.map → chunk-HEAUPGDO.js.map} +0 -0
  69. /package/{chunk-624QMD56.js.map → chunk-J7NZ4R4R.js.map} +0 -0
  70. /package/{chunk-NOUED6XP.js.map → chunk-LX7FTB2W.js.map} +0 -0
  71. /package/{chunk-4V373IPM.js.map → chunk-RPQMDXP2.js.map} +0 -0
  72. /package/{chunk-MKPBFN7W.js.map → chunk-V33YE2AE.js.map} +0 -0
  73. /package/{computer-use-F4VFLO6X.js.map → computer-use-IP4SF35H.js.map} +0 -0
  74. /package/{credit-ZMXGA5CQ.js.map → credit-VPTX7ZTC.js.map} +0 -0
  75. /package/{developer-support-IOTX3JWR.js.map → developer-support-3ED5W5G3.js.map} +0 -0
  76. /package/{doctor-DTMFWDXL.js.map → doctor-JZG5ZNW2.js.map} +0 -0
  77. /package/{generate-IQUCOIYW.js.map → generate-PAMRL3B5.js.map} +0 -0
  78. /package/{github-AJT3E56L.js.map → github-OUIYACCV.js.map} +0 -0
  79. /package/{goal-NCK5T57P.js.map → goal-PXTE4BCJ.js.map} +0 -0
  80. /package/{logs-WZVT4BS7.js.map → logs-LEPXLZOA.js.map} +0 -0
  81. /package/{mail-QS4HABXH.js.map → mail-22YJ3HFW.js.map} +0 -0
  82. /package/{maps-3X6V34JQ.js.map → maps-GTBQWQOV.js.map} +0 -0
  83. /package/{model-6ETRDASM.js.map → model-RWQNBS3N.js.map} +0 -0
  84. /package/{model-provider-XEKOLWZY.js.map → model-provider-6B54DC7X.js.map} +0 -0
  85. /package/{org-DKGPME4L.js.map → org-JEJIR4XQ.js.map} +0 -0
  86. /package/{phone-6455TFON.js.map → phone-CI77EG37.js.map} +0 -0
  87. /package/{preference-2XMANS52.js.map → preference-546TA23L.js.map} +0 -0
  88. /package/{resource-MIFLTTK6.js.map → resource-HRVLBG7N.js.map} +0 -0
  89. /package/{scrape-CIP2FZED.js.map → scrape-VZJ67GNU.js.map} +0 -0
  90. /package/{search-GCQ55FYS.js.map → search-L5ICIORF.js.map} +0 -0
  91. /package/{secret-NVLEVYXQ.js.map → secret-FKMH53Y4.js.map} +0 -0
  92. /package/{slack-EGYW76W2.js.map → slack-BQ4KIZPV.js.map} +0 -0
  93. /package/{teams-2D63XX2R.js.map → teams-YZSKKRY4.js.map} +0 -0
  94. /package/{telegram-GQARG3MD.js.map → telegram-HHGB5PE3.js.map} +0 -0
  95. /package/{variable-WMKLX7TF.js.map → variable-4CIAHKLM.js.map} +0 -0
  96. /package/{video-NAUNUYGP.js.map → video-54PFQIQD.js.map} +0 -0
  97. /package/{web-7U3YS3KP.js.map → web-BOBLQ27H.js.map} +0 -0
  98. /package/{web-search-EIO3GVKH.js.map → web-search-27452WDH.js.map} +0 -0
  99. /package/{whoami-QZJAGTDW.js.map → whoami-5SIOEBZY.js.map} +0 -0
  100. /package/{workflow-RMJIYOUB.js.map → workflow-62JWPXNK.js.map} +0 -0
@@ -7,17 +7,15 @@ import {
7
7
  formatIsoTimestamp,
8
8
  isSupportedFramework,
9
9
  isUUID,
10
- parseBoundedLogCount,
11
- parseSearchQuery,
12
10
  parseTime
13
- } from "./chunk-KS62N6VR.js";
11
+ } from "./chunk-MBYTQ3JJ.js";
14
12
  import {
15
13
  searchZeroLogs
16
- } from "./chunk-VUUGKMER.js";
14
+ } from "./chunk-OPYEYUSY.js";
17
15
  import {
18
16
  source_default,
19
17
  withErrorHandler
20
- } from "./chunk-UEGRDQR3.js";
18
+ } from "./chunk-MWXV2NJK.js";
21
19
  import {
22
20
  Command
23
21
  } from "./chunk-B3W2RUBP.js";
@@ -25,6 +23,67 @@ import {
25
23
  init_esm_shims
26
24
  } from "./chunk-DIRAZ3YX.js";
27
25
 
26
+ // src/lib/utils/log-pagination.ts
27
+ init_esm_shims();
28
+ function parsePositiveLogCount(value, optionName) {
29
+ const trimmed = value.trim();
30
+ if (!/^0*[1-9]\d*$/.test(trimmed)) {
31
+ throw new Error(`Option ${optionName} must be a positive integer`);
32
+ }
33
+ const count = Number(trimmed);
34
+ if (!Number.isSafeInteger(count)) {
35
+ throw new Error(`Option ${optionName} must be a positive integer`);
36
+ }
37
+ return count;
38
+ }
39
+ function parseBoundedLogCount(value, optionName, min, max) {
40
+ const trimmed = value.trim();
41
+ if (!/^\d+$/.test(trimmed)) {
42
+ throw new Error(`${optionName} must be between ${min} and ${max}`);
43
+ }
44
+ const count = Number(trimmed);
45
+ if (!Number.isSafeInteger(count) || count < min || count > max) {
46
+ throw new Error(`${optionName} must be between ${min} and ${max}`);
47
+ }
48
+ return count;
49
+ }
50
+ async function collectLogItems(options) {
51
+ const collected = [];
52
+ const seenCursors = /* @__PURE__ */ new Set();
53
+ let cursor;
54
+ while (true) {
55
+ const requestLimit = options.targetCount === "all" ? options.pageLimit : Math.min(options.pageLimit, options.targetCount - collected.length);
56
+ const page = await options.fetchPage({
57
+ sinceTime: options.sinceTime,
58
+ cursor,
59
+ limit: requestLimit,
60
+ order: options.order
61
+ });
62
+ collected.push(...page.items);
63
+ if (options.targetCount !== "all" && collected.length >= options.targetCount) {
64
+ break;
65
+ }
66
+ const nextCursor = page.nextCursor ?? null;
67
+ if (!page.hasMore || !nextCursor || seenCursors.has(nextCursor)) {
68
+ break;
69
+ }
70
+ seenCursors.add(nextCursor);
71
+ cursor = nextCursor;
72
+ }
73
+ const entries = options.targetCount === "all" ? collected : collected.slice(0, options.targetCount);
74
+ return options.order === "desc" ? entries.reverse() : entries;
75
+ }
76
+
77
+ // src/lib/utils/search-query.ts
78
+ init_esm_shims();
79
+ function parseSearchQuery(value, label) {
80
+ const trimmed = value.trim();
81
+ if (!trimmed) {
82
+ throw new Error(`${label} cannot be empty.`);
83
+ }
84
+ return trimmed;
85
+ }
86
+
28
87
  // src/commands/zero/logs/search.ts
29
88
  init_esm_shims();
30
89
  var SEVEN_DAYS_MS = 7 * 24 * 60 * 60 * 1e3;
@@ -171,7 +230,11 @@ Examples:
171
230
  );
172
231
 
173
232
  export {
233
+ parsePositiveLogCount,
234
+ parseBoundedLogCount,
235
+ collectLogItems,
236
+ parseSearchQuery,
174
237
  runLogsSearch,
175
238
  searchCommand
176
239
  };
177
- //# sourceMappingURL=chunk-ZMTKJ4VW.js.map
240
+ //# sourceMappingURL=chunk-MZUWWKCF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/utils/log-pagination.ts","../src/lib/utils/search-query.ts","../src/commands/zero/logs/search.ts"],"sourcesContent":["type LogOrder = \"asc\" | \"desc\";\n\ninterface CursorLogPageRequest {\n readonly sinceTime?: number;\n readonly cursor?: string;\n readonly limit: number;\n readonly order: LogOrder;\n}\n\ninterface CursorLogPage<T> {\n readonly items: readonly T[];\n readonly hasMore: boolean;\n readonly nextCursor?: string | null;\n}\n\ninterface CollectLogItemsOptions<T> {\n readonly fetchPage: (\n request: CursorLogPageRequest,\n ) => Promise<CursorLogPage<T>>;\n readonly sinceTime?: number;\n readonly targetCount: number | \"all\";\n readonly order: LogOrder;\n readonly pageLimit: number;\n}\n\nexport function parsePositiveLogCount(\n value: string,\n optionName: string,\n): number {\n const trimmed = value.trim();\n if (!/^0*[1-9]\\d*$/.test(trimmed)) {\n throw new Error(`Option ${optionName} must be a positive integer`);\n }\n\n const count = Number(trimmed);\n if (!Number.isSafeInteger(count)) {\n throw new Error(`Option ${optionName} must be a positive integer`);\n }\n\n return count;\n}\n\nexport function parseBoundedLogCount(\n value: string,\n optionName: string,\n min: number,\n max: number,\n): number {\n const trimmed = value.trim();\n if (!/^\\d+$/.test(trimmed)) {\n throw new Error(`${optionName} must be between ${min} and ${max}`);\n }\n\n const count = Number(trimmed);\n if (!Number.isSafeInteger(count) || count < min || count > max) {\n throw new Error(`${optionName} must be between ${min} and ${max}`);\n }\n\n return count;\n}\n\nexport async function collectLogItems<T>(\n options: CollectLogItemsOptions<T>,\n): Promise<T[]> {\n const collected: T[] = [];\n const seenCursors = new Set<string>();\n let cursor: string | undefined;\n\n while (true) {\n const requestLimit =\n options.targetCount === \"all\"\n ? options.pageLimit\n : Math.min(options.pageLimit, options.targetCount - collected.length);\n\n const page = await options.fetchPage({\n sinceTime: options.sinceTime,\n cursor,\n limit: requestLimit,\n order: options.order,\n });\n\n collected.push(...page.items);\n\n if (\n options.targetCount !== \"all\" &&\n collected.length >= options.targetCount\n ) {\n break;\n }\n\n const nextCursor = page.nextCursor ?? null;\n if (!page.hasMore || !nextCursor || seenCursors.has(nextCursor)) {\n break;\n }\n\n seenCursors.add(nextCursor);\n cursor = nextCursor;\n }\n\n const entries =\n options.targetCount === \"all\"\n ? collected\n : collected.slice(0, options.targetCount);\n\n return options.order === \"desc\" ? entries.reverse() : entries;\n}\n","export function parseSearchQuery(value: string, label: string): string {\n const trimmed = value.trim();\n if (!trimmed) {\n throw new Error(`${label} cannot be empty.`);\n }\n return trimmed;\n}\n","import { Command } from \"commander\";\nimport chalk from \"chalk\";\nimport {\n searchZeroLogs,\n type RunEvent,\n type LogsSearchResponse,\n} from \"../../../lib/api\";\nimport { parseTime } from \"../../../lib/utils/time-parser\";\nimport { formatIsoTimestamp } from \"../../../lib/utils/time-format\";\nimport { EventRenderer } from \"../../../lib/events/event-renderer\";\nimport { EventStreamNormalizer } from \"../../../lib/events/event-stream-normalizer\";\nimport { withErrorHandler } from \"../../../lib/command\";\nimport { isUUID } from \"../../run/shared\";\nimport { parseBoundedLogCount } from \"../../../lib/utils/log-pagination\";\nimport { parseSearchQuery } from \"../../../lib/utils/search-query\";\nimport { isSupportedFramework } from \"@vm0/core/frameworks\";\n\nconst SEVEN_DAYS_MS = 7 * 24 * 60 * 60 * 1000;\n\nexport interface LogsSearchCliOptions {\n afterContext?: string;\n beforeContext?: string;\n context?: string;\n agentId?: string;\n run?: string;\n since?: string;\n limit?: string;\n}\n\ninterface LogsSearchCommandOptions extends Omit<\n LogsSearchCliOptions,\n \"agentId\"\n> {\n agent?: string;\n}\n\nfunction supportedSearchFramework(\n framework: string | null | undefined,\n): string | undefined {\n const normalized = framework ?? undefined;\n return isSupportedFramework(normalized) ? normalized : undefined;\n}\n\nfunction renderSearchEvent(\n event: RunEvent,\n framework: string | null | undefined,\n renderer: EventRenderer,\n normalizer: EventStreamNormalizer,\n): void {\n const parsedEvents = normalizer.process(\n event.eventData,\n supportedSearchFramework(framework),\n new Date(event.createdAt),\n );\n for (const parsed of parsedEvents) {\n renderer.render(parsed);\n }\n}\n\nfunction flushSearchRenderer(\n renderer: EventRenderer,\n normalizer: EventStreamNormalizer,\n): void {\n for (const parsed of normalizer.flush()) {\n renderer.render(parsed);\n }\n renderer.flush();\n}\n\nfunction formatRunHeader(\n runId: string,\n agentName: string,\n timestamp: string,\n): string {\n const time = formatIsoTimestamp(timestamp);\n return `── Run ${runId} (${agentName}, ${time}) ──────────`;\n}\n\nfunction parseContextOptions(options: LogsSearchCliOptions): {\n before: number;\n after: number;\n} {\n const contextN =\n options.context !== undefined\n ? parseBoundedLogCount(options.context, \"--context\", 0, 10)\n : 0;\n const before =\n options.beforeContext !== undefined\n ? parseBoundedLogCount(options.beforeContext, \"--before-context\", 0, 10)\n : contextN;\n const after =\n options.afterContext !== undefined\n ? parseBoundedLogCount(options.afterContext, \"--after-context\", 0, 10)\n : contextN;\n\n return { before, after };\n}\n\nfunction parseLimit(value: string | undefined): number | undefined {\n if (value === undefined) return undefined;\n return parseBoundedLogCount(value, \"--limit\", 1, 50);\n}\n\nfunction renderResults(response: LogsSearchResponse): void {\n const grouped = new Map<\n string,\n { agentName: string; results: LogsSearchResponse[\"results\"] }\n >();\n for (const result of response.results) {\n const existing = grouped.get(result.runId);\n if (existing) {\n existing.results.push(result);\n } else {\n grouped.set(result.runId, {\n agentName: result.agentName,\n results: [result],\n });\n }\n }\n\n let isFirstGroup = true;\n for (const [runId, group] of grouped) {\n if (!isFirstGroup) {\n console.log();\n }\n isFirstGroup = false;\n\n const firstTimestamp = group.results[0]!.matchedEvent.createdAt;\n console.log(\n chalk.bold(formatRunHeader(runId, group.agentName, firstTimestamp)),\n );\n\n for (const result of group.results) {\n const renderer = new EventRenderer({\n showTimestamp: true,\n verbose: false,\n });\n const normalizer = new EventStreamNormalizer();\n\n for (const event of result.contextBefore) {\n renderSearchEvent(event, result.framework, renderer, normalizer);\n }\n renderSearchEvent(\n result.matchedEvent,\n result.framework,\n renderer,\n normalizer,\n );\n for (const event of result.contextAfter) {\n renderSearchEvent(event, result.framework, renderer, normalizer);\n }\n flushSearchRenderer(renderer, normalizer);\n }\n }\n\n if (response.hasMore) {\n console.log();\n console.log(\n chalk.dim(\n ` Showing first ${response.results.length} matches. Use --limit to see more.`,\n ),\n );\n }\n}\n\nexport async function runLogsSearch(\n keyword: string,\n options: LogsSearchCliOptions,\n): Promise<void> {\n const searchKeyword = parseSearchQuery(keyword, \"Keyword\");\n const { before, after } = parseContextOptions(options);\n\n if (options.agentId !== undefined && !isUUID(options.agentId)) {\n console.error(\n chalk.red(`✗ Invalid agent ID \"${options.agentId}\" — expected a UUID`),\n );\n console.error(chalk.dim(\" Run: zero logs list to find agent IDs\"));\n process.exit(1);\n }\n\n if (options.run !== undefined && !isUUID(options.run)) {\n console.error(\n chalk.red(`✗ Invalid run ID \"${options.run}\" — expected a UUID`),\n );\n console.error(chalk.dim(\" Run: zero logs list to find run IDs\"));\n process.exit(1);\n }\n\n const since =\n options.since !== undefined\n ? parseTime(options.since)\n : Date.now() - SEVEN_DAYS_MS;\n const limit = parseLimit(options.limit);\n\n const response = await searchZeroLogs({\n keyword: searchKeyword,\n agentId: options.agentId,\n runId: options.run,\n since,\n limit,\n before,\n after,\n });\n\n if (response.results.length === 0) {\n console.log(chalk.dim(\"No matches found\"));\n console.log(\n chalk.dim(\n \" Try a broader search with --since 30d or a different keyword\",\n ),\n );\n return;\n }\n\n renderResults(response);\n}\n\nexport const searchCommand = new Command()\n .name(\"search\")\n .description(\"Search agent events across runs\")\n .argument(\"<keyword>\", \"Search keyword\")\n .option(\"-A, --after-context <n>\", \"Show n events after each match\")\n .option(\"-B, --before-context <n>\", \"Show n events before each match\")\n .option(\"-C, --context <n>\", \"Show n events before and after each match\")\n .option(\"--agent <id>\", \"Filter by Zero agent ID\")\n .option(\"--run <id>\", \"Filter by specific run ID\")\n .option(\"--since <time>\", \"Search logs since (default: 7d)\")\n .option(\"--limit <n>\", \"Maximum number of matches (default: 20)\")\n .addHelpText(\n \"after\",\n `\nExamples:\n zero logs search \"error\"\n zero logs search \"timeout\" --agent 123e4567-e89b-12d3-a456-426614174000 -C 2\n zero logs search \"failed\" --since 30d --limit 50`,\n )\n .action(\n withErrorHandler(\n async (keyword: string, options: LogsSearchCommandOptions) => {\n const { agent, ...searchOptions } = options;\n await runLogsSearch(keyword, { ...searchOptions, agentId: agent });\n },\n ),\n );\n"],"mappings":"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","names":[]}
@@ -22,7 +22,7 @@ import {
22
22
  updateOrgModelPoliciesRequestSchema,
23
23
  upsertModelProviderRequestSchema,
24
24
  upsertModelProviderResponseSchema
25
- } from "./chunk-UEGRDQR3.js";
25
+ } from "./chunk-MWXV2NJK.js";
26
26
  import {
27
27
  __commonJS,
28
28
  __esm,
@@ -3058,9 +3058,6 @@ function createLogPaginationQuerySchema(options) {
3058
3058
  }
3059
3059
  });
3060
3060
  }
3061
- var sequenceLogPaginationQuerySchema = createLogPaginationQuerySchema({
3062
- cursorKind: "sequence"
3063
- });
3064
3061
  var timeLogPaginationQuerySchema = createLogPaginationQuerySchema({
3065
3062
  cursorKind: "time"
3066
3063
  });
@@ -3195,50 +3192,6 @@ var runMetricsContract = c13.router({
3195
3192
  summary: "Get metrics with pagination"
3196
3193
  }
3197
3194
  });
3198
- var runAgentEventsContract = c13.router({
3199
- /**
3200
- * GET /api/agent/runs/:id/telemetry/agent
3201
- * Get agent events with pagination (for vm0 logs default)
3202
- */
3203
- getAgentEvents: {
3204
- method: "GET",
3205
- path: "/api/agent/runs/:id/telemetry/agent",
3206
- headers: authHeadersSchema,
3207
- pathParams: external_exports.object({
3208
- id: external_exports.uuid("Run ID must be a valid UUID")
3209
- }),
3210
- query: sequenceLogPaginationQuerySchema,
3211
- responses: {
3212
- 200: agentEventsResponseSchema,
3213
- 400: apiErrorSchema,
3214
- 401: apiErrorSchema,
3215
- 404: apiErrorSchema
3216
- },
3217
- summary: "Get agent events with pagination"
3218
- }
3219
- });
3220
- var runNetworkLogsContract = c13.router({
3221
- /**
3222
- * GET /api/agent/runs/:id/telemetry/network
3223
- * Get network logs with pagination (for vm0 logs --network)
3224
- */
3225
- getNetworkLogs: {
3226
- method: "GET",
3227
- path: "/api/agent/runs/:id/telemetry/network",
3228
- headers: authHeadersSchema,
3229
- pathParams: external_exports.object({
3230
- id: external_exports.uuid("Run ID must be a valid UUID")
3231
- }),
3232
- query: timeLogPaginationQuerySchema,
3233
- responses: {
3234
- 200: networkLogsResponseSchema,
3235
- 400: apiErrorSchema,
3236
- 401: apiErrorSchema,
3237
- 404: apiErrorSchema
3238
- },
3239
- summary: "Get network logs with pagination"
3240
- }
3241
- });
3242
3195
  var searchResultSchema = external_exports.object({
3243
3196
  runId: external_exports.string(),
3244
3197
  agentName: external_exports.string(),
@@ -3260,24 +3213,6 @@ var logsSearchQuerySchema = external_exports.object({
3260
3213
  before: boundedIntegerQueryNumberSchema(0, 10).default(0),
3261
3214
  after: boundedIntegerQueryNumberSchema(0, 10).default(0)
3262
3215
  });
3263
- var logsSearchContract = c13.router({
3264
- /**
3265
- * GET /api/logs/search
3266
- * Search agent events across runs using keyword matching
3267
- */
3268
- searchLogs: {
3269
- method: "GET",
3270
- path: "/api/logs/search",
3271
- headers: authHeadersSchema,
3272
- query: logsSearchQuerySchema,
3273
- responses: {
3274
- 200: logsSearchResponseSchema,
3275
- 400: apiErrorSchema,
3276
- 401: apiErrorSchema
3277
- },
3278
- summary: "Search agent events across runs"
3279
- }
3280
- });
3281
3216
  var queueEntrySchema = external_exports.object({
3282
3217
  position: external_exports.number(),
3283
3218
  agentName: external_exports.string().nullable(),
@@ -3732,6 +3667,32 @@ var generationTemplateRequestSchema = external_exports.discriminatedUnion("type"
3732
3667
  workflowGenerationTemplateRequestSchema,
3733
3668
  websiteGenerationTemplateRequestSchema
3734
3669
  ]);
3670
+ var userMessagePartSchema = external_exports.discriminatedUnion("type", [
3671
+ external_exports.object({
3672
+ type: external_exports.literal("text"),
3673
+ text: external_exports.string().min(1)
3674
+ }).strict(),
3675
+ external_exports.object({
3676
+ type: external_exports.literal("chat_thread"),
3677
+ threadId: external_exports.string().uuid(),
3678
+ titleSnapshot: external_exports.string().min(1)
3679
+ }).strict(),
3680
+ external_exports.object({
3681
+ type: external_exports.literal("template"),
3682
+ titleSnapshot: external_exports.string().min(1),
3683
+ template: generationTemplateRequestSchema
3684
+ }).strict(),
3685
+ external_exports.object({
3686
+ type: external_exports.literal("file"),
3687
+ fileId: external_exports.string().min(1),
3688
+ filenameSnapshot: external_exports.string().min(1),
3689
+ contentType: external_exports.string().min(1)
3690
+ }).strict()
3691
+ ]);
3692
+ var userMessageDocumentSchema = external_exports.object({
3693
+ version: external_exports.literal(1),
3694
+ parts: external_exports.array(userMessagePartSchema).min(1)
3695
+ }).strict();
3735
3696
  var workflowSnapshotSchema = external_exports.object({
3736
3697
  id: external_exports.string().uuid().optional(),
3737
3698
  agentId: external_exports.string().uuid().optional(),
@@ -9696,30 +9657,6 @@ async function commitStorage(body) {
9696
9657
  }
9697
9658
  handleError(result, "Failed to commit storage");
9698
9659
  }
9699
- async function getStorageDownload(query) {
9700
- const config = await getClientConfig();
9701
- const client = initClient(storagesDownloadContract, config);
9702
- const result = await client.download({
9703
- query: {
9704
- name: query.name,
9705
- type: query.type,
9706
- version: query.version
9707
- }
9708
- });
9709
- if (result.status === 200) {
9710
- return result.body;
9711
- }
9712
- handleError(result, `Storage "${query.name}" not found`);
9713
- }
9714
- async function listStorages(query) {
9715
- const config = await getClientConfig();
9716
- const client = initClient(storagesListContract, config);
9717
- const result = await client.list({ query });
9718
- if (result.status === 200) {
9719
- return result.body;
9720
- }
9721
- handleError(result, `Failed to list ${query.type}s`);
9722
- }
9723
9660
 
9724
9661
  // src/lib/api/domains/zero-secrets.ts
9725
9662
  init_esm_shims();
@@ -12302,100 +12239,6 @@ async function searchZeroLogs(options) {
12302
12239
  handleError(result, "Failed to search zero logs");
12303
12240
  }
12304
12241
 
12305
- // src/lib/api/domains/logs.ts
12306
- init_esm_shims();
12307
- async function getSystemLog(runId, options) {
12308
- const config = await getClientConfig();
12309
- const client = initClient(runSystemLogContract, config);
12310
- const result = await client.getSystemLog({
12311
- params: { id: runId },
12312
- query: {
12313
- since: options?.since,
12314
- sinceTime: options?.sinceTime,
12315
- cursor: options?.cursor,
12316
- limit: options?.limit,
12317
- order: options?.order
12318
- }
12319
- });
12320
- if (result.status === 200) {
12321
- return result.body;
12322
- }
12323
- handleError(result, "Failed to fetch system log");
12324
- }
12325
- async function getMetrics(runId, options) {
12326
- const config = await getClientConfig();
12327
- const client = initClient(runMetricsContract, config);
12328
- const result = await client.getMetrics({
12329
- params: { id: runId },
12330
- query: {
12331
- since: options?.since,
12332
- sinceTime: options?.sinceTime,
12333
- cursor: options?.cursor,
12334
- limit: options?.limit,
12335
- order: options?.order
12336
- }
12337
- });
12338
- if (result.status === 200) {
12339
- return result.body;
12340
- }
12341
- handleError(result, "Failed to fetch metrics");
12342
- }
12343
- async function getAgentEvents(runId, options) {
12344
- const config = await getClientConfig();
12345
- const client = initClient(runAgentEventsContract, config);
12346
- const result = await client.getAgentEvents({
12347
- params: { id: runId },
12348
- query: {
12349
- since: options?.since,
12350
- sinceTime: options?.sinceTime,
12351
- cursor: options?.cursor,
12352
- limit: options?.limit,
12353
- order: options?.order
12354
- }
12355
- });
12356
- if (result.status === 200) {
12357
- return result.body;
12358
- }
12359
- handleError(result, "Failed to fetch agent events");
12360
- }
12361
- async function getNetworkLogs(runId, options) {
12362
- const config = await getClientConfig();
12363
- const client = initClient(runNetworkLogsContract, config);
12364
- const result = await client.getNetworkLogs({
12365
- params: { id: runId },
12366
- query: {
12367
- since: options?.since,
12368
- sinceTime: options?.sinceTime,
12369
- cursor: options?.cursor,
12370
- limit: options?.limit,
12371
- order: options?.order
12372
- }
12373
- });
12374
- if (result.status === 200) {
12375
- return result.body;
12376
- }
12377
- handleError(result, "Failed to fetch network logs");
12378
- }
12379
- async function searchLogs(options) {
12380
- const config = await getClientConfig();
12381
- const client = initClient(logsSearchContract, config);
12382
- const result = await client.searchLogs({
12383
- query: {
12384
- keyword: options.keyword,
12385
- agentId: options.agentId,
12386
- runId: options.runId,
12387
- since: options.since,
12388
- limit: options.limit,
12389
- before: options.before,
12390
- after: options.after
12391
- }
12392
- });
12393
- if (result.status === 200) {
12394
- return result.body;
12395
- }
12396
- handleError(result, "Failed to search logs");
12397
- }
12398
-
12399
12242
  // src/lib/api/domains/zero-host.ts
12400
12243
  init_esm_shims();
12401
12244
  function authHeaders(token, options = {}) {
@@ -12518,8 +12361,6 @@ export {
12518
12361
  getCheckpoint,
12519
12362
  prepareStorage,
12520
12363
  commitStorage,
12521
- getStorageDownload,
12522
- listStorages,
12523
12364
  getRegistryResourceDownload,
12524
12365
  getZeroUserPreferences,
12525
12366
  updateZeroUserPreferences,
@@ -12621,11 +12462,6 @@ export {
12621
12462
  renameZeroChatThread,
12622
12463
  getZeroChatThread,
12623
12464
  updateZeroChatThreadModelSelection,
12624
- getSystemLog,
12625
- getMetrics,
12626
- getAgentEvents,
12627
- getNetworkLogs,
12628
- searchLogs,
12629
12465
  requestDeveloperSupportConsent,
12630
12466
  submitDeveloperSupport,
12631
12467
  COMPUTER_USE_FILESYSTEM_PLUGIN,
@@ -12655,4 +12491,4 @@ export {
12655
12491
  completeHostedSite,
12656
12492
  getHostedSiteFiles
12657
12493
  };
12658
- //# sourceMappingURL=chunk-VUUGKMER.js.map
12494
+ //# sourceMappingURL=chunk-OPYEYUSY.js.map