@tienne/gestalt 0.84.2 → 0.86.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 (222) hide show
  1. package/CLAUDE.md +4 -4
  2. package/README.ko.md +72 -22
  3. package/README.md +73 -23
  4. package/dist/benchmarks/runners/passthrough-benchmark-runner.d.ts.map +1 -1
  5. package/dist/benchmarks/runners/passthrough-benchmark-runner.js +8 -7
  6. package/dist/benchmarks/runners/passthrough-benchmark-runner.js.map +1 -1
  7. package/dist/bin/gestalt.js +2 -2
  8. package/dist/package.json +4 -3
  9. package/dist/plugin/review-agents/harness-reviewer/AGENT.md +21 -1
  10. package/dist/plugin/skills/dispatch/SKILL.md +14 -2
  11. package/dist/plugin/skills/execute/SKILL.md +219 -52
  12. package/dist/plugin/skills/interview/SKILL.md +15 -2
  13. package/dist/plugin/skills/solve/SKILL.md +20 -5
  14. package/dist/plugin/skills/spec/SKILL.md +2 -0
  15. package/dist/src/cli/commands/interview.d.ts.map +1 -1
  16. package/dist/src/cli/commands/interview.js +16 -4
  17. package/dist/src/cli/commands/interview.js.map +1 -1
  18. package/dist/src/cli/commands/memory-merge.d.ts +2 -0
  19. package/dist/src/cli/commands/memory-merge.d.ts.map +1 -0
  20. package/dist/src/cli/commands/memory-merge.js +13 -0
  21. package/dist/src/cli/commands/memory-merge.js.map +1 -0
  22. package/dist/src/cli/index.d.ts.map +1 -1
  23. package/dist/src/cli/index.js +7 -0
  24. package/dist/src/cli/index.js.map +1 -1
  25. package/dist/src/core/constants.d.ts +4 -0
  26. package/dist/src/core/constants.d.ts.map +1 -1
  27. package/dist/src/core/constants.js +8 -0
  28. package/dist/src/core/constants.js.map +1 -1
  29. package/dist/src/core/errors.d.ts +3 -0
  30. package/dist/src/core/errors.d.ts.map +1 -1
  31. package/dist/src/core/errors.js +7 -0
  32. package/dist/src/core/errors.js.map +1 -1
  33. package/dist/src/core/file-lock.d.ts +37 -0
  34. package/dist/src/core/file-lock.d.ts.map +1 -0
  35. package/dist/src/core/file-lock.js +143 -0
  36. package/dist/src/core/file-lock.js.map +1 -0
  37. package/dist/src/core/json-file.d.ts +40 -0
  38. package/dist/src/core/json-file.d.ts.map +1 -0
  39. package/dist/src/core/json-file.js +82 -0
  40. package/dist/src/core/json-file.js.map +1 -0
  41. package/dist/src/core/types.d.ts +86 -9
  42. package/dist/src/core/types.d.ts.map +1 -1
  43. package/dist/src/events/store.d.ts +6 -0
  44. package/dist/src/events/store.d.ts.map +1 -1
  45. package/dist/src/events/store.js +12 -0
  46. package/dist/src/events/store.js.map +1 -1
  47. package/dist/src/events/types.d.ts +7 -0
  48. package/dist/src/events/types.d.ts.map +1 -1
  49. package/dist/src/events/types.js +7 -0
  50. package/dist/src/events/types.js.map +1 -1
  51. package/dist/src/execute/artifact-verifier.d.ts +12 -0
  52. package/dist/src/execute/artifact-verifier.d.ts.map +1 -0
  53. package/dist/src/execute/artifact-verifier.js +211 -0
  54. package/dist/src/execute/artifact-verifier.js.map +1 -0
  55. package/dist/src/execute/drift-detector.d.ts +2 -0
  56. package/dist/src/execute/drift-detector.d.ts.map +1 -1
  57. package/dist/src/execute/drift-detector.js +9 -13
  58. package/dist/src/execute/drift-detector.js.map +1 -1
  59. package/dist/src/execute/orchestrators/evaluation.d.ts +5 -1
  60. package/dist/src/execute/orchestrators/evaluation.d.ts.map +1 -1
  61. package/dist/src/execute/orchestrators/evaluation.js +48 -41
  62. package/dist/src/execute/orchestrators/evaluation.js.map +1 -1
  63. package/dist/src/execute/orchestrators/evolution.d.ts +17 -3
  64. package/dist/src/execute/orchestrators/evolution.d.ts.map +1 -1
  65. package/dist/src/execute/orchestrators/evolution.js +102 -53
  66. package/dist/src/execute/orchestrators/evolution.js.map +1 -1
  67. package/dist/src/execute/orchestrators/execution.d.ts +17 -2
  68. package/dist/src/execute/orchestrators/execution.d.ts.map +1 -1
  69. package/dist/src/execute/orchestrators/execution.js +99 -3
  70. package/dist/src/execute/orchestrators/execution.js.map +1 -1
  71. package/dist/src/execute/orchestrators/planning.d.ts +18 -4
  72. package/dist/src/execute/orchestrators/planning.d.ts.map +1 -1
  73. package/dist/src/execute/orchestrators/planning.js +62 -21
  74. package/dist/src/execute/orchestrators/planning.js.map +1 -1
  75. package/dist/src/execute/orchestrators/types.d.ts +12 -1
  76. package/dist/src/execute/orchestrators/types.d.ts.map +1 -1
  77. package/dist/src/execute/passthrough-engine.d.ts +12 -5
  78. package/dist/src/execute/passthrough-engine.d.ts.map +1 -1
  79. package/dist/src/execute/passthrough-engine.js +10 -4
  80. package/dist/src/execute/passthrough-engine.js.map +1 -1
  81. package/dist/src/execute/repository.d.ts +11 -1
  82. package/dist/src/execute/repository.d.ts.map +1 -1
  83. package/dist/src/execute/repository.js +138 -19
  84. package/dist/src/execute/repository.js.map +1 -1
  85. package/dist/src/execute/session.d.ts +26 -4
  86. package/dist/src/execute/session.d.ts.map +1 -1
  87. package/dist/src/execute/session.js +165 -48
  88. package/dist/src/execute/session.js.map +1 -1
  89. package/dist/src/execute/structural-commands.d.ts +23 -0
  90. package/dist/src/execute/structural-commands.d.ts.map +1 -0
  91. package/dist/src/execute/structural-commands.js +139 -0
  92. package/dist/src/execute/structural-commands.js.map +1 -0
  93. package/dist/src/harness-review/collect.d.ts +1 -1
  94. package/dist/src/harness-review/collect.d.ts.map +1 -1
  95. package/dist/src/harness-review/collect.js +6 -1
  96. package/dist/src/harness-review/collect.js.map +1 -1
  97. package/dist/src/harness-review/rule-overlap.d.ts +3 -0
  98. package/dist/src/harness-review/rule-overlap.d.ts.map +1 -0
  99. package/dist/src/harness-review/rule-overlap.js +78 -0
  100. package/dist/src/harness-review/rule-overlap.js.map +1 -0
  101. package/dist/src/harness-review/types.d.ts +1 -1
  102. package/dist/src/harness-review/types.d.ts.map +1 -1
  103. package/dist/src/harness-review/types.js +1 -0
  104. package/dist/src/harness-review/types.js.map +1 -1
  105. package/dist/src/humanize/overlap.d.ts +116 -0
  106. package/dist/src/humanize/overlap.d.ts.map +1 -0
  107. package/dist/src/humanize/overlap.js +680 -0
  108. package/dist/src/humanize/overlap.js.map +1 -0
  109. package/dist/src/interview/engine.d.ts +1 -1
  110. package/dist/src/interview/engine.d.ts.map +1 -1
  111. package/dist/src/interview/engine.js +3 -3
  112. package/dist/src/interview/engine.js.map +1 -1
  113. package/dist/src/interview/passthrough-engine.d.ts +1 -1
  114. package/dist/src/interview/passthrough-engine.d.ts.map +1 -1
  115. package/dist/src/interview/passthrough-engine.js +20 -3
  116. package/dist/src/interview/passthrough-engine.js.map +1 -1
  117. package/dist/src/interview/repository.d.ts +8 -0
  118. package/dist/src/interview/repository.d.ts.map +1 -1
  119. package/dist/src/interview/repository.js +16 -1
  120. package/dist/src/interview/repository.js.map +1 -1
  121. package/dist/src/interview/session.d.ts +15 -2
  122. package/dist/src/interview/session.d.ts.map +1 -1
  123. package/dist/src/interview/session.js +67 -23
  124. package/dist/src/interview/session.js.map +1 -1
  125. package/dist/src/knowledge-base/embedding.d.ts +6 -1
  126. package/dist/src/knowledge-base/embedding.d.ts.map +1 -1
  127. package/dist/src/knowledge-base/embedding.js +19 -6
  128. package/dist/src/knowledge-base/embedding.js.map +1 -1
  129. package/dist/src/local-pr/registry.d.ts +1 -21
  130. package/dist/src/local-pr/registry.d.ts.map +1 -1
  131. package/dist/src/local-pr/registry.js +7 -113
  132. package/dist/src/local-pr/registry.js.map +1 -1
  133. package/dist/src/mcp/input-guard.d.ts +17 -0
  134. package/dist/src/mcp/input-guard.d.ts.map +1 -1
  135. package/dist/src/mcp/input-guard.js +1 -1
  136. package/dist/src/mcp/input-guard.js.map +1 -1
  137. package/dist/src/mcp/schemas.d.ts +62 -7
  138. package/dist/src/mcp/schemas.d.ts.map +1 -1
  139. package/dist/src/mcp/schemas.js +28 -1
  140. package/dist/src/mcp/schemas.js.map +1 -1
  141. package/dist/src/mcp/server.d.ts.map +1 -1
  142. package/dist/src/mcp/server.js +26 -40
  143. package/dist/src/mcp/server.js.map +1 -1
  144. package/dist/src/mcp/tools/execute/evaluate.d.ts.map +1 -1
  145. package/dist/src/mcp/tools/execute/evaluate.js +15 -9
  146. package/dist/src/mcp/tools/execute/evaluate.js.map +1 -1
  147. package/dist/src/mcp/tools/execute/evolve.d.ts +1 -0
  148. package/dist/src/mcp/tools/execute/evolve.d.ts.map +1 -1
  149. package/dist/src/mcp/tools/execute/evolve.js +102 -37
  150. package/dist/src/mcp/tools/execute/evolve.js.map +1 -1
  151. package/dist/src/mcp/tools/execute/execution.d.ts.map +1 -1
  152. package/dist/src/mcp/tools/execute/execution.js +66 -7
  153. package/dist/src/mcp/tools/execute/execution.js.map +1 -1
  154. package/dist/src/mcp/tools/execute/planning.d.ts.map +1 -1
  155. package/dist/src/mcp/tools/execute/planning.js +34 -2
  156. package/dist/src/mcp/tools/execute/planning.js.map +1 -1
  157. package/dist/src/mcp/tools/execute/roles.d.ts.map +1 -1
  158. package/dist/src/mcp/tools/execute/roles.js +13 -5
  159. package/dist/src/mcp/tools/execute/roles.js.map +1 -1
  160. package/dist/src/mcp/tools/execute/utility.d.ts.map +1 -1
  161. package/dist/src/mcp/tools/execute/utility.js +26 -0
  162. package/dist/src/mcp/tools/execute/utility.js.map +1 -1
  163. package/dist/src/mcp/tools/execute/utils.d.ts +1 -0
  164. package/dist/src/mcp/tools/execute/utils.d.ts.map +1 -1
  165. package/dist/src/mcp/tools/execute/utils.js +15 -0
  166. package/dist/src/mcp/tools/execute/utils.js.map +1 -1
  167. package/dist/src/mcp/tools/execute-passthrough.d.ts.map +1 -1
  168. package/dist/src/mcp/tools/execute-passthrough.js +21 -1
  169. package/dist/src/mcp/tools/execute-passthrough.js.map +1 -1
  170. package/dist/src/mcp/tools/interview-passthrough.d.ts +2 -1
  171. package/dist/src/mcp/tools/interview-passthrough.d.ts.map +1 -1
  172. package/dist/src/mcp/tools/interview-passthrough.js +4 -3
  173. package/dist/src/mcp/tools/interview-passthrough.js.map +1 -1
  174. package/dist/src/mcp/tools/interview.d.ts.map +1 -1
  175. package/dist/src/mcp/tools/interview.js +2 -1
  176. package/dist/src/mcp/tools/interview.js.map +1 -1
  177. package/dist/src/mcp/tools/review-passthrough.js +15 -19
  178. package/dist/src/mcp/tools/review-passthrough.js.map +1 -1
  179. package/dist/src/mcp/tools/spec-passthrough.d.ts.map +1 -1
  180. package/dist/src/mcp/tools/spec-passthrough.js +16 -8
  181. package/dist/src/mcp/tools/spec-passthrough.js.map +1 -1
  182. package/dist/src/mcp/tools/status.d.ts.map +1 -1
  183. package/dist/src/mcp/tools/status.js +4 -0
  184. package/dist/src/mcp/tools/status.js.map +1 -1
  185. package/dist/src/memory/memory-context-injector.d.ts +22 -8
  186. package/dist/src/memory/memory-context-injector.d.ts.map +1 -1
  187. package/dist/src/memory/memory-context-injector.js +85 -13
  188. package/dist/src/memory/memory-context-injector.js.map +1 -1
  189. package/dist/src/memory/memory-merge.d.ts +19 -0
  190. package/dist/src/memory/memory-merge.d.ts.map +1 -0
  191. package/dist/src/memory/memory-merge.js +120 -0
  192. package/dist/src/memory/memory-merge.js.map +1 -0
  193. package/dist/src/memory/project-memory-store.d.ts +15 -11
  194. package/dist/src/memory/project-memory-store.d.ts.map +1 -1
  195. package/dist/src/memory/project-memory-store.js +97 -120
  196. package/dist/src/memory/project-memory-store.js.map +1 -1
  197. package/dist/src/memory/semantic-search.d.ts +4 -1
  198. package/dist/src/memory/semantic-search.d.ts.map +1 -1
  199. package/dist/src/memory/semantic-search.js +66 -19
  200. package/dist/src/memory/semantic-search.js.map +1 -1
  201. package/dist/src/resilience/lateral.d.ts +8 -1
  202. package/dist/src/resilience/lateral.d.ts.map +1 -1
  203. package/dist/src/resilience/lateral.js +52 -4
  204. package/dist/src/resilience/lateral.js.map +1 -1
  205. package/package.json +4 -3
  206. package/plugin/.codex-plugin/plugin.json +1 -1
  207. package/plugin/.mcp.json +1 -1
  208. package/plugin/mcp.json +1 -1
  209. package/plugin/review-agents/harness-reviewer/AGENT.md +21 -1
  210. package/plugin/skills/dispatch/SKILL.md +14 -2
  211. package/plugin/skills/execute/SKILL.md +219 -52
  212. package/plugin/skills/interview/SKILL.md +15 -2
  213. package/plugin/skills/solve/SKILL.md +20 -5
  214. package/plugin/skills/spec/SKILL.md +2 -0
  215. package/dist/src/interview/mini-interview-engine.d.ts +0 -33
  216. package/dist/src/interview/mini-interview-engine.d.ts.map +0 -1
  217. package/dist/src/interview/mini-interview-engine.js +0 -102
  218. package/dist/src/interview/mini-interview-engine.js.map +0 -1
  219. package/dist/src/memory/user-profile-store.d.ts +0 -13
  220. package/dist/src/memory/user-profile-store.d.ts.map +0 -1
  221. package/dist/src/memory/user-profile-store.js +0 -85
  222. package/dist/src/memory/user-profile-store.js.map +0 -1
@@ -0,0 +1,116 @@
1
+ export type ExampleKind = 'before' | 'after' | 'exempt';
2
+ export interface RuleExample {
3
+ ruleId: string;
4
+ kind: ExampleKind;
5
+ text: string;
6
+ /** 예시가 나온 문장. 후보 질문에 그대로 붙인다 */
7
+ sentence: string;
8
+ line: number;
9
+ }
10
+ export interface RuleEntry {
11
+ id: string;
12
+ file: string;
13
+ line: number;
14
+ /** 행과 그 룰에 딸린 문단의 문장 전부 */
15
+ sentences: RuleSentence[];
16
+ examples: RuleExample[];
17
+ }
18
+ export interface RuleSentence {
19
+ text: string;
20
+ line: number;
21
+ exception: boolean;
22
+ }
23
+ export interface DetectorSet {
24
+ /** 탐지기가 있는 룰 ID */
25
+ ids: readonly string[];
26
+ /** 걸린 룰 ID와 걸린 문자열 */
27
+ run: (text: string) => Array<{
28
+ ruleId: string;
29
+ samples: string[];
30
+ }>;
31
+ }
32
+ /** 이 레포 탐지기. 과거 커밋을 재현할 때는 그 커밋의 탐지기로 같은 꼴을 만들어 넘긴다 */
33
+ export declare const RULE_DETECTORS: DetectorSet;
34
+ export type FindingCode = 'after-hit' | 'before-miss' | 'exempt-hit-self' | 'form-exempt-hit' | 'exempt-hit-other' | 'before-hit-other';
35
+ export interface MatrixFinding {
36
+ code: FindingCode;
37
+ /** error는 게이트를 막는다. info는 리뷰 단계에 보이기만 한다 */
38
+ level: 'error' | 'info';
39
+ ruleId: string;
40
+ /** 걸린 탐지기 룰. before-miss는 자기 자신 */
41
+ hitBy: string;
42
+ example: RuleExample;
43
+ message: string;
44
+ }
45
+ export type CandidateCode = 'target-exempt-share' | 'exceptions-no-order' | 'cited-no-order' | 'shared-source';
46
+ export interface OverlapCandidate {
47
+ code: CandidateCode;
48
+ rules: string[];
49
+ file: string;
50
+ line: number;
51
+ /** 리뷰어에게 넘길 질문 */
52
+ question: string;
53
+ evidence: string[];
54
+ }
55
+ export interface Undecidable {
56
+ ruleId: string;
57
+ file: string;
58
+ line: number;
59
+ before: number;
60
+ exempt: number;
61
+ }
62
+ export interface OverlapReport {
63
+ findings: MatrixFinding[];
64
+ candidates: OverlapCandidate[];
65
+ undecidable: Undecidable[];
66
+ }
67
+ /** 룰 표를 가진 문서만 룰북으로 본다. 표 머리가 "| ID | 패턴 |"이다 */
68
+ export declare function hasRuleTable(markdown: string): boolean;
69
+ /** 문장 끝 마침표로 자른다. 괄호 안 마침표나 소수점은 안 자른다 */
70
+ export declare function sentencesOf(text: string): string[];
71
+ /**
72
+ * 룰북 하나를 룰 단위로 읽는다.
73
+ *
74
+ * 룰은 표의 행에만 있지 않다. 행이 길어지면 상세를 표 아래 문단으로 빼서, 겹침 사례의
75
+ * 절반이 그 문단에서 나왔다(ca3a2dbb의 '원본' 경계). 그래서 룰 하나만 부르는 헤딩 아래
76
+ * 문단과 볼드 도입구가 룰을 부르는 문단을 그 룰에 붙인다.
77
+ */
78
+ export declare function parseRuleEntries(markdown: string, file: string): RuleEntry[];
79
+ /**
80
+ * 탐지기 행렬.
81
+ *
82
+ * - 처방(after)이 아무 탐지기에나 걸리면 룰북이 시키는 대로 고친 글이 다시 걸린다 (error)
83
+ * - 예외로 둔 말을 다른 룰 탐지기가 잡으면 두 룰이 같은 말에 반대로 판정한다.
84
+ * 둘 사이에 순서를 정한 문장이 없으면 error다
85
+ * - 형태로 빠진다고 적은 예외를 자기 탐지기가 잡으면 선언과 탐지기가 갈라진 것이다 (error)
86
+ * - 뜻으로 가르는 예외를 자기 탐지기가 잡는 건 룰북이 "넓게 건다"고 적어둔 룰이 많아 info다
87
+ * - 금지 예시를 자기 탐지기가 못 잡는 건 룰북이 탐지기 범위를 좁혀 적어둔 자리가 섞여 info다
88
+ * - 금지 예시가 다른 룰에도 걸리는 건 순서 문장이 없을 때만 보인다 (info)
89
+ */
90
+ export declare function runMatrix(entries: RuleEntry[], detectors: DetectorSet): MatrixFinding[];
91
+ /** 내용어 낱말. 조사를 떼고 두 글자 이상만 남긴다 */
92
+ export declare function contentWords(text: string): string[];
93
+ export declare function hangulSkeleton(text: string): string;
94
+ /** 영어를 같은 뼈대로. 한국어 음차가 구분하지 않는 자음을 한데 모은다 */
95
+ export declare function latinSkeleton(text: string): string;
96
+ export interface CandidateOptions {
97
+ /**
98
+ * 이번 변경에서 새로 생긴 문장. 주면 그 문장이 끼는 후보만 남긴다.
99
+ * 안 주면 전부 낸다 — 룰북 전체를 훑을 때다.
100
+ */
101
+ changed?: ReadonlySet<string>;
102
+ }
103
+ /**
104
+ * 탐지기로 판정이 안 되는 겹침을 질문으로 뽑는다.
105
+ *
106
+ * 판정이 아니다. 같은 낱말이 금지와 예외에 함께 나온다고 다 모순은 아니다 —
107
+ * "원본"처럼 어느 쪽인지 가르는 문장이 이미 있을 수 있다. 그래서 리뷰어가 읽을
108
+ * 질문으로만 넘기고 게이트에 걸지 않는다.
109
+ */
110
+ export declare function findCandidates(entries: RuleEntry[], options?: CandidateOptions): OverlapCandidate[];
111
+ /** 탐지기가 없어 자기 예시를 판정할 수 없는 룰. 건너뛰지 않고 목록으로 드러낸다 */
112
+ export declare function undecidableRules(entries: RuleEntry[], detectors: DetectorSet): Undecidable[];
113
+ /** 이번 변경에서 새로 생긴 문장. 문장 단위로 비교해야 긴 행 한 칸의 수정이 행 전체로 번지지 않는다 */
114
+ export declare function changedSentences(base: RuleEntry[], head: RuleEntry[]): Set<string>;
115
+ export declare function checkOverlap(entries: RuleEntry[], detectors: DetectorSet, options?: CandidateOptions): OverlapReport;
116
+ //# sourceMappingURL=overlap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlap.d.ts","sourceRoot":"","sources":["../../../src/humanize/overlap.ts"],"names":[],"mappings":"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"}