@rudderhq/server 0.2.10-canary.9 → 0.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bootstrap/plugin-host-runtime.d.ts +38 -38
- package/dist/bundled-plugins/plugin-linear/dist/worker.js +311 -159
- package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +2 -2
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +8 -0
- package/dist/config.js.map +1 -1
- package/dist/home-paths.d.ts +23 -4
- package/dist/home-paths.d.ts.map +1 -1
- package/dist/home-paths.js +46 -11
- package/dist/home-paths.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/routes/access.helpers.d.ts +8 -8
- package/dist/routes/agents.d.ts.map +1 -1
- package/dist/routes/agents.js +15 -1
- package/dist/routes/agents.js.map +1 -1
- package/dist/routes/approvals.d.ts.map +1 -1
- package/dist/routes/approvals.js +34 -2
- package/dist/routes/approvals.js.map +1 -1
- package/dist/routes/chat-issue-assignment-wakeup.d.ts +28 -0
- package/dist/routes/chat-issue-assignment-wakeup.d.ts.map +1 -0
- package/dist/routes/chat-issue-assignment-wakeup.js +54 -0
- package/dist/routes/chat-issue-assignment-wakeup.js.map +1 -0
- package/dist/routes/chats.d.ts.map +1 -1
- package/dist/routes/chats.js +24 -6
- package/dist/routes/chats.js.map +1 -1
- package/dist/routes/chats.stream-routes.d.ts.map +1 -1
- package/dist/routes/chats.stream-routes.js +14 -3
- package/dist/routes/chats.stream-routes.js.map +1 -1
- package/dist/routes/issues.d.ts.map +1 -1
- package/dist/routes/issues.js +3 -0
- package/dist/routes/issues.js.map +1 -1
- package/dist/routes/issues.mutations.d.ts.map +1 -1
- package/dist/routes/issues.mutations.js +89 -32
- package/dist/routes/issues.mutations.js.map +1 -1
- package/dist/routes/orgs.d.ts.map +1 -1
- package/dist/routes/orgs.js +302 -3
- package/dist/routes/orgs.js.map +1 -1
- package/dist/routes/plugin-ui-static.d.ts +2 -1
- package/dist/routes/plugin-ui-static.d.ts.map +1 -1
- package/dist/routes/plugin-ui-static.js +8 -42
- package/dist/routes/plugin-ui-static.js.map +1 -1
- package/dist/routes/projects.d.ts.map +1 -1
- package/dist/routes/projects.js +6 -0
- package/dist/routes/projects.js.map +1 -1
- package/dist/services/access.d.ts +21 -21
- package/dist/services/activity.d.ts +19 -19
- package/dist/services/agent-run-context.d.ts +0 -2
- package/dist/services/agent-run-context.d.ts.map +1 -1
- package/dist/services/agent-run-context.js +6 -3
- package/dist/services/agent-run-context.js.map +1 -1
- package/dist/services/agents.d.ts +171 -171
- package/dist/services/approvals.d.ts +29 -29
- package/dist/services/assets.d.ts +8 -8
- package/dist/services/automation-chat-output.d.ts +3 -3
- package/dist/services/automations.d.ts +40 -32
- package/dist/services/automations.d.ts.map +1 -1
- package/dist/services/automations.js +467 -0
- package/dist/services/automations.js.map +1 -1
- package/dist/services/automations.scheduler.d.ts.map +1 -1
- package/dist/services/automations.scheduler.js +5 -3
- package/dist/services/automations.scheduler.js.map +1 -1
- package/dist/services/board-auth.d.ts +32 -32
- package/dist/services/calendar.d.ts +26 -26
- package/dist/services/chat-assistant.d.ts.map +1 -1
- package/dist/services/chat-assistant.helpers.d.ts +3 -2
- package/dist/services/chat-assistant.helpers.d.ts.map +1 -1
- package/dist/services/chat-assistant.helpers.js +3 -2
- package/dist/services/chat-assistant.helpers.js.map +1 -1
- package/dist/services/chat-assistant.js +11 -1
- package/dist/services/chat-assistant.js.map +1 -1
- package/dist/services/chat-generation-locks.d.ts +1 -0
- package/dist/services/chat-generation-locks.d.ts.map +1 -1
- package/dist/services/chat-generation-locks.js +10 -0
- package/dist/services/chat-generation-locks.js.map +1 -1
- package/dist/services/chats.d.ts +185 -161
- package/dist/services/chats.d.ts.map +1 -1
- package/dist/services/chats.helpers.d.ts +4 -4
- package/dist/services/chats.js +27 -0
- package/dist/services/chats.js.map +1 -1
- package/dist/services/costs.d.ts +8 -8
- package/dist/services/documents.d.ts +126 -0
- package/dist/services/documents.d.ts.map +1 -1
- package/dist/services/documents.js +323 -1
- package/dist/services/documents.js.map +1 -1
- package/dist/services/finance.d.ts +18 -18
- package/dist/services/goals.d.ts +30 -30
- package/dist/services/issue-approvals.d.ts +4 -4
- package/dist/services/issue-goal-fallback.d.ts.map +1 -1
- package/dist/services/issue-goal-fallback.js +9 -3
- package/dist/services/issue-goal-fallback.js.map +1 -1
- package/dist/services/issue-review-wakeup.d.ts +3 -3
- package/dist/services/issues.comments-attachments.d.ts +6 -6
- package/dist/services/issues.d.ts +26 -26
- package/dist/services/issues.d.ts.map +1 -1
- package/dist/services/issues.js +20 -0
- package/dist/services/issues.js.map +1 -1
- package/dist/services/knowledge-portability/organization-portability.core.d.ts +1 -1
- package/dist/services/knowledge-portability/organization-skills.catalog.d.ts +1 -1
- package/dist/services/messenger.d.ts +3 -2
- package/dist/services/messenger.d.ts.map +1 -1
- package/dist/services/messenger.js +98 -26
- package/dist/services/messenger.js.map +1 -1
- package/dist/services/organization-workspace-browser.d.ts +10 -1
- package/dist/services/organization-workspace-browser.d.ts.map +1 -1
- package/dist/services/organization-workspace-browser.js +286 -8
- package/dist/services/organization-workspace-browser.js.map +1 -1
- package/dist/services/orgs.d.ts +9 -9
- package/dist/services/plugin-loader.worker-paths.d.ts +5 -1
- package/dist/services/plugin-loader.worker-paths.d.ts.map +1 -1
- package/dist/services/plugin-loader.worker-paths.js +27 -24
- package/dist/services/plugin-loader.worker-paths.js.map +1 -1
- package/dist/services/plugin-registry.d.ts +137 -137
- package/dist/services/projects.d.ts +8 -8
- package/dist/services/projects.d.ts.map +1 -1
- package/dist/services/projects.js +52 -6
- package/dist/services/projects.js.map +1 -1
- package/dist/services/resource-catalog.d.ts.map +1 -1
- package/dist/services/resource-catalog.js +93 -27
- package/dist/services/resource-catalog.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.d.ts +40 -33
- package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.execute.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.execute.js +19 -0
- package/dist/services/runtime-kernel/heartbeat.execute.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.js +88 -1
- package/dist/services/runtime-kernel/heartbeat.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.sessions.d.ts +1 -1
- package/dist/services/secrets.d.ts +25 -25
- package/dist/services/sidebar-badges.d.ts +0 -3
- package/dist/services/sidebar-badges.d.ts.map +1 -1
- package/dist/services/sidebar-badges.js +4 -54
- package/dist/services/sidebar-badges.js.map +1 -1
- package/dist/services/workspace-runtime.services.d.ts +13 -13
- package/package.json +13 -13
- package/resources/bundled-skills/para-memory-files/SKILL.md +4 -4
- package/resources/bundled-skills/rudder/SKILL.md +30 -13
- package/resources/bundled-skills/rudder/references/api-reference.md +16 -0
- package/resources/bundled-skills/rudder/references/cli-reference.md +9 -1
- package/resources/bundled-skills/rudder/references/organization-skills.md +1 -1
- package/skills/para-memory-files/SKILL.md +4 -4
- package/skills/rudder/SKILL.md +30 -13
- package/skills/rudder/references/api-reference.md +16 -0
- package/skills/rudder/references/cli-reference.md +9 -1
- package/skills/rudder/references/organization-skills.md +1 -1
- package/ui-dist/assets/_basePickBy-CSCT5uM-.js +1 -0
- package/ui-dist/assets/_baseUniq-6uzN-zvk.js +1 -0
- package/ui-dist/assets/{arc-DJicYGuR.js → arc-BwwnVVnu.js} +1 -1
- package/ui-dist/assets/{architectureDiagram-2XIMDMQ5-CNAjB0bS.js → architectureDiagram-2XIMDMQ5-DiP6mFDS.js} +1 -1
- package/ui-dist/assets/{blockDiagram-WCTKOSBZ-Cb2SN0O8.js → blockDiagram-WCTKOSBZ-DS7tlCEj.js} +1 -1
- package/ui-dist/assets/{c4Diagram-IC4MRINW-BUwidppn.js → c4Diagram-IC4MRINW-B2RNViSE.js} +1 -1
- package/ui-dist/assets/channel-D5xRBEMp.js +1 -0
- package/ui-dist/assets/{chunk-4BX2VUAB-DRq9D-c0.js → chunk-4BX2VUAB-Cg9RRkJ9.js} +1 -1
- package/ui-dist/assets/{chunk-55IACEB6-BU7fhJ5E.js → chunk-55IACEB6-C3OAh-Nm.js} +1 -1
- package/ui-dist/assets/{chunk-FMBD7UC4-B5KY7bkB.js → chunk-FMBD7UC4-BQ2yCpRL.js} +1 -1
- package/ui-dist/assets/{chunk-JSJVCQXG-CcU3d2u7.js → chunk-JSJVCQXG-D6lFBo3f.js} +1 -1
- package/ui-dist/assets/{chunk-KX2RTZJC-HQV7Thyw.js → chunk-KX2RTZJC-CUaDFynR.js} +1 -1
- package/ui-dist/assets/{chunk-NQ4KR5QH-CFZQUHUm.js → chunk-NQ4KR5QH-DOffnVy8.js} +1 -1
- package/ui-dist/assets/{chunk-QZHKN3VN-qWkcATvx.js → chunk-QZHKN3VN-C7Jx3r9m.js} +1 -1
- package/ui-dist/assets/{chunk-WL4C6EOR-rWD9bJYe.js → chunk-WL4C6EOR-DeATO8Iz.js} +1 -1
- package/ui-dist/assets/classDiagram-VBA2DB6C-CX2-VvTG.js +1 -0
- package/ui-dist/assets/classDiagram-v2-RAHNMMFH-CX2-VvTG.js +1 -0
- package/ui-dist/assets/clone-CAhALgsh.js +1 -0
- package/ui-dist/assets/{cose-bilkent-S5V4N54A-CsSjm2Co.js → cose-bilkent-S5V4N54A-x_82-QHb.js} +1 -1
- package/ui-dist/assets/{dagre-KLK3FWXG-mcPh1s1q.js → dagre-KLK3FWXG-B3xaAjXo.js} +1 -1
- package/ui-dist/assets/{diagram-E7M64L7V-BcWqAyuY.js → diagram-E7M64L7V-B7f9YQXK.js} +1 -1
- package/ui-dist/assets/{diagram-IFDJBPK2-B-5OERYu.js → diagram-IFDJBPK2-BdIywx8n.js} +1 -1
- package/ui-dist/assets/{diagram-P4PSJMXO-BPCuOOZ2.js → diagram-P4PSJMXO-B6Jz8GYG.js} +1 -1
- package/ui-dist/assets/{erDiagram-INFDFZHY-Cvau-JqB.js → erDiagram-INFDFZHY-CD_uFaUj.js} +1 -1
- package/ui-dist/assets/{flowDiagram-PKNHOUZH-BmTY4iN1.js → flowDiagram-PKNHOUZH-Btsi4bIC.js} +1 -1
- package/ui-dist/assets/{ganttDiagram-A5KZAMGK-Rx3_ciMY.js → ganttDiagram-A5KZAMGK-D9607_n7.js} +1 -1
- package/ui-dist/assets/{gitGraphDiagram-K3NZZRJ6-BSRwIrhI.js → gitGraphDiagram-K3NZZRJ6-DuJZbawi.js} +1 -1
- package/ui-dist/assets/{graph-C8ZACe2j.js → graph-CzzcMZjZ.js} +1 -1
- package/ui-dist/assets/{index-BZKsiCwA.js → index-6-mBOW4L.js} +1 -1
- package/ui-dist/assets/{index-z1an-zlr.js → index-BElMoOcl.js} +1 -1
- package/ui-dist/assets/{index-DP8nG4Ma.js → index-BHTArDmw.js} +1 -1
- package/ui-dist/assets/{index-jdhuEGPi.js → index-B_mXuEqJ.js} +1 -1
- package/ui-dist/assets/{index-B_wfe9Sq.js → index-Be1rLxo8.js} +1 -1
- package/ui-dist/assets/{index-B-SBJR-6.js → index-BlzWsRRW.js} +1 -1
- package/ui-dist/assets/{index-B8VxXSbS.js → index-C7eD9kLO.js} +1 -1
- package/ui-dist/assets/{index-ChHRnQjN.js → index-CB2kOtYK.js} +1 -1
- package/ui-dist/assets/{index-BWBQ0gJ1.js → index-CF3c2_3B.js} +1 -1
- package/ui-dist/assets/{index-BBtSnB9K.js → index-CIKUBddL.js} +1 -1
- package/ui-dist/assets/{index-DgPWaICy.js → index-CV51eG9V.js} +1 -1
- package/ui-dist/assets/index-Cl8ezghO.js +1575 -0
- package/ui-dist/assets/{index-B1jERrQP.js → index-CnKhnjg4.js} +1 -1
- package/ui-dist/assets/{index-oZ4uufqd.js → index-CxEId4kL.js} +1 -1
- package/ui-dist/assets/{index-Bc2KXsRy.js → index-CzoiRvOV.js} +1 -1
- package/ui-dist/assets/{index-BMaTBxHN.js → index-DFXiVVb9.js} +1 -1
- package/ui-dist/assets/{index-BZSbMc-V.js → index-DIM_TiMc.js} +1 -1
- package/ui-dist/assets/{index-B1lP_8Qm.js → index-DNHf2t08.js} +1 -1
- package/ui-dist/assets/{index-CIs6NOKk.js → index-DUi_nJkz.js} +1 -1
- package/ui-dist/assets/{index-CBTxOaVA.js → index-DZhxjaRV.js} +1 -1
- package/ui-dist/assets/{index-CCpTBOz2.js → index-De1w_DPK.js} +1 -1
- package/ui-dist/assets/index-DqSQXuKR.css +1 -0
- package/ui-dist/assets/{index-Av1vlrq_.js → index-DwK538a4.js} +1 -1
- package/ui-dist/assets/{index-jXMbbWhe.js → index-PLtyPrYV.js} +1 -1
- package/ui-dist/assets/{infoDiagram-LFFYTUFH-ZZkrWlCG.js → infoDiagram-LFFYTUFH-DiGITl2v.js} +1 -1
- package/ui-dist/assets/{ishikawaDiagram-PHBUUO56-C2kVJE3b.js → ishikawaDiagram-PHBUUO56-B0Wcc98L.js} +1 -1
- package/ui-dist/assets/{journeyDiagram-4ABVD52K-CUD8BfGC.js → journeyDiagram-4ABVD52K-CcwSx0Z4.js} +1 -1
- package/ui-dist/assets/{kanban-definition-K7BYSVSG-BSWhRDpQ.js → kanban-definition-K7BYSVSG-DeFt4kJ_.js} +1 -1
- package/ui-dist/assets/layout-BrGj-OnF.js +1 -0
- package/ui-dist/assets/{linear-B-yRz7s6.js → linear-DuFtuF_z.js} +1 -1
- package/ui-dist/assets/{mermaid.core-C-baF8bZ.js → mermaid.core-2Rx3AQaR.js} +57 -57
- package/ui-dist/assets/{mindmap-definition-YRQLILUH--gAgZZcl.js → mindmap-definition-YRQLILUH-B1Ng106P.js} +1 -1
- package/ui-dist/assets/{pieDiagram-SKSYHLDU-D98SS0Px.js → pieDiagram-SKSYHLDU-CHZc9iJf.js} +1 -1
- package/ui-dist/assets/{quadrantDiagram-337W2JSQ-BmE8vYkT.js → quadrantDiagram-337W2JSQ-vPyVOekT.js} +1 -1
- package/ui-dist/assets/{requirementDiagram-Z7DCOOCP-CBQB1rD1.js → requirementDiagram-Z7DCOOCP-OigqxZdS.js} +1 -1
- package/ui-dist/assets/{sankeyDiagram-WA2Y5GQK-B3YGzVwa.js → sankeyDiagram-WA2Y5GQK-BlqJUkbX.js} +1 -1
- package/ui-dist/assets/{sequenceDiagram-2WXFIKYE-B2MI2OVq.js → sequenceDiagram-2WXFIKYE-Dz0GHXK-.js} +1 -1
- package/ui-dist/assets/{stateDiagram-RAJIS63D-CnS8Uc6U.js → stateDiagram-RAJIS63D-BDp0frpT.js} +1 -1
- package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-5yU2N9vK.js +1 -0
- package/ui-dist/assets/{timeline-definition-YZTLITO2-BSfReMsG.js → timeline-definition-YZTLITO2-Dluuvy7L.js} +1 -1
- package/ui-dist/assets/{treemap-KZPCXAKY-C4agj3NM.js → treemap-KZPCXAKY-CPpWyCyI.js} +4 -4
- package/ui-dist/assets/{vennDiagram-LZ73GAT5-tQ-QmgUr.js → vennDiagram-LZ73GAT5-CROeIBwe.js} +1 -1
- package/ui-dist/assets/{xychartDiagram-JWTSCODW-BcGHupvs.js → xychartDiagram-JWTSCODW-C3xQ6szH.js} +1 -1
- package/ui-dist/brands/claude-logo.svg +1 -0
- package/ui-dist/brands/cursor-logo.svg +1 -0
- package/ui-dist/brands/google-gemini-logo.svg +1 -0
- package/ui-dist/brands/openai-logo.svg +1 -0
- package/ui-dist/brands/pi-logo.svg +28 -0
- package/ui-dist/index.html +2 -2
- package/ui-dist/assets/_basePickBy-DHmAX-Ut.js +0 -1
- package/ui-dist/assets/_baseUniq-DpYhcode.js +0 -1
- package/ui-dist/assets/channel-L2R-jds5.js +0 -1
- package/ui-dist/assets/classDiagram-VBA2DB6C-CGKCZZyI.js +0 -1
- package/ui-dist/assets/classDiagram-v2-RAHNMMFH-CGKCZZyI.js +0 -1
- package/ui-dist/assets/clone-DxezikrM.js +0 -1
- package/ui-dist/assets/index-DB4yE_BH.js +0 -1537
- package/ui-dist/assets/index-bF3vOu6G.css +0 -1
- package/ui-dist/assets/layout-ChF-xA6S.js +0 -1
- package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-DU4TN-D0.js +0 -1
|
@@ -4,17 +4,17 @@ var __export = (target, all) => {
|
|
|
4
4
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
5
5
|
};
|
|
6
6
|
|
|
7
|
-
// ../../sdk/
|
|
7
|
+
// ../../sdk/src/define-plugin.ts
|
|
8
8
|
function definePlugin(definition) {
|
|
9
9
|
return Object.freeze({ definition });
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
// ../../sdk/
|
|
12
|
+
// ../../sdk/src/worker-rpc-host.ts
|
|
13
13
|
import path from "node:path";
|
|
14
14
|
import { createInterface } from "node:readline";
|
|
15
15
|
import { fileURLToPath } from "node:url";
|
|
16
16
|
|
|
17
|
-
// ../../sdk/
|
|
17
|
+
// ../../sdk/src/protocol.ts
|
|
18
18
|
var JSONRPC_VERSION = "2.0";
|
|
19
19
|
var JSONRPC_ERROR_CODES = {
|
|
20
20
|
/** Invalid JSON was received by the server. */
|
|
@@ -78,20 +78,17 @@ function createNotification(method, params) {
|
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
80
|
function isJsonRpcRequest(value) {
|
|
81
|
-
if (typeof value !== "object" || value === null)
|
|
82
|
-
return false;
|
|
81
|
+
if (typeof value !== "object" || value === null) return false;
|
|
83
82
|
const obj = value;
|
|
84
83
|
return obj.jsonrpc === JSONRPC_VERSION && typeof obj.method === "string" && "id" in obj && obj.id !== void 0 && obj.id !== null;
|
|
85
84
|
}
|
|
86
85
|
function isJsonRpcNotification(value) {
|
|
87
|
-
if (typeof value !== "object" || value === null)
|
|
88
|
-
return false;
|
|
86
|
+
if (typeof value !== "object" || value === null) return false;
|
|
89
87
|
const obj = value;
|
|
90
88
|
return obj.jsonrpc === JSONRPC_VERSION && typeof obj.method === "string" && !("id" in obj);
|
|
91
89
|
}
|
|
92
90
|
function isJsonRpcResponse(value) {
|
|
93
|
-
if (typeof value !== "object" || value === null)
|
|
94
|
-
return false;
|
|
91
|
+
if (typeof value !== "object" || value === null) return false;
|
|
95
92
|
const obj = value;
|
|
96
93
|
return obj.jsonrpc === JSONRPC_VERSION && "id" in obj && ("result" in obj || "error" in obj);
|
|
97
94
|
}
|
|
@@ -121,7 +118,9 @@ function parseMessage(line) {
|
|
|
121
118
|
}
|
|
122
119
|
const obj = parsed;
|
|
123
120
|
if (obj.jsonrpc !== JSONRPC_VERSION) {
|
|
124
|
-
throw new JsonRpcParseError(
|
|
121
|
+
throw new JsonRpcParseError(
|
|
122
|
+
`Invalid or missing jsonrpc version (expected "${JSONRPC_VERSION}", got ${JSON.stringify(obj.jsonrpc)})`
|
|
123
|
+
);
|
|
125
124
|
}
|
|
126
125
|
return parsed;
|
|
127
126
|
}
|
|
@@ -144,7 +143,7 @@ var JsonRpcCallError = class extends Error {
|
|
|
144
143
|
}
|
|
145
144
|
};
|
|
146
145
|
|
|
147
|
-
// ../../sdk/
|
|
146
|
+
// ../../sdk/src/worker-rpc-host.ts
|
|
148
147
|
var DEFAULT_RPC_TIMEOUT_MS = 3e4;
|
|
149
148
|
function runWorker(plugin2, moduleUrl, options) {
|
|
150
149
|
if (options?.stdin != null && options?.stdout != null) {
|
|
@@ -155,8 +154,7 @@ function runWorker(plugin2, moduleUrl, options) {
|
|
|
155
154
|
});
|
|
156
155
|
}
|
|
157
156
|
const entry = process.argv[1];
|
|
158
|
-
if (typeof entry !== "string")
|
|
159
|
-
return;
|
|
157
|
+
if (typeof entry !== "string") return;
|
|
160
158
|
const thisFile = path.resolve(fileURLToPath(moduleUrl));
|
|
161
159
|
const entryPath = path.resolve(entry);
|
|
162
160
|
if (thisFile === entryPath) {
|
|
@@ -183,8 +181,7 @@ function startWorkerRpcHost(options) {
|
|
|
183
181
|
let nextOutboundId = 1;
|
|
184
182
|
const MAX_OUTBOUND_ID = Number.MAX_SAFE_INTEGER - 1;
|
|
185
183
|
function sendMessage(message) {
|
|
186
|
-
if (!running)
|
|
187
|
-
return;
|
|
184
|
+
if (!running) return;
|
|
188
185
|
const serialized = serializeMessage(message);
|
|
189
186
|
stdoutStream.write(serialized);
|
|
190
187
|
}
|
|
@@ -201,18 +198,20 @@ function startWorkerRpcHost(options) {
|
|
|
201
198
|
const timeout = timeoutMs ?? rpcTimeoutMs;
|
|
202
199
|
let settled = false;
|
|
203
200
|
const settle = (fn, value) => {
|
|
204
|
-
if (settled)
|
|
205
|
-
return;
|
|
201
|
+
if (settled) return;
|
|
206
202
|
settled = true;
|
|
207
203
|
clearTimeout(timer);
|
|
208
204
|
pendingRequests.delete(id);
|
|
209
205
|
fn(value);
|
|
210
206
|
};
|
|
211
207
|
const timer = setTimeout(() => {
|
|
212
|
-
settle(
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
208
|
+
settle(
|
|
209
|
+
reject,
|
|
210
|
+
new JsonRpcCallError({
|
|
211
|
+
code: PLUGIN_RPC_ERROR_CODES.TIMEOUT,
|
|
212
|
+
message: `Worker\u2192host call "${method}" timed out after ${timeout}ms`
|
|
213
|
+
})
|
|
214
|
+
);
|
|
216
215
|
}, timeout);
|
|
217
216
|
pendingRequests.set(id, {
|
|
218
217
|
resolve: (response) => {
|
|
@@ -243,8 +242,7 @@ function startWorkerRpcHost(options) {
|
|
|
243
242
|
function buildContext() {
|
|
244
243
|
return {
|
|
245
244
|
get manifest() {
|
|
246
|
-
if (!manifest)
|
|
247
|
-
throw new Error("Plugin context accessed before initialization");
|
|
245
|
+
if (!manifest) throw new Error("Plugin context accessed before initialization");
|
|
248
246
|
return manifest;
|
|
249
247
|
},
|
|
250
248
|
config: {
|
|
@@ -258,8 +256,7 @@ function startWorkerRpcHost(options) {
|
|
|
258
256
|
if (typeof filterOrFn === "function") {
|
|
259
257
|
registration = { name, fn: filterOrFn };
|
|
260
258
|
} else {
|
|
261
|
-
if (!maybeFn)
|
|
262
|
-
throw new Error("Event handler function is required");
|
|
259
|
+
if (!maybeFn) throw new Error("Event handler function is required");
|
|
263
260
|
registration = { name, filter: filterOrFn, fn: maybeFn };
|
|
264
261
|
}
|
|
265
262
|
eventHandlers.push(registration);
|
|
@@ -271,8 +268,7 @@ function startWorkerRpcHost(options) {
|
|
|
271
268
|
});
|
|
272
269
|
return () => {
|
|
273
270
|
const idx = eventHandlers.indexOf(registration);
|
|
274
|
-
if (idx !== -1)
|
|
275
|
-
eventHandlers.splice(idx, 1);
|
|
271
|
+
if (idx !== -1) eventHandlers.splice(idx, 1);
|
|
276
272
|
};
|
|
277
273
|
},
|
|
278
274
|
async emit(name, orgId, payload) {
|
|
@@ -293,8 +289,7 @@ function startWorkerRpcHost(options) {
|
|
|
293
289
|
async fetch(url, init) {
|
|
294
290
|
const serializedInit = {};
|
|
295
291
|
if (init) {
|
|
296
|
-
if (init.method)
|
|
297
|
-
serializedInit.method = init.method;
|
|
292
|
+
if (init.method) serializedInit.method = init.method;
|
|
298
293
|
if (init.headers) {
|
|
299
294
|
if (init.headers instanceof Headers) {
|
|
300
295
|
const obj = {};
|
|
@@ -304,8 +299,7 @@ function startWorkerRpcHost(options) {
|
|
|
304
299
|
serializedInit.headers = obj;
|
|
305
300
|
} else if (Array.isArray(init.headers)) {
|
|
306
301
|
const obj = {};
|
|
307
|
-
for (const [k, v] of init.headers)
|
|
308
|
-
obj[k] = v;
|
|
302
|
+
for (const [k, v] of init.headers) obj[k] = v;
|
|
309
303
|
serializedInit.headers = obj;
|
|
310
304
|
} else {
|
|
311
305
|
serializedInit.headers = init.headers;
|
|
@@ -669,7 +663,10 @@ function startWorkerRpcHost(options) {
|
|
|
669
663
|
case "executeTool":
|
|
670
664
|
return handleExecuteTool(params);
|
|
671
665
|
default:
|
|
672
|
-
throw Object.assign(
|
|
666
|
+
throw Object.assign(
|
|
667
|
+
new Error(`Unknown method: ${method}`),
|
|
668
|
+
{ code: JSONRPC_ERROR_CODES.METHOD_NOT_FOUND }
|
|
669
|
+
);
|
|
673
670
|
}
|
|
674
671
|
}
|
|
675
672
|
async function handleInitialize(params) {
|
|
@@ -681,14 +678,10 @@ function startWorkerRpcHost(options) {
|
|
|
681
678
|
await plugin2.definition.setup(ctx);
|
|
682
679
|
initialized = true;
|
|
683
680
|
const supportedMethods = [];
|
|
684
|
-
if (plugin2.definition.onValidateConfig)
|
|
685
|
-
|
|
686
|
-
if (plugin2.definition.
|
|
687
|
-
|
|
688
|
-
if (plugin2.definition.onHealth)
|
|
689
|
-
supportedMethods.push("health");
|
|
690
|
-
if (plugin2.definition.onShutdown)
|
|
691
|
-
supportedMethods.push("shutdown");
|
|
681
|
+
if (plugin2.definition.onValidateConfig) supportedMethods.push("validateConfig");
|
|
682
|
+
if (plugin2.definition.onConfigChanged) supportedMethods.push("configChanged");
|
|
683
|
+
if (plugin2.definition.onHealth) supportedMethods.push("health");
|
|
684
|
+
if (plugin2.definition.onShutdown) supportedMethods.push("shutdown");
|
|
692
685
|
return { ok: true, supportedMethods };
|
|
693
686
|
}
|
|
694
687
|
async function handleHealth() {
|
|
@@ -710,13 +703,19 @@ function startWorkerRpcHost(options) {
|
|
|
710
703
|
}
|
|
711
704
|
async function handleValidateConfig(params) {
|
|
712
705
|
if (!plugin2.definition.onValidateConfig) {
|
|
713
|
-
throw Object.assign(
|
|
706
|
+
throw Object.assign(
|
|
707
|
+
new Error("validateConfig is not implemented by this plugin"),
|
|
708
|
+
{ code: PLUGIN_RPC_ERROR_CODES.METHOD_NOT_IMPLEMENTED }
|
|
709
|
+
);
|
|
714
710
|
}
|
|
715
711
|
return plugin2.definition.onValidateConfig(params.config);
|
|
716
712
|
}
|
|
717
713
|
async function handleConfigChanged(params) {
|
|
718
714
|
if (!plugin2.definition.onConfigChanged) {
|
|
719
|
-
throw Object.assign(
|
|
715
|
+
throw Object.assign(
|
|
716
|
+
new Error("configChanged is not implemented by this plugin"),
|
|
717
|
+
{ code: PLUGIN_RPC_ERROR_CODES.METHOD_NOT_IMPLEMENTED }
|
|
718
|
+
);
|
|
720
719
|
}
|
|
721
720
|
currentConfig = params.config;
|
|
722
721
|
await plugin2.definition.onConfigChanged(params.config);
|
|
@@ -727,10 +726,8 @@ function startWorkerRpcHost(options) {
|
|
|
727
726
|
const exactMatch = registration.name === event.eventType;
|
|
728
727
|
const wildcardPluginAll = registration.name === "plugin.*" && event.eventType.startsWith("plugin.");
|
|
729
728
|
const wildcardPluginOne = registration.name.endsWith(".*") && event.eventType.startsWith(registration.name.slice(0, -1));
|
|
730
|
-
if (!exactMatch && !wildcardPluginAll && !wildcardPluginOne)
|
|
731
|
-
|
|
732
|
-
if (registration.filter && !allowsEvent(registration.filter, event))
|
|
733
|
-
continue;
|
|
729
|
+
if (!exactMatch && !wildcardPluginAll && !wildcardPluginOne) continue;
|
|
730
|
+
if (registration.filter && !allowsEvent(registration.filter, event)) continue;
|
|
734
731
|
try {
|
|
735
732
|
await registration.fn(event);
|
|
736
733
|
} catch (err) {
|
|
@@ -751,7 +748,10 @@ function startWorkerRpcHost(options) {
|
|
|
751
748
|
}
|
|
752
749
|
async function handleWebhook(params) {
|
|
753
750
|
if (!plugin2.definition.onWebhook) {
|
|
754
|
-
throw Object.assign(
|
|
751
|
+
throw Object.assign(
|
|
752
|
+
new Error("handleWebhook is not implemented by this plugin"),
|
|
753
|
+
{ code: PLUGIN_RPC_ERROR_CODES.METHOD_NOT_IMPLEMENTED }
|
|
754
|
+
);
|
|
755
755
|
}
|
|
756
756
|
await plugin2.definition.onWebhook(params);
|
|
757
757
|
}
|
|
@@ -760,14 +760,18 @@ function startWorkerRpcHost(options) {
|
|
|
760
760
|
if (!handler) {
|
|
761
761
|
throw new Error(`No data handler registered for key "${params.key}"`);
|
|
762
762
|
}
|
|
763
|
-
return handler(
|
|
763
|
+
return handler(
|
|
764
|
+
params.renderEnvironment === void 0 ? params.params : { ...params.params, renderEnvironment: params.renderEnvironment }
|
|
765
|
+
);
|
|
764
766
|
}
|
|
765
767
|
async function handlePerformAction(params) {
|
|
766
768
|
const handler = actionHandlers.get(params.key);
|
|
767
769
|
if (!handler) {
|
|
768
770
|
throw new Error(`No action handler registered for key "${params.key}"`);
|
|
769
771
|
}
|
|
770
|
-
return handler(
|
|
772
|
+
return handler(
|
|
773
|
+
params.renderEnvironment === void 0 ? params.params : { ...params.params, renderEnvironment: params.renderEnvironment }
|
|
774
|
+
);
|
|
771
775
|
}
|
|
772
776
|
async function handleExecuteTool(params) {
|
|
773
777
|
const entry = toolHandlers.get(params.toolName);
|
|
@@ -780,41 +784,41 @@ function startWorkerRpcHost(options) {
|
|
|
780
784
|
const payload = event.payload;
|
|
781
785
|
if (filter.orgId !== void 0) {
|
|
782
786
|
const orgId = event.orgId ?? String(payload?.orgId ?? "");
|
|
783
|
-
if (orgId !== filter.orgId)
|
|
784
|
-
return false;
|
|
787
|
+
if (orgId !== filter.orgId) return false;
|
|
785
788
|
}
|
|
786
789
|
if (filter.projectId !== void 0) {
|
|
787
790
|
const projectId = event.entityType === "project" ? event.entityId : String(payload?.projectId ?? "");
|
|
788
|
-
if (projectId !== filter.projectId)
|
|
789
|
-
return false;
|
|
791
|
+
if (projectId !== filter.projectId) return false;
|
|
790
792
|
}
|
|
791
793
|
if (filter.agentId !== void 0) {
|
|
792
794
|
const agentId = event.entityType === "agent" ? event.entityId : String(payload?.agentId ?? "");
|
|
793
|
-
if (agentId !== filter.agentId)
|
|
794
|
-
return false;
|
|
795
|
+
if (agentId !== filter.agentId) return false;
|
|
795
796
|
}
|
|
796
797
|
return true;
|
|
797
798
|
}
|
|
798
799
|
function handleHostResponse(response) {
|
|
799
800
|
const id = response.id;
|
|
800
|
-
if (id === null || id === void 0)
|
|
801
|
-
return;
|
|
801
|
+
if (id === null || id === void 0) return;
|
|
802
802
|
const pending = pendingRequests.get(id);
|
|
803
|
-
if (!pending)
|
|
804
|
-
return;
|
|
803
|
+
if (!pending) return;
|
|
805
804
|
clearTimeout(pending.timer);
|
|
806
805
|
pendingRequests.delete(id);
|
|
807
806
|
pending.resolve(response);
|
|
808
807
|
}
|
|
809
808
|
function handleLine(line) {
|
|
810
|
-
if (!line.trim())
|
|
811
|
-
return;
|
|
809
|
+
if (!line.trim()) return;
|
|
812
810
|
let message;
|
|
813
811
|
try {
|
|
814
812
|
message = parseMessage(line);
|
|
815
813
|
} catch (err) {
|
|
816
814
|
if (err instanceof JsonRpcParseError) {
|
|
817
|
-
sendMessage(
|
|
815
|
+
sendMessage(
|
|
816
|
+
createErrorResponse(
|
|
817
|
+
null,
|
|
818
|
+
JSONRPC_ERROR_CODES.PARSE_ERROR,
|
|
819
|
+
`Parse error: ${err.message}`
|
|
820
|
+
)
|
|
821
|
+
);
|
|
818
822
|
}
|
|
819
823
|
return;
|
|
820
824
|
}
|
|
@@ -825,7 +829,13 @@ function startWorkerRpcHost(options) {
|
|
|
825
829
|
const errorMessage = err instanceof Error ? err.message : String(err);
|
|
826
830
|
const errorCode = err?.code ?? PLUGIN_RPC_ERROR_CODES.WORKER_ERROR;
|
|
827
831
|
try {
|
|
828
|
-
sendMessage(
|
|
832
|
+
sendMessage(
|
|
833
|
+
createErrorResponse(
|
|
834
|
+
message.id,
|
|
835
|
+
typeof errorCode === "number" ? errorCode : PLUGIN_RPC_ERROR_CODES.WORKER_ERROR,
|
|
836
|
+
errorMessage
|
|
837
|
+
)
|
|
838
|
+
);
|
|
829
839
|
} catch {
|
|
830
840
|
}
|
|
831
841
|
});
|
|
@@ -834,8 +844,7 @@ function startWorkerRpcHost(options) {
|
|
|
834
844
|
if (notif.method === "agents.sessions.event" && notif.params) {
|
|
835
845
|
const event = notif.params;
|
|
836
846
|
const cb = sessionEventCallbacks.get(event.sessionId);
|
|
837
|
-
if (cb)
|
|
838
|
-
cb(event);
|
|
847
|
+
if (cb) cb(event);
|
|
839
848
|
} else if (notif.method === "onEvent" && notif.params) {
|
|
840
849
|
handleOnEvent(notif.params).catch((err) => {
|
|
841
850
|
notifyHost("log", {
|
|
@@ -854,7 +863,13 @@ function startWorkerRpcHost(options) {
|
|
|
854
863
|
}
|
|
855
864
|
for (const [id, pending] of pendingRequests) {
|
|
856
865
|
clearTimeout(pending.timer);
|
|
857
|
-
pending.resolve(
|
|
866
|
+
pending.resolve(
|
|
867
|
+
createErrorResponse(
|
|
868
|
+
id,
|
|
869
|
+
PLUGIN_RPC_ERROR_CODES.WORKER_UNAVAILABLE,
|
|
870
|
+
"Worker RPC host is shutting down"
|
|
871
|
+
)
|
|
872
|
+
);
|
|
858
873
|
}
|
|
859
874
|
pendingRequests.clear();
|
|
860
875
|
sessionEventCallbacks.clear();
|
|
@@ -4942,7 +4957,7 @@ var coerce = {
|
|
|
4942
4957
|
};
|
|
4943
4958
|
var NEVER = INVALID;
|
|
4944
4959
|
|
|
4945
|
-
// ../../../shared/
|
|
4960
|
+
// ../../../shared/src/constants.ts
|
|
4946
4961
|
var ORGANIZATION_STATUSES = ["active", "paused", "archived"];
|
|
4947
4962
|
var ORGANIZATION_INTELLIGENCE_PROFILE_PURPOSES = ["lightweight", "reasoning"];
|
|
4948
4963
|
var ORGANIZATION_INTELLIGENCE_PROFILE_STATUSES = ["configured", "disabled", "invalid"];
|
|
@@ -5079,6 +5094,10 @@ var ORGANIZATION_RESOURCE_KINDS = [
|
|
|
5079
5094
|
"url",
|
|
5080
5095
|
"connector_object"
|
|
5081
5096
|
];
|
|
5097
|
+
var ORGANIZATION_RESOURCE_SOURCE_TYPES = [
|
|
5098
|
+
"external",
|
|
5099
|
+
"library"
|
|
5100
|
+
];
|
|
5082
5101
|
var PROJECT_RESOURCE_ATTACHMENT_ROLES = [
|
|
5083
5102
|
"working_set",
|
|
5084
5103
|
"reference",
|
|
@@ -5335,7 +5354,7 @@ var PLUGIN_STATE_SCOPE_KINDS = [
|
|
|
5335
5354
|
"run"
|
|
5336
5355
|
];
|
|
5337
5356
|
|
|
5338
|
-
// ../../../shared/
|
|
5357
|
+
// ../../../shared/src/validators/instance.ts
|
|
5339
5358
|
var instanceLocaleSchema = external_exports.enum(["en", "zh-CN"]);
|
|
5340
5359
|
var instanceGeneralSettingsSchema = external_exports.object({
|
|
5341
5360
|
censorUsernameInLogs: external_exports.boolean().default(false),
|
|
@@ -5381,7 +5400,7 @@ var instancePathPickerResultSchema = external_exports.object({
|
|
|
5381
5400
|
cancelled: external_exports.boolean()
|
|
5382
5401
|
}).strict();
|
|
5383
5402
|
|
|
5384
|
-
// ../../../shared/
|
|
5403
|
+
// ../../../shared/src/validators/budget.ts
|
|
5385
5404
|
var upsertBudgetPolicySchema = external_exports.object({
|
|
5386
5405
|
scopeType: external_exports.enum(BUDGET_SCOPE_TYPES),
|
|
5387
5406
|
scopeId: external_exports.string().uuid(),
|
|
@@ -5407,7 +5426,7 @@ var resolveBudgetIncidentSchema = external_exports.object({
|
|
|
5407
5426
|
}
|
|
5408
5427
|
});
|
|
5409
5428
|
|
|
5410
|
-
// ../../../shared/
|
|
5429
|
+
// ../../../shared/src/validators/organization.ts
|
|
5411
5430
|
var logoAssetIdSchema = external_exports.string().uuid().nullable().optional();
|
|
5412
5431
|
var brandColorSchema = external_exports.string().regex(/^#[0-9a-fA-F]{6}$/).nullable().optional();
|
|
5413
5432
|
var createOrganizationSchema = external_exports.object({
|
|
@@ -5431,12 +5450,28 @@ var updateOrganizationBrandingSchema = external_exports.object({
|
|
|
5431
5450
|
description: external_exports.string().nullable().optional(),
|
|
5432
5451
|
brandColor: brandColorSchema,
|
|
5433
5452
|
logoAssetId: logoAssetIdSchema
|
|
5434
|
-
}).strict().refine(
|
|
5453
|
+
}).strict().refine(
|
|
5454
|
+
(value) => value.name !== void 0 || value.description !== void 0 || value.brandColor !== void 0 || value.logoAssetId !== void 0,
|
|
5455
|
+
"At least one branding field must be provided"
|
|
5456
|
+
);
|
|
5435
5457
|
var updateOrganizationWorkspaceFileSchema = external_exports.object({
|
|
5436
5458
|
content: external_exports.string()
|
|
5437
5459
|
});
|
|
5460
|
+
var createOrganizationWorkspaceFileSchema = external_exports.object({
|
|
5461
|
+
filePath: external_exports.string().trim().min(1).max(1e3),
|
|
5462
|
+
content: external_exports.string().optional().default("")
|
|
5463
|
+
});
|
|
5464
|
+
var createOrganizationWorkspaceDirectorySchema = external_exports.object({
|
|
5465
|
+
directoryPath: external_exports.string().trim().min(1).max(1e3)
|
|
5466
|
+
});
|
|
5467
|
+
var renameOrganizationWorkspaceEntrySchema = external_exports.object({
|
|
5468
|
+
name: external_exports.string().trim().min(1).max(255)
|
|
5469
|
+
});
|
|
5470
|
+
var moveOrganizationWorkspaceEntrySchema = external_exports.object({
|
|
5471
|
+
destinationDirectoryPath: external_exports.string().trim().max(1e3).default("")
|
|
5472
|
+
});
|
|
5438
5473
|
|
|
5439
|
-
// ../../../shared/
|
|
5474
|
+
// ../../../shared/src/validators/secret.ts
|
|
5440
5475
|
var envBindingPlainSchema = external_exports.object({
|
|
5441
5476
|
type: external_exports.literal("plain"),
|
|
5442
5477
|
value: external_exports.string()
|
|
@@ -5469,15 +5504,14 @@ var updateSecretSchema = external_exports.object({
|
|
|
5469
5504
|
externalRef: external_exports.string().optional().nullable()
|
|
5470
5505
|
});
|
|
5471
5506
|
|
|
5472
|
-
// ../../../shared/
|
|
5507
|
+
// ../../../shared/src/validators/model-fallbacks.ts
|
|
5473
5508
|
var agentRuntimeTypes = new Set(AGENT_RUNTIME_TYPES);
|
|
5474
5509
|
function isRecord(value) {
|
|
5475
5510
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
5476
5511
|
}
|
|
5477
5512
|
function validateModelFallbacksConfig(value, ctx, pathPrefix) {
|
|
5478
5513
|
const fallbackModels = value.modelFallbacks;
|
|
5479
|
-
if (fallbackModels === void 0)
|
|
5480
|
-
return;
|
|
5514
|
+
if (fallbackModels === void 0) return;
|
|
5481
5515
|
if (!Array.isArray(fallbackModels)) {
|
|
5482
5516
|
ctx.addIssue({
|
|
5483
5517
|
code: external_exports.ZodIssueCode.custom,
|
|
@@ -5544,9 +5578,13 @@ function validateModelFallbacksConfig(value, ctx, pathPrefix) {
|
|
|
5544
5578
|
});
|
|
5545
5579
|
}
|
|
5546
5580
|
|
|
5547
|
-
// ../../../shared/
|
|
5548
|
-
var organizationIntelligenceProfilePurposeSchema = external_exports.enum(
|
|
5549
|
-
|
|
5581
|
+
// ../../../shared/src/validators/organization-intelligence-profile.ts
|
|
5582
|
+
var organizationIntelligenceProfilePurposeSchema = external_exports.enum(
|
|
5583
|
+
ORGANIZATION_INTELLIGENCE_PROFILE_PURPOSES
|
|
5584
|
+
);
|
|
5585
|
+
var organizationIntelligenceProfileStatusSchema = external_exports.enum(
|
|
5586
|
+
ORGANIZATION_INTELLIGENCE_PROFILE_STATUSES
|
|
5587
|
+
);
|
|
5550
5588
|
var organizationIntelligenceProfileConfigSchema = external_exports.record(external_exports.unknown()).superRefine((value, ctx) => {
|
|
5551
5589
|
const envValue = value.env;
|
|
5552
5590
|
if (envValue !== void 0) {
|
|
@@ -5567,23 +5605,56 @@ var upsertOrganizationIntelligenceProfileSchema = external_exports.object({
|
|
|
5567
5605
|
status: organizationIntelligenceProfileStatusSchema.optional().default("configured")
|
|
5568
5606
|
});
|
|
5569
5607
|
|
|
5570
|
-
// ../../../shared/
|
|
5608
|
+
// ../../../shared/src/validators/resource.ts
|
|
5571
5609
|
var organizationResourceKindSchema = external_exports.enum(ORGANIZATION_RESOURCE_KINDS);
|
|
5610
|
+
var organizationResourceSourceTypeSchema = external_exports.enum(ORGANIZATION_RESOURCE_SOURCE_TYPES);
|
|
5572
5611
|
var projectResourceAttachmentRoleSchema = external_exports.enum(PROJECT_RESOURCE_ATTACHMENT_ROLES);
|
|
5573
|
-
var
|
|
5612
|
+
var LIBRARY_PATH_SCHEME_RE = /^[a-z][a-z0-9+.-]*:/i;
|
|
5613
|
+
function isValidLibraryProjectPath(locator, kind) {
|
|
5614
|
+
const trimmed = locator.trim();
|
|
5615
|
+
if (!trimmed) return false;
|
|
5616
|
+
if (LIBRARY_PATH_SCHEME_RE.test(trimmed)) return false;
|
|
5617
|
+
if (trimmed.startsWith("/") || trimmed.startsWith("\\") || trimmed.startsWith("~")) return false;
|
|
5618
|
+
if (trimmed.includes("\\")) return false;
|
|
5619
|
+
const parts = trimmed.split("/");
|
|
5620
|
+
if (!parts.every((part) => part.length > 0 && part !== "." && part !== "..")) return false;
|
|
5621
|
+
if (parts[0] !== "projects") return false;
|
|
5622
|
+
return kind === "directory" ? parts.length >= 2 : parts.length >= 3;
|
|
5623
|
+
}
|
|
5624
|
+
function validateLibraryResourceContract(value, ctx) {
|
|
5625
|
+
if (value.sourceType !== "library") return;
|
|
5626
|
+
if (value.kind !== void 0 && value.kind !== "file" && value.kind !== "directory") {
|
|
5627
|
+
ctx.addIssue({
|
|
5628
|
+
code: external_exports.ZodIssueCode.custom,
|
|
5629
|
+
message: "Library resources must be file or directory resources.",
|
|
5630
|
+
path: ["kind"]
|
|
5631
|
+
});
|
|
5632
|
+
}
|
|
5633
|
+
if (value.locator !== void 0 && !isValidLibraryProjectPath(value.locator, value.kind)) {
|
|
5634
|
+
ctx.addIssue({
|
|
5635
|
+
code: external_exports.ZodIssueCode.custom,
|
|
5636
|
+
message: "Library resource locator must be a normalized project Library path.",
|
|
5637
|
+
path: ["locator"]
|
|
5638
|
+
});
|
|
5639
|
+
}
|
|
5640
|
+
}
|
|
5641
|
+
var createOrganizationResourceBaseSchema = external_exports.object({
|
|
5574
5642
|
name: external_exports.string().min(1),
|
|
5575
5643
|
kind: organizationResourceKindSchema,
|
|
5644
|
+
sourceType: organizationResourceSourceTypeSchema.optional().default("external"),
|
|
5576
5645
|
locator: external_exports.string().min(1),
|
|
5577
5646
|
description: external_exports.string().optional().nullable(),
|
|
5578
5647
|
metadata: external_exports.record(external_exports.unknown()).optional().nullable()
|
|
5579
5648
|
});
|
|
5649
|
+
var createOrganizationResourceSchema = createOrganizationResourceBaseSchema.superRefine(validateLibraryResourceContract);
|
|
5580
5650
|
var updateOrganizationResourceSchema = external_exports.object({
|
|
5581
5651
|
name: external_exports.string().min(1).optional(),
|
|
5582
5652
|
kind: organizationResourceKindSchema.optional(),
|
|
5653
|
+
sourceType: organizationResourceSourceTypeSchema.optional(),
|
|
5583
5654
|
locator: external_exports.string().min(1).optional(),
|
|
5584
5655
|
description: external_exports.string().optional().nullable(),
|
|
5585
5656
|
metadata: external_exports.record(external_exports.unknown()).optional().nullable()
|
|
5586
|
-
}).strict();
|
|
5657
|
+
}).strict().superRefine(validateLibraryResourceContract);
|
|
5587
5658
|
var projectResourceAttachmentInputSchema = external_exports.object({
|
|
5588
5659
|
resourceId: external_exports.string().uuid(),
|
|
5589
5660
|
role: projectResourceAttachmentRoleSchema.optional(),
|
|
@@ -5595,13 +5666,13 @@ var updateProjectResourceAttachmentSchema = external_exports.object({
|
|
|
5595
5666
|
note: external_exports.string().optional().nullable(),
|
|
5596
5667
|
sortOrder: external_exports.number().int().nonnegative().optional()
|
|
5597
5668
|
}).strict();
|
|
5598
|
-
var createProjectInlineResourceSchema =
|
|
5669
|
+
var createProjectInlineResourceSchema = createOrganizationResourceBaseSchema.extend({
|
|
5599
5670
|
role: projectResourceAttachmentRoleSchema.optional(),
|
|
5600
5671
|
note: external_exports.string().optional().nullable(),
|
|
5601
5672
|
sortOrder: external_exports.number().int().nonnegative().optional()
|
|
5602
|
-
}).strict();
|
|
5673
|
+
}).strict().superRefine(validateLibraryResourceContract);
|
|
5603
5674
|
|
|
5604
|
-
// ../../../shared/
|
|
5675
|
+
// ../../../shared/src/validators/chat.ts
|
|
5605
5676
|
var chatConversationStatusSchema = external_exports.enum(CHAT_CONVERSATION_STATUSES);
|
|
5606
5677
|
var chatIssueCreationModeSchema = external_exports.enum(CHAT_ISSUE_CREATION_MODES);
|
|
5607
5678
|
var chatMessageRoleSchema = external_exports.enum(CHAT_MESSAGE_ROLES);
|
|
@@ -5712,7 +5783,7 @@ var chatAutomationCreateSchema = external_exports.object({
|
|
|
5712
5783
|
status: external_exports.enum(AUTOMATION_STATUSES).optional().default("active"),
|
|
5713
5784
|
concurrencyPolicy: external_exports.enum(AUTOMATION_CONCURRENCY_POLICIES).optional().default("coalesce_if_active"),
|
|
5714
5785
|
catchUpPolicy: external_exports.enum(AUTOMATION_CATCH_UP_POLICIES).optional().default("skip_missed"),
|
|
5715
|
-
outputMode: external_exports.enum(AUTOMATION_OUTPUT_MODES).optional().default("
|
|
5786
|
+
outputMode: external_exports.enum(AUTOMATION_OUTPUT_MODES).optional().default("track_issue"),
|
|
5716
5787
|
schedule: external_exports.object({
|
|
5717
5788
|
cronExpression: external_exports.string().trim().min(1),
|
|
5718
5789
|
timezone: external_exports.string().trim().min(1),
|
|
@@ -5774,7 +5845,7 @@ var updateChatConversationUserStateSchema = external_exports.object({
|
|
|
5774
5845
|
unread: external_exports.boolean().optional()
|
|
5775
5846
|
});
|
|
5776
5847
|
|
|
5777
|
-
// ../../../shared/
|
|
5848
|
+
// ../../../shared/src/validators/organization-skill.ts
|
|
5778
5849
|
var organizationSkillSourceTypeSchema = external_exports.enum(["local_path", "github", "url", "catalog", "skills_sh"]);
|
|
5779
5850
|
var organizationSkillTrustLevelSchema = external_exports.enum(["markdown_only", "assets", "scripts_executables"]);
|
|
5780
5851
|
var organizationSkillCompatibilitySchema = external_exports.enum(["compatible", "unknown", "invalid"]);
|
|
@@ -5929,7 +6000,7 @@ var organizationSkillFileUpdateSchema = external_exports.object({
|
|
|
5929
6000
|
content: external_exports.string()
|
|
5930
6001
|
});
|
|
5931
6002
|
|
|
5932
|
-
// ../../../shared/
|
|
6003
|
+
// ../../../shared/src/validators/adapter-skills.ts
|
|
5933
6004
|
var agentSkillStateSchema = external_exports.enum([
|
|
5934
6005
|
"available",
|
|
5935
6006
|
"configured",
|
|
@@ -5939,8 +6010,7 @@ var agentSkillStateSchema = external_exports.enum([
|
|
|
5939
6010
|
"external"
|
|
5940
6011
|
]);
|
|
5941
6012
|
var agentSkillOriginSchema = external_exports.preprocess((value) => {
|
|
5942
|
-
if (value === "company_managed")
|
|
5943
|
-
return "organization_managed";
|
|
6013
|
+
if (value === "company_managed") return "organization_managed";
|
|
5944
6014
|
return value;
|
|
5945
6015
|
}, external_exports.enum([
|
|
5946
6016
|
"organization_managed",
|
|
@@ -5994,7 +6064,7 @@ var agentSkillEnableSchema = external_exports.object({
|
|
|
5994
6064
|
skills: external_exports.array(external_exports.string().min(1)).min(1)
|
|
5995
6065
|
});
|
|
5996
6066
|
|
|
5997
|
-
// ../../../shared/
|
|
6067
|
+
// ../../../shared/src/validators/organization-portability.ts
|
|
5998
6068
|
var portabilityIncludeSchema = external_exports.object({
|
|
5999
6069
|
organization: external_exports.boolean().optional(),
|
|
6000
6070
|
agents: external_exports.boolean().optional(),
|
|
@@ -6201,7 +6271,7 @@ var organizationPortabilityImportSchema = organizationPortabilityPreviewSchema.e
|
|
|
6201
6271
|
agentRuntimeOverrides: external_exports.record(external_exports.string().min(1), portabilityAdapterOverrideSchema).optional()
|
|
6202
6272
|
});
|
|
6203
6273
|
|
|
6204
|
-
// ../../../shared/
|
|
6274
|
+
// ../../../shared/src/validators/agent.ts
|
|
6205
6275
|
var agentPermissionsSchema = external_exports.object({
|
|
6206
6276
|
canCreateAgents: external_exports.boolean().optional().default(false),
|
|
6207
6277
|
canManageSkills: external_exports.boolean().optional().default(true)
|
|
@@ -6232,24 +6302,40 @@ var agentRuntimeConfigSchema = external_exports.record(external_exports.unknown(
|
|
|
6232
6302
|
}
|
|
6233
6303
|
validateModelFallbacksConfig(value, ctx, []);
|
|
6234
6304
|
});
|
|
6235
|
-
var optionalAgentNameSchema = external_exports.preprocess(
|
|
6236
|
-
|
|
6237
|
-
return value;
|
|
6238
|
-
|
|
6239
|
-
|
|
6240
|
-
},
|
|
6241
|
-
|
|
6242
|
-
|
|
6243
|
-
var
|
|
6244
|
-
|
|
6245
|
-
|
|
6246
|
-
|
|
6247
|
-
|
|
6248
|
-
|
|
6249
|
-
|
|
6250
|
-
|
|
6251
|
-
|
|
6252
|
-
]
|
|
6305
|
+
var optionalAgentNameSchema = external_exports.preprocess(
|
|
6306
|
+
(value) => {
|
|
6307
|
+
if (typeof value !== "string") return value;
|
|
6308
|
+
const trimmed = value.trim();
|
|
6309
|
+
return trimmed.length > 0 ? trimmed : void 0;
|
|
6310
|
+
},
|
|
6311
|
+
external_exports.string().trim().min(1).optional()
|
|
6312
|
+
);
|
|
6313
|
+
var uploadedAgentIconSchema = external_exports.string().regex(
|
|
6314
|
+
new RegExp(
|
|
6315
|
+
`^asset:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}(?:\\?bg=(?:${AGENT_AVATAR_BACKGROUND_PRESET_IDS.join("|")}))?$`,
|
|
6316
|
+
"i"
|
|
6317
|
+
),
|
|
6318
|
+
"Invalid uploaded avatar reference"
|
|
6319
|
+
);
|
|
6320
|
+
var diceBearNotionistsAgentIconSchema = external_exports.string().regex(
|
|
6321
|
+
new RegExp(
|
|
6322
|
+
`^${AGENT_DICEBEAR_NOTIONISTS_ICON_PREFIX}[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}(?:\\?bg=(?:${AGENT_AVATAR_BACKGROUND_PRESET_IDS.join("|")}))?$`,
|
|
6323
|
+
"i"
|
|
6324
|
+
),
|
|
6325
|
+
"Invalid DiceBear avatar reference"
|
|
6326
|
+
);
|
|
6327
|
+
var agentIconSchema = external_exports.preprocess(
|
|
6328
|
+
(value) => {
|
|
6329
|
+
if (typeof value !== "string") return value;
|
|
6330
|
+
const trimmed = value.trim();
|
|
6331
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
6332
|
+
},
|
|
6333
|
+
external_exports.union([
|
|
6334
|
+
external_exports.enum(AGENT_ICON_NAMES),
|
|
6335
|
+
uploadedAgentIconSchema,
|
|
6336
|
+
diceBearNotionistsAgentIconSchema
|
|
6337
|
+
]).nullable()
|
|
6338
|
+
);
|
|
6253
6339
|
var createAgentSchema = external_exports.object({
|
|
6254
6340
|
name: optionalAgentNameSchema,
|
|
6255
6341
|
role: external_exports.enum(AGENT_ROLES).optional().default("general"),
|
|
@@ -6288,7 +6374,10 @@ var wakeAgentSchema = external_exports.object({
|
|
|
6288
6374
|
reason: external_exports.string().optional().nullable(),
|
|
6289
6375
|
payload: external_exports.record(external_exports.unknown()).optional().nullable(),
|
|
6290
6376
|
idempotencyKey: external_exports.string().optional().nullable(),
|
|
6291
|
-
forceFreshSession: external_exports.preprocess(
|
|
6377
|
+
forceFreshSession: external_exports.preprocess(
|
|
6378
|
+
(value) => value === null ? void 0 : value,
|
|
6379
|
+
external_exports.boolean().optional().default(false)
|
|
6380
|
+
)
|
|
6292
6381
|
});
|
|
6293
6382
|
var resetAgentSessionSchema = external_exports.object({
|
|
6294
6383
|
taskKey: external_exports.string().min(1).optional().nullable()
|
|
@@ -6302,7 +6391,7 @@ var updateAgentPermissionsSchema = external_exports.object({
|
|
|
6302
6391
|
canAssignTasks: external_exports.boolean()
|
|
6303
6392
|
});
|
|
6304
6393
|
|
|
6305
|
-
// ../../../shared/
|
|
6394
|
+
// ../../../shared/src/validators/project.ts
|
|
6306
6395
|
var executionWorkspaceStrategySchema = external_exports.object({
|
|
6307
6396
|
type: external_exports.enum(["project_primary", "git_worktree", "adapter_managed", "cloud_sandbox"]).optional(),
|
|
6308
6397
|
baseRef: external_exports.string().optional().nullable(),
|
|
@@ -6342,7 +6431,10 @@ var projectWorkspaceFields = {
|
|
|
6342
6431
|
};
|
|
6343
6432
|
var projectColorValues = new Set(PROJECT_COLORS);
|
|
6344
6433
|
var legacyProjectColorSchema = external_exports.string().regex(/^#[0-9a-fA-F]{6}$/);
|
|
6345
|
-
var projectColorSchema = external_exports.string().refine(
|
|
6434
|
+
var projectColorSchema = external_exports.string().refine(
|
|
6435
|
+
(value) => legacyProjectColorSchema.safeParse(value).success || projectColorValues.has(value),
|
|
6436
|
+
"Color must be a 6-digit hex value or a supported project gradient"
|
|
6437
|
+
);
|
|
6346
6438
|
function validateProjectWorkspace(value, ctx) {
|
|
6347
6439
|
const sourceType = value.sourceType ?? "local_path";
|
|
6348
6440
|
const hasCwd = typeof value.cwd === "string" && value.cwd.trim().length > 0;
|
|
@@ -6394,7 +6486,7 @@ var createProjectSchema = external_exports.object({
|
|
|
6394
6486
|
});
|
|
6395
6487
|
var updateProjectSchema = external_exports.object(projectFields).partial();
|
|
6396
6488
|
|
|
6397
|
-
// ../../../shared/
|
|
6489
|
+
// ../../../shared/src/validators/issue.ts
|
|
6398
6490
|
var executionWorkspaceStrategySchema2 = external_exports.object({
|
|
6399
6491
|
type: external_exports.enum(["project_primary", "git_worktree", "adapter_managed", "cloud_sandbox"]).optional(),
|
|
6400
6492
|
baseRef: external_exports.string().optional().nullable(),
|
|
@@ -6444,9 +6536,12 @@ var createIssueLabelSchema = external_exports.object({
|
|
|
6444
6536
|
name: external_exports.string().trim().min(1).max(48),
|
|
6445
6537
|
color: external_exports.string().regex(/^#(?:[0-9a-fA-F]{6})$/, "Color must be a 6-digit hex value")
|
|
6446
6538
|
});
|
|
6447
|
-
var updateIssueLabelSchema = createIssueLabelSchema.partial().refine(
|
|
6448
|
-
|
|
6449
|
-
|
|
6539
|
+
var updateIssueLabelSchema = createIssueLabelSchema.partial().refine(
|
|
6540
|
+
(value) => value.name !== void 0 || value.color !== void 0,
|
|
6541
|
+
{
|
|
6542
|
+
message: "At least one label field must be provided"
|
|
6543
|
+
}
|
|
6544
|
+
);
|
|
6450
6545
|
var updateIssueSchema = createIssueSchema.partial().extend({
|
|
6451
6546
|
comment: external_exports.string().min(1).optional(),
|
|
6452
6547
|
reopen: external_exports.boolean().optional(),
|
|
@@ -6459,9 +6554,12 @@ var reorderIssueSchema = external_exports.object({
|
|
|
6459
6554
|
previousIssueId: external_exports.string().uuid().optional().nullable(),
|
|
6460
6555
|
nextIssueId: external_exports.string().uuid().optional().nullable(),
|
|
6461
6556
|
position: external_exports.enum(["start", "end"]).optional()
|
|
6462
|
-
}).refine(
|
|
6463
|
-
|
|
6464
|
-
|
|
6557
|
+
}).refine(
|
|
6558
|
+
(value) => !(value.previousIssueId && value.nextIssueId && value.previousIssueId === value.nextIssueId),
|
|
6559
|
+
{
|
|
6560
|
+
message: "previousIssueId and nextIssueId must be different"
|
|
6561
|
+
}
|
|
6562
|
+
);
|
|
6465
6563
|
var checkoutIssueSchema = external_exports.object({
|
|
6466
6564
|
agentId: external_exports.string().uuid(),
|
|
6467
6565
|
expectedStatuses: external_exports.array(external_exports.enum(ISSUE_STATUSES)).nonempty()
|
|
@@ -6499,8 +6597,24 @@ var upsertIssueDocumentSchema = external_exports.object({
|
|
|
6499
6597
|
changeSummary: external_exports.string().trim().max(500).nullable().optional(),
|
|
6500
6598
|
baseRevisionId: external_exports.string().uuid().nullable().optional()
|
|
6501
6599
|
});
|
|
6600
|
+
var createLibraryDocumentSchema = external_exports.object({
|
|
6601
|
+
title: external_exports.string().trim().max(200).nullable().optional(),
|
|
6602
|
+
format: issueDocumentFormatSchema.optional().default("markdown"),
|
|
6603
|
+
body: external_exports.string().max(524288).optional().default(""),
|
|
6604
|
+
changeSummary: external_exports.string().trim().max(500).nullable().optional()
|
|
6605
|
+
});
|
|
6606
|
+
var updateLibraryDocumentSchema = external_exports.object({
|
|
6607
|
+
title: external_exports.string().trim().max(200).nullable().optional(),
|
|
6608
|
+
format: issueDocumentFormatSchema.optional().default("markdown"),
|
|
6609
|
+
body: external_exports.string().max(524288),
|
|
6610
|
+
changeSummary: external_exports.string().trim().max(500).nullable().optional(),
|
|
6611
|
+
baseRevisionId: external_exports.string().uuid().nullable().optional()
|
|
6612
|
+
});
|
|
6613
|
+
var restoreLibraryDocumentRevisionSchema = external_exports.object({
|
|
6614
|
+
changeSummary: external_exports.string().trim().max(500).nullable().optional()
|
|
6615
|
+
});
|
|
6502
6616
|
|
|
6503
|
-
// ../../../shared/
|
|
6617
|
+
// ../../../shared/src/validators/work-product.ts
|
|
6504
6618
|
var issueWorkProductTypeSchema = external_exports.enum([
|
|
6505
6619
|
"preview_url",
|
|
6506
6620
|
"runtime_service",
|
|
@@ -6546,7 +6660,7 @@ var createIssueWorkProductSchema = external_exports.object({
|
|
|
6546
6660
|
});
|
|
6547
6661
|
var updateIssueWorkProductSchema = createIssueWorkProductSchema.partial();
|
|
6548
6662
|
|
|
6549
|
-
// ../../../shared/
|
|
6663
|
+
// ../../../shared/src/validators/execution-workspace.ts
|
|
6550
6664
|
var executionWorkspaceStatusSchema = external_exports.enum([
|
|
6551
6665
|
"active",
|
|
6552
6666
|
"idle",
|
|
@@ -6561,7 +6675,7 @@ var updateExecutionWorkspaceSchema = external_exports.object({
|
|
|
6561
6675
|
metadata: external_exports.record(external_exports.unknown()).optional().nullable()
|
|
6562
6676
|
}).strict();
|
|
6563
6677
|
|
|
6564
|
-
// ../../../shared/
|
|
6678
|
+
// ../../../shared/src/validators/workspace-backup.ts
|
|
6565
6679
|
var workspaceBackupTriggerSourceSchema = external_exports.enum(["manual", "scheduled", "pre_restore"]);
|
|
6566
6680
|
var createWorkspaceBackupSchema = external_exports.object({
|
|
6567
6681
|
triggerSource: workspaceBackupTriggerSourceSchema.optional().default("manual")
|
|
@@ -6570,7 +6684,7 @@ var restoreWorkspaceBackupSchema = external_exports.object({
|
|
|
6570
6684
|
confirm: external_exports.literal(true)
|
|
6571
6685
|
}).strict();
|
|
6572
6686
|
|
|
6573
|
-
// ../../../shared/
|
|
6687
|
+
// ../../../shared/src/validators/goal.ts
|
|
6574
6688
|
var createGoalSchema = external_exports.object({
|
|
6575
6689
|
title: external_exports.string().min(1),
|
|
6576
6690
|
description: external_exports.string().optional().nullable(),
|
|
@@ -6581,7 +6695,7 @@ var createGoalSchema = external_exports.object({
|
|
|
6581
6695
|
});
|
|
6582
6696
|
var updateGoalSchema = createGoalSchema.partial();
|
|
6583
6697
|
|
|
6584
|
-
// ../../../shared/
|
|
6698
|
+
// ../../../shared/src/validators/approval.ts
|
|
6585
6699
|
var createApprovalSchema = external_exports.object({
|
|
6586
6700
|
type: external_exports.enum(APPROVAL_TYPES),
|
|
6587
6701
|
requestedByAgentId: external_exports.string().uuid().optional().nullable(),
|
|
@@ -6604,7 +6718,7 @@ var addApprovalCommentSchema = external_exports.object({
|
|
|
6604
6718
|
body: external_exports.string().min(1)
|
|
6605
6719
|
});
|
|
6606
6720
|
|
|
6607
|
-
// ../../../shared/
|
|
6721
|
+
// ../../../shared/src/validators/automation.ts
|
|
6608
6722
|
var automationBodySchema = external_exports.object({
|
|
6609
6723
|
projectId: external_exports.string().uuid().optional().nullable().default(null),
|
|
6610
6724
|
goalId: external_exports.string().uuid().optional().nullable(),
|
|
@@ -6616,7 +6730,7 @@ var automationBodySchema = external_exports.object({
|
|
|
6616
6730
|
status: external_exports.enum(AUTOMATION_STATUSES).optional().default("active"),
|
|
6617
6731
|
concurrencyPolicy: external_exports.enum(AUTOMATION_CONCURRENCY_POLICIES).optional().default("coalesce_if_active"),
|
|
6618
6732
|
catchUpPolicy: external_exports.enum(AUTOMATION_CATCH_UP_POLICIES).optional().default("skip_missed"),
|
|
6619
|
-
outputMode: external_exports.enum(AUTOMATION_OUTPUT_MODES).optional().default("
|
|
6733
|
+
outputMode: external_exports.enum(AUTOMATION_OUTPUT_MODES).optional().default("track_issue"),
|
|
6620
6734
|
chatConversationId: external_exports.string().uuid().optional().nullable().default(null)
|
|
6621
6735
|
});
|
|
6622
6736
|
var createAutomationSchema = automationBodySchema.superRefine((value, ctx) => {
|
|
@@ -6672,7 +6786,7 @@ var runAutomationSchema = external_exports.object({
|
|
|
6672
6786
|
});
|
|
6673
6787
|
var rotateAutomationTriggerSecretSchema = external_exports.object({});
|
|
6674
6788
|
|
|
6675
|
-
// ../../../shared/
|
|
6789
|
+
// ../../../shared/src/validators/calendar.ts
|
|
6676
6790
|
var nullableUuid = external_exports.string().uuid().optional().nullable();
|
|
6677
6791
|
var createCalendarSourceSchema = external_exports.object({
|
|
6678
6792
|
type: external_exports.enum(CALENDAR_SOURCE_TYPES).optional().default("rudder_local"),
|
|
@@ -6716,8 +6830,14 @@ var calendarEventBaseSchema = external_exports.object({
|
|
|
6716
6830
|
externalEtag: external_exports.string().trim().min(1).max(512).optional().nullable(),
|
|
6717
6831
|
externalUpdatedAt: external_exports.coerce.date().optional().nullable()
|
|
6718
6832
|
});
|
|
6719
|
-
var createCalendarEventSchema = calendarEventBaseSchema.refine(
|
|
6720
|
-
|
|
6833
|
+
var createCalendarEventSchema = calendarEventBaseSchema.refine(
|
|
6834
|
+
(value) => value.endAt.getTime() > value.startAt.getTime(),
|
|
6835
|
+
{ path: ["endAt"], message: "End time must be after start time" }
|
|
6836
|
+
);
|
|
6837
|
+
var updateCalendarEventSchema = calendarEventBaseSchema.partial().refine(
|
|
6838
|
+
(value) => value.startAt === void 0 || value.endAt === void 0 || value.endAt.getTime() > value.startAt.getTime(),
|
|
6839
|
+
{ path: ["endAt"], message: "End time must be after start time" }
|
|
6840
|
+
);
|
|
6721
6841
|
var calendarEventListQuerySchema = external_exports.object({
|
|
6722
6842
|
start: external_exports.coerce.date(),
|
|
6723
6843
|
end: external_exports.coerce.date(),
|
|
@@ -6725,7 +6845,10 @@ var calendarEventListQuerySchema = external_exports.object({
|
|
|
6725
6845
|
sourceIds: external_exports.string().optional(),
|
|
6726
6846
|
eventKinds: external_exports.string().optional(),
|
|
6727
6847
|
statuses: external_exports.string().optional()
|
|
6728
|
-
}).refine(
|
|
6848
|
+
}).refine(
|
|
6849
|
+
(value) => value.end.getTime() > value.start.getTime(),
|
|
6850
|
+
{ path: ["end"], message: "End time must be after start time" }
|
|
6851
|
+
);
|
|
6729
6852
|
var googleCalendarSyncSchema = external_exports.object({
|
|
6730
6853
|
sourceId: external_exports.string().uuid().optional().nullable()
|
|
6731
6854
|
});
|
|
@@ -6733,9 +6856,12 @@ var updateGoogleCalendarOAuthConfigSchema = external_exports.object({
|
|
|
6733
6856
|
clientId: external_exports.string().trim().min(1).max(512).optional(),
|
|
6734
6857
|
clientSecret: external_exports.string().trim().min(1).max(2048).optional(),
|
|
6735
6858
|
clear: external_exports.boolean().optional().default(false)
|
|
6736
|
-
}).refine(
|
|
6859
|
+
}).refine(
|
|
6860
|
+
(value) => value.clear || value.clientId !== void 0 || value.clientSecret !== void 0,
|
|
6861
|
+
{ message: "Provide credentials or clear the stored Google Calendar OAuth configuration" }
|
|
6862
|
+
);
|
|
6737
6863
|
|
|
6738
|
-
// ../../../shared/
|
|
6864
|
+
// ../../../shared/src/validators/cost.ts
|
|
6739
6865
|
var createCostEventSchema = external_exports.object({
|
|
6740
6866
|
agentId: external_exports.string().uuid(),
|
|
6741
6867
|
issueId: external_exports.string().uuid().optional().nullable(),
|
|
@@ -6760,7 +6886,7 @@ var updateBudgetSchema = external_exports.object({
|
|
|
6760
6886
|
budgetMonthlyCents: external_exports.number().int().nonnegative()
|
|
6761
6887
|
});
|
|
6762
6888
|
|
|
6763
|
-
// ../../../shared/
|
|
6889
|
+
// ../../../shared/src/validators/finance.ts
|
|
6764
6890
|
var createFinanceEventSchema = external_exports.object({
|
|
6765
6891
|
agentId: external_exports.string().uuid().optional().nullable(),
|
|
6766
6892
|
issueId: external_exports.string().uuid().optional().nullable(),
|
|
@@ -6791,12 +6917,12 @@ var createFinanceEventSchema = external_exports.object({
|
|
|
6791
6917
|
currency: value.currency.toUpperCase()
|
|
6792
6918
|
}));
|
|
6793
6919
|
|
|
6794
|
-
// ../../../shared/
|
|
6920
|
+
// ../../../shared/src/validators/asset.ts
|
|
6795
6921
|
var createAssetImageMetadataSchema = external_exports.object({
|
|
6796
6922
|
namespace: external_exports.string().trim().min(1).max(120).regex(/^[a-zA-Z0-9/_-]+$/).optional()
|
|
6797
6923
|
});
|
|
6798
6924
|
|
|
6799
|
-
// ../../../shared/
|
|
6925
|
+
// ../../../shared/src/validators/access.ts
|
|
6800
6926
|
var createCompanyInviteSchema = external_exports.object({
|
|
6801
6927
|
allowedJoinTypes: external_exports.enum(INVITE_JOIN_TYPES).default("both"),
|
|
6802
6928
|
defaultsPayload: external_exports.record(external_exports.string(), external_exports.unknown()).optional().nullable(),
|
|
@@ -6839,36 +6965,41 @@ var resolveCliAuthChallengeSchema = external_exports.object({
|
|
|
6839
6965
|
token: external_exports.string().min(16).max(256)
|
|
6840
6966
|
});
|
|
6841
6967
|
var updateMemberPermissionsSchema = external_exports.object({
|
|
6842
|
-
grants: external_exports.array(
|
|
6843
|
-
|
|
6844
|
-
|
|
6845
|
-
|
|
6968
|
+
grants: external_exports.array(
|
|
6969
|
+
external_exports.object({
|
|
6970
|
+
permissionKey: external_exports.enum(PERMISSION_KEYS),
|
|
6971
|
+
scope: external_exports.record(external_exports.string(), external_exports.unknown()).optional().nullable()
|
|
6972
|
+
})
|
|
6973
|
+
)
|
|
6846
6974
|
});
|
|
6847
6975
|
var updateUserCompanyAccessSchema = external_exports.object({
|
|
6848
6976
|
orgIds: external_exports.array(external_exports.string().uuid()).default([])
|
|
6849
6977
|
});
|
|
6850
6978
|
|
|
6851
|
-
// ../../../shared/
|
|
6852
|
-
var jsonSchemaSchema = external_exports.record(external_exports.unknown()).refine(
|
|
6853
|
-
|
|
6854
|
-
return true;
|
|
6855
|
-
|
|
6856
|
-
},
|
|
6979
|
+
// ../../../shared/src/validators/plugin.ts
|
|
6980
|
+
var jsonSchemaSchema = external_exports.record(external_exports.unknown()).refine(
|
|
6981
|
+
(val) => {
|
|
6982
|
+
if (Object.keys(val).length === 0) return true;
|
|
6983
|
+
return typeof val.type === "string" || val.$ref !== void 0 || val.oneOf !== void 0 || val.anyOf !== void 0 || val.allOf !== void 0;
|
|
6984
|
+
},
|
|
6985
|
+
{ message: "Must be a valid JSON Schema object (requires at least a 'type', '$ref', or composition keyword)" }
|
|
6986
|
+
);
|
|
6857
6987
|
var CRON_FIELD_PATTERN = /^(\*(?:\/[0-9]+)?|[0-9]+(?:-[0-9]+)?(?:\/[0-9]+)?)(?:,(\*(?:\/[0-9]+)?|[0-9]+(?:-[0-9]+)?(?:\/[0-9]+)?))*$/;
|
|
6858
6988
|
function isValidCronExpression(expression) {
|
|
6859
6989
|
const trimmed = expression.trim();
|
|
6860
|
-
if (!trimmed)
|
|
6861
|
-
return false;
|
|
6990
|
+
if (!trimmed) return false;
|
|
6862
6991
|
const fields = trimmed.split(/\s+/);
|
|
6863
|
-
if (fields.length !== 5)
|
|
6864
|
-
return false;
|
|
6992
|
+
if (fields.length !== 5) return false;
|
|
6865
6993
|
return fields.every((f) => CRON_FIELD_PATTERN.test(f));
|
|
6866
6994
|
}
|
|
6867
6995
|
var pluginJobDeclarationSchema = external_exports.object({
|
|
6868
6996
|
jobKey: external_exports.string().min(1),
|
|
6869
6997
|
displayName: external_exports.string().min(1),
|
|
6870
6998
|
description: external_exports.string().optional(),
|
|
6871
|
-
schedule: external_exports.string().refine(
|
|
6999
|
+
schedule: external_exports.string().refine(
|
|
7000
|
+
(val) => isValidCronExpression(val),
|
|
7001
|
+
{ message: "schedule must be a valid 5-field cron expression (e.g. '*/15 * * * *')" }
|
|
7002
|
+
).optional()
|
|
6872
7003
|
});
|
|
6873
7004
|
var pluginWebhookDeclarationSchema = external_exports.object({
|
|
6874
7005
|
endpointKey: external_exports.string().min(1),
|
|
@@ -7049,15 +7180,27 @@ var pluginLauncherDeclarationSchema = external_exports.object({
|
|
|
7049
7180
|
}
|
|
7050
7181
|
});
|
|
7051
7182
|
var pluginManifestV1Schema = external_exports.object({
|
|
7052
|
-
id: external_exports.string().min(1).regex(
|
|
7183
|
+
id: external_exports.string().min(1).regex(
|
|
7184
|
+
/^[a-z0-9][a-z0-9._-]*$/,
|
|
7185
|
+
"Plugin id must start with a lowercase alphanumeric and contain only lowercase letters, digits, dots, hyphens, or underscores"
|
|
7186
|
+
),
|
|
7053
7187
|
apiVersion: external_exports.literal(1),
|
|
7054
|
-
version: external_exports.string().min(1).regex(
|
|
7188
|
+
version: external_exports.string().min(1).regex(
|
|
7189
|
+
/^\d+\.\d+\.\d+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$/,
|
|
7190
|
+
"Version must follow semver (e.g. 1.0.0 or 1.0.0-beta.1)"
|
|
7191
|
+
),
|
|
7055
7192
|
displayName: external_exports.string().min(1).max(100),
|
|
7056
7193
|
description: external_exports.string().min(1).max(500),
|
|
7057
7194
|
author: external_exports.string().min(1).max(200),
|
|
7058
7195
|
categories: external_exports.array(external_exports.enum(PLUGIN_CATEGORIES)).min(1),
|
|
7059
|
-
minimumHostVersion: external_exports.string().regex(
|
|
7060
|
-
|
|
7196
|
+
minimumHostVersion: external_exports.string().regex(
|
|
7197
|
+
/^\d+\.\d+\.\d+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$/,
|
|
7198
|
+
"minimumHostVersion must follow semver (e.g. 1.0.0)"
|
|
7199
|
+
).optional(),
|
|
7200
|
+
minimumPaperclipVersion: external_exports.string().regex(
|
|
7201
|
+
/^\d+\.\d+\.\d+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$/,
|
|
7202
|
+
"minimumPaperclipVersion must follow semver (e.g. 1.0.0)"
|
|
7203
|
+
).optional(),
|
|
7061
7204
|
capabilities: external_exports.array(external_exports.enum(PLUGIN_CAPABILITIES)).min(1),
|
|
7062
7205
|
entrypoints: external_exports.object({
|
|
7063
7206
|
worker: external_exports.string().min(1),
|
|
@@ -7217,7 +7360,7 @@ var listPluginStateSchema = external_exports.object({
|
|
|
7217
7360
|
namespace: external_exports.string().min(1).optional()
|
|
7218
7361
|
});
|
|
7219
7362
|
|
|
7220
|
-
// ../../../shared/
|
|
7363
|
+
// ../../../shared/src/api.ts
|
|
7221
7364
|
var API_PREFIX = "/api";
|
|
7222
7365
|
var API = {
|
|
7223
7366
|
health: `${API_PREFIX}/health`,
|
|
@@ -7241,7 +7384,7 @@ var API = {
|
|
|
7241
7384
|
admin: `${API_PREFIX}/admin`
|
|
7242
7385
|
};
|
|
7243
7386
|
|
|
7244
|
-
// ../../../shared/
|
|
7387
|
+
// ../../../shared/src/organization-skill-reference.ts
|
|
7245
7388
|
var RUDDER_BUNDLED_SKILL_SLUGS = [
|
|
7246
7389
|
"para-memory-files",
|
|
7247
7390
|
"rudder",
|
|
@@ -7251,12 +7394,21 @@ var RUDDER_BUNDLED_SKILL_SLUGS = [
|
|
|
7251
7394
|
"skill-optimizer",
|
|
7252
7395
|
"conversation-to-skill"
|
|
7253
7396
|
];
|
|
7254
|
-
var RUDDER_BUNDLED_SKILL_KEYS = new Set(
|
|
7397
|
+
var RUDDER_BUNDLED_SKILL_KEYS = new Set(
|
|
7398
|
+
RUDDER_BUNDLED_SKILL_SLUGS.map((slug) => `rudder/${slug}`)
|
|
7399
|
+
);
|
|
7255
7400
|
|
|
7256
|
-
// ../../../shared/
|
|
7401
|
+
// ../../../shared/src/project-mentions.ts
|
|
7402
|
+
var AGENT_AVATAR_UUID_RE = "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}";
|
|
7403
|
+
var AGENT_ASSET_ICON_RE = new RegExp(`^asset:${AGENT_AVATAR_UUID_RE}(?:\\?bg=([a-z0-9-]+))?$`, "i");
|
|
7404
|
+
var AGENT_DICEBEAR_NOTIONISTS_ICON_RE = new RegExp(
|
|
7405
|
+
`^${AGENT_DICEBEAR_NOTIONISTS_ICON_PREFIX}${AGENT_AVATAR_UUID_RE}(?:\\?bg=([a-z0-9-]+))?$`,
|
|
7406
|
+
"i"
|
|
7407
|
+
);
|
|
7257
7408
|
var PROJECT_COLOR_VALUES = new Set(PROJECT_COLORS);
|
|
7409
|
+
var AGENT_AVATAR_BACKGROUND_VALUES = new Set(AGENT_AVATAR_BACKGROUND_PRESET_IDS);
|
|
7258
7410
|
|
|
7259
|
-
// ../../../shared/
|
|
7411
|
+
// ../../../shared/src/config-schema.ts
|
|
7260
7412
|
var DEFAULT_DATABASE_BACKUP_MAX_ESTIMATED_BYTES = 256 * 1024 * 1024;
|
|
7261
7413
|
var configMetaSchema = external_exports.object({
|
|
7262
7414
|
version: external_exports.literal(1),
|