@mastra/core 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/agents/agent-apis.d.ts +31 -0
  2. package/dist/agents/agent-apis.d.ts.map +1 -0
  3. package/dist/agents/file-logger.d.ts +7 -0
  4. package/dist/agents/file-logger.d.ts.map +1 -0
  5. package/dist/agents/index.d.ts +49 -0
  6. package/dist/agents/index.d.ts.map +1 -0
  7. package/dist/agents/openai/assistant.d.ts +55 -0
  8. package/dist/agents/openai/assistant.d.ts.map +1 -0
  9. package/dist/agents/utils.d.ts +12 -0
  10. package/dist/agents/utils.d.ts.map +1 -0
  11. package/dist/agents/vector-sync.d.ts +46 -0
  12. package/dist/agents/vector-sync.d.ts.map +1 -0
  13. package/dist/agents/vercel/index.d.ts +44 -0
  14. package/dist/agents/vercel/index.d.ts.map +1 -0
  15. package/dist/authenticator.d.ts +1 -0
  16. package/dist/authenticator.d.ts.map +1 -0
  17. package/dist/constants.d.ts +1 -0
  18. package/dist/constants.d.ts.map +1 -0
  19. package/dist/core.cjs.development.js +2140 -354
  20. package/dist/core.cjs.development.js.map +1 -1
  21. package/dist/core.cjs.production.min.js +1 -1
  22. package/dist/core.cjs.production.min.js.map +1 -1
  23. package/dist/core.esm.js +2125 -338
  24. package/dist/core.esm.js.map +1 -1
  25. package/dist/data-access/index.d.ts +1 -0
  26. package/dist/data-access/index.d.ts.map +1 -0
  27. package/dist/framework.d.ts +54 -6
  28. package/dist/framework.d.ts.map +1 -0
  29. package/dist/generated-types/index.d.ts +1 -0
  30. package/dist/generated-types/index.d.ts.map +1 -0
  31. package/dist/index.d.ts +2 -1
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/integration.d.ts +2 -4
  34. package/dist/integration.d.ts.map +1 -0
  35. package/dist/lib/index.d.ts +1 -0
  36. package/dist/lib/index.d.ts.map +1 -0
  37. package/dist/lib/query-builder/constants.d.ts +1 -0
  38. package/dist/lib/query-builder/constants.d.ts.map +1 -0
  39. package/dist/lib/query-builder/filters/sql.d.ts +1 -0
  40. package/dist/lib/query-builder/filters/sql.d.ts.map +1 -0
  41. package/dist/lib/query-builder/schema.d.ts +1 -0
  42. package/dist/lib/query-builder/schema.d.ts.map +1 -0
  43. package/dist/lib/query-builder/sorts/sql.d.ts +1 -0
  44. package/dist/lib/query-builder/sorts/sql.d.ts.map +1 -0
  45. package/dist/lib/query-builder/types.d.ts +1 -0
  46. package/dist/lib/query-builder/types.d.ts.map +1 -0
  47. package/dist/lib/query-builder/utils.d.ts +1 -0
  48. package/dist/lib/query-builder/utils.d.ts.map +1 -0
  49. package/dist/lib/utils/object.d.ts +1 -0
  50. package/dist/lib/utils/object.d.ts.map +1 -0
  51. package/dist/next/callback.d.ts +3 -2
  52. package/dist/next/callback.d.ts.map +1 -0
  53. package/dist/next/connect.d.ts +3 -2
  54. package/dist/next/connect.d.ts.map +1 -0
  55. package/dist/next/index.d.ts +3 -2
  56. package/dist/next/index.d.ts.map +1 -0
  57. package/dist/next/inngest.d.ts +3 -2
  58. package/dist/next/inngest.d.ts.map +1 -0
  59. package/dist/next/utils.d.ts +1 -0
  60. package/dist/next/utils.d.ts.map +1 -0
  61. package/dist/next/webhook.d.ts +3 -2
  62. package/dist/next/webhook.d.ts.map +1 -0
  63. package/dist/prisma/client.d.ts +1 -0
  64. package/dist/prisma/client.d.ts.map +1 -0
  65. package/dist/schemas.d.ts +1 -0
  66. package/dist/schemas.d.ts.map +1 -0
  67. package/dist/service/service.property.d.ts +1 -0
  68. package/dist/service/service.property.d.ts.map +1 -0
  69. package/dist/service/service.record.d.ts +1 -0
  70. package/dist/service/service.record.d.ts.map +1 -0
  71. package/dist/sync-factory.d.ts +1 -0
  72. package/dist/sync-factory.d.ts.map +1 -0
  73. package/dist/sync-fixtures/github.d.ts +1 -0
  74. package/dist/sync-fixtures/github.d.ts.map +1 -0
  75. package/dist/sync-fixtures/stripe.d.ts +1 -0
  76. package/dist/sync-fixtures/stripe.d.ts.map +1 -0
  77. package/dist/types.d.ts +46 -30
  78. package/dist/types.d.ts.map +1 -0
  79. package/dist/utils/errors.d.ts +1 -0
  80. package/dist/utils/errors.d.ts.map +1 -0
  81. package/dist/utils/index.d.ts +1 -0
  82. package/dist/utils/index.d.ts.map +1 -0
  83. package/dist/utils/inngest.d.ts +1 -0
  84. package/dist/utils/inngest.d.ts.map +1 -0
  85. package/dist/vector-access/index.d.ts +7 -0
  86. package/dist/vector-access/index.d.ts.map +1 -0
  87. package/dist/workflows/conditions/constants.d.ts +1 -0
  88. package/dist/workflows/conditions/constants.d.ts.map +1 -0
  89. package/dist/workflows/conditions/types.d.ts +1 -0
  90. package/dist/workflows/conditions/types.d.ts.map +1 -0
  91. package/dist/workflows/handler.d.ts +1 -0
  92. package/dist/workflows/handler.d.ts.map +1 -0
  93. package/dist/workflows/runner.d.ts +1 -0
  94. package/dist/workflows/runner.d.ts.map +1 -0
  95. package/dist/workflows/schemas.d.ts +1 -0
  96. package/dist/workflows/schemas.d.ts.map +1 -0
  97. package/dist/workflows/types.d.ts +1 -0
  98. package/dist/workflows/types.d.ts.map +1 -0
  99. package/dist/workflows/utils.d.ts +1 -0
  100. package/dist/workflows/utils.d.ts.map +1 -0
  101. package/package.json +6 -1
package/dist/core.esm.js CHANGED
@@ -11,11 +11,17 @@ import qs from 'qs';
11
11
  import { serve } from 'inngest/next';
12
12
  import path from 'path';
13
13
  import * as fs from 'fs';
14
+ import { readdirSync, readFileSync, existsSync, mkdirSync, writeFileSync } from 'fs';
14
15
  import first from 'lodash-es/first';
15
16
  import last from 'lodash-es/last';
16
17
  import { Inngest } from 'inngest';
17
18
  import { OAuth2Client } from '@badgateway/oauth2-client';
18
- import _, { isEmpty, omit, omitBy } from 'lodash-es';
19
+ import _, { isEmpty, omit, pick, compact, omitBy } from 'lodash-es';
20
+ import { openai, createOpenAI } from '@ai-sdk/openai';
21
+ import { embed, tool, generateText, streamText } from 'ai';
22
+ import { Pinecone } from '@pinecone-database/pinecone';
23
+ import OpenAI from 'openai';
24
+ import { createAnthropic } from '@ai-sdk/anthropic';
19
25
 
20
26
  var WorkflowStatusEnum = {
21
27
  DRAFT: 'DRAFT',
@@ -1841,7 +1847,7 @@ var makeCallback = function makeCallback(framework) {
1841
1847
  };
1842
1848
 
1843
1849
  var APP_ID = 'mastra';
1844
- var client = /*#__PURE__*/new Inngest({
1850
+ var client$1 = /*#__PURE__*/new Inngest({
1845
1851
  id: APP_ID
1846
1852
  });
1847
1853
 
@@ -1948,7 +1954,7 @@ function _getBlueprints() {
1948
1954
  var createWorkflowHandler = function createWorkflowHandler(_ref2) {
1949
1955
  var blueprintDirPath = _ref2.blueprintDirPath,
1950
1956
  runBlueprint = _ref2.runBlueprint;
1951
- return client.createFunction({
1957
+ return client$1.createFunction({
1952
1958
  id: 'workflow-executor',
1953
1959
  retries: 0
1954
1960
  }, {
@@ -2043,18 +2049,35 @@ var makeInngest = function makeInngest(framework) {
2043
2049
  // TODO: hook into framework to add framework functions to the inngest client
2044
2050
  var eventHandlers = framework.getGlobalEventHandlers();
2045
2051
  var globalEventHandlers = eventHandlers.map(function (eh) {
2046
- return client.createFunction({
2052
+ return client$1.createFunction({
2047
2053
  id: eh.id
2048
2054
  }, {
2049
2055
  event: eh.event
2050
- }, eh.executor);
2056
+ }, /*#__PURE__*/function () {
2057
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(props) {
2058
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
2059
+ while (1) switch (_context.prev = _context.next) {
2060
+ case 0:
2061
+ return _context.abrupt("return", eh.executor(_extends({}, props, {
2062
+ mastra: framework
2063
+ })));
2064
+ case 1:
2065
+ case "end":
2066
+ return _context.stop();
2067
+ }
2068
+ }, _callee);
2069
+ }));
2070
+ return function (_x) {
2071
+ return _ref.apply(this, arguments);
2072
+ };
2073
+ }());
2051
2074
  });
2052
2075
  var systemWorkflowHandler = createWorkflowHandler({
2053
2076
  blueprintDirPath: (_framework$config$wor = framework.config.workflows) == null ? void 0 : _framework$config$wor.blueprintDirPath,
2054
2077
  runBlueprint: framework.runBlueprint
2055
2078
  });
2056
2079
  var handler = serve({
2057
- client: client,
2080
+ client: client$1,
2058
2081
  functions: [].concat(globalEventHandlers, [systemWorkflowHandler])
2059
2082
  });
2060
2083
  // @ts-ignore
@@ -2413,19 +2436,6 @@ var Integration = /*#__PURE__*/function () {
2413
2436
  return _ref4.apply(this, arguments);
2414
2437
  };
2415
2438
  }();
2416
- this.getEventHandlers = function (_ref5) {
2417
- var makeWebhookUrl = _ref5.makeWebhookUrl;
2418
- return Object.keys(_this.events).map(function (eventKey) {
2419
- var _this$events$eventKey;
2420
- var eventHandler = (_this$events$eventKey = _this.events[eventKey]) == null ? void 0 : _this$events$eventKey.handler;
2421
- if (!eventHandler) return null;
2422
- return eventHandler({
2423
- integrationInstance: _this,
2424
- eventKey: eventKey,
2425
- makeWebhookUrl: makeWebhookUrl
2426
- });
2427
- }).filter(Boolean);
2428
- };
2429
2439
  if (!(config != null && config.name)) {
2430
2440
  throw new IntegrationError('Integration name must be defined');
2431
2441
  }
@@ -2470,12 +2480,12 @@ var Integration = /*#__PURE__*/function () {
2470
2480
  return getApiClient;
2471
2481
  }();
2472
2482
  _proto.getApi = /*#__PURE__*/function () {
2473
- var _getApi = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(_ref6) {
2483
+ var _getApi = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(_ref5) {
2474
2484
  var connectionId;
2475
2485
  return _regeneratorRuntime().wrap(function _callee5$(_context5) {
2476
2486
  while (1) switch (_context5.prev = _context5.next) {
2477
2487
  case 0:
2478
- connectionId = _ref6.connectionId;
2488
+ connectionId = _ref5.connectionId;
2479
2489
  _context5.next = 3;
2480
2490
  return this.getApiClient({
2481
2491
  connectionId: connectionId
@@ -2499,8 +2509,8 @@ var Integration = /*#__PURE__*/function () {
2499
2509
  _proto.getAuthenticator = function getAuthenticator() {
2500
2510
  throw new IntegrationError('Authenticator not implemented');
2501
2511
  };
2502
- _proto.attachDataLayer = function attachDataLayer(_ref7) {
2503
- var dataLayer = _ref7.dataLayer;
2512
+ _proto.attachDataLayer = function attachDataLayer(_ref6) {
2513
+ var dataLayer = _ref6.dataLayer;
2504
2514
  this.dataLayer = dataLayer;
2505
2515
  };
2506
2516
  _proto.registerApis = function registerApis() {
@@ -2557,14 +2567,14 @@ var Integration = /*#__PURE__*/function () {
2557
2567
  return processWebhookRequest;
2558
2568
  }();
2559
2569
  _proto.triggerEvent = /*#__PURE__*/function () {
2560
- var _triggerEvent = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee8(_ref8) {
2570
+ var _triggerEvent = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee8(_ref7) {
2561
2571
  var key, data, user, event;
2562
2572
  return _regeneratorRuntime().wrap(function _callee8$(_context8) {
2563
2573
  while (1) switch (_context8.prev = _context8.next) {
2564
2574
  case 0:
2565
- key = _ref8.key, data = _ref8.data, user = _ref8.user;
2575
+ key = _ref7.key, data = _ref7.data, user = _ref7.user;
2566
2576
  _context8.next = 3;
2567
- return client.send({
2577
+ return client$1.send({
2568
2578
  name: key,
2569
2579
  data: data,
2570
2580
  user: user
@@ -2584,13 +2594,13 @@ var Integration = /*#__PURE__*/function () {
2584
2594
  return triggerEvent;
2585
2595
  }();
2586
2596
  _proto.test = /*#__PURE__*/function () {
2587
- var _test = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee9(_ref9) {
2597
+ var _test = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee9(_ref8) {
2588
2598
  var _this$dataLayer;
2589
2599
  var connectionId, connection, _this$config$scopes, authenticator, bearer, desiredScopes, _bearer$scope, actualScopes, isMissingScopes;
2590
2600
  return _regeneratorRuntime().wrap(function _callee9$(_context9) {
2591
2601
  while (1) switch (_context9.prev = _context9.next) {
2592
2602
  case 0:
2593
- connectionId = _ref9.connectionId;
2603
+ connectionId = _ref8.connectionId;
2594
2604
  _context9.next = 3;
2595
2605
  return (_this$dataLayer = this.dataLayer) == null ? void 0 : _this$dataLayer.getConnection({
2596
2606
  connectionId: connectionId,
@@ -2641,7 +2651,7 @@ var Integration = /*#__PURE__*/function () {
2641
2651
  return test;
2642
2652
  }();
2643
2653
  _proto.onConnectionCreated = /*#__PURE__*/function () {
2644
- var _onConnectionCreated = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee10(_ref10) {
2654
+ var _onConnectionCreated = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee10(_ref9) {
2645
2655
  return _regeneratorRuntime().wrap(function _callee10$(_context10) {
2646
2656
  while (1) switch (_context10.prev = _context10.next) {
2647
2657
  case 0:
@@ -2657,7 +2667,7 @@ var Integration = /*#__PURE__*/function () {
2657
2667
  return onConnectionCreated;
2658
2668
  }();
2659
2669
  _proto.onDisconnect = /*#__PURE__*/function () {
2660
- var _onDisconnect = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee11(_ref11) {
2670
+ var _onDisconnect = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee11(_ref10) {
2661
2671
  return _regeneratorRuntime().wrap(function _callee11$(_context11) {
2662
2672
  while (1) switch (_context11.prev = _context11.next) {
2663
2673
  case 0:
@@ -4047,9 +4057,9 @@ function _runActionsRecursively() {
4047
4057
  data: data
4048
4058
  });
4049
4059
  executorResult = {};
4050
- _ctx = mastraConnectionId ? {
4060
+ _ctx = mastraConnectionId ? _extends({}, ctx, {
4051
4061
  connectionId: mastraConnectionId
4052
- } : ctx;
4062
+ }) : ctx;
4053
4063
  _context2.prev = 46;
4054
4064
  _context2.next = 49;
4055
4065
  return actionExecutor({
@@ -4216,266 +4226,1980 @@ function _blueprintRunner() {
4216
4226
  return _blueprintRunner.apply(this, arguments);
4217
4227
  }
4218
4228
 
4219
- var Framework = /*#__PURE__*/function () {
4220
- function Framework(_ref) {
4221
- var _this = this;
4222
- var dataLayer = _ref.dataLayer,
4223
- config = _ref.config;
4224
- //global events grouped by Integration
4225
- this.globalEvents = new Map();
4226
- // global event handlers
4227
- this.globalEventHandlers = [];
4228
- // global apis grouped by Integration
4229
- this.globalApis = new Map();
4230
- this.integrations = new Map();
4231
- this.dataLayer = void 0;
4232
- this.config = void 0;
4233
- this.runBlueprint = /*#__PURE__*/function () {
4234
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref2) {
4235
- var _this$availableIntegr;
4236
- var blueprint, _ref2$dataCtx, dataCtx, ctx, systemApis, systemEvents, availableIntegrations, availableIntegrationApis, availableIntegrationEvents, frameworkApis, frameworkEvents;
4237
- return _regeneratorRuntime().wrap(function _callee$(_context) {
4238
- while (1) switch (_context.prev = _context.next) {
4239
- case 0:
4240
- blueprint = _ref2.blueprint, _ref2$dataCtx = _ref2.dataCtx, dataCtx = _ref2$dataCtx === void 0 ? {} : _ref2$dataCtx, ctx = _ref2.ctx;
4241
- systemApis = _this.getSystemApis();
4242
- systemEvents = _this.getSystemEvents();
4243
- availableIntegrations = (_this$availableIntegr = _this.availableIntegrations()) == null ? void 0 : _this$availableIntegr.map(function (_ref4) {
4244
- var integration = _ref4.integration;
4245
- return integration;
4246
- });
4247
- availableIntegrationApis = availableIntegrations.reduce(function (acc, _ref5) {
4248
- var name = _ref5.name;
4249
- var apis = _this.getApisByIntegration(name);
4250
- return _extends({}, acc, apis);
4251
- }, {});
4252
- availableIntegrationEvents = availableIntegrations.reduce(function (acc, _ref6) {
4253
- var name = _ref6.name;
4254
- var events = _this.getEventsByIntegration(name);
4255
- return _extends({}, acc, events);
4256
- }, {});
4257
- frameworkApis = _extends({}, systemApis, availableIntegrationApis);
4258
- frameworkEvents = _extends({}, systemEvents, availableIntegrationEvents);
4259
- _context.next = 10;
4260
- return blueprintRunner({
4261
- dataCtx: dataCtx,
4262
- blueprint: blueprint,
4263
- frameworkApis: frameworkApis,
4264
- frameworkEvents: frameworkEvents,
4265
- ctx: ctx
4266
- });
4267
- case 10:
4268
- case "end":
4269
- return _context.stop();
4270
- }
4271
- }, _callee);
4272
- }));
4273
- return function (_x) {
4274
- return _ref3.apply(this, arguments);
4275
- };
4276
- }();
4277
- this.dataLayer = dataLayer;
4278
- this.config = config;
4229
+ function getAgentDir(_ref) {
4230
+ var agentDir = _ref.agentDir;
4231
+ var ARK_APP_DIR = process.env.ARK_APP_DIR || process.cwd();
4232
+ return path.join(ARK_APP_DIR, agentDir);
4233
+ }
4234
+ function listAgentsJson(_ref2) {
4235
+ var agentDir = _ref2.agentDir;
4236
+ var agentDirPath = getAgentDir({
4237
+ agentDir: agentDir
4238
+ });
4239
+ var agents = readdirSync(agentDirPath);
4240
+ return agents;
4241
+ }
4242
+ function getAgentFile(agentFilePath) {
4243
+ try {
4244
+ var fileP = agentFilePath;
4245
+ var fileB = readFileSync(fileP, 'utf8');
4246
+ var json = JSON.parse(fileB);
4247
+ return json;
4248
+ } catch (e) {
4249
+ console.error('No agent blueprint found:', agentFilePath);
4250
+ return;
4279
4251
  }
4280
- Framework.init = function init(config) {
4281
- var _config$workflows$sys;
4282
- if (!config.db.uri) {
4283
- throw new Error('No database config/provider found');
4284
- }
4285
- var dataLayer = new DataLayer({
4286
- url: config.db.uri,
4287
- provider: config.db.provider
4288
- });
4289
- var framework = new Framework({
4290
- config: config,
4291
- dataLayer: dataLayer
4292
- });
4293
- // Register integrations
4294
- config.integrations.forEach(function (integration) {
4295
- framework.__registerIntgeration(integration);
4296
- });
4297
- // Register System apis
4298
- framework.__registerApis({
4299
- apis: (_config$workflows$sys = config.workflows.systemApis) == null ? void 0 : _config$workflows$sys.map(function (api) {
4300
- return _extends({}, api, {
4301
- integrationName: config.name
4302
- });
4303
- })
4304
- });
4305
- // Register System events
4306
- framework.__registerEvents({
4307
- events: config.workflows.systemEvents
4308
- });
4309
- return framework;
4310
- };
4311
- var _proto = Framework.prototype;
4312
- _proto.connectedIntegrations = /*#__PURE__*/function () {
4313
- var _connectedIntegrations = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_ref7) {
4314
- var _this2 = this;
4315
- var context, ints, connectionChecks;
4316
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
4317
- while (1) switch (_context3.prev = _context3.next) {
4252
+ }
4253
+ function getAgentBlueprint(_ref3) {
4254
+ var agentId = _ref3.agentId,
4255
+ agentDir = _ref3.agentDir;
4256
+ var agentDirPath = getAgentDir({
4257
+ agentDir: agentDir
4258
+ });
4259
+ var agentBlueprintPath = path.join(agentDirPath, agentId + ".json");
4260
+ return getAgentFile(agentBlueprintPath);
4261
+ }
4262
+
4263
+ var VectorLayer = /*#__PURE__*/function () {
4264
+ function VectorLayer() {
4265
+ this.supportedProviders = ['PINECONE'];
4266
+ }
4267
+ var _proto = VectorLayer.prototype;
4268
+ _proto.getPineconeIndexes = /*#__PURE__*/function () {
4269
+ var _getPineconeIndexes = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
4270
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
4271
+ while (1) switch (_context.prev = _context.next) {
4318
4272
  case 0:
4319
- context = _ref7.context;
4320
- ints = this.availableIntegrations();
4321
- _context3.next = 4;
4322
- return Promise.all(ints.map(/*#__PURE__*/function () {
4323
- var _ref9 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref8) {
4324
- var integration, connection;
4325
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
4326
- while (1) switch (_context2.prev = _context2.next) {
4327
- case 0:
4328
- integration = _ref8.integration;
4329
- _context2.next = 3;
4330
- return _this2.dataLayer.getConnection({
4331
- connectionId: context.connectionId,
4332
- name: integration.name
4333
- });
4334
- case 3:
4335
- connection = _context2.sent;
4336
- return _context2.abrupt("return", {
4337
- integration: integration,
4338
- connected: !!connection
4339
- });
4340
- case 5:
4341
- case "end":
4342
- return _context2.stop();
4343
- }
4344
- }, _callee2);
4345
- }));
4346
- return function (_x3) {
4347
- return _ref9.apply(this, arguments);
4348
- };
4349
- }()));
4350
- case 4:
4351
- connectionChecks = _context3.sent;
4352
- return _context3.abrupt("return", connectionChecks.filter(function (_ref10) {
4353
- var connected = _ref10.connected;
4354
- return connected;
4355
- }).map(function (_ref11) {
4356
- var integration = _ref11.integration;
4357
- return integration;
4358
- }));
4359
- case 6:
4273
+ return _context.abrupt("return", this.Pinecone.listIndexes());
4274
+ case 1:
4360
4275
  case "end":
4361
- return _context3.stop();
4276
+ return _context.stop();
4362
4277
  }
4363
- }, _callee3, this);
4278
+ }, _callee, this);
4364
4279
  }));
4365
- function connectedIntegrations(_x2) {
4366
- return _connectedIntegrations.apply(this, arguments);
4280
+ function getPineconeIndexes() {
4281
+ return _getPineconeIndexes.apply(this, arguments);
4367
4282
  }
4368
- return connectedIntegrations;
4283
+ return getPineconeIndexes;
4369
4284
  }();
4370
- _proto.__registerIntgeration = function __registerIntgeration(definition) {
4371
- var _this$globalEventHand;
4372
- var name = definition.name;
4373
- definition.attachDataLayer({
4374
- dataLayer: this.dataLayer
4375
- });
4376
- var router = this.createRouter();
4377
- definition.corePresets = {
4378
- redirectURI: router.makeRedirectURI()
4379
- };
4380
- this.integrations.set(name, definition);
4381
- definition.registerEvents();
4382
- this.__registerEvents({
4383
- events: definition.getEvents(),
4384
- integrationName: name
4385
- });
4386
- definition.registerApis();
4387
- definition._convertApiClientToSystemApis();
4388
- this.__registerApis({
4389
- apis: Object.values(definition.getApis()),
4390
- integrationName: name
4391
- });
4392
- (_this$globalEventHand = this.globalEventHandlers).push.apply(_this$globalEventHand, definition.getEventHandlers({
4393
- makeWebhookUrl: router.makeWebhookUrl
4394
- }));
4395
- };
4396
- _proto.__registerEvents = function __registerEvents(_ref12) {
4397
- var events = _ref12.events,
4398
- _ref12$integrationNam = _ref12.integrationName,
4399
- integrationName = _ref12$integrationNam === void 0 ? this.config.name : _ref12$integrationNam;
4400
- var integrationEvents = this.globalEvents.get(integrationName) || {};
4401
- this.globalEvents.set(integrationName, _extends({}, integrationEvents, events));
4402
- };
4403
- _proto.__registerApis = function __registerApis(_ref13) {
4404
- var apis = _ref13.apis,
4405
- _ref13$integrationNam = _ref13.integrationName,
4406
- integrationName = _ref13$integrationNam === void 0 ? this.config.name : _ref13$integrationNam;
4407
- var integrationApis = this.globalApis.get(integrationName) || {};
4408
- this.globalApis.set(integrationName, _extends({}, integrationApis, apis.reduce(function (acc, api) {
4409
- var _extends2;
4410
- return _extends({}, acc, (_extends2 = {}, _extends2[api.type] = api, _extends2));
4411
- }, {})));
4412
- };
4413
- _proto.availableIntegrations = function availableIntegrations() {
4414
- return Array.from(this.integrations.entries()).map(function (_ref14) {
4415
- var name = _ref14[0],
4416
- integration = _ref14[1];
4417
- return {
4418
- name: name,
4419
- integration: integration
4420
- };
4421
- });
4422
- };
4423
- _proto.getIntegration = function getIntegration(name) {
4424
- return this.integrations.get(name);
4425
- };
4426
- _proto.getGlobalEvents = function getGlobalEvents() {
4427
- return this.globalEvents;
4428
- };
4429
- _proto.getSystemEvents = function getSystemEvents() {
4430
- var events = this.globalEvents.get(this.config.name);
4431
- return events || {};
4432
- };
4433
- _proto.getEventsByIntegration = function getEventsByIntegration(name) {
4434
- return this.globalEvents.get(name);
4435
- };
4436
- _proto.getGlobalEventHandlers = function getGlobalEventHandlers() {
4437
- return this.globalEventHandlers;
4438
- };
4439
- _proto.getApis = function getApis() {
4440
- return this.globalApis;
4441
- };
4442
- _proto.getSystemApis = function getSystemApis() {
4443
- return this.globalApis.get(this.config.name);
4444
- };
4445
- _proto.getApisByIntegration = function getApisByIntegration(name, includeHidden) {
4446
- var integrationApis = this.globalApis.get(name);
4447
- if (includeHidden) {
4448
- return integrationApis;
4449
- }
4450
- return omitBy(integrationApis, function (value) {
4451
- return value.isHidden;
4452
- });
4453
- };
4454
- _proto.authenticatableIntegrations = function authenticatableIntegrations() {
4455
- return this.availableIntegrations().filter(function (_ref15) {
4456
- var integration = _ref15.integration;
4457
- try {
4458
- integration.getAuthenticator();
4459
- return true;
4460
- } catch (e) {
4461
- return false;
4285
+ return _createClass(VectorLayer, [{
4286
+ key: "Pinecone",
4287
+ get: function get() {
4288
+ if (!process.env.PINECONE_API_KEY) {
4289
+ throw new Error('Pinecone API key not found');
4462
4290
  }
4463
- });
4464
- };
4465
- _proto.authenticator = function authenticator(name) {
4466
- var _int = this.getIntegration(name);
4467
- if (!_int) {
4468
- throw new Error("No integration exists for " + name);
4291
+ return new Pinecone({
4292
+ apiKey: process.env.PINECONE_API_KEY
4293
+ });
4294
+ }
4295
+ }]);
4296
+ }();
4297
+
4298
+ function getVectorProvider(provider) {
4299
+ if (provider === 'PINECONE') {
4300
+ var _VectorLayer = new VectorLayer(),
4301
+ Pinecone = _VectorLayer.Pinecone;
4302
+ return Pinecone;
4303
+ }
4304
+ }
4305
+ var delay$1 = function delay(ms) {
4306
+ return new Promise(function (resolve) {
4307
+ return setTimeout(resolve, ms);
4308
+ });
4309
+ };
4310
+ function executeGenericVectorSync(_x) {
4311
+ return _executeGenericVectorSync.apply(this, arguments);
4312
+ }
4313
+ function _executeGenericVectorSync() {
4314
+ _executeGenericVectorSync = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_ref) {
4315
+ var _event$user, _event$data, _event$data2;
4316
+ var event, mastra, connectionId, vector_provider, entities, systemName, vp, _iterator, _step, _yield$mastra$dataLay, _mastra$dataLayer, vectorE, integrationName, k_id, _mastra$dataLayer2, connection, _loop, _ret, _iterator2, _step2;
4317
+ return _regeneratorRuntime().wrap(function _callee3$(_context4) {
4318
+ while (1) switch (_context4.prev = _context4.next) {
4319
+ case 0:
4320
+ event = _ref.event, mastra = _ref.mastra;
4321
+ connectionId = event == null || (_event$user = event.user) == null ? void 0 : _event$user.connectionId;
4322
+ vector_provider = event == null || (_event$data = event.data) == null ? void 0 : _event$data.vector_provider;
4323
+ entities = event == null || (_event$data2 = event.data) == null ? void 0 : _event$data2.entities;
4324
+ systemName = mastra.config.name;
4325
+ if (vector_provider) {
4326
+ _context4.next = 8;
4327
+ break;
4328
+ }
4329
+ console.error("No vector_provider defined for agent");
4330
+ return _context4.abrupt("return");
4331
+ case 8:
4332
+ vp = getVectorProvider(vector_provider);
4333
+ if (vp) {
4334
+ _context4.next = 12;
4335
+ break;
4336
+ }
4337
+ console.error('UNSUPPORTED VECTOR PROVIDER', vector_provider);
4338
+ return _context4.abrupt("return");
4339
+ case 12:
4340
+ if (process.env.OPENAI_API_KEY) {
4341
+ _context4.next = 15;
4342
+ break;
4343
+ }
4344
+ console.error('NO OPENAI_API_KEY');
4345
+ return _context4.abrupt("return");
4346
+ case 15:
4347
+ _iterator = _createForOfIteratorHelperLoose(entities);
4348
+ case 16:
4349
+ if ((_step = _iterator()).done) {
4350
+ _context4.next = 50;
4351
+ break;
4352
+ }
4353
+ vectorE = _step.value;
4354
+ integrationName = vectorE.integration;
4355
+ _context4.next = 21;
4356
+ return (_mastra$dataLayer = mastra.dataLayer) == null ? void 0 : _mastra$dataLayer.getConnection({
4357
+ connectionId: connectionId,
4358
+ name: integrationName
4359
+ });
4360
+ case 21:
4361
+ _context4.t1 = _yield$mastra$dataLay = _context4.sent;
4362
+ if (!(_context4.t1 == null)) {
4363
+ _context4.next = 26;
4364
+ break;
4365
+ }
4366
+ _context4.t2 = void 0;
4367
+ _context4.next = 27;
4368
+ break;
4369
+ case 26:
4370
+ _context4.t2 = _yield$mastra$dataLay.id;
4371
+ case 27:
4372
+ _context4.t0 = _context4.t2;
4373
+ if (_context4.t0) {
4374
+ _context4.next = 30;
4375
+ break;
4376
+ }
4377
+ _context4.t0 = '';
4378
+ case 30:
4379
+ k_id = _context4.t0;
4380
+ if (!(!k_id && integrationName === systemName)) {
4381
+ _context4.next = 36;
4382
+ break;
4383
+ }
4384
+ _context4.next = 34;
4385
+ return (_mastra$dataLayer2 = mastra.dataLayer) == null ? void 0 : _mastra$dataLayer2.createConnection({
4386
+ connection: {
4387
+ connectionId: connectionId,
4388
+ name: integrationName
4389
+ },
4390
+ credential: {
4391
+ type: 'API_KEY',
4392
+ value: connectionId,
4393
+ scope: []
4394
+ }
4395
+ });
4396
+ case 34:
4397
+ connection = _context4.sent;
4398
+ k_id = connection.id;
4399
+ case 36:
4400
+ if (k_id) {
4401
+ _context4.next = 39;
4402
+ break;
4403
+ }
4404
+ console.error('Error bootstrapping shit');
4405
+ return _context4.abrupt("return");
4406
+ case 39:
4407
+ _loop = /*#__PURE__*/_regeneratorRuntime().mark(function _loop() {
4408
+ var _mastra$dataLayer3, _entityRecords, _records;
4409
+ var entity, entityRecords, records, _mastra$dataLayer4, _entityRecords2, _records2, _yield$mastra$trigger, _event, res, recordsMapped, entityTypeIndex, _recordsMapped$map, vectors;
4410
+ return _regeneratorRuntime().wrap(function _loop$(_context3) {
4411
+ while (1) switch (_context3.prev = _context3.next) {
4412
+ case 0:
4413
+ entity = _step2.value;
4414
+ _context3.next = 3;
4415
+ return (_mastra$dataLayer3 = mastra.dataLayer) == null ? void 0 : _mastra$dataLayer3.getEntityRecordsByConnectionAndType({
4416
+ k_id: k_id,
4417
+ type: entity.name
4418
+ });
4419
+ case 3:
4420
+ entityRecords = _context3.sent;
4421
+ records = (_entityRecords = entityRecords) == null ? void 0 : _entityRecords.records;
4422
+ if (!(!records || ((_records = records) == null ? void 0 : _records.length) === 0)) {
4423
+ _context3.next = 23;
4424
+ break;
4425
+ }
4426
+ // @TODO: SYNC THEM
4427
+ console.error('NO RECORDS');
4428
+ _context3.next = 9;
4429
+ return mastra.triggerEvent({
4430
+ key: entity.syncEvent,
4431
+ data: {},
4432
+ user: {
4433
+ connectionId: connectionId
4434
+ }
4435
+ });
4436
+ case 9:
4437
+ _yield$mastra$trigger = _context3.sent;
4438
+ _event = _yield$mastra$trigger.event;
4439
+ console.log(_event, '####');
4440
+ _context3.next = 14;
4441
+ return _event.subscribe();
4442
+ case 14:
4443
+ res = _context3.sent;
4444
+ console.log('Subscribe result', res);
4445
+ _context3.next = 18;
4446
+ return (_mastra$dataLayer4 = mastra.dataLayer) == null ? void 0 : _mastra$dataLayer4.getEntityRecordsByConnectionAndType({
4447
+ k_id: k_id,
4448
+ type: entity.name
4449
+ });
4450
+ case 18:
4451
+ entityRecords = _context3.sent;
4452
+ records = (_entityRecords2 = entityRecords) == null ? void 0 : _entityRecords2.records;
4453
+ if (!(!records || ((_records2 = records) == null ? void 0 : _records2.length) === 0)) {
4454
+ _context3.next = 23;
4455
+ break;
4456
+ }
4457
+ console.error('NO RECORDS AFTER SYNC');
4458
+ return _context3.abrupt("return", {
4459
+ v: void 0
4460
+ });
4461
+ case 23:
4462
+ recordsMapped = records.map(function (_ref7) {
4463
+ var data = _ref7.data,
4464
+ externalId = _ref7.externalId;
4465
+ return _extends({
4466
+ id: externalId
4467
+ }, pick(data, entity.fields));
4468
+ });
4469
+ console.log(recordsMapped, 'RECORDS');
4470
+ _context3.next = 27;
4471
+ return vp.createIndex({
4472
+ suppressConflicts: true,
4473
+ name: entity.name,
4474
+ dimension: 1536,
4475
+ metric: 'cosine',
4476
+ spec: {
4477
+ serverless: {
4478
+ cloud: 'aws',
4479
+ region: 'us-east-1'
4480
+ }
4481
+ }
4482
+ });
4483
+ case 27:
4484
+ _context3.next = 29;
4485
+ return delay$1(5000);
4486
+ case 29:
4487
+ entityTypeIndex = vp.index(entity.name);
4488
+ console.log(entityTypeIndex, 'INDEX');
4489
+ _context3.prev = 31;
4490
+ _context3.next = 34;
4491
+ return Promise.all((_recordsMapped$map = recordsMapped.map(/*#__PURE__*/function () {
4492
+ var _ref8 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(record) {
4493
+ var _yield$embed, embedding;
4494
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
4495
+ while (1) switch (_context2.prev = _context2.next) {
4496
+ case 0:
4497
+ _context2.next = 2;
4498
+ return embed({
4499
+ model: openai.embedding('text-embedding-3-small'),
4500
+ value: JSON.stringify(record)
4501
+ });
4502
+ case 2:
4503
+ _yield$embed = _context2.sent;
4504
+ embedding = _yield$embed.embedding;
4505
+ return _context2.abrupt("return", {
4506
+ id: record.id,
4507
+ values: embedding,
4508
+ metadata: record
4509
+ });
4510
+ case 5:
4511
+ case "end":
4512
+ return _context2.stop();
4513
+ }
4514
+ }, _callee2);
4515
+ }));
4516
+ return function (_x5) {
4517
+ return _ref8.apply(this, arguments);
4518
+ };
4519
+ }())) != null ? _recordsMapped$map : []);
4520
+ case 34:
4521
+ vectors = _context3.sent;
4522
+ console.log('UPSERTING', vectors);
4523
+ if (!(vectors.length > 0)) {
4524
+ _context3.next = 39;
4525
+ break;
4526
+ }
4527
+ _context3.next = 39;
4528
+ return entityTypeIndex.namespace(entity.name).upsert(vectors);
4529
+ case 39:
4530
+ _context3.next = 44;
4531
+ break;
4532
+ case 41:
4533
+ _context3.prev = 41;
4534
+ _context3.t0 = _context3["catch"](31);
4535
+ console.error(_context3.t0);
4536
+ case 44:
4537
+ return _context3.abrupt("return", {
4538
+ v: void 0
4539
+ });
4540
+ case 45:
4541
+ case "end":
4542
+ return _context3.stop();
4543
+ }
4544
+ }, _loop, null, [[31, 41]]);
4545
+ });
4546
+ _iterator2 = _createForOfIteratorHelperLoose(vectorE.data);
4547
+ case 41:
4548
+ if ((_step2 = _iterator2()).done) {
4549
+ _context4.next = 48;
4550
+ break;
4551
+ }
4552
+ return _context4.delegateYield(_loop(), "t3", 43);
4553
+ case 43:
4554
+ _ret = _context4.t3;
4555
+ if (!_ret) {
4556
+ _context4.next = 46;
4557
+ break;
4558
+ }
4559
+ return _context4.abrupt("return", _ret.v);
4560
+ case 46:
4561
+ _context4.next = 41;
4562
+ break;
4563
+ case 48:
4564
+ _context4.next = 16;
4565
+ break;
4566
+ case 50:
4567
+ case "end":
4568
+ return _context4.stop();
4569
+ }
4570
+ }, _callee3);
4571
+ }));
4572
+ return _executeGenericVectorSync.apply(this, arguments);
4573
+ }
4574
+ function executeVectorSync(_x2) {
4575
+ return _executeVectorSync.apply(this, arguments);
4576
+ }
4577
+ function _executeVectorSync() {
4578
+ _executeVectorSync = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(_ref2) {
4579
+ var _event$user2, _agent$knowledge_sour3;
4580
+ var event, mastra, agentDir, agent, connectionId, systemName, vp, _agent$knowledge_sour4, _iterator3, _step3, _yield$mastra$dataLay2, _mastra$dataLayer5, vectorE, integrationName, k_id, _mastra$dataLayer6, connection, _loop2, _ret2, _iterator4, _step4;
4581
+ return _regeneratorRuntime().wrap(function _callee5$(_context7) {
4582
+ while (1) switch (_context7.prev = _context7.next) {
4583
+ case 0:
4584
+ event = _ref2.event, mastra = _ref2.mastra;
4585
+ agentDir = mastra.config.agents.agentDirPath;
4586
+ agent = getAgentBlueprint({
4587
+ agentDir: agentDir,
4588
+ agentId: event.data.agentId
4589
+ });
4590
+ connectionId = event == null || (_event$user2 = event.user) == null ? void 0 : _event$user2.connectionId;
4591
+ systemName = mastra.config.name;
4592
+ if (agent.knowledge_sources.vector_provider) {
4593
+ _context7.next = 8;
4594
+ break;
4595
+ }
4596
+ console.error("No vector_provider defined for agent");
4597
+ return _context7.abrupt("return");
4598
+ case 8:
4599
+ vp = getVectorProvider(agent == null || (_agent$knowledge_sour3 = agent.knowledge_sources) == null ? void 0 : _agent$knowledge_sour3.vector_provider);
4600
+ if (vp) {
4601
+ _context7.next = 12;
4602
+ break;
4603
+ }
4604
+ console.error('UNSUPPORTED VECTOR PROVIDER', agent == null || (_agent$knowledge_sour4 = agent.knowledge_sources) == null ? void 0 : _agent$knowledge_sour4.vector_provider);
4605
+ return _context7.abrupt("return");
4606
+ case 12:
4607
+ if (process.env.OPENAI_API_KEY) {
4608
+ _context7.next = 15;
4609
+ break;
4610
+ }
4611
+ console.error('NO OPENAI_API_KEY');
4612
+ return _context7.abrupt("return");
4613
+ case 15:
4614
+ if (!(!agent || !(agent != null && agent.knowledge_sources))) {
4615
+ _context7.next = 18;
4616
+ break;
4617
+ }
4618
+ console.error('NO AGENT OR KNOWLEDGE SOURCES');
4619
+ return _context7.abrupt("return");
4620
+ case 18:
4621
+ _iterator3 = _createForOfIteratorHelperLoose(agent.knowledge_sources.entities);
4622
+ case 19:
4623
+ if ((_step3 = _iterator3()).done) {
4624
+ _context7.next = 53;
4625
+ break;
4626
+ }
4627
+ vectorE = _step3.value;
4628
+ integrationName = vectorE.integration;
4629
+ _context7.next = 24;
4630
+ return (_mastra$dataLayer5 = mastra.dataLayer) == null ? void 0 : _mastra$dataLayer5.getConnection({
4631
+ connectionId: connectionId,
4632
+ name: integrationName
4633
+ });
4634
+ case 24:
4635
+ _context7.t1 = _yield$mastra$dataLay2 = _context7.sent;
4636
+ if (!(_context7.t1 == null)) {
4637
+ _context7.next = 29;
4638
+ break;
4639
+ }
4640
+ _context7.t2 = void 0;
4641
+ _context7.next = 30;
4642
+ break;
4643
+ case 29:
4644
+ _context7.t2 = _yield$mastra$dataLay2.id;
4645
+ case 30:
4646
+ _context7.t0 = _context7.t2;
4647
+ if (_context7.t0) {
4648
+ _context7.next = 33;
4649
+ break;
4650
+ }
4651
+ _context7.t0 = '';
4652
+ case 33:
4653
+ k_id = _context7.t0;
4654
+ if (!(!k_id && integrationName === systemName)) {
4655
+ _context7.next = 39;
4656
+ break;
4657
+ }
4658
+ _context7.next = 37;
4659
+ return (_mastra$dataLayer6 = mastra.dataLayer) == null ? void 0 : _mastra$dataLayer6.createConnection({
4660
+ connection: {
4661
+ connectionId: connectionId,
4662
+ name: integrationName
4663
+ },
4664
+ credential: {
4665
+ type: 'API_KEY',
4666
+ value: connectionId,
4667
+ scope: []
4668
+ }
4669
+ });
4670
+ case 37:
4671
+ connection = _context7.sent;
4672
+ k_id = connection.id;
4673
+ case 39:
4674
+ if (k_id) {
4675
+ _context7.next = 42;
4676
+ break;
4677
+ }
4678
+ console.error('Error bootstrapping shit');
4679
+ return _context7.abrupt("return");
4680
+ case 42:
4681
+ _loop2 = /*#__PURE__*/_regeneratorRuntime().mark(function _loop2() {
4682
+ var _mastra$dataLayer7, _entityRecords3, _records3;
4683
+ var entity, entityRecords, records, _mastra$dataLayer8, _entityRecords4, _records4, _yield$mastra$trigger2, _event2, res, recordsMapped, entityTypeIndex, _recordsMapped$map2, vectors;
4684
+ return _regeneratorRuntime().wrap(function _loop2$(_context6) {
4685
+ while (1) switch (_context6.prev = _context6.next) {
4686
+ case 0:
4687
+ entity = _step4.value;
4688
+ _context6.next = 3;
4689
+ return (_mastra$dataLayer7 = mastra.dataLayer) == null ? void 0 : _mastra$dataLayer7.getEntityRecordsByConnectionAndType({
4690
+ k_id: k_id,
4691
+ type: entity.name
4692
+ });
4693
+ case 3:
4694
+ entityRecords = _context6.sent;
4695
+ records = (_entityRecords3 = entityRecords) == null ? void 0 : _entityRecords3.records;
4696
+ if (!(!records || ((_records3 = records) == null ? void 0 : _records3.length) === 0)) {
4697
+ _context6.next = 23;
4698
+ break;
4699
+ }
4700
+ // @TODO: SYNC THEM
4701
+ console.error('NO RECORDS');
4702
+ _context6.next = 9;
4703
+ return mastra.triggerEvent({
4704
+ key: entity.syncEvent,
4705
+ data: {},
4706
+ user: {
4707
+ connectionId: connectionId
4708
+ }
4709
+ });
4710
+ case 9:
4711
+ _yield$mastra$trigger2 = _context6.sent;
4712
+ _event2 = _yield$mastra$trigger2.event;
4713
+ console.log(_event2, '####');
4714
+ _context6.next = 14;
4715
+ return _event2.subscribe();
4716
+ case 14:
4717
+ res = _context6.sent;
4718
+ console.log('Subscribe result', res);
4719
+ _context6.next = 18;
4720
+ return (_mastra$dataLayer8 = mastra.dataLayer) == null ? void 0 : _mastra$dataLayer8.getEntityRecordsByConnectionAndType({
4721
+ k_id: k_id,
4722
+ type: entity.name
4723
+ });
4724
+ case 18:
4725
+ entityRecords = _context6.sent;
4726
+ records = (_entityRecords4 = entityRecords) == null ? void 0 : _entityRecords4.records;
4727
+ if (!(!records || ((_records4 = records) == null ? void 0 : _records4.length) === 0)) {
4728
+ _context6.next = 23;
4729
+ break;
4730
+ }
4731
+ console.error('NO RECORDS AFTER SYNC');
4732
+ return _context6.abrupt("return", {
4733
+ v: void 0
4734
+ });
4735
+ case 23:
4736
+ recordsMapped = records.map(function (_ref9) {
4737
+ var data = _ref9.data,
4738
+ externalId = _ref9.externalId;
4739
+ return _extends({
4740
+ id: externalId
4741
+ }, pick(data, entity.fields));
4742
+ });
4743
+ console.log(recordsMapped, 'RECORDS');
4744
+ _context6.next = 27;
4745
+ return vp.createIndex({
4746
+ suppressConflicts: true,
4747
+ name: entity.name,
4748
+ dimension: 1536,
4749
+ metric: 'cosine',
4750
+ spec: {
4751
+ serverless: {
4752
+ cloud: 'aws',
4753
+ region: 'us-east-1'
4754
+ }
4755
+ }
4756
+ });
4757
+ case 27:
4758
+ entityTypeIndex = vp.index(entity.name);
4759
+ console.log(entityTypeIndex, 'INDEX');
4760
+ _context6.prev = 29;
4761
+ _context6.next = 32;
4762
+ return Promise.all((_recordsMapped$map2 = recordsMapped.map(/*#__PURE__*/function () {
4763
+ var _ref10 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(record) {
4764
+ var _yield$embed2, embedding;
4765
+ return _regeneratorRuntime().wrap(function _callee4$(_context5) {
4766
+ while (1) switch (_context5.prev = _context5.next) {
4767
+ case 0:
4768
+ _context5.next = 2;
4769
+ return embed({
4770
+ model: openai.embedding('text-embedding-3-small'),
4771
+ value: JSON.stringify(record)
4772
+ });
4773
+ case 2:
4774
+ _yield$embed2 = _context5.sent;
4775
+ embedding = _yield$embed2.embedding;
4776
+ return _context5.abrupt("return", {
4777
+ id: record.id,
4778
+ values: embedding,
4779
+ metadata: record
4780
+ });
4781
+ case 5:
4782
+ case "end":
4783
+ return _context5.stop();
4784
+ }
4785
+ }, _callee4);
4786
+ }));
4787
+ return function (_x6) {
4788
+ return _ref10.apply(this, arguments);
4789
+ };
4790
+ }())) != null ? _recordsMapped$map2 : []);
4791
+ case 32:
4792
+ vectors = _context6.sent;
4793
+ console.log('UPSERTING', vectors);
4794
+ if (!(vectors.length > 0)) {
4795
+ _context6.next = 37;
4796
+ break;
4797
+ }
4798
+ _context6.next = 37;
4799
+ return entityTypeIndex.namespace(entity.name).upsert(vectors);
4800
+ case 37:
4801
+ _context6.next = 42;
4802
+ break;
4803
+ case 39:
4804
+ _context6.prev = 39;
4805
+ _context6.t0 = _context6["catch"](29);
4806
+ console.error(_context6.t0);
4807
+ case 42:
4808
+ return _context6.abrupt("return", {
4809
+ v: void 0
4810
+ });
4811
+ case 43:
4812
+ case "end":
4813
+ return _context6.stop();
4814
+ }
4815
+ }, _loop2, null, [[29, 39]]);
4816
+ });
4817
+ _iterator4 = _createForOfIteratorHelperLoose(vectorE.data);
4818
+ case 44:
4819
+ if ((_step4 = _iterator4()).done) {
4820
+ _context7.next = 51;
4821
+ break;
4822
+ }
4823
+ return _context7.delegateYield(_loop2(), "t3", 46);
4824
+ case 46:
4825
+ _ret2 = _context7.t3;
4826
+ if (!_ret2) {
4827
+ _context7.next = 49;
4828
+ break;
4829
+ }
4830
+ return _context7.abrupt("return", _ret2.v);
4831
+ case 49:
4832
+ _context7.next = 44;
4833
+ break;
4834
+ case 51:
4835
+ _context7.next = 19;
4836
+ break;
4837
+ case 53:
4838
+ case "end":
4839
+ return _context7.stop();
4840
+ }
4841
+ }, _callee5);
4842
+ }));
4843
+ return _executeVectorSync.apply(this, arguments);
4844
+ }
4845
+ function vectorQueryEngine(_x3) {
4846
+ return _vectorQueryEngine.apply(this, arguments);
4847
+ }
4848
+ function _vectorQueryEngine() {
4849
+ _vectorQueryEngine = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(_ref3) {
4850
+ var vector_provider, _ref3$topK, topK, indexName, content, entityType, vp, index, _yield$embed3, embedding, queryResponse;
4851
+ return _regeneratorRuntime().wrap(function _callee6$(_context8) {
4852
+ while (1) switch (_context8.prev = _context8.next) {
4853
+ case 0:
4854
+ vector_provider = _ref3.vector_provider, _ref3$topK = _ref3.topK, topK = _ref3$topK === void 0 ? 1 : _ref3$topK, indexName = _ref3.indexName, content = _ref3.content, entityType = _ref3.entityType;
4855
+ vp = getVectorProvider(vector_provider);
4856
+ if (vp) {
4857
+ _context8.next = 5;
4858
+ break;
4859
+ }
4860
+ console.error('UNSUPPORTED VECTOR PROVIDER', vector_provider);
4861
+ return _context8.abrupt("return");
4862
+ case 5:
4863
+ index = vp.index(indexName);
4864
+ _context8.next = 8;
4865
+ return embed({
4866
+ model: openai.embedding('text-embedding-3-small'),
4867
+ value: content
4868
+ });
4869
+ case 8:
4870
+ _yield$embed3 = _context8.sent;
4871
+ embedding = _yield$embed3.embedding;
4872
+ console.log(embedding, 'EMBEDDING');
4873
+ _context8.next = 13;
4874
+ return index.namespace(entityType).query({
4875
+ vector: embedding,
4876
+ topK: topK,
4877
+ includeMetadata: true
4878
+ });
4879
+ case 13:
4880
+ queryResponse = _context8.sent;
4881
+ return _context8.abrupt("return", queryResponse);
4882
+ case 15:
4883
+ case "end":
4884
+ return _context8.stop();
4885
+ }
4886
+ }, _callee6);
4887
+ }));
4888
+ return _vectorQueryEngine.apply(this, arguments);
4889
+ }
4890
+ function getVectorQueryApis(_ref4) {
4891
+ var mastra = _ref4.mastra;
4892
+ var agentDir = mastra.config.agents.agentDirPath;
4893
+ var agents = listAgentsJson({
4894
+ agentDir: agentDir
4895
+ });
4896
+ var agentData = agents.map(function (agentFile) {
4897
+ var _agent$knowledge_sour;
4898
+ var agentDirPath = getAgentDir({
4899
+ agentDir: agentDir
4900
+ });
4901
+ var agent = getAgentFile(path.join(agentDirPath, agentFile));
4902
+ if (!(agent != null && (_agent$knowledge_sour = agent.knowledge_sources) != null && _agent$knowledge_sour.vector_provider)) {
4903
+ console.error("No vector_provider defined for agent");
4904
+ return;
4905
+ }
4906
+ return agent;
4907
+ }).filter(Boolean);
4908
+ return agentData.flatMap(function (agent) {
4909
+ var entities = agent == null ? void 0 : agent.knowledge_sources.entities;
4910
+ return entities.flatMap(function (_ref5) {
4911
+ var data = _ref5.data,
4912
+ integration = _ref5.integration;
4913
+ return data.map(function (entity) {
4914
+ return {
4915
+ integrationName: integration,
4916
+ type: "get_" + entity.name + "_from_vector_" + entity.index,
4917
+ label: "Provides " + entity.name + " information from Vector " + entity.index + " Store",
4918
+ description: "Provides " + entity.name + " information from Vector " + entity.index + " Store",
4919
+ schema: z.object({
4920
+ content: z.string(),
4921
+ topResult: z.number()
4922
+ }),
4923
+ executor: function () {
4924
+ var _executor = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref6) {
4925
+ var _agent$knowledge_sour2;
4926
+ var data, res;
4927
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
4928
+ while (1) switch (_context.prev = _context.next) {
4929
+ case 0:
4930
+ data = _ref6.data;
4931
+ _context.next = 3;
4932
+ return vectorQueryEngine({
4933
+ vector_provider: agent == null || (_agent$knowledge_sour2 = agent.knowledge_sources) == null ? void 0 : _agent$knowledge_sour2.vector_provider,
4934
+ indexName: entity.index,
4935
+ content: data.content,
4936
+ topK: data.topResult || 1,
4937
+ entityType: entity.name
4938
+ });
4939
+ case 3:
4940
+ res = _context.sent;
4941
+ console.log(JSON.stringify({
4942
+ res: res
4943
+ }, null, 2));
4944
+ // @TODO: make this a proper response
4945
+ return _context.abrupt("return", res);
4946
+ case 6:
4947
+ case "end":
4948
+ return _context.stop();
4949
+ }
4950
+ }, _callee);
4951
+ }));
4952
+ function executor(_x4) {
4953
+ return _executor.apply(this, arguments);
4954
+ }
4955
+ return executor;
4956
+ }()
4957
+ };
4958
+ });
4959
+ });
4960
+ }).filter(Boolean);
4961
+ }
4962
+ function agentVectorSyncEvent() {
4963
+ return {
4964
+ // @TODO: naming convention
4965
+ id: 'agent-vector-sync',
4966
+ event: 'AGENT_VECTOR_SYNC',
4967
+ executor: executeVectorSync
4968
+ };
4969
+ }
4970
+ function genericVectorySyncEvent() {
4971
+ return {
4972
+ // @TODO: naming convention
4973
+ id: 'vector-sync',
4974
+ event: 'VECTOR_SYNC',
4975
+ executor: executeGenericVectorSync
4976
+ };
4977
+ }
4978
+
4979
+ function getAgentSystemApis(_ref) {
4980
+ var mastra = _ref.mastra;
4981
+ var agentDir = mastra.config.agents.agentDirPath;
4982
+ var agents = listAgentsJson({
4983
+ agentDir: agentDir
4984
+ });
4985
+ // Remove the .json extension from the agent names
4986
+ var agentList = agents.map(function (agent) {
4987
+ return agent.slice(0, -5);
4988
+ });
4989
+ return [{
4990
+ integrationName: 'SYSTEM',
4991
+ type: 'message_agent',
4992
+ label: 'Send Message To Agent',
4993
+ description: 'Sends a message to an Agent',
4994
+ schema: z.object({
4995
+ agentId: z["enum"](agentList),
4996
+ message: z.string()
4997
+ }),
4998
+ outputSchema: z.object({
4999
+ message: z.string()
5000
+ }),
5001
+ executor: function () {
5002
+ var _executor = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref2) {
5003
+ var data, executor, result, _run$content, thread, run;
5004
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
5005
+ while (1) switch (_context.prev = _context.next) {
5006
+ case 0:
5007
+ data = _ref2.data;
5008
+ _context.next = 3;
5009
+ return mastra.getAgent({
5010
+ agentId: data.agentId,
5011
+ connectionId: data.connectionId
5012
+ });
5013
+ case 3:
5014
+ executor = _context.sent;
5015
+ if (executor) {
5016
+ _context.next = 6;
5017
+ break;
5018
+ }
5019
+ throw new Error('Could not create agent executor');
5020
+ case 6:
5021
+ if (!(typeof executor === 'function')) {
5022
+ _context.next = 13;
5023
+ break;
5024
+ }
5025
+ _context.next = 9;
5026
+ return executor({
5027
+ prompt: data == null ? void 0 : data.message
5028
+ });
5029
+ case 9:
5030
+ result = _context.sent;
5031
+ return _context.abrupt("return", {
5032
+ message: result == null ? void 0 : result.text
5033
+ });
5034
+ case 13:
5035
+ _context.next = 15;
5036
+ return executor.initializeThread([{
5037
+ role: 'user',
5038
+ content: data == null ? void 0 : data.message
5039
+ }]);
5040
+ case 15:
5041
+ thread = _context.sent;
5042
+ _context.next = 18;
5043
+ return executor.watchRun({
5044
+ threadId: thread.id
5045
+ });
5046
+ case 18:
5047
+ run = _context.sent;
5048
+ return _context.abrupt("return", {
5049
+ message: run == null || (_run$content = run.content) == null || (_run$content = _run$content[0]) == null || (_run$content = _run$content.text) == null ? void 0 : _run$content.value
5050
+ });
5051
+ case 20:
5052
+ case "end":
5053
+ return _context.stop();
5054
+ }
5055
+ }, _callee);
5056
+ }));
5057
+ function executor(_x) {
5058
+ return _executor.apply(this, arguments);
5059
+ }
5060
+ return executor;
5061
+ }()
5062
+ }];
5063
+ }
5064
+
5065
+ var loggerPath = /*#__PURE__*/path.join(/*#__PURE__*/process.cwd(), 'mastra-agent-logs');
5066
+ function createFileLogger(_ref) {
5067
+ var destinationPath = _ref.destinationPath;
5068
+ var fullPath = path.join(loggerPath, destinationPath);
5069
+ return function (log) {
5070
+ if (!existsSync(loggerPath)) {
5071
+ mkdirSync(loggerPath, {
5072
+ recursive: true
5073
+ });
5074
+ return writeFileSync(fullPath, JSON.stringify([_extends({}, log, {
5075
+ createdAt: new Date()
5076
+ })], null, 2));
5077
+ }
5078
+ var logs = JSON.parse(readFileSync(fullPath, 'utf-8'));
5079
+ logs.push(_extends({}, log, {
5080
+ createdAt: new Date()
5081
+ }));
5082
+ return writeFileSync(fullPath, JSON.stringify(logs, null, 2));
5083
+ };
5084
+ }
5085
+
5086
+ var client = /*#__PURE__*/new OpenAI({
5087
+ apiKey: process.env.OPENAI_API_KEY
5088
+ });
5089
+ function getAssistantAgent(_x3) {
5090
+ return _getAssistantAgent.apply(this, arguments);
5091
+ }
5092
+ function _getAssistantAgent() {
5093
+ _getAssistantAgent = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee11(_ref3) {
5094
+ var id, toolMap, logger, agent, handleRunStatus, handleRequiresAction, getRun;
5095
+ return _regeneratorRuntime().wrap(function _callee11$(_context11) {
5096
+ while (1) switch (_context11.prev = _context11.next) {
5097
+ case 0:
5098
+ id = _ref3.id, toolMap = _ref3.toolMap;
5099
+ logger = createFileLogger({
5100
+ destinationPath: id + ".json"
5101
+ });
5102
+ _context11.next = 4;
5103
+ return client.beta.assistants.retrieve(id);
5104
+ case 4:
5105
+ agent = _context11.sent;
5106
+ handleRunStatus = /*#__PURE__*/function () {
5107
+ var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_ref4) {
5108
+ var threadId, run, _messages$data, messages;
5109
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
5110
+ while (1) switch (_context3.prev = _context3.next) {
5111
+ case 0:
5112
+ threadId = _ref4.threadId, run = _ref4.run;
5113
+ if (!(run.status === 'completed')) {
5114
+ _context3.next = 8;
5115
+ break;
5116
+ }
5117
+ _context3.next = 4;
5118
+ return client.beta.threads.messages.list(threadId);
5119
+ case 4:
5120
+ messages = _context3.sent;
5121
+ return _context3.abrupt("return", (_messages$data = messages.data) == null ? void 0 : _messages$data[0]);
5122
+ case 8:
5123
+ if (!(run.status === 'requires_action')) {
5124
+ _context3.next = 14;
5125
+ break;
5126
+ }
5127
+ _context3.next = 11;
5128
+ return handleRequiresAction({
5129
+ run: run,
5130
+ threadId: threadId
5131
+ });
5132
+ case 11:
5133
+ return _context3.abrupt("return", _context3.sent);
5134
+ case 14:
5135
+ console.error('Run did not complete:', run);
5136
+ logger({
5137
+ statusCode: 400,
5138
+ message: JSON.stringify({
5139
+ message: "Run did not complete",
5140
+ event_type: 'run_error',
5141
+ metadata: {
5142
+ run: run
5143
+ }
5144
+ }, null, 2)
5145
+ });
5146
+ case 16:
5147
+ case "end":
5148
+ return _context3.stop();
5149
+ }
5150
+ }, _callee3);
5151
+ }));
5152
+ return function handleRunStatus(_x4) {
5153
+ return _ref5.apply(this, arguments);
5154
+ };
5155
+ }();
5156
+ handleRequiresAction = /*#__PURE__*/function () {
5157
+ var _ref7 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(_ref6) {
5158
+ var threadId, run, toolOutputs;
5159
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
5160
+ while (1) switch (_context5.prev = _context5.next) {
5161
+ case 0:
5162
+ threadId = _ref6.threadId, run = _ref6.run;
5163
+ if (!(run.required_action && run.required_action.submit_tool_outputs && run.required_action.submit_tool_outputs.tool_calls)) {
5164
+ _context5.next = 23;
5165
+ break;
5166
+ }
5167
+ _context5.t0 = compact;
5168
+ _context5.next = 5;
5169
+ return Promise.all(run.required_action.submit_tool_outputs.tool_calls.map(/*#__PURE__*/function () {
5170
+ var _ref8 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(tool, index, tools) {
5171
+ var callInfo, toolMetadata, toolFn, args, output;
5172
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
5173
+ while (1) switch (_context4.prev = _context4.next) {
5174
+ case 0:
5175
+ callInfo = index + 1 + " of " + tools.length;
5176
+ console.log('Tool:', tool["function"].name, tool.id, Object.keys(toolMap));
5177
+ toolMetadata = {
5178
+ id: tool.id,
5179
+ fn: tool["function"].name,
5180
+ availableTools: Object.keys(toolMap)
5181
+ };
5182
+ logger({
5183
+ statusCode: 100,
5184
+ message: JSON.stringify({
5185
+ message: "[local] Starting tool call " + callInfo + ": " + tool["function"].name,
5186
+ metadata: {
5187
+ tool: toolMetadata
5188
+ }
5189
+ }, null, 2)
5190
+ });
5191
+ toolFn = toolMap == null ? void 0 : toolMap[tool["function"].name];
5192
+ if (toolFn) {
5193
+ _context4.next = 8;
5194
+ break;
5195
+ }
5196
+ logger({
5197
+ statusCode: 404,
5198
+ message: JSON.stringify({
5199
+ message: "[local] No tool fn found: " + tool["function"].name,
5200
+ metadata: {
5201
+ tool: toolMetadata
5202
+ }
5203
+ }, null, 2)
5204
+ });
5205
+ return _context4.abrupt("return");
5206
+ case 8:
5207
+ console.log('Executing tool:', tool["function"].name, tool.id, tool["function"].arguments);
5208
+ args = {};
5209
+ try {
5210
+ if (tool["function"].arguments) {
5211
+ args = JSON.parse(tool["function"].arguments);
5212
+ logger({
5213
+ statusCode: 100,
5214
+ message: JSON.stringify({
5215
+ message: "[local] Passing args to tool call: " + tool["function"].name,
5216
+ metadata: {
5217
+ args: args,
5218
+ tool: toolMetadata
5219
+ }
5220
+ }, null, 2)
5221
+ });
5222
+ }
5223
+ } catch (e) {
5224
+ console.error(e);
5225
+ }
5226
+ _context4.next = 13;
5227
+ return toolFn(args);
5228
+ case 13:
5229
+ output = _context4.sent;
5230
+ logger({
5231
+ statusCode: 200,
5232
+ message: JSON.stringify({
5233
+ message: "[local] Completed tool call " + callInfo + ": " + tool["function"].name,
5234
+ metadata: {
5235
+ output: output,
5236
+ tool: toolMetadata
5237
+ }
5238
+ }, null, 2)
5239
+ });
5240
+ return _context4.abrupt("return", {
5241
+ tool_call_id: tool.id,
5242
+ output: JSON.stringify(output)
5243
+ });
5244
+ case 16:
5245
+ case "end":
5246
+ return _context4.stop();
5247
+ }
5248
+ }, _callee4);
5249
+ }));
5250
+ return function (_x6, _x7, _x8) {
5251
+ return _ref8.apply(this, arguments);
5252
+ };
5253
+ }()));
5254
+ case 5:
5255
+ _context5.t1 = _context5.sent;
5256
+ toolOutputs = (0, _context5.t0)(_context5.t1);
5257
+ if (toolOutputs) {
5258
+ _context5.next = 11;
5259
+ break;
5260
+ }
5261
+ console.error('No tool outputs to submit.');
5262
+ logger({
5263
+ statusCode: 404,
5264
+ message: JSON.stringify({
5265
+ message: "No tool outputs submitted",
5266
+ metadata: {}
5267
+ }, null, 2)
5268
+ });
5269
+ return _context5.abrupt("return", handleRunStatus({
5270
+ threadId: threadId,
5271
+ run: run
5272
+ }));
5273
+ case 11:
5274
+ if (!(toolOutputs && (toolOutputs == null ? void 0 : toolOutputs.length) > 0)) {
5275
+ _context5.next = 20;
5276
+ break;
5277
+ }
5278
+ console.log(toolOutputs, '###### YOOOOOO');
5279
+ _context5.next = 15;
5280
+ return client.beta.threads.runs.submitToolOutputsAndPoll(threadId, run.id, {
5281
+ tool_outputs: toolOutputs
5282
+ });
5283
+ case 15:
5284
+ run = _context5.sent;
5285
+ logger({
5286
+ statusCode: 200,
5287
+ message: JSON.stringify({
5288
+ message: "Tool outputs submitted",
5289
+ metadata: {
5290
+ run: run
5291
+ }
5292
+ }, null, 2)
5293
+ });
5294
+ console.log('Tool outputs submitted successfully.');
5295
+ _context5.next = 22;
5296
+ break;
5297
+ case 20:
5298
+ logger({
5299
+ statusCode: 404,
5300
+ message: JSON.stringify({
5301
+ message: "No tool outputs to submit",
5302
+ metadata: {}
5303
+ }, null, 2)
5304
+ });
5305
+ console.log('No tool outputs to submit.');
5306
+ case 22:
5307
+ return _context5.abrupt("return", handleRunStatus({
5308
+ threadId: threadId,
5309
+ run: run
5310
+ }));
5311
+ case 23:
5312
+ case "end":
5313
+ return _context5.stop();
5314
+ }
5315
+ }, _callee5);
5316
+ }));
5317
+ return function handleRequiresAction(_x5) {
5318
+ return _ref7.apply(this, arguments);
5319
+ };
5320
+ }();
5321
+ getRun = /*#__PURE__*/function () {
5322
+ var _ref10 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(_ref9) {
5323
+ var threadId, runId;
5324
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
5325
+ while (1) switch (_context6.prev = _context6.next) {
5326
+ case 0:
5327
+ threadId = _ref9.threadId, runId = _ref9.runId;
5328
+ _context6.next = 3;
5329
+ return client.beta.threads.runs.retrieve(threadId, runId);
5330
+ case 3:
5331
+ return _context6.abrupt("return", _context6.sent);
5332
+ case 4:
5333
+ case "end":
5334
+ return _context6.stop();
5335
+ }
5336
+ }, _callee6);
5337
+ }));
5338
+ return function getRun(_x9) {
5339
+ return _ref10.apply(this, arguments);
5340
+ };
5341
+ }();
5342
+ return _context11.abrupt("return", {
5343
+ agent: agent,
5344
+ initializeThread: function () {
5345
+ var _initializeThread = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee7(messages) {
5346
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
5347
+ while (1) switch (_context7.prev = _context7.next) {
5348
+ case 0:
5349
+ if (messages === void 0) {
5350
+ messages = [];
5351
+ }
5352
+ _context7.next = 3;
5353
+ return client.beta.threads.create({
5354
+ messages: messages
5355
+ });
5356
+ case 3:
5357
+ return _context7.abrupt("return", _context7.sent);
5358
+ case 4:
5359
+ case "end":
5360
+ return _context7.stop();
5361
+ }
5362
+ }, _callee7);
5363
+ }));
5364
+ function initializeThread(_x10) {
5365
+ return _initializeThread.apply(this, arguments);
5366
+ }
5367
+ return initializeThread;
5368
+ }(),
5369
+ listMessages: function () {
5370
+ var _listMessages = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee8(_ref11) {
5371
+ var threadId;
5372
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
5373
+ while (1) switch (_context8.prev = _context8.next) {
5374
+ case 0:
5375
+ threadId = _ref11.threadId;
5376
+ _context8.next = 3;
5377
+ return client.beta.threads.messages.list(threadId);
5378
+ case 3:
5379
+ return _context8.abrupt("return", _context8.sent);
5380
+ case 4:
5381
+ case "end":
5382
+ return _context8.stop();
5383
+ }
5384
+ }, _callee8);
5385
+ }));
5386
+ function listMessages(_x11) {
5387
+ return _listMessages.apply(this, arguments);
5388
+ }
5389
+ return listMessages;
5390
+ }(),
5391
+ getRun: getRun,
5392
+ handleRunStatus: handleRunStatus,
5393
+ handleRequiresAction: handleRequiresAction,
5394
+ createUserMessage: function () {
5395
+ var _createUserMessage = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee9(_ref12) {
5396
+ var threadId, content;
5397
+ return _regeneratorRuntime().wrap(function _callee9$(_context9) {
5398
+ while (1) switch (_context9.prev = _context9.next) {
5399
+ case 0:
5400
+ threadId = _ref12.threadId, content = _ref12.content;
5401
+ _context9.next = 3;
5402
+ return client.beta.threads.messages.create(threadId, {
5403
+ role: 'user',
5404
+ content: content
5405
+ });
5406
+ case 3:
5407
+ return _context9.abrupt("return", _context9.sent);
5408
+ case 4:
5409
+ case "end":
5410
+ return _context9.stop();
5411
+ }
5412
+ }, _callee9);
5413
+ }));
5414
+ function createUserMessage(_x12) {
5415
+ return _createUserMessage.apply(this, arguments);
5416
+ }
5417
+ return createUserMessage;
5418
+ }(),
5419
+ watchRun: function () {
5420
+ var _watchRun = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee10(_ref13) {
5421
+ var runId, threadId, run;
5422
+ return _regeneratorRuntime().wrap(function _callee10$(_context10) {
5423
+ while (1) switch (_context10.prev = _context10.next) {
5424
+ case 0:
5425
+ runId = _ref13.runId, threadId = _ref13.threadId;
5426
+ if (!runId) {
5427
+ _context10.next = 7;
5428
+ break;
5429
+ }
5430
+ _context10.next = 4;
5431
+ return getRun({
5432
+ threadId: threadId,
5433
+ runId: runId
5434
+ });
5435
+ case 4:
5436
+ run = _context10.sent;
5437
+ _context10.next = 11;
5438
+ break;
5439
+ case 7:
5440
+ _context10.next = 9;
5441
+ return client.beta.threads.runs.createAndPoll(threadId, {
5442
+ assistant_id: id,
5443
+ tool_choice: 'required'
5444
+ });
5445
+ case 9:
5446
+ run = _context10.sent;
5447
+ logger({
5448
+ statusCode: 202,
5449
+ message: JSON.stringify({
5450
+ message: "Creating and polling run, tool choice required",
5451
+ metadata: {
5452
+ run: run,
5453
+ tool_choice: 'required',
5454
+ threadId: threadId,
5455
+ assistant_id: id
5456
+ }
5457
+ }, null, 2)
5458
+ });
5459
+ case 11:
5460
+ return _context10.abrupt("return", handleRunStatus({
5461
+ threadId: threadId,
5462
+ run: run
5463
+ }));
5464
+ case 12:
5465
+ case "end":
5466
+ return _context10.stop();
5467
+ }
5468
+ }, _callee10);
5469
+ }));
5470
+ function watchRun(_x13) {
5471
+ return _watchRun.apply(this, arguments);
5472
+ }
5473
+ return watchRun;
5474
+ }()
5475
+ });
5476
+ case 9:
5477
+ case "end":
5478
+ return _context11.stop();
5479
+ }
5480
+ }, _callee11);
5481
+ }));
5482
+ return _getAssistantAgent.apply(this, arguments);
5483
+ }
5484
+
5485
+ var delay = function delay(ms) {
5486
+ return new Promise(function (resolve) {
5487
+ return setTimeout(resolve, ms);
5488
+ });
5489
+ };
5490
+ function getAgentParams(_ref) {
5491
+ var tools = _ref.tools,
5492
+ resultTool = _ref.resultTool,
5493
+ model = _ref.model;
5494
+ var toolsConverted = Object.entries(tools).reduce(function (memo, _ref2) {
5495
+ var key = _ref2[0],
5496
+ val = _ref2[1];
5497
+ memo[key] = tool(val);
5498
+ return memo;
5499
+ }, {});
5500
+ var answerTool = {};
5501
+ if (resultTool) {
5502
+ answerTool = {
5503
+ answer: tool(resultTool)
5504
+ };
5505
+ }
5506
+ var modelDef;
5507
+ if (model.type === 'openai') {
5508
+ var mName = model.name;
5509
+ if (!mName) {
5510
+ mName = "gpt-4o-2024-08-06";
5511
+ }
5512
+ var openai = createOpenAI({
5513
+ apiKey: process.env.OPENAI_API_KEY
5514
+ });
5515
+ modelDef = openai(mName, {
5516
+ structuredOutputs: true
5517
+ });
5518
+ } else if (model.type === 'anthropic') {
5519
+ var _mName = model.name;
5520
+ if (!_mName) {
5521
+ _mName = "claude-3-5-sonnet-20240620";
5522
+ }
5523
+ var anthropic = createAnthropic({
5524
+ apiKey: process.env.ANTHROPIC_API_KEY
5525
+ });
5526
+ modelDef = anthropic(_mName);
5527
+ } else if (model.type === 'groq') {
5528
+ var _process$env$GROQ_API;
5529
+ modelDef = createOpenAICompatibleModel('https://api.groq.com/openai/v1', (_process$env$GROQ_API = process.env.GROQ_API_KEY) != null ? _process$env$GROQ_API : '', 'llama-3.2-90b-text-preview', model.name);
5530
+ } else if (model.type === 'perplexity') {
5531
+ var _process$env$PERPLEXI;
5532
+ modelDef = createOpenAICompatibleModel('https://api.perplexity.ai/', (_process$env$PERPLEXI = process.env.PERPLEXITY_API_KEY) != null ? _process$env$PERPLEXI : '', 'llama-3.1-sonar-large-128k-chat', model.name);
5533
+ } else if (model.type === 'fireworks') {
5534
+ var _process$env$FIREWORK;
5535
+ modelDef = createOpenAICompatibleModel('https://api.fireworks.ai/inference/v1', (_process$env$FIREWORK = process.env.FIREWORKS_API_KEY) != null ? _process$env$FIREWORK : '', 'llama-v3p1-70b-instruct', model.name);
5536
+ }
5537
+ return {
5538
+ toolsConverted: toolsConverted,
5539
+ modelDef: modelDef,
5540
+ answerTool: answerTool,
5541
+ toolChoice: (model == null ? void 0 : model.toolChoice) || 'required'
5542
+ };
5543
+ }
5544
+ function createStreamAgent(_ref3) {
5545
+ var agent_instructions = _ref3.agent_instructions,
5546
+ _ref3$maxSteps = _ref3.maxSteps,
5547
+ maxSteps = _ref3$maxSteps === void 0 ? 5 : _ref3$maxSteps,
5548
+ tools = _ref3.tools,
5549
+ resultTool = _ref3.resultTool,
5550
+ _ref3$context = _ref3.context,
5551
+ context = _ref3$context === void 0 ? [] : _ref3$context,
5552
+ model = _ref3.model;
5553
+ var params = getAgentParams({
5554
+ tools: tools,
5555
+ resultTool: resultTool,
5556
+ model: model
5557
+ });
5558
+ return /*#__PURE__*/function () {
5559
+ var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref4) {
5560
+ var prompt, argsForExecute;
5561
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
5562
+ while (1) switch (_context2.prev = _context2.next) {
5563
+ case 0:
5564
+ prompt = _ref4.prompt;
5565
+ argsForExecute = {
5566
+ model: params.modelDef,
5567
+ tools: _extends({}, params.toolsConverted, params.answerTool),
5568
+ toolChoice: (params == null ? void 0 : params.toolChoice) || 'required',
5569
+ maxSteps: maxSteps,
5570
+ // system: systemPrompt,
5571
+ onStepFinish: function () {
5572
+ var _onStepFinish = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(props) {
5573
+ var _props$response, _props$response2;
5574
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
5575
+ while (1) switch (_context.prev = _context.next) {
5576
+ case 0:
5577
+ console.log(JSON.stringify(props, null, 2));
5578
+ if (!(props != null && (_props$response = props.response) != null && (_props$response = _props$response.headers) != null && _props$response['x-ratelimit-remaining-tokens'] && parseInt(props == null || (_props$response2 = props.response) == null || (_props$response2 = _props$response2.headers) == null ? void 0 : _props$response2['x-ratelimit-remaining-tokens'], 10) < 2000)) {
5579
+ _context.next = 5;
5580
+ break;
5581
+ }
5582
+ console.log('Rate limit reached, waiting 10 seconds');
5583
+ _context.next = 5;
5584
+ return delay(10 * 1000);
5585
+ case 5:
5586
+ case "end":
5587
+ return _context.stop();
5588
+ }
5589
+ }, _callee);
5590
+ }));
5591
+ function onStepFinish(_x2) {
5592
+ return _onStepFinish.apply(this, arguments);
5593
+ }
5594
+ return onStepFinish;
5595
+ }()
5596
+ };
5597
+ _context2.next = 4;
5598
+ return streamText(_extends({
5599
+ messages: [].concat(context, [{
5600
+ role: 'user',
5601
+ content: prompt
5602
+ }, {
5603
+ role: 'system',
5604
+ content: agent_instructions
5605
+ }])
5606
+ }, argsForExecute));
5607
+ case 4:
5608
+ return _context2.abrupt("return", _context2.sent);
5609
+ case 5:
5610
+ case "end":
5611
+ return _context2.stop();
5612
+ }
5613
+ }, _callee2);
5614
+ }));
5615
+ return function (_x) {
5616
+ return _ref5.apply(this, arguments);
5617
+ };
5618
+ }();
5619
+ }
5620
+ function createAgent(_ref6) {
5621
+ var agent_instructions = _ref6.agent_instructions,
5622
+ _ref6$maxSteps = _ref6.maxSteps,
5623
+ maxSteps = _ref6$maxSteps === void 0 ? 5 : _ref6$maxSteps,
5624
+ tools = _ref6.tools,
5625
+ resultTool = _ref6.resultTool,
5626
+ _ref6$context = _ref6.context,
5627
+ context = _ref6$context === void 0 ? [] : _ref6$context,
5628
+ model = _ref6.model;
5629
+ var params = getAgentParams({
5630
+ tools: tools,
5631
+ resultTool: resultTool,
5632
+ model: model
5633
+ });
5634
+ return /*#__PURE__*/function () {
5635
+ var _ref8 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(_ref7) {
5636
+ var prompt, argsForExecute;
5637
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
5638
+ while (1) switch (_context4.prev = _context4.next) {
5639
+ case 0:
5640
+ prompt = _ref7.prompt;
5641
+ argsForExecute = {
5642
+ model: params.modelDef,
5643
+ tools: _extends({}, params.toolsConverted, params.answerTool),
5644
+ toolChoice: (params == null ? void 0 : params.toolChoice) || 'required',
5645
+ maxSteps: maxSteps,
5646
+ // system: systemPrompt,
5647
+ onStepFinish: function () {
5648
+ var _onStepFinish2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(props) {
5649
+ var _props$response3, _props$response4;
5650
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
5651
+ while (1) switch (_context3.prev = _context3.next) {
5652
+ case 0:
5653
+ console.log(JSON.stringify(props, null, 2));
5654
+ if (!(props != null && (_props$response3 = props.response) != null && (_props$response3 = _props$response3.headers) != null && _props$response3['x-ratelimit-remaining-tokens'] && parseInt(props == null || (_props$response4 = props.response) == null || (_props$response4 = _props$response4.headers) == null ? void 0 : _props$response4['x-ratelimit-remaining-tokens'], 10) < 2000)) {
5655
+ _context3.next = 5;
5656
+ break;
5657
+ }
5658
+ console.log('Rate limit reached, waiting 10 seconds');
5659
+ _context3.next = 5;
5660
+ return delay(10 * 1000);
5661
+ case 5:
5662
+ case "end":
5663
+ return _context3.stop();
5664
+ }
5665
+ }, _callee3);
5666
+ }));
5667
+ function onStepFinish(_x4) {
5668
+ return _onStepFinish2.apply(this, arguments);
5669
+ }
5670
+ return onStepFinish;
5671
+ }()
5672
+ };
5673
+ _context4.next = 4;
5674
+ return generateText(_extends({
5675
+ messages: [].concat(context, [{
5676
+ role: 'user',
5677
+ content: prompt
5678
+ }, {
5679
+ role: 'system',
5680
+ content: agent_instructions
5681
+ }])
5682
+ }, argsForExecute));
5683
+ case 4:
5684
+ return _context4.abrupt("return", _context4.sent);
5685
+ case 5:
5686
+ case "end":
5687
+ return _context4.stop();
5688
+ }
5689
+ }, _callee4);
5690
+ }));
5691
+ return function (_x3) {
5692
+ return _ref8.apply(this, arguments);
5693
+ };
5694
+ }();
5695
+ }
5696
+ function createOpenAICompatibleModel(baseURL, apiKey, defaultModelName, modelName) {
5697
+ var client = createOpenAI({
5698
+ baseURL: baseURL,
5699
+ apiKey: apiKey
5700
+ });
5701
+ return client(modelName || defaultModelName);
5702
+ }
5703
+
5704
+ function getAgent(_x) {
5705
+ return _getAgent.apply(this, arguments);
5706
+ }
5707
+ function _getAgent() {
5708
+ _getAgent = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_ref) {
5709
+ var connectionId, agent, apis, tools, toolMap, assistant, _agent$model2, keyToModel, _tools, _toolMap, resultTool, schema, _agent$model;
5710
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
5711
+ while (1) switch (_context3.prev = _context3.next) {
5712
+ case 0:
5713
+ connectionId = _ref.connectionId, agent = _ref.agent, apis = _ref.apis;
5714
+ if (!(agent.model.provider === 'OPEN_AI_ASSISTANT')) {
5715
+ _context3.next = 10;
5716
+ break;
5717
+ }
5718
+ tools = Object.keys(agent.tools);
5719
+ toolMap = Object.entries(apis).reduce(function (memo, _ref2) {
5720
+ var k = _ref2[0],
5721
+ def = _ref2[1];
5722
+ if (tools.includes(k)) {
5723
+ memo[k] = /*#__PURE__*/function () {
5724
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(props) {
5725
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
5726
+ while (1) switch (_context.prev = _context.next) {
5727
+ case 0:
5728
+ return _context.abrupt("return", def.executor({
5729
+ data: props,
5730
+ ctx: {
5731
+ connectionId: connectionId
5732
+ }
5733
+ }));
5734
+ case 1:
5735
+ case "end":
5736
+ return _context.stop();
5737
+ }
5738
+ }, _callee);
5739
+ }));
5740
+ return function (_x2) {
5741
+ return _ref3.apply(this, arguments);
5742
+ };
5743
+ }();
5744
+ }
5745
+ return memo;
5746
+ }, {});
5747
+ _context3.next = 6;
5748
+ return getAssistantAgent({
5749
+ id: agent.id,
5750
+ toolMap: toolMap
5751
+ });
5752
+ case 6:
5753
+ assistant = _context3.sent;
5754
+ return _context3.abrupt("return", assistant);
5755
+ case 10:
5756
+ if (!['OPEN_AI_VERCEL', 'ANTHROPIC_VERCEL', 'GROQ_VERCEL', 'PERPLEXITY_VERCEL', 'FIREWORKS_VERCEL'].includes(agent.model.provider)) {
5757
+ _context3.next = 19;
5758
+ break;
5759
+ }
5760
+ keyToModel = {
5761
+ OPEN_AI_VERCEL: 'openai',
5762
+ ANTHROPIC_VERCEL: 'anthropic',
5763
+ GROQ_VERCEL: 'groq',
5764
+ PERPLEXITY_VERCEL: 'perplexity',
5765
+ FIREWORKS_VERCEL: 'fireworks'
5766
+ };
5767
+ _tools = Object.keys(agent.tools);
5768
+ _toolMap = Object.entries(apis).reduce(function (memo, _ref4) {
5769
+ var k = _ref4[0],
5770
+ def = _ref4[1];
5771
+ if (_tools.includes(k)) {
5772
+ memo[k] = {
5773
+ description: def.label,
5774
+ parameters: def.schema,
5775
+ execute: function () {
5776
+ var _execute = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(props) {
5777
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
5778
+ while (1) switch (_context2.prev = _context2.next) {
5779
+ case 0:
5780
+ return _context2.abrupt("return", def.executor({
5781
+ data: props,
5782
+ ctx: {
5783
+ connectionId: connectionId
5784
+ }
5785
+ }));
5786
+ case 1:
5787
+ case "end":
5788
+ return _context2.stop();
5789
+ }
5790
+ }, _callee2);
5791
+ }));
5792
+ function execute(_x3) {
5793
+ return _execute.apply(this, arguments);
5794
+ }
5795
+ return execute;
5796
+ }()
5797
+ };
5798
+ }
5799
+ return memo;
5800
+ }, {});
5801
+ resultTool = undefined;
5802
+ if (agent.outputs.structured) {
5803
+ schema = Object.entries(agent.outputs.structured.schema).reduce(function (memo, _ref5) {
5804
+ var k = _ref5[0],
5805
+ v = _ref5[1];
5806
+ if (v.type === 'string') {
5807
+ memo[k] = z.string();
5808
+ }
5809
+ if (v.type === 'array') {
5810
+ var _v$items;
5811
+ var itemType = v == null || (_v$items = v.items) == null ? void 0 : _v$items.type;
5812
+ if (itemType === 'string') {
5813
+ memo[k] = z.array(z.string());
5814
+ }
5815
+ }
5816
+ return memo;
5817
+ }, {});
5818
+ resultTool = {
5819
+ description: agent.outputs.structured.description,
5820
+ parameters: z.object(schema)
5821
+ };
5822
+ }
5823
+ if (!(agent.model.generation_type === 'stream')) {
5824
+ _context3.next = 18;
5825
+ break;
5826
+ }
5827
+ return _context3.abrupt("return", createStreamAgent({
5828
+ agent_instructions: agent.agent_instructions,
5829
+ model: {
5830
+ type: keyToModel[agent.model.provider],
5831
+ name: agent.model.name,
5832
+ toolChoice: ((_agent$model = agent.model) == null ? void 0 : _agent$model.toolChoice) || 'required'
5833
+ },
5834
+ tools: _toolMap,
5835
+ resultTool: resultTool
5836
+ }));
5837
+ case 18:
5838
+ return _context3.abrupt("return", createAgent({
5839
+ agent_instructions: agent.agent_instructions,
5840
+ model: {
5841
+ type: keyToModel[agent.model.provider],
5842
+ name: agent.model.name,
5843
+ toolChoice: ((_agent$model2 = agent.model) == null ? void 0 : _agent$model2.toolChoice) || 'required'
5844
+ },
5845
+ tools: _toolMap,
5846
+ resultTool: resultTool
5847
+ }));
5848
+ case 19:
5849
+ case "end":
5850
+ return _context3.stop();
5851
+ }
5852
+ }, _callee3);
5853
+ }));
5854
+ return _getAgent.apply(this, arguments);
5855
+ }
5856
+
5857
+ var Mastra = /*#__PURE__*/function () {
5858
+ function Mastra(_ref) {
5859
+ var _this = this;
5860
+ var dataLayer = _ref.dataLayer,
5861
+ vectorLayer = _ref.vectorLayer,
5862
+ config = _ref.config;
5863
+ //global events grouped by Integration
5864
+ this.globalEvents = new Map();
5865
+ // global apis grouped by Integration
5866
+ this.globalApis = new Map();
5867
+ this.integrations = new Map();
5868
+ this.dataLayer = void 0;
5869
+ this.vectorLayer = void 0;
5870
+ this.agentsConfig = {
5871
+ agentDirPath: '',
5872
+ vectorProvider: []
5873
+ };
5874
+ this.config = void 0;
5875
+ this.runBlueprint = /*#__PURE__*/function () {
5876
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref2) {
5877
+ var _this$availableIntegr;
5878
+ var blueprint, _ref2$dataCtx, dataCtx, ctx, systemApis, systemEvents, availableIntegrations, availableIntegrationApis, availableIntegrationEvents, frameworkApis, frameworkEvents;
5879
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
5880
+ while (1) switch (_context.prev = _context.next) {
5881
+ case 0:
5882
+ blueprint = _ref2.blueprint, _ref2$dataCtx = _ref2.dataCtx, dataCtx = _ref2$dataCtx === void 0 ? {} : _ref2$dataCtx, ctx = _ref2.ctx;
5883
+ systemApis = _this.getSystemApis();
5884
+ systemEvents = _this.getSystemEvents();
5885
+ availableIntegrations = (_this$availableIntegr = _this.availableIntegrations()) == null ? void 0 : _this$availableIntegr.map(function (_ref4) {
5886
+ var integration = _ref4.integration;
5887
+ return integration;
5888
+ });
5889
+ availableIntegrationApis = availableIntegrations.reduce(function (acc, _ref5) {
5890
+ var name = _ref5.name;
5891
+ var apis = _this.getApisByIntegration(name);
5892
+ return _extends({}, acc, apis);
5893
+ }, {});
5894
+ availableIntegrationEvents = availableIntegrations.reduce(function (acc, _ref6) {
5895
+ var name = _ref6.name;
5896
+ var events = _this.getEventsByIntegration(name);
5897
+ return _extends({}, acc, events);
5898
+ }, {});
5899
+ frameworkApis = _extends({}, systemApis, availableIntegrationApis);
5900
+ frameworkEvents = _extends({}, systemEvents, availableIntegrationEvents);
5901
+ _context.next = 10;
5902
+ return blueprintRunner({
5903
+ dataCtx: dataCtx,
5904
+ blueprint: blueprint,
5905
+ frameworkApis: frameworkApis,
5906
+ frameworkEvents: frameworkEvents,
5907
+ ctx: ctx
5908
+ });
5909
+ case 10:
5910
+ case "end":
5911
+ return _context.stop();
5912
+ }
5913
+ }, _callee);
5914
+ }));
5915
+ return function (_x) {
5916
+ return _ref3.apply(this, arguments);
5917
+ };
5918
+ }();
5919
+ this.dataLayer = dataLayer;
5920
+ this.vectorLayer = vectorLayer;
5921
+ this.config = config;
5922
+ }
5923
+ Mastra.init = function init(config) {
5924
+ var _config$workflows$sys;
5925
+ if (!config.db.uri) {
5926
+ throw new Error('No database config/provider found');
5927
+ }
5928
+ var dataLayer = new DataLayer({
5929
+ url: config.db.uri,
5930
+ provider: config.db.provider
5931
+ });
5932
+ var vectorLayer = new VectorLayer();
5933
+ var framework = new Mastra({
5934
+ config: config,
5935
+ dataLayer: dataLayer,
5936
+ vectorLayer: vectorLayer
5937
+ });
5938
+ // Register integrations
5939
+ config.integrations.forEach(function (integration) {
5940
+ framework.__registerIntgeration(integration);
5941
+ });
5942
+ // Register system apis
5943
+ framework.__registerApis({
5944
+ apis: [].concat(getAgentSystemApis({
5945
+ mastra: framework
5946
+ }), (_config$workflows$sys = config.workflows.systemApis) == null ? void 0 : _config$workflows$sys.map(function (api) {
5947
+ return _extends({}, api, {
5948
+ integrationName: config.name
5949
+ });
5950
+ }), getVectorQueryApis({
5951
+ mastra: framework
5952
+ }))
5953
+ });
5954
+ // Register System events
5955
+ framework.__registerEvents({
5956
+ events: config.workflows.systemEvents
5957
+ });
5958
+ // Register vector sync event
5959
+ framework.__registerEvents({
5960
+ events: {
5961
+ AGENT_VECTOR_SYNC: {
5962
+ label: 'Sync vector data for an agent',
5963
+ description: 'Sync vector data for an agent',
5964
+ schema: z.object({
5965
+ agentId: z.string()
5966
+ }),
5967
+ handler: agentVectorSyncEvent
5968
+ },
5969
+ VECTOR_SYNC: {
5970
+ label: 'Sync vector data',
5971
+ description: 'Sync vector data',
5972
+ schema: z.object({
5973
+ vector_provider: z.string(),
5974
+ entities: z.array(z.object({
5975
+ integration: z.string(),
5976
+ data: z.array(z.object({
5977
+ name: z.string(),
5978
+ fields: z.array(z.string()),
5979
+ syncEvent: z.string(),
5980
+ index: z.string()
5981
+ }))
5982
+ }))
5983
+ }),
5984
+ handler: genericVectorySyncEvent
5985
+ }
5986
+ },
5987
+ integrationName: config.name
5988
+ });
5989
+ // Register agent config
5990
+ framework.agentsConfig = config.agents;
5991
+ return framework;
5992
+ };
5993
+ var _proto = Mastra.prototype;
5994
+ _proto.connectedIntegrations = /*#__PURE__*/function () {
5995
+ var _connectedIntegrations = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_ref7) {
5996
+ var _this2 = this;
5997
+ var context, ints, connectionChecks;
5998
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
5999
+ while (1) switch (_context3.prev = _context3.next) {
6000
+ case 0:
6001
+ context = _ref7.context;
6002
+ ints = this.availableIntegrations();
6003
+ _context3.next = 4;
6004
+ return Promise.all(ints.map(/*#__PURE__*/function () {
6005
+ var _ref9 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref8) {
6006
+ var integration, connection;
6007
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
6008
+ while (1) switch (_context2.prev = _context2.next) {
6009
+ case 0:
6010
+ integration = _ref8.integration;
6011
+ _context2.next = 3;
6012
+ return _this2.dataLayer.getConnection({
6013
+ connectionId: context.connectionId,
6014
+ name: integration.name
6015
+ });
6016
+ case 3:
6017
+ connection = _context2.sent;
6018
+ return _context2.abrupt("return", {
6019
+ integration: integration,
6020
+ connected: !!connection
6021
+ });
6022
+ case 5:
6023
+ case "end":
6024
+ return _context2.stop();
6025
+ }
6026
+ }, _callee2);
6027
+ }));
6028
+ return function (_x3) {
6029
+ return _ref9.apply(this, arguments);
6030
+ };
6031
+ }()));
6032
+ case 4:
6033
+ connectionChecks = _context3.sent;
6034
+ return _context3.abrupt("return", connectionChecks.filter(function (_ref10) {
6035
+ var connected = _ref10.connected;
6036
+ return connected;
6037
+ }).map(function (_ref11) {
6038
+ var integration = _ref11.integration;
6039
+ return integration;
6040
+ }));
6041
+ case 6:
6042
+ case "end":
6043
+ return _context3.stop();
6044
+ }
6045
+ }, _callee3, this);
6046
+ }));
6047
+ function connectedIntegrations(_x2) {
6048
+ return _connectedIntegrations.apply(this, arguments);
6049
+ }
6050
+ return connectedIntegrations;
6051
+ }();
6052
+ _proto.__registerIntgeration = function __registerIntgeration(definition) {
6053
+ var name = definition.name;
6054
+ definition.attachDataLayer({
6055
+ dataLayer: this.dataLayer
6056
+ });
6057
+ var router = this.createRouter();
6058
+ definition.corePresets = {
6059
+ redirectURI: router.makeRedirectURI()
6060
+ };
6061
+ this.integrations.set(name, definition);
6062
+ definition.registerEvents();
6063
+ this.__registerEvents({
6064
+ events: definition.getEvents(),
6065
+ integrationName: name
6066
+ });
6067
+ definition.registerApis();
6068
+ definition._convertApiClientToSystemApis();
6069
+ this.__registerApis({
6070
+ apis: Object.values(definition.getApis()),
6071
+ integrationName: name
6072
+ });
6073
+ };
6074
+ _proto.registerApi = function registerApi(name, api) {
6075
+ var _extends2;
6076
+ var integrationApis = this.globalApis.get(this.config.name) || {};
6077
+ this.globalApis.set(this.config.name, _extends({}, integrationApis, (_extends2 = {}, _extends2[name] = _extends({}, api, {
6078
+ integrationName: this.config.name
6079
+ }), _extends2)));
6080
+ };
6081
+ _proto.registerEvent = function registerEvent(name, event) {
6082
+ var _extends3;
6083
+ var integrationEvents = this.globalEvents.get('SYSTEM') || {};
6084
+ this.globalEvents.set('SYSTEM', _extends({}, integrationEvents, (_extends3 = {}, _extends3[name] = event, _extends3)));
6085
+ };
6086
+ _proto.__registerEvents = function __registerEvents(_ref12) {
6087
+ var events = _ref12.events,
6088
+ _ref12$integrationNam = _ref12.integrationName,
6089
+ integrationName = _ref12$integrationNam === void 0 ? this.config.name : _ref12$integrationNam;
6090
+ var integrationEvents = this.globalEvents.get(integrationName) || {};
6091
+ this.globalEvents.set(integrationName, _extends({}, integrationEvents, events));
6092
+ };
6093
+ _proto.__registerApis = function __registerApis(_ref13) {
6094
+ var apis = _ref13.apis,
6095
+ _ref13$integrationNam = _ref13.integrationName,
6096
+ integrationName = _ref13$integrationNam === void 0 ? this.config.name : _ref13$integrationNam;
6097
+ var integrationApis = this.globalApis.get(integrationName) || {};
6098
+ this.globalApis.set(integrationName, _extends({}, integrationApis, apis.reduce(function (acc, api) {
6099
+ var _extends4;
6100
+ return _extends({}, acc, (_extends4 = {}, _extends4[api.type] = api, _extends4));
6101
+ }, {})));
6102
+ };
6103
+ _proto.availableIntegrations = function availableIntegrations() {
6104
+ return Array.from(this.integrations.entries()).map(function (_ref14) {
6105
+ var name = _ref14[0],
6106
+ integration = _ref14[1];
6107
+ return {
6108
+ name: name,
6109
+ integration: integration
6110
+ };
6111
+ });
6112
+ };
6113
+ _proto.getIntegration = function getIntegration(name) {
6114
+ return this.integrations.get(name);
6115
+ };
6116
+ _proto.getGlobalEvents = function getGlobalEvents() {
6117
+ return this.globalEvents;
6118
+ };
6119
+ _proto.getSystemEvents = function getSystemEvents() {
6120
+ var events = this.globalEvents.get(this.config.name);
6121
+ return events || {};
6122
+ };
6123
+ _proto.getEventsByIntegration = function getEventsByIntegration(name) {
6124
+ return this.globalEvents.get(name);
6125
+ };
6126
+ _proto.getGlobalEventHandlers = function getGlobalEventHandlers() {
6127
+ var _this3 = this;
6128
+ return Array.from(this.globalEvents.entries()).flatMap(function (_ref15) {
6129
+ var integrationName = _ref15[0],
6130
+ events = _ref15[1];
6131
+ var groupedHandlers = Object.keys(events).map(function (eventKey) {
6132
+ var _events$eventKey;
6133
+ var eventHandler = (_events$eventKey = events[eventKey]) == null ? void 0 : _events$eventKey.handler;
6134
+ if (!eventHandler) return null;
6135
+ var isSystemEvent = integrationName === _this3.config.name;
6136
+ var _this3$createRouter = _this3.createRouter(),
6137
+ makeWebhookUrl = _this3$createRouter.makeWebhookUrl;
6138
+ if (isSystemEvent) {
6139
+ return eventHandler({
6140
+ getIntegration: function getIntegration(name) {
6141
+ return _this3.getIntegration(name);
6142
+ },
6143
+ eventKey: eventKey,
6144
+ getVectorProvider: function getVectorProvider(name) {
6145
+ return _this3.agentsConfig.vectorProvider.find(function (provider) {
6146
+ return provider.name === name;
6147
+ });
6148
+ },
6149
+ makeWebhookUrl: makeWebhookUrl
6150
+ });
6151
+ } else {
6152
+ var integration = _this3.getIntegration(integrationName);
6153
+ return eventHandler({
6154
+ integrationInstance: integration,
6155
+ eventKey: eventKey,
6156
+ makeWebhookUrl: makeWebhookUrl
6157
+ });
6158
+ }
6159
+ }).filter(Boolean);
6160
+ return groupedHandlers;
6161
+ });
6162
+ };
6163
+ _proto.getApis = function getApis() {
6164
+ return this.globalApis;
6165
+ };
6166
+ _proto.getSystemApis = function getSystemApis() {
6167
+ return this.globalApis.get(this.config.name);
6168
+ };
6169
+ _proto.getApisByIntegration = function getApisByIntegration(name, includeHidden) {
6170
+ var integrationApis = this.globalApis.get(name);
6171
+ if (includeHidden) {
6172
+ return integrationApis;
6173
+ }
6174
+ return omitBy(integrationApis, function (value) {
6175
+ return value.isHidden;
6176
+ });
6177
+ };
6178
+ _proto.authenticatableIntegrations = function authenticatableIntegrations() {
6179
+ return this.availableIntegrations().filter(function (_ref16) {
6180
+ var integration = _ref16.integration;
6181
+ try {
6182
+ integration.getAuthenticator();
6183
+ return true;
6184
+ } catch (e) {
6185
+ return false;
6186
+ }
6187
+ });
6188
+ };
6189
+ _proto.authenticator = function authenticator(name) {
6190
+ var _int = this.getIntegration(name);
6191
+ if (!_int) {
6192
+ throw new Error("No integration exists for " + name);
4469
6193
  }
4470
6194
  return _int.getAuthenticator();
4471
6195
  };
4472
6196
  _proto.connectIntegrationByCredential = /*#__PURE__*/function () {
4473
- var _connectIntegrationByCredential = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(_ref16) {
6197
+ var _connectIntegrationByCredential = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(_ref17) {
4474
6198
  var name, connectionId, credential, authenticator, integration;
4475
6199
  return _regeneratorRuntime().wrap(function _callee4$(_context4) {
4476
6200
  while (1) switch (_context4.prev = _context4.next) {
4477
6201
  case 0:
4478
- name = _ref16.name, connectionId = _ref16.connectionId, credential = _ref16.credential;
6202
+ name = _ref17.name, connectionId = _ref17.connectionId, credential = _ref17.credential;
4479
6203
  authenticator = this.authenticator(name);
4480
6204
  if (authenticator) {
4481
6205
  _context4.next = 4;
@@ -4511,13 +6235,13 @@ var Framework = /*#__PURE__*/function () {
4511
6235
  return connectIntegrationByCredential;
4512
6236
  }();
4513
6237
  _proto.disconnectIntegration = /*#__PURE__*/function () {
4514
- var _disconnectIntegration = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(_ref17) {
6238
+ var _disconnectIntegration = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(_ref18) {
4515
6239
  var _yield$this$dataLayer;
4516
6240
  var name, connectionId, integration, k_id, authenticator;
4517
6241
  return _regeneratorRuntime().wrap(function _callee5$(_context5) {
4518
6242
  while (1) switch (_context5.prev = _context5.next) {
4519
6243
  case 0:
4520
- name = _ref17.name, connectionId = _ref17.connectionId;
6244
+ name = _ref18.name, connectionId = _ref18.connectionId;
4521
6245
  integration = this.getIntegration(name);
4522
6246
  _context5.next = 4;
4523
6247
  return this.dataLayer.getConnection({
@@ -4578,14 +6302,14 @@ var Framework = /*#__PURE__*/function () {
4578
6302
  return disconnectIntegration;
4579
6303
  }();
4580
6304
  _proto.callApi = /*#__PURE__*/function () {
4581
- var _callApi = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(_ref18) {
6305
+ var _callApi = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(_ref19) {
4582
6306
  var _int2$getApis;
4583
- var _ref18$integrationNam, integrationName, api, payload, _this$globalApis$get, _apiExecutor, _int2, apiExecutor;
6307
+ var _ref19$integrationNam, integrationName, api, payload, _this$globalApis$get, _apiExecutor, _int2, apiExecutor;
4584
6308
  return _regeneratorRuntime().wrap(function _callee6$(_context6) {
4585
6309
  while (1) switch (_context6.prev = _context6.next) {
4586
6310
  case 0:
4587
- _ref18$integrationNam = _ref18.integrationName, integrationName = _ref18$integrationNam === void 0 ? this.config.name : _ref18$integrationNam, api = _ref18.api, payload = _ref18.payload;
4588
- if (!(integrationName === this.config.name)) {
6311
+ _ref19$integrationNam = _ref19.integrationName, integrationName = _ref19$integrationNam === void 0 ? this.config.name : _ref19$integrationNam, api = _ref19.api, payload = _ref19.payload;
6312
+ if (!(integrationName === this.config.name || integrationName === 'SYSTEM')) {
4589
6313
  _context6.next = 6;
4590
6314
  break;
4591
6315
  }
@@ -4625,19 +6349,19 @@ var Framework = /*#__PURE__*/function () {
4625
6349
  return callApi;
4626
6350
  }();
4627
6351
  _proto.subscribeEvent = /*#__PURE__*/function () {
4628
- var _subscribeEvent = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee8(_ref19) {
4629
- var _this$config$runner$u, _this$config$runner, _ref20, _this$config$runner$s, _this$config$runner2;
4630
- var id, _ref19$interval, interval, _ref19$timeout, timeout, inngestApiUrl, inngestApiToken, startTime, _poll;
6352
+ var _subscribeEvent = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee8(_ref20) {
6353
+ var _this$config$runner$u, _this$config$runner, _ref21, _this$config$runner$s, _this$config$runner2;
6354
+ var id, _ref20$interval, interval, _ref20$timeout, timeout, inngestApiUrl, inngestApiToken, startTime, _poll;
4631
6355
  return _regeneratorRuntime().wrap(function _callee8$(_context8) {
4632
6356
  while (1) switch (_context8.prev = _context8.next) {
4633
6357
  case 0:
4634
- id = _ref19.id, _ref19$interval = _ref19.interval, interval = _ref19$interval === void 0 ? 5000 : _ref19$interval, _ref19$timeout = _ref19.timeout, timeout = _ref19$timeout === void 0 ? 60000 : _ref19$timeout;
6358
+ id = _ref20.id, _ref20$interval = _ref20.interval, interval = _ref20$interval === void 0 ? 5000 : _ref20$interval, _ref20$timeout = _ref20.timeout, timeout = _ref20$timeout === void 0 ? 60000 : _ref20$timeout;
4635
6359
  inngestApiUrl = (_this$config$runner$u = (_this$config$runner = this.config.runner) == null ? void 0 : _this$config$runner.uri) != null ? _this$config$runner$u : process.env.INNGEST_URL;
4636
- inngestApiToken = (_ref20 = (_this$config$runner$s = (_this$config$runner2 = this.config.runner) == null ? void 0 : _this$config$runner2.signingKey) != null ? _this$config$runner$s : process.env.INNGEST_SIGNING_KEY) != null ? _ref20 : '123';
6360
+ inngestApiToken = (_ref21 = (_this$config$runner$s = (_this$config$runner2 = this.config.runner) == null ? void 0 : _this$config$runner2.signingKey) != null ? _this$config$runner$s : process.env.INNGEST_SIGNING_KEY) != null ? _ref21 : '123';
4637
6361
  startTime = Date.now();
4638
6362
  _poll = /*#__PURE__*/function () {
4639
- var _ref21 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
4640
- var response, _yield$response$json, data, error, lastRun, elapsedTime;
6363
+ var _ref22 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
6364
+ var response, obj, data, error, lastRun, elapsedTime;
4641
6365
  return _regeneratorRuntime().wrap(function _callee7$(_context7) {
4642
6366
  while (1) switch (_context7.prev = _context7.next) {
4643
6367
  case 0:
@@ -4652,65 +6376,93 @@ var Framework = /*#__PURE__*/function () {
4652
6376
  });
4653
6377
  case 3:
4654
6378
  response = _context7.sent;
6379
+ console.log("Polling for event " + id + "...", response.ok);
4655
6380
  if (!response.ok) {
4656
- _context7.next = 16;
6381
+ _context7.next = 28;
4657
6382
  break;
4658
6383
  }
4659
- _context7.next = 7;
6384
+ _context7.next = 8;
4660
6385
  return response.json();
4661
- case 7:
4662
- _yield$response$json = _context7.sent;
4663
- data = _yield$response$json.data;
4664
- error = _yield$response$json.error;
6386
+ case 8:
6387
+ obj = _context7.sent;
6388
+ console.log({
6389
+ obj: obj
6390
+ });
6391
+ data = obj.data, error = obj.error;
6392
+ console.log("Got data for event " + id + "...", data, error);
4665
6393
  if (!error) {
4666
- _context7.next = 12;
6394
+ _context7.next = 15;
4667
6395
  break;
4668
6396
  }
6397
+ console.error(error);
4669
6398
  return _context7.abrupt("return", null);
4670
- case 12:
6399
+ case 15:
6400
+ if (!((data == null ? void 0 : data.length) === 0)) {
6401
+ _context7.next = 19;
6402
+ break;
6403
+ }
6404
+ _context7.next = 18;
6405
+ return new Promise(function (resolve) {
6406
+ return setTimeout(resolve, interval);
6407
+ });
6408
+ case 18:
6409
+ return _context7.abrupt("return", _poll());
6410
+ case 19:
4671
6411
  lastRun = data == null ? void 0 : data[0];
6412
+ console.log(lastRun);
4672
6413
  if (lastRun) {
4673
- _context7.next = 15;
6414
+ _context7.next = 23;
4674
6415
  break;
4675
6416
  }
4676
6417
  return _context7.abrupt("return", null);
4677
- case 15:
6418
+ case 23:
6419
+ if (!(lastRun.status === 'Running')) {
6420
+ _context7.next = 27;
6421
+ break;
6422
+ }
6423
+ _context7.next = 26;
6424
+ return new Promise(function (resolve) {
6425
+ return setTimeout(resolve, interval);
6426
+ });
6427
+ case 26:
6428
+ return _context7.abrupt("return", _poll());
6429
+ case 27:
4678
6430
  return _context7.abrupt("return", {
4679
6431
  status: lastRun.status,
4680
6432
  startedAt: lastRun.run_started_at,
4681
6433
  endedAt: lastRun.ended_at
4682
6434
  });
4683
- case 16:
4684
- _context7.next = 21;
6435
+ case 28:
6436
+ _context7.next = 33;
4685
6437
  break;
4686
- case 18:
4687
- _context7.prev = 18;
6438
+ case 30:
6439
+ _context7.prev = 30;
4688
6440
  _context7.t0 = _context7["catch"](0);
4689
6441
  console.error("Request failed: " + _context7.t0);
4690
- case 21:
6442
+ case 33:
4691
6443
  // Check if timeout has been reached
4692
6444
  elapsedTime = Date.now() - startTime;
4693
6445
  if (!(elapsedTime >= timeout)) {
4694
- _context7.next = 25;
6446
+ _context7.next = 37;
4695
6447
  break;
4696
6448
  }
4697
6449
  console.log('Polling timeout reached.');
4698
6450
  return _context7.abrupt("return", null);
4699
- case 25:
4700
- _context7.next = 27;
6451
+ case 37:
6452
+ _context7.next = 39;
4701
6453
  return new Promise(function (resolve) {
4702
6454
  return setTimeout(resolve, interval);
4703
6455
  });
4704
- case 27:
6456
+ case 39:
4705
6457
  return _context7.abrupt("return", _poll());
4706
- case 28:
6458
+ case 40:
4707
6459
  case "end":
4708
6460
  return _context7.stop();
4709
6461
  }
4710
- }, _callee7, null, [[0, 18]]);
6462
+ }, _callee7, null, [[0, 30]]);
4711
6463
  }));
4712
6464
  return function poll() {
4713
- return _ref21.apply(this, arguments);
6465
+ return _ref22.apply(this, arguments);
4714
6466
  };
4715
6467
  }();
4716
6468
  return _context8.abrupt("return", _poll());
@@ -4726,13 +6478,13 @@ var Framework = /*#__PURE__*/function () {
4726
6478
  return subscribeEvent;
4727
6479
  }();
4728
6480
  _proto.triggerEvent = /*#__PURE__*/function () {
4729
- var _triggerEvent = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee11(_ref22) {
4730
- var _this3 = this;
4731
- var key, data, user, _ref22$integrationNam, integrationName, returnObj, integrationEvents, integrationEvent, event, workflowEvent;
6481
+ var _triggerEvent = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee11(_ref23) {
6482
+ var _this4 = this;
6483
+ var key, data, user, _ref23$integrationNam, integrationName, returnObj, integrationEvents, integrationEvent, event, workflowEvent;
4732
6484
  return _regeneratorRuntime().wrap(function _callee11$(_context11) {
4733
6485
  while (1) switch (_context11.prev = _context11.next) {
4734
6486
  case 0:
4735
- key = _ref22.key, data = _ref22.data, user = _ref22.user, _ref22$integrationNam = _ref22.integrationName, integrationName = _ref22$integrationNam === void 0 ? this.config.name : _ref22$integrationNam;
6487
+ key = _ref23.key, data = _ref23.data, user = _ref23.user, _ref23$integrationNam = _ref23.integrationName, integrationName = _ref23$integrationNam === void 0 ? this.config.name : _ref23$integrationNam;
4736
6488
  _context11.prev = 1;
4737
6489
  returnObj = {
4738
6490
  event: {}
@@ -4752,7 +6504,7 @@ var Framework = /*#__PURE__*/function () {
4752
6504
  throw new Error("No event exists for " + key + " in " + integrationName);
4753
6505
  case 9:
4754
6506
  _context11.next = 11;
4755
- return client.send({
6507
+ return client$1.send({
4756
6508
  name: key,
4757
6509
  data: data,
4758
6510
  user: user
@@ -4763,12 +6515,12 @@ var Framework = /*#__PURE__*/function () {
4763
6515
  subscribe: function () {
4764
6516
  var _subscribe = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee9(_temp) {
4765
6517
  var _event$ids;
4766
- var _ref23, interval, timeout;
6518
+ var _ref24, interval, timeout;
4767
6519
  return _regeneratorRuntime().wrap(function _callee9$(_context9) {
4768
6520
  while (1) switch (_context9.prev = _context9.next) {
4769
6521
  case 0:
4770
- _ref23 = _temp === void 0 ? {} : _temp, interval = _ref23.interval, timeout = _ref23.timeout;
4771
- return _context9.abrupt("return", _this3.subscribeEvent({
6522
+ _ref24 = _temp === void 0 ? {} : _temp, interval = _ref24.interval, timeout = _ref24.timeout;
6523
+ return _context9.abrupt("return", _this4.subscribeEvent({
4772
6524
  id: (_event$ids = event.ids) == null ? void 0 : _event$ids[0],
4773
6525
  interval: interval,
4774
6526
  timeout: timeout
@@ -4786,7 +6538,7 @@ var Framework = /*#__PURE__*/function () {
4786
6538
  }()
4787
6539
  });
4788
6540
  _context11.next = 15;
4789
- return client.send({
6541
+ return client$1.send({
4790
6542
  name: 'workflow/run-automations',
4791
6543
  data: {
4792
6544
  trigger: key,
@@ -4800,12 +6552,12 @@ var Framework = /*#__PURE__*/function () {
4800
6552
  subscribe: function () {
4801
6553
  var _subscribe2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee10(_temp2) {
4802
6554
  var _workflowEvent$ids;
4803
- var _ref24, interval, timeout;
6555
+ var _ref25, interval, timeout;
4804
6556
  return _regeneratorRuntime().wrap(function _callee10$(_context10) {
4805
6557
  while (1) switch (_context10.prev = _context10.next) {
4806
6558
  case 0:
4807
- _ref24 = _temp2 === void 0 ? {} : _temp2, interval = _ref24.interval, timeout = _ref24.timeout;
4808
- return _context10.abrupt("return", _this3.subscribeEvent({
6559
+ _ref25 = _temp2 === void 0 ? {} : _temp2, interval = _ref25.interval, timeout = _ref25.timeout;
6560
+ return _context10.abrupt("return", _this4.subscribeEvent({
4809
6561
  id: (_workflowEvent$ids = workflowEvent.ids) == null ? void 0 : _workflowEvent$ids[0],
4810
6562
  interval: interval,
4811
6563
  timeout: timeout
@@ -4842,14 +6594,14 @@ var Framework = /*#__PURE__*/function () {
4842
6594
  _proto.triggerSystemEvent =
4843
6595
  /*#__PURE__*/
4844
6596
  function () {
4845
- var _triggerSystemEvent = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee12(_ref25) {
6597
+ var _triggerSystemEvent = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee12(_ref26) {
4846
6598
  var key, data, user, event, systemEvent;
4847
6599
  return _regeneratorRuntime().wrap(function _callee12$(_context12) {
4848
6600
  while (1) switch (_context12.prev = _context12.next) {
4849
6601
  case 0:
4850
- key = _ref25.key, data = _ref25.data, user = _ref25.user;
6602
+ key = _ref26.key, data = _ref26.data, user = _ref26.user;
4851
6603
  _context12.next = 3;
4852
- return client.send({
6604
+ return client$1.send({
4853
6605
  name: key,
4854
6606
  data: data,
4855
6607
  user: user
@@ -4862,7 +6614,7 @@ var Framework = /*#__PURE__*/function () {
4862
6614
  break;
4863
6615
  }
4864
6616
  _context12.next = 8;
4865
- return client.send({
6617
+ return client$1.send({
4866
6618
  name: 'workflow/run-automations',
4867
6619
  data: {
4868
6620
  trigger: key,
@@ -4885,10 +6637,10 @@ var Framework = /*#__PURE__*/function () {
4885
6637
  }();
4886
6638
  _proto.createRouter = function createRouter() {
4887
6639
  var self = this;
4888
- var makeWebhookUrl = function makeWebhookUrl(_ref26) {
6640
+ var makeWebhookUrl = function makeWebhookUrl(_ref27) {
4889
6641
  var _self$config;
4890
- var event = _ref26.event,
4891
- name = _ref26.name;
6642
+ var event = _ref27.event,
6643
+ name = _ref27.name;
4892
6644
  return encodeURI("" + (self == null || (_self$config = self.config) == null ? void 0 : _self$config.systemHostURL) + self.routes.webhook + "?name=" + name + "&event=" + event);
4893
6645
  };
4894
6646
  var makeRedirectURI = function makeRedirectURI() {
@@ -4918,25 +6670,60 @@ var Framework = /*#__PURE__*/function () {
4918
6670
  registerRoutes: registerRoutes
4919
6671
  };
4920
6672
  };
4921
- return _createClass(Framework, [{
6673
+ _proto.getAgent = /*#__PURE__*/function () {
6674
+ var _getAgent2 = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee13(_ref28) {
6675
+ var connectionId, agentId, agentBlueprint, arrMap, finalApis;
6676
+ return _regeneratorRuntime().wrap(function _callee13$(_context13) {
6677
+ while (1) switch (_context13.prev = _context13.next) {
6678
+ case 0:
6679
+ connectionId = _ref28.connectionId, agentId = _ref28.agentId;
6680
+ _context13.next = 3;
6681
+ return getAgentBlueprint({
6682
+ agentDir: this.config.agents.agentDirPath,
6683
+ agentId: agentId
6684
+ });
6685
+ case 3:
6686
+ agentBlueprint = _context13.sent;
6687
+ arrMap = Array.from(this.getApis());
6688
+ finalApis = arrMap.reduce(function (acc, _ref29) {
6689
+ var v = _ref29[1];
6690
+ return _extends({}, acc, v);
6691
+ }, {});
6692
+ return _context13.abrupt("return", getAgent({
6693
+ connectionId: connectionId,
6694
+ agent: agentBlueprint,
6695
+ apis: finalApis
6696
+ }));
6697
+ case 7:
6698
+ case "end":
6699
+ return _context13.stop();
6700
+ }
6701
+ }, _callee13, this);
6702
+ }));
6703
+ function getAgent$1(_x12) {
6704
+ return _getAgent2.apply(this, arguments);
6705
+ }
6706
+ return getAgent$1;
6707
+ }();
6708
+ return _createClass(Mastra, [{
4922
6709
  key: "routes",
4923
6710
  get: function get() {
4924
- var _this4 = this;
6711
+ var _this5 = this;
4925
6712
  var registry = {
4926
6713
  connect: '/connect',
4927
6714
  callback: '/connect/callback',
4928
6715
  inngest: '/inngest',
4929
6716
  webhook: '/webhook'
4930
6717
  };
4931
- return Object.entries(registry).reduce(function (acc, _ref27) {
4932
- var _extends3;
4933
- var key = _ref27[0],
4934
- value = _ref27[1];
4935
- return _extends({}, acc, (_extends3 = {}, _extends3[key] = "" + _this4.config.routeRegistrationPath + value, _extends3));
6718
+ return Object.entries(registry).reduce(function (acc, _ref30) {
6719
+ var _extends5;
6720
+ var key = _ref30[0],
6721
+ value = _ref30[1];
6722
+ return _extends({}, acc, (_extends5 = {}, _extends5[key] = "" + _this5.config.routeRegistrationPath + value, _extends5));
4936
6723
  }, {});
4937
6724
  }
4938
6725
  }]);
4939
6726
  }();
4940
6727
 
4941
- export { DataLayer, FieldTypePrimitiveMap, FilterOperatorToSQL, FilterOperators, Framework, Integration, IntegrationAuth, IntegrationCredentialType, IntegrationError, IntegrationErrors, IntegrationFieldTypeEnum, RunStatus, SORT_MODE_TO_ABBR, WorkflowStatusEnum, allowedKey, apiKeyConnectionOptions, buildQueryString, callbackParams, connectParams, constructObjFromStringPath, extractSchemaOptions, fieldsWithCommaSeparatedValues, filterQuerySchema, flattenObject, generateSyncs, getEntityKey, getJSONField, getPath, getResponseDataKey, isLiteralObject, isObjectEmpty, mergeWithDefinedOnly, nextHeaders, oauthState, parseQueryParams, recordHasData, registerRoutes, sortQuerySchema, splitAndStripQuotes, transformFilterValueArray, transformFilterValueBoolean, webhookQueryParams };
6728
+ export { DataLayer, FieldTypePrimitiveMap, FilterOperatorToSQL, FilterOperators, Integration, IntegrationAuth, IntegrationCredentialType, IntegrationError, IntegrationErrors, IntegrationFieldTypeEnum, Mastra, RunStatus, SORT_MODE_TO_ABBR, WorkflowStatusEnum, allowedKey, apiKeyConnectionOptions, buildQueryString, callbackParams, connectParams, constructObjFromStringPath, extractSchemaOptions, fieldsWithCommaSeparatedValues, filterQuerySchema, flattenObject, generateSyncs, getEntityKey, getJSONField, getPath, getResponseDataKey, isLiteralObject, isObjectEmpty, mergeWithDefinedOnly, nextHeaders, oauthState, parseQueryParams, recordHasData, registerRoutes, sortQuerySchema, splitAndStripQuotes, transformFilterValueArray, transformFilterValueBoolean, webhookQueryParams };
4942
6729
  //# sourceMappingURL=core.esm.js.map