@owlmeans/viable-common 0.0.43 → 0.0.45

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 (708) hide show
  1. package/README.md +3 -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 -36
  5. package/build/agent/consts.d.ts +58 -0
  6. package/build/agent/consts.d.ts.map +1 -0
  7. package/build/agent/consts.js +63 -0
  8. package/build/agent/consts.js.map +1 -0
  9. package/build/agent/consts.local.d.ts +21 -0
  10. package/build/agent/consts.local.d.ts.map +1 -0
  11. package/build/agent/consts.local.js +44 -0
  12. package/build/agent/consts.local.js.map +1 -0
  13. package/build/agent/index.d.ts +2 -0
  14. package/build/agent/index.d.ts.map +1 -1
  15. package/build/agent/index.js +1 -0
  16. package/build/agent/index.js.map +1 -1
  17. package/build/agent/presentation/types.d.ts +21 -0
  18. package/build/agent/presentation/types.d.ts.map +1 -0
  19. package/build/agent/presentation/types.js.map +1 -0
  20. package/build/agent/presentation.d.ts +12 -94
  21. package/build/agent/presentation.d.ts.map +1 -1
  22. package/build/agent/presentation.js +218 -299
  23. package/build/agent/presentation.js.map +1 -1
  24. package/build/agent/types.d.ts +30 -0
  25. package/build/agent/types.d.ts.map +1 -1
  26. package/build/agent/types.local.d.ts +4 -0
  27. package/build/agent/types.local.d.ts.map +1 -0
  28. package/build/agent/types.local.js +2 -0
  29. package/build/agent/types.local.js.map +1 -0
  30. package/build/areas/consts.d.ts +5 -0
  31. package/build/areas/consts.d.ts.map +1 -1
  32. package/build/areas/consts.js +4 -0
  33. package/build/areas/consts.js.map +1 -1
  34. package/build/areas/index.d.ts +1 -0
  35. package/build/areas/index.d.ts.map +1 -1
  36. package/build/areas/index.js.map +1 -1
  37. package/build/areas/tenancy/types.d.ts +23 -0
  38. package/build/areas/tenancy/types.d.ts.map +1 -0
  39. package/build/areas/tenancy/types.js +2 -0
  40. package/build/areas/tenancy/types.js.map +1 -0
  41. package/build/areas/tenancy.d.ts +6 -50
  42. package/build/areas/tenancy.d.ts.map +1 -1
  43. package/build/areas/tenancy.js +21 -31
  44. package/build/areas/tenancy.js.map +1 -1
  45. package/build/areas/types.d.ts +32 -0
  46. package/build/areas/types.d.ts.map +1 -1
  47. package/build/ba/connecting/types.d.ts +45 -0
  48. package/build/ba/connecting/types.d.ts.map +1 -0
  49. package/build/ba/connecting/types.js +2 -0
  50. package/build/ba/connecting/types.js.map +1 -0
  51. package/build/ba/connecting.d.ts +4 -0
  52. package/build/ba/connecting.d.ts.map +1 -0
  53. package/build/ba/connecting.js +47 -0
  54. package/build/ba/connecting.js.map +1 -0
  55. package/build/ba/helpers.d.ts +4 -39
  56. package/build/ba/helpers.d.ts.map +1 -1
  57. package/build/ba/helpers.js +5 -79
  58. package/build/ba/helpers.js.map +1 -1
  59. package/build/ba/index.d.ts +2 -0
  60. package/build/ba/index.d.ts.map +1 -1
  61. package/build/ba/index.js +1 -0
  62. package/build/ba/index.js.map +1 -1
  63. package/build/ba/types.d.ts +1 -1
  64. package/build/ba/types.d.ts.map +1 -1
  65. package/build/blueprint/consts.d.ts +41 -0
  66. package/build/blueprint/consts.d.ts.map +1 -1
  67. package/build/blueprint/consts.js +51 -0
  68. package/build/blueprint/consts.js.map +1 -1
  69. package/build/blueprint/consts.local.d.ts +2 -0
  70. package/build/blueprint/consts.local.d.ts.map +1 -0
  71. package/build/blueprint/consts.local.js +3 -0
  72. package/build/blueprint/consts.local.js.map +1 -0
  73. package/build/blueprint/index.d.ts +1 -0
  74. package/build/blueprint/index.d.ts.map +1 -1
  75. package/build/blueprint/index.js +1 -0
  76. package/build/blueprint/index.js.map +1 -1
  77. package/build/blueprint/types.d.ts +3 -52
  78. package/build/blueprint/types.d.ts.map +1 -1
  79. package/build/blueprint/types.js +1 -65
  80. package/build/blueprint/types.js.map +1 -1
  81. package/build/blueprint/utils.d.ts +11 -0
  82. package/build/blueprint/utils.d.ts.map +1 -0
  83. package/build/blueprint/utils.js +16 -0
  84. package/build/blueprint/utils.js.map +1 -0
  85. package/build/branding.d.ts +0 -8
  86. package/build/branding.d.ts.map +1 -1
  87. package/build/branding.js +0 -16
  88. package/build/branding.js.map +1 -1
  89. package/build/connect/branding/types.d.ts +28 -0
  90. package/build/connect/branding/types.d.ts.map +1 -0
  91. package/build/connect/branding/types.js +2 -0
  92. package/build/connect/branding/types.js.map +1 -0
  93. package/build/connect/consts.d.ts +2 -10
  94. package/build/connect/consts.d.ts.map +1 -1
  95. package/build/connect/consts.js +2 -23
  96. package/build/connect/consts.js.map +1 -1
  97. package/build/connect/conversion/types.d.ts +93 -0
  98. package/build/connect/conversion/types.d.ts.map +1 -0
  99. package/build/connect/conversion/types.js +2 -0
  100. package/build/connect/conversion/types.js.map +1 -0
  101. package/build/connect/entrypoints/types.d.ts +30 -0
  102. package/build/connect/entrypoints/types.d.ts.map +1 -0
  103. package/build/connect/entrypoints/types.js +2 -0
  104. package/build/connect/entrypoints/types.js.map +1 -0
  105. package/build/connect/entrypoints.d.ts +61 -92
  106. package/build/connect/entrypoints.d.ts.map +1 -1
  107. package/build/connect/entrypoints.js +5 -2
  108. package/build/connect/entrypoints.js.map +1 -1
  109. package/build/connect/errors/types.d.ts +20 -0
  110. package/build/connect/errors/types.d.ts.map +1 -0
  111. package/build/connect/errors/types.js +2 -0
  112. package/build/connect/errors/types.js.map +1 -0
  113. package/build/connect/errors.d.ts +32 -0
  114. package/build/connect/errors.d.ts.map +1 -1
  115. package/build/connect/errors.js +65 -0
  116. package/build/connect/errors.js.map +1 -1
  117. package/build/connect/index.d.ts +13 -2
  118. package/build/connect/index.d.ts.map +1 -1
  119. package/build/connect/index.js +1 -0
  120. package/build/connect/index.js.map +1 -1
  121. package/build/connect/kit/types.d.ts +52 -0
  122. package/build/connect/kit/types.d.ts.map +1 -0
  123. package/build/connect/kit/types.js +2 -0
  124. package/build/connect/{types.js.map → kit/types.js.map} +1 -1
  125. package/build/connect/model-tier/types.d.ts +16 -0
  126. package/build/connect/model-tier/types.d.ts.map +1 -0
  127. package/build/connect/model-tier/types.js +2 -0
  128. package/build/connect/model-tier/types.js.map +1 -0
  129. package/build/connect/model-tier.d.ts +4 -0
  130. package/build/connect/model-tier.d.ts.map +1 -0
  131. package/build/connect/model-tier.js +21 -0
  132. package/build/connect/model-tier.js.map +1 -0
  133. package/build/connect/{ops.d.ts → ops/types.d.ts} +13 -4
  134. package/build/connect/ops/types.d.ts.map +1 -0
  135. package/build/connect/ops/types.js +2 -0
  136. package/build/connect/ops/types.js.map +1 -0
  137. package/build/connect/pipeline/types.d.ts +39 -0
  138. package/build/connect/pipeline/types.d.ts.map +1 -0
  139. package/build/connect/pipeline/types.js +2 -0
  140. package/build/connect/pipeline/types.js.map +1 -0
  141. package/build/connect/project/types.d.ts +127 -0
  142. package/build/connect/project/types.d.ts.map +1 -0
  143. package/build/connect/project/types.js +2 -0
  144. package/build/connect/project/types.js.map +1 -0
  145. package/build/connect/references/types.d.ts +157 -0
  146. package/build/connect/references/types.d.ts.map +1 -0
  147. package/build/connect/references/types.js +2 -0
  148. package/build/connect/references/types.js.map +1 -0
  149. package/build/connect/references/types.local.d.ts +5 -0
  150. package/build/connect/references/types.local.d.ts.map +1 -0
  151. package/build/connect/references/types.local.js +2 -0
  152. package/build/connect/references/types.local.js.map +1 -0
  153. package/build/connect/references.d.ts +1 -153
  154. package/build/connect/references.d.ts.map +1 -1
  155. package/build/connect/references.js.map +1 -1
  156. package/build/connect/schemas.d.ts +9 -5
  157. package/build/connect/schemas.d.ts.map +1 -1
  158. package/build/connect/schemas.js +10 -3
  159. package/build/connect/schemas.js.map +1 -1
  160. package/build/connect/session/types.d.ts +73 -0
  161. package/build/connect/session/types.d.ts.map +1 -0
  162. package/build/connect/session/types.js +2 -0
  163. package/build/connect/session/types.js.map +1 -0
  164. package/build/connect/settings/types.d.ts +48 -0
  165. package/build/connect/settings/types.d.ts.map +1 -0
  166. package/build/connect/settings/types.js +2 -0
  167. package/build/connect/settings/types.js.map +1 -0
  168. package/build/consts.d.ts +8 -0
  169. package/build/consts.d.ts.map +1 -1
  170. package/build/consts.js +16 -0
  171. package/build/consts.js.map +1 -1
  172. package/build/convert/analysis/types.d.ts +93 -0
  173. package/build/convert/analysis/types.d.ts.map +1 -0
  174. package/build/convert/analysis/types.js +2 -0
  175. package/build/convert/analysis/types.js.map +1 -0
  176. package/build/convert/census/consts.local.d.ts +55 -0
  177. package/build/convert/census/consts.local.d.ts.map +1 -0
  178. package/build/convert/census/consts.local.js +104 -0
  179. package/build/convert/census/consts.local.js.map +1 -0
  180. package/build/convert/census/types.d.ts +176 -0
  181. package/build/convert/census/types.d.ts.map +1 -0
  182. package/build/convert/census/types.js +2 -0
  183. package/build/convert/census/types.js.map +1 -0
  184. package/build/convert/census.d.ts +4 -0
  185. package/build/convert/census.d.ts.map +1 -0
  186. package/build/convert/census.js +83 -0
  187. package/build/convert/census.js.map +1 -0
  188. package/build/convert/consts.d.ts +4 -12
  189. package/build/convert/consts.d.ts.map +1 -1
  190. package/build/convert/consts.js +4 -3
  191. package/build/convert/consts.js.map +1 -1
  192. package/build/convert/detection/types.d.ts +67 -0
  193. package/build/convert/detection/types.d.ts.map +1 -0
  194. package/build/convert/detection/types.js +2 -0
  195. package/build/convert/detection/types.js.map +1 -0
  196. package/build/convert/docs/types.d.ts +129 -0
  197. package/build/convert/docs/types.d.ts.map +1 -0
  198. package/build/convert/docs/types.js +2 -0
  199. package/build/convert/docs/types.js.map +1 -0
  200. package/build/convert/docs.d.ts +4 -0
  201. package/build/convert/docs.d.ts.map +1 -0
  202. package/build/convert/docs.js +9 -0
  203. package/build/convert/docs.js.map +1 -0
  204. package/build/convert/estimate/types.d.ts +77 -0
  205. package/build/convert/estimate/types.d.ts.map +1 -0
  206. package/build/convert/estimate/types.js +2 -0
  207. package/build/convert/estimate/types.js.map +1 -0
  208. package/build/convert/estimate.d.ts +11 -0
  209. package/build/convert/estimate.d.ts.map +1 -0
  210. package/build/convert/estimate.js +18 -0
  211. package/build/convert/estimate.js.map +1 -0
  212. package/build/convert/helpers.d.ts +14 -78
  213. package/build/convert/helpers.d.ts.map +1 -1
  214. package/build/convert/helpers.js +27 -300
  215. package/build/convert/helpers.js.map +1 -1
  216. package/build/convert/index.d.ts +15 -0
  217. package/build/convert/index.d.ts.map +1 -1
  218. package/build/convert/index.js +6 -0
  219. package/build/convert/index.js.map +1 -1
  220. package/build/convert/origin/types.d.ts +41 -0
  221. package/build/convert/origin/types.d.ts.map +1 -0
  222. package/build/convert/origin/types.js +2 -0
  223. package/build/convert/origin/types.js.map +1 -0
  224. package/build/convert/origin.d.ts +4 -0
  225. package/build/convert/origin.d.ts.map +1 -0
  226. package/build/convert/origin.js +25 -0
  227. package/build/convert/origin.js.map +1 -0
  228. package/build/convert/record/types.d.ts +98 -0
  229. package/build/convert/record/types.d.ts.map +1 -0
  230. package/build/convert/record/types.js +2 -0
  231. package/build/convert/record/types.js.map +1 -0
  232. package/build/convert/schemas.d.ts +7 -6
  233. package/build/convert/schemas.d.ts.map +1 -1
  234. package/build/convert/schemas.js +1 -5
  235. package/build/convert/schemas.js.map +1 -1
  236. package/build/convert/stage/types.d.ts +27 -0
  237. package/build/convert/stage/types.d.ts.map +1 -0
  238. package/build/convert/stage/types.js +2 -0
  239. package/build/convert/stage/types.js.map +1 -0
  240. package/build/convert/stage.d.ts +4 -0
  241. package/build/convert/stage.d.ts.map +1 -0
  242. package/build/convert/stage.js +25 -0
  243. package/build/convert/stage.js.map +1 -0
  244. package/build/convert/taxonomy/types.d.ts +71 -0
  245. package/build/convert/taxonomy/types.d.ts.map +1 -0
  246. package/build/convert/taxonomy/types.js +2 -0
  247. package/build/convert/taxonomy/types.js.map +1 -0
  248. package/build/convert/types.d.ts +1 -648
  249. package/build/convert/types.d.ts.map +1 -1
  250. package/build/convert/utils.d.ts +5 -0
  251. package/build/convert/utils.d.ts.map +1 -0
  252. package/build/convert/utils.js +6 -0
  253. package/build/convert/utils.js.map +1 -0
  254. package/build/design/consts.d.ts +37 -0
  255. package/build/design/consts.d.ts.map +1 -1
  256. package/build/design/consts.js +44 -8
  257. package/build/design/consts.js.map +1 -1
  258. package/build/design/helpers.d.ts +9 -49
  259. package/build/design/helpers.d.ts.map +1 -1
  260. package/build/design/helpers.js +17 -224
  261. package/build/design/helpers.js.map +1 -1
  262. package/build/design/index.d.ts +3 -0
  263. package/build/design/index.d.ts.map +1 -1
  264. package/build/design/index.js +1 -0
  265. package/build/design/index.js.map +1 -1
  266. package/build/design/runtime/types.d.ts +16 -0
  267. package/build/design/runtime/types.d.ts.map +1 -0
  268. package/build/design/runtime/types.js +2 -0
  269. package/build/design/runtime/types.js.map +1 -0
  270. package/build/design/runtime.d.ts +8 -105
  271. package/build/design/runtime.d.ts.map +1 -1
  272. package/build/design/runtime.js +13 -48
  273. package/build/design/runtime.js.map +1 -1
  274. package/build/design/schemas.d.ts +1 -9
  275. package/build/design/schemas.d.ts.map +1 -1
  276. package/build/design/schemas.js +1 -1
  277. package/build/design/schemas.js.map +1 -1
  278. package/build/design/story/types.d.ts +67 -0
  279. package/build/design/story/types.d.ts.map +1 -0
  280. package/build/design/story/types.js +2 -0
  281. package/build/design/story/types.js.map +1 -0
  282. package/build/design/story.d.ts +4 -0
  283. package/build/design/story.d.ts.map +1 -0
  284. package/build/design/story.js +184 -0
  285. package/build/design/story.js.map +1 -0
  286. package/build/design/types.d.ts +75 -1
  287. package/build/design/types.d.ts.map +1 -1
  288. package/build/dev/schemas.d.ts.map +1 -1
  289. package/build/dev/schemas.js.map +1 -1
  290. package/build/dev/types.local.d.ts +5 -0
  291. package/build/dev/types.local.d.ts.map +1 -0
  292. package/build/dev/types.local.js +2 -0
  293. package/build/dev/types.local.js.map +1 -0
  294. package/build/integrity/consts.d.ts +0 -117
  295. package/build/integrity/consts.d.ts.map +1 -1
  296. package/build/integrity/consts.js +0 -281
  297. package/build/integrity/consts.js.map +1 -1
  298. package/build/integrity/consts.local.d.ts +5 -0
  299. package/build/integrity/consts.local.d.ts.map +1 -0
  300. package/build/integrity/consts.local.js +5 -0
  301. package/build/integrity/consts.local.js.map +1 -0
  302. package/build/integrity/index.d.ts +5 -0
  303. package/build/integrity/index.d.ts.map +1 -1
  304. package/build/integrity/index.js +3 -0
  305. package/build/integrity/index.js.map +1 -1
  306. package/build/integrity/layout/consts.d.ts +59 -0
  307. package/build/integrity/layout/consts.d.ts.map +1 -0
  308. package/build/integrity/layout/consts.js +66 -0
  309. package/build/integrity/layout/consts.js.map +1 -0
  310. package/build/integrity/layout/consts.local.d.ts +18 -0
  311. package/build/integrity/layout/consts.local.d.ts.map +1 -0
  312. package/build/integrity/layout/consts.local.js +176 -0
  313. package/build/integrity/layout/consts.local.js.map +1 -0
  314. package/build/integrity/layout/types.d.ts +35 -0
  315. package/build/integrity/layout/types.d.ts.map +1 -0
  316. package/build/integrity/layout/types.js +2 -0
  317. package/build/integrity/layout/types.js.map +1 -0
  318. package/build/integrity/layout.d.ts +4 -0
  319. package/build/integrity/layout.d.ts.map +1 -0
  320. package/build/integrity/layout.js +25 -0
  321. package/build/integrity/layout.js.map +1 -0
  322. package/build/integrity/types.d.ts +36 -2
  323. package/build/integrity/types.d.ts.map +1 -1
  324. package/build/integrity/utils.d.ts +13 -0
  325. package/build/integrity/utils.d.ts.map +1 -0
  326. package/build/integrity/utils.js +12 -0
  327. package/build/integrity/utils.js.map +1 -0
  328. package/build/integrity/verify/types.d.ts +26 -0
  329. package/build/integrity/verify/types.d.ts.map +1 -0
  330. package/build/integrity/verify/types.js +2 -0
  331. package/build/integrity/verify/types.js.map +1 -0
  332. package/build/integrity/verify.d.ts +5 -19
  333. package/build/integrity/verify.d.ts.map +1 -1
  334. package/build/integrity/verify.js +165 -175
  335. package/build/integrity/verify.js.map +1 -1
  336. package/build/intent/consts.d.ts +16 -0
  337. package/build/intent/consts.d.ts.map +1 -1
  338. package/build/intent/consts.js +63 -0
  339. package/build/intent/consts.js.map +1 -1
  340. package/build/intent/entrypoints.d.ts +2 -12
  341. package/build/intent/entrypoints.d.ts.map +1 -1
  342. package/build/intent/entrypoints.js.map +1 -1
  343. package/build/intent/index.d.ts +0 -1
  344. package/build/intent/index.d.ts.map +1 -1
  345. package/build/intent/index.js +0 -1
  346. package/build/intent/index.js.map +1 -1
  347. package/build/intent/types.d.ts +13 -0
  348. package/build/intent/types.d.ts.map +1 -1
  349. package/build/metadata/consts.d.ts +33 -0
  350. package/build/metadata/consts.d.ts.map +1 -1
  351. package/build/metadata/consts.js +37 -0
  352. package/build/metadata/consts.js.map +1 -1
  353. package/build/metadata/types.d.ts +1 -33
  354. package/build/metadata/types.d.ts.map +1 -1
  355. package/build/metadata/types.js +1 -38
  356. package/build/metadata/types.js.map +1 -1
  357. package/build/moderation/index.d.ts +2 -0
  358. package/build/moderation/index.d.ts.map +1 -1
  359. package/build/moderation/index.js +1 -0
  360. package/build/moderation/index.js.map +1 -1
  361. package/build/moderation/utils.d.ts +3 -15
  362. package/build/moderation/utils.d.ts.map +1 -1
  363. package/build/moderation/utils.js +5 -30
  364. package/build/moderation/utils.js.map +1 -1
  365. package/build/moderation/verdict/types.d.ts +24 -0
  366. package/build/moderation/verdict/types.d.ts.map +1 -0
  367. package/build/moderation/verdict/types.js +2 -0
  368. package/build/moderation/verdict/types.js.map +1 -0
  369. package/build/moderation/verdict.d.ts +4 -0
  370. package/build/moderation/verdict.d.ts.map +1 -0
  371. package/build/moderation/verdict.js +21 -0
  372. package/build/moderation/verdict.js.map +1 -0
  373. package/build/planning/card/types.d.ts +42 -0
  374. package/build/planning/card/types.d.ts.map +1 -0
  375. package/build/planning/card/types.js +2 -0
  376. package/build/planning/card/types.js.map +1 -0
  377. package/build/planning/card.d.ts +4 -0
  378. package/build/planning/card.d.ts.map +1 -0
  379. package/build/planning/card.js +51 -0
  380. package/build/planning/card.js.map +1 -0
  381. package/build/planning/consts.d.ts +13 -1
  382. package/build/planning/consts.d.ts.map +1 -1
  383. package/build/planning/consts.js +13 -0
  384. package/build/planning/consts.js.map +1 -1
  385. package/build/planning/helpers.d.ts +11 -37
  386. package/build/planning/helpers.d.ts.map +1 -1
  387. package/build/planning/helpers.js +24 -103
  388. package/build/planning/helpers.js.map +1 -1
  389. package/build/planning/index.d.ts +5 -1
  390. package/build/planning/index.d.ts.map +1 -1
  391. package/build/planning/index.js +2 -1
  392. package/build/planning/index.js.map +1 -1
  393. package/build/planning/landing/types.d.ts +16 -0
  394. package/build/planning/landing/types.d.ts.map +1 -0
  395. package/build/planning/landing/types.js +2 -0
  396. package/build/planning/landing/types.js.map +1 -0
  397. package/build/planning/landing.d.ts +5 -22
  398. package/build/planning/landing.d.ts.map +1 -1
  399. package/build/planning/landing.js +21 -35
  400. package/build/planning/landing.js.map +1 -1
  401. package/build/planning/schemas.d.ts +33 -0
  402. package/build/planning/schemas.d.ts.map +1 -1
  403. package/build/planning/schemas.js +173 -4
  404. package/build/planning/schemas.js.map +1 -1
  405. package/build/planning/spec/types.d.ts +22 -0
  406. package/build/planning/spec/types.d.ts.map +1 -0
  407. package/build/planning/spec/types.js +2 -0
  408. package/build/planning/spec/types.js.map +1 -0
  409. package/build/planning/spec.d.ts +4 -0
  410. package/build/planning/spec.d.ts.map +1 -0
  411. package/build/planning/spec.js +30 -0
  412. package/build/planning/spec.js.map +1 -0
  413. package/build/planning/types.d.ts +6 -5
  414. package/build/planning/types.d.ts.map +1 -1
  415. package/build/preview/consts.d.ts +3 -1
  416. package/build/preview/consts.d.ts.map +1 -1
  417. package/build/preview/consts.js +2 -0
  418. package/build/preview/consts.js.map +1 -1
  419. package/build/preview/types.d.ts +17 -2
  420. package/build/preview/types.d.ts.map +1 -1
  421. package/build/scaffold/consts.d.ts +40 -1
  422. package/build/scaffold/consts.d.ts.map +1 -1
  423. package/build/scaffold/consts.js +52 -0
  424. package/build/scaffold/consts.js.map +1 -1
  425. package/build/scaffold/helpers.d.ts +5 -30
  426. package/build/scaffold/helpers.d.ts.map +1 -1
  427. package/build/scaffold/helpers.js +9 -53
  428. package/build/scaffold/helpers.js.map +1 -1
  429. package/build/scaffold/index.d.ts +4 -0
  430. package/build/scaffold/index.d.ts.map +1 -1
  431. package/build/scaffold/index.js +2 -0
  432. package/build/scaffold/index.js.map +1 -1
  433. package/build/scaffold/landing/types.d.ts +48 -0
  434. package/build/scaffold/landing/types.d.ts.map +1 -0
  435. package/build/scaffold/landing/types.js +2 -0
  436. package/build/scaffold/landing/types.js.map +1 -0
  437. package/build/scaffold/landing.d.ts +4 -0
  438. package/build/scaffold/landing.d.ts.map +1 -0
  439. package/build/scaffold/landing.js +95 -0
  440. package/build/scaffold/landing.js.map +1 -0
  441. package/build/scaffold/schemas.d.ts +3 -2
  442. package/build/scaffold/schemas.d.ts.map +1 -1
  443. package/build/scaffold/schemas.js +177 -7
  444. package/build/scaffold/schemas.js.map +1 -1
  445. package/build/scaffold/share/types.d.ts +35 -0
  446. package/build/scaffold/share/types.d.ts.map +1 -0
  447. package/build/scaffold/share/types.js +2 -0
  448. package/build/scaffold/share/types.js.map +1 -0
  449. package/build/scaffold/share.d.ts +4 -0
  450. package/build/scaffold/share.d.ts.map +1 -0
  451. package/build/scaffold/share.js +42 -0
  452. package/build/scaffold/share.js.map +1 -0
  453. package/build/scaffold/types.d.ts +114 -2
  454. package/build/scaffold/types.d.ts.map +1 -1
  455. package/build/skills/consts.d.ts +42 -0
  456. package/build/skills/consts.d.ts.map +1 -1
  457. package/build/skills/consts.js +43 -0
  458. package/build/skills/consts.js.map +1 -1
  459. package/build/skills/index.d.ts +0 -1
  460. package/build/skills/index.d.ts.map +1 -1
  461. package/build/skills/index.js +0 -1
  462. package/build/skills/index.js.map +1 -1
  463. package/build/slot/command/types.d.ts +21 -0
  464. package/build/slot/command/types.d.ts.map +1 -0
  465. package/build/slot/command/types.js +2 -0
  466. package/build/slot/command/types.js.map +1 -0
  467. package/build/slot/command.d.ts +4 -0
  468. package/build/slot/command.d.ts.map +1 -0
  469. package/build/slot/command.js +31 -0
  470. package/build/slot/command.js.map +1 -0
  471. package/build/slot/consts.d.ts +7 -13
  472. package/build/slot/consts.d.ts.map +1 -1
  473. package/build/slot/consts.js +10 -36
  474. package/build/slot/consts.js.map +1 -1
  475. package/build/slot/helpers.d.ts +3 -22
  476. package/build/slot/helpers.d.ts.map +1 -1
  477. package/build/slot/helpers.js +5 -26
  478. package/build/slot/helpers.js.map +1 -1
  479. package/build/slot/index.d.ts +6 -0
  480. package/build/slot/index.d.ts.map +1 -1
  481. package/build/slot/index.js +3 -0
  482. package/build/slot/index.js.map +1 -1
  483. package/build/slot/layout/types.d.ts +17 -0
  484. package/build/slot/layout/types.d.ts.map +1 -0
  485. package/build/slot/layout/types.js +2 -0
  486. package/build/slot/layout/types.js.map +1 -0
  487. package/build/slot/layout.d.ts +5 -66
  488. package/build/slot/layout.d.ts.map +1 -1
  489. package/build/slot/layout.js +13 -27
  490. package/build/slot/layout.js.map +1 -1
  491. package/build/slot/origin/types.d.ts +23 -0
  492. package/build/slot/origin/types.d.ts.map +1 -0
  493. package/build/slot/origin/types.js +2 -0
  494. package/build/slot/origin/types.js.map +1 -0
  495. package/build/slot/origin.d.ts +4 -0
  496. package/build/slot/origin.d.ts.map +1 -0
  497. package/build/slot/origin.js +15 -0
  498. package/build/slot/origin.js.map +1 -0
  499. package/build/slot/types.d.ts +55 -1
  500. package/build/slot/types.d.ts.map +1 -1
  501. package/build/slot/utils.d.ts +6 -0
  502. package/build/slot/utils.d.ts.map +1 -0
  503. package/build/slot/utils.js +6 -0
  504. package/build/slot/utils.js.map +1 -0
  505. package/build/topology/card/types.d.ts +21 -0
  506. package/build/topology/card/types.d.ts.map +1 -0
  507. package/build/topology/card/types.js +2 -0
  508. package/build/topology/card/types.js.map +1 -0
  509. package/build/topology/card.d.ts +7 -19
  510. package/build/topology/card.d.ts.map +1 -1
  511. package/build/topology/card.js +84 -89
  512. package/build/topology/card.js.map +1 -1
  513. package/build/topology/consts.local.d.ts +4 -0
  514. package/build/topology/consts.local.d.ts.map +1 -0
  515. package/build/topology/consts.local.js +4 -0
  516. package/build/topology/consts.local.js.map +1 -0
  517. package/build/topology/helpers.d.ts +7 -33
  518. package/build/topology/helpers.d.ts.map +1 -1
  519. package/build/topology/helpers.js +15 -111
  520. package/build/topology/helpers.js.map +1 -1
  521. package/build/topology/index.d.ts +3 -0
  522. package/build/topology/index.d.ts.map +1 -1
  523. package/build/topology/index.js +1 -0
  524. package/build/topology/index.js.map +1 -1
  525. package/build/topology/resolve/types.d.ts +47 -0
  526. package/build/topology/resolve/types.d.ts.map +1 -0
  527. package/build/topology/resolve/types.js +2 -0
  528. package/build/topology/resolve/types.js.map +1 -0
  529. package/build/topology/resolve.d.ts +4 -0
  530. package/build/topology/resolve.d.ts.map +1 -0
  531. package/build/topology/resolve.js +89 -0
  532. package/build/topology/resolve.js.map +1 -0
  533. package/build/topology/types.d.ts +5 -0
  534. package/build/topology/types.d.ts.map +1 -1
  535. package/package.json +13 -13
  536. package/src/agent/consts.local.ts +47 -0
  537. package/src/agent/consts.ts +61 -0
  538. package/src/agent/index.ts +2 -0
  539. package/src/agent/presentation/types.ts +21 -0
  540. package/src/agent/presentation.ts +200 -309
  541. package/src/agent/types.local.ts +3 -0
  542. package/src/agent/types.ts +40 -0
  543. package/src/areas/consts.ts +7 -0
  544. package/src/areas/index.ts +1 -0
  545. package/src/areas/tenancy/types.ts +23 -0
  546. package/src/areas/tenancy.ts +26 -61
  547. package/src/areas/types.ts +31 -0
  548. package/src/ba/connecting/types.ts +45 -0
  549. package/src/ba/connecting.ts +64 -0
  550. package/src/ba/helpers.ts +8 -92
  551. package/src/ba/index.ts +2 -0
  552. package/src/ba/types.ts +1 -1
  553. package/src/blueprint/consts.local.ts +3 -0
  554. package/src/blueprint/consts.ts +52 -0
  555. package/src/blueprint/index.ts +1 -0
  556. package/src/blueprint/types.ts +4 -74
  557. package/src/blueprint/utils.ts +20 -0
  558. package/src/branding.ts +0 -17
  559. package/src/connect/branding/types.ts +29 -0
  560. package/src/connect/consts.ts +3 -22
  561. package/src/connect/conversion/types.ts +96 -0
  562. package/src/connect/entrypoints/types.ts +25 -0
  563. package/src/connect/entrypoints.ts +18 -35
  564. package/src/connect/errors/types.ts +22 -0
  565. package/src/connect/errors.ts +75 -0
  566. package/src/connect/index.ts +13 -2
  567. package/src/connect/kit/types.ts +56 -0
  568. package/src/connect/model-tier/types.ts +16 -0
  569. package/src/connect/model-tier.ts +22 -0
  570. package/src/connect/{ops.ts → ops/types.ts} +13 -3
  571. package/src/connect/pipeline/types.ts +41 -0
  572. package/src/connect/project/types.ts +127 -0
  573. package/src/connect/references/types.local.ts +5 -0
  574. package/src/connect/references/types.ts +73 -0
  575. package/src/connect/references.ts +15 -75
  576. package/src/connect/schemas.ts +19 -12
  577. package/src/connect/session/types.ts +81 -0
  578. package/src/connect/settings/types.ts +52 -0
  579. package/src/consts.ts +17 -0
  580. package/src/convert/analysis/types.ts +89 -0
  581. package/src/convert/census/consts.local.ts +120 -0
  582. package/src/convert/census/types.ts +181 -0
  583. package/src/convert/census.ts +95 -0
  584. package/src/convert/consts.ts +5 -14
  585. package/src/convert/detection/types.ts +74 -0
  586. package/src/convert/docs/types.ts +151 -0
  587. package/src/convert/docs.ts +15 -0
  588. package/src/convert/estimate/types.ts +75 -0
  589. package/src/convert/estimate.ts +19 -0
  590. package/src/convert/helpers.ts +29 -328
  591. package/src/convert/index.ts +15 -0
  592. package/src/convert/origin/types.ts +43 -0
  593. package/src/convert/origin.ts +33 -0
  594. package/src/convert/record/types.ts +105 -0
  595. package/src/convert/schemas.ts +13 -12
  596. package/src/convert/stage/types.ts +27 -0
  597. package/src/convert/stage.ts +31 -0
  598. package/src/convert/taxonomy/types.ts +74 -0
  599. package/src/convert/types.ts +5 -703
  600. package/src/convert/utils.ts +7 -0
  601. package/src/design/consts.ts +48 -0
  602. package/src/design/helpers.ts +20 -245
  603. package/src/design/index.ts +3 -0
  604. package/src/design/runtime/types.ts +14 -0
  605. package/src/design/runtime.ts +18 -116
  606. package/src/design/schemas.ts +2 -10
  607. package/src/design/story/types.ts +67 -0
  608. package/src/design/story.ts +221 -0
  609. package/src/design/types.ts +81 -1
  610. package/src/dev/schemas.ts +1 -3
  611. package/src/dev/types.local.ts +4 -0
  612. package/src/integrity/consts.local.ts +5 -0
  613. package/src/integrity/consts.ts +0 -348
  614. package/src/integrity/index.ts +5 -0
  615. package/src/integrity/layout/consts.local.ts +188 -0
  616. package/src/integrity/layout/consts.ts +79 -0
  617. package/src/integrity/layout/types.ts +35 -0
  618. package/src/integrity/layout.ts +39 -0
  619. package/src/integrity/types.ts +37 -2
  620. package/src/integrity/utils.ts +21 -0
  621. package/src/integrity/verify/types.ts +26 -0
  622. package/src/integrity/verify.ts +178 -184
  623. package/src/intent/consts.ts +67 -0
  624. package/src/intent/entrypoints.ts +2 -3
  625. package/src/intent/index.ts +0 -1
  626. package/src/intent/types.ts +10 -0
  627. package/src/metadata/consts.ts +37 -0
  628. package/src/metadata/types.ts +1 -37
  629. package/src/moderation/index.ts +2 -0
  630. package/src/moderation/utils.ts +7 -30
  631. package/src/moderation/verdict/types.ts +22 -0
  632. package/src/moderation/verdict.ts +28 -0
  633. package/src/planning/card/types.ts +44 -0
  634. package/src/planning/card.ts +77 -0
  635. package/src/planning/consts.ts +15 -2
  636. package/src/planning/helpers.ts +28 -116
  637. package/src/planning/index.ts +5 -1
  638. package/src/planning/landing/types.ts +15 -0
  639. package/src/planning/landing.ts +28 -38
  640. package/src/planning/schemas.ts +191 -4
  641. package/src/planning/spec/types.ts +22 -0
  642. package/src/planning/spec.ts +41 -0
  643. package/src/planning/types.ts +6 -6
  644. package/src/preview/consts.ts +2 -0
  645. package/src/preview/types.ts +19 -0
  646. package/src/scaffold/consts.ts +65 -1
  647. package/src/scaffold/helpers.ts +14 -80
  648. package/src/scaffold/index.ts +4 -0
  649. package/src/scaffold/landing/types.ts +48 -0
  650. package/src/scaffold/landing.ts +120 -0
  651. package/src/scaffold/schemas.ts +183 -7
  652. package/src/scaffold/share/types.ts +35 -0
  653. package/src/scaffold/share.ts +60 -0
  654. package/src/scaffold/types.ts +123 -1
  655. package/src/skills/consts.ts +46 -0
  656. package/src/skills/index.ts +0 -1
  657. package/src/slot/command/types.ts +21 -0
  658. package/src/slot/command.ts +38 -0
  659. package/src/slot/consts.ts +11 -40
  660. package/src/slot/helpers.ts +6 -31
  661. package/src/slot/index.ts +6 -0
  662. package/src/slot/layout/types.ts +17 -0
  663. package/src/slot/layout.ts +19 -77
  664. package/src/slot/origin/types.ts +23 -0
  665. package/src/slot/origin.ts +20 -0
  666. package/src/slot/types.ts +58 -1
  667. package/src/slot/utils.ts +10 -0
  668. package/src/topology/card/types.ts +21 -0
  669. package/src/topology/card.ts +85 -90
  670. package/src/topology/consts.local.ts +6 -0
  671. package/src/topology/helpers.ts +20 -125
  672. package/src/topology/index.ts +3 -0
  673. package/src/topology/resolve/types.ts +47 -0
  674. package/src/topology/resolve.ts +118 -0
  675. package/src/topology/types.ts +6 -0
  676. package/tests/blueprint.spec.ts +1 -2
  677. package/tests/branding.spec.ts +2 -2
  678. package/tests/connect-convert.spec.ts +21 -1
  679. package/tests/connect-errors.spec.ts +34 -1
  680. package/tests/convert.spec.ts +51 -52
  681. package/tests/design.spec.ts +13 -16
  682. package/tests/error-status.spec.ts +7 -1
  683. package/tests/planning.spec.ts +58 -75
  684. package/tests/presentation.spec.ts +21 -23
  685. package/tests/scaffold.spec.ts +286 -6
  686. package/tests/tenancy.spec.ts +21 -21
  687. package/build/connect/ops.d.ts.map +0 -1
  688. package/build/connect/ops.js +0 -2
  689. package/build/connect/ops.js.map +0 -1
  690. package/build/connect/types.d.ts +0 -437
  691. package/build/connect/types.d.ts.map +0 -1
  692. package/build/intent/flow.d.ts +0 -17
  693. package/build/intent/flow.d.ts.map +0 -1
  694. package/build/intent/flow.js +0 -65
  695. package/build/intent/flow.js.map +0 -1
  696. package/build/planning/flows.d.ts +0 -34
  697. package/build/planning/flows.d.ts.map +0 -1
  698. package/build/planning/flows.js +0 -174
  699. package/build/planning/flows.js.map +0 -1
  700. package/build/skills/roles.d.ts +0 -43
  701. package/build/skills/roles.d.ts.map +0 -1
  702. package/build/skills/roles.js +0 -44
  703. package/build/skills/roles.js.map +0 -1
  704. package/src/connect/types.ts +0 -466
  705. package/src/intent/flow.ts +0 -67
  706. package/src/planning/flows.ts +0 -204
  707. package/src/skills/roles.ts +0 -46
  708. /package/build/{connect → agent/presentation}/types.js +0 -0
@@ -85,3 +85,49 @@ export enum ViableSkill {
85
85
  LibrariesAi = 'libraries-ai',
86
86
  LibrariesGame = 'libraries-game',
87
87
  }
88
+
89
+ /**
90
+ * Who the model is being asked to be.
91
+ *
92
+ * A persona is per HELPER, not per model role: `ModelRole` selects which model answers,
93
+ * this selects what it is told it does. Two helpers can share a model and need different
94
+ * personas, and the same persona can run on a cheap or an expensive model depending on
95
+ * the effort tier — keeping the two axes separate is what makes that possible.
96
+ */
97
+ export enum ViablePersona {
98
+ BusinessAnalyst = 'business-analyst',
99
+ ProductNaming = 'product-naming',
100
+ /** Decides what KIND of product a prompt describes — which blueprint case builds it. */
101
+ ProductArchitect = 'product-architect',
102
+ UxDesigner = 'ux-designer',
103
+ VisualDesigner = 'visual-designer',
104
+
105
+ LayoutArchitect = 'layout-architect',
106
+ ComponentArchitect = 'component-architect',
107
+ StateArchitect = 'state-architect',
108
+ NavigationArchitect = 'navigation-architect',
109
+ DomainTypesArchitect = 'domain-types-architect',
110
+ AccessArchitect = 'access-architect',
111
+ ApiArchitect = 'api-architect',
112
+ DatalayerArchitect = 'datalayer-architect',
113
+ BackendDomainArchitect = 'backend-domain-architect',
114
+
115
+ CommonCoder = 'common-coder',
116
+ UiStateCoder = 'ui-state-coder',
117
+ UiViewCoder = 'ui-view-coder',
118
+ UiNavCoder = 'ui-nav-coder',
119
+ DatalayerCoder = 'datalayer-coder',
120
+ ApiCoder = 'api-coder',
121
+ BackendModelCoder = 'backend-model-coder',
122
+ /** Decides whether a story needs a queue, a worker or an agent — and usually decides it does not. */
123
+ RuntimeArchitect = 'runtime-architect',
124
+ /** Writes queue declarations, job processors and the application's own agents. */
125
+ WorkerCoder = 'worker-coder',
126
+ FreeFlightCoder = 'free-flight-coder',
127
+
128
+ Fixer = 'fixer',
129
+ Orchestrator = 'orchestrator',
130
+ SourceExtractor = 'source-extractor',
131
+ DeclarationLookup = 'declaration-lookup',
132
+ FixAgent = 'fix-agent',
133
+ }
@@ -1,3 +1,2 @@
1
1
 
2
2
  export * from './consts.js'
3
- export * from './roles.js'
@@ -0,0 +1,21 @@
1
+ import type { SlotCommandType } from '../consts.js'
2
+
3
+ /** The time bounds of one slot command: the caller's timeout and the executor's deadline. */
4
+ export interface SlotCommandHelper {
5
+ /**
6
+ * Resolve the caller-side bound for one command.
7
+ *
8
+ * One function rather than three lookups at each call site: an asker that forgets the per-command
9
+ * table inherits twenty minutes for a fifteen-second command, which is the failure this table was
10
+ * added to stop.
11
+ */
12
+ commandTimeout: (type: SlotCommandType, command: string, override?: number) => number
13
+ /**
14
+ * Resolve the executor-side deadline for one command.
15
+ *
16
+ * Per-command first, per-type second. It was per-type only, which is how a clone inherited the
17
+ * bound of a `git status` — the same shape as the shell table above, and added for the same
18
+ * reason.
19
+ */
20
+ commandDeadline: (type: SlotCommandType, command: string) => number
21
+ }
@@ -0,0 +1,38 @@
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, SlotFileCommand, SlotGitCommand } from './consts.js'
2
+ import type { SlotCommandHelper } from './command/types.js'
3
+
4
+ export const createSlotCommandHelper = (): SlotCommandHelper => {
5
+ /** The per-command caller bound for one command, or nothing where its type's default is right. */
6
+ const perCommandTimeout = (type: SlotCommandType, command: string): number | undefined => {
7
+ switch (type) {
8
+ case SlotCommandType.Shell: return SHELL_COMMAND_TIMEOUTS[command]
9
+ case SlotCommandType.Git: return GIT_COMMAND_TIMEOUTS[command as SlotGitCommand]
10
+ case SlotCommandType.Database: return COMMAND_TIMEOUTS[SlotCommandType.Database]
11
+ default: return FILE_COMMAND_TIMEOUTS[command as SlotFileCommand]
12
+ }
13
+ }
14
+
15
+ const commandTimeout = (
16
+ type: SlotCommandType, command: string, override?: number
17
+ ): number => override
18
+ ?? perCommandTimeout(type, command)
19
+ ?? COMMAND_TIMEOUTS[type]
20
+ ?? DEFAULT_COMMAND_TIMEOUT
21
+
22
+ const commandDeadline = (type: SlotCommandType, command: string): number => {
23
+ switch (type) {
24
+ case SlotCommandType.Shell:
25
+ return COMMAND_DEADLINES[command] ?? DEFAULT_COMMAND_DEADLINE
26
+ case SlotCommandType.Git:
27
+ return GIT_COMMAND_DEADLINES[command as SlotGitCommand] ?? DEFAULT_GIT_COMMAND_DEADLINE
28
+ case SlotCommandType.Database:
29
+ return 30_000
30
+ default:
31
+ return FILE_COMMAND_DEADLINES[command as SlotFileCommand] ?? DEFAULT_FILE_COMMAND_DEADLINE
32
+ }
33
+ }
34
+
35
+ return { commandTimeout, commandDeadline }
36
+ }
37
+
38
+ export const slotCommandHelper = createSlotCommandHelper()
@@ -19,6 +19,8 @@
19
19
  * commands are executed by the connector on that machine, and nothing about it is provisioned,
20
20
  * routed, reconciled or published.
21
21
  */
22
+ import { TargetLayout } from '../integrity/index.js'
23
+
22
24
  export enum WorkloadKind {
23
25
  Ephemeral = 'ephemeral',
24
26
  Production = 'production',
@@ -368,46 +370,15 @@ export const FILE_COMMAND_TIMEOUTS: Partial<Record<SlotFileCommand, number>> = {
368
370
  [SlotFileCommand.ReadHead]: 70_000,
369
371
  }
370
372
 
371
- /** The per-command caller bound for one command, or nothing where its type's default is right. */
372
- const perCommandTimeout = (type: SlotCommandType, command: string): number | undefined => {
373
- switch (type) {
374
- case SlotCommandType.Shell: return SHELL_COMMAND_TIMEOUTS[command]
375
- case SlotCommandType.Git: return GIT_COMMAND_TIMEOUTS[command as SlotGitCommand]
376
- case SlotCommandType.Database: return COMMAND_TIMEOUTS[SlotCommandType.Database]
377
- default: return FILE_COMMAND_TIMEOUTS[command as SlotFileCommand]
378
- }
379
- }
380
-
381
- /**
382
- * Resolve the caller-side bound for one command.
383
- *
384
- * One function rather than three lookups at each call site: an asker that forgets the per-command
385
- * table inherits twenty minutes for a fifteen-second command, which is the failure this table was
386
- * added to stop.
387
- */
388
- export const commandTimeout = (
389
- type: SlotCommandType, command: string, override?: number
390
- ): number => override
391
- ?? perCommandTimeout(type, command)
392
- ?? COMMAND_TIMEOUTS[type]
393
- ?? DEFAULT_COMMAND_TIMEOUT
394
-
395
373
  /**
396
- * Resolve the executor-side deadline for one command.
374
+ * The one marker per layout, chosen because it exists in that layout and in no other.
397
375
  *
398
- * Per-command first, per-type second. It was per-type only, which is how a clone inherited the
399
- * bound of a `git status` — the same shape as the shell table above, and added for the same
400
- * reason.
376
+ * `sources/api` cannot appear in a v1 tree and `packages/backend` cannot appear in a v2 one, so a
377
+ * single `stat` settles it. Deliberately not `sources/` alone: v1 packages each have their own
378
+ * `src`, and a directory name that differs by one letter is not something to hang a runtime path
379
+ * resolution on. Ordered — the first marker found wins.
401
380
  */
402
- export const commandDeadline = (type: SlotCommandType, command: string): number => {
403
- switch (type) {
404
- case SlotCommandType.Shell:
405
- return COMMAND_DEADLINES[command] ?? DEFAULT_COMMAND_DEADLINE
406
- case SlotCommandType.Git:
407
- return GIT_COMMAND_DEADLINES[command as SlotGitCommand] ?? DEFAULT_GIT_COMMAND_DEADLINE
408
- case SlotCommandType.Database:
409
- return 30_000
410
- default:
411
- return FILE_COMMAND_DEADLINES[command as SlotFileCommand] ?? DEFAULT_FILE_COMMAND_DEADLINE
412
- }
413
- }
381
+ export const LAYOUT_MARKERS: Array<[TargetLayout, string]> = [
382
+ [TargetLayout.V2, 'sources/api'],
383
+ [TargetLayout.V1, 'packages/backend'],
384
+ ]
@@ -1,34 +1,9 @@
1
- import { WorkloadKind } from './consts.js'
1
+ import { slotOriginHelper } from './origin.js'
2
+ import type { AddressableSlot } from './types.js'
2
3
 
3
- /** The minimum a caller must know about a slot to address it. */
4
- export interface AddressableSlot {
5
- kind?: WorkloadKind
6
- host?: string
7
- }
4
+ /** @deprecated compat:factory-refactor — use `slotOriginHelper.slotOrigin(…)` */
5
+ export const slotOrigin = (slot: AddressableSlot): string => slotOriginHelper.slotOrigin(slot)
8
6
 
9
- /**
10
- * The origin a slot's application answers at.
11
- *
12
- * Read back from the slot's stored `host`, never recomposed from a slug — a preview host is a
13
- * CLAIMED resource with a certificate behind it, and the name a slot ended up with is not always
14
- * the name its project would compose today. What this adds is the scheme, which is the one part
15
- * that follows from the kind rather than from the record: a local target is a loopback address and
16
- * therefore `http`, everything else is TLS-terminated at an edge and therefore `https`.
17
- */
18
- export const slotOrigin = (slot: AddressableSlot): string => {
19
- const host = slot.host ?? ''
20
- if (host === '') return ''
21
- if (host.startsWith('http://') || host.startsWith('https://')) return host
22
-
23
- return `${slot.kind === WorkloadKind.Local ? 'http' : 'https'}://${host}`
24
- }
25
-
26
- /**
27
- * The exact redirect URIs a target's OIDC client must carry for one origin.
28
- *
29
- * Exact, because a provider matches a redirect URI literally and refuses a wildcard — and both
30
- * entries are needed: the callback the login round trip returns to, and the bare origin, which is
31
- * where the application's own logout lands.
32
- */
7
+ /** @deprecated compat:factory-refactor — use `slotOriginHelper.targetRedirectUrisForOrigin(…)` */
33
8
  export const targetRedirectUrisForOrigin = (origin: string, callbackPath: string): string[] =>
34
- origin === '' ? [] : [origin, `${origin}${callbackPath}`]
9
+ slotOriginHelper.targetRedirectUrisForOrigin(origin, callbackPath)
package/src/slot/index.ts CHANGED
@@ -1,5 +1,11 @@
1
1
  export * from './consts.js'
2
+ export * from './command.js'
3
+ export * from './utils.js'
2
4
  export * from './schemas.js'
3
5
  export * from './layout.js'
6
+ export * from './origin.js'
4
7
  export * from './helpers.js'
5
8
  export type * from './types.js'
9
+ export type * from './command/types.js'
10
+ export type * from './layout/types.js'
11
+ export type * from './origin/types.js'
@@ -0,0 +1,17 @@
1
+ import type { TargetLayout } from '../../integrity/consts.js'
2
+ import type { SubProject } from '../consts.js'
3
+ import type { TargetPaths } from '../types.js'
4
+
5
+ /** Where a target's roles live, per layout — read off {@link LAYOUTS} and {@link ROLE_DIRS}. */
6
+ export interface SlotLayoutHelper {
7
+ /**
8
+ * Resolve a wire-level role to the directory it names in a given layout.
9
+ *
10
+ * An unknown value — a role from a sender newer than this reader — falls back to the role's own
11
+ * name, which is the honest guess for a layout whose packages are named after their roles, and
12
+ * which fails visibly rather than resolving to some other package's directory.
13
+ */
14
+ subprojectDirOf: (layout: TargetLayout, role: SubProject) => string
15
+ /** Where every role lives, for a layout already decided. */
16
+ pathsOf: (layout: TargetLayout) => TargetPaths
17
+ }
@@ -1,55 +1,8 @@
1
1
  import { TargetLayout } from '../integrity/index.js'
2
- import { packageForRole, resolveTopology, topologyOf } from '../topology/index.js'
2
+ import { topologyHelper } from '../topology/resolve.js'
3
3
  import { SubProject } from './consts.js'
4
-
5
- /**
6
- * Where each role lives, for one layout. Directory names are target-root-relative.
7
- *
8
- * The pure half of layout resolution. Whoever holds the tree — the publisher over a pod volume,
9
- * the connector over a directory on a developer's machine — adds the two filesystem probes that
10
- * pick the layout and turn these names into absolute paths. The TABLES are shared so the two
11
- * cannot disagree about what a role means.
12
- */
13
- export interface TargetPaths {
14
- layout: TargetLayout
15
- /** The directory holding the workspace packages — `packages` or `sources`. */
16
- dir: string
17
- /** The package whose `dist/index.js` runs as the target's HTTP server. */
18
- api: string
19
- /** The package whose `dist/` is served to a browser. */
20
- web: string
21
- /** The shared library the other two compile against. */
22
- common: string
23
- /**
24
- * The package whose `dist/index.js` runs as the target's queue worker, when the target has one.
25
- *
26
- * Absent for v1, which had no such package and never will — a target's tree is the one it was
27
- * initialized with. Present for v2 as a NAME, not as a promise: every caller checks the disk
28
- * before acting on it.
29
- */
30
- worker?: string
31
- /**
32
- * Every package a full build runs, in dependency order.
33
- *
34
- * Longer than the three roles for v2, whose `backend` is a library that both `api` and `worker`
35
- * import. A caller skips whatever is not on disk — a target need not have a worker.
36
- */
37
- build: string[]
38
- /**
39
- * The packages built with `tsc -b` and consumed through their `build/` output, in dependency
40
- * order — never bundled, so their output has to be on disk at RUN time, not only at build time.
41
- *
42
- * The bundled packages keep every dependency external, so `bun dist/index.js` resolves
43
- * `project-backend` from `node_modules` at startup, follows its `main` to `build/index.js` — and
44
- * if nothing built it, Bun answers `Cannot find package 'project-backend'` and the target exits 1
45
- * with a message that names a dependency rather than a missing build.
46
- *
47
- * v1 got away without this list: it had ONE library and the template shipped its `build/`
48
- * prebuilt. v2 deleted those artifacts and added a second library, so every path that builds a
49
- * target has to build these first or it can never start.
50
- */
51
- libraries: string[]
52
- }
4
+ import type { TargetPaths } from './types.js'
5
+ import type { SlotLayoutHelper } from './layout/types.js'
53
6
 
54
7
  /**
55
8
  * Where every role lives, per layout — DERIVED from that layout's topology.
@@ -63,8 +16,8 @@ export interface TargetPaths {
63
16
  * The VALUES are unchanged, and `topology.spec.ts` pins them against the tables they replaced.
64
17
  */
65
18
  const pathsOfTopology = (layout: TargetLayout): TargetPaths => {
66
- const topology = resolveTopology(topologyOf(layout))
67
- const dirOf = (role: SubProject): string | undefined => packageForRole(topology, role)?.name
19
+ const topology = topologyHelper.resolveTopology(topologyHelper.topologyOf(layout))
20
+ const dirOf = (role: SubProject): string | undefined => topologyHelper.packageForRole(topology, role)?.name
68
21
 
69
22
  return {
70
23
  layout,
@@ -100,10 +53,10 @@ export const LAYOUTS: Record<TargetLayout, TargetPaths> = {
100
53
  * so an unmapped role falls back to its own name here, which is that same visible failure.
101
54
  */
102
55
  const roleDirsOfTopology = (layout: TargetLayout): Record<SubProject, string> => {
103
- const topology = resolveTopology(topologyOf(layout))
56
+ const topology = topologyHelper.resolveTopology(topologyHelper.topologyOf(layout))
104
57
 
105
58
  return Object.values(SubProject).reduce<Record<SubProject, string>>((dirs, role) => {
106
- dirs[role] = packageForRole(topology, role)?.name ?? role
59
+ dirs[role] = topologyHelper.packageForRole(topology, role)?.name ?? role
107
60
 
108
61
  return dirs
109
62
  }, {} as Record<SubProject, string>)
@@ -114,28 +67,17 @@ export const ROLE_DIRS: Record<TargetLayout, Record<SubProject, string>> = {
114
67
  [TargetLayout.V2]: roleDirsOfTopology(TargetLayout.V2),
115
68
  }
116
69
 
117
- /**
118
- * The one marker per layout, chosen because it exists in that layout and in no other.
119
- *
120
- * `sources/api` cannot appear in a v1 tree and `packages/backend` cannot appear in a v2 one, so a
121
- * single `stat` settles it. Deliberately not `sources/` alone: v1 packages each have their own
122
- * `src`, and a directory name that differs by one letter is not something to hang a runtime path
123
- * resolution on. Ordered — the first marker found wins.
124
- */
125
- export const LAYOUT_MARKERS: Array<[TargetLayout, string]> = [
126
- [TargetLayout.V2, 'sources/api'],
127
- [TargetLayout.V1, 'packages/backend'],
128
- ]
70
+ export const createSlotLayoutHelper = (): SlotLayoutHelper => {
71
+ const subprojectDirOf = (layout: TargetLayout, role: SubProject): string =>
72
+ ROLE_DIRS[layout][role] ?? role
129
73
 
130
- /**
131
- * Resolve a wire-level role to the directory it names in a given layout.
132
- *
133
- * An unknown value — a role from a sender newer than this reader — falls back to the role's own
134
- * name, which is the honest guess for a layout whose packages are named after their roles, and
135
- * which fails visibly rather than resolving to some other package's directory.
136
- */
137
- export const subprojectDirOf = (layout: TargetLayout, role: SubProject): string =>
138
- ROLE_DIRS[layout][role] ?? role
74
+ const pathsOf = (layout: TargetLayout): TargetPaths => LAYOUTS[layout]
139
75
 
140
- /** Where every role lives, for a layout already decided. */
141
- export const pathsOf = (layout: TargetLayout): TargetPaths => LAYOUTS[layout]
76
+ return { subprojectDirOf, pathsOf }
77
+ }
78
+
79
+ export const slotLayoutHelper = createSlotLayoutHelper()
80
+
81
+ /** @deprecated compat:factory-refactor — use `slotLayoutHelper.subprojectDirOf(…)` */
82
+ export const subprojectDirOf = (layout: TargetLayout, role: SubProject): string =>
83
+ slotLayoutHelper.subprojectDirOf(layout, role)
@@ -0,0 +1,23 @@
1
+ import type { AddressableSlot } from '../types.js'
2
+
3
+ /** Where a slot's application answers, and the redirect URIs its OIDC client needs there. */
4
+ export interface SlotOriginHelper {
5
+ /**
6
+ * The origin a slot's application answers at.
7
+ *
8
+ * Read back from the slot's stored `host`, never recomposed from a slug — a preview host is a
9
+ * CLAIMED resource with a certificate behind it, and the name a slot ended up with is not always
10
+ * the name its project would compose today. What this adds is the scheme, which is the one part
11
+ * that follows from the kind rather than from the record: a local target is a loopback address and
12
+ * therefore `http`, everything else is TLS-terminated at an edge and therefore `https`.
13
+ */
14
+ slotOrigin: (slot: AddressableSlot) => string
15
+ /**
16
+ * The exact redirect URIs a target's OIDC client must carry for one origin.
17
+ *
18
+ * Exact, because a provider matches a redirect URI literally and refuses a wildcard — and both
19
+ * entries are needed: the callback the login round trip returns to, and the bare origin, which is
20
+ * where the application's own logout lands.
21
+ */
22
+ targetRedirectUrisForOrigin: (origin: string, callbackPath: string) => string[]
23
+ }
@@ -0,0 +1,20 @@
1
+ import { WorkloadKind } from './consts.js'
2
+ import type { AddressableSlot } from './types.js'
3
+ import type { SlotOriginHelper } from './origin/types.js'
4
+
5
+ export const createSlotOriginHelper = (): SlotOriginHelper => {
6
+ const slotOrigin = (slot: AddressableSlot): string => {
7
+ const host = slot.host ?? ''
8
+ if (host === '') return ''
9
+ if (host.startsWith('http://') || host.startsWith('https://')) return host
10
+
11
+ return `${slot.kind === WorkloadKind.Local ? 'http' : 'https'}://${host}`
12
+ }
13
+
14
+ const targetRedirectUrisForOrigin = (origin: string, callbackPath: string): string[] =>
15
+ origin === '' ? [] : [origin, `${origin}${callbackPath}`]
16
+
17
+ return { slotOrigin, targetRedirectUrisForOrigin }
18
+ }
19
+
20
+ export const slotOriginHelper = createSlotOriginHelper()
package/src/slot/types.ts CHANGED
@@ -1,4 +1,5 @@
1
- import type { SlotCommandType, SlotDatabaseCommand, SlotFileCommand, SlotGitCommand, SlotShellCommand, SubProject } from './consts.js'
1
+ import { type SlotCommandType, type SlotDatabaseCommand, type SlotFileCommand, type SlotGitCommand, type SlotShellCommand, type SubProject, WorkloadKind } from './consts.js'
2
+ import { TargetLayout } from '../integrity/index.js'
2
3
 
3
4
  export type SlotCommand = SlotFileCommand | SlotShellCommand | SlotGitCommand | SlotDatabaseCommand
4
5
 
@@ -21,6 +22,7 @@ export interface SlotDatabaseQueryArgs {
21
22
  timeoutMs?: number
22
23
  }
23
24
 
25
+ // Kept as a type: a union of the success and the failure shape.
24
26
  export type SlotDatabaseQueryResult = {
25
27
  ok: true
26
28
  columns: Array<{ name: string; dataType: string }>
@@ -191,3 +193,58 @@ export interface SlotShellArgs {
191
193
  args?: string
192
194
  skipBuild?: boolean
193
195
  }
196
+
197
+ /** The minimum a caller must know about a slot to address it. */
198
+ export interface AddressableSlot {
199
+ kind?: WorkloadKind
200
+ host?: string
201
+ }
202
+
203
+ /**
204
+ * Where each role lives, for one layout. Directory names are target-root-relative.
205
+ *
206
+ * The pure half of layout resolution. Whoever holds the tree — the publisher over a pod volume,
207
+ * the connector over a directory on a developer's machine — adds the two filesystem probes that
208
+ * pick the layout and turn these names into absolute paths. The TABLES are shared so the two
209
+ * cannot disagree about what a role means.
210
+ */
211
+ export interface TargetPaths {
212
+ layout: TargetLayout
213
+ /** The directory holding the workspace packages — `packages` or `sources`. */
214
+ dir: string
215
+ /** The package whose `dist/index.js` runs as the target's HTTP server. */
216
+ api: string
217
+ /** The package whose `dist/` is served to a browser. */
218
+ web: string
219
+ /** The shared library the other two compile against. */
220
+ common: string
221
+ /**
222
+ * The package whose `dist/index.js` runs as the target's queue worker, when the target has one.
223
+ *
224
+ * Absent for v1, which had no such package and never will — a target's tree is the one it was
225
+ * initialized with. Present for v2 as a NAME, not as a promise: every caller checks the disk
226
+ * before acting on it.
227
+ */
228
+ worker?: string
229
+ /**
230
+ * Every package a full build runs, in dependency order.
231
+ *
232
+ * Longer than the three roles for v2, whose `backend` is a library that both `api` and `worker`
233
+ * import. A caller skips whatever is not on disk — a target need not have a worker.
234
+ */
235
+ build: string[]
236
+ /**
237
+ * The packages built with `tsc -b` and consumed through their `build/` output, in dependency
238
+ * order — never bundled, so their output has to be on disk at RUN time, not only at build time.
239
+ *
240
+ * The bundled packages keep every dependency external, so `bun dist/index.js` resolves
241
+ * `project-backend` from `node_modules` at startup, follows its `main` to `build/index.js` — and
242
+ * if nothing built it, Bun answers `Cannot find package 'project-backend'` and the target exits 1
243
+ * with a message that names a dependency rather than a missing build.
244
+ *
245
+ * v1 got away without this list: it had ONE library and the template shipped its `build/`
246
+ * prebuilt. v2 deleted those artifacts and added a second library, so every path that builds a
247
+ * target has to build these first or it can never start.
248
+ */
249
+ libraries: string[]
250
+ }
@@ -0,0 +1,10 @@
1
+ import { slotCommandHelper } from './command.js'
2
+ import type { SlotCommandType } from './consts.js'
3
+
4
+ /** @deprecated compat:factory-refactor — use `slotCommandHelper.commandTimeout(…)` */
5
+ export const commandTimeout = (type: SlotCommandType, command: string, override?: number): number =>
6
+ slotCommandHelper.commandTimeout(type, command, override)
7
+
8
+ /** @deprecated compat:factory-refactor — use `slotCommandHelper.commandDeadline(…)` */
9
+ export const commandDeadline = (type: SlotCommandType, command: string): number =>
10
+ slotCommandHelper.commandDeadline(type, command)
@@ -0,0 +1,21 @@
1
+ import type { TopologyDescriptor, TopologyMeta } from '../types.js'
2
+
3
+ /** The topology file `.agents/memory/topology.md`: its frontmatter, read and written, and its body. */
4
+ export interface TopologyCardHelper {
5
+ /**
6
+ * Narrow a parsed frontmatter block into a topology, or answer `null`.
7
+ *
8
+ * `null` means "use the layout default", and every caller treats it that way. A topology file
9
+ * written by a platform version this one cannot read must not stop a project from building — the
10
+ * arrangement it describes is almost certainly still the default one.
11
+ */
12
+ parseTopologyMeta: (data: unknown) => TopologyDescriptor | null
13
+ topologyMeta: (topology: TopologyDescriptor) => TopologyMeta
14
+ /**
15
+ * The body of `.agents/memory/topology.md` — what a model reads, and what a person reads.
16
+ *
17
+ * Rendered from the descriptor rather than maintained beside it, for the same reason the layout
18
+ * tables are: a card that disagrees with the frontmatter teaches the wrong tree.
19
+ */
20
+ renderTopologyCard: (topology: TopologyDescriptor) => string
21
+ }