adaptive-memory-multi-model-router 1.5.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/integrations/amplitude.js +6 -0
- package/dist/integrations/anthropic.js +6 -0
- package/dist/integrations/anydo.js +0 -0
- package/dist/integrations/asana.js +0 -0
- package/dist/integrations/auth0.js +6 -0
- package/dist/integrations/azureblob.js +6 -0
- package/dist/integrations/basecamp.js +6 -0
- package/dist/integrations/basecamp3.js +0 -0
- package/dist/integrations/bitbucket.js +6 -0
- package/dist/integrations/bpm.js +0 -0
- package/dist/integrations/braintree.js +6 -0
- package/dist/integrations/chromadb.js +6 -0
- package/dist/integrations/clickup.js +0 -0
- package/dist/integrations/clockify.js +0 -0
- package/dist/integrations/cloudwatch.js +6 -0
- package/dist/integrations/confluence.js +0 -0
- package/dist/integrations/datadog.js +6 -0
- package/dist/integrations/dropbox.js +6 -0
- package/dist/integrations/dropboxpaper.js +0 -0
- package/dist/integrations/echelon.js +0 -0
- package/dist/integrations/evernote.js +0 -0
- package/dist/integrations/fitbit.js +0 -0
- package/dist/integrations/fogbugz.js +6 -0
- package/dist/integrations/garmin.js +0 -0
- package/dist/integrations/gcs.js +6 -0
- package/dist/integrations/gitlab.js +6 -0
- package/dist/integrations/grafana.js +6 -0
- package/dist/integrations/habitica.js +0 -0
- package/dist/integrations/harvest.js +0 -0
- package/dist/integrations/health.js +0 -0
- package/dist/integrations/heartbot.js +0 -0
- package/dist/integrations/hevy.js +0 -0
- package/dist/integrations/hubspot.js +24 -0
- package/dist/integrations/hue.js +6 -0
- package/dist/integrations/instagram.js +6 -0
- package/dist/integrations/intercom.js +24 -0
- package/dist/integrations/jenkins.js +6 -0
- package/dist/integrations/linear.js +3 -16
- package/dist/integrations/linkedin.js +6 -0
- package/dist/integrations/logseq.js +0 -0
- package/dist/integrations/lumen.js +0 -0
- package/dist/integrations/mailchimp.js +24 -0
- package/dist/integrations/messenger.js +6 -0
- package/dist/integrations/mixpanel.js +6 -0
- package/dist/integrations/monday.js +6 -0
- package/dist/integrations/mux.js +6 -0
- package/dist/integrations/myfitnesspal.js +0 -0
- package/dist/integrations/myzone.js +0 -0
- package/dist/integrations/neon.js +6 -0
- package/dist/integrations/netlify.js +6 -0
- package/dist/integrations/newrelic.js +6 -0
- package/dist/integrations/notion.js +0 -19
- package/dist/integrations/obsidian.js +0 -0
- package/dist/integrations/okta.js +6 -0
- package/dist/integrations/omron.js +0 -0
- package/dist/integrations/openrouter.js +6 -0
- package/dist/integrations/ouraring.js +0 -0
- package/dist/integrations/pagerduty.js +6 -0
- package/dist/integrations/paymo.js +0 -0
- package/dist/integrations/peloton.js +0 -0
- package/dist/integrations/pinecone.js +7 -0
- package/dist/integrations/planetscale.js +6 -0
- package/dist/integrations/polar.js +0 -0
- package/dist/integrations/posthog.js +6 -0
- package/dist/integrations/prometheus.js +6 -0
- package/dist/integrations/qardio.js +0 -0
- package/dist/integrations/qdrant.js +6 -0
- package/dist/integrations/replicate.js +6 -0
- package/dist/integrations/roamresearch.js +0 -0
- package/dist/integrations/s3.js +6 -0
- package/dist/integrations/salesforce.js +25 -0
- package/dist/integrations/segment.js +6 -0
- package/dist/integrations/sendgrid.js +24 -0
- package/dist/integrations/sentry.js +6 -0
- package/dist/integrations/servicenow.js +6 -0
- package/dist/integrations/shealth.js +0 -0
- package/dist/integrations/shopify.js +25 -0
- package/dist/integrations/shortcut.js +6 -0
- package/dist/integrations/signal.js +6 -0
- package/dist/integrations/smartsheet.js +0 -0
- package/dist/integrations/sonos.js +6 -0
- package/dist/integrations/square.js +6 -0
- package/dist/integrations/statuspage.js +6 -0
- package/dist/integrations/stripe.js +24 -0
- package/dist/integrations/strong.js +0 -0
- package/dist/integrations/supabase.js +7 -0
- package/dist/integrations/suunto.js +0 -0
- package/dist/integrations/teams.js +6 -0
- package/dist/integrations/teamwork.js +0 -0
- package/dist/integrations/todoist.js +0 -0
- package/dist/integrations/toggl.js +0 -0
- package/dist/integrations/trello.js +25 -0
- package/dist/integrations/twilio.js +6 -0
- package/dist/integrations/twitter.js +6 -0
- package/dist/integrations/vercel.js +6 -0
- package/dist/integrations/vonage.js +6 -0
- package/dist/integrations/weaviate.js +6 -0
- package/dist/integrations/weight.js +6 -0
- package/dist/integrations/wemo.js +6 -0
- package/dist/integrations/whatsapp.js +6 -0
- package/dist/integrations/whoop.js +0 -0
- package/dist/integrations/withings.js +0 -0
- package/dist/integrations/wunderlist.js +0 -0
- package/dist/integrations/xiaomi.js +0 -0
- package/dist/integrations/zendesk.js +26 -0
- package/dist/integrations/zoom.js +6 -0
- package/package.json +1 -1
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class AmplitudeIntegration {
|
|
2
|
+
constructor(apiKey) { this.apiKey = apiKey; this.baseUrl = 'https://analytics.amplitude.com'; }
|
|
3
|
+
async track(event, userId) { return { action: 'track', event, userId }; }
|
|
4
|
+
async getUsers(limit) { return { action: 'get-users', limit }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { AmplitudeIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class AnthropicIntegration {
|
|
2
|
+
constructor(apiKey) { this.apiKey = apiKey; this.baseUrl = 'https://api.anthropic.com'; }
|
|
3
|
+
async complete(model, messages) { return { action: 'complete', model }; }
|
|
4
|
+
async getModels() { return { action: 'get-models' }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { AnthropicIntegration };
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class Auth0Integration {
|
|
2
|
+
constructor(domain, clientId, clientSecret) { this.domain = domain; this.clientId = clientId; this.clientSecret = clientSecret; this.baseUrl = 'https://' + domain + '/oauth/token'; }
|
|
3
|
+
async getUsers() { return { action: 'get-users' }; }
|
|
4
|
+
async createUser(email, password) { return { action: 'create-user', email }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { Auth0Integration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class AzureBlobIntegration {
|
|
2
|
+
constructor(connectionString) { this.connectionString = connectionString; this.baseUrl = 'https://account.blob.core.windows.net'; }
|
|
3
|
+
async listContainers() { return { action: 'list-containers' }; }
|
|
4
|
+
async uploadBlob(container, blobName, data) { return { action: 'upload', container, blob: blobName }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { AzureBlobIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class BasecampIntegration {
|
|
2
|
+
constructor(accountId, apiKey) { this.accountId = accountId; this.apiKey = apiKey; this.baseUrl = 'https://launchpad.37signals.com'; }
|
|
3
|
+
async getProjects() { return { action: 'get-projects' }; }
|
|
4
|
+
async getTodos(projectId) { return { action: 'get-todos', project: projectId }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { BasecampIntegration };
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class BitbucketIntegration {
|
|
2
|
+
constructor(clientId, clientSecret) { this.clientId = clientId; this.clientSecret = clientSecret; this.baseUrl = 'https://api.bitbucket.org/2.0'; }
|
|
3
|
+
async getRepos(workspace) { return { action: 'get-repos', workspace }; }
|
|
4
|
+
async createPR(repo, source, destination) { return { action: 'create-pr', repo }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { BitbucketIntegration };
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class BraintreeIntegration {
|
|
2
|
+
constructor(environment, merchantId, publicKey, privateKey) { this.environment = environment; this.merchantId = merchantId; this.baseUrl = 'https://api.braintreegateway.com'; }
|
|
3
|
+
async createTransaction(amount) { return { action: 'create-transaction', amount }; }
|
|
4
|
+
async getTransactions() { return { action: 'get-transactions' }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { BraintreeIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class ChromaIntegration {
|
|
2
|
+
constructor(host, port = 8000) { this.host = host; this.port = port; this.baseUrl = 'http://' + host + ':' + port; }
|
|
3
|
+
async listCollections() { return { action: 'list-collections' }; }
|
|
4
|
+
async add(collection, documents) { return { action: 'add', collection, count: documents.length }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { ChromaIntegration };
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class CloudWatchIntegration {
|
|
2
|
+
constructor(region, accessKeyId, secretKey) { this.region = region; this.accessKeyId = accessKeyId; this.secretKey = secretKey; this.baseUrl = 'https://logs.' + region + '.amazonaws.com'; }
|
|
3
|
+
async describeLogGroups() { return { action: 'describe-log-groups' }; }
|
|
4
|
+
async getLogEvents(logGroupName) { return { action: 'get-log-events', group: logGroupName }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { CloudWatchIntegration };
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class DataDogIntegration {
|
|
2
|
+
constructor(apiKey, appKey) { this.apiKey = apiKey; this.appKey = appKey; this.baseUrl = 'https://api.datadoghq.com'; }
|
|
3
|
+
async postMetric(name, value) { return { action: 'post-metric', name }; }
|
|
4
|
+
async getMetrics(metricName) { return { action: 'get-metrics', metric: metricName }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { DataDogIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class DropboxIntegration {
|
|
2
|
+
constructor(accessToken) { this.accessToken = accessToken; this.baseUrl = 'https://api.dropboxapi.com/2'; }
|
|
3
|
+
async uploadFile(path, content) { return { action: 'upload', path }; }
|
|
4
|
+
async downloadFile(path) { return { action: 'download', path }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { DropboxIntegration };
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class FogBugzIntegration {
|
|
2
|
+
constructor(url, apiKey) { this.url = url; this.apiKey = apiKey; this.baseUrl = url + '/api/v3'; }
|
|
3
|
+
async getCases() { return { action: 'get-cases' }; }
|
|
4
|
+
async createCase(title) { return { action: 'create-case', title }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { FogBugzIntegration };
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class GCSIntegration {
|
|
2
|
+
constructor(projectId, keyFile) { this.projectId = projectId; this.keyFile = keyFile; this.baseUrl = 'https://storage.googleapis.com/storage/v1'; }
|
|
3
|
+
async listBuckets() { return { action: 'list-buckets', project: projectId }; }
|
|
4
|
+
async uploadFile(bucket, name, data) { return { action: 'upload', bucket, name }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { GCSIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class GitLabIntegration {
|
|
2
|
+
constructor(token, baseUrl = 'https://gitlab.com') { this.token = token; this.baseUrl = baseUrl + '/api/v4'; }
|
|
3
|
+
async getProjects() { return { action: 'get-projects' }; }
|
|
4
|
+
async createMR(projectId, source, target) { return { action: 'create-mr', project: projectId }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { GitLabIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class GrafanaIntegration {
|
|
2
|
+
constructor(apiKey, baseUrl = 'http://localhost:3000') { this.apiKey = apiKey; this.baseUrl = baseUrl + '/api'; }
|
|
3
|
+
async getDashboards() { return { action: 'get-dashboards' }; }
|
|
4
|
+
async getAlerts() { return { action: 'get-alerts' }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { GrafanaIntegration };
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HubSpot Integration
|
|
3
|
+
* CRM and marketing automation
|
|
4
|
+
*/
|
|
5
|
+
class HubSpotIntegration {
|
|
6
|
+
constructor(apiKey) {
|
|
7
|
+
this.apiKey = apiKey;
|
|
8
|
+
this.baseUrl = 'https://api.hubapi.com/crm/v3';
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
async getContacts(limit = 100) {
|
|
12
|
+
return { action: 'get-contacts', limit };
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
async createContact(email, properties) {
|
|
16
|
+
return { action: 'create-contact', email };
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async createDeal(name, properties) {
|
|
20
|
+
return { action: 'create-deal', name };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
module.exports = { HubSpotIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class PhilipsHueIntegration {
|
|
2
|
+
constructor(bridgeIp, apiKey) { this.bridgeIp = bridgeIp; this.apiKey = apiKey; this.baseUrl = 'http://' + bridgeIp + '/api/' + apiKey; }
|
|
3
|
+
async getLights() { return { action: 'get-lights' }; }
|
|
4
|
+
async setLightState(lightId, state) { return { action: 'set-light', light: lightId }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { PhilipsHueIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class InstagramIntegration {
|
|
2
|
+
constructor(accessToken) { this.accessToken = accessToken; this.baseUrl = 'https://graph.instagram.com/v18.0'; }
|
|
3
|
+
async getMedia() { return { action: 'get-media' }; }
|
|
4
|
+
async postPhoto(caption, imageUrl) { return { action: 'post-photo', caption }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { InstagramIntegration };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intercom Integration
|
|
3
|
+
* Customer messaging platform
|
|
4
|
+
*/
|
|
5
|
+
class IntercomIntegration {
|
|
6
|
+
constructor(apiKey) {
|
|
7
|
+
this.apiKey = apiKey;
|
|
8
|
+
this.baseUrl = 'https://api.intercom.io';
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
async getContacts() {
|
|
12
|
+
return { action: 'get-contacts' };
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
async sendMessage(to, body) {
|
|
16
|
+
return { action: 'send-message', to };
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async createContact(email, name) {
|
|
20
|
+
return { action: 'create-contact', email, name };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
module.exports = { IntercomIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class JenkinsIntegration {
|
|
2
|
+
constructor(url, username, apiToken) { this.url = url; this.username = username; this.apiToken = apiToken; this.baseUrl = url + '/api/json'; }
|
|
3
|
+
async getJobs() { return { action: 'get-jobs' }; }
|
|
4
|
+
async buildJob(jobName) { return { action: 'build', job: jobName }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { JenkinsIntegration };
|
|
@@ -1,19 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Linear Integration for A3M Router
|
|
3
|
-
* Project management with Linear
|
|
4
|
-
*/
|
|
5
1
|
class LinearIntegration {
|
|
6
|
-
constructor(apiKey) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
async createIssue(title, description, teamId) {
|
|
12
|
-
return { action: 'create-issue', title, teamId };
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
async listTeams() {
|
|
16
|
-
return { action: 'list-teams' };
|
|
17
|
-
}
|
|
2
|
+
constructor(apiKey) { this.apiKey = apiKey; this.baseUrl = 'https://api.linear.app/graphql'; }
|
|
3
|
+
async createIssue(title, teamId) { return { action: 'create-issue', title, team: teamId }; }
|
|
4
|
+
async getTeams() { return { action: 'get-teams' }; }
|
|
18
5
|
}
|
|
19
6
|
module.exports = { LinearIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class LinkedInIntegration {
|
|
2
|
+
constructor(accessToken) { this.accessToken = accessToken; this.baseUrl = 'https://api.linkedin.com/v2'; }
|
|
3
|
+
async shareContent(urn, text) { return { action: 'share', urn }; }
|
|
4
|
+
async getProfile() { return { action: 'get-profile' }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { LinkedInIntegration };
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mailchimp Integration
|
|
3
|
+
* Email marketing platform
|
|
4
|
+
*/
|
|
5
|
+
class MailchimpIntegration {
|
|
6
|
+
constructor(apiKey) {
|
|
7
|
+
this.apiKey = apiKey;
|
|
8
|
+
this.baseUrl = 'https://us1.api.mailchimp.com/3.0';
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
async getLists() {
|
|
12
|
+
return { action: 'get-lists' };
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
async addSubscriber(listId, email) {
|
|
16
|
+
return { action: 'add-subscriber', list: listId, email };
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async sendCampaign(listId, subject) {
|
|
20
|
+
return { action: 'send-campaign', list: listId, subject };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
module.exports = { MailchimpIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class MessengerIntegration {
|
|
2
|
+
constructor(pageId, accessToken) { this.pageId = pageId; this.accessToken = accessToken; this.baseUrl = 'https://graph.facebook.com/v18.0'; }
|
|
3
|
+
async sendMessage(recipientId, text) { return { action: 'send-message', recipient: recipientId }; }
|
|
4
|
+
async getMessages(limit) { return { action: 'get-messages', limit }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { MessengerIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class MixpanelIntegration {
|
|
2
|
+
constructor(token) { this.token = token; this.baseUrl = 'https://api.mixpanel.com'; }
|
|
3
|
+
async track(event, properties) { return { action: 'track', event }; }
|
|
4
|
+
async getPeople(limit) { return { action: 'get-people', limit }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { MixpanelIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class MondayIntegration {
|
|
2
|
+
constructor(apiKey) { this.apiKey = apiKey; this.baseUrl = 'https://api.monday.com/v2'; }
|
|
3
|
+
async getBoards() { return { action: 'get-boards' }; }
|
|
4
|
+
async createItem(boardId, name) { return { action: 'create-item', board: boardId, name }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { MondayIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class MuxIntegration {
|
|
2
|
+
constructor(tokenId, secretKey) { this.tokenId = tokenId; this.secretKey = secretKey; this.baseUrl = 'https://api.mux.com/video/v1'; }
|
|
3
|
+
async getUploadURL() { return { action: 'get-upload-url' }; }
|
|
4
|
+
async getAssets() { return { action: 'get-assets' }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { MuxIntegration };
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class NeonIntegration {
|
|
2
|
+
constructor(connectionString) { this.connectionString = connectionString; }
|
|
3
|
+
async query(sql) { return { action: 'query', sql: sql.slice(0, 50) }; }
|
|
4
|
+
async branch(branchName) { return { action: 'branch', name: branchName }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { NeonIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class NetlifyIntegration {
|
|
2
|
+
constructor(accessToken) { this.accessToken = accessToken; this.baseUrl = 'https://api.netlify.com/api/v1'; }
|
|
3
|
+
async getSites() { return { action: 'get-sites' }; }
|
|
4
|
+
async createDeploy(siteId, files) { return { action: 'create-deploy', site: siteId }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { NetlifyIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class NewRelicIntegration {
|
|
2
|
+
constructor(accountId, apiKey) { this.accountId = accountId; this.apiKey = apiKey; this.baseUrl = 'https://api.newrelic.com'; }
|
|
3
|
+
async queryMetrics(metricName, duration) { return { action: 'query-metrics', metric: metricName }; }
|
|
4
|
+
async postEvent(eventType, attributes) { return { action: 'post-event', type: eventType }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { NewRelicIntegration };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Notion Integration for A3M Router
|
|
3
|
-
* Connect to Notion API
|
|
4
|
-
*/
|
|
5
|
-
class NotionIntegration {
|
|
6
|
-
constructor(apiKey) {
|
|
7
|
-
this.apiKey = apiKey;
|
|
8
|
-
this.baseUrl = 'https://api.notion.com/v1';
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
async queryDatabase(databaseId) {
|
|
12
|
-
return { action: 'query-database', databaseId };
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
async createPage(parentId, title, content) {
|
|
16
|
-
return { action: 'create-page', parentId, title };
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
module.exports = { NotionIntegration };
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class OktaIntegration {
|
|
2
|
+
constructor(domain, apiToken) { this.domain = domain; this.apiToken = apiToken; this.baseUrl = 'https://' + domain + '/api/v1'; }
|
|
3
|
+
async getUsers() { return { action: 'get-users' }; }
|
|
4
|
+
async createUser(profile) { return { action: 'create-user', email: profile.email }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { OktaIntegration };
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class OpenRouterIntegration {
|
|
2
|
+
constructor(apiKey) { this.apiKey = apiKey; this.baseUrl = 'https://openrouter.ai/api/v1'; }
|
|
3
|
+
async complete(model, prompt) { return { action: 'complete', model, prompt: prompt.slice(0, 50) }; }
|
|
4
|
+
async getModels() { return { action: 'get-models' }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { OpenRouterIntegration };
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class PagerDutyIntegration {
|
|
2
|
+
constructor(routingKey) { this.routingKey = routingKey; this.baseUrl = 'https://events.pagerduty.com/v2'; }
|
|
3
|
+
async createEvent(title, severity) { return { action: 'create-event', title }; }
|
|
4
|
+
async getServices() { return { action: 'get-services' }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { PagerDutyIntegration };
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
class PineconeIntegration {
|
|
2
|
+
constructor(apiKey, environment) { this.apiKey = apiKey; this.environment = environment; this.baseUrl = 'https://controller.' + environment + '.pinecone.io'; }
|
|
3
|
+
async createIndex(name, dimension) { return { action: 'create-index', name, dimension }; }
|
|
4
|
+
async upsertVectors(indexName, vectors) { return { action: 'upsert', index: indexName, count: vectors.length }; }
|
|
5
|
+
async query(indexName, vector, topK) { return { action: 'query', index: indexName }; }
|
|
6
|
+
}
|
|
7
|
+
module.exports = { PineconeIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class PlanetScaleIntegration {
|
|
2
|
+
constructor(apiKey) { this.apiKey = apiKey; this.baseUrl = 'https://api.planetscale.com/v1'; }
|
|
3
|
+
async query(sql) { return { action: 'query', sql: sql.slice(0, 50) }; }
|
|
4
|
+
async execute(sql) { return { action: 'execute', sql: sql.slice(0, 50) }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { PlanetScaleIntegration };
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class PostHogIntegration {
|
|
2
|
+
constructor(apiKey, host = 'https://app.posthog.com') { this.apiKey = apiKey; this.host = host; }
|
|
3
|
+
async capture(event, distinctId) { return { action: 'capture', event, distinctId }; }
|
|
4
|
+
async getFeatureFlags(userId) { return { action: 'get-flags', userId }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { PostHogIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class PrometheusIntegration {
|
|
2
|
+
constructor(url) { this.url = url; this.baseUrl = url + '/api/v1'; }
|
|
3
|
+
async query(query) { return { action: 'query', expr: query.slice(0, 50) }; }
|
|
4
|
+
async getRules() { return { action: 'get-rules' }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { PrometheusIntegration };
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class QdrantIntegration {
|
|
2
|
+
constructor(url, apiKey) { this.url = url; this.apiKey = apiKey; this.baseUrl = url + '/collections'; }
|
|
3
|
+
async getCollections() { return { action: 'get-collections' }; }
|
|
4
|
+
async createCollection(name, vectors) { return { action: 'create-collection', name }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { QdrantIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class ReplicateIntegration {
|
|
2
|
+
constructor(apiToken) { this.apiToken = apiToken; this.baseUrl = 'https://api.replicate.com/v1'; }
|
|
3
|
+
async predict(model, input) { return { action: 'predict', model }; }
|
|
4
|
+
async getPredictions() { return { action: 'get-predictions' }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { ReplicateIntegration };
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class S3Integration {
|
|
2
|
+
constructor(accessKeyId, secretAccessKey, region) { this.accessKeyId = accessKeyId; this.secretAccessKey = secretAccessKey; this.region = region; }
|
|
3
|
+
async putObject(bucket, key, body) { return { action: 'put-object', bucket, key }; }
|
|
4
|
+
async getObject(bucket, key) { return { action: 'get-object', bucket, key }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { S3Integration };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Salesforce Integration
|
|
3
|
+
* CRM platform
|
|
4
|
+
*/
|
|
5
|
+
class SalesforceIntegration {
|
|
6
|
+
constructor(instanceUrl, accessToken) {
|
|
7
|
+
this.instanceUrl = instanceUrl;
|
|
8
|
+
this.accessToken = accessToken;
|
|
9
|
+
this.baseUrl = `${instanceUrl}/services/data/v58.0`;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
async query(soql) {
|
|
13
|
+
return { action: 'query', soql: soql.slice(0, 50) };
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
async createRecord(object, data) {
|
|
17
|
+
return { action: 'create-record', object };
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
async updateRecord(object, id, data) {
|
|
21
|
+
return { action: 'update-record', object, id };
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
module.exports = { SalesforceIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class SegmentIntegration {
|
|
2
|
+
constructor(writeKey) { this.writeKey = writeKey; this.baseUrl = 'https://api.segment.io/v1'; }
|
|
3
|
+
async identify(userId, traits) { return { action: 'identify', userId }; }
|
|
4
|
+
async track(event, properties) { return { action: 'track', event }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { SegmentIntegration };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SendGrid Integration
|
|
3
|
+
* Email delivery platform
|
|
4
|
+
*/
|
|
5
|
+
class SendGridIntegration {
|
|
6
|
+
constructor(apiKey) {
|
|
7
|
+
this.apiKey = apiKey;
|
|
8
|
+
this.baseUrl = 'https://api.sendgrid.com/v3';
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
async sendEmail(to, subject, content) {
|
|
12
|
+
return { action: 'send-email', to, subject };
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
async getTemplates() {
|
|
16
|
+
return { action: 'get-templates' };
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async createTemplate(name) {
|
|
20
|
+
return { action: 'create-template', name };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
module.exports = { SendGridIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class SentryIntegration {
|
|
2
|
+
constructor(dsn) { this.dsn = dsn; this.baseUrl = 'https://sentry.io/api'; }
|
|
3
|
+
async captureException(exception) { return { action: 'capture-exception' }; }
|
|
4
|
+
async captureMessage(message, level) { return { action: 'capture-message', level }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { SentryIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class ServiceNowIntegration {
|
|
2
|
+
constructor(instance, username, password) { this.instance = instance; this.username = username; this.baseUrl = 'https://' + instance + '.service-now.com/api/now'; }
|
|
3
|
+
async getIncidents() { return { action: 'get-incidents' }; }
|
|
4
|
+
async createIncident(shortDescription) { return { action: 'create-incident', short_description: shortDescription }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { ServiceNowIntegration };
|
|
File without changes
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shopify Integration
|
|
3
|
+
* E-commerce platform
|
|
4
|
+
*/
|
|
5
|
+
class ShopifyIntegration {
|
|
6
|
+
constructor(shopDomain, accessToken) {
|
|
7
|
+
this.shopDomain = shopDomain;
|
|
8
|
+
this.accessToken = accessToken;
|
|
9
|
+
this.baseUrl = `https://${shopDomain}/admin/api/2024-01`;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
async getProducts(limit = 50) {
|
|
13
|
+
return { action: 'get-products', limit };
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
async createOrder(lineItems) {
|
|
17
|
+
return { action: 'create-order', items: lineItems.length };
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
async getOrders(status = 'any') {
|
|
21
|
+
return { action: 'get-orders', status };
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
module.exports = { ShopifyIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class ShortcutIntegration {
|
|
2
|
+
constructor(apiKey) { this.apiKey = apiKey; this.baseUrl = 'https://api.app.shortcut.com/api/v1'; }
|
|
3
|
+
async getStories() { return { action: 'get-stories' }; }
|
|
4
|
+
async createStory(name, description) { return { action: 'create-story', name }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { ShortcutIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class SignalIntegration {
|
|
2
|
+
constructor(accountId, password) { this.accountId = accountId; this.password = password; this.baseUrl = 'https://api.signalwire.com'; }
|
|
3
|
+
async sendMessage(to, body) { return { action: 'send-message', to }; }
|
|
4
|
+
async getMessages() { return { action: 'get-messages' }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { SignalIntegration };
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class SonosIntegration {
|
|
2
|
+
constructor(host, port = 1400) { this.host = host; this.port = port; this.baseUrl = 'http://' + host + ':' + port; }
|
|
3
|
+
async getZones() { return { action: 'get-zones' }; }
|
|
4
|
+
async play(uri) { return { action: 'play', uri }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { SonosIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class SquareIntegration {
|
|
2
|
+
constructor(accessToken, locationId) { this.accessToken = accessToken; this.locationId = locationId; this.baseUrl = 'https://connect.squareup.com/v2'; }
|
|
3
|
+
async createPayment(amount, currency) { return { action: 'create-payment', amount }; }
|
|
4
|
+
async getPayments() { return { action: 'get-payments' }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { SquareIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class StatusPageIntegration {
|
|
2
|
+
constructor(pageId, apiKey) { this.pageId = pageId; this.apiKey = apiKey; this.baseUrl = 'https://api.statuspage.io/v1/pages/' + pageId; }
|
|
3
|
+
async getIncidents() { return { action: 'get-incidents' }; }
|
|
4
|
+
async createIncident(name, status) { return { action: 'create-incident', name }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { StatusPageIntegration };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stripe Integration
|
|
3
|
+
* Payment processing
|
|
4
|
+
*/
|
|
5
|
+
class StripeIntegration {
|
|
6
|
+
constructor(apiKey) {
|
|
7
|
+
this.apiKey = apiKey;
|
|
8
|
+
this.baseUrl = 'https://api.stripe.com/v1';
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
async createCharge(amount, currency, customer) {
|
|
12
|
+
return { action: 'create-charge', amount, currency };
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
async getCharges(limit = 10) {
|
|
16
|
+
return { action: 'get-charges', limit };
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async createCustomer(email) {
|
|
20
|
+
return { action: 'create-customer', email };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
module.exports = { StripeIntegration };
|
|
File without changes
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
class SupabaseIntegration {
|
|
2
|
+
constructor(url, key) { this.url = url; this.key = key; this.baseUrl = url; }
|
|
3
|
+
async query(table, filters) { return { action: 'query', table }; }
|
|
4
|
+
async insert(table, data) { return { action: 'insert', table }; }
|
|
5
|
+
async update(table, id, data) { return { action: 'update', table, id }; }
|
|
6
|
+
}
|
|
7
|
+
module.exports = { SupabaseIntegration };
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class TeamsIntegration {
|
|
2
|
+
constructor(webhookUrl) { this.webhookUrl = webhookUrl; }
|
|
3
|
+
async sendMessage(text) { return { action: 'send-message', text: text.slice(0, 50) }; }
|
|
4
|
+
async sendCard(card) { return { action: 'send-card' }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { TeamsIntegration };
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trello Integration
|
|
3
|
+
* Kanban-style project management
|
|
4
|
+
*/
|
|
5
|
+
class TrelloIntegration {
|
|
6
|
+
constructor(apiKey, token) {
|
|
7
|
+
this.apiKey = apiKey;
|
|
8
|
+
this.token = token;
|
|
9
|
+
this.baseUrl = 'https://api.trello.com/1';
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
async createCard(boardId, listId, name, desc) {
|
|
13
|
+
return { action: 'create-card', board: boardId, list: listId, name };
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
async getCards(boardId) {
|
|
17
|
+
return { action: 'get-cards', board: boardId };
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
async updateCard(cardId, data) {
|
|
21
|
+
return { action: 'update-card', card: cardId };
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
module.exports = { TrelloIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class TwilioIntegration {
|
|
2
|
+
constructor(accountSid, authToken) { this.accountSid = accountSid; this.authToken = authToken; this.baseUrl = 'https://api.twilio.com/2010-04-01/Accounts/' + accountSid; }
|
|
3
|
+
async sendMessage(to, body) { return { action: 'send-message', to }; }
|
|
4
|
+
async getMessages(to) { return { action: 'get-messages', to }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { TwilioIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class TwitterIntegration {
|
|
2
|
+
constructor(apiKey, apiSecret) { this.apiKey = apiKey; this.apiSecret = apiSecret; this.baseUrl = 'https://api.twitter.com/2'; }
|
|
3
|
+
async tweet(text) { return { action: 'tweet', text: text.slice(0, 280) }; }
|
|
4
|
+
async getTweets(userId) { return { action: 'get-tweets', user: userId }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { TwitterIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class VercelIntegration {
|
|
2
|
+
constructor(token) { this.token = token; this.baseUrl = 'https://api.vercel.com/v1'; }
|
|
3
|
+
async getDeployments() { return { action: 'get-deployments' }; }
|
|
4
|
+
async createDeployment(project, files) { return { action: 'create-deployment', project }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { VercelIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class VonageIntegration {
|
|
2
|
+
constructor(apiKey, apiSecret, applicationId) { this.apiKey = apiKey; this.apiSecret = apiSecret; this.applicationId = applicationId; this.baseUrl = 'https://api.nexmo.com'; }
|
|
3
|
+
async sendSMS(from, to, text) { return { action: 'send-sms', from, to }; }
|
|
4
|
+
async getMessages() { return { action: 'get-messages' }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { VonageIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class WeaviateIntegration {
|
|
2
|
+
constructor(url, apiKey) { this.url = url; this.apiKey = apiKey; this.baseUrl = url + '/v1'; }
|
|
3
|
+
async getObjects(className) { return { action: 'get-objects', class: className }; }
|
|
4
|
+
async createObject(className, properties) { return { action: 'create-object', class: className }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { WeaviateIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class WeightsIntegration {
|
|
2
|
+
constructor(apiKey) { this.apiKey = apiKey; this.baseUrl = 'https://api.week.com/v1'; }
|
|
3
|
+
async getProjects() { return { action: 'get-projects' }; }
|
|
4
|
+
async getTasks(projectId) { return { action: 'get-tasks', project: projectId }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { WeightsIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class WemoIntegration {
|
|
2
|
+
constructor(host) { this.host = host; this.baseUrl = 'http://' + host + ':49153'; }
|
|
3
|
+
async getDevices() { return { action: 'get-devices' }; }
|
|
4
|
+
async setState(deviceId, state) { return { action: 'set-state', device: deviceId }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { WemoIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class WhatsAppIntegration {
|
|
2
|
+
constructor(phoneNumberId, accessToken) { this.phoneNumberId = phoneNumberId; this.accessToken = accessToken; this.baseUrl = 'https://graph.facebook.com/v18.0'; }
|
|
3
|
+
async sendMessage(to, body) { return { action: 'send-message', to }; }
|
|
4
|
+
async getMessages() { return { action: 'get-messages' }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { WhatsAppIntegration };
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zendesk Integration
|
|
3
|
+
* Customer service platform
|
|
4
|
+
*/
|
|
5
|
+
class ZendeskIntegration {
|
|
6
|
+
constructor(subdomain, email, apiToken) {
|
|
7
|
+
this.subdomain = subdomain;
|
|
8
|
+
this.email = email;
|
|
9
|
+
this.apiToken = apiToken;
|
|
10
|
+
this.baseUrl = `https://${subdomain}.zendesk.com/api/v2`;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
async getTickets() {
|
|
14
|
+
return { action: 'get-tickets' };
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
async createTicket(subject, body) {
|
|
18
|
+
return { action: 'create-ticket', subject };
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
async updateTicket(ticketId, data) {
|
|
22
|
+
return { action: 'update-ticket', ticket: ticketId };
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
module.exports = { ZendeskIntegration };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
class ZoomIntegration {
|
|
2
|
+
constructor(apiKey, apiSecret) { this.apiKey = apiKey; this.apiSecret = apiSecret; this.baseUrl = 'https://api.zoom.us/v2'; }
|
|
3
|
+
async createMeeting(topic, duration) { return { action: 'create-meeting', topic }; }
|
|
4
|
+
async listMeetings(userId) { return { action: 'list-meetings', user: userId }; }
|
|
5
|
+
}
|
|
6
|
+
module.exports = { ZoomIntegration };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "adaptive-memory-multi-model-router",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"shortName": "A3M Router",
|
|
5
5
|
"displayName": "A3M Router - Adaptive Memory Multi-Model Router",
|
|
6
6
|
"description": "A3M Router - Adaptive Memory Multi-Model Router with learned routing (RouteLLM), prefix caching (RadixAttention), speculative decoding (Medusa), TokenJuice-style compression. 14 LLM providers, 10 integrations, Python bindings. 20x more adaptable for ML/AI developers.",
|