stillmade-sdk 0.1.42 → 0.1.44

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 (262) hide show
  1. package/.stillmade/sdk-baseline.json +6 -8
  2. package/AGENTS.md +15 -10
  3. package/FRAME_VIEWS.md +113 -0
  4. package/INTERFACE_DESIGN.md +62 -22
  5. package/MOBILE_UI.md +4 -2
  6. package/MODULES.md +152 -6
  7. package/PASTE_TO_LLM.md +35 -25
  8. package/README.md +3 -2
  9. package/SDK.md +994 -550
  10. package/UI_AESTHETIC.md +22 -2
  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 +4 -1
  108. package/examples/generate-video.stillmade.json +6 -2
  109. package/examples/research-topic.stillmade.json +5 -1
  110. package/examples/text-workflow.stillmade.json +3 -32
  111. package/examples/timeline-polish.stillmade.json +11 -3
  112. package/examples/transcribe-audio.stillmade.json +11 -3
  113. package/package.json +1 -1
  114. package/packages/block-cli/cli.js +13 -6
  115. package/packages/block-cli/dev-host/assets/host.js +76 -38
  116. package/packages/block-cli/dev-host/assets/index.css +1 -1
  117. package/packages/block-cli/format.js +1 -1
  118. package/packages/block-cli/templates.js +31 -13
  119. package/packages/block-cli/type-packages.js +119 -0
  120. package/packages/block-platform/block-readiness.js +5 -0
  121. package/packages/block-platform/canvas.js +2 -1
  122. package/packages/block-platform/catalog.js +27 -48
  123. package/packages/block-platform/native-host-inventory.js +0 -226
  124. package/packages/block-platform/plain-descriptions.js +1 -25
  125. package/packages/block-platform/project-type-starters.js +13 -53
  126. package/packages/block-platform/script-handoff.js +2 -4
  127. package/packages/block-platform/type-workspace.js +2 -0
  128. package/packages/block-sdk/appearance.js +3 -1
  129. package/packages/block-sdk/block-tier.js +1 -1
  130. package/packages/block-sdk/builder-contract.js +10 -8
  131. package/packages/block-sdk/capabilities.js +1 -1
  132. package/packages/block-sdk/contracts.js +6 -2
  133. package/packages/block-sdk/first-party-identities.js +1 -84
  134. package/packages/block-sdk/first-party-packages.js +3 -85
  135. package/packages/block-sdk/generation-catalog.js +15 -3
  136. package/packages/block-sdk/index.d.ts +2 -1
  137. package/packages/block-sdk/media-analysis-example.js +1 -1
  138. package/packages/block-sdk/mock-host.js +7 -1
  139. package/packages/block-sdk/module-host-calls.js +35 -10
  140. package/packages/block-sdk/module-hosted.js +15 -2
  141. package/packages/block-sdk/module-media-access.js +71 -0
  142. package/packages/block-sdk/module-node.js +1 -1
  143. package/packages/block-sdk/portable-media-actions.js +1 -1
  144. package/packages/block-sdk/runtime.js +1 -1
  145. package/packages/block-sdk/timeline-proposal-example.js +1 -1
  146. package/packages/block-sdk/transcription-example.js +1 -1
  147. package/packages/block-sdk/video-generation-example.js +1 -1
  148. package/packages/block-sdk/view-bridge.js +4 -1
  149. package/packages/block-sdk/view-design.js +17 -14
  150. package/packages/block-sdk/web-example.js +1 -1
  151. package/packages/design-system/block-kit.css +48 -12
  152. package/packages/design-system/block-kit.html +3 -2
  153. package/blocks/mcp-motion-planner/versions/1.1.0/package.js +0 -97
  154. package/blocks/motion-designer/versions/1.0.1/package.js +0 -173318
  155. package/blocks/motion-designer/versions/1.0.2/package.js +0 -173318
  156. package/blocks/motion-frame-review/versions/1.1.1/package.js +0 -465
  157. package/blocks/motion-frame-review/versions/1.1.2/package.snapshot.js +0 -572
  158. package/blocks/narration/package.js +0 -1
  159. package/blocks/narration/versions/1.0.0/package.js +0 -221
  160. package/blocks/narration/versions/1.0.1/package.js +0 -221
  161. package/blocks/native/sm.animated-scene/versions/2.0.0/package.js +0 -475
  162. package/blocks/native/sm.animated-scene/versions/2.1.0/package.js +0 -498
  163. package/blocks/native/sm.animated-scene/versions/2.2.0/package.js +0 -524
  164. package/blocks/native/sm.animated-scene/versions/2.3.0/package.js +0 -618
  165. package/blocks/native/sm.animated-scene/versions/2.3.1/package.js +0 -618
  166. package/blocks/native/sm.animated-scene/versions/2.3.2/package.js +0 -723
  167. package/blocks/native/sm.animated-scene/versions/2.3.3/package.js +0 -723
  168. package/blocks/native/sm.animated-scene/versions/2.3.4/package.js +0 -676
  169. package/blocks/native/sm.animated-scene/versions/2.3.5/package.js +0 -693
  170. package/blocks/native/sm.animated-scene/versions/2.3.6/package.js +0 -700
  171. package/blocks/native/sm.animated-scene/versions/2.3.7/package.js +0 -747
  172. package/blocks/native/sm.animated-scene/versions/2.3.8/package.js +0 -769
  173. package/blocks/native/sm.animated-scene/versions/2.3.9/package.js +0 -769
  174. package/blocks/native/sm.animated-scene-assistant/versions/1.0.0/package.js +0 -183
  175. package/blocks/native/sm.blueprint/versions/2.0.0/package.js +0 -358
  176. package/blocks/native/sm.blueprint/versions/2.1.0/package.js +0 -358
  177. package/blocks/native/sm.blueprint/versions/2.1.1/package.js +0 -358
  178. package/blocks/native/sm.blueprint/versions/2.1.2/package.js +0 -358
  179. package/blocks/native/sm.blueprint/versions/2.1.3/package.js +0 -381
  180. package/blocks/native/sm.blueprint/versions/2.1.4/package.js +0 -381
  181. package/blocks/native/sm.blueprint/versions/2.1.5/package.js +0 -339
  182. package/blocks/native/sm.blueprint/versions/2.1.6/package.js +0 -356
  183. package/blocks/native/sm.blueprint/versions/2.1.7/package.js +0 -363
  184. package/blocks/native/sm.blueprint/versions/2.1.8/package.js +0 -410
  185. package/blocks/native/sm.blueprint/versions/2.1.9/package.js +0 -422
  186. package/blocks/native/sm.blueprint-assistant/versions/1.0.0/package.js +0 -172
  187. package/blocks/native/sm.chat/versions/2.0.0/package.js +0 -144
  188. package/blocks/native/sm.chat/versions/2.0.1/package.js +0 -97
  189. package/blocks/native/sm.chat/versions/2.0.2/package.js +0 -100
  190. package/blocks/native/sm.chat/versions/2.0.3/package.js +0 -100
  191. package/blocks/native/sm.continue-if/versions/1.0.0/package.js +0 -168
  192. package/blocks/native/sm.describe-media/versions/2.0.0/package.js +0 -153
  193. package/blocks/native/sm.describe-media/versions/2.0.1/package.js +0 -156
  194. package/blocks/native/sm.describe-media/versions/2.1.0/package.js +0 -140
  195. package/blocks/native/sm.image-editor/versions/2.0.0/package.js +0 -183
  196. package/blocks/native/sm.image-editor/versions/2.0.1/package.js +0 -190
  197. package/blocks/native/sm.new-items/versions/1.0.0/package.js +0 -191
  198. package/blocks/native/sm.pick-photos/versions/1.0.0/package.js +0 -334
  199. package/blocks/native/sm.quality-audit/versions/1.0.0/package.js +0 -192
  200. package/blocks/native/sm.quality-audit/versions/1.0.1/package.js +0 -192
  201. package/blocks/native/sm.quality-audit/versions/1.0.2/package.js +0 -195
  202. package/blocks/native/sm.research/versions/2.0.0/package.js +0 -175
  203. package/blocks/native/sm.research/versions/2.0.1/package.js +0 -184
  204. package/blocks/native/sm.research/versions/2.0.2/package.js +0 -187
  205. package/blocks/native/sm.script/versions/2.0.0/package.js +0 -144
  206. package/blocks/native/sm.script/versions/2.1.0/package.js +0 -144
  207. package/blocks/native/sm.script/versions/2.1.1/package.js +0 -144
  208. package/blocks/native/sm.script/versions/2.1.2/package.js +0 -105
  209. package/blocks/native/sm.script/versions/2.1.3/package.js +0 -152
  210. package/blocks/native/sm.script/versions/2.1.4/package.js +0 -156
  211. package/blocks/native/sm.script/versions/2.1.5/package.js +0 -156
  212. package/blocks/native/sm.shot-plan/versions/2.0.0/package.js +0 -301
  213. package/blocks/native/sm.shot-plan/versions/2.1.0/package.js +0 -528
  214. package/blocks/native/sm.shot-plan/versions/2.1.1/package.js +0 -528
  215. package/blocks/native/sm.shot-plan/versions/2.1.2/package.js +0 -528
  216. package/blocks/native/sm.shot-plan/versions/2.1.3/package.js +0 -536
  217. package/blocks/native/sm.shot-plan/versions/2.2.0/package.js +0 -800
  218. package/blocks/native/sm.shot-plan/versions/2.2.1/package.js +0 -920
  219. package/blocks/native/sm.shot-plan-assistant/versions/1.0.0/package.js +0 -173
  220. package/blocks/native/sm.stock-search/versions/2.0.0/package.js +0 -174
  221. package/blocks/native/sm.thumbnail/versions/2.0.0/package.js +0 -137
  222. package/blocks/native/sm.thumbnail/versions/2.0.1/package.js +0 -140
  223. package/blocks/native/sm.transcribe/versions/2.0.0/package.js +0 -163
  224. package/blocks/native/sm.transcribe/versions/2.0.1/package.js +0 -168
  225. package/blocks/native/sm.whiteboard-assistant/versions/1.0.0/package.js +0 -175
  226. package/blocks/native/sm.youtube/versions/2.0.0/package.js +0 -217
  227. package/blocks/occasion-story/package.js +0 -1
  228. package/blocks/occasion-story/versions/1.0.0/package.js +0 -1658
  229. package/blocks/occasion-story/versions/1.0.1/package.js +0 -1699
  230. package/blocks/occasion-story/versions/1.0.2/package.js +0 -1682
  231. package/blocks/photo-reel-composer/versions/1.0.0/package.js +0 -3043
  232. package/blocks/photo-reel-composer/versions/1.0.1/package.js +0 -3026
  233. package/blocks/photo-reel-composer/versions/1.0.2/package.js +0 -4149
  234. package/blocks/product-ad-variants/versions/1.0.0/package.js +0 -2911
  235. package/blocks/product-launch-director/versions/1.0.0/package.js +0 -103
  236. package/blocks/release-visuals/package.js +0 -1
  237. package/blocks/release-visuals/versions/1.0.0/package.js +0 -1492
  238. package/blocks/release-visuals/versions/1.0.1/package.js +0 -1517
  239. package/blocks/release-visuals/versions/1.0.2/package.js +0 -1500
  240. package/blocks/screen-recorder/package.js +0 -1
  241. package/blocks/screen-recorder/versions/1.0.0/package.js +0 -223
  242. package/blocks/screen-recorder/versions/1.0.1/package.js +0 -223
  243. package/blocks/short-form-finish/package.js +0 -1
  244. package/blocks/short-form-finish/versions/1.0.0/package.js +0 -1043
  245. package/blocks/short-form-finish/versions/1.0.1/package.js +0 -1043
  246. package/blocks/short-form-finish/versions/1.0.2/package.js +0 -1043
  247. package/blocks/short-form-finish/versions/1.0.3/package.js +0 -1026
  248. package/examples/saas-product-launch-reviewed-source.stillmade.json +0 -383
  249. package/examples/saas-product-launch.stillmade.json +0 -304
  250. package/packages/block-platform/dealer-inventory-video-project-type.js +0 -38
  251. package/packages/block-platform/first-revenue-project-types.js +0 -46
  252. package/packages/block-platform/fixture-starters.js +0 -13
  253. package/packages/block-platform/launch-project-source.js +0 -10
  254. package/packages/block-platform/launch-project.js +0 -30
  255. package/packages/block-platform/motion-project-types.js +0 -55
  256. package/packages/block-platform/motion-starters.js +0 -14
  257. package/packages/block-platform/product-ad-variants-project-type.js +0 -30
  258. package/packages/block-platform/product-launch-updated.js +0 -90
  259. package/packages/block-platform/revenue-review-project-types.js +0 -36
  260. package/packages/block-platform/revenue-review-starters.js +0 -13
  261. package/packages/block-platform/script-writer.js +0 -29
  262. 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.