@owlmeans/viable-common 0.0.44 → 0.0.46

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 (605) hide show
  1. package/README.md +4 -3
  2. package/agent-meta/manifest.json +2 -2
  3. package/agent-meta/skills/agent-presentation/SKILL.md +4 -4
  4. package/agent-meta/skills/viable-common/SKILL.md +59 -30
  5. package/build/agent/index.d.ts +1 -0
  6. package/build/agent/index.d.ts.map +1 -1
  7. package/build/agent/index.js.map +1 -1
  8. package/build/agent/presentation/types.d.ts +21 -0
  9. package/build/agent/presentation/types.d.ts.map +1 -0
  10. package/build/agent/presentation/types.js +2 -0
  11. package/build/agent/presentation/types.js.map +1 -0
  12. package/build/agent/presentation.d.ts +10 -8
  13. package/build/agent/presentation.d.ts.map +1 -1
  14. package/build/agent/presentation.js +216 -195
  15. package/build/agent/presentation.js.map +1 -1
  16. package/build/agent/types.local.d.ts +3 -1
  17. package/build/agent/types.local.d.ts.map +1 -1
  18. package/build/areas/index.d.ts +1 -0
  19. package/build/areas/index.d.ts.map +1 -1
  20. package/build/areas/index.js.map +1 -1
  21. package/build/areas/tenancy/types.d.ts +23 -0
  22. package/build/areas/tenancy/types.d.ts.map +1 -0
  23. package/build/areas/tenancy/types.js +2 -0
  24. package/build/areas/tenancy/types.js.map +1 -0
  25. package/build/areas/tenancy.d.ts +5 -14
  26. package/build/areas/tenancy.d.ts.map +1 -1
  27. package/build/areas/tenancy.js +20 -26
  28. package/build/areas/tenancy.js.map +1 -1
  29. package/build/ba/connecting/types.d.ts +45 -0
  30. package/build/ba/connecting/types.d.ts.map +1 -0
  31. package/build/ba/connecting/types.js +2 -0
  32. package/build/ba/connecting/types.js.map +1 -0
  33. package/build/ba/connecting.d.ts +4 -0
  34. package/build/ba/connecting.d.ts.map +1 -0
  35. package/build/ba/connecting.js +47 -0
  36. package/build/ba/connecting.js.map +1 -0
  37. package/build/ba/helpers.d.ts +4 -39
  38. package/build/ba/helpers.d.ts.map +1 -1
  39. package/build/ba/helpers.js +5 -79
  40. package/build/ba/helpers.js.map +1 -1
  41. package/build/ba/index.d.ts +2 -0
  42. package/build/ba/index.d.ts.map +1 -1
  43. package/build/ba/index.js +1 -0
  44. package/build/ba/index.js.map +1 -1
  45. package/build/blueprint/types.d.ts +1 -2
  46. package/build/blueprint/types.d.ts.map +1 -1
  47. package/build/connect/branding/types.d.ts +28 -0
  48. package/build/connect/branding/types.d.ts.map +1 -0
  49. package/build/connect/branding/types.js +2 -0
  50. package/build/connect/branding/types.js.map +1 -0
  51. package/build/connect/consts.d.ts +2 -0
  52. package/build/connect/consts.d.ts.map +1 -1
  53. package/build/connect/consts.js +2 -0
  54. package/build/connect/consts.js.map +1 -1
  55. package/build/connect/conversion/types.d.ts +93 -0
  56. package/build/connect/conversion/types.d.ts.map +1 -0
  57. package/build/connect/conversion/types.js +2 -0
  58. package/build/connect/conversion/types.js.map +1 -0
  59. package/build/connect/entrypoints/types.d.ts +30 -0
  60. package/build/connect/entrypoints/types.d.ts.map +1 -0
  61. package/build/connect/entrypoints/types.js +2 -0
  62. package/build/connect/entrypoints/types.js.map +1 -0
  63. package/build/connect/entrypoints.d.ts +17 -11
  64. package/build/connect/entrypoints.d.ts.map +1 -1
  65. package/build/connect/entrypoints.js.map +1 -1
  66. package/build/connect/errors/types.d.ts +20 -0
  67. package/build/connect/errors/types.d.ts.map +1 -0
  68. package/build/connect/errors/types.js +2 -0
  69. package/build/connect/errors/types.js.map +1 -0
  70. package/build/connect/errors.d.ts +1 -1
  71. package/build/connect/errors.d.ts.map +1 -1
  72. package/build/connect/index.d.ts +13 -3
  73. package/build/connect/index.d.ts.map +1 -1
  74. package/build/connect/index.js +1 -1
  75. package/build/connect/index.js.map +1 -1
  76. package/build/connect/kit/types.d.ts +52 -0
  77. package/build/connect/kit/types.d.ts.map +1 -0
  78. package/build/connect/kit/types.js +2 -0
  79. package/build/connect/kit/types.js.map +1 -0
  80. package/build/connect/model-tier/types.d.ts +16 -0
  81. package/build/connect/model-tier/types.d.ts.map +1 -0
  82. package/build/connect/model-tier/types.js +2 -0
  83. package/build/connect/model-tier/types.js.map +1 -0
  84. package/build/connect/model-tier.d.ts +4 -0
  85. package/build/connect/model-tier.d.ts.map +1 -0
  86. package/build/connect/model-tier.js +21 -0
  87. package/build/connect/model-tier.js.map +1 -0
  88. package/build/connect/ops/types.d.ts +198 -0
  89. package/build/connect/ops/types.d.ts.map +1 -0
  90. package/build/connect/ops/types.js +2 -0
  91. package/build/connect/ops/types.js.map +1 -0
  92. package/build/connect/pipeline/types.d.ts +39 -0
  93. package/build/connect/pipeline/types.d.ts.map +1 -0
  94. package/build/connect/pipeline/types.js +2 -0
  95. package/build/connect/pipeline/types.js.map +1 -0
  96. package/build/connect/project/types.d.ts +127 -0
  97. package/build/connect/project/types.d.ts.map +1 -0
  98. package/build/connect/project/types.js +2 -0
  99. package/build/connect/project/types.js.map +1 -0
  100. package/build/connect/references/types.d.ts +157 -0
  101. package/build/connect/references/types.d.ts.map +1 -0
  102. package/build/connect/references/types.js +2 -0
  103. package/build/connect/references/types.js.map +1 -0
  104. package/build/connect/references/types.local.d.ts +5 -0
  105. package/build/connect/references/types.local.d.ts.map +1 -0
  106. package/build/connect/references/types.local.js.map +1 -0
  107. package/build/connect/references.d.ts +1 -1
  108. package/build/connect/references.d.ts.map +1 -1
  109. package/build/connect/references.js.map +1 -1
  110. package/build/connect/schemas.d.ts +8 -5
  111. package/build/connect/schemas.d.ts.map +1 -1
  112. package/build/connect/schemas.js +1 -3
  113. package/build/connect/schemas.js.map +1 -1
  114. package/build/connect/session/types.d.ts +73 -0
  115. package/build/connect/session/types.d.ts.map +1 -0
  116. package/build/connect/session/types.js +2 -0
  117. package/build/connect/session/types.js.map +1 -0
  118. package/build/connect/settings/types.d.ts +48 -0
  119. package/build/connect/settings/types.d.ts.map +1 -0
  120. package/build/connect/settings/types.js +2 -0
  121. package/build/connect/settings/types.js.map +1 -0
  122. package/build/connect/types.d.ts +1 -198
  123. package/build/connect/types.d.ts.map +1 -1
  124. package/build/convert/analysis/types.d.ts +93 -0
  125. package/build/convert/analysis/types.d.ts.map +1 -0
  126. package/build/convert/analysis/types.js +2 -0
  127. package/build/convert/analysis/types.js.map +1 -0
  128. package/build/convert/{consts.local.d.ts → census/consts.local.d.ts} +1 -1
  129. package/build/convert/census/consts.local.d.ts.map +1 -0
  130. package/build/convert/{consts.local.js → census/consts.local.js} +1 -1
  131. package/build/convert/census/consts.local.js.map +1 -0
  132. package/build/convert/census/types.d.ts +176 -0
  133. package/build/convert/census/types.d.ts.map +1 -0
  134. package/build/convert/census/types.js +2 -0
  135. package/build/convert/census/types.js.map +1 -0
  136. package/build/convert/census.d.ts +4 -0
  137. package/build/convert/census.d.ts.map +1 -0
  138. package/build/convert/census.js +83 -0
  139. package/build/convert/census.js.map +1 -0
  140. package/build/convert/consts.d.ts +4 -0
  141. package/build/convert/consts.d.ts.map +1 -1
  142. package/build/convert/consts.js +4 -0
  143. package/build/convert/consts.js.map +1 -1
  144. package/build/convert/detection/types.d.ts +67 -0
  145. package/build/convert/detection/types.d.ts.map +1 -0
  146. package/build/convert/detection/types.js +2 -0
  147. package/build/convert/detection/types.js.map +1 -0
  148. package/build/convert/docs/types.d.ts +129 -0
  149. package/build/convert/docs/types.d.ts.map +1 -0
  150. package/build/convert/docs/types.js +2 -0
  151. package/build/convert/docs/types.js.map +1 -0
  152. package/build/convert/docs.d.ts +4 -0
  153. package/build/convert/docs.d.ts.map +1 -0
  154. package/build/convert/docs.js +9 -0
  155. package/build/convert/docs.js.map +1 -0
  156. package/build/convert/estimate/types.d.ts +77 -0
  157. package/build/convert/estimate/types.d.ts.map +1 -0
  158. package/build/convert/estimate/types.js +2 -0
  159. package/build/convert/estimate/types.js.map +1 -0
  160. package/build/convert/estimate.d.ts +11 -0
  161. package/build/convert/estimate.d.ts.map +1 -0
  162. package/build/convert/estimate.js +18 -0
  163. package/build/convert/estimate.js.map +1 -0
  164. package/build/convert/helpers.d.ts +14 -78
  165. package/build/convert/helpers.d.ts.map +1 -1
  166. package/build/convert/helpers.js +27 -199
  167. package/build/convert/helpers.js.map +1 -1
  168. package/build/convert/index.d.ts +14 -0
  169. package/build/convert/index.d.ts.map +1 -1
  170. package/build/convert/index.js +5 -0
  171. package/build/convert/index.js.map +1 -1
  172. package/build/convert/origin/types.d.ts +41 -0
  173. package/build/convert/origin/types.d.ts.map +1 -0
  174. package/build/convert/origin/types.js +2 -0
  175. package/build/convert/origin/types.js.map +1 -0
  176. package/build/convert/origin.d.ts +4 -0
  177. package/build/convert/origin.d.ts.map +1 -0
  178. package/build/convert/origin.js +25 -0
  179. package/build/convert/origin.js.map +1 -0
  180. package/build/convert/record/types.d.ts +98 -0
  181. package/build/convert/record/types.d.ts.map +1 -0
  182. package/build/convert/record/types.js +2 -0
  183. package/build/convert/record/types.js.map +1 -0
  184. package/build/convert/schemas.d.ts +7 -6
  185. package/build/convert/schemas.d.ts.map +1 -1
  186. package/build/convert/schemas.js +1 -5
  187. package/build/convert/schemas.js.map +1 -1
  188. package/build/convert/stage/types.d.ts +27 -0
  189. package/build/convert/stage/types.d.ts.map +1 -0
  190. package/build/convert/stage/types.js +2 -0
  191. package/build/convert/stage/types.js.map +1 -0
  192. package/build/convert/stage.d.ts +4 -0
  193. package/build/convert/stage.d.ts.map +1 -0
  194. package/build/convert/stage.js +25 -0
  195. package/build/convert/stage.js.map +1 -0
  196. package/build/convert/taxonomy/types.d.ts +71 -0
  197. package/build/convert/taxonomy/types.d.ts.map +1 -0
  198. package/build/convert/taxonomy/types.js +2 -0
  199. package/build/convert/taxonomy/types.js.map +1 -0
  200. package/build/convert/types.d.ts +1 -657
  201. package/build/convert/types.d.ts.map +1 -1
  202. package/build/convert/utils.d.ts +2 -1
  203. package/build/convert/utils.d.ts.map +1 -1
  204. package/build/convert/utils.js +5 -4
  205. package/build/convert/utils.js.map +1 -1
  206. package/build/design/helpers.d.ts +9 -49
  207. package/build/design/helpers.d.ts.map +1 -1
  208. package/build/design/helpers.js +17 -224
  209. package/build/design/helpers.js.map +1 -1
  210. package/build/design/index.d.ts +3 -0
  211. package/build/design/index.d.ts.map +1 -1
  212. package/build/design/index.js +1 -0
  213. package/build/design/index.js.map +1 -1
  214. package/build/design/runtime/types.d.ts +16 -0
  215. package/build/design/runtime/types.d.ts.map +1 -0
  216. package/build/design/runtime/types.js +2 -0
  217. package/build/design/runtime/types.js.map +1 -0
  218. package/build/design/runtime.d.ts +6 -2
  219. package/build/design/runtime.d.ts.map +1 -1
  220. package/build/design/runtime.js +13 -5
  221. package/build/design/runtime.js.map +1 -1
  222. package/build/design/story/types.d.ts +67 -0
  223. package/build/design/story/types.d.ts.map +1 -0
  224. package/build/design/story/types.js +2 -0
  225. package/build/design/story/types.js.map +1 -0
  226. package/build/design/story.d.ts +4 -0
  227. package/build/design/story.d.ts.map +1 -0
  228. package/build/design/story.js +184 -0
  229. package/build/design/story.js.map +1 -0
  230. package/build/dev/types.local.d.ts +2 -1
  231. package/build/dev/types.local.d.ts.map +1 -1
  232. package/build/index.d.ts +1 -0
  233. package/build/index.d.ts.map +1 -1
  234. package/build/index.js +1 -0
  235. package/build/index.js.map +1 -1
  236. package/build/integrity/index.d.ts +4 -0
  237. package/build/integrity/index.d.ts.map +1 -1
  238. package/build/integrity/index.js +2 -0
  239. package/build/integrity/index.js.map +1 -1
  240. package/build/integrity/layout/consts.d.ts +59 -0
  241. package/build/integrity/layout/consts.d.ts.map +1 -0
  242. package/build/integrity/layout/consts.js +66 -0
  243. package/build/integrity/layout/consts.js.map +1 -0
  244. package/build/integrity/layout/consts.local.d.ts +18 -0
  245. package/build/integrity/layout/consts.local.d.ts.map +1 -0
  246. package/build/integrity/layout/consts.local.js +176 -0
  247. package/build/integrity/layout/consts.local.js.map +1 -0
  248. package/build/integrity/layout/types.d.ts +35 -0
  249. package/build/integrity/layout/types.d.ts.map +1 -0
  250. package/build/integrity/layout/types.js +2 -0
  251. package/build/integrity/layout/types.js.map +1 -0
  252. package/build/integrity/layout.d.ts +4 -0
  253. package/build/integrity/layout.d.ts.map +1 -0
  254. package/build/integrity/layout.js +25 -0
  255. package/build/integrity/layout.js.map +1 -0
  256. package/build/integrity/types.d.ts +3 -1
  257. package/build/integrity/types.d.ts.map +1 -1
  258. package/build/integrity/utils.d.ts +6 -81
  259. package/build/integrity/utils.d.ts.map +1 -1
  260. package/build/integrity/utils.js +11 -279
  261. package/build/integrity/utils.js.map +1 -1
  262. package/build/integrity/verify/types.d.ts +26 -0
  263. package/build/integrity/verify/types.d.ts.map +1 -0
  264. package/build/integrity/verify/types.js +2 -0
  265. package/build/integrity/verify/types.js.map +1 -0
  266. package/build/integrity/verify.d.ts +5 -19
  267. package/build/integrity/verify.d.ts.map +1 -1
  268. package/build/integrity/verify.js +164 -175
  269. package/build/integrity/verify.js.map +1 -1
  270. package/build/intent/consts.d.ts +16 -0
  271. package/build/intent/consts.d.ts.map +1 -1
  272. package/build/intent/consts.js +63 -0
  273. package/build/intent/consts.js.map +1 -1
  274. package/build/intent/entrypoints.d.ts +2 -11
  275. package/build/intent/entrypoints.d.ts.map +1 -1
  276. package/build/intent/entrypoints.js.map +1 -1
  277. package/build/intent/flow.d.ts.map +1 -1
  278. package/build/intent/flow.js +2 -2
  279. package/build/intent/flow.js.map +1 -1
  280. package/build/intent/index.d.ts +0 -1
  281. package/build/intent/index.d.ts.map +1 -1
  282. package/build/intent/index.js +0 -1
  283. package/build/intent/index.js.map +1 -1
  284. package/build/intent/types.d.ts +13 -2
  285. package/build/intent/types.d.ts.map +1 -1
  286. package/build/legal/consts.d.ts +36 -0
  287. package/build/legal/consts.d.ts.map +1 -0
  288. package/build/legal/consts.js +16 -0
  289. package/build/legal/consts.js.map +1 -0
  290. package/build/legal/index.d.ts +3 -0
  291. package/build/legal/index.d.ts.map +1 -0
  292. package/build/legal/index.js +2 -0
  293. package/build/legal/index.js.map +1 -0
  294. package/build/legal/types.d.ts +10 -0
  295. package/build/legal/types.d.ts.map +1 -0
  296. package/build/legal/types.js +2 -0
  297. package/build/legal/types.js.map +1 -0
  298. package/build/moderation/index.d.ts +2 -0
  299. package/build/moderation/index.d.ts.map +1 -1
  300. package/build/moderation/index.js +1 -0
  301. package/build/moderation/index.js.map +1 -1
  302. package/build/moderation/utils.d.ts +3 -15
  303. package/build/moderation/utils.d.ts.map +1 -1
  304. package/build/moderation/utils.js +5 -30
  305. package/build/moderation/utils.js.map +1 -1
  306. package/build/moderation/verdict/types.d.ts +24 -0
  307. package/build/moderation/verdict/types.d.ts.map +1 -0
  308. package/build/moderation/verdict/types.js +2 -0
  309. package/build/moderation/verdict/types.js.map +1 -0
  310. package/build/moderation/verdict.d.ts +4 -0
  311. package/build/moderation/verdict.d.ts.map +1 -0
  312. package/build/moderation/verdict.js +21 -0
  313. package/build/moderation/verdict.js.map +1 -0
  314. package/build/planning/card/types.d.ts +42 -0
  315. package/build/planning/card/types.d.ts.map +1 -0
  316. package/build/planning/card/types.js +2 -0
  317. package/build/planning/card/types.js.map +1 -0
  318. package/build/planning/card.d.ts +4 -0
  319. package/build/planning/card.d.ts.map +1 -0
  320. package/build/planning/card.js +51 -0
  321. package/build/planning/card.js.map +1 -0
  322. package/build/planning/flows.d.ts +34 -0
  323. package/build/planning/flows.d.ts.map +1 -0
  324. package/build/planning/flows.js +174 -0
  325. package/build/planning/flows.js.map +1 -0
  326. package/build/planning/helpers.d.ts +11 -37
  327. package/build/planning/helpers.d.ts.map +1 -1
  328. package/build/planning/helpers.js +24 -103
  329. package/build/planning/helpers.js.map +1 -1
  330. package/build/planning/index.d.ts +5 -0
  331. package/build/planning/index.d.ts.map +1 -1
  332. package/build/planning/index.js +2 -0
  333. package/build/planning/index.js.map +1 -1
  334. package/build/planning/landing/types.d.ts +16 -0
  335. package/build/planning/landing/types.d.ts.map +1 -0
  336. package/build/planning/landing/types.js +2 -0
  337. package/build/planning/landing/types.js.map +1 -0
  338. package/build/planning/landing.d.ts +5 -10
  339. package/build/planning/landing.d.ts.map +1 -1
  340. package/build/planning/landing.js +20 -22
  341. package/build/planning/landing.js.map +1 -1
  342. package/build/planning/schemas.d.ts +1 -5
  343. package/build/planning/schemas.d.ts.map +1 -1
  344. package/build/planning/schemas.js +3 -3
  345. package/build/planning/schemas.js.map +1 -1
  346. package/build/planning/spec/types.d.ts +22 -0
  347. package/build/planning/spec/types.d.ts.map +1 -0
  348. package/build/planning/spec/types.js +2 -0
  349. package/build/planning/spec/types.js.map +1 -0
  350. package/build/planning/spec.d.ts +4 -0
  351. package/build/planning/spec.d.ts.map +1 -0
  352. package/build/planning/spec.js +30 -0
  353. package/build/planning/spec.js.map +1 -0
  354. package/build/planning/types.d.ts +4 -3
  355. package/build/planning/types.d.ts.map +1 -1
  356. package/build/scaffold/consts.d.ts +40 -1
  357. package/build/scaffold/consts.d.ts.map +1 -1
  358. package/build/scaffold/consts.js +52 -0
  359. package/build/scaffold/consts.js.map +1 -1
  360. package/build/scaffold/helpers.d.ts +4 -16
  361. package/build/scaffold/helpers.d.ts.map +1 -1
  362. package/build/scaffold/helpers.js +9 -64
  363. package/build/scaffold/helpers.js.map +1 -1
  364. package/build/scaffold/index.d.ts +4 -0
  365. package/build/scaffold/index.d.ts.map +1 -1
  366. package/build/scaffold/index.js +2 -0
  367. package/build/scaffold/index.js.map +1 -1
  368. package/build/scaffold/landing/types.d.ts +48 -0
  369. package/build/scaffold/landing/types.d.ts.map +1 -0
  370. package/build/scaffold/landing/types.js +2 -0
  371. package/build/scaffold/landing/types.js.map +1 -0
  372. package/build/scaffold/landing.d.ts +4 -0
  373. package/build/scaffold/landing.d.ts.map +1 -0
  374. package/build/scaffold/landing.js +95 -0
  375. package/build/scaffold/landing.js.map +1 -0
  376. package/build/scaffold/schemas.d.ts +3 -2
  377. package/build/scaffold/schemas.d.ts.map +1 -1
  378. package/build/scaffold/schemas.js +177 -7
  379. package/build/scaffold/schemas.js.map +1 -1
  380. package/build/scaffold/share/types.d.ts +35 -0
  381. package/build/scaffold/share/types.d.ts.map +1 -0
  382. package/build/scaffold/share/types.js +2 -0
  383. package/build/scaffold/share/types.js.map +1 -0
  384. package/build/scaffold/share.d.ts +4 -0
  385. package/build/scaffold/share.d.ts.map +1 -0
  386. package/build/scaffold/share.js +42 -0
  387. package/build/scaffold/share.js.map +1 -0
  388. package/build/scaffold/types.d.ts +112 -2
  389. package/build/scaffold/types.d.ts.map +1 -1
  390. package/build/skills/consts.d.ts +42 -0
  391. package/build/skills/consts.d.ts.map +1 -1
  392. package/build/skills/consts.js +43 -0
  393. package/build/skills/consts.js.map +1 -1
  394. package/build/skills/index.d.ts +0 -1
  395. package/build/skills/index.d.ts.map +1 -1
  396. package/build/skills/index.js +0 -1
  397. package/build/skills/index.js.map +1 -1
  398. package/build/slot/command/types.d.ts +21 -0
  399. package/build/slot/command/types.d.ts.map +1 -0
  400. package/build/slot/command/types.js +2 -0
  401. package/build/slot/command/types.js.map +1 -0
  402. package/build/slot/command.d.ts +4 -0
  403. package/build/slot/command.d.ts.map +1 -0
  404. package/build/slot/command.js +31 -0
  405. package/build/slot/command.js.map +1 -0
  406. package/build/slot/helpers.d.ts +2 -16
  407. package/build/slot/helpers.d.ts.map +1 -1
  408. package/build/slot/helpers.js +5 -26
  409. package/build/slot/helpers.js.map +1 -1
  410. package/build/slot/index.d.ts +5 -0
  411. package/build/slot/index.d.ts.map +1 -1
  412. package/build/slot/index.js +2 -0
  413. package/build/slot/index.js.map +1 -1
  414. package/build/slot/layout/types.d.ts +17 -0
  415. package/build/slot/layout/types.d.ts.map +1 -0
  416. package/build/slot/layout/types.js +2 -0
  417. package/build/slot/layout/types.js.map +1 -0
  418. package/build/slot/layout.d.ts +4 -9
  419. package/build/slot/layout.d.ts.map +1 -1
  420. package/build/slot/layout.js +13 -15
  421. package/build/slot/layout.js.map +1 -1
  422. package/build/slot/origin/types.d.ts +23 -0
  423. package/build/slot/origin/types.d.ts.map +1 -0
  424. package/build/slot/origin/types.js +2 -0
  425. package/build/slot/origin/types.js.map +1 -0
  426. package/build/slot/origin.d.ts +4 -0
  427. package/build/slot/origin.d.ts.map +1 -0
  428. package/build/slot/origin.js +15 -0
  429. package/build/slot/origin.js.map +1 -0
  430. package/build/slot/types.d.ts.map +1 -1
  431. package/build/slot/utils.d.ts +3 -15
  432. package/build/slot/utils.d.ts.map +1 -1
  433. package/build/slot/utils.js +5 -40
  434. package/build/slot/utils.js.map +1 -1
  435. package/build/topology/card/types.d.ts +21 -0
  436. package/build/topology/card/types.d.ts.map +1 -0
  437. package/build/topology/card/types.js +2 -0
  438. package/build/topology/card/types.js.map +1 -0
  439. package/build/topology/card.d.ts +6 -13
  440. package/build/topology/card.d.ts.map +1 -1
  441. package/build/topology/card.js +83 -86
  442. package/build/topology/card.js.map +1 -1
  443. package/build/topology/helpers.d.ts +7 -33
  444. package/build/topology/helpers.d.ts.map +1 -1
  445. package/build/topology/helpers.js +15 -111
  446. package/build/topology/helpers.js.map +1 -1
  447. package/build/topology/index.d.ts +3 -0
  448. package/build/topology/index.d.ts.map +1 -1
  449. package/build/topology/index.js +1 -0
  450. package/build/topology/index.js.map +1 -1
  451. package/build/topology/resolve/types.d.ts +47 -0
  452. package/build/topology/resolve/types.d.ts.map +1 -0
  453. package/build/topology/resolve/types.js +2 -0
  454. package/build/topology/resolve/types.js.map +1 -0
  455. package/build/topology/resolve.d.ts +4 -0
  456. package/build/topology/resolve.d.ts.map +1 -0
  457. package/build/topology/resolve.js +89 -0
  458. package/build/topology/resolve.js.map +1 -0
  459. package/package.json +18 -11
  460. package/src/agent/index.ts +1 -0
  461. package/src/agent/presentation/types.ts +21 -0
  462. package/src/agent/presentation.ts +199 -165
  463. package/src/agent/types.local.ts +3 -1
  464. package/src/areas/index.ts +1 -0
  465. package/src/areas/tenancy/types.ts +23 -0
  466. package/src/areas/tenancy.ts +26 -25
  467. package/src/ba/connecting/types.ts +45 -0
  468. package/src/ba/connecting.ts +64 -0
  469. package/src/ba/helpers.ts +8 -92
  470. package/src/ba/index.ts +2 -0
  471. package/src/blueprint/types.ts +2 -2
  472. package/src/connect/branding/types.ts +29 -0
  473. package/src/connect/consts.ts +3 -0
  474. package/src/connect/conversion/types.ts +96 -0
  475. package/src/connect/entrypoints/types.ts +25 -0
  476. package/src/connect/entrypoints.ts +13 -2
  477. package/src/connect/errors/types.ts +22 -0
  478. package/src/connect/errors.ts +1 -1
  479. package/src/connect/index.ts +13 -3
  480. package/src/connect/kit/types.ts +56 -0
  481. package/src/connect/model-tier/types.ts +16 -0
  482. package/src/connect/model-tier.ts +22 -0
  483. package/src/connect/{ops.ts → ops/types.ts} +13 -3
  484. package/src/connect/pipeline/types.ts +41 -0
  485. package/src/connect/project/types.ts +127 -0
  486. package/src/connect/references/types.local.ts +5 -0
  487. package/src/connect/references/types.ts +73 -0
  488. package/src/connect/references.ts +13 -2
  489. package/src/connect/schemas.ts +9 -13
  490. package/src/connect/session/types.ts +81 -0
  491. package/src/connect/settings/types.ts +52 -0
  492. package/src/convert/analysis/types.ts +89 -0
  493. package/src/convert/{consts.local.ts → census/consts.local.ts} +1 -1
  494. package/src/convert/census/types.ts +181 -0
  495. package/src/convert/census.ts +95 -0
  496. package/src/convert/consts.ts +5 -0
  497. package/src/convert/detection/types.ts +74 -0
  498. package/src/convert/docs/types.ts +151 -0
  499. package/src/convert/docs.ts +15 -0
  500. package/src/convert/estimate/types.ts +75 -0
  501. package/src/convert/estimate.ts +19 -0
  502. package/src/convert/helpers.ts +29 -210
  503. package/src/convert/index.ts +14 -0
  504. package/src/convert/origin/types.ts +43 -0
  505. package/src/convert/origin.ts +33 -0
  506. package/src/convert/record/types.ts +105 -0
  507. package/src/convert/schemas.ts +13 -12
  508. package/src/convert/stage/types.ts +27 -0
  509. package/src/convert/stage.ts +31 -0
  510. package/src/convert/taxonomy/types.ts +74 -0
  511. package/src/convert/types.ts +5 -709
  512. package/src/convert/utils.ts +5 -6
  513. package/src/design/helpers.ts +20 -245
  514. package/src/design/index.ts +3 -0
  515. package/src/design/runtime/types.ts +14 -0
  516. package/src/design/runtime.ts +22 -7
  517. package/src/design/story/types.ts +67 -0
  518. package/src/design/story.ts +221 -0
  519. package/src/dev/types.local.ts +1 -1
  520. package/src/index.ts +1 -0
  521. package/src/integrity/index.ts +4 -0
  522. package/src/integrity/layout/consts.local.ts +188 -0
  523. package/src/integrity/layout/consts.ts +79 -0
  524. package/src/integrity/layout/types.ts +35 -0
  525. package/src/integrity/layout.ts +39 -0
  526. package/src/integrity/types.ts +3 -1
  527. package/src/integrity/utils.ts +14 -313
  528. package/src/integrity/verify/types.ts +26 -0
  529. package/src/integrity/verify.ts +177 -181
  530. package/src/intent/consts.ts +67 -0
  531. package/src/intent/entrypoints.ts +2 -2
  532. package/src/intent/index.ts +0 -1
  533. package/src/intent/types.ts +9 -2
  534. package/src/legal/consts.ts +17 -0
  535. package/src/legal/index.ts +2 -0
  536. package/src/legal/types.ts +11 -0
  537. package/src/moderation/index.ts +2 -0
  538. package/src/moderation/utils.ts +7 -30
  539. package/src/moderation/verdict/types.ts +22 -0
  540. package/src/moderation/verdict.ts +28 -0
  541. package/src/planning/card/types.ts +44 -0
  542. package/src/planning/card.ts +77 -0
  543. package/src/planning/helpers.ts +28 -116
  544. package/src/planning/index.ts +5 -0
  545. package/src/planning/landing/types.ts +15 -0
  546. package/src/planning/landing.ts +27 -24
  547. package/src/planning/schemas.ts +3 -3
  548. package/src/planning/spec/types.ts +22 -0
  549. package/src/planning/spec.ts +41 -0
  550. package/src/planning/types.ts +4 -4
  551. package/src/scaffold/consts.ts +65 -1
  552. package/src/scaffold/helpers.ts +14 -77
  553. package/src/scaffold/index.ts +4 -0
  554. package/src/scaffold/landing/types.ts +48 -0
  555. package/src/scaffold/landing.ts +120 -0
  556. package/src/scaffold/schemas.ts +183 -7
  557. package/src/scaffold/share/types.ts +35 -0
  558. package/src/scaffold/share.ts +60 -0
  559. package/src/scaffold/types.ts +120 -1
  560. package/src/skills/consts.ts +46 -0
  561. package/src/skills/index.ts +0 -1
  562. package/src/slot/command/types.ts +21 -0
  563. package/src/slot/command.ts +38 -0
  564. package/src/slot/helpers.ts +5 -25
  565. package/src/slot/index.ts +5 -0
  566. package/src/slot/layout/types.ts +17 -0
  567. package/src/slot/layout.ts +19 -16
  568. package/src/slot/origin/types.ts +23 -0
  569. package/src/slot/origin.ts +20 -0
  570. package/src/slot/types.ts +1 -0
  571. package/src/slot/utils.ts +8 -43
  572. package/src/topology/card/types.ts +21 -0
  573. package/src/topology/card.ts +84 -82
  574. package/src/topology/helpers.ts +20 -125
  575. package/src/topology/index.ts +3 -0
  576. package/src/topology/resolve/types.ts +47 -0
  577. package/src/topology/resolve.ts +118 -0
  578. package/tests/blueprint.spec.ts +1 -2
  579. package/tests/connect-errors.spec.ts +1 -1
  580. package/tests/convert.spec.ts +50 -50
  581. package/tests/design.spec.ts +13 -16
  582. package/tests/planning.spec.ts +57 -59
  583. package/tests/presentation.spec.ts +20 -20
  584. package/tests/scaffold.spec.ts +286 -6
  585. package/tests/tenancy.spec.ts +21 -21
  586. package/build/connect/types.local.d.ts +0 -4
  587. package/build/connect/types.local.d.ts.map +0 -1
  588. package/build/connect/types.local.js.map +0 -1
  589. package/build/connect/utils.d.ts +0 -12
  590. package/build/connect/utils.d.ts.map +0 -1
  591. package/build/connect/utils.js +0 -25
  592. package/build/connect/utils.js.map +0 -1
  593. package/build/convert/consts.local.d.ts.map +0 -1
  594. package/build/convert/consts.local.js.map +0 -1
  595. package/build/intent/consts.local.d.ts +0 -4
  596. package/build/intent/consts.local.d.ts.map +0 -1
  597. package/build/intent/consts.local.js +0 -3
  598. package/build/intent/consts.local.js.map +0 -1
  599. package/src/connect/types.local.ts +0 -5
  600. package/src/connect/types.ts +0 -589
  601. package/src/connect/utils.ts +0 -23
  602. package/src/intent/consts.local.ts +0 -3
  603. package/src/intent/flow.ts +0 -66
  604. package/src/skills/roles.ts +0 -46
  605. /package/build/connect/{types.local.js → references/types.local.js} +0 -0
@@ -1,41 +1,6 @@
1
- import { COMMAND_DEADLINES, COMMAND_TIMEOUTS, DEFAULT_COMMAND_DEADLINE, DEFAULT_COMMAND_TIMEOUT, DEFAULT_FILE_COMMAND_DEADLINE, DEFAULT_GIT_COMMAND_DEADLINE, FILE_COMMAND_DEADLINES, FILE_COMMAND_TIMEOUTS, GIT_COMMAND_DEADLINES, GIT_COMMAND_TIMEOUTS, SHELL_COMMAND_TIMEOUTS, SlotCommandType } from './consts.js';
2
- /** The per-command caller bound for one command, or nothing where its type's default is right. */
3
- const perCommandTimeout = (type, command) => {
4
- switch (type) {
5
- case SlotCommandType.Shell: return SHELL_COMMAND_TIMEOUTS[command];
6
- case SlotCommandType.Git: return GIT_COMMAND_TIMEOUTS[command];
7
- case SlotCommandType.Database: return COMMAND_TIMEOUTS[SlotCommandType.Database];
8
- default: return FILE_COMMAND_TIMEOUTS[command];
9
- }
10
- };
11
- /**
12
- * Resolve the caller-side bound for one command.
13
- *
14
- * One function rather than three lookups at each call site: an asker that forgets the per-command
15
- * table inherits twenty minutes for a fifteen-second command, which is the failure this table was
16
- * added to stop.
17
- */
18
- export const commandTimeout = (type, command, override) => override
19
- ?? perCommandTimeout(type, command)
20
- ?? COMMAND_TIMEOUTS[type]
21
- ?? DEFAULT_COMMAND_TIMEOUT;
22
- /**
23
- * Resolve the executor-side deadline for one command.
24
- *
25
- * Per-command first, per-type second. It was per-type only, which is how a clone inherited the
26
- * bound of a `git status` — the same shape as the shell table above, and added for the same
27
- * reason.
28
- */
29
- export const commandDeadline = (type, command) => {
30
- switch (type) {
31
- case SlotCommandType.Shell:
32
- return COMMAND_DEADLINES[command] ?? DEFAULT_COMMAND_DEADLINE;
33
- case SlotCommandType.Git:
34
- return GIT_COMMAND_DEADLINES[command] ?? DEFAULT_GIT_COMMAND_DEADLINE;
35
- case SlotCommandType.Database:
36
- return 30_000;
37
- default:
38
- return FILE_COMMAND_DEADLINES[command] ?? DEFAULT_FILE_COMMAND_DEADLINE;
39
- }
40
- };
1
+ import { slotCommandHelper } from './command.js';
2
+ /** @deprecated compat:factory-refactor — use `slotCommandHelper.commandTimeout(…)` */
3
+ export const commandTimeout = (type, command, override) => slotCommandHelper.commandTimeout(type, command, override);
4
+ /** @deprecated compat:factory-refactor — use `slotCommandHelper.commandDeadline(…)` */
5
+ export const commandDeadline = (type, command) => slotCommandHelper.commandDeadline(type, command);
41
6
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/slot/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,eAAe,EAAmC,MAAM,aAAa,CAAA;AAEvV,kGAAkG;AAClG,MAAM,iBAAiB,GAAG,CAAC,IAAqB,EAAE,OAAe,EAAsB,EAAE;IACvF,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,eAAe,CAAC,KAAK,EAAE,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAA;QAClE,KAAK,eAAe,CAAC,GAAG,EAAE,OAAO,oBAAoB,CAAC,OAAyB,CAAC,CAAA;QAChF,KAAK,eAAe,CAAC,QAAQ,EAAE,OAAO,gBAAgB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;QAChF,SAAS,OAAO,qBAAqB,CAAC,OAA0B,CAAC,CAAA;IACnE,CAAC;AACH,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,IAAqB,EAAE,OAAe,EAAE,QAAiB,EACjD,EAAE,CAAC,QAAQ;OAChB,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC;OAChC,gBAAgB,CAAC,IAAI,CAAC;OACtB,uBAAuB,CAAA;AAE5B;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAqB,EAAE,OAAe,EAAU,EAAE;IAChF,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,eAAe,CAAC,KAAK;YACxB,OAAO,iBAAiB,CAAC,OAAO,CAAC,IAAI,wBAAwB,CAAA;QAC/D,KAAK,eAAe,CAAC,GAAG;YACtB,OAAO,qBAAqB,CAAC,OAAyB,CAAC,IAAI,4BAA4B,CAAA;QACzF,KAAK,eAAe,CAAC,QAAQ;YAC3B,OAAO,MAAM,CAAA;QACf;YACE,OAAO,sBAAsB,CAAC,OAA0B,CAAC,IAAI,6BAA6B,CAAA;IAC9F,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/slot/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAGhD,sFAAsF;AACtF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAqB,EAAE,OAAe,EAAE,QAAiB,EAAU,EAAE,CAClG,iBAAiB,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;AAE3D,uFAAuF;AACvF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAqB,EAAE,OAAe,EAAU,EAAE,CAChF,iBAAiB,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA"}
@@ -0,0 +1,21 @@
1
+ import type { TopologyDescriptor, TopologyMeta } from '../types.js';
2
+ /** The topology file `.agents/memory/topology.md`: its frontmatter, read and written, and its body. */
3
+ export interface TopologyCardHelper {
4
+ /**
5
+ * Narrow a parsed frontmatter block into a topology, or answer `null`.
6
+ *
7
+ * `null` means "use the layout default", and every caller treats it that way. A topology file
8
+ * written by a platform version this one cannot read must not stop a project from building — the
9
+ * arrangement it describes is almost certainly still the default one.
10
+ */
11
+ parseTopologyMeta: (data: unknown) => TopologyDescriptor | null;
12
+ topologyMeta: (topology: TopologyDescriptor) => TopologyMeta;
13
+ /**
14
+ * The body of `.agents/memory/topology.md` — what a model reads, and what a person reads.
15
+ *
16
+ * Rendered from the descriptor rather than maintained beside it, for the same reason the layout
17
+ * tables are: a card that disagrees with the frontmatter teaches the wrong tree.
18
+ */
19
+ renderTopologyCard: (topology: TopologyDescriptor) => string;
20
+ }
21
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/topology/card/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEnE,uGAAuG;AACvG,MAAM,WAAW,kBAAkB;IACjC;;;;;;OAMG;IACH,iBAAiB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,kBAAkB,GAAG,IAAI,CAAA;IAC/D,YAAY,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,YAAY,CAAA;IAC5D;;;;;OAKG;IACH,kBAAkB,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,MAAM,CAAA;CAC7D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/topology/card/types.ts"],"names":[],"mappings":""}
@@ -1,18 +1,11 @@
1
1
  import type { TopologyDescriptor, TopologyMeta } from './types.js';
2
- /**
3
- * Narrow a parsed frontmatter block into a topology, or answer `null`.
4
- *
5
- * `null` means "use the layout default", and every caller treats it that way. A topology file
6
- * written by a platform version this one cannot read must not stop a project from building — the
7
- * arrangement it describes is almost certainly still the default one.
8
- */
2
+ import type { TopologyCardHelper } from './card/types.js';
3
+ export declare const createTopologyCardHelper: () => TopologyCardHelper;
4
+ export declare const topologyCardHelper: TopologyCardHelper;
5
+ /** @deprecated compat:factory-refactor — use `topologyCardHelper.parseTopologyMeta(…)` */
9
6
  export declare const parseTopologyMeta: (data: unknown) => TopologyDescriptor | null;
7
+ /** @deprecated compat:factory-refactor — use `topologyCardHelper.topologyMeta(…)` */
10
8
  export declare const topologyMeta: (topology: TopologyDescriptor) => TopologyMeta;
11
- /**
12
- * The body of `.agents/memory/topology.md` — what a model reads, and what a person reads.
13
- *
14
- * Rendered from the descriptor rather than maintained beside it, for the same reason the layout
15
- * tables are: a card that disagrees with the frontmatter teaches the wrong tree.
16
- */
9
+ /** @deprecated compat:factory-refactor — use `topologyCardHelper.renderTopologyCard(…)` */
17
10
  export declare const renderTopologyCard: (topology: TopologyDescriptor) => string;
18
11
  //# sourceMappingURL=card.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../src/topology/card.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAA8C,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAoC9G;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,SAAU,OAAO,KAAG,kBAAkB,GAAG,IActE,CAAA;AAED,eAAO,MAAM,YAAY,aAAc,kBAAkB,KAAG,YAK1D,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,aAAc,kBAAkB,KAAG,MAuBjE,CAAA"}
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../src/topology/card.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAA8C,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEzD,eAAO,MAAM,wBAAwB,QAAO,kBAkF3C,CAAA;AAED,eAAO,MAAM,kBAAkB,oBAA6B,CAAA;AAE5D,0FAA0F;AAC1F,eAAO,MAAM,iBAAiB,SAAU,OAAO,KAAG,kBAAkB,GAAG,IAAkD,CAAA;AAEzH,qFAAqF;AACrF,eAAO,MAAM,YAAY,aAAc,kBAAkB,KAAG,YAAyD,CAAA;AAErH,2FAA2F;AAC3F,eAAO,MAAM,kBAAkB,aAAc,kBAAkB,KAAG,MAAyD,CAAA"}
@@ -1,93 +1,90 @@
1
1
  import { TOPOLOGY_VERSION } from './consts.js';
2
- import { orderPackages } from './helpers.js';
2
+ import { topologyHelper } from './resolve.js';
3
3
  import { KINDS, ROLES } from './consts.local.js';
4
- const asStrings = (value) => Array.isArray(value) ? value.filter((item) => typeof item === 'string') : [];
5
- /**
6
- * Read a package descriptor out of whatever the file held.
7
- *
8
- * Everything is narrowed rather than trusted: the file is on the target's volume, where a person,
9
- * a GitHub pull or a previous platform version may have written it. A descriptor that cannot be
10
- * narrowed is DROPPED, never repaired — a package with no name or no recognisable role would
11
- * otherwise resolve a path somewhere real and wrong.
12
- */
13
- const parsePackage = (value) => {
14
- if (value == null || typeof value !== 'object')
15
- return null;
16
- const raw = value;
17
- const name = typeof raw.name === 'string' ? raw.name.trim() : '';
18
- if (name === '' || name.includes('/') || name.startsWith('.'))
19
- return null;
20
- const roles = asStrings(raw.roles).filter((role) => ROLES.has(role));
21
- if (roles.length === 0)
22
- return null;
23
- const kind = KINDS.has(raw.kind) ? raw.kind : 'bundle';
24
- const areas = asStrings(raw.areas);
25
- const queues = asStrings(raw.queues);
26
- return {
27
- name,
28
- roles,
29
- kind,
30
- dependsOn: asStrings(raw.dependsOn),
31
- ...(areas.length > 0 ? { areas: areas } : {}),
32
- ...(queues.length > 0 ? { queues } : {}),
4
+ export const createTopologyCardHelper = () => {
5
+ const asStrings = (value) => Array.isArray(value) ? value.filter((item) => typeof item === 'string') : [];
6
+ /**
7
+ * Read a package descriptor out of whatever the file held.
8
+ *
9
+ * Everything is narrowed rather than trusted: the file is on the target's volume, where a person,
10
+ * a GitHub pull or a previous platform version may have written it. A descriptor that cannot be
11
+ * narrowed is DROPPED, never repaired — a package with no name or no recognisable role would
12
+ * otherwise resolve a path somewhere real and wrong.
13
+ */
14
+ const parsePackage = (value) => {
15
+ if (value == null || typeof value !== 'object')
16
+ return null;
17
+ const raw = value;
18
+ const name = typeof raw.name === 'string' ? raw.name.trim() : '';
19
+ if (name === '' || name.includes('/') || name.startsWith('.'))
20
+ return null;
21
+ const roles = asStrings(raw.roles).filter((role) => ROLES.has(role));
22
+ if (roles.length === 0)
23
+ return null;
24
+ const kind = KINDS.has(raw.kind) ? raw.kind : 'bundle';
25
+ const areas = asStrings(raw.areas);
26
+ const queues = asStrings(raw.queues);
27
+ return {
28
+ name,
29
+ roles,
30
+ kind,
31
+ dependsOn: asStrings(raw.dependsOn),
32
+ ...(areas.length > 0 ? { areas: areas } : {}),
33
+ ...(queues.length > 0 ? { queues } : {}),
34
+ };
33
35
  };
34
- };
35
- /**
36
- * Narrow a parsed frontmatter block into a topology, or answer `null`.
37
- *
38
- * `null` means "use the layout default", and every caller treats it that way. A topology file
39
- * written by a platform version this one cannot read must not stop a project from building — the
40
- * arrangement it describes is almost certainly still the default one.
41
- */
42
- export const parseTopologyMeta = (data) => {
43
- if (data == null || typeof data !== 'object')
44
- return null;
45
- const raw = data;
46
- if (typeof raw.dir !== 'string' || raw.dir.trim() === '')
47
- return null;
48
- const packages = Array.isArray(raw.packages)
49
- ? raw.packages.map(parsePackage).filter((pkg) => pkg != null)
50
- : [];
51
- if (packages.length === 0)
52
- return null;
53
- return {
54
- id: typeof raw.id === 'string' && raw.id !== '' ? raw.id : 'recorded',
55
- dir: raw.dir.trim(),
56
- packages,
36
+ const parseTopologyMeta = (data) => {
37
+ if (data == null || typeof data !== 'object')
38
+ return null;
39
+ const raw = data;
40
+ if (typeof raw.dir !== 'string' || raw.dir.trim() === '')
41
+ return null;
42
+ const packages = Array.isArray(raw.packages)
43
+ ? raw.packages.map(parsePackage).filter((pkg) => pkg != null)
44
+ : [];
45
+ if (packages.length === 0)
46
+ return null;
47
+ return {
48
+ id: typeof raw.id === 'string' && raw.id !== '' ? raw.id : 'recorded',
49
+ dir: raw.dir.trim(),
50
+ packages,
51
+ };
57
52
  };
58
- };
59
- export const topologyMeta = (topology) => ({
60
- ...topology,
61
- packages: orderPackages(topology.packages),
62
- version: TOPOLOGY_VERSION,
63
- updatedAt: new Date().toISOString(),
64
- });
65
- /**
66
- * The body of `.agents/memory/topology.md` — what a model reads, and what a person reads.
67
- *
68
- * Rendered from the descriptor rather than maintained beside it, for the same reason the layout
69
- * tables are: a card that disagrees with the frontmatter teaches the wrong tree.
70
- */
71
- export const renderTopologyCard = (topology) => {
72
- const ordered = orderPackages(topology.packages);
73
- const rows = ordered.map(pkg => {
74
- const deps = pkg.dependsOn.length > 0 ? pkg.dependsOn.join(', ') : '—';
75
- const extra = [
76
- ...(pkg.areas != null ? [`areas: ${pkg.areas.join(', ')}`] : []),
77
- ...(pkg.queues != null ? [`queues: ${pkg.queues.join(', ')}`] : []),
78
- ].join('; ');
79
- return `| \`${topology.dir}/${pkg.name}\` | ${pkg.roles.join(', ')} | ${pkg.kind} | ${deps} | ${extra === '' ? '—' : extra} |`;
53
+ const topologyMeta = (topology) => ({
54
+ ...topology,
55
+ packages: topologyHelper.orderPackages(topology.packages),
56
+ version: TOPOLOGY_VERSION,
57
+ updatedAt: new Date().toISOString(),
80
58
  });
81
- return [
82
- '# Topology',
83
- '',
84
- 'Which packages this project has, what each one is, and which compile against which.',
85
- 'Built in the order of the table — a `library` must be built before anything importing it.',
86
- '',
87
- '| Package | Roles | Kind | Depends on | Notes |',
88
- '|---|---|---|---|---|',
89
- ...rows,
90
- '',
91
- ].join('\n');
59
+ const renderTopologyCard = (topology) => {
60
+ const ordered = topologyHelper.orderPackages(topology.packages);
61
+ const rows = ordered.map(pkg => {
62
+ const deps = pkg.dependsOn.length > 0 ? pkg.dependsOn.join(', ') : '—';
63
+ const extra = [
64
+ ...(pkg.areas != null ? [`areas: ${pkg.areas.join(', ')}`] : []),
65
+ ...(pkg.queues != null ? [`queues: ${pkg.queues.join(', ')}`] : []),
66
+ ].join('; ');
67
+ return `| \`${topology.dir}/${pkg.name}\` | ${pkg.roles.join(', ')} | ${pkg.kind} | ${deps} | ${extra === '' ? '—' : extra} |`;
68
+ });
69
+ return [
70
+ '# Topology',
71
+ '',
72
+ 'Which packages this project has, what each one is, and which compile against which.',
73
+ 'Built in the order of the table — a `library` must be built before anything importing it.',
74
+ '',
75
+ '| Package | Roles | Kind | Depends on | Notes |',
76
+ '|---|---|---|---|---|',
77
+ ...rows,
78
+ '',
79
+ ].join('\n');
80
+ };
81
+ return { parseTopologyMeta, topologyMeta, renderTopologyCard };
92
82
  };
83
+ export const topologyCardHelper = createTopologyCardHelper();
84
+ /** @deprecated compat:factory-refactor — use `topologyCardHelper.parseTopologyMeta(…)` */
85
+ export const parseTopologyMeta = (data) => topologyCardHelper.parseTopologyMeta(data);
86
+ /** @deprecated compat:factory-refactor — use `topologyCardHelper.topologyMeta(…)` */
87
+ export const topologyMeta = (topology) => topologyCardHelper.topologyMeta(topology);
88
+ /** @deprecated compat:factory-refactor — use `topologyCardHelper.renderTopologyCard(…)` */
89
+ export const renderTopologyCard = (topology) => topologyCardHelper.renderTopologyCard(topology);
93
90
  //# sourceMappingURL=card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"card.js","sourceRoot":"","sources":["../../src/topology/card.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"card.js","sourceRoot":"","sources":["../../src/topology/card.ts"],"names":[],"mappings":"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"}
@@ -1,44 +1,18 @@
1
- import { TargetLayout } from '../integrity/consts.js';
2
1
  import type { ProjectArea } from '../areas/consts.js';
3
2
  import type { SubProject } from '../slot/consts.js';
4
3
  import type { ResolvedTopology, TargetPackageDescriptor, TopologyDescriptor } from './types.js';
5
- /**
6
- * Order the packages so that nothing is built before what it compiles against.
7
- *
8
- * Kahn's algorithm, with two deliberate tolerances. An edge to a package the topology does not
9
- * hold is DROPPED rather than fatal — a project may declare a dependency on something a pull has
10
- * not brought in yet, and refusing to order the tree would take the whole build down over one
11
- * name. A cycle leaves its members unvisited, and they are appended in declaration order: a cycle
12
- * cannot be built correctly in any order, so the useful behaviour is to build it in the order
13
- * somebody wrote rather than to throw.
14
- */
4
+ /** @deprecated compat:factory-refactor — use `topologyHelper.orderPackages(…)` */
15
5
  export declare const orderPackages: (packages: TargetPackageDescriptor[]) => TargetPackageDescriptor[];
16
- /** Resolve the derived halves — build order, library order and the role index. */
6
+ /** @deprecated compat:factory-refactor — use `topologyHelper.resolveTopology(…)` */
17
7
  export declare const resolveTopology: (topology: TopologyDescriptor) => ResolvedTopology;
18
- /** The default topology for a layout already decided. */
19
- export declare const topologyOf: (layout: TargetLayout) => TopologyDescriptor;
20
- /**
21
- * The directory a role names, or `null` when this topology has no package for it.
22
- *
23
- * `null` rather than the role's own name: a command aimed at a package the tree does not have must
24
- * fail where it is issued. Answering with a plausible directory runs it somewhere real and wrong,
25
- * which is how a type check once ran against the shared package instead of the one under repair.
26
- */
8
+ /** @deprecated compat:factory-refactor — use `topologyHelper.packageForRole(…)` */
27
9
  export declare const packageForRole: (topology: ResolvedTopology, role: SubProject) => TargetPackageDescriptor | null;
28
- /** Every package holding a role — more than one only where a topology splits that role. */
29
- export declare const packagesForRole: (topology: ResolvedTopology, role: SubProject) => TargetPackageDescriptor[];
30
- /** The package serving an area, for a topology that splits the browser app across several. */
10
+ /** @deprecated compat:factory-refactor — use `topologyHelper.packageForArea(…)` */
31
11
  export declare const packageForArea: (topology: ResolvedTopology, role: SubProject, area: ProjectArea) => TargetPackageDescriptor | null;
32
- /** `<dir>/<package>` — the only place a topology directory is composed. */
12
+ /** @deprecated compat:factory-refactor — use `topologyHelper.packageDir(…)` */
33
13
  export declare const packageDir: (topology: TopologyDescriptor, pkg: TargetPackageDescriptor) => string;
34
- /**
35
- * Merge a package into a topology, by name.
36
- *
37
- * This is the ADOPTION path: a package that arrived with a GitHub pull is classified once and
38
- * recorded here, so the next run addresses the tree that exists rather than re-deriving one that
39
- * does not. Replacing by name rather than appending keeps a re-classification idempotent.
40
- */
14
+ /** @deprecated compat:factory-refactor — use `topologyHelper.withPackage(…)` */
41
15
  export declare const withPackage: (topology: TopologyDescriptor, pkg: TargetPackageDescriptor) => TopologyDescriptor;
42
- /** Whether two topologies describe the same arrangement — used to skip a needless rewrite. */
16
+ /** @deprecated compat:factory-refactor — use `topologyHelper.sameTopology(…)` */
43
17
  export declare const sameTopology: (a: TopologyDescriptor, b: TopologyDescriptor) => boolean;
44
18
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/topology/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,KAAK,EACV,gBAAgB,EAAE,uBAAuB,EAAE,kBAAkB,EAC9D,MAAM,YAAY,CAAA;AAEnB;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,aAAc,uBAAuB,EAAE,KAAG,uBAAuB,EA4C1F,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,eAAe,aAAc,kBAAkB,KAAG,gBAgB9D,CAAA;AAED,yDAAyD;AACzD,eAAO,MAAM,UAAU,WAAY,YAAY,KAAG,kBACH,CAAA;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,aACf,gBAAgB,QAAQ,UAAU,KAC3C,uBAAuB,GAAG,IAA0C,CAAA;AAEvE,2FAA2F;AAC3F,eAAO,MAAM,eAAe,aAChB,gBAAgB,QAAQ,UAAU,KAC3C,uBAAuB,EAAiC,CAAA;AAE3D,8FAA8F;AAC9F,eAAO,MAAM,cAAc,aACf,gBAAgB,QAAQ,UAAU,QAAQ,WAAW,KAC9D,uBAAuB,GAAG,IAM5B,CAAA;AAED,2EAA2E;AAC3E,eAAO,MAAM,UAAU,aAAc,kBAAkB,OAAO,uBAAuB,KAAG,MACzD,CAAA;AAE/B;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,aACZ,kBAAkB,OAAO,uBAAuB,KACzD,kBAKD,CAAA;AAEF,8FAA8F;AAC9F,eAAO,MAAM,YAAY,MAAO,kBAAkB,KAAK,kBAAkB,KAAG,OAEtD,CAAA"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/topology/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/F,kFAAkF;AAClF,eAAO,MAAM,aAAa,aAAc,uBAAuB,EAAE,KAAG,uBAAuB,EACnD,CAAA;AAExC,oFAAoF;AACpF,eAAO,MAAM,eAAe,aAAc,kBAAkB,KAAG,gBACrB,CAAA;AAE1C,mFAAmF;AACnF,eAAO,MAAM,cAAc,aAAc,gBAAgB,QAAQ,UAAU,KAAG,uBAAuB,GAAG,IACzD,CAAA;AAE/C,mFAAmF;AACnF,eAAO,MAAM,cAAc,aACf,gBAAgB,QAAQ,UAAU,QAAQ,WAAW,KAC9D,uBAAuB,GAAG,IAA2D,CAAA;AAExF,+EAA+E;AAC/E,eAAO,MAAM,UAAU,aAAc,kBAAkB,OAAO,uBAAuB,KAAG,MAC9C,CAAA;AAE1C,gFAAgF;AAChF,eAAO,MAAM,WAAW,aAAc,kBAAkB,OAAO,uBAAuB,KAAG,kBAC9C,CAAA;AAE3C,iFAAiF;AACjF,eAAO,MAAM,YAAY,MAAO,kBAAkB,KAAK,kBAAkB,KAAG,OACzC,CAAA"}
@@ -1,112 +1,16 @@
1
- import { LAYOUT_TOPOLOGIES, DEFAULT_TOPOLOGY } from './consts.js';
2
- /**
3
- * Order the packages so that nothing is built before what it compiles against.
4
- *
5
- * Kahn's algorithm, with two deliberate tolerances. An edge to a package the topology does not
6
- * hold is DROPPED rather than fatal — a project may declare a dependency on something a pull has
7
- * not brought in yet, and refusing to order the tree would take the whole build down over one
8
- * name. A cycle leaves its members unvisited, and they are appended in declaration order: a cycle
9
- * cannot be built correctly in any order, so the useful behaviour is to build it in the order
10
- * somebody wrote rather than to throw.
11
- */
12
- export const orderPackages = (packages) => {
13
- const known = new Set(packages.map(pkg => pkg.name));
14
- const index = new Map(packages.map((pkg, at) => [pkg.name, at]));
15
- const pending = new Map(packages.map(pkg => [
16
- pkg.name, pkg.dependsOn.filter(dep => known.has(dep) && dep !== pkg.name).length,
17
- ]));
18
- const dependents = new Map();
19
- for (const pkg of packages) {
20
- for (const dep of pkg.dependsOn) {
21
- if (!known.has(dep) || dep === pkg.name)
22
- continue;
23
- dependents.set(dep, [...dependents.get(dep) ?? [], pkg.name]);
24
- }
25
- }
26
- const byName = new Map(packages.map(pkg => [pkg.name, pkg]));
27
- const out = [];
28
- // Ready packages are taken in DECLARATION order, not in the order they became ready. Both are
29
- // correct builds; only one is the same list every time and the same list a person wrote, and
30
- // this order is compared against the shipped layout tables by a test.
31
- const ready = packages.filter(pkg => pending.get(pkg.name) === 0).map(pkg => pkg.name);
32
- const take = () => {
33
- if (ready.length === 0)
34
- return undefined;
35
- let at = 0;
36
- for (let i = 1; i < ready.length; i++) {
37
- if ((index.get(ready[i]) ?? 0) < (index.get(ready[at]) ?? 0))
38
- at = i;
39
- }
40
- return ready.splice(at, 1)[0];
41
- };
42
- for (let name = take(); name != null; name = take()) {
43
- const pkg = byName.get(name);
44
- if (pkg == null)
45
- continue;
46
- out.push(pkg);
47
- for (const next of dependents.get(name) ?? []) {
48
- const left = (pending.get(next) ?? 0) - 1;
49
- pending.set(next, left);
50
- if (left === 0)
51
- ready.push(next);
52
- }
53
- }
54
- const seen = new Set(out.map(pkg => pkg.name));
55
- return [...out, ...packages.filter(pkg => !seen.has(pkg.name))];
56
- };
57
- /** Resolve the derived halves — build order, library order and the role index. */
58
- export const resolveTopology = (topology) => {
59
- const ordered = orderPackages(topology.packages);
60
- const byRole = {};
61
- for (const pkg of ordered) {
62
- for (const role of pkg.roles) {
63
- byRole[role] = [...byRole[role] ?? [], pkg];
64
- }
65
- }
66
- return {
67
- ...topology,
68
- packages: ordered,
69
- build: ordered.map(pkg => pkg.name),
70
- libraries: ordered.filter(pkg => pkg.kind === 'library').map(pkg => pkg.name),
71
- byRole,
72
- };
73
- };
74
- /** The default topology for a layout already decided. */
75
- export const topologyOf = (layout) => LAYOUT_TOPOLOGIES[layout] ?? DEFAULT_TOPOLOGY;
76
- /**
77
- * The directory a role names, or `null` when this topology has no package for it.
78
- *
79
- * `null` rather than the role's own name: a command aimed at a package the tree does not have must
80
- * fail where it is issued. Answering with a plausible directory runs it somewhere real and wrong,
81
- * which is how a type check once ran against the shared package instead of the one under repair.
82
- */
83
- export const packageForRole = (topology, role) => topology.byRole[role]?.[0] ?? null;
84
- /** Every package holding a role — more than one only where a topology splits that role. */
85
- export const packagesForRole = (topology, role) => topology.byRole[role] ?? [];
86
- /** The package serving an area, for a topology that splits the browser app across several. */
87
- export const packageForArea = (topology, role, area) => {
88
- const candidates = packagesForRole(topology, role);
89
- return candidates.find(pkg => pkg.areas?.includes(area) === true)
90
- ?? candidates.find(pkg => pkg.areas == null)
91
- ?? candidates[0]
92
- ?? null;
93
- };
94
- /** `<dir>/<package>` — the only place a topology directory is composed. */
95
- export const packageDir = (topology, pkg) => `${topology.dir}/${pkg.name}`;
96
- /**
97
- * Merge a package into a topology, by name.
98
- *
99
- * This is the ADOPTION path: a package that arrived with a GitHub pull is classified once and
100
- * recorded here, so the next run addresses the tree that exists rather than re-deriving one that
101
- * does not. Replacing by name rather than appending keeps a re-classification idempotent.
102
- */
103
- export const withPackage = (topology, pkg) => ({
104
- ...topology,
105
- packages: topology.packages.some(known => known.name === pkg.name)
106
- ? topology.packages.map(known => known.name === pkg.name ? pkg : known)
107
- : [...topology.packages, pkg],
108
- });
109
- /** Whether two topologies describe the same arrangement — used to skip a needless rewrite. */
110
- export const sameTopology = (a, b) => JSON.stringify(orderPackages(a.packages)) === JSON.stringify(orderPackages(b.packages))
111
- && a.dir === b.dir;
1
+ import { topologyHelper } from './resolve.js';
2
+ /** @deprecated compat:factory-refactor — use `topologyHelper.orderPackages(…)` */
3
+ export const orderPackages = (packages) => topologyHelper.orderPackages(packages);
4
+ /** @deprecated compat:factory-refactor — use `topologyHelper.resolveTopology(…)` */
5
+ export const resolveTopology = (topology) => topologyHelper.resolveTopology(topology);
6
+ /** @deprecated compat:factory-refactor — use `topologyHelper.packageForRole(…)` */
7
+ export const packageForRole = (topology, role) => topologyHelper.packageForRole(topology, role);
8
+ /** @deprecated compat:factory-refactor — use `topologyHelper.packageForArea(…)` */
9
+ export const packageForArea = (topology, role, area) => topologyHelper.packageForArea(topology, role, area);
10
+ /** @deprecated compat:factory-refactor — use `topologyHelper.packageDir(…)` */
11
+ export const packageDir = (topology, pkg) => topologyHelper.packageDir(topology, pkg);
12
+ /** @deprecated compat:factory-refactor — use `topologyHelper.withPackage(…)` */
13
+ export const withPackage = (topology, pkg) => topologyHelper.withPackage(topology, pkg);
14
+ /** @deprecated compat:factory-refactor — use `topologyHelper.sameTopology(…)` */
15
+ export const sameTopology = (a, b) => topologyHelper.sameTopology(a, b);
112
16
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/topology/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/topology/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAG7C,kFAAkF;AAClF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAmC,EAA6B,EAAE,CAC9F,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;AAExC,oFAAoF;AACpF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAA4B,EAAoB,EAAE,CAChF,cAAc,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;AAE1C,mFAAmF;AACnF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAA0B,EAAE,IAAgB,EAAkC,EAAE,CAC7G,cAAc,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;AAE/C,mFAAmF;AACnF,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,QAA0B,EAAE,IAAgB,EAAE,IAAiB,EAC/B,EAAE,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAExF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAA4B,EAAE,GAA4B,EAAU,EAAE,CAC/F,cAAc,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AAE1C,gFAAgF;AAChF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAA4B,EAAE,GAA4B,EAAsB,EAAE,CAC5G,cAAc,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AAE3C,iFAAiF;AACjF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAqB,EAAE,CAAqB,EAAW,EAAE,CACpF,cAAc,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA"}
@@ -1,5 +1,8 @@
1
1
  export type * from './types.js';
2
+ export type * from './resolve/types.js';
3
+ export type * from './card/types.js';
2
4
  export * from './consts.js';
5
+ export * from './resolve.js';
3
6
  export * from './helpers.js';
4
7
  export * from './card.js';
5
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/topology/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAA;AAE/B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/topology/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAA;AAC/B,mBAAmB,oBAAoB,CAAA;AACvC,mBAAmB,iBAAiB,CAAA;AAEpC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export * from './consts.js';
2
+ export * from './resolve.js';
2
3
  export * from './helpers.js';
3
4
  export * from './card.js';
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/topology/index.ts"],"names":[],"mappings":"AAEA,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/topology/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA"}
@@ -0,0 +1,47 @@
1
+ import type { ProjectArea } from '../../areas/consts.js';
2
+ import type { TargetLayout } from '../../integrity/consts.js';
3
+ import type { SubProject } from '../../slot/consts.js';
4
+ import type { ResolvedTopology, TargetPackageDescriptor, TopologyDescriptor } from '../types.js';
5
+ /** A target's package arrangement: build order, the role index, and where each package lives. */
6
+ export interface TopologyHelper {
7
+ /**
8
+ * Order the packages so that nothing is built before what it compiles against.
9
+ *
10
+ * Kahn's algorithm, with two deliberate tolerances. An edge to a package the topology does not
11
+ * hold is DROPPED rather than fatal — a project may declare a dependency on something a pull has
12
+ * not brought in yet, and refusing to order the tree would take the whole build down over one
13
+ * name. A cycle leaves its members unvisited, and they are appended in declaration order: a cycle
14
+ * cannot be built correctly in any order, so the useful behaviour is to build it in the order
15
+ * somebody wrote rather than to throw.
16
+ */
17
+ orderPackages: (packages: TargetPackageDescriptor[]) => TargetPackageDescriptor[];
18
+ /** Resolve the derived halves — build order, library order and the role index. */
19
+ resolveTopology: (topology: TopologyDescriptor) => ResolvedTopology;
20
+ /** The default topology for a layout already decided. */
21
+ topologyOf: (layout: TargetLayout) => TopologyDescriptor;
22
+ /**
23
+ * The directory a role names, or `null` when this topology has no package for it.
24
+ *
25
+ * `null` rather than the role's own name: a command aimed at a package the tree does not have must
26
+ * fail where it is issued. Answering with a plausible directory runs it somewhere real and wrong,
27
+ * which is how a type check once ran against the shared package instead of the one under repair.
28
+ */
29
+ packageForRole: (topology: ResolvedTopology, role: SubProject) => TargetPackageDescriptor | null;
30
+ /** Every package holding a role — more than one only where a topology splits that role. */
31
+ packagesForRole: (topology: ResolvedTopology, role: SubProject) => TargetPackageDescriptor[];
32
+ /** The package serving an area, for a topology that splits the browser app across several. */
33
+ packageForArea: (topology: ResolvedTopology, role: SubProject, area: ProjectArea) => TargetPackageDescriptor | null;
34
+ /** `<dir>/<package>` — the only place a topology directory is composed. */
35
+ packageDir: (topology: TopologyDescriptor, pkg: TargetPackageDescriptor) => string;
36
+ /**
37
+ * Merge a package into a topology, by name.
38
+ *
39
+ * This is the ADOPTION path: a package that arrived with a GitHub pull is classified once and
40
+ * recorded here, so the next run addresses the tree that exists rather than re-deriving one that
41
+ * does not. Replacing by name rather than appending keeps a re-classification idempotent.
42
+ */
43
+ withPackage: (topology: TopologyDescriptor, pkg: TargetPackageDescriptor) => TopologyDescriptor;
44
+ /** Whether two topologies describe the same arrangement — used to skip a needless rewrite. */
45
+ sameTopology: (a: TopologyDescriptor, b: TopologyDescriptor) => boolean;
46
+ }
47
+ //# sourceMappingURL=types.d.ts.map