@monoes/monomindcli 2.8.3 → 2.9.1
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/.claude/helpers/auto-memory-hook.mjs +0 -0
- package/.claude/helpers/handlers/route-handler.cjs +12 -0
- package/.claude/helpers/handlers/session-restore-handler.cjs +28 -7
- package/.claude/helpers/hook-handler.cjs +0 -0
- package/.claude/helpers/utils/micro-agents.cjs +22 -0
- package/.claude/skills/monodesign/scripts/live/sveltekit-adapter.mjs +11 -6
- package/.claude/skills/monodesign/scripts/live-inject.mjs +20 -7
- package/.claude/skills/monodesign/scripts/live-server.mjs +38 -2
- package/LICENSE +191 -0
- package/README.md +8 -6
- package/dist/src/browser/dashboard/server.d.ts +5 -0
- package/dist/src/browser/dashboard/server.d.ts.map +1 -1
- package/dist/src/browser/dashboard/server.js +59 -4
- package/dist/src/browser/dashboard/server.js.map +1 -1
- package/dist/src/browser/dashboard/ui.html +18 -8
- package/dist/src/browser/workflow/store.d.ts.map +1 -1
- package/dist/src/browser/workflow/store.js +3 -2
- package/dist/src/browser/workflow/store.js.map +1 -1
- package/dist/src/capabilities/cap-documents.d.ts.map +1 -1
- package/dist/src/capabilities/cap-documents.js +14 -9
- package/dist/src/capabilities/cap-documents.js.map +1 -1
- package/dist/src/commands/design-palette.d.ts +5 -0
- package/dist/src/commands/design-palette.d.ts.map +1 -1
- package/dist/src/commands/design-palette.js +8 -5
- package/dist/src/commands/design-palette.js.map +1 -1
- package/dist/src/commands/doctor.d.ts.map +1 -1
- package/dist/src/commands/doctor.js +22 -18
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/download-embeddings.d.ts +8 -0
- package/dist/src/commands/download-embeddings.d.ts.map +1 -0
- package/dist/src/commands/download-embeddings.js +34 -0
- package/dist/src/commands/download-embeddings.js.map +1 -0
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +14 -0
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +4 -0
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/init-wizard.js +1 -1
- package/dist/src/commands/init-wizard.js.map +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +48 -1
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/monograph.d.ts.map +1 -1
- package/dist/src/commands/monograph.js +35 -1
- package/dist/src/commands/monograph.js.map +1 -1
- package/dist/src/commands/org-observe.d.ts +10 -0
- package/dist/src/commands/org-observe.d.ts.map +1 -1
- package/dist/src/commands/org-observe.js +195 -31
- package/dist/src/commands/org-observe.js.map +1 -1
- package/dist/src/commands/org.d.ts +1 -0
- package/dist/src/commands/org.d.ts.map +1 -1
- package/dist/src/commands/org.js +139 -3
- package/dist/src/commands/org.js.map +1 -1
- package/dist/src/commands/route.d.ts +1 -9
- package/dist/src/commands/route.d.ts.map +1 -1
- package/dist/src/commands/route.js +42 -65
- package/dist/src/commands/route.js.map +1 -1
- package/dist/src/commands/security-cve.d.ts.map +1 -1
- package/dist/src/commands/security-cve.js +2 -1
- package/dist/src/commands/security-cve.js.map +1 -1
- package/dist/src/index.d.ts +0 -10
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -15
- package/dist/src/index.js.map +1 -1
- package/dist/src/init/copy-assets.d.ts +17 -0
- package/dist/src/init/copy-assets.d.ts.map +1 -0
- package/dist/src/init/copy-assets.js +271 -0
- package/dist/src/init/copy-assets.js.map +1 -0
- package/dist/src/init/executor.d.ts +2 -30
- package/dist/src/init/executor.d.ts.map +1 -1
- package/dist/src/init/executor.js +56 -2493
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/geminimd-generator.js +2 -2
- package/dist/src/init/helpers-generator.d.ts.map +1 -1
- package/dist/src/init/helpers-generator.js +9 -0
- package/dist/src/init/helpers-generator.js.map +1 -1
- package/dist/src/init/kimi-generator.js +3 -3
- package/dist/src/init/kimi-generator.js.map +1 -1
- package/dist/src/init/settings-generator.d.ts.map +1 -1
- package/dist/src/init/settings-generator.js +0 -4
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/init/shared.d.ts +112 -0
- package/dist/src/init/shared.d.ts.map +1 -0
- package/dist/src/init/shared.js +475 -0
- package/dist/src/init/shared.js.map +1 -0
- package/dist/src/init/statusline-generator.d.ts.map +1 -1
- package/dist/src/init/statusline-generator.js +37 -0
- package/dist/src/init/statusline-generator.js.map +1 -1
- package/dist/src/init/types.d.ts +1 -1
- package/dist/src/init/types.d.ts.map +1 -1
- package/dist/src/init/upgrade.d.ts +34 -0
- package/dist/src/init/upgrade.d.ts.map +1 -0
- package/dist/src/init/upgrade.js +477 -0
- package/dist/src/init/upgrade.js.map +1 -0
- package/dist/src/init/write-antigravity.d.ts +13 -0
- package/dist/src/init/write-antigravity.d.ts.map +1 -0
- package/dist/src/init/write-antigravity.js +117 -0
- package/dist/src/init/write-antigravity.js.map +1 -0
- package/dist/src/init/write-capabilities.d.ts +9 -0
- package/dist/src/init/write-capabilities.d.ts.map +1 -0
- package/dist/src/init/write-capabilities.js +392 -0
- package/dist/src/init/write-capabilities.js.map +1 -0
- package/dist/src/init/write-claude.d.ts +25 -0
- package/dist/src/init/write-claude.d.ts.map +1 -0
- package/dist/src/init/write-claude.js +279 -0
- package/dist/src/init/write-claude.js.map +1 -0
- package/dist/src/init/write-kimicode.d.ts +19 -0
- package/dist/src/init/write-kimicode.d.ts.map +1 -0
- package/dist/src/init/write-kimicode.js +223 -0
- package/dist/src/init/write-kimicode.js.map +1 -0
- package/dist/src/init/write-opencode.d.ts +14 -0
- package/dist/src/init/write-opencode.d.ts.map +1 -0
- package/dist/src/init/write-opencode.js +130 -0
- package/dist/src/init/write-opencode.js.map +1 -0
- package/dist/src/init/write-runtime-config.d.ts +14 -0
- package/dist/src/init/write-runtime-config.d.ts.map +1 -0
- package/dist/src/init/write-runtime-config.js +214 -0
- package/dist/src/init/write-runtime-config.js.map +1 -0
- package/dist/src/init/write-sample-org.d.ts +9 -0
- package/dist/src/init/write-sample-org.d.ts.map +1 -0
- package/dist/src/init/write-sample-org.js +39 -0
- package/dist/src/init/write-sample-org.js.map +1 -0
- package/dist/src/knowledge/eval/golden-set.js +1 -1
- package/dist/src/knowledge/eval/golden-set.js.map +1 -1
- package/dist/src/mcp-client.d.ts.map +1 -1
- package/dist/src/mcp-client.js +7 -3
- package/dist/src/mcp-client.js.map +1 -1
- package/dist/src/mcp-tools/analyze-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/analyze-tools.js +2 -25
- package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
- package/dist/src/mcp-tools/auto-install.d.ts.map +1 -1
- package/dist/src/mcp-tools/auto-install.js +2 -1
- package/dist/src/mcp-tools/auto-install.js.map +1 -1
- package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-routing.js +26 -0
- package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
- package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/memory-tools.js +2 -37
- package/dist/src/mcp-tools/memory-tools.js.map +1 -1
- package/dist/src/mcp-tools/monodesign-tools.d.ts +19 -0
- package/dist/src/mcp-tools/monodesign-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/monodesign-tools.js +233 -0
- package/dist/src/mcp-tools/monodesign-tools.js.map +1 -0
- package/dist/src/mcp-tools/monograph/agent-history-tools.d.ts +5 -0
- package/dist/src/mcp-tools/monograph/agent-history-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/monograph/agent-history-tools.js +177 -0
- package/dist/src/mcp-tools/monograph/agent-history-tools.js.map +1 -0
- package/dist/src/mcp-tools/monograph/build-tools.d.ts +9 -0
- package/dist/src/mcp-tools/monograph/build-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/monograph/build-tools.js +299 -0
- package/dist/src/mcp-tools/monograph/build-tools.js.map +1 -0
- package/dist/src/mcp-tools/monograph/group-tools.d.ts +10 -0
- package/dist/src/mcp-tools/monograph/group-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/monograph/group-tools.js +225 -0
- package/dist/src/mcp-tools/monograph/group-tools.js.map +1 -0
- package/dist/src/mcp-tools/monograph/health-tools.d.ts +6 -0
- package/dist/src/mcp-tools/monograph/health-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/monograph/health-tools.js +113 -0
- package/dist/src/mcp-tools/monograph/health-tools.js.map +1 -0
- package/dist/src/mcp-tools/monograph/impact-tools.d.ts +9 -0
- package/dist/src/mcp-tools/monograph/impact-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/monograph/impact-tools.js +532 -0
- package/dist/src/mcp-tools/monograph/impact-tools.js.map +1 -0
- package/dist/src/mcp-tools/monograph/index.d.ts +10 -0
- package/dist/src/mcp-tools/monograph/index.d.ts.map +1 -0
- package/dist/src/mcp-tools/monograph/index.js +73 -0
- package/dist/src/mcp-tools/monograph/index.js.map +1 -0
- package/dist/src/mcp-tools/monograph/query-tools.d.ts +11 -0
- package/dist/src/mcp-tools/monograph/query-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/monograph/query-tools.js +500 -0
- package/dist/src/mcp-tools/monograph/query-tools.js.map +1 -0
- package/dist/src/mcp-tools/monograph/shared.d.ts +64 -0
- package/dist/src/mcp-tools/monograph/shared.d.ts.map +1 -0
- package/dist/src/mcp-tools/monograph/shared.js +215 -0
- package/dist/src/mcp-tools/monograph/shared.js.map +1 -0
- package/dist/src/mcp-tools/monograph/visualize-tools.d.ts +10 -0
- package/dist/src/mcp-tools/monograph/visualize-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/monograph/visualize-tools.js +382 -0
- package/dist/src/mcp-tools/monograph/visualize-tools.js.map +1 -0
- package/dist/src/mcp-tools/monograph-tools.d.ts +4 -23
- package/dist/src/mcp-tools/monograph-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph-tools.js +4 -2439
- package/dist/src/mcp-tools/monograph-tools.js.map +1 -1
- package/dist/src/mcp-tools/monomind-tools.d.ts +8 -0
- package/dist/src/mcp-tools/monomind-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monomind-tools.js +13 -1
- package/dist/src/mcp-tools/monomind-tools.js.map +1 -1
- package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts.map +1 -1
- package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.js +31 -2
- package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.js.map +1 -1
- package/dist/src/mcp-tools/terminal-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/terminal-tools.js +31 -1
- package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
- package/dist/src/mcp-tools/types.d.ts +8 -27
- package/dist/src/mcp-tools/types.d.ts.map +1 -1
- package/dist/src/mcp-tools/types.js +9 -91
- package/dist/src/mcp-tools/types.js.map +1 -1
- package/dist/src/memory/file-permissions.d.ts +15 -0
- package/dist/src/memory/file-permissions.d.ts.map +1 -0
- package/dist/src/memory/file-permissions.js +25 -0
- package/dist/src/memory/file-permissions.js.map +1 -0
- package/dist/src/memory/memory-bridge.d.ts.map +1 -1
- package/dist/src/memory/memory-bridge.js +94 -34
- package/dist/src/memory/memory-bridge.js.map +1 -1
- package/dist/src/memory/memory-crud.d.ts.map +1 -1
- package/dist/src/memory/memory-crud.js +298 -275
- package/dist/src/memory/memory-crud.js.map +1 -1
- package/dist/src/memory/memory-initializer.d.ts +2 -4
- package/dist/src/memory/memory-initializer.d.ts.map +1 -1
- package/dist/src/memory/memory-initializer.js +53 -76
- package/dist/src/memory/memory-initializer.js.map +1 -1
- package/dist/src/memory/memory-migrations.d.ts +1 -14
- package/dist/src/memory/memory-migrations.d.ts.map +1 -1
- package/dist/src/memory/memory-migrations.js +52 -105
- package/dist/src/memory/memory-migrations.js.map +1 -1
- package/dist/src/memory/sona-optimizer.d.ts +1 -1
- package/dist/src/memory/sona-optimizer.js +1 -1
- package/dist/src/monovector/index.d.ts +16 -19
- package/dist/src/monovector/index.d.ts.map +1 -1
- package/dist/src/monovector/index.js +50 -8
- package/dist/src/monovector/index.js.map +1 -1
- package/dist/src/orgrt/approvals.d.ts +16 -0
- package/dist/src/orgrt/approvals.d.ts.map +1 -0
- package/dist/src/orgrt/approvals.js +72 -0
- package/dist/src/orgrt/approvals.js.map +1 -0
- package/dist/src/orgrt/bus.d.ts.map +1 -1
- package/dist/src/orgrt/bus.js +21 -0
- package/dist/src/orgrt/bus.js.map +1 -1
- package/dist/src/orgrt/checkpoint-ops.d.ts +19 -0
- package/dist/src/orgrt/checkpoint-ops.d.ts.map +1 -0
- package/dist/src/orgrt/checkpoint-ops.js +219 -0
- package/dist/src/orgrt/checkpoint-ops.js.map +1 -0
- package/dist/src/orgrt/checkpoint.d.ts +33 -1
- package/dist/src/orgrt/checkpoint.d.ts.map +1 -1
- package/dist/src/orgrt/checkpoint.js +50 -6
- package/dist/src/orgrt/checkpoint.js.map +1 -1
- package/dist/src/orgrt/cross-org.d.ts +32 -0
- package/dist/src/orgrt/cross-org.d.ts.map +1 -0
- package/dist/src/orgrt/cross-org.js +256 -0
- package/dist/src/orgrt/cross-org.js.map +1 -0
- package/dist/src/orgrt/daemon.d.ts +131 -157
- package/dist/src/orgrt/daemon.d.ts.map +1 -1
- package/dist/src/orgrt/daemon.js +356 -966
- package/dist/src/orgrt/daemon.js.map +1 -1
- package/dist/src/orgrt/decisions.d.ts +33 -0
- package/dist/src/orgrt/decisions.d.ts.map +1 -0
- package/dist/src/orgrt/decisions.js +169 -0
- package/dist/src/orgrt/decisions.js.map +1 -0
- package/dist/src/orgrt/kimicode-runner.d.ts.map +1 -1
- package/dist/src/orgrt/kimicode-runner.js +5 -1
- package/dist/src/orgrt/kimicode-runner.js.map +1 -1
- package/dist/src/orgrt/opencode-runner.d.ts.map +1 -1
- package/dist/src/orgrt/opencode-runner.js +10 -2
- package/dist/src/orgrt/opencode-runner.js.map +1 -1
- package/dist/src/orgrt/org-memory.d.ts +45 -0
- package/dist/src/orgrt/org-memory.d.ts.map +1 -0
- package/dist/src/orgrt/org-memory.js +220 -0
- package/dist/src/orgrt/org-memory.js.map +1 -0
- package/dist/src/orgrt/policy.d.ts +4 -0
- package/dist/src/orgrt/policy.d.ts.map +1 -1
- package/dist/src/orgrt/policy.js +13 -1
- package/dist/src/orgrt/policy.js.map +1 -1
- package/dist/src/orgrt/prechecks.d.ts +15 -0
- package/dist/src/orgrt/prechecks.d.ts.map +1 -0
- package/dist/src/orgrt/prechecks.js +21 -0
- package/dist/src/orgrt/prechecks.js.map +1 -0
- package/dist/src/orgrt/questions.d.ts +39 -0
- package/dist/src/orgrt/questions.d.ts.map +1 -0
- package/dist/src/orgrt/questions.js +135 -0
- package/dist/src/orgrt/questions.js.map +1 -0
- package/dist/src/orgrt/remote.d.ts +25 -0
- package/dist/src/orgrt/remote.d.ts.map +1 -0
- package/dist/src/orgrt/remote.js +73 -0
- package/dist/src/orgrt/remote.js.map +1 -0
- package/dist/src/orgrt/scheduler-integration.d.ts +19 -0
- package/dist/src/orgrt/scheduler-integration.d.ts.map +1 -0
- package/dist/src/orgrt/scheduler-integration.js +90 -0
- package/dist/src/orgrt/scheduler-integration.js.map +1 -0
- package/dist/src/orgrt/server.d.ts.map +1 -1
- package/dist/src/orgrt/server.js +70 -2
- package/dist/src/orgrt/server.js.map +1 -1
- package/dist/src/orgrt/session.d.ts +30 -1
- package/dist/src/orgrt/session.d.ts.map +1 -1
- package/dist/src/orgrt/session.js +184 -53
- package/dist/src/orgrt/session.js.map +1 -1
- package/dist/src/orgrt/state-detector.d.ts +19 -0
- package/dist/src/orgrt/state-detector.d.ts.map +1 -0
- package/dist/src/orgrt/state-detector.js +59 -0
- package/dist/src/orgrt/state-detector.js.map +1 -0
- package/dist/src/orgrt/task-dag.d.ts +27 -0
- package/dist/src/orgrt/task-dag.d.ts.map +1 -0
- package/dist/src/orgrt/task-dag.js +100 -0
- package/dist/src/orgrt/task-dag.js.map +1 -0
- package/dist/src/orgrt/tool-fence.d.ts +7 -4
- package/dist/src/orgrt/tool-fence.d.ts.map +1 -1
- package/dist/src/orgrt/tool-fence.js +47 -6
- package/dist/src/orgrt/tool-fence.js.map +1 -1
- package/dist/src/orgrt/types.d.ts +57 -2
- package/dist/src/orgrt/types.d.ts.map +1 -1
- package/dist/src/orgrt/types.js +34 -3
- package/dist/src/orgrt/types.js.map +1 -1
- package/dist/src/routing/model-download.d.ts +49 -0
- package/dist/src/routing/model-download.d.ts.map +1 -0
- package/dist/src/routing/model-download.js +106 -0
- package/dist/src/routing/model-download.js.map +1 -0
- package/dist/src/services/crash-reporter.d.ts +5 -0
- package/dist/src/services/crash-reporter.d.ts.map +1 -1
- package/dist/src/services/crash-reporter.js +49 -0
- package/dist/src/services/crash-reporter.js.map +1 -1
- package/dist/src/transfer/anonymization/index.d.ts +18 -15
- package/dist/src/transfer/anonymization/index.d.ts.map +1 -1
- package/dist/src/transfer/anonymization/index.js +7 -119
- package/dist/src/transfer/anonymization/index.js.map +1 -1
- package/dist/src/ui/dashboard.html +606 -7
- package/dist/src/ui/orgs.html +7 -1
- package/dist/src/ui/routes-monograph.mjs +6 -0
- package/dist/src/ui/server.mjs +327 -7
- package/dist/src/update/checker.d.ts.map +1 -1
- package/dist/src/update/checker.js +2 -1
- package/dist/src/update/checker.js.map +1 -1
- package/dist/src/update/executor.d.ts.map +1 -1
- package/dist/src/update/executor.js +7 -3
- package/dist/src/update/executor.js.map +1 -1
- package/dist/src/update/index.d.ts +0 -1
- package/dist/src/update/index.d.ts.map +1 -1
- package/dist/src/update/index.js +5 -24
- package/dist/src/update/index.js.map +1 -1
- package/dist/src/utils/db-mutex.d.ts +11 -0
- package/dist/src/utils/db-mutex.d.ts.map +1 -0
- package/dist/src/utils/db-mutex.js +23 -0
- package/dist/src/utils/db-mutex.js.map +1 -0
- package/dist/src/utils/input-guards.d.ts +23 -0
- package/dist/src/utils/input-guards.d.ts.map +1 -1
- package/dist/src/utils/input-guards.js +72 -0
- package/dist/src/utils/input-guards.js.map +1 -1
- package/dist/src/utils/npm-command.d.ts +10 -0
- package/dist/src/utils/npm-command.d.ts.map +1 -0
- package/dist/src/utils/npm-command.js +12 -0
- package/dist/src/utils/npm-command.js.map +1 -0
- package/dist/src/utils/paths.d.ts +28 -0
- package/dist/src/utils/paths.d.ts.map +1 -0
- package/dist/src/utils/paths.js +108 -0
- package/dist/src/utils/paths.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +17 -17
- package/scripts/download-embedding-model.mjs +97 -0
- package/scripts/publish.sh +0 -0
- package/scripts/sync-claude-assets.sh +0 -0
- package/dist/src/production/circuit-breaker.d.ts +0 -121
- package/dist/src/production/circuit-breaker.d.ts.map +0 -1
- package/dist/src/production/circuit-breaker.js +0 -262
- package/dist/src/production/circuit-breaker.js.map +0 -1
- package/dist/src/production/error-handler.d.ts +0 -119
- package/dist/src/production/error-handler.d.ts.map +0 -1
- package/dist/src/production/error-handler.js +0 -324
- package/dist/src/production/error-handler.js.map +0 -1
- package/dist/src/production/index.d.ts +0 -6
- package/dist/src/production/index.d.ts.map +0 -1
- package/dist/src/production/index.js +0 -6
- package/dist/src/production/index.js.map +0 -1
- package/dist/src/production/monitoring.d.ts +0 -181
- package/dist/src/production/monitoring.d.ts.map +0 -1
- package/dist/src/production/monitoring.js +0 -375
- package/dist/src/production/monitoring.js.map +0 -1
- package/dist/src/production/rate-limiter.d.ts +0 -125
- package/dist/src/production/rate-limiter.d.ts.map +0 -1
- package/dist/src/production/rate-limiter.js +0 -218
- package/dist/src/production/rate-limiter.js.map +0 -1
- package/dist/src/production/retry.d.ts +0 -48
- package/dist/src/production/retry.d.ts.map +0 -1
- package/dist/src/production/retry.js +0 -189
- package/dist/src/production/retry.js.map +0 -1
- package/dist/src/transfer/types.d.ts +0 -245
- package/dist/src/transfer/types.d.ts.map +0 -1
- package/dist/src/transfer/types.js +0 -6
- package/dist/src/transfer/types.js.map +0 -1
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Production Error Handling
|
|
3
|
-
*
|
|
4
|
-
* Provides standardized error handling with:
|
|
5
|
-
* - Error classification
|
|
6
|
-
* - Sanitization (no sensitive data leak)
|
|
7
|
-
* - Structured error responses
|
|
8
|
-
* - Error aggregation and reporting
|
|
9
|
-
*
|
|
10
|
-
* @module @monomind/cli/production/error-handler
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* Error category derived from message-pattern classification.
|
|
14
|
-
*/
|
|
15
|
-
export type ErrorCategory = 'validation' | 'authentication' | 'authorization' | 'not_found' | 'rate_limit' | 'timeout' | 'circuit_open' | 'external_service' | 'internal' | 'unknown';
|
|
16
|
-
/**
|
|
17
|
-
* Configuration for the {@link ErrorHandler}.
|
|
18
|
-
*/
|
|
19
|
-
export interface ErrorHandlerConfig {
|
|
20
|
-
/** Include stack traces in structured errors (default: off in production). */
|
|
21
|
-
includeStack: boolean;
|
|
22
|
-
/** Redact sensitive keys/values from context and messages. */
|
|
23
|
-
sanitize: boolean;
|
|
24
|
-
/** Whether errors should be forwarded to monitoring. */
|
|
25
|
-
reportToMonitoring: boolean;
|
|
26
|
-
/** Per-category cap before responses are rate-limited. */
|
|
27
|
-
maxErrorsPerMinute: number;
|
|
28
|
-
/** Optional per-category overrides. */
|
|
29
|
-
errorCategories: Record<string, unknown>;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Contextual metadata attached to a handled error.
|
|
33
|
-
*/
|
|
34
|
-
export interface ErrorContext {
|
|
35
|
-
/** The input that triggered the error (sanitized when handled). */
|
|
36
|
-
input?: unknown;
|
|
37
|
-
/** Arbitrary additional context fields. */
|
|
38
|
-
[key: string]: unknown;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* The error payload embedded in a structured error response.
|
|
42
|
-
*/
|
|
43
|
-
export interface StructuredErrorPayload {
|
|
44
|
-
code: string;
|
|
45
|
-
message: string;
|
|
46
|
-
category: ErrorCategory;
|
|
47
|
-
retryable: boolean;
|
|
48
|
-
retryAfterMs?: number;
|
|
49
|
-
details?: {
|
|
50
|
-
stack: string;
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* A standardized, structured error response.
|
|
55
|
-
*/
|
|
56
|
-
export interface StructuredError {
|
|
57
|
-
success: false;
|
|
58
|
-
error: StructuredErrorPayload;
|
|
59
|
-
context: ErrorContext;
|
|
60
|
-
timestamp: string;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Aggregated error statistics returned by {@link ErrorHandler.getStats}.
|
|
64
|
-
*/
|
|
65
|
-
export interface ErrorStats {
|
|
66
|
-
totalErrors: number;
|
|
67
|
-
byCategory: Record<string, number>;
|
|
68
|
-
recentErrors: StructuredError[];
|
|
69
|
-
/** Errors per minute over the last 5 minutes. */
|
|
70
|
-
errorRate: number;
|
|
71
|
-
}
|
|
72
|
-
export declare class ErrorHandler {
|
|
73
|
-
private config;
|
|
74
|
-
private errorCounts;
|
|
75
|
-
private errorLog;
|
|
76
|
-
private maxLogSize;
|
|
77
|
-
constructor(config?: Partial<ErrorHandlerConfig>);
|
|
78
|
-
/**
|
|
79
|
-
* Classify an error into a category
|
|
80
|
-
*/
|
|
81
|
-
classifyError(error: Error | string): ErrorCategory;
|
|
82
|
-
/**
|
|
83
|
-
* Check if an error category is retryable
|
|
84
|
-
*/
|
|
85
|
-
isRetryable(category: ErrorCategory): boolean;
|
|
86
|
-
/**
|
|
87
|
-
* Sanitize input to remove sensitive data
|
|
88
|
-
* Cycle-safe and depth-bounded — circular references and deeply nested objects
|
|
89
|
-
* will not cause stack overflow.
|
|
90
|
-
*/
|
|
91
|
-
sanitize(input: unknown, _seen?: WeakSet<object>, _depth?: number): unknown;
|
|
92
|
-
/**
|
|
93
|
-
* Handle an error and return a structured response
|
|
94
|
-
*/
|
|
95
|
-
handle(error: Error | string, context?: ErrorContext): StructuredError;
|
|
96
|
-
/**
|
|
97
|
-
* Wrap a handler with error handling
|
|
98
|
-
*/
|
|
99
|
-
wrap<TArgs extends unknown[], TResult>(handler: (...args: TArgs) => Promise<TResult>, context?: ErrorContext): (...args: TArgs) => Promise<TResult | StructuredError>;
|
|
100
|
-
/**
|
|
101
|
-
* Get error statistics
|
|
102
|
-
*/
|
|
103
|
-
getStats(): ErrorStats;
|
|
104
|
-
/**
|
|
105
|
-
* Clear error log
|
|
106
|
-
*/
|
|
107
|
-
clearLog(): void;
|
|
108
|
-
private getErrorCode;
|
|
109
|
-
private getRetryDelay;
|
|
110
|
-
private sanitizeMessage;
|
|
111
|
-
private trackError;
|
|
112
|
-
private logError;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Wrap a handler with error handling (convenience function)
|
|
116
|
-
*/
|
|
117
|
-
export declare function withErrorHandling<TArgs extends unknown[], TResult>(handler: (...args: TArgs) => Promise<TResult>, context?: ErrorContext): (...args: TArgs) => Promise<TResult | StructuredError>;
|
|
118
|
-
export default ErrorHandler;
|
|
119
|
-
//# sourceMappingURL=error-handler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../../src/production/error-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,324 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Production Error Handling
|
|
3
|
-
*
|
|
4
|
-
* Provides standardized error handling with:
|
|
5
|
-
* - Error classification
|
|
6
|
-
* - Sanitization (no sensitive data leak)
|
|
7
|
-
* - Structured error responses
|
|
8
|
-
* - Error aggregation and reporting
|
|
9
|
-
*
|
|
10
|
-
* @module @monomind/cli/production/error-handler
|
|
11
|
-
*/
|
|
12
|
-
// ============================================================================
|
|
13
|
-
// Error Classification
|
|
14
|
-
// ============================================================================
|
|
15
|
-
const ERROR_PATTERNS = {
|
|
16
|
-
validation: [
|
|
17
|
-
/invalid/i,
|
|
18
|
-
/required/i,
|
|
19
|
-
/missing/i,
|
|
20
|
-
/must be/i,
|
|
21
|
-
/cannot be/i,
|
|
22
|
-
/validation/i,
|
|
23
|
-
],
|
|
24
|
-
authentication: [
|
|
25
|
-
/unauthorized/i,
|
|
26
|
-
/unauthenticated/i,
|
|
27
|
-
/not authenticated/i,
|
|
28
|
-
/invalid token/i,
|
|
29
|
-
/expired token/i,
|
|
30
|
-
],
|
|
31
|
-
authorization: [
|
|
32
|
-
/forbidden/i,
|
|
33
|
-
/permission denied/i,
|
|
34
|
-
/access denied/i,
|
|
35
|
-
/not allowed/i,
|
|
36
|
-
],
|
|
37
|
-
not_found: [
|
|
38
|
-
/not found/i,
|
|
39
|
-
/does not exist/i,
|
|
40
|
-
/no such/i,
|
|
41
|
-
/unknown/i,
|
|
42
|
-
],
|
|
43
|
-
rate_limit: [
|
|
44
|
-
/rate limit/i,
|
|
45
|
-
/too many requests/i,
|
|
46
|
-
/throttled/i,
|
|
47
|
-
],
|
|
48
|
-
timeout: [
|
|
49
|
-
/timeout/i,
|
|
50
|
-
/timed out/i,
|
|
51
|
-
/deadline/i,
|
|
52
|
-
],
|
|
53
|
-
circuit_open: [
|
|
54
|
-
/circuit open/i,
|
|
55
|
-
/service unavailable/i,
|
|
56
|
-
/temporarily unavailable/i,
|
|
57
|
-
],
|
|
58
|
-
external_service: [
|
|
59
|
-
/ECONNREFUSED/i,
|
|
60
|
-
/ENOTFOUND/i,
|
|
61
|
-
/ETIMEDOUT/i,
|
|
62
|
-
/network/i,
|
|
63
|
-
/connection/i,
|
|
64
|
-
],
|
|
65
|
-
internal: [
|
|
66
|
-
/internal/i,
|
|
67
|
-
/unexpected/i,
|
|
68
|
-
],
|
|
69
|
-
unknown: [],
|
|
70
|
-
};
|
|
71
|
-
const RETRYABLE_CATEGORIES = [
|
|
72
|
-
'timeout',
|
|
73
|
-
'external_service',
|
|
74
|
-
'rate_limit',
|
|
75
|
-
'circuit_open',
|
|
76
|
-
];
|
|
77
|
-
// Sensitive keys to sanitize
|
|
78
|
-
const SENSITIVE_KEYS = [
|
|
79
|
-
'password',
|
|
80
|
-
'token',
|
|
81
|
-
'api_key',
|
|
82
|
-
'apiKey',
|
|
83
|
-
'secret',
|
|
84
|
-
'authorization',
|
|
85
|
-
'bearer',
|
|
86
|
-
'credential',
|
|
87
|
-
'private',
|
|
88
|
-
];
|
|
89
|
-
// ============================================================================
|
|
90
|
-
// Error Handler
|
|
91
|
-
// ============================================================================
|
|
92
|
-
const DEFAULT_CONFIG = {
|
|
93
|
-
includeStack: process.env.NODE_ENV !== 'production',
|
|
94
|
-
sanitize: true,
|
|
95
|
-
reportToMonitoring: true,
|
|
96
|
-
maxErrorsPerMinute: 100,
|
|
97
|
-
errorCategories: {},
|
|
98
|
-
};
|
|
99
|
-
export class ErrorHandler {
|
|
100
|
-
config;
|
|
101
|
-
errorCounts = new Map();
|
|
102
|
-
errorLog = [];
|
|
103
|
-
maxLogSize = 1000;
|
|
104
|
-
constructor(config = {}) {
|
|
105
|
-
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Classify an error into a category
|
|
109
|
-
*/
|
|
110
|
-
classifyError(error) {
|
|
111
|
-
const message = typeof error === 'string' ? error : error.message;
|
|
112
|
-
for (const [category, patterns] of Object.entries(ERROR_PATTERNS)) {
|
|
113
|
-
for (const pattern of patterns) {
|
|
114
|
-
if (pattern.test(message)) {
|
|
115
|
-
return category;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
return 'unknown';
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Check if an error category is retryable
|
|
123
|
-
*/
|
|
124
|
-
isRetryable(category) {
|
|
125
|
-
return RETRYABLE_CATEGORIES.includes(category);
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Sanitize input to remove sensitive data
|
|
129
|
-
* Cycle-safe and depth-bounded — circular references and deeply nested objects
|
|
130
|
-
* will not cause stack overflow.
|
|
131
|
-
*/
|
|
132
|
-
sanitize(input, _seen = new WeakSet(), _depth = 0) {
|
|
133
|
-
if (!this.config.sanitize)
|
|
134
|
-
return input;
|
|
135
|
-
if (_depth > 20)
|
|
136
|
-
return { '[MAX_DEPTH]': true };
|
|
137
|
-
// Primitives and null cannot be stored in a WeakSet — return them as-is.
|
|
138
|
-
if (input === null || typeof input !== 'object')
|
|
139
|
-
return input;
|
|
140
|
-
if (_seen.has(input))
|
|
141
|
-
return { '[CIRCULAR]': true };
|
|
142
|
-
_seen.add(input);
|
|
143
|
-
const sanitized = {};
|
|
144
|
-
for (const [key, value] of Object.entries(input)) {
|
|
145
|
-
const lowerKey = key.toLowerCase();
|
|
146
|
-
const isSensitive = SENSITIVE_KEYS.some(sk => lowerKey.includes(sk.toLowerCase()));
|
|
147
|
-
if (isSensitive) {
|
|
148
|
-
sanitized[key] = '[REDACTED]';
|
|
149
|
-
}
|
|
150
|
-
else if (typeof value === 'object' && value !== null) {
|
|
151
|
-
sanitized[key] = this.sanitize(value, _seen, _depth + 1);
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
sanitized[key] = value;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return sanitized;
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Handle an error and return a structured response
|
|
161
|
-
*/
|
|
162
|
-
handle(error, context = {}) {
|
|
163
|
-
const message = typeof error === 'string' ? error : error.message;
|
|
164
|
-
const category = this.classifyError(error);
|
|
165
|
-
const retryable = this.isRetryable(category);
|
|
166
|
-
const now = new Date().toISOString();
|
|
167
|
-
// Track error counts for rate limiting and enforce cap
|
|
168
|
-
this.trackError(category);
|
|
169
|
-
const rateEntry = this.errorCounts.get(category);
|
|
170
|
-
if (rateEntry && rateEntry.count > this.config.maxErrorsPerMinute) {
|
|
171
|
-
return {
|
|
172
|
-
success: false,
|
|
173
|
-
error: {
|
|
174
|
-
code: 'ERR_RATE_LIMITED',
|
|
175
|
-
message: 'Error rate limit exceeded',
|
|
176
|
-
category,
|
|
177
|
-
retryable: false,
|
|
178
|
-
},
|
|
179
|
-
context,
|
|
180
|
-
timestamp: new Date().toISOString(),
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
// Build structured error
|
|
184
|
-
const structured = {
|
|
185
|
-
success: false,
|
|
186
|
-
error: {
|
|
187
|
-
code: this.getErrorCode(category),
|
|
188
|
-
message: this.sanitizeMessage(message),
|
|
189
|
-
category,
|
|
190
|
-
retryable,
|
|
191
|
-
retryAfterMs: retryable ? this.getRetryDelay(category) : undefined,
|
|
192
|
-
},
|
|
193
|
-
context: context.input
|
|
194
|
-
? { ...context, input: this.sanitize(context.input) }
|
|
195
|
-
: context,
|
|
196
|
-
timestamp: now,
|
|
197
|
-
};
|
|
198
|
-
// Include stack trace in non-production
|
|
199
|
-
if (this.config.includeStack && error instanceof Error && error.stack) {
|
|
200
|
-
structured.error.details = { stack: error.stack };
|
|
201
|
-
}
|
|
202
|
-
// Log error
|
|
203
|
-
this.logError(structured);
|
|
204
|
-
return structured;
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
207
|
-
* Wrap a handler with error handling
|
|
208
|
-
*/
|
|
209
|
-
wrap(handler, context) {
|
|
210
|
-
return (async (...args) => {
|
|
211
|
-
try {
|
|
212
|
-
return await handler(...args);
|
|
213
|
-
}
|
|
214
|
-
catch (error) {
|
|
215
|
-
return this.handle(error, {
|
|
216
|
-
...context,
|
|
217
|
-
input: args[0],
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
});
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Get error statistics
|
|
224
|
-
*/
|
|
225
|
-
getStats() {
|
|
226
|
-
const byCategory = {};
|
|
227
|
-
for (const error of this.errorLog) {
|
|
228
|
-
const cat = error.error.category;
|
|
229
|
-
byCategory[cat] = (byCategory[cat] || 0) + 1;
|
|
230
|
-
}
|
|
231
|
-
// Calculate error rate (errors per minute in last 5 minutes)
|
|
232
|
-
const fiveMinutesAgo = Date.now() - 5 * 60 * 1000;
|
|
233
|
-
const recentCount = this.errorLog.filter(e => new Date(e.timestamp).getTime() > fiveMinutesAgo).length;
|
|
234
|
-
const errorRate = recentCount / 5;
|
|
235
|
-
return {
|
|
236
|
-
totalErrors: this.errorLog.length,
|
|
237
|
-
byCategory,
|
|
238
|
-
recentErrors: this.errorLog.slice(-10),
|
|
239
|
-
errorRate,
|
|
240
|
-
};
|
|
241
|
-
}
|
|
242
|
-
/**
|
|
243
|
-
* Clear error log
|
|
244
|
-
*/
|
|
245
|
-
clearLog() {
|
|
246
|
-
this.errorLog = [];
|
|
247
|
-
this.errorCounts.clear();
|
|
248
|
-
}
|
|
249
|
-
// ============================================================================
|
|
250
|
-
// Private Methods
|
|
251
|
-
// ============================================================================
|
|
252
|
-
getErrorCode(category) {
|
|
253
|
-
const codes = {
|
|
254
|
-
validation: 'ERR_VALIDATION',
|
|
255
|
-
authentication: 'ERR_AUTHENTICATION',
|
|
256
|
-
authorization: 'ERR_AUTHORIZATION',
|
|
257
|
-
not_found: 'ERR_NOT_FOUND',
|
|
258
|
-
rate_limit: 'ERR_RATE_LIMIT',
|
|
259
|
-
timeout: 'ERR_TIMEOUT',
|
|
260
|
-
circuit_open: 'ERR_CIRCUIT_OPEN',
|
|
261
|
-
external_service: 'ERR_EXTERNAL_SERVICE',
|
|
262
|
-
internal: 'ERR_INTERNAL',
|
|
263
|
-
unknown: 'ERR_UNKNOWN',
|
|
264
|
-
};
|
|
265
|
-
return codes[category];
|
|
266
|
-
}
|
|
267
|
-
getRetryDelay(category) {
|
|
268
|
-
const delays = {
|
|
269
|
-
timeout: 1000,
|
|
270
|
-
external_service: 2000,
|
|
271
|
-
rate_limit: 5000,
|
|
272
|
-
circuit_open: 30000,
|
|
273
|
-
validation: 0,
|
|
274
|
-
authentication: 0,
|
|
275
|
-
authorization: 0,
|
|
276
|
-
not_found: 0,
|
|
277
|
-
internal: 0,
|
|
278
|
-
unknown: 0,
|
|
279
|
-
};
|
|
280
|
-
return delays[category];
|
|
281
|
-
}
|
|
282
|
-
sanitizeMessage(message) {
|
|
283
|
-
if (!this.config.sanitize)
|
|
284
|
-
return message;
|
|
285
|
-
// Remove potential sensitive data from message
|
|
286
|
-
let sanitized = message;
|
|
287
|
-
for (const key of SENSITIVE_KEYS) {
|
|
288
|
-
// Use a non-backtracking pattern: key followed by = or : then non-whitespace
|
|
289
|
-
const pattern = new RegExp(`${key}[=:]\\S+`, 'gi');
|
|
290
|
-
sanitized = sanitized.replace(pattern, `${key}=[REDACTED]`);
|
|
291
|
-
}
|
|
292
|
-
return sanitized;
|
|
293
|
-
}
|
|
294
|
-
trackError(category) {
|
|
295
|
-
const now = Date.now();
|
|
296
|
-
const key = category;
|
|
297
|
-
const entry = this.errorCounts.get(key);
|
|
298
|
-
if (!entry || now > entry.resetAt) {
|
|
299
|
-
this.errorCounts.set(key, { count: 1, resetAt: now + 60000 });
|
|
300
|
-
}
|
|
301
|
-
else {
|
|
302
|
-
entry.count++;
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
logError(error) {
|
|
306
|
-
this.errorLog.push(error);
|
|
307
|
-
// Trim log if too large
|
|
308
|
-
if (this.errorLog.length > this.maxLogSize) {
|
|
309
|
-
this.errorLog = this.errorLog.slice(-this.maxLogSize / 2);
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
// ============================================================================
|
|
314
|
-
// Convenience Functions
|
|
315
|
-
// ============================================================================
|
|
316
|
-
const defaultHandler = new ErrorHandler();
|
|
317
|
-
/**
|
|
318
|
-
* Wrap a handler with error handling (convenience function)
|
|
319
|
-
*/
|
|
320
|
-
export function withErrorHandling(handler, context = {}) {
|
|
321
|
-
return defaultHandler.wrap(handler, context);
|
|
322
|
-
}
|
|
323
|
-
export default ErrorHandler;
|
|
324
|
-
//# sourceMappingURL=error-handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../../src/production/error-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export { ErrorHandler, withErrorHandling } from './error-handler.js';
|
|
2
|
-
export { RateLimiter, createRateLimiter } from './rate-limiter.js';
|
|
3
|
-
export { withRetry, makeRetryable, Retryable } from './retry.js';
|
|
4
|
-
export { CircuitBreaker, getCircuitBreaker, getAllCircuitStats, resetAllCircuits } from './circuit-breaker.js';
|
|
5
|
-
export { MonitoringHooks, createMonitor, getMonitor } from './monitoring.js';
|
|
6
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/production/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export { ErrorHandler, withErrorHandling } from './error-handler.js';
|
|
2
|
-
export { RateLimiter, createRateLimiter } from './rate-limiter.js';
|
|
3
|
-
export { withRetry, makeRetryable, Retryable } from './retry.js';
|
|
4
|
-
export { CircuitBreaker, getCircuitBreaker, getAllCircuitStats, resetAllCircuits } from './circuit-breaker.js';
|
|
5
|
-
export { MonitoringHooks, createMonitor, getMonitor } from './monitoring.js';
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/production/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Production Monitoring and Observability
|
|
3
|
-
*
|
|
4
|
-
* Provides monitoring hooks for:
|
|
5
|
-
* - Request/response metrics
|
|
6
|
-
* - Error tracking
|
|
7
|
-
* - Performance monitoring
|
|
8
|
-
* - Health checks
|
|
9
|
-
* - Alerting
|
|
10
|
-
*
|
|
11
|
-
* @module @monomind/cli/production/monitoring
|
|
12
|
-
*/
|
|
13
|
-
/** Metric type discriminator. */
|
|
14
|
-
export type MetricType = 'counter' | 'gauge' | 'histogram';
|
|
15
|
-
/** Alert severity level. */
|
|
16
|
-
export type AlertLevel = 'warning' | 'critical';
|
|
17
|
-
/** Health check status discriminator. */
|
|
18
|
-
export type HealthCheckStatus = 'healthy' | 'unhealthy';
|
|
19
|
-
/** A single recorded metric event. */
|
|
20
|
-
export interface MetricEvent {
|
|
21
|
-
name: string;
|
|
22
|
-
type: MetricType;
|
|
23
|
-
value: number;
|
|
24
|
-
labels: Record<string, string>;
|
|
25
|
-
timestamp: number;
|
|
26
|
-
}
|
|
27
|
-
/** Warning/critical thresholds for a single metric. */
|
|
28
|
-
export interface AlertThreshold {
|
|
29
|
-
warning: number;
|
|
30
|
-
critical: number;
|
|
31
|
-
}
|
|
32
|
-
/** Configuration for the monitoring hooks. */
|
|
33
|
-
export interface MonitorConfig {
|
|
34
|
-
enabled: boolean;
|
|
35
|
-
retentionMs: number;
|
|
36
|
-
maxMetrics: number;
|
|
37
|
-
samplingRate: number;
|
|
38
|
-
alertThresholds: Record<string, AlertThreshold>;
|
|
39
|
-
healthCheckIntervalMs: number;
|
|
40
|
-
globalLabels: Record<string, string>;
|
|
41
|
-
}
|
|
42
|
-
/** An active or acknowledged alert. */
|
|
43
|
-
export interface Alert {
|
|
44
|
-
id: string;
|
|
45
|
-
level: AlertLevel;
|
|
46
|
-
metric: string;
|
|
47
|
-
message: string;
|
|
48
|
-
value: number;
|
|
49
|
-
threshold: number;
|
|
50
|
-
timestamp: number;
|
|
51
|
-
acknowledged: boolean;
|
|
52
|
-
}
|
|
53
|
-
/** Result returned by a registered health check function. */
|
|
54
|
-
export interface HealthCheckResult {
|
|
55
|
-
healthy: boolean;
|
|
56
|
-
message?: string;
|
|
57
|
-
}
|
|
58
|
-
/** A user-supplied health check. */
|
|
59
|
-
export type HealthCheck = () => Promise<HealthCheckResult>;
|
|
60
|
-
/** Per-check entry within an aggregated health status. */
|
|
61
|
-
export interface HealthCheckEntry {
|
|
62
|
-
status: HealthCheckStatus;
|
|
63
|
-
message?: string;
|
|
64
|
-
lastCheck: number;
|
|
65
|
-
responseTimeMs: number;
|
|
66
|
-
}
|
|
67
|
-
/** Aggregated health status across all registered checks. */
|
|
68
|
-
export interface HealthStatus {
|
|
69
|
-
healthy: boolean;
|
|
70
|
-
checks: Record<string, HealthCheckEntry>;
|
|
71
|
-
timestamp: number;
|
|
72
|
-
}
|
|
73
|
-
/** Snapshot of performance metrics derived from recorded data. */
|
|
74
|
-
export interface PerformanceMetrics {
|
|
75
|
-
requestCount: number;
|
|
76
|
-
errorCount: number;
|
|
77
|
-
errorRate: number;
|
|
78
|
-
avgResponseTimeMs: number;
|
|
79
|
-
p50ResponseTimeMs: number;
|
|
80
|
-
p95ResponseTimeMs: number;
|
|
81
|
-
p99ResponseTimeMs: number;
|
|
82
|
-
activeRequests: number;
|
|
83
|
-
uptime: number;
|
|
84
|
-
}
|
|
85
|
-
/** Aggregated summary entry for a single metric name. */
|
|
86
|
-
export interface MetricSummaryEntry {
|
|
87
|
-
count: number;
|
|
88
|
-
lastValue: number;
|
|
89
|
-
avgValue: number;
|
|
90
|
-
}
|
|
91
|
-
/** Function returned by {@link MonitoringHooks.startRequest} to end tracking. */
|
|
92
|
-
export type EndRequest = () => void;
|
|
93
|
-
export declare class MonitoringHooks {
|
|
94
|
-
private config;
|
|
95
|
-
private metrics;
|
|
96
|
-
private responseTimes;
|
|
97
|
-
private alerts;
|
|
98
|
-
private healthStatus;
|
|
99
|
-
private startTime;
|
|
100
|
-
private activeRequests;
|
|
101
|
-
private requestCount;
|
|
102
|
-
private errorCount;
|
|
103
|
-
private healthChecks;
|
|
104
|
-
constructor(config?: Partial<MonitorConfig>);
|
|
105
|
-
/**
|
|
106
|
-
* Record a counter metric
|
|
107
|
-
*/
|
|
108
|
-
counter(name: string, value?: number, labels?: Record<string, string>): void;
|
|
109
|
-
/**
|
|
110
|
-
* Record a gauge metric
|
|
111
|
-
*/
|
|
112
|
-
gauge(name: string, value: number, labels?: Record<string, string>): void;
|
|
113
|
-
/**
|
|
114
|
-
* Record a histogram metric
|
|
115
|
-
*/
|
|
116
|
-
histogram(name: string, value: number, labels?: Record<string, string>): void;
|
|
117
|
-
/**
|
|
118
|
-
* Record a metric event
|
|
119
|
-
*/
|
|
120
|
-
recordMetric(name: string, type: MetricType, value: number, labels: Record<string, string>): void;
|
|
121
|
-
/**
|
|
122
|
-
* Start tracking a request
|
|
123
|
-
*/
|
|
124
|
-
startRequest(requestId?: string): EndRequest;
|
|
125
|
-
/**
|
|
126
|
-
* Record an error
|
|
127
|
-
*/
|
|
128
|
-
recordError(error: Error, labels?: Record<string, string>): void;
|
|
129
|
-
/**
|
|
130
|
-
* Register a health check
|
|
131
|
-
*/
|
|
132
|
-
registerHealthCheck(name: string, check: HealthCheck): void;
|
|
133
|
-
/**
|
|
134
|
-
* Run all health checks
|
|
135
|
-
*/
|
|
136
|
-
runHealthChecks(): Promise<HealthStatus>;
|
|
137
|
-
/**
|
|
138
|
-
* Get current health status
|
|
139
|
-
*/
|
|
140
|
-
getHealthStatus(): HealthStatus;
|
|
141
|
-
/**
|
|
142
|
-
* Get performance metrics
|
|
143
|
-
*/
|
|
144
|
-
getPerformanceMetrics(): PerformanceMetrics;
|
|
145
|
-
/**
|
|
146
|
-
* Get active alerts
|
|
147
|
-
*/
|
|
148
|
-
getAlerts(level?: AlertLevel): Alert[];
|
|
149
|
-
/**
|
|
150
|
-
* Acknowledge an alert
|
|
151
|
-
*/
|
|
152
|
-
acknowledgeAlert(alertId: string): boolean;
|
|
153
|
-
/**
|
|
154
|
-
* Clear all alerts
|
|
155
|
-
*/
|
|
156
|
-
clearAlerts(): void;
|
|
157
|
-
/**
|
|
158
|
-
* Get metrics for a specific name
|
|
159
|
-
*/
|
|
160
|
-
getMetrics(name: string, since?: number): MetricEvent[];
|
|
161
|
-
/**
|
|
162
|
-
* Get all metrics summary
|
|
163
|
-
*/
|
|
164
|
-
getMetricsSummary(): Record<string, MetricSummaryEntry>;
|
|
165
|
-
/**
|
|
166
|
-
* Reset all metrics
|
|
167
|
-
*/
|
|
168
|
-
reset(): void;
|
|
169
|
-
private checkAlerts;
|
|
170
|
-
private cleanupMetrics;
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Create or get the default monitor
|
|
174
|
-
*/
|
|
175
|
-
export declare function createMonitor(config?: Partial<MonitorConfig>): MonitoringHooks;
|
|
176
|
-
/**
|
|
177
|
-
* Get the default monitor
|
|
178
|
-
*/
|
|
179
|
-
export declare function getMonitor(): MonitoringHooks;
|
|
180
|
-
export default MonitoringHooks;
|
|
181
|
-
//# sourceMappingURL=monitoring.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"monitoring.d.ts","sourceRoot":"","sources":["../../../src/production/monitoring.ts"],"names":[],"mappings":"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"}
|