@aionlabsai/aion 0.2.1 → 0.2.3
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 +59 -0
- package/dist/agents/base-agent.d.ts.map +1 -1
- package/dist/agents/base-agent.js +23 -12
- package/dist/agents/base-agent.js.map +1 -1
- package/dist/agents/synthesizer.d.ts +3 -0
- package/dist/agents/synthesizer.d.ts.map +1 -1
- package/dist/agents/synthesizer.js +93 -52
- package/dist/agents/synthesizer.js.map +1 -1
- package/dist/cli/commands/audit.d.ts.map +1 -1
- package/dist/cli/commands/audit.js +87 -534
- package/dist/cli/commands/audit.js.map +1 -1
- package/dist/cli/commands/chat.d.ts.map +1 -1
- package/dist/cli/commands/chat.js +2 -1
- package/dist/cli/commands/chat.js.map +1 -1
- package/dist/cli/commands/context.d.ts +3 -0
- package/dist/cli/commands/context.d.ts.map +1 -0
- package/dist/cli/commands/context.js +72 -0
- package/dist/cli/commands/context.js.map +1 -0
- package/dist/cli/commands/next.d.ts +3 -0
- package/dist/cli/commands/next.d.ts.map +1 -0
- package/dist/cli/commands/next.js +49 -0
- package/dist/cli/commands/next.js.map +1 -0
- package/dist/cli/commands/report.d.ts.map +1 -1
- package/dist/cli/commands/report.js +52 -400
- package/dist/cli/commands/report.js.map +1 -1
- package/dist/cli/commands/search.d.ts +3 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/search.js +50 -0
- package/dist/cli/commands/search.js.map +1 -0
- package/dist/cli/commands/tree.d.ts +3 -0
- package/dist/cli/commands/tree.d.ts.map +1 -0
- package/dist/cli/commands/tree.js +85 -0
- package/dist/cli/commands/tree.js.map +1 -0
- package/dist/cli/menu.d.ts.map +1 -1
- package/dist/cli/menu.js +99 -56
- package/dist/cli/menu.js.map +1 -1
- package/dist/cli/tui.d.ts +1 -0
- package/dist/cli/tui.d.ts.map +1 -1
- package/dist/cli/tui.js +7 -3
- package/dist/cli/tui.js.map +1 -1
- package/dist/core/cost-tracker.d.ts +10 -0
- package/dist/core/cost-tracker.d.ts.map +1 -1
- package/dist/core/cost-tracker.js +53 -0
- package/dist/core/cost-tracker.js.map +1 -1
- package/dist/core/pipelines/audit-pipeline.d.ts +4 -1
- package/dist/core/pipelines/audit-pipeline.d.ts.map +1 -1
- package/dist/core/pipelines/audit-pipeline.js +60 -30
- package/dist/core/pipelines/audit-pipeline.js.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/infra/audit-cache.d.ts +2 -1
- package/dist/infra/audit-cache.d.ts.map +1 -1
- package/dist/infra/audit-cache.js +18 -6
- package/dist/infra/audit-cache.js.map +1 -1
- package/dist/infra/audit-model.d.ts +72 -0
- package/dist/infra/audit-model.d.ts.map +1 -0
- package/dist/infra/audit-model.js +146 -0
- package/dist/infra/audit-model.js.map +1 -0
- package/dist/infra/audit-report-writer.d.ts +4 -0
- package/dist/infra/audit-report-writer.d.ts.map +1 -0
- package/dist/infra/audit-report-writer.js +290 -0
- package/dist/infra/audit-report-writer.js.map +1 -0
- package/dist/infra/code-metrics.d.ts +11 -0
- package/dist/infra/code-metrics.d.ts.map +1 -1
- package/dist/infra/code-metrics.js +62 -0
- package/dist/infra/code-metrics.js.map +1 -1
- package/dist/infra/embeddings.d.ts +2 -0
- package/dist/infra/embeddings.d.ts.map +1 -1
- package/dist/infra/embeddings.js +2 -2
- package/dist/infra/embeddings.js.map +1 -1
- package/dist/infra/project-report.d.ts +67 -0
- package/dist/infra/project-report.d.ts.map +1 -0
- package/dist/infra/project-report.js +159 -0
- package/dist/infra/project-report.js.map +1 -0
- package/dist/infra/repo-vectors.d.ts +31 -0
- package/dist/infra/repo-vectors.d.ts.map +1 -0
- package/dist/infra/repo-vectors.js +83 -0
- package/dist/infra/repo-vectors.js.map +1 -0
- package/dist/infra/update-check.d.ts +3 -0
- package/dist/infra/update-check.d.ts.map +1 -0
- package/dist/infra/update-check.js +84 -0
- package/dist/infra/update-check.js.map +1 -0
- package/dist/prompts/scanner.js +1 -1
- package/dist/prompts/synthesizer.d.ts.map +1 -1
- package/dist/prompts/synthesizer.js +7 -23
- package/dist/prompts/synthesizer.js.map +1 -1
- package/dist/providers/cli-provider.d.ts +1 -0
- package/dist/providers/cli-provider.d.ts.map +1 -1
- package/dist/providers/cli-provider.js +22 -2
- package/dist/providers/cli-provider.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,34 +1,18 @@
|
|
|
1
|
+
// Synthesizer is now only responsible for: executive summary + top 5 priorities.
|
|
2
|
+
// Deduplication, merging, and ranking are done locally before calling Claude.
|
|
1
3
|
export function buildSynthesizerPrompt() {
|
|
2
4
|
return `# Role: Synthesizer Agent
|
|
3
5
|
|
|
4
|
-
You
|
|
6
|
+
You receive a pre-merged, deduplicated list of code audit findings. Your ONLY job:
|
|
7
|
+
1. Write a concise executive summary (3-5 sentences) covering the main risk areas.
|
|
8
|
+
2. Pick the top 5 priorities the team should act on first — one sentence each.
|
|
5
9
|
|
|
6
10
|
## Allowed Tools
|
|
7
|
-
- None — all input is provided in the message
|
|
8
|
-
|
|
9
|
-
## Task
|
|
10
|
-
1. Merge all findings from all scanners
|
|
11
|
-
2. Deduplicate: if two scanners found the same issue in the same file+line, keep only one
|
|
12
|
-
3. Rank by severity: critical → high → medium → low → info
|
|
13
|
-
4. Identify the top 5 priorities the team should act on first
|
|
14
|
-
5. Write a concise executive summary (3-5 sentences)
|
|
11
|
+
- None — all input is provided in the message.
|
|
15
12
|
|
|
16
13
|
## Output
|
|
17
|
-
|
|
14
|
+
ONLY a valid JSON object, no prose, no markdown fences:
|
|
18
15
|
{
|
|
19
|
-
"findings": [
|
|
20
|
-
{
|
|
21
|
-
"file": string,
|
|
22
|
-
"line": number | null,
|
|
23
|
-
"severity": "critical" | "high" | "medium" | "low" | "info",
|
|
24
|
-
"category": "security" | "architecture" | "performance" | "testing" | "error-handling" | "types" | "maintainability" | "token-usage",
|
|
25
|
-
"finding": string,
|
|
26
|
-
"recommendation": string
|
|
27
|
-
}
|
|
28
|
-
],
|
|
29
|
-
"criticalCount": number,
|
|
30
|
-
"highCount": number,
|
|
31
|
-
"totalFiles": number,
|
|
32
16
|
"summary": string,
|
|
33
17
|
"topPriorities": string[]
|
|
34
18
|
}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synthesizer.js","sourceRoot":"","sources":["../../src/prompts/synthesizer.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,sBAAsB;IACpC,OAAO
|
|
1
|
+
{"version":3,"file":"synthesizer.js","sourceRoot":"","sources":["../../src/prompts/synthesizer.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,8EAA8E;AAC9E,MAAM,UAAU,sBAAsB;IACpC,OAAO;;;;;;;;;;;;;;EAcP,CAAC;AACH,CAAC"}
|
|
@@ -2,6 +2,7 @@ import type { ProviderName } from '../core/runtime-policy.js';
|
|
|
2
2
|
export type { ProviderRunInput, AgentProvider } from './types.js';
|
|
3
3
|
export declare const AGENT_TOOLS: Record<string, string[]>;
|
|
4
4
|
import type { ProviderRunInput, AgentProvider } from './types.js';
|
|
5
|
+
export declare function safeProcessEnv(extra?: Record<string, string | undefined>): NodeJS.ProcessEnv;
|
|
5
6
|
export declare class ClaudeCliProvider implements AgentProvider {
|
|
6
7
|
readonly name: "claude";
|
|
7
8
|
run(input: ProviderRunInput, onChunk?: (agentName: string, text: string) => void): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-provider.d.ts","sourceRoot":"","sources":["../../src/providers/cli-provider.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,2BAA2B,CAAC;AAI7E,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAOlE,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAQhD,CAAC;AAKF,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-provider.d.ts","sourceRoot":"","sources":["../../src/providers/cli-provider.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,2BAA2B,CAAC;AAI7E,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAOlE,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAQhD,CAAC;AAKF,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAElE,wBAAgB,cAAc,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAM,GAAG,MAAM,CAAC,UAAU,CAehG;AA4DD,qBAAa,iBAAkB,YAAW,aAAa;IACrD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAE5B,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;CA+BzG;AAED,qBAAa,gBAAiB,YAAW,aAAa;IACpD,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IAE3B,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;CA2BzG;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CAUvG"}
|
|
@@ -19,11 +19,29 @@ export const AGENT_TOOLS = {
|
|
|
19
19
|
qa: ['Bash', 'Read'],
|
|
20
20
|
};
|
|
21
21
|
const DEFAULT_TOOLS = ['Read', 'Glob', 'Grep'];
|
|
22
|
+
export function safeProcessEnv(extra = {}) {
|
|
23
|
+
const allowed = [
|
|
24
|
+
'PATH', 'HOME', 'USER', 'SHELL', 'TMPDIR', 'TEMP', 'TMP',
|
|
25
|
+
'LANG', 'LC_ALL', 'TERM', 'COLORTERM',
|
|
26
|
+
'ANTHROPIC_BASE_URL', 'CLAUDE_CODE_USE_BEDROCK', 'CLAUDE_CODE_USE_VERTEX',
|
|
27
|
+
'OPENROUTER_BASE_URL', 'AI_RUNTIME_CODEX_MODEL',
|
|
28
|
+
];
|
|
29
|
+
const env = {};
|
|
30
|
+
for (const key of allowed) {
|
|
31
|
+
if (process.env[key])
|
|
32
|
+
env[key] = process.env[key];
|
|
33
|
+
}
|
|
34
|
+
for (const [key, value] of Object.entries(extra)) {
|
|
35
|
+
if (value !== undefined)
|
|
36
|
+
env[key] = value;
|
|
37
|
+
}
|
|
38
|
+
return env;
|
|
39
|
+
}
|
|
22
40
|
function runProcess(command, args, cwd, agentName, maxOutputChars, onChunk) {
|
|
23
41
|
return new Promise((resolve, reject) => {
|
|
24
42
|
const proc = spawn(command, args, {
|
|
25
43
|
cwd,
|
|
26
|
-
env:
|
|
44
|
+
env: safeProcessEnv(),
|
|
27
45
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
28
46
|
});
|
|
29
47
|
let stdout = '';
|
|
@@ -114,11 +132,13 @@ export class CodexCliProvider {
|
|
|
114
132
|
'-s', 'workspace-write',
|
|
115
133
|
'-a', 'never',
|
|
116
134
|
'--ephemeral',
|
|
117
|
-
'--ignore-rules',
|
|
118
135
|
'--color', 'never',
|
|
119
136
|
'-o', outputFile,
|
|
120
137
|
prompt,
|
|
121
138
|
];
|
|
139
|
+
if (process.env['AION_CODEX_IGNORE_RULES'] === '1') {
|
|
140
|
+
args.splice(args.indexOf('--color'), 0, '--ignore-rules');
|
|
141
|
+
}
|
|
122
142
|
try {
|
|
123
143
|
await runProcess('codex', args, input.cwd, input.agentName, input.policy.maxOutputChars, onChunk);
|
|
124
144
|
onChunk?.(input.agentName, USAGE_UNAVAILABLE);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-provider.js","sourceRoot":"","sources":["../../src/providers/cli-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAG9D,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AACvC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AAClD,MAAM,2BAA2B,GAAG,OAAO,CAAC;AAE5C,kEAAkE;AAClE,MAAM,CAAC,MAAM,WAAW,GAA6B;IACnD,OAAO,EAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAC9C,sBAAsB,EAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAC1D,uBAAuB,EAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAC1D,0BAA0B,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAC5D,SAAS,EAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;IACvD,QAAQ,EAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAC9C,EAAE,EAAoB,CAAC,MAAM,EAAE,MAAM,CAAC;CACvC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAK/C,SAAS,UAAU,CACjB,OAAe,EACf,IAAc,EACd,GAAW,EACX,SAAiB,EACjB,cAAsB,EACtB,OAAmD;IAEnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YAChC,GAAG;YACH,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"cli-provider.js","sourceRoot":"","sources":["../../src/providers/cli-provider.ts"],"names":[],"mappings":"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"}
|