@warpgogol/forge 1.1.0 → 2.1.0

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 (713) hide show
  1. package/AGENTS.md +8 -19
  2. package/README.md +93 -65
  3. package/README.uk.md +93 -65
  4. package/package.json +16 -3
  5. package/profiles/astro-typescript-turborepo.yaml +148 -1
  6. package/profiles/forge-shell.yaml +120 -1
  7. package/profiles/godot-csharp.yaml +280 -6
  8. package/profiles/phaser-turborepo.yaml +135 -1
  9. package/skills/_shared/fo-pipeline-conventions.md +55 -0
  10. package/skills/fo/fo-doc-audit/SKILL.md +2 -2
  11. package/skills/fo/fo-idea-i-just-want-to-see-the-plan/SKILL.md +2 -0
  12. package/skills/fo/fo-idea-i-just-want-to-see-the-result/SKILL.md +7 -3
  13. package/skills/fo/fo-idea-implement/SKILL.md +50 -46
  14. package/skills/fo/fo-session-retro/SKILL.md +2 -2
  15. package/skills/fo/fo-spec-ingest/SKILL.md +1 -1
  16. package/dist/bin/cli.d.ts +0 -3
  17. package/dist/bin/cli.d.ts.map +0 -1
  18. package/dist/bin/cli.js +0 -292
  19. package/dist/bin/cli.js.map +0 -1
  20. package/dist/os/adr/adr.module.d.ts +0 -3
  21. package/dist/os/adr/adr.module.d.ts.map +0 -1
  22. package/dist/os/adr/adr.module.js +0 -145
  23. package/dist/os/adr/adr.module.js.map +0 -1
  24. package/dist/os/adr/frontmatter-io.d.ts +0 -12
  25. package/dist/os/adr/frontmatter-io.d.ts.map +0 -1
  26. package/dist/os/adr/frontmatter-io.js +0 -67
  27. package/dist/os/adr/frontmatter-io.js.map +0 -1
  28. package/dist/os/adr/handlers/archive.d.ts +0 -24
  29. package/dist/os/adr/handlers/archive.d.ts.map +0 -1
  30. package/dist/os/adr/handlers/archive.js +0 -194
  31. package/dist/os/adr/handlers/archive.js.map +0 -1
  32. package/dist/os/adr/handlers/implement-stamp.d.ts +0 -4
  33. package/dist/os/adr/handlers/implement-stamp.d.ts.map +0 -1
  34. package/dist/os/adr/handlers/implement-stamp.js +0 -258
  35. package/dist/os/adr/handlers/implement-stamp.js.map +0 -1
  36. package/dist/os/adr/handlers/list-create.d.ts +0 -5
  37. package/dist/os/adr/handlers/list-create.d.ts.map +0 -1
  38. package/dist/os/adr/handlers/list-create.js +0 -165
  39. package/dist/os/adr/handlers/list-create.js.map +0 -1
  40. package/dist/os/adr/handlers/validate.d.ts +0 -4
  41. package/dist/os/adr/handlers/validate.d.ts.map +0 -1
  42. package/dist/os/adr/handlers/validate.js +0 -265
  43. package/dist/os/adr/handlers/validate.js.map +0 -1
  44. package/dist/os/adr/index.d.ts +0 -8
  45. package/dist/os/adr/index.d.ts.map +0 -1
  46. package/dist/os/adr/index.js +0 -18
  47. package/dist/os/adr/index.js.map +0 -1
  48. package/dist/os/adr/types.d.ts +0 -75
  49. package/dist/os/adr/types.d.ts.map +0 -1
  50. package/dist/os/adr/types.js +0 -55
  51. package/dist/os/adr/types.js.map +0 -1
  52. package/dist/os/audit/audit.module.d.ts +0 -3
  53. package/dist/os/audit/audit.module.d.ts.map +0 -1
  54. package/dist/os/audit/audit.module.js +0 -44
  55. package/dist/os/audit/audit.module.js.map +0 -1
  56. package/dist/os/audit/frontmatter-io.d.ts +0 -12
  57. package/dist/os/audit/frontmatter-io.d.ts.map +0 -1
  58. package/dist/os/audit/frontmatter-io.js +0 -71
  59. package/dist/os/audit/frontmatter-io.js.map +0 -1
  60. package/dist/os/audit/handlers/archive.d.ts +0 -4
  61. package/dist/os/audit/handlers/archive.d.ts.map +0 -1
  62. package/dist/os/audit/handlers/archive.js +0 -207
  63. package/dist/os/audit/handlers/archive.js.map +0 -1
  64. package/dist/os/audit/index.d.ts +0 -6
  65. package/dist/os/audit/index.d.ts.map +0 -1
  66. package/dist/os/audit/index.js +0 -16
  67. package/dist/os/audit/index.js.map +0 -1
  68. package/dist/os/audit/types.d.ts +0 -12
  69. package/dist/os/audit/types.d.ts.map +0 -1
  70. package/dist/os/audit/types.js +0 -17
  71. package/dist/os/audit/types.js.map +0 -1
  72. package/dist/os/compass/compass.module.d.ts +0 -3
  73. package/dist/os/compass/compass.module.d.ts.map +0 -1
  74. package/dist/os/compass/compass.module.js +0 -166
  75. package/dist/os/compass/compass.module.js.map +0 -1
  76. package/dist/os/compass/handlers/compass-audit-handler.d.ts +0 -36
  77. package/dist/os/compass/handlers/compass-audit-handler.d.ts.map +0 -1
  78. package/dist/os/compass/handlers/compass-audit-handler.js +0 -238
  79. package/dist/os/compass/handlers/compass-audit-handler.js.map +0 -1
  80. package/dist/os/compass/handlers/compass-change-summary-handler.d.ts +0 -19
  81. package/dist/os/compass/handlers/compass-change-summary-handler.d.ts.map +0 -1
  82. package/dist/os/compass/handlers/compass-change-summary-handler.js +0 -205
  83. package/dist/os/compass/handlers/compass-change-summary-handler.js.map +0 -1
  84. package/dist/os/compass/handlers/compass-inventory-handler.d.ts +0 -28
  85. package/dist/os/compass/handlers/compass-inventory-handler.d.ts.map +0 -1
  86. package/dist/os/compass/handlers/compass-inventory-handler.js +0 -213
  87. package/dist/os/compass/handlers/compass-inventory-handler.js.map +0 -1
  88. package/dist/os/compass/handlers/compass-inventory.d.ts +0 -30
  89. package/dist/os/compass/handlers/compass-inventory.d.ts.map +0 -1
  90. package/dist/os/compass/handlers/compass-inventory.js +0 -418
  91. package/dist/os/compass/handlers/compass-inventory.js.map +0 -1
  92. package/dist/os/compass/handlers/git-revision.d.ts +0 -8
  93. package/dist/os/compass/handlers/git-revision.d.ts.map +0 -1
  94. package/dist/os/compass/handlers/git-revision.js +0 -99
  95. package/dist/os/compass/handlers/git-revision.js.map +0 -1
  96. package/dist/os/compass/handlers/resolve-scan-root.d.ts +0 -3
  97. package/dist/os/compass/handlers/resolve-scan-root.d.ts.map +0 -1
  98. package/dist/os/compass/handlers/resolve-scan-root.js +0 -57
  99. package/dist/os/compass/handlers/resolve-scan-root.js.map +0 -1
  100. package/dist/os/compass/index.d.ts +0 -8
  101. package/dist/os/compass/index.d.ts.map +0 -1
  102. package/dist/os/compass/index.js +0 -19
  103. package/dist/os/compass/index.js.map +0 -1
  104. package/dist/os/core/core.module.d.ts +0 -3
  105. package/dist/os/core/core.module.d.ts.map +0 -1
  106. package/dist/os/core/core.module.js +0 -758
  107. package/dist/os/core/core.module.js.map +0 -1
  108. package/dist/os/core/handlers/assets-check.d.ts +0 -19
  109. package/dist/os/core/handlers/assets-check.d.ts.map +0 -1
  110. package/dist/os/core/handlers/assets-check.js +0 -89
  111. package/dist/os/core/handlers/assets-check.js.map +0 -1
  112. package/dist/os/core/handlers/assets-helpers.d.ts +0 -28
  113. package/dist/os/core/handlers/assets-helpers.d.ts.map +0 -1
  114. package/dist/os/core/handlers/assets-helpers.js +0 -128
  115. package/dist/os/core/handlers/assets-helpers.js.map +0 -1
  116. package/dist/os/core/handlers/assets-list.d.ts +0 -9
  117. package/dist/os/core/handlers/assets-list.d.ts.map +0 -1
  118. package/dist/os/core/handlers/assets-list.js +0 -72
  119. package/dist/os/core/handlers/assets-list.js.map +0 -1
  120. package/dist/os/core/handlers/build.d.ts +0 -16
  121. package/dist/os/core/handlers/build.d.ts.map +0 -1
  122. package/dist/os/core/handlers/build.js +0 -123
  123. package/dist/os/core/handlers/build.js.map +0 -1
  124. package/dist/os/core/handlers/determinism-check.d.ts +0 -20
  125. package/dist/os/core/handlers/determinism-check.d.ts.map +0 -1
  126. package/dist/os/core/handlers/determinism-check.js +0 -289
  127. package/dist/os/core/handlers/determinism-check.js.map +0 -1
  128. package/dist/os/core/handlers/dev.d.ts +0 -10
  129. package/dist/os/core/handlers/dev.d.ts.map +0 -1
  130. package/dist/os/core/handlers/dev.js +0 -102
  131. package/dist/os/core/handlers/dev.js.map +0 -1
  132. package/dist/os/core/handlers/knowledge-compact.d.ts +0 -4
  133. package/dist/os/core/handlers/knowledge-compact.d.ts.map +0 -1
  134. package/dist/os/core/handlers/knowledge-compact.js +0 -198
  135. package/dist/os/core/handlers/knowledge-compact.js.map +0 -1
  136. package/dist/os/core/handlers/pinned-check.d.ts +0 -49
  137. package/dist/os/core/handlers/pinned-check.d.ts.map +0 -1
  138. package/dist/os/core/handlers/pinned-check.js +0 -159
  139. package/dist/os/core/handlers/pinned-check.js.map +0 -1
  140. package/dist/os/core/handlers/pinned-init.d.ts +0 -19
  141. package/dist/os/core/handlers/pinned-init.d.ts.map +0 -1
  142. package/dist/os/core/handlers/pinned-init.js +0 -283
  143. package/dist/os/core/handlers/pinned-init.js.map +0 -1
  144. package/dist/os/core/handlers/pinned-types.d.ts +0 -29
  145. package/dist/os/core/handlers/pinned-types.d.ts.map +0 -1
  146. package/dist/os/core/handlers/pinned-types.js +0 -16
  147. package/dist/os/core/handlers/pinned-types.js.map +0 -1
  148. package/dist/os/core/handlers/pinned-validate.d.ts +0 -4
  149. package/dist/os/core/handlers/pinned-validate.d.ts.map +0 -1
  150. package/dist/os/core/handlers/pinned-validate.js +0 -248
  151. package/dist/os/core/handlers/pinned-validate.js.map +0 -1
  152. package/dist/os/core/handlers/profile-resolve.d.ts +0 -13
  153. package/dist/os/core/handlers/profile-resolve.d.ts.map +0 -1
  154. package/dist/os/core/handlers/profile-resolve.js +0 -65
  155. package/dist/os/core/handlers/profile-resolve.js.map +0 -1
  156. package/dist/os/core/handlers/release-prepare.d.ts +0 -25
  157. package/dist/os/core/handlers/release-prepare.d.ts.map +0 -1
  158. package/dist/os/core/handlers/release-prepare.js +0 -228
  159. package/dist/os/core/handlers/release-prepare.js.map +0 -1
  160. package/dist/os/core/handlers/release-publish.d.ts +0 -13
  161. package/dist/os/core/handlers/release-publish.d.ts.map +0 -1
  162. package/dist/os/core/handlers/release-publish.js +0 -173
  163. package/dist/os/core/handlers/release-publish.js.map +0 -1
  164. package/dist/os/core/handlers/validate.d.ts +0 -26
  165. package/dist/os/core/handlers/validate.d.ts.map +0 -1
  166. package/dist/os/core/handlers/validate.js +0 -208
  167. package/dist/os/core/handlers/validate.js.map +0 -1
  168. package/dist/os/core/handlers/workspace-deps.d.ts +0 -12
  169. package/dist/os/core/handlers/workspace-deps.d.ts.map +0 -1
  170. package/dist/os/core/handlers/workspace-deps.js +0 -39
  171. package/dist/os/core/handlers/workspace-deps.js.map +0 -1
  172. package/dist/os/core/index.d.ts +0 -2
  173. package/dist/os/core/index.d.ts.map +0 -1
  174. package/dist/os/core/index.js +0 -13
  175. package/dist/os/core/index.js.map +0 -1
  176. package/dist/os/exploration/exploration.module.d.ts +0 -3
  177. package/dist/os/exploration/exploration.module.d.ts.map +0 -1
  178. package/dist/os/exploration/exploration.module.js +0 -82
  179. package/dist/os/exploration/exploration.module.js.map +0 -1
  180. package/dist/os/exploration/frontmatter-io.d.ts +0 -13
  181. package/dist/os/exploration/frontmatter-io.d.ts.map +0 -1
  182. package/dist/os/exploration/frontmatter-io.js +0 -61
  183. package/dist/os/exploration/frontmatter-io.js.map +0 -1
  184. package/dist/os/exploration/handlers/archive.d.ts +0 -4
  185. package/dist/os/exploration/handlers/archive.d.ts.map +0 -1
  186. package/dist/os/exploration/handlers/archive.js +0 -135
  187. package/dist/os/exploration/handlers/archive.js.map +0 -1
  188. package/dist/os/exploration/handlers/list.d.ts +0 -4
  189. package/dist/os/exploration/handlers/list.d.ts.map +0 -1
  190. package/dist/os/exploration/handlers/list.js +0 -56
  191. package/dist/os/exploration/handlers/list.js.map +0 -1
  192. package/dist/os/exploration/handlers/show.d.ts +0 -4
  193. package/dist/os/exploration/handlers/show.d.ts.map +0 -1
  194. package/dist/os/exploration/handlers/show.js +0 -91
  195. package/dist/os/exploration/handlers/show.js.map +0 -1
  196. package/dist/os/exploration/index.d.ts +0 -7
  197. package/dist/os/exploration/index.d.ts.map +0 -1
  198. package/dist/os/exploration/index.js +0 -17
  199. package/dist/os/exploration/index.js.map +0 -1
  200. package/dist/os/exploration/types.d.ts +0 -38
  201. package/dist/os/exploration/types.d.ts.map +0 -1
  202. package/dist/os/exploration/types.js +0 -23
  203. package/dist/os/exploration/types.js.map +0 -1
  204. package/dist/os/mission/handlers/archive.d.ts +0 -4
  205. package/dist/os/mission/handlers/archive.d.ts.map +0 -1
  206. package/dist/os/mission/handlers/archive.js +0 -356
  207. package/dist/os/mission/handlers/archive.js.map +0 -1
  208. package/dist/os/mission/index.d.ts +0 -2
  209. package/dist/os/mission/index.d.ts.map +0 -1
  210. package/dist/os/mission/index.js +0 -2
  211. package/dist/os/mission/index.js.map +0 -1
  212. package/dist/os/mission/mission.module.d.ts +0 -3
  213. package/dist/os/mission/mission.module.d.ts.map +0 -1
  214. package/dist/os/mission/mission.module.js +0 -44
  215. package/dist/os/mission/mission.module.js.map +0 -1
  216. package/dist/os/mission/types.d.ts +0 -23
  217. package/dist/os/mission/types.d.ts.map +0 -1
  218. package/dist/os/mission/types.js +0 -18
  219. package/dist/os/mission/types.js.map +0 -1
  220. package/dist/os/naming/index.d.ts +0 -3
  221. package/dist/os/naming/index.d.ts.map +0 -1
  222. package/dist/os/naming/index.js +0 -14
  223. package/dist/os/naming/index.js.map +0 -1
  224. package/dist/os/naming/naming-convention.d.ts +0 -25
  225. package/dist/os/naming/naming-convention.d.ts.map +0 -1
  226. package/dist/os/naming/naming-convention.js +0 -324
  227. package/dist/os/naming/naming-convention.js.map +0 -1
  228. package/dist/os/naming/naming.module.d.ts +0 -3
  229. package/dist/os/naming/naming.module.d.ts.map +0 -1
  230. package/dist/os/naming/naming.module.js +0 -33
  231. package/dist/os/naming/naming.module.js.map +0 -1
  232. package/dist/os/notes/index.d.ts +0 -2
  233. package/dist/os/notes/index.d.ts.map +0 -1
  234. package/dist/os/notes/index.js +0 -10
  235. package/dist/os/notes/index.js.map +0 -1
  236. package/dist/os/notes/notes.module.d.ts +0 -3
  237. package/dist/os/notes/notes.module.d.ts.map +0 -1
  238. package/dist/os/notes/notes.module.js +0 -83
  239. package/dist/os/notes/notes.module.js.map +0 -1
  240. package/dist/os/plan/frontmatter-io.d.ts +0 -12
  241. package/dist/os/plan/frontmatter-io.d.ts.map +0 -1
  242. package/dist/os/plan/frontmatter-io.js +0 -69
  243. package/dist/os/plan/frontmatter-io.js.map +0 -1
  244. package/dist/os/plan/handlers/archive.d.ts +0 -4
  245. package/dist/os/plan/handlers/archive.d.ts.map +0 -1
  246. package/dist/os/plan/handlers/archive.js +0 -206
  247. package/dist/os/plan/handlers/archive.js.map +0 -1
  248. package/dist/os/plan/index.d.ts +0 -6
  249. package/dist/os/plan/index.d.ts.map +0 -1
  250. package/dist/os/plan/index.js +0 -16
  251. package/dist/os/plan/index.js.map +0 -1
  252. package/dist/os/plan/plan.module.d.ts +0 -3
  253. package/dist/os/plan/plan.module.d.ts.map +0 -1
  254. package/dist/os/plan/plan.module.js +0 -44
  255. package/dist/os/plan/plan.module.js.map +0 -1
  256. package/dist/os/plan/types.d.ts +0 -12
  257. package/dist/os/plan/types.d.ts.map +0 -1
  258. package/dist/os/plan/types.js +0 -17
  259. package/dist/os/plan/types.js.map +0 -1
  260. package/dist/os/program/discovery.d.ts +0 -61
  261. package/dist/os/program/discovery.d.ts.map +0 -1
  262. package/dist/os/program/discovery.js +0 -236
  263. package/dist/os/program/discovery.js.map +0 -1
  264. package/dist/os/program/handlers/complete.d.ts +0 -12
  265. package/dist/os/program/handlers/complete.d.ts.map +0 -1
  266. package/dist/os/program/handlers/complete.js +0 -344
  267. package/dist/os/program/handlers/complete.js.map +0 -1
  268. package/dist/os/program/handlers/lease.d.ts +0 -13
  269. package/dist/os/program/handlers/lease.d.ts.map +0 -1
  270. package/dist/os/program/handlers/lease.js +0 -322
  271. package/dist/os/program/handlers/lease.js.map +0 -1
  272. package/dist/os/program/handlers/seal.d.ts +0 -12
  273. package/dist/os/program/handlers/seal.d.ts.map +0 -1
  274. package/dist/os/program/handlers/seal.js +0 -265
  275. package/dist/os/program/handlers/seal.js.map +0 -1
  276. package/dist/os/program/handlers/validate.d.ts +0 -14
  277. package/dist/os/program/handlers/validate.d.ts.map +0 -1
  278. package/dist/os/program/handlers/validate.js +0 -164
  279. package/dist/os/program/handlers/validate.js.map +0 -1
  280. package/dist/os/program/lease.d.ts +0 -39
  281. package/dist/os/program/lease.d.ts.map +0 -1
  282. package/dist/os/program/lease.js +0 -129
  283. package/dist/os/program/lease.js.map +0 -1
  284. package/dist/os/program/program.module.d.ts +0 -3
  285. package/dist/os/program/program.module.d.ts.map +0 -1
  286. package/dist/os/program/program.module.js +0 -201
  287. package/dist/os/program/program.module.js.map +0 -1
  288. package/dist/os/program/schemas.d.ts +0 -225
  289. package/dist/os/program/schemas.d.ts.map +0 -1
  290. package/dist/os/program/schemas.js +0 -174
  291. package/dist/os/program/schemas.js.map +0 -1
  292. package/dist/os/program/state.d.ts +0 -38
  293. package/dist/os/program/state.d.ts.map +0 -1
  294. package/dist/os/program/state.js +0 -189
  295. package/dist/os/program/state.js.map +0 -1
  296. package/dist/os/rfc/acceptance.d.ts +0 -15
  297. package/dist/os/rfc/acceptance.d.ts.map +0 -1
  298. package/dist/os/rfc/acceptance.js +0 -310
  299. package/dist/os/rfc/acceptance.js.map +0 -1
  300. package/dist/os/rfc/decision-log.d.ts +0 -6
  301. package/dist/os/rfc/decision-log.d.ts.map +0 -1
  302. package/dist/os/rfc/decision-log.js +0 -269
  303. package/dist/os/rfc/decision-log.js.map +0 -1
  304. package/dist/os/rfc/dna-trace.d.ts +0 -27
  305. package/dist/os/rfc/dna-trace.d.ts.map +0 -1
  306. package/dist/os/rfc/dna-trace.js +0 -214
  307. package/dist/os/rfc/dna-trace.js.map +0 -1
  308. package/dist/os/rfc/frontmatter-io.d.ts +0 -18
  309. package/dist/os/rfc/frontmatter-io.d.ts.map +0 -1
  310. package/dist/os/rfc/frontmatter-io.js +0 -110
  311. package/dist/os/rfc/frontmatter-io.js.map +0 -1
  312. package/dist/os/rfc/handlers/archive.d.ts +0 -25
  313. package/dist/os/rfc/handlers/archive.d.ts.map +0 -1
  314. package/dist/os/rfc/handlers/archive.js +0 -247
  315. package/dist/os/rfc/handlers/archive.js.map +0 -1
  316. package/dist/os/rfc/handlers/check.d.ts +0 -4
  317. package/dist/os/rfc/handlers/check.d.ts.map +0 -1
  318. package/dist/os/rfc/handlers/check.js +0 -195
  319. package/dist/os/rfc/handlers/check.js.map +0 -1
  320. package/dist/os/rfc/handlers/implement-stamp.d.ts +0 -4
  321. package/dist/os/rfc/handlers/implement-stamp.d.ts.map +0 -1
  322. package/dist/os/rfc/handlers/implement-stamp.js +0 -420
  323. package/dist/os/rfc/handlers/implement-stamp.js.map +0 -1
  324. package/dist/os/rfc/handlers/index-graph.d.ts +0 -13
  325. package/dist/os/rfc/handlers/index-graph.d.ts.map +0 -1
  326. package/dist/os/rfc/handlers/index-graph.js +0 -192
  327. package/dist/os/rfc/handlers/index-graph.js.map +0 -1
  328. package/dist/os/rfc/handlers/lifecycle.d.ts +0 -13
  329. package/dist/os/rfc/handlers/lifecycle.d.ts.map +0 -1
  330. package/dist/os/rfc/handlers/lifecycle.js +0 -155
  331. package/dist/os/rfc/handlers/lifecycle.js.map +0 -1
  332. package/dist/os/rfc/handlers/list-create.d.ts +0 -6
  333. package/dist/os/rfc/handlers/list-create.d.ts.map +0 -1
  334. package/dist/os/rfc/handlers/list-create.js +0 -240
  335. package/dist/os/rfc/handlers/list-create.js.map +0 -1
  336. package/dist/os/rfc/handlers/pipeline-status.d.ts +0 -26
  337. package/dist/os/rfc/handlers/pipeline-status.d.ts.map +0 -1
  338. package/dist/os/rfc/handlers/pipeline-status.js +0 -124
  339. package/dist/os/rfc/handlers/pipeline-status.js.map +0 -1
  340. package/dist/os/rfc/handlers/shared.d.ts +0 -22
  341. package/dist/os/rfc/handlers/shared.d.ts.map +0 -1
  342. package/dist/os/rfc/handlers/shared.js +0 -105
  343. package/dist/os/rfc/handlers/shared.js.map +0 -1
  344. package/dist/os/rfc/handlers/supersede-propose.d.ts +0 -4
  345. package/dist/os/rfc/handlers/supersede-propose.d.ts.map +0 -1
  346. package/dist/os/rfc/handlers/supersede-propose.js +0 -203
  347. package/dist/os/rfc/handlers/supersede-propose.js.map +0 -1
  348. package/dist/os/rfc/handlers/validate-rules.d.ts +0 -32
  349. package/dist/os/rfc/handlers/validate-rules.d.ts.map +0 -1
  350. package/dist/os/rfc/handlers/validate-rules.js +0 -590
  351. package/dist/os/rfc/handlers/validate-rules.js.map +0 -1
  352. package/dist/os/rfc/handlers/validate.d.ts +0 -4
  353. package/dist/os/rfc/handlers/validate.d.ts.map +0 -1
  354. package/dist/os/rfc/handlers/validate.js +0 -108
  355. package/dist/os/rfc/handlers/validate.js.map +0 -1
  356. package/dist/os/rfc/handlers.d.ts +0 -7
  357. package/dist/os/rfc/handlers.d.ts.map +0 -1
  358. package/dist/os/rfc/handlers.js +0 -19
  359. package/dist/os/rfc/handlers.js.map +0 -1
  360. package/dist/os/rfc/index.d.ts +0 -18
  361. package/dist/os/rfc/index.d.ts.map +0 -1
  362. package/dist/os/rfc/index.js +0 -24
  363. package/dist/os/rfc/index.js.map +0 -1
  364. package/dist/os/rfc/rfc.module.d.ts +0 -3
  365. package/dist/os/rfc/rfc.module.d.ts.map +0 -1
  366. package/dist/os/rfc/rfc.module.js +0 -366
  367. package/dist/os/rfc/rfc.module.js.map +0 -1
  368. package/dist/os/rfc/types.d.ts +0 -483
  369. package/dist/os/rfc/types.d.ts.map +0 -1
  370. package/dist/os/rfc/types.js +0 -100
  371. package/dist/os/rfc/types.js.map +0 -1
  372. package/dist/os/rfc/verification-evidence.d.ts +0 -8
  373. package/dist/os/rfc/verification-evidence.d.ts.map +0 -1
  374. package/dist/os/rfc/verification-evidence.js +0 -184
  375. package/dist/os/rfc/verification-evidence.js.map +0 -1
  376. package/dist/os/session/atif-parser.d.ts +0 -29
  377. package/dist/os/session/atif-parser.d.ts.map +0 -1
  378. package/dist/os/session/atif-parser.js +0 -140
  379. package/dist/os/session/atif-parser.js.map +0 -1
  380. package/dist/os/session/frontmatter-io.d.ts +0 -31
  381. package/dist/os/session/frontmatter-io.d.ts.map +0 -1
  382. package/dist/os/session/frontmatter-io.js +0 -146
  383. package/dist/os/session/frontmatter-io.js.map +0 -1
  384. package/dist/os/session/handlers/archive.d.ts +0 -4
  385. package/dist/os/session/handlers/archive.d.ts.map +0 -1
  386. package/dist/os/session/handlers/archive.js +0 -241
  387. package/dist/os/session/handlers/archive.js.map +0 -1
  388. package/dist/os/session/handlers/list.d.ts +0 -4
  389. package/dist/os/session/handlers/list.d.ts.map +0 -1
  390. package/dist/os/session/handlers/list.js +0 -147
  391. package/dist/os/session/handlers/list.js.map +0 -1
  392. package/dist/os/session/handlers/save.d.ts +0 -6
  393. package/dist/os/session/handlers/save.d.ts.map +0 -1
  394. package/dist/os/session/handlers/save.js +0 -297
  395. package/dist/os/session/handlers/save.js.map +0 -1
  396. package/dist/os/session/handlers/validate.d.ts +0 -4
  397. package/dist/os/session/handlers/validate.d.ts.map +0 -1
  398. package/dist/os/session/handlers/validate.js +0 -188
  399. package/dist/os/session/handlers/validate.js.map +0 -1
  400. package/dist/os/session/index.d.ts +0 -9
  401. package/dist/os/session/index.d.ts.map +0 -1
  402. package/dist/os/session/index.js +0 -20
  403. package/dist/os/session/index.js.map +0 -1
  404. package/dist/os/session/session.module.d.ts +0 -3
  405. package/dist/os/session/session.module.d.ts.map +0 -1
  406. package/dist/os/session/session.module.js +0 -115
  407. package/dist/os/session/session.module.js.map +0 -1
  408. package/dist/os/session/types.d.ts +0 -101
  409. package/dist/os/session/types.d.ts.map +0 -1
  410. package/dist/os/session/types.js +0 -52
  411. package/dist/os/session/types.js.map +0 -1
  412. package/dist/os/spec/live-spec-list.d.ts +0 -4
  413. package/dist/os/spec/live-spec-list.d.ts.map +0 -1
  414. package/dist/os/spec/live-spec-list.js +0 -64
  415. package/dist/os/spec/live-spec-list.js.map +0 -1
  416. package/dist/os/spec/live-spec-merge.d.ts +0 -4
  417. package/dist/os/spec/live-spec-merge.d.ts.map +0 -1
  418. package/dist/os/spec/live-spec-merge.js +0 -345
  419. package/dist/os/spec/live-spec-merge.js.map +0 -1
  420. package/dist/os/spec/live-spec-show.d.ts +0 -4
  421. package/dist/os/spec/live-spec-show.d.ts.map +0 -1
  422. package/dist/os/spec/live-spec-show.js +0 -99
  423. package/dist/os/spec/live-spec-show.js.map +0 -1
  424. package/dist/os/spec/live-spec-types.d.ts +0 -71
  425. package/dist/os/spec/live-spec-types.d.ts.map +0 -1
  426. package/dist/os/spec/live-spec-types.js +0 -14
  427. package/dist/os/spec/live-spec-types.js.map +0 -1
  428. package/dist/os/spec/live-spec-validate.d.ts +0 -4
  429. package/dist/os/spec/live-spec-validate.d.ts.map +0 -1
  430. package/dist/os/spec/live-spec-validate.js +0 -140
  431. package/dist/os/spec/live-spec-validate.js.map +0 -1
  432. package/dist/os/spec/spec-materialize.d.ts +0 -21
  433. package/dist/os/spec/spec-materialize.d.ts.map +0 -1
  434. package/dist/os/spec/spec-materialize.js +0 -336
  435. package/dist/os/spec/spec-materialize.js.map +0 -1
  436. package/dist/os/spec/spec-schema.d.ts +0 -126
  437. package/dist/os/spec/spec-schema.d.ts.map +0 -1
  438. package/dist/os/spec/spec-schema.js +0 -118
  439. package/dist/os/spec/spec-schema.js.map +0 -1
  440. package/dist/os/spec/spec-status.d.ts +0 -33
  441. package/dist/os/spec/spec-status.d.ts.map +0 -1
  442. package/dist/os/spec/spec-status.js +0 -222
  443. package/dist/os/spec/spec-status.js.map +0 -1
  444. package/dist/os/spec/spec-validate.d.ts +0 -4
  445. package/dist/os/spec/spec-validate.d.ts.map +0 -1
  446. package/dist/os/spec/spec-validate.js +0 -435
  447. package/dist/os/spec/spec-validate.js.map +0 -1
  448. package/dist/os/spec/spec.module.d.ts +0 -3
  449. package/dist/os/spec/spec.module.d.ts.map +0 -1
  450. package/dist/os/spec/spec.module.js +0 -119
  451. package/dist/os/spec/spec.module.js.map +0 -1
  452. package/dist/os/werkstatt/handlers/lock.d.ts +0 -10
  453. package/dist/os/werkstatt/handlers/lock.d.ts.map +0 -1
  454. package/dist/os/werkstatt/handlers/lock.js +0 -153
  455. package/dist/os/werkstatt/handlers/lock.js.map +0 -1
  456. package/dist/os/werkstatt/handlers/schema.d.ts +0 -33
  457. package/dist/os/werkstatt/handlers/schema.d.ts.map +0 -1
  458. package/dist/os/werkstatt/handlers/schema.js +0 -42
  459. package/dist/os/werkstatt/handlers/schema.js.map +0 -1
  460. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts +0 -15
  461. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts.map +0 -1
  462. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js +0 -144
  463. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js.map +0 -1
  464. package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts +0 -18
  465. package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts.map +0 -1
  466. package/dist/os/werkstatt/handlers/werkstatt-lock-status.js +0 -43
  467. package/dist/os/werkstatt/handlers/werkstatt-lock-status.js.map +0 -1
  468. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts +0 -11
  469. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts.map +0 -1
  470. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js +0 -79
  471. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js.map +0 -1
  472. package/dist/os/werkstatt/index.d.ts +0 -7
  473. package/dist/os/werkstatt/index.d.ts.map +0 -1
  474. package/dist/os/werkstatt/index.js +0 -18
  475. package/dist/os/werkstatt/index.js.map +0 -1
  476. package/dist/os/werkstatt/werkstatt.module.d.ts +0 -3
  477. package/dist/os/werkstatt/werkstatt.module.d.ts.map +0 -1
  478. package/dist/os/werkstatt/werkstatt.module.js +0 -58
  479. package/dist/os/werkstatt/werkstatt.module.js.map +0 -1
  480. package/dist/os/workflow/handlers.d.ts +0 -12
  481. package/dist/os/workflow/handlers.d.ts.map +0 -1
  482. package/dist/os/workflow/handlers.js +0 -254
  483. package/dist/os/workflow/handlers.js.map +0 -1
  484. package/dist/os/workflow/index.d.ts +0 -4
  485. package/dist/os/workflow/index.d.ts.map +0 -1
  486. package/dist/os/workflow/index.js +0 -18
  487. package/dist/os/workflow/index.js.map +0 -1
  488. package/dist/os/workflow/types.d.ts +0 -69
  489. package/dist/os/workflow/types.d.ts.map +0 -1
  490. package/dist/os/workflow/types.js +0 -23
  491. package/dist/os/workflow/types.js.map +0 -1
  492. package/dist/os/workflow/workflow.module.d.ts +0 -3
  493. package/dist/os/workflow/workflow.module.d.ts.map +0 -1
  494. package/dist/os/workflow/workflow.module.js +0 -48
  495. package/dist/os/workflow/workflow.module.js.map +0 -1
  496. package/dist/src/cli-output.d.ts +0 -5
  497. package/dist/src/cli-output.d.ts.map +0 -1
  498. package/dist/src/cli-output.js +0 -53
  499. package/dist/src/cli-output.js.map +0 -1
  500. package/dist/src/config/forge-config.d.ts +0 -242
  501. package/dist/src/config/forge-config.d.ts.map +0 -1
  502. package/dist/src/config/forge-config.js +0 -359
  503. package/dist/src/config/forge-config.js.map +0 -1
  504. package/dist/src/forge-module.d.ts +0 -16
  505. package/dist/src/forge-module.d.ts.map +0 -1
  506. package/dist/src/forge-module.js +0 -15
  507. package/dist/src/forge-module.js.map +0 -1
  508. package/dist/src/index.d.ts +0 -36
  509. package/dist/src/index.d.ts.map +0 -1
  510. package/dist/src/index.js +0 -56
  511. package/dist/src/index.js.map +0 -1
  512. package/dist/src/knowledge/budgets.d.ts +0 -38
  513. package/dist/src/knowledge/budgets.d.ts.map +0 -1
  514. package/dist/src/knowledge/budgets.js +0 -157
  515. package/dist/src/knowledge/budgets.js.map +0 -1
  516. package/dist/src/knowledge/compact.d.ts +0 -47
  517. package/dist/src/knowledge/compact.d.ts.map +0 -1
  518. package/dist/src/knowledge/compact.js +0 -320
  519. package/dist/src/knowledge/compact.js.map +0 -1
  520. package/dist/src/knowledge/index.d.ts +0 -7
  521. package/dist/src/knowledge/index.d.ts.map +0 -1
  522. package/dist/src/knowledge/index.js +0 -19
  523. package/dist/src/knowledge/index.js.map +0 -1
  524. package/dist/src/knowledge/parse.d.ts +0 -3
  525. package/dist/src/knowledge/parse.d.ts.map +0 -1
  526. package/dist/src/knowledge/parse.js +0 -205
  527. package/dist/src/knowledge/parse.js.map +0 -1
  528. package/dist/src/knowledge/promote.d.ts +0 -37
  529. package/dist/src/knowledge/promote.d.ts.map +0 -1
  530. package/dist/src/knowledge/promote.js +0 -120
  531. package/dist/src/knowledge/promote.js.map +0 -1
  532. package/dist/src/knowledge/schema.d.ts +0 -61
  533. package/dist/src/knowledge/schema.d.ts.map +0 -1
  534. package/dist/src/knowledge/schema.js +0 -64
  535. package/dist/src/knowledge/schema.js.map +0 -1
  536. package/dist/src/knowledge/serialize.d.ts +0 -3
  537. package/dist/src/knowledge/serialize.d.ts.map +0 -1
  538. package/dist/src/knowledge/serialize.js +0 -67
  539. package/dist/src/knowledge/serialize.js.map +0 -1
  540. package/dist/src/migration-adapters/git-utils.d.ts +0 -3
  541. package/dist/src/migration-adapters/git-utils.d.ts.map +0 -1
  542. package/dist/src/migration-adapters/git-utils.js +0 -56
  543. package/dist/src/migration-adapters/git-utils.js.map +0 -1
  544. package/dist/src/migration-adapters/ignored-files.d.ts +0 -12
  545. package/dist/src/migration-adapters/ignored-files.d.ts.map +0 -1
  546. package/dist/src/migration-adapters/ignored-files.js +0 -190
  547. package/dist/src/migration-adapters/ignored-files.js.map +0 -1
  548. package/dist/src/migration-adapters/index.d.ts +0 -8
  549. package/dist/src/migration-adapters/index.d.ts.map +0 -1
  550. package/dist/src/migration-adapters/index.js +0 -17
  551. package/dist/src/migration-adapters/index.js.map +0 -1
  552. package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts +0 -3
  553. package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts.map +0 -1
  554. package/dist/src/migration-adapters/node-typescript-pnpm/index.js +0 -141
  555. package/dist/src/migration-adapters/node-typescript-pnpm/index.js.map +0 -1
  556. package/dist/src/migration-adapters/phaser-pnpm/index.d.ts +0 -3
  557. package/dist/src/migration-adapters/phaser-pnpm/index.d.ts.map +0 -1
  558. package/dist/src/migration-adapters/phaser-pnpm/index.js +0 -142
  559. package/dist/src/migration-adapters/phaser-pnpm/index.js.map +0 -1
  560. package/dist/src/migration-adapters/registry.d.ts +0 -6
  561. package/dist/src/migration-adapters/registry.d.ts.map +0 -1
  562. package/dist/src/migration-adapters/registry.js +0 -55
  563. package/dist/src/migration-adapters/registry.js.map +0 -1
  564. package/dist/src/migration-adapters/types.d.ts +0 -35
  565. package/dist/src/migration-adapters/types.d.ts.map +0 -1
  566. package/dist/src/migration-adapters/types.js +0 -31
  567. package/dist/src/migration-adapters/types.js.map +0 -1
  568. package/dist/src/onboarding/agents-generate.d.ts +0 -30
  569. package/dist/src/onboarding/agents-generate.d.ts.map +0 -1
  570. package/dist/src/onboarding/agents-generate.js +0 -352
  571. package/dist/src/onboarding/agents-generate.js.map +0 -1
  572. package/dist/src/onboarding/create.d.ts +0 -12
  573. package/dist/src/onboarding/create.d.ts.map +0 -1
  574. package/dist/src/onboarding/create.js +0 -318
  575. package/dist/src/onboarding/create.js.map +0 -1
  576. package/dist/src/onboarding/doctor.d.ts +0 -45
  577. package/dist/src/onboarding/doctor.d.ts.map +0 -1
  578. package/dist/src/onboarding/doctor.js +0 -1108
  579. package/dist/src/onboarding/doctor.js.map +0 -1
  580. package/dist/src/onboarding/init.d.ts +0 -32
  581. package/dist/src/onboarding/init.d.ts.map +0 -1
  582. package/dist/src/onboarding/init.js +0 -291
  583. package/dist/src/onboarding/init.js.map +0 -1
  584. package/dist/src/onboarding/invariant-engine.d.ts +0 -17
  585. package/dist/src/onboarding/invariant-engine.d.ts.map +0 -1
  586. package/dist/src/onboarding/invariant-engine.js +0 -416
  587. package/dist/src/onboarding/invariant-engine.js.map +0 -1
  588. package/dist/src/onboarding/memory-scaffold.d.ts +0 -18
  589. package/dist/src/onboarding/memory-scaffold.d.ts.map +0 -1
  590. package/dist/src/onboarding/memory-scaffold.js +0 -151
  591. package/dist/src/onboarding/memory-scaffold.js.map +0 -1
  592. package/dist/src/onboarding/nested-agents-generate.d.ts +0 -18
  593. package/dist/src/onboarding/nested-agents-generate.d.ts.map +0 -1
  594. package/dist/src/onboarding/nested-agents-generate.js +0 -69
  595. package/dist/src/onboarding/nested-agents-generate.js.map +0 -1
  596. package/dist/src/onboarding/nested-agents-templates.d.ts +0 -26
  597. package/dist/src/onboarding/nested-agents-templates.d.ts.map +0 -1
  598. package/dist/src/onboarding/nested-agents-templates.js +0 -178
  599. package/dist/src/onboarding/nested-agents-templates.js.map +0 -1
  600. package/dist/src/onboarding/profile-validate.d.ts +0 -13
  601. package/dist/src/onboarding/profile-validate.d.ts.map +0 -1
  602. package/dist/src/onboarding/profile-validate.js +0 -109
  603. package/dist/src/onboarding/profile-validate.js.map +0 -1
  604. package/dist/src/onboarding/scaffold-project.d.ts +0 -12
  605. package/dist/src/onboarding/scaffold-project.d.ts.map +0 -1
  606. package/dist/src/onboarding/scaffold-project.js +0 -248
  607. package/dist/src/onboarding/scaffold-project.js.map +0 -1
  608. package/dist/src/onboarding/scaffold.d.ts +0 -15
  609. package/dist/src/onboarding/scaffold.d.ts.map +0 -1
  610. package/dist/src/onboarding/scaffold.js +0 -120
  611. package/dist/src/onboarding/scaffold.js.map +0 -1
  612. package/dist/src/onboarding/upgrade.d.ts +0 -25
  613. package/dist/src/onboarding/upgrade.d.ts.map +0 -1
  614. package/dist/src/onboarding/upgrade.js +0 -391
  615. package/dist/src/onboarding/upgrade.js.map +0 -1
  616. package/dist/src/onboarding/workspace-discovery.d.ts +0 -11
  617. package/dist/src/onboarding/workspace-discovery.d.ts.map +0 -1
  618. package/dist/src/onboarding/workspace-discovery.js +0 -138
  619. package/dist/src/onboarding/workspace-discovery.js.map +0 -1
  620. package/dist/src/profiles/profile-schema.d.ts +0 -351
  621. package/dist/src/profiles/profile-schema.d.ts.map +0 -1
  622. package/dist/src/profiles/profile-schema.js +0 -201
  623. package/dist/src/profiles/profile-schema.js.map +0 -1
  624. package/dist/src/profiles/stack-profile.d.ts +0 -168
  625. package/dist/src/profiles/stack-profile.d.ts.map +0 -1
  626. package/dist/src/profiles/stack-profile.js +0 -144
  627. package/dist/src/profiles/stack-profile.js.map +0 -1
  628. package/dist/src/profiles/terminology-utils.d.ts +0 -8
  629. package/dist/src/profiles/terminology-utils.d.ts.map +0 -1
  630. package/dist/src/profiles/terminology-utils.js +0 -31
  631. package/dist/src/profiles/terminology-utils.js.map +0 -1
  632. package/dist/src/registry.d.ts +0 -38
  633. package/dist/src/registry.d.ts.map +0 -1
  634. package/dist/src/registry.js +0 -135
  635. package/dist/src/registry.js.map +0 -1
  636. package/dist/src/skill-schema.d.ts +0 -30
  637. package/dist/src/skill-schema.d.ts.map +0 -1
  638. package/dist/src/skill-schema.js +0 -34
  639. package/dist/src/skill-schema.js.map +0 -1
  640. package/dist/src/types.d.ts +0 -152
  641. package/dist/src/types.d.ts.map +0 -1
  642. package/dist/src/types.js +0 -17
  643. package/dist/src/types.js.map +0 -1
  644. package/dist/src/utils/fs-atomic.d.ts +0 -7
  645. package/dist/src/utils/fs-atomic.d.ts.map +0 -1
  646. package/dist/src/utils/fs-atomic.js +0 -81
  647. package/dist/src/utils/fs-atomic.js.map +0 -1
  648. package/dist/src/utils/fs-idempotent.d.ts +0 -2
  649. package/dist/src/utils/fs-idempotent.d.ts.map +0 -1
  650. package/dist/src/utils/fs-idempotent.js +0 -39
  651. package/dist/src/utils/fs-idempotent.js.map +0 -1
  652. package/dist/src/utils/fs-trash-sync.d.ts +0 -2
  653. package/dist/src/utils/fs-trash-sync.d.ts.map +0 -1
  654. package/dist/src/utils/fs-trash-sync.js +0 -34
  655. package/dist/src/utils/fs-trash-sync.js.map +0 -1
  656. package/dist/src/utils/fs-trash.d.ts +0 -2
  657. package/dist/src/utils/fs-trash.d.ts.map +0 -1
  658. package/dist/src/utils/fs-trash.js +0 -24
  659. package/dist/src/utils/fs-trash.js.map +0 -1
  660. package/dist/src/utils/fs.d.ts +0 -8
  661. package/dist/src/utils/fs.d.ts.map +0 -1
  662. package/dist/src/utils/fs.js +0 -60
  663. package/dist/src/utils/fs.js.map +0 -1
  664. package/dist/src/utils/generated-marker.d.ts +0 -21
  665. package/dist/src/utils/generated-marker.d.ts.map +0 -1
  666. package/dist/src/utils/generated-marker.js +0 -128
  667. package/dist/src/utils/generated-marker.js.map +0 -1
  668. package/dist/src/utils/hash.d.ts +0 -2
  669. package/dist/src/utils/hash.d.ts.map +0 -1
  670. package/dist/src/utils/hash.js +0 -18
  671. package/dist/src/utils/hash.js.map +0 -1
  672. package/dist/src/utils/index.d.ts +0 -9
  673. package/dist/src/utils/index.d.ts.map +0 -1
  674. package/dist/src/utils/index.js +0 -21
  675. package/dist/src/utils/index.js.map +0 -1
  676. package/dist/src/utils/string-utils.d.ts +0 -2
  677. package/dist/src/utils/string-utils.d.ts.map +0 -1
  678. package/dist/src/utils/string-utils.js +0 -19
  679. package/dist/src/utils/string-utils.js.map +0 -1
  680. package/dist/src/validators/note-frontmatter-validate.d.ts +0 -20
  681. package/dist/src/validators/note-frontmatter-validate.d.ts.map +0 -1
  682. package/dist/src/validators/note-frontmatter-validate.js +0 -117
  683. package/dist/src/validators/note-frontmatter-validate.js.map +0 -1
  684. package/dist/src/validators/note-link-validate.d.ts +0 -21
  685. package/dist/src/validators/note-link-validate.d.ts.map +0 -1
  686. package/dist/src/validators/note-link-validate.js +0 -121
  687. package/dist/src/validators/note-link-validate.js.map +0 -1
  688. package/dist/src/validators/note-orphan-detect.d.ts +0 -19
  689. package/dist/src/validators/note-orphan-detect.d.ts.map +0 -1
  690. package/dist/src/validators/note-orphan-detect.js +0 -123
  691. package/dist/src/validators/note-orphan-detect.js.map +0 -1
  692. package/dist/src/validators/port-validate.d.ts +0 -12
  693. package/dist/src/validators/port-validate.d.ts.map +0 -1
  694. package/dist/src/validators/port-validate.js +0 -78
  695. package/dist/src/validators/port-validate.js.map +0 -1
  696. package/dist/src/validators/skill-validate.d.ts +0 -29
  697. package/dist/src/validators/skill-validate.d.ts.map +0 -1
  698. package/dist/src/validators/skill-validate.js +0 -689
  699. package/dist/src/validators/skill-validate.js.map +0 -1
  700. package/profiles/editframe-templates/composition-agents.md +0 -69
  701. package/profiles/editframe-templates/composition.tsx +0 -81
  702. package/profiles/editframe-templates/html-composition-agents.md +0 -62
  703. package/profiles/editframe.yaml +0 -729
  704. package/profiles/obsidian-vault.yaml +0 -103
  705. package/skills/fo/ef-brand-video-generator/SKILL.md +0 -92
  706. package/skills/fo/ef-composition/SKILL.md +0 -156
  707. package/skills/fo/ef-composition-review/SKILL.md +0 -68
  708. package/skills/fo/ef-dev-server/SKILL.md +0 -107
  709. package/skills/fo/ef-editor-gui/SKILL.md +0 -131
  710. package/skills/fo/ef-motion-design/SKILL.md +0 -118
  711. package/skills/fo/ef-onboard/SKILL.md +0 -77
  712. package/skills/fo/ef-render-verify/SKILL.md +0 -56
  713. package/skills/fo/ef-webhooks/SKILL.md +0 -95
@@ -1,729 +0,0 @@
1
- schema: forge/stack-profile@1
2
- id: editframe
3
- displayName: Editframe Video
4
- detect:
5
- anyOf:
6
- - editframe.config.*
7
- domain: video
8
- register: creative
9
- terminology:
10
- artifact: composition
11
- artifactPlural: compositions
12
- module: scene
13
- source: composition file
14
- output: render
15
- verify: render-verify
16
- operator: director
17
- devServer:
18
- command: editframe preview
19
- port: 4321
20
- artifacts:
21
- - id: composition
22
- extensions:
23
- - .tsx
24
- - .html
25
- produce:
26
- command: editframe render
27
- output: dist/{composition}.mp4
28
- validate:
29
- command: editframe check
30
- determinism:
31
- hashable: true
32
- inputs:
33
- - compositions/**/*.tsx
34
- - compositions/**/*.html
35
- - assets/**
36
- assets:
37
- dir: assets
38
- types:
39
- - id: video
40
- extensions: [.mp4, .webm]
41
- referencePattern: 'src="([^"]+\.(?:mp4|webm))"'
42
- - id: audio
43
- extensions: [.mp3, .wav]
44
- referencePattern: 'src="([^"]+\.(?:mp3|wav))"'
45
- - id: image
46
- extensions: [.png, .jpg, .jpeg, .webp, .svg]
47
- referencePattern: 'src="([^"]+\.(?:png|jpe?g|webp|svg))"'
48
- release:
49
- target: local
50
- outputDir: release
51
- manifestName: release-manifest.json
52
- prerequisites:
53
- - id: nodejs
54
- name: Node.js 24+
55
- check: node --version
56
- installHint: "https://nodejs.org/en/download/"
57
- severity: error
58
- - id: ffmpeg
59
- name: FFmpeg
60
- check: ffmpeg -version
61
- installHint: "https://ffmpeg.org/download.html"
62
- severity: error
63
- workspaceTypes:
64
- - id: composition
65
- detect:
66
- glob: "*.tsx"
67
- contains: Timegroup
68
- packageJsonDep: "@editframe/react"
69
- skills:
70
- - ef-onboard
71
- - ef-composition-review
72
- - ef-render-verify
73
- agentsMdTemplate: editframe-templates/composition-agents.md
74
- - id: html-composition
75
- detect:
76
- glob: "*.html"
77
- contains: ef-timegroup
78
- packageJsonDep: "@editframe/cli"
79
- skills:
80
- - ef-onboard
81
- - ef-composition-review
82
- - ef-render-verify
83
- agentsMdTemplate: editframe-templates/html-composition-agents.md
84
- invariants:
85
- - id: VIDEO-01
86
- rule: Composition filenames must use kebab-case (lowercase letters, digits, hyphens only)
87
- severity: error
88
- check:
89
- kind: filename-pattern
90
- glob: "compositions/**/*.{tsx,html}"
91
- pattern: "^[a-z0-9-]+\\.(tsx|html)$"
92
- - id: VIDEO-02
93
- rule: Scene durations must use contain mode by default to avoid unexpected cropping
94
- severity: warning
95
- check:
96
- kind: file-contains
97
- glob: "compositions/**/*.{tsx,html}"
98
- pattern: contain
99
- - id: VIDEO-03
100
- rule: All speech audio elements must have corresponding Captions components for accessibility
101
- severity: error
102
- check:
103
- kind: file-contains
104
- glob: "compositions/**/*.{tsx,html}"
105
- pattern: Captions
106
- - id: VIDEO-04
107
- rule: Root Timegroup must declare duration or use mode="contain" or mode="fit"
108
- severity: error
109
- check:
110
- kind: file-contains
111
- glob: "compositions/**/*.{tsx,html}"
112
- pattern: 'Timegroup[^>]*(duration|mode="contain"|mode="fit")[^>]*>|ef-timegroup[^>]*(duration|mode="contain"|mode="fit")[^>]*>'
113
- - id: VIDEO-05
114
- rule: All duration values must be valid CSS time strings (e.g. 5s, 500ms, 2.5s)
115
- severity: error
116
- check:
117
- kind: attribute-pattern
118
- glob: "compositions/**/*.{tsx,html}"
119
- elements:
120
- - ef-timegroup
121
- - Timegroup
122
- attribute: "duration"
123
- pattern: "^\\d+(\\.\\d+)?(s|ms)$"
124
- - id: VIDEO-06
125
- rule: "mode attribute must be one of: sequence, fixed, contain, fit"
126
- severity: error
127
- check:
128
- kind: attribute-pattern
129
- glob: "compositions/**/*.{tsx,html}"
130
- elements:
131
- - ef-timegroup
132
- - Timegroup
133
- attribute: "mode"
134
- pattern: "^(sequence|fixed|contain|fit)$"
135
- - id: VIDEO-07
136
- rule: fps must be a positive integer (default 30)
137
- severity: warning
138
- check:
139
- kind: attribute-pattern
140
- glob: "compositions/**/*.{tsx,html}"
141
- elements:
142
- - ef-timegroup
143
- - Timegroup
144
- attribute: "fps"
145
- pattern: "^[1-9]\\d*$"
146
- - id: VIDEO-08
147
- rule: loop attribute should only be used on the root Timegroup (no effect on render for nested groups)
148
- severity: warning
149
- check:
150
- kind: file-not-contains
151
- glob: "compositions/**/*.{tsx,html}"
152
- negatedPattern: "<(Timegroup|ef-timegroup)[^>]*loop[^>]*>[\\s\\S]*<(Timegroup|ef-timegroup)[^>]*loop"
153
- - id: VIDEO-09
154
- rule: offset values must be valid CSS time strings (e.g. 0.5s, 3s, 500ms)
155
- severity: warning
156
- check:
157
- kind: attribute-pattern
158
- glob: "compositions/**/*.{tsx,html}"
159
- elements:
160
- - ef-timegroup
161
- - Timegroup
162
- attribute: "offset"
163
- pattern: "^\\d+(\\.\\d+)?(s|ms)$"
164
- workspace:
165
- dirs:
166
- - compositions
167
- - packages
168
- - services
169
- files:
170
- - path: pnpm-workspace.yaml
171
- content: |
172
- packages:
173
- - "compositions/*"
174
- - "packages/*"
175
- - "services/*"
176
- allowBuilds:
177
- "@editframe/cli": true
178
- node-av: true
179
- - path: turbo.json
180
- content: |
181
- {
182
- "$schema": "https://turbo.build/schema.json",
183
- "tasks": {
184
- "build": {
185
- "dependsOn": ["^build"],
186
- "outputs": ["dist/**"]
187
- },
188
- "build:check": {
189
- "dependsOn": ["^build:check"]
190
- },
191
- "test": {
192
- "dependsOn": ["^build:check"]
193
- }
194
- }
195
- }
196
- - path: .gitignore
197
- content: |
198
- node_modules
199
- dist
200
- .turbo
201
- .cache
202
- operator-profile.md
203
- - path: .github/workflows/ci.yml
204
- content: |
205
- name: CI
206
-
207
- on:
208
- pull_request:
209
- push:
210
- branches: [main]
211
- workflow_dispatch:
212
-
213
- concurrency:
214
- group: ${{ github.workflow }}-${{ github.ref }}
215
- cancel-in-progress: ${{ github.event_name == 'pull_request' }}
216
-
217
- permissions:
218
- contents: read
219
-
220
- jobs:
221
- ci:
222
- runs-on: ubuntu-latest
223
- timeout-minutes: 15
224
- name: Lint, type-check, build, test
225
- env:
226
- TZ: UTC
227
-
228
- steps:
229
- - name: Checkout
230
- uses: actions/checkout@v5
231
-
232
- - name: Enable Corepack
233
- run: corepack enable
234
-
235
- - name: Setup Node.js
236
- uses: actions/setup-node@v5
237
- with:
238
- node-version: "24"
239
- cache: "pnpm"
240
-
241
- - name: Install dependencies
242
- run: pnpm install --frozen-lockfile
243
-
244
- - name: Format check
245
- run: pnpm format:check
246
-
247
- - name: Type check
248
- run: pnpm build:check
249
-
250
- - name: Build
251
- run: pnpm build
252
-
253
- - name: Test
254
- run: pnpm test
255
-
256
- # Windows CI (optional — uncomment if Windows checks are needed):
257
- #
258
- # windows-ci:
259
- # runs-on: windows-latest
260
- # name: Lint, type-check, build, test (Windows)
261
- # env:
262
- # GIT_CONFIG_COUNT: 1
263
- # GIT_CONFIG_KEY_0: core.longpaths
264
- # GIT_CONFIG_VALUE_0: "true"
265
- # steps:
266
- # - name: Checkout
267
- # uses: actions/checkout@v5
268
- # - name: Enable Corepack
269
- # run: corepack enable
270
- # - name: Setup Node.js
271
- # uses: actions/setup-node@v5
272
- # with:
273
- # node-version: "24"
274
- # cache: "pnpm"
275
- # - name: Install dependencies
276
- # run: pnpm install --frozen-lockfile
277
- # - name: Format check
278
- # run: pnpm format:check
279
- # - name: Type check
280
- # run: pnpm build:check
281
- # - name: Build
282
- # run: pnpm build
283
- # - name: Test
284
- # run: pnpm test
285
- #
286
- # The GIT_CONFIG_COUNT env block MUST be set before the checkout step
287
- # so git can handle long file paths during clone on Windows.
288
- # Do not add Windows to the matrix "just in case" — it requires
289
- # separate path-length and platform-specific dependency verification.
290
- - path: package.json
291
- content: |
292
- {
293
- "name": "__PROJECT_NAME__",
294
- "version": "0.1.0",
295
- "private": true,
296
- "type": "module",
297
- "packageManager": "pnpm@11.10.0",
298
- "engines": {
299
- "node": ">=24 <25"
300
- },
301
- "scripts": {
302
- "clean": "node scripts/clean.mjs",
303
- "format": "prettier --write .",
304
- "format:check": "prettier --check .",
305
- "build": "turbo run build",
306
- "build:check": "turbo run build:check",
307
- "test": "turbo run test",
308
- "upgrade-packages": "pnpm -r up"
309
- }
310
- }
311
- - path: .prettierrc.mjs
312
- content: |
313
- /** @type {import("prettier").Config} */
314
- export default {
315
- semi: true,
316
- singleQuote: false,
317
- trailingComma: "all",
318
- printWidth: 100,
319
- tabWidth: 2,
320
- };
321
- - path: scripts/clean.mjs
322
- content: |
323
- import { readdir, rm } from "node:fs/promises";
324
- import { join } from "node:path";
325
- import { fileURLToPath } from "node:url";
326
-
327
- const TARGETS = new Set(["node_modules", ".turbo", "dist", ".cache"]);
328
-
329
- const repoRoot = join(fileURLToPath(import.meta.url), "..", "..");
330
-
331
- async function walk(dir, toDelete) {
332
- const entries = await readdir(dir, { withFileTypes: true });
333
- for (const entry of entries) {
334
- if (!entry.isDirectory()) continue;
335
- const name = entry.name;
336
- const fullPath = join(dir, name);
337
- if (TARGETS.has(name)) {
338
- toDelete.push(fullPath);
339
- continue;
340
- }
341
- await walk(fullPath, toDelete);
342
- }
343
- }
344
-
345
- const toDelete = [];
346
- await walk(repoRoot, toDelete);
347
-
348
- if (toDelete.length === 0) {
349
- console.log("Nothing to clean.");
350
- process.exit(0);
351
- }
352
-
353
- await Promise.all(toDelete.map((p) => rm(p, { recursive: true, force: true })));
354
-
355
- for (const p of toDelete) {
356
- console.log("deleted", p.replace(repoRoot + "/", ""));
357
- }
358
-
359
- console.log(`Cleaned ${toDelete.length} directories.`);
360
- install:
361
- - pnpm add -w -D @editframe/cli @warpgogol/forge turbo prettier
362
- firstWorkspace:
363
- path: compositions/my-first-video
364
- files:
365
- - path: package.json
366
- content: |
367
- {
368
- "name": "my-first-video",
369
- "version": "0.1.0",
370
- "private": true,
371
- "type": "module",
372
- "scripts": {
373
- "preview": "editframe preview",
374
- "render": "editframe render -o dist/my-first-video.mp4",
375
- "check": "editframe check"
376
- }
377
- }
378
- - path: index.html
379
- content: |
380
- <!doctype html>
381
- <html lang="en">
382
- <head>
383
- <meta charset="UTF-8" />
384
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
385
- <title>my-first-video</title>
386
- </head>
387
- <body>
388
- <div id="root"></div>
389
- <script type="module" src="/src/main.tsx"></script>
390
- </body>
391
- </html>
392
- - path: src/main.tsx
393
- content: |
394
- import React from "react";
395
- import { createRoot } from "react-dom/client";
396
- import "@editframe/elements/gui";
397
- import "@editframe/elements/styles.css";
398
- import Composition from "../composition";
399
-
400
- document.documentElement.style.height = "100%";
401
- document.body.style.height = "100%";
402
- document.body.style.margin = "0";
403
- const rootEl = document.getElementById("root");
404
- if (rootEl) rootEl.style.height = "100%";
405
-
406
- const styleOverride = document.createElement("style");
407
- styleOverride.textContent = "ef-workbench { display: grid; }";
408
- document.head.appendChild(styleOverride);
409
-
410
- const root = document.getElementById("root");
411
- if (!root) throw new Error("#root element not found");
412
-
413
- createRoot(root).render(
414
- <React.StrictMode>
415
- <Composition />
416
- </React.StrictMode>,
417
- );
418
- - path: vite.config.ts
419
- content: |
420
- import { defineConfig } from "vite";
421
- import react from "@vitejs/plugin-react";
422
- import { vitePluginEditframe as editframePlugin } from "@editframe/vite-plugin";
423
- import tailwindcss from "@tailwindcss/vite";
424
- import path from "node:path";
425
-
426
- const root = import.meta.dirname;
427
- const cacheRoot = path.join(root, ".ef-cache");
428
-
429
- export default defineConfig({
430
- plugins: [react(), tailwindcss(), editframePlugin({ root, cacheRoot })],
431
- });
432
- - path: tsconfig.json
433
- content: |
434
- {
435
- "compilerOptions": {
436
- "target": "ES2022",
437
- "module": "ESNext",
438
- "moduleResolution": "bundler",
439
- "jsx": "react-jsx",
440
- "strict": true,
441
- "esModuleInterop": true,
442
- "skipLibCheck": true,
443
- "noEmit": true,
444
- "lib": ["ES2022", "DOM", "DOM.Iterable"]
445
- },
446
- "include": ["src", "composition.tsx", "vite.config.ts"]
447
- }
448
- - path: src/index.css
449
- content: |
450
- @import "tailwindcss";
451
- - path: composition.tsx
452
- content: |
453
- /*
454
- Editframe React composition — my-first-video
455
- This file declares a video composition using @editframe/react components.
456
- Run `editframe preview` to preview, `editframe render` to produce output.
457
- */
458
- import { useEffect, useRef } from "react";
459
- import { Configuration, Timegroup, Text, Workbench } from "@editframe/react";
460
-
461
- const EFWorkbench = Workbench as any;
462
- const EFConfiguration = Configuration as any;
463
- const EFTimegroup = Timegroup as any;
464
- const EFText = Text as any;
465
-
466
- export default function Composition() {
467
- const workbenchRef = useRef<HTMLElement>(null);
468
-
469
- useEffect(() => {
470
- const wb = workbenchRef.current;
471
- if (!wb) return;
472
-
473
- const fixReplay = () => {
474
- const config = wb.querySelector("ef-configuration");
475
- const controller = (config as any)?.playback;
476
- if (!controller) return;
477
-
478
- const originalPlay = controller.play.bind(controller);
479
- controller.play = (opts?: any) => {
480
- if (!opts?.from && controller.currentTime >= controller.duration) {
481
- originalPlay({ from: 0, to: opts?.to });
482
- return;
483
- }
484
- originalPlay(opts);
485
- };
486
- };
487
-
488
- fixReplay();
489
- wb.addEventListener("playback-attached", fixReplay);
490
- return () => wb.removeEventListener("playback-attached", fixReplay);
491
- }, []);
492
-
493
- return (
494
- <EFWorkbench ref={workbenchRef} resolution="1920x1080">
495
- <EFConfiguration>
496
- <EFTimegroup
497
- id="root"
498
- duration="10s"
499
- mode="contain"
500
- style={{
501
- width: "1920px",
502
- height: "1080px",
503
- background: "#000",
504
- display: "flex",
505
- alignItems: "center",
506
- justifyContent: "center",
507
- }}
508
- >
509
- <EFText
510
- duration="10s"
511
- style={{
512
- color: "white",
513
- fontSize: "72px",
514
- textAlign: "center",
515
- fontFamily: "ui-sans-serif, system-ui, sans-serif",
516
- opacity: "min(1, var(--ef-progress, 0) * 5)",
517
- transform: "scale(min(1, 0.8 + var(--ef-progress, 0) * 0.2))",
518
- }}
519
- >
520
- Hello, Editframe!
521
- </EFText>
522
- </EFTimegroup>
523
- </EFConfiguration>
524
- </EFWorkbench>
525
- );
526
- }
527
- install:
528
- - pnpm add -D @editframe/react @editframe/elements @editframe/vite-plugin @editframe/dev-server react react-dom typescript @types/react @types/react-dom vite @vitejs/plugin-react tailwindcss @tailwindcss/vite vitest
529
- templates:
530
- - id: react
531
- default: true
532
- firstWorkspace:
533
- path: compositions/my-first-video
534
- files:
535
- - path: package.json
536
- content: |
537
- {
538
- "name": "my-first-video",
539
- "version": "0.1.0",
540
- "private": true,
541
- "type": "module",
542
- "scripts": {
543
- "preview": "editframe preview",
544
- "render": "editframe render -o dist/my-first-video.mp4",
545
- "check": "editframe check"
546
- }
547
- }
548
- - path: index.html
549
- content: |
550
- <!doctype html>
551
- <html lang="en">
552
- <head>
553
- <meta charset="UTF-8" />
554
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
555
- <title>my-first-video</title>
556
- </head>
557
- <body>
558
- <div id="root"></div>
559
- <script type="module" src="/src/main.tsx"></script>
560
- </body>
561
- </html>
562
- - path: src/main.tsx
563
- content: |
564
- import React from "react";
565
- import { createRoot } from "react-dom/client";
566
- import "@editframe/elements/gui";
567
- import "@editframe/elements/styles.css";
568
- import Composition from "../composition";
569
-
570
- document.documentElement.style.height = "100%";
571
- document.body.style.height = "100%";
572
- document.body.style.margin = "0";
573
- const rootEl = document.getElementById("root");
574
- if (rootEl) rootEl.style.height = "100%";
575
-
576
- const styleOverride = document.createElement("style");
577
- styleOverride.textContent = "ef-workbench { display: grid; }";
578
- document.head.appendChild(styleOverride);
579
-
580
- const root = document.getElementById("root");
581
- if (!root) throw new Error("#root element not found");
582
-
583
- createRoot(root).render(
584
- <React.StrictMode>
585
- <Composition />
586
- </React.StrictMode>,
587
- );
588
- - path: vite.config.ts
589
- content: |
590
- import { defineConfig } from "vite";
591
- import react from "@vitejs/plugin-react";
592
- import { vitePluginEditframe as editframePlugin } from "@editframe/vite-plugin";
593
- import tailwindcss from "@tailwindcss/vite";
594
- import path from "node:path";
595
-
596
- const root = import.meta.dirname;
597
- const cacheRoot = path.join(root, ".ef-cache");
598
-
599
- export default defineConfig({
600
- plugins: [react(), tailwindcss(), editframePlugin({ root, cacheRoot })],
601
- });
602
- - path: tsconfig.json
603
- content: |
604
- {
605
- "compilerOptions": {
606
- "target": "ES2022",
607
- "module": "ESNext",
608
- "moduleResolution": "bundler",
609
- "jsx": "react-jsx",
610
- "strict": true,
611
- "esModuleInterop": true,
612
- "skipLibCheck": true,
613
- "noEmit": true,
614
- "lib": ["ES2022", "DOM", "DOM.Iterable"]
615
- },
616
- "include": ["src", "composition.tsx", "vite.config.ts"]
617
- }
618
- - path: src/index.css
619
- content: |
620
- @import "tailwindcss";
621
- - path: composition.tsx
622
- content: |
623
- /*
624
- Editframe React composition — my-first-video
625
- This file declares a video composition using @editframe/react components.
626
- Run `editframe preview` to preview, `editframe render` to produce output.
627
- */
628
- import { useEffect, useRef } from "react";
629
- import { Configuration, Timegroup, Text, Workbench } from "@editframe/react";
630
-
631
- const EFWorkbench = Workbench as any;
632
- const EFConfiguration = Configuration as any;
633
- const EFTimegroup = Timegroup as any;
634
- const EFText = Text as any;
635
-
636
- export default function Composition() {
637
- const workbenchRef = useRef<HTMLElement>(null);
638
-
639
- useEffect(() => {
640
- const wb = workbenchRef.current;
641
- if (!wb) return;
642
-
643
- const fixReplay = () => {
644
- const config = wb.querySelector("ef-configuration");
645
- const controller = (config as any)?.playback;
646
- if (!controller) return;
647
-
648
- const originalPlay = controller.play.bind(controller);
649
- controller.play = (opts?: any) => {
650
- if (!opts?.from && controller.currentTime >= controller.duration) {
651
- originalPlay({ from: 0, to: opts?.to });
652
- return;
653
- }
654
- originalPlay(opts);
655
- };
656
- };
657
-
658
- fixReplay();
659
- wb.addEventListener("playback-attached", fixReplay);
660
- return () => wb.removeEventListener("playback-attached", fixReplay);
661
- }, []);
662
-
663
- return (
664
- <EFWorkbench ref={workbenchRef} resolution="1920x1080">
665
- <EFConfiguration>
666
- <EFTimegroup
667
- id="root"
668
- duration="10s"
669
- mode="contain"
670
- style={{
671
- width: "1920px",
672
- height: "1080px",
673
- background: "#000",
674
- display: "flex",
675
- alignItems: "center",
676
- justifyContent: "center",
677
- }}
678
- >
679
- <EFText
680
- duration="10s"
681
- style={{
682
- color: "white",
683
- fontSize: "72px",
684
- textAlign: "center",
685
- fontFamily: "ui-sans-serif, system-ui, sans-serif",
686
- opacity: "min(1, var(--ef-progress, 0) * 5)",
687
- transform: "scale(min(1, 0.8 + var(--ef-progress, 0) * 0.2))",
688
- }}
689
- >
690
- Hello, Editframe!
691
- </EFText>
692
- </EFTimegroup>
693
- </EFConfiguration>
694
- </EFWorkbench>
695
- );
696
- }
697
- install:
698
- - pnpm add -D @editframe/react @editframe/elements @editframe/vite-plugin @editframe/dev-server react react-dom typescript @types/react @types/react-dom vite @vitejs/plugin-react tailwindcss @tailwindcss/vite vitest
699
- - id: html
700
- firstWorkspace:
701
- path: compositions/my-first-video
702
- files:
703
- - path: package.json
704
- content: |
705
- {
706
- "name": "my-first-video",
707
- "version": "0.1.0",
708
- "private": true,
709
- "type": "module",
710
- "scripts": {
711
- "preview": "editframe preview",
712
- "render": "editframe render -o dist/my-first-video.mp4",
713
- "check": "editframe check"
714
- }
715
- }
716
- - path: index.html
717
- content: |
718
- <!--
719
- Editframe HTML composition — my-first-video
720
- This file declares a video composition using Editframe web components.
721
- Run `editframe preview` to preview, `editframe render` to produce output.
722
- -->
723
- <ef-timeline duration="10s">
724
- <ef-timegroup duration="10s" mode="contain" style="width:1920px;height:1080px;background:#000;display:flex;align-items:center;justify-content:center;">
725
- <ef-text duration="5s" style="color:white;font-size:48px;text-align:center;">Hello, Editframe!</ef-text>
726
- </ef-timegroup>
727
- </ef-timeline>
728
- install:
729
- - pnpm add -D vitest