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.
- package/.stillmade/sdk-baseline.json +19 -21
- package/AGENTS.md +17 -12
- package/FRAME_VIEWS.md +113 -0
- package/INTERFACE_DESIGN.md +67 -22
- package/MOBILE_UI.md +4 -2
- package/MODULES.md +152 -6
- package/PASTE_TO_LLM.md +42 -32
- package/README.md +3 -2
- package/SDK.md +1028 -563
- package/UI_AESTHETIC.md +30 -3
- package/blocks/generate/package.js +1 -0
- package/blocks/generate/versions/1.0.0/package.js +463 -0
- package/docs/build/audio-to-editor.md +36 -0
- package/docs/build/block-builder-contract.md +150 -0
- package/docs/build/comfyui.md +227 -0
- package/docs/build/concepts.md +40 -0
- package/docs/build/context.md +159 -0
- package/docs/build/cookbook.md +57 -0
- package/docs/build/custom-interface.md +617 -0
- package/docs/build/data-types.md +83 -0
- package/docs/build/frame-views.md +259 -0
- package/docs/build/generate-media.md +59 -0
- package/docs/build/github-applications.md +314 -0
- package/docs/build/hosted-images.md +214 -0
- package/docs/build/hosted-music.md +39 -0
- package/docs/build/hosted-speech.md +157 -0
- package/docs/build/hosted-text.md +246 -0
- package/docs/build/image-description.md +49 -0
- package/docs/build/interface-design.md +343 -0
- package/docs/build/javascript.md +63 -0
- package/docs/build/local-preview.md +61 -0
- package/docs/build/media-analysis.md +27 -0
- package/docs/build/media.md +400 -0
- package/docs/build/mobile-ui.md +106 -0
- package/docs/build/modules.md +487 -0
- package/docs/build/original-blocks.md +70 -0
- package/docs/build/outside-apis.md +128 -0
- package/docs/build/production-context-templates.md +12 -0
- package/docs/build/project-storage.md +94 -0
- package/docs/build/quickstart.md +48 -0
- package/docs/build/recipes.md +103 -0
- package/docs/build/script-handoff.md +45 -0
- package/docs/build/script-writer.md +34 -0
- package/docs/build/state.md +223 -0
- package/docs/build/testing.md +112 -0
- package/docs/build/timeline-edits.md +116 -0
- package/docs/build/timeline-proposals.md +76 -0
- package/docs/build/transcription.md +59 -0
- package/docs/build/triggers.md +59 -0
- package/docs/build/tutorial.md +52 -0
- package/docs/build/typescript.md +34 -0
- package/docs/build/video-generation.md +61 -0
- package/docs/build/web-reading.md +37 -0
- package/docs/build/with-your-ai.md +27 -0
- package/docs/changelog.md +9 -0
- package/docs/creators.md +21 -0
- package/docs/distribute/discovery.md +43 -0
- package/docs/distribute/imports.md +58 -0
- package/docs/distribute/publishing.md +29 -0
- package/docs/distribute/sdk-versions.md +36 -0
- package/docs/distribute/selling.md +14 -0
- package/docs/distribute/teams.md +60 -0
- package/docs/distribute/versioning.md +28 -0
- package/docs/examples.md +23 -0
- package/docs/gallery.md +26 -0
- package/docs/index.md +50 -0
- package/docs/native-mcp.md +307 -0
- package/docs/project-types/automation.md +43 -0
- package/docs/project-types/batches.md +50 -0
- package/docs/project-types/build.md +42 -0
- package/docs/project-types/completion.md +15 -0
- package/docs/project-types/conditions.md +21 -0
- package/docs/project-types/hosted-review.md +115 -0
- package/docs/project-types/onboarding.md +75 -0
- package/docs/project-types/running.md +309 -0
- package/docs/project-types/testing.md +72 -0
- package/docs/reference/application-artifacts.md +87 -0
- package/docs/reference/authoring-guide.md +134 -0
- package/docs/reference/browser-applications.md +267 -0
- package/docs/reference/capabilities.md +45 -0
- package/docs/reference/cli.md +71 -0
- package/docs/reference/connection-api.md +59 -0
- package/docs/reference/cooperative-jobs.md +13 -0
- package/docs/reference/desktop-capabilities.md +172 -0
- package/docs/reference/desktop-execution.md +77 -0
- package/docs/reference/errors.md +233 -0
- package/docs/reference/execution.md +800 -0
- package/docs/reference/first-party-blocks.md +40 -0
- package/docs/reference/generation-models.md +59 -0
- package/docs/reference/limits.md +306 -0
- package/docs/reference/manifest-kinds-controls.md +36 -0
- package/docs/reference/manifest.md +181 -0
- package/docs/reference/operations.md +36 -0
- package/docs/reference/package-jobs.md +35 -0
- package/docs/reference/parity.md +55 -0
- package/docs/reference/permissions.md +86 -0
- package/docs/reference/ports.md +26 -0
- package/docs/reference/types.md +268 -0
- package/docs/reference/universal-resolver.md +303 -0
- package/docs/reference/view-bridge.md +60 -0
- package/docs/reference/view-rules.md +15 -0
- package/docs/reference/workspace-sync.md +25 -0
- package/docs/sdk.md +34 -0
- package/docs/tools/block-remix.md +211 -0
- package/docs/tools/llm.md +2213 -0
- package/docs/tools/repository-adaptation.md +613 -0
- package/examples/check-clip.stillmade.json +8 -1
- package/examples/clean-text.stillmade.json +4 -0
- package/examples/custom-interface.stillmade.json +4 -0
- package/examples/describe-image.stillmade.json +4 -0
- package/examples/foley-cue.stillmade.json +4 -0
- package/examples/generate-image.stillmade.json +4 -0
- package/examples/generate-video.stillmade.json +10 -2
- package/examples/module-word-stats/stillmade.block.json +4 -0
- package/examples/narrate-script.stillmade.json +4 -0
- package/examples/numbered-takes.stillmade.json +4 -0
- package/examples/research-topic.stillmade.json +9 -1
- package/examples/score-a-scene.stillmade.json +4 -0
- package/examples/script-draft.stillmade.json +4 -0
- package/examples/summarize-page.stillmade.json +4 -0
- package/examples/text-workflow.stillmade.json +7 -32
- package/examples/thicken-lines.stillmade.json +4 -0
- package/examples/timeline-polish.stillmade.json +15 -3
- package/examples/transcribe-audio.stillmade.json +15 -3
- package/examples/word-count.stillmade.json +4 -0
- package/package.json +1 -1
- package/packages/block-cli/cli.js +13 -6
- package/packages/block-cli/dev-host/assets/host.js +81 -38
- package/packages/block-cli/dev-host/assets/index.css +1 -1
- package/packages/block-cli/format.js +1 -1
- package/packages/block-cli/ready-gate.js +4 -0
- package/packages/block-cli/templates.js +37 -19
- package/packages/block-cli/type-packages.js +119 -0
- package/packages/block-platform/block-readiness.js +8 -1
- package/packages/block-platform/canvas.js +2 -1
- package/packages/block-platform/catalog.js +27 -48
- package/packages/block-platform/native-host-inventory.js +0 -226
- package/packages/block-platform/plain-descriptions.js +1 -25
- package/packages/block-platform/project-type-starters.js +13 -53
- package/packages/block-platform/script-handoff.js +2 -4
- package/packages/block-platform/type-workspace.js +2 -0
- package/packages/block-sdk/appearance.js +3 -1
- package/packages/block-sdk/audio-generation-example.js +2 -2
- package/packages/block-sdk/block-tier.js +1 -1
- package/packages/block-sdk/builder-contract.js +13 -11
- package/packages/block-sdk/capabilities.js +1 -1
- package/packages/block-sdk/capability-example.js +1 -1
- package/packages/block-sdk/contracts.js +6 -2
- package/packages/block-sdk/examples.js +3 -3
- package/packages/block-sdk/first-party-identities.js +1 -84
- package/packages/block-sdk/first-party-packages.js +3 -85
- package/packages/block-sdk/generation-catalog.js +15 -3
- package/packages/block-sdk/image-description-example.js +1 -1
- package/packages/block-sdk/image-generation-example.js +1 -1
- package/packages/block-sdk/index.d.ts +2 -1
- package/packages/block-sdk/media-analysis-example.js +2 -2
- package/packages/block-sdk/mock-host.js +7 -1
- package/packages/block-sdk/module-example.js +1 -1
- package/packages/block-sdk/module-host-calls.js +35 -10
- package/packages/block-sdk/module-hosted.js +15 -2
- package/packages/block-sdk/module-media-access.js +71 -0
- package/packages/block-sdk/module-node.js +1 -1
- package/packages/block-sdk/portable-media-actions.js +1 -1
- package/packages/block-sdk/runtime.js +1 -1
- package/packages/block-sdk/speech-example.js +1 -1
- package/packages/block-sdk/state-example.js +1 -1
- package/packages/block-sdk/timeline-proposal-example.js +1 -1
- package/packages/block-sdk/transcription-example.js +1 -1
- package/packages/block-sdk/trigger-examples.js +2 -2
- package/packages/block-sdk/video-generation-example.js +1 -1
- package/packages/block-sdk/view-bridge.js +4 -1
- package/packages/block-sdk/view-design.js +44 -15
- package/packages/block-sdk/web-example.js +2 -2
- package/packages/design-system/block-kit.css +53 -12
- package/packages/design-system/block-kit.html +3 -2
- package/blocks/mcp-motion-planner/versions/1.1.0/package.js +0 -97
- package/blocks/motion-designer/versions/1.0.1/package.js +0 -173318
- package/blocks/motion-designer/versions/1.0.2/package.js +0 -173318
- package/blocks/motion-frame-review/versions/1.1.1/package.js +0 -465
- package/blocks/motion-frame-review/versions/1.1.2/package.snapshot.js +0 -572
- package/blocks/narration/package.js +0 -1
- package/blocks/narration/versions/1.0.0/package.js +0 -221
- package/blocks/narration/versions/1.0.1/package.js +0 -221
- package/blocks/native/sm.animated-scene/versions/2.0.0/package.js +0 -475
- package/blocks/native/sm.animated-scene/versions/2.1.0/package.js +0 -498
- package/blocks/native/sm.animated-scene/versions/2.2.0/package.js +0 -524
- package/blocks/native/sm.animated-scene/versions/2.3.0/package.js +0 -618
- package/blocks/native/sm.animated-scene/versions/2.3.1/package.js +0 -618
- package/blocks/native/sm.animated-scene/versions/2.3.2/package.js +0 -723
- package/blocks/native/sm.animated-scene/versions/2.3.3/package.js +0 -723
- package/blocks/native/sm.animated-scene/versions/2.3.4/package.js +0 -676
- package/blocks/native/sm.animated-scene/versions/2.3.5/package.js +0 -693
- package/blocks/native/sm.animated-scene/versions/2.3.6/package.js +0 -700
- package/blocks/native/sm.animated-scene/versions/2.3.7/package.js +0 -747
- package/blocks/native/sm.animated-scene/versions/2.3.8/package.js +0 -769
- package/blocks/native/sm.animated-scene/versions/2.3.9/package.js +0 -769
- package/blocks/native/sm.animated-scene-assistant/versions/1.0.0/package.js +0 -183
- package/blocks/native/sm.blueprint/versions/2.0.0/package.js +0 -358
- package/blocks/native/sm.blueprint/versions/2.1.0/package.js +0 -358
- package/blocks/native/sm.blueprint/versions/2.1.1/package.js +0 -358
- package/blocks/native/sm.blueprint/versions/2.1.2/package.js +0 -358
- package/blocks/native/sm.blueprint/versions/2.1.3/package.js +0 -381
- package/blocks/native/sm.blueprint/versions/2.1.4/package.js +0 -381
- package/blocks/native/sm.blueprint/versions/2.1.5/package.js +0 -339
- package/blocks/native/sm.blueprint/versions/2.1.6/package.js +0 -356
- package/blocks/native/sm.blueprint/versions/2.1.7/package.js +0 -363
- package/blocks/native/sm.blueprint/versions/2.1.8/package.js +0 -410
- package/blocks/native/sm.blueprint/versions/2.1.9/package.js +0 -422
- package/blocks/native/sm.blueprint-assistant/versions/1.0.0/package.js +0 -172
- package/blocks/native/sm.chat/versions/2.0.0/package.js +0 -144
- package/blocks/native/sm.chat/versions/2.0.1/package.js +0 -97
- package/blocks/native/sm.chat/versions/2.0.2/package.js +0 -100
- package/blocks/native/sm.chat/versions/2.0.3/package.js +0 -100
- package/blocks/native/sm.continue-if/versions/1.0.0/package.js +0 -168
- package/blocks/native/sm.describe-media/versions/2.0.0/package.js +0 -153
- package/blocks/native/sm.describe-media/versions/2.0.1/package.js +0 -156
- package/blocks/native/sm.describe-media/versions/2.1.0/package.js +0 -140
- package/blocks/native/sm.image-editor/versions/2.0.0/package.js +0 -183
- package/blocks/native/sm.image-editor/versions/2.0.1/package.js +0 -190
- package/blocks/native/sm.new-items/versions/1.0.0/package.js +0 -191
- package/blocks/native/sm.pick-photos/versions/1.0.0/package.js +0 -334
- package/blocks/native/sm.quality-audit/versions/1.0.0/package.js +0 -192
- package/blocks/native/sm.quality-audit/versions/1.0.1/package.js +0 -192
- package/blocks/native/sm.quality-audit/versions/1.0.2/package.js +0 -195
- package/blocks/native/sm.research/versions/2.0.0/package.js +0 -175
- package/blocks/native/sm.research/versions/2.0.1/package.js +0 -184
- package/blocks/native/sm.research/versions/2.0.2/package.js +0 -187
- package/blocks/native/sm.script/versions/2.0.0/package.js +0 -144
- package/blocks/native/sm.script/versions/2.1.0/package.js +0 -144
- package/blocks/native/sm.script/versions/2.1.1/package.js +0 -144
- package/blocks/native/sm.script/versions/2.1.2/package.js +0 -105
- package/blocks/native/sm.script/versions/2.1.3/package.js +0 -152
- package/blocks/native/sm.script/versions/2.1.4/package.js +0 -156
- package/blocks/native/sm.script/versions/2.1.5/package.js +0 -156
- package/blocks/native/sm.shot-plan/versions/2.0.0/package.js +0 -301
- package/blocks/native/sm.shot-plan/versions/2.1.0/package.js +0 -528
- package/blocks/native/sm.shot-plan/versions/2.1.1/package.js +0 -528
- package/blocks/native/sm.shot-plan/versions/2.1.2/package.js +0 -528
- package/blocks/native/sm.shot-plan/versions/2.1.3/package.js +0 -536
- package/blocks/native/sm.shot-plan/versions/2.2.0/package.js +0 -800
- package/blocks/native/sm.shot-plan/versions/2.2.1/package.js +0 -920
- package/blocks/native/sm.shot-plan-assistant/versions/1.0.0/package.js +0 -173
- package/blocks/native/sm.stock-search/versions/2.0.0/package.js +0 -174
- package/blocks/native/sm.thumbnail/versions/2.0.0/package.js +0 -137
- package/blocks/native/sm.thumbnail/versions/2.0.1/package.js +0 -140
- package/blocks/native/sm.transcribe/versions/2.0.0/package.js +0 -163
- package/blocks/native/sm.transcribe/versions/2.0.1/package.js +0 -168
- package/blocks/native/sm.whiteboard-assistant/versions/1.0.0/package.js +0 -175
- package/blocks/native/sm.youtube/versions/2.0.0/package.js +0 -217
- package/blocks/occasion-story/package.js +0 -1
- package/blocks/occasion-story/versions/1.0.0/package.js +0 -1658
- package/blocks/occasion-story/versions/1.0.1/package.js +0 -1699
- package/blocks/occasion-story/versions/1.0.2/package.js +0 -1682
- package/blocks/photo-reel-composer/versions/1.0.0/package.js +0 -3043
- package/blocks/photo-reel-composer/versions/1.0.1/package.js +0 -3026
- package/blocks/photo-reel-composer/versions/1.0.2/package.js +0 -4149
- package/blocks/product-ad-variants/versions/1.0.0/package.js +0 -2911
- package/blocks/product-launch-director/versions/1.0.0/package.js +0 -103
- package/blocks/release-visuals/package.js +0 -1
- package/blocks/release-visuals/versions/1.0.0/package.js +0 -1492
- package/blocks/release-visuals/versions/1.0.1/package.js +0 -1517
- package/blocks/release-visuals/versions/1.0.2/package.js +0 -1500
- package/blocks/screen-recorder/package.js +0 -1
- package/blocks/screen-recorder/versions/1.0.0/package.js +0 -223
- package/blocks/screen-recorder/versions/1.0.1/package.js +0 -223
- package/blocks/short-form-finish/package.js +0 -1
- package/blocks/short-form-finish/versions/1.0.0/package.js +0 -1043
- package/blocks/short-form-finish/versions/1.0.1/package.js +0 -1043
- package/blocks/short-form-finish/versions/1.0.2/package.js +0 -1043
- package/blocks/short-form-finish/versions/1.0.3/package.js +0 -1026
- package/examples/saas-product-launch-reviewed-source.stillmade.json +0 -383
- package/examples/saas-product-launch.stillmade.json +0 -304
- package/packages/block-platform/dealer-inventory-video-project-type.js +0 -38
- package/packages/block-platform/first-revenue-project-types.js +0 -46
- package/packages/block-platform/fixture-starters.js +0 -13
- package/packages/block-platform/launch-project-source.js +0 -10
- package/packages/block-platform/launch-project.js +0 -30
- package/packages/block-platform/motion-project-types.js +0 -55
- package/packages/block-platform/motion-starters.js +0 -14
- package/packages/block-platform/product-ad-variants-project-type.js +0 -30
- package/packages/block-platform/product-launch-updated.js +0 -90
- package/packages/block-platform/revenue-review-project-types.js +0 -36
- package/packages/block-platform/revenue-review-starters.js +0 -13
- package/packages/block-platform/script-writer.js +0 -29
- 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.
|