@vm0/cli 9.267.0 → 9.268.0
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.
- package/{agent-OMZZFFOX.js → agent-4QRFYL6Q.js} +6 -6
- package/{banking-BVCIXQ5N.js → banking-VKKVWIYX.js} +4 -4
- package/{browser-MZYVERXT.js → browser-VFBMLIUS.js} +4 -4
- package/{chat-XAIEMJJJ.js → chat-KQRKGQKS.js} +5 -5
- package/{chunk-3AYDKKKU.js → chunk-4JA54Z75.js} +2 -2
- package/{chunk-RU2TI2U2.js → chunk-7I3P4REZ.js} +2 -2
- package/{chunk-FLF6ZMKJ.js → chunk-C6KDTR5A.js} +3 -8
- package/{chunk-FLF6ZMKJ.js.map → chunk-C6KDTR5A.js.map} +1 -1
- package/{chunk-PYNAJYFD.js → chunk-CZA5MW3N.js} +33 -23
- package/chunk-CZA5MW3N.js.map +1 -0
- package/{chunk-5TMLTATP.js → chunk-DTZW7RES.js} +2 -2
- package/{chunk-GTGI6NWJ.js → chunk-ISZ5CKJ3.js} +2 -2
- package/{chunk-GU4ZJECC.js → chunk-QSWNNYV4.js} +2 -2
- package/{chunk-LYI45KHY.js → chunk-VGPSGL5S.js} +2 -2
- package/{chunk-TX5E4N6E.js → chunk-ZL7WFWOC.js} +4 -4
- package/{computer-use-OMUCKEH4.js → computer-use-LTZEVHCS.js} +4 -4
- package/{connector-DZ5RLANA.js → connector-MY7K7RJN.js} +83 -22
- package/connector-MY7K7RJN.js.map +1 -0
- package/{credit-ZTZPYLHJ.js → credit-LDEHJIJT.js} +5 -5
- package/{developer-support-VWUHT7BY.js → developer-support-ROATSWMP.js} +4 -4
- package/{doctor-WTSDGI5C.js → doctor-3P6KUY4D.js} +5 -5
- package/{feishu-CWVMYPJJ.js → feishu-PHKR2Q36.js} +4 -4
- package/{finance-67XW3BDK.js → finance-3LM55SWD.js} +4 -4
- package/{generate-5BFGTIYQ.js → generate-23ZOL7AI.js} +5 -5
- package/{github-D2WOKACM.js → github-SC4AB2Q2.js} +4 -4
- package/{goal-PB5PPIKK.js → goal-FTWV2ADK.js} +4 -4
- package/{host-SKUS46EY.js → host-L4BEXBPB.js} +4 -4
- package/{logs-UVEMZZGC.js → logs-TICCUASU.js} +5 -5
- package/{mail-NIXLTFM2.js → mail-ZUBVNRJW.js} +6 -6
- package/{maps-O4EJGJGI.js → maps-UAKTZSO2.js} +4 -4
- package/{model-CYLLV5SU.js → model-3N3ZWLZM.js} +5 -5
- package/{model-provider-VDFCPVGR.js → model-provider-RI26N5OQ.js} +5 -5
- package/{org-EKZ5TZ6C.js → org-IEYB2WBO.js} +4 -4
- package/package.json +1 -1
- package/{people-search-SXKWISQC.js → people-search-5S4TV7RL.js} +4 -4
- package/{phone-KQUWXL2F.js → phone-XV2LWGQT.js} +4 -4
- package/{preference-ZUT6YDYU.js → preference-6XHDDQUW.js} +4 -4
- package/{resource-WLJIYIAG.js → resource-HXS7RGBP.js} +4 -4
- package/{scrape-RBI7L7OI.js → scrape-NU6T5BQE.js} +4 -4
- package/{search-N4HHOYG3.js → search-FDG26NWA.js} +5 -5
- package/{secret-M3JN4ILK.js → secret-HN3R3V32.js} +4 -4
- package/{slack-RKIRNUMX.js → slack-IWEZU6HY.js} +4 -4
- package/{teams-EOQH4NSD.js → teams-6VZAWVC6.js} +4 -4
- package/{telegram-TKIUQBRV.js → telegram-UTCDO5ZB.js} +4 -4
- package/{upgrade-Z46EJ6LM.js → upgrade-EX2F7BFJ.js} +3 -3
- package/{variable-4MKDDCMH.js → variable-U67PHCBZ.js} +4 -4
- package/{video-L5EPZEBJ.js → video-GTQQSN6W.js} +3 -3
- package/{weather-WBTWM2L3.js → weather-NMEINAIZ.js} +4 -4
- package/{web-OI25YJCD.js → web-YC7E327U.js} +4 -4
- package/{web-search-55JR4DFQ.js → web-search-TCWP5NDJ.js} +4 -4
- package/{whoami-5B24JEWY.js → whoami-KACAW67A.js} +6 -6
- package/{workflow-F2DNCBSD.js → workflow-TKJF2YY2.js} +4 -4
- package/zero.js +42 -42
- package/chunk-PYNAJYFD.js.map +0 -1
- package/connector-DZ5RLANA.js.map +0 -1
- /package/{agent-OMZZFFOX.js.map → agent-4QRFYL6Q.js.map} +0 -0
- /package/{banking-BVCIXQ5N.js.map → banking-VKKVWIYX.js.map} +0 -0
- /package/{browser-MZYVERXT.js.map → browser-VFBMLIUS.js.map} +0 -0
- /package/{chat-XAIEMJJJ.js.map → chat-KQRKGQKS.js.map} +0 -0
- /package/{chunk-3AYDKKKU.js.map → chunk-4JA54Z75.js.map} +0 -0
- /package/{chunk-RU2TI2U2.js.map → chunk-7I3P4REZ.js.map} +0 -0
- /package/{chunk-5TMLTATP.js.map → chunk-DTZW7RES.js.map} +0 -0
- /package/{chunk-GTGI6NWJ.js.map → chunk-ISZ5CKJ3.js.map} +0 -0
- /package/{chunk-GU4ZJECC.js.map → chunk-QSWNNYV4.js.map} +0 -0
- /package/{chunk-LYI45KHY.js.map → chunk-VGPSGL5S.js.map} +0 -0
- /package/{chunk-TX5E4N6E.js.map → chunk-ZL7WFWOC.js.map} +0 -0
- /package/{computer-use-OMUCKEH4.js.map → computer-use-LTZEVHCS.js.map} +0 -0
- /package/{credit-ZTZPYLHJ.js.map → credit-LDEHJIJT.js.map} +0 -0
- /package/{developer-support-VWUHT7BY.js.map → developer-support-ROATSWMP.js.map} +0 -0
- /package/{doctor-WTSDGI5C.js.map → doctor-3P6KUY4D.js.map} +0 -0
- /package/{feishu-CWVMYPJJ.js.map → feishu-PHKR2Q36.js.map} +0 -0
- /package/{finance-67XW3BDK.js.map → finance-3LM55SWD.js.map} +0 -0
- /package/{generate-5BFGTIYQ.js.map → generate-23ZOL7AI.js.map} +0 -0
- /package/{github-D2WOKACM.js.map → github-SC4AB2Q2.js.map} +0 -0
- /package/{goal-PB5PPIKK.js.map → goal-FTWV2ADK.js.map} +0 -0
- /package/{host-SKUS46EY.js.map → host-L4BEXBPB.js.map} +0 -0
- /package/{logs-UVEMZZGC.js.map → logs-TICCUASU.js.map} +0 -0
- /package/{mail-NIXLTFM2.js.map → mail-ZUBVNRJW.js.map} +0 -0
- /package/{maps-O4EJGJGI.js.map → maps-UAKTZSO2.js.map} +0 -0
- /package/{model-CYLLV5SU.js.map → model-3N3ZWLZM.js.map} +0 -0
- /package/{model-provider-VDFCPVGR.js.map → model-provider-RI26N5OQ.js.map} +0 -0
- /package/{org-EKZ5TZ6C.js.map → org-IEYB2WBO.js.map} +0 -0
- /package/{people-search-SXKWISQC.js.map → people-search-5S4TV7RL.js.map} +0 -0
- /package/{phone-KQUWXL2F.js.map → phone-XV2LWGQT.js.map} +0 -0
- /package/{preference-ZUT6YDYU.js.map → preference-6XHDDQUW.js.map} +0 -0
- /package/{resource-WLJIYIAG.js.map → resource-HXS7RGBP.js.map} +0 -0
- /package/{scrape-RBI7L7OI.js.map → scrape-NU6T5BQE.js.map} +0 -0
- /package/{search-N4HHOYG3.js.map → search-FDG26NWA.js.map} +0 -0
- /package/{secret-M3JN4ILK.js.map → secret-HN3R3V32.js.map} +0 -0
- /package/{slack-RKIRNUMX.js.map → slack-IWEZU6HY.js.map} +0 -0
- /package/{teams-EOQH4NSD.js.map → teams-6VZAWVC6.js.map} +0 -0
- /package/{telegram-TKIUQBRV.js.map → telegram-UTCDO5ZB.js.map} +0 -0
- /package/{upgrade-Z46EJ6LM.js.map → upgrade-EX2F7BFJ.js.map} +0 -0
- /package/{variable-4MKDDCMH.js.map → variable-U67PHCBZ.js.map} +0 -0
- /package/{video-L5EPZEBJ.js.map → video-GTQQSN6W.js.map} +0 -0
- /package/{weather-WBTWM2L3.js.map → weather-NMEINAIZ.js.map} +0 -0
- /package/{web-OI25YJCD.js.map → web-YC7E327U.js.map} +0 -0
- /package/{web-search-55JR4DFQ.js.map → web-search-TCWP5NDJ.js.map} +0 -0
- /package/{whoami-5B24JEWY.js.map → whoami-KACAW67A.js.map} +0 -0
- /package/{workflow-F2DNCBSD.js.map → workflow-TKJF2YY2.js.map} +0 -0
|
@@ -3,8 +3,9 @@ import { createRequire as __createRequire } from "node:module";
|
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
getZeroAgent,
|
|
6
|
+
getZeroAgentCustomConnectors,
|
|
6
7
|
getZeroAgentUserConnectors
|
|
7
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-VGPSGL5S.js";
|
|
8
9
|
import {
|
|
9
10
|
init_esm_shims
|
|
10
11
|
} from "./chunk-GPYQ24DR.js";
|
|
@@ -222,29 +223,22 @@ function scoreConnector(keywordLower, keyword, keywordTokens, connector) {
|
|
|
222
223
|
if (!hit || hit.score < MIN_SCORE) return null;
|
|
223
224
|
return hit;
|
|
224
225
|
}
|
|
225
|
-
function
|
|
226
|
+
function searchConnectorCatalog(connectors, keyword, limit) {
|
|
226
227
|
const trimmed = keyword.trim();
|
|
227
228
|
if (!trimmed) return { results: [], total: 0 };
|
|
228
229
|
const keywordLower = trimmed.toLowerCase();
|
|
229
230
|
const keywordTokens = tokenize(trimmed);
|
|
230
|
-
const hits = connectors.flatMap(
|
|
231
|
-
(connector)
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
connector,
|
|
242
|
-
score: hit.score,
|
|
243
|
-
matchedField: hit.matchedField
|
|
244
|
-
}
|
|
245
|
-
];
|
|
246
|
-
}
|
|
247
|
-
);
|
|
231
|
+
const hits = connectors.flatMap((connector) => {
|
|
232
|
+
const hit = scoreConnector(keywordLower, trimmed, keywordTokens, connector);
|
|
233
|
+
if (!hit) return [];
|
|
234
|
+
return [
|
|
235
|
+
{
|
|
236
|
+
connector,
|
|
237
|
+
score: hit.score,
|
|
238
|
+
matchedField: hit.matchedField
|
|
239
|
+
}
|
|
240
|
+
];
|
|
241
|
+
});
|
|
248
242
|
hits.sort((a, b) => {
|
|
249
243
|
if (b.score !== a.score) return b.score - a.score;
|
|
250
244
|
return a.connector.connectorRef.localeCompare(b.connector.connectorRef);
|
|
@@ -332,6 +326,21 @@ async function resolveAgentContext(flagAgentId) {
|
|
|
332
326
|
authorizedConnectorSlugs: new Set(enabledConnectorSlugs)
|
|
333
327
|
};
|
|
334
328
|
}
|
|
329
|
+
async function resolveConnectorDiscoveryAgentContext(flagAgentId) {
|
|
330
|
+
const agentId = flagAgentId ?? process.env.ZERO_AGENT_ID;
|
|
331
|
+
if (!agentId) return null;
|
|
332
|
+
const [agent, enabledConnectorSlugs, enabledCustomConnectorIds] = await Promise.all([
|
|
333
|
+
getZeroAgent(agentId),
|
|
334
|
+
getZeroAgentUserConnectors(agentId),
|
|
335
|
+
getZeroAgentCustomConnectors(agentId)
|
|
336
|
+
]);
|
|
337
|
+
return {
|
|
338
|
+
agentId: agent.agentId,
|
|
339
|
+
displayName: agent.displayName ?? agent.agentId,
|
|
340
|
+
authorizedConnectorSlugs: new Set(enabledConnectorSlugs),
|
|
341
|
+
authorizedCustomConnectorIds: new Set(enabledCustomConnectorIds)
|
|
342
|
+
};
|
|
343
|
+
}
|
|
335
344
|
|
|
336
345
|
export {
|
|
337
346
|
CALLBACK_PROMPT_PLACEHOLDER,
|
|
@@ -341,10 +350,11 @@ export {
|
|
|
341
350
|
connectorActionUrl,
|
|
342
351
|
printCallbackActionUrlExample,
|
|
343
352
|
printCallbackTurnInstruction,
|
|
344
|
-
|
|
353
|
+
searchConnectorCatalog,
|
|
345
354
|
findConnectorStatusItem,
|
|
346
355
|
availableConnectorSlugs,
|
|
347
356
|
resolveManualGrantAuthMethod,
|
|
348
|
-
resolveAgentContext
|
|
357
|
+
resolveAgentContext,
|
|
358
|
+
resolveConnectorDiscoveryAgentContext
|
|
349
359
|
};
|
|
350
|
-
//# sourceMappingURL=chunk-
|
|
360
|
+
//# sourceMappingURL=chunk-CZA5MW3N.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/zero/connector/action-url.ts","../src/commands/zero/connector/public-catalog.ts","../src/commands/zero/connector/agent-context.ts"],"sourcesContent":["export const CALLBACK_PROMPT_PLACEHOLDER =\n \"SOMETHING_AGENT_WANT_TO_BE_CALLBACK\";\n\nexport function connectorActionCallbackAvailable(): boolean {\n return Boolean(process.env.ZERO_CHAT_THREAD_ID?.trim());\n}\n\nfunction currentChatThreadId(agentId: string | undefined): string | null {\n const threadId = process.env.ZERO_CHAT_THREAD_ID?.trim();\n const currentAgentId = process.env.ZERO_AGENT_ID?.trim();\n if (!threadId || !currentAgentId || agentId !== currentAgentId) {\n return null;\n }\n return threadId;\n}\n\nexport function currentChatSupportsActionCallback(\n agentId: string | undefined,\n): boolean {\n return currentChatThreadId(agentId) !== null;\n}\n\nfunction addCallbackSearchParams(\n params: URLSearchParams,\n threadId: string,\n callbackPrompt: string,\n): void {\n params.set(\"threadId\", threadId);\n params.set(\"callbackPrompt\", callbackPrompt);\n}\n\nexport function addRequestedCallbackSearchParams(\n params: URLSearchParams,\n callbackPrompt: string | undefined,\n agentId: string | undefined,\n): void {\n if (callbackPrompt === undefined) {\n return;\n }\n\n const normalizedPrompt = callbackPrompt.trim();\n if (!normalizedPrompt) {\n throw new Error(\"--callback-prompt cannot be empty\");\n }\n\n const threadId = currentChatThreadId(agentId);\n if (!threadId) {\n throw new Error(\n \"--callback-prompt can only target the current Zero web chat thread and agent\",\n );\n }\n addCallbackSearchParams(params, threadId, normalizedPrompt);\n}\n\nexport function connectorActionUrl(args: {\n readonly origin: string;\n readonly path: string;\n readonly agentId?: string;\n}): string {\n const url = new URL(args.path, args.origin);\n if (args.agentId) {\n url.searchParams.set(\"agentId\", args.agentId);\n }\n return url.toString();\n}\n\nfunction callbackActionUrlExample(\n actionUrl: string,\n agentId: string | undefined,\n): string | null {\n const threadId = currentChatThreadId(agentId);\n if (!threadId) {\n return null;\n }\n\n const url = new URL(actionUrl);\n addCallbackSearchParams(\n url.searchParams,\n threadId,\n CALLBACK_PROMPT_PLACEHOLDER,\n );\n return url.toString();\n}\n\nexport function printCallbackActionUrlExample(\n actionUrl: string,\n agentId: string | undefined,\n): void {\n const callbackUrl = callbackActionUrlExample(actionUrl, agentId);\n if (!callbackUrl) {\n return;\n }\n\n console.log(\"\");\n console.log(\n \"Or, if this is the only connector or permission action needed, use the callback URL below. After the user completes this action, Zero will automatically start the next round with the callback prompt:\",\n );\n console.log(callbackUrl);\n}\n\nexport function printCallbackTurnInstruction(): void {\n console.log(\"\");\n console.log(\n \"After sharing this callback URL, end the current turn. When the user completes the action, Zero will automatically start the next round with the callback prompt.\",\n );\n}\n","import type {\n PublicConnectorCatalogAuthMethodDetail,\n PublicConnectorCatalogStatusItem,\n} from \"@vm0/api-contracts/contracts/zero-connector-catalog\";\n\nexport type PublicConnectorStatus = PublicConnectorCatalogStatusItem;\n\ninterface ConnectorSearchItem {\n readonly connectorRef: string;\n readonly label: string;\n readonly description: string;\n readonly category: string;\n readonly tags: readonly string[];\n readonly generation: readonly string[];\n readonly authMethods: readonly {\n readonly id: string;\n readonly label: string;\n readonly description: string | null;\n }[];\n}\n\ninterface ConnectorSearchResult<T extends ConnectorSearchItem> {\n readonly connector: T;\n readonly score: number;\n readonly matchedField: string;\n}\n\ninterface ConnectorSearchOutput<T extends ConnectorSearchItem> {\n readonly results: readonly ConnectorSearchResult<T>[];\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: ConnectorSearchItem): 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: ConnectorSearchItem,\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: ConnectorSearchItem,\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: ConnectorSearchItem,\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: ConnectorSearchItem,\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 searchConnectorCatalog<T extends ConnectorSearchItem>(\n connectors: readonly T[],\n keyword: string,\n limit: number,\n): ConnectorSearchOutput<T> {\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((connector): ConnectorSearchResult<T>[] => {\n const hit = scoreConnector(keywordLower, trimmed, keywordTokens, connector);\n if (!hit) return [];\n return [\n {\n connector,\n score: hit.score,\n matchedField: hit.matchedField,\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 connectorSlug: string,\n): PublicConnectorStatus | null {\n const exact = connectors.find((connector) => {\n return connector.connectorRef === connectorSlug;\n });\n if (exact) return exact;\n\n const lower = connectorSlug.toLowerCase();\n return (\n connectors.find((connector) => {\n return connector.connectorRef.toLowerCase() === lower;\n }) ?? null\n );\n}\n\nexport function availableConnectorSlugs(\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 {\n getZeroAgent,\n getZeroAgentCustomConnectors,\n getZeroAgentUserConnectors,\n} from \"../../../lib/api\";\n\ninterface AgentContext {\n agentId: string;\n displayName: string;\n authorizedConnectorSlugs: Set<string>;\n}\n\nexport interface ConnectorDiscoveryAgentContext extends AgentContext {\n authorizedCustomConnectorIds: 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, enabledConnectorSlugs] = await Promise.all([\n getZeroAgent(agentId),\n getZeroAgentUserConnectors(agentId),\n ]);\n\n return {\n agentId: agent.agentId,\n displayName: agent.displayName ?? agent.agentId,\n authorizedConnectorSlugs: new Set(enabledConnectorSlugs),\n };\n}\n\nexport async function resolveConnectorDiscoveryAgentContext(\n flagAgentId: string | undefined,\n): Promise<ConnectorDiscoveryAgentContext | null> {\n const agentId = flagAgentId ?? process.env.ZERO_AGENT_ID;\n if (!agentId) return null;\n\n const [agent, enabledConnectorSlugs, enabledCustomConnectorIds] =\n await Promise.all([\n getZeroAgent(agentId),\n getZeroAgentUserConnectors(agentId),\n getZeroAgentCustomConnectors(agentId),\n ]);\n\n return {\n agentId: agent.agentId,\n displayName: agent.displayName ?? agent.agentId,\n authorizedConnectorSlugs: new Set(enabledConnectorSlugs),\n authorizedCustomConnectorIds: new Set(enabledCustomConnectorIds),\n };\n}\n"],"mappings":"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","names":["authMethod"]}
|
|
@@ -15391,7 +15391,7 @@ function createCliClientHeaderInjector(options) {
|
|
|
15391
15391
|
}
|
|
15392
15392
|
var addDefaultCliClientHeaders = createCliClientHeaderInjector({
|
|
15393
15393
|
clientVersion: addClientCapabilityToVersion(
|
|
15394
|
-
"9.
|
|
15394
|
+
"9.268.0",
|
|
15395
15395
|
CLIENT_CAPABILITY_CONNECTOR_SLUG_IDENTITIES
|
|
15396
15396
|
)
|
|
15397
15397
|
});
|
|
@@ -16784,4 +16784,4 @@ export {
|
|
|
16784
16784
|
apiErrorSchema,
|
|
16785
16785
|
withErrorHandler
|
|
16786
16786
|
};
|
|
16787
|
-
//# sourceMappingURL=chunk-
|
|
16787
|
+
//# sourceMappingURL=chunk-DTZW7RES.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
getActiveToken,
|
|
7
7
|
getBaseUrl,
|
|
8
8
|
headersWithCliClientHeaders
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-DTZW7RES.js";
|
|
10
10
|
import {
|
|
11
11
|
init_esm_shims
|
|
12
12
|
} from "./chunk-GPYQ24DR.js";
|
|
@@ -648,4 +648,4 @@ export {
|
|
|
648
648
|
generateWebVideo,
|
|
649
649
|
transcribeAudio
|
|
650
650
|
};
|
|
651
|
-
//# sourceMappingURL=chunk-
|
|
651
|
+
//# sourceMappingURL=chunk-ISZ5CKJ3.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
|
UNKNOWN_PERMISSION_GRANT
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-VGPSGL5S.js";
|
|
7
7
|
import {
|
|
8
8
|
init_esm_shims
|
|
9
9
|
} from "./chunk-GPYQ24DR.js";
|
|
@@ -130,4 +130,4 @@ export {
|
|
|
130
130
|
resolveFirewallMetadataPolicies,
|
|
131
131
|
permissionGrantsToFirewallPolicies
|
|
132
132
|
};
|
|
133
|
-
//# sourceMappingURL=chunk-
|
|
133
|
+
//# sourceMappingURL=chunk-QSWNNYV4.js.map
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
updateOrgModelPoliciesRequestSchema,
|
|
22
22
|
upsertModelProviderRequestSchema,
|
|
23
23
|
upsertModelProviderResponseSchema
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-DTZW7RES.js";
|
|
25
25
|
import {
|
|
26
26
|
__commonJS,
|
|
27
27
|
__esm,
|
|
@@ -13501,4 +13501,4 @@ export {
|
|
|
13501
13501
|
getHostedSiteFiles,
|
|
13502
13502
|
getHostedSiteDeployments
|
|
13503
13503
|
};
|
|
13504
|
-
//# sourceMappingURL=chunk-
|
|
13504
|
+
//# sourceMappingURL=chunk-VGPSGL5S.js.map
|
|
@@ -3,13 +3,13 @@ import { createRequire as __createRequire } from "node:module";
|
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
resolveFirewallMetadataPolicies
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-QSWNNYV4.js";
|
|
7
7
|
import {
|
|
8
8
|
getZeroConnectorCatalogPermissions
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-VGPSGL5S.js";
|
|
10
10
|
import {
|
|
11
11
|
source_default
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-DTZW7RES.js";
|
|
13
13
|
import {
|
|
14
14
|
init_esm_shims
|
|
15
15
|
} from "./chunk-GPYQ24DR.js";
|
|
@@ -94,4 +94,4 @@ export {
|
|
|
94
94
|
policyIcon,
|
|
95
95
|
loadConnectorPermissionInfos
|
|
96
96
|
};
|
|
97
|
-
//# sourceMappingURL=chunk-
|
|
97
|
+
//# sourceMappingURL=chunk-ZL7WFWOC.js.map
|
|
@@ -12,12 +12,12 @@ import {
|
|
|
12
12
|
fetchComputerUseScreenshot,
|
|
13
13
|
getComputerUseCommand,
|
|
14
14
|
listComputerUseHosts
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import "./chunk-
|
|
15
|
+
} from "./chunk-VGPSGL5S.js";
|
|
16
|
+
import "./chunk-ISZ5CKJ3.js";
|
|
17
17
|
import {
|
|
18
18
|
ApiRequestError,
|
|
19
19
|
withErrorHandler
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-DTZW7RES.js";
|
|
21
21
|
import "./chunk-MD3YWUKO.js";
|
|
22
22
|
import {
|
|
23
23
|
Command
|
|
@@ -970,4 +970,4 @@ export {
|
|
|
970
970
|
formatComputerUseResultForConsole,
|
|
971
971
|
zeroComputerUseCommand
|
|
972
972
|
};
|
|
973
|
-
//# sourceMappingURL=computer-use-
|
|
973
|
+
//# sourceMappingURL=computer-use-LTZEVHCS.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
|
findFirewallMetadataPermission
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-QSWNNYV4.js";
|
|
7
7
|
import {
|
|
8
8
|
CALLBACK_PROMPT_PLACEHOLDER,
|
|
9
9
|
addRequestedCallbackSearchParams,
|
|
@@ -15,9 +15,10 @@ import {
|
|
|
15
15
|
printCallbackActionUrlExample,
|
|
16
16
|
printCallbackTurnInstruction,
|
|
17
17
|
resolveAgentContext,
|
|
18
|
+
resolveConnectorDiscoveryAgentContext,
|
|
18
19
|
resolveManualGrantAuthMethod,
|
|
19
|
-
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
searchConnectorCatalog
|
|
21
|
+
} from "./chunk-CZA5MW3N.js";
|
|
21
22
|
import {
|
|
22
23
|
UNKNOWN_PERMISSION_GRANT,
|
|
23
24
|
connectZeroConnectorManualGrant,
|
|
@@ -33,19 +34,19 @@ import {
|
|
|
33
34
|
getZeroCustomConnector,
|
|
34
35
|
listZeroConnectorCatalogStatus,
|
|
35
36
|
listZeroCustomConnectors
|
|
36
|
-
} from "./chunk-
|
|
37
|
-
import "./chunk-
|
|
37
|
+
} from "./chunk-VGPSGL5S.js";
|
|
38
|
+
import "./chunk-ISZ5CKJ3.js";
|
|
38
39
|
import {
|
|
39
40
|
getPlatformOrigin,
|
|
40
41
|
toPlatformUrl
|
|
41
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-7I3P4REZ.js";
|
|
42
43
|
import "./chunk-MA22KQYU.js";
|
|
43
44
|
import {
|
|
44
45
|
ApiRequestError,
|
|
45
46
|
getApiUrl,
|
|
46
47
|
source_default,
|
|
47
48
|
withErrorHandler
|
|
48
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-DTZW7RES.js";
|
|
49
50
|
import "./chunk-MD3YWUKO.js";
|
|
50
51
|
import {
|
|
51
52
|
Command,
|
|
@@ -893,14 +894,74 @@ function padEndAnsi(s, width) {
|
|
|
893
894
|
return s + " ".repeat(Math.max(0, width - visible));
|
|
894
895
|
}
|
|
895
896
|
|
|
897
|
+
// src/commands/zero/connector/discovery.ts
|
|
898
|
+
init_esm_shims();
|
|
899
|
+
function connectorDiscoveryItems(catalogConnectors, customConnectors) {
|
|
900
|
+
return [
|
|
901
|
+
...catalogConnectors.map((connector) => {
|
|
902
|
+
return {
|
|
903
|
+
kind: "catalog",
|
|
904
|
+
connectorRef: connector.connectorRef,
|
|
905
|
+
label: connector.label,
|
|
906
|
+
description: connector.description,
|
|
907
|
+
category: connector.category,
|
|
908
|
+
tags: connector.tags,
|
|
909
|
+
generation: connector.generation,
|
|
910
|
+
authMethods: connector.authMethods,
|
|
911
|
+
catalogConnector: connector
|
|
912
|
+
};
|
|
913
|
+
}),
|
|
914
|
+
...customConnectors.map((connector) => {
|
|
915
|
+
return {
|
|
916
|
+
kind: "custom",
|
|
917
|
+
connectorRef: connector.slug,
|
|
918
|
+
label: connector.displayName,
|
|
919
|
+
description: "",
|
|
920
|
+
category: "custom",
|
|
921
|
+
tags: [],
|
|
922
|
+
generation: [],
|
|
923
|
+
authMethods: [],
|
|
924
|
+
customConnector: connector
|
|
925
|
+
};
|
|
926
|
+
})
|
|
927
|
+
];
|
|
928
|
+
}
|
|
929
|
+
function renderConnectorDiscoveryConnectedAsCell(connector) {
|
|
930
|
+
if (connector.kind === "catalog") {
|
|
931
|
+
return renderConnectedAsCell(connector.catalogConnector);
|
|
932
|
+
}
|
|
933
|
+
if (connector.customConnector.connected) {
|
|
934
|
+
return source_default.green("connected");
|
|
935
|
+
}
|
|
936
|
+
if (connector.customConnector.missingRequiredFields.length === 0) {
|
|
937
|
+
return source_default.dim("(not connected)");
|
|
938
|
+
}
|
|
939
|
+
return source_default.yellow(
|
|
940
|
+
`missing ${connector.customConnector.missingRequiredFields.join(", ")}`
|
|
941
|
+
);
|
|
942
|
+
}
|
|
943
|
+
function isConnectorDiscoveryAuthorized(connector, agentContext) {
|
|
944
|
+
if (connector.kind === "catalog") {
|
|
945
|
+
return agentContext.authorizedConnectorSlugs.has(connector.connectorRef);
|
|
946
|
+
}
|
|
947
|
+
return agentContext.authorizedCustomConnectorIds.has(
|
|
948
|
+
connector.customConnector.id
|
|
949
|
+
);
|
|
950
|
+
}
|
|
951
|
+
|
|
896
952
|
// src/commands/zero/connector/list.ts
|
|
897
953
|
var listCommand = new Command().name("list").alias("ls").description("List all connectors and their status").option("--agent <id>", "Show per-agent authorization column").action(
|
|
898
954
|
withErrorHandler(async (options) => {
|
|
899
|
-
const [{ connectors }, agentCtx] = await Promise.all([
|
|
955
|
+
const [{ connectors }, customConnectors, agentCtx] = await Promise.all([
|
|
900
956
|
listZeroConnectorCatalogStatus(),
|
|
901
|
-
|
|
957
|
+
listZeroCustomConnectors(),
|
|
958
|
+
resolveConnectorDiscoveryAgentContext(options.agent)
|
|
902
959
|
]);
|
|
903
|
-
const
|
|
960
|
+
const discoveredConnectors = connectorDiscoveryItems(
|
|
961
|
+
connectors,
|
|
962
|
+
customConnectors
|
|
963
|
+
);
|
|
964
|
+
const connectorSlugs = discoveredConnectors.map((connector) => {
|
|
904
965
|
return connector.connectorRef;
|
|
905
966
|
});
|
|
906
967
|
const connectorSlugWidth = Math.max(
|
|
@@ -910,8 +971,8 @@ var listCommand = new Command().name("list").alias("ls").description("List all c
|
|
|
910
971
|
})
|
|
911
972
|
);
|
|
912
973
|
const connectedAsHeader = "CONNECTED AS";
|
|
913
|
-
const connectedCells =
|
|
914
|
-
return
|
|
974
|
+
const connectedCells = discoveredConnectors.map((connector) => {
|
|
975
|
+
return renderConnectorDiscoveryConnectedAsCell(connector);
|
|
915
976
|
});
|
|
916
977
|
const connectedAsWidth = Math.max(
|
|
917
978
|
connectedAsHeader.length,
|
|
@@ -927,12 +988,13 @@ var listCommand = new Command().name("list").alias("ls").description("List all c
|
|
|
927
988
|
if (authorizedHeader) headerParts.push(authorizedHeader);
|
|
928
989
|
console.log(source_default.dim(headerParts.join(" ")));
|
|
929
990
|
for (let i = 0; i < connectorSlugs.length; i++) {
|
|
991
|
+
const connector = discoveredConnectors[i];
|
|
930
992
|
const connectorSlug = connectorSlugs[i];
|
|
931
993
|
const connectedCell = padEndAnsi(connectedCells[i], connectedAsWidth);
|
|
932
994
|
const parts = [connectorSlug.padEnd(connectorSlugWidth), connectedCell];
|
|
933
995
|
if (agentCtx) {
|
|
934
996
|
parts.push(
|
|
935
|
-
agentCtx
|
|
997
|
+
isConnectorDiscoveryAuthorized(connector, agentCtx) ? source_default.green("\u2713") : source_default.dim("-")
|
|
936
998
|
);
|
|
937
999
|
}
|
|
938
1000
|
console.log(parts.join(" "));
|
|
@@ -966,12 +1028,13 @@ var searchCommand = new Command().name("search").description(
|
|
|
966
1028
|
if (!trimmed) {
|
|
967
1029
|
throw new Error("Keyword cannot be empty.");
|
|
968
1030
|
}
|
|
969
|
-
const [{ connectors }, agentCtx] = await Promise.all([
|
|
1031
|
+
const [{ connectors }, customConnectors, agentCtx] = await Promise.all([
|
|
970
1032
|
listZeroConnectorCatalogStatus(),
|
|
971
|
-
|
|
1033
|
+
listZeroCustomConnectors(),
|
|
1034
|
+
resolveConnectorDiscoveryAgentContext(options.agent)
|
|
972
1035
|
]);
|
|
973
|
-
const { results, total } =
|
|
974
|
-
connectors,
|
|
1036
|
+
const { results, total } = searchConnectorCatalog(
|
|
1037
|
+
connectorDiscoveryItems(connectors, customConnectors),
|
|
975
1038
|
trimmed,
|
|
976
1039
|
options.limit
|
|
977
1040
|
);
|
|
@@ -989,7 +1052,7 @@ var searchCommand = new Command().name("search").description(
|
|
|
989
1052
|
const connectorSlugHeader = "TYPE";
|
|
990
1053
|
const connectedAsHeader = "CONNECTED AS";
|
|
991
1054
|
const connectedCells = results.map((r) => {
|
|
992
|
-
return
|
|
1055
|
+
return renderConnectorDiscoveryConnectedAsCell(r.connector);
|
|
993
1056
|
});
|
|
994
1057
|
const connectorSlugWidth = Math.max(
|
|
995
1058
|
connectorSlugHeader.length,
|
|
@@ -1019,9 +1082,7 @@ var searchCommand = new Command().name("search").description(
|
|
|
1019
1082
|
];
|
|
1020
1083
|
if (agentCtx) {
|
|
1021
1084
|
parts.push(
|
|
1022
|
-
agentCtx.
|
|
1023
|
-
result.connector.connectorRef
|
|
1024
|
-
) ? source_default.green("\u2713") : source_default.dim("-")
|
|
1085
|
+
isConnectorDiscoveryAuthorized(result.connector, agentCtx) ? source_default.green("\u2713") : source_default.dim("-")
|
|
1025
1086
|
);
|
|
1026
1087
|
}
|
|
1027
1088
|
console.log(parts.join(" "));
|
|
@@ -1565,4 +1626,4 @@ var zeroConnectorCommand = new Command().name("connector").description("Manage a
|
|
|
1565
1626
|
export {
|
|
1566
1627
|
zeroConnectorCommand
|
|
1567
1628
|
};
|
|
1568
|
-
//# sourceMappingURL=connector-
|
|
1629
|
+
//# sourceMappingURL=connector-MY7K7RJN.js.map
|