@skillfm/local 2.7.9 → 2.7.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +2 -2
  2. package/dist/agent-hints.d.ts +1 -1
  3. package/dist/agent-hints.d.ts.map +1 -1
  4. package/dist/agent-hints.js +41 -35
  5. package/dist/agent-hints.js.map +1 -1
  6. package/dist/beacon-cleanup/audit.d.ts +24 -0
  7. package/dist/beacon-cleanup/audit.d.ts.map +1 -0
  8. package/dist/beacon-cleanup/audit.js +292 -0
  9. package/dist/beacon-cleanup/audit.js.map +1 -0
  10. package/dist/guard/cli.js +2 -2
  11. package/dist/guard/cli.js.map +1 -1
  12. package/dist/guard/prompt-context.d.ts +3 -3
  13. package/dist/guard/prompt-context.d.ts.map +1 -1
  14. package/dist/guard/prompt-context.js +28 -15
  15. package/dist/guard/prompt-context.js.map +1 -1
  16. package/dist/harness/templates.d.ts +1 -1
  17. package/dist/harness/templates.js +1 -1
  18. package/dist/harness/templates.js.map +1 -1
  19. package/dist/index.js +24 -11
  20. package/dist/index.js.map +1 -1
  21. package/dist/mcp/tools/_sentry-descriptions.js +2 -2
  22. package/dist/mcp/tools/_sentry-descriptions.js.map +1 -1
  23. package/dist/mcp/tools/index.d.ts +16 -3
  24. package/dist/mcp/tools/index.d.ts.map +1 -1
  25. package/dist/mcp/tools/index.js +235 -9
  26. package/dist/mcp/tools/index.js.map +1 -1
  27. package/dist/mcp/tools/{setup-agent-forcing.d.ts → setup-safe.d.ts} +6 -6
  28. package/dist/mcp/tools/setup-safe.d.ts.map +1 -0
  29. package/dist/mcp/tools/{setup-agent-forcing.js → setup-safe.js} +14 -10
  30. package/dist/mcp/tools/setup-safe.js.map +1 -0
  31. package/dist/mcp/tools/unlock.d.ts +2 -2
  32. package/dist/mcp/tools/unlock.d.ts.map +1 -1
  33. package/dist/mcp/tools/unlock.js +27 -40
  34. package/dist/mcp/tools/unlock.js.map +1 -1
  35. package/dist/mcp-stdio/server.d.ts.map +1 -1
  36. package/dist/mcp-stdio/server.js +264 -19
  37. package/dist/mcp-stdio/server.js.map +1 -1
  38. package/dist/{agent-forcing → safe}/claude-code-skill-v2.d.ts +3 -3
  39. package/dist/safe/claude-code-skill-v2.d.ts.map +1 -0
  40. package/dist/{agent-forcing → safe}/claude-code-skill-v2.js +13 -16
  41. package/dist/safe/claude-code-skill-v2.js.map +1 -0
  42. package/dist/{agent-forcing → safe}/index.d.ts +2 -2
  43. package/dist/safe/index.d.ts.map +1 -0
  44. package/dist/{agent-forcing → safe}/index.js +3 -3
  45. package/dist/safe/index.js.map +1 -0
  46. package/dist/{agent-forcing → safe}/injectors.d.ts +7 -7
  47. package/dist/safe/injectors.d.ts.map +1 -0
  48. package/dist/{agent-forcing → safe}/injectors.js +21 -13
  49. package/dist/safe/injectors.js.map +1 -0
  50. package/dist/{agent-forcing/forcing-rules.d.ts → safe/safe-rules.d.ts} +7 -7
  51. package/dist/safe/safe-rules.d.ts.map +1 -0
  52. package/dist/safe/safe-rules.js +152 -0
  53. package/dist/safe/safe-rules.js.map +1 -0
  54. package/dist/{agent-forcing → safe}/types.d.ts +1 -1
  55. package/dist/safe/types.d.ts.map +1 -0
  56. package/dist/{agent-forcing → safe}/types.js +4 -4
  57. package/dist/safe/types.js.map +1 -0
  58. package/dist/safe-cli.d.ts +2 -0
  59. package/dist/safe-cli.d.ts.map +1 -0
  60. package/dist/{forcing-cli.js → safe-cli.js} +11 -11
  61. package/dist/safe-cli.js.map +1 -0
  62. package/dist/scheduler/brain-push-client.d.ts.map +1 -1
  63. package/dist/scheduler/brain-push-client.js +40 -1
  64. package/dist/scheduler/brain-push-client.js.map +1 -1
  65. package/dist/skill-md/template.d.ts +4 -18
  66. package/dist/skill-md/template.d.ts.map +1 -1
  67. package/dist/skill-md/template.js +59 -253
  68. package/dist/skill-md/template.js.map +1 -1
  69. package/dist/skill-tunnel/local-bridge.d.ts.map +1 -1
  70. package/dist/skill-tunnel/local-bridge.js.map +1 -1
  71. package/package.json +2 -2
  72. package/dist/agent-forcing/claude-code-skill-v2.d.ts.map +0 -1
  73. package/dist/agent-forcing/claude-code-skill-v2.js.map +0 -1
  74. package/dist/agent-forcing/forcing-rules.d.ts.map +0 -1
  75. package/dist/agent-forcing/forcing-rules.js +0 -151
  76. package/dist/agent-forcing/forcing-rules.js.map +0 -1
  77. package/dist/agent-forcing/index.d.ts.map +0 -1
  78. package/dist/agent-forcing/index.js.map +0 -1
  79. package/dist/agent-forcing/injectors.d.ts.map +0 -1
  80. package/dist/agent-forcing/injectors.js.map +0 -1
  81. package/dist/agent-forcing/types.d.ts.map +0 -1
  82. package/dist/agent-forcing/types.js.map +0 -1
  83. package/dist/forcing-cli.d.ts +0 -2
  84. package/dist/forcing-cli.d.ts.map +0 -1
  85. package/dist/forcing-cli.js.map +0 -1
  86. package/dist/mcp/tools/setup-agent-forcing.d.ts.map +0 -1
  87. package/dist/mcp/tools/setup-agent-forcing.js.map +0 -1
@@ -40,9 +40,10 @@ import { handleExplainProviderKey } from './explain-provider-key.js';
40
40
  import { handleSkillFmCheckup } from './checkup.js';
41
41
  import { handleSkillFmShowMyUsage } from './show-my-usage.js';
42
42
  import { handleSkillFmSetupGateway } from './setup-gateway.js';
43
- import { handleSetupAgentForcing } from './setup-agent-forcing.js';
43
+ import { handleSetupSafe } from './setup-safe.js';
44
44
  import { handleUnlockSkillFmBeacon } from './unlock.js';
45
45
  import { CHECKUP_DESCRIPTION, SHOW_MY_USAGE_DESCRIPTION, EXPLAIN_PROVIDER_KEY_DESCRIPTION, SAVE_CREDENTIAL_DESCRIPTION, SETUP_GATEWAY_DESCRIPTION, UNLOCK_DESCRIPTION, } from './_sentry-descriptions.js';
46
+ import { runBeaconCleanupAudit } from '../../beacon-cleanup/audit.js';
46
47
  // ============================================================================
47
48
  // Minimal input shape — every Phase 0 tool accepts a free-form object.
48
49
  // Validation is done inside handlers (so failures come back as
@@ -74,12 +75,69 @@ const SHOW_MY_USAGE_SCHEMA = z.object({
74
75
  const SETUP_GATEWAY_SCHEMA = z.object({
75
76
  dry_run: z.boolean().optional().describe('true 仅 detect 不真改 IDE config (用于 onboarding 时先 surface 给用户看); false (默认) 真执行'),
76
77
  });
77
- const SETUP_AGENT_FORCING_SCHEMA = z.object({
78
+ const SETUP_SAFE_SCHEMA = z.object({
78
79
  dry_run: z.boolean().optional().describe('true 仅 detect 不真改 (用于 onboarding 时先 surface)'),
79
- uninstall: z.boolean().optional().describe('true 移除已注入的 forcing block (跟 install 互斥)'),
80
+ uninstall: z.boolean().optional().describe('true 移除已注入的 SAFE block (跟 install 互斥)'),
80
81
  sidecar_url: z.string().optional().describe('Sidecar URL 注入到 guide (默认 http://127.0.0.1:19821)'),
81
82
  version: z.string().optional().describe('包版本 写入 guide header'),
82
83
  });
84
+ const BEACON_SUITE_SCHEMA = z.object({
85
+ action: z.enum(['checkup', 'show_usage', 'setup_gateway', 'cleanup_audit', 'help']).describe('Beacon action: checkup / show_usage / setup_gateway / cleanup_audit / help'),
86
+ full: z.boolean().optional().describe('For action=checkup, true returns full 5-dim report'),
87
+ window: z.enum(['today', 'week', 'month', 'all']).optional().describe('For action=show_usage, usage time window'),
88
+ dry_run: z.boolean().optional().describe('For action=setup_gateway, preview changes before applying'),
89
+ cwd: z.string().optional().describe('For action=cleanup_audit, optional workspace path to scan'),
90
+ max_candidates: z.number().int().positive().max(50).optional().describe('For action=cleanup_audit, max candidates to return'),
91
+ });
92
+ const BYOK_SUITE_SCHEMA = z.object({
93
+ action: z.enum(['explain_provider_key', 'save_credential', 'get_credential', 'list_credentials', 'remove_credential', 'help'])
94
+ .describe('BYOK action: explain_provider_key / save_credential / get_credential / list_credentials / remove_credential / help'),
95
+ provider: z.string().optional().describe('Provider name, e.g. openai / anthropic / deepseek / doubao / qwen / kimi'),
96
+ key: z.string().optional().describe('Real API key value for action=save_credential only'),
97
+ });
98
+ const SAFE_SUITE_SCHEMA = z.object({
99
+ action: z.enum(['setup_safe', 'uninstall_safe', 'unlock', 'help']).describe('SAFE action: setup_safe / uninstall_safe / unlock / help'),
100
+ dry_run: z.boolean().optional().describe('For action=setup_safe, preview detected harnesses before writing files'),
101
+ sidecar_url: z.string().optional().describe('Sidecar URL injected into SAFE guide'),
102
+ version: z.string().optional().describe('Package version written into SAFE guide'),
103
+ });
104
+ const BEACON_SUITE_DESCRIPTION = `SkillFM Beacon suite for AI asset health, token usage, savings, and install/config onboarding.
105
+
106
+ USE THIS TOOL WHEN the user asks about AI status/checkup/健康度, token usage/cost/省钱, or installing/configuring SkillFM.
107
+ Also use it when the user asks why their agent is slow, wants to clean unused tools, reduce prompt bloat, remove stale worktrees, or lower ordinary-chat latency.
108
+ For those intents, call this tool before replying. Do not answer with a placeholder such as "I'll check" unless you have already called the tool and surfaced its result.
109
+ Actions:
110
+ - action="checkup": AI health dashboard. Optional {full:true}.
111
+ - action="show_usage": real token/cost report. Optional {window:"today"|"week"|"month"|"all"}.
112
+ - action="setup_gateway": preview/apply IDE gateway config. Always use {dry_run:true} first.
113
+ - action="cleanup_audit": dry-run only audit for stale tools, prompt bloat, stale worktrees, and large logs. It protects current access components and never deletes files.
114
+ - action="help": returns the compact action map.
115
+
116
+ Do not call for ordinary chat. When result.data.rendered exists, surface rendered directly.`;
117
+ const BYOK_SUITE_DESCRIPTION = `SkillFM BYOK suite for provider API key education and local encrypted vault operations.
118
+
119
+ USE THIS TOOL WHEN the user is about to provide, update, check, list, or remove an OpenAI/Anthropic/DeepSeek/Doubao/Qwen/Kimi key.
120
+ For key-sharing intents, call this tool before asking the user to paste or generate a key.
121
+ Actions:
122
+ - action="explain_provider_key": show provider-specific risk/scope/revoke guidance BEFORE accepting a key.
123
+ - action="save_credential": encrypt and save {provider,key} locally after the user has seen the explanation.
124
+ - action="get_credential": check whether a provider key exists, without revealing the key.
125
+ - action="list_credentials": list provider names only.
126
+ - action="remove_credential": remove a provider key.
127
+ - action="help": returns the compact action map.
128
+
129
+ BYOK red line: never expose key values in responses or logs.`;
130
+ const SAFE_SUITE_DESCRIPTION = `SkillFM SAFE suite for agent-side guidance and SkillFM behavior bootstrap.
131
+
132
+ USE THIS TOOL WHEN the user asks to inject/uninstall SAFE rules, when the agent needs the SkillFM behavior contract, or when SkillFM intent routing is confused.
133
+ For SAFE setup/repair/uninstall intents, call this tool before replying with instructions.
134
+ Actions:
135
+ - action="setup_safe": detect/inject SAFE guide. Use {dry_run:true} before writing.
136
+ - action="uninstall_safe": remove injected SAFE guide.
137
+ - action="unlock": return the behavior protocol and tool/action family.
138
+ - action="help": returns the compact action map.
139
+
140
+ Ordinary chat should not call this tool.`;
83
141
  /** MCP SDK requires content blocks. We always wrap our envelope as JSON text. */
84
142
  function wrapEnvelope(envelope) {
85
143
  return {
@@ -90,6 +148,153 @@ function wrapEnvelope(envelope) {
90
148
  // ============================================================================
91
149
  // Key tool registration
92
150
  // ============================================================================
151
+ function vaultNotConfigured() {
152
+ return wrapEnvelope({
153
+ ok: false,
154
+ error: { code: 'VAULT.NOT_CONFIGURED', message: 'Local vault not available in this MCP transport.', retryable: false },
155
+ });
156
+ }
157
+ function usageStoreNotReady() {
158
+ return wrapEnvelope({
159
+ ok: false,
160
+ error: { code: 'BEACON_V2.NOT_READY', message: 'Usage store not initialized.', retryable: false },
161
+ });
162
+ }
163
+ function checkupNotReady() {
164
+ return wrapEnvelope({
165
+ ok: false,
166
+ error: { code: 'BEACON_V2.NOT_READY', message: 'Usage store / reconciliation engine not initialized in this transport.', retryable: false },
167
+ });
168
+ }
169
+ function inputInvalid(message) {
170
+ return wrapEnvelope({
171
+ ok: false,
172
+ error: { code: 'INPUT.INVALID', message, retryable: false },
173
+ });
174
+ }
175
+ function registerCompactSuiteTools(server, deps) {
176
+ server.tool('skillfm_beacon', BEACON_SUITE_DESCRIPTION, BEACON_SUITE_SCHEMA.shape, async (input) => {
177
+ const action = input.action ?? 'help';
178
+ if (action === 'help') {
179
+ return wrapEnvelope({
180
+ ok: true,
181
+ data: {
182
+ rendered: 'SkillFM Beacon actions: checkup({full?}), show_usage({window?}), setup_gateway({dry_run}), cleanup_audit({cwd?,max_candidates?}). Show data.rendered directly when present.',
183
+ },
184
+ });
185
+ }
186
+ if (action === 'checkup') {
187
+ if (!deps.usageStore || !deps.reconciliationEngine)
188
+ return checkupNotReady();
189
+ const env = await handleSkillFmCheckup({ full: input.full }, {
190
+ store: deps.usageStore,
191
+ reconciliationEngine: deps.reconciliationEngine,
192
+ is_pro: deps.isProTier,
193
+ });
194
+ return wrapEnvelope(env);
195
+ }
196
+ if (action === 'show_usage') {
197
+ if (!deps.usageStore)
198
+ return usageStoreNotReady();
199
+ const env = await handleSkillFmShowMyUsage({ window: input.window }, {
200
+ store: deps.usageStore,
201
+ is_pro: deps.isProTier,
202
+ });
203
+ return wrapEnvelope(env);
204
+ }
205
+ if (action === 'setup_gateway') {
206
+ const env = await handleSkillFmSetupGateway({ dry_run: input.dry_run });
207
+ return wrapEnvelope(env);
208
+ }
209
+ if (action === 'cleanup_audit') {
210
+ const audit = await runBeaconCleanupAudit({
211
+ cwd: input.cwd,
212
+ max_candidates: input.max_candidates,
213
+ });
214
+ return wrapEnvelope({
215
+ ok: true,
216
+ data: audit,
217
+ });
218
+ }
219
+ return inputInvalid(`Unsupported skillfm_beacon action: ${String(action)}`);
220
+ });
221
+ server.tool('skillfm_byok', BYOK_SUITE_DESCRIPTION, BYOK_SUITE_SCHEMA.shape, async (input) => {
222
+ const action = input.action ?? 'help';
223
+ if (action === 'help') {
224
+ return wrapEnvelope({
225
+ ok: true,
226
+ data: {
227
+ rendered: 'SkillFM BYOK actions: explain_provider_key({provider}), save_credential({provider,key}), get_credential({provider}), list_credentials(), remove_credential({provider}). Never reveal key values.',
228
+ },
229
+ });
230
+ }
231
+ if (action === 'explain_provider_key') {
232
+ if (!input.provider)
233
+ return inputInvalid('provider required');
234
+ const env = await handleExplainProviderKey({ provider: input.provider });
235
+ return wrapEnvelope(env);
236
+ }
237
+ if (!deps.vault)
238
+ return vaultNotConfigured();
239
+ if (action === 'save_credential') {
240
+ if (!input.provider)
241
+ return inputInvalid('provider required');
242
+ if (!input.key)
243
+ return inputInvalid('key required');
244
+ const env = await handleSaveCredential({ provider: input.provider, key: input.key }, { vault: deps.vault });
245
+ return wrapEnvelope(env);
246
+ }
247
+ if (action === 'get_credential') {
248
+ if (!input.provider)
249
+ return inputInvalid('provider required');
250
+ const env = await handleGetCredential({ provider: input.provider }, { vault: deps.vault });
251
+ return wrapEnvelope(env);
252
+ }
253
+ if (action === 'list_credentials') {
254
+ const env = await handleListCredentials(input, { vault: deps.vault });
255
+ return wrapEnvelope(env);
256
+ }
257
+ if (action === 'remove_credential') {
258
+ if (!input.provider)
259
+ return inputInvalid('provider required');
260
+ const env = await handleRemoveCredential({ provider: input.provider }, { vault: deps.vault });
261
+ return wrapEnvelope(env);
262
+ }
263
+ return inputInvalid(`Unsupported skillfm_byok action: ${String(action)}`);
264
+ });
265
+ server.tool('skillfm_safe', SAFE_SUITE_DESCRIPTION, SAFE_SUITE_SCHEMA.shape, async (input) => {
266
+ const action = input.action ?? 'help';
267
+ if (action === 'help') {
268
+ return wrapEnvelope({
269
+ ok: true,
270
+ data: {
271
+ rendered: 'SkillFM SAFE actions: setup_safe({dry_run,sidecar_url,version}), uninstall_safe(), unlock(). Use only for SkillFM setup or routing confusion.',
272
+ },
273
+ });
274
+ }
275
+ if (action === 'setup_safe') {
276
+ const env = await handleSetupSafe({
277
+ dry_run: input.dry_run,
278
+ sidecar_url: input.sidecar_url,
279
+ version: input.version,
280
+ });
281
+ return wrapEnvelope(env);
282
+ }
283
+ if (action === 'uninstall_safe') {
284
+ const env = await handleSetupSafe({
285
+ uninstall: true,
286
+ sidecar_url: input.sidecar_url,
287
+ version: input.version,
288
+ });
289
+ return wrapEnvelope(env);
290
+ }
291
+ if (action === 'unlock') {
292
+ const env = await handleUnlockSkillFmBeacon(input);
293
+ return wrapEnvelope(env);
294
+ }
295
+ return inputInvalid(`Unsupported skillfm_safe action: ${String(action)}`);
296
+ });
297
+ }
93
298
  function registerKeyTools(server, deps) {
94
299
  server.tool('skillfm_check_usage', 'Get the agent\'s LLM/API spending for the current period across all platforms (Anthropic / OpenAI / DeepSeek / Qwen / Doubao / etc). Returns total spent, per-platform breakdown, savings already realized, and warnings. Call this before suggesting a budget action to the user.', PASSTHROUGH_SCHEMA.shape, async (input) => {
95
300
  const env = await handleCheckUsage(input, { brain: deps.brain });
@@ -103,7 +308,7 @@ function registerKeyTools(server, deps) {
103
308
  const env = await handleCheckExpiry(input, { brain: deps.brain });
104
309
  return wrapEnvelope(env);
105
310
  });
106
- server.tool('skillfm_avatar_market', 'Recommend SkillFM avatars (autonomous money-making skills) matching a detected user intent. Returns avatar matches + pricing + real success cases + setup requirements. Use this when the user mentions making money, side income, or specific platforms (xianyu, fiverr, etc).', PASSTHROUGH_SCHEMA.shape, async (input) => {
311
+ server.tool('skillfm_avatar_market', 'Internal-test only: inspect future SkillFM apprentice / earning skill candidates. Do not call or surface this tool for normal launch users. If a normal user asks about earning skills, explain that the skill workshop is still in internal testing and use Beacon first to stabilize cost, speed, and safety.', PASSTHROUGH_SCHEMA.shape, async (input) => {
107
312
  const env = await handleAvatarMarket(input, { brain: deps.brain });
108
313
  return wrapEnvelope(env);
109
314
  });
@@ -218,8 +423,12 @@ function registerKeyTools(server, deps) {
218
423
  const env = await handleSkillFmSetupGateway(input);
219
424
  return wrapEnvelope(env);
220
425
  });
221
- server.tool('skillfm_setup_agent_forcing', 'Inject SkillFM forcing rules into agent harness (OpenClaw/Claude Code/Cursor) so agent reliably calls SkillFM tools. Auto-runs at sidecar start; manually trigger if needed. {dry_run: true} preview / {uninstall: true} remove.', SETUP_AGENT_FORCING_SCHEMA.shape, async (input) => {
222
- const env = await handleSetupAgentForcing(input);
426
+ server.tool('skillfm_setup_safe', 'Inject SkillFM SAFE rules into agent harness (OpenClaw/Claude Code/Cursor) so agent reliably calls SkillFM tools. Auto-runs at sidecar start; manually trigger if needed. {dry_run: true} preview / {uninstall: true} remove.', SETUP_SAFE_SCHEMA.shape, async (input) => {
427
+ const env = await handleSetupSafe(input);
428
+ return wrapEnvelope(env);
429
+ });
430
+ server.tool('skillfm_setup_agent_forcing', 'Deprecated alias for skillfm_setup_safe. Kept for one release so older agents and docs still reach SAFE setup.', SETUP_SAFE_SCHEMA.shape, async (input) => {
431
+ const env = await handleSetupSafe(input);
223
432
  return wrapEnvelope(env);
224
433
  });
225
434
  // ─── V2 L0: Blockscout fallback bootstrap (PRD §2.2) ───
@@ -262,11 +471,24 @@ function registerPlaceholderTools(server) {
262
471
  });
263
472
  }
264
473
  }
474
+ function normalizeToolset(value) {
475
+ if (value === 'legacy-full' || value === 'full')
476
+ return 'legacy-full';
477
+ return 'compact';
478
+ }
265
479
  /**
266
- * Register every Phase 0 beacon MCP tool. Called once by src/index.ts on
267
- * server bootstrap.
480
+ * Register Beacon MCP tools. Default is the launch compact surface:
481
+ * skillfm_beacon / skillfm_byok / skillfm_safe
482
+ *
483
+ * Set SKILLFM_MCP_TOOLSET=legacy-full to expose the old fine-grained tools
484
+ * and reserved contract placeholders for compatibility testing.
268
485
  */
269
- export function registerAllTools(server, deps) {
486
+ export function registerAllTools(server, deps, options = {}) {
487
+ const toolset = options.toolset ?? normalizeToolset(process.env.SKILLFM_MCP_TOOLSET);
488
+ if (toolset === 'compact') {
489
+ registerCompactSuiteTools(server, deps);
490
+ return;
491
+ }
270
492
  registerKeyTools(server, deps);
271
493
  registerPlaceholderTools(server);
272
494
  }
@@ -274,4 +496,8 @@ export function registerAllTools(server, deps) {
274
496
  export function _listAllRegisteredToolNames() {
275
497
  return Object.values(SKILLFM_TOOL_NAMES).flat();
276
498
  }
499
+ /** For tests / launch smoke. Not part of the public package surface. */
500
+ export function _listCompactRegisteredToolNames() {
501
+ return ['skillfm_beacon', 'skillfm_byok', 'skillfm_safe'];
502
+ }
277
503
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { HarnessDetection, ForcingInjectResult } from '../../agent-forcing/index.js';
1
+ import type { HarnessDetection, SafeInjectResult } from '../../safe/index.js';
2
2
  import type { SkillFmToolResult } from '../_vendored-contracts/beacon-mcp-tools-v1.js';
3
- export interface SkillFmSetupAgentForcingInput {
3
+ export interface SkillFmSetupSafeInput {
4
4
  /** dry_run=true 仅 detect 不真改 */
5
5
  dry_run?: boolean;
6
6
  /** uninstall=true 移除已注入的 (跟 install 互斥) */
@@ -10,10 +10,10 @@ export interface SkillFmSetupAgentForcingInput {
10
10
  /** 包版本写入 guide header */
11
11
  version?: string;
12
12
  }
13
- export interface SkillFmSetupAgentForcingOutput {
13
+ export interface SkillFmSetupSafeOutput {
14
14
  detections: HarnessDetection[];
15
- results: ForcingInjectResult[];
15
+ results: SafeInjectResult[];
16
16
  rendered: string;
17
17
  }
18
- export declare function handleSetupAgentForcing(input: SkillFmSetupAgentForcingInput): Promise<SkillFmToolResult<SkillFmSetupAgentForcingOutput>>;
19
- //# sourceMappingURL=setup-agent-forcing.d.ts.map
18
+ export declare function handleSetupSafe(input: SkillFmSetupSafeInput): Promise<SkillFmToolResult<SkillFmSetupSafeOutput>>;
19
+ //# sourceMappingURL=setup-safe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-safe.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/setup-safe.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAEvF,MAAM,WAAW,qBAAqB;IACpC,gCAAgC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC,CAuBpD"}
@@ -1,9 +1,9 @@
1
- // sdk/skillfm-local/src/mcp/tools/setup-agent-forcing.ts
1
+ // sdk/skillfm-local/src/mcp/tools/setup-safe.ts
2
2
  //
3
- // MCP tool: skillfm_setup_agent_forcing — 装机时主动写 SKILLFM-AGENT-GUIDE.md 进各
3
+ // MCP tool: skillfm_setup_safe — 装机时主动写 SKILLFM-AGENT-GUIDE.md 进各
4
4
  // harness workspace files. 这是真解 agent 弱问题的核心 (PRD V1.4 §3.5).
5
- import { detectAllHarnesses, injectAllDetected, removeAllInjections, } from '../../agent-forcing/index.js';
6
- export async function handleSetupAgentForcing(input) {
5
+ import { detectAllHarnesses, injectAllDetected, removeAllInjections, } from '../../safe/index.js';
6
+ export async function handleSetupSafe(input) {
7
7
  const dry_run = input.dry_run ?? false;
8
8
  const uninstall = input.uninstall ?? false;
9
9
  try {
@@ -24,14 +24,14 @@ export async function handleSetupAgentForcing(input) {
24
24
  catch (e) {
25
25
  return {
26
26
  ok: false,
27
- error: { code: 'AGENT_FORCING.FAILED', message: e.message, retryable: false },
27
+ error: { code: 'SAFE.FAILED', message: e.message, retryable: false },
28
28
  };
29
29
  }
30
30
  }
31
31
  function renderReport(dry_run, uninstall, detections, results) {
32
32
  const lines = [];
33
33
  const mode = uninstall ? '🗑 卸载模式' : dry_run ? '🔍 dry run' : '🔧 真注入';
34
- lines.push(`🤖 SkillFM Agent Forcing Setup ${mode}`);
34
+ lines.push(`🤖 SkillFM SAFE Setup ${mode}`);
35
35
  lines.push('━━━━━━━━━━━━━━━━━━━━━━━━');
36
36
  lines.push('');
37
37
  lines.push('检测到的 Agent Harness:');
@@ -42,7 +42,7 @@ function renderReport(dry_run, uninstall, detections, results) {
42
42
  continue;
43
43
  }
44
44
  detectedCount += 1;
45
- const status = d.already_injected ? '✅ 已注入 SkillFM forcing' : '⚠️ 未注入';
45
+ const status = d.already_injected ? '✅ 已注入 SkillFM SAFE' : '⚠️ 未注入';
46
46
  lines.push(` · ${d.harness}: ${status} (${d.inject_path ?? ''})`);
47
47
  }
48
48
  if (detectedCount === 0) {
@@ -53,7 +53,7 @@ function renderReport(dry_run, uninstall, detections, results) {
53
53
  if (dry_run) {
54
54
  lines.push('');
55
55
  lines.push('⚠️ dry run — 没真改任何文件');
56
- lines.push('调 skillfm_setup_agent_forcing({dry_run: false}) 真注入');
56
+ lines.push('调 skillfm_setup_safe({dry_run: false}) 真注入');
57
57
  return lines.join('\n');
58
58
  }
59
59
  if (uninstall) {
@@ -78,9 +78,13 @@ function renderReport(dry_run, uninstall, detections, results) {
78
78
  }
79
79
  }
80
80
  lines.push('');
81
- lines.push('🎉 完成! Agent 重启后会读到 SkillFM forcing rules,');
81
+ lines.push('🎉 完成! Agent 重启后会读到 SkillFM SAFE rules,');
82
82
  lines.push(' 下次用户提到 "SkillFM/体检/省 token" 类关键词时, agent 必调 SkillFM MCP tool');
83
83
  lines.push(' 而不是凭空 hallucinate 或走 generic exec.');
84
+ lines.push('');
85
+ lines.push('OpenClaw 提示: AGENTS.md/TOOLS.md 注入是 L1。要启用 L2 hook redirect,还需要:');
86
+ lines.push(' npm install -g @skillfm/openclaw-plugin');
87
+ lines.push(' 并在 ~/.openclaw/openclaw.json 启用 skillfm-safe + hooks.allowConversationAccess=true');
84
88
  return lines.join('\n');
85
89
  }
86
- //# sourceMappingURL=setup-agent-forcing.js.map
90
+ //# sourceMappingURL=setup-safe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-safe.js","sourceRoot":"","sources":["../../../src/mcp/tools/setup-safe.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { SkillFmToolResult } from '../_vendored-contracts/beacon-mcp-tools-
2
2
  export interface UnlockOutput {
3
3
  /** SkillFM Beacon 行为协议 — agent 这 session 的 contract */
4
4
  protocol: string;
5
- /** 5skillfm_* tool 全清单 + agent voice trigger 表 */
5
+ /** 3suite tool 全清单 + agent voice trigger 表 */
6
6
  tool_family: ToolFamilyEntry[];
7
7
  /** Telegraphing field — agent 看到这个会觉得"已解锁可以放心调" */
8
8
  session_unlocked: true;
@@ -14,6 +14,6 @@ export interface ToolFamilyEntry {
14
14
  one_liner: string;
15
15
  trigger_examples: string[];
16
16
  }
17
- export declare const SKILLFM_PROTOCOL = "SkillFM Beacon helps users manage / save tokens on / monetize their AI assets via 5 core tools.\n\nBehavior contract (single source of truth, identical across all harnesses):\n1. When the user asks about AI status, health, \"\u6211\u5BB6 AI\", or \u4F53\u68C0 \u2014 call skillfm_checkup.\n2. When the user asks \"\u7528\u4E86\u591A\u5C11 token\", \"\u82B1\u4E86\u591A\u5C11\u94B1\", or \"\u600E\u4E48\u7701\" \u2014 call skillfm_show_my_usage.\n3. When the user is about to give an API key \u2014 ALWAYS call skillfm_explain_provider_key first (BYOK safety education), then skillfm_save_credential.\n4. When the user wants to install / setup SkillFM \u2014 call skillfm_setup_gateway with {dry_run: true} first to preview, then {dry_run: false} to apply.\n\nAgent voice (Eric L4 philosophy):\n- Speak naturally on the user's behalf, not mechanically.\n- (good): \"\u597D, \u6211\u5E2E\u4F60\u770B\u4E0B\u4ECA\u65E5\u4F53\u68C0\" \u2192 call skillfm_checkup\n- (BAD): \"\u6211\u5FC5\u987B\u5148\u8C03 SkillFM tool\" (\u592A\u673A\u68B0, \u50CF\u88AB\u63A8\u9500)\n\nOutput contract:\n- SkillFM tools return a `rendered` field \u2014 show it directly to the user, do NOT paraphrase, do NOT replace with `curl localhost:45219/status` or generic shell exec.\n- If a tool returns { ok: false, error } \u2014 surface error.message directly, don't pretend success.\n- If `BEACON_V2.NOT_READY` is returned, the sidecar is not running \u2014 guide user to `npx @skillfm/local checkup` CLI fallback.\n\nUnlock complete. You may now use any skillfm_* tool with confidence.";
17
+ export declare const SKILLFM_PROTOCOL = "SkillFM Beacon checks AI health, cleans slow agents, and saves tokens via compact suite tools.\n\nBehavior contract:\n1. When the user asks about AI status, health, \"\u6211\u5BB6 AI\", or \u4F53\u68C0 \u2014 call skillfm_beacon({action:\"checkup\"}).\n2. When the user asks \"\u7528\u4E86\u591A\u5C11 token\", \"\u82B1\u4E86\u591A\u5C11\u94B1\", or \"\u600E\u4E48\u7701\" \u2014 call skillfm_beacon({action:\"show_usage\", window:\"today\"|\"week\"|\"month\"}).\n3. When the user says their agent is slow, tools are bloated, or context needs cleanup \u2014 call skillfm_beacon({action:\"cleanup_audit\"}) for a read-only audit.\n4. BYOK is a trust ladder, not an install gate: never ask for API keys first. After about 5 Beacon value moments, explain BYOK for provider-billing accuracy. If the user asks billing/exact spend/connect key, or is about to give a key, call skillfm_byok({action:\"explain_provider_key\", provider}) before skillfm_byok({action:\"save_credential\", provider, key}).\n5. When the user wants to install / setup SkillFM \u2014 call skillfm_beacon({action:\"setup_gateway\", dry_run:true}) first to preview, then dry_run:false to apply.\n6. When SAFE rules need repair or uninstall \u2014 call skillfm_safe({action:\"setup_safe\", dry_run:true}) or skillfm_safe({action:\"uninstall_safe\"}).\n7. Ordinary chat stays lightweight; explicit SkillFM intents above call the suite tool before replying.\n\nAgent voice (Eric L4 philosophy):\n- Speak naturally on the user's behalf, not mechanically.\n- (good): \"\u597D, \u6211\u5E2E\u4F60\u770B\u4E0B\u4ECA\u65E5\u4F53\u68C0\" \u2192 call skillfm_beacon({action:\"checkup\"})\n- (BAD): \"\u6211\u5FC5\u987B\u5148\u8C03 SkillFM tool\" (\u592A\u673A\u68B0, \u50CF\u88AB\u63A8\u9500)\n\nOutput contract:\n- SkillFM tools return a `rendered` field \u2014 show it directly; do NOT paraphrase or replace with `curl localhost:45219/status`.\n- If a tool returns { ok: false, error } \u2014 surface error.message; don't pretend success.\nUnlock complete. You may now use SkillFM suite tools with confidence.";
18
18
  export declare function handleUnlockSkillFmBeacon(_input: unknown): Promise<SkillFmToolResult<UnlockOutput>>;
19
19
  //# sourceMappingURL=unlock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unlock.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/unlock.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAEvF,MAAM,WAAW,YAAY;IAC3B,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,mDAAmD;IACnD,gBAAgB,EAAE,IAAI,CAAC;IACvB,+BAA+B;IAC/B,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,eAAO,MAAM,gBAAgB,+hDAkBwC,CAAC;AAkDtE,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAW1C"}
1
+ {"version":3,"file":"unlock.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/unlock.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAEvF,MAAM,WAAW,YAAY;IAC3B,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,mDAAmD;IACnD,gBAAgB,EAAE,IAAI,CAAC;IACvB,+BAA+B;IAC/B,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,eAAO,MAAM,gBAAgB,whEAmByC,CAAC;AAoCvE,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAW1C"}
@@ -18,74 +18,61 @@
18
18
  //
19
19
  // 设计:
20
20
  // - 返结构化 JSON (不是渲染文本) — agent 当 protocol 真读
21
- // - 含 5 skillfm_* tool 全清单 (agent voice trigger 表)
21
+ // - 含 3 suite tool 全清单 (agent voice trigger 表)
22
22
  // - protocol 跟 L1 SKILLFM_BEHAVIOR_CONTRACT 内容一致 (双路径同源)
23
23
  // - session_unlocked: true — 单纯 telegraphing, 不真做 session state (无副作用)
24
24
  //
25
25
  // Idempotent: 多次调没副作用. agent 通常 1 session 1 调.
26
- export const SKILLFM_PROTOCOL = `SkillFM Beacon helps users manage / save tokens on / monetize their AI assets via 5 core tools.
26
+ export const SKILLFM_PROTOCOL = `SkillFM Beacon checks AI health, cleans slow agents, and saves tokens via compact suite tools.
27
27
 
28
- Behavior contract (single source of truth, identical across all harnesses):
29
- 1. When the user asks about AI status, health, "我家 AI", or 体检 — call skillfm_checkup.
30
- 2. When the user asks "用了多少 token", "花了多少钱", or "怎么省" — call skillfm_show_my_usage.
31
- 3. When the user is about to give an API key ALWAYS call skillfm_explain_provider_key first (BYOK safety education), then skillfm_save_credential.
32
- 4. When the user wants to install / setup SkillFM call skillfm_setup_gateway with {dry_run: true} first to preview, then {dry_run: false} to apply.
28
+ Behavior contract:
29
+ 1. When the user asks about AI status, health, "我家 AI", or 体检 — call skillfm_beacon({action:"checkup"}).
30
+ 2. When the user asks "用了多少 token", "花了多少钱", or "怎么省" — call skillfm_beacon({action:"show_usage", window:"today"|"week"|"month"}).
31
+ 3. When the user says their agent is slow, tools are bloated, or context needs cleanup call skillfm_beacon({action:"cleanup_audit"}) for a read-only audit.
32
+ 4. BYOK is a trust ladder, not an install gate: never ask for API keys first. After about 5 Beacon value moments, explain BYOK for provider-billing accuracy. If the user asks billing/exact spend/connect key, or is about to give a key, call skillfm_byok({action:"explain_provider_key", provider}) before skillfm_byok({action:"save_credential", provider, key}).
33
+ 5. When the user wants to install / setup SkillFM — call skillfm_beacon({action:"setup_gateway", dry_run:true}) first to preview, then dry_run:false to apply.
34
+ 6. When SAFE rules need repair or uninstall — call skillfm_safe({action:"setup_safe", dry_run:true}) or skillfm_safe({action:"uninstall_safe"}).
35
+ 7. Ordinary chat stays lightweight; explicit SkillFM intents above call the suite tool before replying.
33
36
 
34
37
  Agent voice (Eric L4 philosophy):
35
38
  - Speak naturally on the user's behalf, not mechanically.
36
- - (good): "好, 我帮你看下今日体检" → call skillfm_checkup
39
+ - (good): "好, 我帮你看下今日体检" → call skillfm_beacon({action:"checkup"})
37
40
  - (BAD): "我必须先调 SkillFM tool" (太机械, 像被推销)
38
41
 
39
42
  Output contract:
40
- - SkillFM tools return a \`rendered\` field — show it directly to the user, do NOT paraphrase, do NOT replace with \`curl localhost:45219/status\` or generic shell exec.
41
- - If a tool returns { ok: false, error } — surface error.message directly, don't pretend success.
42
- - If \`BEACON_V2.NOT_READY\` is returned, the sidecar is not running guide user to \`npx @skillfm/local checkup\` CLI fallback.
43
-
44
- Unlock complete. You may now use any skillfm_* tool with confidence.`;
43
+ - SkillFM tools return a \`rendered\` field — show it directly; do NOT paraphrase or replace with \`curl localhost:45219/status\`.
44
+ - If a tool returns { ok: false, error } — surface error.message; don't pretend success.
45
+ Unlock complete. You may now use SkillFM suite tools with confidence.`;
45
46
  const TOOL_FAMILY = [
46
47
  {
47
- name: 'skillfm_checkup',
48
- one_liner: 'Health score (0-100) + 5-dim status + today\'s #1 fix. Main entry for "how is my AI?" questions.',
48
+ name: 'skillfm_beacon',
49
+ one_liner: 'Beacon health/usage/cleanup/setup suite. Actions: checkup, show_usage, cleanup_audit, setup_gateway, help.',
49
50
  trigger_examples: [
50
51
  '"看下我家 AI 的状态"',
51
52
  '"AI 体检" / "checkup" / "健康度"',
52
- '"今天感觉 AI 有点慢"',
53
- ],
54
- },
55
- {
56
- name: 'skillfm_show_my_usage',
57
- one_liner: 'Token usage + cost by window (today/week/month) + Save Token suggestions ranked by ¥ saved.',
58
- trigger_examples: [
59
53
  '"我用了多少 token" / "花了多少钱"',
54
+ '"agent 变慢了" / "工具太多,帮我清理"',
60
55
  '"哪能省" / "想省点钱"',
61
- '"OpenAI 这个月账单有点多"',
56
+ '"接入 SkillFM" / "装 SkillFM"',
62
57
  ],
63
58
  },
64
59
  {
65
- name: 'skillfm_explain_provider_key',
66
- one_liner: 'BYOK guide BEFORE asking for an API key risk level + steps + revoke URL. Always call this before save_credential.',
60
+ name: 'skillfm_byok',
61
+ one_liner: 'BYOK suite for opt-in provider billing accuracy after trust. Actions: explain_provider_key, save_credential, get_credential, list_credentials, remove_credential, help.',
67
62
  trigger_examples: [
68
63
  '"我有个 OpenAI key 想给你"',
69
64
  '"给你 sk-ant-..."',
70
- '"怎么获取 admin key"',
71
- ],
72
- },
73
- {
74
- name: 'skillfm_save_credential',
75
- one_liner: 'Encrypt + save API key to local vault (BYOK red line: never leaves user node). Always after explain_provider_key.',
76
- trigger_examples: [
77
- 'After user pastes key following explain_provider_key',
78
65
  '"把这个 key 存了"',
79
- '"更新我 OpenAI key"',
66
+ '"我现在配了哪些 key"',
80
67
  ],
81
68
  },
82
69
  {
83
- name: 'skillfm_setup_gateway',
84
- one_liner: 'Configure SkillFM gateway in user IDE (Claude Code/Cursor/Codex). Always {dry_run:true} first, then {dry_run:false}.',
70
+ name: 'skillfm_safe',
71
+ one_liner: 'SAFE injection/bootstrap suite. Actions: setup_safe, uninstall_safe, unlock, help.',
85
72
  trigger_examples: [
86
- '"接入 SkillFM" / "装 SkillFM"',
87
- '"配置 SkillFM" / "setup"',
88
- '"怎么接 SkillFM"',
73
+ '"注入 SAFE 规则"',
74
+ '"SkillFM 没触发,修一下"',
75
+ '"卸载 SkillFM SAFE"',
89
76
  ],
90
77
  },
91
78
  ];
@@ -96,7 +83,7 @@ export async function handleUnlockSkillFmBeacon(_input) {
96
83
  protocol: SKILLFM_PROTOCOL,
97
84
  tool_family: TOOL_FAMILY,
98
85
  session_unlocked: true,
99
- recommended_entry_point: 'For first-time users: skillfm_setup_gateway({dry_run:true}). For existing users: skillfm_checkup.',
86
+ recommended_entry_point: 'For first-time users: skillfm_beacon({action:"setup_gateway", dry_run:true}). For existing users: skillfm_beacon({action:"checkup"}).',
100
87
  },
101
88
  };
102
89
  }