@endora-commerce/cli 0.100.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (356) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +37 -0
  3. package/dist/bin/endora.d.ts +28 -0
  4. package/dist/bin/endora.d.ts.map +1 -0
  5. package/dist/bin/endora.js +926 -0
  6. package/dist/bin/endora.js.map +1 -0
  7. package/dist/check/estate.d.ts +189 -0
  8. package/dist/check/estate.d.ts.map +1 -0
  9. package/dist/check/estate.js +1037 -0
  10. package/dist/check/estate.js.map +1 -0
  11. package/dist/check/hosts.d.ts +25 -0
  12. package/dist/check/hosts.d.ts.map +1 -0
  13. package/dist/check/hosts.js +1347 -0
  14. package/dist/check/hosts.js.map +1 -0
  15. package/dist/check/index.d.ts +60 -0
  16. package/dist/check/index.d.ts.map +1 -0
  17. package/dist/check/index.js +111 -0
  18. package/dist/check/index.js.map +1 -0
  19. package/dist/check/layout.d.ts +136 -0
  20. package/dist/check/layout.d.ts.map +1 -0
  21. package/dist/check/layout.js +262 -0
  22. package/dist/check/layout.js.map +1 -0
  23. package/dist/check/ledger.d.ts +98 -0
  24. package/dist/check/ledger.d.ts.map +1 -0
  25. package/dist/check/ledger.js +173 -0
  26. package/dist/check/ledger.js.map +1 -0
  27. package/dist/check/peer-owners.d.ts +116 -0
  28. package/dist/check/peer-owners.d.ts.map +1 -0
  29. package/dist/check/peer-owners.js +225 -0
  30. package/dist/check/peer-owners.js.map +1 -0
  31. package/dist/check/report.d.ts +33 -0
  32. package/dist/check/report.d.ts.map +1 -0
  33. package/dist/check/report.js +107 -0
  34. package/dist/check/report.js.map +1 -0
  35. package/dist/check/run.d.ts +147 -0
  36. package/dist/check/run.d.ts.map +1 -0
  37. package/dist/check/run.js +111 -0
  38. package/dist/check/run.js.map +1 -0
  39. package/dist/checks.d.ts +17 -0
  40. package/dist/checks.d.ts.map +1 -0
  41. package/dist/checks.js +17 -0
  42. package/dist/checks.js.map +1 -0
  43. package/dist/dev/index.d.ts +83 -0
  44. package/dist/dev/index.d.ts.map +1 -0
  45. package/dist/dev/index.js +298 -0
  46. package/dist/dev/index.js.map +1 -0
  47. package/dist/generate/divergence.d.ts +38 -0
  48. package/dist/generate/divergence.d.ts.map +1 -0
  49. package/dist/generate/divergence.js +237 -0
  50. package/dist/generate/divergence.js.map +1 -0
  51. package/dist/generate/index.d.ts +90 -0
  52. package/dist/generate/index.d.ts.map +1 -0
  53. package/dist/generate/index.js +369 -0
  54. package/dist/generate/index.js.map +1 -0
  55. package/dist/index.d.ts +23 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +35 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/inputs/declaration.d.ts +18 -0
  60. package/dist/inputs/declaration.d.ts.map +1 -0
  61. package/dist/inputs/declaration.js +64 -0
  62. package/dist/inputs/declaration.js.map +1 -0
  63. package/dist/inputs/env-file.d.ts +73 -0
  64. package/dist/inputs/env-file.d.ts.map +1 -0
  65. package/dist/inputs/env-file.js +134 -0
  66. package/dist/inputs/env-file.js.map +1 -0
  67. package/dist/inputs/prompt.d.ts +21 -0
  68. package/dist/inputs/prompt.d.ts.map +1 -0
  69. package/dist/inputs/prompt.js +59 -0
  70. package/dist/inputs/prompt.js.map +1 -0
  71. package/dist/inputs/resolve.d.ts +163 -0
  72. package/dist/inputs/resolve.d.ts.map +1 -0
  73. package/dist/inputs/resolve.js +290 -0
  74. package/dist/inputs/resolve.js.map +1 -0
  75. package/dist/install/host.d.ts +27 -0
  76. package/dist/install/host.d.ts.map +1 -0
  77. package/dist/install/host.js +90 -0
  78. package/dist/install/host.js.map +1 -0
  79. package/dist/install/index.d.ts +173 -0
  80. package/dist/install/index.d.ts.map +1 -0
  81. package/dist/install/index.js +793 -0
  82. package/dist/install/index.js.map +1 -0
  83. package/dist/install/wizard.d.ts +144 -0
  84. package/dist/install/wizard.d.ts.map +1 -0
  85. package/dist/install/wizard.js +362 -0
  86. package/dist/install/wizard.js.map +1 -0
  87. package/dist/lib/admin-artefacts.d.ts +70 -0
  88. package/dist/lib/admin-artefacts.d.ts.map +1 -0
  89. package/dist/lib/admin-artefacts.js +354 -0
  90. package/dist/lib/admin-artefacts.js.map +1 -0
  91. package/dist/lib/admin-surfaces.d.ts +298 -0
  92. package/dist/lib/admin-surfaces.d.ts.map +1 -0
  93. package/dist/lib/admin-surfaces.js +669 -0
  94. package/dist/lib/admin-surfaces.js.map +1 -0
  95. package/dist/lib/delegated-composer.d.ts +85 -0
  96. package/dist/lib/delegated-composer.d.ts.map +1 -0
  97. package/dist/lib/delegated-composer.js +241 -0
  98. package/dist/lib/delegated-composer.js.map +1 -0
  99. package/dist/lib/divergence-artefacts.d.ts +305 -0
  100. package/dist/lib/divergence-artefacts.d.ts.map +1 -0
  101. package/dist/lib/divergence-artefacts.js +828 -0
  102. package/dist/lib/divergence-artefacts.js.map +1 -0
  103. package/dist/lib/divergence.d.ts +337 -0
  104. package/dist/lib/divergence.d.ts.map +1 -0
  105. package/dist/lib/divergence.js +1005 -0
  106. package/dist/lib/divergence.js.map +1 -0
  107. package/dist/lib/docs-artefacts.d.ts +395 -0
  108. package/dist/lib/docs-artefacts.d.ts.map +1 -0
  109. package/dist/lib/docs-artefacts.js +781 -0
  110. package/dist/lib/docs-artefacts.js.map +1 -0
  111. package/dist/lib/emitted-exports.d.ts +21 -0
  112. package/dist/lib/emitted-exports.d.ts.map +1 -0
  113. package/dist/lib/emitted-exports.js +96 -0
  114. package/dist/lib/emitted-exports.js.map +1 -0
  115. package/dist/lib/emitted-freshness.d.ts +112 -0
  116. package/dist/lib/emitted-freshness.d.ts.map +1 -0
  117. package/dist/lib/emitted-freshness.js +288 -0
  118. package/dist/lib/emitted-freshness.js.map +1 -0
  119. package/dist/lib/entity-index-artefact.d.ts +95 -0
  120. package/dist/lib/entity-index-artefact.d.ts.map +1 -0
  121. package/dist/lib/entity-index-artefact.js +210 -0
  122. package/dist/lib/entity-index-artefact.js.map +1 -0
  123. package/dist/lib/instance-build-inputs.d.ts +108 -0
  124. package/dist/lib/instance-build-inputs.d.ts.map +1 -0
  125. package/dist/lib/instance-build-inputs.js +165 -0
  126. package/dist/lib/instance-build-inputs.js.map +1 -0
  127. package/dist/lib/module-docs.d.ts +473 -0
  128. package/dist/lib/module-docs.d.ts.map +1 -0
  129. package/dist/lib/module-docs.js +711 -0
  130. package/dist/lib/module-docs.js.map +1 -0
  131. package/dist/lib/module-package-subpaths.d.ts +56 -0
  132. package/dist/lib/module-package-subpaths.d.ts.map +1 -0
  133. package/dist/lib/module-package-subpaths.js +223 -0
  134. package/dist/lib/module-package-subpaths.js.map +1 -0
  135. package/dist/lib/module-packages.d.ts +200 -0
  136. package/dist/lib/module-packages.d.ts.map +1 -0
  137. package/dist/lib/module-packages.js +580 -0
  138. package/dist/lib/module-packages.js.map +1 -0
  139. package/dist/lib/module-population.d.ts +129 -0
  140. package/dist/lib/module-population.d.ts.map +1 -0
  141. package/dist/lib/module-population.js +172 -0
  142. package/dist/lib/module-population.js.map +1 -0
  143. package/dist/lib/module-roots.d.ts +337 -0
  144. package/dist/lib/module-roots.d.ts.map +1 -0
  145. package/dist/lib/module-roots.js +586 -0
  146. package/dist/lib/module-roots.js.map +1 -0
  147. package/dist/lib/nested-checkouts.d.ts +33 -0
  148. package/dist/lib/nested-checkouts.d.ts.map +1 -0
  149. package/dist/lib/nested-checkouts.js +160 -0
  150. package/dist/lib/nested-checkouts.js.map +1 -0
  151. package/dist/lib/platform-root.d.ts +43 -0
  152. package/dist/lib/platform-root.d.ts.map +1 -0
  153. package/dist/lib/platform-root.js +134 -0
  154. package/dist/lib/platform-root.js.map +1 -0
  155. package/dist/lib/platform-surface.d.ts +235 -0
  156. package/dist/lib/platform-surface.d.ts.map +1 -0
  157. package/dist/lib/platform-surface.js +393 -0
  158. package/dist/lib/platform-surface.js.map +1 -0
  159. package/dist/lib/port-registrations.d.ts +223 -0
  160. package/dist/lib/port-registrations.d.ts.map +1 -0
  161. package/dist/lib/port-registrations.js +532 -0
  162. package/dist/lib/port-registrations.js.map +1 -0
  163. package/dist/lib/read-size.d.ts +154 -0
  164. package/dist/lib/read-size.d.ts.map +1 -0
  165. package/dist/lib/read-size.js +182 -0
  166. package/dist/lib/read-size.js.map +1 -0
  167. package/dist/lib/registration-owners.d.ts +79 -0
  168. package/dist/lib/registration-owners.d.ts.map +1 -0
  169. package/dist/lib/registration-owners.js +77 -0
  170. package/dist/lib/registration-owners.js.map +1 -0
  171. package/dist/lib/release-index.d.ts +53 -0
  172. package/dist/lib/release-index.d.ts.map +1 -0
  173. package/dist/lib/release-index.js +162 -0
  174. package/dist/lib/release-index.js.map +1 -0
  175. package/dist/lib/repeating-timers.d.ts +79 -0
  176. package/dist/lib/repeating-timers.d.ts.map +1 -0
  177. package/dist/lib/repeating-timers.js +189 -0
  178. package/dist/lib/repeating-timers.js.map +1 -0
  179. package/dist/lib/source-text.d.ts +34 -0
  180. package/dist/lib/source-text.d.ts.map +1 -0
  181. package/dist/lib/source-text.js +80 -0
  182. package/dist/lib/source-text.js.map +1 -0
  183. package/dist/lib/specifiers.d.ts +20 -0
  184. package/dist/lib/specifiers.d.ts.map +1 -0
  185. package/dist/lib/specifiers.js +130 -0
  186. package/dist/lib/specifiers.js.map +1 -0
  187. package/dist/lib/sql-tables.d.ts +166 -0
  188. package/dist/lib/sql-tables.d.ts.map +1 -0
  189. package/dist/lib/sql-tables.js +464 -0
  190. package/dist/lib/sql-tables.js.map +1 -0
  191. package/dist/lib/switchable-modules.d.ts +54 -0
  192. package/dist/lib/switchable-modules.d.ts.map +1 -0
  193. package/dist/lib/switchable-modules.js +104 -0
  194. package/dist/lib/switchable-modules.js.map +1 -0
  195. package/dist/lib/tailwind-sources.d.ts +136 -0
  196. package/dist/lib/tailwind-sources.d.ts.map +1 -0
  197. package/dist/lib/tailwind-sources.js +307 -0
  198. package/dist/lib/tailwind-sources.js.map +1 -0
  199. package/dist/lib/ui-layer.d.ts +54 -0
  200. package/dist/lib/ui-layer.d.ts.map +1 -0
  201. package/dist/lib/ui-layer.js +57 -0
  202. package/dist/lib/ui-layer.js.map +1 -0
  203. package/dist/lib/workspace-packages.d.ts +186 -0
  204. package/dist/lib/workspace-packages.d.ts.map +1 -0
  205. package/dist/lib/workspace-packages.js +351 -0
  206. package/dist/lib/workspace-packages.js.map +1 -0
  207. package/dist/new-instance/deploy.d.ts +211 -0
  208. package/dist/new-instance/deploy.d.ts.map +1 -0
  209. package/dist/new-instance/deploy.js +1381 -0
  210. package/dist/new-instance/deploy.js.map +1 -0
  211. package/dist/new-instance/docs-toolchain.d.ts +66 -0
  212. package/dist/new-instance/docs-toolchain.d.ts.map +1 -0
  213. package/dist/new-instance/docs-toolchain.js +69 -0
  214. package/dist/new-instance/docs-toolchain.js.map +1 -0
  215. package/dist/new-instance/host.d.ts +124 -0
  216. package/dist/new-instance/host.d.ts.map +1 -0
  217. package/dist/new-instance/host.js +276 -0
  218. package/dist/new-instance/host.js.map +1 -0
  219. package/dist/new-instance/index.d.ts +118 -0
  220. package/dist/new-instance/index.d.ts.map +1 -0
  221. package/dist/new-instance/index.js +567 -0
  222. package/dist/new-instance/index.js.map +1 -0
  223. package/dist/new-instance/modules.d.ts +188 -0
  224. package/dist/new-instance/modules.d.ts.map +1 -0
  225. package/dist/new-instance/modules.js +392 -0
  226. package/dist/new-instance/modules.js.map +1 -0
  227. package/dist/new-instance/template.d.ts +505 -0
  228. package/dist/new-instance/template.d.ts.map +1 -0
  229. package/dist/new-instance/template.js +1886 -0
  230. package/dist/new-instance/template.js.map +1 -0
  231. package/dist/new-module/emit.d.ts +67 -0
  232. package/dist/new-module/emit.d.ts.map +1 -0
  233. package/dist/new-module/emit.js +1393 -0
  234. package/dist/new-module/emit.js.map +1 -0
  235. package/dist/new-module/host.d.ts +67 -0
  236. package/dist/new-module/host.d.ts.map +1 -0
  237. package/dist/new-module/host.js +224 -0
  238. package/dist/new-module/host.js.map +1 -0
  239. package/dist/new-module/index.d.ts +32 -0
  240. package/dist/new-module/index.d.ts.map +1 -0
  241. package/dist/new-module/index.js +193 -0
  242. package/dist/new-module/index.js.map +1 -0
  243. package/dist/new-module/spec.d.ts +188 -0
  244. package/dist/new-module/spec.d.ts.map +1 -0
  245. package/dist/new-module/spec.js +404 -0
  246. package/dist/new-module/spec.js.map +1 -0
  247. package/dist/new-module/text.d.ts +15 -0
  248. package/dist/new-module/text.d.ts.map +1 -0
  249. package/dist/new-module/text.js +22 -0
  250. package/dist/new-module/text.js.map +1 -0
  251. package/dist/new-storefront/dockerfile.d.ts +20 -0
  252. package/dist/new-storefront/dockerfile.d.ts.map +1 -0
  253. package/dist/new-storefront/dockerfile.js +131 -0
  254. package/dist/new-storefront/dockerfile.js.map +1 -0
  255. package/dist/new-storefront/gitignore.d.ts +23 -0
  256. package/dist/new-storefront/gitignore.d.ts.map +1 -0
  257. package/dist/new-storefront/gitignore.js +39 -0
  258. package/dist/new-storefront/gitignore.js.map +1 -0
  259. package/dist/new-storefront/index.d.ts +93 -0
  260. package/dist/new-storefront/index.d.ts.map +1 -0
  261. package/dist/new-storefront/index.js +329 -0
  262. package/dist/new-storefront/index.js.map +1 -0
  263. package/dist/new-storefront/npmrc.d.ts +98 -0
  264. package/dist/new-storefront/npmrc.d.ts.map +1 -0
  265. package/dist/new-storefront/npmrc.js +217 -0
  266. package/dist/new-storefront/npmrc.js.map +1 -0
  267. package/dist/new-storefront/reference.d.ts +189 -0
  268. package/dist/new-storefront/reference.d.ts.map +1 -0
  269. package/dist/new-storefront/reference.js +430 -0
  270. package/dist/new-storefront/reference.js.map +1 -0
  271. package/dist/new-storefront/rewrite.d.ts +171 -0
  272. package/dist/new-storefront/rewrite.d.ts.map +1 -0
  273. package/dist/new-storefront/rewrite.js +701 -0
  274. package/dist/new-storefront/rewrite.js.map +1 -0
  275. package/dist/release-index.json +284 -0
  276. package/dist/rules/action-route-permissions.d.ts +141 -0
  277. package/dist/rules/action-route-permissions.d.ts.map +1 -0
  278. package/dist/rules/action-route-permissions.js +556 -0
  279. package/dist/rules/action-route-permissions.js.map +1 -0
  280. package/dist/rules/bundle-pairing.d.ts +74 -0
  281. package/dist/rules/bundle-pairing.d.ts.map +1 -0
  282. package/dist/rules/bundle-pairing.js +281 -0
  283. package/dist/rules/bundle-pairing.js.map +1 -0
  284. package/dist/rules/channel-resolution.d.ts +17 -0
  285. package/dist/rules/channel-resolution.d.ts.map +1 -0
  286. package/dist/rules/channel-resolution.js +382 -0
  287. package/dist/rules/channel-resolution.js.map +1 -0
  288. package/dist/rules/command-coverage.d.ts +210 -0
  289. package/dist/rules/command-coverage.d.ts.map +1 -0
  290. package/dist/rules/command-coverage.js +714 -0
  291. package/dist/rules/command-coverage.js.map +1 -0
  292. package/dist/rules/container-imports.d.ts +60 -0
  293. package/dist/rules/container-imports.d.ts.map +1 -0
  294. package/dist/rules/container-imports.js +158 -0
  295. package/dist/rules/container-imports.js.map +1 -0
  296. package/dist/rules/default-language-prose.d.ts +212 -0
  297. package/dist/rules/default-language-prose.d.ts.map +1 -0
  298. package/dist/rules/default-language-prose.js +710 -0
  299. package/dist/rules/default-language-prose.js.map +1 -0
  300. package/dist/rules/diacritic-folds.d.ts +238 -0
  301. package/dist/rules/diacritic-folds.d.ts.map +1 -0
  302. package/dist/rules/diacritic-folds.js +681 -0
  303. package/dist/rules/diacritic-folds.js.map +1 -0
  304. package/dist/rules/entity-tenant-classification.d.ts +171 -0
  305. package/dist/rules/entity-tenant-classification.d.ts.map +1 -0
  306. package/dist/rules/entity-tenant-classification.js +323 -0
  307. package/dist/rules/entity-tenant-classification.js.map +1 -0
  308. package/dist/rules/entry-presence.d.ts +142 -0
  309. package/dist/rules/entry-presence.d.ts.map +1 -0
  310. package/dist/rules/entry-presence.js +339 -0
  311. package/dist/rules/entry-presence.js.map +1 -0
  312. package/dist/rules/entry-scope.d.ts +91 -0
  313. package/dist/rules/entry-scope.d.ts.map +1 -0
  314. package/dist/rules/entry-scope.js +404 -0
  315. package/dist/rules/entry-scope.js.map +1 -0
  316. package/dist/rules/env-inputs.d.ts +222 -0
  317. package/dist/rules/env-inputs.d.ts.map +1 -0
  318. package/dist/rules/env-inputs.js +951 -0
  319. package/dist/rules/env-inputs.js.map +1 -0
  320. package/dist/rules/kernel-boundary.d.ts +37 -0
  321. package/dist/rules/kernel-boundary.d.ts.map +1 -0
  322. package/dist/rules/kernel-boundary.js +195 -0
  323. package/dist/rules/kernel-boundary.js.map +1 -0
  324. package/dist/rules/nul-bytes.d.ts +233 -0
  325. package/dist/rules/nul-bytes.d.ts.map +1 -0
  326. package/dist/rules/nul-bytes.js +332 -0
  327. package/dist/rules/nul-bytes.js.map +1 -0
  328. package/dist/rules/platform-surface.d.ts +479 -0
  329. package/dist/rules/platform-surface.d.ts.map +1 -0
  330. package/dist/rules/platform-surface.js +749 -0
  331. package/dist/rules/platform-surface.js.map +1 -0
  332. package/dist/rules/port-catches.d.ts +225 -0
  333. package/dist/rules/port-catches.d.ts.map +1 -0
  334. package/dist/rules/port-catches.js +1374 -0
  335. package/dist/rules/port-catches.js.map +1 -0
  336. package/dist/rules/port-shape.d.ts +213 -0
  337. package/dist/rules/port-shape.d.ts.map +1 -0
  338. package/dist/rules/port-shape.js +670 -0
  339. package/dist/rules/port-shape.js.map +1 -0
  340. package/dist/rules/queue-names.d.ts +108 -0
  341. package/dist/rules/queue-names.d.ts.map +1 -0
  342. package/dist/rules/queue-names.js +395 -0
  343. package/dist/rules/queue-names.js.map +1 -0
  344. package/dist/rules/singleton-identity.d.ts +205 -0
  345. package/dist/rules/singleton-identity.d.ts.map +1 -0
  346. package/dist/rules/singleton-identity.js +830 -0
  347. package/dist/rules/singleton-identity.js.map +1 -0
  348. package/dist/rules/subscribe-seam.d.ts +121 -0
  349. package/dist/rules/subscribe-seam.d.ts.map +1 -0
  350. package/dist/rules/subscribe-seam.js +594 -0
  351. package/dist/rules/subscribe-seam.js.map +1 -0
  352. package/dist/rules/transaction-context.d.ts +40 -0
  353. package/dist/rules/transaction-context.d.ts.map +1 -0
  354. package/dist/rules/transaction-context.js +294 -0
  355. package/dist/rules/transaction-context.js.map +1 -0
  356. package/package.json +59 -0
@@ -0,0 +1,505 @@
1
+ /**
2
+ * The tree `endora new instance` writes — one plan, three kinds of file, and a
3
+ * rule that refuses a fourth (`contracts/instance-tree.md` §1, §2).
4
+ *
5
+ * ## R1.1 and R1.2 are the whole design
6
+ *
7
+ * Every file here carries its {@link FileKind}, and the kind is what decides
8
+ * whether it may exist at all:
9
+ *
10
+ * * **the client's own** — a value only they can supply, or code they will
11
+ * edit. Written once, never regenerated, never read by us again.
12
+ * * **wiring** — the smallest expression that hands the platform something it
13
+ * cannot derive: a database handle, a root directory, a process's argv.
14
+ * Bounded by R1.4 and counted by {@link wiringLineCount}.
15
+ * * **derived** — rendered from a fact the platform or the module set already
16
+ * holds.
17
+ *
18
+ * **A file that is none of the three may not be written** (R1.2), which is the
19
+ * rule that refuses the fork one file at a time: a composition root is not the
20
+ * client's (it is ours), is not wiring (it is 2 628 lines), and is not derived
21
+ * (nothing generates it). The kind is a field on every entry rather than a
22
+ * comment, so T139's T4 can assert it over the plan the command actually
23
+ * builds.
24
+ *
25
+ * ## Nothing is copied, so nothing is rewritten
26
+ *
27
+ * R1.3 / R5.5 / NFR-002. `endora new storefront` copies a reference tree and
28
+ * rewrites every declaration that names something above it; this command copies
29
+ * nothing, so there is no `rewrite.ts` beside this file and there must never be
30
+ * one — its appearance would be evidence that something was copied that should
31
+ * not have been. Every string below is rendered from the resolved packages, the
32
+ * CLI's own manifest and the operator's own flags.
33
+ *
34
+ * ## No demo artefact, at any tier (D-216)
35
+ *
36
+ * *"A client scaffolding an instance for their own trading receives no demo
37
+ * artefact in a tree they own: no composition, no script, no example and no
38
+ * placeholder. Silence means no."* Nothing here writes one, and the capability
39
+ * is discoverable through the next-steps block rather than reported as an
40
+ * omission — a capability announced as a deficiency is not optional.
41
+ *
42
+ * ## What this build cannot yet write, said here rather than discovered
43
+ *
44
+ * The backend member's wiring names symbols on the platform's declared
45
+ * subpaths — `./composition`, `./db`, `./lifecycle`, `./overlay` and
46
+ * `./packages` today. **How many symbols that is is not written here** (D-100): the
47
+ * reconciliation test derives it from the barrels on every run and prints it,
48
+ * and the count in this sentence was already wrong when the three names below
49
+ * were wrong. `composeApp` is one of them since T118 — the
50
+ * position §2.3 stated (*"`composeApp` is imported, never written (R1.2)"*) is
51
+ * met, and the file below supplies the one argument that composition takes:
52
+ * `deploymentRoot`, the directory holding `apps/`, which no package can derive
53
+ * because in an instance the platform came out of `node_modules`
54
+ * (`contracts/application-root-supplier.md` R1.1). **No contribute callback is
55
+ * supplied and there is nowhere in this tree to write one** — R2.4 — so a
56
+ * client's instance contributes over no name a module defaults.
57
+ *
58
+ * The ORM configuration below is the one place an instance restates its own
59
+ * artefacts, and it has none, so the platform's `*From` factories answer over
60
+ * the packages it installed: `configuredEntitiesFrom`,
61
+ * `discoverConfiguredMigrations` and `mikroOrmConfigFrom` on `./db`, and
62
+ * `resolveManifestEntries` on `./lifecycle` with its three suppliers.
63
+ *
64
+ * **That sentence used to name three other symbols, and nothing held this file
65
+ * to it.** It read *"`configuredMigrations`, `configuredEntities` and
66
+ * `resolvedManifestEntries` are `./db`'s and `./lifecycle`'s **under other
67
+ * names**"* — a doc block describing the repair, beside rendered text that had
68
+ * never taken it, so a scaffolded backend did not compile and the knowledge was
69
+ * present the whole time. The guard is
70
+ * `test/new-instance/template-reconciliation.test.ts`' T1, at **symbol**
71
+ * granularity rather than subpath: `./composition` and `./lifecycle` are both
72
+ * declared subpaths, so a reconciliation of the specifier alone passes over all
73
+ * three errors.
74
+ *
75
+ * §2.3's sixth wiring file, `backend/src/cli.ts`, **is** written since
76
+ * `specs/123-oss-install-experience/` G2, and the omission that stood in its
77
+ * place is deleted rather than reworded. Its reason was *"the demo layer around
78
+ * it is exported under no subpath"*, and what discharged it was not a wider
79
+ * `exports` map: `backend/src/cli/demo-command.ts` moved into
80
+ * `<scope>platform/demo` — where `test/unit/kernel/host-residue-partition.test.ts`
81
+ * had it ledgered as platform-shaped residue all along — and the dispatch around
82
+ * both halves became `<scope>platform/cli`'s `runCli`. So the file this command
83
+ * renders names nothing it had to invent, holds no copy of the 479 lines it
84
+ * calls (D-207), and is five lines.
85
+ *
86
+ * The cost of the omission was measured rather than aesthetic: with no CLI, a
87
+ * scaffolded instance could run no `admin_users create`, so the admin bundle A5
88
+ * and A13 prove is built and styled had nobody to log in as.
89
+ */
90
+ import { type EnvironmentInput } from '@endora-commerce/contracts';
91
+ import { type InstanceBuildInput } from '../lib/instance-build-inputs.js';
92
+ import { type Topology } from './deploy.js';
93
+ /** §1.1's three kinds, and there is no fourth. */
94
+ export type FileKind = 'client' | 'wiring' | 'derived';
95
+ /** Which member of the workspace a file belongs to, or the workspace root. */
96
+ export type MemberName = 'root' | 'deployment' | 'backend' | 'admin' | 'docs';
97
+ /** One workspace member an operator can name, and what a person is told about it. */
98
+ export interface MemberDeclaration {
99
+ /** The `--without` name, and the directory the member is written into. */
100
+ readonly name: 'backend' | 'admin' | 'docs';
101
+ /** One line, for a human choosing which parts of an instance they want. */
102
+ readonly describes: string;
103
+ /**
104
+ * Why the member cannot be declined, or `null` when it can.
105
+ *
106
+ * A sentence rather than a boolean because the one place this is read with a
107
+ * human in front of it — the install wizard's checklist — renders the reason
108
+ * instead of a checkbox that refuses when unchecked (125 FR-152).
109
+ */
110
+ readonly fixed: string | null;
111
+ }
112
+ /**
113
+ * The members this template writes, and therefore the whole `--without`
114
+ * vocabulary (`specs/118-instance-member-selection/contracts/instance-members.md`
115
+ * R3.5a, ruled by D-215).
116
+ *
117
+ * **This is the one statement of the member set**, and two consumers read it:
118
+ * the refusal below, and `endora install`'s checklist (125 R6.3a), which
119
+ * renders one row per entry and holds no list of its own. A member the template
120
+ * gains is added here, beside the decision that writes it, and reaches both —
121
+ * `test/new-instance-members.test.ts` fails when a planned member has no entry.
122
+ */
123
+ export declare const MEMBER_VOCABULARY: readonly MemberDeclaration[];
124
+ /**
125
+ * F10 and F11 (`instance-members.md` §5.6), decided over the names alone — the
126
+ * refusal sentence, or `null` when every name is one this template can decline.
127
+ *
128
+ * Exported because two commands validate the same flag before either writes:
129
+ * `endora new instance`, and `endora install`, which reports it together with
130
+ * every other precondition (125 FR-157) rather than one refusal later.
131
+ */
132
+ export declare function memberRefusal(without: readonly string[]): string | null;
133
+ /** One file the command would write. */
134
+ export interface PlannedFile {
135
+ /** Relative to the target directory, with `/` separators. */
136
+ readonly path: string;
137
+ readonly kind: FileKind;
138
+ readonly member: MemberName;
139
+ readonly content: string;
140
+ }
141
+ /**
142
+ * One module package the instance declares — and **its own** version beside its
143
+ * own name.
144
+ *
145
+ * The version travels on the same record as the name deliberately. It used to
146
+ * be absent, and the site that writes the `dependencies` entries had exactly one
147
+ * version in scope — the platform's — so every module was declared at it. That
148
+ * is only correct while a release moves every package together, and a release
149
+ * does not: of the packages this repository published on 2026-09-11, 68 moved to
150
+ * `0.8.0` and 15 to `0.7.1`, so a scaffolded instance asked a registry for
151
+ * `@endora-commerce/mod-addresses@^0.8.0` and was told the latest is `0.7.1`.
152
+ * Nothing in the estate makes a release uniform and nothing should: D-225 owns
153
+ * the series, and 15 packages genuinely had only patch-level changes.
154
+ *
155
+ * A caret range over a version a **different** package declares is not a value
156
+ * this command may invent (R2.5a), and it is the one such value that fails at
157
+ * the client's first `pnpm install` rather than in anything we run.
158
+ */
159
+ export interface PlannedModulePackage {
160
+ /** The module id, which is what `--module` names and what orders the entries. */
161
+ readonly id: string;
162
+ /** The npm name, verbatim — this is the `dependencies` key. */
163
+ readonly packageName: string;
164
+ /**
165
+ * The version **this package** declares about itself, read off the manifest
166
+ * of the package the run resolved beside the target directory.
167
+ */
168
+ readonly version: string;
169
+ }
170
+ /** A member this run did not write, and every reason that holds (D-215 §4). */
171
+ export interface PlannedOmission {
172
+ readonly path: string;
173
+ readonly reason: string;
174
+ }
175
+ /** The whole plan, decided before anything is written (R5.2). */
176
+ export interface InstancePlan {
177
+ readonly files: readonly PlannedFile[];
178
+ readonly omitted: readonly PlannedOmission[];
179
+ /** The workspace members whose directories this run writes. */
180
+ readonly members: readonly MemberName[];
181
+ /** The registry `--registry` named, normalised, or `null`. */
182
+ readonly registry: string | null;
183
+ /** Every dependency the root manifest declares, name to range. */
184
+ readonly dependencies: ReadonlyMap<string, string>;
185
+ }
186
+ /** Everything the plan is rendered from. Pure in, pure out. */
187
+ export interface PlanInput {
188
+ /** The workspace name, from the target directory's basename. */
189
+ readonly name: string;
190
+ readonly deployment: string;
191
+ readonly scope: string;
192
+ /**
193
+ * The platform package's own version. It ranges the **platform** entry and
194
+ * nothing else — see {@link PlannedModulePackage} for what happened the last
195
+ * time it ranged something else.
196
+ */
197
+ readonly platformVersion: string;
198
+ readonly enginesNode: string;
199
+ readonly packageManager: string | undefined;
200
+ /** The resolved module set, each entry carrying its own version. */
201
+ readonly modules: readonly PlannedModulePackage[];
202
+ /** `null` when the admin shell does not resolve at the version being installed. */
203
+ readonly adminShellVersion: string | null;
204
+ /** `null` when the admin design system does not resolve. §2.4's other package. */
205
+ readonly adminKitVersion: string | null;
206
+ /**
207
+ * The ranges the admin member's own build tools are written from, each read
208
+ * off the admin shell's manifest rather than chosen here (R2.5a).
209
+ *
210
+ * `react` and `react-dom` are its `peerDependencies` — what a host that
211
+ * mounts the shell must resolve — and `vite`, `@vitejs/plugin-react`,
212
+ * `tailwindcss` and `@tailwindcss/vite` are the optional peers by which the
213
+ * shell states what kind of application a host is. A name with no range here
214
+ * is **not written and not guessed**: the member is omitted, naming it, for
215
+ * the same reason `devDependenciesFor` leaves one out.
216
+ */
217
+ readonly adminRanges: ReadonlyMap<string, string>;
218
+ /**
219
+ * The packages the admin project must supply because what it composes
220
+ * declares them **optional** — name to range, already resolved.
221
+ *
222
+ * `index.ts`' `composedOptionalPeers` is the derivation and carries the
223
+ * argument: `manifests:generate` marks a peer optional exactly when only a UI
224
+ * layer reaches it, so for a project that renders those UI layers the set is
225
+ * not optional but **required**, and it is the one statement in either tree of
226
+ * what an admin host has to have.
227
+ */
228
+ readonly adminPeers: ReadonlyMap<string, string>;
229
+ /** The CLI's own version — `endora generate` is what renders §2.6's artefacts. */
230
+ readonly cliVersion: string;
231
+ /**
232
+ * The ranges the documentation member is written from — name to range, read
233
+ * off the CLI's own manifest (R2.3's first named source, and R2.5a).
234
+ *
235
+ * `@docusaurus/core` and `@docusaurus/preset-classic` are the CLI's **optional
236
+ * peers**, which is the same declaration the admin shell makes about a host
237
+ * that mounts it: *"an application of this kind resolves these"*. The CLI
238
+ * renders this site's navigation and imports neither package, exactly as the
239
+ * shell declares `vite` and `tailwindcss` and imports neither. A name with no
240
+ * range here is **not written and not guessed**: the member is omitted,
241
+ * naming it.
242
+ */
243
+ readonly docsRanges: ReadonlyMap<string, string>;
244
+ /**
245
+ * The ranges the instance's own `devDependencies` are derived from, each read
246
+ * off a manifest this run resolved rather than chosen here (R2.5a).
247
+ *
248
+ * The four peers and `ioredis` come from `@endora-commerce/platform`'s own
249
+ * `peerDependencies` and `dependencies`; `typescript` comes from the CLI's own
250
+ * manifest, which R2.3 names as a source. A package with no such source is not
251
+ * written — see {@link devDependenciesFor}.
252
+ */
253
+ readonly declaredRanges: ReadonlyMap<string, string>;
254
+ /** Already normalised by the caller; `null` writes no `.npmrc`. */
255
+ readonly registry: string | null;
256
+ /** The `.npmrc` text, when there is a registry. Written by `npmrc.ts` (R5.7). */
257
+ readonly npmrc: string | null;
258
+ /**
259
+ * Which machine layout the `deploy/` examples describe (D-230).
260
+ *
261
+ * It selects and records nothing: no file this command writes carries the
262
+ * value, and nothing reads one back. `deploy.ts` is where the derivation and
263
+ * that rule both live.
264
+ */
265
+ readonly topology: Topology;
266
+ /**
267
+ * The members the operator declined with `--without` (D-215, 118 R3.5).
268
+ *
269
+ * Optional, and absent is the empty set: the subtractive default is
270
+ * *everything*, so a caller that says nothing about members gets every member
271
+ * this build can write. Already validated by {@link memberRefusal}.
272
+ */
273
+ readonly without?: ReadonlySet<string> | undefined;
274
+ /**
275
+ * What this instance reads from its environment — the platform's declaration
276
+ * unioned with the manifests of the modules it installs
277
+ * (`modules.ts`' `instanceEnvironmentInputs`).
278
+ *
279
+ * It is a **parameter** rather than a constant for the reason every other
280
+ * version and range here is: the declaration belongs to the packages the
281
+ * client's machine resolved, not to this CLI, and a list compiled in here
282
+ * could never see a module a client installed from a registry (D-100, R2.3).
283
+ */
284
+ readonly declared: readonly EnvironmentInput[];
285
+ /**
286
+ * The text of a `.env` the operator placed in the target directory before
287
+ * running, or `''`.
288
+ *
289
+ * Tier 2 (`input-resolution.md` R1.2), and it reaches the plan rather than the
290
+ * writer so that `--dry-run` reports the file it would actually produce. What
291
+ * the operator wrote is merged into and never rewritten: their comments, their
292
+ * ordering and their own keys survive.
293
+ */
294
+ readonly existingEnv: string;
295
+ /**
296
+ * The secrets this run generated, name to value (R2.5d).
297
+ *
298
+ * They arrive already generated because the plan is pure and a plan that
299
+ * called `randomBytes` would render a different tree on every call — which
300
+ * `--dry-run`'s whole purpose is to rule out. The caller generates once and
301
+ * reports the names in the provenance line.
302
+ */
303
+ readonly generated: ReadonlyMap<string, string>;
304
+ }
305
+ /**
306
+ * A workspace name a client can actually install.
307
+ *
308
+ * npm's own rule, applied to the basename the operator chose, and **refused**
309
+ * rather than sanitised: a command that quietly renamed the directory the
310
+ * operator named would put a name nobody chose into the file that is the
311
+ * module list (R1.2 there).
312
+ */
313
+ export declare function assertWorkspaceName(name: string): void;
314
+ /**
315
+ * The deployment name, which is `DEPLOYMENT`'s value and nothing else reads it
316
+ * (§2.2).
317
+ *
318
+ * F4. It is a directory name under `apps/`, so the refusal is about what a
319
+ * directory name may be: no separator, no traversal, no leading dot.
320
+ */
321
+ export declare function assertDeploymentName(deployment: string): void;
322
+ /**
323
+ * The derived artefacts an instance generates and commits none of (§2.6,
324
+ * `instance-repository.md` R3.2).
325
+ *
326
+ * **There are three and this list carried two** until T138 wrote the admin
327
+ * member. `admin/src/tailwind.generated.css` arrived with T124 on the same day
328
+ * this command landed, R3.2 already said three, and `new-instance.test.ts`'
329
+ * *"both generated artefacts are git-ignored"* asserted the stale count rather
330
+ * than catching it. A committed stylesheet enumeration is the tree and the
331
+ * install disagreeing about which packages were scanned — which is silent, and
332
+ * is the whole failure `admin-stylesheet-composition.md` exists for.
333
+ *
334
+ * **The fourth is the entity index** (`specs/109-backend-test-kit/` T065), and it
335
+ * is the first entry here that belongs to **no member**: its consumer is a test,
336
+ * and a test is not a member of a client's workspace. It is in this list for the
337
+ * one reason the list exists — `.gitignore` has to cover it — and it is
338
+ * `.gitignore`d for §2.6's own predicate: which modules a host installed is a
339
+ * fact about the install, so a committed index is the tree and the install
340
+ * disagreeing about which tables exist.
341
+ */
342
+ export declare const GENERATED_ARTEFACTS: readonly ["admin/src/modules.generated.ts", "admin/src/tailwind.generated.css", "docs/sidebars.modules.generated.js", "backend/test/entities.generated.ts"];
343
+ /**
344
+ * The generated **trees** — a whole directory the generator owns, rather than a
345
+ * file it writes.
346
+ *
347
+ * They are apart from {@link GENERATED_ARTEFACTS} because the two answer
348
+ * different questions: that list is the files a reconciliation can name and
349
+ * compare, this one is what `.gitignore` has to cover. The documentation half
350
+ * of §2.6 is a *population* rather than a file — one copied page per page a
351
+ * module ships, one reference page per module, and the stamp that lets a run
352
+ * undo the previous one's copies — so a client's `.gitignore` names the
353
+ * directories and git's own "a tracked file is never ignored" keeps a page they
354
+ * write themselves visible with no exception list to maintain.
355
+ */
356
+ export declare const GENERATED_TREES: readonly ["docs/docs/modules/**", "docs/docs/module-reference/**", "docs/.module-docs-copies.json"];
357
+ /**
358
+ * The named CLI aliases an instance's manifests earn
359
+ * (`specs/123-oss-install-experience/` T2-D).
360
+ *
361
+ * **Derived, never written.** `cli` is the pass-through and covers every
362
+ * command any installed module declares; what a named alias buys on top of it
363
+ * is that an operator reads it in `pnpm run`, and an alias addressing a module
364
+ * this instance did not install would fail with `unknown module` at the one
365
+ * moment a client is least able to tell a missing module from a broken CLI.
366
+ *
367
+ * **There is deliberately no `demo:seed` or `demo:reset` entry**, and
368
+ * `specs/123-oss-install-experience/` T2-D asked for both. D-216 is more
369
+ * specific than the task and is the owner's: *"a client scaffolding an instance
370
+ * for their own trading receives no demo artefact in a tree they own: no
371
+ * composition, **no script**, no example and no placeholder"* — and it names
372
+ * where the capability does belong, which is the next-steps block. `cli` reaches
373
+ * both verbs anyway (`pnpm run cli demo seed`), so nothing is unavailable; what
374
+ * is refused is a line in a client's manifest they did not ask for.
375
+ */
376
+ export declare function cliAliasesFor(modules: readonly PlannedModulePackage[]): readonly (readonly [string, string])[];
377
+ /**
378
+ * The backend member's scripts, every one of them reading the instance's own
379
+ * `.env` (`specs/123-oss-install-experience/` G3).
380
+ *
381
+ * **`--env-file-if-exists=../.env`, and the `..` is the whole of it.** Every
382
+ * root script is `pnpm -C backend run …`, so these run with `backend/` as the
383
+ * working directory while the `.env` a client is told to fill in sits at the
384
+ * root of the tree beside `.env.example` and beside the `.env` entry in
385
+ * `.gitignore`. Without the prefix the file is inert: a client fills it in, runs
386
+ * `pnpm run migrate`, and the process reads nothing at all — which is the second
387
+ * half of the defect the acceptance criterion papers over by supplying the
388
+ * values through `process.env` instead.
389
+ *
390
+ * `-if-exists` rather than `--env-file`, because a `.env` is not obligatory: a
391
+ * container-hosted instance is configured entirely from its process environment,
392
+ * and a flag that refused to start without the file would break exactly the
393
+ * deployment `deploy/compose.prod.yml` describes. A value already in the
394
+ * environment wins over the file, which is Node's own precedence and the one an
395
+ * operator expects.
396
+ *
397
+ * It is one function rather than a spelling repeated ten times, so a script
398
+ * added later cannot be the one that silently does not read the file.
399
+ */
400
+ export declare function backendScripts(input: PlanInput): Record<string, string>;
401
+ /** Lines of wiring in a plan — R1.4's bound, measured rather than intended. */
402
+ export declare function wiringLineCount(plan: InstancePlan): number;
403
+ /**
404
+ * The environment inputs a client is asked to fill in, in declaration order.
405
+ *
406
+ * Two exclusions, and both are rules rather than names. A **generable secret**
407
+ * is written into the `.env` this command produces and appears in no
408
+ * `.env.example` (R2.5d), so asking for it would be asking for a value the tool
409
+ * has already supplied. And an input **no written member reads** is out of the
410
+ * population (118).
411
+ */
412
+ export declare function declaredEnvironmentInputs(declared: readonly EnvironmentInput[], admin: boolean): readonly EnvironmentInput[];
413
+ /** The generable secrets this run owes a value for, in declaration order. */
414
+ export declare function generableEnvironmentInputs(declared: readonly EnvironmentInput[], admin: boolean): readonly EnvironmentInput[];
415
+ /**
416
+ * `.env.example` — every input this instance actually reads (FR-010).
417
+ *
418
+ * **Two populations, and keeping them apart is the point.** The build inputs are
419
+ * inlined into an artefact by `docker build`; the declared inputs are read by a
420
+ * process on every start. An operator who conflates them rebuilds an image to
421
+ * change a password. They are two headed sections of one file rather than two
422
+ * files because a client fills in one `.env`, and a second example beside the
423
+ * first is a second thing to forget.
424
+ *
425
+ * Neither section is a list. The first is `INSTANCE_BUILD_INPUTS`; the second is
426
+ * the platform's declaration unioned with the manifests of the modules this run
427
+ * installed, scoped to the members it wrote. The defect it closes is the
428
+ * acceptance criterion's own note — *"its `.env.example` declares none of them,
429
+ * so a client who fills in the file the command wrote has nothing to put them
430
+ * in"* — and the note is deleted in the same merge request, because an
431
+ * instrument that reports a gap must not outlive it.
432
+ */
433
+ export declare function envExample(inputs: readonly InstanceBuildInput[], declared: readonly EnvironmentInput[], admin: boolean): string;
434
+ /**
435
+ * The `.env` this command writes — the generated secrets, and a blank for
436
+ * everything else the instance reads.
437
+ *
438
+ * R2.5d: a generated secret is written **where the operator can read it**,
439
+ * change it and copy it into a secret store. The placeholders are there so that
440
+ * the file a client edits is the file their instance reads: telling them to
441
+ * `cp .env.example .env` after this command has already written one would have
442
+ * them overwrite the generated secrets with empty strings, and the boot that
443
+ * then failed would name none of this.
444
+ *
445
+ * **Every placeholder is commented out, and that is not cosmetic.** A blank
446
+ * assignment is not the same state as no assignment: Node's `--env-file` reads
447
+ * `MEILISEARCH_URL=` as the empty string, and the platform's `??` fallbacks
448
+ * treat an empty string as a value. Measured on the instance acceptance
449
+ * criterion — a `.env` listing every optional input as a blank turned twenty
450
+ * "unset"s into twenty empty strings and the health route answered **503** over
451
+ * a search engine that was running. So the file lists what there is to fill in
452
+ * and changes nothing until a client removes a `#`, and {@link writeEnvFile}
453
+ * fills a placeholder in place rather than appending a second assignment.
454
+ *
455
+ * A `.env` the operator placed here first is **merged into, never rewritten**:
456
+ * their comments, their ordering and their own keys survive, and a value they
457
+ * already supplied is not generated over.
458
+ */
459
+ export declare function envFile(input: PlanInput, admin: boolean): string;
460
+ /**
461
+ * The plan. Nothing here touches the filesystem, so `--dry-run` reports exactly
462
+ * what a real run writes rather than a second derivation of it (R5.3).
463
+ */
464
+ export declare function planInstance(input: PlanInput): InstancePlan;
465
+ /**
466
+ * The packages the instance builds with, each range read off a manifest this
467
+ * run resolved (§2.1, R2.5a).
468
+ *
469
+ * `instance-tree.md` §2.1 names the set — *"the platform's four peers plus
470
+ * `@mikro-orm/migrations`, `tsx`, `typescript`"* — and says nothing about where
471
+ * the **ranges** come from, which is the question R2.5a answers: a value with
472
+ * no source is one the command would have to invent. So each is derived:
473
+ *
474
+ * * the four peers, from `@endora-commerce/platform`'s own
475
+ * `peerDependencies`. A platform that widens `zod` to `^5` widens this in
476
+ * the same run, with nothing here to edit.
477
+ * * `@mikro-orm/migrations`, from the range the platform declares for
478
+ * `@mikro-orm/core`. The MikroORM packages version in lockstep and a
479
+ * migrator from another major does not load the driver from this one.
480
+ * * `ioredis`, from the platform's own `dependencies`. It is not in §2.1's
481
+ * list and it is not optional: the five operator commands construct the
482
+ * `OperatorResources` the platform asks them for, and one of its three
483
+ * members is a Redis connection.
484
+ * * `typescript`, from the CLI's own manifest — R2.3's first named source.
485
+ *
486
+ * **`tsx` is deliberately absent.** No manifest this run can read declares a
487
+ * range for it, so writing one would be the invention R2.5a forbids; the
488
+ * member's `dev` script uses `tsc` and `node --watch`, which need nothing that
489
+ * is not already here.
490
+ */
491
+ export declare function devDependenciesFor(input: PlanInput,
492
+ /**
493
+ * Does this instance have an artefact to generate at all?
494
+ *
495
+ * The root's `generate` script is `endora generate` — one run renders every
496
+ * member's artefacts — so the binary has to be on the **root's** path. An
497
+ * instance with no artefact family at all has no `generate` script, and
498
+ * declaring the tool that runs it would be a dependency with nothing to do.
499
+ *
500
+ * The caller's predicate is `planInstance`'s `generatesArtefacts`, which since
501
+ * T065 counts the entity index: a headless instance with a module installed
502
+ * does have something to render, so it does get the tool.
503
+ */
504
+ generates?: boolean): readonly (readonly [string, string])[];
505
+ //# sourceMappingURL=template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/new-instance/template.ts"],"names":[],"mappings":"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"}