layerweave 0.7.9b1__py3-none-any.whl

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 (344) hide show
  1. layerweave/__init__.py +4 -0
  2. layerweave/__main__.py +5 -0
  3. layerweave/component.toml +5 -0
  4. layerweave/configs/README.md +15 -0
  5. layerweave/configs/layers/README.md +41 -0
  6. layerweave/configs/layers/active.toml +27 -0
  7. layerweave/configs/layers/audio.toml +27 -0
  8. layerweave/configs/layers/base.toml +47 -0
  9. layerweave/configs/layers/image.toml +28 -0
  10. layerweave/configs/layers/model.toml +25 -0
  11. layerweave/configs/layers/movie.toml +31 -0
  12. layerweave/configs/layers/note.toml +27 -0
  13. layerweave/configs/layers/text.toml +29 -0
  14. layerweave/configs/logging/README.md +7 -0
  15. layerweave/configs/logging/diagnostics.toml +29 -0
  16. layerweave/configs/objects/README.md +11 -0
  17. layerweave/configs/objects/active.toml +34 -0
  18. layerweave/configs/objects/audio.toml +32 -0
  19. layerweave/configs/objects/base.toml +46 -0
  20. layerweave/configs/objects/image.toml +32 -0
  21. layerweave/configs/objects/model.toml +34 -0
  22. layerweave/configs/objects/movie.toml +32 -0
  23. layerweave/configs/objects/note.toml +29 -0
  24. layerweave/configs/objects/text.toml +32 -0
  25. layerweave/configs/objects/title.toml +16 -0
  26. layerweave/core/README.md +9 -0
  27. layerweave/core/__init__.py +15 -0
  28. layerweave/core/encapsulation.py +55 -0
  29. layerweave/core/identity.py +11 -0
  30. layerweave/core/values.py +12 -0
  31. layerweave/models/README.md +30 -0
  32. layerweave/models/__init__.py +17 -0
  33. layerweave/models/layers/__init__.py +15 -0
  34. layerweave/models/layers/active.py +7 -0
  35. layerweave/models/layers/audio.py +7 -0
  36. layerweave/models/layers/base.py +20 -0
  37. layerweave/models/layers/image.py +7 -0
  38. layerweave/models/layers/model.py +7 -0
  39. layerweave/models/layers/movie.py +7 -0
  40. layerweave/models/layers/text.py +7 -0
  41. layerweave/models/objects/__init__.py +15 -0
  42. layerweave/models/objects/active.py +7 -0
  43. layerweave/models/objects/audio.py +7 -0
  44. layerweave/models/objects/base.py +19 -0
  45. layerweave/models/objects/image.py +7 -0
  46. layerweave/models/objects/model.py +7 -0
  47. layerweave/models/objects/movie.py +7 -0
  48. layerweave/models/objects/text.py +7 -0
  49. layerweave/models/objects/title.py +7 -0
  50. layerweave/support/API.md +167 -0
  51. layerweave/support/DIAGNOSTICS.md +50 -0
  52. layerweave/support/README.md +18 -0
  53. layerweave/support/__init__.py +1 -0
  54. layerweave/support/api.py +65 -0
  55. layerweave/support/channel.py +35 -0
  56. layerweave/support/cli.py +47 -0
  57. layerweave/support/command_schema.py +61 -0
  58. layerweave/support/command_sources.py +59 -0
  59. layerweave/support/commands.py +142 -0
  60. layerweave/support/configuration/README.md +69 -0
  61. layerweave/support/configuration/__init__.py +1 -0
  62. layerweave/support/configuration/loader.py +164 -0
  63. layerweave/support/diagnostics.py +95 -0
  64. layerweave/support/feedback.py +100 -0
  65. layerweave/support/numbering/README.md +125 -0
  66. layerweave/support/numbering/__init__.py +5 -0
  67. layerweave/support/numbering/registry.py +139 -0
  68. layerweave/support/numbering/service.py +71 -0
  69. layerweave/support/numbering/state.py +138 -0
  70. layerweave/support/operation.py +32 -0
  71. layerweave/support/paths.py +8 -0
  72. layerweave/support/positions.py +83 -0
  73. layerweave/support/providers.py +39 -0
  74. layerweave/support/records.py +46 -0
  75. layerweave/support/storage/README.md +18 -0
  76. layerweave/support/storage/SCHEMA.md +113 -0
  77. layerweave/support/storage/__init__.py +1 -0
  78. layerweave/support/storage/assembly.py +61 -0
  79. layerweave/support/storage/change_feed.py +39 -0
  80. layerweave/support/storage/crud.py +236 -0
  81. layerweave/support/storage/database.py +86 -0
  82. layerweave/support/storage/details.py +89 -0
  83. layerweave/support/storage/errors.py +116 -0
  84. layerweave/support/storage/journal.py +48 -0
  85. layerweave/support/storage/log_reader.py +40 -0
  86. layerweave/support/storage/models.py +67 -0
  87. layerweave/support/storage/queries.py +80 -0
  88. layerweave/support/storage/references.py +41 -0
  89. layerweave/support/storage/restoration.py +41 -0
  90. layerweave/support/storage/save.py +153 -0
  91. layerweave/support/storage/schema.sql +95 -0
  92. layerweave/support/storage/snapshot.py +12 -0
  93. layerweave/support/storage/tables.py +244 -0
  94. layerweave/support/transaction.py +152 -0
  95. layerweave/support/values.py +2 -0
  96. layerweave/tool/README.md +100 -0
  97. layerweave/tool/__init__.py +1 -0
  98. layerweave/tool/builtin/README.md +19 -0
  99. layerweave/tool/builtin/__init__.py +1 -0
  100. layerweave/tool/builtin/developer/README.md +67 -0
  101. layerweave/tool/builtin/developer/SKILLS.md +74 -0
  102. layerweave/tool/builtin/developer/TOOL_TYPES.md +57 -0
  103. layerweave/tool/builtin/developer/__init__.py +1 -0
  104. layerweave/tool/builtin/developer/database/__init__.py +1 -0
  105. layerweave/tool/builtin/developer/database/cli.py +41 -0
  106. layerweave/tool/builtin/developer/database/component.toml +5 -0
  107. layerweave/tool/builtin/developer/keys/README.md +150 -0
  108. layerweave/tool/builtin/developer/keys/__init__.py +1 -0
  109. layerweave/tool/builtin/developer/keys/cli.py +146 -0
  110. layerweave/tool/builtin/developer/keys/component.toml +5 -0
  111. layerweave/tool/builtin/developer/keys/example.json +9 -0
  112. layerweave/tool/builtin/developer/keys/service.py +164 -0
  113. layerweave/tool/builtin/developer/skills/__init__.py +1 -0
  114. layerweave/tool/builtin/developer/skills/cli.py +197 -0
  115. layerweave/tool/builtin/developer/skills/component.toml +5 -0
  116. layerweave/tool/builtin/developer/versions/README.md +84 -0
  117. layerweave/tool/builtin/developer/versions/__init__.py +4 -0
  118. layerweave/tool/builtin/developer/versions/cli.py +83 -0
  119. layerweave/tool/builtin/developer/versions/component.toml +5 -0
  120. layerweave/tool/builtin/developer/versions/discovery.py +72 -0
  121. layerweave/tool/builtin/developer/versions/service.py +91 -0
  122. layerweave/tool/builtin/shared/__init__.py +1 -0
  123. layerweave/tool/builtin/shared/help/COMMANDS.md +75 -0
  124. layerweave/tool/builtin/shared/help/CONFIG_HELP.md +95 -0
  125. layerweave/tool/builtin/shared/help/README.md +22 -0
  126. layerweave/tool/builtin/shared/help/__init__.py +1 -0
  127. layerweave/tool/builtin/shared/help/catalog.py +180 -0
  128. layerweave/tool/builtin/shared/help/command_help.py +72 -0
  129. layerweave/tool/builtin/shared/help/component.toml +5 -0
  130. layerweave/tool/builtin/shared/help/config_help.py +244 -0
  131. layerweave/tool/builtin/shared/help/help_data.py +106 -0
  132. layerweave/tool/builtin/shared/launcher/README.md +45 -0
  133. layerweave/tool/builtin/shared/launcher/__init__.py +1 -0
  134. layerweave/tool/builtin/shared/launcher/__main__.py +100 -0
  135. layerweave/tool/builtin/shared/launcher/catalog.py +105 -0
  136. layerweave/tool/builtin/shared/launcher/component.toml +5 -0
  137. layerweave/tool/builtin/shared/launcher/data/article-reading.zip +0 -0
  138. layerweave/tool/builtin/shared/launcher/data/catalog.json +82 -0
  139. layerweave/tool/builtin/shared/launcher/projects.py +83 -0
  140. layerweave/tool/builtin/shared/mcp/README.md +236 -0
  141. layerweave/tool/builtin/shared/mcp/__init__.py +14 -0
  142. layerweave/tool/builtin/shared/mcp/__main__.py +56 -0
  143. layerweave/tool/builtin/shared/mcp/catalog.py +204 -0
  144. layerweave/tool/builtin/shared/mcp/component.toml +5 -0
  145. layerweave/tool/builtin/shared/mcp/example.json +10 -0
  146. layerweave/tool/builtin/shared/mcp/materials.py +72 -0
  147. layerweave/tool/builtin/shared/mcp/results.py +185 -0
  148. layerweave/tool/builtin/shared/mcp/runtime.py +368 -0
  149. layerweave/tool/builtin/shared/mcp/server.py +133 -0
  150. layerweave/tool/builtin/shared/mcp/settings.py +68 -0
  151. layerweave/tool/builtin/usage/CRUD.md +152 -0
  152. layerweave/tool/builtin/usage/EDITING.md +239 -0
  153. layerweave/tool/builtin/usage/GUIDE.md +357 -0
  154. layerweave/tool/builtin/usage/HISTORY.md +130 -0
  155. layerweave/tool/builtin/usage/README.md +85 -0
  156. layerweave/tool/builtin/usage/SUBTREES.md +88 -0
  157. layerweave/tool/builtin/usage/__init__.py +1 -0
  158. layerweave/tool/builtin/usage/editing/IMPLEMENTATION.md +35 -0
  159. layerweave/tool/builtin/usage/editing/TREES.md +27 -0
  160. layerweave/tool/builtin/usage/editing/__init__.py +1 -0
  161. layerweave/tool/builtin/usage/editing/_plan.py +59 -0
  162. layerweave/tool/builtin/usage/editing/_records.py +61 -0
  163. layerweave/tool/builtin/usage/editing/component.toml +5 -0
  164. layerweave/tool/builtin/usage/editing/gaps.py +122 -0
  165. layerweave/tool/builtin/usage/editing/objects.py +158 -0
  166. layerweave/tool/builtin/usage/editing/positions.py +260 -0
  167. layerweave/tool/builtin/usage/editing/split.py +71 -0
  168. layerweave/tool/builtin/usage/editing/subtrees.py +95 -0
  169. layerweave/tool/builtin/usage/editing/timeline.py +263 -0
  170. layerweave/tool/builtin/usage/editing/transfer.py +68 -0
  171. layerweave/tool/builtin/usage/editing/transfer_objects.py +57 -0
  172. layerweave/tool/builtin/usage/editing/tree_service.py +263 -0
  173. layerweave/tool/builtin/usage/editing/upsert.py +149 -0
  174. layerweave/tool/builtin/usage/exchange/DEVELOPMENT.md +70 -0
  175. layerweave/tool/builtin/usage/exchange/FORMAT.md +152 -0
  176. layerweave/tool/builtin/usage/exchange/README.md +117 -0
  177. layerweave/tool/builtin/usage/exchange/__init__.py +15 -0
  178. layerweave/tool/builtin/usage/exchange/cli.py +291 -0
  179. layerweave/tool/builtin/usage/exchange/component.toml +5 -0
  180. layerweave/tool/builtin/usage/exchange/exporting.py +139 -0
  181. layerweave/tool/builtin/usage/exchange/files.py +61 -0
  182. layerweave/tool/builtin/usage/exchange/format.py +73 -0
  183. layerweave/tool/builtin/usage/exchange/importing.py +358 -0
  184. layerweave/tool/builtin/usage/exchange/templates/hand-drawn-video.json +339 -0
  185. layerweave/tool/builtin/usage/exchange/templates/storyboard.json +175 -0
  186. layerweave/tool/builtin/usage/exchange/templates/subtitles.json +17 -0
  187. layerweave/tool/builtin/usage/history/__init__.py +1 -0
  188. layerweave/tool/builtin/usage/history/cli.py +102 -0
  189. layerweave/tool/builtin/usage/history/component.toml +5 -0
  190. layerweave/tool/builtin/usage/history/service.py +83 -0
  191. layerweave/tool/builtin/usage/query/__init__.py +1 -0
  192. layerweave/tool/builtin/usage/query/_hierarchy.py +24 -0
  193. layerweave/tool/builtin/usage/query/component.toml +5 -0
  194. layerweave/tool/builtin/usage/query/find_objects.py +68 -0
  195. layerweave/tool/builtin/usage/query/free_ranges.py +103 -0
  196. layerweave/tool/builtin/usage/query/project_details.py +115 -0
  197. layerweave/tool/builtin/usage/query/project_overview.py +78 -0
  198. layerweave/tool/builtin/usage/query/relations.py +58 -0
  199. layerweave/tool/builtin/usage/query/walk.py +106 -0
  200. layerweave/tool/builtin/usage/records/__init__.py +1 -0
  201. layerweave/tool/builtin/usage/records/cli.py +133 -0
  202. layerweave/tool/builtin/usage/records/component.toml +5 -0
  203. layerweave/tool/builtin/usage/records/dispatch.py +95 -0
  204. layerweave/tool/builtin/usage/records/save.py +14 -0
  205. layerweave/tool/builtin/usage/text/__init__.py +1 -0
  206. layerweave/tool/builtin/usage/text/collect.py +107 -0
  207. layerweave/tool/builtin/usage/text/component.toml +5 -0
  208. layerweave/tool/builtin/usage/undo/IMPLEMENTATION.md +33 -0
  209. layerweave/tool/builtin/usage/undo/__init__.py +1 -0
  210. layerweave/tool/builtin/usage/undo/cli.py +59 -0
  211. layerweave/tool/builtin/usage/undo/component.toml +5 -0
  212. layerweave/tool/builtin/usage/undo/service.py +149 -0
  213. layerweave/tool/builtin/usage/validation/README.md +19 -0
  214. layerweave/tool/builtin/usage/validation/RULES.md +137 -0
  215. layerweave/tool/builtin/usage/validation/__init__.py +2 -0
  216. layerweave/tool/builtin/usage/validation/cli.py +62 -0
  217. layerweave/tool/builtin/usage/validation/component.toml +5 -0
  218. layerweave/tool/builtin/usage/validation/declarations.py +33 -0
  219. layerweave/tool/builtin/usage/validation/recheck.py +41 -0
  220. layerweave/tool/builtin/usage/validation/registry.py +50 -0
  221. layerweave/tool/builtin/usage/validation/rules/__init__.py +1 -0
  222. layerweave/tool/builtin/usage/validation/rules/binds.py +17 -0
  223. layerweave/tool/builtin/usage/validation/rules/fields.py +74 -0
  224. layerweave/tool/builtin/usage/validation/rules/layers.py +89 -0
  225. layerweave/tool/builtin/usage/validation/rules/objects.py +21 -0
  226. layerweave/tool/builtin/usage/validation/runner.py +231 -0
  227. layerweave/tool/builtin/view/DEVELOPMENT.md +108 -0
  228. layerweave/tool/builtin/view/GUIDE.md +189 -0
  229. layerweave/tool/builtin/view/INCREMENTAL.md +123 -0
  230. layerweave/tool/builtin/view/LANGUAGES.md +69 -0
  231. layerweave/tool/builtin/view/PERFORMANCE.md +149 -0
  232. layerweave/tool/builtin/view/PLUGINS.md +168 -0
  233. layerweave/tool/builtin/view/README.md +44 -0
  234. layerweave/tool/builtin/view/__init__.py +2 -0
  235. layerweave/tool/builtin/view/at.py +230 -0
  236. layerweave/tool/builtin/view/bench.py +773 -0
  237. layerweave/tool/builtin/view/component.toml +5 -0
  238. layerweave/tool/builtin/view/data.py +390 -0
  239. layerweave/tool/builtin/view/documents.py +44 -0
  240. layerweave/tool/builtin/view/fold.py +186 -0
  241. layerweave/tool/builtin/view/frame.py +89 -0
  242. layerweave/tool/builtin/view/i18n.py +58 -0
  243. layerweave/tool/builtin/view/incremental.py +62 -0
  244. layerweave/tool/builtin/view/layout-defaults.json +1 -0
  245. layerweave/tool/builtin/view/layout.py +466 -0
  246. layerweave/tool/builtin/view/layout_geometry.py +166 -0
  247. layerweave/tool/builtin/view/layout_store.py +94 -0
  248. layerweave/tool/builtin/view/locales/en.json +435 -0
  249. layerweave/tool/builtin/view/locales/zh.json +435 -0
  250. layerweave/tool/builtin/view/mcp.py +70 -0
  251. layerweave/tool/builtin/view/note.py +484 -0
  252. layerweave/tool/builtin/view/notes/__init__.py +6 -0
  253. layerweave/tool/builtin/view/notes/models.py +15 -0
  254. layerweave/tool/builtin/view/notes/reads.py +32 -0
  255. layerweave/tool/builtin/view/plugin_manifest.py +158 -0
  256. layerweave/tool/builtin/view/plugin_market.py +345 -0
  257. layerweave/tool/builtin/view/plugin_store.py +147 -0
  258. layerweave/tool/builtin/view/plugins.py +337 -0
  259. layerweave/tool/builtin/view/screenshot.py +500 -0
  260. layerweave/tool/builtin/view/sdk/host-api-3/canvas/Media.d.ts +38 -0
  261. layerweave/tool/builtin/view/sdk/host-api-3/canvas/Waveform.d.ts +14 -0
  262. layerweave/tool/builtin/view/sdk/host-api-3/canvas/imageCache.d.ts +19 -0
  263. layerweave/tool/builtin/view/sdk/host-api-3/canvas/mediaUrl.d.ts +1 -0
  264. layerweave/tool/builtin/view/sdk/host-api-3/i18n/types.d.ts +19 -0
  265. layerweave/tool/builtin/view/sdk/host-api-3/index.d.ts +3 -0
  266. layerweave/tool/builtin/view/sdk/host-api-3/model/kinds.d.ts +5 -0
  267. layerweave/tool/builtin/view/sdk/host-api-3/model/model.d.ts +126 -0
  268. layerweave/tool/builtin/view/sdk/host-api-3/model/units.d.ts +11 -0
  269. layerweave/tool/builtin/view/sdk/host-api-3/plugin/Pager.d.ts +13 -0
  270. layerweave/tool/builtin/view/sdk/host-api-3/plugin/host.d.ts +80 -0
  271. layerweave/tool/builtin/view/sdk/host-api-3/snapshot.json +6 -0
  272. layerweave/tool/builtin/view/sdk/host-api-3/types.d.ts +272 -0
  273. layerweave/tool/builtin/view/server.py +409 -0
  274. layerweave/tool/builtin/view/state.py +117 -0
  275. layerweave/tool/builtin/view/tables.py +108 -0
  276. layerweave/tool/builtin/view/walk.py +284 -0
  277. layerweave/tool/builtin/view/web/assets/index-DQQk37Kj.css +1 -0
  278. layerweave/tool/builtin/view/web/assets/index-Dx0OF4OV.js +28 -0
  279. layerweave/tool/builtin/view/web/index.html +13 -0
  280. layerweave/tool/skills/layers/active/puppet-motion/SKILL.md +51 -0
  281. layerweave/tool/skills/layers/active/puppet-motion/assets/Puppet.tsx +132 -0
  282. layerweave/tool/skills/layers/audio/audio-cues/SKILL.md +38 -0
  283. layerweave/tool/skills/layers/audio/audio-cues/requirements.txt +6 -0
  284. layerweave/tool/skills/layers/audio/audio-cues/scripts/cues.py +134 -0
  285. layerweave/tool/skills/layers/image/image-generate/SKILL.md +40 -0
  286. layerweave/tool/skills/layers/image/image-generate/references/sketch-guide.md +27 -0
  287. layerweave/tool/skills/layers/image/image-generate/scripts/client.py +94 -0
  288. layerweave/tool/skills/layers/image/image-generate/scripts/generate.py +74 -0
  289. layerweave/tool/skills/layers/image/image-generate/scripts/models.py +29 -0
  290. layerweave/tool/skills/layers/image/image-halftone/SKILL.md +37 -0
  291. layerweave/tool/skills/layers/image/image-halftone/requirements.txt +2 -0
  292. layerweave/tool/skills/layers/image/image-halftone/scripts/halftone.py +75 -0
  293. layerweave/tool/skills/layers/image/image-halftone/scripts/halftone_grid.py +50 -0
  294. layerweave/tool/skills/layers/movie/remotion-animate/SKILL.md +55 -0
  295. layerweave/tool/skills/layers/movie/remotion-animate/assets/template/package.json +25 -0
  296. layerweave/tool/skills/layers/movie/remotion-animate/assets/template/public/media/README.md +5 -0
  297. layerweave/tool/skills/layers/movie/remotion-animate/assets/template/remotion.config.ts +10 -0
  298. layerweave/tool/skills/layers/movie/remotion-animate/assets/template/scripts/render.mjs +46 -0
  299. layerweave/tool/skills/layers/movie/remotion-animate/assets/template/scripts/stills.mjs +38 -0
  300. layerweave/tool/skills/layers/movie/remotion-animate/assets/template/src/Film.tsx +45 -0
  301. layerweave/tool/skills/layers/movie/remotion-animate/assets/template/src/Root.tsx +17 -0
  302. layerweave/tool/skills/layers/movie/remotion-animate/assets/template/src/index.ts +4 -0
  303. layerweave/tool/skills/layers/movie/remotion-animate/assets/template/src/scenes/Dots.tsx +29 -0
  304. layerweave/tool/skills/layers/movie/remotion-animate/assets/template/src/scenes/Intro.tsx +21 -0
  305. layerweave/tool/skills/layers/movie/remotion-animate/assets/template/src/time.ts +44 -0
  306. layerweave/tool/skills/layers/movie/remotion-animate/assets/template/src/ui/Layer.tsx +47 -0
  307. layerweave/tool/skills/layers/movie/remotion-animate/assets/template/src/ui/Subtitles.tsx +54 -0
  308. layerweave/tool/skills/layers/movie/remotion-animate/assets/template/tsconfig.json +17 -0
  309. layerweave/tool/skills/layers/movie/remotion-animate/references/patterns.md +31 -0
  310. layerweave/tool/skills/layers/movie/video-generate/SKILL.md +48 -0
  311. layerweave/tool/skills/layers/movie/video-generate/requirements.txt +1 -0
  312. layerweave/tool/skills/layers/movie/video-generate/scripts/video.py +196 -0
  313. layerweave/tool/skills/layers/movie/video-master/SKILL.md +49 -0
  314. layerweave/tool/skills/layers/movie/video-timing/SKILL.md +75 -0
  315. layerweave/tool/skills/layers/movie/video-timing/requirements.txt +4 -0
  316. layerweave/tool/skills/layers/movie/video-timing/scripts/actors.py +163 -0
  317. layerweave/tool/skills/layers/movie/video-timing/scripts/durtable.py +105 -0
  318. layerweave/tool/skills/layers/movie/video-timing/scripts/keys.py +149 -0
  319. layerweave/tool/skills/layers/movie/video-timing/scripts/review.py +156 -0
  320. layerweave/tool/skills/layers/movie/video-timing/scripts/xsheet.py +107 -0
  321. layerweave/tool/skills/layers/movie/video-verify/SKILL.md +28 -0
  322. layerweave/tool/skills/layers/movie/video-verify/requirements.txt +3 -0
  323. layerweave/tool/skills/layers/movie/video-verify/scripts/verify.py +120 -0
  324. layerweave/tool/skills/layers/text/glyph-deform/SKILL.md +47 -0
  325. layerweave/tool/skills/layers/text/glyph-deform/assets/GlyphStudy.example.tsx +50 -0
  326. layerweave/tool/skills/layers/text/glyph-deform/assets/GlyphWord.tsx +95 -0
  327. layerweave/tool/skills/layers/text/glyph-deform/references/techniques.md +24 -0
  328. layerweave/tool/skills/layers/text/glyph-deform/requirements.txt +1 -0
  329. layerweave/tool/skills/layers/text/glyph-deform/scripts/build_glyph_shapes.py +195 -0
  330. layerweave/tool/skills/layers/text/text-normalize/SKILL.md +37 -0
  331. layerweave/tool/skills/layers/text/text-normalize/scripts/normalize_text.py +20 -0
  332. layerweave/tool/skills/layers/text/text-redacted-layout/SKILL.md +45 -0
  333. layerweave/tool/skills/layers/text/text-redacted-layout/requirements.txt +4 -0
  334. layerweave/tool/skills/layers/text/text-redacted-layout/scripts/find_hardcoded_text.py +48 -0
  335. layerweave/tool/skills/layers/text/text-redacted-layout/scripts/make_redacted_font.py +39 -0
  336. layerweave/tool/skills/layers/text/text-redacted-layout/scripts/text_flicker.py +47 -0
  337. layerweave/tool/skills/scenarios/README.md +7 -0
  338. layerweave-0.7.9b1.dist-info/METADATA +242 -0
  339. layerweave-0.7.9b1.dist-info/RECORD +344 -0
  340. layerweave-0.7.9b1.dist-info/WHEEL +5 -0
  341. layerweave-0.7.9b1.dist-info/entry_points.txt +3 -0
  342. layerweave-0.7.9b1.dist-info/licenses/LICENSE +21 -0
  343. layerweave-0.7.9b1.dist-info/licenses/THIRD_PARTY_NOTICES.md +474 -0
  344. layerweave-0.7.9b1.dist-info/top_level.txt +1 -0
layerweave/__init__.py ADDED
@@ -0,0 +1,4 @@
1
+ """LayerWeave:层、对象及可组合工具。子包按需导入。"""
2
+
3
+ __version__ = "0.7.9b1"
4
+ __all__ = ["__version__"]
layerweave/__main__.py ADDED
@@ -0,0 +1,5 @@
1
+ """The full distribution's unified command line."""
2
+ from layerweave.tool.builtin.shared.launcher.__main__ import main
3
+
4
+ if __name__ == "__main__":
5
+ raise SystemExit(main())
@@ -0,0 +1,5 @@
1
+ name = "layerweave.foundation"
2
+ kind = "foundation"
3
+ version = "0.5.3"
4
+ description = "层、对象等抽象结构,以及配置、存储、编号、事务和日志支撑"
5
+ changes = "明确公共导出,读取快照独立于实体装配;包版本统一维护。"
@@ -0,0 +1,15 @@
1
+ # 配置入口
2
+
3
+ 这里保存 LayerWeave 的 TOML 声明。[返回项目首页](../../../README.md)。
4
+
5
+ | 目录 | 内容 | 何时阅读 |
6
+ |---|---|---|
7
+ | [layers/](layers/README.md) | 层的基础约定和具体封装 | 定义层及其接受的对象类型 |
8
+ | [objects/](objects/README.md) | 对象的基础约定和具体封装 | 定义对象内容字段或派生封装 |
9
+ | [logging/](logging/README.md) | 检查结果的汇报等级 | 调整某种问题的显示等级 |
10
+
11
+ 一份层/对象封装 TOML 对应一个 [Python 类](../models/README.md)。base.toml 是基础约定,具体封装通过 extends 延续约定;继承合并、收紧与类绑定规则见[配置读取器说明](../support/configuration/README.md)。
12
+
13
+ 允许自定义说明段,读取时原样保留。内置检测只对接近内置段名的拼写等可疑声明给出建议,不自动改名;声明新的检测含义还需在[检测包](../tool/builtin/usage/validation/RULES.md)实现对应规则。仅增加 TOML 段不会自动执行它。
14
+
15
+ 只想知道可以使用什么层或对象时,调用[配置 help](../tool/builtin/shared/help/CONFIG_HELP.md)即可。开发封装时再阅读对应 TOML 和类文件。
@@ -0,0 +1,41 @@
1
+ # 层配置
2
+
3
+ [返回配置入口](../README.md)。
4
+
5
+ 基础约定与六种封装放在这里,可按需继续分子目录。对应 Python 类在 src/layerweave/models/layers/,读取与继承见 [配置说明](../../support/configuration/README.md)。
6
+
7
+ 每份封装明确声明自己的 type 与 class,一个类只绑定一份配置。type 字符串只在 TOML 定义,由保存接口写入层记录,Python 层类不重复声明。
8
+
9
+ base.toml 说明字段、返回方法、固定规则、默认取值和可调选项。默认 overlap=true、visibility=true;具体封装的显式 constraint/display 成为固定父约定。axis_only_on_root 是明确可调选项,默认 true,根层不必填写轴。
10
+
11
+ 层的 objects 按对象配置 type 唯一定位,接受该类型及其派生配置。六种内置层分别为 text、image、audio、movie、model、active。
12
+
13
+ 工具包也可以在这里登记自己的层类型:配置照常放在本目录,class 指向工具包里的类,并用 `requires = "工具包模块"` 写明依赖。这样 AI 和工具按类型就能找到它,配置帮助也会列出;卸掉那个工具包后,配置仍说明数据的样子、检测照常,只是不能还原成实例。现有的例子是视图工具的批注层 note.toml(装 objects/note.toml 的批注对象),约定见[视图工具](../../tool/builtin/view/DEVELOPMENT.md#批注层用一个层当有序列表)。完整步骤见[工具包登记类型](../../tool/builtin/developer/TOOL_TYPES.md)。
14
+
15
+ axis.precision 是位置写入、工具和检查共用的正数步长。子层未声明轴时沿父链取得轴,默认来自根;显式自有轴覆盖上级轴。没有轴或当前轴没有 precision 时默认 1e-6。所有对象位置写入按精度落点,比较使用同一整数刻度;不换算单位或 fps。读取保持原始存储数值,不批量重写旧数据。
16
+
17
+ ## 外置技能 tools
18
+
19
+ 层原型的 `[layer]` 可声明 tools,供 AI 按路由查阅外置 skill。它与软件自身的内部工具目录是两回事,不是 Layer 实例字段。
20
+
21
+ 以下仅为填写示例,不表示项目已安装这些技能;实际使用时替换 route:
22
+
23
+ ```toml
24
+ # 放在已有 [layer] 的字段区内。
25
+ tools = [
26
+ { route = "skill:example-text-format", tier = "层级", when = "需要统一文字格式时" },
27
+ { route = "skill:example-lyric-align", tier = "可用", when = "已有歌词和时间标记,需要辅助对齐时" },
28
+ ]
29
+ ```
30
+
31
+ | 字段 | 给 AI 的说明 |
32
+ |---|---|
33
+ | route | 技能在哪里;填写 AI 可定位的文件位置或 skill 引用 |
34
+ | tier | 技能的分类或级别,例如“层级”“可用” |
35
+ | when | 何时使用该技能、需要什么场景或前提 |
36
+
37
+ tier 和 when 都是原样展示的说明,不是枚举限制、开关或检测条件。route 不由本程序拼接、解析、检查存在性或执行。项目内文件路径应写清相对位置,外置引用由 AI 所在环境解释。
38
+
39
+ 当前文字、图片、音频、视频、动作层已填写技能引用,基础层和模型层仍以 tools=[] 留位。实际技能清单以各层 TOML 和配置 help 为准;引用只帮助 AI 查阅,不表示自动执行或已安装技能所需依赖。配置 help 会在总览和详情展示这些引用;具体输出位置见[配置 help](../../tool/builtin/shared/help/CONFIG_HELP.md)。这项声明不新增约束,也不改变现有字段的检查。
40
+
41
+ 仓库内的技能存放方式、实际示例与绑定写法见[外置工具](../../tool/README.md)。已有外置 skill 也可以直接填写它的引用位置。
@@ -0,0 +1,27 @@
1
+ # 动作层封装
2
+ # extends 相对于当前配置文件;配置由 runtime.configuration 读取,约定在提交后检测。
3
+ # 基础字段、return_self() 和基础检测规则沿用父配置,不重复声明。
4
+
5
+ [layer]
6
+ type = "active"
7
+ version = 1
8
+ name = "动作层"
9
+ class = "layerweave.models.layers.active:ActiveLayer"
10
+ extends = "base.toml"
11
+ objects = "active"
12
+ when = "组织动作资源或动作数据,使用 bind 说明其作用对象"
13
+ tools = [ # 外置技能引用;每项写 route(位置)、tier(分类)、when(使用时机),供 AI 阅读
14
+ { route = "src/layerweave/tool/skills/layers/active/puppet-motion/SKILL.md", tier = "可用", when = "需要按摄影表定动作顺序和停顿,或给生视频模型做参考视频时;构图跟随尚未验证" },
15
+ ]
16
+
17
+ [layer.constraint]
18
+ overlap = true # 允许对象在轴上的区间重叠,不控制显隐
19
+
20
+ [layer.display]
21
+ visibility = true # 默认允许显隐控制
22
+
23
+ # 空层创建参数示例;向 objects 放入对应的对象实例。
24
+ [layer.example]
25
+ name = "角色动作"
26
+ axis = { unit = "秒", precision = 0.001 }
27
+ objects = []
@@ -0,0 +1,27 @@
1
+ # 音频层封装
2
+ # extends 相对于当前配置文件;配置由 runtime.configuration 读取,约定在提交后检测。
3
+ # 基础字段、return_self() 和基础检测规则沿用父配置,不重复声明。
4
+
5
+ [layer]
6
+ type = "audio"
7
+ version = 1
8
+ name = "音频层"
9
+ class = "layerweave.models.layers.audio:AudioLayer"
10
+ extends = "base.toml"
11
+ objects = "audio"
12
+ when = "组织音频资源,例如音乐、人声、音效"
13
+ tools = [ # 外置技能引用;每项写 route(位置)、tier(分类)、when(使用时机),供 AI 阅读
14
+ { route = "src/layerweave/tool/skills/layers/audio/audio-cues/SKILL.md", tier = "层级", when = "需要分轨、拍子网格和卡点表,让画面落在拍子上时;各轨起音事件属于可用级,关键处回到音频确认" },
15
+ ]
16
+
17
+ [layer.constraint]
18
+ overlap = true # 允许对象在轴上的区间重叠,不控制显隐
19
+
20
+ [layer.display]
21
+ visibility = true # 默认允许显隐控制
22
+
23
+ # 空层创建参数示例;向 objects 放入对应的对象实例。
24
+ [layer.example]
25
+ name = "背景音乐"
26
+ axis = { unit = "秒", precision = 0.001 }
27
+ objects = []
@@ -0,0 +1,47 @@
1
+ # Layer 基础约定
2
+ # 字段说明对应当前 Python 类;规则由独立检测通道在提交后执行。
3
+ # rules 是固定约定;检测问题逐条报告,不撤销已经提交的数据。
4
+
5
+ [layer]
6
+ type = "Layer" # 这类层的名称
7
+ version = 1 # 这份配置的版本
8
+ name = "基础层" # 配置的显示名,与实例 name 分开
9
+ class = "layerweave.models.layers.base:Layer" # 对应的 Python 类
10
+ objects = "Object" # 基础对象配置名称;按 objects/ 下配置 type 唯一定位
11
+ when = "组织上下文、层间关系,并装载对象"
12
+ tools = [] # 外置技能引用;每项写 route(位置)、tier(分类)、when(使用时机),供 AI 阅读
13
+
14
+ [layer.fields]
15
+ id = { type = "int | None", note = "项目内层编号,初始为 None;与本项目对象共用编号,本类不分配编号;完整身份还需项目上下文" }
16
+ name = { type = "str", default = "", note = "创建时传入的名字,可以重名" }
17
+ father = { type = "int | None", note = "父层编号,初始为 None;为空表示根层,非空编号由数据库保证指向同项目实际父层" }
18
+ axis = { type = "dict | None", note = "可选的轴说明,初始为 None;默认仅根层可填写。precision 为正数步长,供写入和检查落点,无精度时默认 1e-6;单位不自动换算" }
19
+ tips = { type = "str", default = "", note = "自由备注" }
20
+ bind = { type = "list", default = [], note = "发出的关联字典列表;新建可提供 target_kind、target_project_id、target_id 和 tips;保存时补齐来源与关联 id,读回保留完整引用;允许相互引用" }
21
+ objects = { type = "list", default = [], note = "实际装载 Object 或其子类的实例;每个层独立持有列表,不自动改写对象的 layer" }
22
+
23
+ [layer.methods]
24
+ return_self = "无参数,返回当前实例本身;子类可直接继承"
25
+
26
+ # 基础固定约定;SQL 外键已负责的存在性条件不在这里重复执行。
27
+ # 后续封装继承这些约定;同一目标的同一项检查只执行一次。
28
+ [layer.rules]
29
+ no_cycle = true # 检查 father 关系是否成环;bind 不受这一条限制
30
+
31
+ # defaults 是未定值时的默认设置;具体封装在 constraint/display 明确声明后成为固定约定。
32
+ [layer.options]
33
+ axis_only_on_root = true # 明确可调:设为 false 后,子层可声明自己的轴;根不必填写轴
34
+
35
+ [layer.defaults.constraint]
36
+ overlap = true # 默认允许层内对象在轴上的区间重叠;不控制显隐
37
+
38
+ [layer.defaults.display]
39
+ visibility = true # 默认允许显隐控制;需要固定显示的封装可设为 false
40
+ # 实例当前的显示状态由外部视图管理;false 不表示当前隐藏或不进入视图。
41
+
42
+ # 空层的创建参数示例。新实例不填 id,由保存入口分配编号。
43
+ [layer.example]
44
+ name = "主线"
45
+ axis = { unit = "秒", precision = 0.001 }
46
+ tips = "记录各段的意图"
47
+ objects = []
@@ -0,0 +1,28 @@
1
+ # 图片层封装
2
+ # extends 相对于当前配置文件;配置由 runtime.configuration 读取,约定在提交后检测。
3
+ # 基础字段、return_self() 和基础检测规则沿用父配置,不重复声明。
4
+
5
+ [layer]
6
+ type = "image"
7
+ version = 1
8
+ name = "图片层"
9
+ class = "layerweave.models.layers.image:ImageLayer"
10
+ extends = "base.toml"
11
+ objects = "image"
12
+ when = "组织图片资源,例如原画、背景、角色参考"
13
+ tools = [ # 外置技能引用;每项写 route(位置)、tier(分类)、when(使用时机),供 AI 阅读
14
+ { route = "src/layerweave/tool/skills/layers/image/image-generate/SKILL.md", tier = "层级", when = "需要新图、同一角色的新姿势,或要求构图和姿势精确服从 SVG/代码草图时" },
15
+ { route = "src/layerweave/tool/skills/layers/image/image-halftone/SKILL.md", tier = "层级", when = "想把插画转成网点,融进图形化画面,或需要逐点动画数据时" },
16
+ ]
17
+
18
+ [layer.constraint]
19
+ overlap = true # 允许对象在轴上的区间重叠,不控制显隐
20
+
21
+ [layer.display]
22
+ visibility = true # 默认允许显隐控制
23
+
24
+ # 空层创建参数示例;向 objects 放入对应的对象实例。
25
+ [layer.example]
26
+ name = "背景图片"
27
+ axis = { unit = "秒", precision = 0.001 }
28
+ objects = []
@@ -0,0 +1,25 @@
1
+ # 模型层封装
2
+ # extends 相对于当前配置文件;配置由 runtime.configuration 读取,约定在提交后检测。
3
+ # 基础字段、return_self() 和基础检测规则沿用父配置,不重复声明。
4
+
5
+ [layer]
6
+ type = "model"
7
+ version = 1
8
+ name = "模型层"
9
+ class = "layerweave.models.layers.model:ModelLayer"
10
+ extends = "base.toml"
11
+ objects = "model"
12
+ when = "组织模型或骨架资源及相关数据"
13
+ tools = [] # 外置技能引用;每项写 route(位置)、tier(分类)、when(使用时机),供 AI 阅读
14
+
15
+ [layer.constraint]
16
+ overlap = true # 允许对象在轴上的区间重叠,不控制显隐
17
+
18
+ [layer.display]
19
+ visibility = true # 默认允许显隐控制
20
+
21
+ # 空层创建参数示例;向 objects 放入对应的对象实例。
22
+ [layer.example]
23
+ name = "角色模型"
24
+ axis = { unit = "秒", precision = 0.001 }
25
+ objects = []
@@ -0,0 +1,31 @@
1
+ # 视频层封装
2
+ # extends 相对于当前配置文件;配置由 runtime.configuration 读取,约定在提交后检测。
3
+ # 基础字段、return_self() 和基础检测规则沿用父配置,不重复声明。
4
+
5
+ [layer]
6
+ type = "movie"
7
+ version = 1
8
+ name = "视频层"
9
+ class = "layerweave.models.layers.movie:MovieLayer"
10
+ extends = "base.toml"
11
+ objects = "movie"
12
+ when = "组织视频资源,例如素材片段、预览、成片"
13
+ tools = [ # 外置技能引用;每项写 route(位置)、tier(分类)、when(使用时机),供 AI 阅读
14
+ { route = "src/layerweave/tool/skills/layers/movie/remotion-animate/SKILL.md", tier = "层级", when = "用代码做动画(图形、点阵、字幕、合成素材),按音轨节拍驱动并导出视频时" },
15
+ { route = "src/layerweave/tool/skills/layers/movie/video-generate/SKILL.md", tier = "层级", when = "已有首尾两张关键帧,需要模型补出中间的动作时" },
16
+ { route = "src/layerweave/tool/skills/layers/movie/video-master/SKILL.md", tier = "层级", when = "成片导出后、上传前转成发布母版,或只替换其中一段时" },
17
+ { route = "src/layerweave/tool/skills/layers/movie/video-verify/SKILL.md", tier = "层级", when = "每次导出成片或母版后,核对帧数、音画偏移、色彩标注时" },
18
+ { route = "src/layerweave/tool/skills/layers/movie/video-timing/SKILL.md", tier = "可用", when = "需要读懂一段视频的状态、过渡、停顿和节奏时;结果作参考,关键处原速确认" },
19
+ ]
20
+
21
+ [layer.constraint]
22
+ overlap = true # 允许对象在轴上的区间重叠,不控制显隐
23
+
24
+ [layer.display]
25
+ visibility = true # 默认允许显隐控制
26
+
27
+ # 空层创建参数示例;向 objects 放入对应的对象实例。
28
+ [layer.example]
29
+ name = "预览结果"
30
+ axis = { unit = "秒", precision = 0.001 }
31
+ objects = []
@@ -0,0 +1,27 @@
1
+ # 批注层封装:由视图工具登记的层类型,用一个层当"有序列表"来管理信息。
2
+ # 配置放在核心的配置目录里,供 AI 和工具按类型查找;Python 类和读写入口在视图工具包里(requires)。
3
+ # 卸掉视图工具后,这份配置仍然说明数据的样子,检测照常;只是不能再还原成 Python 实例。
4
+
5
+ [layer]
6
+ type = "note"
7
+ version = 1
8
+ name = "批注层"
9
+ class = "layerweave.tool.builtin.view.notes.models:NoteLayer"
10
+ extends = "text.toml" # 继承文字层
11
+ objects = "note" # 只装批注对象(objects/note.toml,继承文字对象)
12
+ requires = "layerweave.tool.builtin.view" # 依赖的工具包:类和读写入口(view_note)都在那里
13
+ when = "视图工具的批注容器:按顺序存放给人或 AI 的意见、说明、待办,每条用关联指向它说的东西"
14
+ tools = [] # 不挂外置技能
15
+
16
+ # 约定(由视图工具维护,工具和 AI 照此读写):
17
+ # - 一个项目一个,是根层(father 为空),名字默认「批注」;第一次写批注时由视图工具创建,不改项目创建流程。
18
+ # - 轴固定为 { unit = "条", precision = 1 }:第 n 条批注占 [n, n+1),新的接在最后;移动对象就是调整顺序。
19
+
20
+ [layer.display]
21
+ default_visible = false # 视图默认把这个层收起来,不单独开画板;visibility(允许显隐控制)沿用文字层
22
+
23
+ [layer.example]
24
+ name = "批注"
25
+ axis = { unit = "条", precision = 1 }
26
+ tips = "视图工具的批注容器"
27
+ objects = []
@@ -0,0 +1,29 @@
1
+ # 文字层封装
2
+ # extends 相对于当前配置文件;读取器展开父配置并保留固定约定。
3
+ # 基础字段、return_self() 和基础检测规则沿用父配置,不重复声明。
4
+
5
+ [layer]
6
+ type = "text" # 层的类型标识,由保存接口读取
7
+ version = 1 # 这份配置的版本
8
+ name = "文字层" # 封装显示名;实例名字创建时另传
9
+ class = "layerweave.models.layers.text:TextLayer" # 对应的 Python 类
10
+ extends = "base.toml" # 对应 Layer 的基础配置
11
+ objects = "text" # 对应文字对象配置;按对象配置 type 唯一定位
12
+ when = "组织文本内容,例如主线说明、歌词、笔记"
13
+ tools = [ # 外置技能引用;每项写 route(位置)、tier(分类)、when(使用时机),供 AI 阅读
14
+ { route = "src/layerweave/tool/skills/layers/text/glyph-deform/SKILL.md", tier = "层级", when = "文字要作为有重量的物体受力、切开、碎裂,做动态字体时" },
15
+ { route = "src/layerweave/tool/skills/layers/text/text-redacted-layout/SKILL.md", tier = "层级", when = "不方便显示原文(歌词等)却要检查排版、闪烁和源码里有没有写死原文时;闪烁扫描属于可用级" },
16
+ ]
17
+
18
+ [layer.constraint]
19
+ overlap = true # 允许文字对象在轴上的区间重叠
20
+
21
+ [layer.display]
22
+ visibility = true # 允许视图提供显隐控制
23
+
24
+ # 空文字层的创建参数示例;随后向 objects 放入 Text 实例。
25
+ [layer.example]
26
+ name = "主线说明"
27
+ axis = { unit = "秒", precision = 0.001 }
28
+ tips = "记录作品各段的意图"
29
+ objects = []
@@ -0,0 +1,7 @@
1
+ # 诊断汇报配置
2
+
3
+ [diagnostics.toml](diagnostics.toml) 控制检查结果以 error、warn 或 none 汇报。[返回配置入口](../README.md)。
4
+
5
+ 约束是否检查由层/对象声明决定;这里负责检查结果如何汇报。字段与覆盖优先级、默认行为、同因合并及示例统一维护在[诊断汇报说明](../../support/DIAGNOSTICS.md)。
6
+
7
+ 操作历史数据保存在数据库 changes 表中,其格式与撤销行为见[历史与恢复](../../tool/builtin/usage/HISTORY.md)。本目录不存放操作日志文件。
@@ -0,0 +1,29 @@
1
+ # 只控制汇报等级,不增加检查开关,也不改变约束和提交结果。
2
+ # 查找顺序:封装+诊断 code+字段 → 封装+code → 全局 code → warn。
3
+ # 没有 code 的扩展规则使用 rule 名称查找。none 不输出该条诊断。
4
+ [levels]
5
+ field_type = "error"
6
+ missing_field = "warn"
7
+ field_typo = "warn"
8
+ config_typo = "warn"
9
+ unknown_field = "error"
10
+ field_check_unavailable = "error"
11
+ configuration = "error"
12
+ config_not_found = "error"
13
+ config_unreadable = "error"
14
+ config_invalid = "error"
15
+ check_failed = "error"
16
+ layer_type = "error"
17
+ no_cycle = "error"
18
+ axis_only_on_root = "error"
19
+ accepts_objects = "error"
20
+ overlap = "error"
21
+ begin_le_end = "error"
22
+ duration = "error"
23
+ position_invalid = "warn"
24
+ bind_kind = "error"
25
+ bind_reference_missing = "warn"
26
+ target = "warn"
27
+
28
+ # 可选填入由封装字段的 optional 声明表达并继承。
29
+ # 此文件仅决定已产生诊断的等级;按路径指定的特殊覆盖不继承。
@@ -0,0 +1,11 @@
1
+ # 对象配置
2
+
3
+ [返回配置入口](../README.md)。
4
+
5
+ 基础约定、六种封装及 Title 派生示例放在这里,可按需继续分子目录。工具包登记的对象类型也放在这里,class 指向工具包,用 `requires` 写明依赖,例如视图工具的批注对象 note.toml(继承 text.toml),步骤见[工具包登记类型](../../tool/builtin/developer/TOOL_TYPES.md)。对应 Python 类在 src/layerweave/models/objects/,读取与继承见 [配置说明](../../support/configuration/README.md)。
6
+
7
+ 每份封装明确声明自己的 type 与 class,一个类只绑定一份配置。title.toml 继承 text.toml,绑定继承 Text 的独立 Title 类;沿用文字约定,不添加限制,也不需要新建标题层。
8
+
9
+ 对象 layer 必须指向同项目实际存在的层。base.toml 说明字段与固定约定,默认 duration=any、visibility=true。optional=true 允许字段缺省并随字段继承;已填写时仍检查类型。未声明 optional 按 false 检查缺失。模型/动作的 source/data 均声明 optional=true。产生诊断后,等级在 ../logging/diagnostics.toml 管理,路径覆盖不继承,未配置默认 warn。所有内置类型 open=true,允许附加内容键。
10
+
11
+ text 使用 information.text;image/audio/movie/model/active 使用 information.source 引用资源;model/active 另可使用 information.data 字典。引用原样保存,资源解释与工具接入后续实现。
@@ -0,0 +1,34 @@
1
+ # 动作对象封装
2
+ # extends 相对于当前配置文件;配置由 runtime.configuration 读取,约定在提交后检测。
3
+ # 基础字段、return_self() 和基础检测规则沿用父配置,不重复声明。
4
+
5
+ [object]
6
+ type = "active"
7
+ version = 1
8
+ name = "动作对象"
9
+ class = "layerweave.models.objects.active:Active"
10
+ extends = "base.toml"
11
+ note = "通过 information.source 引用动作,或用 information.data 承载动作数据;作用对象通过 bind 说明"
12
+ open = true # 保留附加内容
13
+
14
+ # optional=true 允许缺省并随字段继承,检查仍执行;填入后继续检查类型。
15
+ # 产生的诊断由 ../logging/diagnostics.toml 指定等级;不拦截,不检查格式或资源存在性。
16
+ # 引用只作为字符串保存,由使用方解释;本类不读取或解析资源。
17
+ [object.information]
18
+ source = { type = "str", optional = true, note = "动作资源引用,例如本地路径、URL 或使用方约定的资源地址" }
19
+ data = { type = "dict", optional = true, note = "可选的动作数据,具体结构由使用方约定;source 和 data 按需填写" }
20
+
21
+ [object.constraint]
22
+ duration = "any" # 可以有时长,也可以表示瞬间
23
+
24
+ [object.display]
25
+ visibility = true # 默认允许显隐控制
26
+
27
+ # 创建参数示例,假设已有编号为 1 的层;资源地址仅作示意。
28
+ # 创建后由调用方将对象实例放入该层的 objects。
29
+ [object.example]
30
+ name = "角色行走"
31
+ layer = 1
32
+ begin = 0.0
33
+ end = 5.0
34
+ information = { source = "assets/walk.json" }
@@ -0,0 +1,32 @@
1
+ # 音频对象封装
2
+ # extends 相对于当前配置文件;配置由 runtime.configuration 读取,约定在提交后检测。
3
+ # 基础字段、return_self() 和基础检测规则沿用父配置,不重复声明。
4
+
5
+ [object]
6
+ type = "audio"
7
+ version = 1
8
+ name = "音频对象"
9
+ class = "layerweave.models.objects.audio:Audio"
10
+ extends = "base.toml"
11
+ note = "用 information.source 引用音频资源"
12
+ open = true # 保留附加内容
13
+
14
+ # 声明字段缺失和类型错误分别诊断,等级由 ../logging/diagnostics.toml 控制;不拦截,不检查格式或资源存在性。
15
+ # 引用只作为字符串保存,由使用方解释;本类不读取或解析资源。
16
+ [object.information]
17
+ source = { type = "str", note = "音频资源引用,例如本地路径、URL 或使用方约定的资源地址" }
18
+
19
+ [object.constraint]
20
+ duration = "any" # 可以有时长,也可以表示瞬间
21
+
22
+ [object.display]
23
+ visibility = true # 默认允许显隐控制
24
+
25
+ # 创建参数示例,假设已有编号为 1 的层;资源地址仅作示意。
26
+ # 创建后由调用方将对象实例放入该层的 objects。
27
+ [object.example]
28
+ name = "开场音乐"
29
+ layer = 1
30
+ begin = 0.0
31
+ end = 5.0
32
+ information = { source = "assets/music.wav" }
@@ -0,0 +1,46 @@
1
+ # Object 基础约定
2
+ # 字段说明对应当前 Python 类;规则由独立检测通道在提交后执行。
3
+ # rules 是固定约定;检测问题逐条报告,不撤销已经提交的数据。
4
+
5
+ [object]
6
+ type = "Object" # 对象配置名称;不代表实例上具有 type 属性
7
+ version = 1 # 这份配置的版本
8
+ name = "基础对象" # 配置的显示名,与实例 name 分开
9
+ class = "layerweave.models.objects.base:Object" # 对应的 Python 类
10
+ note = "承载具体内容及其在轴上的位置"
11
+ open = true # 基础约定允许 information 中使用任意键
12
+
13
+ [object.fields]
14
+ id = { type = "int | None", note = "项目内对象编号,初始为 None;与本项目层共用编号,本类不分配编号;完整身份还需项目上下文" }
15
+ name = { type = "str", default = "", note = "创建时传入的名字,可以重名" }
16
+ layer = { type = "int", note = "必传的所属层编号;数据库保证非空且层实际存在;赋值不自动装载进 objects" }
17
+ begin = { type = "float", default = 0.0, note = "开始位置,单位按所在模块的轴理解;本类不自动取整,保存时由公共执行层按轴精度落点" }
18
+ end = { type = "float", default = 0.0, note = "结束位置;持续区间为 [begin,end),相等时单独占用该点;本类不自动取整,保存时由公共执行层按轴精度落点" }
19
+ information = { type = "dict", default = {}, note = "具体内容或内容的引用;每个实例独立持有字典" }
20
+ tips = { type = "str", default = "", note = "自由备注" }
21
+ bind = { type = "list", default = [], note = "发出的关联字典列表;新建可提供 target_kind、target_project_id、target_id 和 tips;保存时补齐来源与关联 id,读回保留完整引用;允许相互引用" }
22
+
23
+ [object.methods]
24
+ return_self = "无参数,返回当前实例本身;子类可直接继承"
25
+
26
+ # 基础固定约定;SQL 外键已负责的存在性条件不在这里重复执行。
27
+ # 后续封装继承这些约定;同一目标的同一项检查只执行一次。
28
+ [object.rules]
29
+ begin_le_end = true # 检查开始位置是否不晚于结束位置
30
+
31
+ # defaults 是未定值时的默认设置;具体封装在 constraint/display 明确声明后成为固定约定。
32
+ [object.defaults.constraint]
33
+ duration = "any" # 默认允许有时长,也允许瞬间
34
+
35
+ [object.defaults.display]
36
+ visibility = true # 默认允许显隐控制;需要固定显示的封装可设为 false
37
+ # 实例当前的显示状态由外部视图管理;false 不表示当前隐藏或不进入视图。
38
+
39
+ # 对象的创建参数示例,假设已存在编号为 1 的层。
40
+ # 创建后由调用方将此对象实例放入该层的 objects。
41
+ [object.example]
42
+ name = "一条说明"
43
+ layer = 1
44
+ begin = 0.0
45
+ end = 1.0
46
+ information = { note = "这一段的意图" }
@@ -0,0 +1,32 @@
1
+ # 图片对象封装
2
+ # extends 相对于当前配置文件;配置由 runtime.configuration 读取,约定在提交后检测。
3
+ # 基础字段、return_self() 和基础检测规则沿用父配置,不重复声明。
4
+
5
+ [object]
6
+ type = "image"
7
+ version = 1
8
+ name = "图片对象"
9
+ class = "layerweave.models.objects.image:Image"
10
+ extends = "base.toml"
11
+ note = "用 information.source 引用图片资源"
12
+ open = true # 保留附加内容
13
+
14
+ # 声明字段缺失和类型错误分别诊断,等级由 ../logging/diagnostics.toml 控制;不拦截,不检查格式或资源存在性。
15
+ # 引用只作为字符串保存,由使用方解释;本类不读取或解析资源。
16
+ [object.information]
17
+ source = { type = "str", note = "图片资源引用,例如本地路径、URL 或使用方约定的资源地址" }
18
+
19
+ [object.constraint]
20
+ duration = "any" # 可以有时长,也可以表示瞬间
21
+
22
+ [object.display]
23
+ visibility = true # 默认允许显隐控制
24
+
25
+ # 创建参数示例,假设已有编号为 1 的层;资源地址仅作示意。
26
+ # 创建后由调用方将对象实例放入该层的 objects。
27
+ [object.example]
28
+ name = "开场背景"
29
+ layer = 1
30
+ begin = 0.0
31
+ end = 5.0
32
+ information = { source = "assets/background.png" }
@@ -0,0 +1,34 @@
1
+ # 模型对象封装
2
+ # extends 相对于当前配置文件;配置由 runtime.configuration 读取,约定在提交后检测。
3
+ # 基础字段、return_self() 和基础检测规则沿用父配置,不重复声明。
4
+
5
+ [object]
6
+ type = "model"
7
+ version = 1
8
+ name = "模型对象"
9
+ class = "layerweave.models.objects.model:Model"
10
+ extends = "base.toml"
11
+ note = "通过 information.source 引用模型,或用 information.data 承载模型、骨架数据"
12
+ open = true # 保留附加内容
13
+
14
+ # optional=true 允许缺省并随字段继承,检查仍执行;填入后继续检查类型。
15
+ # 产生的诊断由 ../logging/diagnostics.toml 指定等级;不拦截,不检查格式或资源存在性。
16
+ # 引用只作为字符串保存,由使用方解释;本类不读取或解析资源。
17
+ [object.information]
18
+ source = { type = "str", optional = true, note = "模型或骨架资源引用,例如本地路径、URL 或使用方约定的资源地址" }
19
+ data = { type = "dict", optional = true, note = "可选的模型或骨架数据,具体结构由使用方约定;source 和 data 按需填写" }
20
+
21
+ [object.constraint]
22
+ duration = "any" # 可以有时长,也可以表示瞬间
23
+
24
+ [object.display]
25
+ visibility = true # 默认允许显隐控制
26
+
27
+ # 创建参数示例,假设已有编号为 1 的层;资源地址仅作示意。
28
+ # 创建后由调用方将对象实例放入该层的 objects。
29
+ [object.example]
30
+ name = "主角模型"
31
+ layer = 1
32
+ begin = 0.0
33
+ end = 5.0
34
+ information = { source = "assets/character.glb" }
@@ -0,0 +1,32 @@
1
+ # 视频对象封装
2
+ # extends 相对于当前配置文件;配置由 runtime.configuration 读取,约定在提交后检测。
3
+ # 基础字段、return_self() 和基础检测规则沿用父配置,不重复声明。
4
+
5
+ [object]
6
+ type = "movie"
7
+ version = 1
8
+ name = "视频对象"
9
+ class = "layerweave.models.objects.movie:Movie"
10
+ extends = "base.toml"
11
+ note = "用 information.source 引用视频资源"
12
+ open = true # 保留附加内容
13
+
14
+ # 声明字段缺失和类型错误分别诊断,等级由 ../logging/diagnostics.toml 控制;不拦截,不检查格式或资源存在性。
15
+ # 引用只作为字符串保存,由使用方解释;本类不读取或解析资源。
16
+ [object.information]
17
+ source = { type = "str", note = "视频资源引用,例如本地路径、URL 或使用方约定的资源地址" }
18
+
19
+ [object.constraint]
20
+ duration = "any" # 可以有时长,也可以表示瞬间
21
+
22
+ [object.display]
23
+ visibility = true # 默认允许显隐控制
24
+
25
+ # 创建参数示例,假设已有编号为 1 的层;资源地址仅作示意。
26
+ # 创建后由调用方将对象实例放入该层的 objects。
27
+ [object.example]
28
+ name = "开场片段"
29
+ layer = 1
30
+ begin = 0.0
31
+ end = 5.0
32
+ information = { source = "assets/opening.mp4" }
@@ -0,0 +1,29 @@
1
+ # 批注对象封装:一条批注,由视图工具登记。从文字对象派生,正文仍在 information.text。
2
+ # 配置放在核心的配置目录里;Python 类和读写入口在视图工具包里(requires)。
3
+
4
+ [object]
5
+ type = "note"
6
+ version = 1
7
+ name = "批注"
8
+ class = "layerweave.tool.builtin.view.notes.models:Note"
9
+ extends = "text.toml" # 继承文字对象
10
+ requires = "layerweave.tool.builtin.view" # 依赖的工具包
11
+ note = "批注正文在 information.text;它说的是哪里,用从这条批注发出的关联表达"
12
+
13
+ # 约定:
14
+ # - 位置表示顺序:第 n 条占 [n, n+1),不表示画面时间。
15
+ # - 说的是哪里:从批注发出关联,指向对象或层,可以指好几个,也可以跨项目。没有关联就是对整个项目的意见。
16
+ # - 说的是一段空白时间:关联到那个时间轴的根层,并在 span 里写那一段(用那个根的单位)。
17
+ # - 回复:一条批注关联到另一条批注,视图按楼层显示;楼主的 status 代表整楼。
18
+ # - 目标被删除后关联仍在,视图显示"目标已删除",批注本身保留。
19
+ [object.information]
20
+ status = { type = "str", optional = true, note = "open(待处理,缺省时也按待处理)或 done(已处理)" }
21
+ author = { type = "str", optional = true, note = "谁写的,例如 用户、Claude、astra" }
22
+ span = { type = "dict", optional = true, note = "关联指向层时,那个层时间轴上的一段:{ begin = 起点, end = 终点 }" }
23
+
24
+ [object.example]
25
+ name = ""
26
+ layer = 1
27
+ begin = 0
28
+ end = 1
29
+ information = { text = "这里的球应该落在桌子下面", status = "open", author = "用户" }