@cardelli/ambit 0.4.3 → 0.4.5

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 (379) hide show
  1. package/README.md +4 -4
  2. package/esm/cli/commands/auth.js +5 -37
  3. package/esm/cli/commands/create/index.js +3 -3
  4. package/esm/cli/commands/deploy/index.js +83 -3
  5. package/esm/cli/commands/deploy/machine.d.ts.map +1 -1
  6. package/esm/cli/commands/destroy/app.js +1 -1
  7. package/esm/cli/commands/destroy/index.js +1 -1
  8. package/esm/cli/commands/destroy/network.d.ts.map +1 -1
  9. package/esm/cli/commands/destroy/network.js +13 -7
  10. package/esm/cli/commands/doctor.js +1 -1
  11. package/esm/cli/commands/list/apps.js +2 -2
  12. package/esm/cli/commands/list/index.js +1 -1
  13. package/esm/cli/commands/list/networks.js +2 -2
  14. package/esm/cli/commands/logs.js +1 -1
  15. package/esm/cli/commands/secrets.js +2 -2
  16. package/esm/cli/commands/share.js +2 -2
  17. package/esm/cli/commands/status/app.js +1 -1
  18. package/esm/cli/commands/status/index.js +1 -1
  19. package/esm/cli/commands/status/network.js +1 -1
  20. package/esm/cli/commands/status/networks.js +2 -2
  21. package/esm/cli/mod.js +1 -1
  22. package/esm/deno.js +1 -1
  23. package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/_layout.d.ts +5 -1
  24. package/esm/deps/jsr.io/@cliffy/table/1.1.0/_layout.d.ts.map +1 -0
  25. package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/_layout.js +101 -16
  26. package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/_utils.d.ts +6 -9
  27. package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/_utils.d.ts.map +1 -1
  28. package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/_utils.js +9 -2
  29. package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/border.d.ts.map +1 -1
  30. package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/cell.d.ts.map +1 -1
  31. package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/column.d.ts +35 -0
  32. package/esm/deps/jsr.io/@cliffy/table/1.1.0/column.d.ts.map +1 -0
  33. package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/column.js +39 -0
  34. package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/consume_words.d.ts.map +1 -1
  35. package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/mod.d.ts.map +1 -1
  36. package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/row.d.ts.map +1 -1
  37. package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/table.d.ts +47 -0
  38. package/esm/deps/jsr.io/@cliffy/table/1.1.0/table.d.ts.map +1 -0
  39. package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/table.js +55 -0
  40. package/esm/deps/jsr.io/@cliffy/table/1.1.0/unicode_width.d.ts.map +1 -0
  41. package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/unicode_width.js +15 -9
  42. package/esm/deps/jsr.io/@std/cli/1.0.29/_data.d.ts.map +1 -0
  43. package/esm/deps/jsr.io/@std/cli/{1.0.28 → 1.0.29}/_run_length.d.ts.map +1 -1
  44. package/esm/deps/jsr.io/@std/cli/{1.0.28 → 1.0.29}/mod.d.ts.map +1 -1
  45. package/esm/deps/jsr.io/@std/cli/{1.0.28 → 1.0.29}/parse_args.d.ts.map +1 -1
  46. package/esm/deps/jsr.io/@std/cli/{1.0.28 → 1.0.29}/prompt_secret.d.ts.map +1 -1
  47. package/esm/deps/jsr.io/@std/cli/{1.0.28 → 1.0.29}/prompt_secret.js +1 -1
  48. package/esm/deps/jsr.io/@std/cli/{1.0.28 → 1.0.29}/unicode_width.d.ts.map +1 -1
  49. package/esm/deps/jsr.io/@std/collections/{1.1.6 → 1.1.7}/deep_merge.d.ts.map +1 -1
  50. package/esm/deps/jsr.io/@std/fmt/1.0.10/colors.d.ts.map +1 -0
  51. package/esm/deps/jsr.io/@std/fmt/{1.0.9 → 1.0.10}/colors.js +2 -2
  52. package/esm/deps/jsr.io/@std/internal/1.0.13/_os.d.ts.map +1 -0
  53. package/esm/deps/jsr.io/@std/internal/{1.0.12 → 1.0.13}/_os.js +1 -1
  54. package/esm/deps/jsr.io/@std/internal/{1.0.12 → 1.0.13}/os.d.ts.map +1 -1
  55. package/esm/deps/jsr.io/@std/internal/{1.0.12 → 1.0.13}/os.js +1 -1
  56. package/esm/deps/jsr.io/@std/path/1.1.4/basename.js +1 -1
  57. package/esm/deps/jsr.io/@std/path/1.1.4/constants.js +1 -1
  58. package/esm/deps/jsr.io/@std/path/1.1.4/dirname.js +1 -1
  59. package/esm/deps/jsr.io/@std/path/1.1.4/extname.js +1 -1
  60. package/esm/deps/jsr.io/@std/path/1.1.4/format.js +1 -1
  61. package/esm/deps/jsr.io/@std/path/1.1.4/from_file_url.js +1 -1
  62. package/esm/deps/jsr.io/@std/path/1.1.4/glob_to_regexp.js +1 -1
  63. package/esm/deps/jsr.io/@std/path/1.1.4/is_absolute.js +1 -1
  64. package/esm/deps/jsr.io/@std/path/1.1.4/join.js +1 -1
  65. package/esm/deps/jsr.io/@std/path/1.1.4/join_globs.js +1 -1
  66. package/esm/deps/jsr.io/@std/path/1.1.4/normalize.js +1 -1
  67. package/esm/deps/jsr.io/@std/path/1.1.4/normalize_glob.js +1 -1
  68. package/esm/deps/jsr.io/@std/path/1.1.4/parse.js +1 -1
  69. package/esm/deps/jsr.io/@std/path/1.1.4/relative.js +1 -1
  70. package/esm/deps/jsr.io/@std/path/1.1.4/resolve.js +1 -1
  71. package/esm/deps/jsr.io/@std/path/1.1.4/to_file_url.js +1 -1
  72. package/esm/deps/jsr.io/@std/path/1.1.4/to_namespaced_path.js +1 -1
  73. package/esm/deps/jsr.io/@std/toml/1.0.11/_parser.js +1 -1
  74. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/index.d.ts.map +1 -1
  75. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/checks.d.ts.map +1 -1
  76. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/coerce.d.ts.map +1 -1
  77. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/compat.d.ts.map +1 -1
  78. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/errors.d.ts.map +1 -1
  79. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/errors.js +2 -2
  80. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/external.d.ts +1 -0
  81. package/esm/deps/jsr.io/@zod/zod/4.4.3/src/v4/classic/external.d.ts.map +1 -0
  82. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/from-json-schema.d.ts.map +1 -1
  83. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/from-json-schema.js +31 -16
  84. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/iso.d.ts.map +1 -1
  85. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/parse.d.ts.map +1 -1
  86. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/schemas.d.ts +42 -14
  87. package/esm/deps/jsr.io/@zod/zod/4.4.3/src/v4/classic/schemas.d.ts.map +1 -0
  88. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/schemas.js +356 -118
  89. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/api.d.ts +26 -5
  90. package/esm/deps/jsr.io/@zod/zod/4.4.3/src/v4/core/api.d.ts.map +1 -0
  91. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/api.js +7 -2
  92. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/checks.d.ts +1 -1
  93. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/checks.d.ts.map +1 -1
  94. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/core.d.ts.map +1 -1
  95. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/core.js +4 -2
  96. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/doc.d.ts.map +1 -1
  97. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/errors.d.ts +1 -0
  98. package/esm/deps/jsr.io/@zod/zod/4.4.3/src/v4/core/errors.d.ts.map +1 -0
  99. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/errors.js +26 -23
  100. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/index.d.ts.map +1 -1
  101. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/json-schema-generator.d.ts.map +1 -1
  102. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/json-schema-processors.d.ts.map +1 -1
  103. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/json-schema-processors.js +16 -20
  104. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/json-schema.d.ts.map +1 -1
  105. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/parse.d.ts.map +1 -1
  106. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/parse.js +7 -7
  107. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/regexes.d.ts +6 -0
  108. package/esm/deps/jsr.io/@zod/zod/4.4.3/src/v4/core/regexes.d.ts.map +1 -0
  109. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/regexes.js +7 -1
  110. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/registries.d.ts.map +1 -1
  111. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/schemas.d.ts +39 -1
  112. package/esm/deps/jsr.io/@zod/zod/4.4.3/src/v4/core/schemas.d.ts.map +1 -0
  113. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/schemas.js +210 -64
  114. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/standard-schema.d.ts.map +1 -1
  115. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/to-json-schema.d.ts.map +1 -1
  116. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/to-json-schema.js +12 -1
  117. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/util.d.ts +1 -0
  118. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/util.d.ts.map +1 -1
  119. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/util.js +55 -32
  120. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/versions.d.ts +1 -1
  121. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/versions.d.ts.map +1 -1
  122. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/versions.js +2 -2
  123. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ar.d.ts.map +1 -1
  124. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/az.d.ts.map +1 -1
  125. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/be.d.ts.map +1 -1
  126. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/bg.d.ts.map +1 -1
  127. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ca.d.ts.map +1 -1
  128. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/cs.d.ts.map +1 -1
  129. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/da.d.ts.map +1 -1
  130. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/de.d.ts.map +1 -1
  131. package/esm/deps/jsr.io/@zod/zod/4.4.3/src/v4/locales/el.d.ts +5 -0
  132. package/esm/deps/jsr.io/@zod/zod/4.4.3/src/v4/locales/el.d.ts.map +1 -0
  133. package/esm/deps/jsr.io/@zod/zod/4.4.3/src/v4/locales/el.js +109 -0
  134. package/esm/deps/jsr.io/@zod/zod/4.4.3/src/v4/locales/en.d.ts.map +1 -0
  135. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/en.js +4 -0
  136. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/eo.d.ts.map +1 -1
  137. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/es.d.ts.map +1 -1
  138. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/fa.d.ts.map +1 -1
  139. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/fi.d.ts.map +1 -1
  140. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/fr-CA.d.ts.map +1 -1
  141. package/esm/deps/jsr.io/@zod/zod/4.4.3/src/v4/locales/fr.d.ts.map +1 -0
  142. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/fr.js +24 -7
  143. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/he.d.ts.map +1 -1
  144. package/esm/deps/jsr.io/@zod/zod/4.4.3/src/v4/locales/hr.d.ts +5 -0
  145. package/esm/deps/jsr.io/@zod/zod/4.4.3/src/v4/locales/hr.d.ts.map +1 -0
  146. package/esm/deps/jsr.io/@zod/zod/4.4.3/src/v4/locales/hr.js +122 -0
  147. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/hu.d.ts.map +1 -1
  148. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/hy.d.ts.map +1 -1
  149. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/id.d.ts.map +1 -1
  150. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/index.d.ts +3 -0
  151. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/index.d.ts.map +1 -1
  152. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/index.js +3 -0
  153. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/is.d.ts.map +1 -1
  154. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/it.d.ts.map +1 -1
  155. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/it.js +1 -1
  156. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ja.d.ts.map +1 -1
  157. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ka.d.ts.map +1 -1
  158. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ka.js +8 -8
  159. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/kh.d.ts.map +1 -1
  160. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/km.d.ts.map +1 -1
  161. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ko.d.ts.map +1 -1
  162. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/lt.d.ts.map +1 -1
  163. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/mk.d.ts.map +1 -1
  164. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ms.d.ts.map +1 -1
  165. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/nl.d.ts.map +1 -1
  166. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/no.d.ts.map +1 -1
  167. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ota.d.ts.map +1 -1
  168. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/pl.d.ts.map +1 -1
  169. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ps.d.ts.map +1 -1
  170. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/pt.d.ts.map +1 -1
  171. package/esm/deps/jsr.io/@zod/zod/4.4.3/src/v4/locales/ro.d.ts +5 -0
  172. package/esm/deps/jsr.io/@zod/zod/4.4.3/src/v4/locales/ro.d.ts.map +1 -0
  173. package/esm/deps/jsr.io/@zod/zod/4.4.3/src/v4/locales/ro.js +119 -0
  174. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ru.d.ts.map +1 -1
  175. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/sl.d.ts.map +1 -1
  176. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/sv.d.ts.map +1 -1
  177. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ta.d.ts.map +1 -1
  178. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/th.d.ts.map +1 -1
  179. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/tr.d.ts.map +1 -1
  180. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ua.d.ts.map +1 -1
  181. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/uk.d.ts.map +1 -1
  182. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ur.d.ts.map +1 -1
  183. package/esm/deps/jsr.io/@zod/zod/4.4.3/src/v4/locales/uz.d.ts.map +1 -0
  184. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/uz.js +1 -0
  185. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/vi.d.ts.map +1 -1
  186. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/yo.d.ts.map +1 -1
  187. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/zh-CN.d.ts.map +1 -1
  188. package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/zh-TW.d.ts.map +1 -1
  189. package/esm/lib/args.d.ts +1 -0
  190. package/esm/lib/args.d.ts.map +1 -1
  191. package/esm/lib/args.js +2 -0
  192. package/esm/providers/fly.d.ts +18 -0
  193. package/esm/providers/fly.d.ts.map +1 -1
  194. package/esm/providers/fly.js +89 -22
  195. package/esm/schemas/fly.d.ts +1 -1
  196. package/esm/schemas/fly.js +1 -1
  197. package/esm/schemas/tailscale.d.ts +1 -1
  198. package/esm/schemas/tailscale.js +1 -1
  199. package/esm/util/credentials.d.ts +0 -3
  200. package/esm/util/credentials.d.ts.map +1 -1
  201. package/esm/util/credentials.js +5 -28
  202. package/esm/util/fly-token.d.ts +7 -0
  203. package/esm/util/fly-token.d.ts.map +1 -0
  204. package/esm/util/fly-token.js +50 -0
  205. package/esm/util/fly-transforms.d.ts +1 -1
  206. package/esm/util/session.d.ts.map +1 -1
  207. package/esm/util/session.js +3 -2
  208. package/esm/util/tailscale-local.d.ts +8 -0
  209. package/esm/util/tailscale-local.d.ts.map +1 -1
  210. package/esm/util/tailscale-local.js +37 -0
  211. package/package.json +1 -1
  212. package/esm/deps/jsr.io/@cliffy/table/1.0.0/_layout.d.ts.map +0 -1
  213. package/esm/deps/jsr.io/@cliffy/table/1.0.0/column.d.ts.map +0 -1
  214. package/esm/deps/jsr.io/@cliffy/table/1.0.0/table.d.ts.map +0 -1
  215. package/esm/deps/jsr.io/@cliffy/table/1.0.0/unicode_width.d.ts.map +0 -1
  216. package/esm/deps/jsr.io/@std/cli/1.0.28/_data.d.ts.map +0 -1
  217. package/esm/deps/jsr.io/@std/fmt/1.0.9/colors.d.ts.map +0 -1
  218. package/esm/deps/jsr.io/@std/internal/1.0.12/_os.d.ts.map +0 -1
  219. package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/external.d.ts.map +0 -1
  220. package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/schemas.d.ts.map +0 -1
  221. package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/api.d.ts.map +0 -1
  222. package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/errors.d.ts.map +0 -1
  223. package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/regexes.d.ts.map +0 -1
  224. package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/schemas.d.ts.map +0 -1
  225. package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/en.d.ts.map +0 -1
  226. package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/fr.d.ts.map +0 -1
  227. package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/uz.d.ts.map +0 -1
  228. /package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/border.d.ts +0 -0
  229. /package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/border.js +0 -0
  230. /package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/cell.d.ts +0 -0
  231. /package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/cell.js +0 -0
  232. /package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/consume_words.d.ts +0 -0
  233. /package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/consume_words.js +0 -0
  234. /package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/mod.d.ts +0 -0
  235. /package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/mod.js +0 -0
  236. /package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/row.d.ts +0 -0
  237. /package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/row.js +0 -0
  238. /package/esm/deps/jsr.io/@cliffy/table/{1.0.0 → 1.1.0}/unicode_width.d.ts +0 -0
  239. /package/esm/deps/jsr.io/@std/cli/{1.0.28 → 1.0.29}/_data.d.ts +0 -0
  240. /package/esm/deps/jsr.io/@std/cli/{1.0.28 → 1.0.29}/_data.js +0 -0
  241. /package/esm/deps/jsr.io/@std/cli/{1.0.28 → 1.0.29}/_run_length.d.ts +0 -0
  242. /package/esm/deps/jsr.io/@std/cli/{1.0.28 → 1.0.29}/_run_length.js +0 -0
  243. /package/esm/deps/jsr.io/@std/cli/{1.0.28 → 1.0.29}/mod.d.ts +0 -0
  244. /package/esm/deps/jsr.io/@std/cli/{1.0.28 → 1.0.29}/mod.js +0 -0
  245. /package/esm/deps/jsr.io/@std/cli/{1.0.28 → 1.0.29}/parse_args.d.ts +0 -0
  246. /package/esm/deps/jsr.io/@std/cli/{1.0.28 → 1.0.29}/parse_args.js +0 -0
  247. /package/esm/deps/jsr.io/@std/cli/{1.0.28 → 1.0.29}/prompt_secret.d.ts +0 -0
  248. /package/esm/deps/jsr.io/@std/cli/{1.0.28 → 1.0.29}/unicode_width.d.ts +0 -0
  249. /package/esm/deps/jsr.io/@std/cli/{1.0.28 → 1.0.29}/unicode_width.js +0 -0
  250. /package/esm/deps/jsr.io/@std/collections/{1.1.6 → 1.1.7}/deep_merge.d.ts +0 -0
  251. /package/esm/deps/jsr.io/@std/collections/{1.1.6 → 1.1.7}/deep_merge.js +0 -0
  252. /package/esm/deps/jsr.io/@std/fmt/{1.0.9 → 1.0.10}/colors.d.ts +0 -0
  253. /package/esm/deps/jsr.io/@std/internal/{1.0.12 → 1.0.13}/_os.d.ts +0 -0
  254. /package/esm/deps/jsr.io/@std/internal/{1.0.12 → 1.0.13}/os.d.ts +0 -0
  255. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/index.d.ts +0 -0
  256. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/index.js +0 -0
  257. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/checks.d.ts +0 -0
  258. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/checks.js +0 -0
  259. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/coerce.d.ts +0 -0
  260. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/coerce.js +0 -0
  261. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/compat.d.ts +0 -0
  262. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/compat.js +0 -0
  263. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/errors.d.ts +0 -0
  264. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/external.js +0 -0
  265. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/from-json-schema.d.ts +0 -0
  266. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/iso.d.ts +0 -0
  267. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/iso.js +0 -0
  268. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/parse.d.ts +0 -0
  269. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/classic/parse.js +0 -0
  270. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/checks.js +0 -0
  271. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/core.d.ts +0 -0
  272. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/doc.d.ts +0 -0
  273. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/doc.js +0 -0
  274. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/index.d.ts +0 -0
  275. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/index.js +0 -0
  276. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/json-schema-generator.d.ts +0 -0
  277. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/json-schema-generator.js +0 -0
  278. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/json-schema-processors.d.ts +0 -0
  279. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/json-schema.d.ts +0 -0
  280. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/json-schema.js +0 -0
  281. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/parse.d.ts +0 -0
  282. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/registries.d.ts +0 -0
  283. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/registries.js +0 -0
  284. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/standard-schema.d.ts +0 -0
  285. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/standard-schema.js +0 -0
  286. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/core/to-json-schema.d.ts +0 -0
  287. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ar.d.ts +0 -0
  288. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ar.js +0 -0
  289. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/az.d.ts +0 -0
  290. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/az.js +0 -0
  291. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/be.d.ts +0 -0
  292. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/be.js +0 -0
  293. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/bg.d.ts +0 -0
  294. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/bg.js +0 -0
  295. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ca.d.ts +0 -0
  296. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ca.js +0 -0
  297. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/cs.d.ts +0 -0
  298. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/cs.js +0 -0
  299. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/da.d.ts +0 -0
  300. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/da.js +0 -0
  301. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/de.d.ts +0 -0
  302. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/de.js +0 -0
  303. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/en.d.ts +0 -0
  304. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/eo.d.ts +0 -0
  305. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/eo.js +0 -0
  306. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/es.d.ts +0 -0
  307. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/es.js +0 -0
  308. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/fa.d.ts +0 -0
  309. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/fa.js +0 -0
  310. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/fi.d.ts +0 -0
  311. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/fi.js +0 -0
  312. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/fr-CA.d.ts +0 -0
  313. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/fr-CA.js +0 -0
  314. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/fr.d.ts +0 -0
  315. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/he.d.ts +0 -0
  316. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/he.js +0 -0
  317. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/hu.d.ts +0 -0
  318. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/hu.js +0 -0
  319. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/hy.d.ts +0 -0
  320. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/hy.js +0 -0
  321. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/id.d.ts +0 -0
  322. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/id.js +0 -0
  323. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/is.d.ts +0 -0
  324. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/is.js +0 -0
  325. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/it.d.ts +0 -0
  326. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ja.d.ts +0 -0
  327. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ja.js +0 -0
  328. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ka.d.ts +0 -0
  329. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/kh.d.ts +0 -0
  330. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/kh.js +0 -0
  331. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/km.d.ts +0 -0
  332. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/km.js +0 -0
  333. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ko.d.ts +0 -0
  334. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ko.js +0 -0
  335. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/lt.d.ts +0 -0
  336. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/lt.js +0 -0
  337. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/mk.d.ts +0 -0
  338. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/mk.js +0 -0
  339. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ms.d.ts +0 -0
  340. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ms.js +0 -0
  341. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/nl.d.ts +0 -0
  342. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/nl.js +0 -0
  343. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/no.d.ts +0 -0
  344. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/no.js +0 -0
  345. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ota.d.ts +0 -0
  346. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ota.js +0 -0
  347. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/pl.d.ts +0 -0
  348. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/pl.js +0 -0
  349. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ps.d.ts +0 -0
  350. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ps.js +0 -0
  351. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/pt.d.ts +0 -0
  352. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/pt.js +0 -0
  353. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ru.d.ts +0 -0
  354. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ru.js +0 -0
  355. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/sl.d.ts +0 -0
  356. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/sl.js +0 -0
  357. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/sv.d.ts +0 -0
  358. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/sv.js +0 -0
  359. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ta.d.ts +0 -0
  360. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ta.js +0 -0
  361. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/th.d.ts +0 -0
  362. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/th.js +0 -0
  363. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/tr.d.ts +0 -0
  364. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/tr.js +0 -0
  365. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ua.d.ts +0 -0
  366. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ua.js +0 -0
  367. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/uk.d.ts +0 -0
  368. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/uk.js +0 -0
  369. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ur.d.ts +0 -0
  370. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/ur.js +0 -0
  371. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/uz.d.ts +0 -0
  372. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/vi.d.ts +0 -0
  373. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/vi.js +0 -0
  374. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/yo.d.ts +0 -0
  375. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/yo.js +0 -0
  376. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/zh-CN.d.ts +0 -0
  377. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/zh-CN.js +0 -0
  378. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/zh-TW.d.ts +0 -0
  379. /package/esm/deps/jsr.io/@zod/zod/{4.3.6 → 4.4.3}/src/v4/locales/zh-TW.js +0 -0
package/README.md CHANGED
@@ -294,12 +294,12 @@ npx @cardelli/ambit logs my-app.lab --no-tail | less -R # scroll buffered logs
294
294
 
295
295
  ### `ambit destroy network <name>`
296
296
 
297
- Tears down a network: destroys the router, cleans up DNS, removes the Tailscale device, and automatically removes the router's tag from your Tailscale ACL policy (tagOwners and autoApprovers). If there are workload apps still on the network, ambit warns you before proceeding.
297
+ Tears down a network: destroys the router, cleans up DNS, removes the Tailscale device, and automatically removes the router's tag from your Tailscale ACL policy (`tagOwners`, `autoApprovers`, and tag-referencing access rules). If there are workload apps still on the network, ambit warns you before proceeding.
298
298
 
299
299
  | Flag | Description |
300
300
  | ----------------- | ------------------------------ |
301
301
  | `--org <org>` | Fly.io organization slug |
302
- | `--manual` | Skip automatic Tailscale ACL cleanup (tagOwners + autoApprovers) |
302
+ | `--manual` | Skip automatic Tailscale ACL cleanup |
303
303
  | `-y`, `--yes` | Skip confirmation prompts |
304
304
  | `--json` | Machine-readable JSON output |
305
305
 
@@ -340,7 +340,7 @@ Checks app health: verifies the app is deployed and running, then checks the rou
340
340
 
341
341
  ## Access Control
342
342
 
343
- By default, `ambit create` automatically adds the router's tag to your Tailscale ACL policy (`tagOwners` and `autoApprovers`). `ambit destroy network` automatically removes them. Pass `--manual` to either command to skip this and manage the policy yourself — useful if your API token lacks ACL write permission (`policy_file` scope).
343
+ By default, `ambit create` automatically adds the router's tag to your Tailscale ACL policy (`tagOwners` and `autoApprovers`). `ambit destroy network` automatically removes those entries and any access rules that reference the router tag. Pass `--manual` to either command to skip this and manage the policy yourself — useful if your API token lacks ACL write permission (`policy_file` scope).
344
344
 
345
345
  If you want to lock down which users can reach which networks, two rules do the job — one for DNS queries and one for data traffic:
346
346
 
@@ -357,7 +357,7 @@ If you want to lock down which users can reach which networks, two rules do the
357
357
  }
358
358
  ```
359
359
 
360
- These `acls` entries are never touched automatically ambit only manages `tagOwners` and `autoApprovers`.
360
+ On destroy, Ambit removes access-rule references to the router tag, such as `tag:ambit-infra:53`, before removing the tag owner. Subnet-only access rules do not reference the tag and may still need manual cleanup.
361
361
 
362
362
  ## Multiple Networks
363
363
 
@@ -2,7 +2,7 @@
2
2
  // Auth Command - Manage Fly.io and Tailscale Authentication
3
3
  // =============================================================================
4
4
  import * as dntShim from "../../_dnt.shims.js";
5
- import { parseArgs } from "../../deps/jsr.io/@std/cli/1.0.28/mod.js";
5
+ import { parseArgs } from "../../deps/jsr.io/@std/cli/1.0.29/mod.js";
6
6
  import { bold, confirm, readSecret } from "../../lib/cli.js";
7
7
  import { checkArgs } from "../../lib/args.js";
8
8
  import { createOutput } from "../../lib/output.js";
@@ -12,7 +12,6 @@ import { createTailscaleProvider } from "../../providers/tailscale.js";
12
12
  import { getCredentialStore } from "../../util/credentials.js";
13
13
  import { TAILSCALE_API_KEY_PREFIX } from "../../util/constants.js";
14
14
  import { FlyAuthSchema } from "../../schemas/fly.js";
15
- import { fileExists } from "../../lib/cli.js";
16
15
  // =============================================================================
17
16
  // Helpers
18
17
  // =============================================================================
@@ -26,15 +25,6 @@ const tryFlyWhoami = async (token) => {
26
25
  const parsed = FlyAuthSchema.safeParse(auth.value);
27
26
  return parsed.success ? parsed.data.email : null;
28
27
  };
29
- const readFlyConfigToken = async () => {
30
- const home = dntShim.Deno.env.get("HOME") || dntShim.Deno.env.get("USERPROFILE") || "";
31
- const configPath = `${home}/.fly/config.yml`;
32
- if (!(await fileExists(configPath)))
33
- return null;
34
- const content = await dntShim.Deno.readTextFile(configPath);
35
- const match = content.match(/access_token:\s*(.+)/);
36
- return match?.[1]?.trim() ?? null;
37
- };
38
28
  // =============================================================================
39
29
  // Auth Login
40
30
  // =============================================================================
@@ -59,8 +49,7 @@ ${bold("OPTIONS")}
59
49
 
60
50
  ${bold("DESCRIPTION")}
61
51
  Authenticates with both Fly.io and Tailscale. Only prompts for
62
- credentials that are missing or invalid — existing valid tokens
63
- are preserved.
52
+ credentials that are missing or invalid.
64
53
 
65
54
  ${bold("EXAMPLES")}
66
55
  ambit auth login
@@ -80,21 +69,11 @@ ${bold("EXAMPLES")}
80
69
  if (!email) {
81
70
  return out.die("Invalid Fly.io API Token");
82
71
  }
83
- await credentials.setFlyToken(args["fly-api-key"]);
84
72
  out.ok(`Authenticated as ${email}`);
85
73
  flyEmail = email;
86
74
  }
87
75
  else {
88
- // Adopt from ~/.fly/config.yml if it has a different token than the store
89
- const storedToken = await credentials.getFlyToken();
90
- const configToken = await readFlyConfigToken();
91
- const bestToken = configToken && configToken !== storedToken
92
- ? configToken
93
- : storedToken;
94
- if (bestToken && bestToken !== storedToken) {
95
- await credentials.setFlyToken(bestToken);
96
- }
97
- const bestEmail = bestToken ? await tryFlyWhoami(bestToken) : null;
76
+ const bestEmail = await tryFlyWhoami();
98
77
  if (bestEmail) {
99
78
  out.ok(`Already Authenticated as ${bestEmail}`);
100
79
  flyEmail = bestEmail;
@@ -109,15 +88,10 @@ ${bold("EXAMPLES")}
109
88
  if (!loginResult.ok) {
110
89
  return out.die("Fly.io Authentication Failed");
111
90
  }
112
- const token = await readFlyConfigToken();
113
- if (!token) {
114
- return out.die("Could Not Read Fly.io Token After Login");
115
- }
116
- const email = await tryFlyWhoami(token);
91
+ const email = await tryFlyWhoami();
117
92
  if (!email) {
118
93
  return out.die("Fly.io Authentication Verification Failed");
119
94
  }
120
- await credentials.setFlyToken(token);
121
95
  out.ok(`Authenticated as ${email}`);
122
96
  flyEmail = email;
123
97
  }
@@ -218,13 +192,7 @@ ${bold("EXAMPLES")}
218
192
  // Step 1: Fly.io
219
193
  // =========================================================================
220
194
  let flyEmail = null;
221
- const storedToken = await credentials.getFlyToken();
222
- if (storedToken) {
223
- flyEmail = await tryFlyWhoami(storedToken);
224
- }
225
- if (!flyEmail) {
226
- flyEmail = await tryFlyWhoami();
227
- }
195
+ flyEmail = await tryFlyWhoami();
228
196
  // =========================================================================
229
197
  // Step 2: Tailscale
230
198
  // =========================================================================
@@ -1,7 +1,7 @@
1
1
  // =============================================================================
2
2
  // Create Command - Create Tailscale Subnet Router on Fly.io Custom Network
3
3
  // =============================================================================
4
- import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.28/mod.js";
4
+ import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.29/mod.js";
5
5
  import { bold } from "../../../lib/cli.js";
6
6
  import { checkArgs } from "../../../lib/args.js";
7
7
  import { createOutput } from "../../../lib/output.js";
@@ -21,12 +21,12 @@ import { createTransition, hydrateCreate, reportSkipped, } from "./machine.js";
21
21
  // =============================================================================
22
22
  const stageFlyConfig = async (out, opts) => {
23
23
  out.header("Step 1: Fly.io Configuration").blank();
24
- const flyToken = await getCredentialStore().getFlyToken();
25
- const fly = createFlyProvider(flyToken ?? undefined);
24
+ const fly = createFlyProvider();
26
25
  await fly.auth.ensureInstalled();
27
26
  const email = await fly.auth.login({ interactive: !opts.json });
28
27
  out.ok(`Authenticated as ${email}`);
29
28
  const org = await resolveOrg(fly, opts, out);
29
+ await fly.auth.useOrgToken(org);
30
30
  const region = opts.region || "iad";
31
31
  out.ok(`Using Region: ${region}`);
32
32
  out.blank();
@@ -1,7 +1,7 @@
1
1
  // =============================================================================
2
2
  // Deploy Command - Safely Deploy a Workload App on a Custom Private Network
3
3
  // =============================================================================
4
- import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.28/mod.js";
4
+ import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.29/mod.js";
5
5
  import { bold } from "../../../lib/cli.js";
6
6
  import { checkArgs } from "../../../lib/args.js";
7
7
  import { createOutput } from "../../../lib/output.js";
@@ -24,6 +24,7 @@ const stageFlyConfig = async (out, opts) => {
24
24
  const email = await fly.auth.login({ interactive: !opts.json });
25
25
  out.ok(`Authenticated as ${email}`);
26
26
  const org = await resolveOrg(fly, opts, out);
27
+ await fly.auth.useOrgToken(org);
27
28
  out.blank();
28
29
  return { fly, org };
29
30
  };
@@ -84,6 +85,26 @@ const stageDeploy = async (out, fly, deployConfig, opts) => {
84
85
  image: deployConfig.image,
85
86
  config: deployConfig.configPath,
86
87
  region: opts.region,
88
+ // VM sizing
89
+ vmSize: opts.vmSize,
90
+ vmCpus: opts.vmCpus,
91
+ vmMemory: opts.vmMemory,
92
+ vmCpuKind: opts.vmCpuKind,
93
+ vmGpuKind: opts.vmGpuKind,
94
+ vmGpus: opts.vmGpus,
95
+ // Build options
96
+ dockerfile: opts.dockerfile,
97
+ buildArg: opts.buildArg,
98
+ buildSecret: opts.buildSecret,
99
+ buildTarget: opts.buildTarget,
100
+ localOnly: opts.localOnly,
101
+ remoteOnly: opts.remoteOnly,
102
+ // Deploy behavior
103
+ env: opts.env,
104
+ strategy: opts.strategy,
105
+ detach: opts.detach,
106
+ waitTimeout: opts.waitTimeout,
107
+ volumeInitialSize: opts.volumeInitialSize,
87
108
  },
88
109
  };
89
110
  const phase = await hydrateDeploy(ctx);
@@ -147,10 +168,24 @@ const deploy = async (argv) => {
147
168
  "config",
148
169
  "main-port",
149
170
  "template",
171
+ // VM sizing
172
+ "vm-size",
173
+ "vm-cpus",
174
+ "vm-memory",
175
+ "vm-cpu-kind",
176
+ "vm-gpu-kind",
177
+ "vm-gpus",
178
+ // Build options
179
+ "dockerfile",
180
+ "build-target",
181
+ "strategy",
182
+ "wait-timeout",
183
+ "volume-initial-size",
150
184
  ],
151
- boolean: ["help", "yes", "json"],
152
- alias: { y: "yes" },
185
+ boolean: ["help", "yes", "json", "local-only", "remote-only", "detach"],
186
+ alias: { y: "yes", e: "env" },
153
187
  default: { "main-port": "80" },
188
+ collect: ["build-arg", "build-secret", "env"],
154
189
  };
155
190
  const args = parseArgs(argv, opts);
156
191
  checkArgs(args, opts, "ambit deploy", 1);
@@ -199,6 +234,29 @@ ${bold("TEMPLATE MODE")}
199
234
  owner/repo/path@branch Fetch a specific branch
200
235
  owner/repo/path@commit Fetch a specific commit
201
236
 
237
+ ${bold("VM SIZING")}
238
+ --vm-size <size> VM size preset (see "fly platform vm-sizes")
239
+ --vm-cpus <n> Number of CPUs
240
+ --vm-memory <mb> Memory in megabytes
241
+ --vm-cpu-kind <kind> CPU kind: "shared" or "performance"
242
+ --vm-gpu-kind <model> GPU model (a100-pcie-40gb, a100-sxm4-80gb, l40s, a10)
243
+ --vm-gpus <n> Number of GPUs
244
+
245
+ ${bold("BUILD OPTIONS")} (config/template mode only)
246
+ --dockerfile <path> Path to Dockerfile
247
+ --build-arg <K=V> Build-time variable (repeatable)
248
+ --build-secret <K=V> Build-time secret (repeatable)
249
+ --build-target <stage> Target build stage for multi-stage Dockerfiles
250
+ --local-only Build locally using local Docker daemon
251
+ --remote-only Build on remote builder (default)
252
+
253
+ ${bold("DEPLOY BEHAVIOR")}
254
+ -e, --env <K=V> Environment variable (repeatable)
255
+ --strategy <name> Deploy strategy: canary, rolling, bluegreen, immediate
256
+ --detach Return immediately without monitoring
257
+ --wait-timeout <dur> Time to wait for machines to become healthy (default: 5m0s)
258
+ --volume-initial-size <gb> Initial volume size in GB on first deploy
259
+
202
260
  ${bold("SAFETY")}
203
261
  Always deploys with --no-public-ips and --flycast.
204
262
  Post-deploy audit releases any public IPs and verifies Flycast allocation.
@@ -275,6 +333,28 @@ ${bold("EXAMPLES")}
275
333
  routerId,
276
334
  flyAppName,
277
335
  routerPrivateIp,
336
+ // VM sizing
337
+ vmSize: args["vm-size"],
338
+ vmCpus: args["vm-cpus"] ? Number(args["vm-cpus"]) : undefined,
339
+ vmMemory: args["vm-memory"],
340
+ vmCpuKind: args["vm-cpu-kind"],
341
+ vmGpuKind: args["vm-gpu-kind"],
342
+ vmGpus: args["vm-gpus"] ? Number(args["vm-gpus"]) : undefined,
343
+ // Build options
344
+ dockerfile: args.dockerfile,
345
+ buildArg: args["build-arg"],
346
+ buildSecret: args["build-secret"],
347
+ buildTarget: args["build-target"],
348
+ localOnly: args["local-only"],
349
+ remoteOnly: args["remote-only"],
350
+ // Deploy behavior
351
+ env: args.env,
352
+ strategy: args.strategy,
353
+ detach: args.detach,
354
+ waitTimeout: args["wait-timeout"],
355
+ volumeInitialSize: args["volume-initial-size"]
356
+ ? Number(args["volume-initial-size"])
357
+ : undefined,
278
358
  });
279
359
  };
280
360
  // =============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"machine.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deploy/machine.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM/C,MAAM,MAAM,WAAW,GACnB,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,OAAO,GACP,UAAU,CAAC;AAMf,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE;QACL,mBAAmB,EAAE,MAAM,CAAC;QAC5B,aAAa,EAAE,MAAM,CAAC;QACtB,mBAAmB,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjE,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,SAAS,EAAE;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,WAAW,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,iBAAiB,CAAC;IACjC,KAAK,CAAC,EAAE;QACN,mBAAmB,EAAE,MAAM,CAAC;QAC5B,aAAa,EAAE,MAAM,CAAC;QACtB,mBAAmB,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjE,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAaD,eAAO,MAAM,mBAAmB,GAC9B,KAAK,MAAM,CAAC,YAAY,CAAC,EACzB,YAAY,WAAW,SAMxB,CAAC;AAMF,eAAO,MAAM,aAAa,GACxB,KAAK,SAAS,KACb,OAAO,CAAC,WAAW,CAMrB,CAAC;AAMF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,WAAW,EAClB,KAAK,SAAS,KACb,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAiH7B,CAAC"}
1
+ {"version":3,"file":"machine.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deploy/machine.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM/C,MAAM,MAAM,WAAW,GACnB,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,OAAO,GACP,UAAU,CAAC;AAMf,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE;QACL,mBAAmB,EAAE,MAAM,CAAC;QAC5B,aAAa,EAAE,MAAM,CAAC;QACtB,mBAAmB,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjE,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,SAAS,EAAE;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,WAAW,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,iBAAiB,CAAC;IACjC,KAAK,CAAC,EAAE;QACN,mBAAmB,EAAE,MAAM,CAAC;QAC5B,aAAa,EAAE,MAAM,CAAC;QACtB,mBAAmB,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjE,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAaD,eAAO,MAAM,mBAAmB,GAC9B,KAAK,MAAM,CAAC,YAAY,CAAC,EACzB,YAAY,WAAW,SAMxB,CAAC;AAMF,eAAO,MAAM,aAAa,GACxB,KAAK,SAAS,KACb,OAAO,CAAC,WAAW,CAMrB,CAAC;AAMF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,WAAW,EAClB,KAAK,SAAS,KACb,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAmH7B,CAAC"}
@@ -1,7 +1,7 @@
1
1
  // =============================================================================
2
2
  // Destroy App — Destroy a Workload App on a Network
3
3
  // =============================================================================
4
- import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.28/mod.js";
4
+ import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.29/mod.js";
5
5
  import { bold, confirm } from "../../../lib/cli.js";
6
6
  import { checkArgs } from "../../../lib/args.js";
7
7
  import { createOutput } from "../../../lib/output.js";
@@ -2,7 +2,7 @@
2
2
  // Destroy Command - Destroy Networks or Apps
3
3
  // =============================================================================
4
4
  import * as dntShim from "../../../_dnt.shims.js";
5
- import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.28/mod.js";
5
+ import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.29/mod.js";
6
6
  import { bold } from "../../../lib/cli.js";
7
7
  import { checkArgs } from "../../../lib/args.js";
8
8
  import { registerCommand } from "../../mod.js";
@@ -1 +1 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/destroy/network.ts"],"names":[],"mappings":"AAuVA,eAAO,MAAM,cAAc,GAAU,MAAM,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CA0DjE,CAAC"}
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/destroy/network.ts"],"names":[],"mappings":"AA8VA,eAAO,MAAM,cAAc,GAAU,MAAM,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CA2DjE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  // =============================================================================
2
2
  // Destroy Network — Tear Down Router and Clean Up Tailnet
3
3
  // =============================================================================
4
- import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.28/mod.js";
4
+ import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.29/mod.js";
5
5
  import { bold, confirm } from "../../../lib/cli.js";
6
6
  import { checkArgs } from "../../../lib/args.js";
7
7
  import { createOutput } from "../../../lib/output.js";
@@ -9,7 +9,7 @@ import { Result } from "../../../lib/result.js";
9
9
  import { runMachine } from "../../../lib/machine.js";
10
10
  import { findRouterApp, listWorkloadAppsOnNetwork } from "../../../util/discovery.js";
11
11
  import { getRouterTag } from "../../../util/naming.js";
12
- import { isAutoApproverConfigured, isTagOwnerConfigured, unpatchAutoApprover, unpatchTagOwner, } from "../../../util/tailscale-local.js";
12
+ import { isAutoApproverConfigured, isTagOwnerConfigured, unpatchAclTagReferences, unpatchAutoApprover, unpatchTagOwner, } from "../../../util/tailscale-local.js";
13
13
  import { initSession } from "../../../util/session.js";
14
14
  // =============================================================================
15
15
  // Phase Labels
@@ -120,6 +120,11 @@ const destroyNetworkTransition = async (phase, ctx) => {
120
120
  return Result.ok("complete");
121
121
  }
122
122
  let changed = false;
123
+ const withoutAclRefs = unpatchAclTagReferences(policy, tag);
124
+ if (withoutAclRefs !== policy) {
125
+ policy = withoutAclRefs;
126
+ changed = true;
127
+ }
123
128
  if (isTagOwnerConfigured(policy, tag)) {
124
129
  policy = unpatchTagOwner(policy, tag);
125
130
  changed = true;
@@ -195,8 +200,8 @@ const stageSummary = (out, ctx) => {
195
200
  const tag = ctx.tag || getRouterTag(ctx.network);
196
201
  if (!ctx.manual) {
197
202
  out.blank()
198
- .dim("If You Added ACL Rules Referencing This Router, Remember to Remove:")
199
- .dim(` acls: rules referencing ${tag}`)
203
+ .dim("If You Added Subnet-Only ACL Rules for This Router, Remember to Remove:")
204
+ .dim(` acls: rules for this network's subnet`)
200
205
  .blank();
201
206
  }
202
207
  else if (ctx.tag) {
@@ -235,14 +240,15 @@ ${bold("USAGE")}
235
240
 
236
241
  ${bold("OPTIONS")}
237
242
  --org <org> Fly.io organization slug
238
- --manual Skip automatic Tailscale ACL cleanup (tagOwners + autoApprovers)
243
+ --manual Skip automatic Tailscale ACL cleanup
239
244
  -y, --yes Skip confirmation prompts
240
245
  --json Output as JSON
241
246
 
242
247
  ${bold("DESCRIPTION")}
243
248
  By default, ambit removes the router's tag from your Tailscale ACL
244
- policy (tagOwners and autoApprovers). Use --manual if your API token
245
- lacks ACL write permission or you prefer to manage the policy yourself.
249
+ policy (tagOwners, autoApprovers, and tag-referencing access rules).
250
+ Use --manual if your API token lacks ACL write permission or you prefer
251
+ to manage the policy yourself.
246
252
 
247
253
  ${bold("EXAMPLES")}
248
254
  ambit destroy network browsers
@@ -1,7 +1,7 @@
1
1
  // =============================================================================
2
2
  // Doctor Command - Verify Environment and Infrastructure Health
3
3
  // =============================================================================
4
- import { parseArgs } from "../../deps/jsr.io/@std/cli/1.0.28/mod.js";
4
+ import { parseArgs } from "../../deps/jsr.io/@std/cli/1.0.29/mod.js";
5
5
  import { bold } from "../../lib/cli.js";
6
6
  import { checkArgs } from "../../lib/args.js";
7
7
  import { createOutput } from "../../lib/output.js";
@@ -1,8 +1,8 @@
1
1
  // =============================================================================
2
2
  // List Apps — List All Workload Apps on a Network
3
3
  // =============================================================================
4
- import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.28/mod.js";
5
- import { Table } from "../../../deps/jsr.io/@cliffy/table/1.0.0/mod.js";
4
+ import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.29/mod.js";
5
+ import { Table } from "../../../deps/jsr.io/@cliffy/table/1.1.0/mod.js";
6
6
  import { bold } from "../../../lib/cli.js";
7
7
  import { checkArgs } from "../../../lib/args.js";
8
8
  import { createOutput } from "../../../lib/output.js";
@@ -2,7 +2,7 @@
2
2
  // List Command - List Networks or Apps
3
3
  // =============================================================================
4
4
  import * as dntShim from "../../../_dnt.shims.js";
5
- import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.28/mod.js";
5
+ import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.29/mod.js";
6
6
  import { bold } from "../../../lib/cli.js";
7
7
  import { checkArgs } from "../../../lib/args.js";
8
8
  import { registerCommand } from "../../mod.js";
@@ -1,8 +1,8 @@
1
1
  // =============================================================================
2
2
  // List Networks — List All Discovered Routers Across Networks
3
3
  // =============================================================================
4
- import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.28/mod.js";
5
- import { Table } from "../../../deps/jsr.io/@cliffy/table/1.0.0/mod.js";
4
+ import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.29/mod.js";
5
+ import { Table } from "../../../deps/jsr.io/@cliffy/table/1.1.0/mod.js";
6
6
  import { bold } from "../../../lib/cli.js";
7
7
  import { checkArgs } from "../../../lib/args.js";
8
8
  import { createOutput } from "../../../lib/output.js";
@@ -1,7 +1,7 @@
1
1
  // =============================================================================
2
2
  // Logs Command - Stream Logs for Workload Apps
3
3
  // =============================================================================
4
- import { parseArgs } from "../../deps/jsr.io/@std/cli/1.0.28/mod.js";
4
+ import { parseArgs } from "../../deps/jsr.io/@std/cli/1.0.29/mod.js";
5
5
  import { bold } from "../../lib/cli.js";
6
6
  import { checkArgs } from "../../lib/args.js";
7
7
  import { createOutput } from "../../lib/output.js";
@@ -2,8 +2,8 @@
2
2
  // Secrets Command - Manage Secrets for Workload Apps
3
3
  // =============================================================================
4
4
  import * as dntShim from "../../_dnt.shims.js";
5
- import { parseArgs } from "../../deps/jsr.io/@std/cli/1.0.28/mod.js";
6
- import { Table } from "../../deps/jsr.io/@cliffy/table/1.0.0/mod.js";
5
+ import { parseArgs } from "../../deps/jsr.io/@std/cli/1.0.29/mod.js";
6
+ import { Table } from "../../deps/jsr.io/@cliffy/table/1.1.0/mod.js";
7
7
  import { bold } from "../../lib/cli.js";
8
8
  import { checkArgs } from "../../lib/args.js";
9
9
  import { createOutput } from "../../lib/output.js";
@@ -1,12 +1,12 @@
1
1
  // =============================================================================
2
2
  // Share Command - Grant Members Access to a Network via Tailscale ACL
3
3
  // =============================================================================
4
- import { parseArgs } from "../../deps/jsr.io/@std/cli/1.0.28/mod.js";
4
+ import { parseArgs } from "../../deps/jsr.io/@std/cli/1.0.29/mod.js";
5
5
  import { bold } from "../../lib/cli.js";
6
6
  import { checkArgs } from "../../lib/args.js";
7
7
  import { createOutput } from "../../lib/output.js";
8
8
  import { registerCommand } from "../mod.js";
9
- import { z } from "../../deps/jsr.io/@zod/zod/4.3.6/src/index.js";
9
+ import { z } from "../../deps/jsr.io/@zod/zod/4.4.3/src/index.js";
10
10
  import { findRouterApp, getRouterMachineInfo } from "../../util/discovery.js";
11
11
  import { getRouterTag } from "../../util/naming.js";
12
12
  import { assertAdditivePatch, isAclRuleConfigured, patchAclRule, } from "../../util/tailscale-local.js";
@@ -1,7 +1,7 @@
1
1
  // =============================================================================
2
2
  // Status App — Show App Status
3
3
  // =============================================================================
4
- import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.28/mod.js";
4
+ import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.29/mod.js";
5
5
  import { bold } from "../../../lib/cli.js";
6
6
  import { checkArgs } from "../../../lib/args.js";
7
7
  import { createOutput } from "../../../lib/output.js";
@@ -1,7 +1,7 @@
1
1
  // =============================================================================
2
2
  // Status Command - Show Network, App, and Router Status
3
3
  // =============================================================================
4
- import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.28/mod.js";
4
+ import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.29/mod.js";
5
5
  import { bold } from "../../../lib/cli.js";
6
6
  import { checkArgs } from "../../../lib/args.js";
7
7
  import { registerCommand } from "../../mod.js";
@@ -1,7 +1,7 @@
1
1
  // =============================================================================
2
2
  // Status Network — Show Detailed Status for a Single Network
3
3
  // =============================================================================
4
- import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.28/mod.js";
4
+ import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.29/mod.js";
5
5
  import { bold } from "../../../lib/cli.js";
6
6
  import { checkArgs } from "../../../lib/args.js";
7
7
  import { createOutput } from "../../../lib/output.js";
@@ -1,8 +1,8 @@
1
1
  // =============================================================================
2
2
  // Status Networks — Summary Table of All Networks
3
3
  // =============================================================================
4
- import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.28/mod.js";
5
- import { Table } from "../../../deps/jsr.io/@cliffy/table/1.0.0/mod.js";
4
+ import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.29/mod.js";
5
+ import { Table } from "../../../deps/jsr.io/@cliffy/table/1.1.0/mod.js";
6
6
  import { bold } from "../../../lib/cli.js";
7
7
  import { checkArgs } from "../../../lib/args.js";
8
8
  import { createOutput } from "../../../lib/output.js";
package/esm/cli/mod.js CHANGED
@@ -2,7 +2,7 @@
2
2
  // CLI Framework - Command Parser and Router
3
3
  // =============================================================================
4
4
  import * as dntShim from "../_dnt.shims.js";
5
- import { parseArgs } from "../deps/jsr.io/@std/cli/1.0.28/mod.js";
5
+ import { parseArgs } from "../deps/jsr.io/@std/cli/1.0.29/mod.js";
6
6
  import { bold, dim } from "../lib/cli.js";
7
7
  import denoConfig from "../deno.js";
8
8
  // =============================================================================
package/esm/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "@cardelli/ambit",
3
- "version": "0.4.3",
3
+ "version": "0.4.5",
4
4
  "description": "Deploy apps to the cloud that only you and your AI agents can reach",
5
5
  "license": "MIT",
6
6
  "tasks": {
@@ -30,12 +30,16 @@ export declare class TableLayout {
30
30
  * settings.
31
31
  */
32
32
  protected createLayout(): RenderSettings;
33
+ private computeColumnDimensions;
34
+ private applyFlexShrink;
35
+ private applyFlexGrow;
36
+ private resolveColumnWeight;
33
37
  /**
34
38
  * Fills rows and cols by specified row/col span with a reference of the
35
39
  * original cell.
36
40
  */
37
41
  protected spanRows(rows: Array<RowType>): Array<Row<Cell>>;
38
- protected getDeleteCount(rows: Array<Array<unknown>>, rowIndex: number, colIndex: number): 1 | 0;
42
+ protected getDeleteCount(rows: Array<Array<unknown>>, rowIndex: number, colIndex: number): 0 | 1;
39
43
  /**
40
44
  * Create a new row from existing row or cell array.
41
45
  * @param row Original row.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_layout.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@cliffy/table/1.1.0/_layout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,KAAK,QAAQ,EAAkB,MAAM,WAAW,CAAC;AAEhE,OAAO,EAAE,GAAG,EAAE,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAiB,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAMtE,8BAA8B;AAC9B,UAAU,cAAc;IACtB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;CACxB;AASD,6BAA6B;AAC7B,qBAAa,WAAW;;IAOpB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,OAAO;IAPjB;;;;OAIG;gBAEO,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,aAAa;IAGhC,6BAA6B;IACtB,QAAQ,IAAI,MAAM;IAKzB;;;;OAIG;IACH,SAAS,CAAC,YAAY,IAAI,cAAc;IA0DxC,OAAO,CAAC,uBAAuB;IAsC/B,OAAO,CAAC,eAAe;IA6CvB,OAAO,CAAC,aAAa;IAsCrB,OAAO,CAAC,mBAAmB;IAwC3B;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IA4D1D,SAAS,CAAC,cAAc,CACtB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAC3B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,CAAC,GAAG,CAAC;IAOR;;;OAGG;IACH,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;IAM5C;;;;;;;OAOG;IACH,SAAS,CAAC,UAAU,CAClB,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,EACjC,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,IAAI;IAcP,OAAO,CAAC,WAAW;IAInB;;;OAGG;IACH,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IAWlD;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,CACjB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EACtB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,EACpB,WAAW,CAAC,EAAE,OAAO,GACpB,MAAM;IAwET;;;;;;OAMG;IACH,SAAS,CAAC,UAAU,CAClB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,EACd,IAAI,EAAE,cAAc,EACpB,QAAQ,CAAC,EAAE,OAAO,GACjB,MAAM;IAqDT;;;;;OAKG;IACH,SAAS,CAAC,eAAe,CACvB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,GAChB;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAgDpC;;;;;;OAMG;IACH,SAAS,CAAC,eAAe,CACvB,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,EAC9B,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,EAC9B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EACtB,IAAI,EAAE,cAAc,GACnB,MAAM;IA2BT;;;;;;;OAOG;IACH,SAAS,CAAC,gBAAgB,CACxB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,EAC9B,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,EAC9B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EACtB,IAAI,EAAE,cAAc,GACnB,MAAM;CAoJV"}