aios-core 4.2.3 → 4.2.4
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.
- package/.aios-core/core/registry/service-registry.json +6466 -6586
- package/.aios-core/core-config.yaml +10 -5
- package/.aios-core/data/aios-kb.md +19 -25
- package/.aios-core/data/entity-registry.yaml +311 -204
- package/.aios-core/data/registry-update-log.jsonl +8 -0
- package/.aios-core/development/tasks/db-squad-integration.md +3 -3
- package/.aios-core/development/tasks/dev-develop-story.md +1 -1
- package/.aios-core/development/tasks/integrate-squad.md +1 -1
- package/.aios-core/development/tasks/pr-automation.md +3 -3
- package/.aios-core/development/tasks/squad-creator-migrate.md +1 -1
- package/.aios-core/development/tasks/squad-creator-sync-ide-command.md +0 -2
- package/.aios-core/development/tasks/update-aios.md +2 -2
- package/.aios-core/development/tasks/validate-next-story.md +2 -99
- package/.aios-core/development/workflows/README.md +0 -4
- package/.aios-core/docs/standards/AIOS-COLOR-PALETTE-V2.1.md +0 -1
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-COMPLETE.md +3 -3
- package/.aios-core/docs/standards/QUALITY-GATES-SPECIFICATION.md +1 -1
- package/.aios-core/docs/standards/STANDARDS-INDEX.md +4 -4
- package/.aios-core/docs/standards/STORY-TEMPLATE-V2-SPECIFICATION.md +2 -2
- package/.aios-core/framework-config.yaml +8 -4
- package/.aios-core/infrastructure/scripts/ide-sync/README.md +29 -5
- package/.aios-core/infrastructure/scripts/ide-sync/gemini-commands.js +205 -0
- package/.aios-core/infrastructure/scripts/ide-sync/index.js +48 -11
- package/.aios-core/infrastructure/scripts/ide-sync/redirect-generator.js +1 -1
- package/.aios-core/infrastructure/scripts/test-utilities.js +1 -1
- package/.aios-core/infrastructure/scripts/tool-resolver.js +2 -2
- package/.aios-core/infrastructure/scripts/validate-claude-integration.js +101 -0
- package/.aios-core/infrastructure/scripts/validate-codex-integration.js +141 -0
- package/.aios-core/infrastructure/scripts/validate-gemini-integration.js +151 -0
- package/.aios-core/infrastructure/scripts/validate-parity.js +119 -0
- package/.aios-core/infrastructure/templates/aios-sync.yaml.template +0 -11
- package/.aios-core/install-manifest.yaml +83 -71
- package/.aios-core/local-config.yaml.template +2 -1
- package/.aios-core/presets/README.md +0 -1
- package/.aios-core/product/data/integration-patterns.md +1 -1
- package/.aios-core/product/templates/ide-rules/gemini-rules.md +87 -233
- package/.aios-core/product/templates/statusline/statusline-script.js +188 -0
- package/.aios-core/product/templates/statusline/track-agent.sh +68 -0
- package/.aios-core/user-guide.md +14 -19
- package/LICENSE +0 -27
- package/README.md +42 -6
- package/bin/aios-init.js +98 -54
- package/bin/modules/env-config.js +0 -1
- package/package.json +18 -5
- package/packages/gemini-aios-extension/README.md +13 -8
- package/packages/gemini-aios-extension/commands/aios-agent.js +7 -0
- package/packages/gemini-aios-extension/commands/aios-agents.js +2 -1
- package/packages/gemini-aios-extension/commands/aios-analyst.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-architect.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-data-engineer.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-dev.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-devops.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-master.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-menu.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-pm.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-po.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-qa.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-sm.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-squad-creator.js +6 -0
- package/packages/gemini-aios-extension/commands/aios-ux-design-expert.js +6 -0
- package/packages/gemini-aios-extension/commands/lib/agent-launcher.js +138 -0
- package/packages/gemini-aios-extension/extension.json +70 -0
- package/packages/gemini-aios-extension/gemini-extension.json +147 -0
- package/packages/gemini-aios-extension/hooks/hooks.json +67 -65
- package/packages/installer/src/config/ide-configs.js +10 -10
- package/packages/installer/src/config/templates/core-config-template.js +6 -3
- package/packages/installer/src/wizard/ide-config-generator.js +373 -2
- package/packages/installer/src/wizard/ide-selector.js +1 -1
- package/scripts/code-intel-health-check.js +125 -125
- package/scripts/ensure-manifest.js +58 -0
- package/.aios-core/infrastructure/scripts/ide-sync/transformers/windsurf.js +0 -106
- package/.aios-core/product/templates/ide-rules/cline-rules.md +0 -84
- package/.aios-core/product/templates/ide-rules/roo-rules.md +0 -86
- package/.aios-core/product/templates/ide-rules/windsurf-rules.md +0 -80
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
const fs = require('fs');
|
|
5
|
+
const path = require('path');
|
|
6
|
+
const { spawnSync } = require('child_process');
|
|
7
|
+
|
|
8
|
+
const AGENT_INFO = {
|
|
9
|
+
'aios-master': { icon: '🧠', role: 'Master Orchestrator' },
|
|
10
|
+
analyst: { icon: '📊', role: 'Business Analyst' },
|
|
11
|
+
architect: { icon: '🏛️', role: 'System Architect' },
|
|
12
|
+
'data-engineer': { icon: '🗄️', role: 'Data Engineer' },
|
|
13
|
+
dev: { icon: '💻', role: 'Developer' },
|
|
14
|
+
devops: { icon: '🚀', role: 'DevOps' },
|
|
15
|
+
pm: { icon: '📋', role: 'Product Manager' },
|
|
16
|
+
po: { icon: '🎯', role: 'Product Owner' },
|
|
17
|
+
qa: { icon: '🧪', role: 'QA Engineer' },
|
|
18
|
+
sm: { icon: '🔄', role: 'Scrum Master' },
|
|
19
|
+
'squad-creator': { icon: '🛠️', role: 'Squad Creator' },
|
|
20
|
+
'ux-design-expert': { icon: '🎨', role: 'UX Expert' },
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
function listAvailableAgents(projectRoot = process.cwd()) {
|
|
24
|
+
const sourceDir = path.join(projectRoot, '.aios-core', 'development', 'agents');
|
|
25
|
+
if (!fs.existsSync(sourceDir)) return [];
|
|
26
|
+
return fs
|
|
27
|
+
.readdirSync(sourceDir)
|
|
28
|
+
.filter((f) => f.endsWith('.md') && !f.startsWith('_'))
|
|
29
|
+
.map((f) => f.replace('.md', ''))
|
|
30
|
+
.sort();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function commandNameForAgent(agentId) {
|
|
34
|
+
if (agentId.startsWith('aios-')) {
|
|
35
|
+
return `/aios-${agentId.replace(/^aios-/, '')}`;
|
|
36
|
+
}
|
|
37
|
+
return `/aios-${agentId}`;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function hasAgent(projectRoot, agentId) {
|
|
41
|
+
const canonical = path.join(projectRoot, '.aios-core', 'development', 'agents', `${agentId}.md`);
|
|
42
|
+
const gemini = path.join(projectRoot, '.gemini', 'rules', 'AIOS', 'agents', `${agentId}.md`);
|
|
43
|
+
return fs.existsSync(canonical) || fs.existsSync(gemini);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function renderGreeting(projectRoot, agentId) {
|
|
47
|
+
const scriptPath = path.join(projectRoot, '.aios-core', 'development', 'scripts', 'generate-greeting.js');
|
|
48
|
+
if (!fs.existsSync(scriptPath)) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const result = spawnSync('node', [scriptPath, agentId], {
|
|
53
|
+
cwd: projectRoot,
|
|
54
|
+
encoding: 'utf8',
|
|
55
|
+
timeout: 10000,
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
if (result.status !== 0) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return (result.stdout || '').trim() || null;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function buildActivationPrompt(agentId) {
|
|
66
|
+
return [
|
|
67
|
+
`Ative o agente ${agentId} usando .aios-core/development/agents/${agentId}.md`,
|
|
68
|
+
`(fallback: .gemini/rules/AIOS/agents/${agentId}.md),`,
|
|
69
|
+
`renderize o greeting via node .aios-core/development/scripts/generate-greeting.js ${agentId}`,
|
|
70
|
+
'e mantenha a persona ate *exit.',
|
|
71
|
+
].join(' ');
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function runAgentLauncher(agentId, projectRoot = process.cwd()) {
|
|
75
|
+
if (!agentId) {
|
|
76
|
+
console.log('Uso: /aios-agent <agent-id>');
|
|
77
|
+
return 1;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (!hasAgent(projectRoot, agentId)) {
|
|
81
|
+
const available = listAvailableAgents(projectRoot);
|
|
82
|
+
console.log(`❌ Agente não encontrado: ${agentId}`);
|
|
83
|
+
if (available.length > 0) {
|
|
84
|
+
console.log('\nAgentes disponíveis:');
|
|
85
|
+
for (const id of available) {
|
|
86
|
+
console.log(`- ${commandNameForAgent(id)}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return 1;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const info = AGENT_INFO[agentId] || { icon: '🤖', role: 'Agent' };
|
|
93
|
+
const activationPrompt = buildActivationPrompt(agentId);
|
|
94
|
+
const greeting = renderGreeting(projectRoot, agentId);
|
|
95
|
+
|
|
96
|
+
console.log(`${info.icon} AIOS Agent Selected: ${agentId}`);
|
|
97
|
+
console.log(`Role: ${info.role}`);
|
|
98
|
+
console.log('');
|
|
99
|
+
console.log('Activation Prompt (copy and send as your next message):');
|
|
100
|
+
console.log(activationPrompt);
|
|
101
|
+
|
|
102
|
+
if (greeting) {
|
|
103
|
+
console.log('\nGreeting Preview:');
|
|
104
|
+
console.log(greeting.split('\n').slice(0, 8).join('\n'));
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
return 0;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
function runAgentMenu(projectRoot = process.cwd()) {
|
|
111
|
+
const agents = listAvailableAgents(projectRoot);
|
|
112
|
+
|
|
113
|
+
console.log('🤖 AIOS Quick Agent Menu (Gemini)');
|
|
114
|
+
console.log('');
|
|
115
|
+
|
|
116
|
+
if (agents.length === 0) {
|
|
117
|
+
console.log('No AIOS agents found. Run: npm run sync:ide:gemini');
|
|
118
|
+
return 1;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
for (const id of agents) {
|
|
122
|
+
const info = AGENT_INFO[id] || { icon: '🤖', role: 'Agent' };
|
|
123
|
+
console.log(`${info.icon} ${commandNameForAgent(id)} (${info.role})`);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
console.log('\nTip: run /aios-<agent-id> to prepare activation prompt quickly.');
|
|
127
|
+
return 0;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
module.exports = {
|
|
131
|
+
AGENT_INFO,
|
|
132
|
+
listAvailableAgents,
|
|
133
|
+
hasAgent,
|
|
134
|
+
buildActivationPrompt,
|
|
135
|
+
commandNameForAgent,
|
|
136
|
+
runAgentLauncher,
|
|
137
|
+
runAgentMenu,
|
|
138
|
+
};
|
|
@@ -43,6 +43,76 @@
|
|
|
43
43
|
"name": "aios-validate",
|
|
44
44
|
"description": "Validate AIOS installation and skills",
|
|
45
45
|
"script": "commands/aios-validate.js"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "aios-menu",
|
|
49
|
+
"description": "Show AIOS quick agent menu for Gemini",
|
|
50
|
+
"script": "commands/aios-menu.js"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "aios-agent",
|
|
54
|
+
"description": "Prepare activation prompt for a specific AIOS agent (/aios-agent <id>)",
|
|
55
|
+
"script": "commands/aios-agent.js"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"name": "aios-master",
|
|
59
|
+
"description": "Quick launch aios-master agent",
|
|
60
|
+
"script": "commands/aios-master.js"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"name": "aios-analyst",
|
|
64
|
+
"description": "Quick launch analyst agent",
|
|
65
|
+
"script": "commands/aios-analyst.js"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"name": "aios-architect",
|
|
69
|
+
"description": "Quick launch architect agent",
|
|
70
|
+
"script": "commands/aios-architect.js"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"name": "aios-data-engineer",
|
|
74
|
+
"description": "Quick launch data-engineer agent",
|
|
75
|
+
"script": "commands/aios-data-engineer.js"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"name": "aios-dev",
|
|
79
|
+
"description": "Quick launch dev agent",
|
|
80
|
+
"script": "commands/aios-dev.js"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"name": "aios-devops",
|
|
84
|
+
"description": "Quick launch devops agent",
|
|
85
|
+
"script": "commands/aios-devops.js"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"name": "aios-pm",
|
|
89
|
+
"description": "Quick launch pm agent",
|
|
90
|
+
"script": "commands/aios-pm.js"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"name": "aios-po",
|
|
94
|
+
"description": "Quick launch po agent",
|
|
95
|
+
"script": "commands/aios-po.js"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"name": "aios-qa",
|
|
99
|
+
"description": "Quick launch qa agent",
|
|
100
|
+
"script": "commands/aios-qa.js"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"name": "aios-sm",
|
|
104
|
+
"description": "Quick launch sm agent",
|
|
105
|
+
"script": "commands/aios-sm.js"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"name": "aios-squad-creator",
|
|
109
|
+
"description": "Quick launch squad-creator agent",
|
|
110
|
+
"script": "commands/aios-squad-creator.js"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"name": "aios-ux-design-expert",
|
|
114
|
+
"description": "Quick launch ux-design-expert agent",
|
|
115
|
+
"script": "commands/aios-ux-design-expert.js"
|
|
46
116
|
}
|
|
47
117
|
],
|
|
48
118
|
"skills": [
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://geminicli.com/schemas/extension.json",
|
|
3
|
+
"name": "aios",
|
|
4
|
+
"displayName": "Synkra AIOS",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"description": "Multi-agent orchestration system for CLI-first development. Brings AIOS agents, hooks, and workflows to Gemini CLI.",
|
|
7
|
+
"author": "Synkra",
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "https://github.com/synkra/aios-core"
|
|
12
|
+
},
|
|
13
|
+
"engines": {
|
|
14
|
+
"gemini-cli": ">=0.26.0"
|
|
15
|
+
},
|
|
16
|
+
"capabilities": {
|
|
17
|
+
"hooks": true,
|
|
18
|
+
"skills": true,
|
|
19
|
+
"commands": true,
|
|
20
|
+
"mcp": false
|
|
21
|
+
},
|
|
22
|
+
"activation": {
|
|
23
|
+
"onStartup": true,
|
|
24
|
+
"conditions": [
|
|
25
|
+
{
|
|
26
|
+
"type": "fileExists",
|
|
27
|
+
"path": ".aios-core"
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
"commands": [
|
|
32
|
+
{
|
|
33
|
+
"name": "aios-status",
|
|
34
|
+
"description": "Show AIOS system status and provider info",
|
|
35
|
+
"script": "commands/aios-status.js"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"name": "aios-agents",
|
|
39
|
+
"description": "List available AIOS agents",
|
|
40
|
+
"script": "commands/aios-agents.js"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "aios-validate",
|
|
44
|
+
"description": "Validate AIOS installation and skills",
|
|
45
|
+
"script": "commands/aios-validate.js"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "aios-menu",
|
|
49
|
+
"description": "Show AIOS quick agent menu for Gemini",
|
|
50
|
+
"script": "commands/aios-menu.js"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "aios-agent",
|
|
54
|
+
"description": "Prepare activation prompt for a specific AIOS agent (/aios-agent <id>)",
|
|
55
|
+
"script": "commands/aios-agent.js"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"name": "aios-master",
|
|
59
|
+
"description": "Quick launch aios-master agent",
|
|
60
|
+
"script": "commands/aios-master.js"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"name": "aios-analyst",
|
|
64
|
+
"description": "Quick launch analyst agent",
|
|
65
|
+
"script": "commands/aios-analyst.js"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"name": "aios-architect",
|
|
69
|
+
"description": "Quick launch architect agent",
|
|
70
|
+
"script": "commands/aios-architect.js"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"name": "aios-data-engineer",
|
|
74
|
+
"description": "Quick launch data-engineer agent",
|
|
75
|
+
"script": "commands/aios-data-engineer.js"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"name": "aios-dev",
|
|
79
|
+
"description": "Quick launch dev agent",
|
|
80
|
+
"script": "commands/aios-dev.js"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"name": "aios-devops",
|
|
84
|
+
"description": "Quick launch devops agent",
|
|
85
|
+
"script": "commands/aios-devops.js"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"name": "aios-pm",
|
|
89
|
+
"description": "Quick launch pm agent",
|
|
90
|
+
"script": "commands/aios-pm.js"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"name": "aios-po",
|
|
94
|
+
"description": "Quick launch po agent",
|
|
95
|
+
"script": "commands/aios-po.js"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"name": "aios-qa",
|
|
99
|
+
"description": "Quick launch qa agent",
|
|
100
|
+
"script": "commands/aios-qa.js"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"name": "aios-sm",
|
|
104
|
+
"description": "Quick launch sm agent",
|
|
105
|
+
"script": "commands/aios-sm.js"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"name": "aios-squad-creator",
|
|
109
|
+
"description": "Quick launch squad-creator agent",
|
|
110
|
+
"script": "commands/aios-squad-creator.js"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"name": "aios-ux-design-expert",
|
|
114
|
+
"description": "Quick launch ux-design-expert agent",
|
|
115
|
+
"script": "commands/aios-ux-design-expert.js"
|
|
116
|
+
}
|
|
117
|
+
],
|
|
118
|
+
"skills": [
|
|
119
|
+
{
|
|
120
|
+
"name": "dev",
|
|
121
|
+
"path": "skills/dev.md",
|
|
122
|
+
"description": "Developer agent - code implementation"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"name": "architect",
|
|
126
|
+
"path": "skills/architect.md",
|
|
127
|
+
"description": "Architect agent - system design"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"name": "qa",
|
|
131
|
+
"path": "skills/qa.md",
|
|
132
|
+
"description": "QA agent - testing and quality"
|
|
133
|
+
}
|
|
134
|
+
],
|
|
135
|
+
"hooks": {
|
|
136
|
+
"configPath": "hooks/hooks.json"
|
|
137
|
+
},
|
|
138
|
+
"keywords": [
|
|
139
|
+
"aios",
|
|
140
|
+
"agents",
|
|
141
|
+
"orchestration",
|
|
142
|
+
"development",
|
|
143
|
+
"ai",
|
|
144
|
+
"claude",
|
|
145
|
+
"multi-agent"
|
|
146
|
+
]
|
|
147
|
+
}
|
|
@@ -1,68 +1,70 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://geminicli.com/schemas/hooks.json",
|
|
3
|
-
"
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
3
|
+
"hooks": {
|
|
4
|
+
"SessionStart": [
|
|
5
|
+
{
|
|
6
|
+
"matcher": "*",
|
|
7
|
+
"hooks": [
|
|
8
|
+
{
|
|
9
|
+
"name": "aios-session-init",
|
|
10
|
+
"type": "command",
|
|
11
|
+
"command": "node .aios-core/hooks/gemini/session-start.js",
|
|
12
|
+
"timeout": 5000
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"BeforeAgent": [
|
|
18
|
+
{
|
|
19
|
+
"matcher": "*",
|
|
20
|
+
"hooks": [
|
|
21
|
+
{
|
|
22
|
+
"name": "aios-context-inject",
|
|
23
|
+
"type": "command",
|
|
24
|
+
"command": "node .aios-core/hooks/gemini/before-agent.js",
|
|
25
|
+
"timeout": 3000
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"BeforeTool": [
|
|
31
|
+
{
|
|
32
|
+
"matcher": "write_file|replace|shell|bash|execute",
|
|
33
|
+
"hooks": [
|
|
34
|
+
{
|
|
35
|
+
"name": "aios-security-check",
|
|
36
|
+
"type": "command",
|
|
37
|
+
"command": "node .aios-core/hooks/gemini/before-tool.js",
|
|
38
|
+
"timeout": 2000
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"AfterTool": [
|
|
44
|
+
{
|
|
45
|
+
"matcher": "*",
|
|
46
|
+
"hooks": [
|
|
47
|
+
{
|
|
48
|
+
"name": "aios-audit-log",
|
|
49
|
+
"type": "command",
|
|
50
|
+
"command": "node .aios-core/hooks/gemini/after-tool.js",
|
|
51
|
+
"timeout": 2000
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
"SessionEnd": [
|
|
57
|
+
{
|
|
58
|
+
"matcher": "*",
|
|
59
|
+
"hooks": [
|
|
60
|
+
{
|
|
61
|
+
"name": "aios-session-persist",
|
|
62
|
+
"type": "command",
|
|
63
|
+
"command": "node .aios-core/hooks/gemini/session-end.js",
|
|
64
|
+
"timeout": 5000
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
}
|
|
68
70
|
}
|
|
@@ -28,8 +28,8 @@ const path = require('path');
|
|
|
28
28
|
* Synkra AIOS v4 supports 6 main IDEs:
|
|
29
29
|
* - Claude Code (Anthropic's official CLI) - Recommended
|
|
30
30
|
* - Codex CLI (OpenAI coding CLI)
|
|
31
|
+
* - Gemini CLI (Google AI coding CLI)
|
|
31
32
|
* - Cursor (AI-first code editor)
|
|
32
|
-
* - Windsurf (AI-powered development)
|
|
33
33
|
* - GitHub Copilot (GitHub's AI pair programmer)
|
|
34
34
|
* - AntiGravity (Google agentic platform)
|
|
35
35
|
*/
|
|
@@ -54,6 +54,15 @@ const IDE_CONFIGS = {
|
|
|
54
54
|
recommended: true,
|
|
55
55
|
agentFolder: path.join('.codex', 'agents'),
|
|
56
56
|
},
|
|
57
|
+
gemini: {
|
|
58
|
+
name: 'Gemini CLI',
|
|
59
|
+
description: '',
|
|
60
|
+
configFile: path.join('.gemini', 'rules.md'),
|
|
61
|
+
template: 'ide-rules/gemini-rules.md',
|
|
62
|
+
requiresDirectory: true,
|
|
63
|
+
format: 'text',
|
|
64
|
+
agentFolder: path.join('.gemini', 'rules', 'AIOS', 'agents'),
|
|
65
|
+
},
|
|
57
66
|
cursor: {
|
|
58
67
|
name: 'Cursor',
|
|
59
68
|
description: '',
|
|
@@ -63,15 +72,6 @@ const IDE_CONFIGS = {
|
|
|
63
72
|
format: 'text',
|
|
64
73
|
agentFolder: path.join('.cursor', 'rules'),
|
|
65
74
|
},
|
|
66
|
-
windsurf: {
|
|
67
|
-
name: 'Windsurf',
|
|
68
|
-
description: '',
|
|
69
|
-
configFile: '.windsurfrules',
|
|
70
|
-
template: 'ide-rules/windsurf-rules.md',
|
|
71
|
-
requiresDirectory: false,
|
|
72
|
-
format: 'text',
|
|
73
|
-
agentFolder: path.join('.windsurf', 'rules'),
|
|
74
|
-
},
|
|
75
75
|
'github-copilot': {
|
|
76
76
|
name: 'GitHub Copilot',
|
|
77
77
|
description: '',
|
|
@@ -51,11 +51,14 @@ function generateCoreConfig(options = {}) {
|
|
|
51
51
|
|
|
52
52
|
// IDE Configuration (from Story 1.4)
|
|
53
53
|
ide: {
|
|
54
|
-
selected: selectedIDEs.length > 0 ? selectedIDEs : ['
|
|
54
|
+
selected: selectedIDEs.length > 0 ? selectedIDEs : ['claude-code', 'codex'],
|
|
55
55
|
configs: {
|
|
56
|
-
vscode: selectedIDEs.includes('vscode') || selectedIDEs.length === 0,
|
|
56
|
+
vscode: selectedIDEs.includes('vscode') || selectedIDEs.length === 0, // Legacy compatibility
|
|
57
|
+
codex: selectedIDEs.includes('codex'),
|
|
58
|
+
gemini: selectedIDEs.includes('gemini'),
|
|
57
59
|
cursor: selectedIDEs.includes('cursor'),
|
|
58
|
-
|
|
60
|
+
'github-copilot': selectedIDEs.includes('github-copilot'),
|
|
61
|
+
antigravity: selectedIDEs.includes('antigravity'),
|
|
59
62
|
zed: selectedIDEs.includes('zed'),
|
|
60
63
|
'claude-desktop': selectedIDEs.includes('claude-desktop'),
|
|
61
64
|
'claude-code': selectedIDEs.includes('claude-code'),
|