stillmade-sdk 0.1.41 → 0.1.43

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 (285) hide show
  1. package/.stillmade/sdk-baseline.json +19 -21
  2. package/AGENTS.md +17 -12
  3. package/FRAME_VIEWS.md +113 -0
  4. package/INTERFACE_DESIGN.md +67 -22
  5. package/MOBILE_UI.md +4 -2
  6. package/MODULES.md +152 -6
  7. package/PASTE_TO_LLM.md +42 -32
  8. package/README.md +3 -2
  9. package/SDK.md +1028 -563
  10. package/UI_AESTHETIC.md +30 -3
  11. package/blocks/generate/package.js +1 -0
  12. package/blocks/generate/versions/1.0.0/package.js +463 -0
  13. package/docs/build/audio-to-editor.md +36 -0
  14. package/docs/build/block-builder-contract.md +150 -0
  15. package/docs/build/comfyui.md +227 -0
  16. package/docs/build/concepts.md +40 -0
  17. package/docs/build/context.md +159 -0
  18. package/docs/build/cookbook.md +57 -0
  19. package/docs/build/custom-interface.md +617 -0
  20. package/docs/build/data-types.md +83 -0
  21. package/docs/build/frame-views.md +259 -0
  22. package/docs/build/generate-media.md +59 -0
  23. package/docs/build/github-applications.md +314 -0
  24. package/docs/build/hosted-images.md +214 -0
  25. package/docs/build/hosted-music.md +39 -0
  26. package/docs/build/hosted-speech.md +157 -0
  27. package/docs/build/hosted-text.md +246 -0
  28. package/docs/build/image-description.md +49 -0
  29. package/docs/build/interface-design.md +343 -0
  30. package/docs/build/javascript.md +63 -0
  31. package/docs/build/local-preview.md +61 -0
  32. package/docs/build/media-analysis.md +27 -0
  33. package/docs/build/media.md +400 -0
  34. package/docs/build/mobile-ui.md +106 -0
  35. package/docs/build/modules.md +487 -0
  36. package/docs/build/original-blocks.md +70 -0
  37. package/docs/build/outside-apis.md +128 -0
  38. package/docs/build/production-context-templates.md +12 -0
  39. package/docs/build/project-storage.md +94 -0
  40. package/docs/build/quickstart.md +48 -0
  41. package/docs/build/recipes.md +103 -0
  42. package/docs/build/script-handoff.md +45 -0
  43. package/docs/build/script-writer.md +34 -0
  44. package/docs/build/state.md +223 -0
  45. package/docs/build/testing.md +112 -0
  46. package/docs/build/timeline-edits.md +116 -0
  47. package/docs/build/timeline-proposals.md +76 -0
  48. package/docs/build/transcription.md +59 -0
  49. package/docs/build/triggers.md +59 -0
  50. package/docs/build/tutorial.md +52 -0
  51. package/docs/build/typescript.md +34 -0
  52. package/docs/build/video-generation.md +61 -0
  53. package/docs/build/web-reading.md +37 -0
  54. package/docs/build/with-your-ai.md +27 -0
  55. package/docs/changelog.md +9 -0
  56. package/docs/creators.md +21 -0
  57. package/docs/distribute/discovery.md +43 -0
  58. package/docs/distribute/imports.md +58 -0
  59. package/docs/distribute/publishing.md +29 -0
  60. package/docs/distribute/sdk-versions.md +36 -0
  61. package/docs/distribute/selling.md +14 -0
  62. package/docs/distribute/teams.md +60 -0
  63. package/docs/distribute/versioning.md +28 -0
  64. package/docs/examples.md +23 -0
  65. package/docs/gallery.md +26 -0
  66. package/docs/index.md +50 -0
  67. package/docs/native-mcp.md +307 -0
  68. package/docs/project-types/automation.md +43 -0
  69. package/docs/project-types/batches.md +50 -0
  70. package/docs/project-types/build.md +42 -0
  71. package/docs/project-types/completion.md +15 -0
  72. package/docs/project-types/conditions.md +21 -0
  73. package/docs/project-types/hosted-review.md +115 -0
  74. package/docs/project-types/onboarding.md +75 -0
  75. package/docs/project-types/running.md +309 -0
  76. package/docs/project-types/testing.md +72 -0
  77. package/docs/reference/application-artifacts.md +87 -0
  78. package/docs/reference/authoring-guide.md +134 -0
  79. package/docs/reference/browser-applications.md +267 -0
  80. package/docs/reference/capabilities.md +45 -0
  81. package/docs/reference/cli.md +71 -0
  82. package/docs/reference/connection-api.md +59 -0
  83. package/docs/reference/cooperative-jobs.md +13 -0
  84. package/docs/reference/desktop-capabilities.md +172 -0
  85. package/docs/reference/desktop-execution.md +77 -0
  86. package/docs/reference/errors.md +233 -0
  87. package/docs/reference/execution.md +800 -0
  88. package/docs/reference/first-party-blocks.md +40 -0
  89. package/docs/reference/generation-models.md +59 -0
  90. package/docs/reference/limits.md +306 -0
  91. package/docs/reference/manifest-kinds-controls.md +36 -0
  92. package/docs/reference/manifest.md +181 -0
  93. package/docs/reference/operations.md +36 -0
  94. package/docs/reference/package-jobs.md +35 -0
  95. package/docs/reference/parity.md +55 -0
  96. package/docs/reference/permissions.md +86 -0
  97. package/docs/reference/ports.md +26 -0
  98. package/docs/reference/types.md +268 -0
  99. package/docs/reference/universal-resolver.md +303 -0
  100. package/docs/reference/view-bridge.md +60 -0
  101. package/docs/reference/view-rules.md +15 -0
  102. package/docs/reference/workspace-sync.md +25 -0
  103. package/docs/sdk.md +34 -0
  104. package/docs/tools/block-remix.md +211 -0
  105. package/docs/tools/llm.md +2213 -0
  106. package/docs/tools/repository-adaptation.md +613 -0
  107. package/examples/check-clip.stillmade.json +8 -1
  108. package/examples/clean-text.stillmade.json +4 -0
  109. package/examples/custom-interface.stillmade.json +4 -0
  110. package/examples/describe-image.stillmade.json +4 -0
  111. package/examples/foley-cue.stillmade.json +4 -0
  112. package/examples/generate-image.stillmade.json +4 -0
  113. package/examples/generate-video.stillmade.json +10 -2
  114. package/examples/module-word-stats/stillmade.block.json +4 -0
  115. package/examples/narrate-script.stillmade.json +4 -0
  116. package/examples/numbered-takes.stillmade.json +4 -0
  117. package/examples/research-topic.stillmade.json +9 -1
  118. package/examples/score-a-scene.stillmade.json +4 -0
  119. package/examples/script-draft.stillmade.json +4 -0
  120. package/examples/summarize-page.stillmade.json +4 -0
  121. package/examples/text-workflow.stillmade.json +7 -32
  122. package/examples/thicken-lines.stillmade.json +4 -0
  123. package/examples/timeline-polish.stillmade.json +15 -3
  124. package/examples/transcribe-audio.stillmade.json +15 -3
  125. package/examples/word-count.stillmade.json +4 -0
  126. package/package.json +1 -1
  127. package/packages/block-cli/cli.js +13 -6
  128. package/packages/block-cli/dev-host/assets/host.js +81 -38
  129. package/packages/block-cli/dev-host/assets/index.css +1 -1
  130. package/packages/block-cli/format.js +1 -1
  131. package/packages/block-cli/ready-gate.js +4 -0
  132. package/packages/block-cli/templates.js +37 -19
  133. package/packages/block-cli/type-packages.js +119 -0
  134. package/packages/block-platform/block-readiness.js +8 -1
  135. package/packages/block-platform/canvas.js +2 -1
  136. package/packages/block-platform/catalog.js +27 -48
  137. package/packages/block-platform/native-host-inventory.js +0 -226
  138. package/packages/block-platform/plain-descriptions.js +1 -25
  139. package/packages/block-platform/project-type-starters.js +13 -53
  140. package/packages/block-platform/script-handoff.js +2 -4
  141. package/packages/block-platform/type-workspace.js +2 -0
  142. package/packages/block-sdk/appearance.js +3 -1
  143. package/packages/block-sdk/audio-generation-example.js +2 -2
  144. package/packages/block-sdk/block-tier.js +1 -1
  145. package/packages/block-sdk/builder-contract.js +13 -11
  146. package/packages/block-sdk/capabilities.js +1 -1
  147. package/packages/block-sdk/capability-example.js +1 -1
  148. package/packages/block-sdk/contracts.js +6 -2
  149. package/packages/block-sdk/examples.js +3 -3
  150. package/packages/block-sdk/first-party-identities.js +1 -84
  151. package/packages/block-sdk/first-party-packages.js +3 -85
  152. package/packages/block-sdk/generation-catalog.js +15 -3
  153. package/packages/block-sdk/image-description-example.js +1 -1
  154. package/packages/block-sdk/image-generation-example.js +1 -1
  155. package/packages/block-sdk/index.d.ts +2 -1
  156. package/packages/block-sdk/media-analysis-example.js +2 -2
  157. package/packages/block-sdk/mock-host.js +7 -1
  158. package/packages/block-sdk/module-example.js +1 -1
  159. package/packages/block-sdk/module-host-calls.js +35 -10
  160. package/packages/block-sdk/module-hosted.js +15 -2
  161. package/packages/block-sdk/module-media-access.js +71 -0
  162. package/packages/block-sdk/module-node.js +1 -1
  163. package/packages/block-sdk/portable-media-actions.js +1 -1
  164. package/packages/block-sdk/runtime.js +1 -1
  165. package/packages/block-sdk/speech-example.js +1 -1
  166. package/packages/block-sdk/state-example.js +1 -1
  167. package/packages/block-sdk/timeline-proposal-example.js +1 -1
  168. package/packages/block-sdk/transcription-example.js +1 -1
  169. package/packages/block-sdk/trigger-examples.js +2 -2
  170. package/packages/block-sdk/video-generation-example.js +1 -1
  171. package/packages/block-sdk/view-bridge.js +4 -1
  172. package/packages/block-sdk/view-design.js +44 -15
  173. package/packages/block-sdk/web-example.js +2 -2
  174. package/packages/design-system/block-kit.css +53 -12
  175. package/packages/design-system/block-kit.html +3 -2
  176. package/blocks/mcp-motion-planner/versions/1.1.0/package.js +0 -97
  177. package/blocks/motion-designer/versions/1.0.1/package.js +0 -173318
  178. package/blocks/motion-designer/versions/1.0.2/package.js +0 -173318
  179. package/blocks/motion-frame-review/versions/1.1.1/package.js +0 -465
  180. package/blocks/motion-frame-review/versions/1.1.2/package.snapshot.js +0 -572
  181. package/blocks/narration/package.js +0 -1
  182. package/blocks/narration/versions/1.0.0/package.js +0 -221
  183. package/blocks/narration/versions/1.0.1/package.js +0 -221
  184. package/blocks/native/sm.animated-scene/versions/2.0.0/package.js +0 -475
  185. package/blocks/native/sm.animated-scene/versions/2.1.0/package.js +0 -498
  186. package/blocks/native/sm.animated-scene/versions/2.2.0/package.js +0 -524
  187. package/blocks/native/sm.animated-scene/versions/2.3.0/package.js +0 -618
  188. package/blocks/native/sm.animated-scene/versions/2.3.1/package.js +0 -618
  189. package/blocks/native/sm.animated-scene/versions/2.3.2/package.js +0 -723
  190. package/blocks/native/sm.animated-scene/versions/2.3.3/package.js +0 -723
  191. package/blocks/native/sm.animated-scene/versions/2.3.4/package.js +0 -676
  192. package/blocks/native/sm.animated-scene/versions/2.3.5/package.js +0 -693
  193. package/blocks/native/sm.animated-scene/versions/2.3.6/package.js +0 -700
  194. package/blocks/native/sm.animated-scene/versions/2.3.7/package.js +0 -747
  195. package/blocks/native/sm.animated-scene/versions/2.3.8/package.js +0 -769
  196. package/blocks/native/sm.animated-scene/versions/2.3.9/package.js +0 -769
  197. package/blocks/native/sm.animated-scene-assistant/versions/1.0.0/package.js +0 -183
  198. package/blocks/native/sm.blueprint/versions/2.0.0/package.js +0 -358
  199. package/blocks/native/sm.blueprint/versions/2.1.0/package.js +0 -358
  200. package/blocks/native/sm.blueprint/versions/2.1.1/package.js +0 -358
  201. package/blocks/native/sm.blueprint/versions/2.1.2/package.js +0 -358
  202. package/blocks/native/sm.blueprint/versions/2.1.3/package.js +0 -381
  203. package/blocks/native/sm.blueprint/versions/2.1.4/package.js +0 -381
  204. package/blocks/native/sm.blueprint/versions/2.1.5/package.js +0 -339
  205. package/blocks/native/sm.blueprint/versions/2.1.6/package.js +0 -356
  206. package/blocks/native/sm.blueprint/versions/2.1.7/package.js +0 -363
  207. package/blocks/native/sm.blueprint/versions/2.1.8/package.js +0 -410
  208. package/blocks/native/sm.blueprint/versions/2.1.9/package.js +0 -422
  209. package/blocks/native/sm.blueprint-assistant/versions/1.0.0/package.js +0 -172
  210. package/blocks/native/sm.chat/versions/2.0.0/package.js +0 -144
  211. package/blocks/native/sm.chat/versions/2.0.1/package.js +0 -97
  212. package/blocks/native/sm.chat/versions/2.0.2/package.js +0 -100
  213. package/blocks/native/sm.chat/versions/2.0.3/package.js +0 -100
  214. package/blocks/native/sm.continue-if/versions/1.0.0/package.js +0 -168
  215. package/blocks/native/sm.describe-media/versions/2.0.0/package.js +0 -153
  216. package/blocks/native/sm.describe-media/versions/2.0.1/package.js +0 -156
  217. package/blocks/native/sm.describe-media/versions/2.1.0/package.js +0 -140
  218. package/blocks/native/sm.image-editor/versions/2.0.0/package.js +0 -183
  219. package/blocks/native/sm.image-editor/versions/2.0.1/package.js +0 -190
  220. package/blocks/native/sm.new-items/versions/1.0.0/package.js +0 -191
  221. package/blocks/native/sm.pick-photos/versions/1.0.0/package.js +0 -334
  222. package/blocks/native/sm.quality-audit/versions/1.0.0/package.js +0 -192
  223. package/blocks/native/sm.quality-audit/versions/1.0.1/package.js +0 -192
  224. package/blocks/native/sm.quality-audit/versions/1.0.2/package.js +0 -195
  225. package/blocks/native/sm.research/versions/2.0.0/package.js +0 -175
  226. package/blocks/native/sm.research/versions/2.0.1/package.js +0 -184
  227. package/blocks/native/sm.research/versions/2.0.2/package.js +0 -187
  228. package/blocks/native/sm.script/versions/2.0.0/package.js +0 -144
  229. package/blocks/native/sm.script/versions/2.1.0/package.js +0 -144
  230. package/blocks/native/sm.script/versions/2.1.1/package.js +0 -144
  231. package/blocks/native/sm.script/versions/2.1.2/package.js +0 -105
  232. package/blocks/native/sm.script/versions/2.1.3/package.js +0 -152
  233. package/blocks/native/sm.script/versions/2.1.4/package.js +0 -156
  234. package/blocks/native/sm.script/versions/2.1.5/package.js +0 -156
  235. package/blocks/native/sm.shot-plan/versions/2.0.0/package.js +0 -301
  236. package/blocks/native/sm.shot-plan/versions/2.1.0/package.js +0 -528
  237. package/blocks/native/sm.shot-plan/versions/2.1.1/package.js +0 -528
  238. package/blocks/native/sm.shot-plan/versions/2.1.2/package.js +0 -528
  239. package/blocks/native/sm.shot-plan/versions/2.1.3/package.js +0 -536
  240. package/blocks/native/sm.shot-plan/versions/2.2.0/package.js +0 -800
  241. package/blocks/native/sm.shot-plan/versions/2.2.1/package.js +0 -920
  242. package/blocks/native/sm.shot-plan-assistant/versions/1.0.0/package.js +0 -173
  243. package/blocks/native/sm.stock-search/versions/2.0.0/package.js +0 -174
  244. package/blocks/native/sm.thumbnail/versions/2.0.0/package.js +0 -137
  245. package/blocks/native/sm.thumbnail/versions/2.0.1/package.js +0 -140
  246. package/blocks/native/sm.transcribe/versions/2.0.0/package.js +0 -163
  247. package/blocks/native/sm.transcribe/versions/2.0.1/package.js +0 -168
  248. package/blocks/native/sm.whiteboard-assistant/versions/1.0.0/package.js +0 -175
  249. package/blocks/native/sm.youtube/versions/2.0.0/package.js +0 -217
  250. package/blocks/occasion-story/package.js +0 -1
  251. package/blocks/occasion-story/versions/1.0.0/package.js +0 -1658
  252. package/blocks/occasion-story/versions/1.0.1/package.js +0 -1699
  253. package/blocks/occasion-story/versions/1.0.2/package.js +0 -1682
  254. package/blocks/photo-reel-composer/versions/1.0.0/package.js +0 -3043
  255. package/blocks/photo-reel-composer/versions/1.0.1/package.js +0 -3026
  256. package/blocks/photo-reel-composer/versions/1.0.2/package.js +0 -4149
  257. package/blocks/product-ad-variants/versions/1.0.0/package.js +0 -2911
  258. package/blocks/product-launch-director/versions/1.0.0/package.js +0 -103
  259. package/blocks/release-visuals/package.js +0 -1
  260. package/blocks/release-visuals/versions/1.0.0/package.js +0 -1492
  261. package/blocks/release-visuals/versions/1.0.1/package.js +0 -1517
  262. package/blocks/release-visuals/versions/1.0.2/package.js +0 -1500
  263. package/blocks/screen-recorder/package.js +0 -1
  264. package/blocks/screen-recorder/versions/1.0.0/package.js +0 -223
  265. package/blocks/screen-recorder/versions/1.0.1/package.js +0 -223
  266. package/blocks/short-form-finish/package.js +0 -1
  267. package/blocks/short-form-finish/versions/1.0.0/package.js +0 -1043
  268. package/blocks/short-form-finish/versions/1.0.1/package.js +0 -1043
  269. package/blocks/short-form-finish/versions/1.0.2/package.js +0 -1043
  270. package/blocks/short-form-finish/versions/1.0.3/package.js +0 -1026
  271. package/examples/saas-product-launch-reviewed-source.stillmade.json +0 -383
  272. package/examples/saas-product-launch.stillmade.json +0 -304
  273. package/packages/block-platform/dealer-inventory-video-project-type.js +0 -38
  274. package/packages/block-platform/first-revenue-project-types.js +0 -46
  275. package/packages/block-platform/fixture-starters.js +0 -13
  276. package/packages/block-platform/launch-project-source.js +0 -10
  277. package/packages/block-platform/launch-project.js +0 -30
  278. package/packages/block-platform/motion-project-types.js +0 -55
  279. package/packages/block-platform/motion-starters.js +0 -14
  280. package/packages/block-platform/product-ad-variants-project-type.js +0 -30
  281. package/packages/block-platform/product-launch-updated.js +0 -90
  282. package/packages/block-platform/revenue-review-project-types.js +0 -36
  283. package/packages/block-platform/revenue-review-starters.js +0 -13
  284. package/packages/block-platform/script-writer.js +0 -29
  285. package/packages/block-platform/website-source-block.js +0 -14
@@ -0,0 +1,211 @@
1
+ # Remixing a Block
2
+
3
+ # Remixing a Block
4
+
5
+ A remix is an independent Block with a new package identity and version `0.1.0`.
6
+ The original release, installed pins and saved projects remain intact. Remixes
7
+ use the ordinary Block Builder, validator, package format and release pipeline.
8
+ Project Types, projects and generated outputs are outside this workflow.
9
+
10
+ ## Find before you build
11
+
12
+ Check what already exists before writing a new Block. Create runs a free check
13
+ before every new build, and MCP clients call `find_existing_blocks`. Both search
14
+ reviewed Marketplace listings, tested Community Blocks, built-ins and your own
15
+ Blocks by what they take in, produce and call, and by name. The answer is one of:
16
+ use an existing Block, open your own, remix a close one, chain existing Blocks
17
+ and build only the missing step, or build new. Over MCP, `begin_block_remix`
18
+ starts a remix from an exact public version.
19
+
20
+ Publishing a renamed copy of another creator's public Block is refused; remix it
21
+ so its license, notices and creator credit stay attached. Max accounts can keep
22
+ such a copy private.
23
+
24
+ ## Required for every finished Block
25
+
26
+ Automatic remixing is a minimum admission requirement, including private Blocks.
27
+ A creator does not implement a Remix button, callback, endpoint or separate export.
28
+ StillMade derives Remix from the same self-contained package that it installs.
29
+
30
+ The finished package must contain its editable implementation or declarative
31
+ workflow, typed inputs/outputs, interface schema, permissions, fixtures and legal
32
+ evidence. Declare a supported permissive `manifest.license` and retain the full
33
+ original copyright/license text in `manifest.provenance.notice`; portable packages
34
+ retain their verified source files and generated attribution instead. Do not invent
35
+ copyright holders, repository commits or permission. Unresolved rights produce a
36
+ blocked result. Never silently license someone else's source.
37
+
38
+ Remixing is enabled by default. An explicit `remixPolicy` must permit remixing
39
+ and must not set `sourceInspection: "no"`. A Block's code is private to its creator: no one else views or downloads it,
40
+ and others change it only by describing changes to StillMade's AI builder.
41
+ Omit optional settings when defaults
42
+ are sufficient. The host creates the new identity, preserves the parent digest,
43
+ source and notices, and presents the ordinary builder. Creators need no extra
44
+ StillMade instructions. Project Edit retains compatible inputs and saved state;
45
+ incompatible changes are reviewed before adoption.
46
+
47
+ `packages/block-sdk/remix-policy.js` exports `blockRemixPolicy` and
48
+ `assertRemixReady`. SDK `scanPackage` and `admitPackage`, server import, and
49
+ builder completion apply the same **Remix readiness** check. CLI `validate`,
50
+ `test` and `pack` refuse a Block that fails it. Fix the returned diagnostics
51
+ before returning an artifact. Run the normal security, fixture and preview
52
+ checks too; passing remix readiness alone does not certify the whole Block.
53
+
54
+ Low-level `validatePackage` checks draft structure; it is not a completion or
55
+ installation certificate. Drafts can remain incomplete and editable. Previously
56
+ installed releases are not rewritten or disabled by this new admission rule.
57
+ Protected starting Chat remains protected. Legacy host workspaces do not become
58
+ remixable merely by adding metadata: they need an independent SDK implementation.
59
+
60
+ ## In StillMade
61
+
62
+ Choose **Remix Block** on an exact public Block version, or **Remix this version**
63
+ in Marketplace. Sign in, review its license and declared permissions, then
64
+ confirm **Remix Block**. The code is never shown or downloadable; describe the
65
+ change you want and StillMade's AI builder makes it. StillMade saves an account draft and opens Create.
66
+ Nothing is installed, published, executed or charged by creating the draft.
67
+ AI refinement edits the implementation, controls and fixtures while the host
68
+ retains and restores immutable source evidence and ancestry. Evidence is not
69
+ charged against the editable-source prompt limit; the package size limit still
70
+ applies. The resulting local Block receives the same admission checks as a
71
+ portable artifact.
72
+ The Versions tab shows ancestry and retained notices. Publishing the edited
73
+ Block requires the normal validation and rights confirmation. A remix of someone
74
+ else's Block is released as a Block owned by the original creator, who keeps its
75
+ code and earns from it; the remixer is credited and can use it right away. A
76
+ remix is always available by link, never private.
77
+ Public Block pages link to paginated newest and top remixes of that exact version.
78
+ Top uses qualified production account counts for a 30-day window, hidden below
79
+ ten accounts and rounded down to tens. Both views fall back to newest when
80
+ analytics is unavailable. Contract differences use the same deterministic
81
+ comparison as Creator. These observations do not claim performance improvements. Follow
82
+ any remix on its listing; existing Creator reports provide incoming/outgoing
83
+ remixes and usage comparisons. Ancestry alone never creates a payout entitlement.
84
+
85
+ Account creation pins the parent release id, version and digest on the server.
86
+ A retry of the same request returns the current draft instead of creating a
87
+ second copy or overwriting edits. Checkpoints and releases retain inherited
88
+ attribution; removing it requires a separate rights review, not a source edit.
89
+
90
+ ## Outside StillMade
91
+
92
+ Outside StillMade you remix only your own Blocks: one you imported or built, including a
93
+ newer version you edited in StillMade and downloaded from your versions (**Download
94
+ source + SDK**) to take back to your coding agent. Another person's Block is remixed only
95
+ in StillMade, as above: StillMade offers no download of it, and an import whose original
96
+ is another person's Block is refused with "Their Blocks can be remixed only in StillMade".
97
+
98
+ Use the CLI shipped in the downloadable SDK:
99
+
100
+ ```sh
101
+ node packages/block-cli/cli.js remix original.stillmade-block my-remix.stillmade-block
102
+ node packages/block-cli/cli.js validate my-remix.stillmade-block
103
+ node packages/block-cli/cli.js test my-remix.stillmade-block
104
+ ```
105
+
106
+ `remix` copies source and fixtures without running the Block. For portable
107
+ packages it also verifies the retained repository evidence. It refuses to
108
+ overwrite an existing output. Its output is an editable draft, not a claim
109
+ that tests passed. Extract/edit a portable package using the canonical layout
110
+ in [PORTABLE.md](PORTABLE.md), then validate, test and pack the finished folder:
111
+
112
+ ```sh
113
+ node packages/block-cli/cli.js pack ./edited-remix ready.stillmade-block
114
+ ```
115
+
116
+ Portable `test` and `pack` use `admitLocalPackage` from
117
+ `packages/block-sdk/local-admission.js`, the same local admission routine as
118
+ StillMade import: static review, isolated fixtures and a sample starting with
119
+ fresh Block state share a 15-second budget. Packaging stops if any check fails.
120
+ `validate` remains a non-executing schema/security and repository-evidence check.
121
+ The packaging result includes the admission report and repository verification.
122
+ StillMade repeats admission and checks current security/account policy at import;
123
+ rendered platform checks remain host checks rather than an offline certification.
124
+
125
+ Legacy JSON packages can be remixed to `.stillmade.json`. An incomplete legacy
126
+ package cannot acquire portable status merely by changing its file extension.
127
+ Upload the finished package using the existing import review and Install flow.
128
+ Hosted capability and ComfyUI Blocks still require their existing scoped runtime
129
+ approvals; remixing does not authorize provider calls or waive their charges.
130
+
131
+ ## Contract and licensing
132
+
133
+ The shared transformation is `packages/block-platform/block-remix.js`. Its
134
+ `blockRemixPolicy` and `remixBlock` are used by account creation, local Block
135
+ editing and the SDK CLI. Copies retain code/wrappers, typed I/O, UI, state
136
+ schemas, dependencies, configuration, permissions, tests and legal evidence.
137
+ No installed user state, credentials, listing purchase prices or execution
138
+ approvals are copied. Those belong to the host, outside the source package.
139
+
140
+ `manifest.provenance.remixSource` retains the complete original Block as inert
141
+ JSON data. Its digest must match the immediate parent pin. The SDK and server
142
+ verify these bytes and inherited legal metadata without executing the original
143
+ or asking the user for a separate source upload. The snapshot counts toward the
144
+ existing 4 MB package and bounded nesting limits. Older packages without a
145
+ snapshot require a matching source already retained by StillMade; immutable
146
+ published packages and installed hashes are not rewritten. Source-byte
147
+ verification is not proof of a creator's legal identity or an earnings claim.
148
+
149
+ `manifest.provenance.remixedFrom` is the immediate `{id, version, digest}` pin;
150
+ `remixAncestors` retains earlier pins (maximum 64). All digests are lowercase
151
+ SHA-256. Portable packages additionally retain `portable.lineage.parents`
152
+ (maximum 16), a change description, every original evidence file, source commit,
153
+ license and generated NOTICE. Existing provenance is preserved, and a generated
154
+ summary receipt is removed because it describes the original source digest.
155
+
156
+ Automatic remixing uses the existing conservative portable license profile:
157
+ MIT, BSD-2-Clause, BSD-3-Clause, ISC and Apache-2.0 with retained evidence. For
158
+ nonportable third-party source, the original full license/copyright notice must
159
+ be retained in `manifest.provenance.notice`; a license label alone is insufficient.
160
+ Account ownership does not substitute for retained license evidence.
161
+
162
+ A portable remix may add another licensed capability or bundled dependency.
163
+ Supported permissive licenses combine using the sorted SPDX `AND` declaration
164
+ generated by `withPortableAttribution`; all inherited licenses remain included.
165
+ Marketplace review uses this same evidence check in the publishing dialog and
166
+ on the server. An “Includes MIT” discovery filter also finds supported declarations
167
+ such as `Apache-2.0 AND MIT`; listings retain the complete declaration. Filtering
168
+ is not evidence verification or permission to redistribute. Unsupported choices,
169
+ exceptions and combinations do not match a constituent permissive filter.
170
+ Append its record to `portable.sources` and its exact evidence files under the
171
+ next `upstream/SOURCE_INDEX/` directory. Keep every inherited source record in
172
+ its original position and preserve every inherited evidence file byte for byte.
173
+ Regenerate `manifest.provenance.portableSources` and `notice` with
174
+ `withPortableAttribution` from `packages/block-sdk/portable.js`; packaging writes
175
+ the matching root NOTICE automatically. Additional sources receive the same
176
+ license and repository-evidence checks as an original portable Block, including
177
+ the supported permissive combination policy and file/size limits. The original snapshot
178
+ and all inherited lineage pins remain unchanged. New behavior still needs its
179
+ own fixtures and the ordinary validation and sandbox review before installation.
180
+ Unsupported combinations, custom, copyleft or unresolved terms return a restricted result pending
181
+ review. This automatic policy does not claim those licenses forbid derivatives.
182
+
183
+ Historical releases may contain `allowRemixing: false`. Their upstream license
184
+ rights remain intact, but a new finished Block with that setting fails admission.
185
+ Private sharing controls who can access a Block, not whether its authorized
186
+ recipient receives the implementation required for remixing. Starting Chat and
187
+ host-coupled workspaces retain their existing restrictions.
188
+
189
+ ## Acceptance checklist
190
+
191
+ - **Remix readiness passes** with source and license evidence; no disabled remix or hidden-source setting.
192
+ - New identity and version, original release unchanged, copy saved as a draft.
193
+ - Original implementation, typed contract, UI and fixtures retained.
194
+ - Immediate parent and earlier ancestry pinned, notices and source evidence kept.
195
+ - License/security/access restrictions produce an actionable blocked result.
196
+ - External validation and tests pass before a final package is returned.
197
+ - Normal sandbox, permissions, visibility and install checks remain in force.
198
+ - No payments, ancestor revenue allocation or provider dispatch during remix.
199
+
200
+
201
+ ## Code stays private
202
+
203
+ A Block's code is private to its creator. Nobody else can view or download it:
204
+ public pages, Marketplace and remixes never show it, and the source download
205
+ works only for its creator and StillMade admins. An older `sourceInspection: "no"`
206
+ still keeps that Block's releases private and its remix action off. Account and team visibility still determine who may use a
207
+ private package.
208
+
209
+ A source-access choice cannot replace legal evidence or revoke upstream rights.
210
+ Existing immutable releases keep their established pins and access. Newly finished
211
+ versions must pass the required remix, license and normal admission checks.