@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
@@ -1,43 +1,33 @@
1
1
  import { TITLE_MAX } from '@owlmeans/planning'
2
+ import { LANDING_STORY_SENTENCE } from './consts.js'
3
+ import type { LandingSentenceHelper } from './landing/types.js'
2
4
 
3
- /**
4
- * The sentence a landing story's narrative carries — what a person reading the board sees.
5
- *
6
- * The AUTHORITY is the card's `fields.landing` flag, never this text: the design and development
7
- * stages key on the flag, and a person may reword the narrative at any time. The sentence exists so
8
- * the board says in plain words why this story is different, and so the analyst and the designer,
9
- * who read the narrative, write a screen that continues what the guest started.
10
- *
11
- * A constant, byte for byte, because {@link hasLandingSentence} is how a resumed decision step
12
- * knows it already appended it.
13
- */
14
- export const LANDING_STORY_SENTENCE = 'A visitor can start this on the landing page without an account;'
15
- + ' after signing in they continue here with their choices carried over.'
16
-
17
- const normalized = (text: string): string => text.replace(/\s+/g, ' ')
18
-
19
- /** Whether a narrative already carries the landing sentence, whatever whitespace surrounds it. */
20
- export const hasLandingSentence = (title: string): boolean =>
21
- normalized(title).includes(LANDING_STORY_SENTENCE)
22
-
23
- /**
24
- * The narrative with the landing sentence appended once.
25
- *
26
- * Idempotent — a narrative that already carries the sentence comes back unchanged, so a decision
27
- * step that is resumed after it wrote the card never appends a second copy. It never produces a
28
- * title longer than a card accepts (`TITLE_MAX`): a narrative with no room left is returned as it
29
- * is rather than cut, because a person's words are worth more than the note, and the flag on the
30
- * card still carries the fact.
31
- */
32
- export const withLandingSentence = (title: string): string => {
33
- if (hasLandingSentence(title)) {
34
- return title
35
- }
36
- const base = title.trimEnd()
37
- if (base === '') {
38
- return LANDING_STORY_SENTENCE
5
+ export const createLandingSentenceHelper = (): LandingSentenceHelper => {
6
+ const normalized = (text: string): string => text.replace(/\s+/g, ' ')
7
+
8
+ const hasLandingSentence = (title: string): boolean =>
9
+ normalized(title).includes(LANDING_STORY_SENTENCE)
10
+
11
+ const withLandingSentence = (title: string): string => {
12
+ if (hasLandingSentence(title)) {
13
+ return title
14
+ }
15
+ const base = title.trimEnd()
16
+ if (base === '') {
17
+ return LANDING_STORY_SENTENCE
18
+ }
19
+ const joined = `${base} ${LANDING_STORY_SENTENCE}`
20
+
21
+ return joined.length > TITLE_MAX ? title : joined
39
22
  }
40
- const joined = `${base} ${LANDING_STORY_SENTENCE}`
41
23
 
42
- return joined.length > TITLE_MAX ? title : joined
24
+ return { hasLandingSentence, withLandingSentence }
43
25
  }
26
+
27
+ export const landingSentenceHelper = createLandingSentenceHelper()
28
+
29
+ /** @deprecated compat:factory-refactor — use `landingSentenceHelper.hasLandingSentence(…)` */
30
+ export const hasLandingSentence = (title: string): boolean => landingSentenceHelper.hasLandingSentence(title)
31
+
32
+ /** @deprecated compat:factory-refactor — use `landingSentenceHelper.withLandingSentence(…)` */
33
+ export const withLandingSentence = (title: string): string => landingSentenceHelper.withLandingSentence(title)
@@ -1,13 +1,15 @@
1
1
  import type { JSONSchemaType } from 'ajv'
2
- import { CODE_MAX } from '@owlmeans/planning'
3
- import { ProjectArea } from '../areas/consts.js'
4
- import { TENANCY_QUOTE_MAX } from '../areas/tenancy.js'
2
+ import { CODE_MAX, IntrinsicPolicy, IntrinsicStatus, SpecificationFormat, WorkcardKind, AnyTypeSchema, ProjectTypeSchema, RelationshipType, SpecificationSlot, StatusFlowSchema, WorkcardTypeSchema } from '@owlmeans/planning'
3
+ import { ProjectArea, TENANCY_QUOTE_MAX } from '../areas/consts.js'
5
4
  import { CASE_QUOTE_MAX, WorkKind } from '../blueprint/consts.js'
6
5
  import { StoryKind } from '../ba/consts.js'
7
6
  import { ConnectLlm, ConnectTarget } from '../connect/consts.js'
8
7
  import { ProjectOriginSchema } from '../convert/schemas.js'
9
- import { StoryActor } from '../design/runtime.js'
8
+ import { StoryActor, STORY_DESIGN_VERSION } from '../design/consts.js'
10
9
  import type { ViableProjectFields, ViableStoryFields } from './types.js'
10
+ import { StoryDesignSchema } from '../design/schemas.js'
11
+ import { ScaffoldPlanSchema } from '../scaffold/schemas.js'
12
+ import { VIABLE_BUG_CODE, VIABLE_BUG_TYPE, VIABLE_DESIGN_REVISIONS_KEPT, VIABLE_IMPROVEMENT_CODE, VIABLE_IMPROVEMENT_TYPE, VIABLE_PROJECT_CODE, VIABLE_PROJECT_FLOW, VIABLE_PROJECT_TYPE, VIABLE_REQUIREMENT_CODE, VIABLE_REQUIREMENT_TYPE, VIABLE_SPEC_FLOW, VIABLE_SPEC_TYPE, VIABLE_STORY_CODE, VIABLE_STORY_FLOW, VIABLE_STORY_TYPE, ViableProjectStatus, ViableProjectTransition, ViableRelationship, ViableSpecCategory, ViableSpecStatus, ViableStoryStatus, ViableStoryTransition, ViableTone } from './consts.js'
11
13
 
12
14
  /**
13
15
  * The `fields` schema of a `viable:project` card.
@@ -109,3 +111,188 @@ export const ViableSpecFieldsSchema = {
109
111
  required: [],
110
112
  additionalProperties: false,
111
113
  } as unknown as JSONSchemaType<Record<string, never>>
114
+
115
+ /**
116
+ * The story flow.
117
+ *
118
+ * `failed` maps to PLANNED: a failed story is work still to do, so "done" is the closed count and
119
+ * a retry is simply `start` again. `reset` from anywhere is the manual recovery — the one move a
120
+ * completed story still accepts.
121
+ */
122
+ export const VIABLE_STORY_FLOW_SCHEMA: StatusFlowSchema = {
123
+ id: VIABLE_STORY_FLOW,
124
+ version: 1,
125
+ statuses: [
126
+ { key: ViableStoryStatus.Planned, intrinsic: IntrinsicStatus.Planned, initial: true, tone: ViableTone.Blue },
127
+ { key: ViableStoryStatus.InProgress, intrinsic: IntrinsicStatus.InProgress, tone: ViableTone.Yellow },
128
+ { key: ViableStoryStatus.Completed, intrinsic: IntrinsicStatus.Closed, tone: ViableTone.Green },
129
+ { key: ViableStoryStatus.Failed, intrinsic: IntrinsicStatus.Planned, tone: ViableTone.Red },
130
+ ],
131
+ transitions: [
132
+ {
133
+ name: ViableStoryTransition.Start,
134
+ from: [ViableStoryStatus.Planned, ViableStoryStatus.Failed],
135
+ to: ViableStoryStatus.InProgress,
136
+ explicit: true,
137
+ },
138
+ {
139
+ name: ViableStoryTransition.Complete,
140
+ from: [ViableStoryStatus.InProgress],
141
+ to: ViableStoryStatus.Completed,
142
+ explicit: true,
143
+ },
144
+ {
145
+ name: ViableStoryTransition.Fail,
146
+ from: [ViableStoryStatus.InProgress],
147
+ to: ViableStoryStatus.Failed,
148
+ },
149
+ { name: ViableStoryTransition.Reset, from: '*', to: ViableStoryStatus.Planned, explicit: true },
150
+ ],
151
+ }
152
+
153
+ /**
154
+ * The project flow.
155
+ *
156
+ * A create lands at `draft`; confirming the brief is `confirm`; the end of an initialization is
157
+ * `activate`. A reinitialization and a failed initialization are SLOT facts, not transitions, and
158
+ * destroying a project is a `delete` plus the platform's cascade — never `archive`.
159
+ */
160
+ export const VIABLE_PROJECT_FLOW_SCHEMA: StatusFlowSchema = {
161
+ id: VIABLE_PROJECT_FLOW,
162
+ version: 1,
163
+ statuses: [
164
+ { key: ViableProjectStatus.Draft, intrinsic: IntrinsicStatus.Planned, initial: true, tone: ViableTone.Blue },
165
+ { key: ViableProjectStatus.Confirmed, intrinsic: IntrinsicStatus.InProgress, tone: ViableTone.Yellow },
166
+ { key: ViableProjectStatus.Active, intrinsic: IntrinsicStatus.InProgress, tone: ViableTone.Green },
167
+ { key: ViableProjectStatus.Archived, intrinsic: IntrinsicStatus.Closed, tone: ViableTone.Neutral },
168
+ ],
169
+ transitions: [
170
+ {
171
+ name: ViableProjectTransition.Confirm,
172
+ from: [ViableProjectStatus.Draft],
173
+ to: ViableProjectStatus.Confirmed,
174
+ explicit: true,
175
+ },
176
+ {
177
+ name: ViableProjectTransition.Activate,
178
+ from: [ViableProjectStatus.Confirmed],
179
+ to: ViableProjectStatus.Active,
180
+ },
181
+ { name: ViableProjectTransition.Archive, from: '*', to: ViableProjectStatus.Archived, explicit: true },
182
+ {
183
+ name: ViableProjectTransition.Reopen,
184
+ from: [ViableProjectStatus.Archived],
185
+ to: ViableProjectStatus.Active,
186
+ explicit: true,
187
+ },
188
+ ],
189
+ }
190
+
191
+ /** A document is written or revised; it has no lifecycle to move through. */
192
+ export const VIABLE_SPEC_FLOW_SCHEMA: StatusFlowSchema = {
193
+ id: VIABLE_SPEC_FLOW,
194
+ version: 1,
195
+ statuses: [
196
+ { key: ViableSpecStatus.Current, intrinsic: IntrinsicStatus.Closed, initial: true, tone: ViableTone.Neutral },
197
+ ],
198
+ transitions: [],
199
+ }
200
+
201
+ const slot = (
202
+ category: ViableSpecCategory, format: SpecificationFormat, extra: Partial<SpecificationSlot> = {},
203
+ ): SpecificationSlot => ({ category, format, type: VIABLE_SPEC_TYPE, ...extra })
204
+
205
+ /** The brief a person confirms, and the plan the scaffold draws from it. */
206
+ export const VIABLE_PROJECT_SLOTS: SpecificationSlot[] = [
207
+ slot(ViableSpecCategory.Specification, SpecificationFormat.Markdown, { required: true }),
208
+ slot(ViableSpecCategory.Vision, SpecificationFormat.Markdown),
209
+ slot(ViableSpecCategory.DesignSystem, SpecificationFormat.Markdown),
210
+ slot(ViableSpecCategory.Scaffold, SpecificationFormat.Json, {
211
+ revisioned: true, keepRevisions: VIABLE_DESIGN_REVISIONS_KEPT, schema: ScaffoldPlanSchema,
212
+ }),
213
+ ]
214
+
215
+ /** A story's design — the payload the implementation stage consumes. */
216
+ export const VIABLE_STORY_SLOTS: SpecificationSlot[] = [
217
+ slot(ViableSpecCategory.Design, SpecificationFormat.Json, {
218
+ revisioned: true,
219
+ keepRevisions: VIABLE_DESIGN_REVISIONS_KEPT,
220
+ schema: StoryDesignSchema,
221
+ version: STORY_DESIGN_VERSION,
222
+ }),
223
+ ]
224
+
225
+ const storyLink = (name: ViableRelationship): RelationshipType =>
226
+ ({ name, from: [VIABLE_STORY_TYPE], to: [VIABLE_STORY_TYPE], single: true })
227
+
228
+ export const VIABLE_STORY_RELATIONSHIPS: RelationshipType[] = [
229
+ storyLink(ViableRelationship.Follows),
230
+ storyLink(ViableRelationship.SharesWidget),
231
+ storyLink(ViableRelationship.SharesScreen),
232
+ ]
233
+
234
+ export const VIABLE_PROJECT_TYPE_SCHEMA: ProjectTypeSchema = {
235
+ type: VIABLE_PROJECT_TYPE,
236
+ kind: WorkcardKind.Project,
237
+ version: 1,
238
+ fields: ViableProjectFieldsSchema,
239
+ flows: [VIABLE_PROJECT_FLOW],
240
+ intrinsic: IntrinsicPolicy.Primary,
241
+ specifications: VIABLE_PROJECT_SLOTS,
242
+ code: VIABLE_PROJECT_CODE,
243
+ cardTypes: [VIABLE_STORY_TYPE],
244
+ }
245
+
246
+ export const VIABLE_STORY_TYPE_SCHEMA: WorkcardTypeSchema = {
247
+ type: VIABLE_STORY_TYPE,
248
+ kind: WorkcardKind.Card,
249
+ version: 1,
250
+ fields: ViableStoryFieldsSchema,
251
+ flows: [VIABLE_STORY_FLOW],
252
+ intrinsic: IntrinsicPolicy.Primary,
253
+ specifications: VIABLE_STORY_SLOTS,
254
+ relationships: VIABLE_STORY_RELATIONSHIPS,
255
+ code: VIABLE_STORY_CODE,
256
+ }
257
+
258
+ export const VIABLE_SPEC_TYPE_SCHEMA: WorkcardTypeSchema = {
259
+ type: VIABLE_SPEC_TYPE,
260
+ kind: WorkcardKind.Specification,
261
+ version: 1,
262
+ fields: ViableSpecFieldsSchema,
263
+ flows: [VIABLE_SPEC_FLOW],
264
+ specifications: [],
265
+ }
266
+
267
+ const reserved = (type: string, code: WorkcardTypeSchema['code']): WorkcardTypeSchema => ({
268
+ type,
269
+ kind: WorkcardKind.Card,
270
+ version: 1,
271
+ fields: ViableOpenFieldsSchema,
272
+ flows: [VIABLE_STORY_FLOW],
273
+ intrinsic: IntrinsicPolicy.Primary,
274
+ specifications: [],
275
+ code,
276
+ })
277
+
278
+ /** Registered so their prefixes and flow are decided once; not creatable under a project yet. */
279
+ export const VIABLE_RESERVED_TYPE_SCHEMAS: WorkcardTypeSchema[] = [
280
+ reserved(VIABLE_BUG_TYPE, VIABLE_BUG_CODE),
281
+ reserved(VIABLE_IMPROVEMENT_TYPE, VIABLE_IMPROVEMENT_CODE),
282
+ reserved(VIABLE_REQUIREMENT_TYPE, VIABLE_REQUIREMENT_CODE),
283
+ ]
284
+
285
+ /** Every Viable type — what a planning plugin registers. */
286
+ export const VIABLE_TYPE_SCHEMAS: AnyTypeSchema[] = [
287
+ VIABLE_PROJECT_TYPE_SCHEMA,
288
+ VIABLE_STORY_TYPE_SCHEMA,
289
+ VIABLE_SPEC_TYPE_SCHEMA,
290
+ ...VIABLE_RESERVED_TYPE_SCHEMAS,
291
+ ]
292
+
293
+ /** Every Viable flow — registered beside the types. */
294
+ export const VIABLE_FLOW_SCHEMAS: StatusFlowSchema[] = [
295
+ VIABLE_PROJECT_FLOW_SCHEMA,
296
+ VIABLE_STORY_FLOW_SCHEMA,
297
+ VIABLE_SPEC_FLOW_SCHEMA,
298
+ ]
@@ -0,0 +1,22 @@
1
+ import type { Specification, Workcard } from '@owlmeans/planning'
2
+ import type { AgentProject } from '../../ba/types.js'
3
+
4
+ /** Reading a card's specifications: the current document per category, and the project brief. */
5
+ export interface ViableSpecHelper {
6
+ /**
7
+ * The current document of one category among a card's specifications.
8
+ *
9
+ * The highest revision wins, then the most recently updated; a category nobody wrote answers
10
+ * `null`.
11
+ */
12
+ currentSpecOf: (specs: readonly Specification[], category: string) => Specification | null
13
+ /** The body of a category's current document, `''` when there is none. */
14
+ currentSpecBody: (specs: readonly Specification[], category: string) => string
15
+ /**
16
+ * The brief a generator reads, assembled from the project card and its specifications.
17
+ *
18
+ * `name` is the card's title and `alias` its code; a brief part nobody wrote is `''`, which is
19
+ * what every prompt already treats as "not stated".
20
+ */
21
+ projectBriefOf: (project: Workcard, specs: readonly Specification[]) => AgentProject
22
+ }
@@ -0,0 +1,41 @@
1
+ import type { Specification, Workcard } from '@owlmeans/planning'
2
+ import type { AgentProject } from '../ba/types.js'
3
+ import { viableCardHelper } from './card.js'
4
+ import { ViableSpecCategory } from './consts.js'
5
+ import type { ViableSpecHelper } from './spec/types.js'
6
+
7
+ export const createViableSpecHelper = (): ViableSpecHelper => {
8
+ const currentSpecOf = (
9
+ specs: readonly Specification[], category: string,
10
+ ): Specification | null =>
11
+ specs
12
+ .filter(spec => spec.category === category)
13
+ .reduce<Specification | null>((best, spec) => {
14
+ if (best == null) return spec
15
+ const byRevision = (spec.revision ?? 0) - (best.revision ?? 0)
16
+ if (byRevision !== 0) return byRevision > 0 ? spec : best
17
+
18
+ return (spec.updatedAt ?? spec.createdAt) > (best.updatedAt ?? best.createdAt) ? spec : best
19
+ }, null)
20
+
21
+ const currentSpecBody = (specs: readonly Specification[], category: string): string =>
22
+ currentSpecOf(specs, category)?.body ?? ''
23
+
24
+ const projectBriefOf = (project: Workcard, specs: readonly Specification[]): AgentProject => {
25
+ const { language } = viableCardHelper.projectFieldsOf(project)
26
+
27
+ return {
28
+ name: project.title,
29
+ ...(project.code != null ? { alias: project.code } : {}),
30
+ description: project.description ?? '',
31
+ specification: currentSpecBody(specs, ViableSpecCategory.Specification),
32
+ designSystem: currentSpecBody(specs, ViableSpecCategory.DesignSystem),
33
+ vision: currentSpecBody(specs, ViableSpecCategory.Vision),
34
+ ...(language != null ? { language } : {}),
35
+ }
36
+ }
37
+
38
+ return { currentSpecOf, currentSpecBody, projectBriefOf }
39
+ }
40
+
41
+ export const viableSpecHelper = createViableSpecHelper()
@@ -1,13 +1,14 @@
1
1
  import type { Card, Project, Specification } from '@owlmeans/planning'
2
2
  import type { ProjectArea } from '../areas/consts.js'
3
3
  import type { WorkKind } from '../blueprint/consts.js'
4
- import type { ViableTenancyDecision } from '../areas/tenancy.js'
4
+ import type { ViableTenancyDecision } from '../areas/types.js'
5
5
  import type { StoryKind } from '../ba/consts.js'
6
6
  import type { ConnectLlm, ConnectTarget } from '../connect/consts.js'
7
7
  import type { ProjectOrigin } from '../convert/types.js'
8
- import type { StoryActor } from '../design/runtime.js'
8
+ import type { StoryActor } from '../design/consts.js'
9
9
  import type { StoryWriteInput } from '../metadata/types.js'
10
10
 
11
+ // Kept as a type: card fields must satisfy `Record<string, unknown>`, which needs the implicit index signature of a type literal.
11
12
  /**
12
13
  * What a `viable:project` card keeps under `fields`.
13
14
  *
@@ -65,6 +66,7 @@ export interface ViableLandingDecision {
65
66
  at: string
66
67
  }
67
68
 
69
+ // Kept as a type: card fields must satisfy `Record<string, unknown>`, which needs the implicit index signature of a type literal.
68
70
  /**
69
71
  * What a `viable:user-story` card keeps under `fields`.
70
72
  *
@@ -102,7 +104,7 @@ export interface ViableStoryCard extends Card {
102
104
  }
103
105
 
104
106
  /** A document under a Viable card — the brief parts, the scaffold plan, a story design. */
105
- export type ViableSpecification = Specification
107
+ export interface ViableSpecification extends Specification {}
106
108
 
107
109
  /**
108
110
  * What a develop run hands the metadata store beside the card.
@@ -110,6 +112,4 @@ export type ViableSpecification = Specification
110
112
  * The code, the narrative, the primary flag and the landing flag are the CARD's and are never
111
113
  * passed separately — a second copy is a second answer. `status` defaults to the card's own.
112
114
  */
113
- export type StoryWriteContent =
114
- & Omit<StoryWriteInput, 'code' | 'narrative' | 'primary' | 'landing' | 'status'>
115
- & { status?: string }
115
+ export interface StoryWriteContent extends Omit<StoryWriteInput, 'code' | 'narrative' | 'primary' | 'landing' | 'status'> { status?: string }
@@ -6,4 +6,6 @@ export enum PreviewEventType {
6
6
  CaughtError = 'OWLMEANS_PREVIEW_CONSOLE_ERROR',
7
7
  PromiseRejection = 'OWLMEANS_PREVIEW_PROMISE_REJECTION',
8
8
  FetchError = 'OWLMEANS_PREVIEW_FETCH_ERROR',
9
+ /** An analytics event a target's web logged through `@owlmeans/log` (browser → manager frame). */
10
+ Analytics = 'OWLMEANS_PREVIEW_ANALYTICS',
9
11
  }
@@ -46,6 +46,19 @@ export interface OwlMeansFetchErrorPayload {
46
46
  incidentId?: string
47
47
  }
48
48
 
49
+ /**
50
+ * Payload of an analytics event of a target's web — `AnalyticsEvent` of `@owlmeans/log`, as the
51
+ * target's `viablePreviewPlugin` posts it. Untrusted: it comes from generated code.
52
+ */
53
+ export interface OwlMeansAnalyticsPayload {
54
+ event: string
55
+ scope: string
56
+ time: number
57
+ level: 'debug' | 'info' | 'warn' | 'error'
58
+ message: string
59
+ data?: unknown
60
+ }
61
+
49
62
  /**
50
63
  * Specific message types for each event kind
51
64
  */
@@ -65,6 +78,10 @@ export interface OwlMeansCaughtErrorMessage extends OwlMeansPreviewMessage<OwlMe
65
78
  type: PreviewEventType.CaughtError
66
79
  }
67
80
 
81
+ export interface OwlMeansAnalyticsMessage extends OwlMeansPreviewMessage<OwlMeansAnalyticsPayload> {
82
+ type: PreviewEventType.Analytics
83
+ }
84
+
68
85
  /**
69
86
  * Union type for all possible OwlMeans preview messages
70
87
  */
@@ -73,9 +90,11 @@ export type OwlMeansPreviewMessages =
73
90
  | OwlMeansPromiseRejectionMessage
74
91
  | OwlMeansFetchErrorMessage
75
92
  | OwlMeansCaughtErrorMessage
93
+ | OwlMeansAnalyticsMessage
76
94
 
77
95
  export type OwlMenasPreviewPayloads =
78
96
  | OwlMeansErrorPayload
79
97
  | OwlMeansPromiseRejectionPayload
80
98
  | OwlMeansFetchErrorPayload
81
99
  | OwlMeansCaughtErrorPayload
100
+ | OwlMeansAnalyticsPayload
@@ -1,4 +1,6 @@
1
- import type { BentoFragmentKind, LandingGateFieldKind } from './types.js'
1
+ import type {
2
+ BentoFragmentKind, LandingAnchor, LandingBand, LandingGateFieldKind, LandingSlot,
3
+ } from './types.js'
2
4
 
3
5
  /**
4
6
  * The shapes a drawn widget can take.
@@ -47,3 +49,65 @@ export const LANDING_GATE_MAX_FIELDS = 3
47
49
 
48
50
  /** The options a `select` field carries: fewer is no choice, more is a list to browse. */
49
51
  export const LANDING_GATE_OPTIONS = { min: 2, max: 6 } as const
52
+
53
+ /**
54
+ * The bands of a landing page in the HOUSE ORDER — the order every page draws them in, whichever
55
+ * of them it carries. `problem` is the problem-and-solution band.
56
+ */
57
+ export const LANDING_BAND_ORDER: LandingBand[] = [
58
+ 'hero', 'steps', 'features', 'use-cases', 'problem', 'differentiator', 'approach',
59
+ 'testimonials', 'about', 'closing',
60
+ ]
61
+
62
+ /** The bands the guest header menu can jump to, in page order. */
63
+ export const LANDING_ANCHORS: LandingAnchor[] = [
64
+ 'how', 'features', 'use-cases', 'why', 'approach', 'community', 'about',
65
+ ]
66
+
67
+ /** Which band each menu anchor jumps to. */
68
+ export const LANDING_ANCHOR_BAND: Record<LandingAnchor, LandingBand> = {
69
+ how: 'steps',
70
+ features: 'features',
71
+ 'use-cases': 'use-cases',
72
+ why: 'differentiator',
73
+ approach: 'approach',
74
+ community: 'testimonials',
75
+ about: 'about',
76
+ }
77
+
78
+ /**
79
+ * The English menu labels an entry falls back to when neither the menu nor the page's own section
80
+ * label names it. A fallback, never the intended copy: the plan writes labels in the product's
81
+ * language.
82
+ */
83
+ export const LANDING_ANCHOR_LABELS: Record<LandingAnchor, string> = {
84
+ how: 'How it works',
85
+ features: 'Features',
86
+ 'use-cases': 'Use cases',
87
+ why: 'Why us',
88
+ approach: 'How we work',
89
+ community: 'Reviews',
90
+ about: 'About',
91
+ }
92
+
93
+ /** Entries of the guest header menu: fewer is not a menu, more crowds a phone's header. */
94
+ export const LANDING_MENU = { min: 2, max: 4 } as const
95
+
96
+ /** Cases of the use-cases band; fewer than `min` and the band is not drawn. */
97
+ export const LANDING_USE_CASES = { min: 2, max: 4 } as const
98
+
99
+ /** Rows of the differentiator's usual-vs-ours contrast; fewer than `min` and no table is drawn. */
100
+ export const LANDING_CONTRAST = { min: 2, max: 3 } as const
101
+
102
+ /** Principles of the approach band; fewer than `min` and the band is not drawn. */
103
+ export const LANDING_PRINCIPLES = { min: 3, max: 4 } as const
104
+
105
+ /** Every button or link of a landing page that can open a user story, in page order. */
106
+ export const LANDING_SLOTS: LandingSlot[] = [
107
+ 'hero.cta', 'hero.secondary', 'hero.browse',
108
+ 'useCase.1', 'useCase.2', 'useCase.3', 'useCase.4',
109
+ 'closing.primary', 'closing.secondary', 'closing.link.1', 'closing.link.2',
110
+ ]
111
+
112
+ /** The slots a landing gate replaces: with a usable gate the page draws none of them. */
113
+ export const LANDING_GATE_SLOTS: LandingSlot[] = ['hero.cta', 'hero.secondary', 'closing.primary']
@@ -1,84 +1,18 @@
1
- import type { ScaffoldPlan, ScaffoldStoryPlan } from './types.js'
1
+ import { scaffoldShareHelper } from './share.js'
2
+ import type { ScaffoldPlan, ShareKind } from './types.js'
2
3
 
3
- /**
4
- * ONE reading of who owns a drawn artifact, so no consumer has to interpret the plan itself.
5
- *
6
- * The plan carries `sharesWidgetWith` / `sharesScreenWith` as untrusted hints — a model may drop
7
- * them, invent a code, point forwards, or build a cycle. These resolve all of that away, and
8
- * every one is TOTAL: a code the plan does not hold answers itself, which is the unshared
9
- * behaviour and therefore exactly today's drawn tree.
10
- *
11
- * Pure and IO-free. `fillScaffoldPlan` normalises a plan through them before anything is stamped,
12
- * so the stampers and the scaffold loop can read a plan that is already sane.
13
- */
4
+ /** @deprecated compat:factory-refactor — use `scaffoldShareHelper.shareOwner(…)` */
5
+ export const shareOwner = (plan: Pick<ScaffoldPlan, 'stories'>, code: string, kind: ShareKind = 'widget'): string =>
6
+ scaffoldShareHelper.shareOwner(plan, code, kind)
14
7
 
15
- /** Which field the arrow is being followed along. */
16
- export type ShareKind = 'widget' | 'screen'
8
+ /** @deprecated compat:factory-refactor — use `scaffoldShareHelper.shareGroups(…)` */
9
+ export const shareGroups = (plan: Pick<ScaffoldPlan, 'stories'>, kind: ShareKind = 'widget'): Map<string, string[]> =>
10
+ scaffoldShareHelper.shareGroups(plan, kind)
17
11
 
18
- const pointerOf = (story: ScaffoldStoryPlan, kind: ShareKind): string | undefined =>
19
- kind === 'widget' ? story.sharesWidgetWith : story.sharesScreenWith
12
+ /** @deprecated compat:factory-refactor — use `scaffoldShareHelper.shareMembers(…)` */
13
+ export const shareMembers = (plan: Pick<ScaffoldPlan, 'stories'>, owner: string, kind: ShareKind = 'widget'): string[] =>
14
+ scaffoldShareHelper.shareMembers(plan, owner, kind)
20
15
 
21
- /**
22
- * The code whose artifact this story renders — itself when it owns one.
23
- *
24
- * Backward-only and bounded: an arrow is followed only to a story EARLIER in plan order, which
25
- * makes a cycle unrepresentable rather than merely unlikely, and makes the owner the earliest
26
- * member of its group. That is what keeps `widgetDefinition(owner)` stable — the name is a
27
- * function of one code, never of the group, so adding a member renames nothing.
28
- */
29
- export const shareOwner = (
30
- plan: Pick<ScaffoldPlan, 'stories'>, code: string, kind: ShareKind = 'widget'
31
- ): string => {
32
- const order = new Map(plan.stories.map((story, index) => [story.code, index]))
33
- const byCode = new Map(plan.stories.map(story => [story.code, story]))
34
-
35
- let current = code
36
- // Bounded by the list length: every hop strictly decreases the plan index, so it terminates.
37
- for (let hop = 0; hop <= plan.stories.length; hop++) {
38
- const story = byCode.get(current)
39
- const target = story != null ? pointerOf(story, kind) : undefined
40
- if (story == null || target == null || target === '' || target === current) {
41
- return current
42
- }
43
- const here = order.get(current)
44
- const there = order.get(target)
45
- // Unknown, forward or self-referential — none of them is a group, so the story owns its own.
46
- if (here == null || there == null || there >= here) {
47
- return current
48
- }
49
- current = target
50
- }
51
-
52
- return current
53
- }
54
-
55
- /**
56
- * Owner code → every member, owner first, in plan order.
57
- *
58
- * The shape the stampers need: one artifact per entry, and the full member list for the notice
59
- * that names them.
60
- */
61
- export const shareGroups = (
62
- plan: Pick<ScaffoldPlan, 'stories'>, kind: ShareKind = 'widget'
63
- ): Map<string, string[]> => {
64
- const groups = new Map<string, string[]>()
65
- for (const story of plan.stories) {
66
- const owner = shareOwner(plan, story.code, kind)
67
- const members = groups.get(owner) ?? []
68
- if (!members.includes(owner)) members.push(owner)
69
- if (!members.includes(story.code)) members.push(story.code)
70
- groups.set(owner, members)
71
- }
72
-
73
- return groups
74
- }
75
-
76
- /** Every story that renders this owner's artifact, owner first. Total: an owner alone answers `[code]`. */
77
- export const shareMembers = (
78
- plan: Pick<ScaffoldPlan, 'stories'>, owner: string, kind: ShareKind = 'widget'
79
- ): string[] => shareGroups(plan, kind).get(owner) ?? [owner]
80
-
81
- /** Whether this story draws the artifact, as opposed to rendering somebody else's. */
82
- export const ownsShare = (
83
- plan: Pick<ScaffoldPlan, 'stories'>, code: string, kind: ShareKind = 'widget'
84
- ): boolean => shareOwner(plan, code, kind) === code
16
+ /** @deprecated compat:factory-refactor — use `scaffoldShareHelper.ownsShare(…)` */
17
+ export const ownsShare = (plan: Pick<ScaffoldPlan, 'stories'>, code: string, kind: ShareKind = 'widget'): boolean =>
18
+ scaffoldShareHelper.ownsShare(plan, code, kind)
@@ -1,4 +1,8 @@
1
1
  export * from './consts.js'
2
2
  export * from './schemas.js'
3
3
  export type * from './types.js'
4
+ export type * from './share/types.js'
5
+ export type * from './landing/types.js'
6
+ export * from './share.js'
7
+ export * from './landing.js'
4
8
  export * from './helpers.js'