@owlmeans/viable-common 0.0.4

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 (453) hide show
  1. package/README.md +68 -0
  2. package/agent-meta/manifest.json +16 -0
  3. package/agent-meta/skills/viable-common/SKILL.md +179 -0
  4. package/build/agent/index.d.ts +4 -0
  5. package/build/agent/index.d.ts.map +1 -0
  6. package/build/agent/index.js +3 -0
  7. package/build/agent/index.js.map +1 -0
  8. package/build/agent/memory.d.ts +12 -0
  9. package/build/agent/memory.d.ts.map +1 -0
  10. package/build/agent/memory.js +11 -0
  11. package/build/agent/memory.js.map +1 -0
  12. package/build/agent/spectator/consts.d.ts +9 -0
  13. package/build/agent/spectator/consts.d.ts.map +1 -0
  14. package/build/agent/spectator/consts.js +10 -0
  15. package/build/agent/spectator/consts.js.map +1 -0
  16. package/build/agent/spectator/index.d.ts +3 -0
  17. package/build/agent/spectator/index.d.ts.map +1 -0
  18. package/build/agent/spectator/index.js +2 -0
  19. package/build/agent/spectator/index.js.map +1 -0
  20. package/build/agent/spectator/types.d.ts +13 -0
  21. package/build/agent/spectator/types.d.ts.map +1 -0
  22. package/build/agent/spectator/types.js +2 -0
  23. package/build/agent/spectator/types.js.map +1 -0
  24. package/build/agent/types.d.ts +10 -0
  25. package/build/agent/types.d.ts.map +1 -0
  26. package/build/agent/types.js +2 -0
  27. package/build/agent/types.js.map +1 -0
  28. package/build/areas/consts.d.ts +88 -0
  29. package/build/areas/consts.d.ts.map +1 -0
  30. package/build/areas/consts.js +106 -0
  31. package/build/areas/consts.js.map +1 -0
  32. package/build/areas/index.d.ts +3 -0
  33. package/build/areas/index.d.ts.map +1 -0
  34. package/build/areas/index.js +2 -0
  35. package/build/areas/index.js.map +1 -0
  36. package/build/areas/types.d.ts +28 -0
  37. package/build/areas/types.d.ts.map +1 -0
  38. package/build/areas/types.js +2 -0
  39. package/build/areas/types.js.map +1 -0
  40. package/build/ba/consts.d.ts +38 -0
  41. package/build/ba/consts.d.ts.map +1 -0
  42. package/build/ba/consts.js +41 -0
  43. package/build/ba/consts.js.map +1 -0
  44. package/build/ba/helpers.d.ts +41 -0
  45. package/build/ba/helpers.d.ts.map +1 -0
  46. package/build/ba/helpers.js +79 -0
  47. package/build/ba/helpers.js.map +1 -0
  48. package/build/ba/index.d.ts +5 -0
  49. package/build/ba/index.d.ts.map +1 -0
  50. package/build/ba/index.js +4 -0
  51. package/build/ba/index.js.map +1 -0
  52. package/build/ba/schemas.d.ts +13 -0
  53. package/build/ba/schemas.d.ts.map +1 -0
  54. package/build/ba/schemas.js +181 -0
  55. package/build/ba/schemas.js.map +1 -0
  56. package/build/ba/types.d.ts +113 -0
  57. package/build/ba/types.d.ts.map +1 -0
  58. package/build/ba/types.js +2 -0
  59. package/build/ba/types.js.map +1 -0
  60. package/build/blueprint/case.d.ts +73 -0
  61. package/build/blueprint/case.d.ts.map +1 -0
  62. package/build/blueprint/case.js +244 -0
  63. package/build/blueprint/case.js.map +1 -0
  64. package/build/blueprint/consts.d.ts +11 -0
  65. package/build/blueprint/consts.d.ts.map +1 -0
  66. package/build/blueprint/consts.js +11 -0
  67. package/build/blueprint/consts.js.map +1 -0
  68. package/build/blueprint/index.d.ts +6 -0
  69. package/build/blueprint/index.d.ts.map +1 -0
  70. package/build/blueprint/index.js +6 -0
  71. package/build/blueprint/index.js.map +1 -0
  72. package/build/blueprint/resolve.d.ts +51 -0
  73. package/build/blueprint/resolve.d.ts.map +1 -0
  74. package/build/blueprint/resolve.js +108 -0
  75. package/build/blueprint/resolve.js.map +1 -0
  76. package/build/blueprint/schemas.d.ts +41 -0
  77. package/build/blueprint/schemas.d.ts.map +1 -0
  78. package/build/blueprint/schemas.js +27 -0
  79. package/build/blueprint/schemas.js.map +1 -0
  80. package/build/blueprint/types.d.ts +186 -0
  81. package/build/blueprint/types.d.ts.map +1 -0
  82. package/build/blueprint/types.js +32 -0
  83. package/build/blueprint/types.js.map +1 -0
  84. package/build/branding.d.ts +19 -0
  85. package/build/branding.d.ts.map +1 -0
  86. package/build/branding.js +32 -0
  87. package/build/branding.js.map +1 -0
  88. package/build/connect/consts.d.ts +378 -0
  89. package/build/connect/consts.d.ts.map +1 -0
  90. package/build/connect/consts.js +425 -0
  91. package/build/connect/consts.js.map +1 -0
  92. package/build/connect/entrypoints.d.ts +41 -0
  93. package/build/connect/entrypoints.d.ts.map +1 -0
  94. package/build/connect/entrypoints.js +141 -0
  95. package/build/connect/entrypoints.js.map +1 -0
  96. package/build/connect/errors.d.ts +50 -0
  97. package/build/connect/errors.d.ts.map +1 -0
  98. package/build/connect/errors.js +77 -0
  99. package/build/connect/errors.js.map +1 -0
  100. package/build/connect/index.d.ts +8 -0
  101. package/build/connect/index.d.ts.map +1 -0
  102. package/build/connect/index.js +6 -0
  103. package/build/connect/index.js.map +1 -0
  104. package/build/connect/ops.d.ts +192 -0
  105. package/build/connect/ops.d.ts.map +1 -0
  106. package/build/connect/ops.js +2 -0
  107. package/build/connect/ops.js.map +1 -0
  108. package/build/connect/references.d.ts +194 -0
  109. package/build/connect/references.d.ts.map +1 -0
  110. package/build/connect/references.js +62 -0
  111. package/build/connect/references.js.map +1 -0
  112. package/build/connect/schemas.d.ts +59 -0
  113. package/build/connect/schemas.d.ts.map +1 -0
  114. package/build/connect/schemas.js +346 -0
  115. package/build/connect/schemas.js.map +1 -0
  116. package/build/connect/types.d.ts +428 -0
  117. package/build/connect/types.d.ts.map +1 -0
  118. package/build/connect/types.js +2 -0
  119. package/build/connect/types.js.map +1 -0
  120. package/build/consts.d.ts +9 -0
  121. package/build/consts.d.ts.map +1 -0
  122. package/build/consts.js +31 -0
  123. package/build/consts.js.map +1 -0
  124. package/build/convert/consts.d.ts +539 -0
  125. package/build/convert/consts.d.ts.map +1 -0
  126. package/build/convert/consts.js +630 -0
  127. package/build/convert/consts.js.map +1 -0
  128. package/build/convert/helpers.d.ts +91 -0
  129. package/build/convert/helpers.d.ts.map +1 -0
  130. package/build/convert/helpers.js +301 -0
  131. package/build/convert/helpers.js.map +1 -0
  132. package/build/convert/index.d.ts +11 -0
  133. package/build/convert/index.d.ts.map +1 -0
  134. package/build/convert/index.js +4 -0
  135. package/build/convert/index.js.map +1 -0
  136. package/build/convert/schemas.d.ts +62 -0
  137. package/build/convert/schemas.d.ts.map +1 -0
  138. package/build/convert/schemas.js +626 -0
  139. package/build/convert/schemas.js.map +1 -0
  140. package/build/convert/types.d.ts +683 -0
  141. package/build/convert/types.d.ts.map +1 -0
  142. package/build/convert/types.js +2 -0
  143. package/build/convert/types.js.map +1 -0
  144. package/build/design/consts.d.ts +25 -0
  145. package/build/design/consts.d.ts.map +1 -0
  146. package/build/design/consts.js +26 -0
  147. package/build/design/consts.js.map +1 -0
  148. package/build/design/helpers.d.ts +60 -0
  149. package/build/design/helpers.d.ts.map +1 -0
  150. package/build/design/helpers.js +221 -0
  151. package/build/design/helpers.js.map +1 -0
  152. package/build/design/index.d.ts +6 -0
  153. package/build/design/index.d.ts.map +1 -0
  154. package/build/design/index.js +5 -0
  155. package/build/design/index.js.map +1 -0
  156. package/build/design/runtime.d.ts +126 -0
  157. package/build/design/runtime.d.ts.map +1 -0
  158. package/build/design/runtime.js +65 -0
  159. package/build/design/runtime.js.map +1 -0
  160. package/build/design/schemas.d.ts +21 -0
  161. package/build/design/schemas.d.ts.map +1 -0
  162. package/build/design/schemas.js +369 -0
  163. package/build/design/schemas.js.map +1 -0
  164. package/build/design/types.d.ts +199 -0
  165. package/build/design/types.d.ts.map +1 -0
  166. package/build/design/types.js +2 -0
  167. package/build/design/types.js.map +1 -0
  168. package/build/dev/consts.d.ts +32 -0
  169. package/build/dev/consts.d.ts.map +1 -0
  170. package/build/dev/consts.js +33 -0
  171. package/build/dev/consts.js.map +1 -0
  172. package/build/dev/index.d.ts +4 -0
  173. package/build/dev/index.d.ts.map +1 -0
  174. package/build/dev/index.js +3 -0
  175. package/build/dev/index.js.map +1 -0
  176. package/build/dev/schemas.d.ts +15 -0
  177. package/build/dev/schemas.d.ts.map +1 -0
  178. package/build/dev/schemas.js +116 -0
  179. package/build/dev/schemas.js.map +1 -0
  180. package/build/dev/types.d.ts +42 -0
  181. package/build/dev/types.d.ts.map +1 -0
  182. package/build/dev/types.js +2 -0
  183. package/build/dev/types.js.map +1 -0
  184. package/build/execution/consts.d.ts +36 -0
  185. package/build/execution/consts.d.ts.map +1 -0
  186. package/build/execution/consts.js +37 -0
  187. package/build/execution/consts.js.map +1 -0
  188. package/build/execution/index.d.ts +3 -0
  189. package/build/execution/index.d.ts.map +1 -0
  190. package/build/execution/index.js +2 -0
  191. package/build/execution/index.js.map +1 -0
  192. package/build/execution/types.d.ts +50 -0
  193. package/build/execution/types.d.ts.map +1 -0
  194. package/build/execution/types.js +2 -0
  195. package/build/execution/types.js.map +1 -0
  196. package/build/index.d.ts +22 -0
  197. package/build/index.d.ts.map +1 -0
  198. package/build/index.js +21 -0
  199. package/build/index.js.map +1 -0
  200. package/build/integrity/consts.d.ts +226 -0
  201. package/build/integrity/consts.d.ts.map +1 -0
  202. package/build/integrity/consts.js +401 -0
  203. package/build/integrity/consts.js.map +1 -0
  204. package/build/integrity/index.d.ts +4 -0
  205. package/build/integrity/index.d.ts.map +1 -0
  206. package/build/integrity/index.js +3 -0
  207. package/build/integrity/index.js.map +1 -0
  208. package/build/integrity/types.d.ts +35 -0
  209. package/build/integrity/types.d.ts.map +1 -0
  210. package/build/integrity/types.js +2 -0
  211. package/build/integrity/types.js.map +1 -0
  212. package/build/integrity/verify.d.ts +23 -0
  213. package/build/integrity/verify.d.ts.map +1 -0
  214. package/build/integrity/verify.js +198 -0
  215. package/build/integrity/verify.js.map +1 -0
  216. package/build/metadata/consts.d.ts +101 -0
  217. package/build/metadata/consts.d.ts.map +1 -0
  218. package/build/metadata/consts.js +104 -0
  219. package/build/metadata/consts.js.map +1 -0
  220. package/build/metadata/index.d.ts +3 -0
  221. package/build/metadata/index.d.ts.map +1 -0
  222. package/build/metadata/index.js +3 -0
  223. package/build/metadata/index.js.map +1 -0
  224. package/build/metadata/types.d.ts +286 -0
  225. package/build/metadata/types.d.ts.map +1 -0
  226. package/build/metadata/types.js +39 -0
  227. package/build/metadata/types.js.map +1 -0
  228. package/build/moderation/consts.d.ts +58 -0
  229. package/build/moderation/consts.d.ts.map +1 -0
  230. package/build/moderation/consts.js +60 -0
  231. package/build/moderation/consts.js.map +1 -0
  232. package/build/moderation/index.d.ts +5 -0
  233. package/build/moderation/index.d.ts.map +1 -0
  234. package/build/moderation/index.js +4 -0
  235. package/build/moderation/index.js.map +1 -0
  236. package/build/moderation/schemas.d.ts +19 -0
  237. package/build/moderation/schemas.d.ts.map +1 -0
  238. package/build/moderation/schemas.js +26 -0
  239. package/build/moderation/schemas.js.map +1 -0
  240. package/build/moderation/types.d.ts +64 -0
  241. package/build/moderation/types.d.ts.map +1 -0
  242. package/build/moderation/types.js +2 -0
  243. package/build/moderation/types.js.map +1 -0
  244. package/build/moderation/utils.d.ts +21 -0
  245. package/build/moderation/utils.d.ts.map +1 -0
  246. package/build/moderation/utils.js +31 -0
  247. package/build/moderation/utils.js.map +1 -0
  248. package/build/preview/consts.d.ts +10 -0
  249. package/build/preview/consts.d.ts.map +1 -0
  250. package/build/preview/consts.js +11 -0
  251. package/build/preview/consts.js.map +1 -0
  252. package/build/preview/index.d.ts +3 -0
  253. package/build/preview/index.d.ts.map +1 -0
  254. package/build/preview/index.js +2 -0
  255. package/build/preview/index.js.map +1 -0
  256. package/build/preview/types.d.ts +60 -0
  257. package/build/preview/types.d.ts.map +1 -0
  258. package/build/preview/types.js +2 -0
  259. package/build/preview/types.js.map +1 -0
  260. package/build/scaffold/consts.d.ts +25 -0
  261. package/build/scaffold/consts.d.ts.map +1 -0
  262. package/build/scaffold/consts.js +26 -0
  263. package/build/scaffold/consts.js.map +1 -0
  264. package/build/scaffold/helpers.d.ts +35 -0
  265. package/build/scaffold/helpers.d.ts.map +1 -0
  266. package/build/scaffold/helpers.js +54 -0
  267. package/build/scaffold/helpers.js.map +1 -0
  268. package/build/scaffold/index.d.ts +5 -0
  269. package/build/scaffold/index.d.ts.map +1 -0
  270. package/build/scaffold/index.js +4 -0
  271. package/build/scaffold/index.js.map +1 -0
  272. package/build/scaffold/schemas.d.ts +5 -0
  273. package/build/scaffold/schemas.d.ts.map +1 -0
  274. package/build/scaffold/schemas.js +273 -0
  275. package/build/scaffold/schemas.js.map +1 -0
  276. package/build/scaffold/types.d.ts +144 -0
  277. package/build/scaffold/types.d.ts.map +1 -0
  278. package/build/scaffold/types.js +2 -0
  279. package/build/scaffold/types.js.map +1 -0
  280. package/build/skills/catalogue.d.ts +47 -0
  281. package/build/skills/catalogue.d.ts.map +1 -0
  282. package/build/skills/catalogue.js +1566 -0
  283. package/build/skills/catalogue.js.map +1 -0
  284. package/build/skills/consts.d.ts +104 -0
  285. package/build/skills/consts.d.ts.map +1 -0
  286. package/build/skills/consts.js +170 -0
  287. package/build/skills/consts.js.map +1 -0
  288. package/build/skills/index.d.ts +4 -0
  289. package/build/skills/index.d.ts.map +1 -0
  290. package/build/skills/index.js +4 -0
  291. package/build/skills/index.js.map +1 -0
  292. package/build/skills/roles.d.ts +52 -0
  293. package/build/skills/roles.d.ts.map +1 -0
  294. package/build/skills/roles.js +256 -0
  295. package/build/skills/roles.js.map +1 -0
  296. package/build/slot/consts.d.ts +305 -0
  297. package/build/slot/consts.d.ts.map +1 -0
  298. package/build/slot/consts.js +376 -0
  299. package/build/slot/consts.js.map +1 -0
  300. package/build/slot/helpers.d.ts +25 -0
  301. package/build/slot/helpers.d.ts.map +1 -0
  302. package/build/slot/helpers.js +27 -0
  303. package/build/slot/helpers.js.map +1 -0
  304. package/build/slot/index.d.ts +6 -0
  305. package/build/slot/index.d.ts.map +1 -0
  306. package/build/slot/index.js +5 -0
  307. package/build/slot/index.js.map +1 -0
  308. package/build/slot/layout.d.ts +72 -0
  309. package/build/slot/layout.d.ts.map +1 -0
  310. package/build/slot/layout.js +82 -0
  311. package/build/slot/layout.js.map +1 -0
  312. package/build/slot/schemas.d.ts +12 -0
  313. package/build/slot/schemas.d.ts.map +1 -0
  314. package/build/slot/schemas.js +43 -0
  315. package/build/slot/schemas.js.map +1 -0
  316. package/build/slot/types.d.ts +147 -0
  317. package/build/slot/types.d.ts.map +1 -0
  318. package/build/slot/types.js +2 -0
  319. package/build/slot/types.js.map +1 -0
  320. package/build/topology/card.d.ts +23 -0
  321. package/build/topology/card.d.ts.map +1 -0
  322. package/build/topology/card.js +95 -0
  323. package/build/topology/card.js.map +1 -0
  324. package/build/topology/consts.d.ts +32 -0
  325. package/build/topology/consts.d.ts.map +1 -0
  326. package/build/topology/consts.js +55 -0
  327. package/build/topology/consts.js.map +1 -0
  328. package/build/topology/helpers.d.ts +44 -0
  329. package/build/topology/helpers.d.ts.map +1 -0
  330. package/build/topology/helpers.js +112 -0
  331. package/build/topology/helpers.js.map +1 -0
  332. package/build/topology/index.d.ts +5 -0
  333. package/build/topology/index.d.ts.map +1 -0
  334. package/build/topology/index.js +4 -0
  335. package/build/topology/index.js.map +1 -0
  336. package/build/topology/types.d.ts +83 -0
  337. package/build/topology/types.d.ts.map +1 -0
  338. package/build/topology/types.js +2 -0
  339. package/build/topology/types.js.map +1 -0
  340. package/build/types.d.ts +88 -0
  341. package/build/types.d.ts.map +1 -0
  342. package/build/types.js +2 -0
  343. package/build/types.js.map +1 -0
  344. package/build/ux/consts.d.ts +5 -0
  345. package/build/ux/consts.d.ts.map +1 -0
  346. package/build/ux/consts.js +6 -0
  347. package/build/ux/consts.js.map +1 -0
  348. package/build/ux/index.d.ts +4 -0
  349. package/build/ux/index.d.ts.map +1 -0
  350. package/build/ux/index.js +3 -0
  351. package/build/ux/index.js.map +1 -0
  352. package/build/ux/schemas.d.ts +8 -0
  353. package/build/ux/schemas.d.ts.map +1 -0
  354. package/build/ux/schemas.js +91 -0
  355. package/build/ux/schemas.js.map +1 -0
  356. package/build/ux/types.d.ts +21 -0
  357. package/build/ux/types.d.ts.map +1 -0
  358. package/build/ux/types.js +2 -0
  359. package/build/ux/types.js.map +1 -0
  360. package/package.json +71 -0
  361. package/src/agent/index.ts +4 -0
  362. package/src/agent/memory.ts +16 -0
  363. package/src/agent/spectator/consts.ts +10 -0
  364. package/src/agent/spectator/index.ts +3 -0
  365. package/src/agent/spectator/types.ts +14 -0
  366. package/src/agent/types.ts +10 -0
  367. package/src/areas/consts.ts +112 -0
  368. package/src/areas/index.ts +3 -0
  369. package/src/areas/types.ts +29 -0
  370. package/src/ba/consts.ts +40 -0
  371. package/src/ba/helpers.ts +93 -0
  372. package/src/ba/index.ts +5 -0
  373. package/src/ba/schemas.ts +196 -0
  374. package/src/ba/types.ts +125 -0
  375. package/src/blueprint/case.ts +272 -0
  376. package/src/blueprint/consts.ts +11 -0
  377. package/src/blueprint/index.ts +6 -0
  378. package/src/blueprint/resolve.ts +133 -0
  379. package/src/blueprint/schemas.ts +44 -0
  380. package/src/blueprint/types.ts +204 -0
  381. package/src/branding.ts +34 -0
  382. package/src/connect/consts.ts +441 -0
  383. package/src/connect/entrypoints.ts +291 -0
  384. package/src/connect/errors.ts +91 -0
  385. package/src/connect/index.ts +7 -0
  386. package/src/connect/ops.ts +208 -0
  387. package/src/connect/references.ts +89 -0
  388. package/src/connect/schemas.ts +384 -0
  389. package/src/connect/types.ts +456 -0
  390. package/src/consts.ts +34 -0
  391. package/src/convert/consts.ts +672 -0
  392. package/src/convert/helpers.ts +340 -0
  393. package/src/convert/index.ts +10 -0
  394. package/src/convert/schemas.ts +663 -0
  395. package/src/convert/types.ts +741 -0
  396. package/src/design/consts.ts +26 -0
  397. package/src/design/helpers.ts +255 -0
  398. package/src/design/index.ts +5 -0
  399. package/src/design/runtime.ts +142 -0
  400. package/src/design/schemas.ts +384 -0
  401. package/src/design/types.ts +191 -0
  402. package/src/dev/consts.ts +35 -0
  403. package/src/dev/index.ts +4 -0
  404. package/src/dev/schemas.ts +124 -0
  405. package/src/dev/types.ts +47 -0
  406. package/src/execution/consts.ts +37 -0
  407. package/src/execution/index.ts +3 -0
  408. package/src/execution/types.ts +55 -0
  409. package/src/index.ts +22 -0
  410. package/src/integrity/consts.ts +477 -0
  411. package/src/integrity/index.ts +3 -0
  412. package/src/integrity/types.ts +37 -0
  413. package/src/integrity/verify.ts +221 -0
  414. package/src/metadata/consts.ts +118 -0
  415. package/src/metadata/index.ts +3 -0
  416. package/src/metadata/types.ts +310 -0
  417. package/src/moderation/consts.ts +59 -0
  418. package/src/moderation/index.ts +4 -0
  419. package/src/moderation/schemas.ts +28 -0
  420. package/src/moderation/types.ts +68 -0
  421. package/src/moderation/utils.ts +35 -0
  422. package/src/preview/consts.ts +9 -0
  423. package/src/preview/index.ts +3 -0
  424. package/src/preview/types.ts +79 -0
  425. package/src/scaffold/consts.ts +26 -0
  426. package/src/scaffold/helpers.ts +84 -0
  427. package/src/scaffold/index.ts +4 -0
  428. package/src/scaffold/schemas.ts +283 -0
  429. package/src/scaffold/types.ts +118 -0
  430. package/src/skills/catalogue.ts +1617 -0
  431. package/src/skills/consts.ts +183 -0
  432. package/src/skills/index.ts +4 -0
  433. package/src/skills/roles.ts +299 -0
  434. package/src/slot/consts.ts +393 -0
  435. package/src/slot/helpers.ts +34 -0
  436. package/src/slot/index.ts +5 -0
  437. package/src/slot/layout.ts +141 -0
  438. package/src/slot/schemas.ts +46 -0
  439. package/src/slot/types.ts +164 -0
  440. package/src/topology/card.ts +106 -0
  441. package/src/topology/consts.ts +59 -0
  442. package/src/topology/helpers.ts +138 -0
  443. package/src/topology/index.ts +5 -0
  444. package/src/topology/types.ts +86 -0
  445. package/src/types.ts +104 -0
  446. package/src/ux/consts.ts +5 -0
  447. package/src/ux/index.ts +4 -0
  448. package/src/ux/schemas.ts +97 -0
  449. package/src/ux/types.ts +25 -0
  450. package/tests/connect-convert.spec.ts +161 -0
  451. package/tests/convert.spec.ts +318 -0
  452. package/tests/design.spec.ts +136 -0
  453. package/tsconfig.json +16 -0
@@ -0,0 +1,283 @@
1
+ import type { JSONSchemaType } from 'ajv'
2
+
3
+ import { ProjectArea } from '../areas/consts.js'
4
+ import { WidgetKind } from './consts.js'
5
+ import type {
6
+ GuestHomePlan, ProductIdentity, ScaffoldAreaPlan, ScaffoldPlan, ScaffoldStoryPlan, SketchContent,
7
+ } from './types.js'
8
+
9
+ const SketchContentSchema: JSONSchemaType<SketchContent> = {
10
+ type: 'object',
11
+ title: 'SketchContent',
12
+ description: 'Plausible placeholder content for one drawn widget',
13
+ properties: {
14
+ headline: { type: 'string', description: "The placeholder's own heading, 2-5 words" },
15
+ caption: {
16
+ type: 'string',
17
+ description: 'One short line saying what the finished widget will show'
18
+ },
19
+ items: {
20
+ type: 'array', nullable: true,
21
+ items: { type: 'string' },
22
+ description: '3-5 example rows for a list widget - realistic record titles, never lorem ipsum'
23
+ },
24
+ columns: {
25
+ type: 'array', nullable: true,
26
+ items: { type: 'string' },
27
+ description: '3-5 column names for a table widget'
28
+ },
29
+ fields: {
30
+ type: 'array', nullable: true,
31
+ items: { type: 'string' },
32
+ description: '3-5 field labels for a form widget'
33
+ },
34
+ series: {
35
+ type: 'array', nullable: true,
36
+ items: {
37
+ type: 'object',
38
+ properties: {
39
+ label: { type: 'string', description: 'Short bar label' },
40
+ value: {
41
+ type: 'integer', minimum: 5, maximum: 100,
42
+ description: 'Relative bar height 5-100. Illustrative only, never real data'
43
+ },
44
+ },
45
+ required: ['label', 'value'],
46
+ additionalProperties: false,
47
+ },
48
+ description: '4-6 bars for a chart widget'
49
+ },
50
+ stats: {
51
+ type: 'array', nullable: true,
52
+ items: {
53
+ type: 'object',
54
+ properties: {
55
+ label: { type: 'string', description: 'What the figure counts' },
56
+ value: { type: 'string', description: 'A short illustrative figure, e.g. "128" or "94%"' },
57
+ },
58
+ required: ['label', 'value'],
59
+ additionalProperties: false,
60
+ },
61
+ description: '2-4 headline figures for a summary widget'
62
+ },
63
+ },
64
+ required: ['headline', 'caption'],
65
+ additionalProperties: false,
66
+ }
67
+
68
+ const ScaffoldStoryPlanSchema: JSONSchemaType<ScaffoldStoryPlan> = {
69
+ type: 'object',
70
+ title: 'ScaffoldStoryPlan',
71
+ description: 'Where one user story lives in the menus, and what its dashboard widget shows',
72
+ properties: {
73
+ code: {
74
+ type: 'string',
75
+ description: 'The story code, copied EXACTLY from the story list given to you'
76
+ },
77
+ section: {
78
+ type: 'string',
79
+ description: 'Top-menu section inside the story\'s own area, 1-2 words, Title Case.'
80
+ + ' Stories that an actor works on together share one section'
81
+ },
82
+ screen: {
83
+ type: 'string',
84
+ description: 'The main screen this story will need, named "{section}/{purpose}" -'
85
+ + ' e.g. "Requests/Submit a request". The section part must equal the section above'
86
+ },
87
+ widget: {
88
+ type: 'object',
89
+ properties: {
90
+ kind: {
91
+ type: 'string',
92
+ enum: Object.values(WidgetKind),
93
+ description: 'What shape this story\'s dashboard widget takes:'
94
+ + ' list (records one after another), table (records in columns),'
95
+ + ' form (the actor submits something), chart (a trend or comparison),'
96
+ + ' stat (headline figures)'
97
+ },
98
+ title: { type: 'string', description: 'The widget\'s title, 2-4 words' },
99
+ description: {
100
+ type: 'string',
101
+ description: 'One sentence on what the finished widget shows its actor'
102
+ },
103
+ },
104
+ required: ['kind', 'title', 'description'],
105
+ additionalProperties: false,
106
+ },
107
+ sketch: SketchContentSchema,
108
+ home: {
109
+ type: 'boolean',
110
+ description: 'Whether this widget is one of the few important enough to also appear on the'
111
+ + ' home screen of its area. At most 3 per area'
112
+ },
113
+ sharesWidgetWith: {
114
+ type: 'string', nullable: true,
115
+ description: 'OPTIONAL. The code of an EARLIER story in this list whose widget this story'
116
+ + ' renders instead of drawing its own. Set it only when the two act on the same record'
117
+ + ' through the same shape — the same form, the same table — so one preview honestly'
118
+ + ' stands for both. Omit it whenever they differ.',
119
+ },
120
+ sharesScreenWith: {
121
+ type: 'string', nullable: true,
122
+ description: 'OPTIONAL. The code of an EARLIER story in this list whose screen this story'
123
+ + ' shares. Use it only when the two steps genuinely happen on one page.',
124
+ },
125
+ },
126
+ required: ['code', 'section', 'screen', 'widget', 'sketch', 'home'],
127
+ additionalProperties: false,
128
+ }
129
+
130
+ const ScaffoldAreaPlanSchema: JSONSchemaType<ScaffoldAreaPlan> = {
131
+ type: 'object',
132
+ title: 'ScaffoldAreaPlan',
133
+ description: 'One area of the application: its menu sections and how it introduces itself',
134
+ properties: {
135
+ area: {
136
+ type: 'string',
137
+ enum: Object.values(ProjectArea),
138
+ description: 'guest, user, admin or operator'
139
+ },
140
+ intro: {
141
+ type: 'object',
142
+ properties: {
143
+ title: { type: 'string', description: 'What this area is, 2-5 words' },
144
+ text: {
145
+ type: 'string',
146
+ description: 'Two sentences telling this area\'s actor what they can do here'
147
+ },
148
+ },
149
+ required: ['title', 'text'],
150
+ additionalProperties: false,
151
+ },
152
+ sections: {
153
+ type: 'array',
154
+ items: { type: 'string' },
155
+ description: 'The top-menu sections of this area, in menu order.'
156
+ + ' Every section named by a story of this area must appear here'
157
+ },
158
+ },
159
+ required: ['area', 'intro', 'sections'],
160
+ additionalProperties: false,
161
+ }
162
+
163
+ const GuestHomePlanSchema: JSONSchemaType<GuestHomePlan> = {
164
+ type: 'object',
165
+ title: 'GuestHomePlan',
166
+ description: "The product's public landing page",
167
+ properties: {
168
+ hero: {
169
+ type: 'object',
170
+ properties: {
171
+ eyebrow: { type: 'string', description: 'A 2-4 word positioning phrase above the headline' },
172
+ headline: {
173
+ type: 'string',
174
+ description: 'The product\'s promise in one line, under 9 words. Never the product name alone'
175
+ },
176
+ sub: { type: 'string', description: 'One or two sentences: what it does and who it is for' },
177
+ cta: { type: 'string', description: 'The call-to-action label, 2-3 words' },
178
+ },
179
+ required: ['eyebrow', 'headline', 'sub', 'cta'],
180
+ additionalProperties: false,
181
+ },
182
+ problem: {
183
+ type: 'object',
184
+ properties: {
185
+ title: { type: 'string', description: 'The problem in 3-6 words' },
186
+ text: {
187
+ type: 'string',
188
+ description: 'Two sentences on what is hard or slow today, from the point of view of'
189
+ + ' the person it happens to'
190
+ },
191
+ },
192
+ required: ['title', 'text'],
193
+ additionalProperties: false,
194
+ },
195
+ solution: {
196
+ type: 'object',
197
+ properties: {
198
+ title: { type: 'string', description: 'How this product solves it, 3-6 words' },
199
+ text: { type: 'string', description: 'Two sentences on what changes once they use it' },
200
+ },
201
+ required: ['title', 'text'],
202
+ additionalProperties: false,
203
+ },
204
+ features: {
205
+ type: 'array',
206
+ items: {
207
+ type: 'object',
208
+ properties: {
209
+ title: { type: 'string', description: 'The capability, 2-4 words' },
210
+ text: { type: 'string', description: 'One sentence on what it lets someone do' },
211
+ },
212
+ required: ['title', 'text'],
213
+ additionalProperties: false,
214
+ },
215
+ description: '3 to 6 capabilities, taken from what the specification actually describes'
216
+ },
217
+ testimonials: {
218
+ type: 'array',
219
+ items: {
220
+ type: 'object',
221
+ properties: {
222
+ quote: { type: 'string', description: 'One or two sentences a satisfied user would say' },
223
+ name: { type: 'string', description: 'A plausible first name and surname initial' },
224
+ role: { type: 'string', description: 'Their role, 2-4 words' },
225
+ },
226
+ required: ['quote', 'name', 'role'],
227
+ additionalProperties: false,
228
+ },
229
+ description: '2 or 3 illustrative testimonials'
230
+ },
231
+ },
232
+ required: ['hero', 'problem', 'solution', 'features', 'testimonials'],
233
+ additionalProperties: false,
234
+ }
235
+
236
+ export const ProductIdentitySchema: JSONSchemaType<ProductIdentity> = {
237
+ type: 'object',
238
+ title: 'ProductIdentity',
239
+ description: 'What this application calls itself wherever a machine reads it',
240
+ properties: {
241
+ name: {
242
+ type: 'string',
243
+ description: 'The product\'s own name as a person reads it — two or three words, the name'
244
+ + ' the landing page uses. Never a slug, never a placeholder, never the word "App"'
245
+ },
246
+ description: {
247
+ type: 'string',
248
+ description: 'ONE sentence saying what this product is and who it is for, as a search'
249
+ + ' result or a browser tab would show it. Under 160 characters'
250
+ },
251
+ },
252
+ required: ['name', 'description'],
253
+ additionalProperties: false,
254
+ }
255
+
256
+ export const ScaffoldPlanSchema: JSONSchemaType<ScaffoldPlan> = {
257
+ type: 'object',
258
+ title: 'ScaffoldPlan',
259
+ description: 'The whole application, sketched: its landing page, its menus, and one drawn'
260
+ + ' widget per user story',
261
+ properties: {
262
+ identity: ProductIdentitySchema,
263
+ guestHome: GuestHomePlanSchema,
264
+ areas: {
265
+ type: 'array',
266
+ items: ScaffoldAreaPlanSchema,
267
+ description: 'One entry per area that has at least one user story, plus guest'
268
+ },
269
+ stories: {
270
+ type: 'array',
271
+ items: ScaffoldStoryPlanSchema,
272
+ description: 'EXACTLY one entry per user story given to you, in the same order'
273
+ },
274
+ motifs: {
275
+ type: 'string',
276
+ description: 'Two or three sentences directing this product\'s illustrations: what shapes'
277
+ + ' and subjects belong to it, in the design system\'s own vocabulary. Abstract geometry,'
278
+ + ' never a described photograph'
279
+ },
280
+ },
281
+ required: ['identity', 'guestHome', 'areas', 'stories', 'motifs'],
282
+ additionalProperties: false,
283
+ }
@@ -0,0 +1,118 @@
1
+ import type { ProjectArea } from '../areas/consts.js'
2
+ import type { WidgetKind } from './consts.js'
3
+
4
+ /**
5
+ * The placeholder content of one drawn widget.
6
+ *
7
+ * Structured rather than free text because the scaffold STAMPS these into code without a model:
8
+ * a paragraph describing a table cannot be turned into columns deterministically, a list of
9
+ * column names can.
10
+ */
11
+ export interface SketchContent {
12
+ /** The heading the placeholder carries. */
13
+ headline: string
14
+ /** One line under it saying what the finished thing will show. */
15
+ caption: string
16
+ /** Example rows, for a list. */
17
+ items?: string[]
18
+ /** Column names, for a table. */
19
+ columns?: string[]
20
+ /** Field labels, for a form. */
21
+ fields?: string[]
22
+ /** Bars, for a chart — `value` is a 0..100 magnitude, not real data. */
23
+ series?: { label: string, value: number }[]
24
+ /** Figures, for a summary. */
25
+ stats?: { label: string, value: string }[]
26
+ }
27
+
28
+ /** What the scaffold draws for one user story. */
29
+ export interface ScaffoldStoryPlan {
30
+ /** The story's code — always one of the codes the planner was given. */
31
+ code: string
32
+ /** The top-menu section, inside the story's own area, this story belongs to. */
33
+ section: string
34
+ /** The screen name the story's implementation should adopt: `{section}/{purpose}`. */
35
+ screen: string
36
+ /** The dashboard widget this story owns. */
37
+ widget: { kind: WidgetKind, title: string, description: string }
38
+ /** What the placeholder shows until the story is implemented. */
39
+ sketch: SketchContent
40
+ /** Whether this widget is important enough to also appear on its area's home screen. */
41
+ home: boolean
42
+ /**
43
+ * The story whose preview this one renders instead of drawing its own.
44
+ *
45
+ * A pure OPTIMIZATION hint, and every consumer treats it as untrusted: absent, dropped, or
46
+ * naming a code that is not in the plan, the story falls back to owning its own widget and the
47
+ * drawn tree is exactly what it is today. It exists because a main flow's consecutive steps act
48
+ * on the SAME record through the same shape, and drawing a near-duplicate form for each one
49
+ * fills an area with previews that differ only in their heading.
50
+ *
51
+ * The arrow points at the OWNER, and only ever backwards in plan order — `fillScaffoldPlan`
52
+ * resolves and clamps it, so nothing downstream has to reason about cycles or forward
53
+ * references.
54
+ */
55
+ sharesWidgetWith?: string
56
+ /**
57
+ * The story whose SCREEN this one renders instead of drawing its own.
58
+ *
59
+ * Same rules and the same clamp as {@link sharesWidgetWith}, and deliberately a separate field:
60
+ * two steps can want one form on one screen, or one form reached from two screens, and
61
+ * collapsing both decisions into one flag makes the second unexpressible.
62
+ */
63
+ sharesScreenWith?: string
64
+ }
65
+
66
+ /** One area's shape: how its top menu is divided, and how it introduces itself. */
67
+ export interface ScaffoldAreaPlan {
68
+ area: ProjectArea
69
+ /** The introduction widget on the area's home screen. */
70
+ intro: { title: string, text: string }
71
+ /** The top-menu sections of this area, in menu order. */
72
+ sections: string[]
73
+ }
74
+
75
+ /**
76
+ * What the application calls itself, everywhere a machine reads it.
77
+ *
78
+ * Not branding and not decoration: this is what the document's `<title>`, its description and its
79
+ * icon are built from. The one page an anonymous visitor can reach is a sign-in page, served from
80
+ * a machine-generated hostname — and a sign-in page carrying no title, no description and no icon
81
+ * is the exact shape Safe Browsing scores as credential phishing. A generated application that
82
+ * never replaced the template's placeholder ships that shape by default, so the identity is
83
+ * planned here and stamped like every other part of the scaffold.
84
+ */
85
+ export interface ProductIdentity {
86
+ /** The product's own name, as a person reads it. Never a slug, never a placeholder. */
87
+ name: string
88
+ /** One sentence saying what the product is, for `<meta name="description">`. */
89
+ description: string
90
+ }
91
+
92
+ /** The guest area's landing page — the product's public face. */
93
+ export interface GuestHomePlan {
94
+ hero: { eyebrow: string, headline: string, sub: string, cta: string }
95
+ problem: { title: string, text: string }
96
+ solution: { title: string, text: string }
97
+ features: { title: string, text: string }[]
98
+ testimonials: { quote: string, name: string, role: string }[]
99
+ }
100
+
101
+ /**
102
+ * Everything one cheap call decides about a project's scaffolding.
103
+ *
104
+ * It is a PLAN, never code: the stamping that turns it into screens, widgets and dashboards is
105
+ * deterministic, so the same plan always produces the same tree and a re-scaffold is idempotent.
106
+ */
107
+ export interface ScaffoldPlan {
108
+ /** What this application is called and what it says it is. */
109
+ identity: ProductIdentity
110
+ guestHome: GuestHomePlan
111
+ areas: ScaffoldAreaPlan[]
112
+ stories: ScaffoldStoryPlan[]
113
+ /**
114
+ * How this product's illustrations should look — geometry and motif, in the design system's
115
+ * own vocabulary. The one field here that is prose, because it is read by a model.
116
+ */
117
+ motifs: string
118
+ }