@aicqtools/core 1.0.0-alpha.7 → 1.0.0-alpha.8

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.
@@ -1,4 +1,4 @@
1
1
  export { loadConfig, findConfigPath } from './loader.js';
2
- export { aicqConfigSchema, DEFAULT_EXCLUDE } from './schema.js';
3
- export type { AicqConfig } from './schema.js';
2
+ export { aicqConfigSchema, DEFAULT_EXCLUDE, ruleOverrideSchema } from './schema.js';
3
+ export type { AicqConfig, RuleOverride } from './schema.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -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,eAAe,EAAE,MAAM,aAAa,CAAC;AAChE,YAAY,EAAE,UAAU,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,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACpF,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export { loadConfig, findConfigPath } from './loader.js';
2
- export { aicqConfigSchema, DEFAULT_EXCLUDE } from './schema.js';
2
+ export { aicqConfigSchema, DEFAULT_EXCLUDE, ruleOverrideSchema } from './schema.js';
3
3
  //# sourceMappingURL=index.js.map
@@ -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,eAAe,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,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
@@ -10,21 +10,57 @@ export declare const localeSchema: z.ZodDefault<z.ZodEnum<["ko", "en"]>>;
10
10
  * `camelcase-migration-column` and seeder lints must still see those files.
11
11
  */
12
12
  export declare const DEFAULT_EXCLUDE: readonly string[];
13
+ /**
14
+ * Per-path rule overrides (alpha.8). Behaves like ESLint's `overrides`: each entry matches a list
15
+ * of micromatch globs against the file path and applies its `rules` map on top of the global one.
16
+ * Multiple matching entries are merged in declaration order — later entries win for the same rule.
17
+ * `off` drops the rule for that file; `warn`/`error` overrides its severity. Unknown rule ids are
18
+ * collected and reported via stderr once, so config typos surface early instead of silently no-op'ing.
19
+ */
20
+ export declare const ruleOverrideSchema: z.ZodObject<{
21
+ paths: z.ZodArray<z.ZodString, "many">;
22
+ rules: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<"off">, z.ZodLiteral<"warn">, z.ZodLiteral<"error">]>>>;
23
+ }, "strip", z.ZodTypeAny, {
24
+ paths: string[];
25
+ rules: Record<string, "error" | "off" | "warn">;
26
+ }, {
27
+ paths: string[];
28
+ rules?: Record<string, "error" | "off" | "warn"> | undefined;
29
+ }>;
30
+ export type RuleOverride = z.infer<typeof ruleOverrideSchema>;
13
31
  export declare const guardrailModuleSchema: z.ZodDefault<z.ZodObject<{
14
32
  enabled: z.ZodDefault<z.ZodBoolean>;
15
33
  rulesDir: z.ZodDefault<z.ZodString>;
16
34
  extends: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
17
35
  rules: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<"off">, z.ZodLiteral<"warn">, z.ZodLiteral<"error">]>>>;
36
+ overrides: z.ZodDefault<z.ZodArray<z.ZodObject<{
37
+ paths: z.ZodArray<z.ZodString, "many">;
38
+ rules: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<"off">, z.ZodLiteral<"warn">, z.ZodLiteral<"error">]>>>;
39
+ }, "strip", z.ZodTypeAny, {
40
+ paths: string[];
41
+ rules: Record<string, "error" | "off" | "warn">;
42
+ }, {
43
+ paths: string[];
44
+ rules?: Record<string, "error" | "off" | "warn"> | undefined;
45
+ }>, "many">>;
18
46
  }, "strip", z.ZodTypeAny, {
47
+ rules: Record<string, "error" | "off" | "warn">;
19
48
  enabled: boolean;
20
49
  rulesDir: string;
21
50
  extends: string[];
22
- rules: Record<string, "error" | "off" | "warn">;
51
+ overrides: {
52
+ paths: string[];
53
+ rules: Record<string, "error" | "off" | "warn">;
54
+ }[];
23
55
  }, {
56
+ rules?: Record<string, "error" | "off" | "warn"> | undefined;
24
57
  enabled?: boolean | undefined;
25
58
  rulesDir?: string | undefined;
26
59
  extends?: string[] | undefined;
27
- rules?: Record<string, "error" | "off" | "warn"> | undefined;
60
+ overrides?: {
61
+ paths: string[];
62
+ rules?: Record<string, "error" | "off" | "warn"> | undefined;
63
+ }[] | undefined;
28
64
  }>>;
29
65
  export declare const provenanceModuleSchema: z.ZodDefault<z.ZodObject<{
30
66
  enabled: z.ZodDefault<z.ZodBoolean>;
@@ -64,16 +100,34 @@ export declare const aicqConfigSchema: z.ZodObject<{
64
100
  rulesDir: z.ZodDefault<z.ZodString>;
65
101
  extends: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
66
102
  rules: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<"off">, z.ZodLiteral<"warn">, z.ZodLiteral<"error">]>>>;
103
+ overrides: z.ZodDefault<z.ZodArray<z.ZodObject<{
104
+ paths: z.ZodArray<z.ZodString, "many">;
105
+ rules: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<"off">, z.ZodLiteral<"warn">, z.ZodLiteral<"error">]>>>;
106
+ }, "strip", z.ZodTypeAny, {
107
+ paths: string[];
108
+ rules: Record<string, "error" | "off" | "warn">;
109
+ }, {
110
+ paths: string[];
111
+ rules?: Record<string, "error" | "off" | "warn"> | undefined;
112
+ }>, "many">>;
67
113
  }, "strip", z.ZodTypeAny, {
114
+ rules: Record<string, "error" | "off" | "warn">;
68
115
  enabled: boolean;
69
116
  rulesDir: string;
70
117
  extends: string[];
71
- rules: Record<string, "error" | "off" | "warn">;
118
+ overrides: {
119
+ paths: string[];
120
+ rules: Record<string, "error" | "off" | "warn">;
121
+ }[];
72
122
  }, {
123
+ rules?: Record<string, "error" | "off" | "warn"> | undefined;
73
124
  enabled?: boolean | undefined;
74
125
  rulesDir?: string | undefined;
75
126
  extends?: string[] | undefined;
76
- rules?: Record<string, "error" | "off" | "warn"> | undefined;
127
+ overrides?: {
128
+ paths: string[];
129
+ rules?: Record<string, "error" | "off" | "warn"> | undefined;
130
+ }[] | undefined;
77
131
  }>>;
78
132
  provenance: z.ZodDefault<z.ZodObject<{
79
133
  enabled: z.ZodDefault<z.ZodBoolean>;
@@ -97,10 +151,14 @@ export declare const aicqConfigSchema: z.ZodObject<{
97
151
  }>>;
98
152
  }, "strip", z.ZodTypeAny, {
99
153
  guardrail: {
154
+ rules: Record<string, "error" | "off" | "warn">;
100
155
  enabled: boolean;
101
156
  rulesDir: string;
102
157
  extends: string[];
103
- rules: Record<string, "error" | "off" | "warn">;
158
+ overrides: {
159
+ paths: string[];
160
+ rules: Record<string, "error" | "off" | "warn">;
161
+ }[];
104
162
  };
105
163
  provenance: {
106
164
  enabled: boolean;
@@ -112,10 +170,14 @@ export declare const aicqConfigSchema: z.ZodObject<{
112
170
  };
113
171
  }, {
114
172
  guardrail?: {
173
+ rules?: Record<string, "error" | "off" | "warn"> | undefined;
115
174
  enabled?: boolean | undefined;
116
175
  rulesDir?: string | undefined;
117
176
  extends?: string[] | undefined;
118
- rules?: Record<string, "error" | "off" | "warn"> | undefined;
177
+ overrides?: {
178
+ paths: string[];
179
+ rules?: Record<string, "error" | "off" | "warn"> | undefined;
180
+ }[] | undefined;
119
181
  } | undefined;
120
182
  provenance?: {
121
183
  enabled?: boolean | undefined;
@@ -133,10 +195,14 @@ export declare const aicqConfigSchema: z.ZodObject<{
133
195
  respectGitignore: boolean;
134
196
  modules: {
135
197
  guardrail: {
198
+ rules: Record<string, "error" | "off" | "warn">;
136
199
  enabled: boolean;
137
200
  rulesDir: string;
138
201
  extends: string[];
139
- rules: Record<string, "error" | "off" | "warn">;
202
+ overrides: {
203
+ paths: string[];
204
+ rules: Record<string, "error" | "off" | "warn">;
205
+ }[];
140
206
  };
141
207
  provenance: {
142
208
  enabled: boolean;
@@ -156,10 +222,14 @@ export declare const aicqConfigSchema: z.ZodObject<{
156
222
  respectGitignore?: boolean | undefined;
157
223
  modules?: {
158
224
  guardrail?: {
225
+ rules?: Record<string, "error" | "off" | "warn"> | undefined;
159
226
  enabled?: boolean | undefined;
160
227
  rulesDir?: string | undefined;
161
228
  extends?: string[] | undefined;
162
- rules?: Record<string, "error" | "off" | "warn"> | undefined;
229
+ overrides?: {
230
+ paths: string[];
231
+ rules?: Record<string, "error" | "off" | "warn"> | undefined;
232
+ }[] | undefined;
163
233
  } | undefined;
164
234
  provenance?: {
165
235
  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;;;;;;;;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"}
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;AAIH;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAQpB,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"}
@@ -50,12 +50,25 @@ export const DEFAULT_EXCLUDE = Object.freeze([
50
50
  '**/*.min.js',
51
51
  '**/*.bundle.js',
52
52
  ]);
53
+ const ruleLevelSchema = z.union([z.literal('off'), z.literal('warn'), z.literal('error')]);
54
+ /**
55
+ * Per-path rule overrides (alpha.8). Behaves like ESLint's `overrides`: each entry matches a list
56
+ * of micromatch globs against the file path and applies its `rules` map on top of the global one.
57
+ * Multiple matching entries are merged in declaration order — later entries win for the same rule.
58
+ * `off` drops the rule for that file; `warn`/`error` overrides its severity. Unknown rule ids are
59
+ * collected and reported via stderr once, so config typos surface early instead of silently no-op'ing.
60
+ */
61
+ export const ruleOverrideSchema = z.object({
62
+ paths: z.array(z.string().min(1)).min(1),
63
+ rules: z.record(ruleLevelSchema).default({}),
64
+ });
53
65
  export const guardrailModuleSchema = z
54
66
  .object({
55
67
  enabled: z.boolean().default(true),
56
68
  rulesDir: z.string().default('aicq/rules'),
57
69
  extends: z.array(z.string()).default([]),
58
- rules: z.record(z.union([z.literal('off'), z.literal('warn'), z.literal('error')])).default({}),
70
+ rules: z.record(ruleLevelSchema).default({}),
71
+ overrides: z.array(ruleOverrideSchema).default([]),
59
72
  })
60
73
  .default({});
61
74
  export const provenanceModuleSchema = z
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ export declare const messages: {
19
19
  readonly 'cli.check.parserFailed': "parser failed on {file}: {message}";
20
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
21
  readonly 'cli.check.unknownRuleId': "aicq.config.yaml references unknown rule `{id}` — ignored.";
22
+ readonly 'cli.check.unknownRuleIdInOverride': "aicq.config.yaml overrides[{index}] references unknown rule `{id}` (paths: {paths}) — ignored.";
22
23
  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
24
  readonly 'cli.rules.suggest.header': "{files} files scanned ({langs}), {ms}ms";
24
25
  readonly 'cli.rules.suggest.tableHeader': "rule hits severity message";
@@ -46,6 +47,7 @@ export declare const messages: {
46
47
  readonly 'cli.check.parserFailed': "{file} 파서 실패: {message}";
47
48
  readonly 'cli.check.largeScanHint': "안내: {files}개 파일을 스캔했고 aicq.config.yaml이 없습니다. `include`/`exclude` 범위를 좁히는 config 작성 또는 `respectGitignore: true` 설정을 검토하세요. 시작점은 `aicq rules suggest`.";
48
49
  readonly 'cli.check.unknownRuleId': "aicq.config.yaml에서 알 수 없는 룰 `{id}` 참조 — 무시함.";
50
+ readonly 'cli.check.unknownRuleIdInOverride': "aicq.config.yaml overrides[{index}]에서 알 수 없는 룰 `{id}` 참조 (paths: {paths}) — 무시함.";
49
51
  readonly 'cli.check.noisyRuleHint': "안내: `{id}`이(가) {count}회 적중했습니다. aicq.config.yaml의 `modules.guardrail.rules`에 `{id}: off` 또는 프로젝트별 튜닝을 검토하세요.";
50
52
  readonly 'cli.rules.suggest.header': "파일 {files}개 검사 ({langs}), {ms}ms";
51
53
  readonly 'cli.rules.suggest.tableHeader': "룰 적중 심각도 메시지";
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+DX,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,QAAQ,CAAC,EAAE,CAAC"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmEX,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,QAAQ,CAAC,EAAE,CAAC"}
@@ -18,6 +18,7 @@ export const messages = {
18
18
  'cli.check.parserFailed': 'parser failed on {file}: {message}',
19
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
20
  'cli.check.unknownRuleId': 'aicq.config.yaml references unknown rule `{id}` — ignored.',
21
+ 'cli.check.unknownRuleIdInOverride': 'aicq.config.yaml overrides[{index}] references unknown rule `{id}` (paths: {paths}) — ignored.',
21
22
  '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
23
  'cli.rules.suggest.header': '{files} files scanned ({langs}), {ms}ms',
23
24
  'cli.rules.suggest.tableHeader': 'rule hits severity message',
@@ -45,6 +46,7 @@ export const messages = {
45
46
  'cli.check.parserFailed': '{file} 파서 실패: {message}',
46
47
  'cli.check.largeScanHint': '안내: {files}개 파일을 스캔했고 aicq.config.yaml이 없습니다. `include`/`exclude` 범위를 좁히는 config 작성 또는 `respectGitignore: true` 설정을 검토하세요. 시작점은 `aicq rules suggest`.',
47
48
  'cli.check.unknownRuleId': 'aicq.config.yaml에서 알 수 없는 룰 `{id}` 참조 — 무시함.',
49
+ 'cli.check.unknownRuleIdInOverride': 'aicq.config.yaml overrides[{index}]에서 알 수 없는 룰 `{id}` 참조 (paths: {paths}) — 무시함.',
48
50
  'cli.check.noisyRuleHint': '안내: `{id}`이(가) {count}회 적중했습니다. aicq.config.yaml의 `modules.guardrail.rules`에 `{id}: off` 또는 프로젝트별 튜닝을 검토하세요.',
49
51
  'cli.rules.suggest.header': '파일 {files}개 검사 ({langs}), {ms}ms',
50
52
  'cli.rules.suggest.tableHeader': '룰 적중 심각도 메시지',
@@ -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;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"}
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,mCAAmC,EACjC,gGAAgG;QAClG,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,mCAAmC,EACjC,kFAAkF;QACpF,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,7 +1,7 @@
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, DEFAULT_EXCLUDE } from './config/index.js';
4
- export type { AicqConfig } from './config/index.js';
3
+ export { loadConfig, findConfigPath, aicqConfigSchema, DEFAULT_EXCLUDE, ruleOverrideSchema } from './config/index.js';
4
+ export type { AicqConfig, RuleOverride } from './config/index.js';
5
5
  export { reportJson, reportText, reportSarif } from './reporter/index.js';
6
6
  export { FileCache, hashRulesetSignature } from './cache/index.js';
7
7
  export type { CacheKey } from './cache/index.js';
@@ -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,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"}
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,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACtH,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAClE,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, DEFAULT_EXCLUDE } from './config/index.js';
2
+ export { loadConfig, findConfigPath, aicqConfigSchema, DEFAULT_EXCLUDE, ruleOverrideSchema } 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,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"}
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,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEtH,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.7",
3
+ "version": "1.0.0-alpha.8",
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": [