@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
@@ -0,0 +1,23 @@
1
+ import type { Blueprint } from '../../blueprint/types.js'
2
+ import type { ProjectArea } from '../consts.js'
3
+ import type { ProjectTenancy } from '../types.js'
4
+
5
+ /** Which of a product's audiences act inside a tenant organization. */
6
+ export interface TenancyHelper {
7
+ /**
8
+ * The tenancy of a resolved blueprint.
9
+ *
10
+ * Total, like `landingGatePreferenceOf`: an absent layer, an absent key and a value this deploy
11
+ * cannot read all answer {@link NO_TENANCY}. Only a literal `true` turns a flag on, because a flag
12
+ * read as on by mistake splits a product's people into organizations nobody asked for, while one
13
+ * read as off leaves the application exactly as it was before tenancy existed.
14
+ */
15
+ tenancyOf: (blueprint?: Pick<Blueprint, 'experience'> | null) => ProjectTenancy
16
+ /**
17
+ * Whether an AREA's people act inside a tenant organization.
18
+ *
19
+ * Guest has no organization to act in, and admin is the project owner, who stands above every
20
+ * tenant rather than inside one — so both are never tenanted, whatever the flags say.
21
+ */
22
+ tenantedArea: (area: ProjectArea, tenancy: ProjectTenancy) => boolean
23
+ }
@@ -1,33 +1,34 @@
1
1
  import type { Blueprint } from '../blueprint/types.js'
2
2
  import { ProjectArea, NO_TENANCY } from './consts.js'
3
3
  import type { ProjectTenancy } from './types.js'
4
+ import type { TenancyHelper } from './tenancy/types.js'
4
5
 
5
- /**
6
- * The tenancy of a resolved blueprint.
7
- *
8
- * Total, like `landingGatePreferenceOf`: an absent layer, an absent key and a value this deploy
9
- * cannot read all answer {@link NO_TENANCY}. Only a literal `true` turns a flag on, because a flag
10
- * read as on by mistake splits a product's people into organizations nobody asked for, while one
11
- * read as off leaves the application exactly as it was before tenancy existed.
12
- */
13
- export const tenancyOf = (blueprint?: Pick<Blueprint, 'experience'> | null): ProjectTenancy => {
14
- const tenancy = blueprint?.experience?.tenancy
15
- const operators = tenancy?.operators === true
16
- const users = tenancy?.users === true
6
+ export const createTenancyHelper = (): TenancyHelper => {
7
+ const tenancyOf = (blueprint?: Pick<Blueprint, 'experience'> | null): ProjectTenancy => {
8
+ const tenancy = blueprint?.experience?.tenancy
9
+ const operators = tenancy?.operators === true
10
+ const users = tenancy?.users === true
17
11
 
18
- return operators || users ? Object.freeze({ operators, users }) : NO_TENANCY
19
- }
12
+ return operators || users ? Object.freeze({ operators, users }) : NO_TENANCY
13
+ }
20
14
 
21
- /**
22
- * Whether an AREA's people act inside a tenant organization.
23
- *
24
- * Guest has no organization to act in, and admin is the project owner, who stands above every
25
- * tenant rather than inside one — so both are never tenanted, whatever the flags say.
26
- */
27
- export const tenantedArea = (area: ProjectArea, tenancy: ProjectTenancy): boolean => {
28
- switch (area) {
29
- case ProjectArea.User: return tenancy.users === true
30
- case ProjectArea.Operator: return tenancy.operators === true
31
- default: return false
15
+ const tenantedArea = (area: ProjectArea, tenancy: ProjectTenancy): boolean => {
16
+ switch (area) {
17
+ case ProjectArea.User: return tenancy.users === true
18
+ case ProjectArea.Operator: return tenancy.operators === true
19
+ default: return false
20
+ }
32
21
  }
22
+
23
+ return { tenancyOf, tenantedArea }
33
24
  }
25
+
26
+ export const tenancyHelper = createTenancyHelper()
27
+
28
+ /** @deprecated compat:factory-refactor — use `tenancyHelper.tenancyOf(…)` */
29
+ export const tenancyOf = (blueprint?: Pick<Blueprint, 'experience'> | null): ProjectTenancy =>
30
+ tenancyHelper.tenancyOf(blueprint)
31
+
32
+ /** @deprecated compat:factory-refactor — use `tenancyHelper.tenantedArea(…)` */
33
+ export const tenantedArea = (area: ProjectArea, tenancy: ProjectTenancy): boolean =>
34
+ tenancyHelper.tenantedArea(area, tenancy)
@@ -0,0 +1,45 @@
1
+ import type { StoryDraft } from '../../areas/types.js'
2
+ import type { ConnectingStoryDraft, MergedStoryDraft } from '../types.js'
3
+
4
+ /** The connecting stories of a flow: how many it may carry, and where each one lands. */
5
+ export interface ConnectingStoryHelper {
6
+ /**
7
+ * How many connecting stories one flow may carry.
8
+ *
9
+ * An N-step chain has N-1 joints, and a connecting story exists to bridge one of them — so the
10
+ * flow sizes its own supporting cast, and a three-step product can never end up with eight list
11
+ * screens. It is a CEILING, not a target: the prompt is told to write as few as its rules actually
12
+ * derived, and most flows land well below this.
13
+ *
14
+ * The real reason for a hard number: every story here becomes a full develop run the project's
15
+ * owner pays for.
16
+ */
17
+ connectingStoryCap: (flowCount: number) => number
18
+ /**
19
+ * Interleave the connecting stories into the flow they were derived from.
20
+ *
21
+ * `after` is an ANCHOR, not a position: it names the flow story whose result the connecting story
22
+ * displays, so the connecting story lands immediately behind it — which is also immediately in
23
+ * front of the step it leads into. The result is ONE ordered list, and it is the order records are
24
+ * created in.
25
+ *
26
+ * This is the only place the anchor is interpreted. Both halves of the feature — the prompt that
27
+ * produces it and the pipeline that persists the result — read it through here, or the two drift
28
+ * and nothing fails loudly enough to notice. The CLAMPED anchor is carried out on each connective
29
+ * entry as `after`, which is what the story card's `follows` relationship is written from.
30
+ *
31
+ * Four properties are deliberate:
32
+ *
33
+ * - **The flow subsequence is never disturbed.** Strip the connecting stories back out and you have
34
+ * `flow`, in `flow` order: story N still implements numbered step N. Everything that finds the
35
+ * primary story depends on that.
36
+ * - **Nothing precedes the first flow story.** An anchor below 1 is clamped up rather than opening a
37
+ * position in front of the flow — nothing can be listed before the step that produced it, and
38
+ * story 1 stays the enabling action.
39
+ * - **A placement is advice; the story is work already paid for.** An anchor past the end means
40
+ * "at the end", and one that is not a number at all means the front of the flow. Neither is a
41
+ * reason to lose a story.
42
+ * - **Ties keep the model's order**, which is the only ranking anything has.
43
+ */
44
+ mergeConnectingStories: (flow: StoryDraft[], connecting: ConnectingStoryDraft[]) => MergedStoryDraft[]
45
+ }
@@ -0,0 +1,64 @@
1
+ import type { StoryDraft } from "../areas/types.js"
2
+ import type { ConnectingStoryDraft, MergedStoryDraft } from "./types.js"
3
+ import { StoryKind } from "./consts.js"
4
+ import type { ConnectingStoryHelper } from './connecting/types.js'
5
+
6
+ export const createConnectingStoryHelper = (): ConnectingStoryHelper => {
7
+ const connectingStoryCap = (flowCount: number): number => Math.max(flowCount - 1, 0)
8
+
9
+ /** Collapse case and whitespace, so "the same story twice" is recognised as such. */
10
+ const canonical = (story: string): string => story.trim().replace(/\s+/g, ' ').toLowerCase()
11
+
12
+ const mergeConnectingStories = (
13
+ flow: StoryDraft[], connecting: ConnectingStoryDraft[]
14
+ ): MergedStoryDraft[] => {
15
+ if (flow.length < 1) {
16
+ return []
17
+ }
18
+
19
+ const seen = new Set(flow.map(({ story }) => canonical(story)))
20
+ const placed: Array<{ draft: ConnectingStoryDraft, at: number }> = []
21
+
22
+ for (const draft of connecting) {
23
+ const text = canonical(draft.story)
24
+ // A connecting story that repeats a flow story is not a second story: it is one develop run
25
+ // spent twice AND — since the home-screen detector matches its answer back by exact text — a
26
+ // second record that answer could resolve to.
27
+ if (text === '' || seen.has(text)) {
28
+ continue
29
+ }
30
+ seen.add(text)
31
+
32
+ const after = Number(draft.after)
33
+ placed.push({
34
+ draft,
35
+ at: Number.isFinite(after) ? Math.min(Math.max(Math.trunc(after), 1), flow.length) : 1,
36
+ })
37
+ }
38
+
39
+ // Over the cap, the LATEST-anchored go: a story late in the flow gates the fewest steps behind
40
+ // it, while the queue that hands step 1 to step 2 is what makes everything after it reachable.
41
+ // The sort is stable, so two stories on the same step keep the order they were derived in.
42
+ const surviving = placed
43
+ .map((entry, order) => ({ ...entry, order }))
44
+ .sort((a, b) => a.at - b.at || a.order - b.order)
45
+ .slice(0, connectingStoryCap(flow.length))
46
+
47
+ // Bucket N holds what comes immediately after flow story N (1-based, as the prompt numbers them).
48
+ const buckets: ConnectingStoryDraft[][] = flow.map(() => [])
49
+ for (const { draft, at } of surviving) {
50
+ buckets[at - 1]!.push(draft)
51
+ }
52
+
53
+ return flow.flatMap(({ story, area }, index) => [
54
+ { story, area, kind: StoryKind.Flow },
55
+ ...buckets[index]!.map(draft => (
56
+ { story: draft.story.trim(), area: draft.area, kind: StoryKind.Connective, after: index + 1 }
57
+ )),
58
+ ])
59
+ }
60
+
61
+ return { connectingStoryCap, mergeConnectingStories }
62
+ }
63
+
64
+ export const connectingStoryHelper = createConnectingStoryHelper()
package/src/ba/helpers.ts CHANGED
@@ -1,94 +1,10 @@
1
- import type { StoryDraft } from "../areas/types.js"
2
- import type { ConnectingStoryDraft, MergedStoryDraft } from "./types.js"
3
- import { StoryKind } from "./consts.js"
1
+ import type { StoryDraft } from '../areas/types.js'
2
+ import { connectingStoryHelper } from './connecting.js'
3
+ import type { ConnectingStoryDraft, MergedStoryDraft } from './types.js'
4
4
 
5
- /**
6
- * How many connecting stories one flow may carry.
7
- *
8
- * An N-step chain has N-1 joints, and a connecting story exists to bridge one of them — so the
9
- * flow sizes its own supporting cast, and a three-step product can never end up with eight list
10
- * screens. It is a CEILING, not a target: the prompt is told to write as few as its rules actually
11
- * derived, and most flows land well below this.
12
- *
13
- * The real reason for a hard number: every story here becomes a full develop run the project's
14
- * owner pays for.
15
- */
16
- export const connectingStoryCap = (flowCount: number): number => Math.max(flowCount - 1, 0)
5
+ /** @deprecated compat:factory-refactor — use `connectingStoryHelper.connectingStoryCap(…)` */
6
+ export const connectingStoryCap = (flowCount: number): number => connectingStoryHelper.connectingStoryCap(flowCount)
17
7
 
18
- /** Collapse case and whitespace, so "the same story twice" is recognised as such. */
19
- const canonical = (story: string): string => story.trim().replace(/\s+/g, ' ').toLowerCase()
20
-
21
- /**
22
- * Interleave the connecting stories into the flow they were derived from.
23
- *
24
- * `after` is an ANCHOR, not a position: it names the flow story whose result the connecting story
25
- * displays, so the connecting story lands immediately behind it — which is also immediately in
26
- * front of the step it leads into. The result is ONE ordered list, and it is the order records are
27
- * created in.
28
- *
29
- * This is the only place the anchor is interpreted. Both halves of the feature — the prompt that
30
- * produces it and the pipeline that persists the result — read it through here, or the two drift
31
- * and nothing fails loudly enough to notice. The CLAMPED anchor is carried out on each connective
32
- * entry as `after`, which is what the story card's `follows` relationship is written from.
33
- *
34
- * Four properties are deliberate:
35
- *
36
- * - **The flow subsequence is never disturbed.** Strip the connecting stories back out and you have
37
- * `flow`, in `flow` order: story N still implements numbered step N. Everything that finds the
38
- * primary story depends on that.
39
- * - **Nothing precedes the first flow story.** An anchor below 1 is clamped up rather than opening a
40
- * position in front of the flow — nothing can be listed before the step that produced it, and
41
- * story 1 stays the enabling action.
42
- * - **A placement is advice; the story is work already paid for.** An anchor past the end means
43
- * "at the end", and one that is not a number at all means the front of the flow. Neither is a
44
- * reason to lose a story.
45
- * - **Ties keep the model's order**, which is the only ranking anything has.
46
- */
47
- export const mergeConnectingStories = (
48
- flow: StoryDraft[], connecting: ConnectingStoryDraft[]
49
- ): MergedStoryDraft[] => {
50
- if (flow.length < 1) {
51
- return []
52
- }
53
-
54
- const seen = new Set(flow.map(({ story }) => canonical(story)))
55
- const placed: Array<{ draft: ConnectingStoryDraft, at: number }> = []
56
-
57
- for (const draft of connecting) {
58
- const text = canonical(draft.story)
59
- // A connecting story that repeats a flow story is not a second story: it is one develop run
60
- // spent twice AND — since the home-screen detector matches its answer back by exact text — a
61
- // second record that answer could resolve to.
62
- if (text === '' || seen.has(text)) {
63
- continue
64
- }
65
- seen.add(text)
66
-
67
- const after = Number(draft.after)
68
- placed.push({
69
- draft,
70
- at: Number.isFinite(after) ? Math.min(Math.max(Math.trunc(after), 1), flow.length) : 1,
71
- })
72
- }
73
-
74
- // Over the cap, the LATEST-anchored go: a story late in the flow gates the fewest steps behind
75
- // it, while the queue that hands step 1 to step 2 is what makes everything after it reachable.
76
- // The sort is stable, so two stories on the same step keep the order they were derived in.
77
- const surviving = placed
78
- .map((entry, order) => ({ ...entry, order }))
79
- .sort((a, b) => a.at - b.at || a.order - b.order)
80
- .slice(0, connectingStoryCap(flow.length))
81
-
82
- // Bucket N holds what comes immediately after flow story N (1-based, as the prompt numbers them).
83
- const buckets: ConnectingStoryDraft[][] = flow.map(() => [])
84
- for (const { draft, at } of surviving) {
85
- buckets[at - 1]!.push(draft)
86
- }
87
-
88
- return flow.flatMap(({ story, area }, index) => [
89
- { story, area, kind: StoryKind.Flow },
90
- ...buckets[index]!.map(draft => (
91
- { story: draft.story.trim(), area: draft.area, kind: StoryKind.Connective, after: index + 1 }
92
- )),
93
- ])
94
- }
8
+ /** @deprecated compat:factory-refactor — use `connectingStoryHelper.mergeConnectingStories(…)` */
9
+ export const mergeConnectingStories = (flow: StoryDraft[], connecting: ConnectingStoryDraft[]): MergedStoryDraft[] =>
10
+ connectingStoryHelper.mergeConnectingStories(flow, connecting)
package/src/ba/index.ts CHANGED
@@ -1,4 +1,6 @@
1
1
 
2
+ export * from './connecting.js'
2
3
  export * from './helpers.js'
3
4
  export * from './consts.js'
4
5
  export type * from './types.js'
6
+ export type * from './connecting/types.js'
@@ -1,7 +1,6 @@
1
1
  import type { ProjectTenancy } from '../areas/types.js'
2
2
  import type { SubProject } from '../slot/consts.js'
3
- import type { ViableSkill } from '../skills/consts.js'
4
- import type { ViablePersona } from '../skills/roles.js'
3
+ import type { ViablePersona, ViableSkill } from '../skills/consts.js'
5
4
  import type { TopologyDescriptor } from '../topology/types.js'
6
5
  import { BlueprintPatchKind, LandingGatePreference } from './consts.js'
7
6
 
@@ -189,6 +188,7 @@ export interface BlueprintCapabilities {
189
188
  marketingConsent: boolean
190
189
  }
191
190
 
191
+ // Kept as a type: a mapped type over the blueprint's keys.
192
192
  /** A partial override of a blueprint, deep-merged over the resolved value. */
193
193
  export type BlueprintPatch = {
194
194
  [K in keyof Blueprint]?: Blueprint[K] extends string ? Blueprint[K] : Partial<Blueprint[K]>
@@ -0,0 +1,29 @@
1
+
2
+
3
+ /**
4
+ * A project's branding as a connector reads it — what the generated application says about who
5
+ * made it, and the Google tag it loads.
6
+ *
7
+ * Every field is a string, `''` when unset, in the platform's own branding vocabulary. The
8
+ * platform credit is absent on purpose: hiding it is a paid capability behind its own gated route,
9
+ * and neither reading nor saving this record may reach it.
10
+ */
11
+ export interface ConnectProjectBranding {
12
+ /** The copyright line in the application's footer. Never empty once saved. */
13
+ copyright: string
14
+ /** The organization's display name. Never empty once saved. */
15
+ organizationName: string
16
+ /** `''`, an `https://` URL, or a same-origin path such as `/terms` (the generated page). */
17
+ termsUrl: string
18
+ /** `''`, an `https://` URL, or a same-origin path such as `/privacy` (the generated page). */
19
+ privacyUrl: string
20
+ /** `''`, or a Google tag id: `GTM-…`, `G-…`, `GT-…`, `AW-…`, `DC-…`. */
21
+ googleTag: string
22
+ }
23
+
24
+ /**
25
+ * A PATCH of a project's branding: every field optional, and an absent field keeps its current
26
+ * value. The platform merges it over what is stored, validates the result as a whole with the
27
+ * rules the web form uses, and answers the merged record.
28
+ */
29
+ export interface ConnectProjectBrandingSave extends Partial<ConnectProjectBranding> {}
@@ -412,3 +412,6 @@ export const connect = Object.freeze({
412
412
  resume: 'viable:manager-api:connect:pipeline:resume',
413
413
  }),
414
414
  })
415
+
416
+ /** Tier → the model the parent will run it on. Free-form; display only. */
417
+ export const ModelTierValues = Object.values(ModelTier)
@@ -0,0 +1,96 @@
1
+ import type {
2
+ ArchitectureCase, ConversionDecision, ConversionStage, ConversionStatus, ConvertibilityReason,
3
+ ConvertibilityVerdict, OriginKind, OriginShape, OriginState
4
+ } from '../../convert/consts.js'
5
+ import type { ConversionEstimate, StoryEstimateBand } from '../../convert/estimate/types.js'
6
+ import type { ConversionStackRef } from '../../convert/record/types.js'
7
+ import type { ConnectTarget, ConnectWaitReason } from '../consts.js'
8
+ import type { InquiryPayload } from '../ops/types.js'
9
+
10
+ /** Start a conversion of an existing project's code. */
11
+ export interface ConnectConvertCreateBody {
12
+ name?: string
13
+ about?: string
14
+ /** Where the converted target's tree will live. */
15
+ target?: ConnectTarget
16
+ /**
17
+ * Where the code comes from.
18
+ *
19
+ * Absent for a LOCAL target the connector is already attached to: the tree is the directory the
20
+ * session opened on, and there is nothing to fetch.
21
+ */
22
+ origin?: { kind: OriginKind, repoUrl?: string, branch?: string }
23
+ }
24
+
25
+ /**
26
+ * Start the conversion of a project already filed.
27
+ *
28
+ * `confirm` says a PERSON agreed to what the start uses: without it, a start that would spend the
29
+ * organization's `conversions` unit is refused with `ConnectConfirmationRequired` and nothing runs.
30
+ * A delegated conversion spends nothing and is never asked.
31
+ */
32
+ export interface ConnectConvertStartBody {
33
+ confirm?: boolean
34
+ }
35
+
36
+ /** Decide what happens at a stage boundary. */
37
+ export interface ConnectConvertProceedBody {
38
+ decision: ConversionDecision
39
+ /** Free text the user added to the decision; recorded, never parsed. */
40
+ note?: string
41
+ /**
42
+ * A person agreed to what the stage costs. Without it, a stage that would spend credit limits or
43
+ * topped-up credits (its estimate past what is left of the conversion limit) is refused with
44
+ * `ConnectConfirmationRequired` — its estimate split packed — and nothing runs.
45
+ */
46
+ confirm?: boolean
47
+ }
48
+
49
+ /**
50
+ * Whether this origin can be converted, and what it will cost.
51
+ *
52
+ * Answered BEFORE anything is provisioned or charged, from the census alone — which is why it
53
+ * carries the counts it was decided from rather than a bare verdict.
54
+ */
55
+ export interface ConvertCheck {
56
+ projectId: string
57
+ verdict: ConvertibilityVerdict
58
+ reasons: ConvertibilityReason[]
59
+ stack?: ConversionStackRef
60
+ architecture?: ArchitectureCase
61
+ shape: OriginShape
62
+ monorepo: boolean
63
+ /** Workspace members and directories nothing declares. Named, because each one is a decision. */
64
+ unlinked: string[]
65
+ files: number
66
+ bytes: number
67
+ /** Bulk data files found — sampled and described, never carried. */
68
+ bulk: number
69
+ estimate?: ConversionEstimate
70
+ }
71
+
72
+ /** Everything a caller needs to draw the conversion's current state in one call. */
73
+ export interface ConversionStatusView {
74
+ projectId: string
75
+ stage: ConversionStage
76
+ status: ConversionStatus
77
+ /** The last decision the user made. */
78
+ decision?: ConversionDecision
79
+ verdict?: ConvertibilityVerdict
80
+ stack?: ConversionStackRef
81
+ /** What the conversion is rebuilding the project ONTO. Always the Viable stack today. */
82
+ targetStack?: ConversionStackRef
83
+ architecture?: ArchitectureCase
84
+ /** One per stage that has been estimated, newest last. */
85
+ estimates: ConversionEstimate[]
86
+ storyEstimate?: StoryEstimateBand
87
+ originState: OriginState
88
+ /** How many questions the conversion answered for itself. Each one is readable in the docs. */
89
+ assumptions: number
90
+ runId?: string
91
+ /** Set exactly when `status` is `Waiting`: the question the run stopped on. */
92
+ pendingInquiry?: InquiryPayload
93
+ waitingFor?: ConnectWaitReason
94
+ lastError?: string
95
+ updatedAt: string
96
+ }
@@ -0,0 +1,25 @@
1
+
2
+
3
+ /**
4
+ * What the platform injects when it mounts the connector routes.
5
+ *
6
+ * The names of the guard and the gates belong to the deployment, not to the contract: a connector
7
+ * API on another platform would guard the same paths with its own vocabulary. Everything else —
8
+ * paths, methods, schemas, parents — is fixed here so a client cannot address them differently.
9
+ */
10
+ export interface ConnectEntrypointOptions {
11
+ /** The guard alias every connector route carries. */
12
+ guard: string
13
+ /** The gate alias and parameters that decide project ownership. */
14
+ gate?: { alias: string, params: string[] }
15
+ /**
16
+ * The gate that decides whether the caller may use the local-LLM mode.
17
+ *
18
+ * Applied to the one route that turns it on — opening a delegated session. Everything else is
19
+ * free: `cloud` is the default, and a project's own override is the platform's browser surface,
20
+ * not the connector's.
21
+ */
22
+ localLlm?: { alias: string, params: string[] }
23
+ /** Path prefix; defaults to `/connect`. */
24
+ path?: string
25
+ }
@@ -10,8 +10,19 @@ import {
10
10
  ConnectProjectIdSchema, ConnectSessionOpenSchema, ConnectSessionParamsSchema, ConnectPullQuerySchema,
11
11
  ConnectStoryParamsSchema, InquiryAnswerSchema,
12
12
  } from './schemas.js'
13
- import type { ConnectAttachBody, ConnectConfirmBody, ConnectConvertCreateBody, ConnectConvertProceedBody, ConnectConvertStartBody, ConnectCreateBody, ConnectInquiryAnswerBody, ConnectKitApplyBody, ConnectKitApplyResult, ConnectKitDescribe, ConnectModifyBody, ConnectPipelineParams, ConnectPipelineResumeBody, ConnectProjectBranding, ConnectProjectBrandingSave, ConnectSessionOpen, ConnectPipelineState, ConnectProjectStatus, ConnectPullQuery, ConnectSessionParams, ConnectStoryStatus, ConversionStatusView, ConvertCheck, ConnectEntrypointOptions } from './types.js'
14
- import type { ConnectOpResult } from './ops.js'
13
+ import type { ConnectProjectBranding, ConnectProjectBrandingSave } from './branding/types.js'
14
+ import type {
15
+ ConnectConvertCreateBody, ConnectConvertProceedBody, ConnectConvertStartBody, ConversionStatusView, ConvertCheck
16
+ } from './conversion/types.js'
17
+ import type { ConnectEntrypointOptions } from './entrypoints/types.js'
18
+ import type { ConnectKitApplyBody, ConnectKitApplyResult, ConnectKitDescribe } from './kit/types.js'
19
+ import type { ConnectInquiryAnswerBody, ConnectOpResult } from './ops/types.js'
20
+ import type { ConnectPipelineParams, ConnectPipelineResumeBody, ConnectPipelineState } from './pipeline/types.js'
21
+ import type {
22
+ ConnectAttachBody, ConnectConfirmBody, ConnectCreateBody, ConnectModifyBody, ConnectProjectStatus,
23
+ ConnectStoryStatus
24
+ } from './project/types.js'
25
+ import type { ConnectPullQuery, ConnectSessionOpen, ConnectSessionParams } from './session/types.js'
15
26
 
16
27
  /**
17
28
  * Declare the connector's HTTP surface — exactly the routes a connector calls: the session (long
@@ -0,0 +1,22 @@
1
+
2
+
3
+ /** The conversion verb a {@link ConnectConfirmationRequired} stopped. */
4
+ export type ConnectConfirmationAction = 'convert-start' | 'convert-proceed'
5
+
6
+ /**
7
+ * What a person is asked to agree to before a conversion verb spends anything — credits, except
8
+ * `moneyUsd`. `cap` is the plan's conversion limit this conversion runs under (`0` when no plan unit
9
+ * covers it) and `spent` what the conversion has used of it so far; `estimate` is the stage's
10
+ * estimate (`0` while nothing has priced it), of which `fromAllowance` comes from the conversion
11
+ * limit, `fromCreditLimits` from the organization's open credit limits, and the rest from topped-up
12
+ * credits — `moneyUsd`, the only money figure.
13
+ */
14
+ export interface ConnectConfirmation {
15
+ action: ConnectConfirmationAction
16
+ cap: number
17
+ spent: number
18
+ estimate: number
19
+ fromAllowance: number
20
+ fromCreditLimits: number
21
+ moneyUsd: number
22
+ }
@@ -1,5 +1,5 @@
1
1
  import { ResilientError } from '@owlmeans/error'
2
- import type { ConnectConfirmation, ConnectConfirmationAction } from './types.js'
2
+ import type { ConnectConfirmation, ConnectConfirmationAction } from './errors/types.js'
3
3
 
4
4
  export class ConnectError extends ResilientError {
5
5
  public static override typeName = `ViableConnect${ResilientError.typeName}`
@@ -1,8 +1,18 @@
1
1
  export * from './consts.js'
2
- export * from './utils.js'
2
+ export * from './model-tier.js'
3
3
  export * from './schemas.js'
4
4
  export * from './errors.js'
5
5
  export * from './entrypoints.js'
6
6
  export * from './references.js'
7
- export type * from './types.js'
8
- export type * from './ops.js'
7
+ export type * from './session/types.js'
8
+ export type * from './ops/types.js'
9
+ export type * from './project/types.js'
10
+ export type * from './settings/types.js'
11
+ export type * from './branding/types.js'
12
+ export type * from './pipeline/types.js'
13
+ export type * from './conversion/types.js'
14
+ export type * from './kit/types.js'
15
+ export type * from './entrypoints/types.js'
16
+ export type * from './errors/types.js'
17
+ export type * from './references/types.js'
18
+ export type * from './model-tier/types.js'
@@ -0,0 +1,56 @@
1
+
2
+
3
+ /** One status of a planning kit's flow. `intrinsic` is the planning intrinsic it maps to. */
4
+ export interface PlanningKitStatusView {
5
+ key: string
6
+ label: string
7
+ intrinsic: string
8
+ }
9
+
10
+ /** One status flow a planning kit declares. */
11
+ export interface PlanningKitFlowView {
12
+ key: string
13
+ label: string
14
+ statuses: PlanningKitStatusView[]
15
+ }
16
+
17
+ /** One card type a planning kit declares; `flow` is the key of its main flow. */
18
+ export interface PlanningKitTypeView {
19
+ key: string
20
+ label: string
21
+ flow: string
22
+ }
23
+
24
+ /**
25
+ * A planning kit as a connector sees it: a ready set of card types and status flows for one kind
26
+ * of work-management product, written into the target's common package on `apply`.
27
+ */
28
+ export interface PlanningKitView {
29
+ id: string
30
+ /** The work kind the kit serves — a bare string, so a newer kind never fails an older reader. */
31
+ kind: string
32
+ title: string
33
+ purpose: string
34
+ /** The project-level container type the kit's cards live in. */
35
+ container: { key: string, label: string }
36
+ types: PlanningKitTypeView[]
37
+ flows: PlanningKitFlowView[]
38
+ }
39
+
40
+ /** What `project.kit.describe` answers. */
41
+ export interface ConnectKitDescribe {
42
+ kits: PlanningKitView[]
43
+ }
44
+
45
+ /** Apply one kit; `types` keeps only these card-type keys of it (every type when omitted). */
46
+ export interface ConnectKitApplyBody {
47
+ kit: string
48
+ types?: string[]
49
+ }
50
+
51
+ /** What `project.kit.apply` answers: the type keys written, those left out, and warnings. */
52
+ export interface ConnectKitApplyResult {
53
+ applied: string[]
54
+ skipped: string[]
55
+ warnings: string[]
56
+ }
@@ -0,0 +1,16 @@
1
+ import type { ModelTier } from '../consts.js'
2
+
3
+ /** Which model tier a platform role runs on, and how a tier is placed on what a parent offers. */
4
+ export interface ModelTierHelper {
5
+ /** The tier a platform role asks for; a role the table does not name is `Standard`. */
6
+ tierOfRole: (role: string) => ModelTier
7
+ /**
8
+ * Pick the best tier a parent actually offers, never below what was asked for by more than the
9
+ * offer allows.
10
+ *
11
+ * A parent that offers only one model answers every task with it; a parent that offers two gets
12
+ * the nearer of the two. Silence is not an option — a task the connector cannot place is a run
13
+ * that stops.
14
+ */
15
+ clampTier: (wanted: ModelTier, offered: ModelTier[]) => ModelTier
16
+ }
@@ -0,0 +1,22 @@
1
+ import { MODEL_TIER_ROLES, ModelTier } from './consts.js'
2
+ import type { ModelTierHelper } from './model-tier/types.js'
3
+
4
+ export const createModelTierHelper = (): ModelTierHelper => {
5
+ const tierOfRole = (role: string): ModelTier =>
6
+ MODEL_TIER_ROLES[role] ?? ModelTier.Standard
7
+
8
+ const clampTier = (wanted: ModelTier, offered: ModelTier[]): ModelTier => {
9
+ if (offered.length < 1 || offered.includes(wanted)) return wanted
10
+ const ladder = [ModelTier.Strong, ModelTier.Standard, ModelTier.Cheap]
11
+ const from = ladder.indexOf(wanted)
12
+ // Prefer a stronger model over a weaker one: the task was sized for `wanted`.
13
+ for (let i = from; i >= 0; --i) if (offered.includes(ladder[i])) return ladder[i]
14
+ for (let i = from + 1; i < ladder.length; ++i) if (offered.includes(ladder[i])) return ladder[i]
15
+
16
+ return wanted
17
+ }
18
+
19
+ return { tierOfRole, clampTier }
20
+ }
21
+
22
+ export const modelTierHelper = createModelTierHelper()