@rudderhq/server 0.2.10-canary.2 → 0.2.10-canary.21
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 -158
- package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +2 -2
- package/dist/home-paths.d.ts +23 -0
- package/dist/home-paths.d.ts.map +1 -1
- package/dist/home-paths.js +46 -1
- package/dist/home-paths.js.map +1 -1
- package/dist/onboarding-assets/ceo/HEARTBEAT.md +7 -6
- package/dist/onboarding-assets/ceo/SOUL.md +33 -47
- 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 +73 -7
- 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/messenger.d.ts.map +1 -1
- package/dist/routes/messenger.js +10 -0
- package/dist/routes/messenger.js.map +1 -1
- package/dist/routes/orgs.d.ts.map +1 -1
- package/dist/routes/orgs.js +299 -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.map +1 -1
- package/dist/services/agent-run-context.js +6 -1
- 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 +24 -24
- 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 -1
- 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/chats.d.ts +229 -161
- package/dist/services/chats.d.ts.map +1 -1
- package/dist/services/chats.helpers.d.ts +10 -5
- package/dist/services/chats.helpers.d.ts.map +1 -1
- package/dist/services/chats.helpers.js +25 -0
- package/dist/services/chats.helpers.js.map +1 -1
- package/dist/services/chats.js +183 -17
- 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/heartbeat.d.ts +1 -1
- package/dist/services/heartbeat.d.ts.map +1 -1
- package/dist/services/heartbeat.js +1 -1
- package/dist/services/heartbeat.js.map +1 -1
- 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 +4 -1
- 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 +8 -3
- package/dist/services/messenger.d.ts.map +1 -1
- package/dist/services/messenger.js +146 -16
- 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 +92 -27
- package/dist/services/resource-catalog.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.core.d.ts +5 -0
- package/dist/services/runtime-kernel/heartbeat.core.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.core.js +28 -0
- package/dist/services/runtime-kernel/heartbeat.core.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.d.ts +33 -33
- package/dist/services/runtime-kernel/heartbeat.execute.js +1 -1
- package/dist/services/runtime-kernel/heartbeat.execute.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.recovery.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.recovery.js +14 -63
- package/dist/services/runtime-kernel/heartbeat.recovery.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/rudder/SKILL.md +28 -11
- package/resources/bundled-skills/rudder/references/api-reference.md +17 -0
- package/resources/bundled-skills/rudder/references/cli-reference.md +8 -1
- package/skills/rudder/SKILL.md +28 -11
- package/skills/rudder/references/api-reference.md +17 -0
- package/skills/rudder/references/cli-reference.md +8 -1
- package/ui-dist/assets/_basePickBy-B84mG_C-.js +1 -0
- package/ui-dist/assets/_baseUniq-C1wQfJWU.js +1 -0
- package/ui-dist/assets/{arc-muUWLX91.js → arc-kUpBd_xW.js} +1 -1
- package/ui-dist/assets/{architectureDiagram-2XIMDMQ5-BouC2Fqt.js → architectureDiagram-2XIMDMQ5-DfZu-Jcn.js} +1 -1
- package/ui-dist/assets/{blockDiagram-WCTKOSBZ-mvmERYx2.js → blockDiagram-WCTKOSBZ-ZYrIA2K3.js} +1 -1
- package/ui-dist/assets/{c4Diagram-IC4MRINW-D7udaAyR.js → c4Diagram-IC4MRINW-BIFD9mx4.js} +1 -1
- package/ui-dist/assets/channel-BMg_oQ6z.js +1 -0
- package/ui-dist/assets/{chunk-4BX2VUAB-1rY8bTG6.js → chunk-4BX2VUAB-BviJ7Prt.js} +1 -1
- package/ui-dist/assets/{chunk-55IACEB6-B1rF152Q.js → chunk-55IACEB6-BZFEE6wA.js} +1 -1
- package/ui-dist/assets/{chunk-FMBD7UC4-BwtEPX8r.js → chunk-FMBD7UC4-BmJPRdR-.js} +1 -1
- package/ui-dist/assets/{chunk-JSJVCQXG-CcpnEC5H.js → chunk-JSJVCQXG-A1WByaW-.js} +1 -1
- package/ui-dist/assets/{chunk-KX2RTZJC-DKw956bG.js → chunk-KX2RTZJC-CIGYPhxY.js} +1 -1
- package/ui-dist/assets/{chunk-NQ4KR5QH-nKLqz7bZ.js → chunk-NQ4KR5QH-Cok5N0qO.js} +1 -1
- package/ui-dist/assets/{chunk-QZHKN3VN-BKUt9Y-x.js → chunk-QZHKN3VN-dDMpPYnn.js} +1 -1
- package/ui-dist/assets/{chunk-WL4C6EOR-yazm-9IF.js → chunk-WL4C6EOR-DNuPtZhH.js} +1 -1
- package/ui-dist/assets/classDiagram-VBA2DB6C-B46gbxWl.js +1 -0
- package/ui-dist/assets/classDiagram-v2-RAHNMMFH-B46gbxWl.js +1 -0
- package/ui-dist/assets/clone-8p1TdYAS.js +1 -0
- package/ui-dist/assets/{cose-bilkent-S5V4N54A-CTgk_2V0.js → cose-bilkent-S5V4N54A-Dw_CJHOQ.js} +1 -1
- package/ui-dist/assets/{dagre-KLK3FWXG-B2b0BY-j.js → dagre-KLK3FWXG-Dooz_2G1.js} +1 -1
- package/ui-dist/assets/{diagram-E7M64L7V-B8obHkTT.js → diagram-E7M64L7V-BLKOVAhJ.js} +1 -1
- package/ui-dist/assets/{diagram-IFDJBPK2-CZ9r9xjC.js → diagram-IFDJBPK2-BF5WZ5g4.js} +1 -1
- package/ui-dist/assets/{diagram-P4PSJMXO-B40Tol6x.js → diagram-P4PSJMXO-BKrdMkXn.js} +1 -1
- package/ui-dist/assets/{erDiagram-INFDFZHY-Da2HbTV5.js → erDiagram-INFDFZHY-B__-ibvt.js} +1 -1
- package/ui-dist/assets/{flowDiagram-PKNHOUZH-BIRgGJJl.js → flowDiagram-PKNHOUZH-C-hjm_OT.js} +1 -1
- package/ui-dist/assets/{ganttDiagram-A5KZAMGK-BRBABq4S.js → ganttDiagram-A5KZAMGK-wxhez1p-.js} +1 -1
- package/ui-dist/assets/{gitGraphDiagram-K3NZZRJ6-BLGAUn7n.js → gitGraphDiagram-K3NZZRJ6-Cp8kbn7i.js} +1 -1
- package/ui-dist/assets/{graph-CwuTTksT.js → graph-DZiyJUXX.js} +1 -1
- package/ui-dist/assets/{index-Cko-pzd-.js → index-B9L9WlXc.js} +1 -1
- package/ui-dist/assets/{index-DYOYazns.js → index-BKgV1Wq7.js} +1 -1
- package/ui-dist/assets/{index-DoeV0SWN.js → index-BN8Y-wmy.js} +1 -1
- package/ui-dist/assets/{index-4zZf1QtZ.js → index-C3fAZIeC.js} +1 -1
- package/ui-dist/assets/{index-Bt4qZmf2.js → index-C8bqPhPM.js} +1 -1
- package/ui-dist/assets/{index-CVFGvcWE.js → index-CVUHbI_k.js} +1 -1
- package/ui-dist/assets/{index-CV3WaXXH.js → index-C_QG-WJb.js} +1 -1
- package/ui-dist/assets/{index-DERwo60Q.js → index-Ch8tmO6B.js} +1 -1
- package/ui-dist/assets/{index-8svLp8cS.js → index-ChDA38Dg.js} +1 -1
- package/ui-dist/assets/index-CybAI1SK.js +1568 -0
- package/ui-dist/assets/{index-3uFm-AEl.js → index-DEZd60Ta.js} +1 -1
- package/ui-dist/assets/{index-EL6bTGiI.js → index-DHQjaSv-.js} +1 -1
- package/ui-dist/assets/{index-CCL9_NDM.js → index-DH_L_PgP.js} +1 -1
- package/ui-dist/assets/{index-DDtf8KU5.js → index-DIYJRvXK.js} +1 -1
- package/ui-dist/assets/{index-mq3dqkhR.js → index-DTWZM5-L.js} +1 -1
- package/ui-dist/assets/index-DW8GcqZn.css +1 -0
- package/ui-dist/assets/{index-CTxFNX6G.js → index-DgGp5c8D.js} +1 -1
- package/ui-dist/assets/{index-BY5bTh9h.js → index-Do-fiFQL.js} +1 -1
- package/ui-dist/assets/{index-AmFx57dj.js → index-DyYghCWH.js} +1 -1
- package/ui-dist/assets/{index-CzLbS1Fq.js → index-Dz6brya1.js} +1 -1
- package/ui-dist/assets/{index-qzeaBbfS.js → index-FnV0E58J.js} +1 -1
- package/ui-dist/assets/{index-D1yidpUd.js → index-MQscBKNJ.js} +1 -1
- package/ui-dist/assets/{index-Ba107H6_.js → index-Nb4qkCNr.js} +1 -1
- package/ui-dist/assets/{index-CCXbP8bR.js → index-pL9dqAww.js} +1 -1
- package/ui-dist/assets/{infoDiagram-LFFYTUFH-Cw-pFXvz.js → infoDiagram-LFFYTUFH-DoMYSWm0.js} +1 -1
- package/ui-dist/assets/{ishikawaDiagram-PHBUUO56-DYBE89ch.js → ishikawaDiagram-PHBUUO56-CHNtw8iI.js} +1 -1
- package/ui-dist/assets/{journeyDiagram-4ABVD52K-BffUyqL3.js → journeyDiagram-4ABVD52K-DKQdzarJ.js} +1 -1
- package/ui-dist/assets/{kanban-definition-K7BYSVSG-DLm2JOTw.js → kanban-definition-K7BYSVSG-DBgiLRzL.js} +1 -1
- package/ui-dist/assets/layout-BRIMvAi6.js +1 -0
- package/ui-dist/assets/{linear-C1MJByFR.js → linear-D4eTWwgG.js} +1 -1
- package/ui-dist/assets/{mermaid.core-to6hGwLu.js → mermaid.core-CV74wx1T.js} +57 -57
- package/ui-dist/assets/{mindmap-definition-YRQLILUH-M5rIZLx4.js → mindmap-definition-YRQLILUH-BupnhMjU.js} +1 -1
- package/ui-dist/assets/{pieDiagram-SKSYHLDU-CWkhJOUA.js → pieDiagram-SKSYHLDU-BCBWun2O.js} +1 -1
- package/ui-dist/assets/{quadrantDiagram-337W2JSQ-BJArGhA1.js → quadrantDiagram-337W2JSQ-BpLw3VwI.js} +1 -1
- package/ui-dist/assets/{requirementDiagram-Z7DCOOCP-ClgtLP-6.js → requirementDiagram-Z7DCOOCP-DWbjrtUM.js} +1 -1
- package/ui-dist/assets/{sankeyDiagram-WA2Y5GQK-DURQUXKr.js → sankeyDiagram-WA2Y5GQK-Dbi8ppiF.js} +1 -1
- package/ui-dist/assets/{sequenceDiagram-2WXFIKYE-9NReo3EB.js → sequenceDiagram-2WXFIKYE-CMm2yoGY.js} +1 -1
- package/ui-dist/assets/{stateDiagram-RAJIS63D-CM8QxhYg.js → stateDiagram-RAJIS63D-L6YwWQ2H.js} +1 -1
- package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-D3owTYsb.js +1 -0
- package/ui-dist/assets/{timeline-definition-YZTLITO2-CSzS4egL.js → timeline-definition-YZTLITO2-C6gUqn7X.js} +1 -1
- package/ui-dist/assets/{treemap-KZPCXAKY-DqwRUSvK.js → treemap-KZPCXAKY-BwJ0Tkq9.js} +4 -4
- package/ui-dist/assets/{vennDiagram-LZ73GAT5-ny0b2nXN.js → vennDiagram-LZ73GAT5-BFN1AzRi.js} +1 -1
- package/ui-dist/assets/{xychartDiagram-JWTSCODW-D1CHqiUl.js → xychartDiagram-JWTSCODW-Cj7hspvA.js} +1 -1
- package/ui-dist/index.html +2 -2
- package/ui-dist/assets/_basePickBy-ADNVqvyv.js +0 -1
- package/ui-dist/assets/_baseUniq-BC2K5rPi.js +0 -1
- package/ui-dist/assets/channel-C6wc7Z0r.js +0 -1
- package/ui-dist/assets/classDiagram-VBA2DB6C-DfnjPhAc.js +0 -1
- package/ui-dist/assets/classDiagram-v2-RAHNMMFH-DfnjPhAc.js +0 -1
- package/ui-dist/assets/clone-COIuvM38.js +0 -1
- package/ui-dist/assets/index-BFUBUA_w.js +0 -1534
- package/ui-dist/assets/index-C4Z-ti7D.css +0 -1
- package/ui-dist/assets/layout-B0odtFVd.js +0 -1
- package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-DUT46WZk.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
|
+
var PROTECTED_LIBRARY_RESOURCE_ROOTS = /* @__PURE__ */ new Set(["agents", "artifacts", "plans", "skills"]);
|
|
5614
|
+
function isValidLibraryRelativePath(locator) {
|
|
5615
|
+
const trimmed = locator.trim();
|
|
5616
|
+
if (!trimmed) return false;
|
|
5617
|
+
if (LIBRARY_PATH_SCHEME_RE.test(trimmed)) return false;
|
|
5618
|
+
if (trimmed.startsWith("/") || trimmed.startsWith("\\") || trimmed.startsWith("~")) return false;
|
|
5619
|
+
if (trimmed.includes("\\")) return false;
|
|
5620
|
+
const parts = trimmed.split("/");
|
|
5621
|
+
if (!parts.every((part) => part.length > 0 && part !== "." && part !== "..")) return false;
|
|
5622
|
+
return !PROTECTED_LIBRARY_RESOURCE_ROOTS.has(parts[0] ?? "");
|
|
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 && !isValidLibraryRelativePath(value.locator)) {
|
|
5634
|
+
ctx.addIssue({
|
|
5635
|
+
code: external_exports.ZodIssueCode.custom,
|
|
5636
|
+
message: "Library resource locator must be a normalized relative path inside the organization Library.",
|
|
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);
|
|
@@ -5726,6 +5797,7 @@ var createChatAttachmentMetadataSchema = external_exports.object({
|
|
|
5726
5797
|
var chatIssueProposalSchema = external_exports.object({
|
|
5727
5798
|
title: external_exports.string().trim().min(1).max(200),
|
|
5728
5799
|
description: external_exports.string().trim().min(1).max(2e4),
|
|
5800
|
+
status: external_exports.enum(ISSUE_STATUSES).optional().default("todo"),
|
|
5729
5801
|
priority: external_exports.enum(["critical", "high", "medium", "low"]).optional().default("medium"),
|
|
5730
5802
|
projectId: external_exports.string().uuid().optional().nullable(),
|
|
5731
5803
|
goalId: external_exports.string().uuid().optional().nullable(),
|
|
@@ -5773,7 +5845,7 @@ var updateChatConversationUserStateSchema = external_exports.object({
|
|
|
5773
5845
|
unread: external_exports.boolean().optional()
|
|
5774
5846
|
});
|
|
5775
5847
|
|
|
5776
|
-
// ../../../shared/
|
|
5848
|
+
// ../../../shared/src/validators/organization-skill.ts
|
|
5777
5849
|
var organizationSkillSourceTypeSchema = external_exports.enum(["local_path", "github", "url", "catalog", "skills_sh"]);
|
|
5778
5850
|
var organizationSkillTrustLevelSchema = external_exports.enum(["markdown_only", "assets", "scripts_executables"]);
|
|
5779
5851
|
var organizationSkillCompatibilitySchema = external_exports.enum(["compatible", "unknown", "invalid"]);
|
|
@@ -5928,7 +6000,7 @@ var organizationSkillFileUpdateSchema = external_exports.object({
|
|
|
5928
6000
|
content: external_exports.string()
|
|
5929
6001
|
});
|
|
5930
6002
|
|
|
5931
|
-
// ../../../shared/
|
|
6003
|
+
// ../../../shared/src/validators/adapter-skills.ts
|
|
5932
6004
|
var agentSkillStateSchema = external_exports.enum([
|
|
5933
6005
|
"available",
|
|
5934
6006
|
"configured",
|
|
@@ -5938,8 +6010,7 @@ var agentSkillStateSchema = external_exports.enum([
|
|
|
5938
6010
|
"external"
|
|
5939
6011
|
]);
|
|
5940
6012
|
var agentSkillOriginSchema = external_exports.preprocess((value) => {
|
|
5941
|
-
if (value === "company_managed")
|
|
5942
|
-
return "organization_managed";
|
|
6013
|
+
if (value === "company_managed") return "organization_managed";
|
|
5943
6014
|
return value;
|
|
5944
6015
|
}, external_exports.enum([
|
|
5945
6016
|
"organization_managed",
|
|
@@ -5993,7 +6064,7 @@ var agentSkillEnableSchema = external_exports.object({
|
|
|
5993
6064
|
skills: external_exports.array(external_exports.string().min(1)).min(1)
|
|
5994
6065
|
});
|
|
5995
6066
|
|
|
5996
|
-
// ../../../shared/
|
|
6067
|
+
// ../../../shared/src/validators/organization-portability.ts
|
|
5997
6068
|
var portabilityIncludeSchema = external_exports.object({
|
|
5998
6069
|
organization: external_exports.boolean().optional(),
|
|
5999
6070
|
agents: external_exports.boolean().optional(),
|
|
@@ -6200,7 +6271,7 @@ var organizationPortabilityImportSchema = organizationPortabilityPreviewSchema.e
|
|
|
6200
6271
|
agentRuntimeOverrides: external_exports.record(external_exports.string().min(1), portabilityAdapterOverrideSchema).optional()
|
|
6201
6272
|
});
|
|
6202
6273
|
|
|
6203
|
-
// ../../../shared/
|
|
6274
|
+
// ../../../shared/src/validators/agent.ts
|
|
6204
6275
|
var agentPermissionsSchema = external_exports.object({
|
|
6205
6276
|
canCreateAgents: external_exports.boolean().optional().default(false),
|
|
6206
6277
|
canManageSkills: external_exports.boolean().optional().default(true)
|
|
@@ -6231,24 +6302,40 @@ var agentRuntimeConfigSchema = external_exports.record(external_exports.unknown(
|
|
|
6231
6302
|
}
|
|
6232
6303
|
validateModelFallbacksConfig(value, ctx, []);
|
|
6233
6304
|
});
|
|
6234
|
-
var optionalAgentNameSchema = external_exports.preprocess(
|
|
6235
|
-
|
|
6236
|
-
return value;
|
|
6237
|
-
|
|
6238
|
-
|
|
6239
|
-
},
|
|
6240
|
-
|
|
6241
|
-
|
|
6242
|
-
var
|
|
6243
|
-
|
|
6244
|
-
|
|
6245
|
-
|
|
6246
|
-
|
|
6247
|
-
|
|
6248
|
-
|
|
6249
|
-
|
|
6250
|
-
|
|
6251
|
-
]
|
|
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
|
+
);
|
|
6252
6339
|
var createAgentSchema = external_exports.object({
|
|
6253
6340
|
name: optionalAgentNameSchema,
|
|
6254
6341
|
role: external_exports.enum(AGENT_ROLES).optional().default("general"),
|
|
@@ -6287,7 +6374,10 @@ var wakeAgentSchema = external_exports.object({
|
|
|
6287
6374
|
reason: external_exports.string().optional().nullable(),
|
|
6288
6375
|
payload: external_exports.record(external_exports.unknown()).optional().nullable(),
|
|
6289
6376
|
idempotencyKey: external_exports.string().optional().nullable(),
|
|
6290
|
-
forceFreshSession: external_exports.preprocess(
|
|
6377
|
+
forceFreshSession: external_exports.preprocess(
|
|
6378
|
+
(value) => value === null ? void 0 : value,
|
|
6379
|
+
external_exports.boolean().optional().default(false)
|
|
6380
|
+
)
|
|
6291
6381
|
});
|
|
6292
6382
|
var resetAgentSessionSchema = external_exports.object({
|
|
6293
6383
|
taskKey: external_exports.string().min(1).optional().nullable()
|
|
@@ -6301,7 +6391,7 @@ var updateAgentPermissionsSchema = external_exports.object({
|
|
|
6301
6391
|
canAssignTasks: external_exports.boolean()
|
|
6302
6392
|
});
|
|
6303
6393
|
|
|
6304
|
-
// ../../../shared/
|
|
6394
|
+
// ../../../shared/src/validators/project.ts
|
|
6305
6395
|
var executionWorkspaceStrategySchema = external_exports.object({
|
|
6306
6396
|
type: external_exports.enum(["project_primary", "git_worktree", "adapter_managed", "cloud_sandbox"]).optional(),
|
|
6307
6397
|
baseRef: external_exports.string().optional().nullable(),
|
|
@@ -6341,7 +6431,10 @@ var projectWorkspaceFields = {
|
|
|
6341
6431
|
};
|
|
6342
6432
|
var projectColorValues = new Set(PROJECT_COLORS);
|
|
6343
6433
|
var legacyProjectColorSchema = external_exports.string().regex(/^#[0-9a-fA-F]{6}$/);
|
|
6344
|
-
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
|
+
);
|
|
6345
6438
|
function validateProjectWorkspace(value, ctx) {
|
|
6346
6439
|
const sourceType = value.sourceType ?? "local_path";
|
|
6347
6440
|
const hasCwd = typeof value.cwd === "string" && value.cwd.trim().length > 0;
|
|
@@ -6393,7 +6486,7 @@ var createProjectSchema = external_exports.object({
|
|
|
6393
6486
|
});
|
|
6394
6487
|
var updateProjectSchema = external_exports.object(projectFields).partial();
|
|
6395
6488
|
|
|
6396
|
-
// ../../../shared/
|
|
6489
|
+
// ../../../shared/src/validators/issue.ts
|
|
6397
6490
|
var executionWorkspaceStrategySchema2 = external_exports.object({
|
|
6398
6491
|
type: external_exports.enum(["project_primary", "git_worktree", "adapter_managed", "cloud_sandbox"]).optional(),
|
|
6399
6492
|
baseRef: external_exports.string().optional().nullable(),
|
|
@@ -6443,9 +6536,12 @@ var createIssueLabelSchema = external_exports.object({
|
|
|
6443
6536
|
name: external_exports.string().trim().min(1).max(48),
|
|
6444
6537
|
color: external_exports.string().regex(/^#(?:[0-9a-fA-F]{6})$/, "Color must be a 6-digit hex value")
|
|
6445
6538
|
});
|
|
6446
|
-
var updateIssueLabelSchema = createIssueLabelSchema.partial().refine(
|
|
6447
|
-
|
|
6448
|
-
|
|
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
|
+
);
|
|
6449
6545
|
var updateIssueSchema = createIssueSchema.partial().extend({
|
|
6450
6546
|
comment: external_exports.string().min(1).optional(),
|
|
6451
6547
|
reopen: external_exports.boolean().optional(),
|
|
@@ -6458,9 +6554,12 @@ var reorderIssueSchema = external_exports.object({
|
|
|
6458
6554
|
previousIssueId: external_exports.string().uuid().optional().nullable(),
|
|
6459
6555
|
nextIssueId: external_exports.string().uuid().optional().nullable(),
|
|
6460
6556
|
position: external_exports.enum(["start", "end"]).optional()
|
|
6461
|
-
}).refine(
|
|
6462
|
-
|
|
6463
|
-
|
|
6557
|
+
}).refine(
|
|
6558
|
+
(value) => !(value.previousIssueId && value.nextIssueId && value.previousIssueId === value.nextIssueId),
|
|
6559
|
+
{
|
|
6560
|
+
message: "previousIssueId and nextIssueId must be different"
|
|
6561
|
+
}
|
|
6562
|
+
);
|
|
6464
6563
|
var checkoutIssueSchema = external_exports.object({
|
|
6465
6564
|
agentId: external_exports.string().uuid(),
|
|
6466
6565
|
expectedStatuses: external_exports.array(external_exports.enum(ISSUE_STATUSES)).nonempty()
|
|
@@ -6498,8 +6597,24 @@ var upsertIssueDocumentSchema = external_exports.object({
|
|
|
6498
6597
|
changeSummary: external_exports.string().trim().max(500).nullable().optional(),
|
|
6499
6598
|
baseRevisionId: external_exports.string().uuid().nullable().optional()
|
|
6500
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
|
+
});
|
|
6501
6616
|
|
|
6502
|
-
// ../../../shared/
|
|
6617
|
+
// ../../../shared/src/validators/work-product.ts
|
|
6503
6618
|
var issueWorkProductTypeSchema = external_exports.enum([
|
|
6504
6619
|
"preview_url",
|
|
6505
6620
|
"runtime_service",
|
|
@@ -6545,7 +6660,7 @@ var createIssueWorkProductSchema = external_exports.object({
|
|
|
6545
6660
|
});
|
|
6546
6661
|
var updateIssueWorkProductSchema = createIssueWorkProductSchema.partial();
|
|
6547
6662
|
|
|
6548
|
-
// ../../../shared/
|
|
6663
|
+
// ../../../shared/src/validators/execution-workspace.ts
|
|
6549
6664
|
var executionWorkspaceStatusSchema = external_exports.enum([
|
|
6550
6665
|
"active",
|
|
6551
6666
|
"idle",
|
|
@@ -6560,7 +6675,7 @@ var updateExecutionWorkspaceSchema = external_exports.object({
|
|
|
6560
6675
|
metadata: external_exports.record(external_exports.unknown()).optional().nullable()
|
|
6561
6676
|
}).strict();
|
|
6562
6677
|
|
|
6563
|
-
// ../../../shared/
|
|
6678
|
+
// ../../../shared/src/validators/workspace-backup.ts
|
|
6564
6679
|
var workspaceBackupTriggerSourceSchema = external_exports.enum(["manual", "scheduled", "pre_restore"]);
|
|
6565
6680
|
var createWorkspaceBackupSchema = external_exports.object({
|
|
6566
6681
|
triggerSource: workspaceBackupTriggerSourceSchema.optional().default("manual")
|
|
@@ -6569,7 +6684,7 @@ var restoreWorkspaceBackupSchema = external_exports.object({
|
|
|
6569
6684
|
confirm: external_exports.literal(true)
|
|
6570
6685
|
}).strict();
|
|
6571
6686
|
|
|
6572
|
-
// ../../../shared/
|
|
6687
|
+
// ../../../shared/src/validators/goal.ts
|
|
6573
6688
|
var createGoalSchema = external_exports.object({
|
|
6574
6689
|
title: external_exports.string().min(1),
|
|
6575
6690
|
description: external_exports.string().optional().nullable(),
|
|
@@ -6580,7 +6695,7 @@ var createGoalSchema = external_exports.object({
|
|
|
6580
6695
|
});
|
|
6581
6696
|
var updateGoalSchema = createGoalSchema.partial();
|
|
6582
6697
|
|
|
6583
|
-
// ../../../shared/
|
|
6698
|
+
// ../../../shared/src/validators/approval.ts
|
|
6584
6699
|
var createApprovalSchema = external_exports.object({
|
|
6585
6700
|
type: external_exports.enum(APPROVAL_TYPES),
|
|
6586
6701
|
requestedByAgentId: external_exports.string().uuid().optional().nullable(),
|
|
@@ -6603,7 +6718,7 @@ var addApprovalCommentSchema = external_exports.object({
|
|
|
6603
6718
|
body: external_exports.string().min(1)
|
|
6604
6719
|
});
|
|
6605
6720
|
|
|
6606
|
-
// ../../../shared/
|
|
6721
|
+
// ../../../shared/src/validators/automation.ts
|
|
6607
6722
|
var automationBodySchema = external_exports.object({
|
|
6608
6723
|
projectId: external_exports.string().uuid().optional().nullable().default(null),
|
|
6609
6724
|
goalId: external_exports.string().uuid().optional().nullable(),
|
|
@@ -6615,7 +6730,7 @@ var automationBodySchema = external_exports.object({
|
|
|
6615
6730
|
status: external_exports.enum(AUTOMATION_STATUSES).optional().default("active"),
|
|
6616
6731
|
concurrencyPolicy: external_exports.enum(AUTOMATION_CONCURRENCY_POLICIES).optional().default("coalesce_if_active"),
|
|
6617
6732
|
catchUpPolicy: external_exports.enum(AUTOMATION_CATCH_UP_POLICIES).optional().default("skip_missed"),
|
|
6618
|
-
outputMode: external_exports.enum(AUTOMATION_OUTPUT_MODES).optional().default("
|
|
6733
|
+
outputMode: external_exports.enum(AUTOMATION_OUTPUT_MODES).optional().default("chat_output"),
|
|
6619
6734
|
chatConversationId: external_exports.string().uuid().optional().nullable().default(null)
|
|
6620
6735
|
});
|
|
6621
6736
|
var createAutomationSchema = automationBodySchema.superRefine((value, ctx) => {
|
|
@@ -6671,7 +6786,7 @@ var runAutomationSchema = external_exports.object({
|
|
|
6671
6786
|
});
|
|
6672
6787
|
var rotateAutomationTriggerSecretSchema = external_exports.object({});
|
|
6673
6788
|
|
|
6674
|
-
// ../../../shared/
|
|
6789
|
+
// ../../../shared/src/validators/calendar.ts
|
|
6675
6790
|
var nullableUuid = external_exports.string().uuid().optional().nullable();
|
|
6676
6791
|
var createCalendarSourceSchema = external_exports.object({
|
|
6677
6792
|
type: external_exports.enum(CALENDAR_SOURCE_TYPES).optional().default("rudder_local"),
|
|
@@ -6715,8 +6830,14 @@ var calendarEventBaseSchema = external_exports.object({
|
|
|
6715
6830
|
externalEtag: external_exports.string().trim().min(1).max(512).optional().nullable(),
|
|
6716
6831
|
externalUpdatedAt: external_exports.coerce.date().optional().nullable()
|
|
6717
6832
|
});
|
|
6718
|
-
var createCalendarEventSchema = calendarEventBaseSchema.refine(
|
|
6719
|
-
|
|
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
|
+
);
|
|
6720
6841
|
var calendarEventListQuerySchema = external_exports.object({
|
|
6721
6842
|
start: external_exports.coerce.date(),
|
|
6722
6843
|
end: external_exports.coerce.date(),
|
|
@@ -6724,7 +6845,10 @@ var calendarEventListQuerySchema = external_exports.object({
|
|
|
6724
6845
|
sourceIds: external_exports.string().optional(),
|
|
6725
6846
|
eventKinds: external_exports.string().optional(),
|
|
6726
6847
|
statuses: external_exports.string().optional()
|
|
6727
|
-
}).refine(
|
|
6848
|
+
}).refine(
|
|
6849
|
+
(value) => value.end.getTime() > value.start.getTime(),
|
|
6850
|
+
{ path: ["end"], message: "End time must be after start time" }
|
|
6851
|
+
);
|
|
6728
6852
|
var googleCalendarSyncSchema = external_exports.object({
|
|
6729
6853
|
sourceId: external_exports.string().uuid().optional().nullable()
|
|
6730
6854
|
});
|
|
@@ -6732,9 +6856,12 @@ var updateGoogleCalendarOAuthConfigSchema = external_exports.object({
|
|
|
6732
6856
|
clientId: external_exports.string().trim().min(1).max(512).optional(),
|
|
6733
6857
|
clientSecret: external_exports.string().trim().min(1).max(2048).optional(),
|
|
6734
6858
|
clear: external_exports.boolean().optional().default(false)
|
|
6735
|
-
}).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
|
+
);
|
|
6736
6863
|
|
|
6737
|
-
// ../../../shared/
|
|
6864
|
+
// ../../../shared/src/validators/cost.ts
|
|
6738
6865
|
var createCostEventSchema = external_exports.object({
|
|
6739
6866
|
agentId: external_exports.string().uuid(),
|
|
6740
6867
|
issueId: external_exports.string().uuid().optional().nullable(),
|
|
@@ -6759,7 +6886,7 @@ var updateBudgetSchema = external_exports.object({
|
|
|
6759
6886
|
budgetMonthlyCents: external_exports.number().int().nonnegative()
|
|
6760
6887
|
});
|
|
6761
6888
|
|
|
6762
|
-
// ../../../shared/
|
|
6889
|
+
// ../../../shared/src/validators/finance.ts
|
|
6763
6890
|
var createFinanceEventSchema = external_exports.object({
|
|
6764
6891
|
agentId: external_exports.string().uuid().optional().nullable(),
|
|
6765
6892
|
issueId: external_exports.string().uuid().optional().nullable(),
|
|
@@ -6790,12 +6917,12 @@ var createFinanceEventSchema = external_exports.object({
|
|
|
6790
6917
|
currency: value.currency.toUpperCase()
|
|
6791
6918
|
}));
|
|
6792
6919
|
|
|
6793
|
-
// ../../../shared/
|
|
6920
|
+
// ../../../shared/src/validators/asset.ts
|
|
6794
6921
|
var createAssetImageMetadataSchema = external_exports.object({
|
|
6795
6922
|
namespace: external_exports.string().trim().min(1).max(120).regex(/^[a-zA-Z0-9/_-]+$/).optional()
|
|
6796
6923
|
});
|
|
6797
6924
|
|
|
6798
|
-
// ../../../shared/
|
|
6925
|
+
// ../../../shared/src/validators/access.ts
|
|
6799
6926
|
var createCompanyInviteSchema = external_exports.object({
|
|
6800
6927
|
allowedJoinTypes: external_exports.enum(INVITE_JOIN_TYPES).default("both"),
|
|
6801
6928
|
defaultsPayload: external_exports.record(external_exports.string(), external_exports.unknown()).optional().nullable(),
|
|
@@ -6838,36 +6965,41 @@ var resolveCliAuthChallengeSchema = external_exports.object({
|
|
|
6838
6965
|
token: external_exports.string().min(16).max(256)
|
|
6839
6966
|
});
|
|
6840
6967
|
var updateMemberPermissionsSchema = external_exports.object({
|
|
6841
|
-
grants: external_exports.array(
|
|
6842
|
-
|
|
6843
|
-
|
|
6844
|
-
|
|
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
|
+
)
|
|
6845
6974
|
});
|
|
6846
6975
|
var updateUserCompanyAccessSchema = external_exports.object({
|
|
6847
6976
|
orgIds: external_exports.array(external_exports.string().uuid()).default([])
|
|
6848
6977
|
});
|
|
6849
6978
|
|
|
6850
|
-
// ../../../shared/
|
|
6851
|
-
var jsonSchemaSchema = external_exports.record(external_exports.unknown()).refine(
|
|
6852
|
-
|
|
6853
|
-
return true;
|
|
6854
|
-
|
|
6855
|
-
},
|
|
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
|
+
);
|
|
6856
6987
|
var CRON_FIELD_PATTERN = /^(\*(?:\/[0-9]+)?|[0-9]+(?:-[0-9]+)?(?:\/[0-9]+)?)(?:,(\*(?:\/[0-9]+)?|[0-9]+(?:-[0-9]+)?(?:\/[0-9]+)?))*$/;
|
|
6857
6988
|
function isValidCronExpression(expression) {
|
|
6858
6989
|
const trimmed = expression.trim();
|
|
6859
|
-
if (!trimmed)
|
|
6860
|
-
return false;
|
|
6990
|
+
if (!trimmed) return false;
|
|
6861
6991
|
const fields = trimmed.split(/\s+/);
|
|
6862
|
-
if (fields.length !== 5)
|
|
6863
|
-
return false;
|
|
6992
|
+
if (fields.length !== 5) return false;
|
|
6864
6993
|
return fields.every((f) => CRON_FIELD_PATTERN.test(f));
|
|
6865
6994
|
}
|
|
6866
6995
|
var pluginJobDeclarationSchema = external_exports.object({
|
|
6867
6996
|
jobKey: external_exports.string().min(1),
|
|
6868
6997
|
displayName: external_exports.string().min(1),
|
|
6869
6998
|
description: external_exports.string().optional(),
|
|
6870
|
-
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()
|
|
6871
7003
|
});
|
|
6872
7004
|
var pluginWebhookDeclarationSchema = external_exports.object({
|
|
6873
7005
|
endpointKey: external_exports.string().min(1),
|
|
@@ -7048,15 +7180,27 @@ var pluginLauncherDeclarationSchema = external_exports.object({
|
|
|
7048
7180
|
}
|
|
7049
7181
|
});
|
|
7050
7182
|
var pluginManifestV1Schema = external_exports.object({
|
|
7051
|
-
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
|
+
),
|
|
7052
7187
|
apiVersion: external_exports.literal(1),
|
|
7053
|
-
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
|
+
),
|
|
7054
7192
|
displayName: external_exports.string().min(1).max(100),
|
|
7055
7193
|
description: external_exports.string().min(1).max(500),
|
|
7056
7194
|
author: external_exports.string().min(1).max(200),
|
|
7057
7195
|
categories: external_exports.array(external_exports.enum(PLUGIN_CATEGORIES)).min(1),
|
|
7058
|
-
minimumHostVersion: external_exports.string().regex(
|
|
7059
|
-
|
|
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(),
|
|
7060
7204
|
capabilities: external_exports.array(external_exports.enum(PLUGIN_CAPABILITIES)).min(1),
|
|
7061
7205
|
entrypoints: external_exports.object({
|
|
7062
7206
|
worker: external_exports.string().min(1),
|
|
@@ -7216,7 +7360,7 @@ var listPluginStateSchema = external_exports.object({
|
|
|
7216
7360
|
namespace: external_exports.string().min(1).optional()
|
|
7217
7361
|
});
|
|
7218
7362
|
|
|
7219
|
-
// ../../../shared/
|
|
7363
|
+
// ../../../shared/src/api.ts
|
|
7220
7364
|
var API_PREFIX = "/api";
|
|
7221
7365
|
var API = {
|
|
7222
7366
|
health: `${API_PREFIX}/health`,
|
|
@@ -7240,7 +7384,7 @@ var API = {
|
|
|
7240
7384
|
admin: `${API_PREFIX}/admin`
|
|
7241
7385
|
};
|
|
7242
7386
|
|
|
7243
|
-
// ../../../shared/
|
|
7387
|
+
// ../../../shared/src/organization-skill-reference.ts
|
|
7244
7388
|
var RUDDER_BUNDLED_SKILL_SLUGS = [
|
|
7245
7389
|
"para-memory-files",
|
|
7246
7390
|
"rudder",
|
|
@@ -7250,12 +7394,21 @@ var RUDDER_BUNDLED_SKILL_SLUGS = [
|
|
|
7250
7394
|
"skill-optimizer",
|
|
7251
7395
|
"conversation-to-skill"
|
|
7252
7396
|
];
|
|
7253
|
-
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
|
+
);
|
|
7254
7400
|
|
|
7255
|
-
// ../../../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
|
+
);
|
|
7256
7408
|
var PROJECT_COLOR_VALUES = new Set(PROJECT_COLORS);
|
|
7409
|
+
var AGENT_AVATAR_BACKGROUND_VALUES = new Set(AGENT_AVATAR_BACKGROUND_PRESET_IDS);
|
|
7257
7410
|
|
|
7258
|
-
// ../../../shared/
|
|
7411
|
+
// ../../../shared/src/config-schema.ts
|
|
7259
7412
|
var DEFAULT_DATABASE_BACKUP_MAX_ESTIMATED_BYTES = 256 * 1024 * 1024;
|
|
7260
7413
|
var configMetaSchema = external_exports.object({
|
|
7261
7414
|
version: external_exports.literal(1),
|