Add Activepieces integration for workflow automation
- Add Activepieces fork with SmoothSchedule custom piece - Create integrations app with Activepieces service layer - Add embed token endpoint for iframe integration - Create Automations page with embedded workflow builder - Add sidebar visibility fix for embed mode - Add list inactive customers endpoint to Public API - Include SmoothSchedule triggers: event created/updated/cancelled - Include SmoothSchedule actions: create/update/cancel events, list resources/services/customers 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"extends": [
|
||||
"../../../../.eslintrc.base.json"
|
||||
],
|
||||
"ignorePatterns": [
|
||||
"!**/*"
|
||||
],
|
||||
"overrides": [
|
||||
{
|
||||
"files": [
|
||||
"*.ts",
|
||||
"*.tsx",
|
||||
"*.js",
|
||||
"*.jsx"
|
||||
],
|
||||
"rules": {}
|
||||
},
|
||||
{
|
||||
"files": [
|
||||
"*.ts",
|
||||
"*.tsx"
|
||||
],
|
||||
"rules": {}
|
||||
},
|
||||
{
|
||||
"files": [
|
||||
"*.js",
|
||||
"*.jsx"
|
||||
],
|
||||
"rules": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
369
activepieces-fork/packages/pieces/community/medullar/README.md
Normal file
369
activepieces-fork/packages/pieces/community/medullar/README.md
Normal file
@@ -0,0 +1,369 @@
|
||||
# pieces-medullar
|
||||
|
||||
Library of [Activepieces](https://www.activepieces.com/) for [Medullar Solutions](https://www.medullar.com)
|
||||
|
||||
## Overview
|
||||
|
||||
`pieces-medullar` is a library designed to integrate Medullar Solutions with the Activepieces framework, enabling seamless automation and extensibility.
|
||||
|
||||
## Features
|
||||
|
||||
- **Extensibility**: Easily integrate with other services.
|
||||
- **Type-Safe**: Built with TypeScript for robust type checking.
|
||||
- **Community-Driven**: Contributions are welcome to enhance its capabilities.
|
||||
|
||||
## Contributing
|
||||
|
||||
We welcome contributions! Please refer to the [Contributing Guide](https://www.activepieces.com/docs/contributing/overview) for more details.
|
||||
|
||||
## License
|
||||
|
||||
This library is released under the [MIT License](https://opensource.org/licenses/MIT).
|
||||
|
||||
## API Documentation
|
||||
|
||||
### Base URL
|
||||
|
||||
`https://api.medullar.com`
|
||||
|
||||
### Authentication
|
||||
|
||||
All endpoints require authentication. Include a valid access token in the `Authorization` header:
|
||||
|
||||
`Authorization: Bearer <your_token_here>`
|
||||
|
||||
### Endpoints
|
||||
|
||||
#### Get User Details
|
||||
|
||||
**GET** `/auth/v1/users/me/`
|
||||
|
||||
Retrieve details about the currently authenticated user.
|
||||
|
||||
* URL: `/auth/v1/users/me/`
|
||||
* Method: GET
|
||||
* Auth required: Yes
|
||||
* Example Response
|
||||
|
||||
```json
|
||||
{
|
||||
"id": 360,
|
||||
"uuid": "7e282906-b487-46d3-9e43-8a4fe5b27407",
|
||||
"username": "marc@medullar.com",
|
||||
"email": "marc@medullar.com",
|
||||
"first_name": "Marc",
|
||||
"last_name": "Llopart",
|
||||
"language": "en",
|
||||
"role": "super_admin",
|
||||
"status": "active",
|
||||
"onboarding_status": "completed",
|
||||
"other_data": {},
|
||||
"salesforce_metadata": {},
|
||||
"is_active": true,
|
||||
"date_joined": "2025-03-06T13:49:50Z",
|
||||
"last_login": "2025-05-08T08:19:43.969447Z",
|
||||
"created_at": "2025-03-06T13:49:50.011260Z",
|
||||
"updated_at": "2025-04-02T16:23:57.557045Z",
|
||||
"devices": null,
|
||||
"company": {
|
||||
"id": 26567447,
|
||||
"uuid": "3d49382e-19cb-431b-90a0-dc8f617436f5",
|
||||
"name": "Medullar Solutions",
|
||||
"stripe_promotion_code": ""
|
||||
},
|
||||
"num_days_until_trial_expiration_date": -1
|
||||
}
|
||||
```
|
||||
|
||||
#### Get User Medullar Spaces
|
||||
|
||||
**GET** `/explorator/v1/spaces/?user={user_uuid}&limit=1000&offset=0`
|
||||
|
||||
Retrieve a list of Medullar spaces associated with a specific user.
|
||||
|
||||
* URL: `/explorator/v1/spaces/`
|
||||
* Method: GET
|
||||
* Query Parameters:
|
||||
* user: UUID of the user
|
||||
* limit: Number of results to return
|
||||
* offset: Pagination offset
|
||||
* Auth required: Yes
|
||||
* Example Response
|
||||
|
||||
```json
|
||||
{
|
||||
"count": 1,
|
||||
"next": null,
|
||||
"previous": null,
|
||||
"results": [
|
||||
{
|
||||
"id": 496,
|
||||
"uuid": "4d6a15d0-246f-447a-b53e-5dd9101d53c6",
|
||||
"name": "Internal Strategy",
|
||||
"is_my_space": true,
|
||||
"context": "Quarterly strategy space including roadmap planning and executive updates.",
|
||||
"questions": [],
|
||||
"expiration_date": "9999-12-31T00:00:00Z",
|
||||
"created_at": "2025-05-05T09:18:28.087134Z",
|
||||
"updated_at": "2025-05-05T09:18:28.087145Z",
|
||||
"records": null,
|
||||
"users": null,
|
||||
"record_count": 0,
|
||||
"company": {
|
||||
"id": 47,
|
||||
"uuid": "3d49382e-19cb-431b-90a0-dc8f617436f5",
|
||||
"name": "Medullar Solutions",
|
||||
"created_at": "2024-02-01T14:05:20.245119Z",
|
||||
"updated_at": "2025-05-07T15:51:56.077837Z"
|
||||
},
|
||||
"role": "owner"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
#### Get Chats in a Space
|
||||
|
||||
**GET** `/explorator/v1/chats/?space={spaceId}&limit=1000&offset=0`
|
||||
|
||||
Get a list of chats within a given Medullar space.
|
||||
|
||||
* URL: `/explorator/v1/chats/`
|
||||
* Method: GET
|
||||
* Query Parameters:
|
||||
* space: ID of the space
|
||||
* limit, offset: Pagination controls
|
||||
* Auth required: Yes
|
||||
* Example response
|
||||
|
||||
```json
|
||||
{
|
||||
"count": 1,
|
||||
"next": null,
|
||||
"previous": null,
|
||||
"results": [
|
||||
{
|
||||
"id": 676,
|
||||
"uuid": "7904e660-ed82-47f1-a8cb-635458c0c0aa",
|
||||
"name": "automated",
|
||||
"description": "",
|
||||
"created_at": "2025-05-07T08:39:35.156881Z",
|
||||
"updated_at": "2025-05-07T08:39:35.484367Z",
|
||||
"space": {
|
||||
"uuid": "1fdda622-c253-4325-bb82-95efd47051fb",
|
||||
"name": "hello"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
#### Create a new record in a Space
|
||||
|
||||
**POST** `/explorator/v1/records/`
|
||||
|
||||
Add a new record to a Medullar space.
|
||||
|
||||
* URL: `/explorator/v1/records/`
|
||||
* Method: POST
|
||||
* Auth required: Yes
|
||||
* Body Parameters (JSON):
|
||||
|
||||
```json
|
||||
{
|
||||
"user": {
|
||||
"uuid": "7e282906-b487-46d3-9e43-8a4fe5b27407"
|
||||
},
|
||||
"spaces": [
|
||||
{
|
||||
"uuid": "1fdda622-c253-4325-bb82-95efd47051fb"
|
||||
}
|
||||
],
|
||||
"data": {
|
||||
"content": "let's add text to a space",
|
||||
"url": ""
|
||||
},
|
||||
"source": "text",
|
||||
"company": {
|
||||
"uuid": "3d49382e-19cb-431b-90a0-dc8f617436f5"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
source can be `text` `url` `file` `image`
|
||||
|
||||
* Example response
|
||||
|
||||
```json
|
||||
{
|
||||
"id": 2859,
|
||||
"uuid": "e50e8d79-02e8-483f-a516-3f93a9f665e9",
|
||||
"name": "let's add text to a space...",
|
||||
"source": "text",
|
||||
"data": {
|
||||
"content": "let's add text to a space",
|
||||
"url": ""
|
||||
},
|
||||
"content_type": "text",
|
||||
"action": "add_to_space",
|
||||
"hash_string": "8664fdeef5dd7b78166f72d2dada6d375a5baebeffe75",
|
||||
"status": "pending",
|
||||
"summary": "",
|
||||
"started_at": null,
|
||||
"finished_at": null,
|
||||
"processing_time": null,
|
||||
"num_retries": 0,
|
||||
"worker_task_id": "",
|
||||
"created_at": "2025-05-08T08:33:25.224377Z",
|
||||
"updated_at": "2025-05-08T08:33:25.228917Z",
|
||||
"company": {
|
||||
"id": 47,
|
||||
"uuid": "3d49382e-19cb-431b-90a0-dc8f617436f5",
|
||||
"name": "Medullar Solutions",
|
||||
"created_at": "2024-02-01T14:05:20.245119Z",
|
||||
"updated_at": "2025-05-07T15:51:56.077837Z"
|
||||
},
|
||||
"user": {
|
||||
"uuid": "7e282906-b487-46d3-9e43-8a4fe5b27407"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### Create a New Chat in a Space
|
||||
|
||||
**POST** `/explorator/v1/chats/`
|
||||
|
||||
Create a new chat thread within a Medullar space.
|
||||
|
||||
* URL: `/explorator/v1/chats/`
|
||||
* Method: POST
|
||||
* Auth required: Yes
|
||||
* Body Parameters (JSON):
|
||||
|
||||
```json
|
||||
{
|
||||
"space": {
|
||||
"uuid": "1fdda622-c253-4325-bb82-95efd47051fb"
|
||||
},
|
||||
"name": "New Chat"
|
||||
}
|
||||
```
|
||||
|
||||
* Example response
|
||||
|
||||
```json
|
||||
{
|
||||
"id": 698,
|
||||
"uuid": "9d5eec19-1e1f-4f7a-90ae-415077a8ae63",
|
||||
"name": "New Chat",
|
||||
"description": "",
|
||||
"created_at": "2025-05-08T08:38:26.426639Z",
|
||||
"updated_at": "2025-05-08T08:38:26.426649Z",
|
||||
"space": {
|
||||
"uuid": "1fdda622-c253-4325-bb82-95efd47051fb",
|
||||
"name": "hello"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### Post a Message in a Chat
|
||||
|
||||
**POST** `/explorator/v1/messages/?chat={chatId}`
|
||||
|
||||
Post a new message to an existing chat in a Medullar space.
|
||||
|
||||
* URL: /explorator/v1/messages/
|
||||
* Query Parameter: chat - ID of the chat
|
||||
* Method: POST
|
||||
* Auth required: Yes
|
||||
|
||||
* Body Parameters (JSON):
|
||||
|
||||
```json
|
||||
{
|
||||
"chat": {
|
||||
"uuid": "9d5eec19-1e1f-4f7a-90ae-415077a8ae63"
|
||||
},
|
||||
"text": "@medullar new chat",
|
||||
"user_email": "marc@medullar.com",
|
||||
"user_uuid": "7e282906-b487-46d3-9e43-8a4fe5b27407",
|
||||
"is_bot": false,
|
||||
"created_at": "2025-05-08T08:38:26.504Z",
|
||||
"is_reasoning_selected": false,
|
||||
"selected_mode": "single_agent",
|
||||
"user_name": "marc"
|
||||
}
|
||||
```
|
||||
|
||||
* Example response
|
||||
|
||||
```
|
||||
{
|
||||
"id": 2319,
|
||||
"uuid": "68fafef2-949a-409c-b7cd-21445f5a241b",
|
||||
"text": "@medullar new chat",
|
||||
"user_uuid": "7e282906-b487-46d3-9e43-8a4fe5b27407",
|
||||
"user_email": "marc@medullar.com",
|
||||
"user_first_name": "Marc",
|
||||
"user_last_name": "Llopart",
|
||||
"is_bot": false,
|
||||
"created_at": "2025-05-08T08:38:26.713567Z",
|
||||
"updated_at": "2025-05-08T08:38:26.713577Z",
|
||||
"is_reasoning_selected": false,
|
||||
"selected_mode": "single_agent",
|
||||
"source": "external_api",
|
||||
"chat": {
|
||||
"uuid": "9d5eec19-1e1f-4f7a-90ae-415077a8ae63",
|
||||
"name": "New Chat"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
source should be `external_api` if you want to get the response in the API call, `internal_api` will return the response in a websocket.
|
||||
|
||||
#### Create a New Space
|
||||
|
||||
**POST** `/explorator/v1/spaces/`
|
||||
|
||||
Create a new Medullar space.
|
||||
|
||||
* URL: `/explorator/v1/spaces/`
|
||||
* Method: POST
|
||||
* Auth required: Yes
|
||||
|
||||
* Body Parameters (JSON):
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "test space",
|
||||
"company": {
|
||||
"uuid": "3d49382e-19cb-431b-90a0-dc8f617436f5"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
* Example response
|
||||
|
||||
```json
|
||||
{
|
||||
"id": 501,
|
||||
"uuid": "415ab840-19b8-49dc-9aa0-d13a84ac5858",
|
||||
"name": "test space",
|
||||
"is_my_space": false,
|
||||
"context": "",
|
||||
"questions": [],
|
||||
"expiration_date": "9999-12-31T00:00:00Z",
|
||||
"created_at": "2025-05-08T08:41:35.786369Z",
|
||||
"updated_at": "2025-05-08T08:41:35.786379Z",
|
||||
"records": null,
|
||||
"users": null,
|
||||
"company": {
|
||||
"id": 47,
|
||||
"uuid": "3d49382e-19cb-431b-90a0-dc8f617436f5",
|
||||
"name": "Medullar Solutions",
|
||||
"created_at": "2024-02-01T14:05:20.245119Z",
|
||||
"updated_at": "2025-05-07T15:51:56.077837Z"
|
||||
},
|
||||
"role": "owner"
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "@activepieces/piece-medullar",
|
||||
"version": "0.2.6"
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"name": "pieces-medullar",
|
||||
"$schema": "../../../../node_modules/nx/schemas/project-schema.json",
|
||||
"sourceRoot": "packages/pieces/community/medullar/src",
|
||||
"projectType": "library",
|
||||
"release": {
|
||||
"version": {
|
||||
"currentVersionResolver": "git-tag",
|
||||
"preserveLocalDependencyProtocols": false,
|
||||
"manifestRootsToUpdate": [
|
||||
"dist/{projectRoot}"
|
||||
]
|
||||
}
|
||||
},
|
||||
"tags": [],
|
||||
"targets": {
|
||||
"build": {
|
||||
"executor": "@nx/js:tsc",
|
||||
"outputs": [
|
||||
"{options.outputPath}"
|
||||
],
|
||||
"options": {
|
||||
"outputPath": "dist/packages/pieces/community/medullar",
|
||||
"tsConfig": "packages/pieces/community/medullar/tsconfig.lib.json",
|
||||
"packageJson": "packages/pieces/community/medullar/package.json",
|
||||
"main": "packages/pieces/community/medullar/src/index.ts",
|
||||
"assets": [
|
||||
"packages/pieces/community/medullar/*.md",
|
||||
{
|
||||
"input": "packages/pieces/community/medullar/src/i18n",
|
||||
"output": "./src/i18n",
|
||||
"glob": "**/!(i18n.json)"
|
||||
}
|
||||
],
|
||||
"buildableProjectDepsInPackageJsonType": "dependencies",
|
||||
"updateBuildableProjectDepsInPackageJson": true
|
||||
},
|
||||
"dependsOn": [
|
||||
"^build",
|
||||
"prebuild"
|
||||
]
|
||||
},
|
||||
"nx-release-publish": {
|
||||
"options": {
|
||||
"packageRoot": "dist/{projectRoot}"
|
||||
}
|
||||
},
|
||||
"lint": {
|
||||
"executor": "@nx/eslint:lint",
|
||||
"outputs": [
|
||||
"{options.outputFile}"
|
||||
]
|
||||
},
|
||||
"prebuild": {
|
||||
"executor": "nx:run-commands",
|
||||
"options": {
|
||||
"cwd": "packages/pieces/community/medullar",
|
||||
"command": "bun install --no-save --silent"
|
||||
},
|
||||
"dependsOn": [
|
||||
"^build"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"AI-powered discovery & insight platform that acts as your extended digital mind": "KI-gestützte Entdeckungs- und Einblicksplattform, die als Ihr erweiterter digitaler Geist fungiert",
|
||||
"Please use your personal **API KEY**. You can generate one in your [Medullar account profile](https://my.medullar.com/my-account), under the **API Keys** section.": "Bitte verwende deinen persönlichen **API KEY**. Du kannst einen in deinem [Medullar Account Profil](https://my.medullar.com/my-account), unter dem **API Keys** Abschnitt generieren.",
|
||||
"Create new Space": "Neuen Raum erstellen",
|
||||
"List Spaces": "Auflistungsräume",
|
||||
"Add Space Record": "Raumdatensatz hinzufügen",
|
||||
"Ask Space": "Raum fragen",
|
||||
"Delete Space": "Raum löschen",
|
||||
"Rename Space": "Raum umbenennen",
|
||||
"Create a new Space.": "Neuen Raum erstellen.",
|
||||
"List all user Spaces": "Alle Benutzerräume auflisten",
|
||||
"Adds a Record into a Space": "Fügt einen Datensatz zu einem Raum hinzu",
|
||||
"Ask anything to a Space": "Fragen Sie etwas an einen Raum",
|
||||
"Delete an existing Space.": "Löschen eines existierenden Bereichs.",
|
||||
"Rename an existing Space.": "Einen existierenden Raum umbenennen.",
|
||||
"Space Name": "Raumname",
|
||||
"Space": "Raum",
|
||||
"Source Type": "Quelltyp",
|
||||
"Content": "Inhalt",
|
||||
"URL": "URL",
|
||||
"Chat": "Chat",
|
||||
"Chat Mode": "Chat-Modus",
|
||||
"Deep Analysis": "Tiefe Analyse",
|
||||
"Message": "Nachricht",
|
||||
"Select an Space": "Wählen Sie einen Raum",
|
||||
"Select source type": "Quelltyp auswählen",
|
||||
"Optional. Content of the record": "Optional. Inhalt des Datensatzes",
|
||||
"Optional. URL of the record": "Optional. URL des Datensatzes",
|
||||
"Optional. Select a Chat where messages will be stored, if not selected, a default chat will be created with the name `automated`": "Optional. Wählen Sie einen Chat aus, in dem Nachrichten gespeichert werden, wenn nicht ausgewählt, wird ein Standardchat mit dem Namen `automated` erstellt",
|
||||
"Select chat mode.": "Chat-Modus auswählen.",
|
||||
"Optional. Enable Deep Analysis to get more accurate results but slower response time": "Optional. Aktiviere Deep Analysis um genauere Ergebnisse zu erhalten, aber langsamere Reaktionszeit",
|
||||
"Message to send to the Space": "Nachricht an den Raum senden",
|
||||
"Text": "Text",
|
||||
"Image": "Bild",
|
||||
"File": "Datei",
|
||||
"MedullaryAI Agent": "MedullaryAI-Agent",
|
||||
"MedullaryAI Agent (xAI Grok)": "MedullaryAI Agent (xAI Grok)",
|
||||
"MedullaryAI Fact Check": "MedullaryAI-Faktenprüfung",
|
||||
"MedullaryAI Researcher": "MedullaryAI-Forscher",
|
||||
"MedullaryAI Sales Researcher": "MedullaryAI Vertriebsforscher",
|
||||
"MedullaryAI Search Agent": "MedullaryAI Suchagent"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"AI-powered discovery & insight platform that acts as your extended digital mind": "Plataforma de descubrimiento y visión impulsada por AIs que actúa como tu mente digital extendida",
|
||||
"Please use your personal **API KEY**. You can generate one in your [Medullar account profile](https://my.medullar.com/my-account), under the **API Keys** section.": "Por favor, utiliza tu **API KEY**. Puedes generar una en tu [perfil de cuenta de Medullar](https://my.medullar.com/my-account), bajo la sección **Llaves API**.",
|
||||
"Create new Space": "Crear nuevo espacio",
|
||||
"List Spaces": "Listar espacios",
|
||||
"Add Space Record": "Añadir registro espacial",
|
||||
"Ask Space": "Preguntar espacio",
|
||||
"Delete Space": "Eliminar espacio",
|
||||
"Rename Space": "Renombrar espacio",
|
||||
"Create a new Space.": "Crear un nuevo espacio.",
|
||||
"List all user Spaces": "Listar todos los espacios de usuario",
|
||||
"Adds a Record into a Space": "Añade un registro a un espacio",
|
||||
"Ask anything to a Space": "Pregunte cualquier cosa a un espacio",
|
||||
"Delete an existing Space.": "Eliminar un espacio existente.",
|
||||
"Rename an existing Space.": "Renombrar un Espacio existente.",
|
||||
"Space Name": "Nombre del espacio",
|
||||
"Space": "Espacio",
|
||||
"Source Type": "Tipo de origen",
|
||||
"Content": "Contenido",
|
||||
"URL": "URL",
|
||||
"Chat": "Chatear",
|
||||
"Chat Mode": "Modo de chat",
|
||||
"Deep Analysis": "Análisis profundo",
|
||||
"Message": "Mensaje",
|
||||
"Select an Space": "Seleccione un espacio",
|
||||
"Select source type": "Seleccionar tipo de fuente",
|
||||
"Optional. Content of the record": "Opcional. Contenido del registro",
|
||||
"Optional. URL of the record": "Opcional. URL del registro",
|
||||
"Optional. Select a Chat where messages will be stored, if not selected, a default chat will be created with the name `automated`": "Opcional. Seleccione un chat donde se almacenarán los mensajes, si no se seleccionan, se creará un chat predeterminado con el nombre 'automated'",
|
||||
"Select chat mode.": "Seleccionar modo de chat.",
|
||||
"Optional. Enable Deep Analysis to get more accurate results but slower response time": "Opcional. Habilitar análisis profundo para obtener resultados más precisos pero tiempo de respuesta más lento",
|
||||
"Message to send to the Space": "Mensaje a enviar al Espacio",
|
||||
"Text": "Texto",
|
||||
"Image": "Imagen",
|
||||
"File": "Archivo",
|
||||
"MedullaryAI Agent": "Agente de MedullaryAI",
|
||||
"MedullaryAI Agent (xAI Grok)": "MedullaryAI Agent (xAI Grok)",
|
||||
"MedullaryAI Fact Check": "Chequeo de Datos de MedullaryAI",
|
||||
"MedullaryAI Researcher": "Investigador de MedullaryAI",
|
||||
"MedullaryAI Sales Researcher": "Investigador de ventas de MedullaryAI",
|
||||
"MedullaryAI Search Agent": "Buscar agente en MedullaryAI"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"AI-powered discovery & insight platform that acts as your extended digital mind": "Une plateforme de découverte et de connaissance basée sur l'IA qui agit comme votre esprit numérique étendu",
|
||||
"Please use your personal **API KEY**. You can generate one in your [Medullar account profile](https://my.medullar.com/my-account), under the **API Keys** section.": "Veuillez utiliser votre **clé d'API**. Vous pouvez en générer un dans votre [profil de compte Medullar](https://my.medullar.com/my-account), dans la section **Clés API**.",
|
||||
"Create new Space": "Créer un nouvel espace",
|
||||
"List Spaces": "Lister les espaces",
|
||||
"Add Space Record": "Ajouter un enregistrement de l'espace",
|
||||
"Ask Space": "Demander un espace",
|
||||
"Delete Space": "Supprimer l'espace",
|
||||
"Rename Space": "Renommer l'espace",
|
||||
"Create a new Space.": "Créer un nouvel espace.",
|
||||
"List all user Spaces": "Lister tous les espaces utilisateur",
|
||||
"Adds a Record into a Space": "Ajoute un enregistrement dans un espace",
|
||||
"Ask anything to a Space": "Demander quoi que ce soit à un espace",
|
||||
"Delete an existing Space.": "Supprimer un espace existant.",
|
||||
"Rename an existing Space.": "Renommer un espace existant.",
|
||||
"Space Name": "Nom de l'espace",
|
||||
"Space": "Espace libre",
|
||||
"Source Type": "Type de source",
|
||||
"Content": "Contenus",
|
||||
"URL": "URL",
|
||||
"Chat": "Discuter",
|
||||
"Chat Mode": "Mode de chat",
|
||||
"Deep Analysis": "Analyse en profondeur",
|
||||
"Message": "Message",
|
||||
"Select an Space": "Sélectionnez un espace",
|
||||
"Select source type": "Sélectionner le type de source",
|
||||
"Optional. Content of the record": "Optionnel. Contenu de l'enregistrement",
|
||||
"Optional. URL of the record": "Optionnel. URL de l'enregistrement",
|
||||
"Optional. Select a Chat where messages will be stored, if not selected, a default chat will be created with the name `automated`": "Optionnel. Sélectionnez un chat où les messages seront stockés, si non sélectionné, un chat par défaut sera créé avec le nom `automatisé`",
|
||||
"Select chat mode.": "Sélectionnez le mode de discussion.",
|
||||
"Optional. Enable Deep Analysis to get more accurate results but slower response time": "Optionnel. Activez l'analyse profonde pour obtenir des résultats plus précis mais un temps de réponse plus lent",
|
||||
"Message to send to the Space": "Message à envoyer à l'espace",
|
||||
"Text": "Texte du texte",
|
||||
"Image": "Image",
|
||||
"File": "Ficher",
|
||||
"MedullaryAI Agent": "Agent MedullaryAI",
|
||||
"MedullaryAI Agent (xAI Grok)": "MedullaryAI Agent (xAI Grok)",
|
||||
"MedullaryAI Fact Check": "Vérification des faits de MedullaryAI",
|
||||
"MedullaryAI Researcher": "Chercheur de MedullaryAI",
|
||||
"MedullaryAI Sales Researcher": "Chercheur commercial MedullaryAI",
|
||||
"MedullaryAI Search Agent": "Agent de recherche MedullaryAI"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"AI-powered discovery & insight platform that acts as your extended digital mind": "拡張デジタルマインドとして機能するAIを搭載したディスカバリー&インサイトプラットフォーム",
|
||||
"Please use your personal **API KEY**. You can generate one in your [Medullar account profile](https://my.medullar.com/my-account), under the **API Keys** section.": "あなたの **API キー** を使用してください。**API キー** セクションの下の [Medullar account profile](https://my.medullar.com/my-account) にそれを生成できます。",
|
||||
"Create new Space": "新しいスペースを作成",
|
||||
"List Spaces": "スペースの一覧",
|
||||
"Add Space Record": "スペースレコードを追加",
|
||||
"Ask Space": "スペースに質問する",
|
||||
"Delete Space": "スペースを削除",
|
||||
"Rename Space": "スペースの名前を変更",
|
||||
"Create a new Space.": "新しいスペースを作成します。",
|
||||
"List all user Spaces": "すべてのユーザースペースを一覧表示する",
|
||||
"Adds a Record into a Space": "スペースにレコードを追加",
|
||||
"Ask anything to a Space": "スペースに質問する",
|
||||
"Delete an existing Space.": "既存スペースを削除します。",
|
||||
"Rename an existing Space.": "既存のスペースの名前を変更します。",
|
||||
"Space Name": "スペース名",
|
||||
"Space": "スペース",
|
||||
"Source Type": "ソースタイプ",
|
||||
"Content": "コンテンツ",
|
||||
"URL": "URL",
|
||||
"Chat": "チャット",
|
||||
"Chat Mode": "チャットモード",
|
||||
"Deep Analysis": "深い分析",
|
||||
"Message": "メッセージ",
|
||||
"Select an Space": "スペースを選択",
|
||||
"Select source type": "ソースの種類を選択",
|
||||
"Optional. Content of the record": "省略可能。レコードの内容",
|
||||
"Optional. URL of the record": "省略可能。 URL of the record",
|
||||
"Optional. Select a Chat where messages will be stored, if not selected, a default chat will be created with the name `automated`": "オプションです。メッセージが保存されるチャットを選択してください。選択されていない場合、`automated` という名前のデフォルトのチャットが作成されます。",
|
||||
"Select chat mode.": "チャットモードを選択",
|
||||
"Optional. Enable Deep Analysis to get more accurate results but slower response time": "省略可能です。より正確な結果を得るためにディープ分析を有効にしますが、応答時間が遅くなります。",
|
||||
"Message to send to the Space": "スペースに送信するメッセージ",
|
||||
"Text": "テキスト",
|
||||
"Image": "画像",
|
||||
"File": "ファイル",
|
||||
"MedullaryAI Agent": "MedullaryAI Agent",
|
||||
"MedullaryAI Agent (xAI Grok)": "MedullaryAI Agent (xAI Grok)",
|
||||
"MedullaryAI Fact Check": "MedullaryAI Fact Check",
|
||||
"MedullaryAI Researcher": "MedullaryAI Research",
|
||||
"MedullaryAI Sales Researcher": "MedullaryAI セールス研究者",
|
||||
"MedullaryAI Search Agent": "MedullaryAI 検索エージェント"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"AI-powered discovery & insight platform that acts as your extended digital mind": "Ontdekking op AI-aangedreven en inzichtsplatform dat fungeert als je uitgebreide digitale geest",
|
||||
"Please use your personal **API KEY**. You can generate one in your [Medullar account profile](https://my.medullar.com/my-account), under the **API Keys** section.": "Gebruik alstublieft uw persoonlijke **API KEY**. U kunt er een genereren in het [Medullar account profiel](https://my.medullar.com/my-account), onder de **API Keys** sectie.",
|
||||
"Create new Space": "Nieuwe ruimte maken",
|
||||
"List Spaces": "Lijst van ruimten",
|
||||
"Add Space Record": "Ruimterecord toevoegen",
|
||||
"Ask Space": "Vraag ruimte",
|
||||
"Delete Space": "Verwijder ruimte",
|
||||
"Rename Space": "Spatie hernoemen",
|
||||
"Create a new Space.": "Maak een nieuwe ruimte aan.",
|
||||
"List all user Spaces": "Laat alle gebruikersruimten zien",
|
||||
"Adds a Record into a Space": "Voegt een record toe in een spatie",
|
||||
"Ask anything to a Space": "Vraag iets aan een spatie",
|
||||
"Delete an existing Space.": "Verwijder een bestaande ruimte.",
|
||||
"Rename an existing Space.": "Hernoem een bestaande ruimte.",
|
||||
"Space Name": "Ruimte Naam",
|
||||
"Space": "Spatiebalk",
|
||||
"Source Type": "Type bron",
|
||||
"Content": "Inhoud",
|
||||
"URL": "URL",
|
||||
"Chat": "Chatten",
|
||||
"Chat Mode": "Chat modus",
|
||||
"Deep Analysis": "Diepe Analyse",
|
||||
"Message": "bericht",
|
||||
"Select an Space": "Selecteer een ruimte",
|
||||
"Select source type": "Selecteer het type bron",
|
||||
"Optional. Content of the record": "Optioneel. Inhoud van het record",
|
||||
"Optional. URL of the record": "Optioneel. URL van het record",
|
||||
"Optional. Select a Chat where messages will be stored, if not selected, a default chat will be created with the name `automated`": "Optioneel. Selecteer een Chat waar berichten worden opgeslagen, indien niet geselecteerd, zal een standaard chat worden gemaakt met de naam 'automatisch'",
|
||||
"Select chat mode.": "Selecteer de chatmodus.",
|
||||
"Optional. Enable Deep Analysis to get more accurate results but slower response time": "Optioneel. Schakel Diepe Analyse in om nauwkeuriger resultaten te krijgen, maar tragere responstijd",
|
||||
"Message to send to the Space": "Bericht te verzenden naar de ruimte",
|
||||
"Text": "Tekstveld",
|
||||
"Image": "Afbeelding",
|
||||
"File": "Bestand",
|
||||
"MedullaryAI Agent": "MedullaryAI Agent",
|
||||
"MedullaryAI Agent (xAI Grok)": "MedullaryAI Agent (xAI Grok)",
|
||||
"MedullaryAI Fact Check": "MedullaryAI Fact Controle",
|
||||
"MedullaryAI Researcher": "MedullaryAI Onderzoeker",
|
||||
"MedullaryAI Sales Researcher": "MedullaryAI Verkoper Onderzoeker",
|
||||
"MedullaryAI Search Agent": "MedullaryAI Zoek Agent"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"AI-powered discovery & insight platform that acts as your extended digital mind": "Plataforma de descoberta e visão de IA que atua como sua mente digital estendida",
|
||||
"Please use your personal **API KEY**. You can generate one in your [Medullar account profile](https://my.medullar.com/my-account), under the **API Keys** section.": "Por favor, use sua **CHAVE API** pessoal. Você pode gerar uma em seu [perfil de conta Medular](https://my.medullar.com/my-account), sob a seção **Chaves API**.",
|
||||
"Create new Space": "Criar novo Espaço",
|
||||
"List Spaces": "Listar Espaços",
|
||||
"Add Space Record": "Adicionar Gravação de Espaço",
|
||||
"Ask Space": "Perguntar espaço",
|
||||
"Delete Space": "Excluir Espaço",
|
||||
"Rename Space": "Renomear Espaço",
|
||||
"Create a new Space.": "Crie um novo Espaço.",
|
||||
"List all user Spaces": "Listar todos os espaços de usuário",
|
||||
"Adds a Record into a Space": "Adiciona um Registro em um Espaço",
|
||||
"Ask anything to a Space": "Pergunte qualquer coisa a um Espaço",
|
||||
"Delete an existing Space.": "Apague um Espaço existente.",
|
||||
"Rename an existing Space.": "Renomear um Espaço existente.",
|
||||
"Space Name": "Nome do Espaço",
|
||||
"Space": "Sala",
|
||||
"Source Type": "Tipo de origem",
|
||||
"Content": "Conteúdo",
|
||||
"URL": "URL:",
|
||||
"Chat": "Bate-papo",
|
||||
"Chat Mode": "Modo Bate-papo",
|
||||
"Deep Analysis": "Análise profunda",
|
||||
"Message": "mensagem",
|
||||
"Select an Space": "Selecione um Espaço",
|
||||
"Select source type": "Selecionar tipo de origem",
|
||||
"Optional. Content of the record": "Opcional. Conteúdo do registro",
|
||||
"Optional. URL of the record": "Opcional. URL do registro",
|
||||
"Optional. Select a Chat where messages will be stored, if not selected, a default chat will be created with the name `automated`": "Opcional. Selecione um chat onde as mensagens serão armazenadas, se não selecionadas, um chat padrão será criado com o nome `automated`",
|
||||
"Select chat mode.": "Selecionar Modo de Bate-Papo.",
|
||||
"Optional. Enable Deep Analysis to get more accurate results but slower response time": "Opcional. Ative a Análise Profunda para obter resultados mais precisos, mas o tempo de resposta mais lento",
|
||||
"Message to send to the Space": "Mensagem a enviar para o Espaço",
|
||||
"Text": "texto",
|
||||
"Image": "Imagem:",
|
||||
"File": "Arquivo",
|
||||
"MedullaryAI Agent": "Agente MedullaryAI",
|
||||
"MedullaryAI Agent (xAI Grok)": "MedullaryAI Agent (xAI Grok)",
|
||||
"MedullaryAI Fact Check": "Verificação do Fato MedullaryIA",
|
||||
"MedullaryAI Researcher": "Pesquisador MedullaryAI",
|
||||
"MedullaryAI Sales Researcher": "Pesquisador de vendas MedullaryAI",
|
||||
"MedullaryAI Search Agent": "Agente de busca MedullaryAI"
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"Medullar": "Медуллар",
|
||||
"AI-powered discovery & insight platform that acts as your extended digital mind": "Платформа с поддержкой AI и проницаемость, которая служит вашим расширенным цифровым умом",
|
||||
"Please use your personal **API KEY**. You can generate one in your [Medullar account profile](https://my.medullar.com/my-account), under the **API Keys** section.": "Пожалуйста, используйте ваш персональный **API KEY**. Вы можете создать его в вашем [профиле аккаунта Medulla](https://my.medullar.com/my-account), в разделе **API Keys**.",
|
||||
"Create new Space": "Создать новое пространство",
|
||||
"List Spaces": "Пробелы списка",
|
||||
"Add Space Record": "Добавить пробел записи",
|
||||
"Ask Space": "Пробел",
|
||||
"Create a new Space.": "Создать новый раздел.",
|
||||
"List all user Spaces": "Список всех пользовательских областей",
|
||||
"Adds a Record into a Space": "Добавляет запись в пробел",
|
||||
"Ask anything to a Space": "Спросите что-либо пробелу",
|
||||
"Space Name": "Название области",
|
||||
"Space": "Пространство",
|
||||
"Source Type": "Тип источника",
|
||||
"Content": "Содержание",
|
||||
"URL": "URL",
|
||||
"Chat": "Чат",
|
||||
"Chat Mode": "Режим чата",
|
||||
"Deep Analysis": "Глубокий анализ",
|
||||
"Message": "Сообщение",
|
||||
"Select an Space": "Выберите пробел",
|
||||
"Select source type": "Выберите тип источника",
|
||||
"Optional. Content of the record": "Необязательно. Содержимое записи",
|
||||
"Optional. URL of the record": "Необязательный URL записи",
|
||||
"Optional. Select a Chat where messages will be stored, if not selected, a default chat will be created with the name `automated`": "Необязательно. Выберите чат, в котором будут храниться сообщения, если не выбрано, будет создан чат по умолчанию с именем `automated`",
|
||||
"Select chat mode.": "Выберите режим чата.",
|
||||
"Optional. Enable Deep Analysis to get more accurate results but slower response time": "Необязательно. Включите глубокий анализ, чтобы получить более точные результаты, но замедлить время ответа",
|
||||
"Message to send to the Space": "Сообщение для отправки в сообщество",
|
||||
"Text": "Текст",
|
||||
"Image": "Изображение",
|
||||
"File": "Файл",
|
||||
"Single AI Agent": "Агент ИИ",
|
||||
"Basic AI Chat": "Базовый ИИ Чат"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"AI-powered discovery & insight platform that acts as your extended digital mind": "AI-powered discovery & insight platform that acts as your extended digital mind",
|
||||
"Please use your personal **API KEY**. You can generate one in your [Medullar account profile](https://my.medullar.com/my-account), under the **API Keys** section.": "Please use your personal **API KEY**. You can generate one in your [Medullar account profile](https://my.medullar.com/my-account), under the **API Keys** section.",
|
||||
"Create new Space": "Create new Space",
|
||||
"List Spaces": "List Spaces",
|
||||
"Add Space Record": "Add Space Record",
|
||||
"Ask Space": "Ask Space",
|
||||
"Delete Space": "Delete Space",
|
||||
"Rename Space": "Rename Space",
|
||||
"Create a new Space.": "Create a new Space.",
|
||||
"List all user Spaces": "List all user Spaces",
|
||||
"Adds a Record into a Space": "Adds a Record into a Space",
|
||||
"Ask anything to a Space": "Ask anything to a Space",
|
||||
"Delete an existing Space.": "Delete an existing Space.",
|
||||
"Rename an existing Space.": "Rename an existing Space.",
|
||||
"Space Name": "Space Name",
|
||||
"Space": "Space",
|
||||
"Source Type": "Source Type",
|
||||
"Content": "Content",
|
||||
"URL": "URL",
|
||||
"Chat": "Chat",
|
||||
"Chat Mode": "Chat Mode",
|
||||
"Deep Analysis": "Deep Analysis",
|
||||
"Message": "Message",
|
||||
"Select an Space": "Select an Space",
|
||||
"Select source type": "Select source type",
|
||||
"Optional. Content of the record": "Optional. Content of the record",
|
||||
"Optional. URL of the record": "Optional. URL of the record",
|
||||
"Optional. Select a Chat where messages will be stored, if not selected, a default chat will be created with the name `automated`": "Optional. Select a Chat where messages will be stored, if not selected, a default chat will be created with the name `automated`",
|
||||
"Select chat mode.": "Select chat mode.",
|
||||
"Optional. Enable Deep Analysis to get more accurate results but slower response time": "Optional. Enable Deep Analysis to get more accurate results but slower response time",
|
||||
"Message to send to the Space": "Message to send to the Space",
|
||||
"Text": "Text",
|
||||
"Image": "Image",
|
||||
"File": "File",
|
||||
"MedullaryAI Agent": "MedullaryAI Agent",
|
||||
"MedullaryAI Agent (xAI Grok)": "MedullaryAI Agent (xAI Grok)",
|
||||
"MedullaryAI Fact Check": "MedullaryAI Fact Check",
|
||||
"MedullaryAI Researcher": "MedullaryAI Researcher",
|
||||
"MedullaryAI Sales Researcher": "MedullaryAI Sales Researcher",
|
||||
"MedullaryAI Search Agent": "MedullaryAI Search Agent"
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"Medullar": "Medullar",
|
||||
"AI-powered discovery & insight platform that acts as your extended digital mind": "AI-powered discovery & insight platform that acts as your extended digital mind",
|
||||
"Please use your personal **API KEY**. You can generate one in your [Medullar account profile](https://my.medullar.com/my-account), under the **API Keys** section.": "Please use your personal **API KEY**. You can generate one in your [Medullar account profile](https://my.medullar.com/my-account), under the **API Keys** section.",
|
||||
"Create new Space": "Create new Space",
|
||||
"List Spaces": "List Spaces",
|
||||
"Add Space Record": "Add Space Record",
|
||||
"Ask Space": "Ask Space",
|
||||
"Create a new Space.": "Create a new Space.",
|
||||
"List all user Spaces": "List all user Spaces",
|
||||
"Adds a Record into a Space": "Adds a Record into a Space",
|
||||
"Ask anything to a Space": "Ask anything to a Space",
|
||||
"Space Name": "Space Name",
|
||||
"Space": "Space",
|
||||
"Source Type": "Source Type",
|
||||
"Content": "Content",
|
||||
"URL": "URL",
|
||||
"Chat": "Chat",
|
||||
"Chat Mode": "Chat Mode",
|
||||
"Deep Analysis": "Deep Analysis",
|
||||
"Message": "Message",
|
||||
"Select an Space": "Select an Space",
|
||||
"Select source type": "Select source type",
|
||||
"Optional. Content of the record": "Optional. Content of the record",
|
||||
"Optional. URL of the record": "Optional. URL of the record",
|
||||
"Optional. Select a Chat where messages will be stored, if not selected, a default chat will be created with the name `automated`": "Optional. Select a Chat where messages will be stored, if not selected, a default chat will be created with the name `automated`",
|
||||
"Select chat mode.": "Select chat mode.",
|
||||
"Optional. Enable Deep Analysis to get more accurate results but slower response time": "Optional. Enable Deep Analysis to get more accurate results but slower response time",
|
||||
"Message to send to the Space": "Message to send to the Space",
|
||||
"Text": "Text",
|
||||
"Image": "Image",
|
||||
"File": "File",
|
||||
"Single AI Agent": "Single AI Agent",
|
||||
"Basic AI Chat": "Basic AI Chat"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"AI-powered discovery & insight platform that acts as your extended digital mind": "AI-powered discovery & insight platform that acts as your extended digital mind",
|
||||
"Please use your personal **API KEY**. You can generate one in your [Medullar account profile](https://my.medullar.com/my-account), under the **API Keys** section.": "Please use your personal **API KEY**. You can generate one in your [Medullar account profile](https://my.medullar.com/my-account), under the **API Keys** section.",
|
||||
"Create new Space": "Create new Space",
|
||||
"List Spaces": "List Spaces",
|
||||
"Add Space Record": "Add Space Record",
|
||||
"Ask Space": "Ask Space",
|
||||
"Delete Space": "Delete Space",
|
||||
"Rename Space": "Rename Space",
|
||||
"Create a new Space.": "Create a new Space.",
|
||||
"List all user Spaces": "List all user Spaces",
|
||||
"Adds a Record into a Space": "Adds a Record into a Space",
|
||||
"Ask anything to a Space": "Ask anything to a Space",
|
||||
"Delete an existing Space.": "Delete an existing Space.",
|
||||
"Rename an existing Space.": "Rename an existing Space.",
|
||||
"Space Name": "Space Name",
|
||||
"Space": "Space",
|
||||
"Source Type": "Source Type",
|
||||
"Content": "Content",
|
||||
"URL": "URL",
|
||||
"Chat": "Chat",
|
||||
"Chat Mode": "Chat Mode",
|
||||
"Deep Analysis": "Deep Analysis",
|
||||
"Message": "Message",
|
||||
"Select an Space": "Select an Space",
|
||||
"Select source type": "Select source type",
|
||||
"Optional. Content of the record": "Optional. Content of the record",
|
||||
"Optional. URL of the record": "Optional. URL of the record",
|
||||
"Optional. Select a Chat where messages will be stored, if not selected, a default chat will be created with the name `automated`": "Optional. Select a Chat where messages will be stored, if not selected, a default chat will be created with the name `automated`",
|
||||
"Select chat mode.": "Select chat mode.",
|
||||
"Optional. Enable Deep Analysis to get more accurate results but slower response time": "Optional. Enable Deep Analysis to get more accurate results but slower response time",
|
||||
"Message to send to the Space": "Message to send to the Space",
|
||||
"Text": "文本",
|
||||
"Image": "Image",
|
||||
"File": "文件",
|
||||
"MedullaryAI Agent": "MedullaryAI Agent",
|
||||
"MedullaryAI Agent (xAI Grok)": "MedullaryAI Agent (xAI Grok)",
|
||||
"MedullaryAI Fact Check": "MedullaryAI Fact Check",
|
||||
"MedullaryAI Researcher": "MedullaryAI Researcher",
|
||||
"MedullaryAI Sales Researcher": "MedullaryAI Sales Researcher",
|
||||
"MedullaryAI Search Agent": "MedullaryAI Search Agent"
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
import { createPiece, PieceAuth } from '@activepieces/pieces-framework';
|
||||
import { createSpace } from './lib/actions/create-space';
|
||||
import { listSpaces } from './lib/actions/list-spaces';
|
||||
import { addSpaceRecord } from './lib/actions/add-space-record';
|
||||
import { askSpace } from './lib/actions/ask-space';
|
||||
import { deleteSpace } from './lib/actions/delete-space';
|
||||
import { renameSpace } from './lib/actions/rename-space';
|
||||
import { PieceCategory } from '@activepieces/shared';
|
||||
|
||||
export const medullarAuth = PieceAuth.SecretText({
|
||||
displayName: 'API Key',
|
||||
required: true,
|
||||
description: 'Please use your personal **API KEY**. You can generate one in your [Medullar account profile](https://my.medullar.com/my-account), under the **API Keys** section.',
|
||||
});
|
||||
|
||||
export const medullar = createPiece({
|
||||
displayName: 'Medullar',
|
||||
description:
|
||||
'AI-powered discovery & insight platform that acts as your extended digital mind',
|
||||
auth: medullarAuth,
|
||||
minimumSupportedRelease: '0.36.1',
|
||||
logoUrl:
|
||||
'https://cdn.activepieces.com/pieces/medullar.png',
|
||||
authors: ['mllopart'],
|
||||
actions: [createSpace, listSpaces, addSpaceRecord, askSpace, deleteSpace, renameSpace],
|
||||
triggers: [],
|
||||
categories: [
|
||||
PieceCategory.ARTIFICIAL_INTELLIGENCE,
|
||||
PieceCategory.PRODUCTIVITY,
|
||||
],
|
||||
});
|
||||
@@ -0,0 +1,86 @@
|
||||
import { medullarAuth } from '../../index';
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
|
||||
import { getUser, medullarCommon, medullarPropsCommon } from '../common';
|
||||
|
||||
export const addSpaceRecord = createAction({
|
||||
auth: medullarAuth,
|
||||
name: 'addSpaceRecord',
|
||||
displayName: 'Add Space Record',
|
||||
description: 'Adds a Record into a Space',
|
||||
props: {
|
||||
spaceId: medullarPropsCommon.spaceId,
|
||||
sourceType: Property.StaticDropdown({
|
||||
displayName: 'Source Type',
|
||||
description: 'Select source type',
|
||||
required: true,
|
||||
options: {
|
||||
options: [
|
||||
{
|
||||
label: 'URL',
|
||||
value: 'url',
|
||||
},
|
||||
{
|
||||
label: 'Text',
|
||||
value: 'text',
|
||||
},
|
||||
{
|
||||
label: 'Image',
|
||||
value: 'image',
|
||||
},
|
||||
{
|
||||
label: 'File',
|
||||
value: 'file',
|
||||
},
|
||||
],
|
||||
},
|
||||
}),
|
||||
content: Property.LongText({
|
||||
displayName: 'Content',
|
||||
description: 'Optional. Content of the record',
|
||||
required: false,
|
||||
}),
|
||||
url: Property.ShortText({
|
||||
displayName: 'URL',
|
||||
description: 'Optional. URL of the record',
|
||||
required: false,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const userData = await getUser(context.auth);
|
||||
|
||||
let url = ' ';
|
||||
let content = ' ';
|
||||
if (context.propsValue['url'] != null) url = context.propsValue['url'];
|
||||
if (context.propsValue['content'] != null)
|
||||
content = context.propsValue['content'];
|
||||
|
||||
const spaceResponse = await httpClient.sendRequest({
|
||||
method: HttpMethod.POST,
|
||||
url: `${medullarCommon.aiUrl}/records/`,
|
||||
body: {
|
||||
spaces: [
|
||||
{
|
||||
uuid: context.propsValue['spaceId'],
|
||||
},
|
||||
],
|
||||
company: {
|
||||
uuid: userData.company.uuid,
|
||||
},
|
||||
user: {
|
||||
uuid: userData.uuid,
|
||||
},
|
||||
source: context.propsValue['sourceType'],
|
||||
data: {
|
||||
content: content,
|
||||
url: url,
|
||||
},
|
||||
},
|
||||
headers: {
|
||||
Authorization: `Bearer ${context.auth.secret_text}`,
|
||||
},
|
||||
});
|
||||
|
||||
return spaceResponse.body;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,102 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { medullarAuth } from '../../index';
|
||||
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
|
||||
import { getUser, medullarCommon, medullarPropsCommon } from '../common';
|
||||
|
||||
export const askSpace = createAction({
|
||||
auth: medullarAuth,
|
||||
name: 'askSpace',
|
||||
displayName: 'Ask Space',
|
||||
description: 'Ask anything to a Space',
|
||||
props: {
|
||||
spaceId: medullarPropsCommon.spaceId,
|
||||
chatId: medullarPropsCommon.chatId,
|
||||
selectedMode: Property.StaticDropdown({
|
||||
displayName: 'Chat Mode',
|
||||
description: 'Select chat mode.',
|
||||
required: true,
|
||||
options: {
|
||||
options: [
|
||||
{
|
||||
label: 'MedullaryAI Agent',
|
||||
value: 'single_agent',
|
||||
},
|
||||
{
|
||||
label: 'MedullaryAI Agent (xAI Grok)',
|
||||
value: 'single_agent_xai',
|
||||
},
|
||||
{
|
||||
label: 'MedullaryAI Fact Check',
|
||||
value: 'fact_check_agent',
|
||||
},
|
||||
{
|
||||
label: 'MedullaryAI Researcher',
|
||||
value: 'research_agent',
|
||||
},
|
||||
{
|
||||
label: 'MedullaryAI Sales Researcher',
|
||||
value: 'sales_research_agent',
|
||||
},
|
||||
{
|
||||
label: 'MedullaryAI Search Agent',
|
||||
value: '`search_agent`',
|
||||
}
|
||||
],
|
||||
},
|
||||
}),
|
||||
isReasoning: Property.Checkbox({
|
||||
displayName: 'Deep Analysis',
|
||||
description:
|
||||
'Optional. Enable Deep Analysis to get more accurate results but slower response time',
|
||||
required: false,
|
||||
defaultValue: false,
|
||||
}),
|
||||
text: Property.LongText({
|
||||
displayName: 'Message',
|
||||
description: 'Message to send to the Space',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const userData = await getUser(context.auth);
|
||||
let chatId = context.propsValue['chatId'];
|
||||
|
||||
if (chatId == null) {
|
||||
// if no chatId is selected, create a new one
|
||||
const chatResponse = await httpClient.sendRequest({
|
||||
method: HttpMethod.POST,
|
||||
url: `${medullarCommon.aiUrl}/chats/`,
|
||||
body: {
|
||||
name: 'activepieces automated',
|
||||
space: {
|
||||
uuid: context.propsValue['spaceId'],
|
||||
},
|
||||
},
|
||||
headers: {
|
||||
Authorization: `Bearer ${context.auth.secret_text}`,
|
||||
},
|
||||
});
|
||||
chatId = chatResponse.body.uuid;
|
||||
}
|
||||
|
||||
const messageResponse = await httpClient.sendRequest({
|
||||
method: HttpMethod.POST,
|
||||
url: `${medullarCommon.aiUrl}/messages/get_response/?chat=${chatId}`,
|
||||
body: {
|
||||
chat: {
|
||||
uuid: chatId,
|
||||
},
|
||||
text: context.propsValue['text'],
|
||||
is_bot: false,
|
||||
is_reasoning_selected: context.propsValue['isReasoning'],
|
||||
selected_mode: context.propsValue['selectedMode'],
|
||||
source: 'external_api',
|
||||
},
|
||||
headers: {
|
||||
Authorization: `Bearer ${context.auth.secret_text}`,
|
||||
},
|
||||
});
|
||||
|
||||
return messageResponse.body;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,36 @@
|
||||
import { medullarAuth } from '../../index';
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
|
||||
import { medullarCommon, getUser } from '../common';
|
||||
|
||||
export const createSpace = createAction({
|
||||
auth: medullarAuth,
|
||||
name: 'createSpace',
|
||||
displayName: 'Create new Space',
|
||||
description: 'Create a new Space.',
|
||||
props: {
|
||||
space_name: Property.ShortText({
|
||||
displayName: 'Space Name',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const userData = await getUser(context.auth);
|
||||
|
||||
const spaceResponse = await httpClient.sendRequest({
|
||||
method: HttpMethod.POST,
|
||||
url: `${medullarCommon.aiUrl}/spaces/`,
|
||||
body: {
|
||||
name: context.propsValue['space_name'],
|
||||
company: {
|
||||
uuid: userData.company.uuid,
|
||||
},
|
||||
},
|
||||
headers: {
|
||||
Authorization: `Bearer ${context.auth.secret_text}`,
|
||||
},
|
||||
});
|
||||
|
||||
return spaceResponse.body;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,27 @@
|
||||
import { medullarAuth } from '../../index';
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
|
||||
import { medullarCommon } from '../common';
|
||||
import { medullarPropsCommon } from '../common';
|
||||
|
||||
export const deleteSpace = createAction({
|
||||
auth: medullarAuth,
|
||||
name: 'deleteSpace',
|
||||
displayName: 'Delete Space',
|
||||
description: 'Delete an existing Space.',
|
||||
props: {
|
||||
spaceId: medullarPropsCommon.spaceId,
|
||||
},
|
||||
async run(context) {
|
||||
|
||||
await httpClient.sendRequest({
|
||||
method: HttpMethod.DELETE,
|
||||
url: `${medullarCommon.aiUrl}/spaces/${context.propsValue.spaceId}/`,
|
||||
headers: {
|
||||
Authorization: `Bearer ${context.auth.secret_text}`,
|
||||
},
|
||||
});
|
||||
|
||||
return {deleted: true, spaceId: context.propsValue.spaceId};
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,15 @@
|
||||
import { medullarAuth } from '../../index';
|
||||
import { createAction } from '@activepieces/pieces-framework';
|
||||
import { getUserSpaces } from '../common';
|
||||
|
||||
export const listSpaces = createAction({
|
||||
auth: medullarAuth,
|
||||
name: 'listSpaces',
|
||||
displayName: 'List Spaces',
|
||||
description: 'List all user Spaces',
|
||||
props: {},
|
||||
async run(context) {
|
||||
const spaceListResponse = await getUserSpaces(context.auth);
|
||||
return spaceListResponse;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,34 @@
|
||||
import { medullarAuth } from '../../index';
|
||||
import { createAction,Property } from '@activepieces/pieces-framework';
|
||||
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
|
||||
import { medullarCommon } from '../common';
|
||||
import { medullarPropsCommon } from '../common';
|
||||
|
||||
export const renameSpace = createAction({
|
||||
auth: medullarAuth,
|
||||
name: 'renameSpace',
|
||||
displayName: 'Rename Space',
|
||||
description: 'Rename an existing Space.',
|
||||
props: {
|
||||
spaceId: medullarPropsCommon.spaceId,
|
||||
space_name: Property.ShortText({
|
||||
displayName: 'Space Name',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
|
||||
const response = await httpClient.sendRequest({
|
||||
method: HttpMethod.PATCH,
|
||||
url: `${medullarCommon.aiUrl}/spaces/${context.propsValue.spaceId}/`,
|
||||
headers: {
|
||||
Authorization: `Bearer ${context.auth.secret_text}`,
|
||||
},
|
||||
body: {
|
||||
name: context.propsValue.space_name,
|
||||
},
|
||||
});
|
||||
|
||||
return response.body;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,128 @@
|
||||
import { httpClient, HttpMethod } from '@activepieces/pieces-common';
|
||||
import { AppConnectionValueForAuthProperty, Property } from '@activepieces/pieces-framework';
|
||||
import { medullarAuth } from '../..';
|
||||
|
||||
export const medullarCommon = {
|
||||
baseUrl: 'https://api.medullar.com',
|
||||
authUrl: 'https://api.medullar.com/auth/v1',
|
||||
exploratorUrl: 'https://api.medullar.com/explorator/v1',
|
||||
aiUrl: 'https://api.medullar.com/ai/v1',
|
||||
};
|
||||
|
||||
export async function getUser(authentication: AppConnectionValueForAuthProperty<typeof medullarAuth>) {
|
||||
const userResponse = await httpClient.sendRequest({
|
||||
method: HttpMethod.GET,
|
||||
url: `${medullarCommon.authUrl}/users/me/`,
|
||||
headers: {
|
||||
Authorization: `Bearer ${authentication}`,
|
||||
},
|
||||
});
|
||||
|
||||
const userData = userResponse.body;
|
||||
|
||||
if (!userData) {
|
||||
throw new Error('User data not found.');
|
||||
}
|
||||
|
||||
if (!userData.company) {
|
||||
throw new Error('User does not belong to any company.');
|
||||
}
|
||||
|
||||
return userData;
|
||||
}
|
||||
|
||||
export async function getUserSpaces(authentication: AppConnectionValueForAuthProperty<typeof medullarAuth>) {
|
||||
const userData = await getUser(authentication);
|
||||
|
||||
const spaceListResponse = await httpClient.sendRequest({
|
||||
method: HttpMethod.GET,
|
||||
url: `${medullarCommon.aiUrl}/spaces/?user=${userData.uuid}&limit=1000&offset=0`,
|
||||
headers: {
|
||||
Authorization: `Bearer ${authentication.secret_text}`,
|
||||
},
|
||||
});
|
||||
|
||||
return spaceListResponse.body.results;
|
||||
}
|
||||
|
||||
export const medullarPropsCommon = {
|
||||
spaceId: Property.Dropdown<{ name: string; uuid: string },true,typeof medullarAuth>({
|
||||
auth: medullarAuth,
|
||||
displayName: 'Space',
|
||||
description: 'Select an Space',
|
||||
required: true,
|
||||
refreshers: ['auth'],
|
||||
refreshOnSearch: false,
|
||||
options: async ({ auth }) => {
|
||||
const authentication = auth;
|
||||
if (!authentication) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder: 'connect your account first',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
const spaceListResponse = await getUserSpaces(authentication);
|
||||
|
||||
return {
|
||||
disabled: false,
|
||||
options: spaceListResponse
|
||||
.flat()
|
||||
.map((list: { name: string; uuid: string }) => {
|
||||
return {
|
||||
label: list.name,
|
||||
value: list.uuid,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
chatId: Property.Dropdown<{ name: string; uuid: string },false,typeof medullarAuth>({
|
||||
auth: medullarAuth,
|
||||
displayName: 'Chat',
|
||||
description:
|
||||
'Optional. Select a Chat where messages will be stored, if not selected, a default chat will be created with the name `automated`',
|
||||
required: false,
|
||||
refreshers: ['auth', 'spaceId'],
|
||||
refreshOnSearch: false,
|
||||
options: async ({ auth, spaceId }) => {
|
||||
const authentication = auth;
|
||||
if (!authentication) {
|
||||
return {
|
||||
disabled: true,
|
||||
placeholder: 'connect your account first',
|
||||
options: [],
|
||||
};
|
||||
}
|
||||
|
||||
if (!spaceId) {
|
||||
return {
|
||||
disabled: true,
|
||||
options: [],
|
||||
placeholder: 'Please select a Space first',
|
||||
};
|
||||
}
|
||||
|
||||
const chatListResponse = await httpClient.sendRequest({
|
||||
method: HttpMethod.GET,
|
||||
url: `${medullarCommon.aiUrl}/chats/?space=${spaceId}&limit=1000&offset=0`,
|
||||
headers: {
|
||||
Authorization: `Bearer ${authentication}`,
|
||||
},
|
||||
});
|
||||
|
||||
return {
|
||||
disabled: false,
|
||||
options: chatListResponse.body.results
|
||||
.flat()
|
||||
.map((list: { name: string; uuid: string }) => {
|
||||
return {
|
||||
label: list.name,
|
||||
value: list.uuid,
|
||||
};
|
||||
}),
|
||||
};
|
||||
},
|
||||
}),
|
||||
};
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"extends": "../../../../tsconfig.base.json",
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"strict": true,
|
||||
"noImplicitOverride": true,
|
||||
"noImplicitReturns": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"noPropertyAccessFromIndexSignature": true
|
||||
},
|
||||
"files": [],
|
||||
"include": [],
|
||||
"references": [
|
||||
{
|
||||
"path": "./tsconfig.lib.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"outDir": "../../../../dist/out-tsc",
|
||||
"declaration": true,
|
||||
"types": ["node"]
|
||||
},
|
||||
"exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"],
|
||||
"include": ["src/**/*.ts"]
|
||||
}
|
||||
Reference in New Issue
Block a user