@allstak/wizard 0.1.7 → 0.1.8

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 (350) hide show
  1. package/dist/cli.js +8 -0
  2. package/dist/commands/_context.js +4 -2
  3. package/dist/registry/index.js +4 -0
  4. package/dist/util/wizard-version.d.ts +1 -1
  5. package/dist/util/wizard-version.js +1 -1
  6. package/package.json +3 -4
  7. package/dist/api/auth-client.d.ts.map +0 -1
  8. package/dist/api/auth-client.js.map +0 -1
  9. package/dist/api/auth.d.ts.map +0 -1
  10. package/dist/api/auth.js.map +0 -1
  11. package/dist/api/client.d.ts.map +0 -1
  12. package/dist/api/client.js.map +0 -1
  13. package/dist/api/http.d.ts.map +0 -1
  14. package/dist/api/http.js.map +0 -1
  15. package/dist/api/index.d.ts.map +0 -1
  16. package/dist/api/index.js.map +0 -1
  17. package/dist/api/orgs-client.d.ts.map +0 -1
  18. package/dist/api/orgs-client.js.map +0 -1
  19. package/dist/api/projects-client.d.ts.map +0 -1
  20. package/dist/api/projects-client.js.map +0 -1
  21. package/dist/api/setup-doctor-client.d.ts.map +0 -1
  22. package/dist/api/setup-doctor-client.js.map +0 -1
  23. package/dist/api/types.d.ts.map +0 -1
  24. package/dist/api/types.js.map +0 -1
  25. package/dist/certification/fixtures.d.ts.map +0 -1
  26. package/dist/certification/fixtures.js.map +0 -1
  27. package/dist/certification/gates.d.ts.map +0 -1
  28. package/dist/certification/gates.js.map +0 -1
  29. package/dist/certification/index.d.ts.map +0 -1
  30. package/dist/certification/index.js.map +0 -1
  31. package/dist/certification/live-backend.d.ts.map +0 -1
  32. package/dist/certification/live-backend.js.map +0 -1
  33. package/dist/certification/packages.d.ts.map +0 -1
  34. package/dist/certification/packages.js.map +0 -1
  35. package/dist/certification/process.d.ts.map +0 -1
  36. package/dist/certification/process.js.map +0 -1
  37. package/dist/certification/report.d.ts.map +0 -1
  38. package/dist/certification/report.js.map +0 -1
  39. package/dist/certification/runner.d.ts.map +0 -1
  40. package/dist/certification/runner.js.map +0 -1
  41. package/dist/certification/runtime.d.ts.map +0 -1
  42. package/dist/certification/runtime.js.map +0 -1
  43. package/dist/certification/types.d.ts.map +0 -1
  44. package/dist/certification/types.js.map +0 -1
  45. package/dist/cli.d.ts.map +0 -1
  46. package/dist/cli.js.map +0 -1
  47. package/dist/commands/_context.d.ts.map +0 -1
  48. package/dist/commands/_context.js.map +0 -1
  49. package/dist/commands/certify.d.ts.map +0 -1
  50. package/dist/commands/certify.js.map +0 -1
  51. package/dist/commands/config-cmd.d.ts.map +0 -1
  52. package/dist/commands/config-cmd.js.map +0 -1
  53. package/dist/commands/doctor.d.ts.map +0 -1
  54. package/dist/commands/doctor.js.map +0 -1
  55. package/dist/commands/init.d.ts.map +0 -1
  56. package/dist/commands/init.js.map +0 -1
  57. package/dist/commands/list.d.ts.map +0 -1
  58. package/dist/commands/list.js.map +0 -1
  59. package/dist/commands/login.d.ts.map +0 -1
  60. package/dist/commands/login.js.map +0 -1
  61. package/dist/commands/logout.d.ts.map +0 -1
  62. package/dist/commands/logout.js.map +0 -1
  63. package/dist/commands/orgs.d.ts.map +0 -1
  64. package/dist/commands/orgs.js.map +0 -1
  65. package/dist/commands/projects.d.ts.map +0 -1
  66. package/dist/commands/projects.js.map +0 -1
  67. package/dist/commands/repair.d.ts.map +0 -1
  68. package/dist/commands/repair.js.map +0 -1
  69. package/dist/commands/restore.d.ts.map +0 -1
  70. package/dist/commands/restore.js.map +0 -1
  71. package/dist/commands/security-snapshot.d.ts.map +0 -1
  72. package/dist/commands/security-snapshot.js.map +0 -1
  73. package/dist/commands/uninstall.d.ts.map +0 -1
  74. package/dist/commands/uninstall.js.map +0 -1
  75. package/dist/commands/whoami.d.ts.map +0 -1
  76. package/dist/commands/whoami.js.map +0 -1
  77. package/dist/compat/engine.d.ts.map +0 -1
  78. package/dist/compat/engine.js.map +0 -1
  79. package/dist/config/define.d.ts.map +0 -1
  80. package/dist/config/define.js.map +0 -1
  81. package/dist/config/index.d.ts.map +0 -1
  82. package/dist/config/index.js.map +0 -1
  83. package/dist/config/loader.d.ts.map +0 -1
  84. package/dist/config/loader.js.map +0 -1
  85. package/dist/config/migrations.d.ts.map +0 -1
  86. package/dist/config/migrations.js.map +0 -1
  87. package/dist/config/precedence.d.ts.map +0 -1
  88. package/dist/config/precedence.js.map +0 -1
  89. package/dist/config/schema.d.ts.map +0 -1
  90. package/dist/config/schema.js.map +0 -1
  91. package/dist/config/types.d.ts.map +0 -1
  92. package/dist/config/types.js.map +0 -1
  93. package/dist/credentials/encrypted-file.d.ts.map +0 -1
  94. package/dist/credentials/encrypted-file.js.map +0 -1
  95. package/dist/credentials/error.d.ts.map +0 -1
  96. package/dist/credentials/error.js.map +0 -1
  97. package/dist/credentials/index.d.ts.map +0 -1
  98. package/dist/credentials/index.js.map +0 -1
  99. package/dist/credentials/keychain-darwin.d.ts.map +0 -1
  100. package/dist/credentials/keychain-darwin.js.map +0 -1
  101. package/dist/credentials/keychain-linux.d.ts.map +0 -1
  102. package/dist/credentials/keychain-linux.js.map +0 -1
  103. package/dist/credentials/keychain-win.d.ts.map +0 -1
  104. package/dist/credentials/keychain-win.js.map +0 -1
  105. package/dist/credentials/types.d.ts.map +0 -1
  106. package/dist/credentials/types.js.map +0 -1
  107. package/dist/detect/framework.d.ts.map +0 -1
  108. package/dist/detect/framework.js.map +0 -1
  109. package/dist/detect/index.d.ts.map +0 -1
  110. package/dist/detect/index.js.map +0 -1
  111. package/dist/detect/monorepo.d.ts.map +0 -1
  112. package/dist/detect/monorepo.js.map +0 -1
  113. package/dist/detect/package-manager.d.ts.map +0 -1
  114. package/dist/detect/package-manager.js.map +0 -1
  115. package/dist/index.d.ts.map +0 -1
  116. package/dist/index.js.map +0 -1
  117. package/dist/integrations/_scaffold.d.ts.map +0 -1
  118. package/dist/integrations/_scaffold.js.map +0 -1
  119. package/dist/integrations/_shared.d.ts.map +0 -1
  120. package/dist/integrations/_shared.js.map +0 -1
  121. package/dist/integrations/_simple-scaffold.d.ts.map +0 -1
  122. package/dist/integrations/_simple-scaffold.js.map +0 -1
  123. package/dist/integrations/dotnet.d.ts.map +0 -1
  124. package/dist/integrations/dotnet.js.map +0 -1
  125. package/dist/integrations/expo/detect.d.ts.map +0 -1
  126. package/dist/integrations/expo/detect.js.map +0 -1
  127. package/dist/integrations/expo/doctor.d.ts.map +0 -1
  128. package/dist/integrations/expo/doctor.js.map +0 -1
  129. package/dist/integrations/expo/files.d.ts.map +0 -1
  130. package/dist/integrations/expo/files.js.map +0 -1
  131. package/dist/integrations/expo/index.d.ts.map +0 -1
  132. package/dist/integrations/expo/index.js.map +0 -1
  133. package/dist/integrations/expo/manifest.d.ts.map +0 -1
  134. package/dist/integrations/expo/manifest.js.map +0 -1
  135. package/dist/integrations/expo/patch.d.ts.map +0 -1
  136. package/dist/integrations/expo/patch.js.map +0 -1
  137. package/dist/integrations/expo/uninstall.d.ts.map +0 -1
  138. package/dist/integrations/expo/uninstall.js.map +0 -1
  139. package/dist/integrations/expo.d.ts.map +0 -1
  140. package/dist/integrations/expo.js.map +0 -1
  141. package/dist/integrations/fastify/detect.d.ts.map +0 -1
  142. package/dist/integrations/fastify/detect.js.map +0 -1
  143. package/dist/integrations/fastify/doctor.d.ts.map +0 -1
  144. package/dist/integrations/fastify/doctor.js.map +0 -1
  145. package/dist/integrations/fastify/files.d.ts.map +0 -1
  146. package/dist/integrations/fastify/files.js.map +0 -1
  147. package/dist/integrations/fastify/index.d.ts.map +0 -1
  148. package/dist/integrations/fastify/index.js.map +0 -1
  149. package/dist/integrations/fastify/manifest.d.ts.map +0 -1
  150. package/dist/integrations/fastify/manifest.js.map +0 -1
  151. package/dist/integrations/fastify/patch.d.ts.map +0 -1
  152. package/dist/integrations/fastify/patch.js.map +0 -1
  153. package/dist/integrations/fastify/uninstall.d.ts.map +0 -1
  154. package/dist/integrations/fastify/uninstall.js.map +0 -1
  155. package/dist/integrations/fastify.d.ts.map +0 -1
  156. package/dist/integrations/fastify.js.map +0 -1
  157. package/dist/integrations/flutter.d.ts.map +0 -1
  158. package/dist/integrations/flutter.js.map +0 -1
  159. package/dist/integrations/go/index.d.ts.map +0 -1
  160. package/dist/integrations/go/index.js.map +0 -1
  161. package/dist/integrations/go.d.ts.map +0 -1
  162. package/dist/integrations/go.js.map +0 -1
  163. package/dist/integrations/java/index.d.ts.map +0 -1
  164. package/dist/integrations/java/index.js.map +0 -1
  165. package/dist/integrations/java.d.ts.map +0 -1
  166. package/dist/integrations/java.js.map +0 -1
  167. package/dist/integrations/js/detect.d.ts.map +0 -1
  168. package/dist/integrations/js/detect.js.map +0 -1
  169. package/dist/integrations/js/doctor.d.ts.map +0 -1
  170. package/dist/integrations/js/doctor.js.map +0 -1
  171. package/dist/integrations/js/files.d.ts.map +0 -1
  172. package/dist/integrations/js/files.js.map +0 -1
  173. package/dist/integrations/js/index.d.ts.map +0 -1
  174. package/dist/integrations/js/index.js.map +0 -1
  175. package/dist/integrations/js/manifest.d.ts.map +0 -1
  176. package/dist/integrations/js/manifest.js.map +0 -1
  177. package/dist/integrations/js/patch.d.ts.map +0 -1
  178. package/dist/integrations/js/patch.js.map +0 -1
  179. package/dist/integrations/js/uninstall.d.ts.map +0 -1
  180. package/dist/integrations/js/uninstall.js.map +0 -1
  181. package/dist/integrations/nestjs/detect.d.ts.map +0 -1
  182. package/dist/integrations/nestjs/detect.js.map +0 -1
  183. package/dist/integrations/nestjs/doctor.d.ts.map +0 -1
  184. package/dist/integrations/nestjs/doctor.js.map +0 -1
  185. package/dist/integrations/nestjs/files.d.ts.map +0 -1
  186. package/dist/integrations/nestjs/files.js.map +0 -1
  187. package/dist/integrations/nestjs/index.d.ts.map +0 -1
  188. package/dist/integrations/nestjs/index.js.map +0 -1
  189. package/dist/integrations/nestjs/manifest.d.ts.map +0 -1
  190. package/dist/integrations/nestjs/manifest.js.map +0 -1
  191. package/dist/integrations/nestjs/patch.d.ts.map +0 -1
  192. package/dist/integrations/nestjs/patch.js.map +0 -1
  193. package/dist/integrations/nestjs/uninstall.d.ts.map +0 -1
  194. package/dist/integrations/nestjs/uninstall.js.map +0 -1
  195. package/dist/integrations/nestjs.d.ts.map +0 -1
  196. package/dist/integrations/nestjs.js.map +0 -1
  197. package/dist/integrations/next/detect.d.ts.map +0 -1
  198. package/dist/integrations/next/detect.js.map +0 -1
  199. package/dist/integrations/next/doctor.d.ts.map +0 -1
  200. package/dist/integrations/next/doctor.js.map +0 -1
  201. package/dist/integrations/next/files.d.ts.map +0 -1
  202. package/dist/integrations/next/files.js.map +0 -1
  203. package/dist/integrations/next/index.d.ts.map +0 -1
  204. package/dist/integrations/next/index.js.map +0 -1
  205. package/dist/integrations/next/manifest.d.ts.map +0 -1
  206. package/dist/integrations/next/manifest.js.map +0 -1
  207. package/dist/integrations/next/patch.d.ts.map +0 -1
  208. package/dist/integrations/next/patch.js.map +0 -1
  209. package/dist/integrations/next/uninstall.d.ts.map +0 -1
  210. package/dist/integrations/next/uninstall.js.map +0 -1
  211. package/dist/integrations/otel.d.ts.map +0 -1
  212. package/dist/integrations/otel.js.map +0 -1
  213. package/dist/integrations/php.d.ts.map +0 -1
  214. package/dist/integrations/php.js.map +0 -1
  215. package/dist/integrations/python/index.d.ts.map +0 -1
  216. package/dist/integrations/python/index.js.map +0 -1
  217. package/dist/integrations/python.d.ts.map +0 -1
  218. package/dist/integrations/python.js.map +0 -1
  219. package/dist/integrations/react/detect.d.ts.map +0 -1
  220. package/dist/integrations/react/detect.js.map +0 -1
  221. package/dist/integrations/react/doctor.d.ts.map +0 -1
  222. package/dist/integrations/react/doctor.js.map +0 -1
  223. package/dist/integrations/react/files.d.ts.map +0 -1
  224. package/dist/integrations/react/files.js.map +0 -1
  225. package/dist/integrations/react/index.d.ts.map +0 -1
  226. package/dist/integrations/react/index.js.map +0 -1
  227. package/dist/integrations/react/manifest.d.ts.map +0 -1
  228. package/dist/integrations/react/manifest.js.map +0 -1
  229. package/dist/integrations/react/patch.d.ts.map +0 -1
  230. package/dist/integrations/react/patch.js.map +0 -1
  231. package/dist/integrations/react/uninstall.d.ts.map +0 -1
  232. package/dist/integrations/react/uninstall.js.map +0 -1
  233. package/dist/integrations/react-native.d.ts.map +0 -1
  234. package/dist/integrations/react-native.js.map +0 -1
  235. package/dist/integrations/ruby.d.ts.map +0 -1
  236. package/dist/integrations/ruby.js.map +0 -1
  237. package/dist/lifecycle/hooks.d.ts.map +0 -1
  238. package/dist/lifecycle/hooks.js.map +0 -1
  239. package/dist/migrations/builtin/dsn-to-api-key.d.ts.map +0 -1
  240. package/dist/migrations/builtin/dsn-to-api-key.js.map +0 -1
  241. package/dist/migrations/engine.d.ts.map +0 -1
  242. package/dist/migrations/engine.js.map +0 -1
  243. package/dist/migrations/index.d.ts.map +0 -1
  244. package/dist/migrations/index.js.map +0 -1
  245. package/dist/output/human.d.ts.map +0 -1
  246. package/dist/output/human.js.map +0 -1
  247. package/dist/output/index.d.ts.map +0 -1
  248. package/dist/output/index.js.map +0 -1
  249. package/dist/output/json.d.ts.map +0 -1
  250. package/dist/output/json.js.map +0 -1
  251. package/dist/output/types.d.ts.map +0 -1
  252. package/dist/output/types.js.map +0 -1
  253. package/dist/patchers/env-file.d.ts.map +0 -1
  254. package/dist/patchers/env-file.js.map +0 -1
  255. package/dist/patchers/js-ast.d.ts.map +0 -1
  256. package/dist/patchers/js-ast.js.map +0 -1
  257. package/dist/patchers/json-file.d.ts.map +0 -1
  258. package/dist/patchers/json-file.js.map +0 -1
  259. package/dist/patchers/markers.d.ts.map +0 -1
  260. package/dist/patchers/markers.js.map +0 -1
  261. package/dist/patchers/source-block.d.ts.map +0 -1
  262. package/dist/patchers/source-block.js.map +0 -1
  263. package/dist/registry/index.d.ts.map +0 -1
  264. package/dist/registry/index.js.map +0 -1
  265. package/dist/registry/manifest.d.ts.map +0 -1
  266. package/dist/registry/manifest.js.map +0 -1
  267. package/dist/registry/registry.d.ts.map +0 -1
  268. package/dist/registry/registry.js.map +0 -1
  269. package/dist/registry/types.d.ts.map +0 -1
  270. package/dist/registry/types.js.map +0 -1
  271. package/dist/security-snapshot/builder.d.ts.map +0 -1
  272. package/dist/security-snapshot/builder.js.map +0 -1
  273. package/dist/security-snapshot/client.d.ts.map +0 -1
  274. package/dist/security-snapshot/client.js.map +0 -1
  275. package/dist/security-snapshot/index.d.ts.map +0 -1
  276. package/dist/security-snapshot/index.js.map +0 -1
  277. package/dist/security-snapshot/types.d.ts.map +0 -1
  278. package/dist/security-snapshot/types.js.map +0 -1
  279. package/dist/snapshot/restore.d.ts.map +0 -1
  280. package/dist/snapshot/restore.js.map +0 -1
  281. package/dist/snapshot/store.d.ts.map +0 -1
  282. package/dist/snapshot/store.js.map +0 -1
  283. package/dist/sourcemaps/index.d.ts.map +0 -1
  284. package/dist/sourcemaps/index.js.map +0 -1
  285. package/dist/sourcemaps/metro.d.ts.map +0 -1
  286. package/dist/sourcemaps/metro.js.map +0 -1
  287. package/dist/sourcemaps/next.d.ts.map +0 -1
  288. package/dist/sourcemaps/next.js.map +0 -1
  289. package/dist/sourcemaps/provider.d.ts.map +0 -1
  290. package/dist/sourcemaps/provider.js.map +0 -1
  291. package/dist/sourcemaps/vite.d.ts.map +0 -1
  292. package/dist/sourcemaps/vite.js.map +0 -1
  293. package/dist/sourcemaps/webpack.d.ts.map +0 -1
  294. package/dist/sourcemaps/webpack.js.map +0 -1
  295. package/dist/telemetry/cli-wrap.d.ts.map +0 -1
  296. package/dist/telemetry/cli-wrap.js.map +0 -1
  297. package/dist/telemetry/http-provider.d.ts.map +0 -1
  298. package/dist/telemetry/http-provider.js.map +0 -1
  299. package/dist/telemetry/index.d.ts.map +0 -1
  300. package/dist/telemetry/index.js.map +0 -1
  301. package/dist/telemetry/install-id.d.ts.map +0 -1
  302. package/dist/telemetry/install-id.js.map +0 -1
  303. package/dist/telemetry/payload.d.ts.map +0 -1
  304. package/dist/telemetry/payload.js.map +0 -1
  305. package/dist/telemetry/provider.d.ts.map +0 -1
  306. package/dist/telemetry/provider.js.map +0 -1
  307. package/dist/telemetry/runtime.d.ts.map +0 -1
  308. package/dist/telemetry/runtime.js.map +0 -1
  309. package/dist/transaction/tx.d.ts.map +0 -1
  310. package/dist/transaction/tx.js.map +0 -1
  311. package/dist/util/error-codes.d.ts.map +0 -1
  312. package/dist/util/error-codes.js.map +0 -1
  313. package/dist/util/errors.d.ts.map +0 -1
  314. package/dist/util/errors.js.map +0 -1
  315. package/dist/util/log.d.ts.map +0 -1
  316. package/dist/util/log.js.map +0 -1
  317. package/dist/util/paths.d.ts.map +0 -1
  318. package/dist/util/paths.js.map +0 -1
  319. package/dist/util/version.d.ts.map +0 -1
  320. package/dist/util/version.js.map +0 -1
  321. package/dist/util/wizard-version.d.ts.map +0 -1
  322. package/dist/util/wizard-version.js.map +0 -1
  323. package/docs/architecture/README.md +0 -58
  324. package/docs/architecture/dry-run.md +0 -34
  325. package/docs/architecture/integration-lifecycle.md +0 -77
  326. package/docs/architecture/patch-pipeline.md +0 -58
  327. package/docs/architecture/registry.md +0 -52
  328. package/docs/architecture/rollback.md +0 -47
  329. package/docs/architecture/sourcemaps.md +0 -53
  330. package/docs/architecture/stability-levels.md +0 -35
  331. package/docs/architecture/transaction.md +0 -51
  332. package/docs/architecture/v02-bare-react-native-spec.md +0 -92
  333. package/docs/architecture/v02-java-host-fix-spec.md +0 -121
  334. package/docs/architecture/v02-sourcemaps-e2e-spec.md +0 -157
  335. package/docs/beta/README.md +0 -17
  336. package/docs/beta/ci.md +0 -122
  337. package/docs/beta/config.md +0 -124
  338. package/docs/beta/doctor.md +0 -79
  339. package/docs/beta/expo.md +0 -69
  340. package/docs/beta/fastify.md +0 -62
  341. package/docs/beta/known-limitations.md +0 -93
  342. package/docs/beta/nestjs.md +0 -69
  343. package/docs/beta/next.md +0 -76
  344. package/docs/beta/node.md +0 -60
  345. package/docs/beta/privacy.md +0 -99
  346. package/docs/beta/quickstart.md +0 -89
  347. package/docs/beta/react.md +0 -91
  348. package/docs/beta/reliability.md +0 -33
  349. package/docs/beta/restore.md +0 -84
  350. package/docs/beta/troubleshooting.md +0 -133
@@ -1,62 +0,0 @@
1
- # Fastify
2
-
3
- **Stability:** internal experimental. AST-safe import (ESM only) + managed-block hint.
4
- The wizard branches on module system: ESM entries get an AST-injected
5
- `import { allstakFastify }`; CJS entries get the managed-block hint only
6
- (the wizard does NOT inject `require()` calls, which interact badly with
7
- top-of-file conditional/dynamic require patterns).
8
-
9
- ## What you get
10
-
11
- - `@allstak/fastify` installed.
12
- - `.env` populated with `ALLSTAK_API_KEY`.
13
- - Entry file (resolved from `package.json:scripts.start`,
14
- `package.json:main`, or conventional `src/server.{ts,js,mjs}` /
15
- `src/index.{ts,js,mjs}`):
16
- - **ESM** (`type: module` / `.mjs` / `import` syntax in the file):
17
- AST-injected import.
18
- - **CJS**: import skipped, hint-only.
19
- - Both: a managed-block hint demonstrating
20
- `app.register(allstakFastify, { ... })`.
21
-
22
- ## Run
23
-
24
- ```bash
25
- npx @allstak/wizard@beta -i fastify
26
- ```
27
-
28
- ## Compatibility
29
-
30
- - `fastify >= 4`. Older versions refused with `E_UNSUPPORTED_VERSION`.
31
-
32
- ## Wiring `app.register`
33
-
34
- ```ts
35
- import Fastify from 'fastify';
36
- import { allstakFastify } from '@allstak/fastify';
37
-
38
- const app = Fastify({ logger: true });
39
- await app.register(allstakFastify, {
40
- apiKey: process.env.ALLSTAK_API_KEY,
41
- });
42
- // … your routes
43
- await app.listen({ port: 3000 });
44
- ```
45
-
46
- `doctor` reports `warn` on `plugin-registered` until a non-comment
47
- `app.register(allstakFastify, ...)` call is detected (line comments
48
- are stripped before matching so the wizard's own hint does not satisfy
49
- the check).
50
-
51
- ## Capabilities the wizard does NOT claim
52
-
53
- - **No source-map upload wiring.** Deferred to v0.2.
54
- - **No CJS AST patching.** CJS users wire the `require(...)` and
55
- `app.register(...)` calls per the managed-block hint.
56
- - **No bundler integration** (esbuild/tsup/etc.) — out of scope for v0.1.
57
-
58
- ## Verify
59
-
60
- ```bash
61
- npx @allstak/wizard@beta doctor -i fastify
62
- ```
@@ -1,93 +0,0 @@
1
- # Known limitations
2
-
3
- This page is the **honest** list of what the wizard does and doesn't do
4
- today. Read it before making the wizard part of a critical onboarding
5
- path.
6
-
7
- ## Supported integrations
8
-
9
- | Integration | Stability | Notes |
10
- |-------------|-----------|-------|
11
- | `react` (Vite or CRA) | ✅ stable | Validated end-to-end; dogfooded against `admin-web` and `web`. |
12
- | `next` (13/14/15, app + pages router) | ✅ stable | Disposable live-backend certification passed for App Router 15 and pages-router onboarding; Edge Runtime and Server Actions are not certified. |
13
- | `js` (vanilla Node) | ✅ stable | Validated end-to-end. |
14
- | `expo` (managed workflow, ≥50) | internal experimental | Hidden from normal public setup; requires `--experimental`. Real device/emulator runtime proof is incomplete. |
15
- | `nestjs` (≥9) | internal experimental | Runtime SDK fail-open is verified, but wizard auto-wiring is not Stable. Requires `--experimental`. |
16
- | `fastify` (≥4) | internal experimental | Runtime SDK fail-open is verified, but wizard auto-wiring is not Stable. Requires `--experimental`. |
17
-
18
- Everything else is `experimental` (refuses without `--experimental`) or
19
- `unsupported` (refuses always).
20
-
21
- ## Explicitly NOT supported
22
-
23
- | Target | Why |
24
- |--------|-----|
25
- | **Astro** | The wizard's framework detector falls through to `js`, which writes env vars but does not wire Astro middleware. Real Astro support is on the v0.2 roadmap. Until then: do the setup manually following the SDK README. |
26
- | **Bare React Native** | Podfile + Gradle patching cannot be validated without iOS sim + Android emulator builds. The wizard refuses with `E_UNSUPPORTED_FRAMEWORK`. Use the Expo managed path if you can; otherwise follow the manual setup. |
27
- | **Expo prebuilt / bare-via-prebuild** | If `ios/` or `android/` already exist, the wizard refuses (same reason as bare RN). Run `expo prebuild --clean` later if you need native edits, but the wizard will not patch the native projects in v0.1. |
28
- | **NestJS / Fastify auto-registration** | Wizard injects the import + a managed-block hint. It does NOT mutate `bootstrap()` to call `useGlobalFilters` or `app.register` — entry-point shapes vary too widely (factories, hybrid apps, custom adapters) and the blast radius is too high. `doctor` reports `warn` until you wire the call yourself. |
29
- | **Flutter source maps** | The Flutter SDK itself does not yet ship source-map upload tooling. Wizard's Flutter integration is `experimental` and only writes env vars. |
30
- | **Backend SDK auto-wiring** (OTel, Spring Boot, Django, Flask, Rails, .NET, Go, PHP) | Each is `experimental`. Install + env-var writing is supported under `--experimental`; framework wiring is NOT — too many entry-point shapes to AST-patch safely without per-framework fixture validation. v0.2 roadmap. |
31
-
32
- ## Auth specifics
33
-
34
- - Login uses email-OTP (no OAuth device-flow). Rate-limited; 4–8 digit
35
- codes valid for ~10 minutes.
36
- - Two-factor (TOTP) is supported but not unit-tested end-to-end (the test
37
- matrix doesn't include accounts with 2FA enabled).
38
- - JWT refresh has a 60-second early-refresh window; the access token TTL
39
- is 15 minutes, the refresh token rotates on each `/refresh` call.
40
-
41
- ## Source-maps
42
-
43
- - **Vite**: AST-injects the plugin import + managed-block hint.
44
- - **Next.js**: managed-block hint only (next.config shapes vary too much
45
- for safe AST mutation).
46
- - **Webpack**: managed-block hint only.
47
- - **Metro / Hermes (RN)**: provider registered but inert in v0.1 — `detect()`
48
- returns `false` and `wire()` is a no-op. Real validation needs device
49
- builds.
50
- - End-to-end **upload roundtrip** (POST `/api/v1/sourcemaps/upload` →
51
- symbolicate) is NOT verified by `doctor` in v0.1.x. The wizard wires the
52
- plugin; the upload + dashboard symbolication are the SDK + dashboard's
53
- responsibility.
54
-
55
- ## Other gaps
56
-
57
- - **Windows Credential Manager** is not yet a credential store backend on
58
- Windows — Windows users get the AES-256-GCM encrypted-file fallback.
59
- - **CRA + standalone Webpack** are detected but the wizard does not AST-mutate
60
- Webpack configs.
61
- - **Multi-package monorepos** are detected (pnpm/turbo/nx/lerna/npm-workspaces)
62
- but the wizard operates on the cwd's nearest manifest. There is no
63
- "which package?" prompt yet.
64
- - **`allstak login`** is the only path to a user JWT in beta. There is no
65
- PAT (personal access token) flow, because the backend doesn't expose one.
66
-
67
- ## What's safe to use in production
68
-
69
- - React + Vite onboarding flows.
70
- - React + CRA onboarding flows (without source-map upload — manual wiring).
71
- - Vanilla Node entry-point patching.
72
- - Next.js with manual `next.config.js` follow-up.
73
- - Expo managed workflow (`app.json` plugin entry + provider hint).
74
- - NestJS / Fastify install + env wiring + managed-block hint, with a manual
75
- `useGlobalFilters` / `app.register` call as documented in the per-framework
76
- beta page.
77
- - All commands in their `--dry-run` form (no disk writes anywhere).
78
- - `restore` / snapshot inspection (read-only ops).
79
-
80
- ## What to avoid
81
-
82
- - Running `--experimental` integrations in CI without manual review.
83
- - Deploying based on `doctor --live-probe` for Java integrations until the
84
- host-config fix lands.
85
- - Treating Astro / bare-RN as "the wizard handles it."
86
-
87
- ## Reporting an issue
88
-
89
- Re-run with `--debug` and grab the canonical `errorCode` + `subcode` from
90
- the output. Snapshot directory contents (under `.allstak-wizard/backups/`)
91
- are useful for support. Do **not** paste your full env file or
92
- `allstak.config.*` to a public issue — redact `apiKey` / DSN / refresh
93
- token values first.
@@ -1,69 +0,0 @@
1
- # NestJS
2
-
3
- **Stability:** internal experimental. AST-safe import + managed-block hint. The wizard
4
- does NOT auto-mutate `bootstrap()` to call `app.useGlobalFilters(...)` —
5
- Nest entry shapes vary too much (factory functions, custom adapters,
6
- hybrid microservice apps) and registration mid-bootstrap has high blast
7
- radius. The wizard places the import and a hint; you wire the call.
8
-
9
- ## What you get
10
-
11
- - `@allstak/nestjs` installed.
12
- - `.env` populated with `ALLSTAK_API_KEY`.
13
- - `src/main.ts` (or the entry pointed to by `package.json:scripts.start`)
14
- gets:
15
- - An AST-injected
16
- `import { AllStakNestExceptionFilter, AllStakNestInterceptor } from '@allstak/nestjs'`.
17
- - A managed-block hint demonstrating the registration call inside
18
- a `//`-comment block. `doctor` strips line comments before
19
- matching the live registration, so the hint itself does not
20
- produce a false-positive `pass`.
21
-
22
- ## Run
23
-
24
- ```bash
25
- npx @allstak/wizard@beta -i nestjs
26
- ```
27
-
28
- ## Compatibility
29
-
30
- - `@nestjs/core >= 9`. Older versions refused with `E_UNSUPPORTED_VERSION`.
31
-
32
- ## Wiring `useGlobalFilters` / `useGlobalInterceptors`
33
-
34
- Inside your `bootstrap()` after `NestFactory.create(...)`:
35
-
36
- ```ts
37
- import { NestFactory } from '@nestjs/core';
38
- import {
39
- AllStakNestExceptionFilter,
40
- AllStakNestInterceptor,
41
- } from '@allstak/nestjs';
42
- import { AppModule } from './app.module';
43
-
44
- async function bootstrap() {
45
- const app = await NestFactory.create(AppModule);
46
- app.useGlobalFilters(new AllStakNestExceptionFilter());
47
- app.useGlobalInterceptors(new AllStakNestInterceptor());
48
- await app.listen(3000);
49
- }
50
- bootstrap();
51
- ```
52
-
53
- `doctor` reports `warn` on `filter-registered` until at least one of
54
- `useGlobalFilters(...AllStakNestExceptionFilter` or
55
- `useGlobalInterceptors(...AllStakNestInterceptor` is detected in
56
- non-comment source.
57
-
58
- ## Capabilities the wizard does NOT claim
59
-
60
- - **No source-map upload wiring.** Deferred to v0.2.
61
- - **No registration-call auto-injection.** See the rationale above.
62
- - **No microservice / hybrid-app wiring.** The hint targets the standard
63
- HTTP bootstrap; for hybrid apps register filters per-microservice.
64
-
65
- ## Verify
66
-
67
- ```bash
68
- npx @allstak/wizard@beta doctor -i nestjs
69
- ```
package/docs/beta/next.md DELETED
@@ -1,76 +0,0 @@
1
- # Next.js
2
-
3
- **Stability:** stable. Runtime fail-open behavior and disposable live-backend
4
- certification have passed for supported Next.js paths. Edge Runtime and Server
5
- Actions are not certified.
6
-
7
- ## What you get
8
-
9
- - `@allstak/next` + `@allstak/js` installed.
10
- - `.env.local` populated with **both** `ALLSTAK_API_KEY` and `ALLSTAK_DSN`
11
- (`ALLSTAK_DSN` is still written during the env-var transition).
12
- - `instrumentation.ts` created at the project root if missing, otherwise a
13
- managed-block hint appended to the existing one. The wizard does NOT
14
- modify the body of an existing `register()` function.
15
- - `next.config.{js,mjs,ts}` gains a managed-block hint reminding you to
16
- wrap with `withAllStak` and enable `productionBrowserSourceMaps: true`.
17
-
18
- ## Run
19
-
20
- ```bash
21
- npx @allstak/wizard@beta -i next
22
- ```
23
-
24
- ## Compatibility
25
-
26
- - `next >= 13`. Both app router and pages router supported.
27
- - Older Next versions refused with `E_UNSUPPORTED_VERSION`.
28
-
29
- ## Wiring `register()`
30
-
31
- Wizard creates this if `instrumentation.ts` did not exist:
32
-
33
- ```ts
34
- import { initAllStakNext } from '@allstak/next';
35
-
36
- export function register() {
37
- initAllStakNext({
38
- dsn: process.env.ALLSTAK_DSN,
39
- endpoint: process.env.ALLSTAK_HOST ?? 'https://api.allstak.sa',
40
- release: process.env.ALLSTAK_RELEASE,
41
- environment: process.env.ALLSTAK_ENVIRONMENT ?? 'production',
42
- });
43
- }
44
- ```
45
-
46
- If you already have `register()`, copy the body of `initAllStakNext({ ... })`
47
- into it.
48
-
49
- ## Source maps
50
-
51
- Wrap `next.config.*` with `withAllStak`:
52
-
53
- ```js
54
- const { withAllStak } = require('@allstak/js/next');
55
- module.exports = withAllStak({
56
- ...nextConfig,
57
- productionBrowserSourceMaps: true,
58
- });
59
- ```
60
-
61
- The wizard does NOT auto-mutate `next.config.*` for you — Next configs use
62
- many factory shapes (`module.exports = (phase, { defaultConfig }) => …`) and
63
- auto-mutation has too high a blast-radius. Follow the managed-block hint.
64
-
65
- ## Known limitations
66
-
67
- - Live `doctor --live-probe` works for Next-emitted events only when your
68
- Next app runs in a place the wizard can reach. (No magic — the SDK posts
69
- to `/ingest/v1/errors` and the wizard polls `/api/v1/errors`.)
70
- - Edge Runtime and Server Actions are not certified.
71
-
72
- ## Verify
73
-
74
- ```bash
75
- npx @allstak/wizard@beta doctor -i next
76
- ```
package/docs/beta/node.md DELETED
@@ -1,60 +0,0 @@
1
- # Vanilla Node.js (`@allstak/js`)
2
-
3
- **Stability:** `stable`. Validated against fixture and dogfooded.
4
-
5
- ## What you get
6
-
7
- - `@allstak/js` SDK installed.
8
- - `.env` populated with the standard `ALLSTAK_*` vars.
9
- - AST-injected `import { AllStak } from '@allstak/js'` in your entry file.
10
- - Managed-block call to `AllStak.init({...})` appended to the entry.
11
-
12
- ## Run
13
-
14
- ```bash
15
- npx @allstak/wizard@beta -i js
16
- ```
17
-
18
- ## Entry detection
19
-
20
- The wizard looks at `package.json:scripts.start` for a `node X.js` pattern,
21
- then falls back to:
22
-
23
- - `src/index.ts` / `src/index.js`
24
- - `index.ts` / `index.js`
25
- - `app.ts` / `app.js`
26
- - `server.ts` / `server.js`
27
-
28
- If none match, the wizard skips entry patching and reports
29
- `config-only run` — env vars are still written; you need to call
30
- `AllStak.init(...)` manually.
31
-
32
- ## What the patched entry looks like
33
-
34
- After `init`, the bottom of your entry file gains:
35
-
36
- ```js
37
- // >>> allstak-wizard:v1 (do not edit) >>>
38
- AllStak.init({
39
- apiKey: process.env.ALLSTAK_API_KEY,
40
- host: process.env.ALLSTAK_HOST ?? 'https://api.allstak.sa',
41
- environment: process.env.ALLSTAK_ENVIRONMENT ?? 'production',
42
- release: process.env.ALLSTAK_RELEASE,
43
- });
44
- // <<< allstak-wizard:v1 <<<
45
- ```
46
-
47
- Re-running the wizard replaces this block in place. `uninstall` removes it.
48
-
49
- ## Compatibility
50
-
51
- - Node 18+ required by the wizard itself.
52
- - The `@allstak/js` SDK supports Node 16+.
53
- - Works with TypeScript entries via `tsx`/`bun`/`deno run` toolchains.
54
-
55
- ## What this integration does NOT do
56
-
57
- - No bundler-level source-map wiring — Node is interpreted, not bundled.
58
- - No express/fastify/hono middleware registration — those are framework-
59
- specific and live in their own integrations (`fastify` is `experimental`
60
- for now; nest/express integrations are deferred).
@@ -1,99 +0,0 @@
1
- # Privacy & telemetry
2
-
3
- The wizard ships a minimal anonymous-usage telemetry channel. This page
4
- documents **exactly** what is sent and how to disable it.
5
-
6
- ## What we send
7
-
8
- | Field | Example | Why |
9
- |-------|---------|-----|
10
- | `schemaVersion` | `1` | Stable version of this payload shape. |
11
- | `installId` | `b9c4...` | Anonymous v4 UUID stored at `~/.config/allstak/install-id`. Coalesces events for the same install. Rotate by deleting the file. |
12
- | `wizardVersion` | `0.1.3` | The wizard's own version. |
13
- | `command` | `init`, `doctor`, `restore-apply`, … | Which wizard command ran. |
14
- | `integration` | `react`, `next`, `js`, `null` | Selected integration (`null` for commands that don't have one — `login`, `restore-list`, etc.). |
15
- | `stability` | `stable`, `beta`, `experimental`, `unsupported`, `null` | Stability level of the active integration. |
16
- | `os.family` | `darwin`, `linux`, `win32` | Node's `process.platform`. |
17
- | `os.majorRelease` | `23`, `5`, `10` | Major version of the OS kernel. |
18
- | `os.arch` | `x64`, `arm64` | Process architecture. |
19
- | `node.major` | `20`, `22` | Major Node version. |
20
- | `packageManager` | `npm`, `pnpm`, `yarn`, `yarn-berry`, `bun`, `null` | Detected package manager. |
21
- | `outcome` | `success`, `failure`, `cancelled`, `noop` | Final state. |
22
- | `stage` | `auth`, `patch`, `restore`, … | Stage at termination. |
23
- | `errorCode` | `E_PATCH_FAILED`, `null` | Canonical error code; never message text. |
24
- | `rollbackTriggered` | `true`/`false` | Did an in-process rollback fire? |
25
- | `durationMs` | `4231` | Wall-clock duration. |
26
-
27
- That's the entire payload. There are no opaque "metadata" or "extras"
28
- fields.
29
-
30
- ## What we NEVER send
31
-
32
- The TypeScript type in `src/telemetry/payload.ts` is the contract. The
33
- wizard CANNOT send any of the following — there is no field for them:
34
-
35
- - API keys, DSNs, OAuth tokens, refresh tokens.
36
- - Org names, project names, project ids, org ids.
37
- - File paths (absolute or relative).
38
- - `process.env` values.
39
- - Source code from your repo.
40
- - Error message text or stack frames.
41
- - Email addresses, IP addresses, hostnames.
42
-
43
- The error code `E_PATCH_FAILED` reaches us; the patcher's stack trace and
44
- the file path it failed on do not.
45
-
46
- ## How to disable
47
-
48
- Three independent ways, any one of them is sufficient:
49
-
50
- ```bash
51
- # Per-run flag:
52
- npx @allstak/wizard@beta --no-telemetry ...
53
-
54
- # Process env:
55
- ALLSTAK_WIZARD_TELEMETRY=0 npx @allstak/wizard@beta ...
56
-
57
- # Globally for your shell:
58
- export ALLSTAK_WIZARD_TELEMETRY=0
59
- ```
60
-
61
- Disabling does NOT disable the wizard's local audit trail (snapshots in
62
- `.allstak-wizard/backups/`). Those are local-only and never sent anywhere.
63
-
64
- ## How to inspect what would be sent
65
-
66
- ```bash
67
- npx @allstak/wizard@beta --telemetry-debug -i react --dry-run
68
- ```
69
-
70
- `--telemetry-debug` prints the would-be payload to stderr instead of
71
- sending it, regardless of the gate state.
72
-
73
- ## Where the data goes
74
-
75
- - **Default provider** is `noop` — the wizard does NOT phone home in beta.
76
- `noopTelemetry` is selected unless an operator (or you) explicitly wires
77
- in `httpTelemetry({ endpoint })`. This is a deliberate beta-period
78
- posture: build the abstraction, don't quietly start collecting.
79
- - When configured: HTTPS POST of the JSON payload with a 1.5s timeout,
80
- failures swallowed.
81
-
82
- ## Credentials
83
-
84
- `allstak login` stores your JWT pair in your OS keychain (macOS / libsecret)
85
- or an AES-256-GCM encrypted file fallback. Never sent to telemetry. See
86
- `src/credentials/` for the implementation.
87
-
88
- ## Anonymous install id
89
-
90
- Stored at `~/.config/allstak/install-id` (or the platform equivalent).
91
- Generated lazily on first telemetry-emitting run. Delete the file to
92
- rotate. Telemetry-disabled runs do NOT generate or read it.
93
-
94
- ## Audit
95
-
96
- The complete payload type is at `src/telemetry/payload.ts`. The unit-test
97
- suite asserts that the runtime payload contains EXACTLY the documented
98
- fields (no more, no fewer) — adding a field requires updating both the
99
- type and this doc, and the test fails until you do.
@@ -1,89 +0,0 @@
1
- # Quickstart — `@allstak/wizard@beta`
2
-
3
- > Status: **public beta**. The wizard is honest about what works and what
4
- > doesn't — see [known limitations](./known-limitations.md) for the gaps you
5
- > need to know about before adopting.
6
-
7
- ## Install + run in one command
8
-
9
- ```bash
10
- # React (Vite or CRA)
11
- npx @allstak/wizard@beta -i react
12
-
13
- # Next.js (app or pages router; 13+)
14
- npx @allstak/wizard@beta -i next
15
-
16
- # Vanilla Node
17
- npx @allstak/wizard@beta -i js
18
- ```
19
-
20
- The wizard auto-detects your framework if you omit `-i`.
21
-
22
- ## Five-minute first run
23
-
24
- ```bash
25
- # 1. Authenticate against AllStak (email OTP).
26
- npx @allstak/wizard@beta login
27
-
28
- # 2. List your orgs and projects.
29
- npx @allstak/wizard@beta orgs list
30
- npx @allstak/wizard@beta projects list
31
-
32
- # 3. Create a project + mint an API key in one go.
33
- npx @allstak/wizard@beta projects create \
34
- --name "My App" --slug my-app \
35
- --with-api-key
36
-
37
- # 4. Run the wizard against your project.
38
- cd /path/to/my/app
39
- npx @allstak/wizard@beta # auto-detect
40
- # or:
41
- npx @allstak/wizard@beta -i next
42
-
43
- # 5. Verify the setup with a real test event.
44
- npx @allstak/wizard@beta doctor --live-probe \
45
- --api-key ask_live_... \
46
- --project-id <project-uuid>
47
- ```
48
-
49
- ## What the wizard does (in order)
50
-
51
- 1. Detects your framework + package manager.
52
- 2. Loads `allstak.config.*` if present.
53
- 3. Verifies framework version compatibility.
54
- 4. **Asks for confirmation** before any disk write (skip with `-y`).
55
- 5. Installs the right `@allstak/*` package via your package manager.
56
- 6. Writes env vars to `.env.local` / `.env` — never overwrites your values.
57
- 7. Patches your entry file (AST-injects the import; appends a managed-block
58
- hint).
59
- 8. Wires the source-map plugin into `vite.config.*` / `next.config.*`.
60
- 9. Snapshots every touched file to `.allstak-wizard/backups/<id>/`.
61
- 10. Runs a doctor pass and reports the result.
62
-
63
- ## Always reversible
64
-
65
- ```bash
66
- # Roll back the latest snapshot.
67
- npx @allstak/wizard@beta restore apply latest
68
-
69
- # Or fully uninstall.
70
- npx @allstak/wizard@beta uninstall -i react
71
- ```
72
-
73
- ## Dry-run before committing
74
-
75
- ```bash
76
- npx @allstak/wizard@beta -i react --dry-run --json | jq '.diff'
77
- ```
78
-
79
- The dry-run never touches disk.
80
-
81
- ## Next reads
82
-
83
- - [`react.md`](./react.md), [`next.md`](./next.md), [`node.md`](./node.md) — per-integration guides.
84
- - [`config.md`](./config.md) — `allstak.config.ts` precedence + migrations.
85
- - [`doctor.md`](./doctor.md) — diagnosing a setup.
86
- - [`restore.md`](./restore.md) — restoring snapshots.
87
- - [`privacy.md`](./privacy.md) — telemetry contract.
88
- - [`troubleshooting.md`](./troubleshooting.md) — common errors and fixes.
89
- - [`known-limitations.md`](./known-limitations.md) — what's NOT supported in beta.
@@ -1,91 +0,0 @@
1
- # React (Vite or CRA)
2
-
3
- **Stability:** `stable`. Validated end-to-end against fixture and dogfooded
4
- against AllStak `admin-web` and `web` packages.
5
-
6
- ## What you get
7
-
8
- - `@allstak/react` SDK installed via your package manager.
9
- - `.env.local` (Vite) or `.env` (CRA) populated with `ALLSTAK_API_KEY`,
10
- `ALLSTAK_HOST`, `ALLSTAK_ENVIRONMENT`, and (if configured) `ALLSTAK_RELEASE`.
11
- - `AllStakProvider` import added to your entry file via AST mutation.
12
- - Root render tree wrapped with a guarded `AllStakRoot` component when the
13
- wizard recognizes a standard `createRoot(...).render(...)` entry.
14
- - For Vite projects: `@allstak/react/vite` source-map helper is added to `vite.config.*`.
15
-
16
- ## Run
17
-
18
- ```bash
19
- # Auto-detect:
20
- npx @allstak/wizard@beta
21
-
22
- # Explicit:
23
- npx @allstak/wizard@beta -i react
24
-
25
- # Non-interactive (CI):
26
- npx @allstak/wizard@beta -i react -y --api-key $ALLSTAK_API_KEY \
27
- --org $ORG --project $PROJECT --release $GIT_SHA
28
- ```
29
-
30
- ## Compatibility
31
-
32
- - `react >= 16.8`. Older React versions are refused with `E_UNSUPPORTED_VERSION`.
33
- - Works with Vite 4+ and Create React App. Webpack-only setups get a
34
- managed-block hint instead of AST mutation (Webpack configs vary too much
35
- for safe AST patching in v0.1).
36
-
37
- ## Wiring the provider
38
-
39
- For standard Vite/CRA entry files, the wizard rewrites the root render tree:
40
-
41
- ```tsx
42
- import type { ReactNode } from 'react';
43
- import { AllStakProvider } from '@allstak/react';
44
-
45
- function AllStakRoot({ children }: { children: ReactNode }) {
46
- const apiKey = import.meta.env.VITE_ALLSTAK_API_KEY;
47
- if (!apiKey) return <>{children}</>;
48
- return (
49
- <AllStakProvider apiKey={apiKey} environment="production">
50
- {children}
51
- </AllStakProvider>
52
- );
53
- }
54
-
55
- ReactDOM.createRoot(document.getElementById('root')!).render(
56
- <AllStakRoot>
57
- <App />
58
- </AllStakRoot>,
59
- );
60
- ```
61
-
62
- If the wizard cannot safely identify the render call, it leaves a manual-review
63
- hint instead of risking a broken app.
64
-
65
- ## Verify
66
-
67
- ```bash
68
- npx @allstak/wizard@beta doctor -i react
69
- ```
70
-
71
- For an end-to-end ingestion check:
72
-
73
- ```bash
74
- npx @allstak/wizard@beta doctor -i react --live-probe \
75
- --api-key ask_live_... \
76
- --project-id <project-uuid>
77
- ```
78
-
79
- ## Idempotent
80
-
81
- Re-running `init` is idempotent. The wizard detects existing
82
- `AllStakProvider`/`AllStakRoot` setup and does not double-wrap the tree.
83
-
84
- ## Uninstall
85
-
86
- ```bash
87
- npx @allstak/wizard@beta uninstall -i react
88
- ```
89
-
90
- Removes the `@allstak/react` dependency, strips the AST import,
91
- deletes the managed env block, and unwires the Vite plugin.
@@ -1,33 +0,0 @@
1
- # SDK Reliability and Fail-Open Behavior
2
-
3
- AllStak SDKs must be fail-open. A customer application must keep running when
4
- AllStak ingest is slow, down, rate-limited, under maintenance, or unreachable.
5
-
6
- Default runtime guarantees for wizard-generated integrations:
7
-
8
- - SDK initialization should not block app startup.
9
- - Runtime telemetry delivery is best-effort and should not throw into customer code.
10
- - Browser and mobile telemetry uses short timeouts, bounded memory queues, and drops telemetry before it can harm app performance.
11
- - Server middleware should never wait on AllStak before returning the customer response.
12
- - HTTP instrumentation must preserve the original request behavior. If telemetry capture fails, the customer request still succeeds or fails only because of the customer system.
13
- - AllStak ingest endpoints are ignored by instrumentation to prevent recursive telemetry loops.
14
- - Source-map upload and setup-doctor failures affect CI only when the developer explicitly configures a fail-on-error build mode.
15
-
16
- Operational behavior during AllStak incidents:
17
-
18
- - DNS/TLS/connectivity failures are swallowed internally.
19
- - 5xx and 503 maintenance responses back off and eventually drop telemetry.
20
- - 429 responses should back off and avoid retry storms.
21
- - Queue overflow drops telemetry rather than growing memory without bounds.
22
- - Debug logging is opt-in. Normal applications should not see noisy AllStak transport errors.
23
-
24
- Current public status:
25
-
26
- - Stable runtime SDKs with fail-open certification: JavaScript, React, Next.js runtime, Java/Spring, Python, and Go.
27
- - Runtime SDKs with useful work but incomplete Stable proof are internal experimental only and must not appear as normal public supported SDKs.
28
- - React Native/Expo remains internal experimental until real SDK-generated mobile request continuity, emulator/device runtime proof, and mobile session timeline proof are complete.
29
- - Laravel/PHP is hidden from public Stable status. Plain PHP cannot provide the same async worker guarantees without framework/deferred queue fixtures, and Laravel middleware fixtures are not yet certified.
30
- - Flutter is hidden from public Stable status until HTTP wrapper, native crash, lifecycle hook, and app-runtime fail-open fixtures pass.
31
- - Non-JS OpenTelemetry bridges were not found in this SDK workspace. They must not be advertised as supported.
32
-
33
- When in doubt, the wizard and docs must prefer data loss over application risk.