proagents 1.6.16 → 1.6.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/.claude/settings.local.json +169 -0
  2. package/COMMANDS.md +595 -0
  3. package/README.md +22 -64
  4. package/bin/proagents.js +0 -2
  5. package/lib/commands/init.js +4 -174
  6. package/package.json +2 -7
  7. package/.proagents/ai-models/README.md +0 -141
  8. package/.proagents/ai-models/cost-management.md +0 -362
  9. package/.proagents/ai-models/fallbacks.md +0 -342
  10. package/.proagents/ai-models/model-config.md +0 -318
  11. package/.proagents/ai-models/task-routing.md +0 -503
  12. package/.proagents/ai-training/README.md +0 -155
  13. package/.proagents/ai-training/continuous-learning.md +0 -413
  14. package/.proagents/ai-training/domain-knowledge.md +0 -378
  15. package/.proagents/ai-training/pattern-learning.md +0 -455
  16. package/.proagents/ai-training/training-data.md +0 -337
  17. package/.proagents/ai-training/user-preferences.md +0 -346
  18. package/.proagents/approval-workflows/README.md +0 -146
  19. package/.proagents/approval-workflows/approval-config.md +0 -332
  20. package/.proagents/approval-workflows/approval-stages.md +0 -503
  21. package/.proagents/approval-workflows/emergency-bypass.md +0 -351
  22. package/.proagents/approval-workflows/examples.md +0 -859
  23. package/.proagents/approval-workflows/notifications.md +0 -320
  24. package/.proagents/compliance/README.md +0 -206
  25. package/.proagents/compliance/access-control.md +0 -310
  26. package/.proagents/compliance/audit-logging.md +0 -444
  27. package/.proagents/compliance/compliance-frameworks.md +0 -429
  28. package/.proagents/compliance/reports.md +0 -491
  29. package/.proagents/compliance/retention-policies.md +0 -454
  30. package/.proagents/config-versioning/README.md +0 -120
  31. package/.proagents/config-versioning/changelog.md +0 -300
  32. package/.proagents/config-versioning/rollback.md +0 -283
  33. package/.proagents/config-versioning/versioning.md +0 -330
  34. package/.proagents/contract-testing/README.md +0 -223
  35. package/.proagents/contract-testing/contract-testing.md +0 -614
  36. package/.proagents/contract-testing/pact-integration.md +0 -507
  37. package/.proagents/contract-testing/schema-validation.md +0 -565
  38. package/.proagents/dependency-management/README.md +0 -140
  39. package/.proagents/dependency-management/automation.md +0 -363
  40. package/.proagents/dependency-management/compatibility.md +0 -319
  41. package/.proagents/dependency-management/security-scanning.md +0 -413
  42. package/.proagents/dependency-management/update-policies.md +0 -374
  43. package/.proagents/disaster-recovery/README.md +0 -247
  44. package/.proagents/disaster-recovery/automation.md +0 -366
  45. package/.proagents/disaster-recovery/backup-recovery.md +0 -571
  46. package/.proagents/disaster-recovery/incident-response.md +0 -565
  47. package/.proagents/disaster-recovery/rollback-procedures.md +0 -499
  48. package/.proagents/disaster-recovery/runbooks.md +0 -603
  49. package/.proagents/disaster-recovery/scenarios.md +0 -892
  50. package/.proagents/disaster-recovery/testing.md +0 -438
  51. package/.proagents/environments/README.md +0 -244
  52. package/.proagents/environments/configuration.md +0 -437
  53. package/.proagents/environments/promotion.md +0 -434
  54. package/.proagents/environments/setup.md +0 -420
  55. package/.proagents/examples/README.md +0 -55
  56. package/.proagents/examples/backend-nodejs/README.md +0 -188
  57. package/.proagents/examples/backend-nodejs/complete-conversation.md +0 -601
  58. package/.proagents/examples/backend-nodejs/proagents.config.yaml +0 -415
  59. package/.proagents/examples/backend-nodejs/workflow-example.md +0 -909
  60. package/.proagents/examples/fullstack-nextjs/README.md +0 -155
  61. package/.proagents/examples/fullstack-nextjs/complete-conversation.md +0 -604
  62. package/.proagents/examples/fullstack-nextjs/proagents.config.yaml +0 -287
  63. package/.proagents/examples/fullstack-nextjs/workflow-example.md +0 -553
  64. package/.proagents/examples/mobile-react-native/README.md +0 -171
  65. package/.proagents/examples/mobile-react-native/complete-conversation.md +0 -825
  66. package/.proagents/examples/mobile-react-native/proagents.config.yaml +0 -330
  67. package/.proagents/examples/mobile-react-native/workflow-example.md +0 -723
  68. package/.proagents/examples/web-frontend-react/README.md +0 -125
  69. package/.proagents/examples/web-frontend-react/complete-conversation.md +0 -556
  70. package/.proagents/examples/web-frontend-react/proagents.config.yaml +0 -183
  71. package/.proagents/examples/web-frontend-react/workflow-example.md +0 -603
  72. package/.proagents/existing-projects/README.md +0 -65
  73. package/.proagents/existing-projects/challenges.md +0 -861
  74. package/.proagents/existing-projects/coexistence-mode.md +0 -483
  75. package/.proagents/existing-projects/compatibility-assessment.md +0 -541
  76. package/.proagents/existing-projects/gradual-adoption.md +0 -515
  77. package/.proagents/existing-projects/migration-strategies.md +0 -788
  78. package/.proagents/existing-projects/pattern-reconciliation.md +0 -489
  79. package/.proagents/existing-projects/team-onboarding.md +0 -617
  80. package/.proagents/existing-projects/technical-debt-handling.md +0 -644
  81. package/.proagents/feature-flags/README.md +0 -263
  82. package/.proagents/feature-flags/ab-testing.md +0 -413
  83. package/.proagents/feature-flags/configuration.md +0 -420
  84. package/.proagents/feature-flags/kill-switches.md +0 -444
  85. package/.proagents/feature-flags/rollout-strategies.md +0 -392
  86. package/.proagents/history.log +0 -12
  87. package/.proagents/i18n/README.md +0 -133
  88. package/.proagents/i18n/extraction.md +0 -433
  89. package/.proagents/i18n/tms-integration.md +0 -332
  90. package/.proagents/i18n/translation-workflow.md +0 -413
  91. package/.proagents/i18n/validation.md +0 -355
  92. package/.proagents/logging/README.md +0 -276
  93. package/.proagents/logging/aggregation.md +0 -475
  94. package/.proagents/logging/log-levels.md +0 -376
  95. package/.proagents/logging/sensitive-data.md +0 -423
  96. package/.proagents/logging/structured-logging.md +0 -406
  97. package/.proagents/metrics/README.md +0 -69
  98. package/.proagents/metrics/code-quality-kpis.md +0 -461
  99. package/.proagents/metrics/deployment-metrics.md +0 -517
  100. package/.proagents/metrics/developer-productivity.md +0 -368
  101. package/.proagents/metrics/learning-effectiveness.md +0 -478
  102. package/.proagents/migrations/README.md +0 -77
  103. package/.proagents/migrations/from-claude-projects.md +0 -313
  104. package/.proagents/migrations/from-cursor-rules.md +0 -345
  105. package/.proagents/migrations/from-custom-workflows.md +0 -410
  106. package/.proagents/monitoring/README.md +0 -308
  107. package/.proagents/monitoring/alerting.md +0 -449
  108. package/.proagents/monitoring/dashboards.md +0 -454
  109. package/.proagents/monitoring/health-checks.md +0 -436
  110. package/.proagents/monitoring/metrics.md +0 -434
  111. package/.proagents/multi-project/README.md +0 -170
  112. package/.proagents/multi-project/coordinated-deploy.md +0 -510
  113. package/.proagents/multi-project/cross-project-deps.md +0 -395
  114. package/.proagents/multi-project/unified-changelog.md +0 -477
  115. package/.proagents/multi-project/walkthroughs/monorepo-setup.md +0 -787
  116. package/.proagents/multi-project/workspace-config.md +0 -408
  117. package/.proagents/notifications/README.md +0 -151
  118. package/.proagents/notifications/channels.md +0 -457
  119. package/.proagents/notifications/preferences.md +0 -415
  120. package/.proagents/notifications/routing.md +0 -449
  121. package/.proagents/notifications/scheduling.md +0 -425
  122. package/.proagents/notifications/templates.md +0 -446
  123. package/.proagents/offline-mode/README.md +0 -145
  124. package/.proagents/offline-mode/caching.md +0 -344
  125. package/.proagents/offline-mode/offline-operations.md +0 -312
  126. package/.proagents/offline-mode/queue-specifications.md +0 -679
  127. package/.proagents/offline-mode/sync.md +0 -475
  128. package/.proagents/parallel-features/README.md +0 -85
  129. package/.proagents/parallel-features/conflict-detection.md +0 -226
  130. package/.proagents/parallel-features/dependency-management.md +0 -392
  131. package/.proagents/parallel-features/merge-coordination.md +0 -506
  132. package/.proagents/parallel-features/tracking-system.md +0 -416
  133. package/.proagents/performance/README.md +0 -59
  134. package/.proagents/performance/bundle-analysis.md +0 -375
  135. package/.proagents/performance/load-testing.md +0 -563
  136. package/.proagents/performance/runtime-metrics.md +0 -489
  137. package/.proagents/performance/web-vitals.md +0 -425
  138. package/.proagents/plugins/README.md +0 -139
  139. package/.proagents/plugins/creating-plugins.md +0 -504
  140. package/.proagents/plugins/plugin-api.md +0 -467
  141. package/.proagents/plugins/plugin-registry.md +0 -276
  142. package/.proagents/reporting/README.md +0 -158
  143. package/.proagents/reporting/dashboards.md +0 -366
  144. package/.proagents/reporting/exports.md +0 -524
  145. package/.proagents/reporting/quality-metrics.md +0 -385
  146. package/.proagents/reporting/templates/README.md +0 -56
  147. package/.proagents/reporting/templates/dashboard-config.json +0 -187
  148. package/.proagents/reporting/templates/metrics-queries.md +0 -427
  149. package/.proagents/reporting/templates/react-dashboard.tsx +0 -544
  150. package/.proagents/reporting/templates/widgets.md +0 -451
  151. package/.proagents/reporting/velocity-metrics.md +0 -340
  152. package/.proagents/reverse-engineering/README.md +0 -151
  153. package/.proagents/reverse-engineering/architecture-extraction.md +0 -325
  154. package/.proagents/reverse-engineering/code-analysis.md +0 -377
  155. package/.proagents/reverse-engineering/dependency-mapping.md +0 -567
  156. package/.proagents/reverse-engineering/diagram-generation.md +0 -586
  157. package/.proagents/reverse-engineering/documentation-generation.md +0 -468
  158. package/.proagents/reverse-engineering/pattern-detection.md +0 -569
  159. package/.proagents/reverse-engineering/quality-assessment.md +0 -733
  160. package/.proagents/secrets/README.md +0 -278
  161. package/.proagents/secrets/access-control.md +0 -443
  162. package/.proagents/secrets/rotation.md +0 -403
  163. package/.proagents/secrets/scanning.md +0 -487
  164. package/.proagents/secrets/storage.md +0 -394
  165. package/.proagents/webhooks/README.md +0 -126
  166. package/.proagents/webhooks/endpoints.md +0 -298
  167. package/.proagents/webhooks/events.md +0 -316
  168. package/.proagents/webhooks/payloads.md +0 -325
  169. package/.proagents/webhooks/reliability.md +0 -363
  170. package/.proagents/webhooks/security.md +0 -380
@@ -1,679 +0,0 @@
1
- # Offline Queue Specifications
2
-
3
- Technical specifications for the offline operation queue system.
4
-
5
- ---
6
-
7
- ## Overview
8
-
9
- The offline queue stores operations that require AI services for later processing when connectivity is restored.
10
-
11
- ```
12
- ┌─────────────────────────────────────────────────────────────┐
13
- │ Offline Queue System │
14
- ├─────────────────────────────────────────────────────────────┤
15
- │ │
16
- │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
17
- │ │ User │ │ Queue │ │ AI │ │
18
- │ │ Request │───►│ Storage │───►│ Services │ │
19
- │ └─────────────┘ └─────────────┘ └─────────────┘ │
20
- │ │ │ │ │
21
- │ │ │ │ │
22
- │ [OFFLINE] [PERSISTED] [ONLINE] │
23
- │ │
24
- │ Operation Flow: │
25
- │ 1. Request received while offline │
26
- │ 2. Added to persistent queue │
27
- │ 3. Acknowledgment returned to user │
28
- │ 4. Connectivity restored │
29
- │ 5. Queue processed automatically │
30
- │ 6. Results delivered to user │
31
- │ │
32
- └─────────────────────────────────────────────────────────────┘
33
- ```
34
-
35
- ---
36
-
37
- ## Queue Architecture
38
-
39
- ### Storage Structure
40
-
41
- ```
42
- .proagents/
43
- └── offline-queue/
44
- ├── queue.json # Queue metadata
45
- ├── items/ # Individual queue items
46
- │ ├── item-001.json
47
- │ ├── item-002.json
48
- │ └── item-003.json
49
- ├── processing/ # Items being processed
50
- ├── completed/ # Completed items (for audit)
51
- └── failed/ # Failed items (for retry)
52
- ```
53
-
54
- ### Queue Item Schema
55
-
56
- ```json
57
- {
58
- "id": "queue-item-uuid-v4",
59
- "version": "1.0",
60
- "created_at": "2024-01-15T10:30:00Z",
61
- "queued_at": "2024-01-15T10:30:05Z",
62
- "status": "pending",
63
-
64
- "operation": {
65
- "type": "code_generation",
66
- "action": "generate_component",
67
- "priority": "normal",
68
- "timeout": 300000
69
- },
70
-
71
- "context": {
72
- "project_path": "/path/to/project",
73
- "feature": "feature/user-dashboard",
74
- "phase": "implementation",
75
- "files": ["src/components/Dashboard.tsx"]
76
- },
77
-
78
- "request": {
79
- "prompt": "Generate a Dashboard component with...",
80
- "parameters": {
81
- "component_name": "Dashboard",
82
- "framework": "react",
83
- "styling": "tailwind"
84
- }
85
- },
86
-
87
- "metadata": {
88
- "user": "developer@company.com",
89
- "session_id": "session-123",
90
- "client_version": "1.2.0",
91
- "offline_duration": null
92
- },
93
-
94
- "processing": {
95
- "attempts": 0,
96
- "max_attempts": 3,
97
- "last_attempt": null,
98
- "next_retry": null
99
- },
100
-
101
- "result": null,
102
- "error": null
103
- }
104
- ```
105
-
106
- ---
107
-
108
- ## Queue Operations
109
-
110
- ### 1. Adding to Queue
111
-
112
- **When an operation is queued:**
113
-
114
- ```typescript
115
- interface QueueOperation {
116
- // Validate operation can be queued
117
- validate(): ValidationResult;
118
-
119
- // Serialize operation for storage
120
- serialize(): QueueItem;
121
-
122
- // Generate acknowledgment for user
123
- acknowledge(): QueueAcknowledgment;
124
- }
125
-
126
- // Example implementation
127
- async function queueOperation(operation: Operation): Promise<QueueAcknowledgment> {
128
- // 1. Validate operation
129
- const validation = operation.validate();
130
- if (!validation.valid) {
131
- throw new QueueValidationError(validation.errors);
132
- }
133
-
134
- // 2. Create queue item
135
- const item: QueueItem = {
136
- id: generateUUID(),
137
- created_at: new Date().toISOString(),
138
- status: 'pending',
139
- operation: operation.serialize(),
140
- // ... other fields
141
- };
142
-
143
- // 3. Persist to disk
144
- await persistQueueItem(item);
145
-
146
- // 4. Return acknowledgment
147
- return {
148
- queued: true,
149
- item_id: item.id,
150
- position: await getQueuePosition(item.id),
151
- estimated_processing: null // Unknown until online
152
- };
153
- }
154
- ```
155
-
156
- ### 2. Queue Processing
157
-
158
- **When connectivity is restored:**
159
-
160
- ```typescript
161
- async function processQueue(): Promise<ProcessingResult[]> {
162
- const results: ProcessingResult[] = [];
163
-
164
- // 1. Get pending items sorted by priority
165
- const items = await getPendingItems({ sort: 'priority' });
166
-
167
- for (const item of items) {
168
- try {
169
- // 2. Move to processing
170
- await moveToProcessing(item.id);
171
-
172
- // 3. Execute operation
173
- const result = await executeOperation(item);
174
-
175
- // 4. Store result
176
- await storeResult(item.id, result);
177
-
178
- // 5. Move to completed
179
- await moveToCompleted(item.id);
180
-
181
- // 6. Notify user
182
- await notifyUser(item, result);
183
-
184
- results.push({ item_id: item.id, status: 'success', result });
185
-
186
- } catch (error) {
187
- // Handle failure
188
- await handleFailure(item, error);
189
- results.push({ item_id: item.id, status: 'failed', error });
190
- }
191
- }
192
-
193
- return results;
194
- }
195
- ```
196
-
197
- ### 3. Failure Handling
198
-
199
- ```typescript
200
- async function handleFailure(item: QueueItem, error: Error): Promise<void> {
201
- // 1. Increment attempt counter
202
- item.processing.attempts++;
203
- item.processing.last_attempt = new Date().toISOString();
204
-
205
- // 2. Check if should retry
206
- if (item.processing.attempts < item.processing.max_attempts) {
207
- // Calculate next retry time (exponential backoff)
208
- const delay = Math.pow(2, item.processing.attempts) * 1000; // 2s, 4s, 8s
209
- item.processing.next_retry = new Date(Date.now() + delay).toISOString();
210
- item.status = 'retry_pending';
211
-
212
- await updateQueueItem(item);
213
-
214
- } else {
215
- // Max retries exceeded
216
- item.status = 'failed';
217
- item.error = {
218
- message: error.message,
219
- code: error.code,
220
- occurred_at: new Date().toISOString()
221
- };
222
-
223
- await moveToFailed(item);
224
- await notifyFailure(item);
225
- }
226
- }
227
- ```
228
-
229
- ---
230
-
231
- ## Queueable Operations
232
-
233
- ### Operations That Can Be Queued
234
-
235
- | Operation | Priority | Timeout | Notes |
236
- |-----------|----------|---------|-------|
237
- | Code generation | Normal | 5 min | Full component/function generation |
238
- | Refactoring suggestion | Normal | 5 min | Complex refactoring requests |
239
- | Code review | Low | 10 min | AI-powered code review |
240
- | Documentation generation | Low | 10 min | Auto-generate docs |
241
- | Test generation | Normal | 5 min | Generate test cases |
242
- | Security analysis | High | 15 min | Security vulnerability scan |
243
- | Dependency analysis | Low | 10 min | Analyze dependencies |
244
-
245
- ### Operations That Cannot Be Queued
246
-
247
- | Operation | Reason | Alternative |
248
- |-----------|--------|-------------|
249
- | Interactive code completion | Real-time required | Use cached suggestions |
250
- | Live debugging assistance | Context changes | Log for later review |
251
- | Real-time collaboration | Synchronous required | Queue summary for review |
252
-
253
- ---
254
-
255
- ## Priority System
256
-
257
- ### Priority Levels
258
-
259
- ```typescript
260
- enum QueuePriority {
261
- CRITICAL = 1, // Security issues, blocking bugs
262
- HIGH = 2, // Important features, urgent requests
263
- NORMAL = 3, // Standard operations
264
- LOW = 4, // Documentation, non-urgent
265
- BACKGROUND = 5 // Analytics, learning updates
266
- }
267
- ```
268
-
269
- ### Priority Rules
270
-
271
- ```yaml
272
- # proagents.config.yaml
273
-
274
- offline:
275
- queue:
276
- priority_rules:
277
- # Security-related always high priority
278
- - match:
279
- operation_type: "security_analysis"
280
- priority: "high"
281
-
282
- # User-initiated higher than system
283
- - match:
284
- source: "user_request"
285
- priority_boost: 1
286
-
287
- # Older items get priority boost
288
- - match:
289
- age_hours: ">24"
290
- priority_boost: 1
291
-
292
- # Feature branch items lower during release
293
- - match:
294
- branch_type: "feature"
295
- release_freeze: true
296
- priority: "low"
297
- ```
298
-
299
- ### Processing Order
300
-
301
- ```
302
- Queue Processing Order:
303
- 1. CRITICAL items (sorted by age)
304
- 2. HIGH items (sorted by age)
305
- 3. NORMAL items (sorted by age)
306
- 4. LOW items (sorted by age)
307
- 5. BACKGROUND items (sorted by age)
308
-
309
- Within same priority, FIFO (First In, First Out)
310
- ```
311
-
312
- ---
313
-
314
- ## Queue Configuration
315
-
316
- ### Full Configuration Options
317
-
318
- ```yaml
319
- # proagents.config.yaml
320
-
321
- offline:
322
- queue:
323
- enabled: true
324
-
325
- # Storage
326
- storage:
327
- path: ".proagents/offline-queue"
328
- max_items: 100
329
- max_size_mb: 50
330
-
331
- # Item limits
332
- limits:
333
- max_payload_size_kb: 500
334
- max_context_size_kb: 200
335
-
336
- # Processing
337
- processing:
338
- batch_size: 10
339
- parallel_items: 3
340
- timeout_default_ms: 300000
341
-
342
- # Retry configuration
343
- retry:
344
- max_attempts: 3
345
- backoff_type: "exponential" # exponential | linear | fixed
346
- base_delay_ms: 2000
347
- max_delay_ms: 60000
348
-
349
- # Cleanup
350
- cleanup:
351
- completed_retention_days: 7
352
- failed_retention_days: 30
353
- auto_cleanup: true
354
-
355
- # Notifications
356
- notifications:
357
- on_queue: true
358
- on_process_start: true
359
- on_success: true
360
- on_failure: true
361
- channels: ["terminal", "notification_center"]
362
-
363
- # Priority
364
- priority:
365
- default: "normal"
366
- allow_user_override: true
367
-
368
- # Expiration
369
- expiration:
370
- enabled: true
371
- default_hours: 168 # 7 days
372
- warn_before_hours: 24
373
- ```
374
-
375
- ---
376
-
377
- ## Queue Status & Monitoring
378
-
379
- ### Status Commands
380
-
381
- ```bash
382
- # View queue status
383
- proagents offline queue status
384
-
385
- # Output:
386
- # Offline Queue Status
387
- # ────────────────────────────────────────
388
- # Status: Active (collecting while offline)
389
- #
390
- # Items:
391
- # ├── Pending: 5
392
- # ├── Processing: 0
393
- # ├── Completed (today): 12
394
- # └── Failed: 1
395
- #
396
- # Storage: 2.3 MB / 50 MB (4.6%)
397
- #
398
- # Oldest Item: 2 hours ago
399
- # Priority Distribution:
400
- # ├── High: 1
401
- # ├── Normal: 3
402
- # └── Low: 1
403
- ```
404
-
405
- ```bash
406
- # List queue items
407
- proagents offline queue list
408
-
409
- # Output:
410
- # Queue Items (5 pending)
411
- # ────────────────────────────────────────
412
- # ID | Type | Priority | Age | Size
413
- # ------------|-------------------|----------|--------|------
414
- # q-abc123 | code_generation | high | 2h | 12KB
415
- # q-def456 | test_generation | normal | 1h | 8KB
416
- # q-ghi789 | documentation | normal | 45m | 15KB
417
- # q-jkl012 | code_review | normal | 30m | 22KB
418
- # q-mno345 | refactoring | low | 15m | 5KB
419
- ```
420
-
421
- ```bash
422
- # View specific item
423
- proagents offline queue show q-abc123
424
-
425
- # Output:
426
- # Queue Item: q-abc123
427
- # ────────────────────────────────────────
428
- # Type: code_generation
429
- # Status: pending
430
- # Priority: high
431
- #
432
- # Created: 2024-01-15 08:30:00 UTC
433
- # Age: 2 hours
434
- #
435
- # Operation:
436
- # - Action: generate_component
437
- # - Component: UserDashboard
438
- # - Framework: react
439
- #
440
- # Context:
441
- # - Project: my-app
442
- # - Feature: feature/user-dashboard
443
- # - Phase: implementation
444
- #
445
- # Attempts: 0 / 3
446
- # Estimated Processing: ~2 minutes
447
- ```
448
-
449
- ### Monitoring Events
450
-
451
- ```typescript
452
- // Queue events for monitoring
453
- interface QueueEvents {
454
- 'queue:item_added': { item: QueueItem };
455
- 'queue:processing_started': { item_id: string };
456
- 'queue:item_completed': { item_id: string; result: any };
457
- 'queue:item_failed': { item_id: string; error: Error };
458
- 'queue:retry_scheduled': { item_id: string; next_retry: Date };
459
- 'queue:capacity_warning': { current: number; max: number };
460
- 'queue:online_sync_started': { item_count: number };
461
- 'queue:online_sync_completed': { success: number; failed: number };
462
- }
463
- ```
464
-
465
- ---
466
-
467
- ## User Experience
468
-
469
- ### When Operation is Queued
470
-
471
- ```
472
- ┌─────────────────────────────────────────────────────────────┐
473
- │ ⏳ Operation Queued │
474
- ├─────────────────────────────────────────────────────────────┤
475
- │ │
476
- │ Your request has been queued for processing when │
477
- │ connectivity is restored. │
478
- │ │
479
- │ Queue ID: q-abc123 │
480
- │ Operation: Generate Dashboard Component │
481
- │ Priority: Normal │
482
- │ Position: #3 in queue │
483
- │ │
484
- │ You will be notified when processing completes. │
485
- │ │
486
- │ Continue working offline? [Y/n] │
487
- │ │
488
- └─────────────────────────────────────────────────────────────┘
489
- ```
490
-
491
- ### When Connectivity Returns
492
-
493
- ```
494
- ┌─────────────────────────────────────────────────────────────┐
495
- │ 🔄 Processing Offline Queue │
496
- ├─────────────────────────────────────────────────────────────┤
497
- │ │
498
- │ Connectivity restored. Processing 5 queued operations... │
499
- │ │
500
- │ [████████████████░░░░░░░░] 3/5 completed │
501
- │ │
502
- │ ✅ q-abc123: Dashboard component generated │
503
- │ ✅ q-def456: Tests generated (15 test cases) │
504
- │ ✅ q-ghi789: Documentation updated │
505
- │ ⏳ q-jkl012: Code review in progress... │
506
- │ ⏸ q-mno345: Waiting... │
507
- │ │
508
- └─────────────────────────────────────────────────────────────┘
509
- ```
510
-
511
- ### Result Delivery
512
-
513
- ```bash
514
- # When results are ready
515
- proagents offline queue results
516
-
517
- # Output:
518
- # Completed Queue Items
519
- # ────────────────────────────────────────
520
- #
521
- # ✅ q-abc123 - Dashboard Component
522
- # Generated: src/components/Dashboard.tsx
523
- # View: proagents queue show q-abc123 --result
524
- #
525
- # ✅ q-def456 - Test Generation
526
- # Generated: 15 test cases
527
- # View: proagents queue show q-def456 --result
528
- #
529
- # ❌ q-xyz789 - Refactoring (FAILED)
530
- # Error: Context too large
531
- # Retry: proagents queue retry q-xyz789
532
- ```
533
-
534
- ---
535
-
536
- ## API Reference
537
-
538
- ### Queue Client Interface
539
-
540
- ```typescript
541
- interface QueueClient {
542
- // Add operation to queue
543
- enqueue(operation: Operation): Promise<QueueAcknowledgment>;
544
-
545
- // Get queue status
546
- status(): Promise<QueueStatus>;
547
-
548
- // List items
549
- list(filter?: QueueFilter): Promise<QueueItem[]>;
550
-
551
- // Get specific item
552
- get(id: string): Promise<QueueItem | null>;
553
-
554
- // Remove item
555
- remove(id: string): Promise<boolean>;
556
-
557
- // Update priority
558
- updatePriority(id: string, priority: QueuePriority): Promise<void>;
559
-
560
- // Manual retry
561
- retry(id: string): Promise<void>;
562
-
563
- // Process queue (when online)
564
- process(): Promise<ProcessingResult[]>;
565
-
566
- // Clear queue
567
- clear(filter?: QueueFilter): Promise<number>;
568
-
569
- // Event subscription
570
- on<E extends keyof QueueEvents>(
571
- event: E,
572
- handler: (data: QueueEvents[E]) => void
573
- ): void;
574
- }
575
- ```
576
-
577
- ### Queue Status Interface
578
-
579
- ```typescript
580
- interface QueueStatus {
581
- active: boolean;
582
- offline: boolean;
583
-
584
- counts: {
585
- pending: number;
586
- processing: number;
587
- completed: number;
588
- failed: number;
589
- };
590
-
591
- storage: {
592
- used_bytes: number;
593
- max_bytes: number;
594
- item_count: number;
595
- max_items: number;
596
- };
597
-
598
- processing: {
599
- in_progress: number;
600
- rate_per_minute: number;
601
- estimated_completion: Date | null;
602
- };
603
-
604
- oldest_item: Date | null;
605
- newest_item: Date | null;
606
-
607
- health: 'healthy' | 'warning' | 'critical';
608
- health_issues: string[];
609
- }
610
- ```
611
-
612
- ---
613
-
614
- ## Error Handling
615
-
616
- ### Error Types
617
-
618
- ```typescript
619
- enum QueueErrorCode {
620
- // Validation errors
621
- INVALID_OPERATION = 'QUEUE_001',
622
- PAYLOAD_TOO_LARGE = 'QUEUE_002',
623
- UNSUPPORTED_OPERATION = 'QUEUE_003',
624
-
625
- // Capacity errors
626
- QUEUE_FULL = 'QUEUE_010',
627
- STORAGE_LIMIT = 'QUEUE_011',
628
-
629
- // Processing errors
630
- PROCESSING_TIMEOUT = 'QUEUE_020',
631
- AI_SERVICE_ERROR = 'QUEUE_021',
632
- CONTEXT_INVALID = 'QUEUE_022',
633
-
634
- // System errors
635
- STORAGE_ERROR = 'QUEUE_030',
636
- CORRUPTION_DETECTED = 'QUEUE_031',
637
- }
638
- ```
639
-
640
- ### Error Recovery
641
-
642
- ```yaml
643
- # Error recovery configuration
644
- offline:
645
- queue:
646
- error_recovery:
647
- on_corruption:
648
- action: "rebuild_from_items"
649
- notify: true
650
-
651
- on_storage_error:
652
- action: "retry_with_backoff"
653
- max_retries: 3
654
-
655
- on_capacity_exceeded:
656
- action: "remove_lowest_priority"
657
- notify: true
658
- require_confirmation: true
659
- ```
660
-
661
- ---
662
-
663
- ## Best Practices
664
-
665
- 1. **Keep payloads small** - Include only essential context
666
- 2. **Set appropriate priorities** - Don't mark everything as high
667
- 3. **Monitor queue regularly** - Check for stuck items
668
- 4. **Clean up completed items** - Don't let storage grow unbounded
669
- 5. **Handle failures gracefully** - Notify users of permanent failures
670
- 6. **Test offline workflows** - Ensure queue works before needed
671
- 7. **Document queueable operations** - Users should know what can be queued
672
-
673
- ---
674
-
675
- ## Next Steps
676
-
677
- - [Caching Guide](./caching.md)
678
- - [Offline Operations](./offline-operations.md)
679
- - [Sync Procedures](./sync.md)