@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 @@
|
|
|
1
|
+
{"version":3,"file":"overlap.js","sourceRoot":"","sources":["../../../src/humanize/overlap.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,7 +28,7 @@ export declare class InterviewEngine {
|
|
|
28
28
|
start(topic: string, cwd?: string): Promise<Result<StartResult, InterviewError>>;
|
|
29
29
|
respond(sessionId: string, response: string): Promise<Result<RespondResult, InterviewError>>;
|
|
30
30
|
score(sessionId: string): Promise<Result<ResolutionScore, InterviewError>>;
|
|
31
|
-
complete(sessionId: string): Result<InterviewSession, InterviewError>;
|
|
31
|
+
complete(sessionId: string, force?: boolean): Result<InterviewSession, InterviewError>;
|
|
32
32
|
getSession(sessionId: string): InterviewSession;
|
|
33
33
|
getLatestSession(): InterviewSession | null;
|
|
34
34
|
listSessions(): InterviewSession[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/interview/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEvF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,mBAAmB,CAAC;AAMzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,eAAe,CAAC;CAClC;AAED,qBAAa,eAAe;IAYxB,OAAO,CAAC,UAAU;IAXpB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,gBAAgB,CAAmB;IAE3C;;;;OAIG;gBAED,GAAG,EAAE,UAAU,EACP,UAAU,EAAE,UAAU,EAC9B,SAAS,CAAC,EAAE,UAAU;IAQlB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAqChF,OAAO,CACX,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IA4D3C,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;IAiBhF,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/interview/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEvF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,mBAAmB,CAAC;AAMzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,eAAe,CAAC;CAClC;AAED,qBAAa,eAAe;IAYxB,OAAO,CAAC,UAAU;IAXpB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,gBAAgB,CAAmB;IAE3C;;;;OAIG;gBAED,GAAG,EAAE,UAAU,EACP,UAAU,EAAE,UAAU,EAC9B,SAAS,CAAC,EAAE,UAAU;IAQlB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAqChF,OAAO,CACX,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IA4D3C,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;IAiBhF,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC;IAUpF,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB;IAI/C,gBAAgB,IAAI,gBAAgB,GAAG,IAAI;IAI3C,YAAY,IAAI,gBAAgB,EAAE;CAGnC"}
|
|
@@ -57,7 +57,7 @@ export class InterviewEngine {
|
|
|
57
57
|
this.sessionManager.recordResponse(sessionId, response);
|
|
58
58
|
const session = this.sessionManager.get(sessionId);
|
|
59
59
|
if (session.rounds.length >= MAX_INTERVIEW_ROUNDS) {
|
|
60
|
-
return err(new InterviewError(`Maximum interview rounds (${MAX_INTERVIEW_ROUNDS}) reached. Complete the session.`));
|
|
60
|
+
return err(new InterviewError(`Maximum interview rounds (${MAX_INTERVIEW_ROUNDS}) reached. Complete the session (pass force=true if resolution is still below the threshold).`));
|
|
61
61
|
}
|
|
62
62
|
// Score resolution
|
|
63
63
|
const resolutionScore = await this.resolutionScorer.score(session.topic, session.rounds, session.projectType);
|
|
@@ -97,9 +97,9 @@ export class InterviewEngine {
|
|
|
97
97
|
return err(new InterviewError(`Failed to score: ${e instanceof Error ? e.message : String(e)}`));
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
|
-
complete(sessionId) {
|
|
100
|
+
complete(sessionId, force = false) {
|
|
101
101
|
try {
|
|
102
|
-
return ok(this.sessionManager.complete(sessionId));
|
|
102
|
+
return ok(this.sessionManager.complete(sessionId, { force }));
|
|
103
103
|
}
|
|
104
104
|
catch (e) {
|
|
105
105
|
return err(new InterviewError(`Failed to complete: ${e instanceof Error ? e.message : String(e)}`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/interview/engine.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/interview/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,7 +49,7 @@ export declare class PassthroughEngine {
|
|
|
49
49
|
resolutionScore: ResolutionScore | null;
|
|
50
50
|
scoringPrompt?: string;
|
|
51
51
|
}, InterviewError>;
|
|
52
|
-
complete(sessionId: string): Result<InterviewSession, InterviewError>;
|
|
52
|
+
complete(sessionId: string, force?: boolean): Result<InterviewSession, InterviewError>;
|
|
53
53
|
getSession(sessionId: string): InterviewSession;
|
|
54
54
|
getSessionManager(): SessionManager;
|
|
55
55
|
getLatestSession(): InterviewSession | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passthrough-engine.d.ts","sourceRoot":"","sources":["../../../src/interview/passthrough-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,mBAAmB,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAM1D,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,cAAc,EAAE,cAAc,CAAC;IAC/B,kBAAkB,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAID,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAID,qBAAa,iBAAiB;IAK1B,OAAO,CAAC,UAAU;IAJpB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,aAAa,CAAC,CAAgB;gBAG5B,UAAU,EAAE,UAAU,EAC9B,aAAa,CAAC,EAAE,aAAa;IAO/B,KAAK,CACH,KAAK,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,MAAM,EACZ,gBAAgB,CAAC,EAAE,MAAM,GACxB,MAAM,CAAC,sBAAsB,EAAE,cAAc,CAAC;IAuCjD,OAAO,CACL,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,MAAM,EACzB,aAAa,CAAC,EAAE,uBAAuB,GACtC,MAAM,CAAC,wBAAwB,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"passthrough-engine.d.ts","sourceRoot":"","sources":["../../../src/interview/passthrough-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,mBAAmB,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAM1D,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,cAAc,EAAE,cAAc,CAAC;IAC/B,kBAAkB,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAID,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAID,qBAAa,iBAAiB;IAK1B,OAAO,CAAC,UAAU;IAJpB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,aAAa,CAAC,CAAgB;gBAG5B,UAAU,EAAE,UAAU,EAC9B,aAAa,CAAC,EAAE,aAAa;IAO/B,KAAK,CACH,KAAK,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,MAAM,EACZ,gBAAgB,CAAC,EAAE,MAAM,GACxB,MAAM,CAAC,sBAAsB,EAAE,cAAc,CAAC;IAuCjD,OAAO,CACL,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,MAAM,EACzB,aAAa,CAAC,EAAE,uBAAuB,GACtC,MAAM,CAAC,wBAAwB,EAAE,cAAc,CAAC;IA2GnD,KAAK,CACH,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,uBAAuB,GACtC,MAAM,CAAC;QAAE,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,cAAc,CAAC;IAoC9F,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC;IAUpF,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB;IAI/C,iBAAiB,IAAI,cAAc;IAInC,gBAAgB,IAAI,gBAAgB,GAAG,IAAI;IAI3C,YAAY,IAAI,gBAAgB,EAAE;IAMlC,OAAO,CAAC,mBAAmB;CAqC5B"}
|
|
@@ -69,7 +69,7 @@ export class PassthroughEngine {
|
|
|
69
69
|
// Record the user's response
|
|
70
70
|
this.sessionManager.recordResponse(sessionId, response);
|
|
71
71
|
if (session.rounds.length >= MAX_INTERVIEW_ROUNDS) {
|
|
72
|
-
return err(new InterviewError(`Maximum interview rounds (${MAX_INTERVIEW_ROUNDS}) reached. Complete the session.`));
|
|
72
|
+
return err(new InterviewError(`Maximum interview rounds (${MAX_INTERVIEW_ROUNDS}) reached. Complete the session (pass force=true if resolution is still below the threshold).`));
|
|
73
73
|
}
|
|
74
74
|
// Compute resolution score if provided externally
|
|
75
75
|
let resolutionScore = null;
|
|
@@ -82,6 +82,9 @@ export class PassthroughEngine {
|
|
|
82
82
|
contextClarity: externalScore.contextClarity,
|
|
83
83
|
contradictions: externalScore.contradictions ?? [],
|
|
84
84
|
}, session.projectType);
|
|
85
|
+
const rejected = rejectUnbackedReadyScore(session, resolutionScore);
|
|
86
|
+
if (rejected)
|
|
87
|
+
return err(rejected);
|
|
85
88
|
this.sessionManager.updateResolutionScore(sessionId, resolutionScore);
|
|
86
89
|
}
|
|
87
90
|
// Select next principle
|
|
@@ -133,6 +136,9 @@ export class PassthroughEngine {
|
|
|
133
136
|
contextClarity: externalScore.contextClarity,
|
|
134
137
|
contradictions: externalScore.contradictions ?? [],
|
|
135
138
|
}, session.projectType);
|
|
139
|
+
const rejected = rejectUnbackedReadyScore(session, resolutionScore);
|
|
140
|
+
if (rejected)
|
|
141
|
+
return err(rejected);
|
|
136
142
|
this.sessionManager.updateResolutionScore(sessionId, resolutionScore);
|
|
137
143
|
return ok({ resolutionScore });
|
|
138
144
|
}
|
|
@@ -147,9 +153,9 @@ export class PassthroughEngine {
|
|
|
147
153
|
return err(new InterviewError(`Failed to score: ${e instanceof Error ? e.message : String(e)}`));
|
|
148
154
|
}
|
|
149
155
|
}
|
|
150
|
-
complete(sessionId) {
|
|
156
|
+
complete(sessionId, force = false) {
|
|
151
157
|
try {
|
|
152
|
-
return ok(this.sessionManager.complete(sessionId));
|
|
158
|
+
return ok(this.sessionManager.complete(sessionId, { force }));
|
|
153
159
|
}
|
|
154
160
|
catch (e) {
|
|
155
161
|
return err(new InterviewError(`Failed to complete: ${e instanceof Error ? e.message : String(e)}`));
|
|
@@ -191,4 +197,15 @@ export class PassthroughEngine {
|
|
|
191
197
|
return context;
|
|
192
198
|
}
|
|
193
199
|
}
|
|
200
|
+
// 답을 하나도 안 받은 세션은 근거가 없으니 임계값 이상 점수를 받지 않는다.
|
|
201
|
+
// 공백만 보낸 답은 답으로 치지 않는다.
|
|
202
|
+
// 임계값 미만은 막지 않는다 — 시작 직전 상태를 낮게 기록하는 건 정상 흐름이다.
|
|
203
|
+
function rejectUnbackedReadyScore(session, resolutionScore) {
|
|
204
|
+
if (!resolutionScore.isReady)
|
|
205
|
+
return null;
|
|
206
|
+
const answered = session.rounds.some((r) => (r.userResponse ?? '').trim() !== '');
|
|
207
|
+
if (answered)
|
|
208
|
+
return null;
|
|
209
|
+
return new InterviewError(`답변한 라운드가 없는 세션에 임계값 이상 해상도(${resolutionScore.overall.toFixed(2)})를 기록할 수 없습니다. 먼저 respond로 사용자 답변을 받으세요.`);
|
|
210
|
+
}
|
|
194
211
|
//# sourceMappingURL=passthrough-engine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passthrough-engine.js","sourceRoot":"","sources":["../../../src/interview/passthrough-engine.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"passthrough-engine.js","sourceRoot":"","sources":["../../../src/interview/passthrough-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,14 @@ export declare class InterviewSessionRepository {
|
|
|
11
11
|
* 이벤트를 fold하여 InterviewSession 상태를 완전히 복원한다.
|
|
12
12
|
*/
|
|
13
13
|
reconstruct(sessionId: string): InterviewSession | null;
|
|
14
|
+
/**
|
|
15
|
+
* 재구성한 세션과 그때 읽은 이벤트 수를 함께 돌려준다.
|
|
16
|
+
* 매니저는 이 수를 스토어의 현재 수와 비교해 다른 프로세스가 덧붙였는지 본다.
|
|
17
|
+
*/
|
|
18
|
+
load(sessionId: string): {
|
|
19
|
+
session: InterviewSession;
|
|
20
|
+
eventCount: number;
|
|
21
|
+
} | null;
|
|
14
22
|
/**
|
|
15
23
|
* 모든 Interview 세션 ID 목록을 반환한다.
|
|
16
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/interview/repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAEV,gBAAgB,
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/interview/repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAEV,gBAAgB,EAMjB,MAAM,kBAAkB,CAAC;AAI1B;;;GAGG;AACH,qBAAa,0BAA0B;IACzB,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,WAAW;IAE3C;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAIvD;;;OAGG;IACH,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,gBAAgB,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAOjF;;OAEG;IACH,IAAI,IAAI,MAAM,EAAE;IAIhB;;OAEG;IACH,cAAc,IAAI,gBAAgB,EAAE;IAUpC,OAAO,CAAC,UAAU;IAwBlB,OAAO,CAAC,UAAU;CAmFnB"}
|
|
@@ -13,10 +13,17 @@ export class InterviewSessionRepository {
|
|
|
13
13
|
* 이벤트를 fold하여 InterviewSession 상태를 완전히 복원한다.
|
|
14
14
|
*/
|
|
15
15
|
reconstruct(sessionId) {
|
|
16
|
+
return this.load(sessionId)?.session ?? null;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* 재구성한 세션과 그때 읽은 이벤트 수를 함께 돌려준다.
|
|
20
|
+
* 매니저는 이 수를 스토어의 현재 수와 비교해 다른 프로세스가 덧붙였는지 본다.
|
|
21
|
+
*/
|
|
22
|
+
load(sessionId) {
|
|
16
23
|
const events = this.eventStore.replay('interview', sessionId);
|
|
17
24
|
if (events.length === 0)
|
|
18
25
|
return null;
|
|
19
|
-
return this.foldEvents(sessionId, events);
|
|
26
|
+
return { session: this.foldEvents(sessionId, events), eventCount: events.length };
|
|
20
27
|
}
|
|
21
28
|
/**
|
|
22
29
|
* 모든 Interview 세션 ID 목록을 반환한다.
|
|
@@ -117,6 +124,14 @@ export class InterviewSessionRepository {
|
|
|
117
124
|
}
|
|
118
125
|
case EventType.INTERVIEW_SESSION_COMPLETED:
|
|
119
126
|
session.status = 'completed';
|
|
127
|
+
if (payload.forced === true)
|
|
128
|
+
session.forcedComplete = true;
|
|
129
|
+
break;
|
|
130
|
+
case EventType.INTERVIEW_SESSION_ABORTED:
|
|
131
|
+
session.status = 'aborted';
|
|
132
|
+
break;
|
|
133
|
+
case EventType.INTERVIEW_CONTEXT_COMPRESSED:
|
|
134
|
+
session.compressedContext = payload.compressedContext;
|
|
120
135
|
break;
|
|
121
136
|
// BROWNFIELD_DETECTED, GESTALT_PRINCIPLE_APPLIED — 세션 상태에는 직접 영향 없음
|
|
122
137
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../src/interview/repository.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../src/interview/repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,29 @@
|
|
|
1
1
|
import type { InterviewSession, InterviewRound, ResolutionScore, ProjectType, GestaltPrinciple, CompressedContext } from '../core/types.js';
|
|
2
2
|
import type { IEventStore } from '../events/store.js';
|
|
3
|
+
/**
|
|
4
|
+
* 인터뷰 세션의 인메모리 캐시. 기준은 이벤트 스토어다.
|
|
5
|
+
*
|
|
6
|
+
* 같은 DB를 여러 MCP 프로세스(dispatch 워커 등)가 함께 쓴다. 그래서 캐시가 담은
|
|
7
|
+
* 세션마다 그때까지 반영한 이벤트 수를 들고 있다가, get()에서 스토어의 수와 다르면
|
|
8
|
+
* 다시 재구성한다. 모든 변경 메서드가 get()부터 부르므로 쓰기도 최신 상태 위에서 한다.
|
|
9
|
+
*/
|
|
3
10
|
export declare class SessionManager {
|
|
4
11
|
private eventStore;
|
|
5
12
|
private sessions;
|
|
13
|
+
private eventCounts;
|
|
14
|
+
private repo;
|
|
6
15
|
constructor(eventStore: IEventStore);
|
|
7
16
|
/**
|
|
8
17
|
* EventStore에서 기존 세션을 복원하여 메모리 Map에 로드한다.
|
|
9
18
|
* 서버 시작 시 한 번 호출.
|
|
10
19
|
*/
|
|
11
20
|
loadFromStore(): void;
|
|
21
|
+
private reload;
|
|
22
|
+
private record;
|
|
12
23
|
create(topic: string, projectType: ProjectType): InterviewSession;
|
|
13
24
|
/**
|
|
14
25
|
* updatedAt(마지막 활동) 기준으로 ttlMs를 초과한 인메모리 세션을 제거한다.
|
|
15
|
-
* SQLite 이벤트 원장은 보존되므로
|
|
26
|
+
* SQLite 이벤트 원장은 보존되므로 지운 세션도 get()이 다시 재구성한다.
|
|
16
27
|
* @returns 제거된 세션 수
|
|
17
28
|
*/
|
|
18
29
|
cleanup(ttlMs?: number): number;
|
|
@@ -22,7 +33,9 @@ export declare class SessionManager {
|
|
|
22
33
|
recordResponse(sessionId: string, response: string): InterviewRound;
|
|
23
34
|
updateResolutionScore(sessionId: string, score: ResolutionScore): void;
|
|
24
35
|
setCompressedContext(sessionId: string, compressedContext: CompressedContext): void;
|
|
25
|
-
complete(sessionId: string
|
|
36
|
+
complete(sessionId: string, options?: {
|
|
37
|
+
force?: boolean;
|
|
38
|
+
}): InterviewSession;
|
|
26
39
|
abort(sessionId: string): InterviewSession;
|
|
27
40
|
list(): InterviewSession[];
|
|
28
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/interview/session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/interview/session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD;;;;;;GAMG;AACH,qBAAa,cAAc;IAKb,OAAO,CAAC,UAAU;IAJ9B,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,IAAI,CAA6B;gBAErB,UAAU,EAAE,WAAW;IAI3C;;;OAGG;IACH,aAAa,IAAI,IAAI;IAIrB,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,MAAM;IAUd,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,gBAAgB;IA4BjE;;;;OAIG;IACH,OAAO,CAAC,KAAK,SAAyB,GAAG,MAAM;IAa/C,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB;IAaxC,SAAS,IAAI,gBAAgB,GAAG,IAAI;IAQpC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,GAAG,cAAc;IA6BhG,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc;IAoBnE,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI;IAoBtE,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,GAAG,IAAI;IAQnF,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,gBAAgB;IAmChF,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB;IAU1C,IAAI,IAAI,gBAAgB,EAAE;CAK3B"}
|
|
@@ -1,25 +1,45 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
|
-
import { SessionNotFoundError, SessionAlreadyCompletedError } from '../core/errors.js';
|
|
3
|
-
import { DEFAULT_SESSION_TTL_MS } from '../core/constants.js';
|
|
2
|
+
import { SessionNotFoundError, SessionAlreadyCompletedError, InterviewNotReadyError, } from '../core/errors.js';
|
|
3
|
+
import { DEFAULT_SESSION_TTL_MS, RESOLUTION_THRESHOLD } from '../core/constants.js';
|
|
4
4
|
import { logger } from '../core/logger.js';
|
|
5
5
|
import { EventType } from '../events/types.js';
|
|
6
6
|
import { InterviewSessionRepository } from './repository.js';
|
|
7
|
+
/**
|
|
8
|
+
* 인터뷰 세션의 인메모리 캐시. 기준은 이벤트 스토어다.
|
|
9
|
+
*
|
|
10
|
+
* 같은 DB를 여러 MCP 프로세스(dispatch 워커 등)가 함께 쓴다. 그래서 캐시가 담은
|
|
11
|
+
* 세션마다 그때까지 반영한 이벤트 수를 들고 있다가, get()에서 스토어의 수와 다르면
|
|
12
|
+
* 다시 재구성한다. 모든 변경 메서드가 get()부터 부르므로 쓰기도 최신 상태 위에서 한다.
|
|
13
|
+
*/
|
|
7
14
|
export class SessionManager {
|
|
8
15
|
eventStore;
|
|
9
16
|
sessions = new Map();
|
|
17
|
+
eventCounts = new Map();
|
|
18
|
+
repo;
|
|
10
19
|
constructor(eventStore) {
|
|
11
20
|
this.eventStore = eventStore;
|
|
21
|
+
this.repo = new InterviewSessionRepository(eventStore);
|
|
12
22
|
}
|
|
13
23
|
/**
|
|
14
24
|
* EventStore에서 기존 세션을 복원하여 메모리 Map에 로드한다.
|
|
15
25
|
* 서버 시작 시 한 번 호출.
|
|
16
26
|
*/
|
|
17
27
|
loadFromStore() {
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
28
|
+
for (const id of this.repo.list())
|
|
29
|
+
this.reload(id);
|
|
30
|
+
}
|
|
31
|
+
reload(sessionId) {
|
|
32
|
+
const loaded = this.repo.load(sessionId);
|
|
33
|
+
if (!loaded)
|
|
34
|
+
return null;
|
|
35
|
+
this.sessions.set(sessionId, loaded.session);
|
|
36
|
+
this.eventCounts.set(sessionId, loaded.eventCount);
|
|
37
|
+
return loaded.session;
|
|
38
|
+
}
|
|
39
|
+
record(sessionId, eventType, payload) {
|
|
40
|
+
const event = this.eventStore.append('interview', sessionId, eventType, payload);
|
|
41
|
+
this.eventCounts.set(sessionId, (this.eventCounts.get(sessionId) ?? 0) + 1);
|
|
42
|
+
return event.timestamp;
|
|
23
43
|
}
|
|
24
44
|
create(topic, projectType) {
|
|
25
45
|
const session = {
|
|
@@ -33,7 +53,7 @@ export class SessionManager {
|
|
|
33
53
|
updatedAt: new Date().toISOString(),
|
|
34
54
|
};
|
|
35
55
|
this.sessions.set(session.sessionId, session);
|
|
36
|
-
this.
|
|
56
|
+
this.record(session.sessionId, EventType.INTERVIEW_SESSION_STARTED, {
|
|
37
57
|
topic,
|
|
38
58
|
projectType,
|
|
39
59
|
});
|
|
@@ -46,7 +66,7 @@ export class SessionManager {
|
|
|
46
66
|
}
|
|
47
67
|
/**
|
|
48
68
|
* updatedAt(마지막 활동) 기준으로 ttlMs를 초과한 인메모리 세션을 제거한다.
|
|
49
|
-
* SQLite 이벤트 원장은 보존되므로
|
|
69
|
+
* SQLite 이벤트 원장은 보존되므로 지운 세션도 get()이 다시 재구성한다.
|
|
50
70
|
* @returns 제거된 세션 수
|
|
51
71
|
*/
|
|
52
72
|
cleanup(ttlMs = DEFAULT_SESSION_TTL_MS) {
|
|
@@ -55,13 +75,19 @@ export class SessionManager {
|
|
|
55
75
|
for (const [id, session] of this.sessions) {
|
|
56
76
|
if (now - new Date(session.updatedAt).getTime() > ttlMs) {
|
|
57
77
|
this.sessions.delete(id);
|
|
78
|
+
this.eventCounts.delete(id);
|
|
58
79
|
removed++;
|
|
59
80
|
}
|
|
60
81
|
}
|
|
61
82
|
return removed;
|
|
62
83
|
}
|
|
63
84
|
get(sessionId) {
|
|
64
|
-
const
|
|
85
|
+
const cached = this.sessions.get(sessionId);
|
|
86
|
+
if (cached &&
|
|
87
|
+
this.eventCounts.get(sessionId) === this.eventStore.countByAggregate('interview', sessionId)) {
|
|
88
|
+
return cached;
|
|
89
|
+
}
|
|
90
|
+
const session = this.reload(sessionId);
|
|
65
91
|
if (!session)
|
|
66
92
|
throw new SessionNotFoundError(sessionId);
|
|
67
93
|
return session;
|
|
@@ -69,7 +95,8 @@ export class SessionManager {
|
|
|
69
95
|
getLatest() {
|
|
70
96
|
let latest = null;
|
|
71
97
|
for (const session of this.sessions.values()) {
|
|
72
|
-
latest
|
|
98
|
+
if (!latest || session.updatedAt >= latest.updatedAt)
|
|
99
|
+
latest = session;
|
|
73
100
|
}
|
|
74
101
|
return latest;
|
|
75
102
|
}
|
|
@@ -78,20 +105,23 @@ export class SessionManager {
|
|
|
78
105
|
if (session.status !== 'in_progress') {
|
|
79
106
|
throw new SessionAlreadyCompletedError(sessionId);
|
|
80
107
|
}
|
|
108
|
+
const roundNumber = session.rounds.length + 1;
|
|
109
|
+
// replay는 라운드 시각을 이벤트 timestamp로 복원한다. 여기서 시각을 따로 찍으면
|
|
110
|
+
// 밀리초 경계에 걸릴 때 라이브 세션과 replay 결과가 어긋난다
|
|
111
|
+
const timestamp = this.record(sessionId, EventType.INTERVIEW_QUESTION_ASKED, {
|
|
112
|
+
roundNumber,
|
|
113
|
+
question,
|
|
114
|
+
gestaltFocus,
|
|
115
|
+
});
|
|
81
116
|
const round = {
|
|
82
|
-
roundNumber
|
|
117
|
+
roundNumber,
|
|
83
118
|
question,
|
|
84
119
|
userResponse: null,
|
|
85
120
|
gestaltFocus,
|
|
86
|
-
timestamp
|
|
121
|
+
timestamp,
|
|
87
122
|
};
|
|
88
123
|
session.rounds.push(round);
|
|
89
|
-
session.updatedAt =
|
|
90
|
-
this.eventStore.append('interview', sessionId, EventType.INTERVIEW_QUESTION_ASKED, {
|
|
91
|
-
roundNumber: round.roundNumber,
|
|
92
|
-
question,
|
|
93
|
-
gestaltFocus,
|
|
94
|
-
});
|
|
124
|
+
session.updatedAt = timestamp;
|
|
95
125
|
return round;
|
|
96
126
|
}
|
|
97
127
|
recordResponse(sessionId, response) {
|
|
@@ -104,7 +134,7 @@ export class SessionManager {
|
|
|
104
134
|
throw new SessionNotFoundError(sessionId);
|
|
105
135
|
currentRound.userResponse = response;
|
|
106
136
|
session.updatedAt = new Date().toISOString();
|
|
107
|
-
this.
|
|
137
|
+
this.record(sessionId, EventType.INTERVIEW_RESPONSE_RECORDED, {
|
|
108
138
|
roundNumber: currentRound.roundNumber,
|
|
109
139
|
response,
|
|
110
140
|
});
|
|
@@ -119,7 +149,7 @@ export class SessionManager {
|
|
|
119
149
|
if (currentRound && score.contradictions && score.contradictions.length > 0) {
|
|
120
150
|
currentRound.contradictions = score.contradictions;
|
|
121
151
|
}
|
|
122
|
-
this.
|
|
152
|
+
this.record(sessionId, EventType.INTERVIEW_RESOLUTION_SCORED, {
|
|
123
153
|
overall: score.overall,
|
|
124
154
|
isReady: score.isReady,
|
|
125
155
|
dimensions: score.dimensions,
|
|
@@ -131,20 +161,33 @@ export class SessionManager {
|
|
|
131
161
|
const session = this.get(sessionId);
|
|
132
162
|
session.compressedContext = compressedContext;
|
|
133
163
|
session.updatedAt = new Date().toISOString();
|
|
164
|
+
this.record(sessionId, EventType.INTERVIEW_CONTEXT_COMPRESSED, { compressedContext });
|
|
134
165
|
}
|
|
135
|
-
complete(sessionId) {
|
|
166
|
+
complete(sessionId, options = {}) {
|
|
136
167
|
const session = this.get(sessionId);
|
|
168
|
+
if (session.status !== 'in_progress') {
|
|
169
|
+
throw new SessionAlreadyCompletedError(sessionId);
|
|
170
|
+
}
|
|
171
|
+
const ready = session.resolutionScore?.isReady === true;
|
|
172
|
+
if (!ready && !options.force) {
|
|
173
|
+
throw new InterviewNotReadyError(session.resolutionScore?.overall ?? null, RESOLUTION_THRESHOLD);
|
|
174
|
+
}
|
|
175
|
+
const forced = !ready;
|
|
137
176
|
session.status = 'completed';
|
|
138
177
|
session.updatedAt = new Date().toISOString();
|
|
139
|
-
|
|
178
|
+
if (forced)
|
|
179
|
+
session.forcedComplete = true;
|
|
180
|
+
this.record(sessionId, EventType.INTERVIEW_SESSION_COMPLETED, {
|
|
140
181
|
totalRounds: session.rounds.length,
|
|
141
182
|
finalResolutionScore: session.resolutionScore?.overall ?? null,
|
|
183
|
+
forced,
|
|
142
184
|
});
|
|
143
185
|
logger.info('interview.completed', {
|
|
144
186
|
module: 'interview',
|
|
145
187
|
sessionId,
|
|
146
188
|
totalRounds: session.rounds.length,
|
|
147
189
|
finalResolutionScore: session.resolutionScore?.overall ?? null,
|
|
190
|
+
forced,
|
|
148
191
|
});
|
|
149
192
|
return session;
|
|
150
193
|
}
|
|
@@ -152,6 +195,7 @@ export class SessionManager {
|
|
|
152
195
|
const session = this.get(sessionId);
|
|
153
196
|
session.status = 'aborted';
|
|
154
197
|
session.updatedAt = new Date().toISOString();
|
|
198
|
+
this.record(sessionId, EventType.INTERVIEW_SESSION_ABORTED, {});
|
|
155
199
|
return session;
|
|
156
200
|
}
|
|
157
201
|
list() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/interview/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AASzC,OAAO,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/interview/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,14 @@
|
|
|
3
3
|
* 모델은 첫 호출 시 lazy 로딩된다.
|
|
4
4
|
*/
|
|
5
5
|
export declare class EmbeddingService {
|
|
6
|
-
private
|
|
6
|
+
private pipelinePromise;
|
|
7
7
|
private readonly modelName;
|
|
8
8
|
private getPipeline;
|
|
9
|
+
/**
|
|
10
|
+
* 모델을 미리 올린다. 이미 올라와 있으면 바로 끝난다.
|
|
11
|
+
* 로딩 실패와 임베딩 실패를 호출부가 나눠 다룰 수 있게 따로 둔다.
|
|
12
|
+
*/
|
|
13
|
+
ensureLoaded(): Promise<void>;
|
|
9
14
|
/**
|
|
10
15
|
* 텍스트 하나를 임베딩 벡터로 변환한다.
|
|
11
16
|
* embedBatch에 위임한다.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../../../src/knowledge-base/embedding.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../../../src/knowledge-base/embedding.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,eAAe,CAAmD;IAC1E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;IAGvD,OAAO,CAAC,WAAW;IAiBnB;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC;;;OAGG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAK5C;;;OAGG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,SAAK,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;CAevE"}
|