name: chain_studio
description: "Ch∆In Studio — desktop GUI for the Ch∆In hub"
publish_to: 'none'
version: 0.70.0

environment:
  sdk: ^3.11.0-200.1.beta

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
  cupertino_icons: ^1.0.8
  intl: any
  # `@visibleForTesting` annotation on FaiLog's test seam.
  meta: any

  # Sibling package; will move to Forgejo path once published.
  chain_client_sdk:
    path: ../fai_chain_client_sdk_dart
  shared_preferences: ^2.5.5
  # Inline README rendering inside the Store detail sheet.
  # `flutter_markdown` is discontinued; `flutter_markdown_plus`
  # is the actively-maintained drop-in fork (same
  # `MarkdownStyleSheet` / `Markdown` / `MarkdownBody` API).
  flutter_markdown_plus: ^1.0.3
  # Today-Hero pipeline reads accepted stories from
  # ~/.fai/today/active.yaml — see docs/today-pipeline.md.
  yaml: ^3.1.2
  path: ^1.9.0
  # System-native file picker — used by the Flows run-flow
  # form for `bytes`-shaped inputs (extract takes a PDF, the
  # operator clicks "Choose file" and macOS / Linux / Windows
  # routes through the OS dialog so sandboxed Studio still
  # gets read access to the chosen file).
  file_picker: ^11.0.0
  # Swappable flow editor — lives in its own repo so it can
  # be replaced without touching the rest of Studio. Pin to a
  # commit (or branch) here; rebuild Studio to pick up
  # editor-side changes.
  chain_studio_flow_editor:
    git:
      url: https://git.flemming.ai/fai/chain-studio-flow-editor
      ref: main

dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_lints: ^6.0.0

# Local-development override: while editing the swappable flow
# editor alongside Studio, point at the sibling working tree so
# changes are picked up on the next Studio reload without push
# + `pub upgrade`. Comment the block out before tagging a Studio
# release so the committed Git ref is what builds on Forgejo CI.
dependency_overrides:
  chain_studio_flow_editor:
    path: ../fai_chain_studio_flow_editor

flutter:
  uses-material-design: true
  generate: true
  # Bundled operator-facing documentation rendered inline by
  # the Welcome page. Each doc has a `_de.md` sibling for the
  # German locale; the loader picks the right pair at runtime.
  # Air-gap-friendly — no network calls to read these.
  assets:
    - assets/docs/
  # Bundled fonts — Inter (UI) + JetBrains Mono (technical
  # strings). Shipped as assets rather than fetched at runtime
  # via google_fonts so the app works fully offline / air-gapped
  # (KRITIS) and never shows a font-swap flash on first paint.
  fonts:
    - family: Inter
      fonts:
        - asset: assets/fonts/Inter-Regular.ttf
          weight: 400
        - asset: assets/fonts/Inter-Medium.ttf
          weight: 500
        - asset: assets/fonts/Inter-SemiBold.ttf
          weight: 600
        - asset: assets/fonts/Inter-Bold.ttf
          weight: 700
    - family: JetBrains Mono
      fonts:
        - asset: assets/fonts/JetBrainsMono-Regular.ttf
          weight: 400
        - asset: assets/fonts/JetBrainsMono-Medium.ttf
          weight: 500
