{
  "id": "studio-f44d3bf5-c703-4020-abfb-b396b56d7799",
  "scope": "studio_project",
  "source_of_truth": "supabase.studio_artifacts",
  "source_path": "studio_artifacts/f44d3bf5-c703-4020-abfb-b396b56d7799",
  "source_kind": "supabase_json",
  "visibility": "internal",
  "renderer_id": "design_doc.dreamborn-forge.generated.v1",
  "design_system": "dreamborn-design-system:forge",
  "generated_at": "2026-05-10T18:19:39.276Z",
  "artifact_type": "build-execution",
  "schema_version": "studio_artifact.generated.v1",
  "title": "FLOW Intake Route",
  "summary": "build-execution artifact · for Bezel Workflow · phase W0-S3 · status complete",
  "status": "complete",
  "version": 1,
  "phase_id": "W0-S3",
  "project_id": "d7ee6565-842e-4d74-9eda-84c2ed2fe1d6",
  "project_slug": "redkey-bezel-workflow-d7ee6565",
  "project_title": "Bezel Workflow",
  "client_id": "redkey",
  "platform_project_id": null,
  "created_at": "2026-05-09T17:06:36.166414+00:00",
  "updated_at": "2026-05-09T17:06:35.906+00:00",
  "format_source": "supabase_json",
  "content_shape": [
    "kind",
    "repo",
    "title",
    "status",
    "changes",
    "project",
    "phase_id",
    "next_action",
    "completed_at",
    "verification"
  ],
  "content_data": {
    "kind": "build-execution",
    "repo": "/Users/justinking/Vaults/Projects/bezel-api",
    "title": "FLOW Intake Route",
    "status": "complete",
    "changes": [
      "Added apps/api/src/flow-intake-route.ts.",
      "Added POST /flows to compile human-product FLOW.json into existing PlanIntake-compatible runtime plans.",
      "POST /flows supports raw FLOW.json or wrapper body { flow, role_id_by_name } for product role to runtime role mapping.",
      "POST /flows rejects invalid FLOW.json and missing compiled runtime queues before materialization.",
      "Wired /flows through apps/api/src/http-server.ts using existing principal resolution, role queue resolution, and materializePlan runtime path.",
      "Documented /flows in README, apps/api/README.md, OpenAPI paths, and Flow schemas."
    ],
    "project": "Bezel Workflow",
    "phase_id": "W0-S3",
    "next_action": "W0-S4: connect apps/workflow shell to a real FLOW fixture and POST /flows flow submission path, or add workflow run timeline product view backed by existing workflow run/task/event APIs.",
    "completed_at": "2026-05-09T17:06:35.906Z",
    "verification": [
      "npx vitest run apps/api/test/flow-intake-route.test.ts: 3/3 passed",
      "npx vitest run apps/api/test/http-server.test.ts: /flows route covered and passed",
      "npx vitest run apps/api/test/openapi-contract.test.ts: passed after adding /flows to public path list",
      "npm test: 44 files / 166 tests passed",
      "npm run typecheck: passed",
      "npm run build: passed"
    ]
  },
  "sections": [
    {
      "title": "Next Action",
      "level": 2,
      "body": "W0-S4: connect apps/workflow shell to a real FLOW fixture and POST /flows flow submission path, or add workflow run timeline product view backed by existing workflow run/task/event APIs."
    }
  ],
  "html_path": "projects/redkey-bezel-workflow-d7ee6565/artifacts/build-execution-w0-s3-f44d3bf5.html",
  "json_path": "projects/redkey-bezel-workflow-d7ee6565/artifacts/build-execution-w0-s3-f44d3bf5.json"
}