aios-core 3.3.0 → 3.5.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.
@@ -3,81 +3,313 @@ task: Sync Squad to Synkra
3
3
  responsavel: "@squad-creator"
4
4
  responsavel_type: agent
5
5
  atomic_layer: task
6
- status: placeholder
6
+ status: active
7
7
  sprint: 8
8
+ story: SQS-5
9
+ version: 1.0.0
8
10
  Entrada: |
9
- - name: Nome do squad para sincronizar
10
- - pricing: Modelo de preco (free | premium | subscription)
11
+ - squad_path: Caminho do squad para sincronizar (obrigatório)
12
+ - visibility: public | private (default: private)
13
+ - official: Flag para marcar como oficial (--official, apenas SynkraAI)
14
+ - dry_run: Preview sem sincronizar (--dry-run)
11
15
  Saida: |
12
- - api_url: URL na Synkra API
13
- - dashboard_url: URL do dashboard de gestao
14
- - status: Sucesso ou erro
16
+ - sync_result: Resultado do sync (created | updated | skipped)
17
+ - squad_url: URL do squad no marketplace (quando público)
18
+ - squad_id: ID único do squad
19
+ - checksum: Checksum do squad sincronizado
15
20
  Checklist:
16
- - "[ ] Implementar em Sprint 8 (SQS-5)"
21
+ - "[x] Validar squad localmente"
22
+ - "[x] Obter token de autenticação"
23
+ - "[x] Calcular checksum"
24
+ - "[x] Enviar para Synkra API"
25
+ - "[x] Exibir URL do marketplace"
17
26
  ---
18
27
 
19
28
  # *sync-squad-synkra
20
29
 
21
- > **PLACEHOLDER** - Implementation scheduled for Sprint 8 (Story SQS-5)
30
+ Sincroniza um squad local para o Synkra API marketplace.
22
31
 
23
- ## Planned Functionality
32
+ ## Uso
24
33
 
25
- Syncs a local squad to the Synkra API marketplace for distribution and monetization.
34
+ ```bash
35
+ @squad-creator
36
+
37
+ # Sync privado (apenas workspace)
38
+ *sync-squad-synkra ./squads/meu-squad
39
+
40
+ # Sync público (visível para todos)
41
+ *sync-squad-synkra ./squads/meu-squad --public
42
+
43
+ # Preview sem sincronizar
44
+ *sync-squad-synkra ./squads/meu-squad --dry-run
45
+
46
+ # Sync com verbosidade
47
+ *sync-squad-synkra ./squads/meu-squad --verbose
48
+ ```
26
49
 
27
- ## Planned Usage
50
+ ## Autenticação
51
+
52
+ Requer autenticação com Synkra API:
28
53
 
29
54
  ```bash
30
- @squad-creator
55
+ export SYNKRA_API_TOKEN="seu-token"
56
+ ```
31
57
 
32
- *sync-squad-synkra meu-squad
33
- # → Syncs to api.synkra.dev/squads (free tier)
58
+ Ou configure em `.env`:
34
59
 
35
- *sync-squad-synkra meu-squad --pricing premium --price 9.99
36
- # → Syncs as premium squad with pricing
60
+ ```env
61
+ SYNKRA_API_URL=https://api.synkra.dev/api
62
+ SYNKRA_API_TOKEN=seu-token
63
+ ```
64
+
65
+ Para obter um token:
66
+ 1. Acesse https://synkra.dev/settings/api-keys
67
+ 2. Crie uma nova API key com permissões de sync
68
+ 3. Configure a variável de ambiente
69
+
70
+ ## Output Exemplo
37
71
 
38
- *sync-squad-synkra meu-squad --update
39
- # → Updates existing squad in marketplace
40
72
  ```
73
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
74
+ *sync-squad-synkra
75
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
76
+
77
+ 📦 Squad: ./squads/meu-squad/
41
78
 
42
- ## Planned Features
79
+ Step 1: Local Validation
80
+ ✓ Found squad.yaml
81
+ ✓ Name: meu-squad
82
+ ✓ Version: 1.0.0
83
+ ✓ Schema validation: PASSED
43
84
 
44
- 1. **Authentication**
45
- - Require Synkra API key
46
- - Validate account permissions
47
- - Support team accounts
85
+ Step 2: Calculate Checksum
86
+ Checksum: a1b2c3d4e5f6...
48
87
 
49
- 2. **Pricing Models**
50
- - Free: Available to all users
51
- - Premium: One-time purchase
52
- - Subscription: Monthly/yearly
88
+ Step 3: Sync to Synkra API
89
+ Visibility: private
90
+ API URL: https://api.synkra.dev/api
53
91
 
54
- 3. **Version Management**
55
- - Semantic versioning
56
- - Changelog generation
57
- - Update existing squads
92
+ Syncing to Synkra API...
58
93
 
59
- 4. **Analytics Dashboard**
60
- - Download statistics
61
- - Revenue tracking (for paid)
62
- - User feedback
94
+ Squad synced successfully!
63
95
 
64
- ## Synkra API Endpoints
96
+ Status: created
97
+ ID: 550e8400-e29b-41d4-a716-446655440000
98
+ Checksum: a1b2c3d4e5f6...
65
99
 
66
- ```http
67
- POST /api/v1/squads # Create new squad
68
- PUT /api/v1/squads/{id} # Update existing
69
- GET /api/v1/squads/{id} # Get squad info
70
- DELETE /api/v1/squads/{id} # Remove squad
71
- GET /api/v1/squads/me # List my squads
100
+ Next steps:
101
+ - View squad: *describe-squad meu-squad
102
+ - Make public: *sync-squad-synkra ./squads/meu-squad --public
72
103
  ```
73
104
 
74
- ## Related Story
105
+ ## Flags
106
+
107
+ | Flag | Descrição | Default |
108
+ |------|-----------|---------|
109
+ | `--public` | Torna o squad visível no marketplace público | false |
110
+ | `--private` | Mantém squad privado (apenas workspace) | true |
111
+ | `--dry-run` | Preview sem enviar para API | false |
112
+ | `--verbose` | Output detalhado | false |
113
+ | `--official` | Marca como squad oficial (apenas SynkraAI team) | false |
114
+ | `--force` | Ignora warnings e força sync | false |
115
+
116
+ ## Workflow
117
+
118
+ ```
119
+ ┌──────────────────────────────────────────────────┐
120
+ │ *sync-squad-synkra │
121
+ ├──────────────────────────────────────────────────┤
122
+ │ │
123
+ │ 1. Parse Arguments │
124
+ │ ↓ │
125
+ │ 2. Find squad.yaml │
126
+ │ ↓ │
127
+ │ 3. Validate with squad-validator.js │
128
+ │ ↓ (fail → abort) │
129
+ │ 4. Calculate SHA-256 checksum │
130
+ │ ↓ │
131
+ │ 5. Check SYNKRA_API_TOKEN │
132
+ │ ↓ (missing → abort) │
133
+ │ 6. If --dry-run: show preview and exit │
134
+ │ ↓ │
135
+ │ 7. POST to /api/squads/sync │
136
+ │ ↓ │
137
+ │ 8. Display result and marketplace URL │
138
+ │ │
139
+ └──────────────────────────────────────────────────┘
140
+ ```
141
+
142
+ ## API Integration
143
+
144
+ ### Request
145
+
146
+ ```javascript
147
+ POST ${SYNKRA_API_URL}/squads/sync
148
+ Authorization: Bearer ${SYNKRA_API_TOKEN}
149
+ Content-Type: application/json
150
+
151
+ {
152
+ "squadData": {
153
+ "name": "meu-squad",
154
+ "version": "1.0.0",
155
+ "description": "...",
156
+ "author": "...",
157
+ "license": "MIT",
158
+ "components": {...},
159
+ "tags": [...]
160
+ },
161
+ "isPublic": false,
162
+ "isOfficial": false
163
+ }
164
+ ```
165
+
166
+ ### Response (Success)
167
+
168
+ ```json
169
+ {
170
+ "success": true,
171
+ "data": {
172
+ "action": "created",
173
+ "squad_id": "meu-squad",
174
+ "id": "550e8400-e29b-41d4-a716-446655440000",
175
+ "version": "1.0.0"
176
+ },
177
+ "duration_ms": 150
178
+ }
179
+ ```
180
+
181
+ ### Response (Error)
182
+
183
+ ```json
184
+ {
185
+ "success": false,
186
+ "error": "Validation failed: Missing required field: version"
187
+ }
188
+ ```
189
+
190
+ ## Implementation Guide
191
+
192
+ ### For Agent Execution
193
+
194
+ ```javascript
195
+ // 1. Parse squad path from arguments
196
+ const squadPath = args[0] || '.';
197
+ const flags = parseFlags(args);
198
+
199
+ // 2. Find and read squad.yaml
200
+ const squadYamlPath = path.join(squadPath, 'squad.yaml');
201
+ if (!fs.existsSync(squadYamlPath)) {
202
+ error(`squad.yaml not found in ${squadPath}`);
203
+ return;
204
+ }
205
+
206
+ // 3. Validate with squad-validator.js
207
+ const { validateSquad } = await import('.aios-core/development/scripts/squad/squad-validator.js');
208
+ const validation = await validateSquad(squadYamlPath);
209
+
210
+ if (!validation.valid) {
211
+ error(`Validation failed: ${validation.errors.join(', ')}`);
212
+ return;
213
+ }
214
+
215
+ if (validation.warnings.length > 0 && !flags.force) {
216
+ warn(`Warnings: ${validation.warnings.join(', ')}`);
217
+ // Consider prompting user to continue
218
+ }
219
+
220
+ // 4. Read and parse squad data
221
+ const squadContent = fs.readFileSync(squadYamlPath, 'utf8');
222
+ const squadData = parseYaml(squadContent);
223
+
224
+ // 5. Calculate checksum
225
+ const checksum = crypto.createHash('sha256')
226
+ .update(squadContent)
227
+ .digest('hex');
228
+
229
+ // 6. Check authentication
230
+ const apiToken = process.env.SYNKRA_API_TOKEN;
231
+ const apiUrl = process.env.SYNKRA_API_URL || 'https://api.synkra.dev/api';
75
232
 
76
- - **SQS-5:** SquadSyncService (Sprint 8)
233
+ if (!apiToken) {
234
+ error('SYNKRA_API_TOKEN not set. See task docs for authentication.');
235
+ return;
236
+ }
237
+
238
+ // 7. Dry run check
239
+ if (flags.dryRun) {
240
+ output(`
241
+ DRY RUN - Would sync:
242
+ Squad: ${squadData.name}
243
+ Version: ${squadData.version}
244
+ Checksum: ${checksum}
245
+ Visibility: ${flags.public ? 'public' : 'private'}
246
+ `);
247
+ return;
248
+ }
249
+
250
+ // 8. Call Synkra API
251
+ const response = await fetch(`${apiUrl}/squads/sync`, {
252
+ method: 'POST',
253
+ headers: {
254
+ 'Authorization': `Bearer ${apiToken}`,
255
+ 'Content-Type': 'application/json'
256
+ },
257
+ body: JSON.stringify({
258
+ squadData: {
259
+ ...squadData,
260
+ checksum,
261
+ raw_content: squadContent
262
+ },
263
+ isPublic: flags.public,
264
+ isOfficial: flags.official
265
+ })
266
+ });
267
+
268
+ const result = await response.json();
269
+
270
+ // 9. Display result
271
+ if (result.success) {
272
+ output(`
273
+ ✅ Squad synced successfully!
274
+
275
+ Status: ${result.data.action}
276
+ ID: ${result.data.id}
277
+ Squad ID: ${result.data.squad_id}
278
+ `);
279
+
280
+ if (flags.public) {
281
+ output(` URL: https://synkra.dev/squads/${result.data.squad_id}`);
282
+ }
283
+ } else {
284
+ error(`Sync failed: ${result.error}`);
285
+ }
286
+ ```
287
+
288
+ ## Error Handling
289
+
290
+ | Error | Causa | Solução |
291
+ |-------|-------|---------|
292
+ | `squad.yaml not found` | Caminho inválido | Verifique o path do squad |
293
+ | `Validation failed` | Squad não passa na validação | Execute `*validate-squad` primeiro |
294
+ | `SYNKRA_API_TOKEN not set` | Token não configurado | Configure a variável de ambiente |
295
+ | `401 Unauthorized` | Token inválido ou expirado | Gere novo token em synkra.dev |
296
+ | `403 Forbidden` | Sem permissão para operação | Verifique permissões da API key |
297
+ | `Squad not found or not owned` | Tentando atualizar squad de outro workspace | Verifique ownership |
298
+
299
+ ## Related Tasks
300
+
301
+ - `*create-squad` - Criar novo squad local
302
+ - `*validate-squad` - Validar squad antes de sync
303
+ - `*describe-squad` - Ver detalhes do squad
304
+ - `*list-squads` - Listar squads disponíveis
305
+
306
+ ## Related Story
77
307
 
78
- ## Current Status
308
+ - **SQS-5:** SquadSyncService for Synkra API (Sprint 8)
79
309
 
80
- This task is a placeholder. The full implementation will be done in Sprint 8.
310
+ ## Changelog
81
311
 
82
- The Synkra API is under development at:
83
- - https://api.synkra.dev (planned)
312
+ | Version | Date | Description |
313
+ |---------|------|-------------|
314
+ | 1.0.0 | 2025-12-23 | Full implementation (Story SQS-5) |
315
+ | 0.1.0 | 2025-12-18 | Initial placeholder |
@@ -7,10 +7,10 @@
7
7
  # - SHA256 hashes for change detection
8
8
  # - File types for categorization
9
9
  #
10
- version: 3.3.0
11
- generated_at: "2025-12-22T22:25:53.402Z"
10
+ version: 3.5.0
11
+ generated_at: "2025-12-23T20:58:00.734Z"
12
12
  generator: scripts/generate-install-manifest.js
13
- file_count: 564
13
+ file_count: 568
14
14
  files:
15
15
  - path: cli/commands/generate/index.js
16
16
  hash: sha256:36f8e38ab767fa5478d8dabac548c66dc2c0fc521c216e954ac33fcea0ba597b
@@ -425,9 +425,9 @@ files:
425
425
  type: agent
426
426
  size: 9866
427
427
  - path: development/agents/squad-creator.md
428
- hash: sha256:a7942dcbbe235784ebe9c3b69d1845c7ceed4c7519d33d77e9be8d585ebcd7d4
428
+ hash: sha256:b2d40ad818043acd04cb00eb2e5ff778498c65dc91bf81eb6675467fcd60c514
429
429
  type: agent
430
- size: 9943
430
+ size: 10367
431
431
  - path: development/agents/ux-design-expert.md
432
432
  hash: sha256:ce2f28bbd7350f1ca7d1b01ae26924928e496314afb551cafb55604233117954
433
433
  type: agent
@@ -505,9 +505,9 @@ files:
505
505
  type: script
506
506
  size: 9449
507
507
  - path: development/scripts/squad/index.js
508
- hash: sha256:dfbce334b3a0668f448dbaa7732a8827ade6a95ae15956da19c47d5eb92fa642
508
+ hash: sha256:e76b9c8be107210f33e7689bb8098e47e6970ce6816e6e9e4d0d5a948f7627f3
509
509
  type: script
510
- size: 1592
510
+ size: 2649
511
511
  - path: development/scripts/squad/README.md
512
512
  hash: sha256:55e0226c3baffe16fd24f3d19179326c43e8dc525697c0b5c972cf15825f7c14
513
513
  type: script
@@ -516,6 +516,10 @@ files:
516
516
  hash: sha256:101cbb7d6ded0d6f991b29ac63dfee2c7bb86cbc8c4fefef728b7d12c3352829
517
517
  type: script
518
518
  size: 29548
519
+ - path: development/scripts/squad/squad-downloader.js
520
+ hash: sha256:a62dd5d40ef24426ffdabdcbe0a0a3a7e7e2b1757eba9749a41d3fd4c0e690f8
521
+ type: script
522
+ size: 15335
519
523
  - path: development/scripts/squad/squad-generator.js
520
524
  hash: sha256:6d47ee7e0c662ffd7a8c5975ceca3e71addb54f59fb771d55402d0d57ce3d7d8
521
525
  type: script
@@ -524,6 +528,14 @@ files:
524
528
  hash: sha256:7093b9457c93da6845722bf7eac660164963d5007c459afae2149340a7979f1f
525
529
  type: script
526
530
  size: 10549
531
+ - path: development/scripts/squad/squad-migrator.js
532
+ hash: sha256:883899cb84117b66074004fb683ba5f9cefebc57eeb9758f79784e0a92afcd90
533
+ type: script
534
+ size: 19520
535
+ - path: development/scripts/squad/squad-publisher.js
536
+ hash: sha256:329c00fb9d1085675a319e8314a5be9e1ee92c617691c47041f58d994982e029
537
+ type: script
538
+ size: 18724
527
539
  - path: development/scripts/squad/squad-validator.js
528
540
  hash: sha256:a19af336adf8caaa79f98e52ab78aee57a9a0a0041f3c4b6c9663a321c0a7f64
529
541
  type: script
@@ -557,9 +569,9 @@ files:
557
569
  type: script
558
570
  size: 6348
559
571
  - path: development/tasks/add-mcp.md
560
- hash: sha256:a77a71c540241affac9219f3d19cecd052db84d5b430a4ad7820b6034b3b9ba6
572
+ hash: sha256:8a19ae5f343b68d7aace6a8400a18349fb7b4ebc92cecdab33e2a7f4f0d88512
561
573
  type: task
562
- size: 6559
574
+ size: 10205
563
575
  - path: development/tasks/advanced-elicitation.md
564
576
  hash: sha256:fbd55c3cbafb1336eafb8968c0f34035c2f352b22c45c150c7a327c7697438f9
565
577
  type: task
@@ -997,9 +1009,9 @@ files:
997
1009
  type: task
998
1010
  size: 4700
999
1011
  - path: development/tasks/setup-mcp-docker.md
1000
- hash: sha256:5acbcafde17dc8c9f020d47862fc4f72536c6d8a710d49c28856b515b5363230
1012
+ hash: sha256:2d81956e164d5e62f2e5be6b0c25d37b85fded3dc25a8393fb1cdc44d1dfbddc
1001
1013
  type: task
1002
- size: 14913
1014
+ size: 16304
1003
1015
  - path: development/tasks/setup-project-docs.md
1004
1016
  hash: sha256:61ddcbba5e7836480f65ad23ea2e8eb3f5347deff1e68610a2084b2c4a38b918
1005
1017
  type: task
@@ -1021,21 +1033,25 @@ files:
1021
1033
  type: task
1022
1034
  size: 12698
1023
1035
  - path: development/tasks/squad-creator-download.md
1024
- hash: sha256:48c364b2709229d24b5b517e6b9f6894aad82d37613f1631445e94d3c6e1c581
1036
+ hash: sha256:909088d7b585fbb8b465e0b0238ab49546c51876a6752a30f7bf7bf1bf22ef24
1025
1037
  type: task
1026
- size: 1503
1038
+ size: 3856
1027
1039
  - path: development/tasks/squad-creator-list.md
1028
1040
  hash: sha256:c0b52c5a8a79b3ed757789e633f42a5458bac18bbcf1aa544fc1f5295151b446
1029
1041
  type: task
1030
1042
  size: 6555
1043
+ - path: development/tasks/squad-creator-migrate.md
1044
+ hash: sha256:c0f669b2d490c698d7b448408019558ff02a46c5232c8e6ce58cd7b5131d4565
1045
+ type: task
1046
+ size: 8712
1031
1047
  - path: development/tasks/squad-creator-publish.md
1032
- hash: sha256:5bd5b1798dd375557b2279823b829973749d571b14b1ecb9a6e846b686b6bd96
1048
+ hash: sha256:f54cd24b45796ac9d3cee8876a1edca316f5560878201e828cad43d9e951ddc6
1033
1049
  type: task
1034
- size: 1905
1050
+ size: 4918
1035
1051
  - path: development/tasks/squad-creator-sync-synkra.md
1036
- hash: sha256:d9f82aab934080d7ab9cbee2077d8536d5221426e374ad57f8b5e96a6086b835
1052
+ hash: sha256:9e3cb982b6de771daf22788eb43d06bf7a197c32f15be4860946407b824ef150
1037
1053
  type: task
1038
- size: 1921
1054
+ size: 8633
1039
1055
  - path: development/tasks/squad-creator-validate.md
1040
1056
  hash: sha256:c07c44217e882cae387d849658e091046e32735a62f6d28e496b4eb042121b98
1041
1057
  type: task
@@ -30,11 +30,13 @@ AIOS uses Docker MCP Toolkit as the primary MCP infrastructure:
30
30
  | **playwright** | Browser automation, screenshots, web testing |
31
31
  | **desktop-commander** | Docker container operations via docker-gateway |
32
32
 
33
- ### Inside Docker Desktop (via desktop-commander)
33
+ ### Inside Docker Desktop (via docker-gateway)
34
+
34
35
  | MCP | Purpose |
35
36
  |-----|---------|
36
37
  | **EXA** | Web search, research, company/competitor analysis |
37
38
  | **Context7** | Library documentation lookup |
39
+ | **Apify** | Web scraping, Actors, social media data extraction |
38
40
 
39
41
  ## CRITICAL: Tool Selection Priority
40
42
 
@@ -106,11 +108,69 @@ mcp__docker-gateway__resolve-library-id
106
108
  mcp__docker-gateway__get-library-docs
107
109
  ```
108
110
 
111
+ ## Apify MCP Usage (via Docker)
112
+
113
+ ### Use Apify for:
114
+ 1. Searching Actors in Apify Store (web scrapers, automation tools)
115
+ 2. Running web scrapers for social media (Instagram, TikTok, LinkedIn, etc.)
116
+ 3. Extracting data from e-commerce sites
117
+ 4. Automated data collection from any website
118
+ 5. RAG-enabled web browsing for AI context
119
+
120
+ ### Access pattern (7 tools available):
121
+
122
+ ```text
123
+ mcp__docker-gateway__apify-slash-rag-web-browser # RAG-enabled web browsing
124
+ mcp__docker-gateway__search-actors # Search for Actors
125
+ mcp__docker-gateway__call-actor # Run an Actor
126
+ mcp__docker-gateway__fetch-actor-details # Get Actor info/schema
127
+ mcp__docker-gateway__get-actor-output # Get results from Actor run
128
+ mcp__docker-gateway__search-apify-docs # Search Apify documentation
129
+ mcp__docker-gateway__fetch-apify-docs # Fetch documentation page
130
+ ```
131
+
132
+ ### When to use Apify vs other tools:
133
+ | Task | Tool |
134
+ |------|------|
135
+ | General web search | EXA (`web_search_exa`) |
136
+ | Scrape specific website | Apify (`call-actor`) |
137
+ | Social media data extraction | Apify (use specialized Actors) |
138
+ | Library documentation | Context7 |
139
+
140
+ ---
141
+
109
142
  ## Rationale
110
143
 
111
144
  - **Native tools** execute on the LOCAL system (Windows/Mac/Linux)
112
145
  - **docker-gateway** executes inside Docker containers (Linux)
113
146
  - Using docker-gateway for local operations causes path mismatches and failures
114
147
  - Native tools are faster and more reliable for local file operations
115
- - EXA and Context7 run inside Docker for isolation and consistent environment
148
+ - EXA, Context7, and Apify run inside Docker for isolation and consistent environment
116
149
  - playwright runs directly for better browser integration with host system
150
+
151
+ ---
152
+
153
+ ## Known Issues
154
+
155
+ ### Docker MCP Secrets Bug (Dec 2025)
156
+
157
+ **Issue:** Docker MCP Toolkit's secrets store and template interpolation do not work properly. Credentials set via `docker mcp secret set` are NOT passed to containers.
158
+
159
+ **Symptoms:**
160
+ - `docker mcp tools ls` shows "(N prompts)" instead of "(N tools)"
161
+ - MCP server starts but fails authentication
162
+ - Verbose output shows `-e ENV_VAR` without values
163
+
164
+ **Workaround:** Edit `~/.docker/mcp/catalogs/docker-mcp.yaml` directly with hardcoded env values:
165
+ ```yaml
166
+ {mcp-name}:
167
+ env:
168
+ - name: API_TOKEN
169
+ value: 'actual-token-value'
170
+ ```
171
+
172
+ **Affected MCPs:** Any MCP requiring authentication (Apify, Notion, Slack, etc.)
173
+
174
+ **Working MCPs:** EXA works because its key is in `~/.docker/mcp/config.yaml` under `apiKeys`
175
+
176
+ For detailed instructions, see `*add-mcp` task or ask @devops for assistance.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aios-core",
3
- "version": "3.3.0",
3
+ "version": "3.5.0",
4
4
  "description": "Synkra AIOS: AI-Orchestrated System for Full Stack Development - Core Framework",
5
5
  "main": "index.js",
6
6
  "module": "index.esm.js",