aios-core 4.2.15 → 4.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/.aios-core/cli/commands/validate/index.js +1 -1
- package/.aios-core/core/code-intel/code-intel-client.js +19 -5
- package/.aios-core/core/code-intel/helpers/creation-helper.js +183 -0
- package/.aios-core/core/code-intel/helpers/devops-helper.js +166 -0
- package/.aios-core/core/code-intel/helpers/planning-helper.js +248 -0
- package/.aios-core/core/code-intel/helpers/qa-helper.js +187 -0
- package/.aios-core/core/code-intel/helpers/story-helper.js +146 -0
- package/.aios-core/core/code-intel/hook-runtime.js +186 -0
- package/.aios-core/core/code-intel/index.js +2 -0
- package/.aios-core/core/code-intel/providers/code-graph-provider.js +8 -0
- package/.aios-core/core/code-intel/providers/provider-interface.js +9 -0
- package/.aios-core/core/code-intel/providers/registry-provider.js +515 -0
- package/.aios-core/core/config/schemas/framework-config.schema.json +155 -7
- package/.aios-core/core/config/schemas/project-config.schema.json +329 -15
- package/.aios-core/core/config/template-overrides.js +84 -0
- package/.aios-core/core/docs/troubleshooting-guide.md +1 -1
- package/.aios-core/core/doctor/checks/agent-memory.js +63 -0
- package/.aios-core/core/doctor/checks/claude-md.js +56 -0
- package/.aios-core/core/doctor/checks/code-intel.js +131 -0
- package/.aios-core/core/doctor/checks/commands-count.js +81 -0
- package/.aios-core/core/doctor/checks/core-config.js +53 -0
- package/.aios-core/core/doctor/checks/entity-registry.js +53 -0
- package/.aios-core/core/doctor/checks/git-hooks.js +50 -0
- package/.aios-core/core/doctor/checks/graph-dashboard.js +48 -0
- package/.aios-core/core/doctor/checks/hooks-claude-count.js +118 -0
- package/.aios-core/core/doctor/checks/ide-sync.js +85 -0
- package/.aios-core/core/doctor/checks/index.js +46 -0
- package/.aios-core/core/doctor/checks/node-version.js +33 -0
- package/.aios-core/core/doctor/checks/npm-packages.js +35 -0
- package/.aios-core/core/doctor/checks/rules-files.js +61 -0
- package/.aios-core/core/doctor/checks/settings-json.js +121 -0
- package/.aios-core/core/doctor/checks/skills-count.js +72 -0
- package/.aios-core/core/doctor/fix-handler.js +165 -0
- package/.aios-core/core/doctor/formatters/json.js +14 -0
- package/.aios-core/core/doctor/formatters/text.js +59 -0
- package/.aios-core/core/doctor/index.js +94 -0
- package/.aios-core/core/graph-dashboard/cli.js +361 -0
- package/.aios-core/core/graph-dashboard/data-sources/code-intel-source.js +234 -0
- package/.aios-core/core/graph-dashboard/data-sources/metrics-source.js +95 -0
- package/.aios-core/core/graph-dashboard/data-sources/registry-source.js +106 -0
- package/.aios-core/core/graph-dashboard/formatters/dot-formatter.js +45 -0
- package/.aios-core/core/graph-dashboard/formatters/html-formatter.js +1437 -0
- package/.aios-core/core/graph-dashboard/formatters/json-formatter.js +13 -0
- package/.aios-core/core/graph-dashboard/formatters/mermaid-formatter.js +59 -0
- package/.aios-core/core/graph-dashboard/index.js +21 -0
- package/.aios-core/core/graph-dashboard/renderers/stats-renderer.js +217 -0
- package/.aios-core/core/graph-dashboard/renderers/status-renderer.js +125 -0
- package/.aios-core/core/graph-dashboard/renderers/tree-renderer.js +119 -0
- package/.aios-core/core/health-check/base-check.js +1 -1
- package/.aios-core/core/health-check/check-registry.js +1 -1
- package/.aios-core/core/health-check/checks/deployment/build-config.js +1 -1
- package/.aios-core/core/health-check/checks/deployment/ci-config.js +1 -1
- package/.aios-core/core/health-check/checks/deployment/deployment-readiness.js +1 -1
- package/.aios-core/core/health-check/checks/deployment/docker-config.js +1 -1
- package/.aios-core/core/health-check/checks/deployment/env-file.js +1 -1
- package/.aios-core/core/health-check/checks/deployment/index.js +1 -1
- package/.aios-core/core/health-check/checks/index.js +1 -1
- package/.aios-core/core/health-check/checks/local/disk-space.js +1 -1
- package/.aios-core/core/health-check/checks/local/environment-vars.js +1 -1
- package/.aios-core/core/health-check/checks/local/git-install.js +1 -1
- package/.aios-core/core/health-check/checks/local/ide-detection.js +1 -1
- package/.aios-core/core/health-check/checks/local/index.js +1 -1
- package/.aios-core/core/health-check/checks/local/memory.js +1 -1
- package/.aios-core/core/health-check/checks/local/network.js +1 -1
- package/.aios-core/core/health-check/checks/local/npm-install.js +1 -1
- package/.aios-core/core/health-check/checks/local/shell-environment.js +1 -1
- package/.aios-core/core/health-check/checks/project/agent-config.js +1 -1
- package/.aios-core/core/health-check/checks/project/aios-directory.js +1 -1
- package/.aios-core/core/health-check/checks/project/dependencies.js +1 -1
- package/.aios-core/core/health-check/checks/project/framework-config.js +1 -1
- package/.aios-core/core/health-check/checks/project/index.js +1 -1
- package/.aios-core/core/health-check/checks/project/node-version.js +1 -1
- package/.aios-core/core/health-check/checks/project/package-json.js +1 -1
- package/.aios-core/core/health-check/checks/project/task-definitions.js +1 -1
- package/.aios-core/core/health-check/checks/project/workflow-dependencies.js +1 -1
- package/.aios-core/core/health-check/checks/repository/branch-protection.js +1 -1
- package/.aios-core/core/health-check/checks/repository/commit-history.js +1 -1
- package/.aios-core/core/health-check/checks/repository/conflicts.js +1 -1
- package/.aios-core/core/health-check/checks/repository/git-repo.js +1 -1
- package/.aios-core/core/health-check/checks/repository/git-status.js +1 -1
- package/.aios-core/core/health-check/checks/repository/gitignore.js +1 -1
- package/.aios-core/core/health-check/checks/repository/index.js +1 -1
- package/.aios-core/core/health-check/checks/repository/large-files.js +1 -1
- package/.aios-core/core/health-check/checks/repository/lockfile-integrity.js +1 -1
- package/.aios-core/core/health-check/checks/services/api-endpoints.js +1 -1
- package/.aios-core/core/health-check/checks/services/claude-code.js +1 -1
- package/.aios-core/core/health-check/checks/services/gemini-cli.js +1 -1
- package/.aios-core/core/health-check/checks/services/github-cli.js +1 -1
- package/.aios-core/core/health-check/checks/services/index.js +1 -1
- package/.aios-core/core/health-check/checks/services/mcp-integration.js +1 -1
- package/.aios-core/core/health-check/engine.js +1 -1
- package/.aios-core/core/health-check/healers/backup-manager.js +1 -1
- package/.aios-core/core/health-check/healers/index.js +1 -1
- package/.aios-core/core/health-check/index.js +9 -2
- package/.aios-core/core/health-check/reporters/console.js +1 -1
- package/.aios-core/core/health-check/reporters/index.js +1 -1
- package/.aios-core/core/health-check/reporters/json.js +1 -1
- package/.aios-core/core/health-check/reporters/markdown.js +1 -1
- package/.aios-core/core/ids/layer-classifier.js +65 -0
- package/.aios-core/core/ids/registry-updater.js +49 -0
- package/.aios-core/core/index.esm.js +1 -1
- package/.aios-core/core/index.js +1 -1
- package/.aios-core/core/session/context-detector.js +2 -7
- package/.aios-core/core/synapse/context/context-tracker.js +9 -1
- package/.aios-core/core/synapse/engine.js +33 -13
- package/.aios-core/core/synapse/memory/memory-bridge.js +17 -43
- package/.aios-core/core/synapse/memory/synapse-memory-provider.js +201 -0
- package/.aios-core/core/synapse/runtime/hook-runtime.js +40 -2
- package/.aios-core/core/synapse/session/session-manager.js +3 -2
- package/.aios-core/core/synapse/utils/atomic-write.js +79 -0
- package/.aios-core/core-config.yaml +34 -1
- package/.aios-core/data/aios-kb.md +2 -2
- package/.aios-core/data/capability-detection.js +290 -0
- package/.aios-core/data/entity-registry.yaml +10450 -2129
- package/.aios-core/data/mcp-discipline.js +166 -0
- package/.aios-core/data/mcp-tool-examples.yaml +215 -0
- package/.aios-core/data/tok2-validation.js +168 -0
- package/.aios-core/data/tok3-token-comparison.js +123 -0
- package/.aios-core/data/tool-registry.yaml +648 -0
- package/.aios-core/data/tool-search-validation.js +174 -0
- package/.aios-core/data/workflow-chains.yaml +156 -0
- package/.aios-core/development/agents/aios-master.md +17 -10
- package/.aios-core/development/agents/analyst/MEMORY.md +33 -0
- package/.aios-core/development/agents/analyst.md +17 -10
- package/.aios-core/development/agents/architect/MEMORY.md +39 -0
- package/.aios-core/development/agents/architect.md +17 -10
- package/.aios-core/development/agents/data-engineer/MEMORY.md +32 -0
- package/.aios-core/development/agents/data-engineer.md +17 -10
- package/.aios-core/development/agents/dev/MEMORY.md +46 -0
- package/.aios-core/development/agents/dev.md +18 -11
- package/.aios-core/development/agents/devops/MEMORY.md +39 -0
- package/.aios-core/development/agents/devops.md +44 -10
- package/.aios-core/development/agents/pm/MEMORY.md +38 -0
- package/.aios-core/development/agents/pm.md +17 -10
- package/.aios-core/development/agents/po/MEMORY.md +45 -0
- package/.aios-core/development/agents/po.md +17 -10
- package/.aios-core/development/agents/qa/MEMORY.md +42 -0
- package/.aios-core/development/agents/qa.md +18 -11
- package/.aios-core/development/agents/sm/MEMORY.md +31 -0
- package/.aios-core/development/agents/sm.md +17 -10
- package/.aios-core/development/agents/squad-creator.md +18 -9
- package/.aios-core/development/agents/ux/MEMORY.md +31 -0
- package/.aios-core/development/agents/ux-design-expert.md +16 -9
- package/.aios-core/development/checklists/issue-triage-checklist.md +35 -0
- package/.aios-core/development/checklists/memory-audit-checklist.md +53 -0
- package/.aios-core/development/scripts/issue-triage.js +171 -0
- package/.aios-core/development/scripts/populate-entity-registry.js +412 -19
- package/.aios-core/development/scripts/unified-activation-pipeline.js +31 -10
- package/.aios-core/development/tasks/analyze-project-structure.md +48 -0
- package/.aios-core/development/tasks/apply-qa-fixes.md +7 -0
- package/.aios-core/development/tasks/architect-analyze-impact.md +8 -1
- package/.aios-core/development/tasks/brownfield-create-epic.md +41 -0
- package/.aios-core/development/tasks/brownfield-create-story.md +7 -0
- package/.aios-core/development/tasks/build-autonomous.md +7 -0
- package/.aios-core/development/tasks/create-deep-research-prompt.md +7 -0
- package/.aios-core/development/tasks/create-doc.md +44 -0
- package/.aios-core/development/tasks/create-next-story.md +17 -0
- package/.aios-core/development/tasks/create-suite.md +7 -0
- package/.aios-core/development/tasks/dev-develop-story.md +9 -1
- package/.aios-core/development/tasks/execute-checklist.md +7 -0
- package/.aios-core/development/tasks/github-devops-github-pr-automation.md +56 -0
- package/.aios-core/development/tasks/github-devops-pre-push-quality-gate.md +70 -0
- package/.aios-core/development/tasks/github-issue-triage.md +118 -0
- package/.aios-core/development/tasks/health-check.yaml +206 -171
- package/.aios-core/development/tasks/kb-mode-interaction.md +3 -3
- package/.aios-core/development/tasks/plan-create-context.md +47 -1
- package/.aios-core/development/tasks/plan-create-implementation.md +55 -0
- package/.aios-core/development/tasks/po-close-story.md +7 -0
- package/.aios-core/development/tasks/pr-automation.md +5 -5
- package/.aios-core/development/tasks/qa-create-fix-request.md +7 -0
- package/.aios-core/development/tasks/qa-fix-issues.md +7 -0
- package/.aios-core/development/tasks/qa-gate.md +56 -0
- package/.aios-core/development/tasks/qa-review-story.md +32 -1
- package/.aios-core/development/tasks/release-management.md +7 -0
- package/.aios-core/development/tasks/resolve-github-issue.md +608 -0
- package/.aios-core/development/tasks/review-contributor-pr.md +152 -0
- package/.aios-core/development/tasks/setup-llm-routing.md +1 -1
- package/.aios-core/development/tasks/spec-critique.md +8 -0
- package/.aios-core/development/tasks/spec-gather-requirements.md +7 -0
- package/.aios-core/development/tasks/spec-research-dependencies.md +4 -0
- package/.aios-core/development/tasks/spec-write-spec.md +5 -0
- package/.aios-core/development/tasks/triage-github-issues.md +356 -0
- package/.aios-core/development/tasks/validate-agents.md +4 -0
- package/.aios-core/development/tasks/validate-next-story.md +17 -0
- package/.aios-core/development/templates/agent-handoff-tmpl.yaml +48 -0
- package/.aios-core/development/templates/code-intel-integration-pattern.md +199 -0
- package/.aios-core/development/templates/ptc-entity-validation.md +113 -0
- package/.aios-core/development/templates/ptc-qa-gate.md +100 -0
- package/.aios-core/development/templates/ptc-research-aggregation.md +94 -0
- package/.aios-core/development/templates/service-template/README.md.hbs +158 -158
- package/.aios-core/development/templates/service-template/__tests__/index.test.ts.hbs +237 -237
- package/.aios-core/development/templates/service-template/client.ts.hbs +403 -403
- package/.aios-core/development/templates/service-template/errors.ts.hbs +182 -182
- package/.aios-core/development/templates/service-template/index.ts.hbs +120 -120
- package/.aios-core/development/templates/service-template/package.json.hbs +87 -87
- package/.aios-core/development/templates/service-template/types.ts.hbs +145 -145
- package/.aios-core/development/templates/squad/agent-template.md +11 -0
- package/.aios-core/development/templates/squad/task-template.md +21 -0
- package/.aios-core/development/templates/squad-template/LICENSE +21 -21
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-COMPLETE.md +1 -1
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.2-SUMMARY.md +1 -1
- package/.aios-core/framework-config.yaml +8 -0
- package/.aios-core/index.esm.js +1 -1
- package/.aios-core/index.js +1 -1
- package/.aios-core/infrastructure/integrations/ai-providers/index.js +1 -1
- package/.aios-core/infrastructure/schemas/task-v3-schema.json +6 -0
- package/.aios-core/infrastructure/scripts/collect-tool-usage.js +311 -0
- package/.aios-core/infrastructure/scripts/generate-optimization-report.js +497 -0
- package/.aios-core/infrastructure/scripts/generate-settings-json.js +300 -0
- package/.aios-core/infrastructure/scripts/git-config-detector.js +65 -9
- package/.aios-core/infrastructure/scripts/ide-sync/index.js +3 -1
- package/.aios-core/infrastructure/scripts/ide-sync/transformers/github-copilot.js +184 -0
- package/.aios-core/infrastructure/scripts/repository-detector.js +3 -3
- package/.aios-core/infrastructure/templates/aios-sync.yaml.template +182 -182
- package/.aios-core/infrastructure/templates/coderabbit.yaml.template +279 -279
- package/.aios-core/infrastructure/templates/github-workflows/ci.yml.template +169 -169
- package/.aios-core/infrastructure/templates/github-workflows/pr-automation.yml.template +330 -330
- package/.aios-core/infrastructure/templates/github-workflows/release.yml.template +196 -196
- package/.aios-core/infrastructure/templates/gitignore/gitignore-aios-base.tmpl +63 -63
- package/.aios-core/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +18 -18
- package/.aios-core/infrastructure/templates/gitignore/gitignore-node.tmpl +85 -85
- package/.aios-core/infrastructure/templates/gitignore/gitignore-python.tmpl +145 -145
- package/.aios-core/install-manifest.yaml +613 -305
- package/.aios-core/lib/build.json +1 -0
- package/.aios-core/local-config.yaml.template +71 -71
- package/.aios-core/monitor/hooks/lib/__init__.py +1 -1
- package/.aios-core/monitor/hooks/lib/enrich.py +58 -58
- package/.aios-core/monitor/hooks/lib/send_event.py +47 -47
- package/.aios-core/monitor/hooks/notification.py +29 -29
- package/.aios-core/monitor/hooks/post_tool_use.py +45 -45
- package/.aios-core/monitor/hooks/pre_compact.py +29 -29
- package/.aios-core/monitor/hooks/pre_tool_use.py +40 -40
- package/.aios-core/monitor/hooks/stop.py +29 -29
- package/.aios-core/monitor/hooks/subagent_stop.py +29 -29
- package/.aios-core/monitor/hooks/user_prompt_submit.py +38 -38
- package/.aios-core/product/templates/adr.hbs +125 -125
- package/.aios-core/product/templates/dbdr.hbs +241 -241
- package/.aios-core/product/templates/epic.hbs +212 -212
- package/.aios-core/product/templates/ide-rules/claude-rules.md +125 -0
- package/.aios-core/product/templates/pmdr.hbs +186 -186
- package/.aios-core/product/templates/prd-v2.0.hbs +216 -216
- package/.aios-core/product/templates/prd.hbs +201 -201
- package/.aios-core/product/templates/story.hbs +263 -263
- package/.aios-core/product/templates/task.hbs +170 -170
- package/.aios-core/product/templates/tmpl-comment-on-examples.sql +158 -158
- package/.aios-core/product/templates/tmpl-migration-script.sql +91 -91
- package/.aios-core/product/templates/tmpl-rls-granular-policies.sql +104 -104
- package/.aios-core/product/templates/tmpl-rls-kiss-policy.sql +10 -10
- package/.aios-core/product/templates/tmpl-rls-roles.sql +135 -135
- package/.aios-core/product/templates/tmpl-rls-simple.sql +77 -77
- package/.aios-core/product/templates/tmpl-rls-tenant.sql +152 -152
- package/.aios-core/product/templates/tmpl-rollback-script.sql +77 -77
- package/.aios-core/product/templates/tmpl-seed-data.sql +140 -140
- package/.aios-core/product/templates/tmpl-smoke-test.sql +16 -16
- package/.aios-core/product/templates/tmpl-staging-copy-merge.sql +139 -139
- package/.aios-core/product/templates/tmpl-stored-proc.sql +140 -140
- package/.aios-core/product/templates/tmpl-trigger.sql +152 -152
- package/.aios-core/product/templates/tmpl-view-materialized.sql +133 -133
- package/.aios-core/product/templates/tmpl-view.sql +177 -177
- package/.aios-core/scripts/pm.sh +0 -0
- package/.aios-core/user-guide.md +15 -15
- package/.aios-core/utils/filters/constants.js +10 -0
- package/.aios-core/utils/filters/content-filter.js +223 -0
- package/.aios-core/utils/filters/field-filter.js +126 -0
- package/.aios-core/utils/filters/index.js +180 -0
- package/.aios-core/utils/filters/schema-filter.js +157 -0
- package/.claude/CLAUDE.md +62 -0
- package/.claude/hooks/enforce-architecture-first.py +196 -196
- package/.claude/hooks/enforce-git-push-authority.sh +33 -0
- 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/synapse-engine.cjs +28 -5
- package/.claude/hooks/write-path-validation.py +194 -194
- package/.claude/rules/agent-authority.md +105 -0
- package/.claude/rules/agent-handoff.md +97 -0
- package/.claude/rules/agent-memory-imports.md +15 -0
- package/.claude/rules/coderabbit-integration.md +101 -0
- package/.claude/rules/ids-principles.md +119 -0
- package/.claude/rules/story-lifecycle.md +145 -0
- package/.claude/rules/tool-examples.md +64 -0
- package/.claude/rules/tool-response-filtering.md +57 -0
- package/.claude/rules/workflow-execution.md +150 -0
- package/LICENSE +33 -33
- package/bin/aios-graph.js +9 -0
- package/bin/aios-init.js +2 -2
- package/bin/aios-minimal.js +0 -0
- package/bin/aios.js +17 -221
- package/bin/utils/detect-fsmonitor.js +70 -0
- package/bin/utils/framework-guard.js +238 -0
- package/bin/utils/validate-publish.js +108 -0
- package/package.json +6 -3
- package/packages/aios-install/bin/aios-install.js +0 -0
- package/packages/aios-install/bin/edmcp.js +0 -0
- package/packages/aios-pro-cli/bin/aios-pro.js +2 -0
- package/packages/installer/src/config/templates/core-config-template.js +25 -0
- package/packages/installer/src/installer/brownfield-upgrader.js +68 -5
- package/packages/installer/src/merger/index.js +3 -0
- package/packages/installer/src/merger/strategies/index.js +6 -0
- package/packages/installer/src/merger/strategies/yaml-merger.js +181 -0
- package/packages/installer/src/updater/index.js +4 -4
- package/packages/installer/src/wizard/i18n.js +321 -3
- package/packages/installer/src/wizard/ide-config-generator.js +173 -25
- package/packages/installer/src/wizard/index.js +119 -1
- package/packages/installer/src/wizard/pro-setup.js +137 -121
- package/packages/installer/tests/unit/artifact-copy-pipeline/artifact-copy-pipeline.test.js +271 -0
- package/packages/installer/tests/unit/claude-md-template-v5/claude-md-template-v5.test.js +192 -0
- package/packages/installer/tests/unit/doctor/doctor-checks.test.js +610 -0
- package/packages/installer/tests/unit/doctor/doctor-orchestrator.test.js +134 -0
- package/packages/installer/tests/unit/entity-registry-bootstrap.test.js +186 -0
- package/packages/installer/tests/unit/generate-settings-json/generate-settings-json.test.js +309 -0
- package/packages/installer/tests/unit/ide-sync-integration/ide-sync-integration.test.js +230 -0
- package/packages/installer/tests/unit/merger/strategies.test.js +2 -2
- package/packages/installer/tests/unit/merger/yaml-merger.test.js +327 -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/install-monitor-hooks.sh +0 -0
- package/scripts/package-synapse.js +2 -1
- package/pro/README.md +0 -66
- package/pro/license/degradation.js +0 -220
- package/pro/license/errors.js +0 -450
- package/pro/license/feature-gate.js +0 -354
- package/pro/license/index.js +0 -181
- package/pro/license/license-api.js +0 -651
- package/pro/license/license-cache.js +0 -523
- package/pro/license/license-crypto.js +0 -303
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// schema-filter.js — Schema-type filter for MCP tool responses
|
|
3
|
+
// =============================================================================
|
|
4
|
+
// Selects only whitelisted fields from JSON objects or arrays of objects.
|
|
5
|
+
// Optionally truncates serialized output to max_tokens.
|
|
6
|
+
//
|
|
7
|
+
// Usage (stdin):
|
|
8
|
+
// echo '[{"name":"John","ssn":"123"}]' | node schema-filter.js --fields name
|
|
9
|
+
//
|
|
10
|
+
// Usage (programmatic):
|
|
11
|
+
// const { filterSchema } = require('./schema-filter');
|
|
12
|
+
// const result = filterSchema(data, { fields: ['name', 'url'] });
|
|
13
|
+
// =============================================================================
|
|
14
|
+
|
|
15
|
+
'use strict';
|
|
16
|
+
|
|
17
|
+
const fs = require('fs');
|
|
18
|
+
const { CHARS_PER_TOKEN } = require('./constants');
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Project whitelisted fields from an object.
|
|
22
|
+
* @param {Object} obj - Source object
|
|
23
|
+
* @param {string[]} fields - Fields to keep
|
|
24
|
+
* @returns {Object} Projected object
|
|
25
|
+
*/
|
|
26
|
+
function projectFields(obj, fields) {
|
|
27
|
+
if (!obj || typeof obj !== 'object') return obj;
|
|
28
|
+
|
|
29
|
+
const result = {};
|
|
30
|
+
for (const field of fields) {
|
|
31
|
+
if (field in obj) {
|
|
32
|
+
result[field] = obj[field];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Apply schema filter to input data.
|
|
40
|
+
* @param {Object|Object[]} input - Parsed JSON input
|
|
41
|
+
* @param {Object} options - Filter options
|
|
42
|
+
* @param {string[]} options.fields - Fields to whitelist
|
|
43
|
+
* @param {number} [options.max_tokens] - Optional token limit for output
|
|
44
|
+
* @returns {{ filtered: Object|Object[], original_length: number, filtered_length: number, reduction_pct: number }}
|
|
45
|
+
*/
|
|
46
|
+
function filterSchema(input, options = {}) {
|
|
47
|
+
const fields = options.fields || [];
|
|
48
|
+
|
|
49
|
+
if (!fields.length) {
|
|
50
|
+
// No fields specified — pass through unfiltered
|
|
51
|
+
const serialized = JSON.stringify(input, null, 2);
|
|
52
|
+
return {
|
|
53
|
+
filtered: input,
|
|
54
|
+
original_length: serialized.length,
|
|
55
|
+
filtered_length: serialized.length,
|
|
56
|
+
reduction_pct: 0,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const originalSerialized = JSON.stringify(input, null, 2);
|
|
61
|
+
const originalLength = originalSerialized.length;
|
|
62
|
+
|
|
63
|
+
let filtered;
|
|
64
|
+
if (Array.isArray(input)) {
|
|
65
|
+
filtered = input.map((item) => projectFields(item, fields));
|
|
66
|
+
} else {
|
|
67
|
+
filtered = projectFields(input, fields);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
let filteredSerialized = JSON.stringify(filtered, null, 2);
|
|
71
|
+
|
|
72
|
+
// Apply max_tokens truncation if specified
|
|
73
|
+
if (options.max_tokens) {
|
|
74
|
+
const maxChars = options.max_tokens * CHARS_PER_TOKEN;
|
|
75
|
+
if (filteredSerialized.length > maxChars) {
|
|
76
|
+
// For arrays, truncate by removing trailing items to keep valid JSON
|
|
77
|
+
if (Array.isArray(filtered)) {
|
|
78
|
+
while (JSON.stringify(filtered, null, 2).length > maxChars && filtered.length > 1) {
|
|
79
|
+
filtered.pop();
|
|
80
|
+
}
|
|
81
|
+
filteredSerialized = JSON.stringify(filtered, null, 2);
|
|
82
|
+
if (filteredSerialized.length > maxChars) {
|
|
83
|
+
filteredSerialized = filteredSerialized.slice(0, maxChars) + '\n... [truncated]';
|
|
84
|
+
}
|
|
85
|
+
} else {
|
|
86
|
+
// For objects, hard truncate with marker (object already field-projected)
|
|
87
|
+
filteredSerialized = filteredSerialized.slice(0, maxChars) + '\n... [truncated]';
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const filteredLength = filteredSerialized.length;
|
|
93
|
+
const reductionPct = originalLength > 0
|
|
94
|
+
? Math.round((1 - filteredLength / originalLength) * 100)
|
|
95
|
+
: 0;
|
|
96
|
+
|
|
97
|
+
return {
|
|
98
|
+
filtered,
|
|
99
|
+
original_length: originalLength,
|
|
100
|
+
filtered_length: filteredLength,
|
|
101
|
+
reduction_pct: reductionPct,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// ---------------------------------------------------------------------------
|
|
106
|
+
// CLI entrypoint
|
|
107
|
+
// ---------------------------------------------------------------------------
|
|
108
|
+
function parseArgs(argv) {
|
|
109
|
+
const args = {};
|
|
110
|
+
for (let i = 2; i < argv.length; i++) {
|
|
111
|
+
if (argv[i] === '--fields' && argv[i + 1]) {
|
|
112
|
+
args.fields = argv[i + 1].split(',');
|
|
113
|
+
i++;
|
|
114
|
+
} else if (argv[i] === '--input' && argv[i + 1]) {
|
|
115
|
+
args.input = argv[i + 1];
|
|
116
|
+
i++;
|
|
117
|
+
} else if (argv[i] === '--max-tokens' && argv[i + 1]) {
|
|
118
|
+
args.max_tokens = parseInt(argv[i + 1], 10);
|
|
119
|
+
i++;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return args;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function main() {
|
|
126
|
+
const args = parseArgs(process.argv);
|
|
127
|
+
|
|
128
|
+
let inputData;
|
|
129
|
+
if (args.input) {
|
|
130
|
+
inputData = fs.readFileSync(args.input, 'utf8');
|
|
131
|
+
} else if (!process.stdin.isTTY) {
|
|
132
|
+
inputData = fs.readFileSync(0, 'utf8');
|
|
133
|
+
} else {
|
|
134
|
+
console.error('Usage: echo \'[{"a":1,"b":2}]\' | node schema-filter.js --fields a');
|
|
135
|
+
process.exit(1);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
try {
|
|
139
|
+
inputData = JSON.parse(inputData);
|
|
140
|
+
} catch (err) {
|
|
141
|
+
console.error('Error: Input must be valid JSON.', err.message);
|
|
142
|
+
process.exit(1);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
const result = filterSchema(inputData, {
|
|
146
|
+
fields: args.fields,
|
|
147
|
+
max_tokens: args.max_tokens,
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
console.log(JSON.stringify(result, null, 2));
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
if (require.main === module) {
|
|
154
|
+
main();
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
module.exports = { filterSchema, projectFields, CHARS_PER_TOKEN };
|
package/.claude/CLAUDE.md
CHANGED
|
@@ -4,6 +4,7 @@ Este arquivo configura o comportamento do Claude Code ao trabalhar neste reposit
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<!-- FRAMEWORK-OWNED: Generated by AIOS installer, do not customize -->
|
|
7
8
|
## Constitution
|
|
8
9
|
|
|
9
10
|
O AIOS possui uma **Constitution formal** com princípios inegociáveis e gates automáticos.
|
|
@@ -25,6 +26,7 @@ O AIOS possui uma **Constitution formal** com princípios inegociáveis e gates
|
|
|
25
26
|
|
|
26
27
|
---
|
|
27
28
|
|
|
29
|
+
<!-- FRAMEWORK-OWNED: Generated by AIOS installer, do not customize -->
|
|
28
30
|
## Language Configuration
|
|
29
31
|
|
|
30
32
|
Language preference is handled by Claude Code's native `language` setting (v2.1.0+).
|
|
@@ -38,6 +40,7 @@ The installer writes this automatically during `npx aios-core install`. No langu
|
|
|
38
40
|
|
|
39
41
|
---
|
|
40
42
|
|
|
43
|
+
<!-- FRAMEWORK-OWNED: Generated by AIOS installer, do not customize -->
|
|
41
44
|
## Premissa Arquitetural: CLI First
|
|
42
45
|
|
|
43
46
|
O Synkra AIOS segue uma hierarquia clara de prioridades que deve guiar **TODAS** as decisões:
|
|
@@ -64,6 +67,7 @@ CLI First → Observability Second → UI Third
|
|
|
64
67
|
|
|
65
68
|
---
|
|
66
69
|
|
|
70
|
+
<!-- FRAMEWORK-OWNED: Generated by AIOS installer, do not customize -->
|
|
67
71
|
## Estrutura do Projeto
|
|
68
72
|
|
|
69
73
|
```
|
|
@@ -84,6 +88,25 @@ aios-core/
|
|
|
84
88
|
|
|
85
89
|
---
|
|
86
90
|
|
|
91
|
+
<!-- FRAMEWORK-OWNED: Generated by AIOS installer, do not customize -->
|
|
92
|
+
## Framework vs Project Boundary
|
|
93
|
+
|
|
94
|
+
O AIOS usa um modelo de 4 camadas (L1-L4) para separar artefatos do framework e do projeto. Deny rules em `.claude/settings.json` reforçam isso deterministicamente.
|
|
95
|
+
|
|
96
|
+
| Camada | Mutabilidade | Paths | Notas |
|
|
97
|
+
|--------|-------------|-------|-------|
|
|
98
|
+
| **L1** Framework Core | NEVER modify | `.aios-core/core/`, `.aios-core/constitution.md`, `bin/aios.js`, `bin/aios-init.js` | Protegido por deny rules |
|
|
99
|
+
| **L2** Framework Templates | NEVER modify | `.aios-core/development/tasks/`, `.aios-core/development/templates/`, `.aios-core/development/checklists/`, `.aios-core/development/workflows/`, `.aios-core/infrastructure/` | Extend-only |
|
|
100
|
+
| **L3** Project Config | Mutable (exceptions) | `.aios-core/data/`, `agents/*/MEMORY.md`, `core-config.yaml` | Allow rules permitem |
|
|
101
|
+
| **L4** Project Runtime | ALWAYS modify | `docs/stories/`, `packages/`, `squads/`, `tests/` | Trabalho do projeto |
|
|
102
|
+
|
|
103
|
+
**Toggle:** `core-config.yaml` → `boundary.frameworkProtection: true/false` controla se deny rules são ativas (default: true para projetos, false para contribuidores do framework).
|
|
104
|
+
|
|
105
|
+
> **Referência formal:** `.claude/settings.json` (deny/allow rules), `.claude/rules/agent-authority.md`
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
<!-- FRAMEWORK-OWNED: Generated by AIOS installer, do not customize -->
|
|
87
110
|
## Sistema de Agentes
|
|
88
111
|
|
|
89
112
|
### Ativação de Agentes
|
|
@@ -122,6 +145,7 @@ Use prefixo `*` para comandos:
|
|
|
122
145
|
|
|
123
146
|
---
|
|
124
147
|
|
|
148
|
+
<!-- FRAMEWORK-OWNED: Generated by AIOS installer, do not customize -->
|
|
125
149
|
## Story-Driven Development
|
|
126
150
|
|
|
127
151
|
1. **Trabalhe a partir de stories** - Todo desenvolvimento começa com uma story em `docs/stories/`
|
|
@@ -136,6 +160,7 @@ Use prefixo `*` para comandos:
|
|
|
136
160
|
|
|
137
161
|
---
|
|
138
162
|
|
|
163
|
+
<!-- PROJECT-CUSTOMIZED: Safe to modify for your project -->
|
|
139
164
|
## Padrões de Código
|
|
140
165
|
|
|
141
166
|
### Convenções de Nomenclatura
|
|
@@ -185,6 +210,7 @@ try {
|
|
|
185
210
|
|
|
186
211
|
---
|
|
187
212
|
|
|
213
|
+
<!-- PROJECT-CUSTOMIZED: Safe to modify for your project -->
|
|
188
214
|
## Testes & Quality Gates
|
|
189
215
|
|
|
190
216
|
### Comandos de Teste
|
|
@@ -205,6 +231,7 @@ npm test # Jest
|
|
|
205
231
|
|
|
206
232
|
---
|
|
207
233
|
|
|
234
|
+
<!-- PROJECT-CUSTOMIZED: Safe to modify for your project -->
|
|
208
235
|
## Convenções Git
|
|
209
236
|
|
|
210
237
|
### Commits
|
|
@@ -229,6 +256,7 @@ Seguir Conventional Commits:
|
|
|
229
256
|
|
|
230
257
|
---
|
|
231
258
|
|
|
259
|
+
<!-- FRAMEWORK-OWNED: Generated by AIOS installer, do not customize -->
|
|
232
260
|
## Otimização Claude Code
|
|
233
261
|
|
|
234
262
|
### Uso de Ferramentas
|
|
@@ -245,6 +273,13 @@ Seguir Conventional Commits:
|
|
|
245
273
|
- Use execução paralela para operações independentes
|
|
246
274
|
- Cache dados frequentemente acessados durante a sessão
|
|
247
275
|
|
|
276
|
+
### Context Management (NOG-18 + TOK-4A)
|
|
277
|
+
- Use `/compact` when context feels heavy or approaching limits
|
|
278
|
+
- Context brackets (SYNAPSE) replaced by native compaction
|
|
279
|
+
- Agent memory persists in `.aios-core/development/agents/{id}/MEMORY.md`
|
|
280
|
+
- Rules with `paths:` frontmatter only load when working on matching files
|
|
281
|
+
- **Agent Handoff:** On agent switch (`@agent`), previous agent is compacted to ~379-token handoff artifact. See `.claude/rules/agent-handoff.md` for full protocol. Max 3 retained summaries, oldest discarded.
|
|
282
|
+
|
|
248
283
|
### Gerenciamento de Sessão
|
|
249
284
|
- Rastreie progresso da story durante a sessão
|
|
250
285
|
- Atualize checkboxes imediatamente após completar tasks
|
|
@@ -259,6 +294,7 @@ Seguir Conventional Commits:
|
|
|
259
294
|
|
|
260
295
|
---
|
|
261
296
|
|
|
297
|
+
<!-- PROJECT-CUSTOMIZED: Safe to modify for your project -->
|
|
262
298
|
## Comandos Frequentes
|
|
263
299
|
|
|
264
300
|
### Desenvolvimento
|
|
@@ -287,6 +323,7 @@ npm run build # Build produção
|
|
|
287
323
|
|
|
288
324
|
---
|
|
289
325
|
|
|
326
|
+
<!-- FRAMEWORK-OWNED: Generated by AIOS installer, do not customize -->
|
|
290
327
|
## MCP Usage
|
|
291
328
|
|
|
292
329
|
Ver `.claude/rules/mcp-usage.md` para regras detalhadas.
|
|
@@ -298,6 +335,31 @@ Ver `.claude/rules/mcp-usage.md` para regras detalhadas.
|
|
|
298
335
|
|
|
299
336
|
---
|
|
300
337
|
|
|
338
|
+
<!-- PROJECT-CUSTOMIZED: Token Optimization TOK-2 -->
|
|
339
|
+
## Tool Selection Guidance
|
|
340
|
+
|
|
341
|
+
Prefer native Claude Code tools over MCP for common operations. The tool-registry at `.aios-core/data/tool-registry.yaml` defines the 3-Tier Tool Mesh:
|
|
342
|
+
|
|
343
|
+
| Tier | When Loaded | Examples |
|
|
344
|
+
|------|-------------|---------|
|
|
345
|
+
| **1** (Always) | Session start | Read, Write, Edit, Bash, Grep, Glob, Task |
|
|
346
|
+
| **2** (Deferred) | Agent activation | git, coderabbit, context7, supabase |
|
|
347
|
+
| **3** (Deferred) | Via tool search | EXA, Playwright, Apify, Nogic, Code-Graph |
|
|
348
|
+
|
|
349
|
+
**Guidelines:**
|
|
350
|
+
- Use Tier 1 native tools for file ops, search, and commands — avoid MCP equivalents
|
|
351
|
+
- Tier 3 MCP tools are deferred via Tool Search — only loaded when explicitly needed
|
|
352
|
+
- Limit tool search to maximum 2 searches per turn to avoid overhead
|
|
353
|
+
- Essential MCP servers (nogic, code-graph) are never disabled
|
|
354
|
+
- Non-essential servers (EXA, Apify, Playwright) load on-demand via tool search
|
|
355
|
+
|
|
356
|
+
**Tool Examples (TOK-4B):** Concrete input examples improve tool selection accuracy by +18pp. See `.claude/rules/tool-examples.md` for examples of top-10 tools. Full registry: `.aios-core/data/mcp-tool-examples.yaml`. ADR-5: examples for always-loaded tools only, search for deferred tools.
|
|
357
|
+
|
|
358
|
+
**Runtime capabilities:** `.aios/runtime-capabilities.json` (generated by capability-detection.js)
|
|
359
|
+
|
|
360
|
+
---
|
|
361
|
+
|
|
362
|
+
<!-- PROJECT-CUSTOMIZED: Safe to modify for your project -->
|
|
301
363
|
## Debug
|
|
302
364
|
|
|
303
365
|
### Habilitar Debug
|