@vm0/cli 9.240.9 → 9.241.1

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-CPGD2CCT.js → agent-TNNGYNVT.js} +5 -5
  2. package/{banking-QK5LFWHM.js → banking-SKYGWKKH.js} +3 -3
  3. package/{chat-FVZTI3T3.js → chat-DR6P2YG5.js} +4 -4
  4. package/{chunk-Y7MUZJOD.js → chunk-25IMXO6P.js} +3 -3
  5. package/chunk-BY42E2UD.js +268 -0
  6. package/chunk-BY42E2UD.js.map +1 -0
  7. package/{chunk-JKGVRA3O.js → chunk-E4O5BONY.js} +4 -4
  8. package/{chunk-3B4I4CZP.js → chunk-G7SIZXEQ.js} +3 -1
  9. package/{chunk-3B4I4CZP.js.map → chunk-G7SIZXEQ.js.map} +1 -1
  10. package/{chunk-LZSQADE3.js → chunk-KWK46OB4.js} +2 -2
  11. package/{chunk-LZSQADE3.js.map → chunk-KWK46OB4.js.map} +1 -1
  12. package/{chunk-C6F22HSG.js → chunk-LL7DUZNH.js} +2 -2
  13. package/{chunk-SREFIFDC.js → chunk-Q5HDFTO2.js} +11 -5
  14. package/chunk-Q5HDFTO2.js.map +1 -0
  15. package/{chunk-BBLU3MCE.js → chunk-RWOCHMM3.js} +344 -216
  16. package/chunk-RWOCHMM3.js.map +1 -0
  17. package/{chunk-YI55ZHHU.js → chunk-UV7FQCH3.js} +2 -2
  18. package/{chunk-XZ2PCS5Z.js → chunk-VT7YAG6O.js} +2 -2
  19. package/{chunk-GQJEXREE.js → chunk-Y3QSI5S5.js} +4 -4
  20. package/{computer-use-FHRGSU67.js → computer-use-Y5SMX3YD.js} +3 -3
  21. package/{connector-B64GISX5.js → connector-WS2ZTAQP.js} +11 -256
  22. package/connector-WS2ZTAQP.js.map +1 -0
  23. package/{credit-UMB7SG34.js → credit-RKXWST56.js} +4 -4
  24. package/{developer-support-H3DKWIJ6.js → developer-support-XYW34KTI.js} +3 -3
  25. package/{doctor-W4UUFCZK.js → doctor-UOY4BMO2.js} +5 -5
  26. package/{generate-E5CUXU7B.js → generate-JYPWARY7.js} +7 -5
  27. package/generate-JYPWARY7.js.map +1 -0
  28. package/{github-ZNSMVK5B.js → github-DTFLSMME.js} +3 -3
  29. package/{goal-QSRRWQU5.js → goal-5OVITGGA.js} +3 -3
  30. package/{host-NRXJODYZ.js → host-VSU7C3GW.js} +3 -3
  31. package/index.js +13 -13
  32. package/{logs-KHD73Z5J.js → logs-43WDFVNN.js} +6 -6
  33. package/mail-JK7FVJZ7.js +204 -0
  34. package/mail-JK7FVJZ7.js.map +1 -0
  35. package/{maps-CMMFRPIG.js → maps-OTGEBLIC.js} +3 -3
  36. package/{memory-6ULYLSPP.js → memory-NZOYYZ5N.js} +3 -3
  37. package/{model-SAVQXJEQ.js → model-QKGCKZVX.js} +4 -4
  38. package/{model-provider-PH3LOEC6.js → model-provider-3SBQ7T4N.js} +4 -4
  39. package/{org-M2HYRFTG.js → org-346OFBZR.js} +3 -3
  40. package/package.json +1 -1
  41. package/{phone-FTFASCFG.js → phone-YANYP7W6.js} +3 -3
  42. package/{preference-LKO5SRMA.js → preference-325PBBLX.js} +3 -3
  43. package/{relationship-WGJY7W67.js → relationship-6M35HCZ5.js} +3 -3
  44. package/{resource-UYVZXDOD.js → resource-I4UG6VL7.js} +4 -4
  45. package/{scrape-374NLIRA.js → scrape-P4I7OVKQ.js} +3 -3
  46. package/{search-Q35LEWVX.js → search-I6DXJNMB.js} +6 -6
  47. package/{secret-XEQQCGAY.js → secret-VLRAQQHP.js} +3 -3
  48. package/{slack-ATMM7DZK.js → slack-5FVOKM4R.js} +3 -3
  49. package/{teams-FARW25SA.js → teams-LIUCG5YR.js} +3 -3
  50. package/{telegram-VG2MHVKQ.js → telegram-GKSOUMEF.js} +3 -3
  51. package/{variable-QUUYWMAW.js → variable-GJNDFM7T.js} +3 -3
  52. package/{video-3ANZ4IFS.js → video-J3SE3EIC.js} +2 -2
  53. package/{web-SMARZ2UY.js → web-IRUCSLBZ.js} +3 -3
  54. package/{web-search-ZJ22REGT.js → web-search-HVKUSSDL.js} +3 -3
  55. package/{whoami-VMJDVOZ2.js → whoami-LVRWHRX2.js} +5 -5
  56. package/{workflow-4YFHZNEN.js → workflow-XXOCPRQK.js} +3 -3
  57. package/zero.js +45 -36
  58. package/zero.js.map +1 -1
  59. package/chunk-BBLU3MCE.js.map +0 -1
  60. package/chunk-SREFIFDC.js.map +0 -1
  61. package/connector-B64GISX5.js.map +0 -1
  62. package/generate-E5CUXU7B.js.map +0 -1
  63. /package/{agent-CPGD2CCT.js.map → agent-TNNGYNVT.js.map} +0 -0
  64. /package/{banking-QK5LFWHM.js.map → banking-SKYGWKKH.js.map} +0 -0
  65. /package/{chat-FVZTI3T3.js.map → chat-DR6P2YG5.js.map} +0 -0
  66. /package/{chunk-Y7MUZJOD.js.map → chunk-25IMXO6P.js.map} +0 -0
  67. /package/{chunk-JKGVRA3O.js.map → chunk-E4O5BONY.js.map} +0 -0
  68. /package/{chunk-C6F22HSG.js.map → chunk-LL7DUZNH.js.map} +0 -0
  69. /package/{chunk-YI55ZHHU.js.map → chunk-UV7FQCH3.js.map} +0 -0
  70. /package/{chunk-XZ2PCS5Z.js.map → chunk-VT7YAG6O.js.map} +0 -0
  71. /package/{chunk-GQJEXREE.js.map → chunk-Y3QSI5S5.js.map} +0 -0
  72. /package/{computer-use-FHRGSU67.js.map → computer-use-Y5SMX3YD.js.map} +0 -0
  73. /package/{credit-UMB7SG34.js.map → credit-RKXWST56.js.map} +0 -0
  74. /package/{developer-support-H3DKWIJ6.js.map → developer-support-XYW34KTI.js.map} +0 -0
  75. /package/{doctor-W4UUFCZK.js.map → doctor-UOY4BMO2.js.map} +0 -0
  76. /package/{github-ZNSMVK5B.js.map → github-DTFLSMME.js.map} +0 -0
  77. /package/{goal-QSRRWQU5.js.map → goal-5OVITGGA.js.map} +0 -0
  78. /package/{host-NRXJODYZ.js.map → host-VSU7C3GW.js.map} +0 -0
  79. /package/{logs-KHD73Z5J.js.map → logs-43WDFVNN.js.map} +0 -0
  80. /package/{maps-CMMFRPIG.js.map → maps-OTGEBLIC.js.map} +0 -0
  81. /package/{memory-6ULYLSPP.js.map → memory-NZOYYZ5N.js.map} +0 -0
  82. /package/{model-SAVQXJEQ.js.map → model-QKGCKZVX.js.map} +0 -0
  83. /package/{model-provider-PH3LOEC6.js.map → model-provider-3SBQ7T4N.js.map} +0 -0
  84. /package/{org-M2HYRFTG.js.map → org-346OFBZR.js.map} +0 -0
  85. /package/{phone-FTFASCFG.js.map → phone-YANYP7W6.js.map} +0 -0
  86. /package/{preference-LKO5SRMA.js.map → preference-325PBBLX.js.map} +0 -0
  87. /package/{relationship-WGJY7W67.js.map → relationship-6M35HCZ5.js.map} +0 -0
  88. /package/{resource-UYVZXDOD.js.map → resource-I4UG6VL7.js.map} +0 -0
  89. /package/{scrape-374NLIRA.js.map → scrape-P4I7OVKQ.js.map} +0 -0
  90. /package/{search-Q35LEWVX.js.map → search-I6DXJNMB.js.map} +0 -0
  91. /package/{secret-XEQQCGAY.js.map → secret-VLRAQQHP.js.map} +0 -0
  92. /package/{slack-ATMM7DZK.js.map → slack-5FVOKM4R.js.map} +0 -0
  93. /package/{teams-FARW25SA.js.map → teams-LIUCG5YR.js.map} +0 -0
  94. /package/{telegram-VG2MHVKQ.js.map → telegram-GKSOUMEF.js.map} +0 -0
  95. /package/{variable-QUUYWMAW.js.map → variable-GJNDFM7T.js.map} +0 -0
  96. /package/{video-3ANZ4IFS.js.map → video-J3SE3EIC.js.map} +0 -0
  97. /package/{web-SMARZ2UY.js.map → web-IRUCSLBZ.js.map} +0 -0
  98. /package/{web-search-ZJ22REGT.js.map → web-search-HVKUSSDL.js.map} +0 -0
  99. /package/{whoami-VMJDVOZ2.js.map → whoami-LVRWHRX2.js.map} +0 -0
  100. /package/{workflow-4YFHZNEN.js.map → workflow-XXOCPRQK.js.map} +0 -0
@@ -3,7 +3,7 @@ import { createRequire as __createRequire } from "node:module";
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  getApiUrl
6
- } from "./chunk-LZSQADE3.js";
6
+ } from "./chunk-KWK46OB4.js";
7
7
  import {
8
8
  init_esm_shims
9
9
  } from "./chunk-DIRAZ3YX.js";
@@ -35,4 +35,4 @@ export {
35
35
  toPlatformUrl,
36
36
  getPlatformOrigin
37
37
  };
38
- //# sourceMappingURL=chunk-YI55ZHHU.js.map
38
+ //# sourceMappingURL=chunk-UV7FQCH3.js.map
@@ -3,7 +3,7 @@ import { createRequire as __createRequire } from "node:module";
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  MODEL_PROVIDER_TYPES
6
- } from "./chunk-LZSQADE3.js";
6
+ } from "./chunk-KWK46OB4.js";
7
7
  import {
8
8
  init_esm_shims
9
9
  } from "./chunk-DIRAZ3YX.js";
@@ -40,4 +40,4 @@ export {
40
40
  formatModelProviderRoute,
41
41
  formatModelPolicyStatus
42
42
  };
43
- //# sourceMappingURL=chunk-XZ2PCS5Z.js.map
43
+ //# sourceMappingURL=chunk-VT7YAG6O.js.map
@@ -10,14 +10,14 @@ import {
10
10
  parseBoundedLogCount,
11
11
  parseSearchQuery,
12
12
  parseTime
13
- } from "./chunk-SREFIFDC.js";
13
+ } from "./chunk-Q5HDFTO2.js";
14
14
  import {
15
15
  searchZeroLogs
16
- } from "./chunk-BBLU3MCE.js";
16
+ } from "./chunk-RWOCHMM3.js";
17
17
  import {
18
18
  source_default,
19
19
  withErrorHandler
20
- } from "./chunk-LZSQADE3.js";
20
+ } from "./chunk-KWK46OB4.js";
21
21
  import {
22
22
  Command
23
23
  } from "./chunk-B3W2RUBP.js";
@@ -174,4 +174,4 @@ export {
174
174
  runLogsSearch,
175
175
  searchCommand
176
176
  };
177
- //# sourceMappingURL=chunk-GQJEXREE.js.map
177
+ //# sourceMappingURL=chunk-Y3QSI5S5.js.map
@@ -12,11 +12,11 @@ import {
12
12
  fetchComputerUseScreenshot,
13
13
  getComputerUseCommand,
14
14
  listComputerUseHosts
15
- } from "./chunk-BBLU3MCE.js";
15
+ } from "./chunk-RWOCHMM3.js";
16
16
  import {
17
17
  ApiRequestError,
18
18
  withErrorHandler
19
- } from "./chunk-LZSQADE3.js";
19
+ } from "./chunk-KWK46OB4.js";
20
20
  import "./chunk-LRHXR7JT.js";
21
21
  import {
22
22
  Command
@@ -969,4 +969,4 @@ export {
969
969
  formatComputerUseResultForConsole,
970
970
  zeroComputerUseCommand
971
971
  };
972
- //# sourceMappingURL=computer-use-FHRGSU67.js.map
972
+ //# sourceMappingURL=computer-use-Y5SMX3YD.js.map
@@ -1,24 +1,30 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __createRequire } from "node:module";
3
3
  const require = __createRequire(import.meta.url);
4
+ import {
5
+ availableConnectorRefs,
6
+ findConnectorStatusItem,
7
+ resolveAgentContext,
8
+ resolveManualGrantAuthMethod,
9
+ searchPublicConnectorCatalog
10
+ } from "./chunk-BY42E2UD.js";
4
11
  import {
5
12
  getPlatformOrigin
6
- } from "./chunk-YI55ZHHU.js";
13
+ } from "./chunk-UV7FQCH3.js";
7
14
  import {
8
15
  connectZeroConnectorManualGrant,
9
16
  customConnectorProposalSchema,
10
17
  getZeroAgent,
11
18
  getZeroAgentCustomConnectors,
12
- getZeroAgentUserConnectors,
13
19
  getZeroCustomConnector,
14
20
  listZeroConnectorCatalogStatus,
15
21
  listZeroCustomConnectors
16
- } from "./chunk-BBLU3MCE.js";
22
+ } from "./chunk-RWOCHMM3.js";
17
23
  import "./chunk-LTDQISD7.js";
18
24
  import {
19
25
  source_default,
20
26
  withErrorHandler
21
- } from "./chunk-LZSQADE3.js";
27
+ } from "./chunk-KWK46OB4.js";
22
28
  import "./chunk-LRHXR7JT.js";
23
29
  import {
24
30
  Command
@@ -32,241 +38,6 @@ init_esm_shims();
32
38
 
33
39
  // src/commands/zero/connector/connect.ts
34
40
  init_esm_shims();
35
-
36
- // src/commands/zero/connector/public-catalog.ts
37
- init_esm_shims();
38
- var TOKEN_BOUNDARY = /[_\-\s]+/;
39
- var CASE_BOUNDARY = /(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])/;
40
- var MIN_SCORE = 10;
41
- function tokenize(input) {
42
- const tokens = /* @__PURE__ */ new Set();
43
- for (const chunk of input.split(TOKEN_BOUNDARY)) {
44
- if (!chunk) continue;
45
- for (const sub of chunk.split(CASE_BOUNDARY)) {
46
- const lower = sub.toLowerCase();
47
- if (lower) tokens.add(lower);
48
- }
49
- }
50
- return tokens;
51
- }
52
- function publicStrings(connector) {
53
- return [
54
- connector.connectorRef,
55
- connector.label,
56
- connector.description,
57
- connector.category,
58
- ...connector.tags,
59
- ...connector.generation,
60
- ...connector.authMethods.flatMap((authMethod) => {
61
- return [
62
- authMethod.id,
63
- authMethod.label,
64
- ...authMethod.description ? [authMethod.description] : []
65
- ];
66
- })
67
- ];
68
- }
69
- function best(candidates) {
70
- return candidates.reduce((bestHit, hit) => {
71
- if (!hit) return bestHit;
72
- if (!bestHit || hit.score > bestHit.score) return hit;
73
- return bestHit;
74
- }, null);
75
- }
76
- function scoreExact(keywordLower, skipPrivateIdentifierMatches, connector) {
77
- if (connector.connectorRef.toLowerCase() === keywordLower) {
78
- return { score: 100, matchedField: "connectorRef" };
79
- }
80
- if (connector.label.toLowerCase() === keywordLower) {
81
- return { score: 80, matchedField: "label" };
82
- }
83
- for (const tag of connector.tags) {
84
- if (skipPrivateIdentifierMatches && tag.includes("_")) continue;
85
- if (tag.toLowerCase() === keywordLower) {
86
- return { score: 70, matchedField: `tag:${tag}` };
87
- }
88
- }
89
- for (const generationType of connector.generation) {
90
- if (generationType.toLowerCase() === keywordLower) {
91
- return { score: 65, matchedField: `generation:${generationType}` };
92
- }
93
- }
94
- for (const authMethod of connector.authMethods) {
95
- if (authMethod.id.toLowerCase() === keywordLower) {
96
- return { score: 60, matchedField: `auth-method:${authMethod.id}` };
97
- }
98
- if (authMethod.label.toLowerCase() === keywordLower) {
99
- return { score: 60, matchedField: `auth-method:${authMethod.label}` };
100
- }
101
- }
102
- if (connector.category.toLowerCase() === keywordLower) {
103
- return { score: 55, matchedField: "category" };
104
- }
105
- return null;
106
- }
107
- function scoreSubstring(keywordLower, skipPrivateIdentifierMatches, connector) {
108
- const candidates = [];
109
- if (connector.connectorRef.toLowerCase().includes(keywordLower)) {
110
- candidates.push({ score: 50, matchedField: "connectorRef" });
111
- }
112
- if (connector.label.toLowerCase().includes(keywordLower)) {
113
- candidates.push({ score: 50, matchedField: "label" });
114
- }
115
- for (const tag of connector.tags) {
116
- if (skipPrivateIdentifierMatches && tag.includes("_")) continue;
117
- if (tag.toLowerCase().includes(keywordLower)) {
118
- candidates.push({ score: 25, matchedField: `tag:${tag}` });
119
- }
120
- }
121
- for (const generationType of connector.generation) {
122
- if (generationType.toLowerCase().includes(keywordLower)) {
123
- candidates.push({
124
- score: 25,
125
- matchedField: `generation:${generationType}`
126
- });
127
- }
128
- }
129
- for (const authMethod of connector.authMethods) {
130
- if (authMethod.id.toLowerCase().includes(keywordLower) || authMethod.label.toLowerCase().includes(keywordLower)) {
131
- candidates.push({
132
- score: 20,
133
- matchedField: `auth-method:${authMethod.id}`
134
- });
135
- }
136
- }
137
- if (connector.category.toLowerCase().includes(keywordLower)) {
138
- candidates.push({ score: 20, matchedField: "category" });
139
- }
140
- if (connector.description.toLowerCase().includes(keywordLower)) {
141
- candidates.push({ score: 15, matchedField: "description" });
142
- }
143
- return best(candidates);
144
- }
145
- function scoreTokens(keywordTokens, connector) {
146
- const candidateTokens = /* @__PURE__ */ new Set();
147
- for (const source of publicStrings(connector)) {
148
- for (const token of tokenize(source)) {
149
- candidateTokens.add(token);
150
- }
151
- }
152
- let intersection = 0;
153
- let firstCommon = "";
154
- for (const token of keywordTokens) {
155
- if (candidateTokens.has(token)) {
156
- intersection++;
157
- if (!firstCommon) firstCommon = token;
158
- }
159
- }
160
- if (intersection === 0) return null;
161
- return { score: 10 * intersection, matchedField: `token:${firstCommon}` };
162
- }
163
- function scoreConnector(keywordLower, keyword, keywordTokens, connector) {
164
- const skipPrivateIdentifierMatches = /^[A-Za-z0-9_]+$/.test(keyword) && keyword.includes("_");
165
- const tokenHit = skipPrivateIdentifierMatches ? null : scoreTokens(keywordTokens, connector);
166
- const hit = best([
167
- scoreExact(keywordLower, skipPrivateIdentifierMatches, connector),
168
- scoreSubstring(keywordLower, skipPrivateIdentifierMatches, connector),
169
- tokenHit
170
- ]);
171
- if (!hit || hit.score < MIN_SCORE) return null;
172
- return hit;
173
- }
174
- function searchPublicConnectorCatalog(connectors, keyword, limit) {
175
- const trimmed = keyword.trim();
176
- if (!trimmed) return { results: [], total: 0 };
177
- const keywordLower = trimmed.toLowerCase();
178
- const keywordTokens = tokenize(trimmed);
179
- const hits = connectors.flatMap(
180
- (connector) => {
181
- const hit = scoreConnector(
182
- keywordLower,
183
- trimmed,
184
- keywordTokens,
185
- connector
186
- );
187
- if (!hit) return [];
188
- return [
189
- {
190
- connector,
191
- score: hit.score,
192
- matchedField: hit.matchedField
193
- }
194
- ];
195
- }
196
- );
197
- hits.sort((a, b) => {
198
- if (b.score !== a.score) return b.score - a.score;
199
- return a.connector.connectorRef.localeCompare(b.connector.connectorRef);
200
- });
201
- return {
202
- results: hits.slice(0, limit),
203
- total: hits.length
204
- };
205
- }
206
- function findConnectorStatusItem(connectors, connectorRef) {
207
- const exact = connectors.find((connector) => {
208
- return connector.connectorRef === connectorRef;
209
- });
210
- if (exact) return exact;
211
- const lower = connectorRef.toLowerCase();
212
- return connectors.find((connector) => {
213
- return connector.connectorRef.toLowerCase() === lower;
214
- }) ?? null;
215
- }
216
- function availableConnectorRefs(connectors) {
217
- return connectors.map((connector) => {
218
- return connector.connectorRef;
219
- }).join(", ");
220
- }
221
- function resolveManualGrantAuthMethod(connector, rawAuthMethod) {
222
- if (rawAuthMethod) {
223
- const authMethod2 = connector.authMethods.find((method) => {
224
- return method.id === rawAuthMethod;
225
- });
226
- if (!authMethod2) {
227
- throw new Error(
228
- `${connector.connectorRef} connector does not have ${rawAuthMethod} auth method`,
229
- {
230
- cause: new Error(
231
- `Available auth methods: ${connector.authMethods.map((method) => {
232
- return method.id;
233
- }).join(", ")}`
234
- )
235
- }
236
- );
237
- }
238
- if (authMethod2.grantKind === "manual") {
239
- return authMethod2;
240
- }
241
- throw new Error(
242
- `${connector.connectorRef} ${authMethod2.id} auth method does not use a manual grant`
243
- );
244
- }
245
- const manualAuthMethods = connector.authMethods.filter((method) => {
246
- return method.grantKind === "manual";
247
- });
248
- const authMethod = manualAuthMethods[0];
249
- if (manualAuthMethods.length === 1 && authMethod) {
250
- return authMethod;
251
- }
252
- if (manualAuthMethods.length === 0) {
253
- throw new Error(
254
- `${connector.connectorRef} connector does not use a manual grant`
255
- );
256
- }
257
- throw new Error(
258
- `${connector.connectorRef} connector has multiple manual grant auth methods`,
259
- {
260
- cause: new Error(
261
- `Pass --auth-method ${manualAuthMethods.map((method) => {
262
- return method.id;
263
- }).join("|")}`
264
- )
265
- }
266
- );
267
- }
268
-
269
- // src/commands/zero/connector/connect.ts
270
41
  function collectValue(value, previous) {
271
42
  return [...previous, value];
272
43
  }
@@ -339,22 +110,6 @@ var connectCommand = new Command().name("connect").description("Connect a connec
339
110
  // src/commands/zero/connector/list.ts
340
111
  init_esm_shims();
341
112
 
342
- // src/commands/zero/connector/agent-context.ts
343
- init_esm_shims();
344
- async function resolveAgentContext(flagAgentId) {
345
- const agentId = flagAgentId ?? process.env.ZERO_AGENT_ID;
346
- if (!agentId) return null;
347
- const [agent, enabledTypes] = await Promise.all([
348
- getZeroAgent(agentId),
349
- getZeroAgentUserConnectors(agentId)
350
- ]);
351
- return {
352
- agentId: agent.agentId,
353
- displayName: agent.displayName ?? agent.agentId,
354
- authorizedTypes: new Set(enabledTypes)
355
- };
356
- }
357
-
358
113
  // src/commands/zero/connector/connected-as.ts
359
114
  init_esm_shims();
360
115
  function renderIdentity(connector) {
@@ -801,4 +556,4 @@ var zeroConnectorCommand = new Command().name("connector").description("Check th
801
556
  export {
802
557
  zeroConnectorCommand
803
558
  };
804
- //# sourceMappingURL=connector-B64GISX5.js.map
559
+ //# sourceMappingURL=connector-WS2ZTAQP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/zero/connector/index.ts","../src/commands/zero/connector/connect.ts","../src/commands/zero/connector/list.ts","../src/commands/zero/connector/connected-as.ts","../src/commands/zero/connector/search.ts","../src/commands/zero/connector/status.ts","../src/commands/zero/connector/custom/index.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport { connectCommand } from \"./connect\";\nimport { listCommand } from \"./list\";\nimport { searchCommand } from \"./search\";\nimport { statusCommand } from \"./status\";\nimport { customConnectorCommand } from \"./custom\";\n\nexport const zeroConnectorCommand = new Command()\n .name(\"connector\")\n .description(\"Check third-party service connections (GitHub, Slack, etc.)\")\n .addCommand(customConnectorCommand)\n .addCommand(connectCommand)\n .addCommand(listCommand)\n .addCommand(searchCommand)\n .addCommand(statusCommand);\n","import { Command } from \"commander\";\nimport chalk from \"chalk\";\nimport {\n connectZeroConnectorManualGrant,\n listZeroConnectorCatalogStatus,\n} from \"../../../lib/api\";\nimport { withErrorHandler } from \"../../../lib/command\";\nimport {\n availableConnectorRefs,\n findConnectorStatusItem,\n resolveManualGrantAuthMethod,\n} from \"./public-catalog\";\n\ninterface ConnectOptions {\n readonly authMethod?: string;\n readonly value?: readonly string[];\n readonly json?: boolean;\n}\n\nfunction collectValue(value: string, previous: string[]): string[] {\n return [...previous, value];\n}\n\nfunction parseConnectorValues(rawValues: readonly string[] | undefined) {\n if (!rawValues || rawValues.length === 0) {\n throw new Error(\"At least one --value NAME=VALUE is required\", {\n cause: new Error(\n \"Example: zero connector connect zendesk --value apiToken=token\",\n ),\n });\n }\n\n const values: Record<string, string> = {};\n for (const rawValue of rawValues) {\n const separatorIndex = rawValue.indexOf(\"=\");\n if (separatorIndex <= 0) {\n throw new Error(\"Invalid --value format\", {\n cause: new Error(\"Use --value NAME=VALUE\"),\n });\n }\n\n const name = rawValue.slice(0, separatorIndex);\n if (!name.trim()) {\n throw new Error(\"Invalid --value format\", {\n cause: new Error(\"Field name cannot be empty\"),\n });\n }\n\n values[name] = rawValue.slice(separatorIndex + 1);\n }\n\n return values;\n}\n\nexport const connectCommand = new Command()\n .name(\"connect\")\n .description(\"Connect a connector with manual grant values\")\n .argument(\"<type>\", \"Connector type (e.g., zendesk)\")\n .option(\"--auth-method <method>\", \"Connector auth method to use\")\n .option(\n \"--value <name=value>\",\n \"Connector field value; repeat for multiple fields\",\n collectValue,\n [],\n )\n .option(\"--json\", \"Print the connector response as JSON\")\n .action(\n withErrorHandler(async (type: string, options: ConnectOptions) => {\n const values = parseConnectorValues(options.value);\n const catalog = await listZeroConnectorCatalogStatus();\n const connectorMetadata = findConnectorStatusItem(\n catalog.connectors,\n type,\n );\n if (!connectorMetadata) {\n throw new Error(`Unknown or unavailable connector: ${type}`, {\n cause: new Error(\n `Available connectors: ${availableConnectorRefs(catalog.connectors)}`,\n ),\n });\n }\n\n const authMethod = resolveManualGrantAuthMethod(\n connectorMetadata,\n options.authMethod,\n );\n const connector = await connectZeroConnectorManualGrant(\n connectorMetadata.connectorRef,\n authMethod.id,\n values,\n );\n\n if (options.json) {\n console.log(JSON.stringify(connector, null, 2));\n return;\n }\n\n console.log(chalk.green(`✓ ${connectorMetadata.label} connected`));\n console.log(chalk.dim(` Type: ${connector.type}`));\n console.log(chalk.dim(` Auth Method: ${connector.authMethod}`));\n console.log(chalk.dim(` Run: zero connector status ${connector.type}`));\n }),\n );\n","import { Command } from \"commander\";\nimport chalk from \"chalk\";\nimport { listZeroConnectorCatalogStatus } from \"../../../lib/api\";\nimport { withErrorHandler } from \"../../../lib/command\";\nimport { resolveAgentContext } from \"./agent-context\";\nimport { padEndAnsi, renderConnectedAsCell, stripAnsi } from \"./connected-as\";\n\nexport const listCommand = new Command()\n .name(\"list\")\n .alias(\"ls\")\n .description(\"List all connectors and their status\")\n .option(\"--agent <id>\", \"Show per-agent authorization column\")\n .action(\n withErrorHandler(async (options: { agent?: string }) => {\n const [{ connectors }, agentCtx] = await Promise.all([\n listZeroConnectorCatalogStatus(),\n resolveAgentContext(options.agent),\n ]);\n\n const allTypes = connectors.map((connector) => {\n return connector.connectorRef;\n });\n\n const typeWidth = Math.max(\n 4,\n ...allTypes.map((t) => {\n return t.length;\n }),\n );\n\n const connectedAsHeader = \"CONNECTED AS\";\n const connectedCells = connectors.map((connector) => {\n return renderConnectedAsCell(connector);\n });\n const connectedAsWidth = Math.max(\n connectedAsHeader.length,\n ...connectedCells.map((c) => {\n return stripAnsi(c).length;\n }),\n );\n\n const authorizedHeader = agentCtx\n ? `AUTHORIZED FOR ${agentCtx.displayName}`\n : null;\n\n // Print header\n const headerParts = [\n \"TYPE\".padEnd(typeWidth),\n connectedAsHeader.padEnd(connectedAsWidth),\n ];\n if (authorizedHeader) headerParts.push(authorizedHeader);\n console.log(chalk.dim(headerParts.join(\" \")));\n\n // Print rows\n for (let i = 0; i < allTypes.length; i++) {\n const type = allTypes[i]!;\n const connectedCell = padEndAnsi(connectedCells[i]!, connectedAsWidth);\n const parts = [type.padEnd(typeWidth), connectedCell];\n if (agentCtx) {\n parts.push(\n agentCtx.authorizedTypes.has(type)\n ? chalk.green(\"✓\")\n : chalk.dim(\"-\"),\n );\n }\n console.log(parts.join(\" \"));\n }\n }),\n );\n","import chalk from \"chalk\";\nimport type { PublicConnectorStatus } from \"./public-catalog\";\n\nfunction renderIdentity(connector: PublicConnectorStatus): string {\n if (connector.connection?.externalUsername) {\n return `@${connector.connection.externalUsername}`;\n }\n if (connector.connection?.externalEmail)\n return connector.connection.externalEmail;\n return \"-\";\n}\n\nexport function renderConnectedAsCell(\n connector: PublicConnectorStatus | undefined,\n): string {\n if (!connector || connector.connectionStatus === \"not-connected\") {\n return chalk.dim(\"(not connected)\");\n }\n const identity = renderIdentity(connector);\n if (connector.connectionStatus === \"reconnect-required\") {\n return chalk.yellow(`${identity} (reconnect needed)`);\n }\n if (\n connector.scopeMismatch ||\n connector.connectionStatus === \"scope-mismatch\"\n ) {\n return chalk.yellow(`${identity} (permissions update available)`);\n }\n return identity;\n}\n\nconst ESC = \"\\u001b\";\nconst ANSI_PATTERN = new RegExp(`${ESC}\\\\[[0-9;]*m`, \"g\");\n\nexport function stripAnsi(s: string): string {\n return s.replace(ANSI_PATTERN, \"\");\n}\n\nexport function padEndAnsi(s: string, width: number): string {\n const visible = stripAnsi(s).length;\n return s + \" \".repeat(Math.max(0, width - visible));\n}\n","import { Command } from \"commander\";\nimport chalk from \"chalk\";\nimport { listZeroConnectorCatalogStatus } from \"../../../lib/api\";\nimport { withErrorHandler } from \"../../../lib/command\";\nimport { resolveAgentContext } from \"./agent-context\";\nimport { padEndAnsi, renderConnectedAsCell, stripAnsi } from \"./connected-as\";\nimport { searchPublicConnectorCatalog } from \"./public-catalog\";\n\nconst DEFAULT_LIMIT = 5;\nconst EXACT_MATCH_THRESHOLD = 80;\n\nfunction parseLimit(raw: string): number {\n const trimmed = raw.trim();\n const n = Number(trimmed);\n if (!/^\\d+$/.test(trimmed) || !Number.isSafeInteger(n) || n <= 0) {\n throw new Error(`--limit must be a positive integer, got \"${raw}\".`);\n }\n return n;\n}\n\nexport const searchCommand = new Command()\n .name(\"search\")\n .description(\n \"Search connectors by type, label, category, generation type, or tag\",\n )\n .argument(\"<keyword>\", \"Search keyword (case-insensitive)\")\n .option(\"--agent <id>\", \"Show per-agent authorization column\")\n .option(\n \"--limit <n>\",\n `Maximum number of results to display (default ${DEFAULT_LIMIT})`,\n parseLimit,\n DEFAULT_LIMIT,\n )\n .action(\n withErrorHandler(\n async (keyword: string, options: { agent?: string; limit: number }) => {\n const trimmed = keyword.trim();\n if (!trimmed) {\n throw new Error(\"Keyword cannot be empty.\");\n }\n\n const [{ connectors }, agentCtx] = await Promise.all([\n listZeroConnectorCatalogStatus(),\n resolveAgentContext(options.agent),\n ]);\n const { results, total } = searchPublicConnectorCatalog(\n connectors,\n trimmed,\n options.limit,\n );\n\n if (results.length === 0) {\n console.log(\"No matches found.\");\n return;\n }\n\n const topScore = results[0]!.score;\n if (topScore < EXACT_MATCH_THRESHOLD) {\n console.log(\"No exact match. Showing closest:\");\n }\n if (total > options.limit) {\n console.log(`Too many results (top ${options.limit} of ${total}):`);\n }\n\n const typeHeader = \"TYPE\";\n const connectedAsHeader = \"CONNECTED AS\";\n\n const connectedCells = results.map((r) => {\n return renderConnectedAsCell(r.connector);\n });\n\n const typeWidth = Math.max(\n typeHeader.length,\n ...results.map((r) => {\n return r.connector.connectorRef.length;\n }),\n );\n const connectedAsWidth = Math.max(\n connectedAsHeader.length,\n ...connectedCells.map((c) => {\n return stripAnsi(c).length;\n }),\n );\n\n const headerParts = [\n typeHeader.padEnd(typeWidth),\n connectedAsHeader.padEnd(connectedAsWidth),\n ];\n if (agentCtx) {\n headerParts.push(`AUTHORIZED FOR ${agentCtx.displayName}`);\n }\n console.log(chalk.dim(headerParts.join(\" \")));\n\n for (let i = 0; i < results.length; i++) {\n const result = results[i]!;\n const parts = [\n result.connector.connectorRef.padEnd(typeWidth),\n padEndAnsi(connectedCells[i]!, connectedAsWidth),\n ];\n if (agentCtx) {\n parts.push(\n agentCtx.authorizedTypes.has(result.connector.connectorRef)\n ? chalk.green(\"✓\")\n : chalk.dim(\"-\"),\n );\n }\n console.log(parts.join(\" \"));\n }\n },\n ),\n );\n","import { Command } from \"commander\";\nimport chalk from \"chalk\";\nimport { listZeroConnectorCatalogStatus } from \"../../../lib/api\";\nimport { withErrorHandler } from \"../../../lib/command\";\nimport { resolveAgentContext } from \"./agent-context\";\nimport { getPlatformOrigin } from \"../doctor/platform-url\";\nimport {\n availableConnectorRefs,\n findConnectorStatusItem,\n type PublicConnectorStatus,\n} from \"./public-catalog\";\n\nconst LABEL_WIDTH = 16;\n\ntype AgentContext = NonNullable<\n Awaited<ReturnType<typeof resolveAgentContext>>\n>;\n\nfunction printConnectorDetails(connector: PublicConnectorStatus): void {\n if (connector.connectionStatus === \"not-connected\") {\n console.log(\n `${\"Status:\".padEnd(LABEL_WIDTH)}${chalk.dim(\"not connected\")}`,\n );\n return;\n }\n\n console.log(\n `${\"Status:\".padEnd(LABEL_WIDTH)}${\n connector.connectionStatus === \"reconnect-required\"\n ? chalk.yellow(\"reconnect needed\")\n : chalk.green(\"connected\")\n }`,\n );\n if (connector.connection?.externalUsername) {\n console.log(\n `${\"Account:\".padEnd(LABEL_WIDTH)}@${connector.connection.externalUsername}`,\n );\n } else if (connector.connection?.externalEmail) {\n console.log(\n `${\"Account:\".padEnd(LABEL_WIDTH)}${connector.connection.externalEmail}`,\n );\n }\n if (connector.connection?.authMethod) {\n console.log(\n `${\"Auth Method:\".padEnd(LABEL_WIDTH)}${connector.connection.authMethod}`,\n );\n }\n if (connector.scopeMismatch) {\n console.log(\n `${\"Permissions:\".padEnd(LABEL_WIDTH)}${chalk.yellow(\"update available\")}`,\n );\n }\n if (connector.tokenExpiresAt) {\n console.log(\n `${\"Token Expires:\".padEnd(LABEL_WIDTH)}${connector.tokenExpiresAt}`,\n );\n }\n}\n\nasync function printAgentAction(\n connector: PublicConnectorStatus,\n agentCtx: AgentContext,\n): Promise<void> {\n const connectorRef = connector.connectorRef;\n const authorized = agentCtx.authorizedTypes.has(connectorRef);\n const isConnected = connector.connected;\n const needsReconnect = connector.connectionStatus === \"reconnect-required\";\n const agentLabel =\n agentCtx.displayName === agentCtx.agentId\n ? agentCtx.agentId\n : `${agentCtx.displayName} (${agentCtx.agentId})`;\n\n console.log();\n if (needsReconnect) {\n const origin = await getPlatformOrigin();\n const url = `${origin}/connectors`;\n console.log(\n `The ${connectorRef} connector is connected but needs to be reconnected before agent ${agentLabel} can use it.`,\n );\n console.log(`Reconnect it at: [Reconnect ${connectorRef}](${url})`);\n } else if (authorized && !isConnected) {\n const origin = await getPlatformOrigin();\n const url = `${origin}/connectors/${connectorRef}/connect?agentId=${agentCtx.agentId}`;\n console.log(\n `The ${connectorRef} connector is authorized for agent ${agentLabel}, but it is not connected.`,\n );\n console.log(`Connect it at: [Connect ${connectorRef}](${url})`);\n } else if (authorized) {\n console.log(\n `The ${connectorRef} connector is authorized for agent ${agentLabel}.`,\n );\n } else if (!isConnected) {\n const origin = await getPlatformOrigin();\n const url = `${origin}/connectors/${connectorRef}/connect?agentId=${agentCtx.agentId}`;\n console.log(\n `The ${connectorRef} connector is not connected. Once connected, it will be authorized for agent ${agentLabel}.`,\n );\n console.log(\n `Connect and authorize it at: [Connect ${connectorRef}](${url})`,\n );\n } else {\n const origin = await getPlatformOrigin();\n const url = `${origin}/connectors/${connectorRef}/authorize?agentId=${agentCtx.agentId}`;\n console.log(\n `The ${connectorRef} connector is not authorized for agent ${agentLabel}.`,\n );\n console.log(`Authorize it at: [Authorize ${connectorRef}](${url})`);\n }\n}\n\nasync function printStandaloneAction(\n connector: PublicConnectorStatus,\n): Promise<void> {\n const connectorRef = connector.connectorRef;\n if (\n connector.connectionStatus === \"connected\" ||\n connector.connectionStatus === \"scope-mismatch\"\n ) {\n return;\n }\n\n const origin = await getPlatformOrigin();\n console.log();\n if (connector.connectionStatus === \"reconnect-required\") {\n const url = `${origin}/connectors`;\n console.log(\n `The ${connectorRef} connector is connected but needs to be reconnected.`,\n );\n console.log(`Reconnect it at: [Reconnect ${connectorRef}](${url})`);\n } else {\n const url = `${origin}/connectors/${connectorRef}/connect`;\n console.log(`Connect it at: [Connect ${connectorRef}](${url})`);\n }\n}\n\nexport const statusCommand = new Command()\n .name(\"status\")\n .description(\"Show detailed status of a connector\")\n .argument(\"<type>\", \"Connector type (e.g., github)\")\n .option(\"--agent <id>\", \"Show authorization state for the given agent\")\n .action(\n withErrorHandler(async (type: string, options: { agent?: string }) => {\n const [catalog, agentCtx] = await Promise.all([\n listZeroConnectorCatalogStatus(),\n resolveAgentContext(options.agent),\n ]);\n const connector = findConnectorStatusItem(catalog.connectors, type);\n if (!connector) {\n throw new Error(`Unknown or unavailable connector: ${type}`, {\n cause: new Error(\n `Available connectors: ${availableConnectorRefs(catalog.connectors)}`,\n ),\n });\n }\n\n console.log(`Connector: ${chalk.cyan(connector.connectorRef)}`);\n console.log();\n\n printConnectorDetails(connector);\n\n if (agentCtx) {\n await printAgentAction(connector, agentCtx);\n } else {\n await printStandaloneAction(connector);\n }\n }),\n );\n","import { Command } from \"commander\";\nimport chalk from \"chalk\";\nimport { readFile } from \"node:fs/promises\";\nimport { customConnectorProposalSchema } from \"@vm0/api-contracts/contracts/zero-custom-connectors\";\nimport {\n getZeroAgent,\n getZeroAgentCustomConnectors,\n getZeroCustomConnector,\n listZeroCustomConnectors,\n} from \"../../../../lib/api\";\nimport { withErrorHandler } from \"../../../../lib/command\";\nimport { getPlatformOrigin } from \"../../doctor/platform-url\";\n\nconst LABEL_WIDTH = 18;\n\nfunction renderConnected(connector: {\n readonly connected: boolean;\n readonly missingRequiredFields: readonly string[];\n}): string {\n if (connector.connected) {\n return chalk.green(\"connected\");\n }\n if (connector.missingRequiredFields.length === 0) {\n return chalk.dim(\"not connected\");\n }\n return chalk.yellow(`missing ${connector.missingRequiredFields.join(\", \")}`);\n}\n\nfunction encodeBase64UrlJson(value: unknown): string {\n return Buffer.from(JSON.stringify(value), \"utf8\").toString(\"base64url\");\n}\n\nfunction isJsonObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nasync function resolveCustomAgentContext(agentId: string | undefined): Promise<{\n readonly agentId: string;\n readonly displayName: string;\n readonly authorizedIds: Set<string>;\n} | null> {\n const resolvedAgentId = agentId ?? process.env.ZERO_AGENT_ID;\n if (!resolvedAgentId) {\n return null;\n }\n const [agent, enabledIds] = await Promise.all([\n getZeroAgent(resolvedAgentId),\n getZeroAgentCustomConnectors(resolvedAgentId),\n ]);\n return {\n agentId: agent.agentId,\n displayName: agent.displayName ?? agent.agentId,\n authorizedIds: new Set(enabledIds),\n };\n}\n\nconst listCommand = new Command()\n .name(\"list\")\n .alias(\"ls\")\n .description(\"List org custom connectors\")\n .option(\"--agent <id>\", \"Show per-agent authorization column\")\n .action(\n withErrorHandler(async (options: { agent?: string }) => {\n const [connectors, agentCtx] = await Promise.all([\n listZeroCustomConnectors(),\n resolveCustomAgentContext(options.agent),\n ]);\n const idWidth = Math.max(\n 2,\n ...connectors.map((connector) => {\n return connector.id.length;\n }),\n );\n const nameWidth = Math.max(\n 4,\n ...connectors.map((connector) => {\n return connector.displayName.length;\n }),\n );\n const header = [\"ID\".padEnd(idWidth), \"NAME\".padEnd(nameWidth), \"STATUS\"];\n if (agentCtx) {\n header.push(`AUTHORIZED FOR ${agentCtx.displayName}`);\n }\n console.log(chalk.dim(header.join(\" \")));\n for (const connector of connectors) {\n const row = [\n connector.id.padEnd(idWidth),\n connector.displayName.padEnd(nameWidth),\n renderConnected(connector),\n ];\n if (agentCtx) {\n row.push(\n agentCtx.authorizedIds.has(connector.id)\n ? chalk.green(\"✓\")\n : chalk.dim(\"-\"),\n );\n }\n console.log(row.join(\" \"));\n }\n }),\n );\n\nconst statusCommand = new Command()\n .name(\"status\")\n .description(\"Show detailed status of a custom connector\")\n .argument(\"<connector-id>\", \"Custom connector id\")\n .option(\"--agent <id>\", \"Show authorization state for the given agent\")\n .action(\n withErrorHandler(\n async (connectorId: string, options: { agent?: string }) => {\n const [connector, agentCtx] = await Promise.all([\n getZeroCustomConnector(connectorId),\n resolveCustomAgentContext(options.agent),\n ]);\n if (!connector) {\n throw new Error(`Custom connector not found: ${connectorId}`);\n }\n console.log(`Custom connector: ${chalk.cyan(connector.displayName)}`);\n console.log();\n console.log(`${\"ID:\".padEnd(LABEL_WIDTH)}${connector.id}`);\n console.log(\n `${\"Status:\".padEnd(LABEL_WIDTH)}${renderConnected(connector)}`,\n );\n console.log(\n `${\"Prefixes:\".padEnd(LABEL_WIDTH)}${connector.prefixTemplates.join(\", \")}`,\n );\n console.log(\n `${\"Fields:\".padEnd(LABEL_WIDTH)}${connector.fields\n .map((field) => {\n return `${field.kind}:${field.key}${field.required ? \"\" : \"?\"}`;\n })\n .join(\", \")}`,\n );\n if (connector.headerInjections.length > 0) {\n console.log(\n `${\"Headers:\".padEnd(LABEL_WIDTH)}${connector.headerInjections\n .map((header) => {\n return header.name;\n })\n .join(\", \")}`,\n );\n }\n if (connector.queryInjections.length > 0) {\n console.log(\n `${\"Query params:\".padEnd(LABEL_WIDTH)}${connector.queryInjections\n .map((query) => {\n return query.name;\n })\n .join(\", \")}`,\n );\n }\n if (agentCtx) {\n console.log(\n `${\"Authorized:\".padEnd(LABEL_WIDTH)}${\n agentCtx.authorizedIds.has(connector.id)\n ? chalk.green(\"yes\")\n : chalk.yellow(\"no\")\n }`,\n );\n }\n },\n ),\n );\n\nconst proposeCommand = new Command()\n .name(\"propose\")\n .description(\"Create a browser save link for a custom connector proposal\")\n .requiredOption(\"--proposal-file <path>\", \"JSON proposal file\")\n .option(\"--connector-id <id>\", \"Override connector id for update proposals\")\n .option(\"--agent <id>\", \"Authorize this agent when the proposal is saved\")\n .action(\n withErrorHandler(\n async (options: {\n proposalFile: string;\n connectorId?: string;\n agent?: string;\n }) => {\n const raw = await readFile(options.proposalFile, \"utf8\");\n const proposalJson: unknown = JSON.parse(raw);\n if (!isJsonObject(proposalJson)) {\n throw new Error(\"Proposal file must contain a JSON object\");\n }\n const parsed = customConnectorProposalSchema.parse({\n ...proposalJson,\n ...(options.connectorId ? { connectorId: options.connectorId } : {}),\n });\n const origin = await getPlatformOrigin();\n const params = new URLSearchParams({\n p: encodeBase64UrlJson(parsed),\n });\n const agentId = options.agent ?? process.env.ZERO_AGENT_ID;\n if (agentId) {\n params.set(\"agentId\", agentId);\n }\n const url = `${origin}/connectors/custom/proposal?${params.toString()}`;\n console.log(`[Configure ${parsed.displayName}](${url})`);\n console.log();\n console.log(\n \"Open this link to review, save values, and authorize the connector.\",\n );\n },\n ),\n );\n\nexport const customConnectorCommand = new Command()\n .name(\"custom\")\n .description(\"Inspect and propose org custom connectors\")\n .addCommand(listCommand)\n .addCommand(statusCommand)\n .addCommand(proposeCommand);\n"],"mappings":"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","names":["LABEL_WIDTH","listCommand","statusCommand"]}
@@ -3,17 +3,17 @@ import { createRequire as __createRequire } from "node:module";
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  getPlatformOrigin
6
- } from "./chunk-YI55ZHHU.js";
6
+ } from "./chunk-UV7FQCH3.js";
7
7
  import {
8
8
  createZeroCreditCheckout,
9
9
  getZeroBillingStatus,
10
10
  getZeroOrgMembers
11
- } from "./chunk-BBLU3MCE.js";
11
+ } from "./chunk-RWOCHMM3.js";
12
12
  import "./chunk-LTDQISD7.js";
13
13
  import {
14
14
  source_default,
15
15
  withErrorHandler
16
- } from "./chunk-LZSQADE3.js";
16
+ } from "./chunk-KWK46OB4.js";
17
17
  import {
18
18
  decodeZeroTokenPayload
19
19
  } from "./chunk-LRHXR7JT.js";
@@ -125,4 +125,4 @@ var zeroCreditCommand = new Command().name("credit").description("View credit ba
125
125
  export {
126
126
  zeroCreditCommand
127
127
  };
128
- //# sourceMappingURL=credit-UMB7SG34.js.map
128
+ //# sourceMappingURL=credit-RKXWST56.js.map
@@ -4,11 +4,11 @@ const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  requestDeveloperSupportConsent,
6
6
  submitDeveloperSupport
7
- } from "./chunk-BBLU3MCE.js";
7
+ } from "./chunk-RWOCHMM3.js";
8
8
  import "./chunk-LTDQISD7.js";
9
9
  import {
10
10
  withErrorHandler
11
- } from "./chunk-LZSQADE3.js";
11
+ } from "./chunk-KWK46OB4.js";
12
12
  import "./chunk-LRHXR7JT.js";
13
13
  import {
14
14
  Command
@@ -60,4 +60,4 @@ Notes:
60
60
  export {
61
61
  zeroDeveloperSupportCommand
62
62
  };
63
- //# sourceMappingURL=developer-support-H3DKWIJ6.js.map
63
+ //# sourceMappingURL=developer-support-XYW34KTI.js.map
@@ -3,11 +3,11 @@ import { createRequire as __createRequire } from "node:module";
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  findFirewallMetadataPermission
6
- } from "./chunk-C6F22HSG.js";
6
+ } from "./chunk-LL7DUZNH.js";
7
7
  import {
8
8
  getPlatformOrigin,
9
9
  toPlatformUrl
10
- } from "./chunk-YI55ZHHU.js";
10
+ } from "./chunk-UV7FQCH3.js";
11
11
  import {
12
12
  UNKNOWN_PERMISSION_GRANT,
13
13
  createComputerUseAuthorizationRequest,
@@ -20,14 +20,14 @@ import {
20
20
  getZeroOrg,
21
21
  getZeroOrgMembers,
22
22
  hasUnsafeFirewallPath
23
- } from "./chunk-BBLU3MCE.js";
23
+ } from "./chunk-RWOCHMM3.js";
24
24
  import "./chunk-LTDQISD7.js";
25
25
  import {
26
26
  ApiRequestError,
27
27
  getApiUrl,
28
28
  source_default,
29
29
  withErrorHandler
30
- } from "./chunk-LZSQADE3.js";
30
+ } from "./chunk-KWK46OB4.js";
31
31
  import "./chunk-LRHXR7JT.js";
32
32
  import {
33
33
  Command,
@@ -1191,4 +1191,4 @@ Notes:
1191
1191
  export {
1192
1192
  zeroDoctorCommand
1193
1193
  };
1194
- //# sourceMappingURL=doctor-W4UUFCZK.js.map
1194
+ //# sourceMappingURL=doctor-UOY4BMO2.js.map
@@ -3,7 +3,7 @@ import { createRequire as __createRequire } from "node:module";
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  getPlatformOrigin
6
- } from "./chunk-YI55ZHHU.js";
6
+ } from "./chunk-UV7FQCH3.js";
7
7
  import {
8
8
  buildPresentationRunbookInstructionLines,
9
9
  findDesignSystem,
@@ -20,12 +20,12 @@ import {
20
20
  resolvePresentationRunbookColorToken,
21
21
  selectResourceCandidates,
22
22
  toGenerationTarget
23
- } from "./chunk-3B4I4CZP.js";
23
+ } from "./chunk-G7SIZXEQ.js";
24
24
  import {
25
25
  getZeroAgentUserConnectors,
26
26
  listZeroConnectorCatalog,
27
27
  listZeroConnectorCatalogStatus
28
- } from "./chunk-BBLU3MCE.js";
28
+ } from "./chunk-RWOCHMM3.js";
29
29
  import "./chunk-LTDQISD7.js";
30
30
  import {
31
31
  generateWebImage,
@@ -33,7 +33,7 @@ import {
33
33
  generateWebVoice,
34
34
  source_default,
35
35
  withErrorHandler
36
- } from "./chunk-LZSQADE3.js";
36
+ } from "./chunk-KWK46OB4.js";
37
37
  import "./chunk-LRHXR7JT.js";
38
38
  import {
39
39
  Command,
@@ -1553,6 +1553,8 @@ ${formatPresentationTemplateListing(templates)}`;
1553
1553
  "- Think like a presentation designer, not a web page designer.",
1554
1554
  "- Use a fixed 1920x1080 slide canvas and scale it uniformly for smaller viewports.",
1555
1555
  "- Use one section per slide and keep repeated elements in consistent positions.",
1556
+ "- Build the deck static-first: the final index.html must contain every slide section and all user-visible slide content, with the first slide visible before JavaScript runs.",
1557
+ "- Do not store slide content in JavaScript data or use JavaScript to create, inject, fetch, hydrate, or replace slide content. JavaScript may only progressively enhance the existing DOM for navigation, controls, themes, or animation.",
1556
1558
  "- Make keyboard navigation work with ArrowLeft, ArrowRight, Home, and End.",
1557
1559
  "- Keep slide text readable from across a room; avoid memo-like walls of text.",
1558
1560
  "- Produce exactly the requested slide count. Do not let a template's reference example or preview slide count override the requested count.",
@@ -2693,4 +2695,4 @@ var generateCommand = new Command().name("generate").description(
2693
2695
  export {
2694
2696
  generateCommand
2695
2697
  };
2696
- //# sourceMappingURL=generate-E5CUXU7B.js.map
2698
+ //# sourceMappingURL=generate-JYPWARY7.js.map