npm package diff
Package: @forge/bridge
Versions: 5.8.0-next.4-experimental-4cf7fd3 - 5.8.0-next.5
File: package/out/rovo/open.js
Index: package/out/rovo/open.js
===================================================================
--- package/out/rovo/open.js
+++ package/out/rovo/open.js
@@ -0,0 +1,42 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.open = exports.OPEN_ROVO_BRIDGE_ERROR_MESSAGE = void 0;
+const bridge_1 = require("../bridge");
+const errors_1 = require("../errors");
+const MAX_AGENT_LENGTH = 30;
+const callBridge = (0, bridge_1.getCallBridge)();
+exports.OPEN_ROVO_BRIDGE_ERROR_MESSAGE = 'Unable to open Rovo Chat due to usage in an unsupported product. Only Confluence, Jira and some Jira Service Management modules are supported at this point. See https://developer.atlassian.com/platform/forge/apis-reference/ui-api-bridge/rovo/';
+const transformRovoPayload = (openRovoPayload) => {
+    switch (openRovoPayload.type) {
+        case 'forge':
+            return {
+                agentName: openRovoPayload.agentName,
+                agentKey: openRovoPayload.agentKey,
+                agentAppId: openRovoPayload.agentAppId,
+                prompt: openRovoPayload.prompt
+            };
+        case 'atlassian':
+            return {
+                agentName: openRovoPayload.agentName,
+                prompt: openRovoPayload.prompt
+            };
+        default:
+            return { prompt: openRovoPayload.prompt };
+    }
+};
+const open = async (openRovoPayload) => {
+    if (openRovoPayload.type === 'forge') {
+        if (openRovoPayload.agentName.length > MAX_AGENT_LENGTH) {
+            throw new Error('rovo agent name too long');
+        }
+        if (openRovoPayload.agentKey.length > MAX_AGENT_LENGTH) {
+            throw new Error('rovo agent key too long');
+        }
+    }
+    const rovoArgs = transformRovoPayload(openRovoPayload);
+    const success = await callBridge('openRovo', rovoArgs);
+    if (success === false) {
+        throw new errors_1.BridgeAPIError(exports.OPEN_ROVO_BRIDGE_ERROR_MESSAGE);
+    }
+};
+exports.open = open;