@powerhousedao/shared 6.0.2-staging.6 → 6.0.2-staging.7

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 (127) hide show
  1. package/dist/{actions-CAH-hbfc.d.ts → actions-_5ZcthYq.d.ts} +5 -5
  2. package/dist/{actions-CAH-hbfc.d.ts.map → actions-_5ZcthYq.d.ts.map} +1 -1
  3. package/dist/clis/args/access-token.d.mts +18 -0
  4. package/dist/clis/args/access-token.d.mts.map +1 -0
  5. package/dist/clis/args/access-token.mjs +22 -0
  6. package/dist/clis/args/access-token.mjs.map +1 -0
  7. package/dist/clis/args/common-BQ2pvhCr.d.mts +177 -0
  8. package/dist/clis/args/common-BQ2pvhCr.d.mts.map +1 -0
  9. package/dist/clis/args/common-Bc8EcW9w.mjs +269 -0
  10. package/dist/clis/args/common-Bc8EcW9w.mjs.map +1 -0
  11. package/dist/clis/args/common.d.mts +2 -0
  12. package/dist/clis/args/common.mjs +2 -0
  13. package/dist/clis/args/connect.d.mts +204 -0
  14. package/dist/clis/args/connect.d.mts.map +1 -0
  15. package/dist/clis/args/connect.mjs +51 -0
  16. package/dist/clis/args/connect.mjs.map +1 -0
  17. package/dist/clis/args/generate-DNGRYRdp.mjs +153 -0
  18. package/dist/clis/args/generate-DNGRYRdp.mjs.map +1 -0
  19. package/dist/clis/args/generate.d.mts +87 -0
  20. package/dist/clis/args/generate.d.mts.map +1 -0
  21. package/dist/clis/args/generate.mjs +2 -0
  22. package/dist/clis/args/help-CFAVJzhI.mjs +152 -0
  23. package/dist/clis/args/help-CFAVJzhI.mjs.map +1 -0
  24. package/dist/clis/args/help-CYjFrzIJ.d.mts +193 -0
  25. package/dist/clis/args/help-CYjFrzIJ.d.mts.map +1 -0
  26. package/dist/clis/args/help.d.mts +2 -0
  27. package/dist/clis/args/help.mjs +14 -0
  28. package/dist/clis/args/index.d.mts +19 -0
  29. package/dist/clis/args/index.mjs +19 -0
  30. package/dist/clis/args/init.d.mts +49 -0
  31. package/dist/clis/args/init.d.mts.map +1 -0
  32. package/dist/clis/args/init.mjs +56 -0
  33. package/dist/clis/args/init.mjs.map +1 -0
  34. package/dist/clis/args/inspect.d.mts +15 -0
  35. package/dist/clis/args/inspect.d.mts.map +1 -0
  36. package/dist/clis/args/inspect.mjs +15 -0
  37. package/dist/clis/args/inspect.mjs.map +1 -0
  38. package/dist/clis/args/install.d.mts +40 -0
  39. package/dist/clis/args/install.d.mts.map +1 -0
  40. package/dist/clis/args/install.mjs +32 -0
  41. package/dist/clis/args/install.mjs.map +1 -0
  42. package/dist/clis/args/list.d.mts +12 -0
  43. package/dist/clis/args/list.d.mts.map +1 -0
  44. package/dist/clis/args/list.mjs +7 -0
  45. package/dist/clis/args/list.mjs.map +1 -0
  46. package/dist/clis/args/login.d.mts +27 -0
  47. package/dist/clis/args/login.d.mts.map +1 -0
  48. package/dist/clis/args/login.mjs +40 -0
  49. package/dist/clis/args/login.mjs.map +1 -0
  50. package/dist/clis/args/migrate.d.mts +21 -0
  51. package/dist/clis/args/migrate.d.mts.map +1 -0
  52. package/dist/clis/args/migrate.mjs +29 -0
  53. package/dist/clis/args/migrate.mjs.map +1 -0
  54. package/dist/clis/args/publish.d.mts +18 -0
  55. package/dist/clis/args/publish.d.mts.map +1 -0
  56. package/dist/clis/args/publish.mjs +19 -0
  57. package/dist/clis/args/publish.mjs.map +1 -0
  58. package/dist/clis/args/registry.d.mts +19 -0
  59. package/dist/clis/args/registry.d.mts.map +1 -0
  60. package/dist/clis/args/registry.mjs +23 -0
  61. package/dist/clis/args/registry.mjs.map +1 -0
  62. package/dist/clis/args/service-C88bN_g_.d.mts +22 -0
  63. package/dist/clis/args/service-C88bN_g_.d.mts.map +1 -0
  64. package/dist/clis/args/service.d.mts +2 -0
  65. package/dist/clis/args/service.mjs +11 -0
  66. package/dist/clis/args/service.mjs.map +1 -0
  67. package/dist/clis/args/switchboard.d.mts +66 -0
  68. package/dist/clis/args/switchboard.d.mts.map +1 -0
  69. package/dist/clis/args/switchboard.mjs +74 -0
  70. package/dist/clis/args/switchboard.mjs.map +1 -0
  71. package/dist/clis/args/uninstall.d.mts +31 -0
  72. package/dist/clis/args/uninstall.d.mts.map +1 -0
  73. package/dist/clis/args/uninstall.mjs +16 -0
  74. package/dist/clis/args/uninstall.mjs.map +1 -0
  75. package/dist/clis/args/unpublish.d.mts +24 -0
  76. package/dist/clis/args/unpublish.d.mts.map +1 -0
  77. package/dist/clis/args/unpublish.mjs +30 -0
  78. package/dist/clis/args/unpublish.mjs.map +1 -0
  79. package/dist/clis/args/vetra.d.mts +93 -0
  80. package/dist/clis/args/vetra.d.mts.map +1 -0
  81. package/dist/clis/args/vetra.mjs +64 -0
  82. package/dist/clis/args/vetra.mjs.map +1 -0
  83. package/dist/clis/build-config.d.mts +10623 -0
  84. package/dist/clis/build-config.d.mts.map +1 -0
  85. package/dist/clis/build-config.mjs +86 -0
  86. package/dist/clis/build-config.mjs.map +1 -0
  87. package/dist/clis/command-names.d.mts +5 -0
  88. package/dist/clis/command-names.d.mts.map +1 -0
  89. package/dist/clis/command-names.mjs +28 -0
  90. package/dist/clis/command-names.mjs.map +1 -0
  91. package/dist/clis/constants.d.mts +86 -0
  92. package/dist/clis/constants.d.mts.map +1 -0
  93. package/dist/clis/constants.mjs +64 -0
  94. package/dist/clis/constants.mjs.map +1 -0
  95. package/dist/clis/index.d.mts +327 -11100
  96. package/dist/clis/index.d.mts.map +1 -1
  97. package/dist/clis/index.mjs +155 -137
  98. package/dist/clis/index.mjs.map +1 -1
  99. package/dist/clis/services/telemetry.d.mts +57 -0
  100. package/dist/clis/services/telemetry.d.mts.map +1 -0
  101. package/dist/clis/services/telemetry.mjs +221 -0
  102. package/dist/clis/services/telemetry.mjs.map +1 -0
  103. package/dist/clis/utils.d.mts +9 -0
  104. package/dist/clis/utils.d.mts.map +1 -0
  105. package/dist/clis/utils.mjs +373 -0
  106. package/dist/clis/utils.mjs.map +1 -0
  107. package/dist/document-drive/index.d.ts +70 -3
  108. package/dist/document-drive/index.d.ts.map +1 -1
  109. package/dist/document-drive/index.js +31 -31
  110. package/dist/document-drive/index.js.map +1 -1
  111. package/dist/document-model/index.d.ts +2 -2
  112. package/dist/index-C_iVZe7f.d.ts +7 -0
  113. package/dist/index-C_iVZe7f.d.ts.map +1 -0
  114. package/dist/{index-DPTdhtLL.d.ts → index-dcU9nj_u.d.ts} +2 -2
  115. package/dist/{index-DPTdhtLL.d.ts.map → index-dcU9nj_u.d.ts.map} +1 -1
  116. package/dist/index.d.ts +4 -3
  117. package/dist/index.js +13 -1
  118. package/dist/index.js.map +1 -0
  119. package/dist/processors/index.d.ts +1 -1
  120. package/dist/registry/index.d.ts +22 -2
  121. package/dist/registry/index.d.ts.map +1 -1
  122. package/dist/registry/index.js +40 -5
  123. package/dist/registry/index.js.map +1 -1
  124. package/dist/{types-1E8sqdB9.d.ts → types-DyMP31mD.d.ts} +7 -7
  125. package/dist/{types-1E8sqdB9.d.ts.map → types-DyMP31mD.d.ts.map} +1 -1
  126. package/package.json +31 -3
  127. package/dist/index-D0E78WnU.d.ts +0 -1
@@ -1,10 +1,9 @@
1
1
  import { createRequire } from "node:module";
2
2
  import { array, boolean, command, flag, multioption, number, oneOf, option, optional, positional, rest, restPositionals, string } from "cmd-ts";
3
- import { AGENTS, detect, resolveCommand } from "package-manager-detector";
3
+ import { AGENTS as AGENTS$1 } from "package-manager-detector/constants";
4
4
  import { homedir } from "node:os";
5
5
  import path, { join } from "node:path";
6
6
  import { existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
7
- import { esmExternalRequirePlugin } from "rolldown/plugins";
8
7
  import chalk from "chalk";
9
8
  import fsPromises, { mkdir, stat, writeFile } from "node:fs/promises";
10
9
  import { fileURLToPath } from "node:url";
@@ -114,6 +113,7 @@ function getConfig(path = "./powerhouse.config.json") {
114
113
  }
115
114
  //#endregion
116
115
  //#region clis/args/common.ts
116
+ const AGENTS = AGENTS$1;
117
117
  const debugArgs = { debug: flag({
118
118
  type: optional(boolean),
119
119
  long: "debug",
@@ -277,10 +277,10 @@ const commonArgs = {
277
277
  ...debugArgs
278
278
  };
279
279
  const commonServerArgs = {
280
- host: flag({
281
- type: optional(boolean),
280
+ host: option({
281
+ type: optional(string),
282
282
  long: "host",
283
- description: "Expose the server to the network"
283
+ description: "Expose the server to the network. Pass an IP (e.g. 0.0.0.0) to bind to a specific address."
284
284
  }),
285
285
  open: flag({
286
286
  type: optional(boolean),
@@ -338,13 +338,6 @@ const accessTokenArgs = {
338
338
  ...debugArgs
339
339
  };
340
340
  //#endregion
341
- //#region clis/args/code.ts
342
- const codeArgs = { rest: restPositionals({
343
- type: string,
344
- displayName: "args",
345
- description: "Optional prompt or subcommand to forward to ph-clint."
346
- }) };
347
- //#endregion
348
341
  //#region clis/args/connect.ts
349
342
  const connectStudioArgs = {
350
343
  port: option({
@@ -566,6 +559,12 @@ const installArgs = {
566
559
  long: "local",
567
560
  description: "Also install packages into node_modules (marks them as provider: \"local\" so they get bundled into ph connect build)"
568
561
  }),
562
+ allowBuild: multioption({
563
+ type: array(string),
564
+ long: "allow-build",
565
+ description: "A list of package names that are allowed to run postinstall scripts during installation.",
566
+ defaultValue: () => []
567
+ }),
569
568
  ...packageManagerArgs,
570
569
  ...debugArgs
571
570
  };
@@ -610,6 +609,11 @@ const loginArgs = {
610
609
  //#endregion
611
610
  //#region clis/args/migrate.ts
612
611
  const migrateArgs = {
612
+ versionPositional: positional({
613
+ type: optional(string),
614
+ displayName: "version",
615
+ description: "The version to migrate to. Accepts a valid semver version or `staging`, `dev`, `latest`."
616
+ }),
613
617
  version: option({
614
618
  long: "version",
615
619
  short: "v",
@@ -618,6 +622,12 @@ const migrateArgs = {
618
622
  defaultValue: () => "latest",
619
623
  defaultValueIsSerializable: true
620
624
  }),
625
+ force: flag({
626
+ type: optional(boolean),
627
+ long: "force",
628
+ short: "f",
629
+ description: "Run migrate from the bundled codegen even if the target version cannot be resolved from the npm registry or differs from the installed ph-cli version."
630
+ }),
621
631
  ...debugArgs
622
632
  };
623
633
  //#endregion
@@ -635,6 +645,24 @@ const publishArgs = {
635
645
  })
636
646
  };
637
647
  //#endregion
648
+ //#region clis/args/registry.ts
649
+ const DEFAULT_REGISTRY_LOGIN_EXPIRY = "30d";
650
+ const registryLoginArgs = {
651
+ registry: option({
652
+ type: optional(string),
653
+ long: "registry",
654
+ description: "Registry URL to log in to (overrides PH_REGISTRY_URL and powerhouse.config.json)"
655
+ }),
656
+ expiry: option({
657
+ type: string,
658
+ long: "expiry",
659
+ defaultValue: () => "30d",
660
+ description: "Token expiry — formats: '7d' (days), '24h' (hours), '3600' (seconds).",
661
+ defaultValueIsSerializable: true
662
+ }),
663
+ ...debugArgs
664
+ };
665
+ //#endregion
638
666
  //#region clis/args/switchboard.ts
639
667
  const switchboardArgs = {
640
668
  ...vetraSwitchboardArgs,
@@ -774,97 +802,132 @@ const vetraArgs = {
774
802
  ...vetraSwitchboardArgs
775
803
  };
776
804
  //#endregion
805
+ //#region clis/command-names.ts
806
+ const phCliCommandNames = [
807
+ "generate",
808
+ "vetra",
809
+ "connect",
810
+ "build",
811
+ "publish",
812
+ "list",
813
+ "l",
814
+ "access-token",
815
+ "registry-login",
816
+ "inspect",
817
+ "is",
818
+ "migrate",
819
+ "switchboard",
820
+ "reactor",
821
+ "login",
822
+ "logout",
823
+ "install",
824
+ "add",
825
+ "i",
826
+ "uninstall",
827
+ "remove"
828
+ ];
829
+ //#endregion
777
830
  //#region clis/args/help.ts
831
+ function helpCommand(config) {
832
+ const aliases = config.aliases ?? [];
833
+ return Object.assign(command({
834
+ ...config,
835
+ aliases: [...aliases]
836
+ }), {
837
+ name: config.name,
838
+ aliases
839
+ });
840
+ }
778
841
  const phCliHelpCommands = {
779
- generate: command({
842
+ generate: helpCommand({
780
843
  name: "generate",
781
844
  args: generateArgs,
782
845
  description: "Generate powerhouse code",
783
846
  handler: () => {}
784
847
  }),
785
- vetra: command({
848
+ vetra: helpCommand({
786
849
  name: "vetra",
787
850
  args: vetraArgs,
788
851
  description: "Starts Vetra development environment with switchboard, reactor, and connect",
789
852
  handler: () => {}
790
853
  }),
791
- connect: command({
854
+ connect: helpCommand({
792
855
  name: "connect",
793
856
  args: connectArgs,
794
857
  description: "Powerhouse Connect commands",
795
858
  handler: () => {}
796
859
  }),
797
- build: command({
860
+ build: helpCommand({
798
861
  name: "build",
799
862
  args: debugArgs,
800
863
  description: "Build your project for publishing to the registry",
801
864
  handler: () => {}
802
865
  }),
803
- code: command({
804
- name: "code",
805
- args: codeArgs,
806
- description: "Open the Powerhouse coding agent (REPL backed by Mastra)",
807
- handler: () => {}
808
- }),
809
- publish: command({
866
+ publish: helpCommand({
810
867
  name: "publish",
811
868
  args: publishArgs,
812
869
  description: "Publish a package to the Powerhouse registry",
813
870
  handler: () => {}
814
871
  }),
815
- list: command({
872
+ list: helpCommand({
816
873
  name: "list",
817
874
  aliases: ["l"],
818
875
  args: listArgs,
819
876
  description: "List installed packages",
820
877
  handler: () => {}
821
878
  }),
822
- "access-token": command({
879
+ "access-token": helpCommand({
823
880
  name: "access-token",
824
881
  args: accessTokenArgs,
825
882
  description: "Generate a bearer token for API authentication",
826
883
  handler: () => {}
827
884
  }),
828
- inspect: command({
885
+ "registry-login": helpCommand({
886
+ name: "registry-login",
887
+ args: registryLoginArgs,
888
+ description: "Log in to a Powerhouse registry (writes a Renown bearer token to ~/.npmrc)",
889
+ handler: () => {}
890
+ }),
891
+ inspect: helpCommand({
829
892
  name: "inspect",
830
893
  aliases: ["is"],
831
894
  args: inspectArgs,
832
895
  description: "Inspect a package",
833
896
  handler: () => {}
834
897
  }),
835
- migrate: command({
898
+ migrate: helpCommand({
836
899
  name: "migrate",
837
900
  args: migrateArgs,
838
901
  description: "Run migrations",
839
902
  handler: () => {}
840
903
  }),
841
- switchboard: command({
904
+ switchboard: helpCommand({
842
905
  name: "switchboard",
843
906
  aliases: ["reactor"],
844
907
  args: switchboardArgs,
845
908
  description: "Starts local Switchboard",
846
909
  handler: () => {}
847
910
  }),
848
- login: command({
911
+ login: helpCommand({
849
912
  name: "login",
850
913
  args: loginArgs,
851
914
  description: "Authenticate with Renown using your Ethereum wallet",
852
915
  handler: () => {}
853
916
  }),
854
- logout: command({
917
+ logout: helpCommand({
855
918
  name: "logout",
856
919
  args: loginArgs,
857
920
  description: "Deletes an existing session created with 'ph login'",
858
921
  handler: () => {}
859
922
  }),
860
- install: command({
923
+ install: helpCommand({
861
924
  name: "install",
862
925
  aliases: ["add", "i"],
863
926
  args: installArgs,
864
927
  description: "Install a Powerhouse dependency",
865
928
  handler: () => {}
866
929
  }),
867
- uninstall: command({
930
+ uninstall: helpCommand({
868
931
  name: "uninstall",
869
932
  aliases: ["remove"],
870
933
  args: uninstallArgs,
@@ -872,9 +935,6 @@ const phCliHelpCommands = {
872
935
  handler: () => {}
873
936
  })
874
937
  };
875
- const phCliCommandNames = Object.values(phCliHelpCommands).flatMap((cmd) => {
876
- return [cmd.name, ...cmd.aliases ?? []];
877
- });
878
938
  //#endregion
879
939
  //#region clis/args/init.ts
880
940
  const initArgs = {
@@ -958,88 +1018,6 @@ const unpublishArgs = {
958
1018
  })
959
1019
  };
960
1020
  //#endregion
961
- //#region clis/build-config.ts
962
- const entry = [
963
- "index.ts",
964
- "document-models/index.ts",
965
- "document-models/*/index.ts",
966
- "document-models/*/module.ts",
967
- "editors/index.ts",
968
- "editors/*/index.ts",
969
- "editors/*/module.ts",
970
- "subgraphs/index.ts",
971
- "subgraphs/*/index.ts",
972
- "processors/index.ts",
973
- "processors/*/index.ts"
974
- ];
975
- const alwaysBundle = ["**"];
976
- const reactExternals = [
977
- "react",
978
- "react-dom",
979
- "react/jsx-runtime",
980
- "react-dom/client"
981
- ];
982
- const nodeNeverBundle = [
983
- "@powerhousedao/connect",
984
- "@powerhousedao/ph-cli",
985
- "react",
986
- "react-dom",
987
- "react/jsx-runtime",
988
- "react-dom/client",
989
- "tailwindcss",
990
- "vitest",
991
- "tsdown",
992
- "@tailwindcss/cli",
993
- "@vitejs/plugin-react",
994
- "@testing-library/jest-dom",
995
- "@testing-library/react",
996
- "@testing-library/user-event",
997
- "@types/node",
998
- "@types/react",
999
- "@types/react-dom",
1000
- "@electric-sql/pglite",
1001
- "@electric-sql/pglite-tools"
1002
- ];
1003
- const browserNeverBundle = [...nodeNeverBundle, "@powerhousedao/reactor-api"];
1004
- const copy = [{
1005
- from: "powerhouse.manifest.json",
1006
- to: "dist"
1007
- }];
1008
- const config = false;
1009
- const clean$1 = true;
1010
- const dts = true;
1011
- const sourcemap = true;
1012
- const browserBuildConfig = {
1013
- entry,
1014
- deps: {
1015
- alwaysBundle,
1016
- neverBundle: browserNeverBundle
1017
- },
1018
- platform: "browser",
1019
- copy,
1020
- config,
1021
- clean: clean$1,
1022
- dts,
1023
- sourcemap,
1024
- plugins: [esmExternalRequirePlugin({
1025
- external: reactExternals,
1026
- skipDuplicateCheck: true
1027
- })],
1028
- inputOptions: { experimental: { resolveNewUrlToAsset: true } }
1029
- };
1030
- const nodeBuildConfig = {
1031
- entry,
1032
- deps: {
1033
- alwaysBundle,
1034
- neverBundle: nodeNeverBundle
1035
- },
1036
- platform: "node",
1037
- config,
1038
- clean: clean$1,
1039
- dts,
1040
- sourcemap
1041
- };
1042
- //#endregion
1043
1021
  //#region ../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js
1044
1022
  var require_picocolors = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1045
1023
  let p = process || {}, argv = p.argv || [], env = p.env || {};
@@ -6864,9 +6842,11 @@ async function getGlobalPowerhouseProjectDirPath() {
6864
6842
  return POWERHOUSE_GLOBAL_DIR;
6865
6843
  }
6866
6844
  async function getPackageManagerAtPowerhouseProjectDirPath(projectDirPath) {
6845
+ const { detect } = await import("package-manager-detector");
6867
6846
  return (await detect({ cwd: projectDirPath }))?.agent;
6868
6847
  }
6869
- function getPowerhouseProjectInstallCommand(packageManagerAgent, args = []) {
6848
+ async function getPowerhouseProjectInstallCommand(packageManagerAgent, args = []) {
6849
+ const { resolveCommand } = await import("package-manager-detector");
6870
6850
  const resolvedCommand = resolveCommand(packageManagerAgent, "install", args);
6871
6851
  if (!resolvedCommand) {
6872
6852
  console.warn(`Failed to get install command in project directory, calling back to 'npm install'`);
@@ -6878,6 +6858,7 @@ function getPowerhouseProjectInstallCommand(packageManagerAgent, args = []) {
6878
6858
  async function getPowerhouseProjectUninstallCommand(projectDirPath, args = []) {
6879
6859
  const agent = await getPackageManagerAtPowerhouseProjectDirPath(projectDirPath);
6880
6860
  if (!agent) console.warn(`Failed to detect package manager in project directory, falling back to 'npm' as package manager.`);
6861
+ const { resolveCommand } = await import("package-manager-detector");
6881
6862
  const resolvedCommand = resolveCommand(agent ?? "npm", "uninstall", args);
6882
6863
  if (!resolvedCommand) {
6883
6864
  console.warn(`Failed to get uninstall command in project directory, calling back to 'npm uninstall'`);
@@ -7080,16 +7061,15 @@ function scrubEvent(event) {
7080
7061
  } catch {}
7081
7062
  return event;
7082
7063
  }
7083
- let initialized = false;
7084
7064
  /**
7085
7065
  * Initializes Sentry for CLI error reporting if telemetry is enabled.
7086
7066
  * Safe to call multiple times; only the first call takes effect.
7087
7067
  */
7088
7068
  async function initCliTelemetry(opts) {
7089
- if (initialized) return;
7090
7069
  if (!await resolveTelemetryConsent()) return;
7091
- const Sentry = await import("@sentry/node");
7092
- Sentry.init({
7070
+ const Sentry = await import("@sentry/node-core/light");
7071
+ const os = await import("node:os");
7072
+ const sentryClient = Sentry.init({
7093
7073
  dsn: SENTRY_DSN,
7094
7074
  release: opts.release,
7095
7075
  environment: process.env.NODE_ENV || "production",
@@ -7106,19 +7086,56 @@ async function initCliTelemetry(opts) {
7106
7086
  });
7107
7087
  Sentry.setTag("cli_name", opts.cliName);
7108
7088
  if (opts.release) Sentry.setTag("cli_version", opts.release);
7109
- initialized = true;
7110
- }
7111
- /**
7112
- * Captures an error (if telemetry is initialized) and flushes before the
7113
- * caller calls process.exit(). Safe no-op when telemetry is disabled.
7114
- */
7115
- async function captureCliError(err) {
7116
- if (!initialized) return;
7117
- try {
7118
- const Sentry = await import("@sentry/node");
7119
- Sentry.captureException(err);
7120
- await Sentry.flush(2e3);
7121
- } catch {}
7089
+ Sentry.setTag("os", process.platform);
7090
+ Sentry.setTag("arch", process.arch);
7091
+ Sentry.setTag("node_version", process.version);
7092
+ Sentry.setTag("ci", String(Boolean(process.env.CI)));
7093
+ Sentry.setTag("tty", String(Boolean(process.stdin.isTTY)));
7094
+ Sentry.setContext("runtime", {
7095
+ name: "node",
7096
+ version: process.version
7097
+ });
7098
+ Sentry.setContext("os", {
7099
+ name: process.platform,
7100
+ version: os.release()
7101
+ });
7102
+ Sentry.setContext("device", { arch: process.arch });
7103
+ if (!sentryClient) return;
7104
+ return {
7105
+ attachInvocationContext(info) {
7106
+ const argv = info.argv.map(scrubString);
7107
+ const flagNames = info.argv.filter((a) => a.startsWith("-")).map((a) => a.split("=")[0]);
7108
+ if (info.command) Sentry.setTag("command", info.command);
7109
+ if (info.subcommand) Sentry.setTag("subcommand", info.subcommand);
7110
+ if (info.pm) Sentry.setTag("pm", info.pm);
7111
+ Sentry.setContext("invocation", {
7112
+ command: info.command,
7113
+ subcommand: info.subcommand,
7114
+ argv,
7115
+ flag_names: flagNames,
7116
+ argv_count: argv.length,
7117
+ cwd: info.cwd ? scrubString(info.cwd) : void 0
7118
+ });
7119
+ Sentry.addBreadcrumb({
7120
+ category: "cli",
7121
+ level: "info",
7122
+ message: "cli invoked",
7123
+ data: {
7124
+ command: info.command,
7125
+ pm: info.pm,
7126
+ tty: Boolean(process.stdin.isTTY),
7127
+ ci: Boolean(process.env.CI)
7128
+ }
7129
+ });
7130
+ },
7131
+ captureCliError: async (err, captureOpts) => {
7132
+ try {
7133
+ Sentry.setTag("error_kind", captureOpts?.kind ?? "crash");
7134
+ sentryClient.captureException(err);
7135
+ await sentryClient.flush(2e3);
7136
+ } catch {}
7137
+ }
7138
+ };
7122
7139
  }
7123
7140
  /**
7124
7141
  * Explicitly set telemetry consent (used by `ph telemetry on|off`).
@@ -7255,6 +7272,7 @@ function buildPnpmLink(packageName, monorepoPath) {
7255
7272
  }
7256
7273
  //#endregion
7257
7274
  //#region clis/utils.ts
7275
+ var import_lt = /* @__PURE__ */ __toESM(require_lt(), 1);
7258
7276
  var NodeVersionError = class extends Error {
7259
7277
  constructor(currentVersion, minimumVersion) {
7260
7278
  super(`Node version ${minimumVersion} or higher is required. Current version: ${currentVersion}`);
@@ -7266,9 +7284,9 @@ var NodeVersionError = class extends Error {
7266
7284
  };
7267
7285
  function assertNodeVersion(nodeVersion = process.versions.node) {
7268
7286
  if (!nodeVersion) return;
7269
- if ((0, import_semver.lt)(nodeVersion, "24.0.0")) throw new NodeVersionError(nodeVersion, MINIMUM_NODE_VERSION);
7287
+ if ((0, import_lt.default)(nodeVersion, "24.0.0")) throw new NodeVersionError(nodeVersion, MINIMUM_NODE_VERSION);
7270
7288
  }
7271
7289
  //#endregion
7272
- export { DEFAULT_CONFIG, DEFAULT_CONNECT_OUTDIR, DEFAULT_CONNECT_PREVIEW_PORT, DEFAULT_CONNECT_STUDIO_PORT, DEFAULT_EXPIRY_DAYS, DEFAULT_EXPIRY_SECONDS, DEFAULT_REGISTRY_URL, DEFAULT_RENOWN_URL, DEFAULT_SWITCHBOARD_PORT, DEFAULT_TIMEOUT, DEFAULT_VETRA_CONNECT_PORT, DEFAULT_VETRA_DRIVE_ID, DRIVES_PRESERVE_STRATEGIES, HOME_DIR, LOG_LEVELS, MINIMUM_NODE_VERSION, NodeVersionError, PH_BIN, PH_GLOBAL_DIR_NAME, PH_GLOBAL_PROJECT_NAME, POWERHOUSE_CONFIG_FILE, POWERHOUSE_GLOBAL_DIR, SECONDS_IN_DAY, SERVICE_ACTIONS, VERSIONED_DEPENDENCIES, VERSIONED_DEV_DEPENDENCIES, accessTokenArgs, assertNodeVersion, browserBuildConfig, buildArgs, captureCliError, codeArgs, commonArgs, commonServerArgs, connectArgs, connectBasePath, connectBuildArgs, connectPreviewArgs, connectStudioArgs, debugArgs, defaultDrivesUrl, directoryExists, directoryExistsSync, disableLocalPackages, drivesPreserveStrategy, fetchNpmVersionFromRegistryForTag, fetchPackageVersionFromNpmRegistry, fileExists, fileExistsSync, force, generateArgs, getConfig, getGlobalPowerhouseProjectDirPath, getLocalPowerhouseProjectDirPath, getPackageManagerAtPowerhouseProjectDirPath, getPackageManagerCommand, getPackageNameFromPackageJson, getPackageVersionFromPackageJson, getPhCliVersionInfo, getPhCmdVersionInfo, getPowerhouseProjectInfo, getPowerhouseProjectInstallCommand, getPowerhouseProjectUninstallCommand, getTagFromVersion, getTelemetryStatus, handleMutuallyExclusiveOptions, https, httpsCertFile, httpsKeyFile, initArgs, initCliTelemetry, inspectArgs, installArgs, isDirectory, isFile, isPowerhouseProject, listArgs, localPackage, logLevel, logVersionUpdate, loginArgs, makeDependenciesWithVersions, makeVersionedDependencies, migrateArgs, nodeBuildConfig, packageManagerArgs, packages, parsePackageManager, parsePackageVersion, parseTag, phCliCommandNames, phCliHelpCommands, publishArgs, resolveTelemetryConsent, runCmd, runUseLocal, serviceArgs, setTelemetryConsent, spawnAsync, switchboardArgs, uninstallArgs, unpublishArgs, vetraArgs, vetraSwitchboardArgs, writeFileEnsuringDir };
7290
+ export { AGENTS, DEFAULT_CONFIG, DEFAULT_CONNECT_OUTDIR, DEFAULT_CONNECT_PREVIEW_PORT, DEFAULT_CONNECT_STUDIO_PORT, DEFAULT_EXPIRY_DAYS, DEFAULT_EXPIRY_SECONDS, DEFAULT_REGISTRY_LOGIN_EXPIRY, DEFAULT_REGISTRY_URL, DEFAULT_RENOWN_URL, DEFAULT_SWITCHBOARD_PORT, DEFAULT_TIMEOUT, DEFAULT_VETRA_CONNECT_PORT, DEFAULT_VETRA_DRIVE_ID, DRIVES_PRESERVE_STRATEGIES, HOME_DIR, LOG_LEVELS, MINIMUM_NODE_VERSION, NodeVersionError, PH_BIN, PH_GLOBAL_DIR_NAME, PH_GLOBAL_PROJECT_NAME, POWERHOUSE_CONFIG_FILE, POWERHOUSE_GLOBAL_DIR, SECONDS_IN_DAY, SERVICE_ACTIONS, VERSIONED_DEPENDENCIES, VERSIONED_DEV_DEPENDENCIES, accessTokenArgs, assertNodeVersion, buildArgs, commonArgs, commonServerArgs, connectArgs, connectBasePath, connectBuildArgs, connectPreviewArgs, connectStudioArgs, debugArgs, defaultDrivesUrl, directoryExists, directoryExistsSync, disableLocalPackages, drivesPreserveStrategy, fetchNpmVersionFromRegistryForTag, fetchPackageVersionFromNpmRegistry, fileExists, fileExistsSync, force, generateArgs, getConfig, getGlobalPowerhouseProjectDirPath, getLocalPowerhouseProjectDirPath, getPackageManagerAtPowerhouseProjectDirPath, getPackageManagerCommand, getPackageNameFromPackageJson, getPackageVersionFromPackageJson, getPhCliVersionInfo, getPhCmdVersionInfo, getPowerhouseProjectInfo, getPowerhouseProjectInstallCommand, getPowerhouseProjectUninstallCommand, getTagFromVersion, getTelemetryStatus, handleMutuallyExclusiveOptions, https, httpsCertFile, httpsKeyFile, initArgs, initCliTelemetry, inspectArgs, installArgs, isDirectory, isFile, isPowerhouseProject, listArgs, localPackage, logLevel, logVersionUpdate, loginArgs, makeDependenciesWithVersions, makeVersionedDependencies, migrateArgs, packageManagerArgs, packages, parsePackageManager, parsePackageVersion, parseTag, phCliCommandNames, phCliHelpCommands, publishArgs, registryLoginArgs, resolveTelemetryConsent, runCmd, runUseLocal, serviceArgs, setTelemetryConsent, spawnAsync, switchboardArgs, uninstallArgs, unpublishArgs, vetraArgs, vetraSwitchboardArgs, writeFileEnsuringDir };
7273
7291
 
7274
7292
  //# sourceMappingURL=index.mjs.map