@skillfm/local 2.1.1 → 2.1.2
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/guard/bin.js +0 -0
- package/dist/harness/kernels/deny-pipeline.d.ts +5 -0
- package/dist/harness/kernels/deny-pipeline.d.ts.map +1 -1
- package/dist/harness/kernels/deny-pipeline.js +27 -3
- package/dist/harness/kernels/deny-pipeline.js.map +1 -1
- package/dist/index.js +22 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp-stdio/bin.js +0 -0
- package/dist/skill-md/writer.d.ts +7 -0
- package/dist/skill-md/writer.d.ts.map +1 -1
- package/dist/skill-md/writer.js +55 -0
- package/dist/skill-md/writer.js.map +1 -1
- package/package.json +2 -1
- package/dist/agent-hints 2.js +0 -102
- package/dist/agent-hints.d 2.ts +0 -25
- package/dist/agent-hints.d.ts 2.map +0 -1
- package/dist/agent-hints.js 2.map +0 -1
- package/dist/doctor 2.js +0 -456
- package/dist/doctor.d 2.ts +0 -56
- package/dist/doctor.d.ts 2.map +0 -1
- package/dist/doctor.js 2.map +0 -1
- package/dist/mcp-stdio 2/api-client.d.ts +0 -28
- package/dist/mcp-stdio 2/api-client.d.ts.map +0 -1
- package/dist/mcp-stdio 2/api-client.js +0 -123
- package/dist/mcp-stdio 2/api-client.js.map +0 -1
- package/dist/mcp-stdio 2/bin.d.ts +0 -3
- package/dist/mcp-stdio 2/bin.d.ts.map +0 -1
- package/dist/mcp-stdio 2/bin.js +0 -18
- package/dist/mcp-stdio 2/bin.js.map +0 -1
- package/dist/mcp-stdio 2/config.d.ts +0 -6
- package/dist/mcp-stdio 2/config.d.ts.map +0 -1
- package/dist/mcp-stdio 2/config.js +0 -26
- package/dist/mcp-stdio 2/config.js.map +0 -1
- package/dist/mcp-stdio 2/render-flow.d.ts +0 -53
- package/dist/mcp-stdio 2/render-flow.d.ts.map +0 -1
- package/dist/mcp-stdio 2/render-flow.js +0 -70
- package/dist/mcp-stdio 2/render-flow.js.map +0 -1
- package/dist/mcp-stdio 2/request-context.d.ts +0 -30
- package/dist/mcp-stdio 2/request-context.d.ts.map +0 -1
- package/dist/mcp-stdio 2/request-context.js +0 -78
- package/dist/mcp-stdio 2/request-context.js.map +0 -1
- package/dist/mcp-stdio 2/server.d.ts +0 -19
- package/dist/mcp-stdio 2/server.d.ts.map +0 -1
- package/dist/mcp-stdio 2/server.js +0 -651
- package/dist/mcp-stdio 2/server.js.map +0 -1
- package/dist/soul 2.js +0 -439
- package/dist/soul-security 2.js +0 -197
- package/dist/soul-security.d 2.ts +0 -76
- package/dist/soul-security.d.ts 2.map +0 -1
- package/dist/soul-security.js 2.map +0 -1
- package/dist/soul.d 2.ts +0 -135
- package/dist/soul.d.ts 2.map +0 -1
- package/dist/soul.js 2.map +0 -1
package/dist/doctor.js 2.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { RequestContext } from './request-context.js';
|
|
2
|
-
interface RequestOptions {
|
|
3
|
-
method?: 'GET' | 'POST';
|
|
4
|
-
body?: Record<string, unknown>;
|
|
5
|
-
useAuth?: 'brain-key' | 'jwt' | 'none';
|
|
6
|
-
/**
|
|
7
|
-
* 可选:per-request 上下文。HTTP 多租户模式下必传。
|
|
8
|
-
* 未传时回退到模块级 config + 全局 conv-state(stdio 单租户 / tests)。
|
|
9
|
-
*/
|
|
10
|
-
ctx?: RequestContext;
|
|
11
|
-
}
|
|
12
|
-
export declare function getConversationState(): string | null;
|
|
13
|
-
export declare function setConversationState(s: string | null): void;
|
|
14
|
-
/**
|
|
15
|
-
* 把一份反馈结构(nudge / seed / proof)排入下一次出站请求。
|
|
16
|
-
* 一次性消费 — 注入后立即清空, 避免重复发送。
|
|
17
|
-
*/
|
|
18
|
-
export declare function pushConversationFeedback(payload: unknown): void;
|
|
19
|
-
export declare function _resetConversationState(): void;
|
|
20
|
-
export declare class ApiError extends Error {
|
|
21
|
-
status: number;
|
|
22
|
-
envelope: unknown;
|
|
23
|
-
body: unknown;
|
|
24
|
-
constructor(message: string, status: number, envelope?: unknown, body?: unknown);
|
|
25
|
-
}
|
|
26
|
-
export declare function apiCall<T = unknown>(path: string, options?: RequestOptions): Promise<T>;
|
|
27
|
-
export {};
|
|
28
|
-
//# sourceMappingURL=api-client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/mcp-stdio/api-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,WAAW,GAAG,KAAK,GAAG,MAAM,CAAC;IACvC;;;OAGG;IACH,GAAG,CAAC,EAAE,cAAc,CAAC;CACtB;AAaD,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAEpD;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAE3D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAE/D;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAG9C;AAMD,qBAAa,QAAS,SAAQ,KAAK;IAGxB,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,OAAO;gBAHpB,OAAO,EAAE,MAAM,EACR,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,OAAc,EACxB,IAAI,GAAE,OAAc;CAK9B;AAED,wBAAsB,OAAO,CAAC,CAAC,GAAG,OAAO,EACvC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,CAAC,CAAC,CAiGZ"}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { config } from './config.js';
|
|
2
|
-
const MAX_RETRIES = 2;
|
|
3
|
-
const TIMEOUT_MS = 120_000; // Brain 管线可能耗时较长
|
|
4
|
-
// ============================================================================
|
|
5
|
-
// Module-level conv-state — 仅给 stdio 单租户/tests 使用
|
|
6
|
-
// HTTP 多租户模式下走 RequestContext.convState(ConvStateStore 按 brainKey 隔离)
|
|
7
|
-
// ============================================================================
|
|
8
|
-
let _convState = null;
|
|
9
|
-
let _convFeedback = null;
|
|
10
|
-
export function getConversationState() {
|
|
11
|
-
return _convState;
|
|
12
|
-
}
|
|
13
|
-
export function setConversationState(s) {
|
|
14
|
-
_convState = s;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* 把一份反馈结构(nudge / seed / proof)排入下一次出站请求。
|
|
18
|
-
* 一次性消费 — 注入后立即清空, 避免重复发送。
|
|
19
|
-
*/
|
|
20
|
-
export function pushConversationFeedback(payload) {
|
|
21
|
-
_convFeedback = payload === null ? null : JSON.stringify(payload);
|
|
22
|
-
}
|
|
23
|
-
export function _resetConversationState() {
|
|
24
|
-
_convState = null;
|
|
25
|
-
_convFeedback = null;
|
|
26
|
-
}
|
|
27
|
-
// ============================================================================
|
|
28
|
-
// ApiError — 把 server envelope 透传给调用方, 让 MCP 工具可以渲染 dialogue_flow
|
|
29
|
-
// ============================================================================
|
|
30
|
-
export class ApiError extends Error {
|
|
31
|
-
status;
|
|
32
|
-
envelope;
|
|
33
|
-
body;
|
|
34
|
-
constructor(message, status, envelope = null, body = null) {
|
|
35
|
-
super(message);
|
|
36
|
-
this.status = status;
|
|
37
|
-
this.envelope = envelope;
|
|
38
|
-
this.body = body;
|
|
39
|
-
this.name = 'ApiError';
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
export async function apiCall(path, options = {}) {
|
|
43
|
-
const { method = 'GET', body, useAuth = 'none', ctx } = options;
|
|
44
|
-
// 选源: ctx 优先 (HTTP 多租户), 否则 config + 模块 globals (stdio / tests)
|
|
45
|
-
const apiBaseUrl = ctx?.apiBaseUrl ?? config.apiBaseUrl;
|
|
46
|
-
const brainKey = ctx?.brainKey ?? config.brainKey;
|
|
47
|
-
const jwtToken = ctx?.jwtToken ?? config.token;
|
|
48
|
-
const headers = {
|
|
49
|
-
'Content-Type': 'application/json',
|
|
50
|
-
'User-Agent': 'SkillFMMCP/0.1.0',
|
|
51
|
-
};
|
|
52
|
-
if (useAuth === 'brain-key' && brainKey) {
|
|
53
|
-
headers['X-Brain-Key'] = brainKey;
|
|
54
|
-
}
|
|
55
|
-
else if (useAuth === 'jwt' && jwtToken) {
|
|
56
|
-
headers['Authorization'] = `Bearer ${jwtToken}`;
|
|
57
|
-
}
|
|
58
|
-
// 透传 conversation-state header(来自上一次 server 响应)
|
|
59
|
-
const convStateRead = ctx?.convState.get() ?? _convState;
|
|
60
|
-
if (convStateRead) {
|
|
61
|
-
headers['X-Conversation-State'] = convStateRead;
|
|
62
|
-
}
|
|
63
|
-
// feedback 一次性消费
|
|
64
|
-
if (ctx) {
|
|
65
|
-
const f = ctx.convState.consumeFeedback();
|
|
66
|
-
if (f)
|
|
67
|
-
headers['X-Conversation-Feedback'] = f;
|
|
68
|
-
}
|
|
69
|
-
else if (_convFeedback) {
|
|
70
|
-
headers['X-Conversation-Feedback'] = _convFeedback;
|
|
71
|
-
_convFeedback = null;
|
|
72
|
-
}
|
|
73
|
-
const url = `${apiBaseUrl}${path}`;
|
|
74
|
-
let lastError = null;
|
|
75
|
-
for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {
|
|
76
|
-
const controller = new AbortController();
|
|
77
|
-
const timer = setTimeout(() => controller.abort(), TIMEOUT_MS);
|
|
78
|
-
try {
|
|
79
|
-
const res = await fetch(url, {
|
|
80
|
-
method,
|
|
81
|
-
headers,
|
|
82
|
-
body: body ? JSON.stringify(body) : undefined,
|
|
83
|
-
signal: controller.signal,
|
|
84
|
-
});
|
|
85
|
-
clearTimeout(timer);
|
|
86
|
-
// 5xx 可重试
|
|
87
|
-
if (res.status >= 500 && attempt < MAX_RETRIES) {
|
|
88
|
-
const errData = await res.json().catch(() => ({ error: res.statusText }));
|
|
89
|
-
lastError = new Error(`API 错误 ${res.status}: ${errData.error || res.statusText}`);
|
|
90
|
-
continue;
|
|
91
|
-
}
|
|
92
|
-
// 不论成功还是软错误, 都要把 server 写回来的 conversation-state 拿走
|
|
93
|
-
const newState = res.headers.get('x-conversation-state');
|
|
94
|
-
if (newState) {
|
|
95
|
-
if (ctx)
|
|
96
|
-
ctx.convState.set(newState);
|
|
97
|
-
else
|
|
98
|
-
_convState = newState;
|
|
99
|
-
}
|
|
100
|
-
if (!res.ok) {
|
|
101
|
-
const errBody = (await res.json().catch(() => ({ error: res.statusText })));
|
|
102
|
-
const message = errBody?.error || res.statusText;
|
|
103
|
-
// 把 envelope 透传给调用方 — Agent 工具可以渲染 dialogue_flow
|
|
104
|
-
throw new ApiError(`API 错误 ${res.status}: ${message}`, res.status, errBody?.envelope ?? null, errBody);
|
|
105
|
-
}
|
|
106
|
-
return res.json();
|
|
107
|
-
}
|
|
108
|
-
catch (err) {
|
|
109
|
-
clearTimeout(timer);
|
|
110
|
-
if (err.name === 'AbortError') {
|
|
111
|
-
throw new Error('请求超时');
|
|
112
|
-
}
|
|
113
|
-
// 网络错误可重试
|
|
114
|
-
if (attempt < MAX_RETRIES && !err.message?.startsWith('API 错误')) {
|
|
115
|
-
lastError = err;
|
|
116
|
-
continue;
|
|
117
|
-
}
|
|
118
|
-
throw err;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
throw lastError || new Error('请求失败');
|
|
122
|
-
}
|
|
123
|
-
//# sourceMappingURL=api-client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/mcp-stdio/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../../src/mcp-stdio/bin.ts"],"names":[],"mappings":""}
|
package/dist/mcp-stdio 2/bin.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// @skillfm/local — skillfm-mcp-stdio bin
|
|
3
|
-
//
|
|
4
|
-
// stdio MCP server 入口,供 stdio-only agent runtime(Claude Desktop 等)
|
|
5
|
-
// 作为 MCP transport 直接 fork:
|
|
6
|
-
// "command": "npx", "args": ["-y", "@skillfm/local", "skillfm-mcp-stdio"]
|
|
7
|
-
// 或 npx 直装后链接:
|
|
8
|
-
// "command": "skillfm-mcp-stdio"
|
|
9
|
-
//
|
|
10
|
-
// 等价路径(HTTP sidecar 模式)是 `skillfm-local start`,用户主入口统一在
|
|
11
|
-
// @skillfm/local 这一个 npm 包内,按 agent runtime 选 bin 即可。
|
|
12
|
-
import { main } from './server.js';
|
|
13
|
-
main().catch((err) => {
|
|
14
|
-
// stderr 不影响 stdio JSON-RPC 信道
|
|
15
|
-
process.stderr.write(`[skillfm-mcp-stdio] fatal: ${err?.message || err}\n`);
|
|
16
|
-
process.exit(1);
|
|
17
|
-
});
|
|
18
|
-
//# sourceMappingURL=bin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/mcp-stdio/bin.ts"],"names":[],"mappings":";AACA,yCAAyC;AACzC,EAAE;AACF,mEAAmE;AACnE,4BAA4B;AAC5B,4EAA4E;AAC5E,eAAe;AACf,mCAAmC;AACnC,EAAE;AACF,wDAAwD;AACxD,sDAAsD;AAEtD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,+BAA+B;IAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,8BAA8B,GAAG,EAAE,OAAO,IAAI,GAAG,IAAI,CACtD,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/mcp-stdio/config.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,MAAM;;;;CAOlB,CAAC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
// 配置管理 — 优先级:
|
|
2
|
-
// 1. 环境变量 (SKILLFM_BRAIN_KEY / SKILLFM_TOKEN / SKILLFM_API_URL)
|
|
3
|
-
// 2. ~/.skillfm/config.json (skillfm install 写入)
|
|
4
|
-
import { readFileSync, existsSync } from 'node:fs';
|
|
5
|
-
import { join } from 'node:path';
|
|
6
|
-
import { homedir } from 'node:os';
|
|
7
|
-
function loadFileConfig() {
|
|
8
|
-
try {
|
|
9
|
-
const path = join(homedir(), '.skillfm', 'config.json');
|
|
10
|
-
if (!existsSync(path))
|
|
11
|
-
return {};
|
|
12
|
-
return JSON.parse(readFileSync(path, 'utf-8'));
|
|
13
|
-
}
|
|
14
|
-
catch {
|
|
15
|
-
return {};
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
const file = loadFileConfig();
|
|
19
|
-
export const config = {
|
|
20
|
-
apiBaseUrl: process.env.SKILLFM_API_URL ||
|
|
21
|
-
file.apiBaseUrl ||
|
|
22
|
-
'https://api.skillfm.ai/api/v1',
|
|
23
|
-
brainKey: process.env.SKILLFM_BRAIN_KEY || file.agentToken || '',
|
|
24
|
-
token: process.env.SKILLFM_TOKEN || '',
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/mcp-stdio/config.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,kEAAkE;AAClE,mDAAmD;AAEnD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAOlC,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAe,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;AAE9B,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,UAAU,EACR,OAAO,CAAC,GAAG,CAAC,eAAe;QAC3B,IAAI,CAAC,UAAU;QACf,+BAA+B;IACjC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE;IAChE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;CACvC,CAAC"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
interface LocalizedText {
|
|
2
|
-
zh?: string;
|
|
3
|
-
en?: string;
|
|
4
|
-
}
|
|
5
|
-
interface DialogueFlow {
|
|
6
|
-
flow_id: string;
|
|
7
|
-
current_turn: number;
|
|
8
|
-
total_turns: number;
|
|
9
|
-
this_turn: {
|
|
10
|
-
semantic_goal: string;
|
|
11
|
-
talk_points: string[];
|
|
12
|
-
end_with: string;
|
|
13
|
-
};
|
|
14
|
-
next_turn_hints: {
|
|
15
|
-
if_user_engages: string;
|
|
16
|
-
if_user_hesitates: string;
|
|
17
|
-
if_user_declines: string;
|
|
18
|
-
};
|
|
19
|
-
gentle_exit: {
|
|
20
|
-
semantic_goal: string;
|
|
21
|
-
talk_points: string[];
|
|
22
|
-
};
|
|
23
|
-
success_criterion: string;
|
|
24
|
-
}
|
|
25
|
-
interface EnhancedError {
|
|
26
|
-
code: string;
|
|
27
|
-
severity: string;
|
|
28
|
-
user_message?: LocalizedText;
|
|
29
|
-
agent_directive?: LocalizedText;
|
|
30
|
-
dialogue_flow?: DialogueFlow | null;
|
|
31
|
-
}
|
|
32
|
-
interface Envelope {
|
|
33
|
-
ok: boolean;
|
|
34
|
-
error?: EnhancedError | null;
|
|
35
|
-
dialogue_flow?: DialogueFlow | null;
|
|
36
|
-
conversation_hints?: Array<{
|
|
37
|
-
text?: LocalizedText;
|
|
38
|
-
}>;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* 把一份 dialogue_flow 渲染成对 Agent 友好的 markdown 块。
|
|
42
|
-
*
|
|
43
|
-
* 目标读者: Agent (Claude Code / Cursor 等), 不是终端用户。
|
|
44
|
-
* 因此用 [Guide / 引导剧本] 开头, 让 Agent 知道这是元信息而非用户话语。
|
|
45
|
-
*/
|
|
46
|
-
export declare function renderDialogueFlow(flow: DialogueFlow): string;
|
|
47
|
-
/**
|
|
48
|
-
* 渲染整个 envelope 的"软错误 + dialogue_flow"区段。
|
|
49
|
-
* 用在 MCP 工具的 catch 路径里。
|
|
50
|
-
*/
|
|
51
|
-
export declare function renderEnvelopeError(envelope: Envelope | null): string | null;
|
|
52
|
-
export {};
|
|
53
|
-
//# sourceMappingURL=render-flow.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"render-flow.d.ts","sourceRoot":"","sources":["../../src/mcp-stdio/render-flow.ts"],"names":[],"mappings":"AAOA,UAAU,aAAa;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE;QACT,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,eAAe,EAAE;QACf,eAAe,EAAE,MAAM,CAAC;QACxB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,WAAW,EAAE;QACX,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;IACF,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,eAAe,CAAC,EAAE,aAAa,CAAC;IAChC,aAAa,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CACrC;AAED,UAAU,QAAQ;IAChB,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACpC,kBAAkB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC;CACtD;AAMD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAuB7D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAsB5E"}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
// Render envelope.dialogue_flow + EnhancedError 成 Agent 可读文本
|
|
2
|
-
//
|
|
3
|
-
// PRD Book 3 §3.2: MCP 工具不翻译业务话术, 只把服务端 envelope 完整呈现给 Agent。
|
|
4
|
-
// Agent 自己根据 dialogue_flow.this_turn / next_turn_hints / gentle_exit 决定怎么说。
|
|
5
|
-
//
|
|
6
|
-
// 核心约束: 不在 MCP 这层注入额外文案, 只做"忠实搬运 + 结构化展示"。
|
|
7
|
-
function pickText(loc) {
|
|
8
|
-
return loc?.zh || loc?.en || '';
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* 把一份 dialogue_flow 渲染成对 Agent 友好的 markdown 块。
|
|
12
|
-
*
|
|
13
|
-
* 目标读者: Agent (Claude Code / Cursor 等), 不是终端用户。
|
|
14
|
-
* 因此用 [Guide / 引导剧本] 开头, 让 Agent 知道这是元信息而非用户话语。
|
|
15
|
-
*/
|
|
16
|
-
export function renderDialogueFlow(flow) {
|
|
17
|
-
const lines = [];
|
|
18
|
-
lines.push(`[引导剧本 · ${flow.flow_id} · turn ${flow.current_turn}/${flow.total_turns}]`);
|
|
19
|
-
lines.push('');
|
|
20
|
-
lines.push(`本轮目标: ${flow.this_turn.semantic_goal}`);
|
|
21
|
-
if (flow.this_turn.talk_points?.length) {
|
|
22
|
-
lines.push('可以用的话题点:');
|
|
23
|
-
for (const p of flow.this_turn.talk_points)
|
|
24
|
-
lines.push(` - ${p}`);
|
|
25
|
-
}
|
|
26
|
-
lines.push(`本轮收尾方式: ${flow.this_turn.end_with}`);
|
|
27
|
-
lines.push('');
|
|
28
|
-
lines.push('下一轮根据 ta 的反应分支:');
|
|
29
|
-
lines.push(` · ta 接茬: ${flow.next_turn_hints.if_user_engages}`);
|
|
30
|
-
lines.push(` · ta 犹豫: ${flow.next_turn_hints.if_user_hesitates}`);
|
|
31
|
-
lines.push(` · ta 拒绝: ${flow.next_turn_hints.if_user_declines}`);
|
|
32
|
-
lines.push('');
|
|
33
|
-
lines.push(`温柔退路 (gentle_exit): ${flow.gentle_exit.semantic_goal}`);
|
|
34
|
-
if (flow.gentle_exit.talk_points?.length) {
|
|
35
|
-
for (const p of flow.gentle_exit.talk_points)
|
|
36
|
-
lines.push(` - ${p}`);
|
|
37
|
-
}
|
|
38
|
-
lines.push('');
|
|
39
|
-
lines.push(`本轮成功判定: ${flow.success_criterion}`);
|
|
40
|
-
return lines.join('\n');
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* 渲染整个 envelope 的"软错误 + dialogue_flow"区段。
|
|
44
|
-
* 用在 MCP 工具的 catch 路径里。
|
|
45
|
-
*/
|
|
46
|
-
export function renderEnvelopeError(envelope) {
|
|
47
|
-
if (!envelope || !envelope.error)
|
|
48
|
-
return null;
|
|
49
|
-
const err = envelope.error;
|
|
50
|
-
const blocks = [];
|
|
51
|
-
const userMsg = pickText(err.user_message);
|
|
52
|
-
if (userMsg)
|
|
53
|
-
blocks.push(userMsg);
|
|
54
|
-
const directive = pickText(err.agent_directive);
|
|
55
|
-
if (directive)
|
|
56
|
-
blocks.push(`[agent 心法] ${directive}`);
|
|
57
|
-
const flow = envelope.dialogue_flow || err.dialogue_flow;
|
|
58
|
-
if (flow)
|
|
59
|
-
blocks.push(renderDialogueFlow(flow));
|
|
60
|
-
if (envelope.conversation_hints?.length) {
|
|
61
|
-
blocks.push('—');
|
|
62
|
-
for (const h of envelope.conversation_hints) {
|
|
63
|
-
const t = pickText(h.text);
|
|
64
|
-
if (t)
|
|
65
|
-
blocks.push(`[hint] ${t}`);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return blocks.join('\n\n');
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=render-flow.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"render-flow.js","sourceRoot":"","sources":["../../src/mcp-stdio/render-flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
export interface RequestContext {
|
|
2
|
-
apiBaseUrl: string;
|
|
3
|
-
brainKey: string;
|
|
4
|
-
jwtToken: string;
|
|
5
|
-
/** 同一个 brainKey 下的 conversation-state 读写器(HTTP 模式下从 store 借用,stdio 下可以是全局单例) */
|
|
6
|
-
convState: ConvStateHandle;
|
|
7
|
-
}
|
|
8
|
-
export interface ConvStateHandle {
|
|
9
|
-
get(): string | null;
|
|
10
|
-
set(v: string | null): void;
|
|
11
|
-
getFeedback(): string | null;
|
|
12
|
-
consumeFeedback(): string | null;
|
|
13
|
-
pushFeedback(v: unknown): void;
|
|
14
|
-
}
|
|
15
|
-
export declare class ConvStateStore {
|
|
16
|
-
private map;
|
|
17
|
-
getHandle(brainKey: string): ConvStateHandle;
|
|
18
|
-
private getEntry;
|
|
19
|
-
private touch;
|
|
20
|
-
private evictIfNeeded;
|
|
21
|
-
/** 测试辅助 */
|
|
22
|
-
_clear(): void;
|
|
23
|
-
_size(): number;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* 全局单例 store — stdio 模式/tests 也会用到,HTTP 模式的 app 实例也直接用它。
|
|
27
|
-
* 不同 brainKey 天然隔离。
|
|
28
|
-
*/
|
|
29
|
-
export declare const globalConvStore: ConvStateStore;
|
|
30
|
-
//# sourceMappingURL=request-context.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"request-context.d.ts","sourceRoot":"","sources":["../../src/mcp-stdio/request-context.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,SAAS,EAAE,eAAe,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,IAAI,MAAM,GAAG,IAAI,CAAC;IACrB,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5B,WAAW,IAAI,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,IAAI,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAChC;AASD,qBAAa,cAAc;IACzB,OAAO,CAAC,GAAG,CAAgC;IAE3C,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe;IAwB5C,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,aAAa;IAWrB,WAAW;IACX,MAAM,IAAI,IAAI;IAId,KAAK,IAAI,MAAM;CAGhB;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,gBAAuB,CAAC"}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
// RequestContext — 每请求独立的客户端上下文,HTTP Streamable 模式下使用。
|
|
2
|
-
//
|
|
3
|
-
// 为什么需要这个?
|
|
4
|
-
// stdio 模式是单租户进程,全局 config + 全局 conv-state 没问题。
|
|
5
|
-
// HTTP 模式是多租户(多个 agent 带各自的 Bearer 打到同一个 process),
|
|
6
|
-
// 必须按 brainKey 隔离出站状态,避免 conv-state bleed across agents。
|
|
7
|
-
//
|
|
8
|
-
// 设计:
|
|
9
|
-
// - RequestContext 不可变 (per-request frozen)
|
|
10
|
-
// - ConvStateStore 是 brainKey → {state, feedback} 的 Map
|
|
11
|
-
// - LRU-ish cap(512 条)防止内存无界增长;真出问题再换 Redis
|
|
12
|
-
//
|
|
13
|
-
// BYOK 红线 (Principle 24): 这里永不读/存任何 LLM key, 只存平台自己的 brainKey + JWT。
|
|
14
|
-
const MAX_ENTRIES = 512;
|
|
15
|
-
export class ConvStateStore {
|
|
16
|
-
map = new Map();
|
|
17
|
-
getHandle(brainKey) {
|
|
18
|
-
const store = this;
|
|
19
|
-
return {
|
|
20
|
-
get: () => store.getEntry(brainKey).state,
|
|
21
|
-
set: (v) => {
|
|
22
|
-
const e = store.getEntry(brainKey);
|
|
23
|
-
e.state = v;
|
|
24
|
-
store.touch(brainKey, e);
|
|
25
|
-
},
|
|
26
|
-
getFeedback: () => store.getEntry(brainKey).feedback,
|
|
27
|
-
consumeFeedback: () => {
|
|
28
|
-
const e = store.getEntry(brainKey);
|
|
29
|
-
const f = e.feedback;
|
|
30
|
-
e.feedback = null;
|
|
31
|
-
return f;
|
|
32
|
-
},
|
|
33
|
-
pushFeedback: (v) => {
|
|
34
|
-
const e = store.getEntry(brainKey);
|
|
35
|
-
e.feedback = v === null ? null : JSON.stringify(v);
|
|
36
|
-
store.touch(brainKey, e);
|
|
37
|
-
},
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
getEntry(brainKey) {
|
|
41
|
-
let e = this.map.get(brainKey);
|
|
42
|
-
if (!e) {
|
|
43
|
-
e = { state: null, feedback: null };
|
|
44
|
-
this.map.set(brainKey, e);
|
|
45
|
-
this.evictIfNeeded();
|
|
46
|
-
}
|
|
47
|
-
return e;
|
|
48
|
-
}
|
|
49
|
-
touch(brainKey, e) {
|
|
50
|
-
// LRU: delete + re-set 让它移到 Map 末尾
|
|
51
|
-
this.map.delete(brainKey);
|
|
52
|
-
this.map.set(brainKey, e);
|
|
53
|
-
}
|
|
54
|
-
evictIfNeeded() {
|
|
55
|
-
while (this.map.size > MAX_ENTRIES) {
|
|
56
|
-
const oldest = this.map.keys().next().value;
|
|
57
|
-
if (oldest !== undefined) {
|
|
58
|
-
this.map.delete(oldest);
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
break;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
/** 测试辅助 */
|
|
66
|
-
_clear() {
|
|
67
|
-
this.map.clear();
|
|
68
|
-
}
|
|
69
|
-
_size() {
|
|
70
|
-
return this.map.size;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* 全局单例 store — stdio 模式/tests 也会用到,HTTP 模式的 app 实例也直接用它。
|
|
75
|
-
* 不同 brainKey 天然隔离。
|
|
76
|
-
*/
|
|
77
|
-
export const globalConvStore = new ConvStateStore();
|
|
78
|
-
//# sourceMappingURL=request-context.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"request-context.js","sourceRoot":"","sources":["../../src/mcp-stdio/request-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
-
import { type RequestContext } from './request-context.js';
|
|
4
|
-
type ToolContextProvider = (extra: {
|
|
5
|
-
authInfo?: {
|
|
6
|
-
token?: string;
|
|
7
|
-
};
|
|
8
|
-
} | undefined) => RequestContext;
|
|
9
|
-
/**
|
|
10
|
-
* 构造一个注册了所有工具的 McpServer。
|
|
11
|
-
* 工具回调在运行时调用 getCtx(extra) 拿到 per-request RequestContext。
|
|
12
|
-
*/
|
|
13
|
-
declare function buildMcpServer(getCtx: ToolContextProvider): McpServer;
|
|
14
|
-
export { buildMcpServer };
|
|
15
|
-
export { globalConvStore } from './request-context.js';
|
|
16
|
-
export type { RequestContext } from './request-context.js';
|
|
17
|
-
export type { ToolContextProvider };
|
|
18
|
-
export declare function main(): Promise<void>;
|
|
19
|
-
//# sourceMappingURL=server.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp-stdio/server.ts"],"names":[],"mappings":";AAoBA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAOtF,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAQ5E,KAAK,mBAAmB,GAAG,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,SAAS,KAAK,cAAc,CAAC;AAEpG;;;GAGG;AACH,iBAAS,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAqkB9D;AA4BD,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAEpC,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAU1C"}
|