@powerhousedao/ph-cli 4.0.0 → 4.1.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@powerhousedao/ph-cli",
3
- "version": "4.0.0",
3
+ "version": "4.1.0-dev.1",
4
4
  "description": "",
5
5
  "license": "AGPL-3.0-only",
6
6
  "type": "module",
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAY9C,eAAO,MAAM,QAAQ,2BAYpB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,OAAO,EAAE,OAAO,QAExD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAa9C,eAAO,MAAM,QAAQ,2BAapB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,OAAO,EAAE,OAAO,QAExD"}
@@ -9,6 +9,7 @@ import { reactorCommand } from "./reactor.js";
9
9
  import { serviceCommand } from "./service.js";
10
10
  import { switchboardCommand } from "./switchboard.js";
11
11
  import { uninstallCommand } from "./uninstall.js";
12
+ import { vetraCommand } from "./vetra.js";
12
13
  export const commands = [
13
14
  // devCommand,
14
15
  connectCommand,
@@ -21,6 +22,7 @@ export const commands = [
21
22
  listCommand,
22
23
  inspectCommand,
23
24
  switchboardCommand,
25
+ vetraCommand,
24
26
  ];
25
27
  export default function registerCommands(program) {
26
28
  commands.forEach((command) => command(program));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,yCAAyC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,cAAc;IACd,cAAc;IACd,eAAe;IACf,cAAc;IACd,WAAW;IACX,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,WAAW;IACX,cAAc;IACd,kBAAkB;CACnB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,OAAgB;IACvD,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,yCAAyC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,cAAc;IACd,cAAc;IACd,eAAe;IACf,cAAc;IACd,WAAW;IACX,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,WAAW;IACX,cAAc;IACd,kBAAkB;IAClB,YAAY;CACb,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,OAAgB;IACvD,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAClD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../../src/commands/reactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AASrD,eAAO,MAAM,WAAW,EAAE,iBAAiB,CACzC;IAAC,cAAc;CAAC,EAChB,OAAO,CAAC,YAAY,CAAC,CAGtB,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QA2B9C"}
1
+ {"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../../src/commands/reactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AASrD,eAAO,MAAM,WAAW,EAAE,iBAAiB,CACzC;IAAC,cAAc;CAAC,EAChB,OAAO,CAAC,YAAY,CAAC,CAGtB,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QAoC9C"}
@@ -19,7 +19,10 @@ export function reactorCommand(program) {
19
19
  .option("--https-key-file <HTTPS_KEY_FILE>", "path to the ssl key file")
20
20
  .option("--https-cert-file <HTTPS_CERT_FILE>", "path to the ssl cert file")
21
21
  .option("-w, --watch", "if the reactor should watch for local changes to document models and processors")
22
+ .option("--disable-default-drive", "disable automatic creation of the default 'powerhouse' drive")
22
23
  .option("--packages <packages...>", "list of packages to be loaded, if defined then packages on config file are ignored")
24
+ .option("--remote-drives <urls>", "comma-separated remote drive URLs")
25
+ .option("--remote-drives-config <configFile>", "path to JSON file containing remote drive configurations")
23
26
  .action(async (...args) => {
24
27
  await switchboard(...args);
25
28
  });
@@ -29,8 +32,8 @@ if (process.argv.at(2) === "spawn") {
29
32
  const optionsArg = process.argv.at(3);
30
33
  const options = optionsArg ? JSON.parse(optionsArg) : {};
31
34
  startLocalSwitchboard(options)
32
- .then((switchboard) => {
33
- process.send?.(`driveUrl:${switchboard.driveUrl}`);
35
+ .then((reactor) => {
36
+ process.send?.(`reactorUrl:${reactor.driveUrl}`);
34
37
  })
35
38
  .catch((e) => {
36
39
  throw e;
@@ -1 +1 @@
1
- {"version":3,"file":"reactor.js","sourceRoot":"","sources":["../../../src/commands/reactor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,KAAK,UAAU,qBAAqB,CAAC,OAAuB;IAC1D,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAC3D,MAAM,EAAE,iBAAiB,EAAE,GAAG,WAAW,CAAC;IAC1C,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAGpB,KAAK,EAAE,OAAO,EAAE,EAAE;IACpB,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,MAAM,OAAO,GAAG,OAAO;SACpB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,sBAAsB,CAAC;SACnC,MAAM,CAAC,eAAe,EAAE,sBAAsB,EAAE,MAAM,CAAC;SACvD,MAAM,CACL,4BAA4B,EAC5B,uCAAuC,EACvC,0BAA0B,CAC3B;SACA,MAAM,CAAC,YAAY,EAAE,8CAA8C,CAAC;SACpE,MAAM,CAAC,qBAAqB,EAAE,sBAAsB,CAAC;SACrD,MAAM,CAAC,mCAAmC,EAAE,0BAA0B,CAAC;SACvE,MAAM,CAAC,qCAAqC,EAAE,2BAA2B,CAAC;SAC1E,MAAM,CACL,aAAa,EACb,iFAAiF,CAClF;SACA,MAAM,CACL,0BAA0B,EAC1B,oFAAoF,CACrF;SACA,MAAM,CAAC,KAAK,EAAE,GAAG,IAAsB,EAAE,EAAE;QAC1C,MAAM,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEL,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AACtC,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;IACnC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,qBAAqB,CAAC,OAAO,CAAC;SAC3B,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;QACpB,OAAO,CAAC,IAAI,EAAE,CAAC,YAAY,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;QACpB,MAAM,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"reactor.js","sourceRoot":"","sources":["../../../src/commands/reactor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,KAAK,UAAU,qBAAqB,CAAC,OAAuB;IAC1D,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAC3D,MAAM,EAAE,iBAAiB,EAAE,GAAG,WAAW,CAAC;IAC1C,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAGpB,KAAK,EAAE,OAAO,EAAE,EAAE;IACpB,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,MAAM,OAAO,GAAG,OAAO;SACpB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,sBAAsB,CAAC;SACnC,MAAM,CAAC,eAAe,EAAE,sBAAsB,EAAE,MAAM,CAAC;SACvD,MAAM,CACL,4BAA4B,EAC5B,uCAAuC,EACvC,0BAA0B,CAC3B;SACA,MAAM,CAAC,YAAY,EAAE,8CAA8C,CAAC;SACpE,MAAM,CAAC,qBAAqB,EAAE,sBAAsB,CAAC;SACrD,MAAM,CAAC,mCAAmC,EAAE,0BAA0B,CAAC;SACvE,MAAM,CAAC,qCAAqC,EAAE,2BAA2B,CAAC;SAC1E,MAAM,CACL,aAAa,EACb,iFAAiF,CAClF;SACA,MAAM,CACL,yBAAyB,EACzB,8DAA8D,CAC/D;SACA,MAAM,CACL,0BAA0B,EAC1B,oFAAoF,CACrF;SACA,MAAM,CAAC,wBAAwB,EAAE,mCAAmC,CAAC;SACrE,MAAM,CACL,qCAAqC,EACrC,0DAA0D,CAC3D;SACA,MAAM,CAAC,KAAK,EAAE,GAAG,IAAsB,EAAE,EAAE;QAC1C,MAAM,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEL,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AACtC,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;IACnC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,qBAAqB,CAAC,OAAO,CAAC;SAC3B,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QAChB,OAAO,CAAC,IAAI,EAAE,CAAC,cAAc,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;QACpB,MAAM,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type Command } from "commander";
2
+ import { type DevOptions } from "../services/vetra.js";
3
+ import { type CommandActionType } from "../types.js";
4
+ export declare const vetra: CommandActionType<[DevOptions]>;
5
+ export declare function vetraCommand(program: Command): void;
6
+ //# sourceMappingURL=vetra.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vetra.d.ts","sourceRoot":"","sources":["../../../src/commands/vetra.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AASrD,eAAO,MAAM,KAAK,EAAE,iBAAiB,CAAC,CAAC,UAAU,CAAC,CAEjD,CAAC;AAEF,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,QAuC5C"}
@@ -0,0 +1,29 @@
1
+ import { vetraHelp } from "../help.js";
2
+ import { setCustomHelp } from "../utils.js";
3
+ async function startVetraEnv(options) {
4
+ const Vetra = await import("../services/vetra.js");
5
+ const { startVetra } = Vetra;
6
+ return startVetra(options);
7
+ }
8
+ export const vetra = async (options) => {
9
+ return startVetraEnv(options);
10
+ };
11
+ export function vetraCommand(program) {
12
+ const cmd = program
13
+ .command("vetra")
14
+ .description("Starts Vetra development environment with switchboard, reactor, and connect")
15
+ .option("--generate", "generate code when document model is updated")
16
+ .option("--switchboard-port <port>", "port to use for the Vetra switchboard (default: 4001)")
17
+ .option("--reactor-port <port>", "port to use for the local reactor (default: 4002)")
18
+ .option("--connect-port <port>", "port to use for Connect (default: 3000)")
19
+ .option("--disable-default-drive", "disable automatic creation of the default 'powerhouse' drive in the reactor")
20
+ .option("--https-key-file <HTTPS_KEY_FILE>", "path to the ssl key file")
21
+ .option("--https-cert-file <HTTPS_CERT_FILE>", "path to the ssl cert file")
22
+ .option("--config-file <configFile>", "Path to the powerhouse.config.js file")
23
+ .option("-w, --watch", "if the switchboard and reactor should watch for local changes to document models and processors")
24
+ .option("--remote-drive <url>", "URL of remote drive to connect to (skips switchboard initialization)");
25
+ // Use the setCustomHelp utility to apply custom help formatting
26
+ setCustomHelp(cmd, vetraHelp);
27
+ cmd.action(vetra);
28
+ }
29
+ //# sourceMappingURL=vetra.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vetra.js","sourceRoot":"","sources":["../../../src/commands/vetra.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,KAAK,UAAU,aAAa,CAAC,OAAmB;IAC9C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACnD,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC7B,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAoC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtE,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,MAAM,GAAG,GAAG,OAAO;SAChB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CACV,6EAA6E,CAC9E;SACA,MAAM,CAAC,YAAY,EAAE,8CAA8C,CAAC;SACpE,MAAM,CACL,2BAA2B,EAC3B,uDAAuD,CACxD;SACA,MAAM,CACL,uBAAuB,EACvB,mDAAmD,CACpD;SACA,MAAM,CAAC,uBAAuB,EAAE,yCAAyC,CAAC;SAC1E,MAAM,CACL,yBAAyB,EACzB,6EAA6E,CAC9E;SACA,MAAM,CAAC,mCAAmC,EAAE,0BAA0B,CAAC;SACvE,MAAM,CAAC,qCAAqC,EAAE,2BAA2B,CAAC;SAC1E,MAAM,CACL,4BAA4B,EAC5B,uCAAuC,CACxC;SACA,MAAM,CACL,aAAa,EACb,iGAAiG,CAClG;SACA,MAAM,CACL,sBAAsB,EACtB,sEAAsE,CACvE,CAAC;IAEJ,gEAAgE;IAChE,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAE9B,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC"}
@@ -30,6 +30,10 @@ export declare const listHelp = "\nCommand Overview:\n The list command display
30
30
  * Help text for the dev command
31
31
  */
32
32
  export declare const devHelp = "\nCommand Overview:\n The dev command sets up a development environment for working with Powerhouse projects.\n It starts a local development server with a Switchboard, enabling real-time document\n model editing and processing.\n\n This command:\n 1. Starts a local development server\n 2. Sets up a Switchboard for document processing\n 3. Enables real-time updates and code generation\n 4. Configures necessary services for development\n\nOptions:\n --generate Generate code automatically when document models are updated.\n This keeps your code in sync with model changes.\n \n --switchboard-port <port> Specify the port to use for the Switchboard service.\n The Switchboard handles document processing and communication.\n \n --https-key-file <path> Path to the SSL key file if using HTTPS for secure connections.\n \n --https-cert-file <path> Path to the SSL certificate file if using HTTPS.\n \n --config-file <path> Path to the powerhouse.config.js file. This allows you to\n customize the behavior of the development environment.\n \n -w, --watch Watch for local changes to document models and processors,\n and automatically update the Switchboard accordingly.\n\nExamples:\n $ ph dev # Start dev environment with defaults\n $ ph dev --generate # Auto-generate code on model changes\n $ ph dev --switchboard-port 5000 # Use custom port for Switchboard\n $ ph dev --config-file custom.powerhouse.config.js # Use custom configuration\n $ ph dev --watch # Watch for changes and auto-update\n $ ph dev --https-key-file key.pem --https-cert-file cert.pem # Use HTTPS\n";
33
+ /**
34
+ * Help text for the vetra command
35
+ */
36
+ export declare const vetraHelp = "\nCommand Overview:\n The vetra command sets up a complete Vetra development environment for working with Vetra projects.\n It starts three coordinated services: a Vetra Switchboard, a Local Reactor, and Connect Studio,\n enabling full document collaboration and real-time processing with a \"Vetra\" drive.\n\n This command:\n 1. Starts a Vetra Switchboard with a \"Vetra\" drive for document storage\n 2. Starts a Local Reactor that connects to the Vetra Switchboard as a remote drive\n 3. Starts Connect Studio pointing to the Local Reactor for user interaction\n 4. Enables real-time updates, collaboration, and code generation across all services\n\nOptions:\n --generate Generate code automatically when document models are updated.\n This keeps your code in sync with model changes across all services.\n \n --switchboard-port <port> Specify the port to use for the Vetra Switchboard service.\n Default is 4001. The Switchboard handles document storage.\n \n --reactor-port <port> Specify the port to use for the Local Reactor service.\n Default is 4002. The Reactor provides the main API and connects to switchboard.\n \n --https-key-file <path> Path to the SSL key file if using HTTPS for secure connections.\n \n --https-cert-file <path> Path to the SSL certificate file if using HTTPS.\n \n --config-file <path> Path to the powerhouse.config.js file. This allows you to\n customize the behavior of all services in the Vetra development environment.\n \n -w, --watch Watch for local changes to document models and processors,\n and automatically update both the Switchboard and Reactor accordingly.\n\nExamples:\n $ ph vetra # Start complete Vetra environment with defaults\n $ ph vetra --generate # Auto-generate code on model changes\n $ ph vetra --switchboard-port 5000 --reactor-port 5001 # Use custom ports\n $ ph vetra --config-file custom.powerhouse.config.js # Use custom configuration\n $ ph vetra --watch # Watch for changes and auto-update\n $ ph vetra --https-key-file key.pem --https-cert-file cert.pem # Use HTTPS\n";
33
37
  /**
34
38
  * Help text for the inspect command
35
39
  */
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/help.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,eAAO,MAAM,iBAAiB,itDAkC7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,yrBAW5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,gcAU9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,o9GA+DxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,+jEAsCvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,4pEAwCzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,ypCA2BpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,m7DAoCnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,miDAkCvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,+zDAqCvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,ixDAoC3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,s6DAuCvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,2kCA0BvB,CAAC"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/help.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,eAAO,MAAM,iBAAiB,itDAkC7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,yrBAW5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,gcAU9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,o9GA+DxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,+jEAsCvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,4pEAwCzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,ypCA2BpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,m7DAoCnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,w6EAuCrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,miDAkCvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,+zDAqCvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,ixDAoC3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,s6DAuCvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,2kCA0BvB,CAAC"}
package/dist/src/help.js CHANGED
@@ -290,6 +290,49 @@ Examples:
290
290
  $ ph dev --watch # Watch for changes and auto-update
291
291
  $ ph dev --https-key-file key.pem --https-cert-file cert.pem # Use HTTPS
292
292
  `;
293
+ /**
294
+ * Help text for the vetra command
295
+ */
296
+ export const vetraHelp = `
297
+ Command Overview:
298
+ The vetra command sets up a complete Vetra development environment for working with Vetra projects.
299
+ It starts three coordinated services: a Vetra Switchboard, a Local Reactor, and Connect Studio,
300
+ enabling full document collaboration and real-time processing with a "Vetra" drive.
301
+
302
+ This command:
303
+ 1. Starts a Vetra Switchboard with a "Vetra" drive for document storage
304
+ 2. Starts a Local Reactor that connects to the Vetra Switchboard as a remote drive
305
+ 3. Starts Connect Studio pointing to the Local Reactor for user interaction
306
+ 4. Enables real-time updates, collaboration, and code generation across all services
307
+
308
+ Options:
309
+ --generate Generate code automatically when document models are updated.
310
+ This keeps your code in sync with model changes across all services.
311
+
312
+ --switchboard-port <port> Specify the port to use for the Vetra Switchboard service.
313
+ Default is 4001. The Switchboard handles document storage.
314
+
315
+ --reactor-port <port> Specify the port to use for the Local Reactor service.
316
+ Default is 4002. The Reactor provides the main API and connects to switchboard.
317
+
318
+ --https-key-file <path> Path to the SSL key file if using HTTPS for secure connections.
319
+
320
+ --https-cert-file <path> Path to the SSL certificate file if using HTTPS.
321
+
322
+ --config-file <path> Path to the powerhouse.config.js file. This allows you to
323
+ customize the behavior of all services in the Vetra development environment.
324
+
325
+ -w, --watch Watch for local changes to document models and processors,
326
+ and automatically update both the Switchboard and Reactor accordingly.
327
+
328
+ Examples:
329
+ $ ph vetra # Start complete Vetra environment with defaults
330
+ $ ph vetra --generate # Auto-generate code on model changes
331
+ $ ph vetra --switchboard-port 5000 --reactor-port 5001 # Use custom ports
332
+ $ ph vetra --config-file custom.powerhouse.config.js # Use custom configuration
333
+ $ ph vetra --watch # Watch for changes and auto-update
334
+ $ ph vetra --https-key-file key.pem --https-cert-file cert.pem # Use HTTPS
335
+ `;
293
336
  /**
294
337
  * Help text for the inspect command
295
338
  */
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/help.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,mCAAmC,EACnC,wBAAwB,GACzB,MAAM,4CAA4C,CAAC;AAEpD;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkChC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;2EAO2C,uBAAuB;6FACL,mCAAmC;uEACzD,wBAAwB;;CAE9F,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;CAUjC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+D3B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsC1B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwC5B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BvB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCtB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC1B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqC1B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoC9B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuC1B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;CA0B1B,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/help.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,mCAAmC,EACnC,wBAAwB,GACzB,MAAM,4CAA4C,CAAC;AAEpD;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkChC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;2EAO2C,uBAAuB;6FACL,mCAAmC;uEACzD,wBAAwB;;CAE9F,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;CAUjC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+D3B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsC1B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwC5B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BvB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCtB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCxB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC1B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqC1B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoC9B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuC1B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;CA0B1B,CAAC"}
@@ -4,6 +4,9 @@ export type ReactorOptions = StartServerOptions & {
4
4
  generate?: boolean;
5
5
  watch?: boolean;
6
6
  dbPath?: string;
7
+ disableDefaultDrive?: boolean;
8
+ remoteDrives?: string;
9
+ remoteDrivesConfig?: string;
7
10
  };
8
11
  export declare const DefaultReactorOptions: {
9
12
  dev: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../../src/services/reactor.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACxB,MAAM,8BAA8B,CAAC;AAStC,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;CAGjC,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,cAAc,EAAE,cAAc,yBAoBrE"}
1
+ {"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../../src/services/reactor.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,YAAY,EAEjB,KAAK,kBAAkB,EACxB,MAAM,8BAA8B,CAAC;AAUtC,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;CAGjC,CAAC;AAgCF,wBAAsB,iBAAiB,CAAC,cAAc,EAAE,cAAc,yBA2BrE"}
@@ -2,10 +2,33 @@ import { generateFromFile } from "@powerhousedao/codegen";
2
2
  import { getConfig } from "@powerhousedao/config/utils";
3
3
  import { DefaultStartServerOptions, startServer, } from "@powerhousedao/reactor-local";
4
4
  import { InternalTransmitter, } from "document-drive/server/listener/transmitter/internal";
5
+ import { readFileSync } from "node:fs";
5
6
  export const DefaultReactorOptions = {
6
7
  ...DefaultStartServerOptions,
7
8
  dev: true,
8
9
  };
10
+ function parseRemoteDrives(remoteDrivesInput, configFile) {
11
+ let drives = [];
12
+ // Parse URLs from --remote-drives
13
+ if (remoteDrivesInput) {
14
+ drives = remoteDrivesInput
15
+ .split(",")
16
+ .map((url) => url.trim())
17
+ .filter((url) => url);
18
+ }
19
+ // Parse config file from --remote-drives-config
20
+ if (configFile) {
21
+ try {
22
+ const fileContent = readFileSync(configFile, "utf-8");
23
+ const configDrives = JSON.parse(fileContent);
24
+ drives = drives.concat(configDrives);
25
+ }
26
+ catch (error) {
27
+ throw new Error(`Failed to read remote drives config file: ${error instanceof Error ? error.message : String(error)}`);
28
+ }
29
+ }
30
+ return drives;
31
+ }
9
32
  export async function startLocalReactor(reactorOptions) {
10
33
  const baseConfig = getConfig(reactorOptions.configFile);
11
34
  const options = {
@@ -13,11 +36,14 @@ export async function startLocalReactor(reactorOptions) {
13
36
  ...reactorOptions,
14
37
  };
15
38
  const { https } = baseConfig.reactor ?? { https: false };
39
+ // Parse remote drives configuration
40
+ const remoteDrives = parseRemoteDrives(reactorOptions.remoteDrives, reactorOptions.remoteDrivesConfig);
16
41
  const reactor = await startServer({
17
42
  ...options,
18
43
  https,
19
44
  logLevel: baseConfig.logLevel,
20
45
  storage: baseConfig.reactor?.storage || options.storage,
46
+ remoteDrives,
21
47
  });
22
48
  if (options.generate) {
23
49
  await addGenerateTransmitter(reactor, baseConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"reactor.js","sourceRoot":"","sources":["../../../src/services/reactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EACL,yBAAyB,EACzB,WAAW,GAGZ,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,mBAAmB,GAEpB,MAAM,qDAAqD,CAAC;AAW7D,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,GAAG,yBAAyB;IAC5B,GAAG,EAAE,IAAI;CACV,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,cAA8B;IACpE,MAAM,UAAU,GAAG,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG;QACd,GAAG,qBAAqB;QACxB,GAAG,cAAc;KAClB,CAAC;IAEF,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,OAAO,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAEzD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC;QAChC,GAAG,OAAO;QACV,KAAK;QACL,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO;KACxD,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,2EAA2E;AAC3E,KAAK,UAAU,sBAAsB,CACnC,OAAqB,EACrB,MAAwB;IAExB,MAAM,SAAS,GAAe;QAC5B,SAAS,EAAE,KAAK,WACd,OAA2D;YAE3D,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;YACxC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,aAAa,CAAC,GAAG,CACf,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,CAC3D,CAAC;YACJ,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;gBACjC,MAAM,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvC,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QACD,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE;KACtC,CAAC;IAEF,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;IAEjD,iBAAiB;IACjB,MAAM,QAAQ,GAAa;QACzB,OAAO,EAAE,YAAY;QACrB,UAAU,EAAE,wCAAwC;QACpD,KAAK,EAAE,wCAAwC;QAC/C,MAAM,EAAE;YACN,YAAY,EAAE,CAAC,2BAA2B,CAAC;YAC3C,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,MAAM,EAAE,CAAC,GAAG,CAAC;YACb,UAAU,EAAE,CAAC,GAAG,CAAC;SAClB;QACD,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE;YACR,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,wCAAwC;YAC9C,eAAe,EAAE,UAAU;SAC5B;KACF,CAAC;IAEF,MAAM,WAAW,GAAG,IAAI,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEvE,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC;IAEnC,MAAM,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"reactor.js","sourceRoot":"","sources":["../../../src/services/reactor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { type StartServerOptions as SwitchboardStartServerOptions } from "@powerhousedao/switchboard/server";
2
+ export type DevOptions = {
3
+ generate?: boolean;
4
+ watch?: boolean;
5
+ switchboardPort?: number;
6
+ reactorPort?: number;
7
+ connectPort?: number;
8
+ disableDefaultDrive?: boolean;
9
+ configFile?: string;
10
+ httpsKeyFile?: string;
11
+ httpsCertFile?: string;
12
+ verbose?: boolean;
13
+ remoteDrive?: string;
14
+ };
15
+ export declare function startVetraSwitchboard(options: SwitchboardStartServerOptions): Promise<import("@powerhousedao/switchboard/server").SwitchboardReactor>;
16
+ export declare function startVetra({ generate, watch, switchboardPort, reactorPort, connectPort, disableDefaultDrive, configFile, verbose, remoteDrive, }: DevOptions): Promise<void>;
17
+ //# sourceMappingURL=vetra.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vetra.d.ts","sourceRoot":"","sources":["../../../src/services/vetra.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,kBAAkB,IAAI,6BAA6B,EACzD,MAAM,mCAAmC,CAAC;AAU3C,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAqBF,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,6BAA6B,2EAavC;AAwKD,wBAAsB,UAAU,CAAC,EAC/B,QAAQ,EACR,KAAK,EACL,eAA4C,EAC5C,WAA4C,EAC5C,WAAW,EACX,mBAA0B,EAC1B,UAAU,EACV,OAAe,EACf,WAAW,GACZ,EAAE,UAAU,iBA4DZ"}
@@ -0,0 +1,213 @@
1
+ import { getConfig } from "@powerhousedao/config/utils";
2
+ import { startSwitchboard as startSwitchboardServer, } from "@powerhousedao/switchboard/server";
3
+ import { blue, cyan, green, red } from "colorette";
4
+ import { fork } from "node:child_process";
5
+ import path, { dirname } from "node:path";
6
+ import { fileURLToPath } from "node:url";
7
+ import { DefaultReactorOptions } from "./reactor.js";
8
+ const __dirname = import.meta.dirname || dirname(fileURLToPath(import.meta.url));
9
+ const defaultVetraSwitchboardOptions = {
10
+ port: 4001,
11
+ dbPath: path.join(process.cwd(), ".ph/read-model.db"),
12
+ drive: {
13
+ id: "vetra",
14
+ slug: "vetra",
15
+ global: {
16
+ name: "Vetra",
17
+ icon: "https://ipfs.io/ipfs/QmcaTDBYn8X2psGaXe7iQ6qd8q6oqHLgxvMX9yXf7f9uP7",
18
+ },
19
+ local: {
20
+ availableOffline: true,
21
+ listeners: [],
22
+ sharingType: "public",
23
+ triggers: [],
24
+ },
25
+ },
26
+ };
27
+ export async function startVetraSwitchboard(options) {
28
+ const baseConfig = getConfig(options.configFile);
29
+ const { https } = baseConfig.reactor ?? { https: false };
30
+ const switchboard = await startSwitchboardServer({
31
+ ...defaultVetraSwitchboardOptions,
32
+ ...options,
33
+ https,
34
+ });
35
+ return switchboard;
36
+ }
37
+ async function spawnLocalVetraSwitchboard(options) {
38
+ // Instead of spawning, let's start the switchboard directly
39
+ // and simulate the spawn interface
40
+ try {
41
+ const { port: rawPort, configFile, verbose = false, ...restOptions } = options || {};
42
+ const port = typeof rawPort === "string"
43
+ ? parseInt(rawPort)
44
+ : typeof rawPort === "number"
45
+ ? rawPort
46
+ : 4001;
47
+ const switchboard = await startVetraSwitchboard({
48
+ port,
49
+ configFile: configFile || undefined,
50
+ ...restOptions,
51
+ });
52
+ if (verbose) {
53
+ console.log(blue(`[Vetra Switchboard]: Started successfully`));
54
+ }
55
+ else {
56
+ console.log(`Switchboard initialized`);
57
+ console.log(` ➜ Drive URL: ${switchboard.defaultDriveUrl}`);
58
+ }
59
+ return { driveUrl: switchboard.defaultDriveUrl || "" };
60
+ }
61
+ catch (error) {
62
+ console.error(red(`[Vetra Switchboard]: ${error instanceof Error ? error.message : String(error)}`));
63
+ throw error instanceof Error ? error : new Error(String(error));
64
+ }
65
+ }
66
+ function spawnLocalReactor(options, remoteDrives) {
67
+ const { verbose = false, ...reactorOptions } = options || {};
68
+ const finalOptions = {
69
+ ...reactorOptions,
70
+ remoteDrives: remoteDrives || "",
71
+ };
72
+ const child = fork(path.join(dirname(__dirname), "commands", "reactor.js"), ["spawn", JSON.stringify(finalOptions)], { silent: true });
73
+ return new Promise((resolve) => {
74
+ child.on("message", (message) => {
75
+ // eslint-disable-next-line @typescript-eslint/no-base-to-string
76
+ const text = message.toString();
77
+ if (text.startsWith("reactorUrl:")) {
78
+ const reactorUrl = text.substring("reactorUrl:".length);
79
+ resolve({ reactorUrl });
80
+ }
81
+ });
82
+ child.stdout.on("data", (data) => {
83
+ const message = data.toString();
84
+ const lines = message.split("\n").filter((line) => line.trim().length);
85
+ for (const line of lines) {
86
+ if (verbose) {
87
+ process.stdout.write(cyan(`[Reactor]: ${line}\n`));
88
+ }
89
+ else {
90
+ // Only show specific logs when not verbose
91
+ if (line.includes("🔄 Starting code generation") ||
92
+ line.includes("✅ Code generation completed") ||
93
+ line.includes("❌ Error during code generation")) {
94
+ process.stdout.write(cyan(`[Codegen]: ${line}\n`));
95
+ }
96
+ }
97
+ }
98
+ });
99
+ child.stderr.on("error", (data) => {
100
+ process.stderr.write(red(`[Reactor]: ${data.toString()}`));
101
+ });
102
+ child.on("error", (err) => {
103
+ process.stderr.write(red(`[Reactor]: ${err}`));
104
+ });
105
+ child.on("exit", (code) => {
106
+ if (verbose) {
107
+ console.log(`Reactor process exited with code ${code}`);
108
+ }
109
+ });
110
+ });
111
+ }
112
+ async function spawnConnect(options, localReactorUrl) {
113
+ const { verbose = false, connectPort, ...connectOptions } = options || {};
114
+ const finalOptions = connectPort
115
+ ? { ...connectOptions, port: connectPort.toString() }
116
+ : connectOptions;
117
+ const child = fork(path.join(dirname(__dirname), "commands", "connect.js"), ["spawn", JSON.stringify(finalOptions)], {
118
+ silent: true,
119
+ env: {
120
+ ...process.env,
121
+ PH_CONNECT_DEFAULT_DRIVES_URL: localReactorUrl,
122
+ },
123
+ });
124
+ return new Promise((resolve) => {
125
+ let connectInitialized = false;
126
+ child.stdout.on("data", (data) => {
127
+ const message = data.toString();
128
+ const lines = message.split("\n").filter((line) => line.trim().length);
129
+ if (!connectInitialized) {
130
+ resolve();
131
+ connectInitialized = true;
132
+ if (!verbose) {
133
+ console.log(green(`[Connect]: Connect initialized`));
134
+ }
135
+ }
136
+ for (const line of lines) {
137
+ if (verbose) {
138
+ process.stdout.write(green(`[Connect]: ${line}\n`));
139
+ }
140
+ else {
141
+ // Only show Local and Network URLs when not verbose
142
+ if (line.includes("➜ Local:") || line.includes("➜ Network:")) {
143
+ process.stdout.write(green(`[Connect]: ${line}\n`));
144
+ }
145
+ }
146
+ }
147
+ });
148
+ child.stderr.on("data", (data) => {
149
+ if (verbose) {
150
+ process.stderr.write(red(`[Connect]: ${data.toString()}`));
151
+ }
152
+ });
153
+ child.on("close", (code) => {
154
+ if (verbose) {
155
+ console.log(`Connect process exited with code ${code}`);
156
+ }
157
+ });
158
+ });
159
+ }
160
+ export async function startVetra({ generate, watch, switchboardPort = DefaultReactorOptions.port, reactorPort = DefaultReactorOptions.port + 1, connectPort, disableDefaultDrive = true, configFile, verbose = false, remoteDrive, }) {
161
+ try {
162
+ const baseConfig = getConfig(configFile);
163
+ const https = baseConfig.reactor?.https;
164
+ let driveUrl;
165
+ if (remoteDrive) {
166
+ // Use provided remote drive URL, skip switchboard
167
+ driveUrl = remoteDrive;
168
+ if (verbose) {
169
+ console.log(`Using remote drive: ${remoteDrive}`);
170
+ }
171
+ }
172
+ else {
173
+ // Start Vetra Switchboard
174
+ if (verbose) {
175
+ console.log("Starting Vetra Switchboard...");
176
+ }
177
+ const switchboardResult = await spawnLocalVetraSwitchboard({
178
+ generate,
179
+ port: switchboardPort,
180
+ watch,
181
+ https,
182
+ configFile,
183
+ verbose,
184
+ });
185
+ driveUrl = switchboardResult.driveUrl;
186
+ }
187
+ if (verbose) {
188
+ console.log("Starting Codegen Reactor...");
189
+ }
190
+ await spawnLocalReactor({
191
+ generate,
192
+ port: reactorPort,
193
+ watch,
194
+ https,
195
+ disableDefaultDrive,
196
+ configFile,
197
+ processors: ["ph/codegen/processor"],
198
+ verbose,
199
+ }, driveUrl);
200
+ // Start Connect pointing to the drive
201
+ if (verbose) {
202
+ console.log("Starting Connect...");
203
+ console.log(` ➜ Connect will use drive: ${driveUrl}`);
204
+ }
205
+ await spawnConnect(connectPort
206
+ ? { configFile, verbose, connectPort }
207
+ : { configFile, verbose }, driveUrl);
208
+ }
209
+ catch (error) {
210
+ console.error(error);
211
+ }
212
+ }
213
+ //# sourceMappingURL=vetra.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vetra.js","sourceRoot":"","sources":["../../../src/services/vetra.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const version = "4.0.0";
1
+ export declare const version = "4.1.0-dev.1";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,UAAU,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,gBAAgB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  // This file is auto-generated. DO NOT EDIT.
2
- export const version = "4.0.0";
2
+ export const version = "4.1.0-dev.1";
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC"}