@jaimevalasek/aioson 1.3.0 → 1.4.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.
- package/README.md +19 -2
- package/docs/pt/README.md +62 -2
- package/docs/pt/advisor-spec.md +5 -5
- package/docs/pt/agentes-customizados.md +670 -0
- package/docs/pt/agentes.md +111 -13
- package/docs/pt/automacao-squads.md +407 -0
- package/docs/pt/cenarios.md +3 -3
- package/docs/pt/clientes-ai.md +62 -0
- package/docs/pt/comandos-cli.md +167 -17
- package/docs/pt/deyvin.md +115 -0
- package/docs/pt/genome-3.0-spec.md +11 -11
- package/docs/pt/inicio-rapido.md +45 -0
- package/docs/pt/memoria-contexto.md +255 -0
- package/docs/pt/output-strategy-delivery.md +655 -0
- package/docs/pt/profiler-system.md +17 -17
- package/docs/pt/runtime-observability.md +5 -1
- package/docs/pt/skills.md +175 -0
- package/docs/pt/{squad-genoma.md → squad-genome.md} +81 -75
- package/docs/testing/genome-2.0-rollout.md +1 -1
- package/package.json +3 -3
- package/src/agents.js +21 -5
- package/src/backup-provider.js +303 -0
- package/src/cli.js +178 -2
- package/src/commands/agents.js +22 -4
- package/src/commands/backup.js +533 -0
- package/src/commands/cloud.js +17 -17
- package/src/commands/context-pack.js +45 -0
- package/src/commands/implementation-plan.js +340 -0
- package/src/commands/learning.js +134 -0
- package/src/commands/live.js +1583 -0
- package/src/commands/runtime.js +833 -2
- package/src/commands/scan-project.js +288 -24
- package/src/commands/setup-context.js +23 -0
- package/src/commands/skill.js +558 -0
- package/src/commands/squad-agent-create.js +788 -0
- package/src/commands/squad-doctor.js +51 -1
- package/src/commands/squad-investigate.js +261 -0
- package/src/commands/squad-learning.js +209 -0
- package/src/commands/squad-pipeline.js +247 -1
- package/src/commands/squad-plan.js +329 -0
- package/src/commands/squad-status.js +1 -1
- package/src/commands/squad-validate.js +57 -1
- package/src/commands/test-agents.js +6 -1
- package/src/commands/workflow-next.js +8 -1
- package/src/commands/workflow-status.js +250 -0
- package/src/constants.js +80 -16
- package/src/context-memory.js +837 -0
- package/src/context-writer.js +2 -0
- package/src/delivery-runner.js +319 -0
- package/src/genome-files.js +1 -1
- package/src/genome-format.js +1 -1
- package/src/i18n/messages/en.js +206 -7
- package/src/i18n/messages/es.js +123 -6
- package/src/i18n/messages/fr.js +122 -5
- package/src/i18n/messages/pt-BR.js +205 -12
- package/src/installer.js +30 -2
- package/src/lib/genomes/compat.js +1 -1
- package/src/runtime-store.js +780 -42
- package/src/session-handoff.js +77 -0
- package/template/.aioson/agents/analyst.md +36 -9
- package/template/.aioson/agents/architect.md +20 -5
- package/template/.aioson/agents/dev.md +135 -15
- package/template/.aioson/agents/deyvin.md +166 -0
- package/template/.aioson/agents/discovery-design-doc.md +25 -1
- package/template/.aioson/agents/{genoma.md → genome.md} +20 -20
- package/template/.aioson/agents/orache.md +371 -0
- package/template/.aioson/agents/orchestrator.md +37 -2
- package/template/.aioson/agents/pair.md +5 -0
- package/template/.aioson/agents/pm.md +17 -5
- package/template/.aioson/agents/product.md +58 -22
- package/template/.aioson/agents/profiler-enricher.md +1 -1
- package/template/.aioson/agents/profiler-forge.md +9 -9
- package/template/.aioson/agents/profiler-researcher.md +1 -1
- package/template/.aioson/agents/qa.md +17 -5
- package/template/.aioson/agents/setup.md +81 -5
- package/template/.aioson/agents/squad.md +675 -28
- package/template/.aioson/agents/ux-ui.md +277 -34
- package/template/.aioson/config.md +175 -0
- package/template/.aioson/context/spec.md.template +17 -0
- package/template/.aioson/genomes/.gitkeep +0 -0
- package/template/.aioson/installed-skills/.gitkeep +0 -0
- package/template/.aioson/locales/en/agents/analyst.md +26 -4
- package/template/.aioson/locales/en/agents/architect.md +10 -0
- package/template/.aioson/locales/en/agents/dev.md +89 -4
- package/template/.aioson/locales/en/agents/deyvin.md +129 -0
- package/template/.aioson/locales/en/agents/{genoma.md → genome.md} +14 -14
- package/template/.aioson/locales/en/agents/orchestrator.md +36 -2
- package/template/.aioson/locales/en/agents/pair.md +5 -0
- package/template/.aioson/locales/en/agents/pm.md +7 -0
- package/template/.aioson/locales/en/agents/product.md +35 -17
- package/template/.aioson/locales/en/agents/qa.md +7 -0
- package/template/.aioson/locales/en/agents/setup.md +51 -5
- package/template/.aioson/locales/en/agents/squad.md +203 -15
- package/template/.aioson/locales/en/agents/ux-ui.md +375 -35
- package/template/.aioson/locales/es/agents/analyst.md +16 -4
- package/template/.aioson/locales/es/agents/architect.md +10 -0
- package/template/.aioson/locales/es/agents/dev.md +70 -2
- package/template/.aioson/locales/es/agents/deyvin.md +89 -0
- package/template/.aioson/locales/es/agents/{genoma.md → genome.md} +13 -13
- package/template/.aioson/locales/es/agents/orache.md +103 -0
- package/template/.aioson/locales/es/agents/orchestrator.md +36 -2
- package/template/.aioson/locales/es/agents/pair.md +5 -0
- package/template/.aioson/locales/es/agents/pm.md +7 -0
- package/template/.aioson/locales/es/agents/product.md +13 -3
- package/template/.aioson/locales/es/agents/qa.md +7 -0
- package/template/.aioson/locales/es/agents/setup.md +28 -5
- package/template/.aioson/locales/es/agents/squad.md +221 -15
- package/template/.aioson/locales/es/agents/ux-ui.md +26 -25
- package/template/.aioson/locales/fr/agents/analyst.md +16 -4
- package/template/.aioson/locales/fr/agents/architect.md +10 -0
- package/template/.aioson/locales/fr/agents/dev.md +70 -2
- package/template/.aioson/locales/fr/agents/deyvin.md +89 -0
- package/template/.aioson/locales/fr/agents/{genoma.md → genome.md} +7 -7
- package/template/.aioson/locales/fr/agents/orache.md +104 -0
- package/template/.aioson/locales/fr/agents/orchestrator.md +36 -2
- package/template/.aioson/locales/fr/agents/pair.md +5 -0
- package/template/.aioson/locales/fr/agents/pm.md +7 -0
- package/template/.aioson/locales/fr/agents/product.md +13 -3
- package/template/.aioson/locales/fr/agents/qa.md +7 -0
- package/template/.aioson/locales/fr/agents/setup.md +28 -5
- package/template/.aioson/locales/fr/agents/squad.md +216 -10
- package/template/.aioson/locales/fr/agents/ux-ui.md +26 -25
- package/template/.aioson/locales/pt-BR/agents/analyst.md +26 -4
- package/template/.aioson/locales/pt-BR/agents/architect.md +10 -0
- package/template/.aioson/locales/pt-BR/agents/dev.md +93 -4
- package/template/.aioson/locales/pt-BR/agents/deyvin.md +129 -0
- package/template/.aioson/locales/pt-BR/agents/{genoma.md → genome.md} +49 -49
- package/template/.aioson/locales/pt-BR/agents/orache.md +137 -0
- package/template/.aioson/locales/pt-BR/agents/orchestrator.md +36 -2
- package/template/.aioson/locales/pt-BR/agents/pair.md +5 -0
- package/template/.aioson/locales/pt-BR/agents/pm.md +7 -0
- package/template/.aioson/locales/pt-BR/agents/product.md +35 -17
- package/template/.aioson/locales/pt-BR/agents/qa.md +7 -0
- package/template/.aioson/locales/pt-BR/agents/setup.md +51 -5
- package/template/.aioson/locales/pt-BR/agents/squad.md +486 -47
- package/template/.aioson/locales/pt-BR/agents/ux-ui.md +361 -22
- package/template/.aioson/my-agents/.gitkeep +0 -0
- package/template/.aioson/rules/.gitkeep +0 -0
- package/template/.aioson/rules/squad/.gitkeep +0 -0
- package/template/.aioson/rules/squad/README.md +50 -0
- package/template/.aioson/schemas/genome-meta.schema.json +1 -1
- package/template/.aioson/schemas/genome.schema.json +1 -1
- package/template/.aioson/schemas/squad-blueprint.schema.json +11 -0
- package/template/.aioson/schemas/squad-manifest.schema.json +257 -1
- package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +157 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +407 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +172 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +490 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +237 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +289 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +350 -0
- package/template/.aioson/skills/design/interface-design/SKILL.md +47 -0
- package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -0
- package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -0
- package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +71 -0
- package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -0
- package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -0
- package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +62 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -0
- package/template/.aioson/skills/design-system/SKILL.md +92 -0
- package/template/.aioson/skills/design-system/cognitive-core-ui.skill +0 -0
- package/template/.aioson/skills/design-system/components/SKILL.md +274 -0
- package/template/.aioson/skills/design-system/components/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/dashboards/SKILL.md +184 -0
- package/template/.aioson/skills/design-system/dashboards/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/foundations/SKILL.md +250 -0
- package/template/.aioson/skills/design-system/foundations/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/motion/SKILL.md +197 -0
- package/template/.aioson/skills/design-system/motion/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/patterns/SKILL.md +231 -0
- package/template/.aioson/skills/design-system/patterns/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/squad/SKILL.md +58 -0
- package/template/.aioson/skills/squad/domains/.gitkeep +0 -0
- package/template/.aioson/skills/squad/formats/.gitkeep +0 -0
- package/template/.aioson/skills/squad/patterns/.gitkeep +0 -0
- package/template/.aioson/skills/squad/references/.gitkeep +0 -0
- package/template/.aioson/tasks/implementation-plan.md +288 -0
- package/template/.aioson/tasks/squad-create.md +1 -1
- package/template/.aioson/tasks/squad-execution-plan.md +279 -0
- package/template/.aioson/tasks/squad-export.md +1 -1
- package/template/.aioson/tasks/squad-investigate.md +44 -0
- package/template/.aioson/tasks/squad-learning-review.md +44 -0
- package/template/.aioson/tasks/squad-output-config.md +177 -0
- package/template/.aioson/tasks/squad-validate.md +1 -1
- package/template/.claude/commands/aioson/agent/deyvin.md +5 -0
- package/template/.claude/commands/aioson/agent/discovery-design-doc.md +5 -0
- package/template/.claude/commands/aioson/agent/genome.md +5 -0
- package/template/.claude/commands/aioson/agent/product.md +5 -0
- package/template/.claude/commands/aioson/agent/profiler-enricher.md +5 -0
- package/template/.claude/commands/aioson/agent/profiler-forge.md +5 -0
- package/template/.claude/commands/aioson/agent/profiler-researcher.md +5 -0
- package/template/.claude/commands/aioson/agent/squad.md +5 -0
- package/template/.gemini/GEMINI.md +2 -0
- package/template/.gemini/commands/aios-deyvin.toml +6 -0
- package/template/.gemini/commands/aios-pair.toml +6 -0
- package/template/AGENTS.md +34 -6
- package/template/CLAUDE.md +31 -4
- package/template/OPENCODE.md +6 -2
- package/template/squad-searches/.gitkeep +0 -0
- package/template/.aioson/skills/static/interface-design.md +0 -372
- package/template/.aioson/skills/static/premium-command-center-ui.md +0 -190
- /package/template/.aioson/{genomas → docs}/.gitkeep +0 -0
- /package/template/.claude/commands/aioson/{analyst.md → agent/analyst.md} +0 -0
- /package/template/.claude/commands/aioson/{architect.md → agent/architect.md} +0 -0
- /package/template/.claude/commands/aioson/{dev.md → agent/dev.md} +0 -0
- /package/template/.claude/commands/aioson/{orchestrator.md → agent/orchestrator.md} +0 -0
- /package/template/.claude/commands/aioson/{pm.md → agent/pm.md} +0 -0
- /package/template/.claude/commands/aioson/{qa.md → agent/qa.md} +0 -0
- /package/template/.claude/commands/aioson/{setup.md → agent/setup.md} +0 -0
- /package/template/.claude/commands/aioson/{ux-ui.md → agent/ux-ui.md} +0 -0
|
@@ -19,6 +19,8 @@ module.exports = {
|
|
|
19
19
|
help_agent_prompt:
|
|
20
20
|
'aioson agent:prompt <agent> [path] [--tool=codex|claude|gemini|opencode] [--lang=en|pt-BR|es|fr] [--locale=pt-BR]',
|
|
21
21
|
help_context_validate: 'aioson context:validate [path] [--json] [--locale=pt-BR]',
|
|
22
|
+
help_context_pack:
|
|
23
|
+
'aioson context:pack [path] [--agent=<agente>] [--goal=<texto>] [--module=<modulo-ou-pasta>] [--max-files=8] [--json] [--locale=pt-BR]',
|
|
22
24
|
help_setup_context:
|
|
23
25
|
'aioson setup:context [path] [--defaults] [--project-type=web_app|api|site|script|dapp] [--framework=<name>] [--backend=<name>] [--frontend=<name>] [--database=<name>] [--auth=<name>] [--uiux=<name>] [--language=pt-BR] [--web3-enabled=true|false] [--locale=pt-BR]',
|
|
24
26
|
help_locale_apply:
|
|
@@ -32,7 +34,9 @@ module.exports = {
|
|
|
32
34
|
help_workflow_plan:
|
|
33
35
|
'aioson workflow:plan [path] [--classification=MICRO|SMALL|MEDIUM] [--json] [--locale=pt-BR]',
|
|
34
36
|
help_workflow_next:
|
|
35
|
-
'aioson workflow:next [path] [--complete[=<agente>]] [--agent=<agente>] [--skip=<agente>] [--tool=codex|claude|gemini|opencode] [--json] [--locale=pt-BR]',
|
|
37
|
+
'aioson workflow:next [path] [--complete[=<agente>]] [--agent=<agente>] [--skip=<agente>] [--status] [--tool=codex|claude|gemini|opencode] [--json] [--locale=pt-BR]',
|
|
38
|
+
help_workflow_status:
|
|
39
|
+
'aioson workflow:status [path] [--json] [--locale=pt-BR]',
|
|
36
40
|
help_parallel_init:
|
|
37
41
|
'aioson parallel:init [path] [--workers=2..6] [--force] [--dry-run] [--json] [--locale=pt-BR]',
|
|
38
42
|
help_parallel_doctor:
|
|
@@ -56,7 +60,7 @@ module.exports = {
|
|
|
56
60
|
help_qa_report:
|
|
57
61
|
'aioson qa:report [path] [--html] [--json] [--locale=pt-BR]',
|
|
58
62
|
help_scan_project:
|
|
59
|
-
'aioson scan:project [path] --folder=<pasta[,pasta2]> [--summary-mode=titles|summaries|raw] [--with-llm] [--provider=<name>] [--llm-model=<name>] [--dry-run] [--json] [--locale=pt-BR]',
|
|
63
|
+
'aioson scan:project [path] --folder=<pasta[,pasta2]> [--summary-mode=titles|summaries|raw] [--context-mode=merge|rewrite] [--with-llm] [--provider=<name>] [--llm-model=<name>] [--dry-run] [--json] [--locale=pt-BR]',
|
|
60
64
|
help_config:
|
|
61
65
|
'aioson config <set KEY=value|show|get KEY> [--json] [--locale=pt-BR]',
|
|
62
66
|
help_genome_doctor:
|
|
@@ -75,6 +79,14 @@ module.exports = {
|
|
|
75
79
|
'aioson squad:export [path] --squad=<slug> [--locale=pt-BR]',
|
|
76
80
|
help_squad_pipeline:
|
|
77
81
|
'aioson squad:pipeline [path] [--sub=list|show|status] [--pipeline=<slug>] [--locale=pt-BR]',
|
|
82
|
+
help_squad_agent_create:
|
|
83
|
+
'aioson squad:agent-create [path] --name=<nome> [--scope=my-agents|squad] [--squad=<slug>] [--type=agent|assistant|clone|worker] [--tier=0|1|2|3] [--disc=<perfil>] [--mission=<texto>] [--domain=<texto>] [--specialist=<nome>] [--with-infra] [--locale=pt-BR]',
|
|
84
|
+
help_squad_investigate:
|
|
85
|
+
'aioson squad:investigate [path] [--sub=list|show|score|link|register] [--investigation=<slug>] [--squad=<slug>] [--locale=pt-BR]',
|
|
86
|
+
help_squad_learning:
|
|
87
|
+
'aioson squad:learning [path] [--sub=list|stats|archive|promote|export] [--squad=<slug>] [--status=<status>] [--locale=pt-BR]',
|
|
88
|
+
help_learning:
|
|
89
|
+
'aioson learning [path] [--sub=list|stats|promote] [--status=<status>] [--id=<learning-id>] [--locale=pt-BR]',
|
|
78
90
|
help_runtime_init:
|
|
79
91
|
'aioson runtime:init [path] [--json] [--locale=pt-BR]',
|
|
80
92
|
help_runtime_ingest:
|
|
@@ -97,6 +109,36 @@ module.exports = {
|
|
|
97
109
|
'aioson runtime:status [path] [--json] [--locale=pt-BR]',
|
|
98
110
|
help_runtime_log:
|
|
99
111
|
'aioson runtime:log [path] --agent=<nome> --message=<texto> [--type=<evento>] [--finish] [--status=completed|failed] [--summary=<texto>] [--title=<titulo-task>] [--json] [--locale=pt-BR]',
|
|
112
|
+
help_runtime_session_start:
|
|
113
|
+
'aioson runtime:session:start [path] --agent=<nome> [--title=<texto>] [--message=<texto>] [--session=<chave>] [--json] [--locale=pt-BR]',
|
|
114
|
+
help_runtime_session_log:
|
|
115
|
+
'aioson runtime:session:log [path] --agent=<nome> --message=<texto> [--type=<evento>] [--title=<texto>] [--json] [--locale=pt-BR]',
|
|
116
|
+
help_runtime_session_finish:
|
|
117
|
+
'aioson runtime:session:finish [path] --agent=<nome> [--message=<texto>] [--summary=<texto>] [--status=completed|failed] [--json] [--locale=pt-BR]',
|
|
118
|
+
help_runtime_session_status:
|
|
119
|
+
'aioson runtime:session:status [path] --agent=<nome> [--limit=8] [--watch=2] [--json] [--locale=pt-BR]',
|
|
120
|
+
help_runtime_emit:
|
|
121
|
+
'aioson runtime:emit [path] --agent=<nome> [--type=<evento>] [--summary=<texto>] [--title=<texto>] [--refs=<arquivo[,arquivo2]>] [--plan-step=<id>] [--meta=<json>] [--json] [--locale=pt-BR]',
|
|
122
|
+
help_live_start:
|
|
123
|
+
'aioson live:start [path] --tool=codex|claude|gemini|opencode --agent=<nome> [--tool-bin=<binario>] [--tool-args=<args>] [--title=<texto>] [--goal=<texto>] [--plan=<arquivo>] [--session=<chave>] [--message=<texto>] [--attach] [--no-launch] [--json] [--locale=pt-BR]',
|
|
124
|
+
help_live_status:
|
|
125
|
+
'aioson live:status [path] [--agent=<nome>] [--limit=8] [--watch=2] [--json] [--locale=pt-BR]',
|
|
126
|
+
help_live_handoff:
|
|
127
|
+
'aioson live:handoff [path] --agent=<nome> --to=<nome> [--reason=<texto>] [--summary=<texto>] [--message=<texto>] [--json] [--locale=pt-BR]',
|
|
128
|
+
help_live_close:
|
|
129
|
+
'aioson live:close [path] [--agent=<nome>] [--summary=<texto>] [--message=<texto>] [--status=completed|failed] [--json] [--locale=pt-BR]',
|
|
130
|
+
help_live_list:
|
|
131
|
+
'aioson live:list [path] [--json] [--locale=pt-BR]',
|
|
132
|
+
help_runtime_backup:
|
|
133
|
+
'aioson runtime:backup [caminho] [--tables=tasks,runs,...] [--force] [--dry-run] [--json] [--locale=pt-BR]',
|
|
134
|
+
help_runtime_restore:
|
|
135
|
+
'aioson runtime:restore [caminho] [--tables=tasks,runs,...] [--dry-run] [--json] [--locale=pt-BR]',
|
|
136
|
+
help_skill_install:
|
|
137
|
+
'aioson skill:install [caminho] --slug=<nome> [--from=npm|cloud|./caminho] [--force] [--json] [--locale=pt-BR]',
|
|
138
|
+
help_skill_list:
|
|
139
|
+
'aioson skill:list [caminho] [--json] [--locale=pt-BR]',
|
|
140
|
+
help_skill_remove:
|
|
141
|
+
'aioson skill:remove [caminho] --slug=<nome> [--json] [--locale=pt-BR]',
|
|
100
142
|
help_cloud_import_squad:
|
|
101
143
|
'aioson cloud:import:squad [path] --url=<snapshot-url> [--force] [--snapshots-only] [--dry-run] [--json] [--locale=pt-BR]',
|
|
102
144
|
help_cloud_import_genome:
|
|
@@ -117,12 +159,12 @@ module.exports = {
|
|
|
117
159
|
url_required: 'Informe --url com o endpoint JSON do snapshot do squad.',
|
|
118
160
|
import_squad_dry_run: 'Dry run: squad {slug}@{version} pronto para import cloud.',
|
|
119
161
|
import_squad_done: 'Snapshot do squad {slug}@{version} importado.',
|
|
120
|
-
import_genome_dry_run: 'Dry run:
|
|
121
|
-
import_genome_done: 'Snapshot do
|
|
162
|
+
import_genome_dry_run: 'Dry run: genome {slug}@{version} pronto para import cloud.',
|
|
163
|
+
import_genome_done: 'Snapshot do genome {slug}@{version} importado.',
|
|
122
164
|
publish_squad_dry_run: 'Dry run: squad {slug}@{version} pronto para publish cloud.',
|
|
123
165
|
publish_squad_done: 'Squad {slug}@{version} publicado no cloud.',
|
|
124
|
-
publish_genome_dry_run: 'Dry run:
|
|
125
|
-
publish_genome_done: '
|
|
166
|
+
publish_genome_dry_run: 'Dry run: genome {slug}@{version} pronto para publish cloud.',
|
|
167
|
+
publish_genome_done: 'Genome {slug}@{version} publicado no cloud.'
|
|
126
168
|
},
|
|
127
169
|
init: {
|
|
128
170
|
usage_error:
|
|
@@ -152,7 +194,7 @@ module.exports = {
|
|
|
152
194
|
existing_project_detected:
|
|
153
195
|
'⚠ Projeto existente detectado ({count} arquivos). Rode o scanner antes de comecar:',
|
|
154
196
|
existing_project_scan_hint:
|
|
155
|
-
' aioson scan:project --folder=src (gera
|
|
197
|
+
' aioson scan:project . --folder=src --with-llm --provider=<provider> (gera discovery.md + skeleton-system.md; sem --with-llm gera apenas os mapas locais)'
|
|
156
198
|
},
|
|
157
199
|
update: {
|
|
158
200
|
not_installed: 'Nenhuma instalacao do AIOSON encontrada em {targetDir}.',
|
|
@@ -255,7 +297,7 @@ module.exports = {
|
|
|
255
297
|
active_path: 'Caminho ativo',
|
|
256
298
|
depends: 'Depende de',
|
|
257
299
|
output: 'Saida',
|
|
258
|
-
agent_line: '- Agente: {command} ({id})',
|
|
300
|
+
agent_line: '- Agente: {label} - {command} ({id})',
|
|
259
301
|
path_line: ' Caminho: {path}',
|
|
260
302
|
active_path_line: ' Caminho ativo: {path}',
|
|
261
303
|
depends_line: ' Depende de: {value}',
|
|
@@ -281,6 +323,13 @@ module.exports = {
|
|
|
281
323
|
issue_line: '- {issue}',
|
|
282
324
|
valid: 'O arquivo de contexto esta valido.'
|
|
283
325
|
},
|
|
326
|
+
context_pack: {
|
|
327
|
+
generated: 'Context pack escrito em: {path}',
|
|
328
|
+
no_matches: 'Nenhum arquivo de contexto relevante foi selecionado ainda. Gere setup/contexto/scan antes de empacotar.',
|
|
329
|
+
selected_title: 'Arquivos incluidos no pack:',
|
|
330
|
+
selected_line: ' {index}. {path} — {reason}',
|
|
331
|
+
hint_use: 'Use {path} como contexto minimo inicial na sua sessao de IA.'
|
|
332
|
+
},
|
|
284
333
|
setup_context: {
|
|
285
334
|
detected: 'Framework detectado: {framework} (installed={installed})',
|
|
286
335
|
q_project_name: 'Nome do projeto',
|
|
@@ -746,7 +795,38 @@ module.exports = {
|
|
|
746
795
|
status_active_task_line: '- {task} | squad: {squad} | status: {status} | trabalho: {title}',
|
|
747
796
|
status_no_active: 'Nenhuma execucao ativa de agente.',
|
|
748
797
|
status_active_title: 'Execucoes ativas:',
|
|
749
|
-
status_active_line: '- {agent} | squad: {squad} | status: {status} | trabalho: {title}'
|
|
798
|
+
status_active_line: '- {agent} | squad: {squad} | status: {status} | trabalho: {title}',
|
|
799
|
+
status_live_sessions_title: 'Sessoes vivas ativas:',
|
|
800
|
+
status_live_session_line: '- {task} | agente: {agent} | status: {status} | plano: {plan} | micro: {micro} | handoffs: {handoffs} | trabalho: {title}',
|
|
801
|
+
status_micro_tasks_title: 'Micro-tarefas ativas:',
|
|
802
|
+
status_micro_task_line: '- {task} | pai: {parent} | status: {status} | trabalho: {title}',
|
|
803
|
+
status_handoffs_title: 'Handoffs recentes:',
|
|
804
|
+
status_handoff_line: '- {created} | {from} -> {to} | sessao: {session} | {message}'
|
|
805
|
+
},
|
|
806
|
+
live: {
|
|
807
|
+
unsupported_tool: 'Ferramenta live nao suportada: {tool}. Ferramentas suportadas: {supported}',
|
|
808
|
+
plan_not_found: 'Arquivo de plano nao encontrado: {plan}',
|
|
809
|
+
no_active_session: 'Nenhuma sessao live ativa encontrada para {agent}.',
|
|
810
|
+
session_not_active: 'A sessao live de {agent} nao esta ativa.',
|
|
811
|
+
json_requires_no_launch: '--json requer --no-launch para live:start porque o lancamento em primeiro plano e interativo.',
|
|
812
|
+
tool_binary_not_found: 'Binario da ferramenta nao encontrado no PATH: {binary}',
|
|
813
|
+
tool_mismatch: 'A sessao ativa usa a ferramenta "{existing}" mas --tool={requested} foi informado. Encerre a sessao primeiro ou use a mesma ferramenta.',
|
|
814
|
+
micro_task_already_open: 'Uma micro-tarefa live ja esta aberta para {agent}. Emita task_completed antes de task_started novamente.',
|
|
815
|
+
handoff_same_agent: 'live:handoff requer valores diferentes para --agent e --to.',
|
|
816
|
+
handoff_agent_mismatch: 'Nenhuma sessao live ativa encontrada para {agent}.',
|
|
817
|
+
watch_json_conflict: '--watch nao pode ser combinado com --json.',
|
|
818
|
+
no_session_found: 'Nenhuma sessao live encontrada.',
|
|
819
|
+
no_session_for_agent: 'Nenhuma sessao live encontrada para {agent}.',
|
|
820
|
+
session_already_closed: 'A sessao live {session} ja esta encerrada.',
|
|
821
|
+
session_already_active: 'Sessao live ja ativa: {agent} | sessao: {session} | run: {runKey} ({dbPath})',
|
|
822
|
+
session_started: 'Sessao live iniciada: {agent} | ferramenta: {tool} | sessao: {session} ({dbPath})',
|
|
823
|
+
event_recorded: 'Evento live registrado: {agent} | {eventType} | {session} ({dbPath})',
|
|
824
|
+
handoff_recorded: 'Handoff live registrado: {from} -> {to} | {session} ({dbPath})',
|
|
825
|
+
session_closed: 'Sessao live encerrada: {agent} | {session} ({dbPath})',
|
|
826
|
+
process_dead_warning: 'O processo morreu enquanto a sessao live ainda esta aberta. Encerre manualmente com `aioson live:close . --status=failed`.',
|
|
827
|
+
list_title: 'Sessoes live ({count}):',
|
|
828
|
+
list_empty: 'Nenhuma sessao live encontrada.',
|
|
829
|
+
list_line: '- {session} | {agent} | {tool} | {phase} | {updatedAt}'
|
|
750
830
|
},
|
|
751
831
|
squad_status: {
|
|
752
832
|
no_squad: 'Nenhum squad encontrado.',
|
|
@@ -761,7 +841,18 @@ module.exports = {
|
|
|
761
841
|
sessions: ' Sessoes : {count} ({path})',
|
|
762
842
|
latest_html: ' Latest HTML : {value}',
|
|
763
843
|
logs: ' Logs : {count} ({path})',
|
|
764
|
-
genomes: '
|
|
844
|
+
genomes: ' Genomes : {count} no squad / {agent_count} vinculos por agente'
|
|
845
|
+
},
|
|
846
|
+
squad_agent_create: {
|
|
847
|
+
no_name: 'Uso: aioson squad:agent-create [path] --name=<nome-agente> [--type=agent|assistant|clone|worker] [--scope=my-agents|squad] [--squad=<slug>]',
|
|
848
|
+
invalid_scope: 'Escopo inválido: "{scope}". Use "my-agents" ou "squad".',
|
|
849
|
+
invalid_type: 'Tipo inválido: "{type}". Use: agent, assistant, clone, worker.',
|
|
850
|
+
invalid_tier: 'Tier inválido: "{tier}". Use: 0 (foundation), 1 (master), 2 (systematizer), 3 (specialist).',
|
|
851
|
+
invalid_disc: 'Perfil DISC inválido: "{disc}".',
|
|
852
|
+
no_squads: 'Nenhuma squad encontrada. Crie uma squad com @squad ou forneça --squad=<slug>.',
|
|
853
|
+
squad_required: '--squad=<slug> obrigatório quando scope é "squad".',
|
|
854
|
+
squad_not_found: 'Squad "{squad}" não encontrada.',
|
|
855
|
+
already_exists: 'Agente já existe: {path}'
|
|
765
856
|
},
|
|
766
857
|
squad_doctor: {
|
|
767
858
|
prefix_ok: 'OK',
|
|
@@ -786,6 +877,19 @@ module.exports = {
|
|
|
786
877
|
scanning: 'aioson scan:project — escaneando {dir}',
|
|
787
878
|
folder_required:
|
|
788
879
|
'Informe --folder=<pasta[,pasta2]> para gerar o mapa completo das pastas desejadas. Exemplo: --folder=src ou --folder=app.',
|
|
880
|
+
folder_required_examples_title: '\x1b[33mGuia rapido:\x1b[0m',
|
|
881
|
+
folder_required_example_local:
|
|
882
|
+
' Mapas locais : aioson scan:project . --folder=src',
|
|
883
|
+
folder_required_example_multi:
|
|
884
|
+
' Varias pastas : aioson scan:project . --folder=src,app',
|
|
885
|
+
folder_required_example_llm:
|
|
886
|
+
' API automatica : aioson scan:project . --folder=src --with-llm --provider=openai',
|
|
887
|
+
folder_required_example_cli:
|
|
888
|
+
' Sem API LLM : aioson scan:project . --folder=src -> depois execute @analyst no seu Codex/Claude/Gemini',
|
|
889
|
+
folder_required_example_prompt:
|
|
890
|
+
' Prompt pronto : aioson agent:prompt analyst --tool=codex',
|
|
891
|
+
folder_required_example_next:
|
|
892
|
+
' Workflow apos scan completo: @analyst -> @architect -> @dev',
|
|
789
893
|
folder_not_found: 'A pasta "{folder}" nao foi encontrada neste projeto. Pastas de nivel superior detectadas: {available}',
|
|
790
894
|
config_missing: '{file} nao encontrado. Para usar o modo com LLM, copie aioson-models.json e preencha suas chaves de API.',
|
|
791
895
|
config_invalid: 'JSON invalido em aioson-models.json: {error}',
|
|
@@ -795,6 +899,10 @@ module.exports = {
|
|
|
795
899
|
context_found: ' Contexto : project.context.md encontrado',
|
|
796
900
|
context_missing: ' Contexto : project.context.md nao encontrado (execute aioson setup:context primeiro)',
|
|
797
901
|
spec_found: ' Spec : spec.md encontrado — memoria de desenvolvimento incluida',
|
|
902
|
+
existing_discovery_found: ' Contexto : discovery.md existente encontrado em {path}',
|
|
903
|
+
existing_skeleton_found: ' Contexto : skeleton-system.md existente encontrado em {path}',
|
|
904
|
+
context_update_mode: ' Modo : update/merge do contexto existente ativado para discovery.md + skeleton-system.md',
|
|
905
|
+
context_mode: ' Contexto : context-mode={mode} (padrao recomendado para brownfield: merge)',
|
|
798
906
|
local_only: ' LLM : desativada por padrao — scan local apenas (use --with-llm para gerar discovery.md + skeleton-system.md)',
|
|
799
907
|
walking: ' Escaneando estrutura do projeto...',
|
|
800
908
|
walk_done: ' Arquivos : {files} entradas mapeadas | Arquivos chave: {keys} lidos',
|
|
@@ -802,17 +910,102 @@ module.exports = {
|
|
|
802
910
|
folders_written: ' Pastas : mapa de pastas escrito em {path}',
|
|
803
911
|
folder_written: ' Pasta : mapa completo de {folder} escrito em {path}',
|
|
804
912
|
forge_written: ' AIOS : mapa util do .aioson escrito em {path}',
|
|
913
|
+
memory_index_written: ' Memoria : memory-index.md escrito em {path}',
|
|
914
|
+
spec_current_written: ' Memoria : spec-current.md escrito em {path}',
|
|
915
|
+
spec_history_written: ' Memoria : spec-history.md escrito em {path}',
|
|
916
|
+
module_memory_written: ' Modulo : memoria focada de {folder} escrita em {path}',
|
|
805
917
|
dry_run_done: '[dry-run] Escanearia {treeCount} entradas e {keyCount} arquivos chave — nenhuma chamada LLM feita.',
|
|
806
918
|
local_done: ' Resultado: scan local concluido — index, mapa de pastas, scans solicitados e .aioson estao prontos.',
|
|
919
|
+
local_missing: ' Falta : discovery.md + skeleton-system.md ainda nao foram gerados neste scan local.',
|
|
920
|
+
architecture_note: ' Nota : architecture.md nao e gerado pelo scan:project; esse arquivo vem depois com @architect.',
|
|
921
|
+
local_paths_title: '\n\x1b[33m Como gerar o discovery agora:\x1b[0m',
|
|
922
|
+
local_path_api: ' \x1b[32mCaminho A — API automatica\x1b[0m',
|
|
807
923
|
calling_llm: ' Chamando {provider} ({model})...',
|
|
808
924
|
llm_missing_api_key:
|
|
809
925
|
'A chave de API do provider "{provider}" ainda nao foi configurada em {file}. Preencha providers.{provider}.api_key ou escolha outro provider com --provider=...',
|
|
810
926
|
llm_error: 'Chamada LLM falhou: {error}',
|
|
927
|
+
gitignore_policy_written:
|
|
928
|
+
' Gitignore: politica do AIOSON atualizada em {path} para ignorar arquivos gerenciados do framework',
|
|
929
|
+
gitignore_tracked_note:
|
|
930
|
+
' Gitignore: se esses arquivos ja estavam rastreados pelo Git antes, ainda sera preciso remover do indice uma vez com git rm --cached para eles pararem de aparecer no status',
|
|
931
|
+
invalid_llm_output_discovery_empty:
|
|
932
|
+
'A LLM retornou discovery.md vazio. Nenhum arquivo existente foi sobrescrito. Mantenha o backup atual e tente um modelo mais forte ou menos pastas por execucao.',
|
|
933
|
+
invalid_llm_output_skeleton_empty:
|
|
934
|
+
'A LLM retornou skeleton-system.md vazio apos o delimitador. Nenhum arquivo existente foi sobrescrito. Tente novamente com um modelo mais forte ou um escopo menor.',
|
|
935
|
+
gitignore_backups_written: ' Gitignore: backup local garantido em {path}',
|
|
936
|
+
backups_written: ' Backup : {count} arquivo(s) salvo(s) em {path}',
|
|
811
937
|
discovery_written: 'discovery.md escrito: {path} ({chars} chars)',
|
|
812
938
|
skeleton_written: 'skeleton-system.md escrito: {path} ({chars} chars)',
|
|
813
939
|
skeleton_missing: 'Delimitador skeleton nao encontrado na resposta LLM — skeleton-system.md nao escrito.',
|
|
940
|
+
local_next_steps: ' 1. Rode: aioson scan:project {target} --folder={folders} --with-llm --provider=<provider>',
|
|
941
|
+
local_path_cli: ' \x1b[36mCaminho B — Seu AI CLI (sem API no aioson)\x1b[0m',
|
|
942
|
+
local_cli_step_analyst: ' 2. No Codex, Claude Code ou outro cliente, execute @analyst — ele pode usar scan-index.md + scan-folders.md + scan-<pasta>.md para escrever discovery.md',
|
|
943
|
+
local_cli_step_prompt_codex: ' 3. Se o cliente nao entender @analyst, gere um prompt pronto: aioson agent:prompt analyst --tool=codex',
|
|
944
|
+
local_cli_step_prompt_claude: ' 4. Troque --tool=codex por --tool=claude ou --tool=gemini quando necessario',
|
|
945
|
+
local_cli_step_model_hint: ' 5. Se seu cliente permitir escolher modelo, prefira um modelo rapido/barato para esta etapa de discovery',
|
|
946
|
+
local_workflow_title: '\n\x1b[33m Depois do discovery:\x1b[0m',
|
|
947
|
+
local_step_architect: ' 3. Execute @architect — gera architecture.md a partir do discovery consolidado',
|
|
948
|
+
local_step_dev: ' 4. Execute @dev — use codigo somente depois de discovery.md + architecture.md estarem prontos',
|
|
814
949
|
next_steps: '\n Proximos passos:',
|
|
815
|
-
step_analyst: ' 1. Abra sua sessao de IA e execute @analyst —
|
|
816
|
-
|
|
950
|
+
step_analyst: ' 1. Abra sua sessao de IA e execute @analyst — revisa discovery.md + skeleton-system.md e consolida o escopo atual',
|
|
951
|
+
step_architect: ' 2. Execute @architect — gera architecture.md a partir do discovery consolidado',
|
|
952
|
+
step_dev: ' 3. Execute @dev — le skeleton-system.md primeiro, depois discovery.md + architecture.md + spec.md'
|
|
953
|
+
},
|
|
954
|
+
squad_investigate: {
|
|
955
|
+
no_runtime: 'Runtime store nao encontrado. Execute aioson runtime:init primeiro.',
|
|
956
|
+
no_investigations: 'Nenhuma investigacao encontrada.',
|
|
957
|
+
not_found: 'Investigacao nao encontrada: {slug}',
|
|
958
|
+
no_report: 'Investigacao "{slug}" nao possui arquivo de relatorio.',
|
|
959
|
+
report_missing: 'Arquivo de relatorio nao encontrado: {path}',
|
|
960
|
+
show_usage: 'Uso: aioson squad:investigate [path] --sub=show --investigation=<slug>',
|
|
961
|
+
score_usage: 'Uso: aioson squad:investigate [path] --sub=score --investigation=<slug>',
|
|
962
|
+
link_usage: 'Uso: aioson squad:investigate [path] --sub=link --investigation=<slug> --squad=<slug>',
|
|
963
|
+
register_usage: 'Uso: aioson squad:investigate [path] --sub=register --report=<caminho> [--domain=<nome>] [--squad=<slug>]',
|
|
964
|
+
linked: 'Investigacao "{investigation}" vinculada ao squad "{squad}".',
|
|
965
|
+
registered: 'Investigacao registrada: {slug} ({path})',
|
|
966
|
+
unknown_sub: 'Subcomando desconhecido: {sub}. Use: list, show, score, link, register.'
|
|
967
|
+
},
|
|
968
|
+
implementation_plan: {
|
|
969
|
+
not_found: 'Plano de implementacao nao encontrado: {file}',
|
|
970
|
+
no_runtime: 'Runtime store nao encontrado. Execute aioson runtime:init primeiro.',
|
|
971
|
+
no_plans: 'Nenhum plano de implementacao registrado.',
|
|
972
|
+
no_created_date: 'Plano nao possui data de criacao no frontmatter — nao e possivel verificar obsolescencia.',
|
|
973
|
+
is_stale: 'Plano esta OBSOLETO — artefatos fonte foram alterados apos a criacao do plano.',
|
|
974
|
+
is_fresh: 'Plano esta atualizado.',
|
|
975
|
+
checkpoint_usage: 'Uso: aioson plan [path] --sub=checkpoint --feature=<slug> --phase=<N>',
|
|
976
|
+
phase_completed: 'Fase {phase} marcada como concluida.',
|
|
977
|
+
phase_not_found: 'Fase {phase} nao encontrada no plano.',
|
|
978
|
+
registered: 'Plano de implementacao registrado: {planId} ({phases} fases)'
|
|
979
|
+
},
|
|
980
|
+
squad_plan: {
|
|
981
|
+
slug_required: 'Slug do squad e obrigatorio.',
|
|
982
|
+
not_found: 'Plano de execucao nao encontrado para o squad: {slug}',
|
|
983
|
+
no_runtime: 'Runtime store nao encontrado. Execute aioson runtime:init primeiro.',
|
|
984
|
+
no_plan: 'Nenhum plano de execucao registrado para o squad: {slug}',
|
|
985
|
+
no_created_date: 'Plano nao possui data de criacao no frontmatter — nao e possivel verificar obsolescencia.',
|
|
986
|
+
is_stale: 'Plano de execucao esta OBSOLETO — artefatos do squad foram alterados apos a criacao do plano.',
|
|
987
|
+
is_fresh: 'Plano de execucao esta atualizado.',
|
|
988
|
+
checkpoint_usage: 'Uso: aioson squad:plan [path] --sub=checkpoint --squad=<slug> --round=<N>',
|
|
989
|
+
round_completed: 'Round {round} marcado como concluido.',
|
|
990
|
+
round_not_found: 'Round {round} nao encontrado no plano.',
|
|
991
|
+
registered: 'Plano de execucao registrado: {planSlug} ({rounds} rounds)'
|
|
992
|
+
},
|
|
993
|
+
|
|
994
|
+
squad_learning: {
|
|
995
|
+
slug_required: 'Slug do squad e obrigatorio.',
|
|
996
|
+
no_runtime: 'Runtime store nao encontrado. Execute aioson runtime:init primeiro.',
|
|
997
|
+
no_learnings: 'Nenhum learning encontrado para o squad: {slug}',
|
|
998
|
+
not_found: 'Learning nao encontrado: {id}',
|
|
999
|
+
archived_count: '{count} learning(s) marcado(s) como obsoleto(s) para o squad: {slug}',
|
|
1000
|
+
promote_usage: 'Uso: aioson squad:learning [path] --sub=promote --squad=<slug> --id=<learning-id> [--to=<caminho-regra>]',
|
|
1001
|
+
promoted: 'Learning {id} promovido a regra em {path}'
|
|
1002
|
+
},
|
|
1003
|
+
|
|
1004
|
+
learning: {
|
|
1005
|
+
no_runtime: 'Runtime store nao encontrado. Execute aioson runtime:init primeiro.',
|
|
1006
|
+
no_learnings: 'Nenhum learning de projeto encontrado.',
|
|
1007
|
+
not_found: 'Learning nao encontrado: {id}',
|
|
1008
|
+
promote_usage: 'Uso: aioson learning [path] --sub=promote --id=<learning-id> [--to=<caminho-regra>]',
|
|
1009
|
+
promoted: 'Learning {id} promovido a regra em {path}'
|
|
817
1010
|
}
|
|
818
1011
|
};
|
package/src/installer.js
CHANGED
|
@@ -21,6 +21,21 @@ const GITIGNORE_POLICY_LINES = [
|
|
|
21
21
|
'!.gemini/**',
|
|
22
22
|
'!.aioson/',
|
|
23
23
|
'!.aioson/**',
|
|
24
|
+
'# AIOSON — managed framework files (do not commit)',
|
|
25
|
+
'.aioson/config.md',
|
|
26
|
+
'.aioson/locales/',
|
|
27
|
+
'.aioson/skills/',
|
|
28
|
+
'.aioson/schemas/',
|
|
29
|
+
'.aioson/tasks/',
|
|
30
|
+
'.aioson/templates/',
|
|
31
|
+
'.aioson/advisors/',
|
|
32
|
+
'.aioson/mcp/servers.md',
|
|
33
|
+
'# AIOSON — user-installed skills (versioned with project)',
|
|
34
|
+
'!.aioson/installed-skills/',
|
|
35
|
+
'!.aioson/installed-skills/**',
|
|
36
|
+
'# AIOSON — custom agents (versioned with project)',
|
|
37
|
+
'!.aioson/my-agents/',
|
|
38
|
+
'!.aioson/my-agents/**',
|
|
24
39
|
'# AIOSON — local-only artifacts',
|
|
25
40
|
'aioson-models.json',
|
|
26
41
|
'.aioson/backups/',
|
|
@@ -28,7 +43,11 @@ const GITIGNORE_POLICY_LINES = [
|
|
|
28
43
|
'.aioson/runtime/',
|
|
29
44
|
'.aioson/mcp/presets/',
|
|
30
45
|
'.aioson/install.json',
|
|
31
|
-
'.aioson/mcp/servers.local.json'
|
|
46
|
+
'.aioson/mcp/servers.local.json',
|
|
47
|
+
'.aioson/profiler-reports/*',
|
|
48
|
+
'!.aioson/profiler-reports/.gitkeep',
|
|
49
|
+
'.claude/settings.local.json',
|
|
50
|
+
'*:Zone.Identifier'
|
|
32
51
|
];
|
|
33
52
|
|
|
34
53
|
async function detectExistingInstall(targetDir) {
|
|
@@ -63,6 +82,10 @@ async function ensureGitignoreEntries(targetDir, entries) {
|
|
|
63
82
|
return missing.length;
|
|
64
83
|
}
|
|
65
84
|
|
|
85
|
+
async function ensureProjectGitignorePolicy(targetDir) {
|
|
86
|
+
return ensureGitignoreEntries(targetDir, GITIGNORE_POLICY_LINES);
|
|
87
|
+
}
|
|
88
|
+
|
|
66
89
|
async function countProjectFiles(targetDir) {
|
|
67
90
|
const SKIP = new Set(['.git', 'node_modules', 'vendor', '.aioson', 'dist', 'build', '__pycache__']);
|
|
68
91
|
let count = 0;
|
|
@@ -101,6 +124,10 @@ async function listFilesRecursive(dir) {
|
|
|
101
124
|
function shouldSkipTemplatePath(rel) {
|
|
102
125
|
if (rel.startsWith('.aioson/context/')) return true;
|
|
103
126
|
if (rel === '.aioson/context/.gitkeep') return false;
|
|
127
|
+
// Never overwrite user-installed skills (only the .gitkeep is created)
|
|
128
|
+
if (rel.startsWith('.aioson/installed-skills/') && rel !== '.aioson/installed-skills/.gitkeep') return true;
|
|
129
|
+
// Never overwrite custom agents (only the .gitkeep is created)
|
|
130
|
+
if (rel.startsWith('.aioson/my-agents/') && rel !== '.aioson/my-agents/.gitkeep') return true;
|
|
104
131
|
return false;
|
|
105
132
|
}
|
|
106
133
|
|
|
@@ -200,7 +227,7 @@ async function installTemplate(targetDir, options = {}) {
|
|
|
200
227
|
|
|
201
228
|
await writeInstallMetadata(targetDir, mode, frameworkDetection);
|
|
202
229
|
|
|
203
|
-
await
|
|
230
|
+
await ensureProjectGitignorePolicy(targetDir);
|
|
204
231
|
|
|
205
232
|
runtime = await ensureProjectRuntime(targetDir);
|
|
206
233
|
}
|
|
@@ -228,5 +255,6 @@ module.exports = {
|
|
|
228
255
|
listFilesRecursive,
|
|
229
256
|
ensureGitignoreEntry,
|
|
230
257
|
ensureGitignoreEntries,
|
|
258
|
+
ensureProjectGitignorePolicy,
|
|
231
259
|
countProjectFiles
|
|
232
260
|
};
|
|
@@ -63,7 +63,7 @@ function hasLegacyMarkdownSignals(input) {
|
|
|
63
63
|
return (
|
|
64
64
|
/^\s*---\s*$/m.test(text) ||
|
|
65
65
|
/\n(?:genome|slug):\s*.+$/im.test(text) ||
|
|
66
|
-
/^#\s+(Genome|
|
|
66
|
+
/^#\s+(Genome|Genome)\s*:/im.test(text) ||
|
|
67
67
|
/^##\s+(O que saber|Mentes|Skills)\s*$/im.test(text)
|
|
68
68
|
);
|
|
69
69
|
}
|