@applica-software-guru/persona-sdk 0.0.1-preview6 → 0.1.2

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.
Files changed (99) hide show
  1. package/.eslintrc.cjs +6 -5
  2. package/.nvmrc +1 -1
  3. package/.prettierignore +3 -5
  4. package/.prettierrc +3 -5
  5. package/README.md +247 -2
  6. package/bitbucket-pipelines.yml +2 -12
  7. package/dist/bundle.cjs.js +1 -14
  8. package/dist/bundle.cjs.js.map +1 -1
  9. package/dist/bundle.es.js +472 -699
  10. package/dist/bundle.es.js.map +1 -1
  11. package/dist/index.d.ts +1089 -5
  12. package/package.json +9 -39
  13. package/src/agents/agents-api.ts +54 -0
  14. package/src/agents/types.ts +346 -0
  15. package/src/auth/api-key-auth.ts +13 -0
  16. package/src/auth/authentication-provider.ts +4 -0
  17. package/src/auth/bearer-token-auth.ts +13 -0
  18. package/src/auth/index.ts +3 -0
  19. package/src/credentials/credentials-api.ts +40 -0
  20. package/src/credentials/types.ts +67 -0
  21. package/src/exceptions.ts +10 -0
  22. package/src/features/feature-templates-api.ts +41 -0
  23. package/src/features/features-api.ts +16 -0
  24. package/src/features/types.ts +25 -0
  25. package/src/http-api.ts +95 -0
  26. package/src/index.ts +153 -4
  27. package/src/knowledges/knowledge-base-documents-api.ts +38 -0
  28. package/src/knowledges/knowledge-bases-api.ts +47 -0
  29. package/src/knowledges/types.ts +70 -0
  30. package/src/missions/missions-api.ts +60 -0
  31. package/src/missions/types.ts +25 -0
  32. package/src/paginated.ts +6 -0
  33. package/src/persona-sdk.ts +81 -0
  34. package/src/projects/projects-api.ts +55 -0
  35. package/src/projects/types.ts +42 -0
  36. package/src/revisions/types.ts +9 -0
  37. package/src/service-prices/service-prices-api.ts +32 -0
  38. package/src/service-prices/types.ts +8 -0
  39. package/src/sessions/sessions-api.ts +55 -0
  40. package/src/sessions/types.ts +129 -0
  41. package/src/triggers/trigger-executions-api.ts +27 -0
  42. package/src/triggers/triggers-api.ts +37 -0
  43. package/src/triggers/types.ts +50 -0
  44. package/src/workflows/types.ts +150 -0
  45. package/src/workflows/workflow-executions-api.ts +27 -0
  46. package/src/workflows/workflows-api.ts +51 -0
  47. package/tsconfig.json +20 -28
  48. package/vite.config.ts +20 -62
  49. package/dist/bundle.iife.js +0 -15
  50. package/dist/bundle.iife.js.map +0 -1
  51. package/dist/bundle.umd.js +0 -15
  52. package/dist/bundle.umd.js.map +0 -1
  53. package/dist/index.d.ts.map +0 -1
  54. package/dist/logging.d.ts +0 -18
  55. package/dist/logging.d.ts.map +0 -1
  56. package/dist/messages.d.ts +0 -7
  57. package/dist/messages.d.ts.map +0 -1
  58. package/dist/protocol/base.d.ts +0 -23
  59. package/dist/protocol/base.d.ts.map +0 -1
  60. package/dist/protocol/index.d.ts +0 -5
  61. package/dist/protocol/index.d.ts.map +0 -1
  62. package/dist/protocol/rest.d.ts +0 -22
  63. package/dist/protocol/rest.d.ts.map +0 -1
  64. package/dist/protocol/webrtc.d.ts +0 -56
  65. package/dist/protocol/webrtc.d.ts.map +0 -1
  66. package/dist/protocol/websocket.d.ts +0 -22
  67. package/dist/protocol/websocket.d.ts.map +0 -1
  68. package/dist/runtime.d.ts +0 -21
  69. package/dist/runtime.d.ts.map +0 -1
  70. package/dist/types.d.ts +0 -79
  71. package/dist/types.d.ts.map +0 -1
  72. package/jsconfig.node.json +0 -10
  73. package/playground/index.html +0 -14
  74. package/playground/src/app.tsx +0 -10
  75. package/playground/src/chat.tsx +0 -52
  76. package/playground/src/components/assistant-ui/assistant-modal.tsx +0 -57
  77. package/playground/src/components/assistant-ui/markdown-text.tsx +0 -119
  78. package/playground/src/components/assistant-ui/thread-list.tsx +0 -62
  79. package/playground/src/components/assistant-ui/thread.tsx +0 -249
  80. package/playground/src/components/assistant-ui/tool-fallback.tsx +0 -33
  81. package/playground/src/components/assistant-ui/tooltip-icon-button.tsx +0 -38
  82. package/playground/src/components/ui/avatar.tsx +0 -35
  83. package/playground/src/components/ui/button.tsx +0 -43
  84. package/playground/src/components/ui/tooltip.tsx +0 -32
  85. package/playground/src/lib/utils.ts +0 -6
  86. package/playground/src/main.tsx +0 -10
  87. package/playground/src/styles.css +0 -1
  88. package/playground/src/vite-env.d.ts +0 -1
  89. package/preview.sh +0 -13
  90. package/src/logging.ts +0 -34
  91. package/src/messages.ts +0 -79
  92. package/src/protocol/base.ts +0 -55
  93. package/src/protocol/index.ts +0 -4
  94. package/src/protocol/rest.ts +0 -66
  95. package/src/protocol/webrtc.ts +0 -339
  96. package/src/protocol/websocket.ts +0 -108
  97. package/src/runtime.tsx +0 -217
  98. package/src/types.ts +0 -98
  99. package/tsconfig.node.json +0 -15
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.es.js","sources":["../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/messages.ts","../src/protocol/base.ts","../src/protocol/rest.ts","../src/protocol/websocket.ts","../src/protocol/webrtc.ts","../src/runtime.tsx","../src/logging.ts"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n \"react-stack-bottom-frame\": function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React[\"react-stack-bottom-frame\"].bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import { PersonaMessage } from './types';\nimport { ThreadMessageLike } from '@assistant-ui/react';\n\nfunction removeEmptyMessages(messages: PersonaMessage[]): PersonaMessage[] {\n return messages.filter((message) => {\n if (message.finishReason === 'stop') {\n return message.text !== null && message.text?.trim() !== '';\n }\n return true;\n });\n}\nfunction parseMessages(messages: PersonaMessage[]): PersonaMessage[] {\n const outputMessages: PersonaMessage[] = [];\n let currentMessage: PersonaMessage | null = null;\n\n for (const message of messages) {\n if (message.type === 'reasoning') {\n if (currentMessage != null) {\n outputMessages.push(currentMessage);\n currentMessage = null;\n }\n outputMessages.push(message);\n } else if (message.functionCalls) {\n if (currentMessage) {\n outputMessages.push(currentMessage);\n }\n outputMessages.push(message);\n currentMessage = null;\n } else if (message.functionResponse) {\n outputMessages[outputMessages.length - 1] = {\n ...outputMessages[outputMessages.length - 1],\n functionResponse: message.functionResponse,\n };\n } else if (\n currentMessage &&\n message.protocol === currentMessage.protocol &&\n (currentMessage.role === message.role || message.finishReason === 'stop')\n ) {\n currentMessage.text += message.text;\n } else {\n if (currentMessage) {\n outputMessages.push(currentMessage);\n }\n currentMessage = {\n ...message,\n };\n }\n }\n\n if (currentMessage) {\n outputMessages.push(currentMessage);\n }\n return removeEmptyMessages(outputMessages);\n}\n\nfunction convertMessage(message: PersonaMessage): ThreadMessageLike {\n if (message.role === 'function') {\n return {\n id: message.id!,\n role: 'assistant',\n status: message?.functionResponse === null ? { type: 'running' } : { type: 'complete', reason: 'stop' },\n content:\n message.functionCalls?.map((call) => ({\n type: 'tool-call',\n toolName: call.name,\n toolCallId: call.id,\n args: call.args,\n result: message.functionResponse?.result,\n })) ?? [],\n };\n }\n return {\n id: message.id!,\n role: message.role,\n content: message.type === 'reasoning' ? [{ type: 'reasoning', text: message.text }] : [{ type: 'text', text: message.text }],\n };\n}\n\nexport { parseMessages, convertMessage, removeEmptyMessages };\n","import { Message, MessageListenerCallback, PersonaMessage, PersonaProtocol, ProtocolStatus, Session, StatusChangeCallback } from '../types';\n\nabstract class PersonaProtocolBase implements PersonaProtocol {\n abstract status: ProtocolStatus;\n abstract session: Session;\n abstract autostart: boolean;\n\n private statusChangeCallbacks: StatusChangeCallback[] = [];\n private messageCallbacks: MessageListenerCallback[] = [];\n\n public addStatusChangeListener(callback: StatusChangeCallback) {\n this.statusChangeCallbacks.push(callback);\n }\n\n public addMessageListener(callback: MessageListenerCallback) {\n this.messageCallbacks.push(callback);\n }\n public async syncSession(session: Session): Promise<void> {\n this.session = session;\n }\n\n public async notifyMessage(message: PersonaMessage): Promise<void> {\n this.messageCallbacks.forEach((callback) => callback(message));\n }\n public async notifyMessages(messages: PersonaMessage[]): Promise<void> {\n messages.forEach((message) => {\n this.messageCallbacks.forEach((callback) => callback(message));\n });\n }\n\n public async setSession(session: Session): Promise<void> {\n this.session = session;\n }\n public async setStatus(status: ProtocolStatus): Promise<void> {\n const notify = this.status !== status;\n this.status = status;\n if (!notify) {\n return;\n }\n this.statusChangeCallbacks.forEach((callback) => callback(status));\n }\n\n public clearListeners(): void {\n this.statusChangeCallbacks = [];\n this.messageCallbacks = [];\n }\n\n abstract getName(): string;\n abstract getPriority(): number;\n abstract connect(session?: Session): Promise<Session>;\n abstract disconnect(): Promise<void>;\n abstract send(message: Message): Promise<void>;\n}\n\nexport { PersonaProtocolBase };\n","'use strict';\n'use client';\nimport { PersonaProtocolBase } from './base';\nimport { Message, PersonaResponse, Session, ProtocolStatus, PersonaProtocolBaseConfig } from '../types';\n\ntype PersonaRESTProtocolConfig = PersonaProtocolBaseConfig & {\n apiUrl: string;\n};\n\nclass PersonaRESTProtocol extends PersonaProtocolBase {\n status: ProtocolStatus;\n autostart: boolean;\n session: Session;\n config: PersonaRESTProtocolConfig;\n notify: boolean = true;\n\n constructor(config: PersonaRESTProtocolConfig) {\n super();\n this.config = config;\n this.status = 'disconnected';\n this.autostart = true;\n }\n\n public getName(): string {\n return 'rest';\n }\n\n public getPriority(): number {\n return 0;\n }\n\n public async connect(session: Session): Promise<Session> {\n this.setStatus('connected');\n return session;\n }\n\n public async disconnect(): Promise<void> {\n this.setStatus('disconnected');\n this.session = null;\n }\n\n public async syncSession(session: Session): Promise<void> {\n this.session = session;\n }\n\n public async send(message: Message): Promise<void> {\n const { apiUrl, apiKey, agentId } = this.config;\n const sessionId = this.session ?? 'new';\n const input = message;\n\n const response = await fetch(`${apiUrl}/agents/${agentId}/sessions/${sessionId}/messages`, {\n body: JSON.stringify({ userMessage: input }),\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'x-fox-apikey': apiKey,\n 'x-persona-apikey': apiKey,\n },\n });\n const personaResponse = (await response.json()) as PersonaResponse;\n this.notifyMessages(personaResponse.response.messages);\n }\n}\n\nexport { PersonaRESTProtocol };\nexport type { PersonaRESTProtocolConfig };\n","'use strict';\n'use client';\nimport { Message, PersonaMessage, PersonaProtocolBaseConfig, ProtocolStatus, Session } from '../types';\nimport { PersonaProtocolBase } from './base';\n\ntype PersonaWebSocketProtocolConfig = PersonaProtocolBaseConfig & {\n webSocketUrl: string;\n};\n\nclass PersonaWebSocketProtocol extends PersonaProtocolBase {\n status: ProtocolStatus;\n autostart: boolean;\n session: Session;\n config: PersonaWebSocketProtocolConfig;\n webSocket: WebSocket | null;\n\n constructor(config: PersonaWebSocketProtocolConfig) {\n super();\n this.config = config;\n this.status = 'disconnected';\n this.autostart = true;\n this.session = null;\n this.webSocket = null;\n }\n\n public getName(): string {\n return 'websocket';\n }\n\n public getPriority(): number {\n return 1;\n }\n\n public async syncSession(session: Session): Promise<void> {\n this.config.logger?.debug('Syncing session with WebSocket protocol:', session);\n this.session = session;\n if (this.webSocket && this.status === 'connected') {\n this.disconnect();\n this.connect(session);\n }\n }\n\n public connect(session?: Session): Promise<Session> {\n if (this.webSocket !== null && this.status === 'connected') {\n return Promise.resolve(this.session);\n }\n\n const sid = session || this.session || 'new';\n\n this.config.logger?.debug('Connecting to WebSocket with sessionId:', sid);\n\n const apiKey = encodeURIComponent(this.config.apiKey);\n const agentId = this.config.agentId;\n const webSocketUrl = `${this.config.webSocketUrl}?sessionCode=${sid}&agentId=${agentId}&apiKey=${apiKey}`;\n this.setStatus('connecting');\n this.webSocket = new WebSocket(webSocketUrl);\n this.webSocket.addEventListener('open', () => {\n this.setStatus('connected');\n });\n this.webSocket.addEventListener('message', (event) => {\n const data = JSON.parse(event.data) as { type: 'message' | unknown; payload: PersonaMessage | unknown };\n\n if (data.type !== 'message') {\n return;\n }\n const message = data.payload as PersonaMessage & { thought?: string };\n\n this.notifyMessage(message?.thought ? { role: 'assistant', type: 'reasoning', text: message.thought } : message);\n });\n this.webSocket.addEventListener('close', () => {\n this.setStatus('disconnected');\n this.webSocket = null;\n this.config.logger?.warn('WebSocket connection closed');\n });\n\n this.webSocket.addEventListener('error', (error) => {\n this.setStatus('disconnected');\n this.webSocket = null;\n this.config.logger?.error('WebSocket error', error);\n\n // TODO: Implement reconnection logic\n });\n\n return Promise.resolve(sid);\n }\n\n public disconnect(): Promise<void> {\n this.config.logger?.debug('Disconnecting WebSocket');\n if (this.webSocket && this.status === 'connected') {\n this.webSocket.close();\n this.setStatus('disconnected');\n this.webSocket = null;\n }\n return Promise.resolve();\n }\n\n public send(message: Message): Promise<void> {\n if (this.webSocket && this.status === 'connected') {\n this.webSocket.send(JSON.stringify({ type: 'request', payload: message }));\n return Promise.resolve();\n } else {\n return Promise.reject(new Error('WebSocket is not connected'));\n }\n }\n}\n\nexport { PersonaWebSocketProtocol };\nexport type { PersonaWebSocketProtocolConfig };\n","'use strict';\n'use client';\nimport { PersonaProtocolBase } from './base';\nimport { Message, PersonaMessage, PersonaProtocolBaseConfig, ProtocolStatus, Session } from '../types';\n\ntype AudioAnalysisData = {\n localAmplitude: number;\n remoteAmplitude: number;\n};\n\ntype AudioVisualizerCallback = (data: AudioAnalysisData) => void;\n\ntype PersonaWebRTCMessageCallback = (data: MessageEvent) => void;\n\ntype PersonaWebRTCConfig = PersonaProtocolBaseConfig & {\n webrtcUrl: string;\n iceServers?: RTCIceServer[];\n};\n\nclass PersonaWebRTCClient {\n private config: PersonaWebRTCConfig;\n private pc: RTCPeerConnection | null = null;\n private ws: WebSocket | null = null;\n private localStream: MediaStream | null = null;\n private remoteStream: MediaStream = new MediaStream();\n private audioCtx: AudioContext | null = null;\n\n private localAnalyser: AnalyserNode | null = null;\n private remoteAnalyser: AnalyserNode | null = null;\n private analyzerFrame: number | null = null;\n private dataChannel: RTCDataChannel | null = null;\n\n private isConnected: boolean = false;\n private visualizerCallbacks: AudioVisualizerCallback[] = [];\n private messageCallbacks: PersonaWebRTCMessageCallback[] = [];\n\n constructor(config: PersonaWebRTCConfig) {\n this.config = config;\n }\n\n public async connect(session: Session): Promise<Session> {\n if (this.isConnected) return;\n\n this.isConnected = true;\n\n try {\n this.localStream = await navigator.mediaDevices.getUserMedia({ audio: true });\n } catch (err) {\n this.config.logger?.error('Error accessing microphone:', err);\n return;\n }\n\n this.pc = new RTCPeerConnection({\n iceServers: this.config.iceServers || [\n {\n urls: 'stun:34.38.108.251:3478',\n },\n {\n urls: 'turn:34.38.108.251:3478',\n username: 'webrtc',\n credential: 'webrtc',\n },\n ],\n });\n\n this.localStream.getTracks().forEach((track) => {\n this.pc!.addTrack(track, this.localStream!);\n });\n\n this.pc.ontrack = (event) => {\n event.streams[0].getTracks().forEach((track) => {\n this.remoteStream.addTrack(track);\n });\n\n if (!this.audioCtx) {\n this._startAnalyzers();\n }\n\n const remoteAudio = new Audio();\n remoteAudio.srcObject = this.remoteStream;\n remoteAudio.play().catch((e) => {\n this.config.logger?.error('Error playing remote audio:', e);\n });\n };\n\n this.pc.onicecandidate = (event) => {\n if (event.candidate && this.ws?.readyState === WebSocket.OPEN) {\n this.ws.send(\n JSON.stringify({\n type: 'CANDIDATE',\n src: 'client',\n payload: { candidate: event.candidate },\n }),\n );\n }\n };\n\n this.pc.ondatachannel = (event) => {\n const channel = event.channel;\n channel.onmessage = (msg) => {\n this.messageCallbacks.forEach((callback) => {\n callback(msg);\n });\n };\n };\n\n this.ws = new WebSocket(this.config.webrtcUrl || 'wss://persona.applica.guru/api/webrtc');\n this.ws.onopen = async () => {\n const offer = await this.pc!.createOffer();\n await this.pc!.setLocalDescription(offer);\n\n const metadata = {\n agentId: this.config.agentId,\n sessionCode: session as string,\n };\n this.config.logger?.debug('Opening connection to WebRTC server: ', metadata);\n\n const offerMessage = {\n type: 'OFFER',\n src: crypto.randomUUID?.() || 'client_' + Date.now(),\n payload: {\n sdp: {\n sdp: offer.sdp,\n type: offer.type,\n },\n connectionId: (Date.now() % 1000000).toString(),\n metadata,\n },\n };\n\n this.ws!.send(JSON.stringify(offerMessage));\n };\n\n this.ws.onmessage = async (event) => {\n const data = JSON.parse(event.data);\n if (data.type === 'ANSWER') {\n await this.pc!.setRemoteDescription(new RTCSessionDescription(data.payload.sdp));\n } else if (data.type === 'CANDIDATE') {\n try {\n await this.pc!.addIceCandidate(new RTCIceCandidate(data.payload.candidate));\n } catch (err) {\n this.config.logger?.error('Error adding ICE candidate:', err);\n }\n }\n };\n\n this.ws.onclose = () => {\n this._stopAnalyzers();\n };\n }\n\n public async disconnect(): Promise<void> {\n if (!this.isConnected) return;\n\n this.isConnected = false;\n\n if (this.ws?.readyState === WebSocket.OPEN) this.ws.close();\n if (this.pc) this.pc.close();\n if (this.localStream) {\n this.localStream.getTracks().forEach((track) => track.stop());\n }\n\n this.remoteStream = new MediaStream();\n if (this.audioCtx) {\n await this.audioCtx.close();\n this.audioCtx = null;\n }\n\n this._stopAnalyzers();\n }\n\n public addVisualizerCallback(callback: AudioVisualizerCallback): void {\n this.visualizerCallbacks.push(callback);\n }\n public addMessageCallback(callback: PersonaWebRTCMessageCallback): void {\n this.messageCallbacks.push(callback);\n }\n\n public createDataChannel(label = 'messages'): void {\n if (!this.pc) return;\n this.dataChannel = this.pc.createDataChannel(label);\n this.dataChannel.onopen = () => this.config.logger?.info('Data channel opened');\n this.dataChannel.onmessage = (msg: MessageEvent) => {\n this.messageCallbacks.forEach((callback) => {\n callback(msg);\n });\n };\n }\n\n public sendMessage(message: string): void {\n if (!this.dataChannel) {\n this.config.logger?.warn('Data channel is not open, cannot send message');\n return;\n }\n\n this.dataChannel.send(message);\n this.config.logger?.info('Sent message:', message);\n }\n\n private _startAnalyzers(): void {\n if (!this.localStream || !this.remoteStream || this.visualizerCallbacks.length === 0) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.audioCtx = new (window.AudioContext || (window as any).webkitAudioContext)();\n\n const localSource = this.audioCtx.createMediaStreamSource(this.localStream);\n const remoteSource = this.audioCtx.createMediaStreamSource(this.remoteStream);\n\n this.localAnalyser = this.audioCtx.createAnalyser();\n this.remoteAnalyser = this.audioCtx.createAnalyser();\n this.localAnalyser.fftSize = 256;\n this.remoteAnalyser.fftSize = 256;\n\n localSource.connect(this.localAnalyser);\n remoteSource.connect(this.remoteAnalyser);\n\n const loop = () => {\n if (!this.localAnalyser || !this.remoteAnalyser || this.visualizerCallbacks.length === 0) {\n return;\n }\n\n const localArray = new Uint8Array(this.localAnalyser.frequencyBinCount);\n const remoteArray = new Uint8Array(this.remoteAnalyser.frequencyBinCount);\n\n this.localAnalyser.getByteFrequencyData(localArray);\n this.remoteAnalyser.getByteFrequencyData(remoteArray);\n\n const localAmp = localArray.reduce((a, b) => a + b, 0) / localArray.length;\n const remoteAmp = remoteArray.reduce((a, b) => a + b, 0) / remoteArray.length;\n\n if (this.visualizerCallbacks.length > 0) {\n this.visualizerCallbacks.forEach((callback) => {\n callback({\n localAmplitude: localAmp,\n remoteAmplitude: remoteAmp,\n });\n });\n }\n\n this.analyzerFrame = requestAnimationFrame(loop);\n };\n\n this.analyzerFrame = requestAnimationFrame(loop);\n }\n\n private _stopAnalyzers(): void {\n if (this.analyzerFrame) {\n cancelAnimationFrame(this.analyzerFrame);\n this.analyzerFrame = null;\n }\n this.localAnalyser = null;\n this.remoteAnalyser = null;\n }\n}\n\ntype PersonaWebRTCProtocolConfig = PersonaWebRTCConfig & {\n autostart?: boolean;\n};\n\nclass PersonaWebRTCProtocol extends PersonaProtocolBase {\n status: ProtocolStatus;\n session: Session;\n autostart: boolean;\n config: PersonaWebRTCProtocolConfig;\n webRTCClient: PersonaWebRTCClient;\n\n constructor(config: PersonaWebRTCProtocolConfig) {\n super();\n this.config = config;\n this.status = 'disconnected';\n this.session = null;\n this.autostart = config?.autostart ?? false;\n this.webRTCClient = new PersonaWebRTCClient(config);\n this.webRTCClient.addMessageCallback((msg: MessageEvent) => {\n config.logger?.debug('Received data message:', msg.data);\n const data = JSON.parse(msg.data) as { type: 'message' | unknown; payload: PersonaMessage | unknown };\n if (data.type === 'message') {\n this.notifyMessage(data.payload as PersonaMessage);\n }\n });\n }\n\n public getName(): string {\n return 'webrtc';\n }\n public getPriority(): number {\n return 10;\n }\n\n public async syncSession(session: Session): Promise<void> {\n super.syncSession(session);\n if (this.status === 'connected') {\n await this.disconnect();\n await this.connect(session);\n }\n }\n\n public async connect(session?: Session): Promise<Session> {\n if (this.status === 'connected') {\n return Promise.resolve(this.session);\n }\n this.session = session || this.session || 'new';\n this.setStatus('connecting');\n\n this.config.logger?.debug('Connecting to WebRTC with sessionId:', this.session);\n await this.webRTCClient.connect(this.session);\n this.setStatus('connected');\n\n await this.webRTCClient.createDataChannel();\n\n return this.session;\n }\n\n public async disconnect(): Promise<void> {\n if (this.status === 'disconnected') {\n this.config.logger?.warn('Already disconnected');\n return Promise.resolve();\n }\n\n await this.webRTCClient.disconnect();\n\n this.setStatus('disconnected');\n this.config?.logger?.debug('Disconnected from WebRTC');\n }\n\n public send(message: Message): Promise<void> {\n if (this.status !== 'connected') {\n return Promise.reject(new Error('Not connected'));\n }\n\n this.webRTCClient.sendMessage(message as string);\n return Promise.resolve();\n }\n}\n\nexport { PersonaWebRTCProtocol };\nexport type { PersonaWebRTCProtocolConfig, AudioVisualizerCallback, AudioAnalysisData };\n","'use strict';\n'use client';\n\nimport { useState, useEffect, useCallback, PropsWithChildren, createContext, useContext, useMemo, useRef } from 'react';\nimport { useExternalStoreRuntime, AppendMessage, AssistantRuntimeProvider } from '@assistant-ui/react';\nimport {\n PersonaConfig,\n PersonaMessage,\n PersonaProtocol,\n PersonaProtocolBaseConfig,\n PersonaResponse,\n ProtocolStatus,\n Session,\n} from './types';\nimport { parseMessages, convertMessage } from './messages';\nimport {\n PersonaRESTProtocol,\n PersonaRESTProtocolConfig,\n PersonaWebRTCProtocol,\n PersonaWebRTCProtocolConfig,\n PersonaWebSocketProtocol,\n PersonaWebSocketProtocolConfig,\n} from './protocol';\n\ntype PersonaRuntimeContextType = {\n protocols: PersonaProtocol[];\n protocolsStatus: Map<string, ProtocolStatus>;\n};\n\nconst PersonaRuntimeContext = createContext<PersonaRuntimeContextType | undefined>(undefined);\n\nfunction PersonaRuntimeProviderInner({\n dev = false,\n protocols: _protocols,\n logger,\n children,\n session: defaultSession = 'new',\n ...config\n}: Readonly<PersonaConfig>) {\n const [isRunning, setIsRunning] = useState(false);\n const [messages, setMessages] = useState<PersonaMessage[]>([]);\n const [session, setSession] = useState<Session>(defaultSession);\n const [protocolsStatus, setProtocolsStatus] = useState<Map<string, ProtocolStatus>>(new Map());\n const didMount = useRef(false);\n\n const protocols = useMemo<PersonaProtocol[]>(() => {\n if (Array.isArray(_protocols)) {\n return _protocols;\n }\n\n if (typeof _protocols === 'object' && _protocols !== null) {\n const baseEndpoint = dev ? 'localhost:8000' : 'persona.applica.guru/api';\n const baseEndpointProtocol = dev ? 'http' : 'https';\n const baseWebSocketProtocol = dev ? 'ws' : 'wss';\n const availableProtocols = Object.keys(_protocols).map((key) => {\n switch (key) {\n case 'rest':\n const restConfig: PersonaProtocolBaseConfig | true | undefined = _protocols[key];\n if (restConfig === true) {\n return new PersonaRESTProtocol({\n apiUrl: `${baseEndpointProtocol}://${baseEndpoint}`,\n apiKey: config.apiKey,\n agentId: config.agentId,\n logger,\n });\n }\n return new PersonaRESTProtocol(restConfig as PersonaRESTProtocolConfig);\n case 'webrtc':\n const webrtcConfig: PersonaProtocolBaseConfig | true | undefined = _protocols[key];\n if (webrtcConfig === true) {\n return new PersonaWebRTCProtocol({\n webrtcUrl: `${baseWebSocketProtocol}://${baseEndpoint}/webrtc`,\n apiKey: config.apiKey,\n agentId: config.agentId,\n logger,\n });\n }\n return new PersonaWebRTCProtocol(webrtcConfig as PersonaWebRTCProtocolConfig);\n case 'websocket':\n const websocketConfig: PersonaProtocolBaseConfig | true | undefined = _protocols[key];\n if (websocketConfig === true) {\n return new PersonaWebSocketProtocol({\n webSocketUrl: `${baseWebSocketProtocol}://${baseEndpoint}/websocket`,\n apiKey: config.apiKey,\n agentId: config.agentId,\n logger,\n });\n }\n return new PersonaWebSocketProtocol(websocketConfig as PersonaWebSocketProtocolConfig);\n default:\n throw new Error(`Unknown protocol: ${key}`);\n }\n });\n return availableProtocols;\n }\n throw new Error('Invalid protocols configuration');\n }, []);\n\n useEffect(() => {\n if (didMount.current) return;\n\n didMount.current = true;\n logger?.debug(\n 'Initializing protocols: ',\n protocols.map((protocol) => protocol.getName()),\n );\n protocols.forEach((protocol) => {\n protocol.setSession(session);\n protocol.clearListeners();\n protocol.addStatusChangeListener((status: ProtocolStatus) => {\n logger?.debug(`${protocol.getName()} has notified new status: ${status}`);\n protocolsStatus.set(protocol.getName(), status);\n setProtocolsStatus(new Map(protocolsStatus));\n });\n protocol.addMessageListener((message: PersonaMessage) => {\n setMessages((currentConversation) => parseMessages([...currentConversation, ...[{ ...message, protocol: protocol.getName() }]]));\n });\n if (protocol.autostart && protocol.status === 'disconnected') {\n logger?.debug(`Connecting to protocol: ${protocol.getName()}`);\n protocol.connect(session);\n }\n });\n }, [session, protocols, logger, protocolsStatus]);\n\n const onNew = async (message: AppendMessage) => {\n if (message.content[0]?.type !== 'text') throw new Error('Only text messages are supported');\n\n const input = message.content[0].text;\n setMessages((currentConversation) => [...currentConversation, { role: 'user', type: 'text', text: input }]);\n setIsRunning(true);\n\n const protocol = protocols.sort((a, b) => b.getPriority() - a.getPriority()).find((protocol) => protocol.status === 'connected');\n\n await protocol?.send(input);\n\n setIsRunning(false);\n };\n\n const onCancel = useCallback(() => {\n setIsRunning(false);\n setMessages([]);\n setSession('new');\n return Promise.resolve();\n }, []);\n\n const onReload = useCallback(() => {\n return Promise.resolve();\n }, []);\n\n const runtime = useExternalStoreRuntime({\n isRunning,\n messages,\n convertMessage,\n onNew,\n onCancel,\n onReload,\n });\n\n return (\n <PersonaRuntimeContext.Provider value={{ protocols, protocolsStatus }}>\n <AssistantRuntimeProvider runtime={runtime}>{children}</AssistantRuntimeProvider>\n </PersonaRuntimeContext.Provider>\n );\n}\n\nfunction PersonaRuntimeProvider({ children, ...config }: PropsWithChildren<PersonaConfig>) {\n return <PersonaRuntimeProviderInner {...config}>{children}</PersonaRuntimeProviderInner>;\n}\n\nfunction usePersonaRuntime(): PersonaRuntimeContextType {\n const context = useContext(PersonaRuntimeContext);\n if (!context) {\n throw new Error('usePersonaRuntime must be used within a PersonaRuntimeProvider');\n }\n return context;\n}\n\n/**\n * Retrieves a specific protocol instance from the PersonaRuntimeContext.\n *\n * @param protocol - The name of the protocol to use.\n * @returns {PersonaProtocol | null} - The protocol instance or null if not found.\n * @throws {Error} - If the hook is used outside of a PersonaRuntimeProvider.\n */\nfunction usePersonaRuntimeProtocol(protocol: string): PersonaProtocol | null {\n const context = useContext(PersonaRuntimeContext);\n if (!context) {\n throw new Error('usePersonaRuntimeProtocol must be used within a PersonaRuntimeProvider');\n }\n\n const protocolInstance = context.protocols.find((p) => p.getName() === protocol);\n if (!protocolInstance) {\n return null;\n }\n\n const status = context.protocolsStatus.get(protocolInstance.getName());\n\n return {\n ...protocolInstance,\n connect: protocolInstance.connect.bind(protocolInstance),\n disconnect: protocolInstance.disconnect.bind(protocolInstance),\n send: protocolInstance.send.bind(protocolInstance),\n setSession: protocolInstance.setSession.bind(protocolInstance),\n addStatusChangeListener: protocolInstance.addStatusChangeListener.bind(protocolInstance),\n addMessageListener: protocolInstance.addMessageListener.bind(protocolInstance),\n getName: protocolInstance.getName.bind(protocolInstance),\n getPriority: protocolInstance.getPriority.bind(protocolInstance),\n status: status || protocolInstance.status,\n };\n}\n\nfunction usePersonaRuntimeWebRTCProtocol(): PersonaWebRTCProtocol | null {\n return usePersonaRuntimeProtocol('webrtc') as PersonaWebRTCProtocol;\n}\n\nexport { PersonaRuntimeProvider, usePersonaRuntime, usePersonaRuntimeProtocol, usePersonaRuntimeWebRTCProtocol };\nexport type { PersonaMessage, PersonaResponse };\n","interface PersonaLogger {\n log: (message: string, ...args: unknown[]) => void;\n info: (message: string, ...args: unknown[]) => void;\n warn: (message: string, ...args: unknown[]) => void;\n error: (message: string, ...args: unknown[]) => void;\n debug: (message: string, ...args: unknown[]) => void;\n}\n\nclass PersonaConsoleLogger implements PersonaLogger {\n prefix = '[Persona]';\n\n log(message: string, ...args: unknown[]) {\n console.log(`${this.prefix} - ${message}`, ...args);\n }\n\n info(message: string, ...args: unknown[]) {\n console.info(`${this.prefix} - ${message}`, ...args);\n }\n\n warn(message: string, ...args: unknown[]) {\n console.warn(`${this.prefix} - ${message}`, ...args);\n }\n\n error(message: string, ...args: unknown[]) {\n console.error(`${this.prefix} - ${message}`, ...args);\n }\n\n debug(message: string, ...args: unknown[]) {\n console.debug(`${this.prefix} - ${message}`, ...args);\n }\n}\n\nexport { PersonaConsoleLogger };\nexport type { PersonaLogger };\n"],"names":["getComponentNameFromType","type","REACT_CLIENT_REFERENCE","REACT_FRAGMENT_TYPE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","config","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","key","self","source","owner","debugStack","debugTask","REACT_ELEMENT_TYPE","jsxDEVImpl","maybeKey","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","propName","node","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","removeEmptyMessages","messages","message","_a","parseMessages","outputMessages","currentMessage","convertMessage","call","PersonaProtocolBase","__publicField","callback","session","status","notify","PersonaRESTProtocol","apiUrl","apiKey","agentId","sessionId","input","personaResponse","PersonaWebSocketProtocol","sid","webSocketUrl","event","data","error","PersonaWebRTCClient","err","track","remoteAudio","e","channel","msg","offer","metadata","offerMessage","_b","label","localSource","remoteSource","loop","localArray","remoteArray","localAmp","a","b","remoteAmp","PersonaWebRTCProtocol","_c","PersonaRuntimeContext","createContext","PersonaRuntimeProviderInner","dev","_protocols","logger","defaultSession","isRunning","setIsRunning","useState","setMessages","setSession","protocolsStatus","setProtocolsStatus","didMount","useRef","protocols","useMemo","baseEndpoint","baseEndpointProtocol","baseWebSocketProtocol","restConfig","webrtcConfig","websocketConfig","useEffect","protocol","currentConversation","onNew","onCancel","useCallback","onReload","runtime","useExternalStoreRuntime","jsx","AssistantRuntimeProvider","PersonaRuntimeProvider","usePersonaRuntime","context","useContext","usePersonaRuntimeProtocol","protocolInstance","p","usePersonaRuntimeWebRTCProtocol","PersonaConsoleLogger","args"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"bundle.es.js","sources":["../src/exceptions.ts","../src/auth/api-key-auth.ts","../src/http-api.ts","../src/projects/projects-api.ts","../src/agents/agents-api.ts","../src/knowledges/knowledge-base-documents-api.ts","../src/knowledges/knowledge-bases-api.ts","../src/workflows/workflow-executions-api.ts","../src/workflows/workflows-api.ts","../src/credentials/credentials-api.ts","../src/features/feature-templates-api.ts","../src/features/features-api.ts","../src/triggers/trigger-executions-api.ts","../src/triggers/triggers-api.ts","../src/service-prices/service-prices-api.ts","../src/sessions/sessions-api.ts","../src/missions/missions-api.ts","../src/persona-sdk.ts","../src/auth/bearer-token-auth.ts"],"sourcesContent":["export class ApiException extends Error {\n public readonly statusCode: number;\n public readonly body: string;\n\n constructor(statusCode: number, body: string) {\n super(`API Error: ${statusCode} - ${body}`);\n this.statusCode = statusCode;\n this.body = body;\n }\n}\n","import { AuthenticationProvider } from './authentication-provider';\n\nexport class ApiKeyAuthenticationProvider implements AuthenticationProvider {\n constructor(private readonly apiKey: string) {}\n\n applyHeaders(headers: Headers): void {\n headers.set('x-persona-apikey', this.apiKey);\n }\n\n getCredentials(): string {\n return this.apiKey;\n }\n}\n","import { ApiException } from './exceptions';\nimport { AuthenticationProvider } from './auth/authentication-provider';\nimport { ApiKeyAuthenticationProvider } from './auth/api-key-auth';\n\nexport abstract class HttpApi {\n private readonly baseUrl: string;\n private readonly authProvider: AuthenticationProvider;\n\n constructor(baseUrl: string, apiKey: string | AuthenticationProvider) {\n this.baseUrl = baseUrl;\n this.authProvider = typeof apiKey === 'string' ? new ApiKeyAuthenticationProvider(apiKey) : apiKey;\n }\n\n protected getBaseUrl(): string {\n return this.baseUrl;\n }\n\n protected getAuthProvider(): AuthenticationProvider {\n return this.authProvider;\n }\n\n private buildHeaders(): Headers {\n const headers = new Headers();\n headers.set('Content-Type', 'application/json');\n this.authProvider.applyHeaders(headers);\n return headers;\n }\n\n private buildUrl(path: string, params?: Record<string, unknown>): string {\n const url = new URL(this.baseUrl + path);\n if (params) {\n Object.entries(params).forEach(([key, value]) => {\n if (value !== null && value !== undefined) {\n url.searchParams.set(key, String(value));\n }\n });\n }\n return url.toString();\n }\n\n private async handleResponse<T>(response: Response): Promise<T> {\n if (!response.ok) {\n const body = await response.text();\n throw new ApiException(response.status, body);\n }\n const text = await response.text();\n return text ? JSON.parse(text) : (undefined as T);\n }\n\n protected async httpGet<T>(path: string, params?: Record<string, unknown>): Promise<T> {\n const response = await fetch(this.buildUrl(path, params), {\n method: 'GET',\n headers: this.buildHeaders(),\n });\n return this.handleResponse<T>(response);\n }\n\n protected async httpPost<T>(path: string, body?: unknown): Promise<T> {\n const response = await fetch(this.baseUrl + path, {\n method: 'POST',\n headers: this.buildHeaders(),\n body: body ? JSON.stringify(body) : undefined,\n });\n return this.handleResponse<T>(response);\n }\n\n protected async httpPut<T>(path: string, body: unknown): Promise<T> {\n const response = await fetch(this.baseUrl + path, {\n method: 'PUT',\n headers: this.buildHeaders(),\n body: JSON.stringify(body),\n });\n return this.handleResponse<T>(response);\n }\n\n protected async httpPatch<T>(path: string, body: unknown): Promise<T> {\n const response = await fetch(this.baseUrl + path, {\n method: 'PATCH',\n headers: this.buildHeaders(),\n body: JSON.stringify(body),\n });\n return this.handleResponse<T>(response);\n }\n\n protected async httpDelete(path: string): Promise<void> {\n const response = await fetch(this.baseUrl + path, {\n method: 'DELETE',\n headers: this.buildHeaders(),\n });\n if (!response.ok) {\n const body = await response.text();\n throw new ApiException(response.status, body);\n }\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport {\n Project,\n ProjectCreateRequest,\n ProjectUpdateRequest,\n ProjectSubscription,\n ChangeProjectSubscriptionPlanRequest,\n AddProjectSubscriptionCreditsRequest,\n} from './types';\n\nexport class ProjectsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(keyword: string | null, page: number, size: number): Promise<Paginated<Project>> {\n const params: Record<string, unknown> = { page, size };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<Project>>('/projects', params);\n }\n\n async get(projectId: string): Promise<Project> {\n return this.httpGet<Project>('/projects/' + projectId);\n }\n\n async getMine(): Promise<Project> {\n return this.httpGet<Project>('/projects/mine');\n }\n\n async create(request: ProjectCreateRequest): Promise<Project> {\n return this.httpPost<Project>('/projects', request);\n }\n\n async update(request: ProjectUpdateRequest): Promise<Project> {\n return this.httpPut<Project>('/projects/' + request.projectId, request);\n }\n\n async remove(projectId: string): Promise<void> {\n await this.httpDelete('/projects/' + projectId);\n }\n\n async getSubscription(projectId: string): Promise<ProjectSubscription> {\n return this.httpGet<ProjectSubscription>('/projects/' + projectId + '/subscription');\n }\n\n async changeSubscriptionPlan(projectId: string, request: ChangeProjectSubscriptionPlanRequest): Promise<ProjectSubscription> {\n return this.httpPost<ProjectSubscription>('/projects/' + projectId + '/subscription/plan', request);\n }\n\n async addSubscriptionCredits(projectId: string, request: AddProjectSubscriptionCreditsRequest): Promise<ProjectSubscription> {\n return this.httpPost<ProjectSubscription>('/projects/' + projectId + '/subscription/credits', request);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport {\n Agent,\n AgentCreateRequest,\n AgentUpdateRequest,\n SynthesizerVoice,\n Revision,\n} from './types';\n\nexport class AgentsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(keyword?: string | null, page?: number, size?: number): Promise<Paginated<Agent>> {\n const params: Record<string, unknown> = { page, size };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<Agent>>('/agents', params);\n }\n\n async get(agentId: string): Promise<Agent> {\n return this.httpGet<Agent>('/agents/' + agentId);\n }\n\n async create(request: AgentCreateRequest): Promise<Agent> {\n return this.httpPost<Agent>('/agents', request);\n }\n\n async update(request: AgentUpdateRequest): Promise<Agent> {\n return this.httpPut<Agent>('/agents/' + request.id, request);\n }\n\n async remove(agentId: string): Promise<void> {\n await this.httpDelete('/agents/' + agentId);\n }\n\n async getSynthesizerSupportedVoices(synthesizerName: string): Promise<SynthesizerVoice[]> {\n return this.httpGet<SynthesizerVoice[]>('/values/synthesizers/' + synthesizerName + '/voices');\n }\n\n async listRevisions(agentId: string): Promise<Revision[]> {\n return this.httpGet<Revision[]>('/agents/' + agentId + '/revisions');\n }\n\n async getRevision(agentId: string, revisionId: string): Promise<Revision> {\n return this.httpGet<Revision>('/agents/' + agentId + '/revisions/' + revisionId);\n }\n\n async rollback(agentId: string, revisionId: string): Promise<Agent> {\n return this.httpPost<Agent>('/agents/' + agentId + '/revisions/' + revisionId + '/rollback', {});\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport {\n KnowledgeBaseDocument,\n KnowledgeBaseDocumentUploadRequest,\n} from './types';\n\nexport class KnowledgeBaseDocumentsApi extends HttpApi {\n private readonly knowledgeBaseId: string;\n\n constructor(baseUrl: string, auth: string | AuthenticationProvider, knowledgeBaseId: string) {\n super(baseUrl, auth);\n this.knowledgeBaseId = knowledgeBaseId;\n }\n\n async list(keyword?: string | null, page?: number, size?: number): Promise<Paginated<KnowledgeBaseDocument>> {\n const params: Record<string, unknown> = { page, size };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<KnowledgeBaseDocument>>('/knowledge-bases/' + this.knowledgeBaseId + '/documents', params);\n }\n\n async upload(request: KnowledgeBaseDocumentUploadRequest): Promise<KnowledgeBaseDocument> {\n return this.httpPost<KnowledgeBaseDocument>('/knowledge-bases/' + this.knowledgeBaseId + '/documents', request);\n }\n\n async get(documentId: string): Promise<KnowledgeBaseDocument> {\n return this.httpGet<KnowledgeBaseDocument>('/knowledge-bases/' + this.knowledgeBaseId + '/documents/' + documentId);\n }\n\n async reprocess(documentId: string): Promise<KnowledgeBaseDocument> {\n return this.httpPost<KnowledgeBaseDocument>('/knowledge-bases/' + this.knowledgeBaseId + '/documents', { document_id: documentId });\n }\n\n async remove(documentId: string): Promise<void> {\n await this.httpDelete('/knowledge-bases/' + this.knowledgeBaseId + '/documents/' + documentId);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport {\n KnowledgeBase,\n KnowledgeBaseCreateRequest,\n KnowledgeBaseUpdateRequest,\n ChunkResult,\n SearchChunksRequest,\n} from './types';\nimport { KnowledgeBaseDocumentsApi } from './knowledge-base-documents-api';\n\nexport class KnowledgeBasesApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(keyword?: string | null, page?: number, size?: number): Promise<Paginated<KnowledgeBase>> {\n const params: Record<string, unknown> = { page, size };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<KnowledgeBase>>('/knowledge-bases', params);\n }\n\n async get(id: string): Promise<KnowledgeBase> {\n return this.httpGet<KnowledgeBase>('/knowledge-bases/' + id);\n }\n\n async create(request: KnowledgeBaseCreateRequest): Promise<KnowledgeBase> {\n return this.httpPost<KnowledgeBase>('/knowledge-bases', request);\n }\n\n async update(request: KnowledgeBaseUpdateRequest): Promise<KnowledgeBase> {\n return this.httpPut<KnowledgeBase>('/knowledge-bases/' + request.id, request);\n }\n\n async remove(id: string): Promise<void> {\n await this.httpDelete('/knowledge-bases/' + id);\n }\n\n documents(knowledgeBaseId: string): KnowledgeBaseDocumentsApi {\n return new KnowledgeBaseDocumentsApi(this.getBaseUrl(), this.getAuthProvider(), knowledgeBaseId);\n }\n\n async searchChunks(id: string, request: SearchChunksRequest): Promise<ChunkResult[]> {\n return this.httpPost<ChunkResult[]>('/knowledge-bases/' + id + '/search', request);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { Execution, ExecuteRequest } from './types';\n\nexport class WorkflowExecutionsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(workflowId: string, page?: number, size?: number): Promise<Paginated<Execution>> {\n const params: Record<string, unknown> = { page, size };\n return this.httpGet<Paginated<Execution>>('/workflows/' + workflowId + '/executions', params);\n }\n\n async get(workflowId: string, executionId: string): Promise<Execution> {\n return this.httpGet<Execution>('/workflows/' + workflowId + '/executions/' + executionId);\n }\n\n async run(workflowId: string, request: ExecuteRequest): Promise<Execution> {\n return this.httpPost<Execution>('/workflows/' + workflowId + '/executions', request);\n }\n\n async queue(workflowId: string, request: ExecuteRequest): Promise<Execution> {\n return this.httpPost<Execution>('/workflows/' + workflowId + '/executions/queue', request);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { Revision } from '../revisions/types';\nimport { Workflow } from './types';\nimport { WorkflowExecutionsApi } from './workflow-executions-api';\n\nexport class WorkflowsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(keyword?: string | null, page?: number, size?: number): Promise<Paginated<Workflow>> {\n const params: Record<string, unknown> = { page, size };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<Workflow>>('/workflows', params);\n }\n\n async create(workflow: Workflow): Promise<Workflow> {\n return this.httpPost<Workflow>('/workflows', workflow);\n }\n\n async update(workflowId: string, workflow: Workflow): Promise<Workflow> {\n workflow.id = workflowId;\n return this.httpPut<Workflow>('/workflows/' + workflowId, workflow);\n }\n\n async remove(workflowId: string): Promise<void> {\n await this.httpDelete('/workflows/' + workflowId);\n }\n\n async get(workflowId: string): Promise<Workflow> {\n return this.httpGet<Workflow>('/workflows/' + workflowId);\n }\n\n executions(): WorkflowExecutionsApi {\n return new WorkflowExecutionsApi(this.getBaseUrl(), this.getAuthProvider());\n }\n\n async listRevisions(workflowId: string): Promise<Revision[]> {\n return this.httpGet<Revision[]>('/workflows/' + workflowId + '/revisions');\n }\n\n async getRevision(workflowId: string, revisionId: string): Promise<Revision> {\n return this.httpGet<Revision>('/workflows/' + workflowId + '/revisions/' + revisionId);\n }\n\n async rollback(workflowId: string, revisionId: string): Promise<Workflow> {\n return this.httpPost<Workflow>('/workflows/' + workflowId + '/revisions/' + revisionId + '/rollback', {});\n }\n}\n","import { HttpApi } from '../http-api';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport {\n Credentials,\n AuthorizeRequest,\n AuthorizeResponse,\n OAuth2CallbackResponse,\n} from './types';\n\nexport class CredentialsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async authorize(provider: string, request: AuthorizeRequest): Promise<AuthorizeResponse> {\n return this.httpPost<AuthorizeResponse>('/credentials/' + provider + '/authorize', request);\n }\n\n async handleOAuth2Callback(provider: string, code: string, state: string, scope?: string): Promise<OAuth2CallbackResponse> {\n const params: Record<string, unknown> = { code, state };\n if (scope) params.scope = scope;\n return this.httpGet<OAuth2CallbackResponse>('/credentials/' + provider + '/oauth2/callback', params);\n }\n\n async list(): Promise<Credentials[]> {\n return this.httpGet<Credentials[]>('/credentials');\n }\n\n async getByProvider(provider: string): Promise<Credentials[]> {\n return this.httpGet<Credentials[]>('/credentials/' + provider);\n }\n\n async getById(credentialsId: string): Promise<Credentials> {\n return this.httpGet<Credentials>('/credentials/all/' + credentialsId);\n }\n\n async remove(credentialsId: string): Promise<void> {\n await this.httpDelete('/credentials/all/' + credentialsId);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { FeatureTemplate, McpToolsResponse } from './types';\nimport { McpServerConfiguration } from '../agents/types';\n\nexport class FeatureTemplatesApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(keyword?: string | null, page?: number, size?: number): Promise<Paginated<FeatureTemplate>> {\n const params: Record<string, unknown> = { page, size };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<FeatureTemplate>>('/features/templates', params);\n }\n\n async get(templateId: string): Promise<FeatureTemplate> {\n return this.httpGet<FeatureTemplate>('/features/templates/' + templateId);\n }\n\n async create(template: FeatureTemplate): Promise<FeatureTemplate> {\n return this.httpPost<FeatureTemplate>('/features/templates', template);\n }\n\n async update(templateId: string, template: FeatureTemplate): Promise<FeatureTemplate> {\n return this.httpPut<FeatureTemplate>('/features/templates/' + templateId, template);\n }\n\n async patch(templateId: string, template: FeatureTemplate): Promise<FeatureTemplate> {\n return this.httpPatch<FeatureTemplate>('/features/templates/' + templateId, template);\n }\n\n async remove(templateId: string): Promise<void> {\n await this.httpDelete('/features/templates/' + templateId);\n }\n\n async getMcpAvailableTools(configuration: McpServerConfiguration): Promise<McpToolsResponse> {\n return this.httpPost<McpToolsResponse>('/features/templates/mcp/available-tools', configuration);\n }\n}\n","import { AuthenticationProvider } from '../auth/authentication-provider';\nimport { FeatureTemplatesApi } from './feature-templates-api';\n\nexport class FeaturesApi {\n private readonly baseUrl: string;\n private readonly auth: string | AuthenticationProvider;\n\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n this.baseUrl = baseUrl;\n this.auth = auth;\n }\n\n templates(): FeatureTemplatesApi {\n return new FeatureTemplatesApi(this.baseUrl, this.auth);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { TriggerExecutionResult } from './types';\n\nexport class TriggerExecutionsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(triggerId: string, page?: number, size?: number): Promise<Paginated<TriggerExecutionResult>> {\n const params: Record<string, unknown> = { page, size };\n return this.httpGet<Paginated<TriggerExecutionResult>>('/triggers/' + triggerId + '/executions', params);\n }\n\n async execute(triggerId: string, execution: TriggerExecutionResult): Promise<TriggerExecutionResult> {\n return this.httpPost<TriggerExecutionResult>('/triggers/' + triggerId + '/executions', execution);\n }\n\n async get(executionId: string): Promise<TriggerExecutionResult> {\n return this.httpGet<TriggerExecutionResult>('/triggers/executions/' + executionId);\n }\n\n async remove(executionId: string): Promise<void> {\n await this.httpDelete('/triggers/executions/' + executionId);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { Trigger } from './types';\nimport { TriggerExecutionsApi } from './trigger-executions-api';\n\nexport class TriggersApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(keyword?: string | null, page?: number, size?: number): Promise<Paginated<Trigger>> {\n const params: Record<string, unknown> = { page, size };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<Trigger>>('/triggers', params);\n }\n\n async create(trigger: Trigger): Promise<Trigger> {\n return this.httpPost<Trigger>('/triggers', trigger);\n }\n\n async update(triggerId: string, trigger: Trigger): Promise<Trigger> {\n return this.httpPut<Trigger>('/triggers/' + triggerId, trigger);\n }\n\n async remove(triggerId: string): Promise<void> {\n await this.httpDelete('/triggers/' + triggerId);\n }\n\n async get(triggerId: string): Promise<Trigger> {\n return this.httpGet<Trigger>('/triggers/' + triggerId);\n }\n\n executions(): TriggerExecutionsApi {\n return new TriggerExecutionsApi(this.getBaseUrl(), this.getAuthProvider());\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { ServicePrice } from './types';\n\nexport class ServicePricesApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(keyword?: string | null, page?: number, size?: number): Promise<Paginated<ServicePrice>> {\n const params: Record<string, unknown> = { page, size };\n if (keyword) params.keyword = keyword;\n return this.httpGet<Paginated<ServicePrice>>('/service-prices', params);\n }\n\n async get(id: string): Promise<ServicePrice> {\n return this.httpGet<ServicePrice>('/service-prices/' + id);\n }\n\n async create(servicePrice: ServicePrice): Promise<ServicePrice> {\n return this.httpPost<ServicePrice>('/service-prices', servicePrice);\n }\n\n async update(id: string, servicePrice: ServicePrice): Promise<ServicePrice> {\n return this.httpPut<ServicePrice>('/service-prices/' + id, servicePrice);\n }\n\n async remove(id: string): Promise<void> {\n await this.httpDelete('/service-prices/' + id);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { Paginated } from '../paginated';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport {\n Session,\n GenerationRequest,\n GenerationResponse,\n Message,\n CommittedUsage,\n} from './types';\n\nexport class SessionsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(\n keyword?: string | null,\n status?: string | null,\n agentId?: string | null,\n userId?: string | null,\n page?: number,\n size?: number,\n ): Promise<Paginated<Session>> {\n const params: Record<string, unknown> = { page, size };\n if (keyword) params.keyword = keyword;\n if (status) params.status = status;\n if (agentId) params.agentId = agentId;\n if (userId) params.userId = userId;\n return this.httpGet<Paginated<Session>>('/sessions', params);\n }\n\n async get(sessionId: string): Promise<Session> {\n return this.httpGet<Session>('/sessions/' + sessionId);\n }\n\n async getUsage(sessionId: string): Promise<CommittedUsage[]> {\n return this.httpGet<CommittedUsage[]>('/sessions/' + sessionId + '/usage');\n }\n\n async generateMessage(code: string, request: GenerationRequest): Promise<GenerationResponse> {\n return this.httpPost<GenerationResponse>('/sessions/' + code + '/messages', request);\n }\n\n async findMessages(code: string, page?: number, size?: number): Promise<Paginated<Message>> {\n const params: Record<string, unknown> = {};\n if (page !== undefined) params.page = page;\n if (size !== undefined) params.size = size;\n return this.httpGet<Paginated<Message>>('/sessions/' + code + '/messages', params);\n }\n\n async remove(code: string): Promise<void> {\n await this.httpDelete('/sessions/' + code);\n }\n}\n","import { HttpApi } from '../http-api';\nimport { AuthenticationProvider } from '../auth/authentication-provider';\nimport { Mission } from './types';\n\nexport class MissionsApi extends HttpApi {\n constructor(baseUrl: string, auth: string | AuthenticationProvider) {\n super(baseUrl, auth);\n }\n\n async list(projectId?: string | null, status?: string | null, page?: number, size?: number): Promise<Mission[]> {\n const params: Record<string, unknown> = { page, size };\n if (projectId) params.projectId = projectId;\n if (status) params.status = status;\n return this.httpGet<Mission[]>('/missions', params);\n }\n\n async get(missionId: string): Promise<Mission> {\n return this.httpGet<Mission>('/missions/' + missionId);\n }\n\n async create(mission: Mission): Promise<Mission> {\n return this.httpPost<Mission>('/missions', mission);\n }\n\n async update(missionId: string, mission: Mission): Promise<Mission> {\n return this.httpPut<Mission>('/missions/' + missionId, mission);\n }\n\n async remove(missionId: string): Promise<void> {\n await this.httpDelete('/missions/' + missionId);\n }\n\n async generate(missionId: string): Promise<Mission> {\n return this.httpPost<Mission>('/missions/' + missionId + '/generate');\n }\n\n async execute(missionId: string): Promise<Mission> {\n return this.httpPost<Mission>('/missions/' + missionId + '/execute');\n }\n\n async retry(missionId: string): Promise<Mission> {\n return this.httpPost<Mission>('/missions/' + missionId + '/retry');\n }\n\n async replan(missionId: string): Promise<Mission> {\n return this.httpPost<Mission>('/missions/' + missionId + '/replan');\n }\n\n async sendInstruction(missionId: string, instruction: string): Promise<Mission> {\n return this.httpPost<Mission>('/missions/' + missionId + '/instructions', { instruction });\n }\n\n async stop(missionId: string): Promise<Mission> {\n return this.httpPost<Mission>('/missions/' + missionId + '/stop');\n }\n\n async resume(missionId: string): Promise<Mission> {\n return this.httpPost<Mission>('/missions/' + missionId + '/continue');\n }\n}\n","import { AuthenticationProvider } from './auth/authentication-provider';\nimport { ProjectsApi } from './projects/projects-api';\nimport { AgentsApi } from './agents/agents-api';\nimport { KnowledgeBasesApi } from './knowledges/knowledge-bases-api';\nimport { WorkflowsApi } from './workflows/workflows-api';\nimport { CredentialsApi } from './credentials/credentials-api';\nimport { FeaturesApi } from './features/features-api';\nimport { TriggersApi } from './triggers/triggers-api';\nimport { ServicePricesApi } from './service-prices/service-prices-api';\nimport { SessionsApi } from './sessions/sessions-api';\nimport { MissionsApi } from './missions/missions-api';\n\nexport class PersonaSdk {\n private readonly baseUrl: string;\n private readonly workflowsBaseUrl: string;\n\n constructor(baseUrl: string, workflowsBaseUrl: string) {\n this.baseUrl = baseUrl;\n this.workflowsBaseUrl = workflowsBaseUrl;\n }\n\n projects(apiKey: string): ProjectsApi;\n projects(authProvider: AuthenticationProvider): ProjectsApi;\n projects(auth: string | AuthenticationProvider): ProjectsApi {\n return new ProjectsApi(this.baseUrl, auth);\n }\n\n agents(apiKey: string): AgentsApi;\n agents(authProvider: AuthenticationProvider): AgentsApi;\n agents(auth: string | AuthenticationProvider): AgentsApi {\n return new AgentsApi(this.baseUrl, auth);\n }\n\n knowledgeBases(apiKey: string): KnowledgeBasesApi;\n knowledgeBases(authProvider: AuthenticationProvider): KnowledgeBasesApi;\n knowledgeBases(auth: string | AuthenticationProvider): KnowledgeBasesApi {\n return new KnowledgeBasesApi(this.baseUrl, auth);\n }\n\n workflows(apiKey: string): WorkflowsApi;\n workflows(authProvider: AuthenticationProvider): WorkflowsApi;\n workflows(auth: string | AuthenticationProvider): WorkflowsApi {\n return new WorkflowsApi(this.workflowsBaseUrl, auth);\n }\n\n credentials(apiKey: string): CredentialsApi;\n credentials(authProvider: AuthenticationProvider): CredentialsApi;\n credentials(auth: string | AuthenticationProvider): CredentialsApi {\n return new CredentialsApi(this.baseUrl, auth);\n }\n\n features(apiKey: string): FeaturesApi;\n features(authProvider: AuthenticationProvider): FeaturesApi;\n features(auth: string | AuthenticationProvider): FeaturesApi {\n return new FeaturesApi(this.baseUrl, auth);\n }\n\n triggers(apiKey: string): TriggersApi;\n triggers(authProvider: AuthenticationProvider): TriggersApi;\n triggers(auth: string | AuthenticationProvider): TriggersApi {\n return new TriggersApi(this.baseUrl, auth);\n }\n\n servicePrices(apiKey: string): ServicePricesApi;\n servicePrices(authProvider: AuthenticationProvider): ServicePricesApi;\n servicePrices(auth: string | AuthenticationProvider): ServicePricesApi {\n return new ServicePricesApi(this.baseUrl, auth);\n }\n\n sessions(apiKey: string): SessionsApi;\n sessions(authProvider: AuthenticationProvider): SessionsApi;\n sessions(auth: string | AuthenticationProvider): SessionsApi {\n return new SessionsApi(this.baseUrl, auth);\n }\n\n missions(apiKey: string): MissionsApi;\n missions(authProvider: AuthenticationProvider): MissionsApi;\n missions(auth: string | AuthenticationProvider): MissionsApi {\n return new MissionsApi(this.baseUrl, auth);\n }\n}\n","import { AuthenticationProvider } from './authentication-provider';\n\nexport class BearerTokenAuthenticationProvider implements AuthenticationProvider {\n constructor(private readonly token: string) {}\n\n applyHeaders(headers: Headers): void {\n headers.set('Authorization', `Bearer ${this.token}`);\n }\n\n getCredentials(): string {\n return this.token;\n }\n}\n"],"names":["ApiException","statusCode","body","__publicField","ApiKeyAuthenticationProvider","apiKey","headers","HttpApi","baseUrl","path","params","url","key","value","response","text","ProjectsApi","auth","keyword","page","size","projectId","request","AgentsApi","agentId","synthesizerName","revisionId","KnowledgeBaseDocumentsApi","knowledgeBaseId","documentId","KnowledgeBasesApi","id","WorkflowExecutionsApi","workflowId","executionId","WorkflowsApi","workflow","CredentialsApi","provider","code","state","scope","credentialsId","FeatureTemplatesApi","templateId","template","configuration","FeaturesApi","TriggerExecutionsApi","triggerId","execution","TriggersApi","trigger","ServicePricesApi","servicePrice","SessionsApi","status","userId","sessionId","MissionsApi","missionId","mission","instruction","PersonaSdk","workflowsBaseUrl","BearerTokenAuthenticationProvider","token"],"mappings":"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"}