@vm0/cli 9.240.9 → 9.240.10

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 (98) hide show
  1. package/{agent-CPGD2CCT.js → agent-YHWAOX6U.js} +5 -5
  2. package/{banking-QK5LFWHM.js → banking-FGWHGOHN.js} +3 -3
  3. package/{chat-FVZTI3T3.js → chat-72GCKSHG.js} +4 -4
  4. package/chunk-3SVFEMEV.js +268 -0
  5. package/chunk-3SVFEMEV.js.map +1 -0
  6. package/{chunk-Y7MUZJOD.js → chunk-5W26XTGP.js} +3 -3
  7. package/{chunk-YI55ZHHU.js → chunk-GBODX3GS.js} +2 -2
  8. package/{chunk-SREFIFDC.js → chunk-GQUSLMB4.js} +10 -4
  9. package/chunk-GQUSLMB4.js.map +1 -0
  10. package/{chunk-C6F22HSG.js → chunk-LPM2VOJ3.js} +2 -2
  11. package/{chunk-XZ2PCS5Z.js → chunk-RXF3RLBP.js} +2 -2
  12. package/{chunk-LZSQADE3.js → chunk-TTOETZE7.js} +2 -2
  13. package/{chunk-LZSQADE3.js.map → chunk-TTOETZE7.js.map} +1 -1
  14. package/{chunk-BBLU3MCE.js → chunk-UETYUI63.js} +344 -216
  15. package/chunk-UETYUI63.js.map +1 -0
  16. package/{chunk-GQJEXREE.js → chunk-UNH2BGTT.js} +4 -4
  17. package/{chunk-JKGVRA3O.js → chunk-WVBGQLF3.js} +4 -4
  18. package/{computer-use-FHRGSU67.js → computer-use-6IVA23PH.js} +3 -3
  19. package/{connector-B64GISX5.js → connector-J2MZ3AL4.js} +11 -256
  20. package/connector-J2MZ3AL4.js.map +1 -0
  21. package/{credit-UMB7SG34.js → credit-JSRDF6P3.js} +4 -4
  22. package/{developer-support-H3DKWIJ6.js → developer-support-QL4S75YO.js} +3 -3
  23. package/{doctor-W4UUFCZK.js → doctor-3Z2KMZJB.js} +5 -5
  24. package/{generate-E5CUXU7B.js → generate-IJFB4QDG.js} +4 -4
  25. package/{github-ZNSMVK5B.js → github-5Z3JWUTN.js} +3 -3
  26. package/{goal-QSRRWQU5.js → goal-Q6PYUXAL.js} +3 -3
  27. package/{host-NRXJODYZ.js → host-2FFQ3HP5.js} +3 -3
  28. package/index.js +12 -12
  29. package/index.js.map +1 -1
  30. package/{logs-KHD73Z5J.js → logs-WPTN2IXD.js} +5 -5
  31. package/mail-EZQFQQUC.js +204 -0
  32. package/mail-EZQFQQUC.js.map +1 -0
  33. package/{maps-CMMFRPIG.js → maps-RGOTWAKE.js} +3 -3
  34. package/{memory-6ULYLSPP.js → memory-DJGTFSDZ.js} +3 -3
  35. package/{model-SAVQXJEQ.js → model-GXWUD4OM.js} +4 -4
  36. package/{model-provider-PH3LOEC6.js → model-provider-M2U5M3JC.js} +4 -4
  37. package/{org-M2HYRFTG.js → org-ZWRXUNPJ.js} +3 -3
  38. package/package.json +1 -1
  39. package/{phone-FTFASCFG.js → phone-TX6CD66H.js} +3 -3
  40. package/{preference-LKO5SRMA.js → preference-A6KLUJMS.js} +3 -3
  41. package/{relationship-WGJY7W67.js → relationship-5AO6TKVS.js} +3 -3
  42. package/{resource-UYVZXDOD.js → resource-3YQGO4UU.js} +3 -3
  43. package/{scrape-374NLIRA.js → scrape-4WPXMW2U.js} +3 -3
  44. package/{search-Q35LEWVX.js → search-OMZ4MW63.js} +5 -5
  45. package/{secret-XEQQCGAY.js → secret-XFSWHP4C.js} +3 -3
  46. package/{slack-ATMM7DZK.js → slack-WWDNLHQN.js} +3 -3
  47. package/{teams-FARW25SA.js → teams-AFEA3K7D.js} +3 -3
  48. package/{telegram-VG2MHVKQ.js → telegram-NWGKHKRS.js} +3 -3
  49. package/{variable-QUUYWMAW.js → variable-JUFZL4MT.js} +3 -3
  50. package/{video-3ANZ4IFS.js → video-UTBRSWQF.js} +2 -2
  51. package/{web-SMARZ2UY.js → web-UVAO77AR.js} +3 -3
  52. package/{web-search-ZJ22REGT.js → web-search-5ISND7NK.js} +3 -3
  53. package/{whoami-VMJDVOZ2.js → whoami-DG5CQGAI.js} +5 -5
  54. package/{workflow-4YFHZNEN.js → workflow-FHENT3LN.js} +3 -3
  55. package/zero.js +45 -36
  56. package/zero.js.map +1 -1
  57. package/chunk-BBLU3MCE.js.map +0 -1
  58. package/chunk-SREFIFDC.js.map +0 -1
  59. package/connector-B64GISX5.js.map +0 -1
  60. /package/{agent-CPGD2CCT.js.map → agent-YHWAOX6U.js.map} +0 -0
  61. /package/{banking-QK5LFWHM.js.map → banking-FGWHGOHN.js.map} +0 -0
  62. /package/{chat-FVZTI3T3.js.map → chat-72GCKSHG.js.map} +0 -0
  63. /package/{chunk-Y7MUZJOD.js.map → chunk-5W26XTGP.js.map} +0 -0
  64. /package/{chunk-YI55ZHHU.js.map → chunk-GBODX3GS.js.map} +0 -0
  65. /package/{chunk-C6F22HSG.js.map → chunk-LPM2VOJ3.js.map} +0 -0
  66. /package/{chunk-XZ2PCS5Z.js.map → chunk-RXF3RLBP.js.map} +0 -0
  67. /package/{chunk-GQJEXREE.js.map → chunk-UNH2BGTT.js.map} +0 -0
  68. /package/{chunk-JKGVRA3O.js.map → chunk-WVBGQLF3.js.map} +0 -0
  69. /package/{computer-use-FHRGSU67.js.map → computer-use-6IVA23PH.js.map} +0 -0
  70. /package/{credit-UMB7SG34.js.map → credit-JSRDF6P3.js.map} +0 -0
  71. /package/{developer-support-H3DKWIJ6.js.map → developer-support-QL4S75YO.js.map} +0 -0
  72. /package/{doctor-W4UUFCZK.js.map → doctor-3Z2KMZJB.js.map} +0 -0
  73. /package/{generate-E5CUXU7B.js.map → generate-IJFB4QDG.js.map} +0 -0
  74. /package/{github-ZNSMVK5B.js.map → github-5Z3JWUTN.js.map} +0 -0
  75. /package/{goal-QSRRWQU5.js.map → goal-Q6PYUXAL.js.map} +0 -0
  76. /package/{host-NRXJODYZ.js.map → host-2FFQ3HP5.js.map} +0 -0
  77. /package/{logs-KHD73Z5J.js.map → logs-WPTN2IXD.js.map} +0 -0
  78. /package/{maps-CMMFRPIG.js.map → maps-RGOTWAKE.js.map} +0 -0
  79. /package/{memory-6ULYLSPP.js.map → memory-DJGTFSDZ.js.map} +0 -0
  80. /package/{model-SAVQXJEQ.js.map → model-GXWUD4OM.js.map} +0 -0
  81. /package/{model-provider-PH3LOEC6.js.map → model-provider-M2U5M3JC.js.map} +0 -0
  82. /package/{org-M2HYRFTG.js.map → org-ZWRXUNPJ.js.map} +0 -0
  83. /package/{phone-FTFASCFG.js.map → phone-TX6CD66H.js.map} +0 -0
  84. /package/{preference-LKO5SRMA.js.map → preference-A6KLUJMS.js.map} +0 -0
  85. /package/{relationship-WGJY7W67.js.map → relationship-5AO6TKVS.js.map} +0 -0
  86. /package/{resource-UYVZXDOD.js.map → resource-3YQGO4UU.js.map} +0 -0
  87. /package/{scrape-374NLIRA.js.map → scrape-4WPXMW2U.js.map} +0 -0
  88. /package/{search-Q35LEWVX.js.map → search-OMZ4MW63.js.map} +0 -0
  89. /package/{secret-XEQQCGAY.js.map → secret-XFSWHP4C.js.map} +0 -0
  90. /package/{slack-ATMM7DZK.js.map → slack-WWDNLHQN.js.map} +0 -0
  91. /package/{teams-FARW25SA.js.map → teams-AFEA3K7D.js.map} +0 -0
  92. /package/{telegram-VG2MHVKQ.js.map → telegram-NWGKHKRS.js.map} +0 -0
  93. /package/{variable-QUUYWMAW.js.map → variable-JUFZL4MT.js.map} +0 -0
  94. /package/{video-3ANZ4IFS.js.map → video-UTBRSWQF.js.map} +0 -0
  95. /package/{web-SMARZ2UY.js.map → web-UVAO77AR.js.map} +0 -0
  96. /package/{web-search-ZJ22REGT.js.map → web-search-5ISND7NK.js.map} +0 -0
  97. /package/{whoami-VMJDVOZ2.js.map → whoami-DG5CQGAI.js.map} +0 -0
  98. /package/{workflow-4YFHZNEN.js.map → workflow-FHENT3LN.js.map} +0 -0
@@ -4,10 +4,10 @@ const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  loadConnectorPermissionInfos,
6
6
  policyIcon
7
- } from "./chunk-JKGVRA3O.js";
7
+ } from "./chunk-WVBGQLF3.js";
8
8
  import {
9
9
  permissionGrantsToFirewallPolicies
10
- } from "./chunk-C6F22HSG.js";
10
+ } from "./chunk-LPM2VOJ3.js";
11
11
  import {
12
12
  isInteractive,
13
13
  promptConfirm
@@ -23,12 +23,12 @@ import {
23
23
  listZeroUserPermissionGrants,
24
24
  updateZeroAgent,
25
25
  updateZeroAgentInstructions
26
- } from "./chunk-BBLU3MCE.js";
26
+ } from "./chunk-UETYUI63.js";
27
27
  import "./chunk-LTDQISD7.js";
28
28
  import {
29
29
  source_default,
30
30
  withErrorHandler
31
- } from "./chunk-LZSQADE3.js";
31
+ } from "./chunk-TTOETZE7.js";
32
32
  import "./chunk-LRHXR7JT.js";
33
33
  import {
34
34
  Command
@@ -593,4 +593,4 @@ Notes:
593
593
  export {
594
594
  zeroAgentCommand
595
595
  };
596
- //# sourceMappingURL=agent-CPGD2CCT.js.map
596
+ //# sourceMappingURL=agent-YHWAOX6U.js.map
@@ -3,12 +3,12 @@ import { createRequire as __createRequire } from "node:module";
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  callZeroBanking
6
- } from "./chunk-BBLU3MCE.js";
6
+ } from "./chunk-UETYUI63.js";
7
7
  import "./chunk-LTDQISD7.js";
8
8
  import {
9
9
  source_default,
10
10
  withErrorHandler
11
- } from "./chunk-LZSQADE3.js";
11
+ } from "./chunk-TTOETZE7.js";
12
12
  import "./chunk-LRHXR7JT.js";
13
13
  import {
14
14
  Command,
@@ -113,4 +113,4 @@ Notes:
113
113
  export {
114
114
  zeroBankingCommand
115
115
  };
116
- //# sourceMappingURL=banking-QK5LFWHM.js.map
116
+ //# sourceMappingURL=banking-FGWHGOHN.js.map
@@ -3,18 +3,18 @@ import { createRequire as __createRequire } from "node:module";
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  formatModelProviderRoute
6
- } from "./chunk-XZ2PCS5Z.js";
6
+ } from "./chunk-RXF3RLBP.js";
7
7
  import {
8
8
  getZeroChatThread,
9
9
  listZeroModelPolicies,
10
10
  renameZeroChatThread,
11
11
  updateZeroChatThreadModelSelection
12
- } from "./chunk-BBLU3MCE.js";
12
+ } from "./chunk-UETYUI63.js";
13
13
  import "./chunk-LTDQISD7.js";
14
14
  import {
15
15
  source_default,
16
16
  withErrorHandler
17
- } from "./chunk-LZSQADE3.js";
17
+ } from "./chunk-TTOETZE7.js";
18
18
  import "./chunk-LRHXR7JT.js";
19
19
  import {
20
20
  Command
@@ -242,4 +242,4 @@ Examples:
242
242
  export {
243
243
  zeroChatCommand
244
244
  };
245
- //# sourceMappingURL=chat-FVZTI3T3.js.map
245
+ //# sourceMappingURL=chat-72GCKSHG.js.map
@@ -0,0 +1,268 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire as __createRequire } from "node:module";
3
+ const require = __createRequire(import.meta.url);
4
+ import {
5
+ getZeroAgent,
6
+ getZeroAgentUserConnectors
7
+ } from "./chunk-UETYUI63.js";
8
+ import {
9
+ init_esm_shims
10
+ } from "./chunk-DIRAZ3YX.js";
11
+
12
+ // src/commands/zero/connector/public-catalog.ts
13
+ init_esm_shims();
14
+ var TOKEN_BOUNDARY = /[_\-\s]+/;
15
+ var CASE_BOUNDARY = /(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])/;
16
+ var MIN_SCORE = 10;
17
+ function tokenize(input) {
18
+ const tokens = /* @__PURE__ */ new Set();
19
+ for (const chunk of input.split(TOKEN_BOUNDARY)) {
20
+ if (!chunk) continue;
21
+ for (const sub of chunk.split(CASE_BOUNDARY)) {
22
+ const lower = sub.toLowerCase();
23
+ if (lower) tokens.add(lower);
24
+ }
25
+ }
26
+ return tokens;
27
+ }
28
+ function publicStrings(connector) {
29
+ return [
30
+ connector.connectorRef,
31
+ connector.label,
32
+ connector.description,
33
+ connector.category,
34
+ ...connector.tags,
35
+ ...connector.generation,
36
+ ...connector.authMethods.flatMap((authMethod) => {
37
+ return [
38
+ authMethod.id,
39
+ authMethod.label,
40
+ ...authMethod.description ? [authMethod.description] : []
41
+ ];
42
+ })
43
+ ];
44
+ }
45
+ function best(candidates) {
46
+ return candidates.reduce((bestHit, hit) => {
47
+ if (!hit) return bestHit;
48
+ if (!bestHit || hit.score > bestHit.score) return hit;
49
+ return bestHit;
50
+ }, null);
51
+ }
52
+ function scoreExact(keywordLower, skipPrivateIdentifierMatches, connector) {
53
+ if (connector.connectorRef.toLowerCase() === keywordLower) {
54
+ return { score: 100, matchedField: "connectorRef" };
55
+ }
56
+ if (connector.label.toLowerCase() === keywordLower) {
57
+ return { score: 80, matchedField: "label" };
58
+ }
59
+ for (const tag of connector.tags) {
60
+ if (skipPrivateIdentifierMatches && tag.includes("_")) continue;
61
+ if (tag.toLowerCase() === keywordLower) {
62
+ return { score: 70, matchedField: `tag:${tag}` };
63
+ }
64
+ }
65
+ for (const generationType of connector.generation) {
66
+ if (generationType.toLowerCase() === keywordLower) {
67
+ return { score: 65, matchedField: `generation:${generationType}` };
68
+ }
69
+ }
70
+ for (const authMethod of connector.authMethods) {
71
+ if (authMethod.id.toLowerCase() === keywordLower) {
72
+ return { score: 60, matchedField: `auth-method:${authMethod.id}` };
73
+ }
74
+ if (authMethod.label.toLowerCase() === keywordLower) {
75
+ return { score: 60, matchedField: `auth-method:${authMethod.label}` };
76
+ }
77
+ }
78
+ if (connector.category.toLowerCase() === keywordLower) {
79
+ return { score: 55, matchedField: "category" };
80
+ }
81
+ return null;
82
+ }
83
+ function scoreSubstring(keywordLower, skipPrivateIdentifierMatches, connector) {
84
+ const candidates = [];
85
+ if (connector.connectorRef.toLowerCase().includes(keywordLower)) {
86
+ candidates.push({ score: 50, matchedField: "connectorRef" });
87
+ }
88
+ if (connector.label.toLowerCase().includes(keywordLower)) {
89
+ candidates.push({ score: 50, matchedField: "label" });
90
+ }
91
+ for (const tag of connector.tags) {
92
+ if (skipPrivateIdentifierMatches && tag.includes("_")) continue;
93
+ if (tag.toLowerCase().includes(keywordLower)) {
94
+ candidates.push({ score: 25, matchedField: `tag:${tag}` });
95
+ }
96
+ }
97
+ for (const generationType of connector.generation) {
98
+ if (generationType.toLowerCase().includes(keywordLower)) {
99
+ candidates.push({
100
+ score: 25,
101
+ matchedField: `generation:${generationType}`
102
+ });
103
+ }
104
+ }
105
+ for (const authMethod of connector.authMethods) {
106
+ if (authMethod.id.toLowerCase().includes(keywordLower) || authMethod.label.toLowerCase().includes(keywordLower)) {
107
+ candidates.push({
108
+ score: 20,
109
+ matchedField: `auth-method:${authMethod.id}`
110
+ });
111
+ }
112
+ }
113
+ if (connector.category.toLowerCase().includes(keywordLower)) {
114
+ candidates.push({ score: 20, matchedField: "category" });
115
+ }
116
+ if (connector.description.toLowerCase().includes(keywordLower)) {
117
+ candidates.push({ score: 15, matchedField: "description" });
118
+ }
119
+ return best(candidates);
120
+ }
121
+ function scoreTokens(keywordTokens, connector) {
122
+ const candidateTokens = /* @__PURE__ */ new Set();
123
+ for (const source of publicStrings(connector)) {
124
+ for (const token of tokenize(source)) {
125
+ candidateTokens.add(token);
126
+ }
127
+ }
128
+ let intersection = 0;
129
+ let firstCommon = "";
130
+ for (const token of keywordTokens) {
131
+ if (candidateTokens.has(token)) {
132
+ intersection++;
133
+ if (!firstCommon) firstCommon = token;
134
+ }
135
+ }
136
+ if (intersection === 0) return null;
137
+ return { score: 10 * intersection, matchedField: `token:${firstCommon}` };
138
+ }
139
+ function scoreConnector(keywordLower, keyword, keywordTokens, connector) {
140
+ const skipPrivateIdentifierMatches = /^[A-Za-z0-9_]+$/.test(keyword) && keyword.includes("_");
141
+ const tokenHit = skipPrivateIdentifierMatches ? null : scoreTokens(keywordTokens, connector);
142
+ const hit = best([
143
+ scoreExact(keywordLower, skipPrivateIdentifierMatches, connector),
144
+ scoreSubstring(keywordLower, skipPrivateIdentifierMatches, connector),
145
+ tokenHit
146
+ ]);
147
+ if (!hit || hit.score < MIN_SCORE) return null;
148
+ return hit;
149
+ }
150
+ function searchPublicConnectorCatalog(connectors, keyword, limit) {
151
+ const trimmed = keyword.trim();
152
+ if (!trimmed) return { results: [], total: 0 };
153
+ const keywordLower = trimmed.toLowerCase();
154
+ const keywordTokens = tokenize(trimmed);
155
+ const hits = connectors.flatMap(
156
+ (connector) => {
157
+ const hit = scoreConnector(
158
+ keywordLower,
159
+ trimmed,
160
+ keywordTokens,
161
+ connector
162
+ );
163
+ if (!hit) return [];
164
+ return [
165
+ {
166
+ connector,
167
+ score: hit.score,
168
+ matchedField: hit.matchedField
169
+ }
170
+ ];
171
+ }
172
+ );
173
+ hits.sort((a, b) => {
174
+ if (b.score !== a.score) return b.score - a.score;
175
+ return a.connector.connectorRef.localeCompare(b.connector.connectorRef);
176
+ });
177
+ return {
178
+ results: hits.slice(0, limit),
179
+ total: hits.length
180
+ };
181
+ }
182
+ function findConnectorStatusItem(connectors, connectorRef) {
183
+ const exact = connectors.find((connector) => {
184
+ return connector.connectorRef === connectorRef;
185
+ });
186
+ if (exact) return exact;
187
+ const lower = connectorRef.toLowerCase();
188
+ return connectors.find((connector) => {
189
+ return connector.connectorRef.toLowerCase() === lower;
190
+ }) ?? null;
191
+ }
192
+ function availableConnectorRefs(connectors) {
193
+ return connectors.map((connector) => {
194
+ return connector.connectorRef;
195
+ }).join(", ");
196
+ }
197
+ function resolveManualGrantAuthMethod(connector, rawAuthMethod) {
198
+ if (rawAuthMethod) {
199
+ const authMethod2 = connector.authMethods.find((method) => {
200
+ return method.id === rawAuthMethod;
201
+ });
202
+ if (!authMethod2) {
203
+ throw new Error(
204
+ `${connector.connectorRef} connector does not have ${rawAuthMethod} auth method`,
205
+ {
206
+ cause: new Error(
207
+ `Available auth methods: ${connector.authMethods.map((method) => {
208
+ return method.id;
209
+ }).join(", ")}`
210
+ )
211
+ }
212
+ );
213
+ }
214
+ if (authMethod2.grantKind === "manual") {
215
+ return authMethod2;
216
+ }
217
+ throw new Error(
218
+ `${connector.connectorRef} ${authMethod2.id} auth method does not use a manual grant`
219
+ );
220
+ }
221
+ const manualAuthMethods = connector.authMethods.filter((method) => {
222
+ return method.grantKind === "manual";
223
+ });
224
+ const authMethod = manualAuthMethods[0];
225
+ if (manualAuthMethods.length === 1 && authMethod) {
226
+ return authMethod;
227
+ }
228
+ if (manualAuthMethods.length === 0) {
229
+ throw new Error(
230
+ `${connector.connectorRef} connector does not use a manual grant`
231
+ );
232
+ }
233
+ throw new Error(
234
+ `${connector.connectorRef} connector has multiple manual grant auth methods`,
235
+ {
236
+ cause: new Error(
237
+ `Pass --auth-method ${manualAuthMethods.map((method) => {
238
+ return method.id;
239
+ }).join("|")}`
240
+ )
241
+ }
242
+ );
243
+ }
244
+
245
+ // src/commands/zero/connector/agent-context.ts
246
+ init_esm_shims();
247
+ async function resolveAgentContext(flagAgentId) {
248
+ const agentId = flagAgentId ?? process.env.ZERO_AGENT_ID;
249
+ if (!agentId) return null;
250
+ const [agent, enabledTypes] = await Promise.all([
251
+ getZeroAgent(agentId),
252
+ getZeroAgentUserConnectors(agentId)
253
+ ]);
254
+ return {
255
+ agentId: agent.agentId,
256
+ displayName: agent.displayName ?? agent.agentId,
257
+ authorizedTypes: new Set(enabledTypes)
258
+ };
259
+ }
260
+
261
+ export {
262
+ searchPublicConnectorCatalog,
263
+ findConnectorStatusItem,
264
+ availableConnectorRefs,
265
+ resolveManualGrantAuthMethod,
266
+ resolveAgentContext
267
+ };
268
+ //# sourceMappingURL=chunk-3SVFEMEV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/zero/connector/public-catalog.ts","../src/commands/zero/connector/agent-context.ts"],"sourcesContent":["import type {\n PublicConnectorCatalogAuthMethodDetail,\n PublicConnectorCatalogItem,\n PublicConnectorCatalogStatusItem,\n} from \"@vm0/api-contracts/contracts/zero-connector-catalog\";\n\nexport type PublicConnectorStatus = PublicConnectorCatalogStatusItem;\n\ninterface PublicConnectorSearchResult {\n readonly connector: PublicConnectorStatus;\n readonly score: number;\n readonly matchedField: string;\n}\n\ninterface PublicConnectorSearchOutput {\n readonly results: readonly PublicConnectorSearchResult[];\n readonly total: number;\n}\n\nconst TOKEN_BOUNDARY = /[_\\-\\s]+/;\nconst CASE_BOUNDARY = /(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])/;\nconst MIN_SCORE = 10;\n\nfunction tokenize(input: string): Set<string> {\n const tokens = new Set<string>();\n for (const chunk of input.split(TOKEN_BOUNDARY)) {\n if (!chunk) continue;\n for (const sub of chunk.split(CASE_BOUNDARY)) {\n const lower = sub.toLowerCase();\n if (lower) tokens.add(lower);\n }\n }\n return tokens;\n}\n\nfunction publicStrings(connector: PublicConnectorCatalogItem): string[] {\n return [\n connector.connectorRef,\n connector.label,\n connector.description,\n connector.category,\n ...connector.tags,\n ...connector.generation,\n ...connector.authMethods.flatMap((authMethod) => {\n return [\n authMethod.id,\n authMethod.label,\n ...(authMethod.description ? [authMethod.description] : []),\n ];\n }),\n ];\n}\n\ntype ScoreHit = { score: number; matchedField: string };\n\nfunction best(candidates: readonly (ScoreHit | null)[]): ScoreHit | null {\n return candidates.reduce<ScoreHit | null>((bestHit, hit) => {\n if (!hit) return bestHit;\n if (!bestHit || hit.score > bestHit.score) return hit;\n return bestHit;\n }, null);\n}\n\nfunction scoreExact(\n keywordLower: string,\n skipPrivateIdentifierMatches: boolean,\n connector: PublicConnectorStatus,\n): ScoreHit | null {\n if (connector.connectorRef.toLowerCase() === keywordLower) {\n return { score: 100, matchedField: \"connectorRef\" };\n }\n if (connector.label.toLowerCase() === keywordLower) {\n return { score: 80, matchedField: \"label\" };\n }\n for (const tag of connector.tags) {\n if (skipPrivateIdentifierMatches && tag.includes(\"_\")) continue;\n if (tag.toLowerCase() === keywordLower) {\n return { score: 70, matchedField: `tag:${tag}` };\n }\n }\n for (const generationType of connector.generation) {\n if (generationType.toLowerCase() === keywordLower) {\n return { score: 65, matchedField: `generation:${generationType}` };\n }\n }\n for (const authMethod of connector.authMethods) {\n if (authMethod.id.toLowerCase() === keywordLower) {\n return { score: 60, matchedField: `auth-method:${authMethod.id}` };\n }\n if (authMethod.label.toLowerCase() === keywordLower) {\n return { score: 60, matchedField: `auth-method:${authMethod.label}` };\n }\n }\n if (connector.category.toLowerCase() === keywordLower) {\n return { score: 55, matchedField: \"category\" };\n }\n return null;\n}\n\nfunction scoreSubstring(\n keywordLower: string,\n skipPrivateIdentifierMatches: boolean,\n connector: PublicConnectorStatus,\n): ScoreHit | null {\n const candidates: ScoreHit[] = [];\n if (connector.connectorRef.toLowerCase().includes(keywordLower)) {\n candidates.push({ score: 50, matchedField: \"connectorRef\" });\n }\n if (connector.label.toLowerCase().includes(keywordLower)) {\n candidates.push({ score: 50, matchedField: \"label\" });\n }\n for (const tag of connector.tags) {\n if (skipPrivateIdentifierMatches && tag.includes(\"_\")) continue;\n if (tag.toLowerCase().includes(keywordLower)) {\n candidates.push({ score: 25, matchedField: `tag:${tag}` });\n }\n }\n for (const generationType of connector.generation) {\n if (generationType.toLowerCase().includes(keywordLower)) {\n candidates.push({\n score: 25,\n matchedField: `generation:${generationType}`,\n });\n }\n }\n for (const authMethod of connector.authMethods) {\n if (\n authMethod.id.toLowerCase().includes(keywordLower) ||\n authMethod.label.toLowerCase().includes(keywordLower)\n ) {\n candidates.push({\n score: 20,\n matchedField: `auth-method:${authMethod.id}`,\n });\n }\n }\n if (connector.category.toLowerCase().includes(keywordLower)) {\n candidates.push({ score: 20, matchedField: \"category\" });\n }\n if (connector.description.toLowerCase().includes(keywordLower)) {\n candidates.push({ score: 15, matchedField: \"description\" });\n }\n\n return best(candidates);\n}\n\nfunction scoreTokens(\n keywordTokens: ReadonlySet<string>,\n connector: PublicConnectorStatus,\n): ScoreHit | null {\n const candidateTokens = new Set<string>();\n for (const source of publicStrings(connector)) {\n for (const token of tokenize(source)) {\n candidateTokens.add(token);\n }\n }\n\n let intersection = 0;\n let firstCommon = \"\";\n for (const token of keywordTokens) {\n if (candidateTokens.has(token)) {\n intersection++;\n if (!firstCommon) firstCommon = token;\n }\n }\n if (intersection === 0) return null;\n return { score: 10 * intersection, matchedField: `token:${firstCommon}` };\n}\n\nfunction scoreConnector(\n keywordLower: string,\n keyword: string,\n keywordTokens: ReadonlySet<string>,\n connector: PublicConnectorStatus,\n): ScoreHit | null {\n const skipPrivateIdentifierMatches =\n /^[A-Za-z0-9_]+$/.test(keyword) && keyword.includes(\"_\");\n const tokenHit = skipPrivateIdentifierMatches\n ? null\n : scoreTokens(keywordTokens, connector);\n const hit = best([\n scoreExact(keywordLower, skipPrivateIdentifierMatches, connector),\n scoreSubstring(keywordLower, skipPrivateIdentifierMatches, connector),\n tokenHit,\n ]);\n if (!hit || hit.score < MIN_SCORE) return null;\n return hit;\n}\n\nexport function searchPublicConnectorCatalog(\n connectors: readonly PublicConnectorStatus[],\n keyword: string,\n limit: number,\n): PublicConnectorSearchOutput {\n const trimmed = keyword.trim();\n if (!trimmed) return { results: [], total: 0 };\n\n const keywordLower = trimmed.toLowerCase();\n const keywordTokens = tokenize(trimmed);\n const hits = connectors.flatMap(\n (connector): PublicConnectorSearchResult[] => {\n const hit = scoreConnector(\n keywordLower,\n trimmed,\n keywordTokens,\n connector,\n );\n if (!hit) return [];\n return [\n {\n connector,\n score: hit.score,\n matchedField: hit.matchedField,\n },\n ];\n },\n );\n\n hits.sort((a, b) => {\n if (b.score !== a.score) return b.score - a.score;\n return a.connector.connectorRef.localeCompare(b.connector.connectorRef);\n });\n\n return {\n results: hits.slice(0, limit),\n total: hits.length,\n };\n}\n\nexport function findConnectorStatusItem(\n connectors: readonly PublicConnectorStatus[],\n connectorRef: string,\n): PublicConnectorStatus | null {\n const exact = connectors.find((connector) => {\n return connector.connectorRef === connectorRef;\n });\n if (exact) return exact;\n\n const lower = connectorRef.toLowerCase();\n return (\n connectors.find((connector) => {\n return connector.connectorRef.toLowerCase() === lower;\n }) ?? null\n );\n}\n\nexport function availableConnectorRefs(\n connectors: readonly PublicConnectorStatus[],\n): string {\n return connectors\n .map((connector) => {\n return connector.connectorRef;\n })\n .join(\", \");\n}\n\nexport function resolveManualGrantAuthMethod(\n connector: PublicConnectorStatus,\n rawAuthMethod: string | undefined,\n): PublicConnectorCatalogAuthMethodDetail {\n if (rawAuthMethod) {\n const authMethod = connector.authMethods.find((method) => {\n return method.id === rawAuthMethod;\n });\n if (!authMethod) {\n throw new Error(\n `${connector.connectorRef} connector does not have ${rawAuthMethod} auth method`,\n {\n cause: new Error(\n `Available auth methods: ${connector.authMethods\n .map((method) => {\n return method.id;\n })\n .join(\", \")}`,\n ),\n },\n );\n }\n\n if (authMethod.grantKind === \"manual\") {\n return authMethod;\n }\n\n throw new Error(\n `${connector.connectorRef} ${authMethod.id} auth method does not use a manual grant`,\n );\n }\n\n const manualAuthMethods = connector.authMethods.filter((method) => {\n return method.grantKind === \"manual\";\n });\n const authMethod = manualAuthMethods[0];\n if (manualAuthMethods.length === 1 && authMethod) {\n return authMethod;\n }\n if (manualAuthMethods.length === 0) {\n throw new Error(\n `${connector.connectorRef} connector does not use a manual grant`,\n );\n }\n\n throw new Error(\n `${connector.connectorRef} connector has multiple manual grant auth methods`,\n {\n cause: new Error(\n `Pass --auth-method ${manualAuthMethods\n .map((method) => {\n return method.id;\n })\n .join(\"|\")}`,\n ),\n },\n );\n}\n","import { getZeroAgent, getZeroAgentUserConnectors } from \"../../../lib/api\";\n\ninterface AgentContext {\n agentId: string;\n displayName: string;\n authorizedTypes: Set<string>;\n}\n\nexport async function resolveAgentContext(\n flagAgentId: string | undefined,\n): Promise<AgentContext | null> {\n const agentId = flagAgentId ?? process.env.ZERO_AGENT_ID;\n if (!agentId) return null;\n\n const [agent, enabledTypes] = await Promise.all([\n getZeroAgent(agentId),\n getZeroAgentUserConnectors(agentId),\n ]);\n\n return {\n agentId: agent.agentId,\n displayName: agent.displayName ?? agent.agentId,\n authorizedTypes: new Set(enabledTypes),\n };\n}\n"],"mappings":"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","names":["authMethod"]}
@@ -50,7 +50,7 @@ if (DSN) {
50
50
  Sentry.init({
51
51
  dsn: DSN,
52
52
  environment: process.env.SENTRY_ENVIRONMENT ?? "production",
53
- release: "9.240.9",
53
+ release: "9.240.10",
54
54
  sendDefaultPii: false,
55
55
  tracesSampleRate: 0,
56
56
  shutdownTimeout: 500,
@@ -69,7 +69,7 @@ if (DSN) {
69
69
  }
70
70
  });
71
71
  Sentry.setContext("cli", {
72
- version: "9.240.9",
72
+ version: "9.240.10",
73
73
  command: process.argv.slice(2).join(" ")
74
74
  });
75
75
  Sentry.setContext("runtime", {
@@ -146,4 +146,4 @@ async function configureGlobalProxyFromEnv() {
146
146
  export {
147
147
  configureGlobalProxyFromEnv
148
148
  };
149
- //# sourceMappingURL=chunk-Y7MUZJOD.js.map
149
+ //# sourceMappingURL=chunk-5W26XTGP.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
  getApiUrl
6
- } from "./chunk-LZSQADE3.js";
6
+ } from "./chunk-TTOETZE7.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-GBODX3GS.js.map
@@ -12,7 +12,7 @@ import {
12
12
  getEvents,
13
13
  runnerGroupSchema,
14
14
  zeroAgentVisibilitySchema
15
- } from "./chunk-BBLU3MCE.js";
15
+ } from "./chunk-UETYUI63.js";
16
16
  import {
17
17
  apiErrorSchema,
18
18
  external_exports,
@@ -24,7 +24,7 @@ import {
24
24
  supportedRunModelSchema,
25
25
  upsertModelProviderRequestSchema,
26
26
  upsertModelProviderResponseSchema
27
- } from "./chunk-LZSQADE3.js";
27
+ } from "./chunk-TTOETZE7.js";
28
28
  import {
29
29
  __commonJS,
30
30
  __require,
@@ -31612,7 +31612,7 @@ var FEATURE_SWITCHES = {
31612
31612
  ["chatMessageQueue" /* ChatMessageQueue */]: {
31613
31613
  maintainer: "lancy@vm0.ai",
31614
31614
  description: "Queue-first user message dispatch: sends enqueue a chat_message_queue item and claim it in place instead of the legacy revoke-claim convention.",
31615
- enabled: true,
31615
+ enabled: false,
31616
31616
  enabledOrgIdHashes: STAFF_ORG_ID_HASHES
31617
31617
  },
31618
31618
  ["orgPlanEntitlementReads" /* OrgPlanEntitlementReads */]: {
@@ -31628,6 +31628,12 @@ var FEATURE_SWITCHES = {
31628
31628
  enabled: false,
31629
31629
  enabledOrgIdHashes: STAFF_ORG_ID_HASHES,
31630
31630
  userOverridable: false
31631
+ },
31632
+ ["zeroMail" /* ZeroMail */]: {
31633
+ maintainer: "yuma@vm0.ai",
31634
+ description: "Enable persistent Gmail and Outlook draft cards created through the Zero Mail CLI.",
31635
+ enabled: false,
31636
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
31631
31637
  }
31632
31638
  };
31633
31639
 
@@ -33960,4 +33966,4 @@ export {
33960
33966
  collectLogItems,
33961
33967
  parseSearchQuery
33962
33968
  };
33963
- //# sourceMappingURL=chunk-SREFIFDC.js.map
33969
+ //# sourceMappingURL=chunk-GQUSLMB4.js.map