@posthog/wizard 2.77.0 → 2.79.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/README.md +50 -26
  2. package/dist/{add-mcp-server-to-clients-BnRyE4pw.js → add-mcp-server-to-clients-amlJWW7W.js} +6 -5
  3. package/dist/{add-mcp-server-to-clients-BnRyE4pw.js.map → add-mcp-server-to-clients-amlJWW7W.js.map} +1 -1
  4. package/dist/agent-CNrEC-9v.js +3184 -0
  5. package/dist/agent-CNrEC-9v.js.map +1 -0
  6. package/dist/{agent-interface-Avtr_5M5.js → agent-interface-BXvmAm4c.js} +462 -385
  7. package/dist/agent-interface-BXvmAm4c.js.map +1 -0
  8. package/dist/{agent-prompt-loader-CHixNPgY.js → agent-prompt-loader-DiKUbhi_.js} +6 -6
  9. package/dist/agent-prompt-loader-DiKUbhi_.js.map +1 -0
  10. package/dist/analytics-DxwRi2Hf.js +2 -0
  11. package/dist/{analytics-C67F2vee.js → analytics-VRYdebXW.js} +10 -6
  12. package/dist/analytics-VRYdebXW.js.map +1 -0
  13. package/dist/{api-Dj1yabTj.js → api-DGuJTzjr.js} +4 -17
  14. package/dist/api-DGuJTzjr.js.map +1 -0
  15. package/dist/bin.js +415 -70
  16. package/dist/bin.js.map +1 -1
  17. package/dist/{bounded-fs-CWRYuLAn.js → bounded-fs-Cpn129A4.js} +4 -4
  18. package/dist/bounded-fs-Cpn129A4.js.map +1 -0
  19. package/dist/check-screens.tsx +1 -1
  20. package/dist/{ci-install-CvXL5h13.js → ci-install-BPA6gzEq.js} +6 -5
  21. package/dist/ci-install-BPA6gzEq.js.map +1 -0
  22. package/dist/constants-CuJfQEcC.js +260 -0
  23. package/dist/constants-CuJfQEcC.js.map +1 -0
  24. package/dist/{debug-CziFS0cA.js → debug-B9k4ideV.js} +1 -1
  25. package/dist/debug-Cj-8vfXY.js +171 -0
  26. package/dist/debug-Cj-8vfXY.js.map +1 -0
  27. package/dist/{defaults-4c4YwTmW.js → defaults-C6J7yL4O.js} +1 -1
  28. package/dist/{defaults-4c4YwTmW.js.map → defaults-C6J7yL4O.js.map} +1 -1
  29. package/dist/endpoints-DnIX0pZH.js +108 -0
  30. package/dist/endpoints-DnIX0pZH.js.map +1 -0
  31. package/dist/{env-api-key-BZ5wE3Y4.js → env-api-key-BWdKpGEr.js} +3 -3
  32. package/dist/env-api-key-BWdKpGEr.js.map +1 -0
  33. package/dist/{environment-BEvsey6i.js → environment-DZYUSCpV.js} +6 -6
  34. package/dist/environment-DZYUSCpV.js.map +1 -0
  35. package/dist/{errors-BoJvrdw8.js → errors-ddDE6MbA.js} +27 -76
  36. package/dist/errors-ddDE6MbA.js.map +1 -0
  37. package/dist/{file-BoD3REGB.js → file-dEhr-l3n.js} +3 -3
  38. package/dist/file-dEhr-l3n.js.map +1 -0
  39. package/dist/{file-watcher-BPFazvG_.js → file-watcher-CPM-Nn9L.js} +2 -2
  40. package/dist/{file-watcher-BPFazvG_.js.map → file-watcher-CPM-Nn9L.js.map} +1 -1
  41. package/dist/{gateway-session-xPFv6p5c.js → gateway-CVU1G0H3.js} +205 -20
  42. package/dist/gateway-CVU1G0H3.js.map +1 -0
  43. package/dist/generate-version.cjs +1 -1
  44. package/dist/{headless-ui-CsmQrDIl.js → headless-ui-pY2xB5ug.js} +13 -2
  45. package/dist/headless-ui-pY2xB5ug.js.map +1 -0
  46. package/dist/{interactive-Dej-sxvR.js → interactive-BOGlinZe.js} +2 -2
  47. package/dist/interactive-BOGlinZe.js.map +1 -0
  48. package/dist/{local-dev-DPZiIPCK.js → local-dev-McsurOC-.js} +2 -2
  49. package/dist/local-dev-McsurOC-.js.map +1 -0
  50. package/dist/logging-ui-CUxNYF2t.js +226 -0
  51. package/dist/logging-ui-CUxNYF2t.js.map +1 -0
  52. package/dist/mcp-JcsBBnWv.js +97 -0
  53. package/dist/mcp-JcsBBnWv.js.map +1 -0
  54. package/dist/{mcp-prompt-streaming-BU_kuur_.js → mcp-prompt-streaming-B-p_Pvb2.js} +7 -6
  55. package/dist/mcp-prompt-streaming-B-p_Pvb2.js.map +1 -0
  56. package/dist/{mint-failure-BrleGqMd.js → mint-failure-CZFZpHpW.js} +749 -130
  57. package/dist/mint-failure-CZFZpHpW.js.map +1 -0
  58. package/dist/models-DnAY67Lg.js +83 -0
  59. package/dist/models-DnAY67Lg.js.map +1 -0
  60. package/dist/{non-interactive-DcOjH2fw.js → non-interactive-DR1CWXY1.js} +3 -3
  61. package/dist/non-interactive-DR1CWXY1.js.map +1 -0
  62. package/dist/oauth-session-CQTFOk-I.js +74 -0
  63. package/dist/oauth-session-CQTFOk-I.js.map +1 -0
  64. package/dist/{orchestrator-tools-DXwr8Sp3.js → orchestrator-tools-CBdt-SXO.js} +4 -4
  65. package/dist/orchestrator-tools-CBdt-SXO.js.map +1 -0
  66. package/dist/{package-json-xt3eeyBI.js → package-json-DY70kkNp.js} +2 -2
  67. package/dist/package-json-DY70kkNp.js.map +1 -0
  68. package/dist/{pi-mY8I2XkG.js → pi-BtqcLX3y.js} +444 -81
  69. package/dist/pi-BtqcLX3y.js.map +1 -0
  70. package/dist/{playground-CDUUKLkC.js → playground-Dz-ZVjBk.js} +11 -7
  71. package/dist/playground-Dz-ZVjBk.js.map +1 -0
  72. package/dist/{posthog-Hc_-9wrr.js → posthog-6Uqw_Eux.js} +9 -4
  73. package/dist/posthog-6Uqw_Eux.js.map +1 -0
  74. package/dist/{provisioning-xfdjhFtA.js → provisioning-Zf7yPcEs.js} +6 -5
  75. package/dist/provisioning-Zf7yPcEs.js.map +1 -0
  76. package/dist/{queue-tools-C8y_xZJi.js → queue-tools-B7_aCyd-.js} +7 -86
  77. package/dist/queue-tools-B7_aCyd-.js.map +1 -0
  78. package/dist/{registry-DTmREJ-f.js → registry-B6iLGorH.js} +307 -48
  79. package/dist/registry-B6iLGorH.js.map +1 -0
  80. package/dist/run-agent-legacy-6WcYMaR9.js +3541 -0
  81. package/dist/run-agent-legacy-6WcYMaR9.js.map +1 -0
  82. package/dist/{security-Dw2oFJjP.js → security-lkBwWbrK.js} +17 -7
  83. package/dist/security-lkBwWbrK.js.map +1 -0
  84. package/dist/{setup-utils-fjJTBhaB.js → setup-utils-dCViCC6s.js} +47 -19
  85. package/dist/setup-utils-dCViCC6s.js.map +1 -0
  86. package/dist/smoke-test.sh +1 -1
  87. package/dist/{start-tui-UNe2xQ0U.js → start-tui-oCWMgsDP.js} +40 -46
  88. package/dist/start-tui-oCWMgsDP.js.map +1 -0
  89. package/dist/{steps-C2yqOk_h.js → steps-gx0Pq4I4.js} +7 -7
  90. package/dist/{steps-C2yqOk_h.js.map → steps-gx0Pq4I4.js.map} +1 -1
  91. package/dist/{store-Bic4Cr3L.js → store-xYy_6Ruv.js} +19 -29
  92. package/dist/store-xYy_6Ruv.js.map +1 -0
  93. package/dist/{subagent-Dz41vV9j.js → subagent-Bfy0sfhU.js} +8 -3
  94. package/dist/subagent-Bfy0sfhU.js.map +1 -0
  95. package/dist/{task-5-fw_Vw3.js → task-BOfw7GPc.js} +124 -36
  96. package/dist/task-BOfw7GPc.js.map +1 -0
  97. package/dist/{task-stream-dVzl6b_q.js → task-stream-kYlm9qd0.js} +47 -17
  98. package/dist/task-stream-kYlm9qd0.js.map +1 -0
  99. package/dist/{tasks-D1c2z1aw.js → tasks-Bbv_lOBG.js} +17 -13
  100. package/dist/tasks-Bbv_lOBG.js.map +1 -0
  101. package/dist/{telemetry-BRnxBRWK.js → telemetry-Bpv-Mh5B.js} +5 -5
  102. package/dist/telemetry-Bpv-Mh5B.js.map +1 -0
  103. package/dist/{terminal-9bvRa4Qt.js → terminal-D07EQ2y0.js} +41 -76
  104. package/dist/terminal-D07EQ2y0.js.map +1 -0
  105. package/dist/{tools-Dp6i9k70.js → tools-Cc41af5W.js} +11 -11
  106. package/dist/tools-Cc41af5W.js.map +1 -0
  107. package/dist/ui-CGXtC7Vn.js +15 -0
  108. package/dist/ui-CGXtC7Vn.js.map +1 -0
  109. package/dist/version-Cadof0Z_.js +6 -0
  110. package/dist/version-Cadof0Z_.js.map +1 -0
  111. package/dist/warlock-smoke-test.ts +2 -2
  112. package/dist/{wizard-abort-lE6umflt.js → wizard-abort-HDbP3YcS.js} +23 -20
  113. package/dist/wizard-abort-HDbP3YcS.js.map +1 -0
  114. package/dist/wizard-abort-Y-Ip2K4z.js +3 -0
  115. package/dist/{wizard-session-FSJCkTcP.js → wizard-session-2w4Ru-Wz.js} +12 -16
  116. package/dist/wizard-session-2w4Ru-Wz.js.map +1 -0
  117. package/dist/wizard-session-DGaUHOF3.js +2 -0
  118. package/dist/wizard-ui-DoyOZxK8.js +16 -0
  119. package/dist/wizard-ui-DoyOZxK8.js.map +1 -0
  120. package/dist/yara-hooks-B49RIk5d.js +2 -0
  121. package/dist/{yara-hooks-BTNJ6MGW.js → yara-hooks-DCfROpZt.js} +19 -68
  122. package/dist/yara-hooks-DCfROpZt.js.map +1 -0
  123. package/package.json +2 -1
  124. package/dist/agent-interface-Avtr_5M5.js.map +0 -1
  125. package/dist/agent-prompt-loader-CHixNPgY.js.map +0 -1
  126. package/dist/agent-runner-COOIUJCP.js +0 -6188
  127. package/dist/agent-runner-COOIUJCP.js.map +0 -1
  128. package/dist/analytics-C67F2vee.js.map +0 -1
  129. package/dist/analytics-CJA1uLlk.js +0 -2
  130. package/dist/api-Dj1yabTj.js.map +0 -1
  131. package/dist/bounded-fs-CWRYuLAn.js.map +0 -1
  132. package/dist/ci-install-CvXL5h13.js.map +0 -1
  133. package/dist/debug-B4kzIZPi.js +0 -754
  134. package/dist/debug-B4kzIZPi.js.map +0 -1
  135. package/dist/env-api-key-BZ5wE3Y4.js.map +0 -1
  136. package/dist/environment-BEvsey6i.js.map +0 -1
  137. package/dist/errors-BoJvrdw8.js.map +0 -1
  138. package/dist/file-BoD3REGB.js.map +0 -1
  139. package/dist/gateway-session-C118uACz.js +0 -2
  140. package/dist/gateway-session-xPFv6p5c.js.map +0 -1
  141. package/dist/headless-ui-CsmQrDIl.js.map +0 -1
  142. package/dist/interactive-Dej-sxvR.js.map +0 -1
  143. package/dist/local-dev-DPZiIPCK.js.map +0 -1
  144. package/dist/mcp-Cbuw_xss.js +0 -64
  145. package/dist/mcp-Cbuw_xss.js.map +0 -1
  146. package/dist/mcp-prompt-streaming-BU_kuur_.js.map +0 -1
  147. package/dist/mint-failure-BrleGqMd.js.map +0 -1
  148. package/dist/non-interactive-DcOjH2fw.js.map +0 -1
  149. package/dist/orchestrator-tools-DXwr8Sp3.js.map +0 -1
  150. package/dist/package-json-xt3eeyBI.js.map +0 -1
  151. package/dist/package-manager-DR23m5Jg.js +0 -290
  152. package/dist/package-manager-DR23m5Jg.js.map +0 -1
  153. package/dist/pi-mY8I2XkG.js.map +0 -1
  154. package/dist/playground-CDUUKLkC.js.map +0 -1
  155. package/dist/posthog-Hc_-9wrr.js.map +0 -1
  156. package/dist/provisioning-xfdjhFtA.js.map +0 -1
  157. package/dist/queue-tools-C8y_xZJi.js.map +0 -1
  158. package/dist/registry-DTmREJ-f.js.map +0 -1
  159. package/dist/security-Dw2oFJjP.js.map +0 -1
  160. package/dist/setup-utils-fjJTBhaB.js.map +0 -1
  161. package/dist/start-tui-UNe2xQ0U.js.map +0 -1
  162. package/dist/store-Bic4Cr3L.js.map +0 -1
  163. package/dist/subagent-Dz41vV9j.js.map +0 -1
  164. package/dist/task-5-fw_Vw3.js.map +0 -1
  165. package/dist/task-stream-dVzl6b_q.js.map +0 -1
  166. package/dist/tasks-D1c2z1aw.js.map +0 -1
  167. package/dist/telemetry-BRnxBRWK.js.map +0 -1
  168. package/dist/terminal-9bvRa4Qt.js.map +0 -1
  169. package/dist/tools-Dp6i9k70.js.map +0 -1
  170. package/dist/wizard-abort-CAcInAxg.js +0 -2
  171. package/dist/wizard-abort-lE6umflt.js.map +0 -1
  172. package/dist/wizard-session-CYvyYnti.js +0 -2
  173. package/dist/wizard-session-FSJCkTcP.js.map +0 -1
  174. package/dist/yara-hooks-BTNJ6MGW.js.map +0 -1
  175. package/dist/yara-hooks-CFY4pGcW.js +0 -2
@@ -1,17 +1,276 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B_-DWIq7.js";
2
- import { p as getUI } from "./debug-B4kzIZPi.js";
3
- import { i as readProjectFile, n as boundedGlob } from "./bounded-fs-CWRYuLAn.js";
4
- import { a as createVersionBucket, d as detectAllPackageManagers, i as tryGetPackageJson } from "./setup-utils-fjJTBhaB.js";
5
- import { n as getInstalledPackageVersion, r as hasDeclaredDependency, t as getDeclaredVersion } from "./package-json-xt3eeyBI.js";
6
- import { a as detectNodePackageManagers, c as gradlePackageManager, d as swiftPackageManager, f as detectPackageManager$1, h as getPythonVersionBucket, i as detectJavaPackageManagers, l as mixPackageManager, m as getPythonVersion, n as cargoPackageManager, o as detectPythonPackageManagers, p as getPackageManagerName$1, r as composerPackageManager, s as goModulesPackageManager, t as bundlerPackageManager, u as pubPackageManager } from "./package-manager-DR23m5Jg.js";
2
+ import "./constants-CuJfQEcC.js";
3
+ import { i as readProjectFile, n as boundedGlob } from "./bounded-fs-Cpn129A4.js";
4
+ import { a as createVersionBucket, f as detectAllPackageManagers, i as tryGetPackageJson, p as detectNodePackageManagers } from "./setup-utils-dCViCC6s.js";
5
+ import { n as getInstalledPackageVersion, r as hasDeclaredDependency, t as getDeclaredVersion } from "./package-json-DY70kkNp.js";
6
+ import { t as getUI } from "./ui-CGXtC7Vn.js";
7
7
  import * as semver from "semver";
8
8
  import { major, minVersion } from "semver";
9
9
  import path from "path";
10
10
  import * as path$2 from "node:path";
11
+ import { execSync } from "node:child_process";
11
12
  import * as fs$1 from "node:fs";
12
13
  import fg from "fast-glob";
13
14
  import fs from "fs/promises";
14
- //#region src/frameworks/nextjs/utils.ts
15
+ //#region src/programs/frameworks/python/utils.ts
16
+ /**
17
+ * Get the installed Python version
18
+ */
19
+ function getPythonVersion(options) {
20
+ try {
21
+ return execSync("python --version || python3 --version", {
22
+ cwd: options.installDir,
23
+ encoding: "utf-8"
24
+ }).trim().replace("Python ", "");
25
+ } catch {
26
+ return;
27
+ }
28
+ }
29
+ /**
30
+ * Bucket Python version for analytics (e.g., "3.11.x" -> "3.11")
31
+ */
32
+ function getPythonVersionBucket(version) {
33
+ const match = version.match(/^(\d+\.\d+)/);
34
+ return match ? match[1] : version;
35
+ }
36
+ /**
37
+ * Detect which package manager the project uses
38
+ */
39
+ async function detectPackageManager$1(options) {
40
+ const { installDir } = options;
41
+ const fs = await import("node:fs");
42
+ const path = await import("node:path");
43
+ if (fs.existsSync(path.join(installDir, "uv.lock"))) return "uv";
44
+ if (fs.existsSync(path.join(installDir, "pyproject.toml"))) try {
45
+ const content = fs.readFileSync(path.join(installDir, "pyproject.toml"), "utf-8");
46
+ if (content.includes("[tool.poetry]")) return "poetry";
47
+ if (content.includes("[tool.pdm]")) return "pdm";
48
+ if (content.includes("[tool.hatch]")) return "hatch";
49
+ if (content.includes("[tool.rye]")) return "rye";
50
+ } catch {}
51
+ if (fs.existsSync(path.join(installDir, "poetry.lock"))) return "poetry";
52
+ if (fs.existsSync(path.join(installDir, "pdm.lock"))) return "pdm";
53
+ if (fs.existsSync(path.join(installDir, "Pipfile")) || fs.existsSync(path.join(installDir, "Pipfile.lock"))) return "pipenv";
54
+ if (fs.existsSync(path.join(installDir, "environment.yml")) || fs.existsSync(path.join(installDir, "environment.yaml"))) return "conda";
55
+ if (fs.existsSync(path.join(installDir, "requirements.txt")) || fs.existsSync(path.join(installDir, "setup.py")) || fs.existsSync(path.join(installDir, "setup.cfg")) || fs.existsSync(path.join(installDir, "pyproject.toml"))) return "pip";
56
+ try {
57
+ const requirementsDir = path.join(installDir, "requirements");
58
+ if (fs.existsSync(requirementsDir) && fs.statSync(requirementsDir).isDirectory()) {
59
+ if (fs.readdirSync(requirementsDir).some((f) => f.endsWith(".txt"))) return "pip";
60
+ }
61
+ } catch {}
62
+ return "unknown";
63
+ }
64
+ /**
65
+ * Get package manager display name
66
+ */
67
+ function getPackageManagerName$1(packageManager) {
68
+ switch (packageManager) {
69
+ case "uv": return "uv";
70
+ case "poetry": return "Poetry";
71
+ case "pdm": return "PDM";
72
+ case "hatch": return "Hatch";
73
+ case "rye": return "Rye";
74
+ case "pipenv": return "Pipenv";
75
+ case "conda": return "Conda";
76
+ case "pip": return "pip";
77
+ case "unknown": return "unknown";
78
+ }
79
+ }
80
+ //#endregion
81
+ //#region src/programs/detection/package-manager.ts
82
+ /**
83
+ * Cross-ecosystem package manager detection.
84
+ *
85
+ * Each FrameworkConfig implements the PackageManagerDetector contract; the
86
+ * helpers here cover the Python, PHP, Swift, Ruby, Rust, Elixir, Go, Flutter,
87
+ * Android and Java ecosystems (Node is in `@utils/package-manager`). The
88
+ * `detect_package_manager` tool delegates to whatever detector the current
89
+ * framework supplies.
90
+ */
91
+ const PYTHON_PM_INFO = {
92
+ ["uv"]: {
93
+ name: "uv",
94
+ label: "uv",
95
+ installCommand: "uv add",
96
+ runCommand: "uv run"
97
+ },
98
+ ["poetry"]: {
99
+ name: "poetry",
100
+ label: "Poetry",
101
+ installCommand: "poetry add",
102
+ runCommand: "poetry run"
103
+ },
104
+ ["pdm"]: {
105
+ name: "pdm",
106
+ label: "PDM",
107
+ installCommand: "pdm add",
108
+ runCommand: "pdm run"
109
+ },
110
+ ["hatch"]: {
111
+ name: "hatch",
112
+ label: "Hatch",
113
+ installCommand: "hatch add",
114
+ runCommand: "hatch run"
115
+ },
116
+ ["rye"]: {
117
+ name: "rye",
118
+ label: "Rye",
119
+ installCommand: "rye add",
120
+ runCommand: "rye run"
121
+ },
122
+ ["pipenv"]: {
123
+ name: "pipenv",
124
+ label: "Pipenv",
125
+ installCommand: "pipenv install",
126
+ runCommand: "pipenv run"
127
+ },
128
+ ["conda"]: {
129
+ name: "conda",
130
+ label: "Conda",
131
+ installCommand: "conda install",
132
+ runCommand: "conda run"
133
+ },
134
+ ["pip"]: {
135
+ name: "pip",
136
+ label: "pip",
137
+ installCommand: "pip install"
138
+ },
139
+ ["unknown"]: {
140
+ name: "pip",
141
+ label: "pip (default)",
142
+ installCommand: "pip install"
143
+ }
144
+ };
145
+ /**
146
+ * Detect Python package managers via lockfiles and config files.
147
+ * Wraps the existing detectPackageManager() from python/utils.ts.
148
+ */
149
+ async function detectPythonPackageManagers(installDir) {
150
+ const info = PYTHON_PM_INFO[await detectPackageManager$1({ installDir })];
151
+ return {
152
+ detected: [info],
153
+ primary: info,
154
+ recommendation: `Use ${info.label} (${info.installCommand}).`
155
+ };
156
+ }
157
+ const COMPOSER = {
158
+ name: "composer",
159
+ label: "Composer",
160
+ installCommand: "composer require"
161
+ };
162
+ function composerPackageManager() {
163
+ return Promise.resolve({
164
+ detected: [COMPOSER],
165
+ primary: COMPOSER,
166
+ recommendation: "Use Composer (composer require)."
167
+ });
168
+ }
169
+ const SPM = {
170
+ name: "spm",
171
+ label: "Swift Package Manager",
172
+ installCommand: "swift package add-dependency"
173
+ };
174
+ function swiftPackageManager() {
175
+ return Promise.resolve({
176
+ detected: [SPM],
177
+ primary: SPM,
178
+ recommendation: "Use Swift Package Manager. Add the dependency to Package.swift or via Xcode."
179
+ });
180
+ }
181
+ const BUNDLER = {
182
+ name: "bundler",
183
+ label: "Bundler",
184
+ installCommand: "bundle add",
185
+ runCommand: "bundle exec"
186
+ };
187
+ function bundlerPackageManager() {
188
+ return Promise.resolve({
189
+ detected: [BUNDLER],
190
+ primary: BUNDLER,
191
+ recommendation: "Use Bundler (bundle add). Run commands with bundle exec."
192
+ });
193
+ }
194
+ const CARGO = {
195
+ name: "cargo",
196
+ label: "Cargo",
197
+ installCommand: "cargo add"
198
+ };
199
+ function cargoPackageManager() {
200
+ return Promise.resolve({
201
+ detected: [CARGO],
202
+ primary: CARGO,
203
+ recommendation: "Use Cargo (cargo add)."
204
+ });
205
+ }
206
+ const MIX = {
207
+ name: "mix",
208
+ label: "Mix",
209
+ installCommand: "mix deps.get"
210
+ };
211
+ function mixPackageManager() {
212
+ return Promise.resolve({
213
+ detected: [MIX],
214
+ primary: MIX,
215
+ recommendation: "Use Mix. Add the dependency to the deps list in mix.exs, then run mix deps.get."
216
+ });
217
+ }
218
+ const GO_MODULES = {
219
+ name: "go",
220
+ label: "Go modules",
221
+ installCommand: "go get"
222
+ };
223
+ function goModulesPackageManager() {
224
+ return Promise.resolve({
225
+ detected: [GO_MODULES],
226
+ primary: GO_MODULES,
227
+ recommendation: "Use Go modules (go get). Run go mod tidy after imports change."
228
+ });
229
+ }
230
+ const PUB = {
231
+ name: "pub",
232
+ label: "pub",
233
+ installCommand: "flutter pub add",
234
+ runCommand: "flutter"
235
+ };
236
+ function pubPackageManager() {
237
+ return Promise.resolve({
238
+ detected: [PUB],
239
+ primary: PUB,
240
+ recommendation: "Use flutter pub add to add dependencies; it updates pubspec.yaml automatically."
241
+ });
242
+ }
243
+ const GRADLE = {
244
+ name: "gradle",
245
+ label: "Gradle",
246
+ installCommand: "implementation"
247
+ };
248
+ function gradlePackageManager() {
249
+ return Promise.resolve({
250
+ detected: [GRADLE],
251
+ primary: GRADLE,
252
+ recommendation: "Add dependencies to build.gradle(.kts) using implementation()."
253
+ });
254
+ }
255
+ const MAVEN = {
256
+ name: "maven",
257
+ label: "Maven",
258
+ installCommand: "mvn install"
259
+ };
260
+ /**
261
+ * Java backends split between Maven and Gradle; pom.xml decides.
262
+ * Defaults to Gradle when neither manifest is present.
263
+ */
264
+ function detectJavaPackageManagers(installDir) {
265
+ if (fs$1.existsSync(path$2.join(installDir, "pom.xml"))) return Promise.resolve({
266
+ detected: [MAVEN],
267
+ primary: MAVEN,
268
+ recommendation: "Use Maven. Add the dependency to pom.xml, then run mvn install to resolve it."
269
+ });
270
+ return gradlePackageManager();
271
+ }
272
+ //#endregion
273
+ //#region src/programs/frameworks/nextjs/utils.ts
15
274
  const getNextJsVersionBucket = createVersionBucket();
16
275
  const IGNORE_PATTERNS$1 = ["**/public/**"];
17
276
  /**
@@ -36,7 +295,7 @@ const getNextJsRouterName = (router) => {
36
295
  return router === "app-router" ? "app router" : "pages router";
37
296
  };
38
297
  //#endregion
39
- //#region src/frameworks/nextjs/nextjs-wizard-agent.ts
298
+ //#region src/programs/frameworks/nextjs/nextjs-wizard-agent.ts
40
299
  const NEXTJS_AGENT_CONFIG = {
41
300
  metadata: {
42
301
  name: "Next.js",
@@ -110,7 +369,7 @@ const NEXTJS_AGENT_CONFIG = {
110
369
  }
111
370
  };
112
371
  //#endregion
113
- //#region src/frameworks/nuxt/nuxt-wizard-agent.ts
372
+ //#region src/programs/frameworks/nuxt/nuxt-wizard-agent.ts
114
373
  const getNuxtVersionBucket = createVersionBucket();
115
374
  const NUXT_AGENT_CONFIG = {
116
375
  metadata: {
@@ -209,7 +468,7 @@ const VUE_AGENT_CONFIG = {
209
468
  }
210
469
  };
211
470
  //#endregion
212
- //#region src/frameworks/react-router/utils.ts
471
+ //#region src/programs/frameworks/react-router/utils.ts
213
472
  const EXTRA_IGNORE$11 = ["**/public/**"];
214
473
  const getReactRouterVersionBucket = createVersionBucket();
215
474
  /** Content probes read at most this many files, one in memory at a time. */
@@ -278,7 +537,7 @@ function getReactRouterModeName(mode) {
278
537
  }
279
538
  }
280
539
  //#endregion
281
- //#region src/frameworks/react-router/react-router-wizard-agent.ts
540
+ //#region src/programs/frameworks/react-router/react-router-wizard-agent.ts
282
541
  const REACT_ROUTER_AGENT_CONFIG = {
283
542
  metadata: {
284
543
  name: "React Router",
@@ -343,7 +602,7 @@ const REACT_ROUTER_AGENT_CONFIG = {
343
602
  }
344
603
  };
345
604
  //#endregion
346
- //#region src/frameworks/tanstack-router/utils.ts
605
+ //#region src/programs/frameworks/tanstack-router/utils.ts
347
606
  const EXTRA_IGNORE$10 = [
348
607
  "**/public/**",
349
608
  "**/.vinxi/**",
@@ -410,7 +669,7 @@ function getTanStackRouterModeName(mode) {
410
669
  }
411
670
  }
412
671
  //#endregion
413
- //#region src/frameworks/tanstack-router/tanstack-router-wizard-agent.ts
672
+ //#region src/programs/frameworks/tanstack-router/tanstack-router-wizard-agent.ts
414
673
  const TANSTACK_ROUTER_AGENT_CONFIG = {
415
674
  metadata: {
416
675
  name: "React (TanStack Router)",
@@ -474,7 +733,7 @@ const TANSTACK_ROUTER_AGENT_CONFIG = {
474
733
  }
475
734
  };
476
735
  //#endregion
477
- //#region src/frameworks/tanstack-start/tanstack-start-wizard-agent.ts
736
+ //#region src/programs/frameworks/tanstack-start/tanstack-start-wizard-agent.ts
478
737
  const TANSTACK_START_AGENT_CONFIG = {
479
738
  metadata: {
480
739
  name: "TanStack Start",
@@ -521,7 +780,7 @@ const TANSTACK_START_AGENT_CONFIG = {
521
780
  }
522
781
  };
523
782
  //#endregion
524
- //#region src/frameworks/react-native/utils.ts
783
+ //#region src/programs/frameworks/react-native/utils.ts
525
784
  const getReactNativeVersionBucket = createVersionBucket();
526
785
  function getReactNativeVariantName(variant) {
527
786
  return variant === "expo" ? "Expo" : "React Native";
@@ -536,7 +795,7 @@ async function detectReactNativeVariant(options) {
536
795
  return "react-native";
537
796
  }
538
797
  //#endregion
539
- //#region src/frameworks/react-native/react-native-wizard-agent.ts
798
+ //#region src/programs/frameworks/react-native/react-native-wizard-agent.ts
540
799
  const REACT_NATIVE_AGENT_CONFIG = {
541
800
  metadata: {
542
801
  name: "React Native",
@@ -598,7 +857,7 @@ const REACT_NATIVE_AGENT_CONFIG = {
598
857
  }
599
858
  };
600
859
  //#endregion
601
- //#region src/frameworks/angular/angular-wizard-agent.ts
860
+ //#region src/programs/frameworks/angular/angular-wizard-agent.ts
602
861
  const ANGULAR_AGENT_CONFIG = {
603
862
  metadata: {
604
863
  name: "Angular",
@@ -649,7 +908,7 @@ const ANGULAR_AGENT_CONFIG = {
649
908
  }
650
909
  };
651
910
  //#endregion
652
- //#region src/frameworks/astro/utils.ts
911
+ //#region src/programs/frameworks/astro/utils.ts
653
912
  const getAstroVersionBucket = createVersionBucket();
654
913
  const EXTRA_IGNORE$9 = ["**/.astro/**"];
655
914
  /**
@@ -707,7 +966,7 @@ const getAstroRenderingModeName = (mode) => {
707
966
  }
708
967
  };
709
968
  //#endregion
710
- //#region src/frameworks/astro/astro-wizard-agent.ts
969
+ //#region src/programs/frameworks/astro/astro-wizard-agent.ts
711
970
  const ASTRO_AGENT_CONFIG = {
712
971
  metadata: {
713
972
  name: "Astro",
@@ -781,7 +1040,7 @@ const ASTRO_AGENT_CONFIG = {
781
1040
  }
782
1041
  };
783
1042
  //#endregion
784
- //#region src/lib/framework-config.ts
1043
+ //#region src/programs/framework-config.ts
785
1044
  /**
786
1045
  * Default package installation instruction used when frameworks don't
787
1046
  * provide their own. Frameworks with specific needs (e.g., Swift SPM,
@@ -794,7 +1053,7 @@ const PYTHON_PACKAGE_INSTALLATION = "Use the detect_package_manager tool to dete
794
1053
  */
795
1054
  const SPINNER_MESSAGE = "Writing your PostHog setup with events, error capture and more...";
796
1055
  //#endregion
797
- //#region src/frameworks/django/utils.ts
1056
+ //#region src/programs/frameworks/django/utils.ts
798
1057
  const EXTRA_IGNORE$8 = [
799
1058
  "**/env/**",
800
1059
  "**/.env/**",
@@ -931,7 +1190,7 @@ async function findDjangoSettingsFile(options) {
931
1190
  return settingsFiles[0];
932
1191
  }
933
1192
  //#endregion
934
- //#region src/frameworks/django/django-wizard-agent.ts
1193
+ //#region src/programs/frameworks/django/django-wizard-agent.ts
935
1194
  const EXTRA_IGNORE$7 = ["**/env/**", "**/.env/**"];
936
1195
  const DJANGO_AGENT_CONFIG = {
937
1196
  metadata: {
@@ -1025,7 +1284,7 @@ const DJANGO_AGENT_CONFIG = {
1025
1284
  }
1026
1285
  };
1027
1286
  //#endregion
1028
- //#region src/frameworks/flask/utils.ts
1287
+ //#region src/programs/frameworks/flask/utils.ts
1029
1288
  const EXTRA_IGNORE$6 = [
1030
1289
  "**/env/**",
1031
1290
  "**/.env/**",
@@ -1234,7 +1493,7 @@ async function findFlaskAppFile(options) {
1234
1493
  if (appFiles.length > 0) return appFiles[0];
1235
1494
  }
1236
1495
  //#endregion
1237
- //#region src/frameworks/flask/flask-wizard-agent.ts
1496
+ //#region src/programs/frameworks/flask/flask-wizard-agent.ts
1238
1497
  const EXTRA_IGNORE$5 = ["**/env/**", "**/.env/**"];
1239
1498
  const FLASK_AGENT_CONFIG = {
1240
1499
  metadata: {
@@ -1335,7 +1594,7 @@ const FLASK_AGENT_CONFIG = {
1335
1594
  }
1336
1595
  };
1337
1596
  //#endregion
1338
- //#region src/frameworks/fastapi/utils.ts
1597
+ //#region src/programs/frameworks/fastapi/utils.ts
1339
1598
  const EXTRA_IGNORE$4 = [
1340
1599
  "**/env/**",
1341
1600
  "**/.env/**",
@@ -1472,7 +1731,7 @@ async function findFastAPIAppFile(options) {
1472
1731
  if (appFiles.length > 0) return appFiles[0];
1473
1732
  }
1474
1733
  //#endregion
1475
- //#region src/frameworks/fastapi/fastapi-wizard-agent.ts
1734
+ //#region src/programs/frameworks/fastapi/fastapi-wizard-agent.ts
1476
1735
  const EXTRA_IGNORE$3 = ["**/env/**", "**/.env/**"];
1477
1736
  /**
1478
1737
  * FastAPI framework configuration for the universal agent runner
@@ -1577,7 +1836,7 @@ const FASTAPI_AGENT_CONFIG = {
1577
1836
  }
1578
1837
  };
1579
1838
  //#endregion
1580
- //#region src/frameworks/laravel/utils.ts
1839
+ //#region src/programs/frameworks/laravel/utils.ts
1581
1840
  const EXTRA_IGNORE$2 = [
1582
1841
  "**/storage/**",
1583
1842
  "**/bootstrap/cache/**",
@@ -1722,7 +1981,7 @@ function detectLaravelStructure(options) {
1722
1981
  }
1723
1982
  }
1724
1983
  //#endregion
1725
- //#region src/frameworks/laravel/laravel-wizard-agent.ts
1984
+ //#region src/programs/frameworks/laravel/laravel-wizard-agent.ts
1726
1985
  const LARAVEL_AGENT_CONFIG = {
1727
1986
  metadata: {
1728
1987
  name: "Laravel",
@@ -1817,7 +2076,7 @@ const LARAVEL_AGENT_CONFIG = {
1817
2076
  }
1818
2077
  };
1819
2078
  //#endregion
1820
- //#region src/frameworks/svelte/svelte-wizard-agent.ts
2079
+ //#region src/programs/frameworks/svelte/svelte-wizard-agent.ts
1821
2080
  const SVELTEKIT_AGENT_CONFIG = {
1822
2081
  metadata: {
1823
2082
  name: "SvelteKit",
@@ -1860,7 +2119,7 @@ const SVELTEKIT_AGENT_CONFIG = {
1860
2119
  }
1861
2120
  };
1862
2121
  //#endregion
1863
- //#region src/frameworks/flutter/flutter-wizard-agent.ts
2122
+ //#region src/programs/frameworks/flutter/flutter-wizard-agent.ts
1864
2123
  /** Platform subtrees `flutter create` scaffolds; each needs its own setup notes. */
1865
2124
  const FLUTTER_PLATFORM_DIRS = [
1866
2125
  "android",
@@ -1930,7 +2189,7 @@ const FLUTTER_AGENT_CONFIG = {
1930
2189
  }
1931
2190
  };
1932
2191
  //#endregion
1933
- //#region src/frameworks/swift/utils.ts
2192
+ //#region src/programs/frameworks/swift/utils.ts
1934
2193
  const EXTRA_IGNORE$1 = ["**/.build/**", "**/*.xcodeproj/**"];
1935
2194
  /** Content probes read at most this many files, one in memory at a time. */
1936
2195
  const SOURCE_PROBE_LIMIT = 200;
@@ -1967,7 +2226,7 @@ async function detectSwiftProjectType(options) {
1967
2226
  if (hasUIKit) return "uikit";
1968
2227
  }
1969
2228
  //#endregion
1970
- //#region src/frameworks/swift/swift-wizard-agent.ts
2229
+ //#region src/programs/frameworks/swift/swift-wizard-agent.ts
1971
2230
  const SWIFT_AGENT_CONFIG = {
1972
2231
  metadata: {
1973
2232
  name: "Swift (iOS/macOS)",
@@ -2037,7 +2296,7 @@ const SWIFT_AGENT_CONFIG = {
2037
2296
  }
2038
2297
  };
2039
2298
  //#endregion
2040
- //#region src/frameworks/kmp/kmp-wizard-agent.ts
2299
+ //#region src/programs/frameworks/kmp/kmp-wizard-agent.ts
2041
2300
  const KMP_AGENT_CONFIG = {
2042
2301
  metadata: {
2043
2302
  name: "Kotlin Multiplatform",
@@ -2103,7 +2362,7 @@ const KMP_AGENT_CONFIG = {
2103
2362
  }
2104
2363
  };
2105
2364
  //#endregion
2106
- //#region src/frameworks/android/utils.ts
2365
+ //#region src/programs/frameworks/android/utils.ts
2107
2366
  /**
2108
2367
  * Extract minSdk from the app-level build.gradle(.kts).
2109
2368
  * Returns the value as a semver-like string (e.g. "24" from minSdk = 24).
@@ -2139,7 +2398,7 @@ function getKotlinVersion(options) {
2139
2398
  }
2140
2399
  }
2141
2400
  //#endregion
2142
- //#region src/frameworks/android/android-wizard-agent.ts
2401
+ //#region src/programs/frameworks/android/android-wizard-agent.ts
2143
2402
  const ANDROID_AGENT_CONFIG = {
2144
2403
  metadata: {
2145
2404
  name: "Android (Kotlin)",
@@ -2215,7 +2474,7 @@ const ANDROID_AGENT_CONFIG = {
2215
2474
  }
2216
2475
  };
2217
2476
  //#endregion
2218
- //#region src/frameworks/rails/utils.ts
2477
+ //#region src/programs/frameworks/rails/utils.ts
2219
2478
  const IGNORE_PATTERNS = [
2220
2479
  "**/node_modules/**",
2221
2480
  "**/vendor/**",
@@ -2314,7 +2573,7 @@ async function isRailsProject(options) {
2314
2573
  })).length >= 2;
2315
2574
  }
2316
2575
  //#endregion
2317
- //#region src/frameworks/rails/rails-wizard-agent.ts
2576
+ //#region src/programs/frameworks/rails/rails-wizard-agent.ts
2318
2577
  const RAILS_AGENT_CONFIG = {
2319
2578
  metadata: {
2320
2579
  name: "Ruby on Rails",
@@ -2382,7 +2641,7 @@ const RAILS_AGENT_CONFIG = {
2382
2641
  }
2383
2642
  };
2384
2643
  //#endregion
2385
- //#region src/frameworks/elixir/elixir-wizard-agent.ts
2644
+ //#region src/programs/frameworks/elixir/elixir-wizard-agent.ts
2386
2645
  function readMixExs(installDir) {
2387
2646
  const mixExsPath = path$2.join(installDir, "mix.exs");
2388
2647
  if (!fs$1.existsSync(mixExsPath)) return;
@@ -2449,7 +2708,7 @@ const ELIXIR_AGENT_CONFIG = {
2449
2708
  }
2450
2709
  };
2451
2710
  //#endregion
2452
- //#region src/frameworks/go/go-wizard-agent.ts
2711
+ //#region src/programs/frameworks/go/go-wizard-agent.ts
2453
2712
  function readGoMod(installDir) {
2454
2713
  const goModPath = path$2.join(installDir, "go.mod");
2455
2714
  if (!fs$1.existsSync(goModPath)) return;
@@ -2516,7 +2775,7 @@ const GO_AGENT_CONFIG = {
2516
2775
  }
2517
2776
  };
2518
2777
  //#endregion
2519
- //#region src/frameworks/java/java-wizard-agent.ts
2778
+ //#region src/programs/frameworks/java/java-wizard-agent.ts
2520
2779
  const GRADLE_FILES = [
2521
2780
  "build.gradle",
2522
2781
  "build.gradle.kts",
@@ -2613,7 +2872,7 @@ const JAVA_AGENT_CONFIG = {
2613
2872
  }
2614
2873
  };
2615
2874
  //#endregion
2616
- //#region src/frameworks/rust/rust-wizard-agent.ts
2875
+ //#region src/programs/frameworks/rust/rust-wizard-agent.ts
2617
2876
  function readCargoToml(installDir) {
2618
2877
  const cargoTomlPath = path$2.join(installDir, "Cargo.toml");
2619
2878
  if (!fs$1.existsSync(cargoTomlPath)) return;
@@ -2681,7 +2940,7 @@ const RUST_AGENT_CONFIG = {
2681
2940
  }
2682
2941
  };
2683
2942
  //#endregion
2684
- //#region src/frameworks/python/python-wizard-agent.ts
2943
+ //#region src/programs/frameworks/python/python-wizard-agent.ts
2685
2944
  const PYTHON_AGENT_CONFIG = {
2686
2945
  metadata: {
2687
2946
  name: "Python Language",
@@ -2805,7 +3064,7 @@ const PYTHON_AGENT_CONFIG = {
2805
3064
  }
2806
3065
  };
2807
3066
  //#endregion
2808
- //#region src/frameworks/ruby/utils.ts
3067
+ //#region src/programs/frameworks/ruby/utils.ts
2809
3068
  const EXTRA_IGNORE = ["**/tmp/**", "**/log/**"];
2810
3069
  /**
2811
3070
  * Get Ruby version bucket for analytics
@@ -2876,7 +3135,7 @@ async function isRubyProject(options) {
2876
3135
  })).length > 0;
2877
3136
  }
2878
3137
  //#endregion
2879
- //#region src/frameworks/ruby/ruby-wizard-agent.ts
3138
+ //#region src/programs/frameworks/ruby/ruby-wizard-agent.ts
2880
3139
  const RUBY_AGENT_CONFIG = {
2881
3140
  metadata: {
2882
3141
  name: "Ruby",
@@ -2969,7 +3228,7 @@ const RUBY_AGENT_CONFIG = {
2969
3228
  }
2970
3229
  };
2971
3230
  //#endregion
2972
- //#region src/frameworks/javascript-node/javascript-node-wizard-agent.ts
3231
+ //#region src/programs/frameworks/javascript-node/javascript-node-wizard-agent.ts
2973
3232
  const JAVASCRIPT_NODE_AGENT_CONFIG = {
2974
3233
  metadata: {
2975
3234
  name: "Node.js",
@@ -3019,7 +3278,7 @@ const JAVASCRIPT_NODE_AGENT_CONFIG = {
3019
3278
  }
3020
3279
  };
3021
3280
  //#endregion
3022
- //#region src/frameworks/javascript-web/utils.ts
3281
+ //#region src/programs/frameworks/javascript-web/utils.ts
3023
3282
  const INDEX_HTML_MAX_DEPTH = 6;
3024
3283
  /**
3025
3284
  * Packages that indicate a specific framework integration exists.
@@ -3082,7 +3341,7 @@ async function hasIndexHtml(options) {
3082
3341
  })).length > 0;
3083
3342
  }
3084
3343
  //#endregion
3085
- //#region src/frameworks/javascript-web/javascript-web-wizard-agent.ts
3344
+ //#region src/programs/frameworks/javascript-web/javascript-web-wizard-agent.ts
3086
3345
  const JAVASCRIPT_WEB_AGENT_CONFIG = {
3087
3346
  metadata: {
3088
3347
  name: "JavaScript (Web)",
@@ -3170,7 +3429,7 @@ const JAVASCRIPT_WEB_AGENT_CONFIG = {
3170
3429
  }
3171
3430
  };
3172
3431
  //#endregion
3173
- //#region src/lib/registry.ts
3432
+ //#region src/programs/frameworks/registry.ts
3174
3433
  var registry_exports = /* @__PURE__ */ __exportAll({ FRAMEWORK_REGISTRY: () => FRAMEWORK_REGISTRY });
3175
3434
  const FRAMEWORK_REGISTRY = {
3176
3435
  ["nextjs"]: NEXTJS_AGENT_CONFIG,
@@ -3204,4 +3463,4 @@ const FRAMEWORK_REGISTRY = {
3204
3463
  //#endregion
3205
3464
  export { SPINNER_MESSAGE as i, registry_exports as n, DEFAULT_PACKAGE_INSTALLATION as r, FRAMEWORK_REGISTRY as t };
3206
3465
 
3207
- //# sourceMappingURL=registry-DTmREJ-f.js.map
3466
+ //# sourceMappingURL=registry-B6iLGorH.js.map