@tienne/gestalt 0.15.2 → 0.16.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/dist/package.json +1 -1
- package/dist/src/cli/commands/init.d.ts.map +1 -1
- package/dist/src/cli/commands/init.js +37 -15
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/core/errors.d.ts +4 -2
- package/dist/src/core/errors.d.ts.map +1 -1
- package/dist/src/core/errors.js +14 -5
- package/dist/src/core/errors.js.map +1 -1
- package/dist/src/core/types.d.ts +15 -0
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/execute/drift-detector.d.ts.map +1 -1
- package/dist/src/execute/drift-detector.js +18 -1
- package/dist/src/execute/drift-detector.js.map +1 -1
- package/dist/src/gestalt/analyzer.d.ts.map +1 -1
- package/dist/src/gestalt/analyzer.js +10 -0
- package/dist/src/gestalt/analyzer.js.map +1 -1
- package/dist/src/mcp/schemas.d.ts +6 -0
- package/dist/src/mcp/schemas.d.ts.map +1 -1
- package/dist/src/mcp/schemas.js +11 -0
- package/dist/src/mcp/schemas.js.map +1 -1
- package/dist/src/mcp/tools/execute-passthrough.d.ts.map +1 -1
- package/dist/src/mcp/tools/execute-passthrough.js +197 -5
- package/dist/src/mcp/tools/execute-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 -2
- 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 +29 -2
- package/dist/src/mcp/tools/status.js.map +1 -1
- package/package.json +1 -1
|
@@ -32,9 +32,10 @@ export function handleSpecPassthrough(engine, generator, input, agentRegistry) {
|
|
|
32
32
|
}
|
|
33
33
|
// Call 1: return prompt for caller LLM to generate spec
|
|
34
34
|
const context = textGenerator.buildSpecContext(input.text, memory, input.template ?? undefined);
|
|
35
|
+
const verbose = input.verbose !== false;
|
|
35
36
|
return JSON.stringify({
|
|
36
37
|
status: 'prompt',
|
|
37
|
-
specContext: context,
|
|
38
|
+
specContext: verbose ? context : stripSpecContextPrompts(context),
|
|
38
39
|
message: 'Use specContext.specPrompt with specContext.systemPrompt to generate the spec JSON, then call this tool again with both the text and spec parameters.',
|
|
39
40
|
}, null, 2);
|
|
40
41
|
}
|
|
@@ -74,9 +75,10 @@ export function handleSpecPassthrough(engine, generator, input, agentRegistry) {
|
|
|
74
75
|
}
|
|
75
76
|
// Call 1: return prompt for caller LLM to generate spec
|
|
76
77
|
const context = generator.buildSpecContext(session);
|
|
78
|
+
const verbose = input.verbose !== false;
|
|
77
79
|
return JSON.stringify({
|
|
78
80
|
status: 'prompt',
|
|
79
|
-
specContext: context,
|
|
81
|
+
specContext: verbose ? context : stripSpecContextPrompts(context),
|
|
80
82
|
message: 'Use specContext.specPrompt with specContext.systemPrompt to generate the spec JSON, then call this tool again with the spec parameter.',
|
|
81
83
|
}, null, 2);
|
|
82
84
|
}
|
|
@@ -86,4 +88,16 @@ export function handleSpecPassthrough(engine, generator, input, agentRegistry) {
|
|
|
86
88
|
}, null, 2);
|
|
87
89
|
}
|
|
88
90
|
}
|
|
91
|
+
// ─── Verbose=false Helper ───────────────────────────────────────────────────
|
|
92
|
+
// When verbose=false, strip large prompt fields from specContext to reduce token usage.
|
|
93
|
+
const SPEC_PROMPT_KEYS = ['systemPrompt', 'specPrompt'];
|
|
94
|
+
function stripSpecContextPrompts(ctx) {
|
|
95
|
+
if (!ctx || typeof ctx !== 'object')
|
|
96
|
+
return ctx;
|
|
97
|
+
const result = { ...ctx };
|
|
98
|
+
for (const key of SPEC_PROMPT_KEYS) {
|
|
99
|
+
delete result[key];
|
|
100
|
+
}
|
|
101
|
+
return result;
|
|
102
|
+
}
|
|
89
103
|
//# sourceMappingURL=spec-passthrough.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-passthrough.js","sourceRoot":"","sources":["../../../../src/mcp/tools/spec-passthrough.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAGjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,UAAU,qBAAqB,CACnC,MAAyB,EACzB,SAAmC,EACnC,KAAgB,EAChB,aAA6B;IAE7B,IAAI,CAAC;QACH,iEAAiE;QACjE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,IAAI,kBAAkB,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,aAAa,GAAG,IAAI,sBAAsB,CAAC,aAAa,CAAC,CAAC;YAEhE,6CAA6C;YAC7C,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,SAAS,CAAC,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC9D,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBACf,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAClE,CAAC;gBAED,uCAAuC;gBACvC,WAAW,CAAC,OAAO,CAAC;oBAClB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM;oBACpC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;oBACvB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW;oBAC5C,UAAU,EAAE,MAAM;iBACnB,CAAC,CAAC;gBAEH,aAAa,CAAC;oBACZ,KAAK,EAAE,gBAAgB;oBACvB,OAAO,EAAE,gBAAgB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;iBAC1D,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC,SAAS,CACnB;oBACE,MAAM,EAAE,WAAW;oBACnB,IAAI,EAAE,MAAM,CAAC,KAAK;iBACnB,EACD,IAAI,EACJ,CAAC,CACF,CAAC;YACJ,CAAC;YAED,wDAAwD;YACxD,MAAM,OAAO,GAAG,aAAa,CAAC,gBAAgB,CAC5C,KAAK,CAAC,IAAI,EACV,MAAM,EACN,KAAK,CAAC,QAAQ,IAAI,SAAS,CAC5B,CAAC;YAEF,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"spec-passthrough.js","sourceRoot":"","sources":["../../../../src/mcp/tools/spec-passthrough.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAIxD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,UAAU,GACtB,MAAM,
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAIxD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,UAAU,GACtB,MAAM,CA2GR"}
|
|
@@ -13,16 +13,22 @@ export function handleStatus(engine, input, eventStore) {
|
|
|
13
13
|
// Try interview first
|
|
14
14
|
try {
|
|
15
15
|
const session = engine.getSession(input.sessionId);
|
|
16
|
+
const answeredRounds = session.rounds.filter((r) => r.userResponse).length;
|
|
17
|
+
const scoreStr = session.resolutionScore
|
|
18
|
+
? ` (score ${session.resolutionScore.overall.toFixed(2)})`
|
|
19
|
+
: '';
|
|
20
|
+
const interviewSummary = `세션 ${session.sessionId.slice(0, 8)}: ${session.status} — ${answeredRounds}/${session.rounds.length} 라운드 완료${scoreStr}`;
|
|
16
21
|
return JSON.stringify({
|
|
17
22
|
versionInfo,
|
|
18
23
|
type: 'interview',
|
|
24
|
+
summary: interviewSummary,
|
|
19
25
|
session: {
|
|
20
26
|
sessionId: session.sessionId,
|
|
21
27
|
topic: session.topic,
|
|
22
28
|
status: session.status,
|
|
23
29
|
projectType: session.projectType,
|
|
24
30
|
totalRounds: session.rounds.length,
|
|
25
|
-
answeredRounds
|
|
31
|
+
answeredRounds,
|
|
26
32
|
resolutionScore: session.resolutionScore
|
|
27
33
|
? {
|
|
28
34
|
overall: session.resolutionScore.overall.toFixed(2),
|
|
@@ -40,10 +46,12 @@ export function handleStatus(engine, input, eventStore) {
|
|
|
40
46
|
const repo = new ExecuteSessionRepository(eventStore);
|
|
41
47
|
const execSession = repo.reconstruct(input.sessionId);
|
|
42
48
|
if (execSession) {
|
|
49
|
+
const formatted = formatExecuteSessionBasic(execSession);
|
|
43
50
|
return JSON.stringify({
|
|
44
51
|
versionInfo,
|
|
45
52
|
type: 'execute',
|
|
46
|
-
|
|
53
|
+
summary: formatted.summary,
|
|
54
|
+
session: formatted,
|
|
47
55
|
}, null, 2);
|
|
48
56
|
}
|
|
49
57
|
}
|
|
@@ -83,11 +91,30 @@ export function handleStatus(engine, input, eventStore) {
|
|
|
83
91
|
function formatExecuteSessionBasic(session) {
|
|
84
92
|
const totalTasks = session.executionPlan?.atomicTasks.length ?? 0;
|
|
85
93
|
const completedTasks = session.taskResults.filter((t) => t.status === 'completed').length;
|
|
94
|
+
let summary;
|
|
95
|
+
const shortId = session.sessionId.slice(0, 8);
|
|
96
|
+
if (session.status === 'completed') {
|
|
97
|
+
const scoreStr = session.evaluationResult?.overallScore != null
|
|
98
|
+
? ` score ${session.evaluationResult.overallScore.toFixed(2)}`
|
|
99
|
+
: '';
|
|
100
|
+
const alignStr = session.evaluationResult?.goalAlignment != null
|
|
101
|
+
? `, alignment ${session.evaluationResult.goalAlignment.toFixed(2)}`
|
|
102
|
+
: '';
|
|
103
|
+
summary = `세션 ${shortId}: completed —${scoreStr}${alignStr}`;
|
|
104
|
+
}
|
|
105
|
+
else if (totalTasks > 0) {
|
|
106
|
+
const pct = Math.round((completedTasks / totalTasks) * 100);
|
|
107
|
+
summary = `세션 ${shortId}: ${session.status} 단계, ${completedTasks}/${totalTasks} 태스크 완료 (${pct}%)`;
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
summary = `세션 ${shortId}: ${session.status} 단계, 0개 태스크 완료`;
|
|
111
|
+
}
|
|
86
112
|
return {
|
|
87
113
|
sessionId: session.sessionId,
|
|
88
114
|
specId: session.specId,
|
|
89
115
|
status: session.status,
|
|
90
116
|
goal: session.spec.goal,
|
|
117
|
+
summary,
|
|
91
118
|
taskProgress: totalTasks > 0 ? `${completedTasks}/${totalTasks}` : null,
|
|
92
119
|
evaluationScore: session.evaluationResult?.overallScore ?? null,
|
|
93
120
|
goalAlignment: session.evaluationResult?.goalAlignment ?? null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/mcp/tools/status.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE1E,MAAM,UAAU,YAAY,CAC1B,MAAuB,EACvB,KAAkB,EAClB,UAAuB;IAEvB,MAAM,YAAY,GAAG,qBAAqB,EAAE,CAAC;IAC7C,MAAM,WAAW,GAAG;QAClB,OAAO,EAAE,UAAU,EAAE;QACrB,MAAM,EAAE,YAAY,EAAE,aAAa,IAAI,IAAI;QAC3C,eAAe,EAAE,YAAY,EAAE,eAAe,IAAI,KAAK;KACxD,CAAC;IAEF,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC;IAE/C,IAAI,CAAC;QACH,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,sBAAsB;YACtB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACnD,OAAO,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/mcp/tools/status.ts"],"names":[],"mappings":"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"}
|