@aicqtools/core 1.0.0-alpha.5 → 1.0.0-alpha.7
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/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/schema.d.ts +19 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +58 -3
- package/dist/config/schema.js.map +1 -1
- package/dist/i18n/messages.d.ts +30 -0
- package/dist/i18n/messages.d.ts.map +1 -1
- package/dist/i18n/messages.js +30 -0
- package/dist/i18n/messages.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/config/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAChE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/config/index.js
CHANGED
package/dist/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export declare const localeSchema: z.ZodDefault<z.ZodEnum<["ko", "en"]>>;
|
|
3
|
+
/**
|
|
4
|
+
* Default `exclude` globs.
|
|
5
|
+
*
|
|
6
|
+
* Two principles:
|
|
7
|
+
* 1. Only widely-used framework conventions — never a single project's directory names.
|
|
8
|
+
* 2. Only build artifacts / vendored deps / minified output — NEVER source-adjacent dirs like
|
|
9
|
+
* `**\/migrations/**`, `**\/seeders/**`, or `**\/database/**`, because rules such as
|
|
10
|
+
* `camelcase-migration-column` and seeder lints must still see those files.
|
|
11
|
+
*/
|
|
12
|
+
export declare const DEFAULT_EXCLUDE: readonly string[];
|
|
3
13
|
export declare const guardrailModuleSchema: z.ZodDefault<z.ZodObject<{
|
|
4
14
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
5
15
|
rulesDir: z.ZodDefault<z.ZodString>;
|
|
@@ -41,6 +51,13 @@ export declare const aicqConfigSchema: z.ZodObject<{
|
|
|
41
51
|
locale: z.ZodDefault<z.ZodEnum<["ko", "en"]>>;
|
|
42
52
|
include: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
43
53
|
exclude: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
54
|
+
/**
|
|
55
|
+
* When true, the file walker reads the repo-root `.gitignore` and appends its entries to the
|
|
56
|
+
* effective exclude list. Default false to keep behavior deterministic (a project changing
|
|
57
|
+
* `.gitignore` should not silently change what aicqtools scans). Only the root `.gitignore`
|
|
58
|
+
* is honored; nested gitignore files are left for a future release.
|
|
59
|
+
*/
|
|
60
|
+
respectGitignore: z.ZodDefault<z.ZodBoolean>;
|
|
44
61
|
modules: z.ZodDefault<z.ZodObject<{
|
|
45
62
|
guardrail: z.ZodDefault<z.ZodObject<{
|
|
46
63
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -113,6 +130,7 @@ export declare const aicqConfigSchema: z.ZodObject<{
|
|
|
113
130
|
locale: "ko" | "en";
|
|
114
131
|
include: string[];
|
|
115
132
|
exclude: string[];
|
|
133
|
+
respectGitignore: boolean;
|
|
116
134
|
modules: {
|
|
117
135
|
guardrail: {
|
|
118
136
|
enabled: boolean;
|
|
@@ -135,6 +153,7 @@ export declare const aicqConfigSchema: z.ZodObject<{
|
|
|
135
153
|
locale?: "ko" | "en" | undefined;
|
|
136
154
|
include?: string[] | undefined;
|
|
137
155
|
exclude?: string[] | undefined;
|
|
156
|
+
respectGitignore?: boolean | undefined;
|
|
138
157
|
modules?: {
|
|
139
158
|
guardrail?: {
|
|
140
159
|
enabled?: boolean | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY,uCAAqC,CAAC;AAE/D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;GAOpB,CAAC;AAEf,eAAO,MAAM,sBAAsB;;;;;;;;;;;;GAMrB,CAAC;AAEf,eAAO,MAAM,uBAAuB;;;;;;GAItB,CAAC;AAEf,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY,uCAAqC,CAAC;AAE/D;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAwC3C,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;GAOpB,CAAC;AAEf,eAAO,MAAM,sBAAsB;;;;;;;;;;;;GAMrB,CAAC;AAEf,eAAO,MAAM,uBAAuB;;;;;;GAItB,CAAC;AAEf,eAAO,MAAM,gBAAgB;;;;;IAK3B;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASH,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
package/dist/config/schema.js
CHANGED
|
@@ -1,5 +1,55 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export const localeSchema = z.enum(['ko', 'en']).default('en');
|
|
3
|
+
/**
|
|
4
|
+
* Default `exclude` globs.
|
|
5
|
+
*
|
|
6
|
+
* Two principles:
|
|
7
|
+
* 1. Only widely-used framework conventions — never a single project's directory names.
|
|
8
|
+
* 2. Only build artifacts / vendored deps / minified output — NEVER source-adjacent dirs like
|
|
9
|
+
* `**\/migrations/**`, `**\/seeders/**`, or `**\/database/**`, because rules such as
|
|
10
|
+
* `camelcase-migration-column` and seeder lints must still see those files.
|
|
11
|
+
*/
|
|
12
|
+
export const DEFAULT_EXCLUDE = Object.freeze([
|
|
13
|
+
// Node deps + classic build outputs (carried over from alpha.6)
|
|
14
|
+
'**/node_modules/**',
|
|
15
|
+
'**/dist/**',
|
|
16
|
+
'**/.turbo/**',
|
|
17
|
+
'**/build/**',
|
|
18
|
+
// Framework export & cache dirs (Next, Nuxt, SvelteKit, Astro, Docusaurus, VitePress)
|
|
19
|
+
'**/out/**',
|
|
20
|
+
'**/.next/**',
|
|
21
|
+
'**/.nuxt/**',
|
|
22
|
+
'**/.svelte-kit/**',
|
|
23
|
+
'**/.astro/**',
|
|
24
|
+
'**/.docusaurus/**',
|
|
25
|
+
'**/.vitepress/dist/**',
|
|
26
|
+
// Hosting / bundler caches
|
|
27
|
+
'**/.vercel/**',
|
|
28
|
+
'**/.netlify/**',
|
|
29
|
+
'**/.expo/**',
|
|
30
|
+
'**/.cache/**',
|
|
31
|
+
'**/.parcel-cache/**',
|
|
32
|
+
// Test reports, coverage, storybook builds
|
|
33
|
+
'**/coverage/**',
|
|
34
|
+
'**/.nyc_output/**',
|
|
35
|
+
'**/storybook-static/**',
|
|
36
|
+
// Capacitor webDir copies — the mobile native dirs ship a minified copy of the web bundle.
|
|
37
|
+
// (We intentionally do NOT exclude all of ios/** or android/** — only the copied public bundle.)
|
|
38
|
+
'**/ios/App/**/public/**',
|
|
39
|
+
'**/android/app/src/main/assets/public/**',
|
|
40
|
+
'**/android/**/assets/public/**',
|
|
41
|
+
// Python vendored deps & caches
|
|
42
|
+
'**/__pycache__/**',
|
|
43
|
+
'**/.venv/**',
|
|
44
|
+
'**/venv/**',
|
|
45
|
+
'**/.tox/**',
|
|
46
|
+
'**/.mypy_cache/**',
|
|
47
|
+
'**/.pytest_cache/**',
|
|
48
|
+
'**/vendor/**',
|
|
49
|
+
// Minified / pre-bundled output guard (one minified file flips no-magic-number into the thousands)
|
|
50
|
+
'**/*.min.js',
|
|
51
|
+
'**/*.bundle.js',
|
|
52
|
+
]);
|
|
3
53
|
export const guardrailModuleSchema = z
|
|
4
54
|
.object({
|
|
5
55
|
enabled: z.boolean().default(true),
|
|
@@ -24,9 +74,14 @@ export const aicqConfigSchema = z.object({
|
|
|
24
74
|
$schema: z.string().optional(),
|
|
25
75
|
locale: localeSchema,
|
|
26
76
|
include: z.array(z.string()).default(['**/*.{ts,tsx,js,mjs,cjs,jsx,py}']),
|
|
27
|
-
exclude: z
|
|
28
|
-
|
|
29
|
-
|
|
77
|
+
exclude: z.array(z.string()).default([...DEFAULT_EXCLUDE]),
|
|
78
|
+
/**
|
|
79
|
+
* When true, the file walker reads the repo-root `.gitignore` and appends its entries to the
|
|
80
|
+
* effective exclude list. Default false to keep behavior deterministic (a project changing
|
|
81
|
+
* `.gitignore` should not silently change what aicqtools scans). Only the root `.gitignore`
|
|
82
|
+
* is honored; nested gitignore files are left for a future release.
|
|
83
|
+
*/
|
|
84
|
+
respectGitignore: z.boolean().default(false),
|
|
30
85
|
modules: z
|
|
31
86
|
.object({
|
|
32
87
|
guardrail: guardrailModuleSchema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE/D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAChG,CAAC;KACD,OAAO,CAAC,EAAE,CAAC,CAAC;AAEf,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACpC,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnC,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC;CAC9C,CAAC;KACD,OAAO,CAAC,EAAE,CAAC,CAAC;AAEf,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACrC,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACpC,CAAC;KACD,OAAO,CAAC,EAAE,CAAC,CAAC;AAEf,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,iCAAiC,CAAC,CAAC;IACzE,OAAO,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/i18n/messages.d.ts
CHANGED
|
@@ -17,6 +17,21 @@ export declare const messages: {
|
|
|
17
17
|
readonly 'cli.docs.generated': "rule docs generated: {count} files in {dir}";
|
|
18
18
|
readonly 'cli.error.generic': "aicq error: {message}";
|
|
19
19
|
readonly 'cli.check.parserFailed': "parser failed on {file}: {message}";
|
|
20
|
+
readonly 'cli.check.largeScanHint': "hint: {files} files scanned and no aicq.config.yaml was found. Consider adding a config to scope `include`/`exclude`, or set `respectGitignore: true`. Run `aicq rules suggest` for a starting point.";
|
|
21
|
+
readonly 'cli.check.unknownRuleId': "aicq.config.yaml references unknown rule `{id}` — ignored.";
|
|
22
|
+
readonly 'cli.check.noisyRuleHint': "hint: `{id}` fired {count} times. Consider setting `{id}: off` under `modules.guardrail.rules` in aicq.config.yaml, or narrow it with project-specific tuning.";
|
|
23
|
+
readonly 'cli.rules.suggest.header': "{files} files scanned ({langs}), {ms}ms";
|
|
24
|
+
readonly 'cli.rules.suggest.tableHeader': "rule hits severity message";
|
|
25
|
+
readonly 'cli.rules.suggest.none': "No built-in rule matched this repo. Nothing to suggest.";
|
|
26
|
+
readonly 'cli.rules.suggest.detectedStack': "Detected stack: {deps}";
|
|
27
|
+
readonly 'cli.rules.suggest.configHint': "Add to aicq.config.yaml:";
|
|
28
|
+
readonly 'cli.rules.suggest.stackMatchNote': "(stack match)";
|
|
29
|
+
readonly 'cli.rules.suggest.noisyNote': "(very high count — likely noisy, tune before enabling)";
|
|
30
|
+
readonly 'cli.rules.suggest.patternDraftsHeader': "Draft pattern rules ({count}) — review before placing under rulesDir:";
|
|
31
|
+
readonly 'cli.rules.suggest.snippetBanner': "Generated by `aicq rules suggest` on {date}.\nBaseline suggestion — review every line before committing. Info-severity\nand high-noise rules are emitted commented-out; uncomment after tuning.\nProject-specific rules belong in your `rulesDir`, not in this map.";
|
|
32
|
+
readonly 'cli.rules.suggest.patternDraftsBanner': "Auto-suggested draft pattern rules — review & edit, then place each under your rulesDir.";
|
|
33
|
+
readonly 'cli.rules.suggest.experimentalLabel': "EXPERIMENTAL";
|
|
34
|
+
readonly 'cli.rules.suggest.written': "wrote {count} suggestion(s) to {path}";
|
|
20
35
|
};
|
|
21
36
|
readonly ko: {
|
|
22
37
|
readonly 'cli.check.scanned': "파일 {files}개 검사, 위반 {violations}개, {ms}ms 소요";
|
|
@@ -29,6 +44,21 @@ export declare const messages: {
|
|
|
29
44
|
readonly 'cli.docs.generated': "룰 docs 생성됨: {dir}에 {count}개 파일";
|
|
30
45
|
readonly 'cli.error.generic': "aicq 오류: {message}";
|
|
31
46
|
readonly 'cli.check.parserFailed': "{file} 파서 실패: {message}";
|
|
47
|
+
readonly 'cli.check.largeScanHint': "안내: {files}개 파일을 스캔했고 aicq.config.yaml이 없습니다. `include`/`exclude` 범위를 좁히는 config 작성 또는 `respectGitignore: true` 설정을 검토하세요. 시작점은 `aicq rules suggest`.";
|
|
48
|
+
readonly 'cli.check.unknownRuleId': "aicq.config.yaml에서 알 수 없는 룰 `{id}` 참조 — 무시함.";
|
|
49
|
+
readonly 'cli.check.noisyRuleHint': "안내: `{id}`이(가) {count}회 적중했습니다. aicq.config.yaml의 `modules.guardrail.rules`에 `{id}: off` 또는 프로젝트별 튜닝을 검토하세요.";
|
|
50
|
+
readonly 'cli.rules.suggest.header': "파일 {files}개 검사 ({langs}), {ms}ms";
|
|
51
|
+
readonly 'cli.rules.suggest.tableHeader': "룰 적중 심각도 메시지";
|
|
52
|
+
readonly 'cli.rules.suggest.none': "이 저장소에 매치된 내장 룰이 없습니다. 제안할 항목 없음.";
|
|
53
|
+
readonly 'cli.rules.suggest.detectedStack': "감지된 스택: {deps}";
|
|
54
|
+
readonly 'cli.rules.suggest.configHint': "aicq.config.yaml에 추가:";
|
|
55
|
+
readonly 'cli.rules.suggest.stackMatchNote': "(스택 매치)";
|
|
56
|
+
readonly 'cli.rules.suggest.noisyNote': "(적중 매우 많음 — 노이즈 가능성, 활성화 전 조정 권장)";
|
|
57
|
+
readonly 'cli.rules.suggest.patternDraftsHeader': "룰 초안 ({count}개) — rulesDir에 두기 전 검토하세요:";
|
|
58
|
+
readonly 'cli.rules.suggest.snippetBanner': "`aicq rules suggest`로 {date}에 자동 생성.\n베이스라인 제안일 뿐 — 커밋 전 모든 줄을 검토하세요. info-severity 및\n노이즈가 높은 룰은 주석 처리됐습니다; 튜닝 후 주석 해제하세요.\n프로젝트 고유 룰은 이 맵이 아니라 `rulesDir`에 두세요.";
|
|
59
|
+
readonly 'cli.rules.suggest.patternDraftsBanner': "자동 제안된 패턴 룰 초안 — 검토·수정 후 rulesDir에 배치하세요.";
|
|
60
|
+
readonly 'cli.rules.suggest.experimentalLabel': "실험적";
|
|
61
|
+
readonly 'cli.rules.suggest.written': "제안 {count}건을 {path}에 기록";
|
|
32
62
|
};
|
|
33
63
|
};
|
|
34
64
|
export type MessageKey = keyof typeof messages.en;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjC,eAAO,MAAM,QAAQ
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjC,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+DX,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,QAAQ,CAAC,EAAE,CAAC"}
|
package/dist/i18n/messages.js
CHANGED
|
@@ -16,6 +16,21 @@ export const messages = {
|
|
|
16
16
|
'cli.docs.generated': 'rule docs generated: {count} files in {dir}',
|
|
17
17
|
'cli.error.generic': 'aicq error: {message}',
|
|
18
18
|
'cli.check.parserFailed': 'parser failed on {file}: {message}',
|
|
19
|
+
'cli.check.largeScanHint': 'hint: {files} files scanned and no aicq.config.yaml was found. Consider adding a config to scope `include`/`exclude`, or set `respectGitignore: true`. Run `aicq rules suggest` for a starting point.',
|
|
20
|
+
'cli.check.unknownRuleId': 'aicq.config.yaml references unknown rule `{id}` — ignored.',
|
|
21
|
+
'cli.check.noisyRuleHint': 'hint: `{id}` fired {count} times. Consider setting `{id}: off` under `modules.guardrail.rules` in aicq.config.yaml, or narrow it with project-specific tuning.',
|
|
22
|
+
'cli.rules.suggest.header': '{files} files scanned ({langs}), {ms}ms',
|
|
23
|
+
'cli.rules.suggest.tableHeader': 'rule hits severity message',
|
|
24
|
+
'cli.rules.suggest.none': 'No built-in rule matched this repo. Nothing to suggest.',
|
|
25
|
+
'cli.rules.suggest.detectedStack': 'Detected stack: {deps}',
|
|
26
|
+
'cli.rules.suggest.configHint': 'Add to aicq.config.yaml:',
|
|
27
|
+
'cli.rules.suggest.stackMatchNote': '(stack match)',
|
|
28
|
+
'cli.rules.suggest.noisyNote': '(very high count — likely noisy, tune before enabling)',
|
|
29
|
+
'cli.rules.suggest.patternDraftsHeader': 'Draft pattern rules ({count}) — review before placing under rulesDir:',
|
|
30
|
+
'cli.rules.suggest.snippetBanner': 'Generated by `aicq rules suggest` on {date}.\nBaseline suggestion — review every line before committing. Info-severity\nand high-noise rules are emitted commented-out; uncomment after tuning.\nProject-specific rules belong in your `rulesDir`, not in this map.',
|
|
31
|
+
'cli.rules.suggest.patternDraftsBanner': 'Auto-suggested draft pattern rules — review & edit, then place each under your rulesDir.',
|
|
32
|
+
'cli.rules.suggest.experimentalLabel': 'EXPERIMENTAL',
|
|
33
|
+
'cli.rules.suggest.written': 'wrote {count} suggestion(s) to {path}',
|
|
19
34
|
},
|
|
20
35
|
ko: {
|
|
21
36
|
'cli.check.scanned': '파일 {files}개 검사, 위반 {violations}개, {ms}ms 소요',
|
|
@@ -28,6 +43,21 @@ export const messages = {
|
|
|
28
43
|
'cli.docs.generated': '룰 docs 생성됨: {dir}에 {count}개 파일',
|
|
29
44
|
'cli.error.generic': 'aicq 오류: {message}',
|
|
30
45
|
'cli.check.parserFailed': '{file} 파서 실패: {message}',
|
|
46
|
+
'cli.check.largeScanHint': '안내: {files}개 파일을 스캔했고 aicq.config.yaml이 없습니다. `include`/`exclude` 범위를 좁히는 config 작성 또는 `respectGitignore: true` 설정을 검토하세요. 시작점은 `aicq rules suggest`.',
|
|
47
|
+
'cli.check.unknownRuleId': 'aicq.config.yaml에서 알 수 없는 룰 `{id}` 참조 — 무시함.',
|
|
48
|
+
'cli.check.noisyRuleHint': '안내: `{id}`이(가) {count}회 적중했습니다. aicq.config.yaml의 `modules.guardrail.rules`에 `{id}: off` 또는 프로젝트별 튜닝을 검토하세요.',
|
|
49
|
+
'cli.rules.suggest.header': '파일 {files}개 검사 ({langs}), {ms}ms',
|
|
50
|
+
'cli.rules.suggest.tableHeader': '룰 적중 심각도 메시지',
|
|
51
|
+
'cli.rules.suggest.none': '이 저장소에 매치된 내장 룰이 없습니다. 제안할 항목 없음.',
|
|
52
|
+
'cli.rules.suggest.detectedStack': '감지된 스택: {deps}',
|
|
53
|
+
'cli.rules.suggest.configHint': 'aicq.config.yaml에 추가:',
|
|
54
|
+
'cli.rules.suggest.stackMatchNote': '(스택 매치)',
|
|
55
|
+
'cli.rules.suggest.noisyNote': '(적중 매우 많음 — 노이즈 가능성, 활성화 전 조정 권장)',
|
|
56
|
+
'cli.rules.suggest.patternDraftsHeader': '룰 초안 ({count}개) — rulesDir에 두기 전 검토하세요:',
|
|
57
|
+
'cli.rules.suggest.snippetBanner': '`aicq rules suggest`로 {date}에 자동 생성.\n베이스라인 제안일 뿐 — 커밋 전 모든 줄을 검토하세요. info-severity 및\n노이즈가 높은 룰은 주석 처리됐습니다; 튜닝 후 주석 해제하세요.\n프로젝트 고유 룰은 이 맵이 아니라 `rulesDir`에 두세요.',
|
|
58
|
+
'cli.rules.suggest.patternDraftsBanner': '자동 제안된 패턴 룰 초안 — 검토·수정 후 rulesDir에 배치하세요.',
|
|
59
|
+
'cli.rules.suggest.experimentalLabel': '실험적',
|
|
60
|
+
'cli.rules.suggest.written': '제안 {count}건을 {path}에 기록',
|
|
31
61
|
},
|
|
32
62
|
};
|
|
33
63
|
//# sourceMappingURL=messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,EAAE,EAAE;QACF,mBAAmB,EAAE,wDAAwD;QAC7E,wBAAwB,EAAE,gBAAgB;QAC1C,2BAA2B,EAAE,2BAA2B;QACxD,kBAAkB,EAAE,iBAAiB;QACrC,yBAAyB,EAAE,6BAA6B;QACxD,wBAAwB,EAAE,wDAAwD;QAClF,+BAA+B,EAAE,4CAA4C;QAC7E,oBAAoB,EAAE,6CAA6C;QACnE,mBAAmB,EAAE,uBAAuB;QAC5C,wBAAwB,EAAE,oCAAoC;
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,EAAE,EAAE;QACF,mBAAmB,EAAE,wDAAwD;QAC7E,wBAAwB,EAAE,gBAAgB;QAC1C,2BAA2B,EAAE,2BAA2B;QACxD,kBAAkB,EAAE,iBAAiB;QACrC,yBAAyB,EAAE,6BAA6B;QACxD,wBAAwB,EAAE,wDAAwD;QAClF,+BAA+B,EAAE,4CAA4C;QAC7E,oBAAoB,EAAE,6CAA6C;QACnE,mBAAmB,EAAE,uBAAuB;QAC5C,wBAAwB,EAAE,oCAAoC;QAC9D,yBAAyB,EACvB,uMAAuM;QACzM,yBAAyB,EAAE,4DAA4D;QACvF,yBAAyB,EACvB,gKAAgK;QAClK,0BAA0B,EAAE,yCAAyC;QACrE,+BAA+B,EAAE,+BAA+B;QAChE,wBAAwB,EAAE,yDAAyD;QACnF,iCAAiC,EAAE,wBAAwB;QAC3D,8BAA8B,EAAE,0BAA0B;QAC1D,kCAAkC,EAAE,eAAe;QACnD,6BAA6B,EAAE,wDAAwD;QACvF,uCAAuC,EAAE,uEAAuE;QAChH,iCAAiC,EAC/B,qQAAqQ;QACvQ,uCAAuC,EACrC,0FAA0F;QAC5F,qCAAqC,EAAE,cAAc;QACrD,2BAA2B,EAAE,uCAAuC;KACrE;IACD,EAAE,EAAE;QACF,mBAAmB,EAAE,6CAA6C;QAClE,wBAAwB,EAAE,QAAQ;QAClC,2BAA2B,EAAE,iBAAiB;QAC9C,kBAAkB,EAAE,aAAa;QACjC,yBAAyB,EAAE,kBAAkB;QAC7C,wBAAwB,EAAE,oDAAoD;QAC9E,+BAA+B,EAAE,+BAA+B;QAChE,oBAAoB,EAAE,gCAAgC;QACtD,mBAAmB,EAAE,oBAAoB;QACzC,wBAAwB,EAAE,yBAAyB;QACnD,yBAAyB,EACvB,uJAAuJ;QACzJ,yBAAyB,EAAE,8CAA8C;QACzE,yBAAyB,EACvB,8GAA8G;QAChH,0BAA0B,EAAE,kCAAkC;QAC9D,+BAA+B,EAAE,iBAAiB;QAClD,wBAAwB,EAAE,mCAAmC;QAC7D,iCAAiC,EAAE,gBAAgB;QACnD,8BAA8B,EAAE,uBAAuB;QACvD,kCAAkC,EAAE,SAAS;QAC7C,6BAA6B,EAAE,mCAAmC;QAClE,uCAAuC,EAAE,yCAAyC;QAClF,iCAAiC,EAC/B,mKAAmK;QACrK,uCAAuC,EACrC,2CAA2C;QAC7C,qCAAqC,EAAE,KAAK;QAC5C,2BAA2B,EAAE,yBAAyB;KACvD;CACO,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type { Severity, Language, Position, Range, Fix, Diagnostic, CheckResult, } from './types.js';
|
|
2
2
|
export { getParser, parseSource, detectLanguage, loadLanguage } from './parser/index.js';
|
|
3
|
-
export { loadConfig, findConfigPath, aicqConfigSchema } from './config/index.js';
|
|
3
|
+
export { loadConfig, findConfigPath, aicqConfigSchema, DEFAULT_EXCLUDE } from './config/index.js';
|
|
4
4
|
export type { AicqConfig } from './config/index.js';
|
|
5
5
|
export { reportJson, reportText, reportSarif } from './reporter/index.js';
|
|
6
6
|
export { FileCache, hashRulesetSignature } from './cache/index.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,GAAG,EACH,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,GAAG,EACH,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAClG,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC7D,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { getParser, parseSource, detectLanguage, loadLanguage } from './parser/index.js';
|
|
2
|
-
export { loadConfig, findConfigPath, aicqConfigSchema } from './config/index.js';
|
|
2
|
+
export { loadConfig, findConfigPath, aicqConfigSchema, DEFAULT_EXCLUDE } from './config/index.js';
|
|
3
3
|
export { reportJson, reportText, reportSarif } from './reporter/index.js';
|
|
4
4
|
export { FileCache, hashRulesetSignature } from './cache/index.js';
|
|
5
5
|
export { t, resolveLocale, messages } from './i18n/index.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAElG,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aicqtools/core",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Shared core for aicqtools — tree-sitter parser, sqlite incremental cache, SARIF/JSON/text reporters, config loader, i18n.",
|
|
6
6
|
"keywords": [
|