@owlmeans/viable-common 0.0.44 → 0.0.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (605) hide show
  1. package/README.md +4 -3
  2. package/agent-meta/manifest.json +2 -2
  3. package/agent-meta/skills/agent-presentation/SKILL.md +4 -4
  4. package/agent-meta/skills/viable-common/SKILL.md +59 -30
  5. package/build/agent/index.d.ts +1 -0
  6. package/build/agent/index.d.ts.map +1 -1
  7. package/build/agent/index.js.map +1 -1
  8. package/build/agent/presentation/types.d.ts +21 -0
  9. package/build/agent/presentation/types.d.ts.map +1 -0
  10. package/build/agent/presentation/types.js +2 -0
  11. package/build/agent/presentation/types.js.map +1 -0
  12. package/build/agent/presentation.d.ts +10 -8
  13. package/build/agent/presentation.d.ts.map +1 -1
  14. package/build/agent/presentation.js +216 -195
  15. package/build/agent/presentation.js.map +1 -1
  16. package/build/agent/types.local.d.ts +3 -1
  17. package/build/agent/types.local.d.ts.map +1 -1
  18. package/build/areas/index.d.ts +1 -0
  19. package/build/areas/index.d.ts.map +1 -1
  20. package/build/areas/index.js.map +1 -1
  21. package/build/areas/tenancy/types.d.ts +23 -0
  22. package/build/areas/tenancy/types.d.ts.map +1 -0
  23. package/build/areas/tenancy/types.js +2 -0
  24. package/build/areas/tenancy/types.js.map +1 -0
  25. package/build/areas/tenancy.d.ts +5 -14
  26. package/build/areas/tenancy.d.ts.map +1 -1
  27. package/build/areas/tenancy.js +20 -26
  28. package/build/areas/tenancy.js.map +1 -1
  29. package/build/ba/connecting/types.d.ts +45 -0
  30. package/build/ba/connecting/types.d.ts.map +1 -0
  31. package/build/ba/connecting/types.js +2 -0
  32. package/build/ba/connecting/types.js.map +1 -0
  33. package/build/ba/connecting.d.ts +4 -0
  34. package/build/ba/connecting.d.ts.map +1 -0
  35. package/build/ba/connecting.js +47 -0
  36. package/build/ba/connecting.js.map +1 -0
  37. package/build/ba/helpers.d.ts +4 -39
  38. package/build/ba/helpers.d.ts.map +1 -1
  39. package/build/ba/helpers.js +5 -79
  40. package/build/ba/helpers.js.map +1 -1
  41. package/build/ba/index.d.ts +2 -0
  42. package/build/ba/index.d.ts.map +1 -1
  43. package/build/ba/index.js +1 -0
  44. package/build/ba/index.js.map +1 -1
  45. package/build/blueprint/types.d.ts +1 -2
  46. package/build/blueprint/types.d.ts.map +1 -1
  47. package/build/connect/branding/types.d.ts +28 -0
  48. package/build/connect/branding/types.d.ts.map +1 -0
  49. package/build/connect/branding/types.js +2 -0
  50. package/build/connect/branding/types.js.map +1 -0
  51. package/build/connect/consts.d.ts +2 -0
  52. package/build/connect/consts.d.ts.map +1 -1
  53. package/build/connect/consts.js +2 -0
  54. package/build/connect/consts.js.map +1 -1
  55. package/build/connect/conversion/types.d.ts +93 -0
  56. package/build/connect/conversion/types.d.ts.map +1 -0
  57. package/build/connect/conversion/types.js +2 -0
  58. package/build/connect/conversion/types.js.map +1 -0
  59. package/build/connect/entrypoints/types.d.ts +30 -0
  60. package/build/connect/entrypoints/types.d.ts.map +1 -0
  61. package/build/connect/entrypoints/types.js +2 -0
  62. package/build/connect/entrypoints/types.js.map +1 -0
  63. package/build/connect/entrypoints.d.ts +17 -11
  64. package/build/connect/entrypoints.d.ts.map +1 -1
  65. package/build/connect/entrypoints.js.map +1 -1
  66. package/build/connect/errors/types.d.ts +20 -0
  67. package/build/connect/errors/types.d.ts.map +1 -0
  68. package/build/connect/errors/types.js +2 -0
  69. package/build/connect/errors/types.js.map +1 -0
  70. package/build/connect/errors.d.ts +1 -1
  71. package/build/connect/errors.d.ts.map +1 -1
  72. package/build/connect/index.d.ts +13 -3
  73. package/build/connect/index.d.ts.map +1 -1
  74. package/build/connect/index.js +1 -1
  75. package/build/connect/index.js.map +1 -1
  76. package/build/connect/kit/types.d.ts +52 -0
  77. package/build/connect/kit/types.d.ts.map +1 -0
  78. package/build/connect/kit/types.js +2 -0
  79. package/build/connect/kit/types.js.map +1 -0
  80. package/build/connect/model-tier/types.d.ts +16 -0
  81. package/build/connect/model-tier/types.d.ts.map +1 -0
  82. package/build/connect/model-tier/types.js +2 -0
  83. package/build/connect/model-tier/types.js.map +1 -0
  84. package/build/connect/model-tier.d.ts +4 -0
  85. package/build/connect/model-tier.d.ts.map +1 -0
  86. package/build/connect/model-tier.js +21 -0
  87. package/build/connect/model-tier.js.map +1 -0
  88. package/build/connect/ops/types.d.ts +198 -0
  89. package/build/connect/ops/types.d.ts.map +1 -0
  90. package/build/connect/ops/types.js +2 -0
  91. package/build/connect/ops/types.js.map +1 -0
  92. package/build/connect/pipeline/types.d.ts +39 -0
  93. package/build/connect/pipeline/types.d.ts.map +1 -0
  94. package/build/connect/pipeline/types.js +2 -0
  95. package/build/connect/pipeline/types.js.map +1 -0
  96. package/build/connect/project/types.d.ts +127 -0
  97. package/build/connect/project/types.d.ts.map +1 -0
  98. package/build/connect/project/types.js +2 -0
  99. package/build/connect/project/types.js.map +1 -0
  100. package/build/connect/references/types.d.ts +157 -0
  101. package/build/connect/references/types.d.ts.map +1 -0
  102. package/build/connect/references/types.js +2 -0
  103. package/build/connect/references/types.js.map +1 -0
  104. package/build/connect/references/types.local.d.ts +5 -0
  105. package/build/connect/references/types.local.d.ts.map +1 -0
  106. package/build/connect/references/types.local.js.map +1 -0
  107. package/build/connect/references.d.ts +1 -1
  108. package/build/connect/references.d.ts.map +1 -1
  109. package/build/connect/references.js.map +1 -1
  110. package/build/connect/schemas.d.ts +8 -5
  111. package/build/connect/schemas.d.ts.map +1 -1
  112. package/build/connect/schemas.js +1 -3
  113. package/build/connect/schemas.js.map +1 -1
  114. package/build/connect/session/types.d.ts +73 -0
  115. package/build/connect/session/types.d.ts.map +1 -0
  116. package/build/connect/session/types.js +2 -0
  117. package/build/connect/session/types.js.map +1 -0
  118. package/build/connect/settings/types.d.ts +48 -0
  119. package/build/connect/settings/types.d.ts.map +1 -0
  120. package/build/connect/settings/types.js +2 -0
  121. package/build/connect/settings/types.js.map +1 -0
  122. package/build/connect/types.d.ts +1 -198
  123. package/build/connect/types.d.ts.map +1 -1
  124. package/build/convert/analysis/types.d.ts +93 -0
  125. package/build/convert/analysis/types.d.ts.map +1 -0
  126. package/build/convert/analysis/types.js +2 -0
  127. package/build/convert/analysis/types.js.map +1 -0
  128. package/build/convert/{consts.local.d.ts → census/consts.local.d.ts} +1 -1
  129. package/build/convert/census/consts.local.d.ts.map +1 -0
  130. package/build/convert/{consts.local.js → census/consts.local.js} +1 -1
  131. package/build/convert/census/consts.local.js.map +1 -0
  132. package/build/convert/census/types.d.ts +176 -0
  133. package/build/convert/census/types.d.ts.map +1 -0
  134. package/build/convert/census/types.js +2 -0
  135. package/build/convert/census/types.js.map +1 -0
  136. package/build/convert/census.d.ts +4 -0
  137. package/build/convert/census.d.ts.map +1 -0
  138. package/build/convert/census.js +83 -0
  139. package/build/convert/census.js.map +1 -0
  140. package/build/convert/consts.d.ts +4 -0
  141. package/build/convert/consts.d.ts.map +1 -1
  142. package/build/convert/consts.js +4 -0
  143. package/build/convert/consts.js.map +1 -1
  144. package/build/convert/detection/types.d.ts +67 -0
  145. package/build/convert/detection/types.d.ts.map +1 -0
  146. package/build/convert/detection/types.js +2 -0
  147. package/build/convert/detection/types.js.map +1 -0
  148. package/build/convert/docs/types.d.ts +129 -0
  149. package/build/convert/docs/types.d.ts.map +1 -0
  150. package/build/convert/docs/types.js +2 -0
  151. package/build/convert/docs/types.js.map +1 -0
  152. package/build/convert/docs.d.ts +4 -0
  153. package/build/convert/docs.d.ts.map +1 -0
  154. package/build/convert/docs.js +9 -0
  155. package/build/convert/docs.js.map +1 -0
  156. package/build/convert/estimate/types.d.ts +77 -0
  157. package/build/convert/estimate/types.d.ts.map +1 -0
  158. package/build/convert/estimate/types.js +2 -0
  159. package/build/convert/estimate/types.js.map +1 -0
  160. package/build/convert/estimate.d.ts +11 -0
  161. package/build/convert/estimate.d.ts.map +1 -0
  162. package/build/convert/estimate.js +18 -0
  163. package/build/convert/estimate.js.map +1 -0
  164. package/build/convert/helpers.d.ts +14 -78
  165. package/build/convert/helpers.d.ts.map +1 -1
  166. package/build/convert/helpers.js +27 -199
  167. package/build/convert/helpers.js.map +1 -1
  168. package/build/convert/index.d.ts +14 -0
  169. package/build/convert/index.d.ts.map +1 -1
  170. package/build/convert/index.js +5 -0
  171. package/build/convert/index.js.map +1 -1
  172. package/build/convert/origin/types.d.ts +41 -0
  173. package/build/convert/origin/types.d.ts.map +1 -0
  174. package/build/convert/origin/types.js +2 -0
  175. package/build/convert/origin/types.js.map +1 -0
  176. package/build/convert/origin.d.ts +4 -0
  177. package/build/convert/origin.d.ts.map +1 -0
  178. package/build/convert/origin.js +25 -0
  179. package/build/convert/origin.js.map +1 -0
  180. package/build/convert/record/types.d.ts +98 -0
  181. package/build/convert/record/types.d.ts.map +1 -0
  182. package/build/convert/record/types.js +2 -0
  183. package/build/convert/record/types.js.map +1 -0
  184. package/build/convert/schemas.d.ts +7 -6
  185. package/build/convert/schemas.d.ts.map +1 -1
  186. package/build/convert/schemas.js +1 -5
  187. package/build/convert/schemas.js.map +1 -1
  188. package/build/convert/stage/types.d.ts +27 -0
  189. package/build/convert/stage/types.d.ts.map +1 -0
  190. package/build/convert/stage/types.js +2 -0
  191. package/build/convert/stage/types.js.map +1 -0
  192. package/build/convert/stage.d.ts +4 -0
  193. package/build/convert/stage.d.ts.map +1 -0
  194. package/build/convert/stage.js +25 -0
  195. package/build/convert/stage.js.map +1 -0
  196. package/build/convert/taxonomy/types.d.ts +71 -0
  197. package/build/convert/taxonomy/types.d.ts.map +1 -0
  198. package/build/convert/taxonomy/types.js +2 -0
  199. package/build/convert/taxonomy/types.js.map +1 -0
  200. package/build/convert/types.d.ts +1 -657
  201. package/build/convert/types.d.ts.map +1 -1
  202. package/build/convert/utils.d.ts +2 -1
  203. package/build/convert/utils.d.ts.map +1 -1
  204. package/build/convert/utils.js +5 -4
  205. package/build/convert/utils.js.map +1 -1
  206. package/build/design/helpers.d.ts +9 -49
  207. package/build/design/helpers.d.ts.map +1 -1
  208. package/build/design/helpers.js +17 -224
  209. package/build/design/helpers.js.map +1 -1
  210. package/build/design/index.d.ts +3 -0
  211. package/build/design/index.d.ts.map +1 -1
  212. package/build/design/index.js +1 -0
  213. package/build/design/index.js.map +1 -1
  214. package/build/design/runtime/types.d.ts +16 -0
  215. package/build/design/runtime/types.d.ts.map +1 -0
  216. package/build/design/runtime/types.js +2 -0
  217. package/build/design/runtime/types.js.map +1 -0
  218. package/build/design/runtime.d.ts +6 -2
  219. package/build/design/runtime.d.ts.map +1 -1
  220. package/build/design/runtime.js +13 -5
  221. package/build/design/runtime.js.map +1 -1
  222. package/build/design/story/types.d.ts +67 -0
  223. package/build/design/story/types.d.ts.map +1 -0
  224. package/build/design/story/types.js +2 -0
  225. package/build/design/story/types.js.map +1 -0
  226. package/build/design/story.d.ts +4 -0
  227. package/build/design/story.d.ts.map +1 -0
  228. package/build/design/story.js +184 -0
  229. package/build/design/story.js.map +1 -0
  230. package/build/dev/types.local.d.ts +2 -1
  231. package/build/dev/types.local.d.ts.map +1 -1
  232. package/build/index.d.ts +1 -0
  233. package/build/index.d.ts.map +1 -1
  234. package/build/index.js +1 -0
  235. package/build/index.js.map +1 -1
  236. package/build/integrity/index.d.ts +4 -0
  237. package/build/integrity/index.d.ts.map +1 -1
  238. package/build/integrity/index.js +2 -0
  239. package/build/integrity/index.js.map +1 -1
  240. package/build/integrity/layout/consts.d.ts +59 -0
  241. package/build/integrity/layout/consts.d.ts.map +1 -0
  242. package/build/integrity/layout/consts.js +66 -0
  243. package/build/integrity/layout/consts.js.map +1 -0
  244. package/build/integrity/layout/consts.local.d.ts +18 -0
  245. package/build/integrity/layout/consts.local.d.ts.map +1 -0
  246. package/build/integrity/layout/consts.local.js +176 -0
  247. package/build/integrity/layout/consts.local.js.map +1 -0
  248. package/build/integrity/layout/types.d.ts +35 -0
  249. package/build/integrity/layout/types.d.ts.map +1 -0
  250. package/build/integrity/layout/types.js +2 -0
  251. package/build/integrity/layout/types.js.map +1 -0
  252. package/build/integrity/layout.d.ts +4 -0
  253. package/build/integrity/layout.d.ts.map +1 -0
  254. package/build/integrity/layout.js +25 -0
  255. package/build/integrity/layout.js.map +1 -0
  256. package/build/integrity/types.d.ts +3 -1
  257. package/build/integrity/types.d.ts.map +1 -1
  258. package/build/integrity/utils.d.ts +6 -81
  259. package/build/integrity/utils.d.ts.map +1 -1
  260. package/build/integrity/utils.js +11 -279
  261. package/build/integrity/utils.js.map +1 -1
  262. package/build/integrity/verify/types.d.ts +26 -0
  263. package/build/integrity/verify/types.d.ts.map +1 -0
  264. package/build/integrity/verify/types.js +2 -0
  265. package/build/integrity/verify/types.js.map +1 -0
  266. package/build/integrity/verify.d.ts +5 -19
  267. package/build/integrity/verify.d.ts.map +1 -1
  268. package/build/integrity/verify.js +164 -175
  269. package/build/integrity/verify.js.map +1 -1
  270. package/build/intent/consts.d.ts +16 -0
  271. package/build/intent/consts.d.ts.map +1 -1
  272. package/build/intent/consts.js +63 -0
  273. package/build/intent/consts.js.map +1 -1
  274. package/build/intent/entrypoints.d.ts +2 -11
  275. package/build/intent/entrypoints.d.ts.map +1 -1
  276. package/build/intent/entrypoints.js.map +1 -1
  277. package/build/intent/flow.d.ts.map +1 -1
  278. package/build/intent/flow.js +2 -2
  279. package/build/intent/flow.js.map +1 -1
  280. package/build/intent/index.d.ts +0 -1
  281. package/build/intent/index.d.ts.map +1 -1
  282. package/build/intent/index.js +0 -1
  283. package/build/intent/index.js.map +1 -1
  284. package/build/intent/types.d.ts +13 -2
  285. package/build/intent/types.d.ts.map +1 -1
  286. package/build/legal/consts.d.ts +36 -0
  287. package/build/legal/consts.d.ts.map +1 -0
  288. package/build/legal/consts.js +16 -0
  289. package/build/legal/consts.js.map +1 -0
  290. package/build/legal/index.d.ts +3 -0
  291. package/build/legal/index.d.ts.map +1 -0
  292. package/build/legal/index.js +2 -0
  293. package/build/legal/index.js.map +1 -0
  294. package/build/legal/types.d.ts +10 -0
  295. package/build/legal/types.d.ts.map +1 -0
  296. package/build/legal/types.js +2 -0
  297. package/build/legal/types.js.map +1 -0
  298. package/build/moderation/index.d.ts +2 -0
  299. package/build/moderation/index.d.ts.map +1 -1
  300. package/build/moderation/index.js +1 -0
  301. package/build/moderation/index.js.map +1 -1
  302. package/build/moderation/utils.d.ts +3 -15
  303. package/build/moderation/utils.d.ts.map +1 -1
  304. package/build/moderation/utils.js +5 -30
  305. package/build/moderation/utils.js.map +1 -1
  306. package/build/moderation/verdict/types.d.ts +24 -0
  307. package/build/moderation/verdict/types.d.ts.map +1 -0
  308. package/build/moderation/verdict/types.js +2 -0
  309. package/build/moderation/verdict/types.js.map +1 -0
  310. package/build/moderation/verdict.d.ts +4 -0
  311. package/build/moderation/verdict.d.ts.map +1 -0
  312. package/build/moderation/verdict.js +21 -0
  313. package/build/moderation/verdict.js.map +1 -0
  314. package/build/planning/card/types.d.ts +42 -0
  315. package/build/planning/card/types.d.ts.map +1 -0
  316. package/build/planning/card/types.js +2 -0
  317. package/build/planning/card/types.js.map +1 -0
  318. package/build/planning/card.d.ts +4 -0
  319. package/build/planning/card.d.ts.map +1 -0
  320. package/build/planning/card.js +51 -0
  321. package/build/planning/card.js.map +1 -0
  322. package/build/planning/flows.d.ts +34 -0
  323. package/build/planning/flows.d.ts.map +1 -0
  324. package/build/planning/flows.js +174 -0
  325. package/build/planning/flows.js.map +1 -0
  326. package/build/planning/helpers.d.ts +11 -37
  327. package/build/planning/helpers.d.ts.map +1 -1
  328. package/build/planning/helpers.js +24 -103
  329. package/build/planning/helpers.js.map +1 -1
  330. package/build/planning/index.d.ts +5 -0
  331. package/build/planning/index.d.ts.map +1 -1
  332. package/build/planning/index.js +2 -0
  333. package/build/planning/index.js.map +1 -1
  334. package/build/planning/landing/types.d.ts +16 -0
  335. package/build/planning/landing/types.d.ts.map +1 -0
  336. package/build/planning/landing/types.js +2 -0
  337. package/build/planning/landing/types.js.map +1 -0
  338. package/build/planning/landing.d.ts +5 -10
  339. package/build/planning/landing.d.ts.map +1 -1
  340. package/build/planning/landing.js +20 -22
  341. package/build/planning/landing.js.map +1 -1
  342. package/build/planning/schemas.d.ts +1 -5
  343. package/build/planning/schemas.d.ts.map +1 -1
  344. package/build/planning/schemas.js +3 -3
  345. package/build/planning/schemas.js.map +1 -1
  346. package/build/planning/spec/types.d.ts +22 -0
  347. package/build/planning/spec/types.d.ts.map +1 -0
  348. package/build/planning/spec/types.js +2 -0
  349. package/build/planning/spec/types.js.map +1 -0
  350. package/build/planning/spec.d.ts +4 -0
  351. package/build/planning/spec.d.ts.map +1 -0
  352. package/build/planning/spec.js +30 -0
  353. package/build/planning/spec.js.map +1 -0
  354. package/build/planning/types.d.ts +4 -3
  355. package/build/planning/types.d.ts.map +1 -1
  356. package/build/scaffold/consts.d.ts +40 -1
  357. package/build/scaffold/consts.d.ts.map +1 -1
  358. package/build/scaffold/consts.js +52 -0
  359. package/build/scaffold/consts.js.map +1 -1
  360. package/build/scaffold/helpers.d.ts +4 -16
  361. package/build/scaffold/helpers.d.ts.map +1 -1
  362. package/build/scaffold/helpers.js +9 -64
  363. package/build/scaffold/helpers.js.map +1 -1
  364. package/build/scaffold/index.d.ts +4 -0
  365. package/build/scaffold/index.d.ts.map +1 -1
  366. package/build/scaffold/index.js +2 -0
  367. package/build/scaffold/index.js.map +1 -1
  368. package/build/scaffold/landing/types.d.ts +48 -0
  369. package/build/scaffold/landing/types.d.ts.map +1 -0
  370. package/build/scaffold/landing/types.js +2 -0
  371. package/build/scaffold/landing/types.js.map +1 -0
  372. package/build/scaffold/landing.d.ts +4 -0
  373. package/build/scaffold/landing.d.ts.map +1 -0
  374. package/build/scaffold/landing.js +95 -0
  375. package/build/scaffold/landing.js.map +1 -0
  376. package/build/scaffold/schemas.d.ts +3 -2
  377. package/build/scaffold/schemas.d.ts.map +1 -1
  378. package/build/scaffold/schemas.js +177 -7
  379. package/build/scaffold/schemas.js.map +1 -1
  380. package/build/scaffold/share/types.d.ts +35 -0
  381. package/build/scaffold/share/types.d.ts.map +1 -0
  382. package/build/scaffold/share/types.js +2 -0
  383. package/build/scaffold/share/types.js.map +1 -0
  384. package/build/scaffold/share.d.ts +4 -0
  385. package/build/scaffold/share.d.ts.map +1 -0
  386. package/build/scaffold/share.js +42 -0
  387. package/build/scaffold/share.js.map +1 -0
  388. package/build/scaffold/types.d.ts +112 -2
  389. package/build/scaffold/types.d.ts.map +1 -1
  390. package/build/skills/consts.d.ts +42 -0
  391. package/build/skills/consts.d.ts.map +1 -1
  392. package/build/skills/consts.js +43 -0
  393. package/build/skills/consts.js.map +1 -1
  394. package/build/skills/index.d.ts +0 -1
  395. package/build/skills/index.d.ts.map +1 -1
  396. package/build/skills/index.js +0 -1
  397. package/build/skills/index.js.map +1 -1
  398. package/build/slot/command/types.d.ts +21 -0
  399. package/build/slot/command/types.d.ts.map +1 -0
  400. package/build/slot/command/types.js +2 -0
  401. package/build/slot/command/types.js.map +1 -0
  402. package/build/slot/command.d.ts +4 -0
  403. package/build/slot/command.d.ts.map +1 -0
  404. package/build/slot/command.js +31 -0
  405. package/build/slot/command.js.map +1 -0
  406. package/build/slot/helpers.d.ts +2 -16
  407. package/build/slot/helpers.d.ts.map +1 -1
  408. package/build/slot/helpers.js +5 -26
  409. package/build/slot/helpers.js.map +1 -1
  410. package/build/slot/index.d.ts +5 -0
  411. package/build/slot/index.d.ts.map +1 -1
  412. package/build/slot/index.js +2 -0
  413. package/build/slot/index.js.map +1 -1
  414. package/build/slot/layout/types.d.ts +17 -0
  415. package/build/slot/layout/types.d.ts.map +1 -0
  416. package/build/slot/layout/types.js +2 -0
  417. package/build/slot/layout/types.js.map +1 -0
  418. package/build/slot/layout.d.ts +4 -9
  419. package/build/slot/layout.d.ts.map +1 -1
  420. package/build/slot/layout.js +13 -15
  421. package/build/slot/layout.js.map +1 -1
  422. package/build/slot/origin/types.d.ts +23 -0
  423. package/build/slot/origin/types.d.ts.map +1 -0
  424. package/build/slot/origin/types.js +2 -0
  425. package/build/slot/origin/types.js.map +1 -0
  426. package/build/slot/origin.d.ts +4 -0
  427. package/build/slot/origin.d.ts.map +1 -0
  428. package/build/slot/origin.js +15 -0
  429. package/build/slot/origin.js.map +1 -0
  430. package/build/slot/types.d.ts.map +1 -1
  431. package/build/slot/utils.d.ts +3 -15
  432. package/build/slot/utils.d.ts.map +1 -1
  433. package/build/slot/utils.js +5 -40
  434. package/build/slot/utils.js.map +1 -1
  435. package/build/topology/card/types.d.ts +21 -0
  436. package/build/topology/card/types.d.ts.map +1 -0
  437. package/build/topology/card/types.js +2 -0
  438. package/build/topology/card/types.js.map +1 -0
  439. package/build/topology/card.d.ts +6 -13
  440. package/build/topology/card.d.ts.map +1 -1
  441. package/build/topology/card.js +83 -86
  442. package/build/topology/card.js.map +1 -1
  443. package/build/topology/helpers.d.ts +7 -33
  444. package/build/topology/helpers.d.ts.map +1 -1
  445. package/build/topology/helpers.js +15 -111
  446. package/build/topology/helpers.js.map +1 -1
  447. package/build/topology/index.d.ts +3 -0
  448. package/build/topology/index.d.ts.map +1 -1
  449. package/build/topology/index.js +1 -0
  450. package/build/topology/index.js.map +1 -1
  451. package/build/topology/resolve/types.d.ts +47 -0
  452. package/build/topology/resolve/types.d.ts.map +1 -0
  453. package/build/topology/resolve/types.js +2 -0
  454. package/build/topology/resolve/types.js.map +1 -0
  455. package/build/topology/resolve.d.ts +4 -0
  456. package/build/topology/resolve.d.ts.map +1 -0
  457. package/build/topology/resolve.js +89 -0
  458. package/build/topology/resolve.js.map +1 -0
  459. package/package.json +18 -11
  460. package/src/agent/index.ts +1 -0
  461. package/src/agent/presentation/types.ts +21 -0
  462. package/src/agent/presentation.ts +199 -165
  463. package/src/agent/types.local.ts +3 -1
  464. package/src/areas/index.ts +1 -0
  465. package/src/areas/tenancy/types.ts +23 -0
  466. package/src/areas/tenancy.ts +26 -25
  467. package/src/ba/connecting/types.ts +45 -0
  468. package/src/ba/connecting.ts +64 -0
  469. package/src/ba/helpers.ts +8 -92
  470. package/src/ba/index.ts +2 -0
  471. package/src/blueprint/types.ts +2 -2
  472. package/src/connect/branding/types.ts +29 -0
  473. package/src/connect/consts.ts +3 -0
  474. package/src/connect/conversion/types.ts +96 -0
  475. package/src/connect/entrypoints/types.ts +25 -0
  476. package/src/connect/entrypoints.ts +13 -2
  477. package/src/connect/errors/types.ts +22 -0
  478. package/src/connect/errors.ts +1 -1
  479. package/src/connect/index.ts +13 -3
  480. package/src/connect/kit/types.ts +56 -0
  481. package/src/connect/model-tier/types.ts +16 -0
  482. package/src/connect/model-tier.ts +22 -0
  483. package/src/connect/{ops.ts → ops/types.ts} +13 -3
  484. package/src/connect/pipeline/types.ts +41 -0
  485. package/src/connect/project/types.ts +127 -0
  486. package/src/connect/references/types.local.ts +5 -0
  487. package/src/connect/references/types.ts +73 -0
  488. package/src/connect/references.ts +13 -2
  489. package/src/connect/schemas.ts +9 -13
  490. package/src/connect/session/types.ts +81 -0
  491. package/src/connect/settings/types.ts +52 -0
  492. package/src/convert/analysis/types.ts +89 -0
  493. package/src/convert/{consts.local.ts → census/consts.local.ts} +1 -1
  494. package/src/convert/census/types.ts +181 -0
  495. package/src/convert/census.ts +95 -0
  496. package/src/convert/consts.ts +5 -0
  497. package/src/convert/detection/types.ts +74 -0
  498. package/src/convert/docs/types.ts +151 -0
  499. package/src/convert/docs.ts +15 -0
  500. package/src/convert/estimate/types.ts +75 -0
  501. package/src/convert/estimate.ts +19 -0
  502. package/src/convert/helpers.ts +29 -210
  503. package/src/convert/index.ts +14 -0
  504. package/src/convert/origin/types.ts +43 -0
  505. package/src/convert/origin.ts +33 -0
  506. package/src/convert/record/types.ts +105 -0
  507. package/src/convert/schemas.ts +13 -12
  508. package/src/convert/stage/types.ts +27 -0
  509. package/src/convert/stage.ts +31 -0
  510. package/src/convert/taxonomy/types.ts +74 -0
  511. package/src/convert/types.ts +5 -709
  512. package/src/convert/utils.ts +5 -6
  513. package/src/design/helpers.ts +20 -245
  514. package/src/design/index.ts +3 -0
  515. package/src/design/runtime/types.ts +14 -0
  516. package/src/design/runtime.ts +22 -7
  517. package/src/design/story/types.ts +67 -0
  518. package/src/design/story.ts +221 -0
  519. package/src/dev/types.local.ts +1 -1
  520. package/src/index.ts +1 -0
  521. package/src/integrity/index.ts +4 -0
  522. package/src/integrity/layout/consts.local.ts +188 -0
  523. package/src/integrity/layout/consts.ts +79 -0
  524. package/src/integrity/layout/types.ts +35 -0
  525. package/src/integrity/layout.ts +39 -0
  526. package/src/integrity/types.ts +3 -1
  527. package/src/integrity/utils.ts +14 -313
  528. package/src/integrity/verify/types.ts +26 -0
  529. package/src/integrity/verify.ts +177 -181
  530. package/src/intent/consts.ts +67 -0
  531. package/src/intent/entrypoints.ts +2 -2
  532. package/src/intent/index.ts +0 -1
  533. package/src/intent/types.ts +9 -2
  534. package/src/legal/consts.ts +17 -0
  535. package/src/legal/index.ts +2 -0
  536. package/src/legal/types.ts +11 -0
  537. package/src/moderation/index.ts +2 -0
  538. package/src/moderation/utils.ts +7 -30
  539. package/src/moderation/verdict/types.ts +22 -0
  540. package/src/moderation/verdict.ts +28 -0
  541. package/src/planning/card/types.ts +44 -0
  542. package/src/planning/card.ts +77 -0
  543. package/src/planning/helpers.ts +28 -116
  544. package/src/planning/index.ts +5 -0
  545. package/src/planning/landing/types.ts +15 -0
  546. package/src/planning/landing.ts +27 -24
  547. package/src/planning/schemas.ts +3 -3
  548. package/src/planning/spec/types.ts +22 -0
  549. package/src/planning/spec.ts +41 -0
  550. package/src/planning/types.ts +4 -4
  551. package/src/scaffold/consts.ts +65 -1
  552. package/src/scaffold/helpers.ts +14 -77
  553. package/src/scaffold/index.ts +4 -0
  554. package/src/scaffold/landing/types.ts +48 -0
  555. package/src/scaffold/landing.ts +120 -0
  556. package/src/scaffold/schemas.ts +183 -7
  557. package/src/scaffold/share/types.ts +35 -0
  558. package/src/scaffold/share.ts +60 -0
  559. package/src/scaffold/types.ts +120 -1
  560. package/src/skills/consts.ts +46 -0
  561. package/src/skills/index.ts +0 -1
  562. package/src/slot/command/types.ts +21 -0
  563. package/src/slot/command.ts +38 -0
  564. package/src/slot/helpers.ts +5 -25
  565. package/src/slot/index.ts +5 -0
  566. package/src/slot/layout/types.ts +17 -0
  567. package/src/slot/layout.ts +19 -16
  568. package/src/slot/origin/types.ts +23 -0
  569. package/src/slot/origin.ts +20 -0
  570. package/src/slot/types.ts +1 -0
  571. package/src/slot/utils.ts +8 -43
  572. package/src/topology/card/types.ts +21 -0
  573. package/src/topology/card.ts +84 -82
  574. package/src/topology/helpers.ts +20 -125
  575. package/src/topology/index.ts +3 -0
  576. package/src/topology/resolve/types.ts +47 -0
  577. package/src/topology/resolve.ts +118 -0
  578. package/tests/blueprint.spec.ts +1 -2
  579. package/tests/connect-errors.spec.ts +1 -1
  580. package/tests/convert.spec.ts +50 -50
  581. package/tests/design.spec.ts +13 -16
  582. package/tests/planning.spec.ts +57 -59
  583. package/tests/presentation.spec.ts +20 -20
  584. package/tests/scaffold.spec.ts +286 -6
  585. package/tests/tenancy.spec.ts +21 -21
  586. package/build/connect/types.local.d.ts +0 -4
  587. package/build/connect/types.local.d.ts.map +0 -1
  588. package/build/connect/types.local.js.map +0 -1
  589. package/build/connect/utils.d.ts +0 -12
  590. package/build/connect/utils.d.ts.map +0 -1
  591. package/build/connect/utils.js +0 -25
  592. package/build/connect/utils.js.map +0 -1
  593. package/build/convert/consts.local.d.ts.map +0 -1
  594. package/build/convert/consts.local.js.map +0 -1
  595. package/build/intent/consts.local.d.ts +0 -4
  596. package/build/intent/consts.local.d.ts.map +0 -1
  597. package/build/intent/consts.local.js +0 -3
  598. package/build/intent/consts.local.js.map +0 -1
  599. package/src/connect/types.local.ts +0 -5
  600. package/src/connect/types.ts +0 -589
  601. package/src/connect/utils.ts +0 -23
  602. package/src/intent/consts.local.ts +0 -3
  603. package/src/intent/flow.ts +0 -66
  604. package/src/skills/roles.ts +0 -46
  605. /package/build/connect/{types.local.js → references/types.local.js} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/topology/resolve/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhG,iGAAiG;AACjG,MAAM,WAAW,cAAc;IAC7B;;;;;;;;;OASG;IACH,aAAa,EAAE,CAAC,QAAQ,EAAE,uBAAuB,EAAE,KAAK,uBAAuB,EAAE,CAAA;IACjF,kFAAkF;IAClF,eAAe,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,gBAAgB,CAAA;IACnE,yDAAyD;IACzD,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,kBAAkB,CAAA;IACxD;;;;;;OAMG;IACH,cAAc,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,KAAK,uBAAuB,GAAG,IAAI,CAAA;IAChG,2FAA2F;IAC3F,eAAe,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,KAAK,uBAAuB,EAAE,CAAA;IAC5F,8FAA8F;IAC9F,cAAc,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,KAAK,uBAAuB,GAAG,IAAI,CAAA;IACnH,2EAA2E;IAC3E,UAAU,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,uBAAuB,KAAK,MAAM,CAAA;IAClF;;;;;;OAMG;IACH,WAAW,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,uBAAuB,KAAK,kBAAkB,CAAA;IAC/F,8FAA8F;IAC9F,YAAY,EAAE,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,kBAAkB,KAAK,OAAO,CAAA;CACxE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/topology/resolve/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { TopologyHelper } from './resolve/types.js';
2
+ export declare const createTopologyHelper: () => TopologyHelper;
3
+ export declare const topologyHelper: TopologyHelper;
4
+ //# sourceMappingURL=resolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/topology/resolve.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,eAAO,MAAM,oBAAoB,QAAO,cA0GvC,CAAA;AAED,eAAO,MAAM,cAAc,gBAAyB,CAAA"}
@@ -0,0 +1,89 @@
1
+ import { LAYOUT_TOPOLOGIES, DEFAULT_TOPOLOGY } from './consts.js';
2
+ export const createTopologyHelper = () => {
3
+ const orderPackages = (packages) => {
4
+ const known = new Set(packages.map(pkg => pkg.name));
5
+ const index = new Map(packages.map((pkg, at) => [pkg.name, at]));
6
+ const pending = new Map(packages.map(pkg => [
7
+ pkg.name, pkg.dependsOn.filter(dep => known.has(dep) && dep !== pkg.name).length,
8
+ ]));
9
+ const dependents = new Map();
10
+ for (const pkg of packages) {
11
+ for (const dep of pkg.dependsOn) {
12
+ if (!known.has(dep) || dep === pkg.name)
13
+ continue;
14
+ dependents.set(dep, [...dependents.get(dep) ?? [], pkg.name]);
15
+ }
16
+ }
17
+ const byName = new Map(packages.map(pkg => [pkg.name, pkg]));
18
+ const out = [];
19
+ // Ready packages are taken in DECLARATION order, not in the order they became ready. Both are
20
+ // correct builds; only one is the same list every time and the same list a person wrote, and
21
+ // this order is compared against the shipped layout tables by a test.
22
+ const ready = packages.filter(pkg => pending.get(pkg.name) === 0).map(pkg => pkg.name);
23
+ const take = () => {
24
+ if (ready.length === 0)
25
+ return undefined;
26
+ let at = 0;
27
+ for (let i = 1; i < ready.length; i++) {
28
+ if ((index.get(ready[i]) ?? 0) < (index.get(ready[at]) ?? 0))
29
+ at = i;
30
+ }
31
+ return ready.splice(at, 1)[0];
32
+ };
33
+ for (let name = take(); name != null; name = take()) {
34
+ const pkg = byName.get(name);
35
+ if (pkg == null)
36
+ continue;
37
+ out.push(pkg);
38
+ for (const next of dependents.get(name) ?? []) {
39
+ const left = (pending.get(next) ?? 0) - 1;
40
+ pending.set(next, left);
41
+ if (left === 0)
42
+ ready.push(next);
43
+ }
44
+ }
45
+ const seen = new Set(out.map(pkg => pkg.name));
46
+ return [...out, ...packages.filter(pkg => !seen.has(pkg.name))];
47
+ };
48
+ const resolveTopology = (topology) => {
49
+ const ordered = orderPackages(topology.packages);
50
+ const byRole = {};
51
+ for (const pkg of ordered) {
52
+ for (const role of pkg.roles) {
53
+ byRole[role] = [...byRole[role] ?? [], pkg];
54
+ }
55
+ }
56
+ return {
57
+ ...topology,
58
+ packages: ordered,
59
+ build: ordered.map(pkg => pkg.name),
60
+ libraries: ordered.filter(pkg => pkg.kind === 'library').map(pkg => pkg.name),
61
+ byRole,
62
+ };
63
+ };
64
+ const topologyOf = (layout) => LAYOUT_TOPOLOGIES[layout] ?? DEFAULT_TOPOLOGY;
65
+ const packageForRole = (topology, role) => topology.byRole[role]?.[0] ?? null;
66
+ const packagesForRole = (topology, role) => topology.byRole[role] ?? [];
67
+ const packageForArea = (topology, role, area) => {
68
+ const candidates = packagesForRole(topology, role);
69
+ return candidates.find(pkg => pkg.areas?.includes(area) === true)
70
+ ?? candidates.find(pkg => pkg.areas == null)
71
+ ?? candidates[0]
72
+ ?? null;
73
+ };
74
+ const packageDir = (topology, pkg) => `${topology.dir}/${pkg.name}`;
75
+ const withPackage = (topology, pkg) => ({
76
+ ...topology,
77
+ packages: topology.packages.some(known => known.name === pkg.name)
78
+ ? topology.packages.map(known => known.name === pkg.name ? pkg : known)
79
+ : [...topology.packages, pkg],
80
+ });
81
+ const sameTopology = (a, b) => JSON.stringify(orderPackages(a.packages)) === JSON.stringify(orderPackages(b.packages))
82
+ && a.dir === b.dir;
83
+ return {
84
+ orderPackages, resolveTopology, topologyOf, packageForRole, packagesForRole, packageForArea, packageDir,
85
+ withPackage, sameTopology,
86
+ };
87
+ };
88
+ export const topologyHelper = createTopologyHelper();
89
+ //# sourceMappingURL=resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/topology/resolve.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@owlmeans/viable-common",
3
- "version": "0.0.44",
3
+ "version": "0.0.46",
4
4
  "license": "MIT",
5
5
  "description": "Runtime-free contracts of the OwlMeans Viable platform — the analysis, design and metadata shapes of a generated project, its target-shape manifest, the slot command vocabulary, the connector protocol and the conversion vocabulary, and the intent-first hand-off from the public site to the platform.",
6
6
  "type": "module",
@@ -49,6 +49,13 @@
49
49
  "module": "./build/integrity/index.js",
50
50
  "types": "./build/integrity/index.d.ts"
51
51
  },
52
+ "./legal": {
53
+ "import": "./build/legal/index.js",
54
+ "require": "./build/legal/index.js",
55
+ "default": "./build/legal/index.js",
56
+ "module": "./build/legal/index.js",
57
+ "types": "./build/legal/index.d.ts"
58
+ },
52
59
  "./intent": {
53
60
  "import": "./build/intent/index.js",
54
61
  "require": "./build/intent/index.js",
@@ -66,16 +73,16 @@
66
73
  "typescript": "^7.0.2"
67
74
  },
68
75
  "dependencies": {
69
- "@owlmeans/agent-common": "^0.1.18-rc.47",
70
- "@owlmeans/auth": "^0.1.18-rc.39",
71
- "@owlmeans/context": "^0.1.18-rc.33",
72
- "@owlmeans/entrypoint": "^0.1.18-rc.40",
73
- "@owlmeans/error": "^0.1.18-rc.37",
74
- "@owlmeans/flow": "^0.1.18-rc.44",
75
- "@owlmeans/llm-common": "^0.1.18-rc.38",
76
- "@owlmeans/planning": "^0.1.18-rc.18",
77
- "@owlmeans/resource": "^0.1.18-rc.39",
78
- "@owlmeans/route": "^0.1.18-rc.34"
76
+ "@owlmeans/agent-common": "^0.1.18-rc.48",
77
+ "@owlmeans/auth": "^0.1.18-rc.40",
78
+ "@owlmeans/context": "^0.1.18-rc.34",
79
+ "@owlmeans/entrypoint": "^0.1.18-rc.41",
80
+ "@owlmeans/error": "^0.1.18-rc.38",
81
+ "@owlmeans/flow": "^0.1.18-rc.45",
82
+ "@owlmeans/llm-common": "^0.1.18-rc.39",
83
+ "@owlmeans/planning": "^0.1.18-rc.20",
84
+ "@owlmeans/resource": "^0.1.18-rc.40",
85
+ "@owlmeans/route": "^0.1.18-rc.35"
79
86
  },
80
87
  "publishConfig": {
81
88
  "access": "public"
@@ -1,5 +1,6 @@
1
1
 
2
2
  export type * from './types.js'
3
+ export type * from './presentation/types.js'
3
4
  export * from './spectator/index.js'
4
5
  export * from './memory.js'
5
6
  export * from './presentation.js'
@@ -0,0 +1,21 @@
1
+ import type { AgentCodeLanguage, AgentMessageRole } from '../consts.js'
2
+ import type { AgentMessageClassificationInput, AgentMessagePresentation } from '../types.js'
3
+
4
+ /** How an agent's thinking event is presented: its specialist family, its language, its card. */
5
+ export interface AgentPresentationHelper {
6
+ /**
7
+ * Source extraction is an internal context-reduction pass. Its terminal tool call contains only
8
+ * line ranges, which are useful to the coder but add no useful information to a person's journal.
9
+ */
10
+ isAgentMessageHidden: (input: AgentMessageClassificationInput) => boolean
11
+ /** Maps the attribution that reached the event boundary to the visual specialist family. */
12
+ agentMessageRoleOf: (input: AgentMessageClassificationInput) => AgentMessageRole
13
+ /** Pulls a schema argument out of LangChain's serialised tool-call shape. */
14
+ agentToolCallArguments: (value: unknown) => unknown
15
+ /** Finds the language of a unified diff from its destination (or source) file path. */
16
+ agentDiffLanguageOf: (text: string) => AgentCodeLanguage
17
+ /** Conservative code detection; prose with one identifier remains plain text. */
18
+ agentCodeLanguageOf: (text: string) => AgentCodeLanguage
19
+ isUnifiedDiff: (text: string) => boolean
20
+ classifyAgentMessage: (input: AgentMessageClassificationInput) => AgentMessagePresentation
21
+ }
@@ -3,190 +3,224 @@ import { agentLoopActions, codeActions, documentActions, structuredActions } fro
3
3
  import { AgentCodeLanguage, AgentMarkdownKind, AgentMessageCategory, AgentMessageRole, AgentStructuredKind } from './consts.js'
4
4
  import type { RecordValue } from './types.local.js'
5
5
  import type { AgentMessageClassificationInput, AgentMessagePresentation } from './types.js'
6
+ import type { AgentPresentationHelper } from './presentation/types.js'
7
+
8
+ export const createAgentPresentationHelper = (): AgentPresentationHelper => {
9
+ const asRecord = (value: unknown): RecordValue | undefined =>
10
+ value != null && typeof value === 'object' && !Array.isArray(value)
11
+ ? value as RecordValue
12
+ : undefined
13
+
14
+ const actionOf = (input: AgentMessageClassificationInput): string => input.action?.toLowerCase() ?? ''
15
+
16
+ const sourceOf = (input: AgentMessageClassificationInput): string =>
17
+ `${input.agent ?? ''} ${input.helper ?? ''}`.toLowerCase()
18
+
19
+ const contentOf = (input: AgentMessageClassificationInput): string => input.text?.trim() ?? ''
20
+
21
+ /**
22
+ * Source extraction is an internal context-reduction pass. Its terminal tool call contains only
23
+ * line ranges, which are useful to the coder but add no useful information to a person's journal.
24
+ */
25
+ const isAgentMessageHidden = (input: AgentMessageClassificationInput): boolean =>
26
+ actionOf(input) === 'source-extract'
27
+
28
+ /** Maps the attribution that reached the event boundary to the visual specialist family. */
29
+ const agentMessageRoleOf = (input: AgentMessageClassificationInput): AgentMessageRole => {
30
+ const source = sourceOf(input)
31
+ const action = actionOf(input)
32
+
33
+ if (action === 'arbitrary-modification' || source.includes('orchestrator')) return AgentMessageRole.Orchestrator
34
+ if (source.includes('fix')) return AgentMessageRole.Repair
35
+ if (source.includes('coder') || source.includes('developer') || codeActions.has(action)) return AgentMessageRole.Developer
36
+ if (source.includes('visual') || source.includes('ui-helper')) return AgentMessageRole.VisualDesign
37
+ if (source.includes('ux-')) return AgentMessageRole.Ux
38
+ if (source.includes('business') || source.includes('ba-') || source.includes('analysis') || source.includes('analyst')) return AgentMessageRole.Analytical
39
+ if (source.includes('product') || source.includes('naming')) return AgentMessageRole.Product
40
+ if (source.includes('architect') || source.includes('arch') || source.includes('layout-helper') ||
41
+ source.includes('api-helper') || source.includes('access-helper') || source.includes('datalayer-helper') ||
42
+ source.includes('domain') || source.includes('nav-helper') || source.includes('ui-com-helper') ||
43
+ source.includes('ui-state-helper')) return AgentMessageRole.Architect
44
+ return AgentMessageRole.Technical
45
+ }
6
46
 
7
- const asRecord = (value: unknown): RecordValue | undefined =>
8
- value != null && typeof value === 'object' && !Array.isArray(value)
9
- ? value as RecordValue
10
- : undefined
47
+ /** Pulls a schema argument out of LangChain's serialised tool-call shape. */
48
+ const agentToolCallArguments = (value: unknown): unknown => {
49
+ if (!Array.isArray(value) || value.length !== 1) return value
50
+ const call = asRecord(value[0])
51
+ return call?.args ?? value
52
+ }
11
53
 
12
- const actionOf = (input: AgentMessageClassificationInput): string => input.action?.toLowerCase() ?? ''
54
+ const structuredKindOf = (value: unknown): AgentStructuredKind | undefined => {
55
+ if (value == null) return undefined
13
56
 
14
- const sourceOf = (input: AgentMessageClassificationInput): string =>
15
- `${input.agent ?? ''} ${input.helper ?? ''}`.toLowerCase()
57
+ const toolArgs = agentToolCallArguments(value)
58
+ const object = asRecord(toolArgs)
59
+ if (object == null) {
60
+ if (Array.isArray(toolArgs)) return AgentStructuredKind.GenericList
61
+ return undefined
62
+ }
16
63
 
17
- const contentOf = (input: AgentMessageClassificationInput): string => input.text?.trim() ?? ''
64
+ // Checked ahead of the single-array shapes below: a scaffold plan carries its own `stories`
65
+ // array (so the StoryPlan check would otherwise swallow it), and a runtime decision straight
66
+ // from the MODEL never carries `actor`/`worker` — those are added only once the decision is
67
+ // persisted onto a StoryDesign — so requiring them here missed every live model call.
68
+ if ('identity' in object && 'guestHome' in object && 'areas' in object && 'stories' in object) {
69
+ return AgentStructuredKind.ScaffoldPlan
70
+ }
71
+ if (Array.isArray(object.jobs) && Array.isArray(object.agents) && 'kv' in object) {
72
+ return AgentStructuredKind.RuntimeDecision
73
+ }
18
74
 
19
- /**
20
- * Source extraction is an internal context-reduction pass. Its terminal tool call contains only
21
- * line ranges, which are useful to the coder but add no useful information to a person's journal.
22
- */
23
- export const isAgentMessageHidden = (input: AgentMessageClassificationInput): boolean =>
24
- actionOf(input) === 'source-extract'
25
-
26
- /** Maps the attribution that reached the event boundary to the visual specialist family. */
27
- export const agentMessageRoleOf = (input: AgentMessageClassificationInput): AgentMessageRole => {
28
- const source = sourceOf(input)
29
- const action = actionOf(input)
30
-
31
- if (action === 'arbitrary-modification' || source.includes('orchestrator')) return AgentMessageRole.Orchestrator
32
- if (source.includes('fix')) return AgentMessageRole.Repair
33
- if (source.includes('coder') || source.includes('developer') || codeActions.has(action)) return AgentMessageRole.Developer
34
- if (source.includes('visual') || source.includes('ui-helper')) return AgentMessageRole.VisualDesign
35
- if (source.includes('ux-')) return AgentMessageRole.Ux
36
- if (source.includes('business') || source.includes('ba-') || source.includes('analysis') || source.includes('analyst')) return AgentMessageRole.Analytical
37
- if (source.includes('product') || source.includes('naming')) return AgentMessageRole.Product
38
- if (source.includes('architect') || source.includes('arch') || source.includes('layout-helper') ||
39
- source.includes('api-helper') || source.includes('access-helper') || source.includes('datalayer-helper') ||
40
- source.includes('domain') || source.includes('nav-helper') || source.includes('ui-com-helper') ||
41
- source.includes('ui-state-helper')) return AgentMessageRole.Architect
42
- return AgentMessageRole.Technical
43
- }
75
+ if (Array.isArray(object.files)) return AgentStructuredKind.ArtifactSelection
76
+ if (Array.isArray(object.entities)) return AgentStructuredKind.EntitySelection
77
+ if (Array.isArray(object.stories)) return AgentStructuredKind.StoryPlan
78
+ if (Array.isArray(object.screens)) return AgentStructuredKind.ScreenPlan
79
+ if (Array.isArray(object.components)) return AgentStructuredKind.ComponentPlan
80
+ if (Array.isArray(object.transitions)) return AgentStructuredKind.TransitionPlan
81
+ if (Array.isArray(object.entries)) return AgentStructuredKind.EntrypointSelection
82
+ if (Array.isArray(object.candidates)) return AgentStructuredKind.CandidateRanking
83
+ if (Object.values(object).some(value => {
84
+ const entry = asRecord(value)
85
+ return entry != null && Array.isArray(entry.permissions) && 'level' in entry
86
+ })) return AgentStructuredKind.AccessPolicy
87
+ return AgentStructuredKind.GenericRecord
88
+ }
44
89
 
45
- /** Pulls a schema argument out of LangChain's serialised tool-call shape. */
46
- export const agentToolCallArguments = (value: unknown): unknown => {
47
- if (!Array.isArray(value) || value.length !== 1) return value
48
- const call = asRecord(value[0])
49
- return call?.args ?? value
50
- }
90
+ const decisionAction = (action: string): boolean =>
91
+ action.startsWith('should-') || action.startsWith('is-') || action.includes('blueprint-case') || action.includes('choose-case')
51
92
 
52
- const structuredKindOf = (value: unknown): AgentStructuredKind | undefined => {
53
- if (value == null) return undefined
93
+ const fileExtensionLanguage = (path: string): AgentCodeLanguage => {
94
+ const name = path.toLowerCase().split('?')[0]
95
+ if (/\.(tsx|jsx)$/.test(name)) return AgentCodeLanguage.ReactTsx
96
+ if (/\.css$/.test(name)) return AgentCodeLanguage.Css
97
+ if (/\.(ts|mts|cts|js|mjs|cjs)$/.test(name)) return AgentCodeLanguage.TypeScript
98
+ if (/\.json$/.test(name)) return AgentCodeLanguage.Json
99
+ return AgentCodeLanguage.Other
100
+ }
54
101
 
55
- const toolArgs = agentToolCallArguments(value)
56
- const object = asRecord(toolArgs)
57
- if (object == null) {
58
- if (Array.isArray(toolArgs)) return AgentStructuredKind.GenericList
59
- return undefined
102
+ /** Finds the language of a unified diff from its destination (or source) file path. */
103
+ const agentDiffLanguageOf = (text: string): AgentCodeLanguage => {
104
+ const match = text.match(/^\+\+\+\s+(?:b\/)?(.+)$/m) ?? text.match(/^---\s+(?:a\/)?(.+)$/m)
105
+ return match == null ? AgentCodeLanguage.Other : fileExtensionLanguage(match[1])
60
106
  }
61
107
 
62
- // Checked ahead of the single-array shapes below: a scaffold plan carries its own `stories`
63
- // array (so the StoryPlan check would otherwise swallow it), and a runtime decision straight
64
- // from the MODEL never carries `actor`/`worker` — those are added only once the decision is
65
- // persisted onto a StoryDesign — so requiring them here missed every live model call.
66
- if ('identity' in object && 'guestHome' in object && 'areas' in object && 'stories' in object) {
67
- return AgentStructuredKind.ScaffoldPlan
108
+ const fencedLanguageOf = (text: string): AgentCodeLanguage | undefined => {
109
+ const match = text.match(/^```([\w+-]+)/m)
110
+ const language = match?.[1]?.toLowerCase()
111
+ if (language == null) return undefined
112
+ if (['tsx', 'jsx', 'react'].includes(language)) return AgentCodeLanguage.ReactTsx
113
+ if (language === 'css') return AgentCodeLanguage.Css
114
+ if (['ts', 'typescript', 'js', 'javascript'].includes(language)) return AgentCodeLanguage.TypeScript
115
+ if (language === 'json') return AgentCodeLanguage.Json
116
+ return AgentCodeLanguage.Other
68
117
  }
69
- if (Array.isArray(object.jobs) && Array.isArray(object.agents) && 'kv' in object) {
70
- return AgentStructuredKind.RuntimeDecision
118
+
119
+ /** Conservative code detection; prose with one identifier remains plain text. */
120
+ const agentCodeLanguageOf = (text: string): AgentCodeLanguage => {
121
+ const content = text.trim().replace(/^```[\w+-]*\n?|\n?```$/g, '')
122
+ const fenced = fencedLanguageOf(text)
123
+ if (fenced != null) return fenced
124
+ if (content === '') return AgentCodeLanguage.Other
125
+ try {
126
+ JSON.parse(content)
127
+ if (/^[{[]/.test(content)) return AgentCodeLanguage.Json
128
+ } catch {
129
+ // The remaining heuristics deliberately require source-like syntax.
130
+ }
131
+ if (/<[A-Za-z][\w.:-]*(?:\s[^>]*)?\/>|<[A-Za-z][\w.:-]*(?:\s[^>]*)?>/.test(content) &&
132
+ /\b(import|export|const|function|return)\b/.test(content)) return AgentCodeLanguage.ReactTsx
133
+ if (/(^|\n)\s*(?:[.#][\w-]+|[a-z][\w-]*(?:\[[^\]]+\])?)\s*\{[^}]*:[^}]*\}/.test(content)) {
134
+ return AgentCodeLanguage.Css
135
+ }
136
+ if (/\b(import|export|interface|type|const|let|function|class)\b/.test(content) &&
137
+ /[;{}]|=>/.test(content)) return AgentCodeLanguage.TypeScript
138
+ return AgentCodeLanguage.Other
71
139
  }
72
140
 
73
- if (Array.isArray(object.files)) return AgentStructuredKind.ArtifactSelection
74
- if (Array.isArray(object.entities)) return AgentStructuredKind.EntitySelection
75
- if (Array.isArray(object.stories)) return AgentStructuredKind.StoryPlan
76
- if (Array.isArray(object.screens)) return AgentStructuredKind.ScreenPlan
77
- if (Array.isArray(object.components)) return AgentStructuredKind.ComponentPlan
78
- if (Array.isArray(object.transitions)) return AgentStructuredKind.TransitionPlan
79
- if (Array.isArray(object.entries)) return AgentStructuredKind.EntrypointSelection
80
- if (Array.isArray(object.candidates)) return AgentStructuredKind.CandidateRanking
81
- if (Object.values(object).some(value => {
82
- const entry = asRecord(value)
83
- return entry != null && Array.isArray(entry.permissions) && 'level' in entry
84
- })) return AgentStructuredKind.AccessPolicy
85
- return AgentStructuredKind.GenericRecord
86
- }
141
+ const isUnifiedDiff = (text: string): boolean =>
142
+ /^---\s+.+\n\+\+\+\s+.+/m.test(text) || (/^@@\s+[-+]/m.test(text) && /^(?:\+|-)[^+-]/m.test(text))
87
143
 
88
- const decisionAction = (action: string): boolean =>
89
- action.startsWith('should-') || action.startsWith('is-') || action.includes('blueprint-case') || action.includes('choose-case')
144
+ const markdownKindOf = (text: string): AgentMarkdownKind | undefined => {
145
+ if (/^#{1,6}\s+/m.test(text) || /^>\s+/m.test(text) || /^\|.+\|\s*$/m.test(text)) {
146
+ return AgentMarkdownKind.Documentation
147
+ }
148
+ const listItems = text.match(/^\s*(?:[-*+]\s+|\d+[.)]\s+)/gm)?.length ?? 0
149
+ return listItems >= 2 ? AgentMarkdownKind.Documentation : undefined
150
+ }
90
151
 
91
- const fileExtensionLanguage = (path: string): AgentCodeLanguage => {
92
- const name = path.toLowerCase().split('?')[0]
93
- if (/\.(tsx|jsx)$/.test(name)) return AgentCodeLanguage.ReactTsx
94
- if (/\.css$/.test(name)) return AgentCodeLanguage.Css
95
- if (/\.(ts|mts|cts|js|mjs|cjs)$/.test(name)) return AgentCodeLanguage.TypeScript
96
- if (/\.json$/.test(name)) return AgentCodeLanguage.Json
97
- return AgentCodeLanguage.Other
98
- }
152
+ const isGenericStructure = (kind: AgentStructuredKind | undefined): boolean =>
153
+ kind == null || kind === AgentStructuredKind.GenericRecord || kind === AgentStructuredKind.GenericList ||
154
+ kind === AgentStructuredKind.GenericValue
155
+
156
+ const classifyAgentMessage = (input: AgentMessageClassificationInput): AgentMessagePresentation => {
157
+ const role = agentMessageRoleOf(input)
158
+ const action = actionOf(input)
159
+ const text = contentOf(input)
160
+ const structure = structuredKindOf(input.value)
161
+
162
+ if (input.outputType === 'tool_calls') {
163
+ // A single pinned-schema call resolves to its own card; everything else — several calls in
164
+ // one turn, an unconstrained agent-loop action, or a shape too generic to be informative —
165
+ // is a tool call, not a schema result.
166
+ const isMultiCall = Array.isArray(input.value) && input.value.length > 1
167
+ const isToolCalls = isMultiCall || agentLoopActions.has(action) || isGenericStructure(structure)
168
+ return {
169
+ category: AgentMessageCategory.Structured,
170
+ structure: isToolCalls ? AgentStructuredKind.ToolCalls : structure!,
171
+ role,
172
+ }
173
+ }
174
+ if (structure != null) return { category: AgentMessageCategory.Structured, structure, role }
175
+ const actionStructure = structuredActions[action]
176
+ if (actionStructure != null) return { category: AgentMessageCategory.Structured, structure: actionStructure, role }
177
+ if (decisionAction(action)) return { category: AgentMessageCategory.Structured, structure: AgentStructuredKind.Decision, role }
178
+ if (isUnifiedDiff(text) || action === 'update-code') {
179
+ return { category: AgentMessageCategory.Diff, language: agentDiffLanguageOf(text), role }
180
+ }
181
+ if (codeActions.has(action) || fencedLanguageOf(text) != null || agentCodeLanguageOf(text) !== AgentCodeLanguage.Other) {
182
+ return { category: AgentMessageCategory.Code, language: agentCodeLanguageOf(text), role }
183
+ }
184
+ const document = documentActions[action] ?? markdownKindOf(text)
185
+ if (document != null) return { category: AgentMessageCategory.Markdown, document, role }
186
+ if (input.value != null) {
187
+ return {
188
+ category: AgentMessageCategory.Structured,
189
+ structure: Array.isArray(input.value) ? AgentStructuredKind.GenericList : AgentStructuredKind.GenericValue,
190
+ role,
191
+ }
192
+ }
193
+ return { category: AgentMessageCategory.Plain, role }
194
+ }
99
195
 
100
- /** Finds the language of a unified diff from its destination (or source) file path. */
101
- export const agentDiffLanguageOf = (text: string): AgentCodeLanguage => {
102
- const match = text.match(/^\+\+\+\s+(?:b\/)?(.+)$/m) ?? text.match(/^---\s+(?:a\/)?(.+)$/m)
103
- return match == null ? AgentCodeLanguage.Other : fileExtensionLanguage(match[1])
196
+ return {
197
+ isAgentMessageHidden, agentMessageRoleOf, agentToolCallArguments, agentDiffLanguageOf, agentCodeLanguageOf,
198
+ isUnifiedDiff, classifyAgentMessage,
199
+ }
104
200
  }
105
201
 
106
- const fencedLanguageOf = (text: string): AgentCodeLanguage | undefined => {
107
- const match = text.match(/^```([\w+-]+)/m)
108
- const language = match?.[1]?.toLowerCase()
109
- if (language == null) return undefined
110
- if (['tsx', 'jsx', 'react'].includes(language)) return AgentCodeLanguage.ReactTsx
111
- if (language === 'css') return AgentCodeLanguage.Css
112
- if (['ts', 'typescript', 'js', 'javascript'].includes(language)) return AgentCodeLanguage.TypeScript
113
- if (language === 'json') return AgentCodeLanguage.Json
114
- return AgentCodeLanguage.Other
115
- }
202
+ export const agentPresentationHelper = createAgentPresentationHelper()
116
203
 
117
- /** Conservative code detection; prose with one identifier remains plain text. */
118
- export const agentCodeLanguageOf = (text: string): AgentCodeLanguage => {
119
- const content = text.trim().replace(/^```[\w+-]*\n?|\n?```$/g, '')
120
- const fenced = fencedLanguageOf(text)
121
- if (fenced != null) return fenced
122
- if (content === '') return AgentCodeLanguage.Other
123
- try {
124
- JSON.parse(content)
125
- if (/^[{[]/.test(content)) return AgentCodeLanguage.Json
126
- } catch {
127
- // The remaining heuristics deliberately require source-like syntax.
128
- }
129
- if (/<[A-Za-z][\w.:-]*(?:\s[^>]*)?\/>|<[A-Za-z][\w.:-]*(?:\s[^>]*)?>/.test(content) &&
130
- /\b(import|export|const|function|return)\b/.test(content)) return AgentCodeLanguage.ReactTsx
131
- if (/(^|\n)\s*(?:[.#][\w-]+|[a-z][\w-]*(?:\[[^\]]+\])?)\s*\{[^}]*:[^}]*\}/.test(content)) {
132
- return AgentCodeLanguage.Css
133
- }
134
- if (/\b(import|export|interface|type|const|let|function|class)\b/.test(content) &&
135
- /[;{}]|=>/.test(content)) return AgentCodeLanguage.TypeScript
136
- return AgentCodeLanguage.Other
137
- }
204
+ /** @deprecated compat:factory-refactor — use `agentPresentationHelper.isAgentMessageHidden(…)` */
205
+ export const isAgentMessageHidden = (input: AgentMessageClassificationInput): boolean =>
206
+ agentPresentationHelper.isAgentMessageHidden(input)
138
207
 
139
- export const isUnifiedDiff = (text: string): boolean =>
140
- /^---\s+.+\n\+\+\+\s+.+/m.test(text) || (/^@@\s+[-+]/m.test(text) && /^(?:\+|-)[^+-]/m.test(text))
208
+ /** @deprecated compat:factory-refactor — use `agentPresentationHelper.agentMessageRoleOf(…)` */
209
+ export const agentMessageRoleOf = (input: AgentMessageClassificationInput): AgentMessageRole =>
210
+ agentPresentationHelper.agentMessageRoleOf(input)
141
211
 
142
- const markdownKindOf = (text: string): AgentMarkdownKind | undefined => {
143
- if (/^#{1,6}\s+/m.test(text) || /^>\s+/m.test(text) || /^\|.+\|\s*$/m.test(text)) {
144
- return AgentMarkdownKind.Documentation
145
- }
146
- const listItems = text.match(/^\s*(?:[-*+]\s+|\d+[.)]\s+)/gm)?.length ?? 0
147
- return listItems >= 2 ? AgentMarkdownKind.Documentation : undefined
148
- }
212
+ /** @deprecated compat:factory-refactor — use `agentPresentationHelper.agentToolCallArguments(…)` */
213
+ export const agentToolCallArguments = (value: unknown): unknown => agentPresentationHelper.agentToolCallArguments(value)
149
214
 
150
- const isGenericStructure = (kind: AgentStructuredKind | undefined): boolean =>
151
- kind == null || kind === AgentStructuredKind.GenericRecord || kind === AgentStructuredKind.GenericList ||
152
- kind === AgentStructuredKind.GenericValue
153
-
154
- export const classifyAgentMessage = (input: AgentMessageClassificationInput): AgentMessagePresentation => {
155
- const role = agentMessageRoleOf(input)
156
- const action = actionOf(input)
157
- const text = contentOf(input)
158
- const structure = structuredKindOf(input.value)
159
-
160
- if (input.outputType === 'tool_calls') {
161
- // A single pinned-schema call resolves to its own card; everything else — several calls in
162
- // one turn, an unconstrained agent-loop action, or a shape too generic to be informative —
163
- // is a tool call, not a schema result.
164
- const isMultiCall = Array.isArray(input.value) && input.value.length > 1
165
- const isToolCalls = isMultiCall || agentLoopActions.has(action) || isGenericStructure(structure)
166
- return {
167
- category: AgentMessageCategory.Structured,
168
- structure: isToolCalls ? AgentStructuredKind.ToolCalls : structure!,
169
- role,
170
- }
171
- }
172
- if (structure != null) return { category: AgentMessageCategory.Structured, structure, role }
173
- const actionStructure = structuredActions[action]
174
- if (actionStructure != null) return { category: AgentMessageCategory.Structured, structure: actionStructure, role }
175
- if (decisionAction(action)) return { category: AgentMessageCategory.Structured, structure: AgentStructuredKind.Decision, role }
176
- if (isUnifiedDiff(text) || action === 'update-code') {
177
- return { category: AgentMessageCategory.Diff, language: agentDiffLanguageOf(text), role }
178
- }
179
- if (codeActions.has(action) || fencedLanguageOf(text) != null || agentCodeLanguageOf(text) !== AgentCodeLanguage.Other) {
180
- return { category: AgentMessageCategory.Code, language: agentCodeLanguageOf(text), role }
181
- }
182
- const document = documentActions[action] ?? markdownKindOf(text)
183
- if (document != null) return { category: AgentMessageCategory.Markdown, document, role }
184
- if (input.value != null) {
185
- return {
186
- category: AgentMessageCategory.Structured,
187
- structure: Array.isArray(input.value) ? AgentStructuredKind.GenericList : AgentStructuredKind.GenericValue,
188
- role,
189
- }
190
- }
191
- return { category: AgentMessageCategory.Plain, role }
192
- }
215
+ /** @deprecated compat:factory-refactor — use `agentPresentationHelper.agentDiffLanguageOf(…)` */
216
+ export const agentDiffLanguageOf = (text: string): AgentCodeLanguage => agentPresentationHelper.agentDiffLanguageOf(text)
217
+
218
+ /** @deprecated compat:factory-refactor — use `agentPresentationHelper.agentCodeLanguageOf(…)` */
219
+ export const agentCodeLanguageOf = (text: string): AgentCodeLanguage => agentPresentationHelper.agentCodeLanguageOf(text)
220
+
221
+ /** @deprecated compat:factory-refactor — use `agentPresentationHelper.isUnifiedDiff(…)` */
222
+ export const isUnifiedDiff = (text: string): boolean => agentPresentationHelper.isUnifiedDiff(text)
223
+
224
+ /** @deprecated compat:factory-refactor — use `agentPresentationHelper.classifyAgentMessage(…)` */
225
+ export const classifyAgentMessage = (input: AgentMessageClassificationInput): AgentMessagePresentation =>
226
+ agentPresentationHelper.classifyAgentMessage(input)
@@ -1 +1,3 @@
1
- export type RecordValue = Record<string, unknown>
1
+ export interface RecordValue {
2
+ [key: string]: unknown
3
+ }
@@ -1,4 +1,5 @@
1
1
  export type * from './types.js'
2
+ export type * from './tenancy/types.js'
2
3
 
3
4
  export * from './consts.js'
4
5
  export * from './tenancy.js'