| 4481 | } |
| 4482 | |
| 4483 | export function createApiMetricsMessage(metrics: { |
| 4484 | ttftMs: number |
| 4485 | otps: number |
| 4486 | isP50?: boolean |
| 4487 | hookDurationMs?: number |
| 4488 | turnDurationMs?: number |
| 4489 | toolDurationMs?: number |
| 4490 | classifierDurationMs?: number |
| 4491 | toolCount?: number |
| 4492 | hookCount?: number |
| 4493 | classifierCount?: number |
| 4494 | configWriteCount?: number |
| 4495 | }): SystemApiMetricsMessage { |
| 4496 | return { |
| 4497 | type: 'system', |
| 4498 | subtype: 'api_metrics', |
| 4499 | ttftMs: metrics.ttftMs, |
| 4500 | otps: metrics.otps, |
| 4501 | isP50: metrics.isP50, |
| 4502 | hookDurationMs: metrics.hookDurationMs, |
| 4503 | turnDurationMs: metrics.turnDurationMs, |
| 4504 | toolDurationMs: metrics.toolDurationMs, |
| 4505 | classifierDurationMs: metrics.classifierDurationMs, |
| 4506 | toolCount: metrics.toolCount, |
| 4507 | hookCount: metrics.hookCount, |
| 4508 | classifierCount: metrics.classifierCount, |
| 4509 | configWriteCount: metrics.configWriteCount, |
| 4510 | timestamp: new Date().toISOString(), |
| 4511 | uuid: randomUUID(), |
| 4512 | isMeta: false, |
| 4513 | } |
| 4514 | } |
| 4515 | |
| 4516 | export function createCommandInputMessage( |
| 4517 | content: string, |