OrbitWake API
Limites
Les limites OrbitWake ne proviennent pas toutes du même mécanisme. Certaines sont fixes dans le runtime, certaines sont configurables par environnement ou par workspace, et certaines valeurs existent dans la policy sans qu’un enforcement soit visible sur les endpoints inspectés. Cette page distingue explicitement ces catégories.
Comment lire cette page
| Type | Signification |
|---|---|
| Fixe | Constante réellement appliquée par le handler ou le runtime inspecté. |
| Configurable | Valeur lue depuis environnement, base de données ou configuration workspace. |
| Default | Valeur de repli du code, susceptible d’être remplacée. |
| Déclarée, enforcement non vérifié | Valeur présente dans le modèle/policy mais non observée dans le chemin d’exécution étudié. |
AI — limites par requête
/api/ai/generate et /api/ai/stream utilisent la même policy de validation.
| Limite | Valeur | Type |
|---|---|---|
| Messages par requête | 30 par défaut. | Configurable via policy. |
| Caractères cumulés des messages | 60 000 par défaut. | Configurable via policy. |
| Tokens de sortie demandables | 1 024 par défaut. | Configurable via policy. |
Minimum de maxOutputTokens | 64. | Fixe dans le clamp actuel. |
Les variables de policy correspondantes sont lues depuis l’environnement et utilisent ces valeurs uniquement comme defaults.
AI — defaults de policy
dailyRequests: 30
dailyOutputTokens: 50000
maxOutputTokensPerRequest: 1024
maxMessagesPerRequest: 30
maxCharactersPerRequest: 60000
premiumBoostsOnSignup: 10
/api/ai/generate et /api/ai/stream inspectés, maxMessagesPerRequest, maxCharactersPerRequest et maxOutputTokensPerRequest sont effectivement utilisés. Je n’ai pas trouvé dans ces chemins un enforcement direct de dailyRequests ou dailyOutputTokens.AI — pièces jointes
| Limite | Valeur actuelle |
|---|---|
| Pièces jointes par message | 3 maximum. |
| Taille d’une pièce jointe | 8 MB maximum. |
| Total des pièces jointes dans le contexte | 12 MB maximum. |
| Nom de fichier | 180 caractères après trim. |
| Messages autorisés à porter des fichiers | user uniquement. |
Types actuellement acceptés : PDF, PNG, JPEG, WEBP et GIF.
AI — budget provider quotidien
OrbitWake possède une limite serveur optionnelle ORBITWAKE_AI_HARD_DAILY_BUDGET_USD.
Si cette valeur est absente, invalide ou égale à 0, le hard budget est désactivé. Si elle est positive, les routes AI et IDE vérifient le coût provider cumulé du jour avant de lancer la génération.
La valeur effective de production n’est pas publiée dans cette documentation.
AI — timeout provider
Les providers OpenAI, Anthropic et OpenAI-compatible inspectés utilisent actuellement un timeout de 90 secondes par appel provider.
OrbitWake Auto peut tenter un fallback provider lorsqu’une erreur est retryable et qu’aucun texte n’a encore été streamé. Le temps total d’une requête peut donc être différent du timeout d’un seul appel provider.
Projects — limites de private beta
Les limites principales sont stockées par workspace dans private_beta_access.
Le schéma de migration définit les defaults suivants :
| Limite | Default DB | Enforcement vérifié |
|---|---|---|
| Projets actifs | 3 | Oui. |
| Stockage projet | 5 242 880 octets — 5 MB | Oui, lors de la sauvegarde de fichiers. |
| Builds par heure | 20 | Valeur présente dans l’accès beta ; enforcement non trouvé dans le chemin Projects inspecté. |
Ces valeurs peuvent être différentes pour un workspace donné.
Projects — champs et fichiers
| Élément | Limite actuelle |
|---|---|
| Nom du projet | 1 à 120 caractères. |
| Chemin de fichier | 240 caractères maximum, chemin relatif sûr. |
| Taille d’un fichier beta | 512 KB maximum. |
| Label de version/checkpoint | 160 caractères maximum. |
| Versions retournées dans le détail projet | 30 plus récentes. |
| AI runs retournés dans le détail projet | 20 plus récents. |
Memory — tailles et résultats
| Élément | Limite actuelle |
|---|---|
| Title | 160 caractères maximum. |
| Content | 4 000 caractères maximum. |
| Project key | 120 caractères maximum. |
| Search string interne | 200 caractères maximum. |
GET /api/memory | 80 résultats demandés par la route actuelle. |
Cap interne listMemories | 100 résultats maximum. |
| Mémoires pertinentes injectées dans AI | 8 demandées par défaut, cap interne 12. |
| Mots sémantiques uniques | 10 maximum dans la requête de ranking. |
| Confidence | 0 à 100. |
Memory — capture explicite
Une mémoire capturée depuis une phrase de type “remember…” n’est acceptée par l’extracteur actuel que si le contenu extrait ne dépasse pas 4 000 caractères.
Le titre automatique est réduit à environ 88 caractères pour l’affichage, tandis que la colonne et l’API autorisent jusqu’à 160 caractères.
Connectors
| Limite / durée | Valeur actuelle |
|---|---|
| Activity list par défaut | 50 événements. |
| Activity list maximum | 100 événements. |
| Approval one-time | Expire après 10 minutes. |
| Résultat d’idempotency | Conservé 24 heures. |
Les limites d’entrée propres à une action Connector dépendent du connecteur et de l’action ; il n’existe pas un plafond global unique documenté pour tous les inputs Connector.
IDE — pairing et session
| Élément | Limite actuelle |
|---|---|
| Pairing code | 8 caractères, affichés 4-4. |
| Validité pairing | 10 minutes. |
| Device/editor text | 120 caractères maximum. |
| Machine ID reçu | 512 caractères maximum avant hash serveur. |
| Bearer token accepté par le parser | 32 à 120 caractères URL-safe. |
IDE — Ask
| Champ | Limite backend |
|---|---|
| Prompt | 12 000 caractères. |
| File path | 500 caractères. |
| Language | 80 caractères. |
| Selection | 16 000 caractères. |
| Active file content | 32 000 caractères. |
| Diagnostics | 50 entrées maximum. |
| Un diagnostic | 500 caractères maximum. |
| Output tokens | 3 000 fixés par le endpoint. |
IDE — Agent
| Élément | Limite backend |
|---|---|
| Prompt | 12 000 caractères. |
| Fichiers reçus | 12 maximum. |
| Contexte total fichiers | 72 000 caractères maximum. |
| Contenu d’un fichier | 36 000 caractères maximum. |
| Path | 500 caractères avant validation du chemin. |
| Language | 80 caractères. |
| Output tokens Agent | 7 000. |
| Fichiers modifiés proposés | 10 maximum. |
| Contenu d’un changement | 36 000 caractères maximum. |
| Résumé proposal | 1 500 caractères. |
| Reason par changement | 1 200 caractères. |
IDE — backend vs extension locale
Le backend Agent accepte jusqu’à 12 fichiers, mais l’extension VS Code actuelle sélectionne localement un maximum plus bas avant l’envoi. Les limites client peuvent donc être plus strictes que les limites de l’endpoint.
Documenter une capacité backend ne signifie pas que tous les clients officiels l’utilisent au maximum.
Domains — rate limits
| Scope | Limite | Fenêtre |
|---|---|---|
| Client | 30 recherches | 10 minutes. |
| Global process | 45 recherches | 60 secondes. |
Le endpoint retourne les headers X-RateLimit-Limit, X-RateLimit-Remaining et X-RateLimit-Reset. Sur refus, Retry-After est aussi présent.
Le rate limiter actuel est maintenu en mémoire du process Node ; cette implémentation n’est pas un quota distribué universel pour toute l’API.
Auth — durées utiles
| Credential / token | Durée actuelle |
|---|---|
| Session web | 30 jours. |
| Vérification email | 30 minutes. |
| Password reset | 20 minutes. |
| Pairing IDE | 10 minutes. |
| Approval Connector | 10 minutes. |
| Idempotency Connector | 24 heures. |
Ce qui n’est pas une limite globale
- les 30 recherches domaine / 10 minutes ne s’appliquent pas aux autres endpoints ;
- le cap de 100 activités Connector ne limite pas le nombre total d’événements stockés, seulement la lecture retournée ;
- les 8 memories pertinentes ne limitent pas le nombre total de memories enregistrées ;
- les 12 fichiers IDE Agent sont une limite du endpoint Agent, pas de Projects ;
- les defaults private beta peuvent être modifiés par workspace ;
- les defaults AI de policy peuvent être remplacés par l’environnement.
Valeurs déclarées dont l’enforcement n’est pas vérifié ici
Deux exemples importants :
dailyRequestsetdailyOutputTokensexistent dansfreeAiPolicy(), mais les handlers AI inspectés utilisent directement les limites par requête et le hard provider budget, sans enforcement journalier visible dans ces chemins ;maxBuildsPerHourexiste dansprivate_beta_accesset dans le status beta, mais l’enforcement n’apparaît pas dans les opérations Projects inspectées.
La documentation ne les présente donc pas comme quotas effectivement bloquants tant qu’un chemin d’enforcement n’est pas vérifié.
Limites susceptibles d’évoluer
Les limites configurables peuvent changer sans modification du client. Les limites fixes peuvent évoluer avec une nouvelle version du runtime.
Comme OrbitWake ne publie pas encore une API v1 stable, un consommateur externe ne doit pas considérer ces valeurs comme engagement contractuel permanent.
Conseils côté client
- validez la taille du payload avant l’envoi ;
- respectez
Retry-Afterlorsqu’il est fourni ; - traitez
413comme signal de réduction du payload, pas comme erreur transitoire ; - ne codez pas en dur un quota configurable comme si sa valeur était permanente ;
- pour Projects beta, utilisez les limites retournées au workspace lorsque cette surface les expose.
Résumé des limites les plus structurantes
| Surface | Limite clé |
|---|---|
| AI | 30 messages / 60k caractères par défaut, 1 024 output tokens par défaut. |
| AI fichiers | 3 par message, 8 MB chacun, 12 MB total. |
| Projects | 512 KB par fichier ; limites workspace configurables. |
| Memory | 4 000 caractères de contenu, 160 pour title. |
| Connectors | 100 activités max par lecture ; approval 10 min ; idempotency 24 h. |
| IDE Ask | Prompt 12k, selection 16k, file 32k. |
| IDE Agent | 12 fichiers / 72k contexte / 10 changements proposés. |
| Domains | 30 recherches client / 10 min, 45 globales / min. |
Suite de la documentation
La section API est maintenant documentée de bout en bout : vue d’ensemble, authentification, requêtes, réponses, streaming, erreurs et limites.