feat(v1.1.9): admin HTTP endpoints — queue triggers + read-only queues
triggers_api.rs adds:
POST /api/v1/admin/apps/{id}/triggers/queue
body: { script_id, queue_name, visibility_timeout_secs?,
dispatch_mode?, retry_max_attempts?, retry_backoff?,
retry_base_ms? }
cap: AppManageTriggers
409-equiv via the repo's "queue 'X' already has a consumer" error
(TriggerRepoError::Invalid → 422 Invalid in the existing mapping)
queues_api.rs (new) adds read-only inspection endpoints:
GET /api/v1/admin/apps/{id}/queues
-> [{queue_name, total, pending, claimed}]
GET /api/v1/admin/apps/{id}/queues/{queue_name}
-> {queue_name, total, pending, claimed,
consumer: Some(QueueConsumer) | None}
QueueConsumer = { trigger_id, script_id, script_name,
visibility_timeout_secs, last_fired_at }
Capability: AppLogRead (same trust tier as execution-log read — these
are read-only operational views, not config changes).
No mutating queue endpoints — enqueue lives on the SDK side; purge /
requeue / delete-message stays at v1.2.
picloud/lib.rs wires the queues router into the guarded /admin chain.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>