workers:
  - name: iii-http
    config:
      port: 3111
      host: 127.0.0.1
      default_timeout: 180000
      cors:
        allowed_origins: ["http://localhost:3111", "http://localhost:3113", "http://127.0.0.1:3111", "http://127.0.0.1:3113"]
        allowed_methods: [GET, POST, PUT, DELETE, OPTIONS]
  - name: iii-state
    config:
      adapter:
        name: kv
        config:
          store_method: file_based
          file_path: ./data/state_store.db
  - name: iii-queue
    config:
      adapter:
        name: builtin
  - name: iii-pubsub
    config:
      adapter:
        name: local
  - name: iii-cron
    config:
      adapter:
        name: kv
  - name: iii-stream
    config:
      port: 3112
      host: 127.0.0.1
      adapter:
        name: kv
        config:
          store_method: file_based
          file_path: ./data/stream_store
  - name: iii-observability
    config:
      enabled: true
      service_name: agentmemory
      exporter: memory
      # 0.1 instead of 1.0: at full sampling under sustained load the
      # log subscriber falls behind, the worker emits a "Log trigger
      # subscriber lagged" WARN, and that WARN re-enters the same
      # stream the subscriber is failing to drain — a positive
      # feedback loop that wrote 137 GB to daemon.log.new on one user
      # in a few days (#519).
      sampling_ratio: 0.1
      metrics_enabled: true
      logs_enabled: true
      # Console output is off by default; the feedback path needs the
      # console layer to amplify. Re-enable per-session via env if you
      # need verbose tracing for debugging.
      logs_console_output: false
  - name: iii-exec
    config:
      watch:
        - src/**/*.ts
      exec:
        - node dist/index.mjs
