Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion odd/tasks/grok-provider.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Provider SuperGrok (Grok Build CLI) para Quorb — issue #173.
- S2: "Credenciales: token Bearer del login local del Grok CLI oficial (`grok`), en `~/.grok/auth.json`. Detección y lectura con parseo defensivo; sin importar cookies de navegador en una primera etapa." Detalle del formato: claves de nivel superior son URLs de scope OIDC; se prefiere la entrada bajo `https://auth.x.ai::<client-id>` (fallback: `https://accounts.x.ai/sign-in`); token en campo `key`; respeto `GROK_HOME` y `credentials_path`.
- S3: "Endpoints: `GET https://cli-chat-proxy.grok.com/v1/billing?format=credits` → `creditUsagePercent` (porcentaje usado 0–100), ventana de la semana y reset. `GET https://cli-chat-proxy.grok.com/v1/settings` (opcional) → nombre del plan visible." Headers: `Authorization: Bearer <token>`, `x-xai-token-auth: xai-grok-cli`, `Accept: application/json`. Reset: `config.currentPeriod.end`, luego `config.billingPeriodEnd`. Ventana: `currentPeriod.start/end`, fallback `billingPeriodStart/End`. Porcentaje fallback: `onDemandUsed.val / onDemandCap.val * 100`.
- S4: "Medidores: anillo principal con porcentaje de créditos usados de la ventana semanal (`percent`, `resets_at`, `window_seconds` = 7 días). Identificación del plan activo en el detalle."
- S5: "Robustez: ante cambios del formato, degradar con mensaje claro (`Status::Error`) en lugar de romper; parseo tolerante como en `codex.rs`." Sin `creditUsagePercent` ni fallback on-demand pero con período activo → uso desconocido, no 0%.
- S5: "Robustez: ante cambios del formato, degradar con mensaje claro (`Status::Warning`) en lugar de romper; parseo tolerante como en `codex.rs`." Sin `creditUsagePercent` ni fallback on-demand pero con período activo → uso desconocido, no 0%. (Alineado con la implementación: el formato irreconocible y el uso desconocido usan `Warning`, como `codex.rs`; revisión post-merge por comentario del maintainer en #177.)
- S6: "Interfaz y assets: logo en `ProviderLogo.tsx` con alias `grok`. Sección en `Settings.tsx` (pestaña `grok`, estado en `mainState` según presencia del auth file/token). Inclusión en `widget-refresh.ts`."
- S7: "Tests: unitarios deterministas en Rust con fixtures JSON representativas (sin red), incluyendo caso de respuesta legacy sin `creditUsagePercent`."

Expand Down
Loading