aiox-core 5.0.0 → 5.0.2
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/.aiox-core/data/entity-registry.yaml +5297 -1814
- package/.aiox-core/data/registry-update-log.jsonl +2 -0
- package/.aiox-core/development/templates/service-template/README.md.hbs +158 -158
- package/.aiox-core/development/templates/service-template/__tests__/index.test.ts.hbs +237 -237
- package/.aiox-core/development/templates/service-template/client.ts.hbs +403 -403
- package/.aiox-core/development/templates/service-template/errors.ts.hbs +182 -182
- package/.aiox-core/development/templates/service-template/index.ts.hbs +120 -120
- package/.aiox-core/development/templates/service-template/package.json.hbs +87 -87
- package/.aiox-core/development/templates/service-template/types.ts.hbs +145 -145
- package/.aiox-core/development/templates/squad-template/LICENSE +21 -21
- package/.aiox-core/infrastructure/scripts/tool-resolver.js +4 -4
- package/.aiox-core/infrastructure/templates/aiox-sync.yaml.template +182 -182
- package/.aiox-core/infrastructure/templates/coderabbit.yaml.template +279 -279
- package/.aiox-core/infrastructure/templates/github-workflows/ci.yml.template +169 -169
- package/.aiox-core/infrastructure/templates/github-workflows/pr-automation.yml.template +330 -330
- package/.aiox-core/infrastructure/templates/github-workflows/release.yml.template +196 -196
- package/.aiox-core/infrastructure/templates/gitignore/gitignore-aiox-base.tmpl +63 -63
- package/.aiox-core/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +18 -18
- package/.aiox-core/infrastructure/templates/gitignore/gitignore-node.tmpl +85 -85
- package/.aiox-core/infrastructure/templates/gitignore/gitignore-python.tmpl +145 -145
- package/.aiox-core/install-manifest.yaml +58 -58
- package/.aiox-core/local-config.yaml.template +71 -71
- package/.aiox-core/monitor/hooks/lib/__init__.py +1 -1
- package/.aiox-core/monitor/hooks/lib/enrich.py +58 -58
- package/.aiox-core/monitor/hooks/lib/send_event.py +47 -47
- package/.aiox-core/monitor/hooks/notification.py +29 -29
- package/.aiox-core/monitor/hooks/post_tool_use.py +45 -45
- package/.aiox-core/monitor/hooks/pre_compact.py +29 -29
- package/.aiox-core/monitor/hooks/pre_tool_use.py +40 -40
- package/.aiox-core/monitor/hooks/stop.py +29 -29
- package/.aiox-core/monitor/hooks/subagent_stop.py +29 -29
- package/.aiox-core/monitor/hooks/user_prompt_submit.py +38 -38
- package/.aiox-core/product/templates/adr.hbs +125 -125
- package/.aiox-core/product/templates/dbdr.hbs +241 -241
- package/.aiox-core/product/templates/engine/elicitation.js +2 -3
- package/.aiox-core/product/templates/epic.hbs +212 -212
- package/.aiox-core/product/templates/pmdr.hbs +186 -186
- package/.aiox-core/product/templates/prd-v2.0.hbs +216 -216
- package/.aiox-core/product/templates/prd.hbs +201 -201
- package/.aiox-core/product/templates/story.hbs +263 -263
- package/.aiox-core/product/templates/task.hbs +170 -170
- package/.aiox-core/product/templates/tmpl-comment-on-examples.sql +158 -158
- package/.aiox-core/product/templates/tmpl-migration-script.sql +91 -91
- package/.aiox-core/product/templates/tmpl-rls-granular-policies.sql +104 -104
- package/.aiox-core/product/templates/tmpl-rls-kiss-policy.sql +10 -10
- package/.aiox-core/product/templates/tmpl-rls-roles.sql +135 -135
- package/.aiox-core/product/templates/tmpl-rls-simple.sql +77 -77
- package/.aiox-core/product/templates/tmpl-rls-tenant.sql +152 -152
- package/.aiox-core/product/templates/tmpl-rollback-script.sql +77 -77
- package/.aiox-core/product/templates/tmpl-seed-data.sql +140 -140
- package/.aiox-core/product/templates/tmpl-smoke-test.sql +16 -16
- package/.aiox-core/product/templates/tmpl-staging-copy-merge.sql +139 -139
- package/.aiox-core/product/templates/tmpl-stored-proc.sql +140 -140
- package/.aiox-core/product/templates/tmpl-trigger.sql +152 -152
- package/.aiox-core/product/templates/tmpl-view-materialized.sql +133 -133
- package/.aiox-core/product/templates/tmpl-view.sql +177 -177
- package/.aiox-core/scripts/pm.sh +0 -0
- package/.claude/hooks/code-intel-pretool.cjs +107 -0
- package/.claude/hooks/enforce-architecture-first.py +196 -196
- package/.claude/hooks/mind-clone-governance.py +192 -192
- package/.claude/hooks/read-protection.py +151 -151
- package/.claude/hooks/slug-validation.py +176 -176
- package/.claude/hooks/sql-governance.py +182 -182
- package/.claude/hooks/write-path-validation.py +194 -194
- package/LICENSE +33 -33
- package/bin/aiox-graph.js +0 -0
- package/bin/aiox-minimal.js +0 -0
- package/bin/aiox.js +0 -0
- package/docs/guides/aios-workflows/README.md +247 -0
- package/docs/guides/aios-workflows/bob-orchestrator-workflow.md +1536 -0
- package/package.json +1 -1
- package/packages/aiox-install/bin/aiox-install.js +0 -0
- package/packages/aiox-install/bin/edmcp.js +0 -0
- package/packages/aiox-pro-cli/bin/aiox-pro.js +0 -0
- package/packages/installer/src/wizard/pro-setup.js +210 -123
- package/pro/README.md +66 -0
- package/pro/license/degradation.js +220 -0
- package/pro/license/errors.js +450 -0
- package/pro/license/feature-gate.js +354 -0
- package/pro/license/index.js +181 -0
- package/pro/license/license-api.js +679 -0
- package/pro/license/license-cache.js +523 -0
- package/pro/license/license-crypto.js +303 -0
- package/scripts/check-markdown-links.py +352 -352
- package/scripts/dashboard-parallel-dev.sh +0 -0
- package/scripts/dashboard-parallel-phase3.sh +0 -0
- package/scripts/dashboard-parallel-phase4.sh +0 -0
- package/scripts/glue/README.md +355 -0
- package/scripts/glue/compose-agent-prompt.cjs +362 -0
- package/scripts/install-monitor-hooks.sh +0 -0
- package/.aiox-core/lib/build.json +0 -1
|
@@ -1,182 +1,182 @@
|
|
|
1
|
-
# AIOX IDE Sync Configuration
|
|
2
|
-
# Automatically sync agents, tasks, checklists, and workflows to IDE configurations
|
|
3
|
-
#
|
|
4
|
-
# Usage:
|
|
5
|
-
# 1. Copy this file to your project root as .aiox-sync.yaml
|
|
6
|
-
# 2. Configure active_ides for your setup
|
|
7
|
-
# 3. Add squad_aliases for your squads
|
|
8
|
-
# 4. Run *command to sync components
|
|
9
|
-
#
|
|
10
|
-
# Documentation: https://synkra.dev/docs/ide-sync
|
|
11
|
-
|
|
12
|
-
version: "1.0.0"
|
|
13
|
-
|
|
14
|
-
# ═══════════════════════════════════════════════════════════════════════════════
|
|
15
|
-
# ACTIVE IDEs
|
|
16
|
-
# ═══════════════════════════════════════════════════════════════════════════════
|
|
17
|
-
# Uncomment the IDEs you want to sync to
|
|
18
|
-
active_ides:
|
|
19
|
-
- claude # Claude Code (.claude/commands/)
|
|
20
|
-
- cursor # Cursor IDE (.cursor/rules/)
|
|
21
|
-
# - gemini # Google Gemini (.gemini/)
|
|
22
|
-
|
|
23
|
-
# ═══════════════════════════════════════════════════════════════════════════════
|
|
24
|
-
# SQUAD ALIASES
|
|
25
|
-
# ═══════════════════════════════════════════════════════════════════════════════
|
|
26
|
-
# Maps directory name → command prefix
|
|
27
|
-
# Example: squads/legal/ → .claude/commands/Legal/
|
|
28
|
-
squad_aliases:
|
|
29
|
-
# Add your squads here:
|
|
30
|
-
# squad-name: CommandPrefix
|
|
31
|
-
# legal: Legal
|
|
32
|
-
# copy: Copy
|
|
33
|
-
# hr: HR
|
|
34
|
-
|
|
35
|
-
# ═══════════════════════════════════════════════════════════════════════════════
|
|
36
|
-
# SYNC MAPPINGS
|
|
37
|
-
# ═══════════════════════════════════════════════════════════════════════════════
|
|
38
|
-
# Source → destination patterns
|
|
39
|
-
# Use {squad_alias} placeholder for dynamic squad alias substitution
|
|
40
|
-
sync_mappings:
|
|
41
|
-
|
|
42
|
-
# Agents - sync to all IDEs
|
|
43
|
-
squad_agents:
|
|
44
|
-
source: "squads/*/agents/"
|
|
45
|
-
destinations:
|
|
46
|
-
claude:
|
|
47
|
-
- path: ".claude/commands/{squad_alias}/agents/"
|
|
48
|
-
format: "md"
|
|
49
|
-
wrapper: "none"
|
|
50
|
-
cursor:
|
|
51
|
-
- path: ".cursor/rules/"
|
|
52
|
-
format: "mdc"
|
|
53
|
-
wrapper: "cursor-rule"
|
|
54
|
-
gemini:
|
|
55
|
-
- path: ".gemini/agents/"
|
|
56
|
-
format: "md"
|
|
57
|
-
wrapper: "none"
|
|
58
|
-
|
|
59
|
-
# Tasks - sync to Claude only by default
|
|
60
|
-
squad_tasks:
|
|
61
|
-
source: "squads/*/tasks/"
|
|
62
|
-
destinations:
|
|
63
|
-
claude:
|
|
64
|
-
- path: ".claude/commands/{squad_alias}/tasks/"
|
|
65
|
-
format: "md"
|
|
66
|
-
wrapper: "none"
|
|
67
|
-
|
|
68
|
-
# Workflows - sync to Claude and Cursor
|
|
69
|
-
squad_workflows:
|
|
70
|
-
source: "squads/*/workflows/"
|
|
71
|
-
destinations:
|
|
72
|
-
claude:
|
|
73
|
-
- path: ".claude/commands/{squad_alias}/workflows/"
|
|
74
|
-
format: "md"
|
|
75
|
-
wrapper: "none"
|
|
76
|
-
cursor:
|
|
77
|
-
- path: ".cursor/rules/workflows/"
|
|
78
|
-
format: "mdc"
|
|
79
|
-
wrapper: "cursor-rule"
|
|
80
|
-
|
|
81
|
-
# Checklists - Claude only
|
|
82
|
-
squad_checklists:
|
|
83
|
-
source: "squads/*/checklists/"
|
|
84
|
-
destinations:
|
|
85
|
-
claude:
|
|
86
|
-
- path: ".claude/commands/{squad_alias}/checklists/"
|
|
87
|
-
format: "md"
|
|
88
|
-
wrapper: "none"
|
|
89
|
-
|
|
90
|
-
# Data/Knowledge - Claude only
|
|
91
|
-
squad_data:
|
|
92
|
-
source: "squads/*/data/"
|
|
93
|
-
destinations:
|
|
94
|
-
claude:
|
|
95
|
-
- path: ".claude/commands/{squad_alias}/data/"
|
|
96
|
-
format: "md"
|
|
97
|
-
wrapper: "none"
|
|
98
|
-
|
|
99
|
-
# ═══════════════════════════════════════════════════════════════════════════════
|
|
100
|
-
# WRAPPERS
|
|
101
|
-
# ═══════════════════════════════════════════════════════════════════════════════
|
|
102
|
-
# Templates for different IDE formats
|
|
103
|
-
wrappers:
|
|
104
|
-
# Cursor MDC format with frontmatter
|
|
105
|
-
cursor-rule:
|
|
106
|
-
prepend: |
|
|
107
|
-
---
|
|
108
|
-
description: {description}
|
|
109
|
-
globs: []
|
|
110
|
-
alwaysApply: false
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
{content}
|
|
114
|
-
extract_description: true # Extract from agent whenToUse or first paragraph
|
|
115
|
-
|
|
116
|
-
# Claude slash command format
|
|
117
|
-
slash-command:
|
|
118
|
-
prepend: |
|
|
119
|
-
# /{filename} Command
|
|
120
|
-
|
|
121
|
-
When this command is used, adopt the following agent persona:
|
|
122
|
-
|
|
123
|
-
{content}
|
|
124
|
-
|
|
125
|
-
# No transformation
|
|
126
|
-
none:
|
|
127
|
-
prepend: ""
|
|
128
|
-
|
|
129
|
-
# ═══════════════════════════════════════════════════════════════════════════════
|
|
130
|
-
# FILE FILTERS
|
|
131
|
-
# ═══════════════════════════════════════════════════════════════════════════════
|
|
132
|
-
file_filters:
|
|
133
|
-
include:
|
|
134
|
-
- "*.md"
|
|
135
|
-
- "*.yaml"
|
|
136
|
-
- "*.yml"
|
|
137
|
-
exclude:
|
|
138
|
-
- "README.md"
|
|
139
|
-
- "*.test.md"
|
|
140
|
-
- "*.draft.md"
|
|
141
|
-
- ".DS_Store"
|
|
142
|
-
- "*.bak"
|
|
143
|
-
|
|
144
|
-
# ═══════════════════════════════════════════════════════════════════════════════
|
|
145
|
-
# BEHAVIOR
|
|
146
|
-
# ═══════════════════════════════════════════════════════════════════════════════
|
|
147
|
-
behavior:
|
|
148
|
-
auto_sync_on_commit: false # Run sync before every commit (requires git hook)
|
|
149
|
-
create_missing_dirs: true # Create destination directories if missing
|
|
150
|
-
backup_before_sync: false # Create .bak files before overwriting
|
|
151
|
-
validate_after_sync: true # Validate synced files
|
|
152
|
-
log_sync_operations: true # Log to .aiox-sync.log
|
|
153
|
-
fail_on_error: false # Don't block on sync errors (warn only)
|
|
154
|
-
|
|
155
|
-
# ═══════════════════════════════════════════════════════════════════════════════
|
|
156
|
-
# EXCLUSIONS
|
|
157
|
-
# ═══════════════════════════════════════════════════════════════════════════════
|
|
158
|
-
exclusions:
|
|
159
|
-
- "*.bak"
|
|
160
|
-
- "*.tmp"
|
|
161
|
-
- "*-test.md"
|
|
162
|
-
- "INTERNAL-*.md"
|
|
163
|
-
- ".state.yaml"
|
|
164
|
-
- "archive/*"
|
|
165
|
-
|
|
166
|
-
# ═══════════════════════════════════════════════════════════════════════════════
|
|
167
|
-
# VALIDATION
|
|
168
|
-
# ═══════════════════════════════════════════════════════════════════════════════
|
|
169
|
-
validation:
|
|
170
|
-
check_yaml_valid: true # Validate YAML blocks in markdown
|
|
171
|
-
check_no_hardcoded_paths: true # Warn if absolute paths found
|
|
172
|
-
check_dependencies_exist: true # Validate referenced dependencies exist
|
|
173
|
-
|
|
174
|
-
# ═══════════════════════════════════════════════════════════════════════════════
|
|
175
|
-
# LOGGING
|
|
176
|
-
# ═══════════════════════════════════════════════════════════════════════════════
|
|
177
|
-
logging:
|
|
178
|
-
enabled: true
|
|
179
|
-
log_file: ".aiox-sync.log"
|
|
180
|
-
log_level: "info" # debug, info, warn, error
|
|
181
|
-
max_log_size_mb: 10
|
|
182
|
-
rotate_logs: true
|
|
1
|
+
# AIOX IDE Sync Configuration
|
|
2
|
+
# Automatically sync agents, tasks, checklists, and workflows to IDE configurations
|
|
3
|
+
#
|
|
4
|
+
# Usage:
|
|
5
|
+
# 1. Copy this file to your project root as .aiox-sync.yaml
|
|
6
|
+
# 2. Configure active_ides for your setup
|
|
7
|
+
# 3. Add squad_aliases for your squads
|
|
8
|
+
# 4. Run *command to sync components
|
|
9
|
+
#
|
|
10
|
+
# Documentation: https://synkra.dev/docs/ide-sync
|
|
11
|
+
|
|
12
|
+
version: "1.0.0"
|
|
13
|
+
|
|
14
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
15
|
+
# ACTIVE IDEs
|
|
16
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
17
|
+
# Uncomment the IDEs you want to sync to
|
|
18
|
+
active_ides:
|
|
19
|
+
- claude # Claude Code (.claude/commands/)
|
|
20
|
+
- cursor # Cursor IDE (.cursor/rules/)
|
|
21
|
+
# - gemini # Google Gemini (.gemini/)
|
|
22
|
+
|
|
23
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
24
|
+
# SQUAD ALIASES
|
|
25
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
26
|
+
# Maps directory name → command prefix
|
|
27
|
+
# Example: squads/legal/ → .claude/commands/Legal/
|
|
28
|
+
squad_aliases:
|
|
29
|
+
# Add your squads here:
|
|
30
|
+
# squad-name: CommandPrefix
|
|
31
|
+
# legal: Legal
|
|
32
|
+
# copy: Copy
|
|
33
|
+
# hr: HR
|
|
34
|
+
|
|
35
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
36
|
+
# SYNC MAPPINGS
|
|
37
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
38
|
+
# Source → destination patterns
|
|
39
|
+
# Use {squad_alias} placeholder for dynamic squad alias substitution
|
|
40
|
+
sync_mappings:
|
|
41
|
+
|
|
42
|
+
# Agents - sync to all IDEs
|
|
43
|
+
squad_agents:
|
|
44
|
+
source: "squads/*/agents/"
|
|
45
|
+
destinations:
|
|
46
|
+
claude:
|
|
47
|
+
- path: ".claude/commands/{squad_alias}/agents/"
|
|
48
|
+
format: "md"
|
|
49
|
+
wrapper: "none"
|
|
50
|
+
cursor:
|
|
51
|
+
- path: ".cursor/rules/"
|
|
52
|
+
format: "mdc"
|
|
53
|
+
wrapper: "cursor-rule"
|
|
54
|
+
gemini:
|
|
55
|
+
- path: ".gemini/agents/"
|
|
56
|
+
format: "md"
|
|
57
|
+
wrapper: "none"
|
|
58
|
+
|
|
59
|
+
# Tasks - sync to Claude only by default
|
|
60
|
+
squad_tasks:
|
|
61
|
+
source: "squads/*/tasks/"
|
|
62
|
+
destinations:
|
|
63
|
+
claude:
|
|
64
|
+
- path: ".claude/commands/{squad_alias}/tasks/"
|
|
65
|
+
format: "md"
|
|
66
|
+
wrapper: "none"
|
|
67
|
+
|
|
68
|
+
# Workflows - sync to Claude and Cursor
|
|
69
|
+
squad_workflows:
|
|
70
|
+
source: "squads/*/workflows/"
|
|
71
|
+
destinations:
|
|
72
|
+
claude:
|
|
73
|
+
- path: ".claude/commands/{squad_alias}/workflows/"
|
|
74
|
+
format: "md"
|
|
75
|
+
wrapper: "none"
|
|
76
|
+
cursor:
|
|
77
|
+
- path: ".cursor/rules/workflows/"
|
|
78
|
+
format: "mdc"
|
|
79
|
+
wrapper: "cursor-rule"
|
|
80
|
+
|
|
81
|
+
# Checklists - Claude only
|
|
82
|
+
squad_checklists:
|
|
83
|
+
source: "squads/*/checklists/"
|
|
84
|
+
destinations:
|
|
85
|
+
claude:
|
|
86
|
+
- path: ".claude/commands/{squad_alias}/checklists/"
|
|
87
|
+
format: "md"
|
|
88
|
+
wrapper: "none"
|
|
89
|
+
|
|
90
|
+
# Data/Knowledge - Claude only
|
|
91
|
+
squad_data:
|
|
92
|
+
source: "squads/*/data/"
|
|
93
|
+
destinations:
|
|
94
|
+
claude:
|
|
95
|
+
- path: ".claude/commands/{squad_alias}/data/"
|
|
96
|
+
format: "md"
|
|
97
|
+
wrapper: "none"
|
|
98
|
+
|
|
99
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
100
|
+
# WRAPPERS
|
|
101
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
102
|
+
# Templates for different IDE formats
|
|
103
|
+
wrappers:
|
|
104
|
+
# Cursor MDC format with frontmatter
|
|
105
|
+
cursor-rule:
|
|
106
|
+
prepend: |
|
|
107
|
+
---
|
|
108
|
+
description: {description}
|
|
109
|
+
globs: []
|
|
110
|
+
alwaysApply: false
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
{content}
|
|
114
|
+
extract_description: true # Extract from agent whenToUse or first paragraph
|
|
115
|
+
|
|
116
|
+
# Claude slash command format
|
|
117
|
+
slash-command:
|
|
118
|
+
prepend: |
|
|
119
|
+
# /{filename} Command
|
|
120
|
+
|
|
121
|
+
When this command is used, adopt the following agent persona:
|
|
122
|
+
|
|
123
|
+
{content}
|
|
124
|
+
|
|
125
|
+
# No transformation
|
|
126
|
+
none:
|
|
127
|
+
prepend: ""
|
|
128
|
+
|
|
129
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
130
|
+
# FILE FILTERS
|
|
131
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
132
|
+
file_filters:
|
|
133
|
+
include:
|
|
134
|
+
- "*.md"
|
|
135
|
+
- "*.yaml"
|
|
136
|
+
- "*.yml"
|
|
137
|
+
exclude:
|
|
138
|
+
- "README.md"
|
|
139
|
+
- "*.test.md"
|
|
140
|
+
- "*.draft.md"
|
|
141
|
+
- ".DS_Store"
|
|
142
|
+
- "*.bak"
|
|
143
|
+
|
|
144
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
145
|
+
# BEHAVIOR
|
|
146
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
147
|
+
behavior:
|
|
148
|
+
auto_sync_on_commit: false # Run sync before every commit (requires git hook)
|
|
149
|
+
create_missing_dirs: true # Create destination directories if missing
|
|
150
|
+
backup_before_sync: false # Create .bak files before overwriting
|
|
151
|
+
validate_after_sync: true # Validate synced files
|
|
152
|
+
log_sync_operations: true # Log to .aiox-sync.log
|
|
153
|
+
fail_on_error: false # Don't block on sync errors (warn only)
|
|
154
|
+
|
|
155
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
156
|
+
# EXCLUSIONS
|
|
157
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
158
|
+
exclusions:
|
|
159
|
+
- "*.bak"
|
|
160
|
+
- "*.tmp"
|
|
161
|
+
- "*-test.md"
|
|
162
|
+
- "INTERNAL-*.md"
|
|
163
|
+
- ".state.yaml"
|
|
164
|
+
- "archive/*"
|
|
165
|
+
|
|
166
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
167
|
+
# VALIDATION
|
|
168
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
169
|
+
validation:
|
|
170
|
+
check_yaml_valid: true # Validate YAML blocks in markdown
|
|
171
|
+
check_no_hardcoded_paths: true # Warn if absolute paths found
|
|
172
|
+
check_dependencies_exist: true # Validate referenced dependencies exist
|
|
173
|
+
|
|
174
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
175
|
+
# LOGGING
|
|
176
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
177
|
+
logging:
|
|
178
|
+
enabled: true
|
|
179
|
+
log_file: ".aiox-sync.log"
|
|
180
|
+
log_level: "info" # debug, info, warn, error
|
|
181
|
+
max_log_size_mb: 10
|
|
182
|
+
rotate_logs: true
|