@aiready/cli 0.9.47 → 0.10.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/.turbo/turbo-build.log +8 -8
- package/.turbo/turbo-test.log +6 -7
- package/dist/{chunk-6FOVC2OE.mjs → chunk-EQ2HQSTJ.mjs} +83 -61
- package/dist/{chunk-MEXEG3IJ.mjs → chunk-VUCNUYI7.mjs} +90 -62
- package/dist/cli.js +105 -75
- package/dist/cli.mjs +30 -25
- package/dist/index.js +86 -61
- package/dist/index.mjs +1 -1
- package/package.json +12 -12
- package/src/.aiready/aiready-report-20260305-153847.json +8015 -0
- package/src/.aiready/aiready-report-20260305-154121.json +8015 -0
- package/src/.aiready/aiready-report-20260305-160026.json +8015 -0
- package/src/.aiready/aiready-report-20260305-160752.json +8015 -0
- package/src/.aiready/aiready-report-20260305-163858.json +8015 -0
- package/src/.aiready/aiready-report-20260305-171001.json +8317 -0
- package/src/.aiready/aiready-report-20260305-201337.json +8317 -0
- package/src/__tests__/cli.test.ts +6 -6
- package/src/commands/scan.ts +27 -22
- package/src/commands/visualize.ts +3 -3
- package/src/index.ts +109 -90
- package/dist/__tests__/cli.test.d.ts +0 -2
- package/dist/__tests__/cli.test.d.ts.map +0 -1
- package/dist/__tests__/cli.test.js +0 -52
- package/dist/__tests__/cli.test.js.map +0 -1
- package/dist/agent-grounding-DAOSU4MF.mjs +0 -7
- package/dist/chunk-2LXCBVPN.mjs +0 -109
- package/dist/chunk-3SG2GLFJ.mjs +0 -118
- package/dist/chunk-5GZDRZ3T.mjs +0 -126
- package/dist/chunk-DEZVFBPS.mjs +0 -111
- package/dist/chunk-G6SDH7ZS.mjs +0 -126
- package/dist/chunk-HLBKROD3.mjs +0 -237
- package/dist/chunk-JQG7ZATX.mjs +0 -211
- package/dist/chunk-LLJMKNBI.mjs +0 -243
- package/dist/chunk-M7O2MEM5.mjs +0 -211
- package/dist/chunk-N4SLON5K.mjs +0 -152
- package/dist/chunk-OVELUOM6.mjs +0 -112
- package/dist/chunk-P3XAXCTK.mjs +0 -110
- package/dist/chunk-PDOONNSK.mjs +0 -228
- package/dist/chunk-QXQP6BMO.mjs +0 -109
- package/dist/chunk-RBWLQRKR.mjs +0 -39
- package/dist/chunk-XAF2EW5H.mjs +0 -46
- package/dist/chunk-Y6FXYEAI.mjs +0 -10
- package/dist/chunk-YIS6WTY5.mjs +0 -35
- package/dist/cli.d.mts +0 -1
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/deps-health-UWVYJ7FZ.mjs +0 -47
- package/dist/doc-drift-G7MGAZAE.mjs +0 -47
- package/dist/hallucination-risk-XU6E7IGN.mjs +0 -7
- package/dist/index.d.mts +0 -33
- package/dist/index.d.ts +0 -32
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/testability-VDZJZ4MF.mjs +0 -7
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import "./chunk-Y6FXYEAI.mjs";
|
|
2
|
-
|
|
3
|
-
// src/commands/doc-drift.ts
|
|
4
|
-
import chalk from "chalk";
|
|
5
|
-
import { loadConfig, mergeConfigWithDefaults } from "@aiready/core";
|
|
6
|
-
async function docDriftAction(directory, options) {
|
|
7
|
-
const { analyzeDocDrift } = await import("@aiready/doc-drift");
|
|
8
|
-
const config = await loadConfig(directory);
|
|
9
|
-
const merged = mergeConfigWithDefaults(config, {
|
|
10
|
-
staleMonths: 6
|
|
11
|
-
});
|
|
12
|
-
const report = await analyzeDocDrift({
|
|
13
|
-
rootDir: directory,
|
|
14
|
-
include: options.include,
|
|
15
|
-
exclude: options.exclude,
|
|
16
|
-
staleMonths: options.staleMonths ?? merged.staleMonths ?? 6
|
|
17
|
-
});
|
|
18
|
-
const scoring = {
|
|
19
|
-
toolName: "doc-drift",
|
|
20
|
-
score: report.summary.score,
|
|
21
|
-
rawMetrics: report.rawData,
|
|
22
|
-
factors: [],
|
|
23
|
-
recommendations: report.recommendations.map((action) => ({ action, estimatedImpact: 5, priority: "medium" }))
|
|
24
|
-
};
|
|
25
|
-
if (options.output === "json") {
|
|
26
|
-
return scoring;
|
|
27
|
-
}
|
|
28
|
-
const { summary } = report;
|
|
29
|
-
const ratingColors = {
|
|
30
|
-
minimal: chalk.green,
|
|
31
|
-
low: chalk.cyan,
|
|
32
|
-
moderate: chalk.yellow,
|
|
33
|
-
high: chalk.red,
|
|
34
|
-
severe: chalk.bgRed.white
|
|
35
|
-
};
|
|
36
|
-
const color = ratingColors[summary.rating] ?? chalk.white;
|
|
37
|
-
console.log(` \u{1F4DD} Documentation Drift: ${chalk.bold(100 - scoring.score + "/100 health")} (${color(summary.rating)} risk)`);
|
|
38
|
-
if (report.issues.length > 0) {
|
|
39
|
-
console.log(chalk.dim(` Found ${report.issues.length} drift issues.`));
|
|
40
|
-
} else {
|
|
41
|
-
console.log(chalk.dim(` No documentation drift detected.`));
|
|
42
|
-
}
|
|
43
|
-
return scoring;
|
|
44
|
-
}
|
|
45
|
-
export {
|
|
46
|
-
docDriftAction
|
|
47
|
-
};
|
package/dist/index.d.mts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { ScanOptions, AnalysisResult } from '@aiready/core';
|
|
2
|
-
import { ContextAnalysisResult } from '@aiready/context-analyzer';
|
|
3
|
-
import { DuplicatePattern } from '@aiready/pattern-detect';
|
|
4
|
-
import { ConsistencyOptions, ConsistencyReport } from '@aiready/consistency';
|
|
5
|
-
|
|
6
|
-
interface UnifiedAnalysisOptions extends ScanOptions {
|
|
7
|
-
tools?: ('patterns' | 'context' | 'consistency')[];
|
|
8
|
-
minSimilarity?: number;
|
|
9
|
-
minLines?: number;
|
|
10
|
-
maxCandidatesPerBlock?: number;
|
|
11
|
-
minSharedTokens?: number;
|
|
12
|
-
useSmartDefaults?: boolean;
|
|
13
|
-
consistency?: Partial<ConsistencyOptions>;
|
|
14
|
-
progressCallback?: (event: {
|
|
15
|
-
tool: string;
|
|
16
|
-
data: any;
|
|
17
|
-
}) => void;
|
|
18
|
-
}
|
|
19
|
-
interface UnifiedAnalysisResult {
|
|
20
|
-
patterns?: AnalysisResult[];
|
|
21
|
-
duplicates?: DuplicatePattern[];
|
|
22
|
-
context?: ContextAnalysisResult[];
|
|
23
|
-
consistency?: ConsistencyReport;
|
|
24
|
-
summary: {
|
|
25
|
-
totalIssues: number;
|
|
26
|
-
toolsRun: string[];
|
|
27
|
-
executionTime: number;
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
declare function analyzeUnified(options: UnifiedAnalysisOptions): Promise<UnifiedAnalysisResult>;
|
|
31
|
-
declare function generateUnifiedSummary(result: UnifiedAnalysisResult): string;
|
|
32
|
-
|
|
33
|
-
export { type UnifiedAnalysisOptions, type UnifiedAnalysisResult, analyzeUnified, generateUnifiedSummary };
|
package/dist/index.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type { AnalysisResult, ScanOptions } from '@aiready/core';
|
|
2
|
-
import type { ContextAnalysisResult } from '@aiready/context-analyzer';
|
|
3
|
-
import type { DuplicatePattern } from '@aiready/pattern-detect';
|
|
4
|
-
import type { ConsistencyReport } from '@aiready/consistency';
|
|
5
|
-
import type { ConsistencyOptions } from '@aiready/consistency';
|
|
6
|
-
export interface UnifiedAnalysisOptions extends ScanOptions {
|
|
7
|
-
tools?: ('patterns' | 'context' | 'consistency')[];
|
|
8
|
-
minSimilarity?: number;
|
|
9
|
-
minLines?: number;
|
|
10
|
-
maxCandidatesPerBlock?: number;
|
|
11
|
-
minSharedTokens?: number;
|
|
12
|
-
useSmartDefaults?: boolean;
|
|
13
|
-
consistency?: Partial<ConsistencyOptions>;
|
|
14
|
-
progressCallback?: (event: {
|
|
15
|
-
tool: string;
|
|
16
|
-
data: any;
|
|
17
|
-
}) => void;
|
|
18
|
-
}
|
|
19
|
-
export interface UnifiedAnalysisResult {
|
|
20
|
-
patterns?: AnalysisResult[];
|
|
21
|
-
duplicates?: DuplicatePattern[];
|
|
22
|
-
context?: ContextAnalysisResult[];
|
|
23
|
-
consistency?: ConsistencyReport;
|
|
24
|
-
summary: {
|
|
25
|
-
totalIssues: number;
|
|
26
|
-
toolsRun: string[];
|
|
27
|
-
executionTime: number;
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
export declare function analyzeUnified(options: UnifiedAnalysisOptions): Promise<UnifiedAnalysisResult>;
|
|
31
|
-
export declare function generateUnifiedSummary(result: UnifiedAnalysisResult): string;
|
|
32
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAwB,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,KAAK,CAAC,EAAE,CAAC,UAAU,GAAG,SAAS,GAAG,aAAa,CAAC,EAAE,CAAC;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC1C,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;CACjE;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAClC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,OAAO,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAsCD,wBAAsB,cAAc,CAClC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAuEhC;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAqB5E"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|