@owlmeans/viable-common 0.0.44 → 0.0.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (605) hide show
  1. package/README.md +4 -3
  2. package/agent-meta/manifest.json +2 -2
  3. package/agent-meta/skills/agent-presentation/SKILL.md +4 -4
  4. package/agent-meta/skills/viable-common/SKILL.md +59 -30
  5. package/build/agent/index.d.ts +1 -0
  6. package/build/agent/index.d.ts.map +1 -1
  7. package/build/agent/index.js.map +1 -1
  8. package/build/agent/presentation/types.d.ts +21 -0
  9. package/build/agent/presentation/types.d.ts.map +1 -0
  10. package/build/agent/presentation/types.js +2 -0
  11. package/build/agent/presentation/types.js.map +1 -0
  12. package/build/agent/presentation.d.ts +10 -8
  13. package/build/agent/presentation.d.ts.map +1 -1
  14. package/build/agent/presentation.js +216 -195
  15. package/build/agent/presentation.js.map +1 -1
  16. package/build/agent/types.local.d.ts +3 -1
  17. package/build/agent/types.local.d.ts.map +1 -1
  18. package/build/areas/index.d.ts +1 -0
  19. package/build/areas/index.d.ts.map +1 -1
  20. package/build/areas/index.js.map +1 -1
  21. package/build/areas/tenancy/types.d.ts +23 -0
  22. package/build/areas/tenancy/types.d.ts.map +1 -0
  23. package/build/areas/tenancy/types.js +2 -0
  24. package/build/areas/tenancy/types.js.map +1 -0
  25. package/build/areas/tenancy.d.ts +5 -14
  26. package/build/areas/tenancy.d.ts.map +1 -1
  27. package/build/areas/tenancy.js +20 -26
  28. package/build/areas/tenancy.js.map +1 -1
  29. package/build/ba/connecting/types.d.ts +45 -0
  30. package/build/ba/connecting/types.d.ts.map +1 -0
  31. package/build/ba/connecting/types.js +2 -0
  32. package/build/ba/connecting/types.js.map +1 -0
  33. package/build/ba/connecting.d.ts +4 -0
  34. package/build/ba/connecting.d.ts.map +1 -0
  35. package/build/ba/connecting.js +47 -0
  36. package/build/ba/connecting.js.map +1 -0
  37. package/build/ba/helpers.d.ts +4 -39
  38. package/build/ba/helpers.d.ts.map +1 -1
  39. package/build/ba/helpers.js +5 -79
  40. package/build/ba/helpers.js.map +1 -1
  41. package/build/ba/index.d.ts +2 -0
  42. package/build/ba/index.d.ts.map +1 -1
  43. package/build/ba/index.js +1 -0
  44. package/build/ba/index.js.map +1 -1
  45. package/build/blueprint/types.d.ts +1 -2
  46. package/build/blueprint/types.d.ts.map +1 -1
  47. package/build/connect/branding/types.d.ts +28 -0
  48. package/build/connect/branding/types.d.ts.map +1 -0
  49. package/build/connect/branding/types.js +2 -0
  50. package/build/connect/branding/types.js.map +1 -0
  51. package/build/connect/consts.d.ts +2 -0
  52. package/build/connect/consts.d.ts.map +1 -1
  53. package/build/connect/consts.js +2 -0
  54. package/build/connect/consts.js.map +1 -1
  55. package/build/connect/conversion/types.d.ts +93 -0
  56. package/build/connect/conversion/types.d.ts.map +1 -0
  57. package/build/connect/conversion/types.js +2 -0
  58. package/build/connect/conversion/types.js.map +1 -0
  59. package/build/connect/entrypoints/types.d.ts +30 -0
  60. package/build/connect/entrypoints/types.d.ts.map +1 -0
  61. package/build/connect/entrypoints/types.js +2 -0
  62. package/build/connect/entrypoints/types.js.map +1 -0
  63. package/build/connect/entrypoints.d.ts +17 -11
  64. package/build/connect/entrypoints.d.ts.map +1 -1
  65. package/build/connect/entrypoints.js.map +1 -1
  66. package/build/connect/errors/types.d.ts +20 -0
  67. package/build/connect/errors/types.d.ts.map +1 -0
  68. package/build/connect/errors/types.js +2 -0
  69. package/build/connect/errors/types.js.map +1 -0
  70. package/build/connect/errors.d.ts +1 -1
  71. package/build/connect/errors.d.ts.map +1 -1
  72. package/build/connect/index.d.ts +13 -3
  73. package/build/connect/index.d.ts.map +1 -1
  74. package/build/connect/index.js +1 -1
  75. package/build/connect/index.js.map +1 -1
  76. package/build/connect/kit/types.d.ts +52 -0
  77. package/build/connect/kit/types.d.ts.map +1 -0
  78. package/build/connect/kit/types.js +2 -0
  79. package/build/connect/kit/types.js.map +1 -0
  80. package/build/connect/model-tier/types.d.ts +16 -0
  81. package/build/connect/model-tier/types.d.ts.map +1 -0
  82. package/build/connect/model-tier/types.js +2 -0
  83. package/build/connect/model-tier/types.js.map +1 -0
  84. package/build/connect/model-tier.d.ts +4 -0
  85. package/build/connect/model-tier.d.ts.map +1 -0
  86. package/build/connect/model-tier.js +21 -0
  87. package/build/connect/model-tier.js.map +1 -0
  88. package/build/connect/ops/types.d.ts +198 -0
  89. package/build/connect/ops/types.d.ts.map +1 -0
  90. package/build/connect/ops/types.js +2 -0
  91. package/build/connect/ops/types.js.map +1 -0
  92. package/build/connect/pipeline/types.d.ts +39 -0
  93. package/build/connect/pipeline/types.d.ts.map +1 -0
  94. package/build/connect/pipeline/types.js +2 -0
  95. package/build/connect/pipeline/types.js.map +1 -0
  96. package/build/connect/project/types.d.ts +127 -0
  97. package/build/connect/project/types.d.ts.map +1 -0
  98. package/build/connect/project/types.js +2 -0
  99. package/build/connect/project/types.js.map +1 -0
  100. package/build/connect/references/types.d.ts +157 -0
  101. package/build/connect/references/types.d.ts.map +1 -0
  102. package/build/connect/references/types.js +2 -0
  103. package/build/connect/references/types.js.map +1 -0
  104. package/build/connect/references/types.local.d.ts +5 -0
  105. package/build/connect/references/types.local.d.ts.map +1 -0
  106. package/build/connect/references/types.local.js.map +1 -0
  107. package/build/connect/references.d.ts +1 -1
  108. package/build/connect/references.d.ts.map +1 -1
  109. package/build/connect/references.js.map +1 -1
  110. package/build/connect/schemas.d.ts +8 -5
  111. package/build/connect/schemas.d.ts.map +1 -1
  112. package/build/connect/schemas.js +1 -3
  113. package/build/connect/schemas.js.map +1 -1
  114. package/build/connect/session/types.d.ts +73 -0
  115. package/build/connect/session/types.d.ts.map +1 -0
  116. package/build/connect/session/types.js +2 -0
  117. package/build/connect/session/types.js.map +1 -0
  118. package/build/connect/settings/types.d.ts +48 -0
  119. package/build/connect/settings/types.d.ts.map +1 -0
  120. package/build/connect/settings/types.js +2 -0
  121. package/build/connect/settings/types.js.map +1 -0
  122. package/build/connect/types.d.ts +1 -198
  123. package/build/connect/types.d.ts.map +1 -1
  124. package/build/convert/analysis/types.d.ts +93 -0
  125. package/build/convert/analysis/types.d.ts.map +1 -0
  126. package/build/convert/analysis/types.js +2 -0
  127. package/build/convert/analysis/types.js.map +1 -0
  128. package/build/convert/{consts.local.d.ts → census/consts.local.d.ts} +1 -1
  129. package/build/convert/census/consts.local.d.ts.map +1 -0
  130. package/build/convert/{consts.local.js → census/consts.local.js} +1 -1
  131. package/build/convert/census/consts.local.js.map +1 -0
  132. package/build/convert/census/types.d.ts +176 -0
  133. package/build/convert/census/types.d.ts.map +1 -0
  134. package/build/convert/census/types.js +2 -0
  135. package/build/convert/census/types.js.map +1 -0
  136. package/build/convert/census.d.ts +4 -0
  137. package/build/convert/census.d.ts.map +1 -0
  138. package/build/convert/census.js +83 -0
  139. package/build/convert/census.js.map +1 -0
  140. package/build/convert/consts.d.ts +4 -0
  141. package/build/convert/consts.d.ts.map +1 -1
  142. package/build/convert/consts.js +4 -0
  143. package/build/convert/consts.js.map +1 -1
  144. package/build/convert/detection/types.d.ts +67 -0
  145. package/build/convert/detection/types.d.ts.map +1 -0
  146. package/build/convert/detection/types.js +2 -0
  147. package/build/convert/detection/types.js.map +1 -0
  148. package/build/convert/docs/types.d.ts +129 -0
  149. package/build/convert/docs/types.d.ts.map +1 -0
  150. package/build/convert/docs/types.js +2 -0
  151. package/build/convert/docs/types.js.map +1 -0
  152. package/build/convert/docs.d.ts +4 -0
  153. package/build/convert/docs.d.ts.map +1 -0
  154. package/build/convert/docs.js +9 -0
  155. package/build/convert/docs.js.map +1 -0
  156. package/build/convert/estimate/types.d.ts +77 -0
  157. package/build/convert/estimate/types.d.ts.map +1 -0
  158. package/build/convert/estimate/types.js +2 -0
  159. package/build/convert/estimate/types.js.map +1 -0
  160. package/build/convert/estimate.d.ts +11 -0
  161. package/build/convert/estimate.d.ts.map +1 -0
  162. package/build/convert/estimate.js +18 -0
  163. package/build/convert/estimate.js.map +1 -0
  164. package/build/convert/helpers.d.ts +14 -78
  165. package/build/convert/helpers.d.ts.map +1 -1
  166. package/build/convert/helpers.js +27 -199
  167. package/build/convert/helpers.js.map +1 -1
  168. package/build/convert/index.d.ts +14 -0
  169. package/build/convert/index.d.ts.map +1 -1
  170. package/build/convert/index.js +5 -0
  171. package/build/convert/index.js.map +1 -1
  172. package/build/convert/origin/types.d.ts +41 -0
  173. package/build/convert/origin/types.d.ts.map +1 -0
  174. package/build/convert/origin/types.js +2 -0
  175. package/build/convert/origin/types.js.map +1 -0
  176. package/build/convert/origin.d.ts +4 -0
  177. package/build/convert/origin.d.ts.map +1 -0
  178. package/build/convert/origin.js +25 -0
  179. package/build/convert/origin.js.map +1 -0
  180. package/build/convert/record/types.d.ts +98 -0
  181. package/build/convert/record/types.d.ts.map +1 -0
  182. package/build/convert/record/types.js +2 -0
  183. package/build/convert/record/types.js.map +1 -0
  184. package/build/convert/schemas.d.ts +7 -6
  185. package/build/convert/schemas.d.ts.map +1 -1
  186. package/build/convert/schemas.js +1 -5
  187. package/build/convert/schemas.js.map +1 -1
  188. package/build/convert/stage/types.d.ts +27 -0
  189. package/build/convert/stage/types.d.ts.map +1 -0
  190. package/build/convert/stage/types.js +2 -0
  191. package/build/convert/stage/types.js.map +1 -0
  192. package/build/convert/stage.d.ts +4 -0
  193. package/build/convert/stage.d.ts.map +1 -0
  194. package/build/convert/stage.js +25 -0
  195. package/build/convert/stage.js.map +1 -0
  196. package/build/convert/taxonomy/types.d.ts +71 -0
  197. package/build/convert/taxonomy/types.d.ts.map +1 -0
  198. package/build/convert/taxonomy/types.js +2 -0
  199. package/build/convert/taxonomy/types.js.map +1 -0
  200. package/build/convert/types.d.ts +1 -657
  201. package/build/convert/types.d.ts.map +1 -1
  202. package/build/convert/utils.d.ts +2 -1
  203. package/build/convert/utils.d.ts.map +1 -1
  204. package/build/convert/utils.js +5 -4
  205. package/build/convert/utils.js.map +1 -1
  206. package/build/design/helpers.d.ts +9 -49
  207. package/build/design/helpers.d.ts.map +1 -1
  208. package/build/design/helpers.js +17 -224
  209. package/build/design/helpers.js.map +1 -1
  210. package/build/design/index.d.ts +3 -0
  211. package/build/design/index.d.ts.map +1 -1
  212. package/build/design/index.js +1 -0
  213. package/build/design/index.js.map +1 -1
  214. package/build/design/runtime/types.d.ts +16 -0
  215. package/build/design/runtime/types.d.ts.map +1 -0
  216. package/build/design/runtime/types.js +2 -0
  217. package/build/design/runtime/types.js.map +1 -0
  218. package/build/design/runtime.d.ts +6 -2
  219. package/build/design/runtime.d.ts.map +1 -1
  220. package/build/design/runtime.js +13 -5
  221. package/build/design/runtime.js.map +1 -1
  222. package/build/design/story/types.d.ts +67 -0
  223. package/build/design/story/types.d.ts.map +1 -0
  224. package/build/design/story/types.js +2 -0
  225. package/build/design/story/types.js.map +1 -0
  226. package/build/design/story.d.ts +4 -0
  227. package/build/design/story.d.ts.map +1 -0
  228. package/build/design/story.js +184 -0
  229. package/build/design/story.js.map +1 -0
  230. package/build/dev/types.local.d.ts +2 -1
  231. package/build/dev/types.local.d.ts.map +1 -1
  232. package/build/index.d.ts +1 -0
  233. package/build/index.d.ts.map +1 -1
  234. package/build/index.js +1 -0
  235. package/build/index.js.map +1 -1
  236. package/build/integrity/index.d.ts +4 -0
  237. package/build/integrity/index.d.ts.map +1 -1
  238. package/build/integrity/index.js +2 -0
  239. package/build/integrity/index.js.map +1 -1
  240. package/build/integrity/layout/consts.d.ts +59 -0
  241. package/build/integrity/layout/consts.d.ts.map +1 -0
  242. package/build/integrity/layout/consts.js +66 -0
  243. package/build/integrity/layout/consts.js.map +1 -0
  244. package/build/integrity/layout/consts.local.d.ts +18 -0
  245. package/build/integrity/layout/consts.local.d.ts.map +1 -0
  246. package/build/integrity/layout/consts.local.js +176 -0
  247. package/build/integrity/layout/consts.local.js.map +1 -0
  248. package/build/integrity/layout/types.d.ts +35 -0
  249. package/build/integrity/layout/types.d.ts.map +1 -0
  250. package/build/integrity/layout/types.js +2 -0
  251. package/build/integrity/layout/types.js.map +1 -0
  252. package/build/integrity/layout.d.ts +4 -0
  253. package/build/integrity/layout.d.ts.map +1 -0
  254. package/build/integrity/layout.js +25 -0
  255. package/build/integrity/layout.js.map +1 -0
  256. package/build/integrity/types.d.ts +3 -1
  257. package/build/integrity/types.d.ts.map +1 -1
  258. package/build/integrity/utils.d.ts +6 -81
  259. package/build/integrity/utils.d.ts.map +1 -1
  260. package/build/integrity/utils.js +11 -279
  261. package/build/integrity/utils.js.map +1 -1
  262. package/build/integrity/verify/types.d.ts +26 -0
  263. package/build/integrity/verify/types.d.ts.map +1 -0
  264. package/build/integrity/verify/types.js +2 -0
  265. package/build/integrity/verify/types.js.map +1 -0
  266. package/build/integrity/verify.d.ts +5 -19
  267. package/build/integrity/verify.d.ts.map +1 -1
  268. package/build/integrity/verify.js +164 -175
  269. package/build/integrity/verify.js.map +1 -1
  270. package/build/intent/consts.d.ts +16 -0
  271. package/build/intent/consts.d.ts.map +1 -1
  272. package/build/intent/consts.js +63 -0
  273. package/build/intent/consts.js.map +1 -1
  274. package/build/intent/entrypoints.d.ts +2 -11
  275. package/build/intent/entrypoints.d.ts.map +1 -1
  276. package/build/intent/entrypoints.js.map +1 -1
  277. package/build/intent/flow.d.ts.map +1 -1
  278. package/build/intent/flow.js +2 -2
  279. package/build/intent/flow.js.map +1 -1
  280. package/build/intent/index.d.ts +0 -1
  281. package/build/intent/index.d.ts.map +1 -1
  282. package/build/intent/index.js +0 -1
  283. package/build/intent/index.js.map +1 -1
  284. package/build/intent/types.d.ts +13 -2
  285. package/build/intent/types.d.ts.map +1 -1
  286. package/build/legal/consts.d.ts +36 -0
  287. package/build/legal/consts.d.ts.map +1 -0
  288. package/build/legal/consts.js +16 -0
  289. package/build/legal/consts.js.map +1 -0
  290. package/build/legal/index.d.ts +3 -0
  291. package/build/legal/index.d.ts.map +1 -0
  292. package/build/legal/index.js +2 -0
  293. package/build/legal/index.js.map +1 -0
  294. package/build/legal/types.d.ts +10 -0
  295. package/build/legal/types.d.ts.map +1 -0
  296. package/build/legal/types.js +2 -0
  297. package/build/legal/types.js.map +1 -0
  298. package/build/moderation/index.d.ts +2 -0
  299. package/build/moderation/index.d.ts.map +1 -1
  300. package/build/moderation/index.js +1 -0
  301. package/build/moderation/index.js.map +1 -1
  302. package/build/moderation/utils.d.ts +3 -15
  303. package/build/moderation/utils.d.ts.map +1 -1
  304. package/build/moderation/utils.js +5 -30
  305. package/build/moderation/utils.js.map +1 -1
  306. package/build/moderation/verdict/types.d.ts +24 -0
  307. package/build/moderation/verdict/types.d.ts.map +1 -0
  308. package/build/moderation/verdict/types.js +2 -0
  309. package/build/moderation/verdict/types.js.map +1 -0
  310. package/build/moderation/verdict.d.ts +4 -0
  311. package/build/moderation/verdict.d.ts.map +1 -0
  312. package/build/moderation/verdict.js +21 -0
  313. package/build/moderation/verdict.js.map +1 -0
  314. package/build/planning/card/types.d.ts +42 -0
  315. package/build/planning/card/types.d.ts.map +1 -0
  316. package/build/planning/card/types.js +2 -0
  317. package/build/planning/card/types.js.map +1 -0
  318. package/build/planning/card.d.ts +4 -0
  319. package/build/planning/card.d.ts.map +1 -0
  320. package/build/planning/card.js +51 -0
  321. package/build/planning/card.js.map +1 -0
  322. package/build/planning/flows.d.ts +34 -0
  323. package/build/planning/flows.d.ts.map +1 -0
  324. package/build/planning/flows.js +174 -0
  325. package/build/planning/flows.js.map +1 -0
  326. package/build/planning/helpers.d.ts +11 -37
  327. package/build/planning/helpers.d.ts.map +1 -1
  328. package/build/planning/helpers.js +24 -103
  329. package/build/planning/helpers.js.map +1 -1
  330. package/build/planning/index.d.ts +5 -0
  331. package/build/planning/index.d.ts.map +1 -1
  332. package/build/planning/index.js +2 -0
  333. package/build/planning/index.js.map +1 -1
  334. package/build/planning/landing/types.d.ts +16 -0
  335. package/build/planning/landing/types.d.ts.map +1 -0
  336. package/build/planning/landing/types.js +2 -0
  337. package/build/planning/landing/types.js.map +1 -0
  338. package/build/planning/landing.d.ts +5 -10
  339. package/build/planning/landing.d.ts.map +1 -1
  340. package/build/planning/landing.js +20 -22
  341. package/build/planning/landing.js.map +1 -1
  342. package/build/planning/schemas.d.ts +1 -5
  343. package/build/planning/schemas.d.ts.map +1 -1
  344. package/build/planning/schemas.js +3 -3
  345. package/build/planning/schemas.js.map +1 -1
  346. package/build/planning/spec/types.d.ts +22 -0
  347. package/build/planning/spec/types.d.ts.map +1 -0
  348. package/build/planning/spec/types.js +2 -0
  349. package/build/planning/spec/types.js.map +1 -0
  350. package/build/planning/spec.d.ts +4 -0
  351. package/build/planning/spec.d.ts.map +1 -0
  352. package/build/planning/spec.js +30 -0
  353. package/build/planning/spec.js.map +1 -0
  354. package/build/planning/types.d.ts +4 -3
  355. package/build/planning/types.d.ts.map +1 -1
  356. package/build/scaffold/consts.d.ts +40 -1
  357. package/build/scaffold/consts.d.ts.map +1 -1
  358. package/build/scaffold/consts.js +52 -0
  359. package/build/scaffold/consts.js.map +1 -1
  360. package/build/scaffold/helpers.d.ts +4 -16
  361. package/build/scaffold/helpers.d.ts.map +1 -1
  362. package/build/scaffold/helpers.js +9 -64
  363. package/build/scaffold/helpers.js.map +1 -1
  364. package/build/scaffold/index.d.ts +4 -0
  365. package/build/scaffold/index.d.ts.map +1 -1
  366. package/build/scaffold/index.js +2 -0
  367. package/build/scaffold/index.js.map +1 -1
  368. package/build/scaffold/landing/types.d.ts +48 -0
  369. package/build/scaffold/landing/types.d.ts.map +1 -0
  370. package/build/scaffold/landing/types.js +2 -0
  371. package/build/scaffold/landing/types.js.map +1 -0
  372. package/build/scaffold/landing.d.ts +4 -0
  373. package/build/scaffold/landing.d.ts.map +1 -0
  374. package/build/scaffold/landing.js +95 -0
  375. package/build/scaffold/landing.js.map +1 -0
  376. package/build/scaffold/schemas.d.ts +3 -2
  377. package/build/scaffold/schemas.d.ts.map +1 -1
  378. package/build/scaffold/schemas.js +177 -7
  379. package/build/scaffold/schemas.js.map +1 -1
  380. package/build/scaffold/share/types.d.ts +35 -0
  381. package/build/scaffold/share/types.d.ts.map +1 -0
  382. package/build/scaffold/share/types.js +2 -0
  383. package/build/scaffold/share/types.js.map +1 -0
  384. package/build/scaffold/share.d.ts +4 -0
  385. package/build/scaffold/share.d.ts.map +1 -0
  386. package/build/scaffold/share.js +42 -0
  387. package/build/scaffold/share.js.map +1 -0
  388. package/build/scaffold/types.d.ts +112 -2
  389. package/build/scaffold/types.d.ts.map +1 -1
  390. package/build/skills/consts.d.ts +42 -0
  391. package/build/skills/consts.d.ts.map +1 -1
  392. package/build/skills/consts.js +43 -0
  393. package/build/skills/consts.js.map +1 -1
  394. package/build/skills/index.d.ts +0 -1
  395. package/build/skills/index.d.ts.map +1 -1
  396. package/build/skills/index.js +0 -1
  397. package/build/skills/index.js.map +1 -1
  398. package/build/slot/command/types.d.ts +21 -0
  399. package/build/slot/command/types.d.ts.map +1 -0
  400. package/build/slot/command/types.js +2 -0
  401. package/build/slot/command/types.js.map +1 -0
  402. package/build/slot/command.d.ts +4 -0
  403. package/build/slot/command.d.ts.map +1 -0
  404. package/build/slot/command.js +31 -0
  405. package/build/slot/command.js.map +1 -0
  406. package/build/slot/helpers.d.ts +2 -16
  407. package/build/slot/helpers.d.ts.map +1 -1
  408. package/build/slot/helpers.js +5 -26
  409. package/build/slot/helpers.js.map +1 -1
  410. package/build/slot/index.d.ts +5 -0
  411. package/build/slot/index.d.ts.map +1 -1
  412. package/build/slot/index.js +2 -0
  413. package/build/slot/index.js.map +1 -1
  414. package/build/slot/layout/types.d.ts +17 -0
  415. package/build/slot/layout/types.d.ts.map +1 -0
  416. package/build/slot/layout/types.js +2 -0
  417. package/build/slot/layout/types.js.map +1 -0
  418. package/build/slot/layout.d.ts +4 -9
  419. package/build/slot/layout.d.ts.map +1 -1
  420. package/build/slot/layout.js +13 -15
  421. package/build/slot/layout.js.map +1 -1
  422. package/build/slot/origin/types.d.ts +23 -0
  423. package/build/slot/origin/types.d.ts.map +1 -0
  424. package/build/slot/origin/types.js +2 -0
  425. package/build/slot/origin/types.js.map +1 -0
  426. package/build/slot/origin.d.ts +4 -0
  427. package/build/slot/origin.d.ts.map +1 -0
  428. package/build/slot/origin.js +15 -0
  429. package/build/slot/origin.js.map +1 -0
  430. package/build/slot/types.d.ts.map +1 -1
  431. package/build/slot/utils.d.ts +3 -15
  432. package/build/slot/utils.d.ts.map +1 -1
  433. package/build/slot/utils.js +5 -40
  434. package/build/slot/utils.js.map +1 -1
  435. package/build/topology/card/types.d.ts +21 -0
  436. package/build/topology/card/types.d.ts.map +1 -0
  437. package/build/topology/card/types.js +2 -0
  438. package/build/topology/card/types.js.map +1 -0
  439. package/build/topology/card.d.ts +6 -13
  440. package/build/topology/card.d.ts.map +1 -1
  441. package/build/topology/card.js +83 -86
  442. package/build/topology/card.js.map +1 -1
  443. package/build/topology/helpers.d.ts +7 -33
  444. package/build/topology/helpers.d.ts.map +1 -1
  445. package/build/topology/helpers.js +15 -111
  446. package/build/topology/helpers.js.map +1 -1
  447. package/build/topology/index.d.ts +3 -0
  448. package/build/topology/index.d.ts.map +1 -1
  449. package/build/topology/index.js +1 -0
  450. package/build/topology/index.js.map +1 -1
  451. package/build/topology/resolve/types.d.ts +47 -0
  452. package/build/topology/resolve/types.d.ts.map +1 -0
  453. package/build/topology/resolve/types.js +2 -0
  454. package/build/topology/resolve/types.js.map +1 -0
  455. package/build/topology/resolve.d.ts +4 -0
  456. package/build/topology/resolve.d.ts.map +1 -0
  457. package/build/topology/resolve.js +89 -0
  458. package/build/topology/resolve.js.map +1 -0
  459. package/package.json +18 -11
  460. package/src/agent/index.ts +1 -0
  461. package/src/agent/presentation/types.ts +21 -0
  462. package/src/agent/presentation.ts +199 -165
  463. package/src/agent/types.local.ts +3 -1
  464. package/src/areas/index.ts +1 -0
  465. package/src/areas/tenancy/types.ts +23 -0
  466. package/src/areas/tenancy.ts +26 -25
  467. package/src/ba/connecting/types.ts +45 -0
  468. package/src/ba/connecting.ts +64 -0
  469. package/src/ba/helpers.ts +8 -92
  470. package/src/ba/index.ts +2 -0
  471. package/src/blueprint/types.ts +2 -2
  472. package/src/connect/branding/types.ts +29 -0
  473. package/src/connect/consts.ts +3 -0
  474. package/src/connect/conversion/types.ts +96 -0
  475. package/src/connect/entrypoints/types.ts +25 -0
  476. package/src/connect/entrypoints.ts +13 -2
  477. package/src/connect/errors/types.ts +22 -0
  478. package/src/connect/errors.ts +1 -1
  479. package/src/connect/index.ts +13 -3
  480. package/src/connect/kit/types.ts +56 -0
  481. package/src/connect/model-tier/types.ts +16 -0
  482. package/src/connect/model-tier.ts +22 -0
  483. package/src/connect/{ops.ts → ops/types.ts} +13 -3
  484. package/src/connect/pipeline/types.ts +41 -0
  485. package/src/connect/project/types.ts +127 -0
  486. package/src/connect/references/types.local.ts +5 -0
  487. package/src/connect/references/types.ts +73 -0
  488. package/src/connect/references.ts +13 -2
  489. package/src/connect/schemas.ts +9 -13
  490. package/src/connect/session/types.ts +81 -0
  491. package/src/connect/settings/types.ts +52 -0
  492. package/src/convert/analysis/types.ts +89 -0
  493. package/src/convert/{consts.local.ts → census/consts.local.ts} +1 -1
  494. package/src/convert/census/types.ts +181 -0
  495. package/src/convert/census.ts +95 -0
  496. package/src/convert/consts.ts +5 -0
  497. package/src/convert/detection/types.ts +74 -0
  498. package/src/convert/docs/types.ts +151 -0
  499. package/src/convert/docs.ts +15 -0
  500. package/src/convert/estimate/types.ts +75 -0
  501. package/src/convert/estimate.ts +19 -0
  502. package/src/convert/helpers.ts +29 -210
  503. package/src/convert/index.ts +14 -0
  504. package/src/convert/origin/types.ts +43 -0
  505. package/src/convert/origin.ts +33 -0
  506. package/src/convert/record/types.ts +105 -0
  507. package/src/convert/schemas.ts +13 -12
  508. package/src/convert/stage/types.ts +27 -0
  509. package/src/convert/stage.ts +31 -0
  510. package/src/convert/taxonomy/types.ts +74 -0
  511. package/src/convert/types.ts +5 -709
  512. package/src/convert/utils.ts +5 -6
  513. package/src/design/helpers.ts +20 -245
  514. package/src/design/index.ts +3 -0
  515. package/src/design/runtime/types.ts +14 -0
  516. package/src/design/runtime.ts +22 -7
  517. package/src/design/story/types.ts +67 -0
  518. package/src/design/story.ts +221 -0
  519. package/src/dev/types.local.ts +1 -1
  520. package/src/index.ts +1 -0
  521. package/src/integrity/index.ts +4 -0
  522. package/src/integrity/layout/consts.local.ts +188 -0
  523. package/src/integrity/layout/consts.ts +79 -0
  524. package/src/integrity/layout/types.ts +35 -0
  525. package/src/integrity/layout.ts +39 -0
  526. package/src/integrity/types.ts +3 -1
  527. package/src/integrity/utils.ts +14 -313
  528. package/src/integrity/verify/types.ts +26 -0
  529. package/src/integrity/verify.ts +177 -181
  530. package/src/intent/consts.ts +67 -0
  531. package/src/intent/entrypoints.ts +2 -2
  532. package/src/intent/index.ts +0 -1
  533. package/src/intent/types.ts +9 -2
  534. package/src/legal/consts.ts +17 -0
  535. package/src/legal/index.ts +2 -0
  536. package/src/legal/types.ts +11 -0
  537. package/src/moderation/index.ts +2 -0
  538. package/src/moderation/utils.ts +7 -30
  539. package/src/moderation/verdict/types.ts +22 -0
  540. package/src/moderation/verdict.ts +28 -0
  541. package/src/planning/card/types.ts +44 -0
  542. package/src/planning/card.ts +77 -0
  543. package/src/planning/helpers.ts +28 -116
  544. package/src/planning/index.ts +5 -0
  545. package/src/planning/landing/types.ts +15 -0
  546. package/src/planning/landing.ts +27 -24
  547. package/src/planning/schemas.ts +3 -3
  548. package/src/planning/spec/types.ts +22 -0
  549. package/src/planning/spec.ts +41 -0
  550. package/src/planning/types.ts +4 -4
  551. package/src/scaffold/consts.ts +65 -1
  552. package/src/scaffold/helpers.ts +14 -77
  553. package/src/scaffold/index.ts +4 -0
  554. package/src/scaffold/landing/types.ts +48 -0
  555. package/src/scaffold/landing.ts +120 -0
  556. package/src/scaffold/schemas.ts +183 -7
  557. package/src/scaffold/share/types.ts +35 -0
  558. package/src/scaffold/share.ts +60 -0
  559. package/src/scaffold/types.ts +120 -1
  560. package/src/skills/consts.ts +46 -0
  561. package/src/skills/index.ts +0 -1
  562. package/src/slot/command/types.ts +21 -0
  563. package/src/slot/command.ts +38 -0
  564. package/src/slot/helpers.ts +5 -25
  565. package/src/slot/index.ts +5 -0
  566. package/src/slot/layout/types.ts +17 -0
  567. package/src/slot/layout.ts +19 -16
  568. package/src/slot/origin/types.ts +23 -0
  569. package/src/slot/origin.ts +20 -0
  570. package/src/slot/types.ts +1 -0
  571. package/src/slot/utils.ts +8 -43
  572. package/src/topology/card/types.ts +21 -0
  573. package/src/topology/card.ts +84 -82
  574. package/src/topology/helpers.ts +20 -125
  575. package/src/topology/index.ts +3 -0
  576. package/src/topology/resolve/types.ts +47 -0
  577. package/src/topology/resolve.ts +118 -0
  578. package/tests/blueprint.spec.ts +1 -2
  579. package/tests/connect-errors.spec.ts +1 -1
  580. package/tests/convert.spec.ts +50 -50
  581. package/tests/design.spec.ts +13 -16
  582. package/tests/planning.spec.ts +57 -59
  583. package/tests/presentation.spec.ts +20 -20
  584. package/tests/scaffold.spec.ts +286 -6
  585. package/tests/tenancy.spec.ts +21 -21
  586. package/build/connect/types.local.d.ts +0 -4
  587. package/build/connect/types.local.d.ts.map +0 -1
  588. package/build/connect/types.local.js.map +0 -1
  589. package/build/connect/utils.d.ts +0 -12
  590. package/build/connect/utils.d.ts.map +0 -1
  591. package/build/connect/utils.js +0 -25
  592. package/build/connect/utils.js.map +0 -1
  593. package/build/convert/consts.local.d.ts.map +0 -1
  594. package/build/convert/consts.local.js.map +0 -1
  595. package/build/intent/consts.local.d.ts +0 -4
  596. package/build/intent/consts.local.d.ts.map +0 -1
  597. package/build/intent/consts.local.js +0 -3
  598. package/build/intent/consts.local.js.map +0 -1
  599. package/src/connect/types.local.ts +0 -5
  600. package/src/connect/types.ts +0 -589
  601. package/src/connect/utils.ts +0 -23
  602. package/src/intent/consts.local.ts +0 -3
  603. package/src/intent/flow.ts +0 -66
  604. package/src/skills/roles.ts +0 -46
  605. /package/build/connect/{types.local.js → references/types.local.js} +0 -0
@@ -1,222 +1,41 @@
1
- import {
2
- ArchitectureCase, ConversionDecision, ConversionStage, CONVERSION_STAGE_ORDER,
3
- CONVERTED_ORIGIN_DIR, EntropyClass, FileClass, ORIGIN_CARD_MAX_CHARS, SizeClass,
4
- SIZE_CLASS_BOUNDS
5
- } from './consts.js'
6
- import type { OriginCard, StoryProof } from './types.js'
7
- import { BINARY_EXTENSIONS, BULK_HINTS, DATA_AMBIGUOUS_EXT, DATA_OVERRIDABLE, EXT_CLASS, GENERATED_SEGMENTS, LOCK_NAMES, MANIFEST_NAMES, SEED_HINTS, TEST_SEGMENTS, TEXT_EXTENSIONS } from './consts.local.js'
1
+ import type { ConversionDecision, ConversionStage, EntropyClass, FileClass, SizeClass } from './consts.js'
2
+ import { censusHelper } from './census.js'
3
+ import { conversionOriginHelper } from './origin.js'
4
+ import type { OriginCard } from './origin/types.js'
5
+ import { conversionStageHelper } from './stage.js'
8
6
 
9
- /**
10
- * Pure, deterministic derivations over the conversion vocabulary.
11
- *
12
- * Everything here answers the same way for the same input, in every runtime, forever — which is
13
- * what makes the documents a conversion writes byte-stable across two runs, and therefore what
14
- * makes the prompt cache prefix they are injected into actually hit. Nothing in this file reads a
15
- * file, calls a model or looks at a clock.
16
- */
7
+ /** @deprecated compat:factory-refactor — use `censusHelper.sizeClassOf(…)` */
8
+ export const sizeClassOf = (bytes: number): SizeClass => censusHelper.sizeClassOf(bytes)
17
9
 
18
- /** Which {@link SizeClass} a byte count falls in. Boundaries are exclusive upper bounds. */
19
- export const sizeClassOf = (bytes: number): SizeClass => {
20
- if (bytes < SIZE_CLASS_BOUNDS[SizeClass.Tiny]) return SizeClass.Tiny
21
- if (bytes < SIZE_CLASS_BOUNDS[SizeClass.Small]) return SizeClass.Small
22
- if (bytes < SIZE_CLASS_BOUNDS[SizeClass.Medium]) return SizeClass.Medium
23
- if (bytes < SIZE_CLASS_BOUNDS[SizeClass.Large]) return SizeClass.Large
10
+ /** @deprecated compat:factory-refactor — use `censusHelper.fileClassOf(…)` */
11
+ export const fileClassOf = (path: string, ext: string): FileClass => censusHelper.fileClassOf(path, ext)
24
12
 
25
- return SizeClass.Huge
26
- }
13
+ /** @deprecated compat:factory-refactor — use `censusHelper.binaryByExtension(…)` */
14
+ export const binaryByExtension = (path: string): boolean | null => censusHelper.binaryByExtension(path)
27
15
 
28
- const segmentsOf = (path: string): string[] => path.split('/').filter(part => part !== '')
16
+ /** @deprecated compat:factory-refactor — use `censusHelper.entropyClassOf(…)` */
17
+ export const entropyClassOf = (head: string): EntropyClass => censusHelper.entropyClassOf(head)
29
18
 
30
- const hasSegment = (path: string, of: string[]): boolean =>
31
- segmentsOf(path).some(part => of.includes(part.toLowerCase()))
19
+ /** @deprecated compat:factory-refactor — use `censusHelper.isBulkPath(…)` */
20
+ export const isBulkPath = (path: string): boolean => censusHelper.isBulkPath(path)
32
21
 
33
- /**
34
- * What one file of the origin is.
35
- *
36
- * Location outranks the tail wherever it says more — a `.ts` under `__tests__/` is a test, a
37
- * `.json` under `seed/` is data — but only where it says more. The seed/dump rule therefore runs
38
- * AFTER the extension table and applies only to {@link DATA_OVERRIDABLE}: asked first, it answered
39
- * `Data` for every path merely containing the word (`tests/fixtures/user.ts`, `src/seedUsers.ts`,
40
- * `src/exportReport.ts`), which is the census's source budget spent on the wrong files twice over.
41
- */
42
- export const fileClassOf = (path: string, ext: string): FileClass => {
43
- const lower = path.toLowerCase()
44
- const base = segmentsOf(lower).pop() ?? lower
45
- const tail = (ext.startsWith('.') ? ext.slice(1) : ext).toLowerCase()
22
+ /** @deprecated compat:factory-refactor — use `censusHelper.isSeedPath(…)` */
23
+ export const isSeedPath = (path: string): boolean => censusHelper.isSeedPath(path)
46
24
 
47
- if (LOCK_NAMES.includes(base)) return FileClass.Lock
48
- if (hasSegment(lower, GENERATED_SEGMENTS)) return FileClass.Generated
49
- if (MANIFEST_NAMES.includes(base)) return FileClass.Manifest
50
- if (hasSegment(lower, TEST_SEGMENTS) || base.includes('.test.') || base.includes('.spec.')) {
51
- return FileClass.Test
52
- }
53
- if (base.startsWith('.env')) return FileClass.Config
25
+ /** @deprecated compat:factory-refactor — use `conversionStageHelper.stageAfter(…)` */
26
+ export const stageAfter = (stage: ConversionStage): ConversionStage => conversionStageHelper.stageAfter(stage)
54
27
 
55
- const byExt = EXT_CLASS[tail] ?? FileClass.Unknown
56
- if (
57
- (DATA_OVERRIDABLE.includes(byExt) || DATA_AMBIGUOUS_EXT.includes(tail))
58
- && (isSeedPath(lower) || isBulkPath(lower))
59
- ) {
60
- return FileClass.Data
61
- }
28
+ /** @deprecated compat:factory-refactor — use `conversionStageHelper.decisionFor(…)` */
29
+ export const decisionFor = (stage: ConversionStage): ConversionDecision => conversionStageHelper.decisionFor(stage)
62
30
 
63
- return byExt
64
- }
31
+ /** @deprecated compat:factory-refactor — use `conversionOriginHelper.originCardChars(…)` */
32
+ export const originCardChars = (card: OriginCard): number => conversionOriginHelper.originCardChars(card)
65
33
 
66
- /**
67
- * The binary verdict a path already carries, or `null` for a file that has to be probed.
68
- *
69
- * The three executors that walk a tree — the library-local helper, the publisher and the connector
70
- * SDK — must answer the same verdict for the same file, and a probe alone does not: a small `.ico`
71
- * with no NUL in its first bytes reads as text, so a census run on a laptop and the same census
72
- * run in the slot disagreed about the same repository. The tail is asked first and the probe only
73
- * where the tail says nothing, which is also why the probe is affordable at census scale — the
74
- * extensions above are the bulk of any repository.
75
- *
76
- * The extension is taken exactly the way `path.extname` takes it, because two of the three callers
77
- * used to: the last dot of the last SEGMENT, and nothing for a name with no dot or for a dotfile.
78
- */
79
- export const binaryByExtension = (path: string): boolean | null => {
80
- const base = segmentsOf(path).pop() ?? path
81
- const dot = base.lastIndexOf('.')
82
- if (dot < 1) return null
83
- const ext = base.slice(dot).toLowerCase()
34
+ /** @deprecated compat:factory-refactor — use `conversionOriginHelper.originCardFits(…)` */
35
+ export const originCardFits = (card: OriginCard): boolean => conversionOriginHelper.originCardFits(card)
84
36
 
85
- return TEXT_EXTENSIONS.includes(ext) ? false : BINARY_EXTENSIONS.includes(ext) ? true : null
86
- }
37
+ /** @deprecated compat:factory-refactor — use `conversionOriginHelper.isOriginPath(…)` */
38
+ export const isOriginPath = (path: string): boolean => conversionOriginHelper.isOriginPath(path)
87
39
 
88
- /**
89
- * How usable a file's head is as evidence.
90
- *
91
- * The printable ratio over the sampled head, and nothing cleverer: the question is only whether a
92
- * model can read it. A minified bundle is printable and useless, so a second rule catches the
93
- * shape that gives it away — very long lines with almost no whitespace.
94
- */
95
- export const entropyClassOf = (head: string): EntropyClass => {
96
- if (head.length < 1) return EntropyClass.Text
97
-
98
- let printable = 0
99
- let whitespace = 0
100
- for (const char of head) {
101
- const code = char.codePointAt(0) ?? 0
102
- if (code === 9 || code === 10 || code === 13 || code === 32) {
103
- ++whitespace
104
- ++printable
105
- } else if (code >= 32 && code !== 127) {
106
- ++printable
107
- }
108
- }
109
-
110
- const ratio = printable / head.length
111
- if (ratio < 0.85) return EntropyClass.Opaque
112
- // Prose, code and markup all break lines and indent. A body that does neither is minified,
113
- // encoded or packed — printable, and not something a model can reason over.
114
- if (whitespace / head.length < 0.05) return EntropyClass.Dense
115
-
116
- return EntropyClass.Text
117
- }
118
-
119
- const matchesHint = (path: string, hints: string[]): boolean => {
120
- const lower = path.toLowerCase()
121
- if (hasSegment(lower, hints)) return true
122
- const base = segmentsOf(lower).pop() ?? lower
123
-
124
- return hints.some(hint => base.includes(hint))
125
- }
126
-
127
- export const isBulkPath = (path: string): boolean => matchesHint(path, BULK_HINTS)
128
-
129
- export const isSeedPath = (path: string): boolean => matchesHint(path, SEED_HINTS)
130
-
131
- /**
132
- * How much work re-implementing a story is, as a multiplier on the per-story price band.
133
- *
134
- * Derived from what the extraction found, never asked of a model: a story backed by a handful of
135
- * proofs and no algorithm is ordinary CRUD, one that carries described algorithms is business
136
- * logic somebody has to reproduce. Two runs over the same extraction therefore price identically,
137
- * which is the point — a band that moved between two viewings of the same screen would be noise.
138
- */
139
- export const storyComplexity = (proof: Pick<StoryProof, 'proofs' | 'algorithms'>): number => {
140
- const proofs = proof.proofs?.length ?? 0
141
- const algorithms = proof.algorithms?.length ?? 0
142
-
143
- if (algorithms > 1 || proofs > 8) return 2
144
- if (algorithms > 0 || proofs > 3) return 1.5
145
-
146
- return 1
147
- }
148
-
149
- /**
150
- * The stage after this one.
151
- *
152
- * The last stage answers with itself: there is nothing after implementation, and returning
153
- * `undefined` would only move the same check to every call site.
154
- */
155
- export const stageAfter = (stage: ConversionStage): ConversionStage => {
156
- const at = CONVERSION_STAGE_ORDER.indexOf(stage)
157
-
158
- return CONVERSION_STAGE_ORDER[at + 1] ?? stage
159
- }
160
-
161
- /**
162
- * The decision that ADVANCES out of a stage.
163
- *
164
- * Implementation's is {@link ConversionDecision.Leave}, because a finished conversion has nothing
165
- * further to run and leaving it as it stands is the ordinary outcome rather than an abandonment.
166
- */
167
- export const decisionFor = (stage: ConversionStage): ConversionDecision => {
168
- switch (stage) {
169
- case ConversionStage.Intake: return ConversionDecision.Analyze
170
- case ConversionStage.Analysis: return ConversionDecision.Extract
171
- case ConversionStage.Extraction: return ConversionDecision.Implement
172
- default: return ConversionDecision.Leave
173
- }
174
- }
175
-
176
- /**
177
- * Whether a conversion at `from` may enter `to`.
178
- *
179
- * The same stage is legal — that is a retry. The next one is legal. Nothing else is: every stage
180
- * reads the documents the stage before it wrote, so skipping one means running against documents
181
- * that were never produced, and going back means overwriting the record a later stage is built on.
182
- */
183
- export const canEnter = (from: ConversionStage, to: ConversionStage): boolean => {
184
- const at = CONVERSION_STAGE_ORDER.indexOf(from)
185
- const next = CONVERSION_STAGE_ORDER.indexOf(to)
186
- if (at < 0 || next < 0) return false
187
-
188
- return next === at || next === at + 1
189
- }
190
-
191
- /** The size of the rendered origin card, so a composer can trim before it exceeds its ceiling. */
192
- export const originCardChars = (card: OriginCard): number => [
193
- card.stack as string,
194
- card.case as ArchitectureCase as string,
195
- card.purpose,
196
- ...card.packages,
197
- ...card.entities,
198
- ...card.flows,
199
- ...card.conventions,
200
- ].reduce((total, part) => total + (part?.length ?? 0), 0)
201
-
202
- /** Whether a rendered card still fits the budget every coder prompt carries it in. */
203
- export const originCardFits = (card: OriginCard): boolean =>
204
- originCardChars(card) <= ORIGIN_CARD_MAX_CHARS
205
-
206
- /** Whether a target-relative path names the origin tree, or something inside it. */
207
- export const isOriginPath = (path: string): boolean =>
208
- path === CONVERTED_ORIGIN_DIR || path.startsWith(`${CONVERTED_ORIGIN_DIR}/`)
209
-
210
- /**
211
- * A path inside the origin tree, from a path relative to the origin's own root.
212
- *
213
- * Idempotent: a path already under the origin comes back unchanged, so a caller that has lost
214
- * track of which side of the move it holds cannot produce `__viable_converted/__viable_converted/`.
215
- */
216
- export const originPath = (relative: string): string => {
217
- const path = relative.replace(/^\/+/, '')
218
- if (path === '') return CONVERTED_ORIGIN_DIR
219
- if (isOriginPath(path)) return path
220
-
221
- return `${CONVERTED_ORIGIN_DIR}/${path}`
222
- }
40
+ /** @deprecated compat:factory-refactor — use `conversionOriginHelper.originPath(…)` */
41
+ export const originPath = (relative: string): string => conversionOriginHelper.originPath(relative)
@@ -2,7 +2,21 @@ export * from './consts.js'
2
2
  export * from './utils.js'
3
3
  export * from './schemas.js'
4
4
  export * from './helpers.js'
5
+ export * from './census.js'
6
+ export * from './stage.js'
7
+ export * from './estimate.js'
8
+ export * from './origin.js'
9
+ export * from './docs.js'
5
10
  export type * from './types.js'
11
+ export type * from './census/types.js'
12
+ export type * from './detection/types.js'
13
+ export type * from './taxonomy/types.js'
14
+ export type * from './analysis/types.js'
15
+ export type * from './origin/types.js'
16
+ export type * from './estimate/types.js'
17
+ export type * from './record/types.js'
18
+ export type * from './docs/types.js'
19
+ export type * from './stage/types.js'
6
20
  /**
7
21
  * Declared beside the slot command that produces it and re-exported here, because the census is
8
22
  * the only thing that reads a whole tree of them: one declaration, reachable from both barrels
@@ -0,0 +1,43 @@
1
+ import type { ArchitectureCase, StackId, TaxonomyKind } from '../consts.js'
2
+
3
+ /** The origin tree inside a target, and the standing card that describes it. */
4
+ export interface ConversionOriginHelper {
5
+ /** The size of the rendered origin card, so a composer can trim before it exceeds its ceiling. */
6
+ originCardChars: (card: OriginCard) => number
7
+ /** Whether a rendered card still fits the budget every coder prompt carries it in. */
8
+ originCardFits: (card: OriginCard) => boolean
9
+ /** Whether a target-relative path names the origin tree, or something inside it. */
10
+ isOriginPath: (path: string) => boolean
11
+ /**
12
+ * A path inside the origin tree, from a path relative to the origin's own root.
13
+ *
14
+ * Idempotent: a path already under the origin comes back unchanged, so a caller that has lost
15
+ * track of which side of the move it holds cannot produce `__viable_converted/__viable_converted/`.
16
+ */
17
+ originPath: (relative: string) => string
18
+ }
19
+
20
+ /**
21
+ * The standing description of the origin every coder prompt carries.
22
+ *
23
+ * Capped at {@link ORIGIN_CARD_MAX_CHARS}: it rides on every generation call of the
24
+ * implementation stage, so its length is multiplied by the number of calls the conversion makes.
25
+ */
26
+ export interface OriginCard {
27
+ stack: StackId
28
+ case: ArchitectureCase
29
+ purpose: string
30
+ packages: string[]
31
+ entities: string[]
32
+ flows: string[]
33
+ conventions: string[]
34
+ chars: number
35
+ }
36
+
37
+ /** One line of the origin→target map the target's own agent memory keeps. */
38
+ export interface OriginMapEntry {
39
+ origin: string
40
+ target?: string
41
+ kind: TaxonomyKind
42
+ story?: string
43
+ }
@@ -0,0 +1,33 @@
1
+ import { CONVERTED_ORIGIN_DIR, ORIGIN_CARD_MAX_CHARS } from './consts.js'
2
+ import type { ArchitectureCase } from './consts.js'
3
+ import type { ConversionOriginHelper, OriginCard } from './origin/types.js'
4
+
5
+ export const createConversionOriginHelper = (): ConversionOriginHelper => {
6
+ const originCardChars = (card: OriginCard): number => [
7
+ card.stack as string,
8
+ card.case as ArchitectureCase as string,
9
+ card.purpose,
10
+ ...card.packages,
11
+ ...card.entities,
12
+ ...card.flows,
13
+ ...card.conventions,
14
+ ].reduce((total, part) => total + (part?.length ?? 0), 0)
15
+
16
+ const originCardFits = (card: OriginCard): boolean =>
17
+ originCardChars(card) <= ORIGIN_CARD_MAX_CHARS
18
+
19
+ const isOriginPath = (path: string): boolean =>
20
+ path === CONVERTED_ORIGIN_DIR || path.startsWith(`${CONVERTED_ORIGIN_DIR}/`)
21
+
22
+ const originPath = (relative: string): string => {
23
+ const path = relative.replace(/^\/+/, '')
24
+ if (path === '') return CONVERTED_ORIGIN_DIR
25
+ if (isOriginPath(path)) return path
26
+
27
+ return `${CONVERTED_ORIGIN_DIR}/${path}`
28
+ }
29
+
30
+ return { originCardChars, originCardFits, isOriginPath, originPath }
31
+ }
32
+
33
+ export const conversionOriginHelper = createConversionOriginHelper()
@@ -0,0 +1,105 @@
1
+ import type { ProjectArea } from '../../areas/consts.js'
2
+ import type { ConnectLlm } from '../../connect/consts.js'
3
+ import type {
4
+ ArchitectureCase, ConversionStage, ConvertibilityReason, ConvertibilityVerdict, OriginKind, StackFamily,
5
+ StackId, WorkspaceKind
6
+ } from '../consts.js'
7
+ import type { ConversionEstimate } from '../estimate/types.js'
8
+
9
+ /**
10
+ * A question the conversion answered for itself rather than asking.
11
+ *
12
+ * The web runs the inquiry policy `default`, so nothing blocks on a person who is not there. Every
13
+ * defaulted answer is recorded — what was asked, what was assumed and why — and shown, because an
14
+ * assumption nobody can see is indistinguishable from a fact.
15
+ */
16
+ export interface ConversionAssumption {
17
+ id: string
18
+ question: string
19
+ assumed: string
20
+ because: string
21
+ at: string
22
+ }
23
+
24
+ /** One asked-and-answered inquiry, as `docs/conversion/inquiries.md` records it. */
25
+ export interface InquiryRecord {
26
+ id: string
27
+ question: string
28
+ kind: string
29
+ answer?: string | string[]
30
+ text?: string
31
+ declined?: boolean
32
+ at: string
33
+ }
34
+
35
+ /**
36
+ * What the LIBRARY knows about a conversion — the state it writes and reads back on the volume.
37
+ *
38
+ * Distinct from the platform's conversion record: the library never touches a platform record, and
39
+ * the platform never keeps the library's working state. This is what survives on the target's own
40
+ * disk so a resumed or re-entered conversion knows where it was.
41
+ */
42
+ export interface ConversionSnapshot {
43
+ stage: ConversionStage
44
+ originKind: OriginKind
45
+ stack?: StackId
46
+ case?: ArchitectureCase
47
+ verdict?: ConvertibilityVerdict
48
+ reasons?: ConvertibilityReason[]
49
+ estimates?: ConversionEstimate[]
50
+ assumptions?: ConversionAssumption[]
51
+ originPresent: boolean
52
+ answers?: Record<string, string | string[]>
53
+ storyCodes?: string[]
54
+ lastError?: string
55
+ updatedAt: string
56
+ }
57
+
58
+ /** One answer, as the platform carries it into a resume. */
59
+ export interface ConversionAnswer {
60
+ inquiryId: string
61
+ value?: string
62
+ declined?: boolean
63
+ }
64
+
65
+ /** The stack, as the platform shows it. Display shape — the detection itself stays in the library. */
66
+ export interface ConversionStackRef {
67
+ id: StackId
68
+ family: StackFamily
69
+ label: string
70
+ language: string
71
+ framework?: string
72
+ }
73
+
74
+ /** The census, narrowed to what the platform record keeps and the dialog shows. */
75
+ export interface ConversionInventorySummary {
76
+ files: number
77
+ bytes: number
78
+ packages: number
79
+ workspace: WorkspaceKind
80
+ dumps: number
81
+ seeds: number
82
+ unlinked: string[]
83
+ truncated: boolean
84
+ }
85
+
86
+ /** The area/section/story tree the conversion dialog draws. */
87
+ export interface ConversionStructure {
88
+ areas: {
89
+ area: ProjectArea
90
+ sections: {
91
+ name: string
92
+ stories: { code: string, title: string, primary?: boolean }[]
93
+ }[]
94
+ }[]
95
+ }
96
+
97
+ /** Set the profile-wide converter inference mode. */
98
+ export interface ConverterLlmBody {
99
+ llmMode: ConnectLlm
100
+ }
101
+
102
+ /** Set the per-project converter inference mode; `null` inherits the profile's. */
103
+ export interface ConverterProjectLlmBody {
104
+ llmMode: ConnectLlm | null
105
+ }
@@ -3,16 +3,21 @@ import { ProjectArea } from '../areas/consts.js'
3
3
  import { ConnectLlm, CONNECT_INQUIRY_MAX_TEXT } from '../connect/consts.js'
4
4
  import { ModelRole } from '../execution/consts.js'
5
5
  import {
6
- ArchitectureCase, ConversionStage, ConvertibilityReason, ConvertibilityVerdict, EstimateSlice,
7
- OriginKind, OriginState, PurposeEvidenceSource, StackFamily, StackId, TaxonomyKind, WorkspaceKind
6
+ ArchitectureCase, ConversionStage, OriginKind, OriginState, PurposeEvidenceSource, StackFamily, StackId,
7
+ TaxonomyKind, WorkspaceKind
8
8
  } from './consts.js'
9
9
  import type {
10
- AreaAlignment, ArchitectureVerdict, ConversionAnswer, ConversionEstimate,
11
- ConversionInventorySummary, ConversionStackRef, ConversionStructure, ConverterLlmBody,
12
- ConverterProjectLlmBody, DesignInference, OriginFlow, OriginFlowList, OriginProof,
13
- ProjectOrigin, PurposeInference, SeedDetection, StackConfirmation, StoryEstimateBand, StoryProof,
14
- TaxonomyEntry, TaxonomyEntryList, TaxonomyRoleList
15
- } from './types.js'
10
+ AreaAlignment, DesignInference, OriginFlow, OriginFlowList, PurposeInference, StoryProof
11
+ } from './analysis/types.js'
12
+ import type { SeedDetection } from './census/types.js'
13
+ import type { ArchitectureVerdict, StackConfirmation } from './detection/types.js'
14
+ import type { ConversionEstimate, StoryEstimateBand } from './estimate/types.js'
15
+ import type {
16
+ ConversionAnswer, ConversionInventorySummary, ConversionStackRef, ConversionStructure, ConverterLlmBody,
17
+ ConverterProjectLlmBody
18
+ } from './record/types.js'
19
+ import type { TaxonomyEntry, TaxonomyEntryList, TaxonomyRoleList } from './taxonomy/types.js'
20
+ import type { OriginProof, ProjectOrigin } from './types.js'
16
21
 
17
22
  /**
18
23
  * Two populations of schema live in this file, and they are written differently on purpose.
@@ -659,7 +664,3 @@ export const ConverterProjectLlmBodySchema = {
659
664
  additionalProperties: false,
660
665
  } as unknown as JSONSchemaType<ConverterProjectLlmBody>
661
666
 
662
- /** The reasons a convertibility verdict can carry, for a consumer building its own enum check. */
663
- export const ConvertibilityReasonValues = Object.values(ConvertibilityReason)
664
- export const ConvertibilityVerdictValues = Object.values(ConvertibilityVerdict)
665
- export const EstimateSliceValues = Object.values(EstimateSlice)
@@ -0,0 +1,27 @@
1
+ import type { ConversionDecision, ConversionStage } from '../consts.js'
2
+
3
+ /** The conversion's stage ladder: what follows a stage, how to leave it, and what may be entered. */
4
+ export interface ConversionStageHelper {
5
+ /**
6
+ * The stage after this one.
7
+ *
8
+ * The last stage answers with itself: there is nothing after implementation, and returning
9
+ * `undefined` would only move the same check to every call site.
10
+ */
11
+ stageAfter: (stage: ConversionStage) => ConversionStage
12
+ /**
13
+ * The decision that ADVANCES out of a stage.
14
+ *
15
+ * Implementation's is {@link ConversionDecision.Leave}, because a finished conversion has nothing
16
+ * further to run and leaving it as it stands is the ordinary outcome rather than an abandonment.
17
+ */
18
+ decisionFor: (stage: ConversionStage) => ConversionDecision
19
+ /**
20
+ * Whether a conversion at `from` may enter `to`.
21
+ *
22
+ * The same stage is legal — that is a retry. The next one is legal. Nothing else is: every stage
23
+ * reads the documents the stage before it wrote, so skipping one means running against documents
24
+ * that were never produced, and going back means overwriting the record a later stage is built on.
25
+ */
26
+ canEnter: (from: ConversionStage, to: ConversionStage) => boolean
27
+ }
@@ -0,0 +1,31 @@
1
+ import { ConversionDecision, ConversionStage, CONVERSION_STAGE_ORDER } from './consts.js'
2
+ import type { ConversionStageHelper } from './stage/types.js'
3
+
4
+ export const createConversionStageHelper = (): ConversionStageHelper => {
5
+ const stageAfter = (stage: ConversionStage): ConversionStage => {
6
+ const at = CONVERSION_STAGE_ORDER.indexOf(stage)
7
+
8
+ return CONVERSION_STAGE_ORDER[at + 1] ?? stage
9
+ }
10
+
11
+ const decisionFor = (stage: ConversionStage): ConversionDecision => {
12
+ switch (stage) {
13
+ case ConversionStage.Intake: return ConversionDecision.Analyze
14
+ case ConversionStage.Analysis: return ConversionDecision.Extract
15
+ case ConversionStage.Extraction: return ConversionDecision.Implement
16
+ default: return ConversionDecision.Leave
17
+ }
18
+ }
19
+
20
+ const canEnter = (from: ConversionStage, to: ConversionStage): boolean => {
21
+ const at = CONVERSION_STAGE_ORDER.indexOf(from)
22
+ const next = CONVERSION_STAGE_ORDER.indexOf(to)
23
+ if (at < 0 || next < 0) return false
24
+
25
+ return next === at || next === at + 1
26
+ }
27
+
28
+ return { stageAfter, decisionFor, canEnter }
29
+ }
30
+
31
+ export const conversionStageHelper = createConversionStageHelper()
@@ -0,0 +1,74 @@
1
+ import type { ProjectArea } from '../../areas/consts.js'
2
+ import type { ArchitectureCase, TaxonomyKind } from '../consts.js'
3
+ import type { OriginProof } from '../types.js'
4
+
5
+ /** What the origin says about itself in prose — the cheapest and best evidence there is. */
6
+ export interface HarnessDigest {
7
+ readme?: string
8
+ agents?: string
9
+ docs: { path: string, title: string, chars: number }[]
10
+ openapi: string[]
11
+ migrations: string[]
12
+ env: string[]
13
+ scripts: Record<string, string>
14
+ summary: string
15
+ }
16
+
17
+ export interface TaxonomyEntry {
18
+ name: string
19
+ path: string
20
+ kind: TaxonomyKind
21
+ symbol?: string
22
+ entity?: string
23
+ refs?: string[]
24
+ note?: string
25
+ proofs?: OriginProof[]
26
+ }
27
+
28
+ export interface TaxonomyPackage {
29
+ name: string
30
+ path: string
31
+ /** What this package does in the origin's own terms — `api`, `web`, `worker`, `db`, … */
32
+ role: string
33
+ entries: Partial<Record<TaxonomyKind, TaxonomyEntry[]>>
34
+ }
35
+
36
+ /** A role the origin's own access model names, mapped onto the area whose audience holds it. */
37
+ export interface TaxonomyRole {
38
+ name: string
39
+ area: ProjectArea
40
+ evidence: OriginProof[]
41
+ }
42
+
43
+ export interface TaxonomyPermission {
44
+ name: string
45
+ roles: string[]
46
+ /** The origin's own guards, middlewares or decorators that enforce it. */
47
+ guards: string[]
48
+ evidence: OriginProof[]
49
+ }
50
+
51
+ export interface TaxonomySummary {
52
+ case: ArchitectureCase
53
+ packages: TaxonomyPackage[]
54
+ areas: ProjectArea[]
55
+ roles: TaxonomyRole[]
56
+ permissions: TaxonomyPermission[]
57
+ counts: Record<TaxonomyKind, number>
58
+ /** Where the origin does something its own stack's conventions do not explain. */
59
+ deviations: string[]
60
+ /** What a whole taxonomy would have needed and the origin does not carry. */
61
+ missingHarness: string[]
62
+ version: number
63
+ }
64
+
65
+ /** What one taxonomy layer's model call answers with. */
66
+ export interface TaxonomyEntryList {
67
+ entries: TaxonomyEntry[]
68
+ }
69
+
70
+ /** What the access-model pass answers with — the roles and the permissions in one call. */
71
+ export interface TaxonomyRoleList {
72
+ roles: TaxonomyRole[]
73
+ permissions: TaxonomyPermission[]
74
+ }