Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .aiox-core/core/code-intel/helpers/dev-helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const { getEnricher, getClient, isCodeIntelAvailable } = require('../index');
const RISK_THRESHOLDS = {
LOW_MAX: 4, // 0-4 refs = LOW
MEDIUM_MAX: 15, // 5-15 refs = MEDIUM
// >15 refs = HIGH
// >15 refs = HIGH
};

// Minimum references to suggest REUSE (>threshold = REUSE, <=threshold = ADAPT)
Expand Down
1 change: 0 additions & 1 deletion .aiox-core/core/code-intel/helpers/devops-helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,6 @@ async function generateImpactSummary(files) {
} catch { /* skip — partial result ok */ }

const riskLevel = classifyRiskLevel(impact.blastRadius);
const fileCount = impact.references ? impact.references.length : 0;
const topFiles = (impact.references || [])
.map((r) => r.file || r.path || 'unknown')
.slice(0, 10);
Expand Down
2 changes: 1 addition & 1 deletion .aiox-core/core/code-intel/helpers/planning-helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ const { getEnricher, getClient, isCodeIntelAvailable } = require('../index');
const RISK_THRESHOLDS = {
LOW_MAX: 4, // 0-4 refs = LOW
MEDIUM_MAX: 15, // 5-15 refs = MEDIUM
// >15 refs = HIGH
// >15 refs = HIGH
};

/**
Expand Down
4 changes: 2 additions & 2 deletions .aiox-core/core/code-intel/helpers/qa-helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ const { getEnricher, getClient, isCodeIntelAvailable } = require('../index');
const RISK_THRESHOLDS = {
LOW_MAX: 4, // 0-4 refs = LOW
MEDIUM_MAX: 15, // 5-15 refs = MEDIUM
// >15 refs = HIGH
// >15 refs = HIGH
};

// Coverage status thresholds based on test reference count
const COVERAGE_THRESHOLDS = {
INDIRECT_MAX: 2, // 1-2 test refs = INDIRECT
MINIMAL_MAX: 5, // 3-5 test refs = MINIMAL
// >5 test refs = GOOD
// >5 test refs = GOOD
};

/**
Expand Down
2 changes: 1 addition & 1 deletion .aiox-core/core/config/template-overrides.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ function getTemplateOverrides(resolvedConfig) {
if (unknown.length > 0) {
throw new Error(
`Unknown story section ID(s) in template_overrides: ${unknown.join(', ')}. ` +
`Valid IDs: ${KNOWN_STORY_SECTIONS.join(', ')}`
`Valid IDs: ${KNOWN_STORY_SECTIONS.join(', ')}`,
);
}

Expand Down
1 change: 0 additions & 1 deletion .aiox-core/core/doctor/checks/rules-files.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ async function run(context) {
};
}

const present = EXPECTED_RULES.length - missing.length;
const severity = missing.length > 3 ? 'FAIL' : 'WARN';

return {
Expand Down
3 changes: 1 addition & 2 deletions .aiox-core/core/graph-dashboard/cli.js
Original file line number Diff line number Diff line change
Expand Up @@ -278,9 +278,8 @@ Examples:

/**
* Handle default summary view: dependency tree (compact) + stats + provider status.
* @param {Object} args - Parsed CLI args
*/
async function handleSummary(args) {
async function handleSummary() {
const codeIntelSource = new CodeIntelSource();
const registrySource = new RegistrySource();
const metricsSource = new MetricsSource();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ class CodeIntelSource {
Object.entries(deps.dependencies).map(([key, val]) => ({
id: key,
...((typeof val === 'object' && val) || {}),
}))
})),
);
}

Expand Down
2 changes: 1 addition & 1 deletion .aiox-core/core/ids/layer-classifier.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ const LAYER_RULES = [
* @returns {'L1' | 'L2' | 'L3' | 'L4'} The boundary layer
*/
function classifyLayer(entityPath) {
if (typeof entityPath !== "string") return "L4";
if (typeof entityPath !== 'string') return 'L4';

// Normalize: forward slashes, no leading ./ or /
const normalized = entityPath
Expand Down
2 changes: 1 addition & 1 deletion .aiox-core/core/synapse/layers/layer-processor.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ class LayerProcessor {
* @param {object[]} context.previousLayers - Results from previous layers
* @returns {{ rules: string[], metadata: object } | null} Rules and metadata, or null to skip
*/
process(context) {
process(_context) {
throw new Error(`${this.name}: process() must be implemented by subclass`);
}

Expand Down
30 changes: 15 additions & 15 deletions .aiox-core/data/capability-detection.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,13 @@ function detectToolSearch() {
return {
available: features.tengu_mcp_tool_search === true,
source: 'cachedGrowthBookFeatures.tengu_mcp_tool_search',
detectionMethod: 'claude-json-feature-flag'
detectionMethod: 'claude-json-feature-flag',
};
} catch {
return {
available: false,
source: 'detection-failed',
detectionMethod: 'claude-json-feature-flag'
detectionMethod: 'claude-json-feature-flag',
};
}
}
Expand All @@ -47,7 +47,7 @@ function detectDeferLoading() {
return {
available: false,
reason: 'defer_loading is API-only (Python SDK). Not exposed in Claude Code CLI.',
source: 'ADR-7 / Codex CRITICO-1'
source: 'ADR-7 / Codex CRITICO-1',
};
}

Expand All @@ -60,7 +60,7 @@ function detectProjectMcps() {
name,
type: cfg.type || 'command',
scope: 'project',
source: '.mcp.json'
source: '.mcp.json',
}));
} catch {
return [];
Expand All @@ -83,7 +83,7 @@ function detectGlobalMcps() {
name: match[1],
type: 'docker-gateway',
scope: 'global',
source: '~/.docker/mcp/config.yaml'
source: '~/.docker/mcp/config.yaml',
});
}
}
Expand All @@ -103,7 +103,7 @@ function detectGlobalMcps() {
name,
type: cfg.type || 'command',
scope: 'global-settings',
source: '~/.claude/settings.json'
source: '~/.claude/settings.json',
});
}
}
Expand All @@ -121,7 +121,7 @@ function detectDockerGateway() {
return {
available: exists,
configPath: exists ? dockerMcpDir : null,
detectionMethod: 'filesystem-check'
detectionMethod: 'filesystem-check',
};
}

Expand Down Expand Up @@ -180,7 +180,7 @@ function loadToolRegistry() {
tier2Count: tier2,
tier3Count: tier3,
essential,
nonEssential
nonEssential,
};
} catch {
return { available: false, totalTools: 0, tier1Count: 0, tier2Count: 0, tier3Count: 0, essential: [], nonEssential: [] };
Expand All @@ -197,22 +197,22 @@ function determineStrategy(toolSearch, deferLoading, dockerGateway) {
return {
primary: 'tool-search-auto',
description: 'Claude Code Tool Search is active. Tier 3 MCP tools are automatically deferred via tool_search.',
fallbacks: ['mcp-discipline', 'claudemd-guidance']
fallbacks: ['mcp-discipline', 'claudemd-guidance'],
};
}

if (dockerGateway.available) {
return {
primary: 'mcp-discipline',
description: 'Tool Search not available. Using MCP discipline: disable non-essential servers in .mcp.json.',
fallbacks: ['claudemd-guidance']
fallbacks: ['claudemd-guidance'],
};
}

return {
primary: 'claudemd-guidance',
description: 'Neither Tool Search nor Docker Gateway available. Using CLAUDE.md guidance for tool selection priority.',
fallbacks: []
fallbacks: [],
};
}

Expand All @@ -236,20 +236,20 @@ function run() {

methodology: {
toolSearchLatency: 'Managed internally by Claude Code — not programmatically measurable. Guidance-level enforcement via CLAUDE.md.',
mcpCountUnit: 'servers (not individual tools). TOK-1.5 baseline uses tool count (e.g., Apify = 7 tools = 1 server).'
mcpCountUnit: 'servers (not individual tools). TOK-1.5 baseline uses tool count (e.g., Apify = 7 tools = 1 server).',
},

runtime: {
toolSearch,
deferLoading,
dockerGateway
dockerGateway,
},

mcpServers: {
project: projectMcps,
global: globalMcps,
totalCount: projectMcps.length + globalMcps.length,
countUnit: 'servers'
countUnit: 'servers',
},

toolRegistry,
Expand All @@ -263,7 +263,7 @@ function run() {

nonEssentialServers: toolRegistry.nonEssential.length > 0
? toolRegistry.nonEssential
: []
: [],
};

// Ensure output directory exists
Expand Down
4 changes: 0 additions & 4 deletions .aiox-core/data/tok3-token-comparison.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@
* Reference: TOK-1.5 Baseline (docs/stories/epics/epic-token-optimization/story-TOK-1.5-baseline-metrics.md)
*/

const fs = require('fs');
const path = require('path');
const yaml = require ? null : null; // yaml not required — we parse manually

// --- Token estimation model ---
// Based on tool-registry.yaml tokenCost and observed output patterns

Expand Down
2 changes: 1 addition & 1 deletion .aiox-core/data/tool-search-validation.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ const TEST_QUERIES = [
{ query: 'analyze code dependencies', expectedTool: 'code-graph', category: 'code-intelligence' },
{ query: 'code analysis intelligence', expectedTool: 'nogic', category: 'code-intelligence' },
{ query: 'look up library documentation', expectedTool: 'context7', category: 'documentation' },
{ query: 'database query optimization', expectedTool: 'supabase', category: 'database' }
{ query: 'database query optimization', expectedTool: 'supabase', category: 'database' },
];

function parseKeywords(content) {
Expand Down
56 changes: 28 additions & 28 deletions .aiox-core/install-manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
# - File types for categorization
#
version: 5.0.3
generated_at: "2026-05-05T22:31:55.669Z"
generated_at: "2026-05-05T22:37:53.053Z"
generator: scripts/generate-install-manifest.js
file_count: 1092
files:
Expand Down Expand Up @@ -193,21 +193,21 @@ files:
type: core
size: 5637
- path: core/code-intel/helpers/dev-helper.js
hash: sha256:2418a5f541003c73cc284e88a6b0cb666896a47ffd5ed4c08648269d281efc4c
hash: sha256:7e7f9bb92725ca1d85b0a7151668bc5bcdd6fc9b73fed5b2b2c28217d14535ab
type: core
size: 5770
size: 5751
- path: core/code-intel/helpers/devops-helper.js
hash: sha256:c40cfa9ac2f554a707ff68c7709ae436349041bf00ad2f42811ccbe8ba842462
hash: sha256:e72f95de2f3737b6e12094526eabfb4974a8339ce6d25f2e323f734fe567c155
type: core
size: 5115
size: 5043
- path: core/code-intel/helpers/planning-helper.js
hash: sha256:2edcf275122125205a9e737035c8b25efdc4af13e7349ffc10c3ebe8ebe7654d
hash: sha256:9ca5b57b74b5729685369662659e15a91e35ec3a33691973be000ecd85974f3d
type: core
size: 6863
size: 6844
- path: core/code-intel/helpers/qa-helper.js
hash: sha256:ca069dad294224dd5c3369826fb39d5c24287d49d74360049f8bbc55f190eeda
hash: sha256:9dbb84c1c4ed1aa57385ad2a6c74520f2020e6f8883012dd57c51486172ee528
type: core
size: 5184
size: 5146
- path: core/code-intel/helpers/story-helper.js
hash: sha256:778466253ac66103ebc3b1caf71f44b06a0d5fb3d39fe8d3d473dd4bc73fefc6
type: core
Expand Down Expand Up @@ -277,9 +277,9 @@ files:
type: core
size: 936
- path: core/config/template-overrides.js
hash: sha256:1708dc8764e7f88dfefd7684240afcd5f13657170ac104aed99145e2bb8ae82c
hash: sha256:202d141a292bc5a8dd0697e044d7627b260839ae8b7119fd40ae486b3a1b0825
type: core
size: 2223
size: 2224
- path: core/config/templates/user-config.yaml
hash: sha256:3505471b0adff9bfcea08f46cca3aeeda46a283bbe7ee711dd566e5974c3257f
type: template
Expand Down Expand Up @@ -337,9 +337,9 @@ files:
type: core
size: 2265
- path: core/doctor/checks/rules-files.js
hash: sha256:3996e6343a224021fa684d7930dc99b66469c59cb15d416b0c024a770d722ab6
hash: sha256:ec58342215cede634f50c5b3164155c4f27fd8070af176ec0e02e6deec6fb218
type: core
size: 1426
size: 1368
- path: core/doctor/checks/settings-json.js
hash: sha256:bd26841b966fcfa003eca6f85416d4f877b9dcfea0e4017df9f2a97c14c33fbb
type: core
Expand Down Expand Up @@ -441,13 +441,13 @@ files:
type: core
size: 11060
- path: core/graph-dashboard/cli.js
hash: sha256:1f2fd6c6b5ace42f3bddc89695fe32d01949321d96057bbf50e2e48892f2c8f5
hash: sha256:29f273a06fecc77eb3e39162ba1aaf28e1cbadb2a000158f009817021a30b4d1
type: core
size: 10251
size: 10205
- path: core/graph-dashboard/data-sources/code-intel-source.js
hash: sha256:e508d6cbadcd2358fa7756dcaceefbaa510bd89155e036e2cbd386585408ff8f
hash: sha256:2b0534f57a8f6ca2ff5942e42faf147f1be84773b3af33c9e506ee8f318b558c
type: core
size: 6799
size: 6800
- path: core/graph-dashboard/data-sources/metrics-source.js
hash: sha256:b1e4027f82350760b67ea8f58e04a5e739f87f010838487043e29dab7301ae9e
type: core
Expand Down Expand Up @@ -725,7 +725,7 @@ files:
type: core
size: 3624
- path: core/ids/layer-classifier.js
hash: sha256:4ae1e7d341076a13d08b8b5baf7a687ad2c7df673d50fc3554d522fe79debcdc
hash: sha256:2a240b70ac3507e50a64b96d580c4d933bf2116125fb52c8237db2ed9ebf27b7
type: core
size: 2382
- path: core/ids/README.md
Expand Down Expand Up @@ -1149,9 +1149,9 @@ files:
type: core
size: 4672
- path: core/synapse/layers/layer-processor.js
hash: sha256:73cb0e5b4bada80d8e256009004679e483792077fac4358c6466cd77136f79fa
hash: sha256:15f9e4c1525d3fa2186170705a26191ad87d94ffd7fa7d61f373b07b6fb3d874
type: core
size: 2881
size: 2882
- path: core/synapse/memory/memory-bridge.js
hash: sha256:820875f97ceea80fc6402c0dab1706cfe58de527897b22dea68db40b0d6ec368
type: core
Expand Down Expand Up @@ -1221,13 +1221,13 @@ files:
type: data
size: 34235
- path: data/capability-detection.js
hash: sha256:5176849c01d90e5867f18962e03ff10a10628f40c30fe5c8cb65209f833c0884
hash: sha256:317d1b51b5cda2e35ac6d468e33e05c0948e6d7f05f51d750d7ce6ff5a58535a
type: data
size: 9575
size: 9590
- path: data/entity-registry.yaml
hash: sha256:cc1bf74d3ef4e90b7a396d5b77259e540b2f9bd4a5b4b1da4977fe49ae83525d
hash: sha256:957d789341627c08c236d08a85914138d672c81d0b82a47cfa04b8ea26d937fa
type: data
size: 521869
size: 522833
- path: data/learned-patterns.yaml
hash: sha256:24ac0b160615583a0ff783d3da8af80b7f94191575d6db2054ec8e10a3f945dc
type: data
Expand Down Expand Up @@ -1277,17 +1277,17 @@ files:
type: data
size: 7026
- path: data/tok3-token-comparison.js
hash: sha256:1f484f8054bec7a7e8055acbc9fddd7863a769948c30c6db42c5c8694410da8f
hash: sha256:da4e3cb3a09684d6fc6d0bb2b285d1837054b9fedc65b58e7fdc8d7a99b1d8a1
type: data
size: 4622
size: 4486
- path: data/tool-registry.yaml
hash: sha256:64e867d0eb36c7f7ac86f4f73f1b2ff89f43f37f28a6de34389be74b9346860c
type: data
size: 15178
- path: data/tool-search-validation.js
hash: sha256:8757bf087692f002d67115dbe1c8244bbd869600e4f52c49b0d9b07cb9fbb783
hash: sha256:d83f0680d38996be4615c1f3425d35e0b20c5c93c09da470d2c6a42dcfc3583c
type: data
size: 5754
size: 5755
- path: data/workflow-chains.yaml
hash: sha256:1fbf1625e267eedc315cf1e08e5827c250ddc6785fb2cb139e7702def9b66268
type: data
Expand Down
Loading
Loading