@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.
- package/CLAUDE.md +4 -4
- package/README.ko.md +72 -22
- package/README.md +73 -23
- package/dist/benchmarks/runners/passthrough-benchmark-runner.d.ts.map +1 -1
- package/dist/benchmarks/runners/passthrough-benchmark-runner.js +8 -7
- package/dist/benchmarks/runners/passthrough-benchmark-runner.js.map +1 -1
- package/dist/bin/gestalt.js +2 -2
- package/dist/package.json +4 -3
- package/dist/plugin/review-agents/harness-reviewer/AGENT.md +21 -1
- package/dist/plugin/skills/dispatch/SKILL.md +14 -2
- package/dist/plugin/skills/execute/SKILL.md +219 -52
- package/dist/plugin/skills/interview/SKILL.md +15 -2
- package/dist/plugin/skills/solve/SKILL.md +20 -5
- package/dist/plugin/skills/spec/SKILL.md +2 -0
- package/dist/src/cli/commands/interview.d.ts.map +1 -1
- package/dist/src/cli/commands/interview.js +16 -4
- package/dist/src/cli/commands/interview.js.map +1 -1
- package/dist/src/cli/commands/memory-merge.d.ts +2 -0
- package/dist/src/cli/commands/memory-merge.d.ts.map +1 -0
- package/dist/src/cli/commands/memory-merge.js +13 -0
- package/dist/src/cli/commands/memory-merge.js.map +1 -0
- package/dist/src/cli/index.d.ts.map +1 -1
- package/dist/src/cli/index.js +7 -0
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/core/constants.d.ts +4 -0
- package/dist/src/core/constants.d.ts.map +1 -1
- package/dist/src/core/constants.js +8 -0
- package/dist/src/core/constants.js.map +1 -1
- package/dist/src/core/errors.d.ts +3 -0
- package/dist/src/core/errors.d.ts.map +1 -1
- package/dist/src/core/errors.js +7 -0
- package/dist/src/core/errors.js.map +1 -1
- package/dist/src/core/file-lock.d.ts +37 -0
- package/dist/src/core/file-lock.d.ts.map +1 -0
- package/dist/src/core/file-lock.js +143 -0
- package/dist/src/core/file-lock.js.map +1 -0
- package/dist/src/core/json-file.d.ts +40 -0
- package/dist/src/core/json-file.d.ts.map +1 -0
- package/dist/src/core/json-file.js +82 -0
- package/dist/src/core/json-file.js.map +1 -0
- package/dist/src/core/types.d.ts +86 -9
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/events/store.d.ts +6 -0
- package/dist/src/events/store.d.ts.map +1 -1
- package/dist/src/events/store.js +12 -0
- package/dist/src/events/store.js.map +1 -1
- package/dist/src/events/types.d.ts +7 -0
- package/dist/src/events/types.d.ts.map +1 -1
- package/dist/src/events/types.js +7 -0
- package/dist/src/events/types.js.map +1 -1
- package/dist/src/execute/artifact-verifier.d.ts +12 -0
- package/dist/src/execute/artifact-verifier.d.ts.map +1 -0
- package/dist/src/execute/artifact-verifier.js +211 -0
- package/dist/src/execute/artifact-verifier.js.map +1 -0
- package/dist/src/execute/drift-detector.d.ts +2 -0
- package/dist/src/execute/drift-detector.d.ts.map +1 -1
- package/dist/src/execute/drift-detector.js +9 -13
- package/dist/src/execute/drift-detector.js.map +1 -1
- package/dist/src/execute/orchestrators/evaluation.d.ts +5 -1
- package/dist/src/execute/orchestrators/evaluation.d.ts.map +1 -1
- package/dist/src/execute/orchestrators/evaluation.js +48 -41
- package/dist/src/execute/orchestrators/evaluation.js.map +1 -1
- package/dist/src/execute/orchestrators/evolution.d.ts +17 -3
- package/dist/src/execute/orchestrators/evolution.d.ts.map +1 -1
- package/dist/src/execute/orchestrators/evolution.js +102 -53
- package/dist/src/execute/orchestrators/evolution.js.map +1 -1
- package/dist/src/execute/orchestrators/execution.d.ts +17 -2
- package/dist/src/execute/orchestrators/execution.d.ts.map +1 -1
- package/dist/src/execute/orchestrators/execution.js +99 -3
- package/dist/src/execute/orchestrators/execution.js.map +1 -1
- package/dist/src/execute/orchestrators/planning.d.ts +18 -4
- package/dist/src/execute/orchestrators/planning.d.ts.map +1 -1
- package/dist/src/execute/orchestrators/planning.js +62 -21
- package/dist/src/execute/orchestrators/planning.js.map +1 -1
- package/dist/src/execute/orchestrators/types.d.ts +12 -1
- package/dist/src/execute/orchestrators/types.d.ts.map +1 -1
- package/dist/src/execute/passthrough-engine.d.ts +12 -5
- package/dist/src/execute/passthrough-engine.d.ts.map +1 -1
- package/dist/src/execute/passthrough-engine.js +10 -4
- package/dist/src/execute/passthrough-engine.js.map +1 -1
- package/dist/src/execute/repository.d.ts +11 -1
- package/dist/src/execute/repository.d.ts.map +1 -1
- package/dist/src/execute/repository.js +138 -19
- package/dist/src/execute/repository.js.map +1 -1
- package/dist/src/execute/session.d.ts +26 -4
- package/dist/src/execute/session.d.ts.map +1 -1
- package/dist/src/execute/session.js +165 -48
- package/dist/src/execute/session.js.map +1 -1
- package/dist/src/execute/structural-commands.d.ts +23 -0
- package/dist/src/execute/structural-commands.d.ts.map +1 -0
- package/dist/src/execute/structural-commands.js +139 -0
- package/dist/src/execute/structural-commands.js.map +1 -0
- package/dist/src/harness-review/collect.d.ts +1 -1
- package/dist/src/harness-review/collect.d.ts.map +1 -1
- package/dist/src/harness-review/collect.js +6 -1
- package/dist/src/harness-review/collect.js.map +1 -1
- package/dist/src/harness-review/rule-overlap.d.ts +3 -0
- package/dist/src/harness-review/rule-overlap.d.ts.map +1 -0
- package/dist/src/harness-review/rule-overlap.js +78 -0
- package/dist/src/harness-review/rule-overlap.js.map +1 -0
- package/dist/src/harness-review/types.d.ts +1 -1
- package/dist/src/harness-review/types.d.ts.map +1 -1
- package/dist/src/harness-review/types.js +1 -0
- package/dist/src/harness-review/types.js.map +1 -1
- package/dist/src/humanize/overlap.d.ts +116 -0
- package/dist/src/humanize/overlap.d.ts.map +1 -0
- package/dist/src/humanize/overlap.js +680 -0
- package/dist/src/humanize/overlap.js.map +1 -0
- package/dist/src/interview/engine.d.ts +1 -1
- package/dist/src/interview/engine.d.ts.map +1 -1
- package/dist/src/interview/engine.js +3 -3
- package/dist/src/interview/engine.js.map +1 -1
- package/dist/src/interview/passthrough-engine.d.ts +1 -1
- package/dist/src/interview/passthrough-engine.d.ts.map +1 -1
- package/dist/src/interview/passthrough-engine.js +20 -3
- package/dist/src/interview/passthrough-engine.js.map +1 -1
- package/dist/src/interview/repository.d.ts +8 -0
- package/dist/src/interview/repository.d.ts.map +1 -1
- package/dist/src/interview/repository.js +16 -1
- package/dist/src/interview/repository.js.map +1 -1
- package/dist/src/interview/session.d.ts +15 -2
- package/dist/src/interview/session.d.ts.map +1 -1
- package/dist/src/interview/session.js +67 -23
- package/dist/src/interview/session.js.map +1 -1
- package/dist/src/knowledge-base/embedding.d.ts +6 -1
- package/dist/src/knowledge-base/embedding.d.ts.map +1 -1
- package/dist/src/knowledge-base/embedding.js +19 -6
- package/dist/src/knowledge-base/embedding.js.map +1 -1
- package/dist/src/local-pr/registry.d.ts +1 -21
- package/dist/src/local-pr/registry.d.ts.map +1 -1
- package/dist/src/local-pr/registry.js +7 -113
- package/dist/src/local-pr/registry.js.map +1 -1
- package/dist/src/mcp/input-guard.d.ts +17 -0
- package/dist/src/mcp/input-guard.d.ts.map +1 -1
- package/dist/src/mcp/input-guard.js +1 -1
- package/dist/src/mcp/input-guard.js.map +1 -1
- package/dist/src/mcp/schemas.d.ts +62 -7
- package/dist/src/mcp/schemas.d.ts.map +1 -1
- package/dist/src/mcp/schemas.js +28 -1
- package/dist/src/mcp/schemas.js.map +1 -1
- package/dist/src/mcp/server.d.ts.map +1 -1
- package/dist/src/mcp/server.js +26 -40
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/mcp/tools/execute/evaluate.d.ts.map +1 -1
- package/dist/src/mcp/tools/execute/evaluate.js +15 -9
- package/dist/src/mcp/tools/execute/evaluate.js.map +1 -1
- package/dist/src/mcp/tools/execute/evolve.d.ts +1 -0
- package/dist/src/mcp/tools/execute/evolve.d.ts.map +1 -1
- package/dist/src/mcp/tools/execute/evolve.js +102 -37
- package/dist/src/mcp/tools/execute/evolve.js.map +1 -1
- package/dist/src/mcp/tools/execute/execution.d.ts.map +1 -1
- package/dist/src/mcp/tools/execute/execution.js +66 -7
- package/dist/src/mcp/tools/execute/execution.js.map +1 -1
- package/dist/src/mcp/tools/execute/planning.d.ts.map +1 -1
- package/dist/src/mcp/tools/execute/planning.js +34 -2
- package/dist/src/mcp/tools/execute/planning.js.map +1 -1
- package/dist/src/mcp/tools/execute/roles.d.ts.map +1 -1
- package/dist/src/mcp/tools/execute/roles.js +13 -5
- package/dist/src/mcp/tools/execute/roles.js.map +1 -1
- package/dist/src/mcp/tools/execute/utility.d.ts.map +1 -1
- package/dist/src/mcp/tools/execute/utility.js +26 -0
- package/dist/src/mcp/tools/execute/utility.js.map +1 -1
- package/dist/src/mcp/tools/execute/utils.d.ts +1 -0
- package/dist/src/mcp/tools/execute/utils.d.ts.map +1 -1
- package/dist/src/mcp/tools/execute/utils.js +15 -0
- package/dist/src/mcp/tools/execute/utils.js.map +1 -1
- package/dist/src/mcp/tools/execute-passthrough.d.ts.map +1 -1
- package/dist/src/mcp/tools/execute-passthrough.js +21 -1
- package/dist/src/mcp/tools/execute-passthrough.js.map +1 -1
- package/dist/src/mcp/tools/interview-passthrough.d.ts +2 -1
- package/dist/src/mcp/tools/interview-passthrough.d.ts.map +1 -1
- package/dist/src/mcp/tools/interview-passthrough.js +4 -3
- package/dist/src/mcp/tools/interview-passthrough.js.map +1 -1
- package/dist/src/mcp/tools/interview.d.ts.map +1 -1
- package/dist/src/mcp/tools/interview.js +2 -1
- package/dist/src/mcp/tools/interview.js.map +1 -1
- package/dist/src/mcp/tools/review-passthrough.js +15 -19
- package/dist/src/mcp/tools/review-passthrough.js.map +1 -1
- package/dist/src/mcp/tools/spec-passthrough.d.ts.map +1 -1
- package/dist/src/mcp/tools/spec-passthrough.js +16 -8
- package/dist/src/mcp/tools/spec-passthrough.js.map +1 -1
- package/dist/src/mcp/tools/status.d.ts.map +1 -1
- package/dist/src/mcp/tools/status.js +4 -0
- package/dist/src/mcp/tools/status.js.map +1 -1
- package/dist/src/memory/memory-context-injector.d.ts +22 -8
- package/dist/src/memory/memory-context-injector.d.ts.map +1 -1
- package/dist/src/memory/memory-context-injector.js +85 -13
- package/dist/src/memory/memory-context-injector.js.map +1 -1
- package/dist/src/memory/memory-merge.d.ts +19 -0
- package/dist/src/memory/memory-merge.d.ts.map +1 -0
- package/dist/src/memory/memory-merge.js +120 -0
- package/dist/src/memory/memory-merge.js.map +1 -0
- package/dist/src/memory/project-memory-store.d.ts +15 -11
- package/dist/src/memory/project-memory-store.d.ts.map +1 -1
- package/dist/src/memory/project-memory-store.js +97 -120
- package/dist/src/memory/project-memory-store.js.map +1 -1
- package/dist/src/memory/semantic-search.d.ts +4 -1
- package/dist/src/memory/semantic-search.d.ts.map +1 -1
- package/dist/src/memory/semantic-search.js +66 -19
- package/dist/src/memory/semantic-search.js.map +1 -1
- package/dist/src/resilience/lateral.d.ts +8 -1
- package/dist/src/resilience/lateral.d.ts.map +1 -1
- package/dist/src/resilience/lateral.js +52 -4
- package/dist/src/resilience/lateral.js.map +1 -1
- package/package.json +4 -3
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/.mcp.json +1 -1
- package/plugin/mcp.json +1 -1
- package/plugin/review-agents/harness-reviewer/AGENT.md +21 -1
- package/plugin/skills/dispatch/SKILL.md +14 -2
- package/plugin/skills/execute/SKILL.md +219 -52
- package/plugin/skills/interview/SKILL.md +15 -2
- package/plugin/skills/solve/SKILL.md +20 -5
- package/plugin/skills/spec/SKILL.md +2 -0
- package/dist/src/interview/mini-interview-engine.d.ts +0 -33
- package/dist/src/interview/mini-interview-engine.d.ts.map +0 -1
- package/dist/src/interview/mini-interview-engine.js +0 -102
- package/dist/src/interview/mini-interview-engine.js.map +0 -1
- package/dist/src/memory/user-profile-store.d.ts +0 -13
- package/dist/src/memory/user-profile-store.d.ts.map +0 -1
- package/dist/src/memory/user-profile-store.js +0 -85
- 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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"}
|