@skillfm/local 2.7.3 → 2.7.5

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 (120) hide show
  1. package/dist/checkup/daily-push.d.ts +29 -0
  2. package/dist/checkup/daily-push.d.ts.map +1 -0
  3. package/dist/checkup/daily-push.js +86 -0
  4. package/dist/checkup/daily-push.js.map +1 -0
  5. package/dist/checkup/dimension-1-usage.d.ts +22 -0
  6. package/dist/checkup/dimension-1-usage.d.ts.map +1 -0
  7. package/dist/checkup/dimension-1-usage.js +115 -0
  8. package/dist/checkup/dimension-1-usage.js.map +1 -0
  9. package/dist/checkup/dimension-3-files.d.ts +36 -0
  10. package/dist/checkup/dimension-3-files.d.ts.map +1 -0
  11. package/dist/checkup/dimension-3-files.js +276 -0
  12. package/dist/checkup/dimension-3-files.js.map +1 -0
  13. package/dist/checkup/dimension-4-context.d.ts +18 -0
  14. package/dist/checkup/dimension-4-context.d.ts.map +1 -0
  15. package/dist/checkup/dimension-4-context.js +177 -0
  16. package/dist/checkup/dimension-4-context.js.map +1 -0
  17. package/dist/checkup/index.d.ts +11 -0
  18. package/dist/checkup/index.d.ts.map +1 -0
  19. package/dist/checkup/index.js +10 -0
  20. package/dist/checkup/index.js.map +1 -0
  21. package/dist/checkup/report.d.ts +26 -0
  22. package/dist/checkup/report.d.ts.map +1 -0
  23. package/dist/checkup/report.js +173 -0
  24. package/dist/checkup/report.js.map +1 -0
  25. package/dist/checkup/score.d.ts +27 -0
  26. package/dist/checkup/score.d.ts.map +1 -0
  27. package/dist/checkup/score.js +101 -0
  28. package/dist/checkup/score.js.map +1 -0
  29. package/dist/checkup/types.d.ts +64 -0
  30. package/dist/checkup/types.d.ts.map +1 -0
  31. package/dist/checkup/types.js +5 -0
  32. package/dist/checkup/types.js.map +1 -0
  33. package/dist/mcp/index.d.ts.map +1 -1
  34. package/dist/mcp/index.js +27 -0
  35. package/dist/mcp/index.js.map +1 -1
  36. package/dist/mcp/tools/checkup.d.ts +21 -0
  37. package/dist/mcp/tools/checkup.d.ts.map +1 -0
  38. package/dist/mcp/tools/checkup.js +35 -0
  39. package/dist/mcp/tools/checkup.js.map +1 -0
  40. package/dist/mcp/tools/index.d.ts +6 -0
  41. package/dist/mcp/tools/index.d.ts.map +1 -1
  42. package/dist/mcp/tools/index.js +47 -0
  43. package/dist/mcp/tools/index.js.map +1 -1
  44. package/dist/mcp/tools/setup-gateway.d.ts +16 -0
  45. package/dist/mcp/tools/setup-gateway.d.ts.map +1 -0
  46. package/dist/mcp/tools/setup-gateway.js +79 -0
  47. package/dist/mcp/tools/setup-gateway.js.map +1 -0
  48. package/dist/mcp/tools/show-my-usage.d.ts +26 -0
  49. package/dist/mcp/tools/show-my-usage.d.ts.map +1 -0
  50. package/dist/mcp/tools/show-my-usage.js +68 -0
  51. package/dist/mcp/tools/show-my-usage.js.map +1 -0
  52. package/dist/reconciliation/engine.d.ts +30 -0
  53. package/dist/reconciliation/engine.d.ts.map +1 -0
  54. package/dist/reconciliation/engine.js +62 -0
  55. package/dist/reconciliation/engine.js.map +1 -0
  56. package/dist/reconciliation/index.d.ts +8 -0
  57. package/dist/reconciliation/index.d.ts.map +1 -0
  58. package/dist/reconciliation/index.js +8 -0
  59. package/dist/reconciliation/index.js.map +1 -0
  60. package/dist/reconciliation/l1-reconciler.d.ts +29 -0
  61. package/dist/reconciliation/l1-reconciler.d.ts.map +1 -0
  62. package/dist/reconciliation/l1-reconciler.js +144 -0
  63. package/dist/reconciliation/l1-reconciler.js.map +1 -0
  64. package/dist/reconciliation/l2-reconciler.d.ts +21 -0
  65. package/dist/reconciliation/l2-reconciler.d.ts.map +1 -0
  66. package/dist/reconciliation/l2-reconciler.js +241 -0
  67. package/dist/reconciliation/l2-reconciler.js.map +1 -0
  68. package/dist/reconciliation/types.d.ts +49 -0
  69. package/dist/reconciliation/types.d.ts.map +1 -0
  70. package/dist/reconciliation/types.js +9 -0
  71. package/dist/reconciliation/types.js.map +1 -0
  72. package/dist/save-token/e1-router.d.ts +7 -0
  73. package/dist/save-token/e1-router.d.ts.map +1 -0
  74. package/dist/save-token/e1-router.js +112 -0
  75. package/dist/save-token/e1-router.js.map +1 -0
  76. package/dist/save-token/e2-cache.d.ts +7 -0
  77. package/dist/save-token/e2-cache.d.ts.map +1 -0
  78. package/dist/save-token/e2-cache.js +128 -0
  79. package/dist/save-token/e2-cache.js.map +1 -0
  80. package/dist/save-token/e3-batch.d.ts +7 -0
  81. package/dist/save-token/e3-batch.d.ts.map +1 -0
  82. package/dist/save-token/e3-batch.js +80 -0
  83. package/dist/save-token/e3-batch.js.map +1 -0
  84. package/dist/save-token/gateway-setup.d.ts +27 -0
  85. package/dist/save-token/gateway-setup.d.ts.map +1 -0
  86. package/dist/save-token/gateway-setup.js +200 -0
  87. package/dist/save-token/gateway-setup.js.map +1 -0
  88. package/dist/save-token/index.d.ts +13 -0
  89. package/dist/save-token/index.d.ts.map +1 -0
  90. package/dist/save-token/index.js +23 -0
  91. package/dist/save-token/index.js.map +1 -0
  92. package/dist/save-token/types.d.ts +46 -0
  93. package/dist/save-token/types.d.ts.map +1 -0
  94. package/dist/save-token/types.js +5 -0
  95. package/dist/save-token/types.js.map +1 -0
  96. package/dist/usage-local/index.d.ts +34 -0
  97. package/dist/usage-local/index.d.ts.map +1 -0
  98. package/dist/usage-local/index.js +33 -0
  99. package/dist/usage-local/index.js.map +1 -0
  100. package/dist/usage-local/model-pricing.d.ts +42 -0
  101. package/dist/usage-local/model-pricing.d.ts.map +1 -0
  102. package/dist/usage-local/model-pricing.js +253 -0
  103. package/dist/usage-local/model-pricing.js.map +1 -0
  104. package/dist/usage-local/openclaw-watcher.d.ts +35 -0
  105. package/dist/usage-local/openclaw-watcher.d.ts.map +1 -0
  106. package/dist/usage-local/openclaw-watcher.js +190 -0
  107. package/dist/usage-local/openclaw-watcher.js.map +1 -0
  108. package/dist/usage-local/plan.d.ts +58 -0
  109. package/dist/usage-local/plan.d.ts.map +1 -0
  110. package/dist/usage-local/plan.js +84 -0
  111. package/dist/usage-local/plan.js.map +1 -0
  112. package/dist/usage-local/store.d.ts +50 -0
  113. package/dist/usage-local/store.d.ts.map +1 -0
  114. package/dist/usage-local/store.js +201 -0
  115. package/dist/usage-local/store.js.map +1 -0
  116. package/dist/usage-local/types.d.ts +94 -0
  117. package/dist/usage-local/types.d.ts.map +1 -0
  118. package/dist/usage-local/types.js +6 -0
  119. package/dist/usage-local/types.js.map +1 -0
  120. package/package.json +2 -2
@@ -0,0 +1,94 @@
1
+ /**
2
+ * 一次 LLM 调用的真原子记录 (来自 agent trajectory)
3
+ * 跨 agent / 跨 provider 统一 schema
4
+ */
5
+ export interface LocalUsageRecord {
6
+ /** 唯一 ID — 用于去重 (基于 agent+session+turn 哈希) */
7
+ id: string;
8
+ /** ISO 8601 时间戳 */
9
+ timestamp: string;
10
+ /** Agent harness 类型 — openclaw / claude-code / cursor / codex / aider / other */
11
+ agent_harness: AgentHarness;
12
+ /** Agent session ID (各 harness 自己的) */
13
+ session_id: string;
14
+ /** Provider — anthropic / openai / deepseek / doubao / qwen / kimi / minimax / ollama / other */
15
+ provider: string;
16
+ /** Model ID (各 provider 自己的, 如 'claude-sonnet-4-6' / 'gpt-4o' / 'MiniMax-M2.7') */
17
+ model_id: string;
18
+ /** 输入 token (uncached) */
19
+ input_tokens: number;
20
+ /** 输出 token */
21
+ output_tokens: number;
22
+ /** Cache 读 token (cache hit, 通常便宜 10x) */
23
+ cache_read_tokens: number;
24
+ /** Cache 写 token (创建 cache, Anthropic 收 1.25x 价) */
25
+ cache_write_tokens: number;
26
+ /** 总 token (= input + output, 不含 cache_read) — 兼容历史字段 */
27
+ total_tokens: number;
28
+ /** 估算成本 USD (基于 model-pricing.ts 真价目) */
29
+ estimated_cost_usd: number;
30
+ /** 估算成本 CNY (= USD × 7.3) */
31
+ estimated_cost_cny: number;
32
+ /** trajectory 文件路径 (用于 debug / dedup) */
33
+ source_file: string;
34
+ }
35
+ export type AgentHarness = 'openclaw' | 'claude-code' | 'cursor' | 'codex' | 'aider' | 'continue' | 'other';
36
+ /**
37
+ * 时序聚合查询结果 (按 day / week / month 分组)
38
+ */
39
+ export interface UsageAggregation {
40
+ /** 时间窗口 ISO 8601 起始 */
41
+ window_start: string;
42
+ /** 时间窗口 ISO 8601 结束 */
43
+ window_end: string;
44
+ /** 总 input token */
45
+ input_tokens: number;
46
+ /** 总 output token */
47
+ output_tokens: number;
48
+ /** 总 cache read */
49
+ cache_read_tokens: number;
50
+ /** 总 cache write */
51
+ cache_write_tokens: number;
52
+ /** 估算总成本 USD */
53
+ total_cost_usd: number;
54
+ /** 估算总成本 CNY */
55
+ total_cost_cny: number;
56
+ /** 调用次数 */
57
+ call_count: number;
58
+ }
59
+ /**
60
+ * 按 provider 分组的聚合
61
+ */
62
+ export interface UsageByProvider extends UsageAggregation {
63
+ provider: string;
64
+ }
65
+ /**
66
+ * 按 agent harness 分组的聚合
67
+ */
68
+ export interface UsageByAgent extends UsageAggregation {
69
+ agent_harness: AgentHarness;
70
+ }
71
+ /**
72
+ * 按 model 分组的聚合
73
+ */
74
+ export interface UsageByModel extends UsageAggregation {
75
+ provider: string;
76
+ model_id: string;
77
+ }
78
+ /**
79
+ * Watcher 配置
80
+ */
81
+ export interface WatcherConfig {
82
+ /** 监听的 trajectory 目录 (各 harness 路径) */
83
+ watch_paths: WatchPath[];
84
+ /** sqlite db 文件路径 (默认 ~/.skillfm/usage-local.db) */
85
+ db_path: string;
86
+ /** 是否启用 verbose 日志 */
87
+ verbose: boolean;
88
+ }
89
+ export interface WatchPath {
90
+ agent_harness: AgentHarness;
91
+ /** glob 路径 (例: `~/.openclaw/agents/<id>/sessions/<sess>.trajectory.jsonl`) */
92
+ glob: string;
93
+ }
94
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/usage-local/types.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,aAAa,EAAE,YAAY,CAAC;IAC5B,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,iGAAiG;IACjG,QAAQ,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oDAAoD;IACpD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,6BAA6B;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,YAAY,GACpB,UAAU,GACV,aAAa,GACb,QAAQ,GACR,OAAO,GACP,OAAO,GACP,UAAU,GACV,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW;IACX,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD,aAAa,EAAE,YAAY,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,uCAAuC;IACvC,WAAW,EAAE,SAAS,EAAE,CAAC;IACzB,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,aAAa,EAAE,YAAY,CAAC;IAC5B,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -0,0 +1,6 @@
1
+ // sdk/skillfm-local/src/usage-local/types.ts
2
+ //
3
+ // L0 layer types — 本地 agent trajectory 聚合的数据 schema.
4
+ // 跨 agent (OpenClaw / Claude Code / Cursor) 统一表达每次 LLM 调用的真用量。
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/usage-local/types.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,qDAAqD;AACrD,+DAA+D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skillfm/local",
3
- "version": "2.7.3",
3
+ "version": "2.7.5",
4
4
  "description": "SkillFM local — single npm package for the SkillFM platform on user nodes. Subcommand router exposes (1) Beacon MCP stdio server (cost-optimizer for any agent; merged in from @skillfm/beacon-mcp on 2026-05-01), (2) skill runtime (BYOK Playwright / brain reverse-tunnel), (3) sidecar HTTP proxy + OAuth 2.1 device-flow activation. Writes ~/.skillfm/local.json for service discovery.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -53,7 +53,7 @@
53
53
  "typecheck": "tsc --noEmit",
54
54
  "start": "node dist/index.js start",
55
55
  "prepublishOnly": "npm run build && bash scripts/verify-no-bare-workspace-imports.sh dist",
56
- "test": "tsx --test src/harness/detector.test.ts src/harness/priming.test.ts src/harness/writers.test.ts src/guard/state.test.ts src/soul.test.ts src/soul-security.test.ts src/harness/kernels/registry.test.ts src/harness/kernels/deny-pipeline.test.ts src/mcp-output/builder.test.ts src/mcp-output/deny-review.test.ts src/mcp-output/integration.test.ts src/skill-md/template.test.ts src/skill-md/writer.test.ts src/mcp-stdio/smoke.test.ts src/mcp-stdio/render-flow.contract.test.ts src/mcp-stdio/render-aha.test.ts src/mcp-stdio/sse-progress-client.test.ts src/mcp-stdio/parse-tolerant-json.test.ts src/self-upgrade.test.ts src/skill-tunnel/local-bridge.test.ts src/skill-tunnel/client.test.ts src/skill-runner/discovery.test.ts src/skill-installer/index.test.ts src/_dist-no-external-contracts.test.ts src/mcp/server-boot.test.ts src/connectors/connectors.test.ts src/asset-connectors/asset-connectors.test.ts src/saas-connectors/saas-connectors.test.ts src/router/router.test.ts src/vault/vault.test.ts src/scheduler/scheduler.test.ts src/_signers/signers.test.ts src/memory/memory.test.ts src/mcp/tools/memory-tools.test.ts",
56
+ "test": "tsx --test src/harness/detector.test.ts src/harness/priming.test.ts src/harness/writers.test.ts src/guard/state.test.ts src/soul.test.ts src/soul-security.test.ts src/harness/kernels/registry.test.ts src/harness/kernels/deny-pipeline.test.ts src/mcp-output/builder.test.ts src/mcp-output/deny-review.test.ts src/mcp-output/integration.test.ts src/skill-md/template.test.ts src/skill-md/writer.test.ts src/mcp-stdio/smoke.test.ts src/mcp-stdio/render-flow.contract.test.ts src/mcp-stdio/render-aha.test.ts src/mcp-stdio/sse-progress-client.test.ts src/mcp-stdio/parse-tolerant-json.test.ts src/self-upgrade.test.ts src/skill-tunnel/local-bridge.test.ts src/skill-tunnel/client.test.ts src/skill-runner/discovery.test.ts src/skill-installer/index.test.ts src/_dist-no-external-contracts.test.ts src/mcp/server-boot.test.ts src/connectors/connectors.test.ts src/asset-connectors/asset-connectors.test.ts src/saas-connectors/saas-connectors.test.ts src/router/router.test.ts src/vault/vault.test.ts src/scheduler/scheduler.test.ts src/_signers/signers.test.ts src/memory/memory.test.ts src/mcp/tools/memory-tools.test.ts src/checkup/checkup.test.ts",
57
57
  "test:acceptance": "npm run build && bash scripts/acceptance-matrix.sh",
58
58
  "postpublish": "curl -sS -m 10 -X PUT 'https://registry.npmmirror.com/-/package/@skillfm/local/syncs?sync_upstream=true' > /dev/null && echo '✓ npmmirror sync triggered' || echo '⚠ npmmirror sync failed (非阻塞,可手动触发)'"
59
59
  },