@yuhere/js-jsonrpc2 2.1.8 → 2.1.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.
package/README.md CHANGED
@@ -105,7 +105,8 @@ s.string() // string
105
105
  s.string().min(1).max(64) // length-constrained string
106
106
  s.number() // finite number
107
107
  s.boolean() // boolean
108
- s.literal('2.0') // exact literal
108
+ s.literal('2.0') // exact literal (string | number | boolean only)
109
+ s.null() // exactly null
109
110
  s.array(s.string()) // string[]
110
111
  s.object({ id: s.number() }) // open object
111
112
  s.object({ id: s.number() }).strict() // all props required, no extras
@@ -113,7 +114,7 @@ s.record(s.number()) // Record<string, number>
113
114
  s.union([s.string(), s.number()])
114
115
  s.tuple([s.string(), s.number()])
115
116
  s.enum(['pending', 'success', 'failed'])
116
- s.unknown() // any JSON value
117
+ s.unknown() // any JSON value (already includes null)
117
118
  s.void() // RPC-only: no return value
118
119
  s.injectable('request') // RPC-only: server-injected parameter
119
120
  ```
@@ -123,6 +124,13 @@ Chainable modifiers: `.min()`, `.max()`, `.nullable()`, `.strict()`,
123
124
  `SchemaValidationError`) and `.safeParse(input)` (returns a result object).
124
125
  Introspection: `.toJSON()` returns a `SchemaDescription`.
125
126
 
127
+ Nullability notes:
128
+
129
+ - `.nullable()` / `.nullable(true)` allow `null`; `.nullable(false)` clears it. All calls are immutable.
130
+ - `s.unknown()` and `s.null()` do not expose `.nullable()`; they already accept / are `null`.
131
+ - `s.literal(v)` accepts `string | number | boolean`. Use `s.null()` for exact null, or `.nullable()` for "literal or null".
132
+ - `s.union([...])` strips member-level nullability; only the union's own `.nullable()` decides whether `null` is accepted.
133
+
126
134
  ## Transports
127
135
 
128
136
  ### Express
package/SKILL.md CHANGED
@@ -27,10 +27,16 @@ Hard constraints (by design, do not work around):
27
27
  5. Write `handler` so its positional args match the non-injectable slots in order;
28
28
  injectable slots are filled at their declared positions.
29
29
  6. Use `s.*` factories for schemas: `s.string()`, `s.number()`, `s.boolean()`,
30
- `s.literal(v)`, `s.array(item)`, `s.object(shape)`, `s.record(v)`,
31
- `s.union([...])`, `s.tuple([...])`, `s.enum([...])`, `s.unknown()`.
32
- 7. Chain modifiers before registering: `.min()`, `.max()`, `.nullable()`,
30
+ `s.literal(v)` (`v` is `string | number | boolean` only), `s.null()`,
31
+ `s.array(item)`, `s.object(shape)`, `s.record(v)`, `s.union([...])`,
32
+ `s.tuple([...])`, `s.enum([...])`, `s.unknown()`.
33
+ 7. Chain modifiers before registering: `.min()`, `.max()`, `.nullable(bool)`,
33
34
  `.strict()`, `.describe(text)`.
35
+ 8. Nullability rules:
36
+ - `.nullable()` / `.nullable(true)` allow `null`; `.nullable(false)` clears it. Calls are immutable.
37
+ - `s.unknown()` and `s.null()` already handle `null`; they do not expose `.nullable()`.
38
+ - `s.literal(v)` rejects `null`; use `s.null()` for exact null, `.nullable()` for "literal or null".
39
+ - `s.union([...])` strips member-level nullability at construction; use `s.union([...]).nullable()` to accept `null`.
34
40
 
35
41
  ```ts
36
42
  import { createRepository, s } from '@yuhere/js-jsonrpc2';
@@ -235,3 +241,15 @@ so `system.methodHelp` returns useful text.
235
241
  - **Treating a terminal `error` frame as a broken connection.** A mid-stream
236
242
  throw is delivered as `{ done: true, error }`; the HTTP/WS/stdio response
237
243
  itself ends cleanly. Only transport-level failures abort the connection.
244
+ - **Calling `.nullable()` on `s.unknown()` or `s.null()`.** Those schemas do not
245
+ extend `NullableSchema`; the call is a TypeScript error. Use `.nullable()` on
246
+ the concrete schema instead (e.g. `s.string().nullable()`), or `s.null()`
247
+ when the value must be exactly `null`.
248
+ - **Expecting member-level `.nullable()` inside a union to matter.**
249
+ `s.union([s.string().nullable(), s.number()])` is equivalent to
250
+ `s.union([s.string(), s.number()])` — members are cloned and set to
251
+ `nullable(false)` at construction. Put `.nullable()` on the union itself:
252
+ `s.union([s.string(), s.number()]).nullable()`.
253
+ - **Calling `s.literal(null)`.** `literal` only accepts `string | number |
254
+ boolean`; construction throws `TypeError`. Use `s.null()` for exact null, or
255
+ `.nullable()` for "literal or null".
@@ -9,7 +9,7 @@ export declare class Repository {
9
9
  get(namespace: string): MethodDescriptor | undefined;
10
10
  signatureOf(descriptor: MethodDescriptor): unknown[];
11
11
  invoke(input: unknown, options?: InvokeOptions): Promise<RPCResponse>;
12
- invokeLlmTool(call: LlmToolCall, injections: Injections): Promise<RPCResponse>;
12
+ invokeLlmTool(call: LlmToolCall, injections: Injections): Promise<unknown>;
13
13
  listLlmTools(injections: Injections, rawOptions?: unknown): Promise<LlmTools>;
14
14
  /**
15
15
  * 把 handler 返回的 AsyncGenerator 包装成待消费的 chunk 流。
@@ -1 +1 @@
1
- {"version":3,"file":"Repository.d.ts","sourceRoot":"","sources":["../../src/core/Repository.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AASrD,OAAO,KAAK,EACV,aAAa,EAEb,UAAU,EAEV,WAAW,EAGX,aAAa,EACb,iBAAiB,EACjB,WAAW,EAAE,QAAQ,EAAE,UAAU,EAClC,MAAM,UAAU,CAAC;AAelB,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAE/D,YAAY,OAAO,GAAE,iBAAsB,EAI1C;IAED,QAAQ,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,GAAG,IAAI,CAOxD;IAED,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE9B;IAED,IAAI,IAAI,MAAM,EAAE,CAEf;IAED,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAEnD;IAED,WAAW,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,EAAE,CAEnD;IAEK,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CA4C9E;IAEK,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAanF;IAEK,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAElF;IAED;;;;;OAKG;YACY,YAAY;IA+B3B,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,OAAO;CAOhB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,UAAU,CAE5E;AAED,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"Repository.d.ts","sourceRoot":"","sources":["../../src/core/Repository.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AASrD,OAAO,KAAK,EACV,aAAa,EAEb,UAAU,EAEV,WAAW,EAGX,aAAa,EACb,iBAAiB,EACjB,WAAW,EAAE,QAAQ,EAAE,UAAU,EAClC,MAAM,UAAU,CAAC;AAelB,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAE/D,YAAY,OAAO,GAAE,iBAAsB,EAI1C;IAED,QAAQ,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,GAAG,IAAI,CAOxD;IAED,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE9B;IAED,IAAI,IAAI,MAAM,EAAE,CAEf;IAED,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAEnD;IAED,WAAW,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,EAAE,CAEnD;IAEK,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CA4C9E;IAEK,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAE/E;IAEK,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAElF;IAED;;;;;OAKG;YACY,YAAY;IA+B3B,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,OAAO;CAOhB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,UAAU,CAE5E;AAED,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
@@ -5,7 +5,7 @@ import { convertParams } from './convert.js';
5
5
  import { checkPermission } from './permission.js';
6
6
  import { validateRequest } from './spec-check.js';
7
7
  import { registerSystemMethods } from './system-methods.js';
8
- import { generateLlmTools } from './llm-tools.js';
8
+ import { listLlmTools, invokeLlmTool } from './llm-tools.js';
9
9
  import { registerSchema } from '../schema/z/register.js';
10
10
  import { RPCVersion } from '../schema/z/protocol.js';
11
11
  function formatRegisterIssues(error) {
@@ -96,19 +96,10 @@ export class Repository {
96
96
  }
97
97
  }
98
98
  async invokeLlmTool(call, injections) {
99
- const { name, arguments: args } = call;
100
- const args_len = Object.keys(args).length;
101
- const params = [];
102
- for (let i = 0; i < args_len; i++) {
103
- const key = `param${i}`;
104
- if (!(key in call.arguments))
105
- throw new Error(`Missing tool argument: ${key}`);
106
- params.push(call.arguments[key]);
107
- }
108
- return this.invoke({ jsonrpc: RPCVersion, method: name.replaceAll(/_/g, "."), params, id: `llm-${Date.now()}` }, { injections });
99
+ return invokeLlmTool(this, call, injections);
109
100
  }
110
101
  async listLlmTools(injections, rawOptions) {
111
- return generateLlmTools(this, injections, rawOptions);
102
+ return listLlmTools(this, injections, rawOptions);
112
103
  }
113
104
  /**
114
105
  * 把 handler 返回的 AsyncGenerator 包装成待消费的 chunk 流。
@@ -1 +1 @@
1
- {"version":3,"file":"Repository.js","sourceRoot":"","sources":["../../src/core/Repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Repository.js","sourceRoot":"","sources":["../../src/core/Repository.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { Repository } from './Repository.js';
2
- import type { Injections, LlmTools } from '../types.js';
2
+ import type { LlmToolCall, LlmTools, Injections } from '../types.js';
3
3
  export interface JSONSchema {
4
4
  type?: string | string[];
5
5
  description?: string;
@@ -20,5 +20,6 @@ export interface JSONSchema {
20
20
  anyOf?: JSONSchema[];
21
21
  nullable?: boolean;
22
22
  }
23
- export declare function generateLlmTools(repository: Repository, injections: Injections, rawOptions?: unknown): Promise<LlmTools>;
23
+ export declare function listLlmTools(repository: Repository, injections: Injections, rawOptions?: unknown): Promise<LlmTools>;
24
+ export declare function invokeLlmTool(repository: Repository, call: LlmToolCall, injections: Injections): Promise<unknown>;
24
25
  //# sourceMappingURL=llm-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"llm-tools.d.ts","sourceRoot":"","sources":["../../src/core/llm-tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAErD,MAAM,WAAW,UAAU;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,oBAAoB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC5C,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AA0GD,wBAAsB,gBAAgB,CAClC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,UAAU,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC,QAAQ,CAAC,CAsEnB"}
1
+ {"version":3,"file":"llm-tools.d.ts","sourceRoot":"","sources":["../../src/core/llm-tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,KAAK,EAGR,WAAW,EAAE,QAAQ,EAAE,UAAU,EACpC,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,UAAU;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,oBAAoB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC5C,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AA0GD,wBAAsB,YAAY,CAC9B,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,UAAU,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC,QAAQ,CAAC,CAiEnB;AAED,wBAAsB,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CA2CvH"}
@@ -2,6 +2,7 @@ import { RPCError } from '../errors/RPCError.js';
2
2
  import { METHOD_NOT_FOUND } from '../errors/codes.js';
3
3
  import { assertAccessible } from './permission.js';
4
4
  import { InjectableMarker } from '../schema/json/index.js';
5
+ import { RPCVersion } from '../schema/z/protocol.js';
5
6
  function schemaToJSONSchema(schema) {
6
7
  return convert(schema.toJSON());
7
8
  }
@@ -114,9 +115,9 @@ function convert(desc) {
114
115
  }
115
116
  return out;
116
117
  }
117
- export async function generateLlmTools(repository, injections, rawOptions) {
118
+ export async function listLlmTools(repository, injections, rawOptions) {
118
119
  const opts = (rawOptions ?? {});
119
- const { includeStreaming = false, namePrefix = '', prefix } = opts;
120
+ const { includeStreaming = false, prefix } = opts;
120
121
  const tools = [];
121
122
  for (const name of repository.list()) {
122
123
  if (prefix && !name.startsWith(prefix))
@@ -124,7 +125,6 @@ export async function generateLlmTools(repository, injections, rawOptions) {
124
125
  const descriptor = repository.get(name);
125
126
  if (!descriptor)
126
127
  continue;
127
- // const fname = name.replaceAll(/\./, '_');
128
128
  // 权限过滤:不可见的方法直接跳过(与 listMethods 语义一致)
129
129
  try {
130
130
  await assertAccessible(descriptor, injections);
@@ -177,4 +177,44 @@ export async function generateLlmTools(repository, injections, rawOptions) {
177
177
  }
178
178
  return tools;
179
179
  }
180
+ export async function invokeLlmTool(repository, call, injections) {
181
+ const { name, arguments: args } = call;
182
+ const args_len = Object.keys(args).length;
183
+ const params = [];
184
+ for (let i = 0; i < args_len; i++) {
185
+ const key = `param${i}`;
186
+ if (!(key in args))
187
+ throw new Error(`Missing tool argument: ${key}`);
188
+ params.push(args[key]);
189
+ }
190
+ //
191
+ const rpc_result = await repository.invoke({ jsonrpc: RPCVersion, method: name.replaceAll(/_/g, "."), params, id: `llm-${Date.now()}` }, { injections });
192
+ const rpc_failure = rpc_result;
193
+ if ("error" in rpc_failure) {
194
+ throw new Error(rpc_failure.error.code + ": " + rpc_failure.error.message);
195
+ }
196
+ const rpc_success = rpc_result;
197
+ if ("result" in rpc_success) {
198
+ return rpc_success.result;
199
+ }
200
+ // ############
201
+ const rpc_stream_success = rpc_result;
202
+ if ("chunks" in rpc_stream_success) {
203
+ return (async function* () {
204
+ for await (const chunk of rpc_stream_success.chunks) {
205
+ if ("error" in chunk) {
206
+ throw new Error(chunk.error.code + ": " + chunk.error.message);
207
+ }
208
+ const unpacked_chunk = {};
209
+ if ("index" in chunk) {
210
+ unpacked_chunk.index = chunk.index;
211
+ }
212
+ if ("value" in chunk) {
213
+ unpacked_chunk.value = chunk.value;
214
+ }
215
+ yield unpacked_chunk;
216
+ }
217
+ })();
218
+ }
219
+ }
180
220
  //# sourceMappingURL=llm-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"llm-tools.js","sourceRoot":"","sources":["../../src/core/llm-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-tools.js","sourceRoot":"","sources":["../../src/core/llm-tools.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,7 @@
25
25
  --syn-container: #7ee787;
26
26
  --syn-object: #79c0ff;
27
27
  --syn-union: #ffa657;
28
+ --syn-nullable: #ff79c6;
28
29
  --syn-muted: #8b949e;
29
30
 
30
31
  --mono: "JetBrains Mono", "Fira Code", Menlo, Consolas, "Courier New", monospace;
@@ -52,6 +53,7 @@
52
53
  --syn-container: #116329;
53
54
  --syn-object: #0969da;
54
55
  --syn-union: #bc4c00;
56
+ --syn-nullable: #a626a4;
55
57
  --syn-muted: #57606a;
56
58
  }
57
59
 
@@ -391,6 +393,15 @@ textarea:focus {
391
393
  color: var(--fg-dim);
392
394
  }
393
395
 
396
+ .schema-nullable-badge {
397
+ color: var(--syn-nullable);
398
+ font-size: 90%;
399
+ font-weight: bold;
400
+ letter-spacing: .5px;
401
+ text-transform: lowercase;
402
+ opacity: .9;
403
+ }
404
+
394
405
  .schema-constraints {
395
406
  color: var(--syn-muted);
396
407
  font-size: 90%;
@@ -458,6 +469,15 @@ textarea:focus {
458
469
  color: var(--fg-dim);
459
470
  }
460
471
 
472
+ .sf-nullable-badge {
473
+ color: var(--syn-nullable);
474
+ font-size: 90%;
475
+ font-weight: bold;
476
+ letter-spacing: .5px;
477
+ text-transform: lowercase;
478
+ opacity: .9;
479
+ }
480
+
461
481
  .sf-desc {
462
482
  color: var(--fg-dim);
463
483
  font-style: italic;
@@ -739,4 +759,205 @@ textarea:focus {
739
759
 
740
760
  .elapsed-badge .hint {
741
761
  font-size: 11px;
762
+ }
763
+
764
+
765
+
766
+ /* ================================================================
767
+ * Metrics 面板
768
+ * ================================================================ */
769
+ .metrics {
770
+ display: flex;
771
+ flex-direction: column;
772
+ gap: 16px;
773
+ }
774
+
775
+ .metrics-header {
776
+ display: flex;
777
+ align-items: center;
778
+ justify-content: space-between;
779
+ gap: 12px;
780
+ flex-wrap: wrap;
781
+ }
782
+
783
+ .metrics-header h2 {
784
+ margin: 0;
785
+ color: var(--accent);
786
+ font-size: 16px;
787
+ }
788
+
789
+ .metrics-controls {
790
+ display: flex;
791
+ align-items: center;
792
+ gap: 10px;
793
+ flex-wrap: wrap;
794
+ }
795
+
796
+ .metrics-auto {
797
+ display: inline-flex;
798
+ align-items: center;
799
+ gap: 4px;
800
+ font-size: 12px;
801
+ color: var(--fg-dim);
802
+ cursor: pointer;
803
+ user-select: none;
804
+ }
805
+
806
+ .metrics-cards {
807
+ display: grid;
808
+ grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
809
+ gap: 10px;
810
+ }
811
+
812
+ .metric-card {
813
+ background: var(--bg-elev);
814
+ border: 1px solid var(--border);
815
+ border-radius: 4px;
816
+ padding: 10px 12px;
817
+ display: flex;
818
+ flex-direction: column;
819
+ gap: 4px;
820
+ }
821
+
822
+ .metric-card-label {
823
+ font-size: 11px;
824
+ color: var(--fg-dim);
825
+ text-transform: uppercase;
826
+ letter-spacing: 1px;
827
+ }
828
+
829
+ .metric-card-value {
830
+ font-size: 22px;
831
+ font-weight: bold;
832
+ color: var(--fg);
833
+ font-variant-numeric: tabular-nums;
834
+ }
835
+
836
+ .metric-card-danger .metric-card-value {
837
+ color: var(--danger);
838
+ }
839
+
840
+ .metric-card-warn .metric-card-value {
841
+ color: var(--syn-number);
842
+ }
843
+
844
+ .metrics-table {
845
+ width: 100%;
846
+ border-collapse: collapse;
847
+ font-size: 12px;
848
+ font-variant-numeric: tabular-nums;
849
+ }
850
+
851
+ .metrics-table th,
852
+ .metrics-table td {
853
+ padding: 6px 8px;
854
+ border-bottom: 1px solid var(--border);
855
+ text-align: left;
856
+ white-space: nowrap;
857
+ }
858
+
859
+ .metrics-table th {
860
+ color: var(--fg-dim);
861
+ font-weight: normal;
862
+ text-transform: uppercase;
863
+ letter-spacing: .5px;
864
+ font-size: 11px;
865
+ position: sticky;
866
+ top: 0;
867
+ background: var(--bg);
868
+ z-index: 1;
869
+ }
870
+
871
+ .metrics-table td.num,
872
+ .metrics-table th.num {
873
+ text-align: right;
874
+ }
875
+
876
+ .metrics-table tr:hover td {
877
+ background: var(--hover-bg);
878
+ }
879
+
880
+ .metrics-table .method-name {
881
+ color: var(--accent);
882
+ font-family: var(--mono);
883
+ max-width: 260px;
884
+ overflow: hidden;
885
+ text-overflow: ellipsis;
886
+ }
887
+
888
+ .metrics-table .error {
889
+ color: var(--danger);
890
+ }
891
+
892
+ .metrics-table .warn {
893
+ color: var(--syn-number);
894
+ }
895
+
896
+ .metrics-table .rate-hot {
897
+ color: var(--syn-boolean);
898
+ font-weight: bold;
899
+ }
900
+
901
+ .metrics-table .rate-warm {
902
+ color: var(--syn-number);
903
+ }
904
+
905
+ .metrics-table .rate-cold {
906
+ color: var(--fg-dim);
907
+ }
908
+
909
+ .metrics-table.compact th,
910
+ .metrics-table.compact td {
911
+ padding: 3px 6px;
912
+ font-size: 11px;
913
+ }
914
+
915
+ .view-switch {
916
+ margin-bottom: 8px;
917
+ width: 100%;
918
+ }
919
+
920
+ .view-switch button {
921
+ flex: 1;
922
+ }
923
+
924
+ /* ---- Metrics 侧边栏 ---- */
925
+ .metrics-sidebar {
926
+ display: flex;
927
+ flex-direction: column;
928
+ gap: 8px;
929
+ }
930
+
931
+ .metrics-filter {
932
+ display: flex;
933
+ flex-direction: column;
934
+ gap: 4px;
935
+ }
936
+
937
+ .metrics-filter-label {
938
+ font-size: 11px;
939
+ color: var(--fg-dim);
940
+ text-transform: uppercase;
941
+ letter-spacing: 1px;
942
+ }
943
+
944
+ .metrics-filter-help {
945
+ font-size: 11px;
946
+ line-height: 1.5;
947
+ margin: 0;
948
+ }
949
+
950
+ .metrics-filter-help code {
951
+ background: var(--bg-deep);
952
+ border: 1px solid var(--border);
953
+ border-radius: 3px;
954
+ padding: 0 4px;
955
+ font-size: 11px;
956
+ color: var(--syn-literal);
957
+ }
958
+
959
+ .metrics-filter-stat {
960
+ font-size: 11px;
961
+ margin: 4px 0 0;
962
+ color: var(--accent);
742
963
  }