@vm0/cli 9.254.2 → 9.256.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.
- package/{agent-NSQIRPVB.js → agent-EVQN2LPX.js} +7 -7
- package/{banking-IQ7MX2B4.js → banking-YA4UBYKV.js} +5 -5
- package/browser-K37YB6WN.js +186 -0
- package/browser-K37YB6WN.js.map +1 -0
- package/{chat-SC5PGHDZ.js → chat-UFNIPVLN.js} +6 -6
- package/{chunk-F6JKPYD2.js → chunk-AAZBHQPP.js} +2 -2
- package/{chunk-X6PT2M2I.js → chunk-CIALZM7O.js} +2 -2
- package/{chunk-UUKFGXX5.js → chunk-GF22PXYF.js} +2 -2
- package/{chunk-4MPNBXFO.js → chunk-ITSKDZFI.js} +2 -2
- package/{chunk-SXD7ESWU.js → chunk-KLSQEQC4.js} +82 -151
- package/chunk-KLSQEQC4.js.map +1 -0
- package/{chunk-TV6RSLOX.js → chunk-M4F24YFV.js} +3 -3
- package/{chunk-OTH23BP4.js → chunk-OQSXOSCD.js} +84 -2
- package/chunk-OQSXOSCD.js.map +1 -0
- package/{chunk-BSFDG7MC.js → chunk-P2FBG2BA.js} +2 -2
- package/{chunk-7OBI7V4O.js → chunk-SLUCBVKQ.js} +589 -512
- package/chunk-SLUCBVKQ.js.map +1 -0
- package/{chunk-MNHYBPQB.js → chunk-VQ3ILWFQ.js} +4 -4
- package/{chunk-D4OTAABD.js → chunk-X5FAOKYK.js} +7 -3
- package/chunk-X5FAOKYK.js.map +1 -0
- package/{computer-use-C7D4GLBU.js → computer-use-C6VLY2LY.js} +5 -5
- package/{connector-FW3TFVAJ.js → connector-SJF25IFP.js} +15 -83
- package/connector-SJF25IFP.js.map +1 -0
- package/{credit-YDQVARRO.js → credit-LYZ2HJ6F.js} +7 -7
- package/{developer-support-NPRGXXF2.js → developer-support-3ISSXZCF.js} +5 -5
- package/{doctor-D7DAFSV3.js → doctor-ISR6CR7B.js} +7 -7
- package/{feishu-UDSN4AVE.js → feishu-3MULYZGN.js} +5 -5
- package/{finance-O7WTSZ7W.js → finance-7BH57FKM.js} +5 -5
- package/{generate-ERHBA3S5.js → generate-5RN37TB2.js} +7 -7
- package/{github-LFJ6JXXJ.js → github-V6IISTKM.js} +5 -5
- package/{goal-GFUDKA42.js → goal-VHURZA6I.js} +5 -5
- package/{host-4NPMKE4M.js → host-FPYIZNEY.js} +5 -5
- package/{logs-IAMPNPZU.js → logs-SOU4VJKD.js} +6 -6
- package/{mail-KZJLXDSP.js → mail-CYM7COJU.js} +67 -17
- package/mail-CYM7COJU.js.map +1 -0
- package/{maps-QC6LW3XN.js → maps-M743J55Y.js} +5 -5
- package/{model-ZCBZUROI.js → model-UP6QUEBW.js} +6 -6
- package/{model-provider-KHT4TJAD.js → model-provider-OFR5IFKC.js} +6 -6
- package/{org-PGERW5HL.js → org-TMYRDS6T.js} +5 -5
- package/package.json +1 -1
- package/{people-search-KOWVJQ7J.js → people-search-PGGRVJE2.js} +5 -5
- package/{phone-UDZRVU4K.js → phone-XDSMT3L2.js} +5 -5
- package/{preference-CW4D6H22.js → preference-HJZXDNPF.js} +5 -5
- package/{resource-UTBKHQYI.js → resource-EPIY47XQ.js} +5 -5
- package/{scrape-HSJGZHJP.js → scrape-RARAUZOC.js} +5 -5
- package/{search-E3XYG3EQ.js → search-DXXHHWDZ.js} +6 -6
- package/{secret-FHYLUY5C.js → secret-AGFBP5RY.js} +5 -5
- package/{slack-KNNFCXQL.js → slack-K2QEL2LI.js} +5 -5
- package/{teams-SE2UBCFO.js → teams-KIJXDVOL.js} +5 -5
- package/{telegram-MBCYOZOW.js → telegram-S5K3IMKH.js} +5 -5
- package/{upgrade-HCODAAIE.js → upgrade-6I5DNVPS.js} +4 -4
- package/{variable-VK42DTQ3.js → variable-IRTOV55E.js} +5 -5
- package/{video-5HT4OTPO.js → video-3ZDBT2PC.js} +4 -4
- package/{weather-JYVT7MJV.js → weather-4TPUCJLD.js} +5 -5
- package/{web-4ZYLQGTN.js → web-ZK5I2YXJ.js} +5 -5
- package/{web-search-BUSZ7LN5.js → web-search-OI6ACM3G.js} +5 -5
- package/{whoami-DD32L4F2.js → whoami-FJGFKNBS.js} +7 -7
- package/{workflow-SW7Q4HHX.js → workflow-4ODQQIVH.js} +5 -5
- package/zero.js +54 -44
- package/zero.js.map +1 -1
- package/chunk-7OBI7V4O.js.map +0 -1
- package/chunk-D4OTAABD.js.map +0 -1
- package/chunk-OTH23BP4.js.map +0 -1
- package/chunk-SXD7ESWU.js.map +0 -1
- package/connector-FW3TFVAJ.js.map +0 -1
- package/mail-KZJLXDSP.js.map +0 -1
- /package/{agent-NSQIRPVB.js.map → agent-EVQN2LPX.js.map} +0 -0
- /package/{banking-IQ7MX2B4.js.map → banking-YA4UBYKV.js.map} +0 -0
- /package/{chat-SC5PGHDZ.js.map → chat-UFNIPVLN.js.map} +0 -0
- /package/{chunk-F6JKPYD2.js.map → chunk-AAZBHQPP.js.map} +0 -0
- /package/{chunk-X6PT2M2I.js.map → chunk-CIALZM7O.js.map} +0 -0
- /package/{chunk-UUKFGXX5.js.map → chunk-GF22PXYF.js.map} +0 -0
- /package/{chunk-4MPNBXFO.js.map → chunk-ITSKDZFI.js.map} +0 -0
- /package/{chunk-TV6RSLOX.js.map → chunk-M4F24YFV.js.map} +0 -0
- /package/{chunk-BSFDG7MC.js.map → chunk-P2FBG2BA.js.map} +0 -0
- /package/{chunk-MNHYBPQB.js.map → chunk-VQ3ILWFQ.js.map} +0 -0
- /package/{computer-use-C7D4GLBU.js.map → computer-use-C6VLY2LY.js.map} +0 -0
- /package/{credit-YDQVARRO.js.map → credit-LYZ2HJ6F.js.map} +0 -0
- /package/{developer-support-NPRGXXF2.js.map → developer-support-3ISSXZCF.js.map} +0 -0
- /package/{doctor-D7DAFSV3.js.map → doctor-ISR6CR7B.js.map} +0 -0
- /package/{feishu-UDSN4AVE.js.map → feishu-3MULYZGN.js.map} +0 -0
- /package/{finance-O7WTSZ7W.js.map → finance-7BH57FKM.js.map} +0 -0
- /package/{generate-ERHBA3S5.js.map → generate-5RN37TB2.js.map} +0 -0
- /package/{github-LFJ6JXXJ.js.map → github-V6IISTKM.js.map} +0 -0
- /package/{goal-GFUDKA42.js.map → goal-VHURZA6I.js.map} +0 -0
- /package/{host-4NPMKE4M.js.map → host-FPYIZNEY.js.map} +0 -0
- /package/{logs-IAMPNPZU.js.map → logs-SOU4VJKD.js.map} +0 -0
- /package/{maps-QC6LW3XN.js.map → maps-M743J55Y.js.map} +0 -0
- /package/{model-ZCBZUROI.js.map → model-UP6QUEBW.js.map} +0 -0
- /package/{model-provider-KHT4TJAD.js.map → model-provider-OFR5IFKC.js.map} +0 -0
- /package/{org-PGERW5HL.js.map → org-TMYRDS6T.js.map} +0 -0
- /package/{people-search-KOWVJQ7J.js.map → people-search-PGGRVJE2.js.map} +0 -0
- /package/{phone-UDZRVU4K.js.map → phone-XDSMT3L2.js.map} +0 -0
- /package/{preference-CW4D6H22.js.map → preference-HJZXDNPF.js.map} +0 -0
- /package/{resource-UTBKHQYI.js.map → resource-EPIY47XQ.js.map} +0 -0
- /package/{scrape-HSJGZHJP.js.map → scrape-RARAUZOC.js.map} +0 -0
- /package/{search-E3XYG3EQ.js.map → search-DXXHHWDZ.js.map} +0 -0
- /package/{secret-FHYLUY5C.js.map → secret-AGFBP5RY.js.map} +0 -0
- /package/{slack-KNNFCXQL.js.map → slack-K2QEL2LI.js.map} +0 -0
- /package/{teams-SE2UBCFO.js.map → teams-KIJXDVOL.js.map} +0 -0
- /package/{telegram-MBCYOZOW.js.map → telegram-S5K3IMKH.js.map} +0 -0
- /package/{upgrade-HCODAAIE.js.map → upgrade-6I5DNVPS.js.map} +0 -0
- /package/{variable-VK42DTQ3.js.map → variable-IRTOV55E.js.map} +0 -0
- /package/{video-5HT4OTPO.js.map → video-3ZDBT2PC.js.map} +0 -0
- /package/{weather-JYVT7MJV.js.map → weather-4TPUCJLD.js.map} +0 -0
- /package/{web-4ZYLQGTN.js.map → web-ZK5I2YXJ.js.map} +0 -0
- /package/{web-search-BUSZ7LN5.js.map → web-search-OI6ACM3G.js.map} +0 -0
- /package/{whoami-DD32L4F2.js.map → whoami-FJGFKNBS.js.map} +0 -0
- /package/{workflow-SW7Q4HHX.js.map → workflow-4ODQQIVH.js.map} +0 -0
|
@@ -4,7 +4,7 @@ const require = __createRequire(import.meta.url);
|
|
|
4
4
|
import {
|
|
5
5
|
decodeZeroTokenPayload,
|
|
6
6
|
isFeatureEnabled
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-X5FAOKYK.js";
|
|
8
8
|
import {
|
|
9
9
|
__export,
|
|
10
10
|
init_esm_shims
|
|
@@ -15385,7 +15385,7 @@ function createCliClientHeaderInjector(options) {
|
|
|
15385
15385
|
};
|
|
15386
15386
|
}
|
|
15387
15387
|
var addDefaultCliClientHeaders = createCliClientHeaderInjector({
|
|
15388
|
-
clientVersion: "9.
|
|
15388
|
+
clientVersion: "9.256.1"
|
|
15389
15389
|
});
|
|
15390
15390
|
function addCliClientHeaders(headers) {
|
|
15391
15391
|
addDefaultCliClientHeaders(headers);
|
|
@@ -16783,4 +16783,4 @@ export {
|
|
|
16783
16783
|
apiErrorSchema,
|
|
16784
16784
|
withErrorHandler
|
|
16785
16785
|
};
|
|
16786
|
-
//# sourceMappingURL=chunk-
|
|
16786
|
+
//# sourceMappingURL=chunk-M4F24YFV.js.map
|
|
@@ -4,11 +4,86 @@ const require = __createRequire(import.meta.url);
|
|
|
4
4
|
import {
|
|
5
5
|
getZeroAgent,
|
|
6
6
|
getZeroAgentUserConnectors
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-SLUCBVKQ.js";
|
|
8
8
|
import {
|
|
9
9
|
init_esm_shims
|
|
10
10
|
} from "./chunk-3VVCUQPB.js";
|
|
11
11
|
|
|
12
|
+
// src/commands/zero/connector/action-url.ts
|
|
13
|
+
init_esm_shims();
|
|
14
|
+
var CALLBACK_PROMPT_PLACEHOLDER = "SOMETHING_AGENT_WANT_TO_BE_CALLBACK";
|
|
15
|
+
function connectorActionCallbackAvailable() {
|
|
16
|
+
return Boolean(process.env.ZERO_CHAT_THREAD_ID?.trim());
|
|
17
|
+
}
|
|
18
|
+
function currentChatThreadId(agentId) {
|
|
19
|
+
const threadId = process.env.ZERO_CHAT_THREAD_ID?.trim();
|
|
20
|
+
const currentAgentId = process.env.ZERO_AGENT_ID?.trim();
|
|
21
|
+
if (!threadId || !currentAgentId || agentId !== currentAgentId) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
return threadId;
|
|
25
|
+
}
|
|
26
|
+
function currentChatSupportsActionCallback(agentId) {
|
|
27
|
+
return currentChatThreadId(agentId) !== null;
|
|
28
|
+
}
|
|
29
|
+
function addCallbackSearchParams(params, threadId, callbackPrompt) {
|
|
30
|
+
params.set("threadId", threadId);
|
|
31
|
+
params.set("callbackPrompt", callbackPrompt);
|
|
32
|
+
}
|
|
33
|
+
function addRequestedCallbackSearchParams(params, callbackPrompt, agentId) {
|
|
34
|
+
if (callbackPrompt === void 0) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const normalizedPrompt = callbackPrompt.trim();
|
|
38
|
+
if (!normalizedPrompt) {
|
|
39
|
+
throw new Error("--callback-prompt cannot be empty");
|
|
40
|
+
}
|
|
41
|
+
const threadId = currentChatThreadId(agentId);
|
|
42
|
+
if (!threadId) {
|
|
43
|
+
throw new Error(
|
|
44
|
+
"--callback-prompt can only target the current Zero web chat thread and agent"
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
addCallbackSearchParams(params, threadId, normalizedPrompt);
|
|
48
|
+
}
|
|
49
|
+
function connectorActionUrl(args) {
|
|
50
|
+
const url = new URL(args.path, args.origin);
|
|
51
|
+
if (args.agentId) {
|
|
52
|
+
url.searchParams.set("agentId", args.agentId);
|
|
53
|
+
}
|
|
54
|
+
return url.toString();
|
|
55
|
+
}
|
|
56
|
+
function callbackActionUrlExample(actionUrl, agentId) {
|
|
57
|
+
const threadId = currentChatThreadId(agentId);
|
|
58
|
+
if (!threadId) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
const url = new URL(actionUrl);
|
|
62
|
+
addCallbackSearchParams(
|
|
63
|
+
url.searchParams,
|
|
64
|
+
threadId,
|
|
65
|
+
CALLBACK_PROMPT_PLACEHOLDER
|
|
66
|
+
);
|
|
67
|
+
return url.toString();
|
|
68
|
+
}
|
|
69
|
+
function printCallbackActionUrlExample(actionUrl, agentId) {
|
|
70
|
+
const callbackUrl = callbackActionUrlExample(actionUrl, agentId);
|
|
71
|
+
if (!callbackUrl) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
console.log("");
|
|
75
|
+
console.log(
|
|
76
|
+
"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:"
|
|
77
|
+
);
|
|
78
|
+
console.log(callbackUrl);
|
|
79
|
+
}
|
|
80
|
+
function printCallbackTurnInstruction() {
|
|
81
|
+
console.log("");
|
|
82
|
+
console.log(
|
|
83
|
+
"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."
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
|
|
12
87
|
// src/commands/zero/connector/public-catalog.ts
|
|
13
88
|
init_esm_shims();
|
|
14
89
|
var TOKEN_BOUNDARY = /[_\-\s]+/;
|
|
@@ -259,10 +334,17 @@ async function resolveAgentContext(flagAgentId) {
|
|
|
259
334
|
}
|
|
260
335
|
|
|
261
336
|
export {
|
|
337
|
+
CALLBACK_PROMPT_PLACEHOLDER,
|
|
338
|
+
connectorActionCallbackAvailable,
|
|
339
|
+
currentChatSupportsActionCallback,
|
|
340
|
+
addRequestedCallbackSearchParams,
|
|
341
|
+
connectorActionUrl,
|
|
342
|
+
printCallbackActionUrlExample,
|
|
343
|
+
printCallbackTurnInstruction,
|
|
262
344
|
searchPublicConnectorCatalog,
|
|
263
345
|
findConnectorStatusItem,
|
|
264
346
|
availableConnectorRefs,
|
|
265
347
|
resolveManualGrantAuthMethod,
|
|
266
348
|
resolveAgentContext
|
|
267
349
|
};
|
|
268
|
-
//# sourceMappingURL=chunk-
|
|
350
|
+
//# sourceMappingURL=chunk-OQSXOSCD.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 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"]}
|
|
@@ -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-
|
|
6
|
+
} from "./chunk-M4F24YFV.js";
|
|
7
7
|
import {
|
|
8
8
|
init_esm_shims
|
|
9
9
|
} from "./chunk-3VVCUQPB.js";
|
|
@@ -40,4 +40,4 @@ export {
|
|
|
40
40
|
formatModelProviderRoute,
|
|
41
41
|
formatModelPolicyStatus
|
|
42
42
|
};
|
|
43
|
-
//# sourceMappingURL=chunk-
|
|
43
|
+
//# sourceMappingURL=chunk-P2FBG2BA.js.map
|