elsabro 2.3.0 → 3.8.0

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 (71) hide show
  1. package/README.md +698 -20
  2. package/bin/install.js +0 -0
  3. package/flows/development-flow.json +452 -0
  4. package/flows/quick-flow.json +118 -0
  5. package/hooks/hooks-config-updated.json +285 -0
  6. package/hooks/skill-discovery.sh +539 -0
  7. package/package.json +3 -2
  8. package/references/SYSTEM_INDEX.md +400 -5
  9. package/references/agent-marketplace.md +2274 -0
  10. package/references/agent-protocol.md +1126 -0
  11. package/references/ai-code-suggestions.md +2413 -0
  12. package/references/checkpointing.md +595 -0
  13. package/references/collaboration-patterns.md +851 -0
  14. package/references/collaborative-sessions.md +1081 -0
  15. package/references/configuration-management.md +1810 -0
  16. package/references/cost-tracking.md +1095 -0
  17. package/references/enterprise-sso.md +2001 -0
  18. package/references/error-contracts-v2.md +968 -0
  19. package/references/event-driven.md +1031 -0
  20. package/references/flow-orchestration.md +940 -0
  21. package/references/flow-visualization.md +1557 -0
  22. package/references/ide-integrations.md +3513 -0
  23. package/references/interrupt-system.md +681 -0
  24. package/references/kubernetes-deployment.md +3099 -0
  25. package/references/memory-system.md +683 -0
  26. package/references/mobile-companion.md +3236 -0
  27. package/references/multi-llm-providers.md +2494 -0
  28. package/references/multi-project-memory.md +1182 -0
  29. package/references/observability.md +793 -0
  30. package/references/output-schemas.md +858 -0
  31. package/references/performance-profiler.md +955 -0
  32. package/references/plugin-system.md +1526 -0
  33. package/references/prompt-management.md +292 -0
  34. package/references/sandbox-execution.md +303 -0
  35. package/references/security-system.md +1253 -0
  36. package/references/skill-marketplace-integration.md +3901 -0
  37. package/references/streaming.md +696 -0
  38. package/references/testing-framework.md +1151 -0
  39. package/references/time-travel.md +802 -0
  40. package/references/tool-registry.md +886 -0
  41. package/references/voice-commands.md +3296 -0
  42. package/templates/agent-marketplace-config.json +220 -0
  43. package/templates/agent-protocol-config.json +136 -0
  44. package/templates/ai-suggestions-config.json +100 -0
  45. package/templates/checkpoint-state.json +61 -0
  46. package/templates/collaboration-config.json +157 -0
  47. package/templates/collaborative-sessions-config.json +153 -0
  48. package/templates/configuration-config.json +245 -0
  49. package/templates/cost-tracking-config.json +148 -0
  50. package/templates/enterprise-sso-config.json +438 -0
  51. package/templates/events-config.json +148 -0
  52. package/templates/flow-visualization-config.json +196 -0
  53. package/templates/ide-integrations-config.json +442 -0
  54. package/templates/kubernetes-config.json +764 -0
  55. package/templates/memory-state.json +84 -0
  56. package/templates/mobile-companion-config.json +600 -0
  57. package/templates/multi-llm-config.json +544 -0
  58. package/templates/multi-project-memory-config.json +145 -0
  59. package/templates/observability-config.json +109 -0
  60. package/templates/performance-profiler-config.json +125 -0
  61. package/templates/plugin-config.json +170 -0
  62. package/templates/prompt-management-config.json +86 -0
  63. package/templates/sandbox-config.json +185 -0
  64. package/templates/schemas-config.json +65 -0
  65. package/templates/security-config.json +120 -0
  66. package/templates/skill-marketplace-config.json +441 -0
  67. package/templates/streaming-config.json +72 -0
  68. package/templates/testing-config.json +81 -0
  69. package/templates/timetravel-config.json +62 -0
  70. package/templates/tool-registry-config.json +109 -0
  71. package/templates/voice-commands-config.json +658 -0
@@ -0,0 +1,84 @@
1
+ {
2
+ "version": "3.0.0",
3
+ "projectId": "",
4
+ "createdAt": "",
5
+ "updatedAt": "",
6
+
7
+ "shortTerm": {
8
+ "sessionId": "",
9
+ "startedAt": "",
10
+ "conversation": [],
11
+ "decisions": [],
12
+ "filesAccessed": [],
13
+ "currentContext": {
14
+ "activeTask": "",
15
+ "activePhase": "",
16
+ "focusArea": ""
17
+ },
18
+ "errors": [],
19
+ "recoveryPoints": []
20
+ },
21
+
22
+ "longTerm": {
23
+ "patterns": [],
24
+ "mistakes": [],
25
+ "preferences": {
26
+ "codeStyle": {
27
+ "semicolons": true,
28
+ "quotes": "single",
29
+ "indentation": 2,
30
+ "maxLineLength": 100
31
+ },
32
+ "architecture": {
33
+ "preferredPatterns": [],
34
+ "avoidPatterns": []
35
+ },
36
+ "testing": {
37
+ "framework": "",
38
+ "coverage": 80,
39
+ "style": "describe-it"
40
+ },
41
+ "documentation": {
42
+ "style": "jsdoc",
43
+ "includeExamples": true
44
+ }
45
+ },
46
+ "learnings": [],
47
+ "statistics": {
48
+ "totalPatterns": 0,
49
+ "totalMistakes": 0,
50
+ "totalLearnings": 0,
51
+ "lastLearningAt": ""
52
+ }
53
+ },
54
+
55
+ "entity": {
56
+ "files": {},
57
+ "functions": {},
58
+ "components": {},
59
+ "relationships": {},
60
+ "lastScanned": "",
61
+ "scanConfig": {
62
+ "includePatterns": ["src/**/*", "lib/**/*", "app/**/*"],
63
+ "excludePatterns": ["node_modules/**", "dist/**", ".next/**", "coverage/**"]
64
+ }
65
+ },
66
+
67
+ "contextual": {
68
+ "index": {
69
+ "provider": "local",
70
+ "namespace": "",
71
+ "dimensions": 1536,
72
+ "lastUpdated": "",
73
+ "documentCount": 0
74
+ },
75
+ "sources": [],
76
+ "recentQueries": []
77
+ },
78
+
79
+ "metadata": {
80
+ "elasbroVersion": "3.0.0",
81
+ "memoryVersion": "1.0.0",
82
+ "migrations": []
83
+ }
84
+ }
@@ -0,0 +1,600 @@
1
+ {
2
+ "$schema": "https://elsabro.io/schemas/mobile-companion-config.json",
3
+ "version": "3.7.0",
4
+ "name": "ELSABRO Mobile Companion Configuration",
5
+ "description": "Configuration template for ELSABRO Mobile Companion app",
6
+
7
+ "app": {
8
+ "name": "ELSABRO Companion",
9
+ "slug": "elsabro-companion",
10
+ "version": "3.7.0",
11
+ "scheme": "elsabro",
12
+ "orientation": "portrait",
13
+ "userInterfaceStyle": "automatic",
14
+ "icon": "./assets/icon.png",
15
+ "splash": {
16
+ "image": "./assets/splash.png",
17
+ "resizeMode": "contain",
18
+ "backgroundColor": "#6366f1"
19
+ },
20
+ "assetBundlePatterns": ["**/*"],
21
+ "ios": {
22
+ "bundleIdentifier": "io.elsabro.companion",
23
+ "buildNumber": "1",
24
+ "supportsTablet": true,
25
+ "infoPlist": {
26
+ "NSFaceIDUsageDescription": "ELSABRO uses Face ID for secure authentication",
27
+ "NSSpeechRecognitionUsageDescription": "ELSABRO uses speech recognition for voice commands",
28
+ "NSMicrophoneUsageDescription": "ELSABRO uses the microphone for voice input"
29
+ },
30
+ "associatedDomains": [
31
+ "applinks:elsabro.io",
32
+ "applinks:*.elsabro.io"
33
+ ],
34
+ "entitlements": {
35
+ "com.apple.security.application-groups": ["group.io.elsabro.companion"],
36
+ "aps-environment": "production"
37
+ }
38
+ },
39
+ "android": {
40
+ "package": "io.elsabro.companion",
41
+ "versionCode": 1,
42
+ "adaptiveIcon": {
43
+ "foregroundImage": "./assets/adaptive-icon.png",
44
+ "backgroundColor": "#6366f1"
45
+ },
46
+ "permissions": [
47
+ "USE_BIOMETRIC",
48
+ "USE_FINGERPRINT",
49
+ "VIBRATE",
50
+ "RECEIVE_BOOT_COMPLETED",
51
+ "INTERNET",
52
+ "ACCESS_NETWORK_STATE"
53
+ ],
54
+ "intentFilters": [
55
+ {
56
+ "action": "VIEW",
57
+ "autoVerify": true,
58
+ "data": [
59
+ {
60
+ "scheme": "https",
61
+ "host": "elsabro.io",
62
+ "pathPrefix": "/session"
63
+ },
64
+ {
65
+ "scheme": "elsabro"
66
+ }
67
+ ],
68
+ "category": ["BROWSABLE", "DEFAULT"]
69
+ }
70
+ ]
71
+ }
72
+ },
73
+
74
+ "api": {
75
+ "baseUrl": "https://api.elsabro.io",
76
+ "wsUrl": "wss://ws.elsabro.io",
77
+ "timeout": 30000,
78
+ "retryAttempts": 3,
79
+ "retryDelay": 1000,
80
+ "headers": {
81
+ "X-Client-Version": "3.7.0",
82
+ "X-Client-Platform": "mobile"
83
+ }
84
+ },
85
+
86
+ "websocket": {
87
+ "url": "wss://ws.elsabro.io",
88
+ "heartbeatInterval": 30000,
89
+ "reconnectMaxAttempts": 10,
90
+ "reconnectBaseDelay": 1000,
91
+ "reconnectMaxDelay": 30000,
92
+ "messageQueueMaxSize": 100
93
+ },
94
+
95
+ "authentication": {
96
+ "biometric": {
97
+ "enabled": true,
98
+ "promptMessage": "Authenticate to access ELSABRO",
99
+ "fallbackEnabled": true,
100
+ "fallbackLabel": "Use PIN"
101
+ },
102
+ "pin": {
103
+ "enabled": true,
104
+ "length": 6,
105
+ "maxAttempts": 5,
106
+ "lockoutDuration": 300000
107
+ },
108
+ "session": {
109
+ "tokenRefreshThreshold": 300000,
110
+ "maxInactivityDuration": 1800000,
111
+ "persistSession": true
112
+ }
113
+ },
114
+
115
+ "notifications": {
116
+ "enabled": true,
117
+ "channels": {
118
+ "critical": {
119
+ "name": "Critical Alerts",
120
+ "importance": "max",
121
+ "sound": "critical.wav",
122
+ "vibrationPattern": [0, 250, 250, 250],
123
+ "bypassDnd": true
124
+ },
125
+ "builds": {
126
+ "name": "Build Status",
127
+ "importance": "high",
128
+ "sound": "build.wav"
129
+ },
130
+ "updates": {
131
+ "name": "Session Updates",
132
+ "importance": "default"
133
+ },
134
+ "sync": {
135
+ "name": "Background Sync",
136
+ "importance": "min",
137
+ "showBadge": false
138
+ }
139
+ },
140
+ "categories": {
141
+ "approval": {
142
+ "actions": [
143
+ {
144
+ "identifier": "approve",
145
+ "buttonTitle": "Approve",
146
+ "isDestructive": false,
147
+ "isAuthenticationRequired": true
148
+ },
149
+ {
150
+ "identifier": "reject",
151
+ "buttonTitle": "Reject",
152
+ "isDestructive": true,
153
+ "isAuthenticationRequired": true
154
+ },
155
+ {
156
+ "identifier": "details",
157
+ "buttonTitle": "View Details",
158
+ "opensAppToForeground": true
159
+ }
160
+ ]
161
+ },
162
+ "build": {
163
+ "actions": [
164
+ {
165
+ "identifier": "view_logs",
166
+ "buttonTitle": "View Logs",
167
+ "opensAppToForeground": true
168
+ },
169
+ {
170
+ "identifier": "retry",
171
+ "buttonTitle": "Retry Build",
172
+ "isDestructive": false
173
+ }
174
+ ]
175
+ }
176
+ },
177
+ "types": {
178
+ "task_completed": {
179
+ "priority": "normal",
180
+ "channel": "updates",
181
+ "badge": false
182
+ },
183
+ "build_failed": {
184
+ "priority": "high",
185
+ "channel": "builds",
186
+ "category": "build",
187
+ "badge": true
188
+ },
189
+ "approval_needed": {
190
+ "priority": "critical",
191
+ "channel": "critical",
192
+ "category": "approval",
193
+ "badge": true
194
+ },
195
+ "session_update": {
196
+ "priority": "low",
197
+ "channel": "sync",
198
+ "silent": true
199
+ },
200
+ "agent_error": {
201
+ "priority": "high",
202
+ "channel": "builds",
203
+ "badge": true
204
+ }
205
+ }
206
+ },
207
+
208
+ "voice": {
209
+ "enabled": true,
210
+ "language": "en-US",
211
+ "tts": {
212
+ "pitch": 1.0,
213
+ "rate": 0.9
214
+ },
215
+ "stt": {
216
+ "silenceTimeout": 1500,
217
+ "minimumLength": 500
218
+ },
219
+ "commands": [
220
+ {
221
+ "pattern": "^(start|create|new) session (.+)$",
222
+ "action": "createSession",
223
+ "feedback": "Creating new session"
224
+ },
225
+ {
226
+ "pattern": "^pause( session)?$",
227
+ "action": "pauseSession",
228
+ "feedback": "Pausing session"
229
+ },
230
+ {
231
+ "pattern": "^resume( session)?$",
232
+ "action": "resumeSession",
233
+ "feedback": "Resuming session"
234
+ },
235
+ {
236
+ "pattern": "^status$",
237
+ "action": "getStatus",
238
+ "feedback": ""
239
+ },
240
+ {
241
+ "pattern": "^approve( task)?( (.+))?$",
242
+ "action": "approveTask",
243
+ "feedback": "Approving task"
244
+ },
245
+ {
246
+ "pattern": "^reject( task)?( with (.+))?$",
247
+ "action": "rejectTask",
248
+ "feedback": "Rejecting task"
249
+ },
250
+ {
251
+ "pattern": "^switch to (.+)$",
252
+ "action": "switchSession",
253
+ "feedback": ""
254
+ },
255
+ {
256
+ "pattern": "^stop listening$",
257
+ "action": "stopVoice",
258
+ "feedback": ""
259
+ }
260
+ ],
261
+ "hapticFeedback": {
262
+ "start": "light",
263
+ "recognized": "medium",
264
+ "success": "success",
265
+ "error": "error"
266
+ }
267
+ },
268
+
269
+ "offline": {
270
+ "enabled": true,
271
+ "cache": {
272
+ "maxSize": 100,
273
+ "defaultTTL": 1800000,
274
+ "sessionTTL": 300000,
275
+ "agentTTL": 3600000
276
+ },
277
+ "actionQueue": {
278
+ "maxSize": 50,
279
+ "maxRetries": 3,
280
+ "retryBaseDelay": 1000,
281
+ "retryMaxDelay": 30000
282
+ },
283
+ "sync": {
284
+ "autoSyncOnReconnect": true,
285
+ "backgroundSyncInterval": 900000,
286
+ "deltaSync": true
287
+ }
288
+ },
289
+
290
+ "widgets": {
291
+ "ios": {
292
+ "enabled": true,
293
+ "appGroupIdentifier": "group.io.elsabro.companion",
294
+ "refreshInterval": 300,
295
+ "supportedFamilies": ["systemSmall", "systemMedium", "systemLarge"]
296
+ },
297
+ "android": {
298
+ "enabled": true,
299
+ "refreshInterval": 300,
300
+ "minWidth": 180,
301
+ "minHeight": 110
302
+ },
303
+ "dataKeys": ["activeSession", "recentSessions", "pendingApprovals"]
304
+ },
305
+
306
+ "deepLinking": {
307
+ "scheme": "elsabro",
308
+ "prefixes": [
309
+ "elsabro://",
310
+ "https://elsabro.io",
311
+ "https://*.elsabro.io"
312
+ ],
313
+ "routes": {
314
+ "session/:id": {
315
+ "screen": "SessionDetail",
316
+ "params": ["id"]
317
+ },
318
+ "session/:id/approve": {
319
+ "screen": "SessionDetail",
320
+ "params": ["id"],
321
+ "initialParams": {
322
+ "action": "approve"
323
+ }
324
+ },
325
+ "handoff/:sessionId": {
326
+ "screen": "SessionDetail",
327
+ "params": ["sessionId"],
328
+ "handoff": true
329
+ }
330
+ }
331
+ },
332
+
333
+ "state": {
334
+ "stores": {
335
+ "session": {
336
+ "persist": true,
337
+ "key": "elsabro-sessions"
338
+ },
339
+ "auth": {
340
+ "persist": false,
341
+ "secure": true
342
+ },
343
+ "offline": {
344
+ "persist": true,
345
+ "key": "elsabro-offline"
346
+ },
347
+ "notification": {
348
+ "persist": true,
349
+ "key": "elsabro-notifications"
350
+ }
351
+ },
352
+ "reactQuery": {
353
+ "staleTime": 300000,
354
+ "gcTime": 1800000,
355
+ "retry": 3,
356
+ "refetchOnWindowFocus": true,
357
+ "refetchOnReconnect": true
358
+ }
359
+ },
360
+
361
+ "ui": {
362
+ "theme": {
363
+ "light": {
364
+ "primary": "#6366f1",
365
+ "secondary": "#8b5cf6",
366
+ "background": "#ffffff",
367
+ "surface": "#f8fafc",
368
+ "text": "#1e293b",
369
+ "textSecondary": "#64748b",
370
+ "border": "#e2e8f0",
371
+ "error": "#ef4444",
372
+ "warning": "#f59e0b",
373
+ "success": "#22c55e",
374
+ "info": "#3b82f6"
375
+ },
376
+ "dark": {
377
+ "primary": "#818cf8",
378
+ "secondary": "#a78bfa",
379
+ "background": "#0f172a",
380
+ "surface": "#1e293b",
381
+ "text": "#f8fafc",
382
+ "textSecondary": "#94a3b8",
383
+ "border": "#334155",
384
+ "error": "#f87171",
385
+ "warning": "#fbbf24",
386
+ "success": "#4ade80",
387
+ "info": "#60a5fa"
388
+ }
389
+ },
390
+ "animations": {
391
+ "enabled": true,
392
+ "reducedMotion": "system",
393
+ "duration": {
394
+ "fast": 150,
395
+ "normal": 300,
396
+ "slow": 500
397
+ }
398
+ },
399
+ "haptics": {
400
+ "enabled": true,
401
+ "intensity": "medium"
402
+ }
403
+ },
404
+
405
+ "security": {
406
+ "certificatePinning": {
407
+ "enabled": true,
408
+ "pins": [
409
+ "sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
410
+ "sha256/BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB="
411
+ ]
412
+ },
413
+ "secureStorage": {
414
+ "ios": {
415
+ "accessible": "WHEN_UNLOCKED_THIS_DEVICE_ONLY"
416
+ },
417
+ "android": {
418
+ "encryptionRequired": true
419
+ }
420
+ },
421
+ "jailbreakDetection": {
422
+ "enabled": true,
423
+ "action": "warn"
424
+ },
425
+ "screenshotProtection": {
426
+ "enabled": false,
427
+ "sensitiveScreens": ["auth/login", "settings/security"]
428
+ }
429
+ },
430
+
431
+ "analytics": {
432
+ "enabled": true,
433
+ "provider": "amplitude",
434
+ "trackScreenViews": true,
435
+ "trackUserActions": true,
436
+ "excludeScreens": ["auth/login"],
437
+ "sessionTimeout": 1800000
438
+ },
439
+
440
+ "crashReporting": {
441
+ "enabled": true,
442
+ "provider": "sentry",
443
+ "dsn": "https://xxx@sentry.io/xxx",
444
+ "tracesSampleRate": 0.1,
445
+ "attachments": {
446
+ "logs": true,
447
+ "state": true,
448
+ "breadcrumbs": true
449
+ }
450
+ },
451
+
452
+ "featureFlags": {
453
+ "provider": "launchdarkly",
454
+ "defaults": {
455
+ "voice_input": true,
456
+ "biometric_auth": true,
457
+ "offline_mode": true,
458
+ "widgets": true,
459
+ "dark_mode": true,
460
+ "handoff": true
461
+ }
462
+ },
463
+
464
+ "commands": {
465
+ "prefix": "/elsabro:mobile",
466
+ "available": [
467
+ {
468
+ "name": "setup",
469
+ "description": "Initialize mobile companion",
470
+ "options": [
471
+ {
472
+ "name": "--platform",
473
+ "values": ["ios", "android", "both"],
474
+ "default": "both"
475
+ }
476
+ ]
477
+ },
478
+ {
479
+ "name": "sync",
480
+ "description": "Force synchronization",
481
+ "options": [
482
+ {
483
+ "name": "--full",
484
+ "description": "Clear cache and perform full sync"
485
+ },
486
+ {
487
+ "name": "--sessions-only",
488
+ "description": "Only sync session data"
489
+ }
490
+ ]
491
+ },
492
+ {
493
+ "name": "notify",
494
+ "description": "Manage notifications",
495
+ "options": [
496
+ {
497
+ "name": "--test",
498
+ "description": "Send test notification"
499
+ },
500
+ {
501
+ "name": "--status",
502
+ "description": "Show notification permission status"
503
+ },
504
+ {
505
+ "name": "--clear",
506
+ "description": "Clear all notifications"
507
+ }
508
+ ]
509
+ },
510
+ {
511
+ "name": "voice",
512
+ "description": "Voice input control",
513
+ "options": [
514
+ {
515
+ "name": "--enable",
516
+ "description": "Enable voice input"
517
+ },
518
+ {
519
+ "name": "--disable",
520
+ "description": "Disable voice input"
521
+ },
522
+ {
523
+ "name": "--test",
524
+ "description": "Test voice availability"
525
+ }
526
+ ]
527
+ }
528
+ ]
529
+ },
530
+
531
+ "build": {
532
+ "eas": {
533
+ "projectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
534
+ "builds": {
535
+ "development": {
536
+ "developmentClient": true,
537
+ "distribution": "internal",
538
+ "ios": {
539
+ "simulator": true
540
+ },
541
+ "android": {
542
+ "buildType": "apk"
543
+ }
544
+ },
545
+ "preview": {
546
+ "distribution": "internal",
547
+ "ios": {
548
+ "resourceClass": "m-medium"
549
+ },
550
+ "android": {
551
+ "buildType": "apk"
552
+ }
553
+ },
554
+ "production": {
555
+ "autoIncrement": true,
556
+ "ios": {
557
+ "resourceClass": "m-medium"
558
+ },
559
+ "android": {
560
+ "buildType": "app-bundle"
561
+ }
562
+ }
563
+ },
564
+ "submit": {
565
+ "production": {
566
+ "ios": {
567
+ "appleId": "your-apple-id@example.com",
568
+ "ascAppId": "1234567890",
569
+ "appleTeamId": "XXXXXXXXXX"
570
+ },
571
+ "android": {
572
+ "serviceAccountKeyPath": "./google-service-account.json",
573
+ "track": "internal"
574
+ }
575
+ }
576
+ }
577
+ }
578
+ },
579
+
580
+ "environment": {
581
+ "development": {
582
+ "api.baseUrl": "https://dev-api.elsabro.io",
583
+ "api.wsUrl": "wss://dev-ws.elsabro.io",
584
+ "analytics.enabled": false,
585
+ "crashReporting.enabled": false
586
+ },
587
+ "staging": {
588
+ "api.baseUrl": "https://staging-api.elsabro.io",
589
+ "api.wsUrl": "wss://staging-ws.elsabro.io",
590
+ "analytics.enabled": true,
591
+ "crashReporting.tracesSampleRate": 0.5
592
+ },
593
+ "production": {
594
+ "api.baseUrl": "https://api.elsabro.io",
595
+ "api.wsUrl": "wss://ws.elsabro.io",
596
+ "analytics.enabled": true,
597
+ "crashReporting.tracesSampleRate": 0.1
598
+ }
599
+ }
600
+ }