@revealui/mcp 0.1.0 → 0.1.3
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/LICENSE +22 -0
- package/LICENSE.commercial +111 -0
- package/README.md +3 -0
- package/dist/{packages/mcp/src/adapters → adapters}/db.d.ts +1 -1
- package/dist/adapters/db.d.ts.map +1 -0
- package/dist/adapters/db.js.map +1 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js.map +1 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js.map +1 -0
- package/dist/{packages/mcp/src/hypervisor.d.ts → hypervisor.d.ts} +56 -0
- package/dist/hypervisor.d.ts.map +1 -0
- package/dist/{packages/mcp/src/hypervisor.js → hypervisor.js} +209 -1
- package/dist/hypervisor.js.map +1 -0
- package/dist/{packages/mcp/src/index.d.ts → index.d.ts} +9 -5
- package/dist/index.d.ts.map +1 -0
- package/dist/{packages/mcp/src/index.js → index.js} +8 -4
- package/dist/index.js.map +1 -0
- package/dist/{packages/mcp/src/servers → servers}/adapter.d.ts +11 -1
- package/dist/servers/adapter.d.ts.map +1 -0
- package/dist/{packages/mcp/src/servers → servers}/adapter.js +20 -4
- package/dist/servers/adapter.js.map +1 -0
- package/dist/servers/revealui-content.d.ts +21 -0
- package/dist/servers/revealui-content.d.ts.map +1 -0
- package/dist/servers/revealui-content.js +211 -0
- package/dist/servers/revealui-content.js.map +1 -0
- package/dist/servers/revealui-email.d.ts +18 -0
- package/dist/servers/revealui-email.d.ts.map +1 -0
- package/dist/servers/revealui-email.js +190 -0
- package/dist/servers/revealui-email.js.map +1 -0
- package/dist/servers/revealui-stripe.d.ts +19 -0
- package/dist/servers/revealui-stripe.d.ts.map +1 -0
- package/dist/servers/revealui-stripe.js +228 -0
- package/dist/servers/revealui-stripe.js.map +1 -0
- package/package.json +50 -11
- package/.env.example +0 -9
- package/MCP_MAINTENANCE.md +0 -265
- package/__tests__/crdt.integration.test.ts +0 -156
- package/configs/README.md +0 -77
- package/configs/claude-template.json +0 -54
- package/dist/packages/core/src/database/ssl-config.d.ts +0 -9
- package/dist/packages/core/src/database/ssl-config.d.ts.map +0 -1
- package/dist/packages/core/src/database/ssl-config.js +0 -8
- package/dist/packages/core/src/database/ssl-config.js.map +0 -1
- package/dist/packages/core/src/features.d.ts +0 -86
- package/dist/packages/core/src/features.d.ts.map +0 -1
- package/dist/packages/core/src/features.js +0 -93
- package/dist/packages/core/src/features.js.map +0 -1
- package/dist/packages/core/src/license.d.ts +0 -75
- package/dist/packages/core/src/license.d.ts.map +0 -1
- package/dist/packages/core/src/license.js +0 -174
- package/dist/packages/core/src/license.js.map +0 -1
- package/dist/packages/core/src/monitoring/alerts.d.ts +0 -118
- package/dist/packages/core/src/monitoring/alerts.d.ts.map +0 -1
- package/dist/packages/core/src/monitoring/alerts.js +0 -325
- package/dist/packages/core/src/monitoring/alerts.js.map +0 -1
- package/dist/packages/core/src/monitoring/cleanup-manager.d.ts +0 -71
- package/dist/packages/core/src/monitoring/cleanup-manager.d.ts.map +0 -1
- package/dist/packages/core/src/monitoring/cleanup-manager.js +0 -227
- package/dist/packages/core/src/monitoring/cleanup-manager.js.map +0 -1
- package/dist/packages/core/src/monitoring/health-monitor.d.ts +0 -22
- package/dist/packages/core/src/monitoring/health-monitor.d.ts.map +0 -1
- package/dist/packages/core/src/monitoring/health-monitor.js +0 -143
- package/dist/packages/core/src/monitoring/health-monitor.js.map +0 -1
- package/dist/packages/core/src/monitoring/index.d.ts +0 -14
- package/dist/packages/core/src/monitoring/index.d.ts.map +0 -1
- package/dist/packages/core/src/monitoring/index.js +0 -18
- package/dist/packages/core/src/monitoring/index.js.map +0 -1
- package/dist/packages/core/src/monitoring/process-registry.d.ts +0 -97
- package/dist/packages/core/src/monitoring/process-registry.d.ts.map +0 -1
- package/dist/packages/core/src/monitoring/process-registry.js +0 -223
- package/dist/packages/core/src/monitoring/process-registry.js.map +0 -1
- package/dist/packages/core/src/monitoring/types.d.ts +0 -231
- package/dist/packages/core/src/monitoring/types.d.ts.map +0 -1
- package/dist/packages/core/src/monitoring/types.js +0 -43
- package/dist/packages/core/src/monitoring/types.js.map +0 -1
- package/dist/packages/core/src/monitoring/zombie-detector.d.ts +0 -81
- package/dist/packages/core/src/monitoring/zombie-detector.d.ts.map +0 -1
- package/dist/packages/core/src/monitoring/zombie-detector.js +0 -232
- package/dist/packages/core/src/monitoring/zombie-detector.js.map +0 -1
- package/dist/packages/core/src/observability/logger.d.ts +0 -47
- package/dist/packages/core/src/observability/logger.d.ts.map +0 -1
- package/dist/packages/core/src/observability/logger.js +0 -141
- package/dist/packages/core/src/observability/logger.js.map +0 -1
- package/dist/packages/core/src/utils/logger-server.d.ts +0 -32
- package/dist/packages/core/src/utils/logger-server.d.ts.map +0 -1
- package/dist/packages/core/src/utils/logger-server.js +0 -69
- package/dist/packages/core/src/utils/logger-server.js.map +0 -1
- package/dist/packages/core/src/utils/request-context.d.ts +0 -143
- package/dist/packages/core/src/utils/request-context.d.ts.map +0 -1
- package/dist/packages/core/src/utils/request-context.js +0 -169
- package/dist/packages/core/src/utils/request-context.js.map +0 -1
- package/dist/packages/dev/src/code-validator/index.d.ts +0 -20
- package/dist/packages/dev/src/code-validator/index.d.ts.map +0 -1
- package/dist/packages/dev/src/code-validator/index.js +0 -20
- package/dist/packages/dev/src/code-validator/index.js.map +0 -1
- package/dist/packages/dev/src/code-validator/types.d.ts +0 -67
- package/dist/packages/dev/src/code-validator/types.d.ts.map +0 -1
- package/dist/packages/dev/src/code-validator/types.js +0 -7
- package/dist/packages/dev/src/code-validator/types.js.map +0 -1
- package/dist/packages/dev/src/code-validator/validator.d.ts +0 -48
- package/dist/packages/dev/src/code-validator/validator.d.ts.map +0 -1
- package/dist/packages/dev/src/code-validator/validator.js +0 -176
- package/dist/packages/dev/src/code-validator/validator.js.map +0 -1
- package/dist/packages/mcp/src/adapters/db.d.ts.map +0 -1
- package/dist/packages/mcp/src/adapters/db.js.map +0 -1
- package/dist/packages/mcp/src/config/index.d.ts.map +0 -1
- package/dist/packages/mcp/src/config/index.js.map +0 -1
- package/dist/packages/mcp/src/contracts.d.ts.map +0 -1
- package/dist/packages/mcp/src/contracts.js.map +0 -1
- package/dist/packages/mcp/src/hypervisor.d.ts.map +0 -1
- package/dist/packages/mcp/src/hypervisor.js.map +0 -1
- package/dist/packages/mcp/src/index.d.ts.map +0 -1
- package/dist/packages/mcp/src/index.js.map +0 -1
- package/dist/packages/mcp/src/servers/adapter.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/adapter.js.map +0 -1
- package/dist/packages/mcp/src/servers/code-validator.d.ts +0 -24
- package/dist/packages/mcp/src/servers/code-validator.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/code-validator.js +0 -156
- package/dist/packages/mcp/src/servers/code-validator.js.map +0 -1
- package/dist/packages/mcp/src/servers/neon.d.ts +0 -11
- package/dist/packages/mcp/src/servers/neon.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/neon.js +0 -90
- package/dist/packages/mcp/src/servers/neon.js.map +0 -1
- package/dist/packages/mcp/src/servers/next-devtools.d.ts +0 -11
- package/dist/packages/mcp/src/servers/next-devtools.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/next-devtools.js +0 -215
- package/dist/packages/mcp/src/servers/next-devtools.js.map +0 -1
- package/dist/packages/mcp/src/servers/playwright.d.ts +0 -11
- package/dist/packages/mcp/src/servers/playwright.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/playwright.js +0 -68
- package/dist/packages/mcp/src/servers/playwright.js.map +0 -1
- package/dist/packages/mcp/src/servers/stripe.d.ts +0 -11
- package/dist/packages/mcp/src/servers/stripe.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/stripe.js +0 -86
- package/dist/packages/mcp/src/servers/stripe.js.map +0 -1
- package/dist/packages/mcp/src/servers/supabase.d.ts +0 -11
- package/dist/packages/mcp/src/servers/supabase.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/supabase.js +0 -144
- package/dist/packages/mcp/src/servers/supabase.js.map +0 -1
- package/dist/packages/mcp/src/servers/vercel.d.ts +0 -11
- package/dist/packages/mcp/src/servers/vercel.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/vercel.js +0 -87
- package/dist/packages/mcp/src/servers/vercel.js.map +0 -1
- package/dist/packages/mcp/src/servers/vultr-test.d.ts +0 -3
- package/dist/packages/mcp/src/servers/vultr-test.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/vultr-test.js +0 -82
- package/dist/packages/mcp/src/servers/vultr-test.js.map +0 -1
- package/dist/scripts/lib/analyzers/console-analyzer.d.ts +0 -188
- package/dist/scripts/lib/analyzers/console-analyzer.d.ts.map +0 -1
- package/dist/scripts/lib/analyzers/console-analyzer.js +0 -432
- package/dist/scripts/lib/analyzers/console-analyzer.js.map +0 -1
- package/dist/scripts/lib/analyzers/index.d.ts +0 -11
- package/dist/scripts/lib/analyzers/index.d.ts.map +0 -1
- package/dist/scripts/lib/analyzers/index.js +0 -11
- package/dist/scripts/lib/analyzers/index.js.map +0 -1
- package/dist/scripts/lib/args.d.ts +0 -104
- package/dist/scripts/lib/args.d.ts.map +0 -1
- package/dist/scripts/lib/args.js +0 -304
- package/dist/scripts/lib/args.js.map +0 -1
- package/dist/scripts/lib/cache.d.ts +0 -185
- package/dist/scripts/lib/cache.d.ts.map +0 -1
- package/dist/scripts/lib/cache.js +0 -390
- package/dist/scripts/lib/cache.js.map +0 -1
- package/dist/scripts/lib/cli/dispatch.d.ts +0 -116
- package/dist/scripts/lib/cli/dispatch.d.ts.map +0 -1
- package/dist/scripts/lib/cli/dispatch.js +0 -206
- package/dist/scripts/lib/cli/dispatch.js.map +0 -1
- package/dist/scripts/lib/cli/index.d.ts +0 -10
- package/dist/scripts/lib/cli/index.d.ts.map +0 -1
- package/dist/scripts/lib/cli/index.js +0 -10
- package/dist/scripts/lib/cli/index.js.map +0 -1
- package/dist/scripts/lib/database/ssl-config.d.ts +0 -26
- package/dist/scripts/lib/database/ssl-config.d.ts.map +0 -1
- package/dist/scripts/lib/database/ssl-config.js +0 -47
- package/dist/scripts/lib/database/ssl-config.js.map +0 -1
- package/dist/scripts/lib/errors.d.ts +0 -218
- package/dist/scripts/lib/errors.d.ts.map +0 -1
- package/dist/scripts/lib/errors.js +0 -543
- package/dist/scripts/lib/errors.js.map +0 -1
- package/dist/scripts/lib/exec.d.ts +0 -107
- package/dist/scripts/lib/exec.d.ts.map +0 -1
- package/dist/scripts/lib/exec.js +0 -232
- package/dist/scripts/lib/exec.js.map +0 -1
- package/dist/scripts/lib/index.d.ts +0 -50
- package/dist/scripts/lib/index.d.ts.map +0 -1
- package/dist/scripts/lib/index.js +0 -65
- package/dist/scripts/lib/index.js.map +0 -1
- package/dist/scripts/lib/logger.d.ts +0 -50
- package/dist/scripts/lib/logger.d.ts.map +0 -1
- package/dist/scripts/lib/logger.js +0 -159
- package/dist/scripts/lib/logger.js.map +0 -1
- package/dist/scripts/lib/output.d.ts +0 -149
- package/dist/scripts/lib/output.d.ts.map +0 -1
- package/dist/scripts/lib/output.js +0 -263
- package/dist/scripts/lib/output.js.map +0 -1
- package/dist/scripts/lib/parallel.d.ts +0 -164
- package/dist/scripts/lib/parallel.d.ts.map +0 -1
- package/dist/scripts/lib/parallel.js +0 -355
- package/dist/scripts/lib/parallel.js.map +0 -1
- package/dist/scripts/lib/paths.d.ts +0 -92
- package/dist/scripts/lib/paths.d.ts.map +0 -1
- package/dist/scripts/lib/paths.js +0 -171
- package/dist/scripts/lib/paths.js.map +0 -1
- package/dist/scripts/lib/state/adapters/memory.d.ts +0 -42
- package/dist/scripts/lib/state/adapters/memory.d.ts.map +0 -1
- package/dist/scripts/lib/state/adapters/memory.js +0 -110
- package/dist/scripts/lib/state/adapters/memory.js.map +0 -1
- package/dist/scripts/lib/state/adapters/pglite.d.ts +0 -46
- package/dist/scripts/lib/state/adapters/pglite.d.ts.map +0 -1
- package/dist/scripts/lib/state/adapters/pglite.js +0 -256
- package/dist/scripts/lib/state/adapters/pglite.js.map +0 -1
- package/dist/scripts/lib/state/index.d.ts +0 -16
- package/dist/scripts/lib/state/index.d.ts.map +0 -1
- package/dist/scripts/lib/state/index.js +0 -16
- package/dist/scripts/lib/state/index.js.map +0 -1
- package/dist/scripts/lib/state/types.d.ts +0 -111
- package/dist/scripts/lib/state/types.d.ts.map +0 -1
- package/dist/scripts/lib/state/types.js +0 -8
- package/dist/scripts/lib/state/types.js.map +0 -1
- package/dist/scripts/lib/state/workflow-state.d.ts +0 -110
- package/dist/scripts/lib/state/workflow-state.d.ts.map +0 -1
- package/dist/scripts/lib/state/workflow-state.js +0 -331
- package/dist/scripts/lib/state/workflow-state.js.map +0 -1
- package/dist/scripts/lib/telemetry.d.ts +0 -194
- package/dist/scripts/lib/telemetry.d.ts.map +0 -1
- package/dist/scripts/lib/telemetry.js +0 -394
- package/dist/scripts/lib/telemetry.js.map +0 -1
- package/dist/scripts/lib/utils.d.ts +0 -270
- package/dist/scripts/lib/utils.d.ts.map +0 -1
- package/dist/scripts/lib/utils.js +0 -473
- package/dist/scripts/lib/utils.js.map +0 -1
- package/dist/scripts/lib/validation/database.d.ts +0 -83
- package/dist/scripts/lib/validation/database.d.ts.map +0 -1
- package/dist/scripts/lib/validation/database.js +0 -199
- package/dist/scripts/lib/validation/database.js.map +0 -1
- package/dist/scripts/lib/validation/env.d.ts +0 -80
- package/dist/scripts/lib/validation/env.d.ts.map +0 -1
- package/dist/scripts/lib/validation/env.js +0 -246
- package/dist/scripts/lib/validation/env.js.map +0 -1
- package/dist/scripts/lib/validation/index.d.ts +0 -16
- package/dist/scripts/lib/validation/index.d.ts.map +0 -1
- package/dist/scripts/lib/validation/index.js +0 -16
- package/dist/scripts/lib/validation/index.js.map +0 -1
- package/dist/scripts/lib/validation/post-execution.d.ts +0 -74
- package/dist/scripts/lib/validation/post-execution.d.ts.map +0 -1
- package/dist/scripts/lib/validation/post-execution.js +0 -110
- package/dist/scripts/lib/validation/post-execution.js.map +0 -1
- package/dist/scripts/lib/validation/pre-execution.d.ts +0 -165
- package/dist/scripts/lib/validation/pre-execution.d.ts.map +0 -1
- package/dist/scripts/lib/validation/pre-execution.js +0 -466
- package/dist/scripts/lib/validation/pre-execution.js.map +0 -1
- package/dist/scripts/lib/validators/documentation-validator.d.ts +0 -242
- package/dist/scripts/lib/validators/documentation-validator.d.ts.map +0 -1
- package/dist/scripts/lib/validators/documentation-validator.js +0 -584
- package/dist/scripts/lib/validators/documentation-validator.js.map +0 -1
- package/dist/scripts/lib/validators/index.d.ts +0 -11
- package/dist/scripts/lib/validators/index.d.ts.map +0 -1
- package/dist/scripts/lib/validators/index.js +0 -11
- package/dist/scripts/lib/validators/index.js.map +0 -1
- package/docker-compose.yml +0 -46
- package/docs/INDEX.md +0 -88
- package/docs/README.md +0 -774
- package/docs/SETUP.md +0 -264
- package/docs/servers/code-validator.md +0 -586
- package/eslint.config.js +0 -7
- package/migrations/0001_add_crdt_columns.sql +0 -8
- package/migrations/0001_rollback.sql +0 -6
- package/migrations/005_performance_indexes.sql +0 -190
- package/migrations/backfill_crdt_meta.js +0 -45
- package/src/__tests__/hypervisor.test.ts +0 -212
- package/src/adapters/db.ts +0 -180
- package/src/config/config.json +0 -49
- package/src/config/index.ts +0 -30
- package/src/contracts.ts +0 -221
- package/src/hypervisor.ts +0 -464
- package/src/index.ts +0 -87
- package/src/servers/adapter.ts +0 -643
- package/src/servers/code-validator.ts +0 -188
- package/src/servers/neon.ts +0 -103
- package/src/servers/next-devtools.ts +0 -230
- package/src/servers/playwright.ts +0 -77
- package/src/servers/stripe.ts +0 -99
- package/src/servers/supabase.ts +0 -161
- package/src/servers/vercel.ts +0 -100
- package/src/servers/vultr-test.ts +0 -97
- package/tsconfig.json +0 -12
- package/vitest.config.ts +0 -22
- /package/dist/{packages/mcp/src/adapters → adapters}/db.js +0 -0
- /package/dist/{packages/mcp/src/config → config}/index.d.ts +0 -0
- /package/dist/{packages/mcp/src/config → config}/index.js +0 -0
- /package/dist/{packages/mcp/src/contracts.d.ts → contracts.d.ts} +0 -0
- /package/dist/{packages/mcp/src/contracts.js → contracts.js} +0 -0
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Workflow State Machine
|
|
3
|
-
*
|
|
4
|
-
* Manages workflow state transitions with proper validation and persistence.
|
|
5
|
-
* Replaces the file-based approval system with a proper state machine.
|
|
6
|
-
*
|
|
7
|
-
* @dependencies
|
|
8
|
-
* - scripts/lib/errors.ts - ErrorCode and ScriptError for validation errors
|
|
9
|
-
* - scripts/lib/state/adapters/memory.ts - Default in-memory state adapter
|
|
10
|
-
* - scripts/lib/state/types.ts - State management type definitions
|
|
11
|
-
* - node:crypto - Random token generation for approvals
|
|
12
|
-
*/
|
|
13
|
-
import type { ApprovalRequest, StateAdapter, WorkflowEvent, WorkflowState, WorkflowStatus, WorkflowStep, WorkflowStepState } from './types.js';
|
|
14
|
-
export interface WorkflowStateMachineOptions {
|
|
15
|
-
/** State adapter to use (defaults to in-memory) */
|
|
16
|
-
adapter?: StateAdapter;
|
|
17
|
-
/** Approval expiration time in milliseconds (default: 24 hours) */
|
|
18
|
-
approvalExpirationMs?: number;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* WorkflowStateMachine manages the lifecycle of automation workflows.
|
|
22
|
-
*
|
|
23
|
-
* @example
|
|
24
|
-
* ```typescript
|
|
25
|
-
* import { WorkflowStateMachine } from '@revealui/scripts/state/workflow'
|
|
26
|
-
* import { PGliteStateAdapter } from '@revealui/scripts/state/adapters/pglite'
|
|
27
|
-
*
|
|
28
|
-
* const machine = new WorkflowStateMachine({
|
|
29
|
-
* adapter: new PGliteStateAdapter(),
|
|
30
|
-
* })
|
|
31
|
-
*
|
|
32
|
-
* await machine.initialize()
|
|
33
|
-
*
|
|
34
|
-
* // Create a workflow
|
|
35
|
-
* const workflow = await machine.create('db-migration', [
|
|
36
|
-
* { id: 'backup', name: 'Backup', description: 'Create backup', requiresApproval: false },
|
|
37
|
-
* { id: 'migrate', name: 'Migrate', description: 'Run migration', requiresApproval: true },
|
|
38
|
-
* ])
|
|
39
|
-
*
|
|
40
|
-
* // Start the workflow
|
|
41
|
-
* await machine.transition(workflow.id, { type: 'START' })
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
export declare class WorkflowStateMachine {
|
|
45
|
-
private adapter;
|
|
46
|
-
private approvalExpirationMs;
|
|
47
|
-
private initialized;
|
|
48
|
-
constructor(options?: WorkflowStateMachineOptions);
|
|
49
|
-
/**
|
|
50
|
-
* Initialize the state machine and its adapter.
|
|
51
|
-
*/
|
|
52
|
-
initialize(): Promise<void>;
|
|
53
|
-
/**
|
|
54
|
-
* Close the state machine and clean up resources.
|
|
55
|
-
*/
|
|
56
|
-
close(): Promise<void>;
|
|
57
|
-
/**
|
|
58
|
-
* Create a new workflow.
|
|
59
|
-
*/
|
|
60
|
-
create(name: string, steps: WorkflowStep[], description?: string): Promise<WorkflowState>;
|
|
61
|
-
/**
|
|
62
|
-
* Load an existing workflow.
|
|
63
|
-
*/
|
|
64
|
-
load(id: string): Promise<WorkflowState | null>;
|
|
65
|
-
/**
|
|
66
|
-
* List workflows with optional filtering.
|
|
67
|
-
*/
|
|
68
|
-
list(options?: {
|
|
69
|
-
status?: WorkflowStatus;
|
|
70
|
-
limit?: number;
|
|
71
|
-
}): Promise<WorkflowState[]>;
|
|
72
|
-
/**
|
|
73
|
-
* Delete a workflow.
|
|
74
|
-
*/
|
|
75
|
-
delete(id: string): Promise<boolean>;
|
|
76
|
-
/**
|
|
77
|
-
* Transition a workflow to a new state based on an event.
|
|
78
|
-
*/
|
|
79
|
-
transition(id: string, event: WorkflowEvent): Promise<WorkflowState>;
|
|
80
|
-
/**
|
|
81
|
-
* Request approval for a workflow step.
|
|
82
|
-
* Returns a unique token that can be used to submit the approval.
|
|
83
|
-
*/
|
|
84
|
-
requestApproval(workflowId: string, stepId: string): Promise<string>;
|
|
85
|
-
/**
|
|
86
|
-
* Submit an approval decision.
|
|
87
|
-
*/
|
|
88
|
-
submitApproval(token: string, approved: boolean, respondedBy?: string, comment?: string): Promise<void>;
|
|
89
|
-
/**
|
|
90
|
-
* Get pending approvals for a workflow.
|
|
91
|
-
*/
|
|
92
|
-
getPendingApprovals(workflowId: string): Promise<ApprovalRequest[]>;
|
|
93
|
-
/**
|
|
94
|
-
* Get the current step for a workflow.
|
|
95
|
-
*/
|
|
96
|
-
getCurrentStep(workflow: WorkflowState): WorkflowStep | null;
|
|
97
|
-
/**
|
|
98
|
-
* Get the state of a specific step.
|
|
99
|
-
*/
|
|
100
|
-
getStepState(workflow: WorkflowState, stepId: string): WorkflowStepState | null;
|
|
101
|
-
/**
|
|
102
|
-
* Check if a workflow can proceed to the next step.
|
|
103
|
-
*/
|
|
104
|
-
canProceed(workflow: WorkflowState): boolean;
|
|
105
|
-
private applyEvent;
|
|
106
|
-
private ensureInitialized;
|
|
107
|
-
private generateId;
|
|
108
|
-
private generateToken;
|
|
109
|
-
}
|
|
110
|
-
//# sourceMappingURL=workflow-state.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-state.d.ts","sourceRoot":"","sources":["../../../../../../scripts/lib/state/workflow-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,YAAY,EACZ,iBAAiB,EAClB,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,2BAA2B;IAC1C,mDAAmD;IACnD,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,oBAAoB,CAAQ;IACpC,OAAO,CAAC,WAAW,CAAQ;gBAEf,OAAO,GAAE,2BAAgC;IAKrD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA4B/F;;OAEG;IACG,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAKrD;;OAEG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,cAAc,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAK3F;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1C;;OAEG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAe1E;;;OAGG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgC1E;;OAEG;IACG,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,OAAO,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IA4BhB;;OAEG;IACG,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAMzE;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,YAAY,GAAG,IAAI;IAO5D;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAI/E;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO;IAuB5C,OAAO,CAAC,UAAU;IA2HlB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,aAAa;CAGtB"}
|
|
@@ -1,331 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Workflow State Machine
|
|
3
|
-
*
|
|
4
|
-
* Manages workflow state transitions with proper validation and persistence.
|
|
5
|
-
* Replaces the file-based approval system with a proper state machine.
|
|
6
|
-
*
|
|
7
|
-
* @dependencies
|
|
8
|
-
* - scripts/lib/errors.ts - ErrorCode and ScriptError for validation errors
|
|
9
|
-
* - scripts/lib/state/adapters/memory.ts - Default in-memory state adapter
|
|
10
|
-
* - scripts/lib/state/types.ts - State management type definitions
|
|
11
|
-
* - node:crypto - Random token generation for approvals
|
|
12
|
-
*/
|
|
13
|
-
import { randomBytes } from 'node:crypto';
|
|
14
|
-
import { ErrorCode, ScriptError } from '../errors.js';
|
|
15
|
-
import { MemoryStateAdapter } from './adapters/memory.js';
|
|
16
|
-
/**
|
|
17
|
-
* WorkflowStateMachine manages the lifecycle of automation workflows.
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```typescript
|
|
21
|
-
* import { WorkflowStateMachine } from '@revealui/scripts/state/workflow'
|
|
22
|
-
* import { PGliteStateAdapter } from '@revealui/scripts/state/adapters/pglite'
|
|
23
|
-
*
|
|
24
|
-
* const machine = new WorkflowStateMachine({
|
|
25
|
-
* adapter: new PGliteStateAdapter(),
|
|
26
|
-
* })
|
|
27
|
-
*
|
|
28
|
-
* await machine.initialize()
|
|
29
|
-
*
|
|
30
|
-
* // Create a workflow
|
|
31
|
-
* const workflow = await machine.create('db-migration', [
|
|
32
|
-
* { id: 'backup', name: 'Backup', description: 'Create backup', requiresApproval: false },
|
|
33
|
-
* { id: 'migrate', name: 'Migrate', description: 'Run migration', requiresApproval: true },
|
|
34
|
-
* ])
|
|
35
|
-
*
|
|
36
|
-
* // Start the workflow
|
|
37
|
-
* await machine.transition(workflow.id, { type: 'START' })
|
|
38
|
-
* ```
|
|
39
|
-
*/
|
|
40
|
-
export class WorkflowStateMachine {
|
|
41
|
-
adapter;
|
|
42
|
-
approvalExpirationMs;
|
|
43
|
-
initialized = false;
|
|
44
|
-
constructor(options = {}) {
|
|
45
|
-
this.adapter = options.adapter || new MemoryStateAdapter();
|
|
46
|
-
this.approvalExpirationMs = options.approvalExpirationMs || 24 * 60 * 60 * 1000; // 24 hours
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Initialize the state machine and its adapter.
|
|
50
|
-
*/
|
|
51
|
-
async initialize() {
|
|
52
|
-
if (this.initialized)
|
|
53
|
-
return;
|
|
54
|
-
await this.adapter.initialize();
|
|
55
|
-
this.initialized = true;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Close the state machine and clean up resources.
|
|
59
|
-
*/
|
|
60
|
-
async close() {
|
|
61
|
-
await this.adapter.close();
|
|
62
|
-
this.initialized = false;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Create a new workflow.
|
|
66
|
-
*/
|
|
67
|
-
async create(name, steps, description) {
|
|
68
|
-
this.ensureInitialized();
|
|
69
|
-
const workflow = {
|
|
70
|
-
id: this.generateId(),
|
|
71
|
-
name,
|
|
72
|
-
description,
|
|
73
|
-
status: 'pending',
|
|
74
|
-
steps,
|
|
75
|
-
stepStates: new Map(),
|
|
76
|
-
currentStepIndex: 0,
|
|
77
|
-
createdAt: new Date(),
|
|
78
|
-
updatedAt: new Date(),
|
|
79
|
-
};
|
|
80
|
-
// Initialize step states
|
|
81
|
-
for (const step of steps) {
|
|
82
|
-
workflow.stepStates.set(step.id, {
|
|
83
|
-
stepId: step.id,
|
|
84
|
-
status: 'pending',
|
|
85
|
-
retryCount: 0,
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
await this.adapter.saveWorkflow(workflow);
|
|
89
|
-
return workflow;
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Load an existing workflow.
|
|
93
|
-
*/
|
|
94
|
-
async load(id) {
|
|
95
|
-
this.ensureInitialized();
|
|
96
|
-
return this.adapter.loadWorkflow(id);
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* List workflows with optional filtering.
|
|
100
|
-
*/
|
|
101
|
-
async list(options) {
|
|
102
|
-
this.ensureInitialized();
|
|
103
|
-
return this.adapter.listWorkflows(options);
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Delete a workflow.
|
|
107
|
-
*/
|
|
108
|
-
async delete(id) {
|
|
109
|
-
this.ensureInitialized();
|
|
110
|
-
return this.adapter.deleteWorkflow(id);
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Transition a workflow to a new state based on an event.
|
|
114
|
-
*/
|
|
115
|
-
async transition(id, event) {
|
|
116
|
-
this.ensureInitialized();
|
|
117
|
-
const workflow = await this.adapter.loadWorkflow(id);
|
|
118
|
-
if (!workflow) {
|
|
119
|
-
throw new ScriptError(`Workflow not found: ${id}`, ErrorCode.NOT_FOUND);
|
|
120
|
-
}
|
|
121
|
-
const newState = this.applyEvent(workflow, event);
|
|
122
|
-
newState.updatedAt = new Date();
|
|
123
|
-
await this.adapter.saveWorkflow(newState);
|
|
124
|
-
return newState;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Request approval for a workflow step.
|
|
128
|
-
* Returns a unique token that can be used to submit the approval.
|
|
129
|
-
*/
|
|
130
|
-
async requestApproval(workflowId, stepId) {
|
|
131
|
-
this.ensureInitialized();
|
|
132
|
-
const workflow = await this.adapter.loadWorkflow(workflowId);
|
|
133
|
-
if (!workflow) {
|
|
134
|
-
throw new ScriptError(`Workflow not found: ${workflowId}`, ErrorCode.NOT_FOUND);
|
|
135
|
-
}
|
|
136
|
-
const step = workflow.steps.find((s) => s.id === stepId);
|
|
137
|
-
if (!step) {
|
|
138
|
-
throw new ScriptError(`Step not found: ${stepId}`, ErrorCode.NOT_FOUND);
|
|
139
|
-
}
|
|
140
|
-
const token = this.generateToken();
|
|
141
|
-
const approval = {
|
|
142
|
-
id: this.generateId(),
|
|
143
|
-
workflowId,
|
|
144
|
-
stepId,
|
|
145
|
-
token,
|
|
146
|
-
status: 'pending',
|
|
147
|
-
requestedAt: new Date(),
|
|
148
|
-
expiresAt: new Date(Date.now() + this.approvalExpirationMs),
|
|
149
|
-
};
|
|
150
|
-
await this.adapter.saveApproval(approval);
|
|
151
|
-
// Update workflow status
|
|
152
|
-
await this.transition(workflowId, { type: 'APPROVAL_REQUEST', stepId });
|
|
153
|
-
return token;
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Submit an approval decision.
|
|
157
|
-
*/
|
|
158
|
-
async submitApproval(token, approved, respondedBy, comment) {
|
|
159
|
-
this.ensureInitialized();
|
|
160
|
-
const approval = await this.adapter.loadApproval(token);
|
|
161
|
-
if (!approval) {
|
|
162
|
-
throw new ScriptError(`Approval not found: ${token}`, ErrorCode.NOT_FOUND);
|
|
163
|
-
}
|
|
164
|
-
if (approval.status !== 'pending') {
|
|
165
|
-
throw new ScriptError(`Approval already processed: ${approval.status}`, ErrorCode.CONFLICT);
|
|
166
|
-
}
|
|
167
|
-
if (new Date() > approval.expiresAt) {
|
|
168
|
-
await this.adapter.updateApprovalStatus(token, 'expired');
|
|
169
|
-
throw new ScriptError('Approval has expired', ErrorCode.INVALID_STATE);
|
|
170
|
-
}
|
|
171
|
-
const newStatus = approved ? 'approved' : 'rejected';
|
|
172
|
-
await this.adapter.updateApprovalStatus(token, newStatus, respondedBy, comment);
|
|
173
|
-
// Update workflow
|
|
174
|
-
const event = approved
|
|
175
|
-
? { type: 'APPROVAL_GRANTED', stepId: approval.stepId, by: respondedBy }
|
|
176
|
-
: { type: 'APPROVAL_DENIED', stepId: approval.stepId, reason: comment };
|
|
177
|
-
await this.transition(approval.workflowId, event);
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Get pending approvals for a workflow.
|
|
181
|
-
*/
|
|
182
|
-
async getPendingApprovals(workflowId) {
|
|
183
|
-
this.ensureInitialized();
|
|
184
|
-
const approvals = await this.adapter.loadApprovalsByWorkflow(workflowId);
|
|
185
|
-
return approvals.filter((a) => a.status === 'pending');
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Get the current step for a workflow.
|
|
189
|
-
*/
|
|
190
|
-
getCurrentStep(workflow) {
|
|
191
|
-
if (workflow.currentStepIndex >= workflow.steps.length) {
|
|
192
|
-
return null;
|
|
193
|
-
}
|
|
194
|
-
return workflow.steps[workflow.currentStepIndex];
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
* Get the state of a specific step.
|
|
198
|
-
*/
|
|
199
|
-
getStepState(workflow, stepId) {
|
|
200
|
-
return workflow.stepStates.get(stepId) || null;
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* Check if a workflow can proceed to the next step.
|
|
204
|
-
*/
|
|
205
|
-
canProceed(workflow) {
|
|
206
|
-
if (workflow.status !== 'running')
|
|
207
|
-
return false;
|
|
208
|
-
if (workflow.currentStepIndex >= workflow.steps.length)
|
|
209
|
-
return false;
|
|
210
|
-
const currentStep = workflow.steps[workflow.currentStepIndex];
|
|
211
|
-
const stepState = workflow.stepStates.get(currentStep.id);
|
|
212
|
-
if (!stepState)
|
|
213
|
-
return false;
|
|
214
|
-
if (stepState.status !== 'pending' && stepState.status !== 'completed')
|
|
215
|
-
return false;
|
|
216
|
-
// Check dependencies
|
|
217
|
-
if (currentStep.dependsOn) {
|
|
218
|
-
for (const depId of currentStep.dependsOn) {
|
|
219
|
-
const depState = workflow.stepStates.get(depId);
|
|
220
|
-
if (!depState || depState.status !== 'completed') {
|
|
221
|
-
return false;
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
return true;
|
|
226
|
-
}
|
|
227
|
-
applyEvent(workflow, event) {
|
|
228
|
-
const newState = { ...workflow, stepStates: new Map(workflow.stepStates) };
|
|
229
|
-
switch (event.type) {
|
|
230
|
-
case 'START':
|
|
231
|
-
if (workflow.status !== 'pending') {
|
|
232
|
-
throw new ScriptError(`Cannot start workflow in status: ${workflow.status}`, ErrorCode.INVALID_STATE);
|
|
233
|
-
}
|
|
234
|
-
newState.status = 'running';
|
|
235
|
-
break;
|
|
236
|
-
case 'PAUSE':
|
|
237
|
-
if (workflow.status !== 'running') {
|
|
238
|
-
throw new ScriptError(`Cannot pause workflow in status: ${workflow.status}`, ErrorCode.INVALID_STATE);
|
|
239
|
-
}
|
|
240
|
-
newState.status = 'paused';
|
|
241
|
-
break;
|
|
242
|
-
case 'RESUME':
|
|
243
|
-
if (workflow.status !== 'paused') {
|
|
244
|
-
throw new ScriptError(`Cannot resume workflow in status: ${workflow.status}`, ErrorCode.INVALID_STATE);
|
|
245
|
-
}
|
|
246
|
-
newState.status = 'running';
|
|
247
|
-
break;
|
|
248
|
-
case 'CANCEL':
|
|
249
|
-
if (workflow.status === 'completed' || workflow.status === 'cancelled') {
|
|
250
|
-
throw new ScriptError(`Cannot cancel workflow in status: ${workflow.status}`, ErrorCode.INVALID_STATE);
|
|
251
|
-
}
|
|
252
|
-
newState.status = 'cancelled';
|
|
253
|
-
newState.completedAt = new Date();
|
|
254
|
-
break;
|
|
255
|
-
case 'STEP_START': {
|
|
256
|
-
const stepState = newState.stepStates.get(event.stepId);
|
|
257
|
-
if (stepState) {
|
|
258
|
-
stepState.status = 'running';
|
|
259
|
-
stepState.startedAt = new Date();
|
|
260
|
-
}
|
|
261
|
-
break;
|
|
262
|
-
}
|
|
263
|
-
case 'STEP_COMPLETE': {
|
|
264
|
-
const stepState = newState.stepStates.get(event.stepId);
|
|
265
|
-
if (stepState) {
|
|
266
|
-
stepState.status = 'completed';
|
|
267
|
-
stepState.completedAt = new Date();
|
|
268
|
-
stepState.output = event.output;
|
|
269
|
-
}
|
|
270
|
-
// Move to next step
|
|
271
|
-
newState.currentStepIndex++;
|
|
272
|
-
break;
|
|
273
|
-
}
|
|
274
|
-
case 'STEP_FAIL': {
|
|
275
|
-
const stepState = newState.stepStates.get(event.stepId);
|
|
276
|
-
if (stepState) {
|
|
277
|
-
stepState.status = 'failed';
|
|
278
|
-
stepState.completedAt = new Date();
|
|
279
|
-
stepState.error = event.error;
|
|
280
|
-
}
|
|
281
|
-
newState.status = 'failed';
|
|
282
|
-
newState.error = event.error;
|
|
283
|
-
newState.completedAt = new Date();
|
|
284
|
-
break;
|
|
285
|
-
}
|
|
286
|
-
case 'STEP_SKIP': {
|
|
287
|
-
const stepState = newState.stepStates.get(event.stepId);
|
|
288
|
-
if (stepState) {
|
|
289
|
-
stepState.status = 'skipped';
|
|
290
|
-
}
|
|
291
|
-
newState.currentStepIndex++;
|
|
292
|
-
break;
|
|
293
|
-
}
|
|
294
|
-
case 'APPROVAL_REQUEST':
|
|
295
|
-
newState.status = 'paused';
|
|
296
|
-
break;
|
|
297
|
-
case 'APPROVAL_GRANTED':
|
|
298
|
-
newState.status = 'running';
|
|
299
|
-
break;
|
|
300
|
-
case 'APPROVAL_DENIED':
|
|
301
|
-
newState.status = 'cancelled';
|
|
302
|
-
newState.error = event.reason || 'Approval denied';
|
|
303
|
-
newState.completedAt = new Date();
|
|
304
|
-
break;
|
|
305
|
-
case 'COMPLETE':
|
|
306
|
-
newState.status = 'completed';
|
|
307
|
-
newState.completedAt = new Date();
|
|
308
|
-
break;
|
|
309
|
-
case 'FAIL':
|
|
310
|
-
newState.status = 'failed';
|
|
311
|
-
newState.error = event.error;
|
|
312
|
-
newState.completedAt = new Date();
|
|
313
|
-
break;
|
|
314
|
-
default:
|
|
315
|
-
throw new ScriptError(`Unknown event type: ${event.type}`, ErrorCode.VALIDATION_ERROR);
|
|
316
|
-
}
|
|
317
|
-
return newState;
|
|
318
|
-
}
|
|
319
|
-
ensureInitialized() {
|
|
320
|
-
if (!this.initialized) {
|
|
321
|
-
throw new ScriptError('WorkflowStateMachine not initialized. Call initialize() first.', ErrorCode.INVALID_STATE);
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
generateId() {
|
|
325
|
-
return `wf-${Date.now()}-${randomBytes(4).toString('hex')}`;
|
|
326
|
-
}
|
|
327
|
-
generateToken() {
|
|
328
|
-
return randomBytes(32).toString('hex');
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
//# sourceMappingURL=workflow-state.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-state.js","sourceRoot":"","sources":["../../../../../../scripts/lib/state/workflow-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Telemetry and monitoring utilities.
|
|
3
|
-
*
|
|
4
|
-
* Provides comprehensive metrics collection and performance monitoring:
|
|
5
|
-
* - Script execution tracking
|
|
6
|
-
* - Error tracking and analytics
|
|
7
|
-
* - Cache performance metrics
|
|
8
|
-
* - Script usage statistics
|
|
9
|
-
* - Performance measurement
|
|
10
|
-
* - Persistent metric storage
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```typescript
|
|
14
|
-
* import { telemetry } from './telemetry.js'
|
|
15
|
-
*
|
|
16
|
-
* // Track script execution
|
|
17
|
-
* const timer = telemetry.startTimer('build')
|
|
18
|
-
* // ... build process ...
|
|
19
|
-
* timer.stop()
|
|
20
|
-
*
|
|
21
|
-
* // Track errors
|
|
22
|
-
* telemetry.trackError('build-failed', error)
|
|
23
|
-
*
|
|
24
|
-
* // Get metrics
|
|
25
|
-
* const metrics = await telemetry.getMetrics()
|
|
26
|
-
* console.log(`Cache hit rate: ${metrics.cacheHitRate}%`)
|
|
27
|
-
* ```
|
|
28
|
-
*
|
|
29
|
-
* @dependencies
|
|
30
|
-
* - node:fs/promises - File operations for metric persistence
|
|
31
|
-
* - node:path - Path resolution for .revealui directory
|
|
32
|
-
* - node:perf_hooks - Performance measurement
|
|
33
|
-
*/
|
|
34
|
-
export interface MetricEvent {
|
|
35
|
-
/** Event name */
|
|
36
|
-
name: string;
|
|
37
|
-
/** Event type */
|
|
38
|
-
type: 'counter' | 'timer' | 'gauge' | 'error';
|
|
39
|
-
/** Event value */
|
|
40
|
-
value: number;
|
|
41
|
-
/** Timestamp */
|
|
42
|
-
timestamp: number;
|
|
43
|
-
/** Additional metadata */
|
|
44
|
-
metadata?: Record<string, unknown>;
|
|
45
|
-
}
|
|
46
|
-
export interface TimerHandle {
|
|
47
|
-
/** Stop the timer and record duration */
|
|
48
|
-
stop: (metadata?: Record<string, unknown>) => number;
|
|
49
|
-
/** Get elapsed time without stopping */
|
|
50
|
-
elapsed: () => number;
|
|
51
|
-
}
|
|
52
|
-
export interface AggregatedMetrics {
|
|
53
|
-
/** Total events */
|
|
54
|
-
totalEvents: number;
|
|
55
|
-
/** Events by type */
|
|
56
|
-
eventsByType: Record<string, number>;
|
|
57
|
-
/** Script execution stats */
|
|
58
|
-
scripts: {
|
|
59
|
-
totalExecutions: number;
|
|
60
|
-
averageDuration: number;
|
|
61
|
-
slowest: Array<{
|
|
62
|
-
name: string;
|
|
63
|
-
duration: number;
|
|
64
|
-
}>;
|
|
65
|
-
fastest: Array<{
|
|
66
|
-
name: string;
|
|
67
|
-
duration: number;
|
|
68
|
-
}>;
|
|
69
|
-
failures: number;
|
|
70
|
-
};
|
|
71
|
-
/** Cache performance */
|
|
72
|
-
cache: {
|
|
73
|
-
hits: number;
|
|
74
|
-
misses: number;
|
|
75
|
-
hitRate: number;
|
|
76
|
-
totalSize: number;
|
|
77
|
-
formattedSize: string;
|
|
78
|
-
};
|
|
79
|
-
/** Error tracking */
|
|
80
|
-
errors: {
|
|
81
|
-
total: number;
|
|
82
|
-
byType: Record<string, number>;
|
|
83
|
-
recent: Array<{
|
|
84
|
-
name: string;
|
|
85
|
-
timestamp: number;
|
|
86
|
-
message?: string;
|
|
87
|
-
}>;
|
|
88
|
-
};
|
|
89
|
-
/** Performance metrics */
|
|
90
|
-
performance: {
|
|
91
|
-
averageScriptDuration: number;
|
|
92
|
-
totalDuration: number;
|
|
93
|
-
formattedTotalDuration: string;
|
|
94
|
-
};
|
|
95
|
-
/** Time period */
|
|
96
|
-
period: {
|
|
97
|
-
start: number;
|
|
98
|
-
end: number;
|
|
99
|
-
duration: number;
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
export interface TelemetryOptions {
|
|
103
|
-
/** Storage directory for metrics */
|
|
104
|
-
storageDir?: string;
|
|
105
|
-
/** Enable persistent storage */
|
|
106
|
-
persistent?: boolean;
|
|
107
|
-
/** Auto-flush interval in ms (0 = disabled) */
|
|
108
|
-
autoFlushInterval?: number;
|
|
109
|
-
/** Maximum events in memory before flush */
|
|
110
|
-
maxEventsInMemory?: number;
|
|
111
|
-
/** Enable verbose logging */
|
|
112
|
-
verbose?: boolean;
|
|
113
|
-
}
|
|
114
|
-
export declare class Telemetry {
|
|
115
|
-
private events;
|
|
116
|
-
private storageDir;
|
|
117
|
-
private persistent;
|
|
118
|
-
private autoFlushInterval;
|
|
119
|
-
private maxEventsInMemory;
|
|
120
|
-
private verbose;
|
|
121
|
-
private timers;
|
|
122
|
-
private flushTimer;
|
|
123
|
-
private projectRoot;
|
|
124
|
-
constructor(options?: TelemetryOptions);
|
|
125
|
-
/**
|
|
126
|
-
* Get project root directory.
|
|
127
|
-
*/
|
|
128
|
-
private getRoot;
|
|
129
|
-
/**
|
|
130
|
-
* Get storage directory path.
|
|
131
|
-
*/
|
|
132
|
-
private getStorageDir;
|
|
133
|
-
/**
|
|
134
|
-
* Get metrics file path for a given date.
|
|
135
|
-
*/
|
|
136
|
-
private getMetricsFilePath;
|
|
137
|
-
/**
|
|
138
|
-
* Start auto-flush timer.
|
|
139
|
-
*/
|
|
140
|
-
private startAutoFlush;
|
|
141
|
-
/**
|
|
142
|
-
* Record a metric event.
|
|
143
|
-
*/
|
|
144
|
-
private record;
|
|
145
|
-
/**
|
|
146
|
-
* Increment a counter.
|
|
147
|
-
*/
|
|
148
|
-
counter(name: string, value?: number, metadata?: Record<string, unknown>): void;
|
|
149
|
-
/**
|
|
150
|
-
* Start a timer.
|
|
151
|
-
*/
|
|
152
|
-
startTimer(name: string, metadata?: Record<string, unknown>): TimerHandle;
|
|
153
|
-
/**
|
|
154
|
-
* Record a gauge value.
|
|
155
|
-
*/
|
|
156
|
-
gauge(name: string, value: number, metadata?: Record<string, unknown>): void;
|
|
157
|
-
/**
|
|
158
|
-
* Track an error.
|
|
159
|
-
*/
|
|
160
|
-
trackError(name: string, error: Error | string, metadata?: Record<string, unknown>): void;
|
|
161
|
-
/**
|
|
162
|
-
* Flush events to persistent storage.
|
|
163
|
-
*/
|
|
164
|
-
flush(): Promise<void>;
|
|
165
|
-
/**
|
|
166
|
-
* Load events from storage.
|
|
167
|
-
*/
|
|
168
|
-
loadEvents(startDate?: Date, endDate?: Date): Promise<MetricEvent[]>;
|
|
169
|
-
/**
|
|
170
|
-
* Get aggregated metrics.
|
|
171
|
-
*/
|
|
172
|
-
getMetrics(startDate?: Date, endDate?: Date): Promise<AggregatedMetrics>;
|
|
173
|
-
/**
|
|
174
|
-
* Clear all metrics.
|
|
175
|
-
*/
|
|
176
|
-
clear(): void;
|
|
177
|
-
/**
|
|
178
|
-
* Stop telemetry and cleanup.
|
|
179
|
-
*/
|
|
180
|
-
stop(): Promise<void>;
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Get the global telemetry instance.
|
|
184
|
-
*/
|
|
185
|
-
export declare function getTelemetry(): Telemetry;
|
|
186
|
-
/**
|
|
187
|
-
* Global telemetry instance.
|
|
188
|
-
*/
|
|
189
|
-
export declare const telemetry: Telemetry;
|
|
190
|
-
/**
|
|
191
|
-
* Create a new telemetry instance.
|
|
192
|
-
*/
|
|
193
|
-
export declare function createTelemetry(options?: TelemetryOptions): Telemetry;
|
|
194
|
-
//# sourceMappingURL=telemetry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../../../../scripts/lib/telemetry.ts"],"names":[],"mappings":"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"}
|