@vm0/cli 9.216.0 → 9.217.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-BOESNJTO.js → agent-XRGESF2G.js} +5 -5
- package/{automation-PY6RNYCZ.js → automation-GDW672NH.js} +3 -3
- package/{banking-AXGFOQER.js → banking-6ARXS2Z6.js} +3 -3
- package/{chat-6HX4S2ZF.js → chat-DFWQBUP5.js} +50 -8
- package/chat-DFWQBUP5.js.map +1 -0
- package/{chunk-5EBRKXYZ.js → chunk-4HNQ562Q.js} +2 -2
- package/{chunk-GPPNNNQY.js → chunk-4MIRUOTC.js} +2 -2
- package/{chunk-BXXT44X3.js → chunk-5NIWPEYU.js} +211 -28
- package/chunk-5NIWPEYU.js.map +1 -0
- package/{chunk-2K3VV6M7.js → chunk-FDEC2TSK.js} +14 -3
- package/chunk-FDEC2TSK.js.map +1 -0
- package/{chunk-H6ZIZI7O.js → chunk-H5FMCCU3.js} +16 -4
- package/chunk-H5FMCCU3.js.map +1 -0
- package/{chunk-UGBUWMXB.js → chunk-HI5MBAER.js} +1678 -173
- package/chunk-HI5MBAER.js.map +1 -0
- package/{chunk-4XK5RSTU.js → chunk-JGL3562P.js} +3 -3
- package/{chunk-PK2FIZAP.js → chunk-U5XYJPGE.js} +3 -3
- package/{chunk-RDAZHUSS.js → chunk-XAAG47JI.js} +2 -2
- package/{computer-use-6BNCGQPA.js → computer-use-A3QMRGDL.js} +2 -2
- package/{connector-OZK7VFUP.js → connector-APQCX6QK.js} +4 -4
- package/{credit-453O43Z2.js → credit-WCRH2COD.js} +3 -3
- package/{developer-support-T62WEYUX.js → developer-support-62OFNOV6.js} +3 -3
- package/{doctor-2LMKIPOY.js → doctor-QRUVYREV.js} +40 -7
- package/doctor-QRUVYREV.js.map +1 -0
- package/{generate-K5GYO45X.js → generate-6BRMTUSA.js} +4 -4
- package/{github-UZ2W4LBI.js → github-Z6ZQ6CM7.js} +3 -3
- package/{goal-J437V77R.js → goal-2M66KMSY.js} +3 -3
- package/{host-VTOIMJFQ.js → host-EYUF35AL.js} +3 -3
- package/index.js +18 -18
- package/{logs-NFRQGW7G.js → logs-WLQGT7MT.js} +7 -7
- package/{maps-EORQRXNF.js → maps-CDZCOI32.js} +3 -3
- package/{model-FWGRL5WH.js → model-HSFU45JV.js} +4 -4
- package/{model-provider-KX24G7EV.js → model-provider-44EOJTPX.js} +4 -4
- package/{org-5JO7ZRFZ.js → org-KWGNB4OJ.js} +3 -3
- package/package.json +1 -1
- package/pexels.generated-EZDZCJII.js +83 -0
- package/pexels.generated-EZDZCJII.js.map +1 -0
- package/pexels.generated-T3VRPCPZ.js +40 -0
- package/pexels.generated-T3VRPCPZ.js.map +1 -0
- package/{phone-TOESUP2F.js → phone-YAHVWIXZ.js} +3 -3
- package/{preference-U6LLZ2WN.js → preference-H3OXJCSS.js} +3 -3
- package/{resource-IJXGLUAL.js → resource-SUX5YPIE.js} +3 -3
- package/{search-475VBNDL.js → search-QQFA3Q5D.js} +7 -7
- package/{secret-T4V24JSI.js → secret-RI6AXINU.js} +4 -4
- package/{slack-JLFBR52G.js → slack-PMCEPRTC.js} +3 -3
- package/{telegram-GKIVCGJQ.js → telegram-GPLC2TKG.js} +3 -3
- package/{variable-FNE7FC4F.js → variable-Q2U4YPM6.js} +3 -3
- package/{web-Z2OGYSES.js → web-36BBMH5L.js} +2 -2
- package/{whoami-SUTXGNEG.js → whoami-PAJZPJWW.js} +5 -5
- package/{workflow-B3MKOVKY.js → workflow-XKVCSOQG.js} +3 -3
- package/{youtube.generated-LWJKXV2G.js → youtube.generated-JPSZAIXX.js} +5 -5
- package/youtube.generated-JPSZAIXX.js.map +1 -0
- package/{youtube.generated-OW2TE3JG.js → youtube.generated-WVCRGH3X.js} +2 -2
- package/youtube.generated-WVCRGH3X.js.map +1 -0
- package/zero.js +32 -32
- package/zero.js.map +1 -1
- package/chat-6HX4S2ZF.js.map +0 -1
- package/chunk-2K3VV6M7.js.map +0 -1
- package/chunk-BXXT44X3.js.map +0 -1
- package/chunk-H6ZIZI7O.js.map +0 -1
- package/chunk-UGBUWMXB.js.map +0 -1
- package/doctor-2LMKIPOY.js.map +0 -1
- package/youtube.generated-LWJKXV2G.js.map +0 -1
- package/youtube.generated-OW2TE3JG.js.map +0 -1
- /package/{agent-BOESNJTO.js.map → agent-XRGESF2G.js.map} +0 -0
- /package/{automation-PY6RNYCZ.js.map → automation-GDW672NH.js.map} +0 -0
- /package/{banking-AXGFOQER.js.map → banking-6ARXS2Z6.js.map} +0 -0
- /package/{chunk-5EBRKXYZ.js.map → chunk-4HNQ562Q.js.map} +0 -0
- /package/{chunk-GPPNNNQY.js.map → chunk-4MIRUOTC.js.map} +0 -0
- /package/{chunk-4XK5RSTU.js.map → chunk-JGL3562P.js.map} +0 -0
- /package/{chunk-PK2FIZAP.js.map → chunk-U5XYJPGE.js.map} +0 -0
- /package/{chunk-RDAZHUSS.js.map → chunk-XAAG47JI.js.map} +0 -0
- /package/{computer-use-6BNCGQPA.js.map → computer-use-A3QMRGDL.js.map} +0 -0
- /package/{connector-OZK7VFUP.js.map → connector-APQCX6QK.js.map} +0 -0
- /package/{credit-453O43Z2.js.map → credit-WCRH2COD.js.map} +0 -0
- /package/{developer-support-T62WEYUX.js.map → developer-support-62OFNOV6.js.map} +0 -0
- /package/{generate-K5GYO45X.js.map → generate-6BRMTUSA.js.map} +0 -0
- /package/{github-UZ2W4LBI.js.map → github-Z6ZQ6CM7.js.map} +0 -0
- /package/{goal-J437V77R.js.map → goal-2M66KMSY.js.map} +0 -0
- /package/{host-VTOIMJFQ.js.map → host-EYUF35AL.js.map} +0 -0
- /package/{logs-NFRQGW7G.js.map → logs-WLQGT7MT.js.map} +0 -0
- /package/{maps-EORQRXNF.js.map → maps-CDZCOI32.js.map} +0 -0
- /package/{model-FWGRL5WH.js.map → model-HSFU45JV.js.map} +0 -0
- /package/{model-provider-KX24G7EV.js.map → model-provider-44EOJTPX.js.map} +0 -0
- /package/{org-5JO7ZRFZ.js.map → org-KWGNB4OJ.js.map} +0 -0
- /package/{phone-TOESUP2F.js.map → phone-YAHVWIXZ.js.map} +0 -0
- /package/{preference-U6LLZ2WN.js.map → preference-H3OXJCSS.js.map} +0 -0
- /package/{resource-IJXGLUAL.js.map → resource-SUX5YPIE.js.map} +0 -0
- /package/{search-475VBNDL.js.map → search-QQFA3Q5D.js.map} +0 -0
- /package/{secret-T4V24JSI.js.map → secret-RI6AXINU.js.map} +0 -0
- /package/{slack-JLFBR52G.js.map → slack-PMCEPRTC.js.map} +0 -0
- /package/{telegram-GKIVCGJQ.js.map → telegram-GPLC2TKG.js.map} +0 -0
- /package/{variable-FNE7FC4F.js.map → variable-Q2U4YPM6.js.map} +0 -0
- /package/{web-Z2OGYSES.js.map → web-36BBMH5L.js.map} +0 -0
- /package/{whoami-SUTXGNEG.js.map → whoami-PAJZPJWW.js.map} +0 -0
- /package/{workflow-B3MKOVKY.js.map → workflow-XKVCSOQG.js.map} +0 -0
|
@@ -4,14 +4,15 @@ const require = __createRequire(import.meta.url);
|
|
|
4
4
|
import {
|
|
5
5
|
loadConnectorPermissionInfos,
|
|
6
6
|
policyIcon
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-4MIRUOTC.js";
|
|
8
8
|
import {
|
|
9
9
|
permissionGrantsToFirewallPolicies
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-FDEC2TSK.js";
|
|
11
11
|
import {
|
|
12
12
|
isInteractive,
|
|
13
13
|
promptConfirm
|
|
14
14
|
} from "./chunk-JFY6GK7Y.js";
|
|
15
|
+
import "./chunk-LTDQISD7.js";
|
|
15
16
|
import {
|
|
16
17
|
createZeroAgent,
|
|
17
18
|
deleteZeroAgent,
|
|
@@ -23,8 +24,7 @@ import {
|
|
|
23
24
|
listZeroUserPermissionGrants,
|
|
24
25
|
updateZeroAgent,
|
|
25
26
|
updateZeroAgentInstructions
|
|
26
|
-
} from "./chunk-
|
|
27
|
-
import "./chunk-LTDQISD7.js";
|
|
27
|
+
} from "./chunk-5NIWPEYU.js";
|
|
28
28
|
import {
|
|
29
29
|
withErrorHandler
|
|
30
30
|
} from "./chunk-3F4RFLPX.js";
|
|
@@ -595,4 +595,4 @@ Notes:
|
|
|
595
595
|
export {
|
|
596
596
|
zeroAgentCommand
|
|
597
597
|
};
|
|
598
|
-
//# sourceMappingURL=agent-
|
|
598
|
+
//# sourceMappingURL=agent-XRGESF2G.js.map
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
isInteractive,
|
|
13
13
|
promptConfirm
|
|
14
14
|
} from "./chunk-JFY6GK7Y.js";
|
|
15
|
+
import "./chunk-LTDQISD7.js";
|
|
15
16
|
import {
|
|
16
17
|
createAutomation,
|
|
17
18
|
deleteAutomation,
|
|
@@ -23,8 +24,7 @@ import {
|
|
|
23
24
|
showAutomation,
|
|
24
25
|
updateAutomation,
|
|
25
26
|
updateAutomationTrigger
|
|
26
|
-
} from "./chunk-
|
|
27
|
-
import "./chunk-LTDQISD7.js";
|
|
27
|
+
} from "./chunk-5NIWPEYU.js";
|
|
28
28
|
import {
|
|
29
29
|
withErrorHandler
|
|
30
30
|
} from "./chunk-3F4RFLPX.js";
|
|
@@ -490,4 +490,4 @@ Examples:
|
|
|
490
490
|
export {
|
|
491
491
|
zeroAutomationCommand
|
|
492
492
|
};
|
|
493
|
-
//# sourceMappingURL=automation-
|
|
493
|
+
//# sourceMappingURL=automation-GDW672NH.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
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 "./chunk-LTDQISD7.js";
|
|
4
5
|
import {
|
|
5
6
|
callZeroBanking
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-LTDQISD7.js";
|
|
7
|
+
} from "./chunk-5NIWPEYU.js";
|
|
8
8
|
import {
|
|
9
9
|
withErrorHandler
|
|
10
10
|
} from "./chunk-3F4RFLPX.js";
|
|
@@ -115,4 +115,4 @@ Notes:
|
|
|
115
115
|
export {
|
|
116
116
|
zeroBankingCommand
|
|
117
117
|
};
|
|
118
|
-
//# sourceMappingURL=banking-
|
|
118
|
+
//# sourceMappingURL=banking-6ARXS2Z6.js.map
|
|
@@ -1,10 +1,11 @@
|
|
|
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 "./chunk-LTDQISD7.js";
|
|
4
5
|
import {
|
|
6
|
+
getZeroChatThread,
|
|
5
7
|
renameZeroChatThread
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-LTDQISD7.js";
|
|
8
|
+
} from "./chunk-5NIWPEYU.js";
|
|
8
9
|
import {
|
|
9
10
|
withErrorHandler
|
|
10
11
|
} from "./chunk-3F4RFLPX.js";
|
|
@@ -22,7 +23,7 @@ import {
|
|
|
22
23
|
// src/commands/zero/chat/index.ts
|
|
23
24
|
init_esm_shims();
|
|
24
25
|
|
|
25
|
-
// src/commands/zero/chat/
|
|
26
|
+
// src/commands/zero/chat/get.ts
|
|
26
27
|
init_esm_shims();
|
|
27
28
|
function getCurrentChatThreadId() {
|
|
28
29
|
return process.env.ZERO_CHAT_THREAD_ID?.trim() || void 0;
|
|
@@ -32,6 +33,46 @@ function printUsageError(message, hint) {
|
|
|
32
33
|
console.error(source_default.dim(` ${hint}`));
|
|
33
34
|
process.exit(1);
|
|
34
35
|
}
|
|
36
|
+
var getCommand = new Command().name("get").description("Show the current web chat thread").option("--json", "Print machine-readable JSON").addHelpText(
|
|
37
|
+
"after",
|
|
38
|
+
`
|
|
39
|
+
Examples:
|
|
40
|
+
Show this chat: zero chat get
|
|
41
|
+
Print JSON: zero chat get --json
|
|
42
|
+
|
|
43
|
+
Notes:
|
|
44
|
+
- Uses ZERO_CHAT_THREAD_ID from the current web chat thread
|
|
45
|
+
- Authenticates via ZERO_TOKEN (requires chat-thread:read capability)`
|
|
46
|
+
).action(
|
|
47
|
+
withErrorHandler(async (options) => {
|
|
48
|
+
const threadId = getCurrentChatThreadId();
|
|
49
|
+
if (!threadId) {
|
|
50
|
+
printUsageError(
|
|
51
|
+
"ZERO_CHAT_THREAD_ID is not set",
|
|
52
|
+
"Run this command from a Zero web chat thread."
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
const thread = await getZeroChatThread({ threadId });
|
|
56
|
+
if (options.json) {
|
|
57
|
+
console.log(JSON.stringify(thread));
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
console.log(source_default.green("\u2713 Chat thread loaded"));
|
|
61
|
+
console.log(source_default.dim(` Thread: ${thread.id}`));
|
|
62
|
+
console.log(source_default.dim(` Title: ${thread.title ?? "(untitled)"}`));
|
|
63
|
+
})
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
// src/commands/zero/chat/rename.ts
|
|
67
|
+
init_esm_shims();
|
|
68
|
+
function getCurrentChatThreadId2() {
|
|
69
|
+
return process.env.ZERO_CHAT_THREAD_ID?.trim() || void 0;
|
|
70
|
+
}
|
|
71
|
+
function printUsageError2(message, hint) {
|
|
72
|
+
console.error(source_default.red(`\u2717 ${message}`));
|
|
73
|
+
console.error(source_default.dim(` ${hint}`));
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
35
76
|
var renameCommand = new Command().name("rename").description("Rename the current web chat thread").argument("<title...>", "New chat title").option("--json", "Print machine-readable JSON").addHelpText(
|
|
36
77
|
"after",
|
|
37
78
|
`
|
|
@@ -45,14 +86,14 @@ Notes:
|
|
|
45
86
|
withErrorHandler(async (titleParts, options) => {
|
|
46
87
|
const title = titleParts.join(" ").trim();
|
|
47
88
|
if (!title) {
|
|
48
|
-
|
|
89
|
+
printUsageError2(
|
|
49
90
|
"Title is required",
|
|
50
91
|
'Run: zero chat rename "New title"'
|
|
51
92
|
);
|
|
52
93
|
}
|
|
53
|
-
const threadId =
|
|
94
|
+
const threadId = getCurrentChatThreadId2();
|
|
54
95
|
if (!threadId) {
|
|
55
|
-
|
|
96
|
+
printUsageError2(
|
|
56
97
|
"ZERO_CHAT_THREAD_ID is not set",
|
|
57
98
|
"Run this command from a Zero web chat thread."
|
|
58
99
|
);
|
|
@@ -69,13 +110,14 @@ Notes:
|
|
|
69
110
|
);
|
|
70
111
|
|
|
71
112
|
// src/commands/zero/chat/index.ts
|
|
72
|
-
var zeroChatCommand = new Command().name("chat").description("Manage the current web chat thread").addCommand(renameCommand).addHelpText(
|
|
113
|
+
var zeroChatCommand = new Command().name("chat").description("Manage the current web chat thread").addCommand(getCommand).addCommand(renameCommand).addHelpText(
|
|
73
114
|
"after",
|
|
74
115
|
`
|
|
75
116
|
Examples:
|
|
117
|
+
Show this chat: zero chat get
|
|
76
118
|
Rename this chat: zero chat rename "Launch plan"`
|
|
77
119
|
);
|
|
78
120
|
export {
|
|
79
121
|
zeroChatCommand
|
|
80
122
|
};
|
|
81
|
-
//# sourceMappingURL=chat-
|
|
123
|
+
//# sourceMappingURL=chat-DFWQBUP5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/zero/chat/index.ts","../src/commands/zero/chat/get.ts","../src/commands/zero/chat/rename.ts"],"sourcesContent":["import { Command } from \"commander\";\n\nimport { getCommand } from \"./get\";\nimport { renameCommand } from \"./rename\";\n\nexport const zeroChatCommand = new Command()\n .name(\"chat\")\n .description(\"Manage the current web chat thread\")\n .addCommand(getCommand)\n .addCommand(renameCommand)\n .addHelpText(\n \"after\",\n `\nExamples:\n Show this chat: zero chat get\n Rename this chat: zero chat rename \"Launch plan\"`,\n );\n","import chalk from \"chalk\";\nimport { Command } from \"commander\";\n\nimport { getZeroChatThread } from \"../../../lib/api\";\nimport { withErrorHandler } from \"../../../lib/command\";\n\ninterface GetOptions {\n readonly json?: boolean;\n}\n\nfunction getCurrentChatThreadId(): string | undefined {\n return process.env.ZERO_CHAT_THREAD_ID?.trim() || undefined;\n}\n\nfunction printUsageError(message: string, hint: string): never {\n console.error(chalk.red(`✗ ${message}`));\n console.error(chalk.dim(` ${hint}`));\n process.exit(1);\n}\n\nexport const getCommand = new Command()\n .name(\"get\")\n .description(\"Show the current web chat thread\")\n .option(\"--json\", \"Print machine-readable JSON\")\n .addHelpText(\n \"after\",\n `\nExamples:\n Show this chat: zero chat get\n Print JSON: zero chat get --json\n\nNotes:\n - Uses ZERO_CHAT_THREAD_ID from the current web chat thread\n - Authenticates via ZERO_TOKEN (requires chat-thread:read capability)`,\n )\n .action(\n withErrorHandler(async (options: GetOptions) => {\n const threadId = getCurrentChatThreadId();\n if (!threadId) {\n printUsageError(\n \"ZERO_CHAT_THREAD_ID is not set\",\n \"Run this command from a Zero web chat thread.\",\n );\n }\n\n const thread = await getZeroChatThread({ threadId });\n if (options.json) {\n console.log(JSON.stringify(thread));\n return;\n }\n\n console.log(chalk.green(\"✓ Chat thread loaded\"));\n console.log(chalk.dim(` Thread: ${thread.id}`));\n console.log(chalk.dim(` Title: ${thread.title ?? \"(untitled)\"}`));\n }),\n );\n","import chalk from \"chalk\";\nimport { Command } from \"commander\";\n\nimport { renameZeroChatThread } from \"../../../lib/api\";\nimport { withErrorHandler } from \"../../../lib/command\";\n\ninterface RenameOptions {\n readonly json?: boolean;\n}\n\nfunction getCurrentChatThreadId(): string | undefined {\n return process.env.ZERO_CHAT_THREAD_ID?.trim() || undefined;\n}\n\nfunction printUsageError(message: string, hint: string): never {\n console.error(chalk.red(`✗ ${message}`));\n console.error(chalk.dim(` ${hint}`));\n process.exit(1);\n}\n\nexport const renameCommand = new Command()\n .name(\"rename\")\n .description(\"Rename the current web chat thread\")\n .argument(\"<title...>\", \"New chat title\")\n .option(\"--json\", \"Print machine-readable JSON\")\n .addHelpText(\n \"after\",\n `\nExamples:\n Rename this chat: zero chat rename \"Launch plan\"\n\nNotes:\n - Uses ZERO_CHAT_THREAD_ID from the current web chat thread\n - Authenticates via ZERO_TOKEN (requires chat-thread:write capability)`,\n )\n .action(\n withErrorHandler(async (titleParts: string[], options: RenameOptions) => {\n const title = titleParts.join(\" \").trim();\n if (!title) {\n printUsageError(\n \"Title is required\",\n 'Run: zero chat rename \"New title\"',\n );\n }\n\n const threadId = getCurrentChatThreadId();\n if (!threadId) {\n printUsageError(\n \"ZERO_CHAT_THREAD_ID is not set\",\n \"Run this command from a Zero web chat thread.\",\n );\n }\n\n const result = await renameZeroChatThread({ threadId, title });\n if (options.json) {\n console.log(JSON.stringify(result));\n return;\n }\n\n console.log(chalk.green(\"✓ Chat title updated\"));\n console.log(chalk.dim(` Thread: ${result.threadId}`));\n console.log(chalk.dim(` Title: ${result.title}`));\n }),\n );\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;ACAA;AAUA,SAAS,yBAA6C;AACpD,SAAO,QAAQ,IAAI,qBAAqB,KAAK,KAAK;AACpD;AAEA,SAAS,gBAAgB,SAAiB,MAAqB;AAC7D,UAAQ,MAAM,eAAM,IAAI,UAAK,OAAO,EAAE,CAAC;AACvC,UAAQ,MAAM,eAAM,IAAI,KAAK,IAAI,EAAE,CAAC;AACpC,UAAQ,KAAK,CAAC;AAChB;AAEO,IAAM,aAAa,IAAI,QAAQ,EACnC,KAAK,KAAK,EACV,YAAY,kCAAkC,EAC9C,OAAO,UAAU,6BAA6B,EAC9C;AAAA,EACC;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQF,EACC;AAAA,EACC,iBAAiB,OAAO,YAAwB;AAC9C,UAAM,WAAW,uBAAuB;AACxC,QAAI,CAAC,UAAU;AACb;AAAA,QACE;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,UAAM,SAAS,MAAM,kBAAkB,EAAE,SAAS,CAAC;AACnD,QAAI,QAAQ,MAAM;AAChB,cAAQ,IAAI,KAAK,UAAU,MAAM,CAAC;AAClC;AAAA,IACF;AAEA,YAAQ,IAAI,eAAM,MAAM,2BAAsB,CAAC;AAC/C,YAAQ,IAAI,eAAM,IAAI,aAAa,OAAO,EAAE,EAAE,CAAC;AAC/C,YAAQ,IAAI,eAAM,IAAI,aAAa,OAAO,SAAS,YAAY,EAAE,CAAC;AAAA,EACpE,CAAC;AACH;;;ACvDF;AAUA,SAASA,0BAA6C;AACpD,SAAO,QAAQ,IAAI,qBAAqB,KAAK,KAAK;AACpD;AAEA,SAASC,iBAAgB,SAAiB,MAAqB;AAC7D,UAAQ,MAAM,eAAM,IAAI,UAAK,OAAO,EAAE,CAAC;AACvC,UAAQ,MAAM,eAAM,IAAI,KAAK,IAAI,EAAE,CAAC;AACpC,UAAQ,KAAK,CAAC;AAChB;AAEO,IAAM,gBAAgB,IAAI,QAAQ,EACtC,KAAK,QAAQ,EACb,YAAY,oCAAoC,EAChD,SAAS,cAAc,gBAAgB,EACvC,OAAO,UAAU,6BAA6B,EAC9C;AAAA,EACC;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOF,EACC;AAAA,EACC,iBAAiB,OAAO,YAAsB,YAA2B;AACvE,UAAM,QAAQ,WAAW,KAAK,GAAG,EAAE,KAAK;AACxC,QAAI,CAAC,OAAO;AACV,MAAAA;AAAA,QACE;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,UAAM,WAAWD,wBAAuB;AACxC,QAAI,CAAC,UAAU;AACb,MAAAC;AAAA,QACE;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,UAAM,SAAS,MAAM,qBAAqB,EAAE,UAAU,MAAM,CAAC;AAC7D,QAAI,QAAQ,MAAM;AAChB,cAAQ,IAAI,KAAK,UAAU,MAAM,CAAC;AAClC;AAAA,IACF;AAEA,YAAQ,IAAI,eAAM,MAAM,2BAAsB,CAAC;AAC/C,YAAQ,IAAI,eAAM,IAAI,aAAa,OAAO,QAAQ,EAAE,CAAC;AACrD,YAAQ,IAAI,eAAM,IAAI,aAAa,OAAO,KAAK,EAAE,CAAC;AAAA,EACpD,CAAC;AACH;;;AF1DK,IAAM,kBAAkB,IAAI,QAAQ,EACxC,KAAK,MAAM,EACX,YAAY,oCAAoC,EAChD,WAAW,UAAU,EACrB,WAAW,aAAa,EACxB;AAAA,EACC;AAAA,EACA;AAAA;AAAA;AAAA;AAIF;","names":["getCurrentChatThreadId","printUsageError"]}
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
CONNECTOR_TYPES,
|
|
6
6
|
CONNECTOR_TYPE_KEYS,
|
|
7
7
|
connectorAuthMethodIdSchema
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-5NIWPEYU.js";
|
|
9
9
|
import {
|
|
10
10
|
init_esm_shims
|
|
11
11
|
} from "./chunk-DIRAZ3YX.js";
|
|
@@ -181,4 +181,4 @@ export {
|
|
|
181
181
|
hasRequiredConnectorAuthMethodScopes,
|
|
182
182
|
getConnectorAuthMethodScopeDiff
|
|
183
183
|
};
|
|
184
|
-
//# sourceMappingURL=chunk-
|
|
184
|
+
//# sourceMappingURL=chunk-4HNQ562Q.js.map
|
|
@@ -4,7 +4,7 @@ const require = __createRequire(import.meta.url);
|
|
|
4
4
|
import {
|
|
5
5
|
loadFirewallPermissionMetadata,
|
|
6
6
|
resolveFirewallMetadataPolicies
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-FDEC2TSK.js";
|
|
8
8
|
import {
|
|
9
9
|
source_default
|
|
10
10
|
} from "./chunk-JUTUEPIR.js";
|
|
@@ -87,4 +87,4 @@ export {
|
|
|
87
87
|
policyIcon,
|
|
88
88
|
loadConnectorPermissionInfos
|
|
89
89
|
};
|
|
90
|
-
//# sourceMappingURL=chunk-
|
|
90
|
+
//# sourceMappingURL=chunk-4MIRUOTC.js.map
|
|
@@ -253,7 +253,7 @@ var MODEL_PROVIDER_FIREWALL_CONFIGS = {
|
|
|
253
253
|
{ name: "Authorization", valuePrefix: "Bearer" },
|
|
254
254
|
MODEL_PROVIDER_ENV_PLACEHOLDERS.OPENAI_API_KEY
|
|
255
255
|
),
|
|
256
|
-
// ChatGPT OAuth provider: multi-header injection plus auth.openai.com deny.
|
|
256
|
+
// ChatGPT OAuth provider: multi-header injection plus unknown-policy auth.openai.com deny.
|
|
257
257
|
"codex-oauth-token": {
|
|
258
258
|
name: "model-provider:codex-oauth-token",
|
|
259
259
|
apis: [
|
|
@@ -268,6 +268,7 @@ var MODEL_PROVIDER_FIREWALL_CONFIGS = {
|
|
|
268
268
|
permissions: [
|
|
269
269
|
{
|
|
270
270
|
name: "codex:api",
|
|
271
|
+
description: "Access the ChatGPT Codex backend with GET and POST requests.",
|
|
271
272
|
rules: ["GET /{path*}", "POST /{path*}"]
|
|
272
273
|
}
|
|
273
274
|
]
|
|
@@ -275,11 +276,10 @@ var MODEL_PROVIDER_FIREWALL_CONFIGS = {
|
|
|
275
276
|
{
|
|
276
277
|
base: "https://auth.openai.com",
|
|
277
278
|
auth: { headers: {} },
|
|
278
|
-
permissions: [
|
|
279
|
+
permissions: []
|
|
279
280
|
}
|
|
280
281
|
],
|
|
281
282
|
defaultPolicies: {
|
|
282
|
-
deny: ["denied"],
|
|
283
283
|
unknownPolicy: "deny"
|
|
284
284
|
},
|
|
285
285
|
placeholders: {
|
|
@@ -3651,7 +3651,8 @@ var IPV4_NON_PUBLIC_RANGES = [
|
|
|
3651
3651
|
[2130706432, 2147483647],
|
|
3652
3652
|
[2851995648, 2852061183],
|
|
3653
3653
|
[2886729728, 2887778303],
|
|
3654
|
-
[3221225472,
|
|
3654
|
+
[3221225472, 3221225480],
|
|
3655
|
+
[3221225483, 3221225727],
|
|
3655
3656
|
[3221225984, 3221226239],
|
|
3656
3657
|
[3227017984, 3227018239],
|
|
3657
3658
|
[3232235520, 3232301055],
|
|
@@ -4202,7 +4203,7 @@ function parseIpv6Address(value) {
|
|
|
4202
4203
|
}
|
|
4203
4204
|
function isPublicIpv6SpecialRegistryException(words) {
|
|
4204
4205
|
const second = words[1];
|
|
4205
|
-
if (second === 1 && words[2] === 0 && words[3] === 0 && words[4] === 0 && words[5] === 0 && words[6] === 0 &&
|
|
4206
|
+
if (second === 1 && words[2] === 0 && words[3] === 0 && words[4] === 0 && words[5] === 0 && words[6] === 0 && words[7] >= 1 && words[7] <= 3) {
|
|
4206
4207
|
return true;
|
|
4207
4208
|
}
|
|
4208
4209
|
if (second === 3) {
|
|
@@ -4231,6 +4232,9 @@ function isPublicIpv6Address(words) {
|
|
|
4231
4232
|
if (first === 8193 && second === 3512) {
|
|
4232
4233
|
return false;
|
|
4233
4234
|
}
|
|
4235
|
+
if (first === 16383 && second <= 4095) {
|
|
4236
|
+
return false;
|
|
4237
|
+
}
|
|
4234
4238
|
if (first === 8194) {
|
|
4235
4239
|
return false;
|
|
4236
4240
|
}
|
|
@@ -4242,13 +4246,22 @@ function hostPolicyIpLiteralIsPublic(hostname) {
|
|
|
4242
4246
|
return words ? isPublicIpv6Address(words) : false;
|
|
4243
4247
|
}
|
|
4244
4248
|
const ipv4Parts = parseCanonicalIpv4Address(hostname);
|
|
4245
|
-
|
|
4249
|
+
if (ipv4Parts) {
|
|
4250
|
+
return isPublicIpv4Address(ipv4Parts);
|
|
4251
|
+
}
|
|
4252
|
+
const normalizedIpv4Host = normalizeHostForIpv4LiteralSyntax(hostname);
|
|
4253
|
+
if (isIpv4LiteralLike(normalizedIpv4Host)) {
|
|
4254
|
+
return false;
|
|
4255
|
+
}
|
|
4256
|
+
return null;
|
|
4246
4257
|
}
|
|
4247
|
-
function providerOwnedHostMatches(hostname, hostPolicy) {
|
|
4248
|
-
|
|
4249
|
-
|
|
4250
|
-
|
|
4251
|
-
|
|
4258
|
+
function providerOwnedHostMatches(hostname, hostPolicy, options = {}) {
|
|
4259
|
+
if (options.allowExactHosts !== false) {
|
|
4260
|
+
const exactHosts = hostPolicy.exactHosts ?? [];
|
|
4261
|
+
for (const exactHost of exactHosts) {
|
|
4262
|
+
if (hostname === normalizeHostPolicyHostname(exactHost)) {
|
|
4263
|
+
return true;
|
|
4264
|
+
}
|
|
4252
4265
|
}
|
|
4253
4266
|
}
|
|
4254
4267
|
const suffixes = hostPolicy.suffixes ?? [];
|
|
@@ -4260,22 +4273,61 @@ function providerOwnedHostMatches(hostname, hostPolicy) {
|
|
|
4260
4273
|
}
|
|
4261
4274
|
return false;
|
|
4262
4275
|
}
|
|
4263
|
-
function
|
|
4264
|
-
|
|
4265
|
-
|
|
4276
|
+
function baseUrlAuthorityHasParams(base) {
|
|
4277
|
+
const authority = rawAuthorityFromBaseUrl(base);
|
|
4278
|
+
return authority !== null && hasBaseUrlParams(authority);
|
|
4279
|
+
}
|
|
4280
|
+
function validateHostPolicyShape(base, serviceName, hostPolicy) {
|
|
4281
|
+
const result = firewallBaseHostPolicySchema.safeParse(hostPolicy);
|
|
4282
|
+
if (result.success) return;
|
|
4283
|
+
const message = result.error.issues.map((issue) => {
|
|
4284
|
+
return issue.message;
|
|
4285
|
+
}).join("; ");
|
|
4286
|
+
throw new Error(
|
|
4287
|
+
errMsg(base, serviceName, `hostPolicy is invalid: ${message}`)
|
|
4288
|
+
);
|
|
4289
|
+
}
|
|
4290
|
+
function urlForHostPolicyValidation(base, serviceName) {
|
|
4291
|
+
if (!baseUrlAuthorityHasParams(base)) return new URL(base);
|
|
4292
|
+
const schemeEnd = base.indexOf("://");
|
|
4293
|
+
const authority = rawAuthorityFromBaseUrl(base);
|
|
4294
|
+
if (schemeEnd === -1 || authority === null) return new URL(base);
|
|
4295
|
+
const authorityParts = splitParameterizedAuthority(
|
|
4296
|
+
authority,
|
|
4297
|
+
base,
|
|
4298
|
+
serviceName
|
|
4299
|
+
);
|
|
4300
|
+
const host = splitAuthorityHostSegments(authorityParts.normalizedHost).map((segment2) => {
|
|
4301
|
+
return hostSegmentForSyntaxValidation(segment2, base, serviceName);
|
|
4302
|
+
}).join(".");
|
|
4303
|
+
return new URL(
|
|
4304
|
+
`${base.slice(0, schemeEnd)}://${host}${authorityParts.portSuffix}`
|
|
4305
|
+
);
|
|
4306
|
+
}
|
|
4307
|
+
function validateBaseUrlHostPolicy({
|
|
4308
|
+
base,
|
|
4309
|
+
diagnosticBase = base,
|
|
4266
4310
|
serviceName,
|
|
4267
4311
|
hostPolicy
|
|
4268
4312
|
}) {
|
|
4269
4313
|
if (!hostPolicy) {
|
|
4270
4314
|
return;
|
|
4271
4315
|
}
|
|
4272
|
-
|
|
4316
|
+
validateHostPolicyShape(diagnosticBase, serviceName, hostPolicy);
|
|
4317
|
+
if (hasBaseUrlVars(base)) {
|
|
4318
|
+
return;
|
|
4319
|
+
}
|
|
4320
|
+
const authorityHasParams = baseUrlAuthorityHasParams(base);
|
|
4321
|
+
const url = urlForHostPolicyValidation(base, serviceName);
|
|
4322
|
+
const rawAuthority = rawAuthorityFromBaseUrl(base);
|
|
4273
4323
|
const hostname = normalizeHostPolicyHostname(url.hostname);
|
|
4274
4324
|
if (hostPolicy.kind === "providerOwned") {
|
|
4275
|
-
if (!providerOwnedHostMatches(hostname, hostPolicy
|
|
4325
|
+
if (!providerOwnedHostMatches(hostname, hostPolicy, {
|
|
4326
|
+
allowExactHosts: !authorityHasParams
|
|
4327
|
+
})) {
|
|
4276
4328
|
throw new Error(
|
|
4277
4329
|
errMsg(
|
|
4278
|
-
|
|
4330
|
+
diagnosticBase,
|
|
4279
4331
|
serviceName,
|
|
4280
4332
|
`host policy does not allow resolved host "${hostname}"`
|
|
4281
4333
|
)
|
|
@@ -4284,7 +4336,7 @@ function validateResolvedBaseUrlHostPolicy({
|
|
|
4284
4336
|
if (!hostPolicy.allowNonDefaultPort && url.port !== "") {
|
|
4285
4337
|
throw new Error(
|
|
4286
4338
|
errMsg(
|
|
4287
|
-
|
|
4339
|
+
diagnosticBase,
|
|
4288
4340
|
serviceName,
|
|
4289
4341
|
"host policy does not allow non-default ports"
|
|
4290
4342
|
)
|
|
@@ -4292,11 +4344,12 @@ function validateResolvedBaseUrlHostPolicy({
|
|
|
4292
4344
|
}
|
|
4293
4345
|
return;
|
|
4294
4346
|
}
|
|
4295
|
-
const
|
|
4347
|
+
const publicDestinationHost = rawAuthority === null ? url.hostname : rawHostFromAuthority(rawAuthority);
|
|
4348
|
+
const publicIpLiteral = hostPolicyIpLiteralIsPublic(publicDestinationHost);
|
|
4296
4349
|
if (publicIpLiteral === false) {
|
|
4297
4350
|
throw new Error(
|
|
4298
4351
|
errMsg(
|
|
4299
|
-
|
|
4352
|
+
diagnosticBase,
|
|
4300
4353
|
serviceName,
|
|
4301
4354
|
`host policy does not allow non-public IP literal "${hostname}"`
|
|
4302
4355
|
)
|
|
@@ -4343,9 +4396,9 @@ function resolveFirewallBaseUrlTemplate({
|
|
|
4343
4396
|
serviceName,
|
|
4344
4397
|
credentialed
|
|
4345
4398
|
);
|
|
4346
|
-
|
|
4347
|
-
|
|
4348
|
-
|
|
4399
|
+
validateBaseUrlHostPolicy({
|
|
4400
|
+
base: resolved,
|
|
4401
|
+
diagnosticBase: base,
|
|
4349
4402
|
serviceName,
|
|
4350
4403
|
hostPolicy
|
|
4351
4404
|
});
|
|
@@ -4380,6 +4433,7 @@ var ALLOWED_BASE_URL_SCHEMES = /* @__PURE__ */ new Set(["http", "https"]);
|
|
|
4380
4433
|
var REQUIRED_AUTH_BASE_URL_SCHEME = "https";
|
|
4381
4434
|
var WHITESPACE_PATTERN = /\s/u;
|
|
4382
4435
|
var UNICODE_CONTROL_PATTERN = /\p{C}/u;
|
|
4436
|
+
var UNICODE_DECIMAL_NUMBER_PATTERN = /^\p{Decimal_Number}+$/u;
|
|
4383
4437
|
var UNICODE_MARK_PATTERN = /\p{M}/u;
|
|
4384
4438
|
var UNICODE_LETTER_PATTERN = /\p{L}/u;
|
|
4385
4439
|
var GREEK_COMBINING_YPOGEGRAMMENI = "\u0345";
|
|
@@ -4464,9 +4518,7 @@ function isIpv4NumberComponent(value) {
|
|
|
4464
4518
|
return isHexDigit(char);
|
|
4465
4519
|
});
|
|
4466
4520
|
}
|
|
4467
|
-
return
|
|
4468
|
-
return char >= "0" && char <= "9";
|
|
4469
|
-
});
|
|
4521
|
+
return UNICODE_DECIMAL_NUMBER_PATTERN.test(value);
|
|
4470
4522
|
}
|
|
4471
4523
|
function isIpv4LiteralLike(value) {
|
|
4472
4524
|
const parts = value.split(".");
|
|
@@ -4632,6 +4684,15 @@ function validateHostPercentEncoding(host, base, serviceName) {
|
|
|
4632
4684
|
errMsg(base, serviceName, "host must not contain commas")
|
|
4633
4685
|
);
|
|
4634
4686
|
}
|
|
4687
|
+
if (char === "*") {
|
|
4688
|
+
throw new Error(
|
|
4689
|
+
errMsg(
|
|
4690
|
+
base,
|
|
4691
|
+
serviceName,
|
|
4692
|
+
"host must not contain wildcard characters"
|
|
4693
|
+
)
|
|
4694
|
+
);
|
|
4695
|
+
}
|
|
4635
4696
|
}
|
|
4636
4697
|
i = end - 1;
|
|
4637
4698
|
}
|
|
@@ -4661,6 +4722,16 @@ function rawAuthorityFromBaseUrl(base) {
|
|
|
4661
4722
|
const authorityEnd = delimiterIndexes.length === 0 ? -1 : Math.min(...delimiterIndexes);
|
|
4662
4723
|
return authorityEnd === -1 ? rest : rest.slice(0, authorityEnd);
|
|
4663
4724
|
}
|
|
4725
|
+
function authorityHasEmptyPort(authority) {
|
|
4726
|
+
if (authority.startsWith("[")) {
|
|
4727
|
+
const closeBracket = authority.indexOf("]");
|
|
4728
|
+
if (closeBracket === -1) return false;
|
|
4729
|
+
return authority.slice(closeBracket + 1) === ":";
|
|
4730
|
+
}
|
|
4731
|
+
const portSeparator = authority.lastIndexOf(":");
|
|
4732
|
+
if (portSeparator === -1) return false;
|
|
4733
|
+
return authority.indexOf(":") === portSeparator && portSeparator === authority.length - 1;
|
|
4734
|
+
}
|
|
4664
4735
|
function validateNoUserinfo(authority, base, serviceName) {
|
|
4665
4736
|
if (authority.includes("@")) {
|
|
4666
4737
|
throw new Error(errMsg(base, serviceName, "must not contain userinfo"));
|
|
@@ -4790,6 +4861,25 @@ function splitParameterizedAuthority(authority, base, serviceName) {
|
|
|
4790
4861
|
function validateStaticHostLabels(hostname, base, serviceName) {
|
|
4791
4862
|
if (hostname.startsWith("[") && hostname.endsWith("]")) return;
|
|
4792
4863
|
validateHostHasNoEmptyLabels(hostname, base, serviceName);
|
|
4864
|
+
validateHostHasNoRawWildcards(hostname, base, serviceName);
|
|
4865
|
+
}
|
|
4866
|
+
function hostSegmentHasRawWildcard(segment2) {
|
|
4867
|
+
const parsed = parseSegment(segment2);
|
|
4868
|
+
if (parsed.kind === "literal") return parsed.value.includes("*");
|
|
4869
|
+
if (parsed.kind === "param") {
|
|
4870
|
+
return parsed.prefix.includes("*") || parsed.suffix.includes("*");
|
|
4871
|
+
}
|
|
4872
|
+
return false;
|
|
4873
|
+
}
|
|
4874
|
+
function validateHostHasNoRawWildcards(host, base, serviceName) {
|
|
4875
|
+
if (host.startsWith("[") && host.endsWith("]")) return;
|
|
4876
|
+
for (const segment2 of host.replace(HOST_DOT_EQUIVALENT_PATTERN, ".").split(".")) {
|
|
4877
|
+
if (hostSegmentHasRawWildcard(segment2)) {
|
|
4878
|
+
throw new Error(
|
|
4879
|
+
errMsg(base, serviceName, "host must not contain wildcard characters")
|
|
4880
|
+
);
|
|
4881
|
+
}
|
|
4882
|
+
}
|
|
4793
4883
|
}
|
|
4794
4884
|
function hostSegmentForSyntaxValidation(seg, base, svc) {
|
|
4795
4885
|
const parsed = parseSegment(seg);
|
|
@@ -4908,6 +4998,9 @@ function validateBaseUrlParams(base, serviceName) {
|
|
|
4908
4998
|
const slashIdx = rest.indexOf("/");
|
|
4909
4999
|
const host = slashIdx === -1 ? rest : rest.slice(0, slashIdx);
|
|
4910
5000
|
const path = slashIdx === -1 ? "" : rest.slice(slashIdx);
|
|
5001
|
+
if (authorityHasEmptyPort(host)) {
|
|
5002
|
+
throw new Error(errMsg(base, serviceName, "not a valid URL authority"));
|
|
5003
|
+
}
|
|
4911
5004
|
validateNoUserinfo(host, base, serviceName);
|
|
4912
5005
|
validateHostPercentEncoding(host, base, serviceName);
|
|
4913
5006
|
const authority = splitParameterizedAuthority(host, base, serviceName);
|
|
@@ -4921,6 +5014,7 @@ function validateBaseUrlParams(base, serviceName) {
|
|
|
4921
5014
|
base,
|
|
4922
5015
|
serviceName
|
|
4923
5016
|
);
|
|
5017
|
+
validateHostHasNoRawWildcards(authority.normalizedHost, base, serviceName);
|
|
4924
5018
|
validateParameterizedHostUrlSyntax(
|
|
4925
5019
|
base.slice(0, schemeEnd),
|
|
4926
5020
|
authority,
|
|
@@ -4992,6 +5086,11 @@ function validateBaseUrl(base, serviceName) {
|
|
|
4992
5086
|
`Invalid base URL "${base}" in firewall "${serviceName}": not a valid URL authority`
|
|
4993
5087
|
);
|
|
4994
5088
|
}
|
|
5089
|
+
if (authorityHasEmptyPort(authority)) {
|
|
5090
|
+
throw new Error(
|
|
5091
|
+
`Invalid base URL "${base}" in firewall "${serviceName}": not a valid URL authority`
|
|
5092
|
+
);
|
|
5093
|
+
}
|
|
4995
5094
|
validateNoUserinfo(authority, base, serviceName);
|
|
4996
5095
|
validateHostPercentEncoding(authority, base, serviceName);
|
|
4997
5096
|
validateHostHasCanonicalIpv4Syntax(authority, base, serviceName);
|
|
@@ -6280,6 +6379,12 @@ var chatThreadDetailSchema = external_exports.object({
|
|
|
6280
6379
|
activeRunIds: external_exports.array(external_exports.string()),
|
|
6281
6380
|
createdAt: external_exports.string(),
|
|
6282
6381
|
updatedAt: external_exports.string(),
|
|
6382
|
+
/**
|
|
6383
|
+
* ISO timestamp at which the user pinned this thread. Exposed on detail so
|
|
6384
|
+
* the current thread can be placed in the correct sidebar segment even when
|
|
6385
|
+
* it is omitted from the paged list response.
|
|
6386
|
+
*/
|
|
6387
|
+
pinnedAt: external_exports.string().nullable().optional(),
|
|
6283
6388
|
draftContent: external_exports.string().nullable().optional(),
|
|
6284
6389
|
draftAttachments: external_exports.array(persistedAttachmentSchema).nullable().optional(),
|
|
6285
6390
|
computerUseHostId: external_exports.string().uuid().nullable().optional(),
|
|
@@ -6299,6 +6404,10 @@ var chatThreadDetailSchema = external_exports.object({
|
|
|
6299
6404
|
*/
|
|
6300
6405
|
renamedAt: external_exports.string().nullable().optional()
|
|
6301
6406
|
});
|
|
6407
|
+
var chatThreadMetadataSchema = external_exports.object({
|
|
6408
|
+
id: external_exports.string(),
|
|
6409
|
+
title: external_exports.string().nullable()
|
|
6410
|
+
});
|
|
6302
6411
|
var modelSelectionRequestSchema = external_exports.object({
|
|
6303
6412
|
modelProviderId: external_exports.string().uuid(),
|
|
6304
6413
|
selectedModel: external_exports.string().min(1)
|
|
@@ -6343,7 +6452,12 @@ var chatThreadsContract = c15.router({
|
|
|
6343
6452
|
* `pinned` is empty (pinned threads are only included on the first
|
|
6344
6453
|
* page) and `threads` continues from the position after the cursor.
|
|
6345
6454
|
*/
|
|
6346
|
-
cursor: external_exports.string().optional()
|
|
6455
|
+
cursor: external_exports.string().optional(),
|
|
6456
|
+
/**
|
|
6457
|
+
* Optional server-side list filter. `unread` returns only threads whose
|
|
6458
|
+
* latest visible message is newer than the caller's read cursor.
|
|
6459
|
+
*/
|
|
6460
|
+
filter: external_exports.enum(["unread"]).optional()
|
|
6347
6461
|
}),
|
|
6348
6462
|
responses: {
|
|
6349
6463
|
200: external_exports.object({
|
|
@@ -6546,6 +6660,22 @@ var chatThreadRenameContract = c15.router({
|
|
|
6546
6660
|
summary: "Rename a chat thread (suppresses automated title generation)"
|
|
6547
6661
|
}
|
|
6548
6662
|
});
|
|
6663
|
+
var chatThreadMetadataContract = c15.router({
|
|
6664
|
+
get: {
|
|
6665
|
+
method: "GET",
|
|
6666
|
+
path: "/api/zero/chat-threads/:id/metadata",
|
|
6667
|
+
headers: authHeadersSchema,
|
|
6668
|
+
pathParams: chatThreadIdPathParamsSchema,
|
|
6669
|
+
responses: {
|
|
6670
|
+
200: chatThreadMetadataSchema,
|
|
6671
|
+
400: apiErrorSchema,
|
|
6672
|
+
401: apiErrorSchema,
|
|
6673
|
+
403: apiErrorSchema,
|
|
6674
|
+
404: apiErrorSchema
|
|
6675
|
+
},
|
|
6676
|
+
summary: "Get chat thread metadata"
|
|
6677
|
+
}
|
|
6678
|
+
});
|
|
6549
6679
|
var chatThreadModelSelectionContract = c15.router({
|
|
6550
6680
|
update: {
|
|
6551
6681
|
method: "POST",
|
|
@@ -17238,6 +17368,45 @@ var perplexity = {
|
|
|
17238
17368
|
}
|
|
17239
17369
|
};
|
|
17240
17370
|
|
|
17371
|
+
// ../../packages/connectors/src/connectors/pexels.ts
|
|
17372
|
+
init_esm_shims();
|
|
17373
|
+
var pexels = {
|
|
17374
|
+
pexels: {
|
|
17375
|
+
label: "Pexels",
|
|
17376
|
+
category: "marketing-content-growth",
|
|
17377
|
+
helpText: "Connect Pexels to search, download, and insert stock photos and videos into artifacts. Keep Pexels and photographer attribution with generated artifacts, and avoid bulk downloading or rebuilding a stock photo or wallpaper library.",
|
|
17378
|
+
tags: ["stock-photos", "stock-videos", "images", "media"],
|
|
17379
|
+
authMethods: {
|
|
17380
|
+
"api-token": {
|
|
17381
|
+
label: "API Key",
|
|
17382
|
+
featureFlag: "pexelsConnector" /* PexelsConnector */,
|
|
17383
|
+
helpText: "1. Sign in to [Pexels](https://www.pexels.com)\n2. Open the [Pexels API page](https://www.pexels.com/api/) and request or copy your API key\n3. Paste the key here\n\nvm0 stores the key as a secret and automatically attaches it when calling the Pexels API. Pexels asks API users to include a prominent Pexels link and, where possible, photographer credit when displaying content.",
|
|
17384
|
+
storage: {
|
|
17385
|
+
secrets: ["PEXELS_API_KEY"],
|
|
17386
|
+
variables: []
|
|
17387
|
+
},
|
|
17388
|
+
grant: {
|
|
17389
|
+
kind: "manual",
|
|
17390
|
+
fields: {
|
|
17391
|
+
PEXELS_API_KEY: {
|
|
17392
|
+
label: "API Key",
|
|
17393
|
+
required: true,
|
|
17394
|
+
placeholder: "your-pexels-api-key"
|
|
17395
|
+
}
|
|
17396
|
+
}
|
|
17397
|
+
},
|
|
17398
|
+
access: {
|
|
17399
|
+
kind: "static",
|
|
17400
|
+
envBindings: {
|
|
17401
|
+
PEXELS_API_KEY: "$secrets.PEXELS_API_KEY"
|
|
17402
|
+
}
|
|
17403
|
+
},
|
|
17404
|
+
revoke: { kind: "none" }
|
|
17405
|
+
}
|
|
17406
|
+
}
|
|
17407
|
+
}
|
|
17408
|
+
};
|
|
17409
|
+
|
|
17241
17410
|
// ../../packages/connectors/src/connectors/pika.ts
|
|
17242
17411
|
init_esm_shims();
|
|
17243
17412
|
var pika = {
|
|
@@ -21020,6 +21189,7 @@ var CONNECTOR_TYPES_DEF = defineConnectors({
|
|
|
21020
21189
|
...pdforge,
|
|
21021
21190
|
...peopleDataLabs,
|
|
21022
21191
|
...perplexity,
|
|
21192
|
+
...pexels,
|
|
21023
21193
|
...pika,
|
|
21024
21194
|
...pinecone,
|
|
21025
21195
|
...pipedream,
|
|
@@ -23228,6 +23398,17 @@ async function renameZeroChatThread(options) {
|
|
|
23228
23398
|
}
|
|
23229
23399
|
handleError(result, "Failed to rename chat thread");
|
|
23230
23400
|
}
|
|
23401
|
+
async function getZeroChatThread(options) {
|
|
23402
|
+
const config = await getClientConfig();
|
|
23403
|
+
const client = initClient(chatThreadMetadataContract, config);
|
|
23404
|
+
const result = await client.get({
|
|
23405
|
+
params: { id: options.threadId }
|
|
23406
|
+
});
|
|
23407
|
+
if (result.status === 200) {
|
|
23408
|
+
return result.body;
|
|
23409
|
+
}
|
|
23410
|
+
handleError(result, "Failed to get chat thread");
|
|
23411
|
+
}
|
|
23231
23412
|
|
|
23232
23413
|
// src/lib/api/domains/zero-developer-support.ts
|
|
23233
23414
|
init_esm_shims();
|
|
@@ -27443,6 +27624,7 @@ export {
|
|
|
27443
27624
|
deleteZeroOrgModelProvider,
|
|
27444
27625
|
listZeroModelPolicies,
|
|
27445
27626
|
hostedArtifactKindSchema,
|
|
27627
|
+
persistedAttachmentSchema,
|
|
27446
27628
|
zeroAgentVisibilitySchema,
|
|
27447
27629
|
createZeroAgent,
|
|
27448
27630
|
listZeroAgents,
|
|
@@ -27518,6 +27700,7 @@ export {
|
|
|
27518
27700
|
searchZeroLogs,
|
|
27519
27701
|
searchZeroChat,
|
|
27520
27702
|
renameZeroChatThread,
|
|
27703
|
+
getZeroChatThread,
|
|
27521
27704
|
getSystemLog,
|
|
27522
27705
|
getMetrics,
|
|
27523
27706
|
getAgentEvents,
|
|
@@ -27536,4 +27719,4 @@ export {
|
|
|
27536
27719
|
completeHostedSite,
|
|
27537
27720
|
getHostedSiteFiles
|
|
27538
27721
|
};
|
|
27539
|
-
//# sourceMappingURL=chunk-
|
|
27722
|
+
//# sourceMappingURL=chunk-5NIWPEYU.js.map
|