@alwaysmeticulous/cli 2.326.1 → 2.327.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 (450) hide show
  1. package/dist/__tests__/commonjs-dependencies.spec.d.ts +2 -0
  2. package/dist/__tests__/commonjs-dependencies.spec.d.ts.map +1 -0
  3. package/dist/__tests__/commonjs-dependencies.spec.js +82 -0
  4. package/dist/__tests__/commonjs-dependencies.spec.js.map +1 -0
  5. package/dist/command-utils/__tests__/parse-rewrites.spec.js +2 -2
  6. package/dist/command-utils/__tests__/parse-rewrites.spec.js.map +1 -1
  7. package/dist/command-utils/__tests__/warn-regex-rewrites.spec.js +2 -2
  8. package/dist/command-utils/__tests__/warn-regex-rewrites.spec.js.map +1 -1
  9. package/dist/command-utils/common-options.js +2 -2
  10. package/dist/command-utils/common-options.js.map +1 -1
  11. package/dist/command-utils/detect-upload-mode.js +2 -2
  12. package/dist/command-utils/detect-upload-mode.js.map +1 -1
  13. package/dist/command-utils/detect-upload-mode.spec.js +2 -2
  14. package/dist/command-utils/detect-upload-mode.spec.js.map +1 -1
  15. package/dist/command-utils/download-session.utils.js +2 -2
  16. package/dist/command-utils/download-session.utils.js.map +1 -1
  17. package/dist/command-utils/json-args.js +2 -2
  18. package/dist/command-utils/json-args.js.map +1 -1
  19. package/dist/command-utils/json-args.spec.js +2 -2
  20. package/dist/command-utils/json-args.spec.js.map +1 -1
  21. package/dist/command-utils/parse-container-env.js +2 -2
  22. package/dist/command-utils/parse-container-env.js.map +1 -1
  23. package/dist/command-utils/parse-rewrites.js +2 -2
  24. package/dist/command-utils/parse-rewrites.js.map +1 -1
  25. package/dist/command-utils/print-json.js +2 -2
  26. package/dist/command-utils/print-json.js.map +1 -1
  27. package/dist/command-utils/sentry.utils.js +2 -2
  28. package/dist/command-utils/sentry.utils.js.map +1 -1
  29. package/dist/command-utils/warn-regex-rewrites.js +2 -2
  30. package/dist/command-utils/warn-regex-rewrites.js.map +1 -1
  31. package/dist/commands/agent/agent-review-writes.command.spec.js +2 -2
  32. package/dist/commands/agent/agent-review-writes.command.spec.js.map +1 -1
  33. package/dist/commands/agent/build-git-options.js +2 -2
  34. package/dist/commands/agent/build-git-options.js.map +1 -1
  35. package/dist/commands/agent/build-git-options.spec.js +2 -2
  36. package/dist/commands/agent/build-git-options.spec.js.map +1 -1
  37. package/dist/commands/agent/coverage-columns.util.js +2 -2
  38. package/dist/commands/agent/coverage-columns.util.js.map +1 -1
  39. package/dist/commands/agent/create-diff-comment.command.js +2 -2
  40. package/dist/commands/agent/create-diff-comment.command.js.map +1 -1
  41. package/dist/commands/agent/diff-comment-write.utils.js +2 -2
  42. package/dist/commands/agent/diff-comment-write.utils.js.map +1 -1
  43. package/dist/commands/agent/diff-comments.command.js +2 -2
  44. package/dist/commands/agent/diff-comments.command.js.map +1 -1
  45. package/dist/commands/agent/diff-comments.command.spec.js +2 -2
  46. package/dist/commands/agent/diff-comments.command.spec.js.map +1 -1
  47. package/dist/commands/agent/ignore-diff.command.js +2 -2
  48. package/dist/commands/agent/ignore-diff.command.js.map +1 -1
  49. package/dist/commands/agent/index.js +2 -2
  50. package/dist/commands/agent/index.js.map +1 -1
  51. package/dist/commands/agent/js-coverage-diff.command.js +2 -2
  52. package/dist/commands/agent/js-coverage-diff.command.js.map +1 -1
  53. package/dist/commands/agent/js-coverage.command.handler.spec.js +2 -2
  54. package/dist/commands/agent/js-coverage.command.handler.spec.js.map +1 -1
  55. package/dist/commands/agent/js-coverage.command.js +2 -2
  56. package/dist/commands/agent/js-coverage.command.js.map +1 -1
  57. package/dist/commands/agent/js-coverage.command.spec.js +2 -2
  58. package/dist/commands/agent/js-coverage.command.spec.js.map +1 -1
  59. package/dist/commands/agent/reject-diff.command.js +2 -2
  60. package/dist/commands/agent/reject-diff.command.js.map +1 -1
  61. package/dist/commands/agent/reject-diff.command.spec.js +2 -2
  62. package/dist/commands/agent/reject-diff.command.spec.js.map +1 -1
  63. package/dist/commands/agent/reply-to-diff-comment.command.js +2 -2
  64. package/dist/commands/agent/reply-to-diff-comment.command.js.map +1 -1
  65. package/dist/commands/agent/screenshot-dom-diff.command.js +2 -2
  66. package/dist/commands/agent/screenshot-dom-diff.command.js.map +1 -1
  67. package/dist/commands/agent/screenshot-image-files.command.js +2 -2
  68. package/dist/commands/agent/screenshot-image-files.command.js.map +1 -1
  69. package/dist/commands/agent/screenshot-image.command.js +2 -2
  70. package/dist/commands/agent/screenshot-image.command.js.map +1 -1
  71. package/dist/commands/agent/sessions.command.js +2 -2
  72. package/dist/commands/agent/sessions.command.js.map +1 -1
  73. package/dist/commands/agent/sessions.command.spec.js +2 -2
  74. package/dist/commands/agent/sessions.command.spec.js.map +1 -1
  75. package/dist/commands/agent/submit-feedback.command.js +2 -2
  76. package/dist/commands/agent/submit-feedback.command.js.map +1 -1
  77. package/dist/commands/agent/test-run-check.command.js +2 -2
  78. package/dist/commands/agent/test-run-check.command.js.map +1 -1
  79. package/dist/commands/agent/test-run-check.command.spec.js +2 -2
  80. package/dist/commands/agent/test-run-check.command.spec.js.map +1 -1
  81. package/dist/commands/agent/test-run-diffs.command.js +2 -2
  82. package/dist/commands/agent/test-run-diffs.command.js.map +1 -1
  83. package/dist/commands/agent/test-run-diffs.command.spec.js +2 -2
  84. package/dist/commands/agent/test-run-diffs.command.spec.js.map +1 -1
  85. package/dist/commands/agent/test-run-diffs.utils.js +2 -2
  86. package/dist/commands/agent/test-run-diffs.utils.js.map +1 -1
  87. package/dist/commands/agent/test-run-diffs.utils.spec.js +2 -2
  88. package/dist/commands/agent/test-run-diffs.utils.spec.js.map +1 -1
  89. package/dist/commands/agent/test-run-for-commit.command.js +2 -2
  90. package/dist/commands/agent/test-run-for-commit.command.js.map +1 -1
  91. package/dist/commands/agent/timeline.command.js +2 -2
  92. package/dist/commands/agent/timeline.command.js.map +1 -1
  93. package/dist/commands/agent/timeline.command.spec.js +2 -2
  94. package/dist/commands/agent/timeline.command.spec.js.map +1 -1
  95. package/dist/commands/agent/trigger-test-run.command.js +2 -2
  96. package/dist/commands/agent/trigger-test-run.command.js.map +1 -1
  97. package/dist/commands/agent/trigger-test-run.command.spec.js +2 -2
  98. package/dist/commands/agent/trigger-test-run.command.spec.js.map +1 -1
  99. package/dist/commands/agent/upload-build.command.js +2 -2
  100. package/dist/commands/agent/upload-build.command.js.map +1 -1
  101. package/dist/commands/all-commands.d.ts.map +1 -1
  102. package/dist/commands/all-commands.js +8 -6
  103. package/dist/commands/all-commands.js.map +1 -1
  104. package/dist/commands/auth/__tests__/get-project.command.spec.js +2 -2
  105. package/dist/commands/auth/__tests__/get-project.command.spec.js.map +1 -1
  106. package/dist/commands/auth/__tests__/list-projects.command.spec.js +2 -2
  107. package/dist/commands/auth/__tests__/list-projects.command.spec.js.map +1 -1
  108. package/dist/commands/auth/__tests__/login.command.spec.js +2 -2
  109. package/dist/commands/auth/__tests__/login.command.spec.js.map +1 -1
  110. package/dist/commands/auth/__tests__/logout.command.spec.js +2 -2
  111. package/dist/commands/auth/__tests__/logout.command.spec.js.map +1 -1
  112. package/dist/commands/auth/__tests__/set-project.command.spec.js +2 -2
  113. package/dist/commands/auth/__tests__/set-project.command.spec.js.map +1 -1
  114. package/dist/commands/auth/__tests__/whoami.command.spec.js +2 -2
  115. package/dist/commands/auth/__tests__/whoami.command.spec.js.map +1 -1
  116. package/dist/commands/auth/get-project.command.js +2 -2
  117. package/dist/commands/auth/get-project.command.js.map +1 -1
  118. package/dist/commands/auth/index.js +2 -2
  119. package/dist/commands/auth/index.js.map +1 -1
  120. package/dist/commands/auth/list-projects.command.js +2 -2
  121. package/dist/commands/auth/list-projects.command.js.map +1 -1
  122. package/dist/commands/auth/login.command.js +2 -2
  123. package/dist/commands/auth/login.command.js.map +1 -1
  124. package/dist/commands/auth/logout.command.js +2 -2
  125. package/dist/commands/auth/logout.command.js.map +1 -1
  126. package/dist/commands/auth/set-project.command.js +2 -2
  127. package/dist/commands/auth/set-project.command.js.map +1 -1
  128. package/dist/commands/auth/whoami.command.js +2 -2
  129. package/dist/commands/auth/whoami.command.js.map +1 -1
  130. package/dist/commands/ci/__tests__/label-commit.utils.spec.js +2 -2
  131. package/dist/commands/ci/__tests__/label-commit.utils.spec.js.map +1 -1
  132. package/dist/commands/ci/__tests__/session-filter.utils.spec.js +2 -2
  133. package/dist/commands/ci/__tests__/session-filter.utils.spec.js.map +1 -1
  134. package/dist/commands/ci/agent-test.command.js +2 -2
  135. package/dist/commands/ci/agent-test.command.js.map +1 -1
  136. package/dist/commands/ci/deprecated-trigger-options.js +2 -2
  137. package/dist/commands/ci/deprecated-trigger-options.js.map +1 -1
  138. package/dist/commands/ci/index.js +2 -2
  139. package/dist/commands/ci/index.js.map +1 -1
  140. package/dist/commands/ci/label-commit.command.js +2 -2
  141. package/dist/commands/ci/label-commit.command.js.map +1 -1
  142. package/dist/commands/ci/label-commit.core.js +2 -2
  143. package/dist/commands/ci/label-commit.core.js.map +1 -1
  144. package/dist/commands/ci/label-commit.types.js +2 -2
  145. package/dist/commands/ci/label-commit.types.js.map +1 -1
  146. package/dist/commands/ci/label-commit.utils.js +2 -2
  147. package/dist/commands/ci/label-commit.utils.js.map +1 -1
  148. package/dist/commands/ci/prepare.command.js +2 -2
  149. package/dist/commands/ci/prepare.command.js.map +1 -1
  150. package/dist/commands/ci/resolve-git-options.js +2 -2
  151. package/dist/commands/ci/resolve-git-options.js.map +1 -1
  152. package/dist/commands/ci/run-local.command.js +2 -2
  153. package/dist/commands/ci/run-local.command.js.map +1 -1
  154. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.js +2 -2
  155. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.js.map +1 -1
  156. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.spec.js +2 -2
  157. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.spec.js.map +1 -1
  158. package/dist/commands/ci/run-with-uploaded-asset-chunks.utils.js +2 -2
  159. package/dist/commands/ci/run-with-uploaded-asset-chunks.utils.js.map +1 -1
  160. package/dist/commands/ci/run.command.js +2 -2
  161. package/dist/commands/ci/run.command.js.map +1 -1
  162. package/dist/commands/ci/session-filter.utils.js +2 -2
  163. package/dist/commands/ci/session-filter.utils.js.map +1 -1
  164. package/dist/commands/ci/start-tunnel.command.js +2 -2
  165. package/dist/commands/ci/start-tunnel.command.js.map +1 -1
  166. package/dist/commands/ci/trigger-test-run.core.js +2 -2
  167. package/dist/commands/ci/trigger-test-run.core.js.map +1 -1
  168. package/dist/commands/ci/trigger-test-run.types.js +2 -2
  169. package/dist/commands/ci/trigger-test-run.types.js.map +1 -1
  170. package/dist/commands/ci/upload-asset-chunk.command.js +2 -2
  171. package/dist/commands/ci/upload-asset-chunk.command.js.map +1 -1
  172. package/dist/commands/ci/upload-assets.command.js +2 -2
  173. package/dist/commands/ci/upload-assets.command.js.map +1 -1
  174. package/dist/commands/ci/upload-container.command.js +2 -2
  175. package/dist/commands/ci/upload-container.command.js.map +1 -1
  176. package/dist/commands/crawl.command.js +2 -2
  177. package/dist/commands/crawl.command.js.map +1 -1
  178. package/dist/commands/debug/clean-workspaces.js +2 -2
  179. package/dist/commands/debug/clean-workspaces.js.map +1 -1
  180. package/dist/commands/debug/index.js +2 -2
  181. package/dist/commands/debug/index.js.map +1 -1
  182. package/dist/commands/debug/present-workspace.js +2 -2
  183. package/dist/commands/debug/present-workspace.js.map +1 -1
  184. package/dist/commands/debug/project-worktree.js +2 -2
  185. package/dist/commands/debug/project-worktree.js.map +1 -1
  186. package/dist/commands/deprecated-aliases.js +2 -2
  187. package/dist/commands/deprecated-aliases.js.map +1 -1
  188. package/dist/commands/download/index.js +2 -2
  189. package/dist/commands/download/index.js.map +1 -1
  190. package/dist/commands/download/replay.command.js +2 -2
  191. package/dist/commands/download/replay.command.js.map +1 -1
  192. package/dist/commands/download/session.command.js +2 -2
  193. package/dist/commands/download/session.command.js.map +1 -1
  194. package/dist/commands/download/test-run.command.js +2 -2
  195. package/dist/commands/download/test-run.command.js.map +1 -1
  196. package/dist/commands/local/get-edited-files.utils.js +2 -2
  197. package/dist/commands/local/get-edited-files.utils.js.map +1 -1
  198. package/dist/commands/local/get-edited-files.utils.spec.js +2 -2
  199. package/dist/commands/local/get-edited-files.utils.spec.js.map +1 -1
  200. package/dist/commands/local/index.js +2 -2
  201. package/dist/commands/local/index.js.map +1 -1
  202. package/dist/commands/local/relevant-sessions.command.js +2 -2
  203. package/dist/commands/local/relevant-sessions.command.js.map +1 -1
  204. package/dist/commands/onboard/__tests__/build-context.spec.d.ts +2 -0
  205. package/dist/commands/onboard/__tests__/build-context.spec.d.ts.map +1 -0
  206. package/dist/commands/onboard/__tests__/build-context.spec.js +179 -0
  207. package/dist/commands/onboard/__tests__/build-context.spec.js.map +1 -0
  208. package/dist/commands/onboard/__tests__/check-vcs-link.spec.d.ts +2 -0
  209. package/dist/commands/onboard/__tests__/check-vcs-link.spec.d.ts.map +1 -0
  210. package/dist/commands/onboard/__tests__/check-vcs-link.spec.js +164 -0
  211. package/dist/commands/onboard/__tests__/check-vcs-link.spec.js.map +1 -0
  212. package/dist/commands/onboard/__tests__/codex-mcp.spec.d.ts +2 -0
  213. package/dist/commands/onboard/__tests__/codex-mcp.spec.d.ts.map +1 -0
  214. package/dist/commands/onboard/__tests__/codex-mcp.spec.js +73 -0
  215. package/dist/commands/onboard/__tests__/codex-mcp.spec.js.map +1 -0
  216. package/dist/commands/onboard/__tests__/detect-framework.spec.d.ts +2 -0
  217. package/dist/commands/onboard/__tests__/detect-framework.spec.d.ts.map +1 -0
  218. package/dist/commands/onboard/__tests__/detect-framework.spec.js +277 -0
  219. package/dist/commands/onboard/__tests__/detect-framework.spec.js.map +1 -0
  220. package/dist/commands/onboard/__tests__/git-repo-info.spec.d.ts +2 -0
  221. package/dist/commands/onboard/__tests__/git-repo-info.spec.d.ts.map +1 -0
  222. package/dist/commands/onboard/__tests__/git-repo-info.spec.js +109 -0
  223. package/dist/commands/onboard/__tests__/git-repo-info.spec.js.map +1 -0
  224. package/dist/commands/onboard/__tests__/inline-doc-constants.spec.d.ts +2 -0
  225. package/dist/commands/onboard/__tests__/inline-doc-constants.spec.d.ts.map +1 -0
  226. package/dist/commands/onboard/__tests__/inline-doc-constants.spec.js +157 -0
  227. package/dist/commands/onboard/__tests__/inline-doc-constants.spec.js.map +1 -0
  228. package/dist/commands/onboard/__tests__/install-skills.spec.d.ts +2 -0
  229. package/dist/commands/onboard/__tests__/install-skills.spec.d.ts.map +1 -0
  230. package/dist/commands/onboard/__tests__/install-skills.spec.js +158 -0
  231. package/dist/commands/onboard/__tests__/install-skills.spec.js.map +1 -0
  232. package/dist/commands/onboard/__tests__/materialize-workspace.spec.d.ts +2 -0
  233. package/dist/commands/onboard/__tests__/materialize-workspace.spec.d.ts.map +1 -0
  234. package/dist/commands/onboard/__tests__/materialize-workspace.spec.js +116 -0
  235. package/dist/commands/onboard/__tests__/materialize-workspace.spec.js.map +1 -0
  236. package/dist/commands/onboard/__tests__/resolve-app.spec.d.ts +2 -0
  237. package/dist/commands/onboard/__tests__/resolve-app.spec.d.ts.map +1 -0
  238. package/dist/commands/onboard/__tests__/resolve-app.spec.js +166 -0
  239. package/dist/commands/onboard/__tests__/resolve-app.spec.js.map +1 -0
  240. package/dist/commands/onboard/__tests__/safe-repo-fs.spec.d.ts +2 -0
  241. package/dist/commands/onboard/__tests__/safe-repo-fs.spec.d.ts.map +1 -0
  242. package/dist/commands/onboard/__tests__/safe-repo-fs.spec.js +137 -0
  243. package/dist/commands/onboard/__tests__/safe-repo-fs.spec.js.map +1 -0
  244. package/dist/commands/onboard/__tests__/setup-agent-integrations.spec.d.ts +2 -0
  245. package/dist/commands/onboard/__tests__/setup-agent-integrations.spec.d.ts.map +1 -0
  246. package/dist/commands/onboard/__tests__/setup-agent-integrations.spec.js +286 -0
  247. package/dist/commands/onboard/__tests__/setup-agent-integrations.spec.js.map +1 -0
  248. package/dist/commands/onboard/build-context.d.ts +16 -0
  249. package/dist/commands/onboard/build-context.d.ts.map +1 -0
  250. package/dist/commands/onboard/build-context.js +104 -0
  251. package/dist/commands/onboard/build-context.js.map +1 -0
  252. package/dist/commands/onboard/check-vcs-link.d.ts +14 -0
  253. package/dist/commands/onboard/check-vcs-link.d.ts.map +1 -0
  254. package/dist/commands/onboard/check-vcs-link.js +111 -0
  255. package/dist/commands/onboard/check-vcs-link.js.map +1 -0
  256. package/dist/commands/onboard/codex-mcp.d.ts +24 -0
  257. package/dist/commands/onboard/codex-mcp.d.ts.map +1 -0
  258. package/dist/commands/onboard/codex-mcp.js +302 -0
  259. package/dist/commands/onboard/codex-mcp.js.map +1 -0
  260. package/dist/commands/onboard/customer-agents.d.ts +9 -0
  261. package/dist/commands/onboard/customer-agents.d.ts.map +1 -0
  262. package/dist/commands/onboard/customer-agents.js +19 -0
  263. package/dist/commands/onboard/customer-agents.js.map +1 -0
  264. package/dist/commands/onboard/customer-agents.json +17 -0
  265. package/dist/commands/onboard/customer-docs.d.ts +21 -0
  266. package/dist/commands/onboard/customer-docs.d.ts.map +1 -0
  267. package/dist/commands/onboard/customer-docs.js +31 -0
  268. package/dist/commands/onboard/customer-docs.js.map +1 -0
  269. package/dist/commands/onboard/customer-docs.json +35 -0
  270. package/dist/commands/onboard/detect-framework.d.ts +26 -0
  271. package/dist/commands/onboard/detect-framework.d.ts.map +1 -0
  272. package/dist/commands/onboard/detect-framework.js +305 -0
  273. package/dist/commands/onboard/detect-framework.js.map +1 -0
  274. package/dist/commands/onboard/discover-apps.d.ts +21 -0
  275. package/dist/commands/onboard/discover-apps.d.ts.map +1 -0
  276. package/dist/commands/onboard/discover-apps.js +318 -0
  277. package/dist/commands/onboard/discover-apps.js.map +1 -0
  278. package/dist/commands/onboard/docs-urls.d.ts +11 -0
  279. package/dist/commands/onboard/docs-urls.d.ts.map +1 -0
  280. package/dist/commands/onboard/docs-urls.js +17 -0
  281. package/dist/commands/onboard/docs-urls.js.map +1 -0
  282. package/dist/commands/onboard/git-repo-info.d.ts +15 -0
  283. package/dist/commands/onboard/git-repo-info.d.ts.map +1 -0
  284. package/dist/commands/onboard/git-repo-info.js +84 -0
  285. package/dist/commands/onboard/git-repo-info.js.map +1 -0
  286. package/dist/commands/onboard/index.d.ts +18 -0
  287. package/dist/commands/onboard/index.d.ts.map +1 -0
  288. package/dist/commands/onboard/index.js +164 -0
  289. package/dist/commands/onboard/index.js.map +1 -0
  290. package/dist/commands/onboard/inline-doc-constants.d.ts +21 -0
  291. package/dist/commands/onboard/inline-doc-constants.d.ts.map +1 -0
  292. package/dist/commands/onboard/inline-doc-constants.js +238 -0
  293. package/dist/commands/onboard/inline-doc-constants.js.map +1 -0
  294. package/dist/commands/onboard/launch-agent.d.ts +65 -0
  295. package/dist/commands/onboard/launch-agent.d.ts.map +1 -0
  296. package/dist/commands/onboard/launch-agent.js +311 -0
  297. package/dist/commands/onboard/launch-agent.js.map +1 -0
  298. package/dist/commands/onboard/materialize-workspace.d.ts +68 -0
  299. package/dist/commands/onboard/materialize-workspace.d.ts.map +1 -0
  300. package/dist/commands/onboard/materialize-workspace.js +177 -0
  301. package/dist/commands/onboard/materialize-workspace.js.map +1 -0
  302. package/dist/commands/onboard/print-summary.d.ts +10 -0
  303. package/dist/commands/onboard/print-summary.d.ts.map +1 -0
  304. package/dist/commands/onboard/print-summary.js +49 -0
  305. package/dist/commands/onboard/print-summary.js.map +1 -0
  306. package/dist/commands/onboard/resolve-app.d.ts +21 -0
  307. package/dist/commands/onboard/resolve-app.d.ts.map +1 -0
  308. package/dist/commands/onboard/resolve-app.js +78 -0
  309. package/dist/commands/onboard/resolve-app.js.map +1 -0
  310. package/dist/commands/onboard/resolve-project.d.ts +14 -0
  311. package/dist/commands/onboard/resolve-project.d.ts.map +1 -0
  312. package/dist/commands/onboard/resolve-project.js +92 -0
  313. package/dist/commands/onboard/resolve-project.js.map +1 -0
  314. package/dist/commands/onboard/safe-repo-fs.d.ts +59 -0
  315. package/dist/commands/onboard/safe-repo-fs.d.ts.map +1 -0
  316. package/dist/commands/onboard/safe-repo-fs.js +266 -0
  317. package/dist/commands/onboard/safe-repo-fs.js.map +1 -0
  318. package/dist/commands/onboard/setup-agent-integrations.d.ts +43 -0
  319. package/dist/commands/onboard/setup-agent-integrations.d.ts.map +1 -0
  320. package/dist/commands/onboard/setup-agent-integrations.js +324 -0
  321. package/dist/commands/onboard/setup-agent-integrations.js.map +1 -0
  322. package/dist/commands/onboard/templates/CLAUDE.md +213 -0
  323. package/dist/commands/onboard/templates/agents/auth-setup.md +117 -0
  324. package/dist/commands/onboard/templates/agents/ci-setup.md +742 -0
  325. package/dist/commands/onboard/templates/agents/csp-setup.md +78 -0
  326. package/dist/commands/onboard/templates/agents/false-positive-prevention.md +268 -0
  327. package/dist/commands/onboard/templates/agents/feature-flag-setup.md +133 -0
  328. package/dist/commands/onboard/templates/agents/local-simulation-verification.md +96 -0
  329. package/dist/commands/onboard/templates/agents/persisted-graphql-queries.md +150 -0
  330. package/dist/commands/onboard/templates/agents/recorder-installation.md +194 -0
  331. package/dist/commands/onboard/templates/agents/replay-fetch-retry-compatibility.md +252 -0
  332. package/dist/commands/onboard/templates/agents/reviewer.md +788 -0
  333. package/dist/commands/onboard/templates/agents/service-worker-compatibility.md +254 -0
  334. package/dist/commands/onboard/templates/agents/session-context.md +133 -0
  335. package/dist/commands/onboard/templates/agents/shared-worker-compatibility.md +187 -0
  336. package/dist/commands/onboard/templates/docs/additional-guides/backend-recorder.ts +340 -0
  337. package/dist/commands/onboard/templates/docs/ci/not-yet-run-checks.ts +58 -0
  338. package/dist/commands/onboard/templates/docs/ci.ts +19 -0
  339. package/dist/commands/onboard/templates/docs/cloud-replay.ts +145 -0
  340. package/dist/commands/onboard/templates/docs/constants.ts +37 -0
  341. package/dist/commands/onboard/templates/docs/github-actions-v2.ts +859 -0
  342. package/dist/commands/onboard/templates/docs/how-to/auth/bypassing-auth.ts +27 -0
  343. package/dist/commands/onboard/templates/docs/how-to/auth/enabling-full-auth.ts +91 -0
  344. package/dist/commands/onboard/templates/docs/how-to/configure-ignore-patterns.ts +77 -0
  345. package/dist/commands/onboard/templates/docs/how-to/enable-source-coverage.ts +84 -0
  346. package/dist/commands/onboard/templates/docs/how-to/fix-false-positive-diffs.ts +156 -0
  347. package/dist/commands/onboard/templates/docs/how-to/link-bitbucket.ts +15 -0
  348. package/dist/commands/onboard/templates/docs/how-to/link-gitlab.ts +22 -0
  349. package/dist/commands/onboard/templates/docs/how-to/record-session-context.ts +129 -0
  350. package/dist/commands/onboard/templates/docs/how-to/recorder-script.ts +139 -0
  351. package/dist/commands/onboard/templates/docs/how-to/testing-feature-flags.ts +97 -0
  352. package/dist/commands/onboard/templates/docs/how-to/testing-multiple-apps-or-app-variants.ts +40 -0
  353. package/dist/commands/onboard/templates/docs/how-to/troubleshoot-auth.ts +58 -0
  354. package/dist/commands/onboard/templates/docs/how-to/troubleshoot-failed-simulations.ts +97 -0
  355. package/dist/commands/onboard/templates/docs/how-to/typescript-types.ts +51 -0
  356. package/dist/commands/onboard/templates/docs/how-to/window-meticulous-object.ts +685 -0
  357. package/dist/commands/onboard/templates/docs/onboarding-guide.ts +415 -0
  358. package/dist/commands/onboard/templates/docs/recorder-getting-started.ts +24 -0
  359. package/dist/commands/onboard/templates/docs/recorder-snippets/constants.ts +1 -0
  360. package/dist/commands/onboard/templates/docs/recorder-snippets/explanation-of-methods-to-add-recorder.ts +21 -0
  361. package/dist/commands/onboard/templates/docs/recorder-snippets/npm-package-based-instructions/angular-instructions.ts +34 -0
  362. package/dist/commands/onboard/templates/docs/recorder-snippets/npm-package-based-instructions/any-other-framework-instructions.ts +118 -0
  363. package/dist/commands/onboard/templates/docs/recorder-snippets/npm-package-based-instructions/vue-instructions.ts +39 -0
  364. package/dist/commands/onboard/templates/docs/recorder-snippets/script-based-instructions/next-js-instructions.ts +49 -0
  365. package/dist/commands/onboard/templates/docs/recorder-snippets/script-based-instructions/nuxtjs-instructions.ts +68 -0
  366. package/dist/commands/onboard/templates/docs/recorder-snippets/script-based-instructions/rsbuild-instructions.ts +66 -0
  367. package/dist/commands/onboard/templates/docs/recorder-snippets/script-based-instructions/storybook-instructions.ts +59 -0
  368. package/dist/commands/onboard/templates/docs/recorder-snippets/script-based-instructions/sveltekit-instructions.ts +113 -0
  369. package/dist/commands/onboard/templates/docs/recorder-snippets/script-based-instructions/vite-instructions.ts +58 -0
  370. package/dist/commands/onboard/templates/docs/recorder-snippets/script-requirements.ts +51 -0
  371. package/dist/commands/onboard/templates/docs/recorder-snippets/steps-after-installing-recorder.ts +25 -0
  372. package/dist/commands/onboard/templates/docs/reference/cli-commands.ts +1324 -0
  373. package/dist/commands/onboard/templates/docs/session-recording/csp-exceptions.ts +17 -0
  374. package/dist/commands/onboard/templates/docs/session-recording/recorder-npm-dependency.ts +62 -0
  375. package/dist/commands/onboard/templates/docs-imports/src/lib/next/next.constants.ts +46 -0
  376. package/dist/commands/onboard/templates/docs-imports/src/lib/utils/internal-urls/docs-urls.utils.ts +254 -0
  377. package/dist/commands/onboard/templates/settings.json +14 -0
  378. package/dist/commands/project/index.js +2 -2
  379. package/dist/commands/project/index.js.map +1 -1
  380. package/dist/commands/project/show.command.js +2 -2
  381. package/dist/commands/project/show.command.js.map +1 -1
  382. package/dist/commands/project/upload-source.command.js +2 -2
  383. package/dist/commands/project/upload-source.command.js.map +1 -1
  384. package/dist/commands/record/__tests__/backend-dev-command.utils.spec.js +2 -2
  385. package/dist/commands/record/__tests__/backend-dev-command.utils.spec.js.map +1 -1
  386. package/dist/commands/record/__tests__/backend-sidecar.utils.spec.js +2 -2
  387. package/dist/commands/record/__tests__/backend-sidecar.utils.spec.js.map +1 -1
  388. package/dist/commands/record/__tests__/backend.command.spec.js +2 -2
  389. package/dist/commands/record/__tests__/backend.command.spec.js.map +1 -1
  390. package/dist/commands/record/__tests__/login.command.spec.js +2 -2
  391. package/dist/commands/record/__tests__/login.command.spec.js.map +1 -1
  392. package/dist/commands/record/__tests__/session.command.spec.js +2 -2
  393. package/dist/commands/record/__tests__/session.command.spec.js.map +1 -1
  394. package/dist/commands/record/backend-dev-command.utils.js +2 -2
  395. package/dist/commands/record/backend-dev-command.utils.js.map +1 -1
  396. package/dist/commands/record/backend-sidecar.utils.js +2 -2
  397. package/dist/commands/record/backend-sidecar.utils.js.map +1 -1
  398. package/dist/commands/record/backend.command.js +2 -2
  399. package/dist/commands/record/backend.command.js.map +1 -1
  400. package/dist/commands/record/index.js +2 -2
  401. package/dist/commands/record/index.js.map +1 -1
  402. package/dist/commands/record/login.command.js +2 -2
  403. package/dist/commands/record/login.command.js.map +1 -1
  404. package/dist/commands/record/session.command.js +2 -2
  405. package/dist/commands/record/session.command.js.map +1 -1
  406. package/dist/commands/replay-debugger.ui.js +2 -2
  407. package/dist/commands/replay-debugger.ui.js.map +1 -1
  408. package/dist/commands/replay.command.js +2 -2
  409. package/dist/commands/replay.command.js.map +1 -1
  410. package/dist/commands/schema.command.js +2 -2
  411. package/dist/commands/schema.command.js.map +1 -1
  412. package/dist/commands/schema.command.spec.js +2 -2
  413. package/dist/commands/schema.command.spec.js.map +1 -1
  414. package/dist/index.js +2 -2
  415. package/dist/index.js.map +1 -1
  416. package/dist/main.js +2 -2
  417. package/dist/main.js.map +1 -1
  418. package/dist/utils/__tests__/handle-auth-failure.spec.js +2 -2
  419. package/dist/utils/__tests__/handle-auth-failure.spec.js.map +1 -1
  420. package/dist/utils/__tests__/project-selection-hint.spec.js +2 -2
  421. package/dist/utils/__tests__/project-selection-hint.spec.js.map +1 -1
  422. package/dist/utils/__tests__/resolve-project-identifier.spec.js +2 -2
  423. package/dist/utils/__tests__/resolve-project-identifier.spec.js.map +1 -1
  424. package/dist/utils/__tests__/resolve-test-run-from-commit.spec.js +2 -2
  425. package/dist/utils/__tests__/resolve-test-run-from-commit.spec.js.map +1 -1
  426. package/dist/utils/__tests__/select-project.spec.js +5 -4
  427. package/dist/utils/__tests__/select-project.spec.js.map +1 -1
  428. package/dist/utils/cli-user-error.js +2 -2
  429. package/dist/utils/cli-user-error.js.map +1 -1
  430. package/dist/utils/constants.js +2 -2
  431. package/dist/utils/constants.js.map +1 -1
  432. package/dist/utils/environment.utils.js +2 -2
  433. package/dist/utils/environment.utils.js.map +1 -1
  434. package/dist/utils/format-coverage-ranges.js +2 -2
  435. package/dist/utils/format-coverage-ranges.js.map +1 -1
  436. package/dist/utils/handle-auth-failure.js +2 -2
  437. package/dist/utils/handle-auth-failure.js.map +1 -1
  438. package/dist/utils/out-of-date-client-error.js +2 -2
  439. package/dist/utils/out-of-date-client-error.js.map +1 -1
  440. package/dist/utils/project-selection-hint.js +2 -2
  441. package/dist/utils/project-selection-hint.js.map +1 -1
  442. package/dist/utils/resolve-project-identifier.js +2 -2
  443. package/dist/utils/resolve-project-identifier.js.map +1 -1
  444. package/dist/utils/resolve-test-run-from-commit.js +2 -2
  445. package/dist/utils/resolve-test-run-from-commit.js.map +1 -1
  446. package/dist/utils/select-project.d.ts +9 -0
  447. package/dist/utils/select-project.d.ts.map +1 -1
  448. package/dist/utils/select-project.js +58 -15
  449. package/dist/utils/select-project.js.map +1 -1
  450. package/package.json +14 -12
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="8be9103a-3329-5dae-8710-57f517474b0a")}catch(e){}}();
3
+
4
+ var __importDefault = (this && this.__importDefault) || function (mod) {
5
+ return (mod && mod.__esModule) ? mod : { "default": mod };
6
+ };
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.confirmVcsLinkIfNeeded = void 0;
9
+ const client_1 = require("@alwaysmeticulous/client");
10
+ const chalk_1 = __importDefault(require("chalk"));
11
+ const inquirer_1 = __importDefault(require("inquirer"));
12
+ const cli_user_error_1 = require("../../utils/cli-user-error");
13
+ const docs_urls_1 = require("./docs-urls");
14
+ const VCS_LABEL = {
15
+ github: "GitHub",
16
+ gitlab: "GitLab",
17
+ bitbucket: "Bitbucket",
18
+ };
19
+ /**
20
+ * Warns when the Meticulous project is not linked to its VCS host and asks
21
+ * whether to carry on. Linking is not required for the install itself — only
22
+ * for PR/MR status checks — so skipping is always allowed. The host is taken
23
+ * from the local remote, falling back to GitHub when the remote is missing or
24
+ * unrecognised (the GitHub App is the primary integration).
25
+ */
26
+ const confirmVcsLinkIfNeeded = async (options) => {
27
+ const { project, context } = options;
28
+ if (!project) {
29
+ return;
30
+ }
31
+ const host = vcsForCiProvider(context.ciProvider) ?? "github";
32
+ const linked = isVcsLinked(context, host);
33
+ if (linked === true) {
34
+ return;
35
+ }
36
+ const configureUrl = configureUrlFor(context, host);
37
+ const projectLabel = context.orgAndProject ?? project.name;
38
+ if (linked === null) {
39
+ console.log(chalk_1.default.yellow(` Could not confirm whether ${projectLabel} is linked to ${VCS_LABEL[host]}. Continuing.`));
40
+ if (configureUrl) {
41
+ console.log(chalk_1.default.dim(` If CI status checks fail later, link the repo here: ${configureUrl}`));
42
+ }
43
+ return;
44
+ }
45
+ console.log(chalk_1.default.yellow(host === "github"
46
+ ? ` Warning: no Meticulous GitHub App is linked to ${projectLabel}.`
47
+ : ` Warning: ${projectLabel} is not linked to ${VCS_LABEL[host]} yet.`));
48
+ console.log(chalk_1.default.dim(` Meticulous cannot post status checks on your ${host === "gitlab" ? "merge" : "pull"} requests until it is linked:`));
49
+ if (configureUrl) {
50
+ console.log(` ${chalk_1.default.cyan(configureUrl)}`);
51
+ }
52
+ if (!context.repoUrl) {
53
+ console.log(chalk_1.default.dim(" This repository also has no `origin` remote yet — add one (`git remote add origin <url>`) so the branch can be pushed and the PR opened."));
54
+ }
55
+ console.log("");
56
+ // Nothing here blocks the install, so a non-interactive run just carries on.
57
+ if (!(0, client_1.isInteractiveContext)()) {
58
+ return;
59
+ }
60
+ const { skipForNow } = await inquirer_1.default.prompt([
61
+ {
62
+ type: "confirm",
63
+ name: "skipForNow",
64
+ message: "Skip this for now and continue the install?",
65
+ default: true,
66
+ },
67
+ ]);
68
+ if (!skipForNow) {
69
+ throw new cli_user_error_1.CliUserError([
70
+ `Link ${projectLabel} to ${VCS_LABEL[host]}, then re-run \`meticulous onboard\`.`,
71
+ ...(configureUrl ? [` ${configureUrl}`] : []),
72
+ ].join("\n"));
73
+ }
74
+ };
75
+ exports.confirmVcsLinkIfNeeded = confirmVcsLinkIfNeeded;
76
+ const vcsForCiProvider = (ciProvider) => {
77
+ switch (ciProvider) {
78
+ case "github-actions":
79
+ return "github";
80
+ case "gitlab-ci":
81
+ return "gitlab";
82
+ case "bitbucket-pipelines":
83
+ return "bitbucket";
84
+ default:
85
+ return null;
86
+ }
87
+ };
88
+ const isVcsLinked = (context, vcs) => {
89
+ switch (vcs) {
90
+ case "github":
91
+ return context.isGitHubIntegrationActive;
92
+ case "gitlab":
93
+ return context.isGitLabIntegrationActive;
94
+ case "bitbucket":
95
+ return context.isBitbucketIntegrationActive;
96
+ }
97
+ };
98
+ const configureUrlFor = (context, vcs) => {
99
+ switch (vcs) {
100
+ case "github":
101
+ // Point people at the GitHub Actions install guide rather than the
102
+ // org configure-projects UI — that page walks through installing the app.
103
+ return docs_urls_1.GITHUB_ACTIONS_DOCS_URL;
104
+ case "gitlab":
105
+ return context.gitlabConfigureProjectsUrl;
106
+ case "bitbucket":
107
+ return context.bitbucketConfigureProjectsUrl;
108
+ }
109
+ };
110
+ //# sourceMappingURL=check-vcs-link.js.map
111
+ //# debugId=8be9103a-3329-5dae-8710-57f517474b0a
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-vcs-link.js","sources":["../../../src/commands/onboard/check-vcs-link.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"8be9103a-3329-5dae-8710-57f517474b0a"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Writes the canonical Meticulous MCP server into a Codex `config.toml`,
3
+ * stripping any repo-supplied definition first. Codex binds the first table it
4
+ * sees under `mcp_servers.Meticulous`, so a leftover stdio server (with
5
+ * `command`/`args`) would keep running under the official name — hence the
6
+ * careful, TOML-aware sanitisation below.
7
+ */
8
+ export declare const mergeCodexMcp: (projectRoot: string, relativePath: string, mcpUrl: string) => void;
9
+ /**
10
+ * Splits out `[mcp_servers.Meticulous]` or a nested
11
+ * `[mcp_servers.Meticulous.*]` table and its body. `sectionBody` is `null`
12
+ * when no such section is present. Callers that must remove every copy
13
+ * should loop until `sectionBody` is `null`.
14
+ */
15
+ export declare const splitCodexMeticulousSection: (contents: string) => {
16
+ remainder: string;
17
+ sectionBody: string | null;
18
+ };
19
+ /**
20
+ * Accepts only blank lines and a single `url = "<canonical>"` assignment
21
+ * (optional surrounding whitespace / quotes). Any other key rejects.
22
+ */
23
+ export declare const isCanonicalCodexMeticulousSectionBody: (sectionBody: string, mcpUrl: string) => boolean;
24
+ //# sourceMappingURL=codex-mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-mcp.d.ts","sourceRoot":"","sources":["../../../src/commands/onboard/codex-mcp.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,gBACX,MAAM,gBACL,MAAM,UACZ,MAAM,KACb,IA0DF,CAAC;AA8MF;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,aAC5B,MAAM,KACf;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CA8BjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qCAAqC,gBACnC,MAAM,UACX,MAAM,KACb,OAkBF,CAAC"}
@@ -0,0 +1,302 @@
1
+ "use strict";
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ac2471d6-dbc8-5949-a5c8-63e2a74bbaa2")}catch(e){}}();
3
+
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.isCanonicalCodexMeticulousSectionBody = exports.splitCodexMeticulousSection = exports.mergeCodexMcp = void 0;
6
+ const fs_1 = require("fs");
7
+ const cli_user_error_1 = require("../../utils/cli-user-error");
8
+ const safe_repo_fs_1 = require("./safe-repo-fs");
9
+ /**
10
+ * Writes the canonical Meticulous MCP server into a Codex `config.toml`,
11
+ * stripping any repo-supplied definition first. Codex binds the first table it
12
+ * sees under `mcp_servers.Meticulous`, so a leftover stdio server (with
13
+ * `command`/`args`) would keep running under the official name — hence the
14
+ * careful, TOML-aware sanitisation below.
15
+ */
16
+ const mergeCodexMcp = (projectRoot, relativePath, mcpUrl) => {
17
+ const absolutePath = (0, safe_repo_fs_1.resolveSafeWritePath)(projectRoot, relativePath);
18
+ const existing = (0, fs_1.existsSync)(absolutePath)
19
+ ? (0, fs_1.readFileSync)(absolutePath, "utf8")
20
+ : "";
21
+ // Strip every Meticulous table (duplicates and nested
22
+ // `[mcp_servers.Meticulous.*]` included). A single canonical body is the
23
+ // only case that may stay as-is.
24
+ const sectionBodies = [];
25
+ let remainder = existing;
26
+ for (;;) {
27
+ const split = (0, exports.splitCodexMeticulousSection)(remainder);
28
+ if (split.sectionBody === null) {
29
+ remainder = split.remainder;
30
+ break;
31
+ }
32
+ sectionBodies.push(split.sectionBody);
33
+ remainder = split.remainder;
34
+ }
35
+ // Stripping `[table]` headers is safe, but assignments are not: their values
36
+ // can span lines, and a complete `mcp_servers` value cannot be extended with
37
+ // a sub-table at all. Abort instead of writing something broken.
38
+ const blocker = findCodexBlocker(remainder);
39
+ if (blocker !== null) {
40
+ throw new cli_user_error_1.CliUserError(blocker.kind === "meticulous-definition"
41
+ ? `${relativePath} defines the Meticulous MCP server as \`${blocker.line}\`, ` +
42
+ `which onboard cannot safely rewrite. Remove that entry and re-run onboard.`
43
+ : `${relativePath} assigns \`mcp_servers\` a complete value ` +
44
+ `(\`${blocker.line}\`). TOML does not allow adding ` +
45
+ `\`[mcp_servers.Meticulous]\` to it, so onboard cannot configure the ` +
46
+ `MCP server. Rewrite it as a \`[mcp_servers]\` table (removing any ` +
47
+ `Meticulous entry), then re-run onboard.`);
48
+ }
49
+ // Same rule as JSON: the section must exist *and* contain only the
50
+ // canonical `url` — a bare header (or a header with `command`/`args`/etc.)
51
+ // must be overwritten.
52
+ if (sectionBodies.length === 1 &&
53
+ (0, exports.isCanonicalCodexMeticulousSectionBody)(sectionBodies[0], mcpUrl)) {
54
+ return;
55
+ }
56
+ const base = remainder.length === 0 || remainder.endsWith("\n")
57
+ ? remainder
58
+ : `${remainder}\n`;
59
+ const leadingNewline = base.length === 0 ? "" : "\n";
60
+ (0, safe_repo_fs_1.writeFileSafeSync)(projectRoot, relativePath, `${base}${leadingNewline}[mcp_servers.Meticulous]\nurl = "${mcpUrl}"\n`);
61
+ };
62
+ exports.mergeCodexMcp = mergeCodexMcp;
63
+ /** Decodes a TOML basic-string body so `"Metic\u0075lous"` compares equal. */
64
+ const decodeTomlBasicString = (raw) => {
65
+ const simple = {
66
+ b: "\b",
67
+ t: "\t",
68
+ n: "\n",
69
+ f: "\f",
70
+ r: "\r",
71
+ '"': '"',
72
+ "\\": "\\",
73
+ };
74
+ let out = "";
75
+ for (let index = 0; index < raw.length; index += 1) {
76
+ if (raw[index] !== "\\") {
77
+ out += raw[index];
78
+ continue;
79
+ }
80
+ index += 1;
81
+ const escape = raw[index];
82
+ if (escape === undefined) {
83
+ return null;
84
+ }
85
+ if (escape === "u" || escape === "U") {
86
+ const width = escape === "u" ? 4 : 8;
87
+ const hex = raw.slice(index + 1, index + 1 + width);
88
+ if (hex.length !== width || !/^[0-9a-fA-F]+$/u.test(hex)) {
89
+ return null;
90
+ }
91
+ out += String.fromCodePoint(parseInt(hex, 16));
92
+ index += width;
93
+ continue;
94
+ }
95
+ const decoded = simple[escape];
96
+ if (decoded === undefined) {
97
+ return null;
98
+ }
99
+ out += decoded;
100
+ }
101
+ return out;
102
+ };
103
+ /** Reads one TOML key (bare, basic-quoted or literal-quoted) at `start`. */
104
+ const readTomlKey = (line, start) => {
105
+ const quote = line[start];
106
+ if (quote === '"' || quote === "'") {
107
+ let index = start + 1;
108
+ let raw = "";
109
+ while (index < line.length) {
110
+ const char = line[index];
111
+ if (quote === '"' && char === "\\") {
112
+ raw += line.slice(index, index + 2);
113
+ index += 2;
114
+ continue;
115
+ }
116
+ if (char === quote) {
117
+ const key = quote === '"' ? decodeTomlBasicString(raw) : raw;
118
+ return key === null ? null : { key, next: index + 1 };
119
+ }
120
+ raw += char;
121
+ index += 1;
122
+ }
123
+ return null;
124
+ }
125
+ const bare = /^[A-Za-z0-9_-]+/u.exec(line.slice(start));
126
+ return bare ? { key: bare[0], next: start + bare[0].length } : null;
127
+ };
128
+ const skipTomlSpace = (line, start) => {
129
+ let index = start;
130
+ while (line[index] === " " || line[index] === "\t") {
131
+ index += 1;
132
+ }
133
+ return index;
134
+ };
135
+ /**
136
+ * Parses a TOML table header into its key path, or `null` when the line is not
137
+ * a header. Accepts everything TOML permits and the previous regex did not:
138
+ * indentation, whitespace around `[`, `.` and `]`, quoted keys, array-of-table
139
+ * `[[...]]` headers, and a trailing comment.
140
+ */
141
+ const parseTomlTableHeaderPath = (line) => {
142
+ let index = skipTomlSpace(line, 0);
143
+ if (line[index] !== "[") {
144
+ return null;
145
+ }
146
+ index += 1;
147
+ const isArrayOfTables = line[index] === "[";
148
+ if (isArrayOfTables) {
149
+ index += 1;
150
+ }
151
+ const path = [];
152
+ for (;;) {
153
+ index = skipTomlSpace(line, index);
154
+ const key = readTomlKey(line, index);
155
+ if (!key) {
156
+ return null;
157
+ }
158
+ path.push(key.key);
159
+ index = skipTomlSpace(line, key.next);
160
+ if (line[index] === ".") {
161
+ index += 1;
162
+ continue;
163
+ }
164
+ if (line[index] === "]") {
165
+ index += 1;
166
+ break;
167
+ }
168
+ return null;
169
+ }
170
+ if (isArrayOfTables) {
171
+ if (line[index] !== "]") {
172
+ return null;
173
+ }
174
+ index += 1;
175
+ }
176
+ index = skipTomlSpace(line, index);
177
+ // Callers may pass the line with its terminator still attached.
178
+ const trailing = line.slice(index).replace(/\r?\n?$/u, "");
179
+ if (trailing.length > 0 && !trailing.startsWith("#")) {
180
+ return null;
181
+ }
182
+ return path;
183
+ };
184
+ /**
185
+ * Parses the dotted key path of a TOML assignment (`a.b = …`), so a value
186
+ * assignment can be compared against the table a `[header]` would define.
187
+ */
188
+ const parseTomlAssignmentKeyPath = (line) => {
189
+ let index = skipTomlSpace(line, 0);
190
+ if (index >= line.length || line[index] === "#" || line[index] === "[") {
191
+ return null;
192
+ }
193
+ const path = [];
194
+ for (;;) {
195
+ index = skipTomlSpace(line, index);
196
+ const key = readTomlKey(line, index);
197
+ if (!key) {
198
+ return null;
199
+ }
200
+ path.push(key.key);
201
+ index = skipTomlSpace(line, key.next);
202
+ if (line[index] === ".") {
203
+ index += 1;
204
+ continue;
205
+ }
206
+ return line[index] === "=" ? path : null;
207
+ }
208
+ };
209
+ const isMeticulousMcpPath = (path) => path.length >= 2 && path[0] === "mcp_servers" && path[1] === "Meticulous";
210
+ /**
211
+ * Finds an assignment that stops onboard from writing the canonical table:
212
+ *
213
+ * - a Meticulous definition outside a `[table]` header (a dotted assignment, or
214
+ * an inline table under `[mcp_servers]`), which can carry `command`/`args`;
215
+ * - a direct value assignment to root `mcp_servers` (`mcp_servers = { … }` or a
216
+ * scalar). TOML treats those as complete values, so appending
217
+ * `[mcp_servers.Meticulous]` would produce a file Codex cannot parse.
218
+ *
219
+ * A dotted `mcp_servers.Other = …` is fine — TOML allows adding sub-tables to
220
+ * tables defined that way.
221
+ */
222
+ const findCodexBlocker = (contents) => {
223
+ let table = [];
224
+ for (const rawLine of contents.split(/\r?\n/u)) {
225
+ const headerPath = parseTomlTableHeaderPath(rawLine);
226
+ if (headerPath) {
227
+ table = headerPath;
228
+ continue;
229
+ }
230
+ const keyPath = parseTomlAssignmentKeyPath(rawLine);
231
+ if (!keyPath) {
232
+ continue;
233
+ }
234
+ const combined = [...table, ...keyPath];
235
+ if (isMeticulousMcpPath(combined)) {
236
+ return { kind: "meticulous-definition", line: rawLine.trim() };
237
+ }
238
+ if (combined.length === 1 && combined[0] === "mcp_servers") {
239
+ return { kind: "inextensible-mcp-servers", line: rawLine.trim() };
240
+ }
241
+ }
242
+ return null;
243
+ };
244
+ /**
245
+ * Splits out `[mcp_servers.Meticulous]` or a nested
246
+ * `[mcp_servers.Meticulous.*]` table and its body. `sectionBody` is `null`
247
+ * when no such section is present. Callers that must remove every copy
248
+ * should loop until `sectionBody` is `null`.
249
+ */
250
+ const splitCodexMeticulousSection = (contents) => {
251
+ const lines = contents.split(/(?<=\n)/u);
252
+ const headerIndex = lines.findIndex((line) => {
253
+ const path = parseTomlTableHeaderPath(line);
254
+ return path !== null && isMeticulousMcpPath(path);
255
+ });
256
+ if (headerIndex === -1) {
257
+ return { remainder: contents, sectionBody: null };
258
+ }
259
+ // The section body runs until the next header of any table.
260
+ let bodyEndIndex = lines.length;
261
+ for (let index = headerIndex + 1; index < lines.length; index += 1) {
262
+ if (parseTomlTableHeaderPath(lines[index]) !== null) {
263
+ bodyEndIndex = index;
264
+ break;
265
+ }
266
+ }
267
+ const sectionBody = lines.slice(headerIndex + 1, bodyEndIndex).join("");
268
+ const before = lines.slice(0, headerIndex).join("");
269
+ const afterSection = lines.slice(bodyEndIndex).join("");
270
+ const cleanedBefore = before.replace(/(?:\r?\n)+$/u, "\n");
271
+ const remainder = cleanedBefore.length === 0
272
+ ? afterSection.replace(/^(?:\r?\n)+/u, "")
273
+ : `${cleanedBefore}${afterSection}`;
274
+ return { remainder, sectionBody };
275
+ };
276
+ exports.splitCodexMeticulousSection = splitCodexMeticulousSection;
277
+ /**
278
+ * Accepts only blank lines and a single `url = "<canonical>"` assignment
279
+ * (optional surrounding whitespace / quotes). Any other key rejects.
280
+ */
281
+ const isCanonicalCodexMeticulousSectionBody = (sectionBody, mcpUrl) => {
282
+ let sawUrl = false;
283
+ for (const rawLine of sectionBody.split(/\r?\n/u)) {
284
+ const line = rawLine.trim();
285
+ if (line.length === 0 || line.startsWith("#")) {
286
+ continue;
287
+ }
288
+ const match = /^url\s*=\s*(?:"([^"]*)"|'([^']*)'|(\S+))\s*$/u.exec(line);
289
+ if (!match || sawUrl) {
290
+ return false;
291
+ }
292
+ const value = match[1] ?? match[2] ?? match[3];
293
+ if (value !== mcpUrl) {
294
+ return false;
295
+ }
296
+ sawUrl = true;
297
+ }
298
+ return sawUrl;
299
+ };
300
+ exports.isCanonicalCodexMeticulousSectionBody = isCanonicalCodexMeticulousSectionBody;
301
+ //# sourceMappingURL=codex-mcp.js.map
302
+ //# debugId=ac2471d6-dbc8-5949-a5c8-63e2a74bbaa2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-mcp.js","sources":["../../../src/commands/onboard/codex-mcp.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"ac2471d6-dbc8-5949-a5c8-63e2a74bbaa2"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The subset of the canonical admin-cli onboard agents that is safe to ship to
3
+ * customers. Read from JSON so `scripts/copy-onboard-templates.mjs` can share the
4
+ * same list without duplicating it: the published bundle and the source-mode
5
+ * fallback in materialize-workspace.ts must never disagree about which agents a
6
+ * customer onboarding run is allowed to use.
7
+ */
8
+ export declare const CUSTOMER_AGENT_NAMES: readonly string[];
9
+ //# sourceMappingURL=customer-agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customer-agents.d.ts","sourceRoot":"","sources":["../../../src/commands/onboard/customer-agents.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EACf,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ffc884ee-798b-5ea8-94b5-7826d87511dc")}catch(e){}}();
3
+
4
+ var __importDefault = (this && this.__importDefault) || function (mod) {
5
+ return (mod && mod.__esModule) ? mod : { "default": mod };
6
+ };
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.CUSTOMER_AGENT_NAMES = void 0;
9
+ const customer_agents_json_1 = __importDefault(require("./customer-agents.json"));
10
+ /**
11
+ * The subset of the canonical admin-cli onboard agents that is safe to ship to
12
+ * customers. Read from JSON so `scripts/copy-onboard-templates.mjs` can share the
13
+ * same list without duplicating it: the published bundle and the source-mode
14
+ * fallback in materialize-workspace.ts must never disagree about which agents a
15
+ * customer onboarding run is allowed to use.
16
+ */
17
+ exports.CUSTOMER_AGENT_NAMES = customer_agents_json_1.default.customerAgentNames;
18
+ //# sourceMappingURL=customer-agents.js.map
19
+ //# debugId=ffc884ee-798b-5ea8-94b5-7826d87511dc
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customer-agents.js","sources":["../../../src/commands/onboard/customer-agents.ts"],"sourceRoot":"","names":[],"mappings":";;;;;;;;AAAA,kFAAoD;AAEpD;;;;;;GAMG;AACU,QAAA,oBAAoB,GAC/B,8BAAc,CAAC,kBAAkB,CAAC","debugId":"ffc884ee-798b-5ea8-94b5-7826d87511dc"}
@@ -0,0 +1,17 @@
1
+ {
2
+ "customerAgentNames": [
3
+ "auth-setup",
4
+ "ci-setup",
5
+ "csp-setup",
6
+ "false-positive-prevention",
7
+ "feature-flag-setup",
8
+ "local-simulation-verification",
9
+ "persisted-graphql-queries",
10
+ "recorder-installation",
11
+ "replay-fetch-retry-compatibility",
12
+ "reviewer",
13
+ "service-worker-compatibility",
14
+ "session-context",
15
+ "shared-worker-compatibility"
16
+ ]
17
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * The public-docs source files (webapp-frontend docs content) that the
3
+ * customer-facing agent playbooks cite as `.claude/docs/<path>`. They must be
4
+ * bundled into the onboard workspace: the live docs pages render the
5
+ * framework-specific recorder snippets and the GitLab/Bitbucket CI tabs
6
+ * client-side, so a WebFetch of the page cannot retrieve them.
7
+ *
8
+ * Read from JSON so `scripts/copy-onboard-templates.mjs` can share the same
9
+ * list without duplicating it (same pattern as customer-agents.json).
10
+ */
11
+ export declare const CUSTOMER_DOC_FILES: readonly string[];
12
+ /** Doc directories copied recursively (framework-specific recorder snippets). */
13
+ export declare const CUSTOMER_DOC_DIRS: readonly string[];
14
+ /**
15
+ * webapp-frontend modules outside the docs content directory that those docs
16
+ * import constants from (doc URLs, support email). Not copied into the
17
+ * workspace: they are read while inlining those constants into the docs, so the
18
+ * published build mirrors them at the same `src/...` paths the imports use.
19
+ */
20
+ export declare const CUSTOMER_DOC_IMPORT_FILES: readonly string[];
21
+ //# sourceMappingURL=customer-docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customer-docs.d.ts","sourceRoot":"","sources":["../../../src/commands/onboard/customer-docs.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAA0B,CAAC;AAE3E,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAAyB,CAAC;AAEzE;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAC7B,CAAC"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="38b0ef74-ba77-54b5-a609-ec09831564bd")}catch(e){}}();
3
+
4
+ var __importDefault = (this && this.__importDefault) || function (mod) {
5
+ return (mod && mod.__esModule) ? mod : { "default": mod };
6
+ };
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.CUSTOMER_DOC_IMPORT_FILES = exports.CUSTOMER_DOC_DIRS = exports.CUSTOMER_DOC_FILES = void 0;
9
+ const customer_docs_json_1 = __importDefault(require("./customer-docs.json"));
10
+ /**
11
+ * The public-docs source files (webapp-frontend docs content) that the
12
+ * customer-facing agent playbooks cite as `.claude/docs/<path>`. They must be
13
+ * bundled into the onboard workspace: the live docs pages render the
14
+ * framework-specific recorder snippets and the GitLab/Bitbucket CI tabs
15
+ * client-side, so a WebFetch of the page cannot retrieve them.
16
+ *
17
+ * Read from JSON so `scripts/copy-onboard-templates.mjs` can share the same
18
+ * list without duplicating it (same pattern as customer-agents.json).
19
+ */
20
+ exports.CUSTOMER_DOC_FILES = customer_docs_json_1.default.docFiles;
21
+ /** Doc directories copied recursively (framework-specific recorder snippets). */
22
+ exports.CUSTOMER_DOC_DIRS = customer_docs_json_1.default.docDirs;
23
+ /**
24
+ * webapp-frontend modules outside the docs content directory that those docs
25
+ * import constants from (doc URLs, support email). Not copied into the
26
+ * workspace: they are read while inlining those constants into the docs, so the
27
+ * published build mirrors them at the same `src/...` paths the imports use.
28
+ */
29
+ exports.CUSTOMER_DOC_IMPORT_FILES = customer_docs_json_1.default.importFiles;
30
+ //# sourceMappingURL=customer-docs.js.map
31
+ //# debugId=38b0ef74-ba77-54b5-a609-ec09831564bd
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customer-docs.js","sources":["../../../src/commands/onboard/customer-docs.ts"],"sourceRoot":"","names":[],"mappings":";;;;;;;;AAAA,8EAAgD;AAEhD;;;;;;;;;GASG;AACU,QAAA,kBAAkB,GAAsB,4BAAY,CAAC,QAAQ,CAAC;AAE3E,iFAAiF;AACpE,QAAA,iBAAiB,GAAsB,4BAAY,CAAC,OAAO,CAAC;AAEzE;;;;;GAKG;AACU,QAAA,yBAAyB,GACpC,4BAAY,CAAC,WAAW,CAAC","debugId":"38b0ef74-ba77-54b5-a609-ec09831564bd"}
@@ -0,0 +1,35 @@
1
+ {
2
+ "docFiles": [
3
+ "how-to/recorder-script.ts",
4
+ "session-recording/recorder-npm-dependency.ts",
5
+ "recorder-getting-started.ts",
6
+ "github-actions-v2.ts",
7
+ "constants.ts",
8
+ "how-to/link-gitlab.ts",
9
+ "how-to/link-bitbucket.ts",
10
+ "cloud-replay.ts",
11
+ "ci.ts",
12
+ "how-to/auth/bypassing-auth.ts",
13
+ "how-to/auth/enabling-full-auth.ts",
14
+ "how-to/troubleshoot-auth.ts",
15
+ "how-to/window-meticulous-object.ts",
16
+ "how-to/typescript-types.ts",
17
+ "how-to/fix-false-positive-diffs.ts",
18
+ "how-to/enable-source-coverage.ts",
19
+ "how-to/testing-feature-flags.ts",
20
+ "how-to/record-session-context.ts",
21
+ "session-recording/csp-exceptions.ts",
22
+ "how-to/testing-multiple-apps-or-app-variants.ts",
23
+ "how-to/configure-ignore-patterns.ts",
24
+ "how-to/troubleshoot-failed-simulations.ts",
25
+ "onboarding-guide.ts",
26
+ "ci/not-yet-run-checks.ts",
27
+ "reference/cli-commands.ts",
28
+ "additional-guides/backend-recorder.ts"
29
+ ],
30
+ "docDirs": ["recorder-snippets"],
31
+ "importFiles": [
32
+ "src/lib/next/next.constants.ts",
33
+ "src/lib/utils/internal-urls/docs-urls.utils.ts"
34
+ ]
35
+ }
@@ -0,0 +1,26 @@
1
+ export type FrameworkKind = "nextjs-pages" | "nextjs-app" | "react-spa" | "vue-spa" | "angular-spa" | "remix" | "nuxt" | "sveltekit" | "svelte" | "unknown";
2
+ export type RenderingMode = "csr" | "ssg" | "ssr" | "unknown";
3
+ /**
4
+ * How sure the heuristic is about an unsupported-SSR verdict. `"high"` means a
5
+ * config file or router marker said so; `"ambiguous"` means we inferred it from
6
+ * a dependency or directory name and could be misreading a supported app.
7
+ */
8
+ export type UnsupportedSsrConfidence = "high" | "ambiguous";
9
+ export interface FrameworkDetection {
10
+ framework: FrameworkKind;
11
+ rendering: RenderingMode;
12
+ /** True when SSR is detected and it is not Next.js Pages SSR. */
13
+ isUnsupportedSsr: boolean;
14
+ /** Null unless `isUnsupportedSsr` is true. */
15
+ unsupportedSsrConfidence: UnsupportedSsrConfidence | null;
16
+ details: string[];
17
+ }
18
+ /**
19
+ * Heuristic framework + rendering detection for the onboard SSR gate.
20
+ * The agentic reviewer still re-validates during install.
21
+ */
22
+ export declare const detectFramework: (projectRoot: string) => FrameworkDetection;
23
+ /** Shown before asking whether to continue with a detected unsupported setup. */
24
+ export declare const unsupportedSsrWarningMessage: (detection: FrameworkDetection) => string;
25
+ export declare const unsupportedSsrMessage: (detection: FrameworkDetection) => string;
26
+ //# sourceMappingURL=detect-framework.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect-framework.d.ts","sourceRoot":"","sources":["../../../src/commands/onboard/detect-framework.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,aAAa,GACrB,cAAc,GACd,YAAY,GACZ,WAAW,GACX,SAAS,GACT,aAAa,GACb,OAAO,GACP,MAAM,GACN,WAAW,GACX,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;AAE9D;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,WAAW,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,aAAa,CAAC;IACzB,SAAS,EAAE,aAAa,CAAC;IACzB,iEAAiE;IACjE,gBAAgB,EAAE,OAAO,CAAC;IAC1B,8CAA8C;IAC9C,wBAAwB,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAC1D,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAsLD;;;GAGG;AACH,eAAO,MAAM,eAAe,gBAAiB,MAAM,KAAG,kBA+IrD,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,4BAA4B,cAC5B,kBAAkB,KAC5B,MAUW,CAAC;AAEf,eAAO,MAAM,qBAAqB,cAAe,kBAAkB,KAAG,MAcxD,CAAC"}