@powerhousedao/reactor-api 4.1.0-dev.3 → 4.1.0-dev.30

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 (39) hide show
  1. package/dist/src/graphql/drive/index.d.ts.map +1 -1
  2. package/dist/src/graphql/drive/index.js +13 -3
  3. package/dist/src/graphql/drive/index.js.map +1 -1
  4. package/dist/src/graphql/graphql-manager.d.ts +3 -1
  5. package/dist/src/graphql/graphql-manager.d.ts.map +1 -1
  6. package/dist/src/graphql/graphql-manager.js +25 -9
  7. package/dist/src/graphql/graphql-manager.js.map +1 -1
  8. package/dist/src/graphql/system/index.d.ts +3 -0
  9. package/dist/src/graphql/system/index.d.ts.map +1 -1
  10. package/dist/src/graphql/system/index.js +15 -0
  11. package/dist/src/graphql/system/index.js.map +1 -1
  12. package/dist/src/packages/import-loader.d.ts.map +1 -1
  13. package/dist/src/packages/import-loader.js +7 -6
  14. package/dist/src/packages/import-loader.js.map +1 -1
  15. package/dist/src/packages/import-resolver.d.ts +5 -0
  16. package/dist/src/packages/import-resolver.d.ts.map +1 -0
  17. package/dist/src/packages/import-resolver.js +127 -0
  18. package/dist/src/packages/import-resolver.js.map +1 -0
  19. package/dist/src/packages/package-manager.d.ts +4 -0
  20. package/dist/src/packages/package-manager.d.ts.map +1 -1
  21. package/dist/src/packages/package-manager.js +69 -17
  22. package/dist/src/packages/package-manager.js.map +1 -1
  23. package/dist/src/packages/types.d.ts +8 -0
  24. package/dist/src/packages/types.d.ts.map +1 -1
  25. package/dist/src/packages/util.d.ts +20 -2
  26. package/dist/src/packages/util.d.ts.map +1 -1
  27. package/dist/src/packages/util.js +44 -5
  28. package/dist/src/packages/util.js.map +1 -1
  29. package/dist/src/packages/vite-loader.d.ts +22 -0
  30. package/dist/src/packages/vite-loader.d.ts.map +1 -0
  31. package/dist/src/packages/vite-loader.js +151 -0
  32. package/dist/src/packages/vite-loader.js.map +1 -0
  33. package/dist/src/server.d.ts +1 -0
  34. package/dist/src/server.d.ts.map +1 -1
  35. package/dist/src/server.js +15 -6
  36. package/dist/src/server.js.map +1 -1
  37. package/dist/src/utils/create-schema.js +1 -1
  38. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  39. package/package.json +11 -7
@@ -34,9 +34,27 @@ export class PackageManager {
34
34
  }
35
35
  async loadPackages(packages) {
36
36
  this.logger.info(`Loading packages: ${packages.join(", ")}`);
37
+ const documentModelsMap = await this.loadDocumentModels(packages);
38
+ const subgraphsMap = await this.loadSubgraphs(packages);
39
+ const processorsMap = await this.loadProcessors(packages);
40
+ this.updatePackagesMap(documentModelsMap);
41
+ this.updateSubgraphsMap(subgraphsMap);
42
+ this.updateProcessorsMap(processorsMap);
43
+ try {
44
+ this.subscribePackages(packages);
45
+ }
46
+ catch (error) {
47
+ this.logger.error("Failed to subscribe to packages", error);
48
+ }
49
+ return {
50
+ documentModels: getUniqueDocumentModels(...Array.from(documentModelsMap.values())),
51
+ subgraphs: subgraphsMap,
52
+ processors: processorsMap,
53
+ };
54
+ }
55
+ async loadDocumentModels(packages) {
56
+ this.logger.debug(`Loading document models from packages: ${packages.join(", ")}`);
37
57
  const documentModelModuleMap = new Map();
38
- const subgraphsMap = new Map();
39
- const processorsMap = new Map();
40
58
  // static prereqs
41
59
  documentModelModuleMap.set("document-drive", [
42
60
  driveDocumentModelModule,
@@ -46,29 +64,63 @@ export class PackageManager {
46
64
  ]);
47
65
  for (const pkg of packages) {
48
66
  const allDocumentModels = [];
49
- const allSubgraphs = [];
50
- const allProcessors = [];
51
67
  for (const loader of this.loaders) {
52
68
  const documentModels = await loader.loadDocumentModels(pkg);
53
- const subgraphs = await loader.loadSubgraphs(pkg);
54
- const processors = await loader.loadProcessors(pkg);
55
69
  allDocumentModels.push(...documentModels);
70
+ }
71
+ documentModelModuleMap.set(pkg, allDocumentModels);
72
+ }
73
+ return documentModelModuleMap;
74
+ }
75
+ async loadSubgraphs(packages) {
76
+ this.logger.debug(`Loading subgraphs from packages: ${packages.join(", ")}`);
77
+ const subgraphsMap = new Map();
78
+ for (const pkg of packages) {
79
+ const allSubgraphs = [];
80
+ for (const loader of this.loaders) {
81
+ const subgraphs = await loader.loadSubgraphs(pkg);
56
82
  allSubgraphs.push(...subgraphs);
83
+ }
84
+ subgraphsMap.set(pkg, allSubgraphs);
85
+ }
86
+ return subgraphsMap;
87
+ }
88
+ async loadProcessors(packages) {
89
+ this.logger.debug(`Loading processors from packages: ${packages.join(", ")}`);
90
+ const processorsMap = new Map();
91
+ for (const pkg of packages) {
92
+ const allProcessors = [];
93
+ for (const loader of this.loaders) {
94
+ const processors = await loader.loadProcessors(pkg);
57
95
  if (processors) {
58
96
  allProcessors.push(processors);
59
97
  }
60
98
  }
61
- documentModelModuleMap.set(pkg, allDocumentModels);
62
- subgraphsMap.set(pkg, allSubgraphs);
63
99
  processorsMap.set(pkg, allProcessors);
64
100
  }
65
- this.updatePackagesMap(documentModelModuleMap);
66
- this.updateSubgraphsMap(subgraphsMap);
67
101
  this.updateProcessorsMap(processorsMap);
68
- return {
69
- documentModels: getUniqueDocumentModels(...Array.from(documentModelModuleMap.values())),
70
- subgraphs: subgraphsMap,
71
- processors: processorsMap,
102
+ return processorsMap;
103
+ }
104
+ subscribePackages(packages) {
105
+ const unsubs = [];
106
+ for (const pkg of packages) {
107
+ for (const loader of this.loaders) {
108
+ if (loader.onDocumentModelsChange) {
109
+ const unsub = loader.onDocumentModelsChange(pkg, async () => {
110
+ this.logger.info(`Updating document models for package: ${pkg}`);
111
+ const documentModels = await this.loadDocumentModels([pkg]);
112
+ const documentModelsMap = new Map(this.docModelsMap);
113
+ documentModelsMap.set(pkg, documentModels.get(pkg) ?? []);
114
+ this.updatePackagesMap(documentModelsMap);
115
+ });
116
+ unsubs.push(unsub);
117
+ }
118
+ }
119
+ }
120
+ return () => {
121
+ for (const unsub of unsubs) {
122
+ unsub();
123
+ }
72
124
  };
73
125
  }
74
126
  getAllPackageNames() {
@@ -98,7 +150,7 @@ export class PackageManager {
98
150
  oldPackages
99
151
  .filter((pkg) => !newPackages.includes(pkg))
100
152
  .forEach((pkg) => {
101
- this.logger.info(`> Removed package: ${pkg}`);
153
+ this.logger.info(`Removed package: ${pkg}`);
102
154
  });
103
155
  this.docModelsMap = packagesMap;
104
156
  this.eventEmitter.emit("documentModelsChange", Object.fromEntries(packagesMap));
@@ -109,7 +161,7 @@ export class PackageManager {
109
161
  oldPackages
110
162
  .filter((pkg) => !newPackages.includes(pkg))
111
163
  .forEach((pkg) => {
112
- this.logger.info(`> Removed Subgraphs from: ${pkg}`);
164
+ this.logger.info(`Removed Subgraphs from: ${pkg}`);
113
165
  });
114
166
  this.subgraphsMap = subgraphsMap;
115
167
  this.eventEmitter.emit("subgraphsChange", subgraphsMap);
@@ -120,7 +172,7 @@ export class PackageManager {
120
172
  oldPackages
121
173
  .filter((pkg) => !newPackages.includes(pkg))
122
174
  .forEach((pkg) => {
123
- this.logger.info(`> Removed Processor Factories from: ${pkg}`);
175
+ this.logger.info(`Removed Processor Factories from: ${pkg}`);
124
176
  });
125
177
  this.processorMap = processorsMap;
126
178
  this.eventEmitter.emit("processorsChange", processorsMap);
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../../src/packages/package-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../../src/packages/package-manager.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,14 @@ export interface IPackageLoader {
6
6
  loadSubgraphs(identifier: string): Promise<SubgraphClass[]>;
7
7
  loadProcessors(identifier: string): Promise<((module: IProcessorHostModule) => ProcessorFactory) | null>;
8
8
  }
9
+ export interface ISubscriptionOptions {
10
+ debounce?: number;
11
+ }
12
+ export interface ISubscribablePackageLoader extends IPackageLoader {
13
+ onDocumentModelsChange?(identifier: string, handler: (documentModels: DocumentModelModule[]) => void, options?: ISubscriptionOptions): () => void;
14
+ onSubgraphsChange?(identifier: string, handler: (subgraphs: SubgraphClass[]) => void, options?: ISubscriptionOptions): () => void;
15
+ onProcessorsChange?(identifier: string, handler: (processors: ((module: IProcessorHostModule) => ProcessorFactory) | null) => void, options?: ISubscriptionOptions): () => void;
16
+ }
9
17
  export interface IPackageManager {
10
18
  onDocumentModelsChange(handler: (documentModels: Record<string, DocumentModelModule[]>) => void): void;
11
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/packages/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACvE,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC5D,cAAc,CACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,oBAAoB,KAAK,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,eAAe;IAC9B,sBAAsB,CACpB,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,KAAK,IAAI,GACvE,IAAI,CAAC;CACT;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,EAAE,mBAAmB,EAAE,CAAC;IACtC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IACxC,UAAU,EAAE,GAAG,CACb,MAAM,EACN,CAAC,CAAC,MAAM,EAAE,oBAAoB,KAAK,gBAAgB,CAAC,EAAE,CACvD,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/packages/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACvE,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC5D,cAAc,CACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,oBAAoB,KAAK,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,0BAA2B,SAAQ,cAAc;IAChE,sBAAsB,CAAC,CACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC,cAAc,EAAE,mBAAmB,EAAE,KAAK,IAAI,EACxD,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,IAAI,CAAC;IACd,iBAAiB,CAAC,CAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,IAAI,EAC7C,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,IAAI,CAAC;IACd,kBAAkB,CAAC,CACjB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CACP,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,oBAAoB,KAAK,gBAAgB,CAAC,GAAG,IAAI,KACpE,IAAI,EACT,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,IAAI,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,sBAAsB,CACpB,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,KAAK,IAAI,GACvE,IAAI,CAAC;CACT;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,EAAE,mBAAmB,EAAE,CAAC;IACtC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IACxC,UAAU,EAAE,GAAG,CACb,MAAM,EACN,CAAC,CAAC,MAAM,EAAE,oBAAoB,KAAK,gBAAgB,CAAC,EAAE,CACvD,CAAC;CACH,CAAC"}
@@ -1,7 +1,25 @@
1
+ import { type SubgraphClass } from "#graphql/index.js";
2
+ import { type IProcessorHostModule, type ProcessorFactory } from "document-drive/processors/types";
3
+ import { type DocumentModelModule } from "document-model";
4
+ type DocumentModelsExport = Record<string, DocumentModelModule>;
5
+ type SubgraphsExport = Record<string, Record<string, SubgraphClass>>;
6
+ type ProcessorsExport = {
7
+ processorFactory: (module: IProcessorHostModule) => ProcessorFactory;
8
+ };
1
9
  export declare const installPackages: (packages: string[]) => Promise<void>;
2
10
  export declare const readManifest: () => string;
3
11
  /**
4
- * Tries to import a dependency from a package. This function cannot throw.
12
+ * Tries to import document models from a package. This function cannot throw.
5
13
  */
6
- export declare function loadDependency(packageName: string, subPath: string): Promise<unknown>;
14
+ export declare function loadDocumentModels(packageName: string): Promise<DocumentModelsExport | null>;
15
+ /**
16
+ * Tries to import subgraphs from a package. This function cannot throw.
17
+ */
18
+ export declare function loadSubgraphs(packageName: string): Promise<SubgraphsExport | null>;
19
+ /**
20
+ * Tries to import processors from a package. This function cannot throw.
21
+ */
22
+ export declare function loadProcessors(packageName: string): Promise<ProcessorsExport | null>;
23
+ export declare function debounce<T extends (...args: any[]) => void>(func: T, delay?: number): (...args: Parameters<T>) => void;
24
+ export {};
7
25
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/packages/util.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe,GAAU,UAAU,MAAM,EAAE,kBAIvD,CAAC;AAEF,eAAO,MAAM,YAAY,cAGxB,CAAC;AAEF;;GAEG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CAmBlB"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/packages/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAK1D,KAAK,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAChE,KAAK,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;AACrE,KAAK,gBAAgB,GAAG;IACtB,gBAAgB,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,gBAAgB,CAAC;CACtE,CAAC;AAIF,eAAO,MAAM,eAAe,GAAU,UAAU,MAAM,EAAE,kBAIvD,CAAC;AAEF,eAAO,MAAM,YAAY,cAGxB,CAAC;AAEF;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAEtC;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAEjC;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAElC;AA8CD,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EACzD,IAAI,EAAE,CAAC,EACP,KAAK,SAAM,GACV,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAMlC"}
@@ -1,5 +1,6 @@
1
1
  import { childLogger } from "document-drive";
2
2
  import { execSync } from "node:child_process";
3
+ import { resolveLinkedPackage } from "./import-resolver.js";
3
4
  const logger = childLogger(["reactor-api", "packages/util"]);
4
5
  export const installPackages = async (packages) => {
5
6
  for (const packageName of packages) {
@@ -11,22 +12,60 @@ export const readManifest = () => {
11
12
  return manifest;
12
13
  };
13
14
  /**
14
- * Tries to import a dependency from a package. This function cannot throw.
15
+ * Tries to import document models from a package. This function cannot throw.
15
16
  */
16
- export async function loadDependency(packageName, subPath) {
17
+ export async function loadDocumentModels(packageName) {
18
+ return loadDependency(packageName, "document-models");
19
+ }
20
+ /**
21
+ * Tries to import subgraphs from a package. This function cannot throw.
22
+ */
23
+ export async function loadSubgraphs(packageName) {
24
+ return loadDependency(packageName, "subgraphs");
25
+ }
26
+ /**
27
+ * Tries to import processors from a package. This function cannot throw.
28
+ */
29
+ export async function loadProcessors(packageName) {
30
+ return loadDependency(packageName, "processors");
31
+ }
32
+ /**
33
+ * Generic dependency loader - tries to import a dependency from a package. This function cannot throw.
34
+ * Returns null if the dependency cannot be loaded.
35
+ */
36
+ async function loadDependency(packageName, subPath) {
37
+ const fullPath = `${packageName}/${subPath}`;
38
+ // Try the standard import first
17
39
  try {
18
- const fullPath = `${packageName}/${subPath}`;
19
40
  // vite does not support this, but that's okay as we have provided the
20
41
  // vite-loader for this purpose
21
- return await import(/* @vite-ignore */ fullPath);
42
+ const module = await import(/* @vite-ignore */ fullPath);
43
+ return module;
22
44
  }
23
45
  catch (e) {
46
+ // Handle module not found errors with fallback resolution
24
47
  if (e instanceof Error &&
48
+ "code" in e &&
49
+ e.code === "ERR_MODULE_NOT_FOUND") {
50
+ const result = await resolveLinkedPackage(packageName, subPath);
51
+ if (result)
52
+ return result;
53
+ // Only log when ALL attempts have failed
54
+ logger.warn(`Unable to load dependency ${fullPath} - tried standard import, suggested paths, resolved paths, and workspace patterns`);
55
+ }
56
+ else if (e instanceof Error &&
25
57
  "code" in e &&
26
58
  !["ERR_PACKAGE_PATH_NOT_EXPORTED", "ERR_MODULE_NOT_FOUND"].includes(e.code)) {
27
- logger.debug(e);
59
+ logger.error(`Unexpected error loading ${fullPath}:`, e);
28
60
  }
29
61
  return null;
30
62
  }
31
63
  }
64
+ export function debounce(func, delay = 100) {
65
+ let timeoutId;
66
+ return (...args) => {
67
+ clearTimeout(timeoutId);
68
+ timeoutId = setTimeout(() => func(...args), delay);
69
+ };
70
+ }
32
71
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/packages/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,QAAkB,EAAE,EAAE;IAC1D,KAAK,MAAM,WAAW,IAAI,QAAQ,EAAE,CAAC;QACnC,QAAQ,CAAC,cAAc,WAAW,EAAE,CAAC,CAAC;IACxC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC;IACpD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,WAAmB,EACnB,OAAe;IAEf,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,GAAG,WAAW,IAAI,OAAO,EAAE,CAAC;QAE7C,sEAAsE;QACtE,+BAA+B;QAC/B,OAAO,MAAM,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IACE,CAAC,YAAY,KAAK;YAClB,MAAM,IAAI,CAAC;YACX,CAAC,CAAC,+BAA+B,EAAE,sBAAsB,CAAC,CAAC,QAAQ,CACjE,CAAC,CAAC,IAAc,CACjB,EACD,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/packages/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAM7C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAS5D,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,QAAkB,EAAE,EAAE;IAC1D,KAAK,MAAM,WAAW,IAAI,QAAQ,EAAE,CAAC;QACnC,QAAQ,CAAC,cAAc,WAAW,EAAE,CAAC,CAAC;IACxC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC;IACpD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,WAAmB;IAEnB,OAAO,cAAc,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAmB;IAEnB,OAAO,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,WAAmB;IAEnB,OAAO,cAAc,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,cAAc,CAC3B,WAAmB,EACnB,OAAe;IAEf,MAAM,QAAQ,GAAG,GAAG,WAAW,IAAI,OAAO,EAAE,CAAC;IAE7C,gCAAgC;IAChC,IAAI,CAAC;QACH,sEAAsE;QACtE,+BAA+B;QAC/B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,0DAA0D;QAC1D,IACE,CAAC,YAAY,KAAK;YAClB,MAAM,IAAI,CAAC;YACX,CAAC,CAAC,IAAI,KAAK,sBAAsB,EACjC,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAI,WAAW,EAAE,OAAO,CAAC,CAAC;YACnE,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;YAE1B,yCAAyC;YACzC,MAAM,CAAC,IAAI,CACT,6BAA6B,QAAQ,mFAAmF,CACzH,CAAC;QACJ,CAAC;aAAM,IACL,CAAC,YAAY,KAAK;YAClB,MAAM,IAAI,CAAC;YACX,CAAC,CAAC,+BAA+B,EAAE,sBAAsB,CAAC,CAAC,QAAQ,CACjE,CAAC,CAAC,IAAc,CACjB,EACD,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,4BAA4B,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,IAAO,EACP,KAAK,GAAG,GAAG;IAEX,IAAI,SAAwC,CAAC;IAC7C,OAAO,CAAC,GAAG,IAAmB,EAAQ,EAAE;QACtC,YAAY,CAAC,SAAS,CAAC,CAAC;QACxB,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { type SubgraphClass } from "@powerhousedao/reactor-api";
2
+ import { type IProcessorHostModule, type ProcessorFactory } from "document-drive/processors/types";
3
+ import { type DocumentModelModule } from "document-model";
4
+ import { type ViteDevServer } from "vite";
5
+ import { type ISubscribablePackageLoader, type ISubscriptionOptions } from "./types.js";
6
+ export declare class VitePackageLoader implements ISubscribablePackageLoader {
7
+ private readonly logger;
8
+ private readonly vite;
9
+ static build(vite?: ViteDevServer): Promise<VitePackageLoader>;
10
+ constructor(vite: ViteDevServer);
11
+ private getDocumentModelsPath;
12
+ private getSubgraphsPath;
13
+ private getProcessorsPath;
14
+ loadDocumentModels(identifier: string): Promise<DocumentModelModule[]>;
15
+ loadSubgraphs(identifier: string): Promise<SubgraphClass[]>;
16
+ loadProcessors(identifier: string): Promise<((module: IProcessorHostModule) => ProcessorFactory) | null>;
17
+ onDocumentModelsChange(identifier: string, handler: (documentModels: DocumentModelModule[]) => void, options?: ISubscriptionOptions): () => void;
18
+ onSubgraphsChange(identifier: string, handler: (subgraphs: SubgraphClass[]) => void, options?: ISubscriptionOptions): () => void;
19
+ onProcessorsChange(identifier: string, handler: (processors: ((module: IProcessorHostModule) => ProcessorFactory) | null) => void, options?: ISubscriptionOptions): () => void;
20
+ }
21
+ export declare function startViteServer(): Promise<ViteDevServer>;
22
+ //# sourceMappingURL=vite-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite-loader.d.ts","sourceRoot":"","sources":["../../../src/packages/vite-loader.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG1D,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AACxD,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EAC1B,MAAM,YAAY,CAAC;AAGpB,qBAAa,iBAAkB,YAAW,0BAA0B;IAClE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+C;IAEtE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;WAExB,KAAK,CAAC,IAAI,CAAC,EAAE,aAAa;gBAK3B,IAAI,EAAE,aAAa;IAI/B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,iBAAiB;IAInB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAkCtE,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IA+B3D,cAAc,CAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,oBAAoB,KAAK,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAgCvE,sBAAsB,CACpB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC,cAAc,EAAE,mBAAmB,EAAE,KAAK,IAAI,EACxD,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,IAAI;IAiBb,iBAAiB,CACf,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,IAAI,EAC7C,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,IAAI;IAeb,kBAAkB,CAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CACP,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,oBAAoB,KAAK,gBAAgB,CAAC,GAAG,IAAI,KACpE,IAAI,EACT,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,IAAI;CAcd;AAED,wBAAsB,eAAe,2BAqBpC"}
@@ -0,0 +1,151 @@
1
+ import { viteCommonjs } from "@originjs/vite-plugin-commonjs";
2
+ import { isSubgraphClass, } from "@powerhousedao/reactor-api";
3
+ import { childLogger } from "document-drive";
4
+ import { access } from "node:fs/promises";
5
+ import path from "node:path";
6
+ import { createServer } from "vite";
7
+ import { debounce } from "./util.js";
8
+ export class VitePackageLoader {
9
+ logger = childLogger(["reactor-api", "vite-loader"]);
10
+ vite;
11
+ static async build(vite) {
12
+ const server = vite ?? (await startViteServer());
13
+ return new VitePackageLoader(server);
14
+ }
15
+ constructor(vite) {
16
+ this.vite = vite;
17
+ }
18
+ getDocumentModelsPath(identifier) {
19
+ return path.join(identifier, "./document-models");
20
+ }
21
+ getSubgraphsPath(identifier) {
22
+ return path.join(identifier, "./subgraphs");
23
+ }
24
+ getProcessorsPath(identifier) {
25
+ return path.join(identifier, "./processors");
26
+ }
27
+ async loadDocumentModels(identifier) {
28
+ const fullPath = this.getDocumentModelsPath(identifier);
29
+ this.logger.verbose("Loading document models from", fullPath);
30
+ try {
31
+ await access(fullPath);
32
+ const localDMs = (await this.vite.ssrLoadModule(fullPath));
33
+ const exports = Object.values(localDMs);
34
+ // duck type
35
+ const documentModels = [];
36
+ for (const dm of exports) {
37
+ if (dm.documentModel) {
38
+ documentModels.push(dm);
39
+ }
40
+ }
41
+ this.logger.verbose(` ➜ Loaded ${documentModels.length} Document Models from: ${identifier}`);
42
+ return documentModels;
43
+ }
44
+ catch (e) {
45
+ this.logger.verbose(` ➜ No Document Models found for: ${identifier}`);
46
+ }
47
+ return [];
48
+ }
49
+ async loadSubgraphs(identifier) {
50
+ const fullPath = this.getSubgraphsPath(identifier);
51
+ this.logger.verbose("Loading subgraphs from", fullPath);
52
+ let localSubgraphs = {};
53
+ try {
54
+ await access(fullPath);
55
+ localSubgraphs = await this.vite.ssrLoadModule(fullPath);
56
+ }
57
+ catch (e) {
58
+ this.logger.verbose(` ➜ No Subgraphs found for: ${identifier}`);
59
+ return [];
60
+ }
61
+ const subgraphs = [];
62
+ for (const [name, subgraph] of Object.entries(localSubgraphs)) {
63
+ const SubgraphClass = subgraph[name];
64
+ if (isSubgraphClass(SubgraphClass)) {
65
+ subgraphs.push(SubgraphClass);
66
+ }
67
+ }
68
+ this.logger.verbose(` ➜ Loaded ${subgraphs.length} Subgraphs from: ${identifier}`);
69
+ return subgraphs;
70
+ }
71
+ async loadProcessors(identifier) {
72
+ const fullPath = this.getProcessorsPath(identifier);
73
+ this.logger.verbose("Loading processors from", fullPath);
74
+ try {
75
+ await access(fullPath);
76
+ const module = await this.vite.ssrLoadModule(fullPath);
77
+ if (module.processorFactory &&
78
+ typeof module.processorFactory === "function") {
79
+ this.logger.verbose(` ➜ Loaded Processor factory from: ${identifier}`);
80
+ return module.processorFactory;
81
+ }
82
+ }
83
+ catch (e) {
84
+ //
85
+ }
86
+ this.logger.verbose(` ➜ No Processor Factory found for: ${identifier}`);
87
+ // return empty processor factory
88
+ return null;
89
+ }
90
+ onDocumentModelsChange(identifier, handler, options) {
91
+ const documentModelsPath = this.getDocumentModelsPath(identifier);
92
+ const listener = debounce(async (changedPath) => {
93
+ if (path.matchesGlob(changedPath, path.join(documentModelsPath, "**"))) {
94
+ const documentModels = await this.loadDocumentModels(identifier);
95
+ handler(documentModels);
96
+ }
97
+ }, options?.debounce ?? 100);
98
+ this.vite.watcher.on("change", listener);
99
+ return () => {
100
+ this.vite.watcher.off("change", listener);
101
+ };
102
+ }
103
+ onSubgraphsChange(identifier, handler, options) {
104
+ const subgraphsPath = this.getSubgraphsPath(identifier);
105
+ const listener = debounce(async (changedPath) => {
106
+ if (path.matchesGlob(changedPath, path.join(subgraphsPath, "**"))) {
107
+ const subgraphs = await this.loadSubgraphs(identifier);
108
+ handler(subgraphs);
109
+ }
110
+ }, options?.debounce ?? 100);
111
+ this.vite.watcher.on("change", listener);
112
+ return () => {
113
+ this.vite.watcher.off("change", listener);
114
+ };
115
+ }
116
+ onProcessorsChange(identifier, handler, options) {
117
+ const processorsPath = this.getProcessorsPath(identifier);
118
+ const listener = debounce(async (changedPath) => {
119
+ if (path.matchesGlob(changedPath, path.join(processorsPath, "**"))) {
120
+ const processors = await this.loadProcessors(identifier);
121
+ handler(processors);
122
+ }
123
+ }, options?.debounce ?? 100);
124
+ this.vite.watcher.on("change", listener);
125
+ return () => {
126
+ this.vite.watcher.off("change", listener);
127
+ };
128
+ }
129
+ }
130
+ export async function startViteServer() {
131
+ const vite = await createServer({
132
+ server: { middlewareMode: true },
133
+ appType: "custom",
134
+ build: {
135
+ rollupOptions: {
136
+ input: [],
137
+ },
138
+ },
139
+ plugins: [
140
+ viteCommonjs(),
141
+ {
142
+ name: "suppress-hmr",
143
+ handleHotUpdate() {
144
+ return []; // return empty array to suppress server refresh
145
+ },
146
+ },
147
+ ],
148
+ });
149
+ return vite;
150
+ }
151
+ //# sourceMappingURL=vite-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite-loader.js","sourceRoot":"","sources":["../../../src/packages/vite-loader.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ type Options = {
23
23
  } | boolean | undefined;
24
24
  packageLoader?: IPackageLoader;
25
25
  processors?: Record<string, Processor>;
26
+ mcp?: boolean;
26
27
  };
27
28
  /**
28
29
  * Starts the API server.
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAMnD,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;AASxB,OAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAKhD,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,SAAS,EAAsB,MAAM,YAAY,CAAC;AAK1E,KAAK,OAAO,GAAG;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,IAAI,GAAG,SAAS,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE;QACL,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,KAAK,CAAC,EACF;QACE,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,GACD,OAAO,GACP,SAAS,CAAC;IACd,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACxC,CAAC;AA0LF;;;;;;;;GAQG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,GAAG,CAAC,CAwNd"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAOnD,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;AASxB,OAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAKhD,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,SAAS,EAAsB,MAAM,YAAY,CAAC;AAK1E,KAAK,OAAO,GAAG;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,IAAI,GAAG,SAAS,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE;QACL,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,KAAK,CAAC,EACF;QACE,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,GACD,OAAO,GACP,SAAS,CAAC;IACd,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvC,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AA2LF;;;;;;;;GAQG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,GAAG,CAAC,CA8Nd"}
@@ -5,6 +5,7 @@ import { ImportPackageLoader } from "#packages/import-loader.js";
5
5
  import { getUniqueDocumentModels, PackageManager, } from "#packages/package-manager.js";
6
6
  import { PostgresAnalyticsStore } from "@powerhousedao/analytics-engine-pg";
7
7
  import { getConfig } from "@powerhousedao/config/utils";
8
+ import { setupMcpServer } from "@powerhousedao/reactor-mcp/express";
8
9
  import { verifyAuthBearerToken } from "@renown/sdk";
9
10
  import devcert from "devcert";
10
11
  import { childLogger, } from "document-drive";
@@ -80,7 +81,10 @@ async function setupGraphQLManager(app, reactor, relationalDb, analyticsStore, s
80
81
  */
81
82
  function setupEventListeners(pkgManager, reactor, graphqlManager, processorManager, module) {
82
83
  pkgManager.onDocumentModelsChange(async (documentModels) => {
83
- const uniqueModels = getUniqueDocumentModels(Object.values(documentModels).flat());
84
+ const uniqueModels = getUniqueDocumentModels([
85
+ ...reactor.getDocumentModelModules(),
86
+ ...Object.values(documentModels).flat(),
87
+ ]);
84
88
  reactor.setDocumentModelModules(uniqueModels);
85
89
  await graphqlManager.updateRouter();
86
90
  });
@@ -99,7 +103,7 @@ function setupEventListeners(pkgManager, reactor, graphqlManager, processorManag
99
103
  analyticsStore: module.analyticsStore,
100
104
  relationalDb: module.relationalDb,
101
105
  }));
102
- await processorManager.registerFactory(packageName, async (driveId) => (await Promise.all(factories.map((factory) => factory(driveId)))).flat());
106
+ await processorManager.registerFactory(packageName, async (driveHeader) => (await Promise.all(factories.map((factory) => factory(driveHeader)))).flat());
103
107
  }
104
108
  });
105
109
  }
@@ -147,6 +151,7 @@ async function startServer(app, port, httpsOptions) {
147
151
  export async function startAPI(reactor, options) {
148
152
  const port = options.port ?? DEFAULT_PORT;
149
153
  const app = options.express ?? express();
154
+ const mcpServerEnabled = options.mcp ?? true;
150
155
  let admins = [];
151
156
  let users = [];
152
157
  let guests = [];
@@ -181,7 +186,7 @@ export async function startAPI(reactor, options) {
181
186
  // add auth middleware if auth is enabled
182
187
  if (authEnabled) {
183
188
  // set admin, users and guest list
184
- logger.info("> Setting up Auth middleware");
189
+ logger.info("Setting up Auth middleware");
185
190
  app.use(async (req, res, next) => {
186
191
  if (!authEnabled || req.method === "OPTIONS" || req.method === "GET") {
187
192
  next();
@@ -269,12 +274,12 @@ export async function startAPI(reactor, options) {
269
274
  if (!validFactories.length) {
270
275
  continue;
271
276
  }
272
- await processorManager.registerFactory(packageName, async (driveId) => (await Promise.all(validFactories.map(async (factory) => {
277
+ await processorManager.registerFactory(packageName, async (driveHeader) => (await Promise.all(validFactories.map(async (factory) => {
273
278
  try {
274
- return await factory(driveId);
279
+ return await factory(driveHeader);
275
280
  }
276
281
  catch (e) {
277
- logger.error(`Error creating processor for drive ${driveId}:`, e);
282
+ logger.error(`Error creating processor for drive ${driveHeader.id}:`, e);
278
283
  return [];
279
284
  }
280
285
  }))).flat());
@@ -292,6 +297,10 @@ export async function startAPI(reactor, options) {
292
297
  });
293
298
  // Set up event listeners
294
299
  setupEventListeners(packages, reactor, graphqlManager, processorManager, module);
300
+ if (mcpServerEnabled) {
301
+ await setupMcpServer(reactor, app);
302
+ logger.info(`MCP server available at http://localhost:${port}/mcp`);
303
+ }
295
304
  // Start the server
296
305
  await startServer(app, port, options.https);
297
306
  return { app, graphqlManager, processorManager, packages };