intentpatch 0.5.0 → 0.6.0

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.
Files changed (80) hide show
  1. package/README.ko.md +31 -16
  2. package/README.md +21 -13
  3. package/dist/application/ports/agent-intent-session-store.d.ts +11 -0
  4. package/dist/application/ports/agent-intent-session-store.d.ts.map +1 -0
  5. package/dist/application/ports/agent-intent-session-store.js +2 -0
  6. package/dist/application/ports/agent-intent-session-store.js.map +1 -0
  7. package/dist/application/ports/function-signature-compatibility.d.ts +8 -0
  8. package/dist/application/ports/function-signature-compatibility.d.ts.map +1 -0
  9. package/dist/application/ports/function-signature-compatibility.js +2 -0
  10. package/dist/application/ports/function-signature-compatibility.js.map +1 -0
  11. package/dist/application/ports/module-alias-resolver.d.ts +2 -1
  12. package/dist/application/ports/module-alias-resolver.d.ts.map +1 -1
  13. package/dist/application/ports/project-file-source.d.ts +4 -3
  14. package/dist/application/ports/project-file-source.d.ts.map +1 -1
  15. package/dist/application/ports/public-api-boundary.d.ts +6 -0
  16. package/dist/application/ports/public-api-boundary.d.ts.map +1 -0
  17. package/dist/application/ports/public-api-boundary.js +2 -0
  18. package/dist/application/ports/public-api-boundary.js.map +1 -0
  19. package/dist/application/rules/public-api-compatibility-rule.d.ts +3 -0
  20. package/dist/application/rules/public-api-compatibility-rule.d.ts.map +1 -1
  21. package/dist/application/rules/public-api-compatibility-rule.js +85 -11
  22. package/dist/application/rules/public-api-compatibility-rule.js.map +1 -1
  23. package/dist/application/rules/public-api-removal-rule.js +2 -0
  24. package/dist/application/rules/public-api-removal-rule.js.map +1 -1
  25. package/dist/application/services/analyze-import-impact.d.ts +3 -1
  26. package/dist/application/services/analyze-import-impact.d.ts.map +1 -1
  27. package/dist/application/services/analyze-import-impact.js +69 -26
  28. package/dist/application/services/analyze-import-impact.js.map +1 -1
  29. package/dist/application/services/compare-source-symbols.d.ts +3 -1
  30. package/dist/application/services/compare-source-symbols.d.ts.map +1 -1
  31. package/dist/application/services/compare-source-symbols.js +8 -2
  32. package/dist/application/services/compare-source-symbols.js.map +1 -1
  33. package/dist/domain/impact.d.ts +2 -0
  34. package/dist/domain/impact.d.ts.map +1 -1
  35. package/dist/domain/impact.js.map +1 -1
  36. package/dist/domain/symbol-change.d.ts +2 -0
  37. package/dist/domain/symbol-change.d.ts.map +1 -1
  38. package/dist/domain/symbol-change.js.map +1 -1
  39. package/dist/infrastructure/git/git-private-agent-intent-store.d.ts +12 -0
  40. package/dist/infrastructure/git/git-private-agent-intent-store.d.ts.map +1 -0
  41. package/dist/infrastructure/git/git-private-agent-intent-store.js +120 -0
  42. package/dist/infrastructure/git/git-private-agent-intent-store.js.map +1 -0
  43. package/dist/infrastructure/git/git-project-file-source.d.ts +4 -3
  44. package/dist/infrastructure/git/git-project-file-source.d.ts.map +1 -1
  45. package/dist/infrastructure/git/git-project-file-source.js +19 -6
  46. package/dist/infrastructure/git/git-project-file-source.js.map +1 -1
  47. package/dist/infrastructure/typescript/package-exports-api-boundary.d.ts +11 -0
  48. package/dist/infrastructure/typescript/package-exports-api-boundary.d.ts.map +1 -0
  49. package/dist/infrastructure/typescript/package-exports-api-boundary.js +206 -0
  50. package/dist/infrastructure/typescript/package-exports-api-boundary.js.map +1 -0
  51. package/dist/infrastructure/typescript/typescript-config-loader.d.ts +2 -2
  52. package/dist/infrastructure/typescript/typescript-config-loader.d.ts.map +1 -1
  53. package/dist/infrastructure/typescript/typescript-config-loader.js +2 -2
  54. package/dist/infrastructure/typescript/typescript-config-loader.js.map +1 -1
  55. package/dist/infrastructure/typescript/typescript-function-signature-compatibility.d.ts +6 -0
  56. package/dist/infrastructure/typescript/typescript-function-signature-compatibility.d.ts.map +1 -0
  57. package/dist/infrastructure/typescript/typescript-function-signature-compatibility.js +141 -0
  58. package/dist/infrastructure/typescript/typescript-function-signature-compatibility.js.map +1 -0
  59. package/dist/infrastructure/typescript/typescript-module-alias-resolver.d.ts +2 -2
  60. package/dist/infrastructure/typescript/typescript-module-alias-resolver.d.ts.map +1 -1
  61. package/dist/infrastructure/typescript/typescript-module-alias-resolver.js +2 -2
  62. package/dist/infrastructure/typescript/typescript-module-alias-resolver.js.map +1 -1
  63. package/dist/presentation/analyze-repository.d.ts.map +1 -1
  64. package/dist/presentation/analyze-repository.js +4 -5
  65. package/dist/presentation/analyze-repository.js.map +1 -1
  66. package/dist/presentation/claude-code/hook.d.ts +13 -0
  67. package/dist/presentation/claude-code/hook.d.ts.map +1 -0
  68. package/dist/presentation/claude-code/hook.js +91 -0
  69. package/dist/presentation/claude-code/hook.js.map +1 -0
  70. package/dist/presentation/cli/arguments.d.ts +6 -1
  71. package/dist/presentation/cli/arguments.d.ts.map +1 -1
  72. package/dist/presentation/cli/arguments.js +9 -0
  73. package/dist/presentation/cli/arguments.js.map +1 -1
  74. package/dist/presentation/cli/main.js +11 -0
  75. package/dist/presentation/cli/main.js.map +1 -1
  76. package/dist/presentation/cli/text-report.js +1 -1
  77. package/dist/presentation/cli/text-report.js.map +1 -1
  78. package/dist/presentation/html/html-report.js +3 -2
  79. package/dist/presentation/html/html-report.js.map +1 -1
  80. package/package.json +1 -1
@@ -0,0 +1,206 @@
1
+ import { posix } from "node:path";
2
+ import ts from "typescript";
3
+ import { resolveRelativeModule } from "../../application/services/analyze-import-impact.js";
4
+ import { isMaintainedSourcePath } from "../../application/services/is-maintained-source-path.js";
5
+ import { parseTypeScriptSource } from "./parse-typescript-source.js";
6
+ /** 이전 package.json의 exports에서 소스 진입점과 re-export 경로를 추적한다. */
7
+ export class PackageExportsApiBoundary {
8
+ files;
9
+ constructor(files) {
10
+ this.files = files;
11
+ }
12
+ async internalPaths(target, changedPaths) {
13
+ const allPaths = await this.files.listPaths(target, "base");
14
+ const availablePaths = new Set(allPaths);
15
+ const manifests = allPaths.filter((path) => posix.basename(path) === "package.json");
16
+ const packages = new Map();
17
+ const internal = new Set();
18
+ for (const path of changedPaths) {
19
+ const manifest = nearestManifest(path, manifests);
20
+ if (manifest === undefined)
21
+ continue;
22
+ let exposed = packages.get(manifest);
23
+ if (exposed === undefined) {
24
+ exposed = this.exposedPaths(target, manifest, availablePaths);
25
+ packages.set(manifest, exposed);
26
+ }
27
+ const paths = await exposed;
28
+ if (paths !== undefined && !paths.has(path))
29
+ internal.add(path);
30
+ }
31
+ return internal;
32
+ }
33
+ async exposedPaths(target, manifestPath, availablePaths) {
34
+ const manifest = await this.files.read(target, manifestPath, "base");
35
+ if (manifest.kind !== "success")
36
+ return undefined;
37
+ let metadata;
38
+ try {
39
+ metadata = JSON.parse(manifest.content);
40
+ }
41
+ catch {
42
+ return undefined;
43
+ }
44
+ if (!isRecord(metadata) || !("exports" in metadata))
45
+ return undefined;
46
+ const targets = collectTargets(metadata.exports);
47
+ if (targets === undefined)
48
+ return undefined;
49
+ const packageRoot = posix.dirname(manifestPath);
50
+ const entries = new Set();
51
+ for (const destination of targets) {
52
+ const resolved = resolveTarget(manifestPath, packageRoot, destination, availablePaths);
53
+ if (resolved === undefined || resolved.some((path) => !isMaintainedSourcePath(path))) {
54
+ // 생성된 dist만 보이는 경우 소스의 공개 여부를 증명할 수 없다.
55
+ return undefined;
56
+ }
57
+ for (const path of resolved)
58
+ entries.add(path);
59
+ }
60
+ const exposed = new Set(entries);
61
+ const queue = [...entries];
62
+ for (let index = 0; index < queue.length; index += 1) {
63
+ const path = queue[index];
64
+ if (path === undefined)
65
+ continue;
66
+ const source = await this.files.read(target, path, "base");
67
+ if (source.kind !== "success")
68
+ return undefined;
69
+ const parsed = parseTypeScriptSource(path, source.content);
70
+ if (parsed.kind === "unavailable")
71
+ return undefined;
72
+ const reExports = reExportSpecifiers(parsed.sourceFile);
73
+ if (reExports === undefined)
74
+ return undefined;
75
+ for (const specifier of reExports) {
76
+ if (!isRelativeSpecifier(specifier))
77
+ continue;
78
+ const imported = resolveRelativeModule(path, specifier, availablePaths);
79
+ if (imported === undefined || !withinPackage(imported, packageRoot))
80
+ return undefined;
81
+ if (!exposed.has(imported)) {
82
+ exposed.add(imported);
83
+ queue.push(imported);
84
+ }
85
+ }
86
+ }
87
+ return exposed;
88
+ }
89
+ }
90
+ function reExportSpecifiers(sourceFile) {
91
+ const importedNames = new Map();
92
+ const specifiers = new Set();
93
+ for (const statement of sourceFile.statements) {
94
+ if (ts.isImportDeclaration(statement) && ts.isStringLiteralLike(statement.moduleSpecifier)) {
95
+ const clause = statement.importClause;
96
+ if (clause?.name !== undefined)
97
+ importedNames.set(clause.name.text, statement.moduleSpecifier.text);
98
+ if (clause?.namedBindings !== undefined) {
99
+ if (ts.isNamespaceImport(clause.namedBindings)) {
100
+ importedNames.set(clause.namedBindings.name.text, statement.moduleSpecifier.text);
101
+ }
102
+ else {
103
+ for (const element of clause.namedBindings.elements) {
104
+ importedNames.set(element.name.text, statement.moduleSpecifier.text);
105
+ }
106
+ }
107
+ }
108
+ }
109
+ if (ts.isImportEqualsDeclaration(statement) &&
110
+ ts.isExternalModuleReference(statement.moduleReference)) {
111
+ const expression = statement.moduleReference.expression;
112
+ if (expression !== undefined && ts.isStringLiteralLike(expression)) {
113
+ importedNames.set(statement.name.text, expression.text);
114
+ }
115
+ }
116
+ }
117
+ for (const statement of sourceFile.statements) {
118
+ if (ts.isExportDeclaration(statement)) {
119
+ if (statement.moduleSpecifier !== undefined) {
120
+ if (!ts.isStringLiteralLike(statement.moduleSpecifier))
121
+ return undefined;
122
+ specifiers.add(statement.moduleSpecifier.text);
123
+ }
124
+ else if (statement.exportClause !== undefined &&
125
+ ts.isNamedExports(statement.exportClause)) {
126
+ for (const element of statement.exportClause.elements) {
127
+ const imported = importedNames.get((element.propertyName ?? element.name).text);
128
+ if (imported !== undefined)
129
+ specifiers.add(imported);
130
+ }
131
+ }
132
+ }
133
+ if (ts.isExportAssignment(statement)) {
134
+ if (statement.isExportEquals)
135
+ return undefined;
136
+ if (ts.isIdentifier(statement.expression)) {
137
+ const imported = importedNames.get(statement.expression.text);
138
+ if (imported !== undefined)
139
+ specifiers.add(imported);
140
+ }
141
+ else {
142
+ return undefined;
143
+ }
144
+ }
145
+ }
146
+ if (/\b(?:module\s*\.\s*exports|exports\s*\.|require\s*\()/u.test(sourceFile.text)) {
147
+ return undefined;
148
+ }
149
+ return [...specifiers];
150
+ }
151
+ function nearestManifest(path, manifests) {
152
+ let directory = posix.dirname(path);
153
+ while (true) {
154
+ const manifest = posix.join(directory, "package.json");
155
+ if (manifests.includes(manifest))
156
+ return manifest;
157
+ if (directory === ".")
158
+ return undefined;
159
+ directory = posix.dirname(directory);
160
+ }
161
+ }
162
+ function collectTargets(value) {
163
+ if (value === null)
164
+ return [];
165
+ if (typeof value === "string")
166
+ return value.startsWith("./") ? [value] : undefined;
167
+ if (Array.isArray(value)) {
168
+ const targets = value.map(collectTargets);
169
+ return targets.some((item) => item === undefined)
170
+ ? undefined
171
+ : targets.flatMap((item) => item ?? []);
172
+ }
173
+ if (!isRecord(value))
174
+ return undefined;
175
+ const targets = Object.values(value).map(collectTargets);
176
+ return targets.some((item) => item === undefined)
177
+ ? undefined
178
+ : targets.flatMap((item) => item ?? []);
179
+ }
180
+ function resolveTarget(manifestPath, packageRoot, destination, availablePaths) {
181
+ const path = posix.normalize(posix.join(packageRoot, destination));
182
+ if (!withinPackage(path, packageRoot))
183
+ return undefined;
184
+ if (!destination.includes("*")) {
185
+ const resolved = resolveRelativeModule(manifestPath, destination, availablePaths);
186
+ return resolved === undefined ? undefined : [resolved];
187
+ }
188
+ const pattern = new RegExp(`^${path.split("*").map(escapeRegExp).join(".*")}$`, "u");
189
+ const matches = [...availablePaths].filter((candidate) => pattern.test(candidate));
190
+ return matches.length === 0 ? undefined : matches;
191
+ }
192
+ function withinPackage(path, packageRoot) {
193
+ return packageRoot === "."
194
+ ? path !== ".." && !path.startsWith("../") && !posix.isAbsolute(path)
195
+ : path.startsWith(`${packageRoot}/`);
196
+ }
197
+ function isRelativeSpecifier(specifier) {
198
+ return specifier.startsWith("./") || specifier.startsWith("../");
199
+ }
200
+ function escapeRegExp(value) {
201
+ return value.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&");
202
+ }
203
+ function isRecord(value) {
204
+ return typeof value === "object" && value !== null && !Array.isArray(value);
205
+ }
206
+ //# sourceMappingURL=package-exports-api-boundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-exports-api-boundary.js","sourceRoot":"","sources":["../../../src/infrastructure/typescript/package-exports-api-boundary.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import ts from "typescript";
2
- import type { ProjectFileSource } from "../../application/ports/project-file-source.js";
2
+ import type { ProjectFileSource, ProjectSnapshot } from "../../application/ports/project-file-source.js";
3
3
  import type { ImpactAnalysisIssue } from "../../domain/impact.js";
4
4
  import type { AnalysisTarget } from "../../domain/report.js";
5
5
  export declare const virtualProjectRoot = "/__intentpatch_project__";
@@ -12,6 +12,6 @@ export interface LoadedTypeScriptConfigs {
12
12
  export declare class TypeScriptConfigLoader {
13
13
  private readonly files;
14
14
  constructor(files: ProjectFileSource);
15
- load(target: AnalysisTarget, repositoryPaths: readonly string[], configPaths: readonly string[]): Promise<LoadedTypeScriptConfigs>;
15
+ load(target: AnalysisTarget, repositoryPaths: readonly string[], configPaths: readonly string[], snapshot?: ProjectSnapshot): Promise<LoadedTypeScriptConfigs>;
16
16
  }
17
17
  //# sourceMappingURL=typescript-config-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-config-loader.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/typescript/typescript-config-loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,eAAO,MAAM,kBAAkB,6BAA6B,CAAC;AAE7D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC;IAChE,QAAQ,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACjD;AAED,mDAAmD;AACnD,qBAAa,sBAAsB;IACd,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,iBAAiB;IAE/C,IAAI,CACf,MAAM,EAAE,cAAc,EACtB,eAAe,EAAE,SAAS,MAAM,EAAE,EAClC,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,OAAO,CAAC,uBAAuB,CAAC;CAyFpC"}
1
+ {"version":3,"file":"typescript-config-loader.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/typescript/typescript-config-loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EAChB,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,eAAO,MAAM,kBAAkB,6BAA6B,CAAC;AAE7D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC;IAChE,QAAQ,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACjD;AAED,mDAAmD;AACnD,qBAAa,sBAAsB;IACd,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,iBAAiB;IAE/C,IAAI,CACf,MAAM,EAAE,cAAc,EACtB,eAAe,EAAE,SAAS,MAAM,EAAE,EAClC,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,QAAQ,GAAE,eAA2B,GACpC,OAAO,CAAC,uBAAuB,CAAC;CAyFpC"}
@@ -11,7 +11,7 @@ export class TypeScriptConfigLoader {
11
11
  constructor(files) {
12
12
  this.files = files;
13
13
  }
14
- async load(target, repositoryPaths, configPaths) {
14
+ async load(target, repositoryPaths, configPaths, snapshot = "current") {
15
15
  const listedPaths = new Set(repositoryPaths);
16
16
  const configContents = new Map();
17
17
  const parsedConfigs = new Map();
@@ -22,7 +22,7 @@ export class TypeScriptConfigLoader {
22
22
  return;
23
23
  }
24
24
  visited.add(path);
25
- const file = await this.files.read(target, path);
25
+ const file = await this.files.read(target, path, snapshot);
26
26
  if (file.kind !== "success") {
27
27
  issues.push({
28
28
  path,
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-config-loader.js","sourceRoot":"","sources":["../../../src/infrastructure/typescript/typescript-config-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typescript-config-loader.js","sourceRoot":"","sources":["../../../src/infrastructure/typescript/typescript-config-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { FunctionSignatureCompatibility } from "../../application/ports/function-signature-compatibility.js";
2
+ /** Uses TypeScript assignability only when both self-contained signature types can be checked. */
3
+ export declare class TypeScriptFunctionSignatureCompatibility implements FunctionSignatureCompatibility {
4
+ preservesPreviousCalls(previous: readonly string[], current: readonly string[]): boolean | undefined;
5
+ }
6
+ //# sourceMappingURL=typescript-function-signature-compatibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-function-signature-compatibility.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/typescript/typescript-function-signature-compatibility.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,6DAA6D,CAAC;AAIlH,kGAAkG;AAClG,qBAAa,wCAAyC,YAAW,8BAA8B;IACtF,sBAAsB,CAC3B,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,OAAO,GAAG,SAAS;CAiDvB"}
@@ -0,0 +1,141 @@
1
+ import ts from "typescript";
2
+ const comparisonPath = "/__intentpatch_function_signatures__.ts";
3
+ /** Uses TypeScript assignability only when both self-contained signature types can be checked. */
4
+ export class TypeScriptFunctionSignatureCompatibility {
5
+ preservesPreviousCalls(previous, current) {
6
+ const previousCalls = previous.map(toCallSignature);
7
+ const currentCalls = current.map(toCallSignature);
8
+ if (previousCalls.length === 0 ||
9
+ currentCalls.length === 0 ||
10
+ previousCalls.some((call) => call === undefined) ||
11
+ currentCalls.some((call) => call === undefined)) {
12
+ return undefined;
13
+ }
14
+ const sourceFile = ts.createSourceFile(comparisonPath, `interface Previous { ${previousCalls.join("; ")} }\ninterface Current { ${currentCalls.join("; ")} }`, ts.ScriptTarget.Latest, true);
15
+ const options = {
16
+ strict: true,
17
+ noEmit: true,
18
+ skipLibCheck: true,
19
+ lib: ["lib.es2022.d.ts"],
20
+ };
21
+ const host = ts.createCompilerHost(options);
22
+ const getSourceFile = host.getSourceFile.bind(host);
23
+ host.getSourceFile = (path, languageVersion, onError, shouldCreateNewSourceFile) => path === comparisonPath
24
+ ? sourceFile
25
+ : getSourceFile(path, languageVersion, onError, shouldCreateNewSourceFile);
26
+ const program = ts.createProgram([comparisonPath], options, host);
27
+ if (program.getSyntacticDiagnostics(sourceFile).length > 0 ||
28
+ program.getSemanticDiagnostics(sourceFile).length > 0) {
29
+ return undefined;
30
+ }
31
+ const checker = program.getTypeChecker();
32
+ const declarations = sourceFile.statements.filter(ts.isInterfaceDeclaration);
33
+ const previousSymbol = declarations[0] && checker.getSymbolAtLocation(declarations[0].name);
34
+ const currentSymbol = declarations[1] && checker.getSymbolAtLocation(declarations[1].name);
35
+ if (previousSymbol === undefined || currentSymbol === undefined)
36
+ return undefined;
37
+ return checker.isTypeAssignableTo(checker.getDeclaredTypeOfSymbol(currentSymbol), checker.getDeclaredTypeOfSymbol(previousSymbol));
38
+ }
39
+ }
40
+ /** Convert the extractor's name-free display signature into a call signature for the checker. */
41
+ function toCallSignature(signature) {
42
+ // The display normalizer is not string-literal-aware; avoid proving compatibility from it.
43
+ if (/["'`]|\/\*/u.test(signature))
44
+ return undefined;
45
+ let opening = 0;
46
+ if (signature.startsWith("<")) {
47
+ const genericEnd = findGenericEnd(signature);
48
+ if (genericEnd === undefined)
49
+ return undefined;
50
+ opening = genericEnd + 1;
51
+ }
52
+ if (signature[opening] !== "(")
53
+ return undefined;
54
+ const closing = findMatchingParenthesis(signature, opening);
55
+ if (closing === undefined || signature[closing + 1] !== ":")
56
+ return undefined;
57
+ const returnType = signature.slice(closing + 2);
58
+ if (returnType.length === 0 || returnType === "inferred")
59
+ return undefined;
60
+ const parameters = splitParameters(signature.slice(opening + 1, closing));
61
+ if (parameters === undefined)
62
+ return undefined;
63
+ const namedParameters = parameters.map((parameter, index) => nameParameter(parameter, index));
64
+ if (namedParameters.some((parameter) => parameter === undefined))
65
+ return undefined;
66
+ return `${signature.slice(0, opening)}(${namedParameters.join(",")}):${returnType}`;
67
+ }
68
+ function findGenericEnd(signature) {
69
+ let depth = 0;
70
+ for (let index = 0; index < signature.length; index += 1) {
71
+ const character = signature[index];
72
+ if (character === "(")
73
+ return undefined;
74
+ if (character === "<")
75
+ depth += 1;
76
+ if (character === ">" && signature[index - 1] !== "=") {
77
+ depth -= 1;
78
+ if (depth === 0)
79
+ return index;
80
+ }
81
+ }
82
+ return undefined;
83
+ }
84
+ function findMatchingParenthesis(signature, opening) {
85
+ let depth = 0;
86
+ for (let index = opening; index < signature.length; index += 1) {
87
+ if (signature[index] === "(")
88
+ depth += 1;
89
+ if (signature[index] === ")") {
90
+ depth -= 1;
91
+ if (depth === 0)
92
+ return index;
93
+ }
94
+ }
95
+ return undefined;
96
+ }
97
+ function splitParameters(value) {
98
+ if (value.length === 0)
99
+ return [];
100
+ const parameters = [];
101
+ const openings = new Map([
102
+ ["(", ")"],
103
+ ["[", "]"],
104
+ ["{", "}"],
105
+ ["<", ">"],
106
+ ]);
107
+ const stack = [];
108
+ let start = 0;
109
+ for (let index = 0; index < value.length; index += 1) {
110
+ const character = value[index];
111
+ if (character === "," && stack.length === 0) {
112
+ parameters.push(value.slice(start, index).trim());
113
+ start = index + 1;
114
+ continue;
115
+ }
116
+ const closing = character && openings.get(character);
117
+ if (closing !== undefined) {
118
+ stack.push(closing);
119
+ }
120
+ else if (character === ")" || character === "]" || character === "}" || character === ">") {
121
+ if (character === ">" && value[index - 1] === "=")
122
+ continue;
123
+ if (stack.pop() !== character)
124
+ return undefined;
125
+ }
126
+ }
127
+ if (stack.length > 0)
128
+ return undefined;
129
+ parameters.push(value.slice(start).trim());
130
+ return parameters;
131
+ }
132
+ function nameParameter(parameter, index) {
133
+ const rest = parameter.startsWith("...");
134
+ const withoutRest = rest ? parameter.slice(3) : parameter;
135
+ const optional = withoutRest.endsWith("?");
136
+ const type = optional ? withoutRest.slice(0, -1) : withoutRest;
137
+ if (type.length === 0 || type === "inferred" || (rest && optional))
138
+ return undefined;
139
+ return `${rest ? "..." : ""}argument${index}${optional ? "?" : ""}: ${type}`;
140
+ }
141
+ //# sourceMappingURL=typescript-function-signature-compatibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-function-signature-compatibility.js","sourceRoot":"","sources":["../../../src/infrastructure/typescript/typescript-function-signature-compatibility.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import type { ModuleAliasResolver, PreparedModuleAliasResolver } from "../../application/ports/module-alias-resolver.js";
2
- import type { ProjectFileSource } from "../../application/ports/project-file-source.js";
2
+ import type { ProjectFileSource, ProjectSnapshot } from "../../application/ports/project-file-source.js";
3
3
  import type { AnalysisTarget } from "../../domain/report.js";
4
4
  /** 가장 가까운 tsconfig/jsconfig의 paths·baseUrl을 Git snapshot 안에서 해석한다. */
5
5
  export declare class TypeScriptModuleAliasResolver implements ModuleAliasResolver {
6
6
  private readonly files;
7
7
  constructor(files: ProjectFileSource);
8
- prepare(target: AnalysisTarget, repositoryPaths: readonly string[], sourcePaths: ReadonlySet<string>): Promise<PreparedModuleAliasResolver>;
8
+ prepare(target: AnalysisTarget, repositoryPaths: readonly string[], sourcePaths: ReadonlySet<string>, snapshot?: ProjectSnapshot): Promise<PreparedModuleAliasResolver>;
9
9
  }
10
10
  //# sourceMappingURL=typescript-module-alias-resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-module-alias-resolver.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/typescript/typescript-module-alias-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EACnB,2BAA2B,EAC5B,MAAM,kDAAkD,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAO7D,sEAAsE;AACtE,qBAAa,6BAA8B,YAAW,mBAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,iBAAiB;IAE/C,OAAO,CAClB,MAAM,EAAE,cAAc,EACtB,eAAe,EAAE,SAAS,MAAM,EAAE,EAClC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,GAC/B,OAAO,CAAC,2BAA2B,CAAC;CAgExC"}
1
+ {"version":3,"file":"typescript-module-alias-resolver.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/typescript/typescript-module-alias-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EACnB,2BAA2B,EAC5B,MAAM,kDAAkD,CAAC;AAC1D,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EAChB,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAO7D,sEAAsE;AACtE,qBAAa,6BAA8B,YAAW,mBAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,iBAAiB;IAE/C,OAAO,CAClB,MAAM,EAAE,cAAc,EACtB,eAAe,EAAE,SAAS,MAAM,EAAE,EAClC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,EAChC,QAAQ,GAAE,eAA2B,GACpC,OAAO,CAAC,2BAA2B,CAAC;CAiExC"}
@@ -7,7 +7,7 @@ export class TypeScriptModuleAliasResolver {
7
7
  constructor(files) {
8
8
  this.files = files;
9
9
  }
10
- async prepare(target, repositoryPaths, sourcePaths) {
10
+ async prepare(target, repositoryPaths, sourcePaths, snapshot = "current") {
11
11
  const configPaths = new Set(repositoryPaths.filter(isProjectConfig));
12
12
  const configByImporter = new Map();
13
13
  for (const importer of sourcePaths) {
@@ -16,7 +16,7 @@ export class TypeScriptModuleAliasResolver {
16
16
  configByImporter.set(importer, configPath);
17
17
  }
18
18
  }
19
- const loaded = await new TypeScriptConfigLoader(this.files).load(target, repositoryPaths, [...new Set(configByImporter.values())].sort());
19
+ const loaded = await new TypeScriptConfigLoader(this.files).load(target, repositoryPaths, [...new Set(configByImporter.values())].sort(), snapshot);
20
20
  const virtualSources = new Set([...sourcePaths].map(virtualProjectPath));
21
21
  const directories = sourceDirectories(virtualSources);
22
22
  const host = {
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-module-alias-resolver.js","sourceRoot":"","sources":["../../../src/infrastructure/typescript/typescript-module-alias-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typescript-module-alias-resolver.js","sourceRoot":"","sources":["../../../src/infrastructure/typescript/typescript-module-alias-resolver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"analyze-repository.d.ts","sourceRoot":"","sources":["../../src/presentation/analyze-repository.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAexD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,sDAAsD;AACtD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,YAAY,CAAC,CAiEjG"}
1
+ {"version":3,"file":"analyze-repository.d.ts","sourceRoot":"","sources":["../../src/presentation/analyze-repository.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAiBxD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,sDAAsD;AACtD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,YAAY,CAAC,CAkEjG"}
@@ -27,8 +27,10 @@ import { PnpmYamlLockParser } from "../infrastructure/pnpm/pnpm-lock-parser.js";
27
27
  import { PnpmYamlWorkspaceParser } from "../infrastructure/pnpm/pnpm-workspace-parser.js";
28
28
  import { NodeCommandRunner } from "../infrastructure/process/command-runner.js";
29
29
  import { JavaScriptSymbolExtractor } from "../infrastructure/typescript/javascript-symbol-extractor.js";
30
+ import { PackageExportsApiBoundary } from "../infrastructure/typescript/package-exports-api-boundary.js";
30
31
  import { SourceModuleReferenceExtractor } from "../infrastructure/typescript/source-module-reference-extractor.js";
31
32
  import { TypeScriptCodeStructureExtractor } from "../infrastructure/typescript/typescript-code-structure-extractor.js";
33
+ import { TypeScriptFunctionSignatureCompatibility } from "../infrastructure/typescript/typescript-function-signature-compatibility.js";
32
34
  import { TypeScriptModuleAliasResolver } from "../infrastructure/typescript/typescript-module-alias-resolver.js";
33
35
  import { TypeScriptSymbolExtractor } from "../infrastructure/typescript/typescript-symbol-extractor.js";
34
36
  /** CLI와 자동화 어댑터가 동일한 분석 구성과 규칙 집합을 사용하도록 조립을 공유한다. */
@@ -58,14 +60,11 @@ export async function analyzeRepository(options) {
58
60
  new ChangeBudgetRule(),
59
61
  new MissingTestChangeRule(),
60
62
  new PublicApiRemovalRule(),
61
- new PublicApiCompatibilityRule(),
63
+ new PublicApiCompatibilityRule(new TypeScriptFunctionSignatureCompatibility()),
62
64
  new DuplicateImplementationRule(),
63
65
  new SingleImplementationAbstractionRule(),
64
66
  ]);
65
- const symbolChangeAnalyzer = new CompareSourceSymbols(snapshotSource, [
66
- new TypeScriptSymbolExtractor(),
67
- new JavaScriptSymbolExtractor(),
68
- ]);
67
+ const symbolChangeAnalyzer = new CompareSourceSymbols(snapshotSource, [new TypeScriptSymbolExtractor(), new JavaScriptSymbolExtractor()], new PackageExportsApiBoundary(projectFiles));
69
68
  const impactAnalyzer = new AnalyzeImportImpact(projectFiles, [moduleReferenceExtractor], new TypeScriptModuleAliasResolver(projectFiles));
70
69
  const codeStructureAnalyzer = new AnalyzeCodeStructure(projectFiles, [
71
70
  new TypeScriptCodeStructureExtractor(),
@@ -1 +1 @@
1
- {"version":3,"file":"analyze-repository.js","sourceRoot":"","sources":["../../src/presentation/analyze-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,uDAAuD,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,uDAAuD,CAAC;AACnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,wDAAwD,CAAC;AACrG,OAAO,EAAE,0BAA0B,EAAE,MAAM,uDAAuD,CAAC;AACnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AACvF,OAAO,EAAE,mCAAmC,EAAE,MAAM,gEAAgE,CAAC;AACrH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yDAAyD,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6DAA6D,CAAC;AACxG,OAAO,EAAE,8BAA8B,EAAE,MAAM,mEAAmE,CAAC;AACnH,OAAO,EAAE,gCAAgC,EAAE,MAAM,qEAAqE,CAAC;AACvH,OAAO,EAAE,6BAA6B,EAAE,MAAM,kEAAkE,CAAC;AACjH,OAAO,EAAE,yBAAyB,EAAE,MAAM,6DAA6D,CAAC;AAWxG,sDAAsD;AACtD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAkC;IACxE,MAAM,aAAa,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAC9C,MAAM,cAAc,GAAG,IAAI,qBAAqB,CAAC,OAAO,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;IAC1F,MAAM,cAAc,GAAG,MAAM,IAAI,wBAAwB,EAAE,CAAC,IAAI,CAC9D,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,iBAAiB,CAC1B,CAAC;IACF,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,IAAI,cAAc,EAAE,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;IAC1F,MAAM,QAAQ,GACZ,MAAM,KAAK,SAAS;QAClB,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,oBAAoB,CAAC;YACnB,MAAM;YACN,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC;YACxE,GAAG,CAAC,cAAc,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC;SAChF,CAAC,CAAC;IACT,MAAM,YAAY,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;IACvF,MAAM,mBAAmB,GAAG,IAAI,uBAAuB,EAAE,CAAC;IAC1D,MAAM,wBAAwB,GAAG,IAAI,8BAA8B,EAAE,CAAC;IACtE,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;QAChC,IAAI,qBAAqB,CAAC,cAAc,CAAC;QACzC,IAAI,wBAAwB,CAC1B,cAAc,EACd,YAAY,EACZ,wBAAwB,EACxB,mBAAmB,CACpB;QACD,IAAI,eAAe,CAAC,cAAc,EAAE,IAAI,oBAAoB,EAAE,CAAC;QAC/D,IAAI,gBAAgB,CAAC,cAAc,EAAE,IAAI,kBAAkB,EAAE,CAAC;QAC9D,IAAI,0BAA0B,CAAC,cAAc,CAAC;QAC9C,IAAI,2BAA2B,CAAC,cAAc,EAAE,mBAAmB,CAAC;QACpE,IAAI,iBAAiB,EAAE;QACvB,IAAI,gBAAgB,EAAE;QACtB,IAAI,qBAAqB,EAAE;QAC3B,IAAI,oBAAoB,EAAE;QAC1B,IAAI,0BAA0B,EAAE;QAChC,IAAI,2BAA2B,EAAE;QACjC,IAAI,mCAAmC,EAAE;KAC1C,CAAC,CAAC;IACH,MAAM,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,cAAc,EAAE;QACpE,IAAI,yBAAyB,EAAE;QAC/B,IAAI,yBAAyB,EAAE;KAChC,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,IAAI,mBAAmB,CAC5C,YAAY,EACZ,CAAC,wBAAwB,CAAC,EAC1B,IAAI,6BAA6B,CAAC,YAAY,CAAC,CAChD,CAAC;IACF,MAAM,qBAAqB,GAAG,IAAI,oBAAoB,CAAC,YAAY,EAAE;QACnE,IAAI,gCAAgC,EAAE;KACvC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,cAAc,CAChC,IAAI,eAAe,CAAC,OAAO,CAAC,gBAAgB,EAAE,aAAa,CAAC,EAC5D,UAAU,EACV,oBAAoB,EACpB,cAAc,EACd,IAAI,kBAAkB,EAAE,EACxB,qBAAqB,CACtB,CAAC;IAEF,OAAO,OAAO,CAAC,OAAO,CAAC;QACrB,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QACtE,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QACtE,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;KAChD,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"analyze-repository.js","sourceRoot":"","sources":["../../src/presentation/analyze-repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { AgentIntentSessionStore } from "../../application/ports/agent-intent-session-store.js";
2
+ import type { ChangeReport } from "../../domain/report.js";
3
+ import type { RepositoryAnalysisOptions } from "../analyze-repository.js";
4
+ import type { ClaudeHookAction } from "../cli/arguments.js";
5
+ export interface ClaudeHookDependencies {
6
+ readonly store: AgentIntentSessionStore;
7
+ readonly analyze: (options: RepositoryAnalysisOptions) => Promise<ChangeReport>;
8
+ }
9
+ /** Hook 입력 크기를 제한해 의도치 않은 대용량 stdin을 메모리에 쌓지 않는다. */
10
+ export declare function readClaudeHookInput(input: AsyncIterable<string | Uint8Array>): Promise<unknown>;
11
+ /** 프롬프트는 분석 계약에만 전달하고 Hook 출력에는 집계만 반환한다. */
12
+ export declare function runClaudeHook(action: ClaudeHookAction, input: unknown, dependencies: ClaudeHookDependencies): Promise<string | undefined>;
13
+ //# sourceMappingURL=hook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/presentation/claude-code/hook.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC;AACrG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAK5D,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CACjF;AAED,qDAAqD;AACrD,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,UAAU,CAAC,GACxC,OAAO,CAAC,OAAO,CAAC,CAelB;AAED,6CAA6C;AAC7C,wBAAsB,aAAa,CACjC,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,sBAAsB,GACnC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAsC7B"}