F8_Media_Pipeline / Media Pipeline
source hashを凍結し、派生物とCDN公開の境界を追跡する器官。
mediaをingestしてimmutable hashを記録し、transform/optimize後にOGまたはvideo deliveryをpublish planへ進める。
入力 → 状態 → 出力
- 入力validated JSON payload
- 状態engine-owned durable slice
- 承認必要な外部 / 不可逆操作だけ
- 出力result / receipt / explicit error
- 回復jobはretry/cancelでき、CDN publishは別承認である。source hashはingest後に変えない。
保存状態はAction Coreのfilesystem state store内の capabilities sliceとして再起動可能なplain dataで保持される。functionや秘密値をstateへ保存しない。
全Action
以下はAction Registryに実在するF8_Media_Pipelineの全actionである。クリックでpayload境界、状態、出力、回復を開ける。
capability.media.bindBind media pipelinelocal or validated transition
- payload
provider- 状態
- unbound → configured / ready
- result
- Capability engine の
okresult、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。 - recovery
- error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.media.ingestIngest medialocal or validated transition
- payload
contentmimeType- 状態
- state transition defined by the capability engine
- result
- Capability engine の
okresult、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。 - recovery
- error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.media.transformTransform medialocal or validated transition
- payload
jobId- 状態
- state transition defined by the capability engine
- result
- Capability engine の
okresult、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。 - recovery
- error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.media.optimizeOptimize medialocal or validated transition
- payload
jobId- 状態
- state transition defined by the capability engine
- result
- Capability engine の
okresult、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。 - recovery
- error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.media.plan_publishPlan media publishapproval boundary / external effect
- payload
jobId- 状態
- durable plan → approval_required
- result
- Capability engine の
okresult、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。 - recovery
- error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.media.arm_publishArm media publishapproval boundary / external effect
- payload
publishPlanId- 状態
- approval_required → armed
- result
- Capability engine の
okresult、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。 - recovery
- error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.media.execute_publishExecute media publishapproval boundary / external effect
- payload
publishPlanId- 状態
- armed → visible provider/result state
- result
- Capability engine の
okresult、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。 - recovery
- 実行前にarm状態を要求する。失敗はengineが保持し、同一keyは重複実行を防ぐ。
capability.media.cancel_jobCancel media joblocal or validated transition
- payload
jobId- 状態
- active work → cancelled
- result
- Capability engine の
okresult、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。 - recovery
- error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.media.retry_jobRetry media joblocal or validated transition
- payload
jobId- 状態
- failed → retry / dead letter when bounded
- result
- Capability engine の
okresult、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。 - recovery
- error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
Capability Spec
F8 Media Pipeline — Capability Spec
Media ingest/transform/optimize/OG/video delivery with immutable source hash, derivative manifest, job progress/retry/cancel, codecs/dimensions validation, alt/caption/meta, and CDN publication separate approval. Cloudflare Images/Stream/R2-compatible contracts and local mock. No live upload/publish.
Media Job States
| State | Meaning |
|---|---|
queued | Job created. |
ingesting | Source ingest in progress. |
transforming | Derivative transform in progress. |
optimizing | Optimization pass in progress. |
ready | Derivatives ready; publish not yet approved. |
publishing | CDN publish in flight. |
published | CDN publication complete. |
failed | Job failure preserved for retry. |
cancelled | Job cancelled. |
Delivery States
| State | Meaning |
|---|---|
pending | No delivery artifacts yet. |
og_ready | OG image derivative ready. |
video_ready | Video stream derivative ready. |
cdn_approval_required | Awaiting CDN publish approval. |
published | CDN publication complete. |
Actions
| Action | Flow |
|---|---|
bind | Configure local or Cloudflare binding |
ingest | Record immutable source hash |
transform | Create derivative with codec/dimensions |
optimize | Optimize via Cloudflare Images mock |
plan_publish | CDN publish plan with preview |
arm_publish | Explicit CDN approval |
execute_publish | Armed → R2/CDN mock publish |
cancel_job | Cancel in-flight job |
Boundaries
- Source hash immutable after ingest
- Derivative manifest tracks all variants
- CDN publication requires separate approval
- No live upload or publish
- Job progress/retry/cancel supported
Environment Names
| Name | Role |
|---|---|
CF_ACCOUNT_ID | Account reference |
CF_IMAGES_HASH | Images hash |
CF_STREAM_AUTH_REF | Stream auth reference |
R2_MEDIA_BUCKET | R2 media bucket |
MIKAAIR_MEDIA_MAX_WIDTH | Max width |
MIKAAIR_MEDIA_MAX_HEIGHT | Max height |
MIKAAIR_MEDIA_ALLOWED_CODECS | Comma-separated codecs |
Provider Binding
Reference adapters: binding/adapter_contract.mjs (local + Cloudflare + R2 mocks).
binding / secret boundary
provider設定はbinding templateから参照する。環境変数は名前だけを扱い、値はsource repository・画面・reportに書かない。
| 環境変数名 | 扱い |
|---|---|
CF_ACCOUNT_ID | configuration reference — 値は表示・保存しない |
CF_IMAGES_HASH | configuration reference — 値は表示・保存しない |
CF_STREAM_AUTH_REF | secret reference — 値は表示・保存しない |
R2_MEDIA_BUCKET | configuration reference — 値は表示・保存しない |
MIKAAIR_MEDIA_MAX_WIDTH | configuration reference — 値は表示・保存しない |
MIKAAIR_MEDIA_MAX_HEIGHT | configuration reference — 値は表示・保存しない |
MIKAAIR_MEDIA_ALLOWED_CODECS | configuration reference — 値は表示・保存しない |
jobはretry/cancelでき、CDN publishは別承認である。source hashはingest後に変えない。
source trace
../MikaAir LIGHTNESS/F_BUS_Capability/F8_Media_Pipeline/spec/capability_spec.md 4c6c6c64b14b../MikaAir LIGHTNESS/F_BUS_Capability/F8_Media_Pipeline/binding/binding_manifest.template.json 331c7a18bfbf../MikaAir LIGHTNESS/F_BUS_Capability/F8_Media_Pipeline/agent.md 5f1fd3f3f1cd../MikaAir LIGHTNESS/F_BUS_Capability/runtime_bridge.mjs 7e7384638a41../MikaAir LIGHTNESS/F_BUS_Capability/action_surface.mjs e5bae5f48648../MikaAir LIGHTNESS/A_BUS_Action_Core/A2_State_Store/filesystem_store.mjs b1cc32d3f456../MikaAir LIGHTNESS/F_BUS_Capability/F8_Media_Pipeline/contract/index.mjs 9d38c8e61926../MikaAir LIGHTNESS/F_BUS_Capability/F8_Media_Pipeline/engine.mjs 79dfd73d680e