@cleocode/mcp-server 0.86.0
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 +21 -0
- package/README.md +306 -0
- package/dist/domains/index.d.ts +16 -0
- package/dist/domains/index.d.ts.map +1 -0
- package/dist/domains/index.js +16 -0
- package/dist/domains/index.js.map +1 -0
- package/dist/domains/lifecycle.d.ts +147 -0
- package/dist/domains/lifecycle.d.ts.map +1 -0
- package/dist/domains/lifecycle.js +452 -0
- package/dist/domains/lifecycle.js.map +1 -0
- package/dist/domains/orchestrate.d.ts +133 -0
- package/dist/domains/orchestrate.d.ts.map +1 -0
- package/dist/domains/orchestrate.js +465 -0
- package/dist/domains/orchestrate.js.map +1 -0
- package/dist/domains/release.d.ts +109 -0
- package/dist/domains/release.d.ts.map +1 -0
- package/dist/domains/release.js +400 -0
- package/dist/domains/release.js.map +1 -0
- package/dist/domains/research.d.ts +139 -0
- package/dist/domains/research.d.ts.map +1 -0
- package/dist/domains/research.js +606 -0
- package/dist/domains/research.js.map +1 -0
- package/dist/domains/session.d.ts +129 -0
- package/dist/domains/session.d.ts.map +1 -0
- package/dist/domains/session.js +433 -0
- package/dist/domains/session.js.map +1 -0
- package/dist/domains/system.d.ts +92 -0
- package/dist/domains/system.d.ts.map +1 -0
- package/dist/domains/system.js +473 -0
- package/dist/domains/system.js.map +1 -0
- package/dist/domains/tasks.d.ts +180 -0
- package/dist/domains/tasks.d.ts.map +1 -0
- package/dist/domains/tasks.js +704 -0
- package/dist/domains/tasks.js.map +1 -0
- package/dist/domains/validate.d.ts +150 -0
- package/dist/domains/validate.d.ts.map +1 -0
- package/dist/domains/validate.js +568 -0
- package/dist/domains/validate.js.map +1 -0
- package/dist/gateways/mutate.d.ts +100 -0
- package/dist/gateways/mutate.d.ts.map +1 -0
- package/dist/gateways/mutate.js +937 -0
- package/dist/gateways/mutate.js.map +1 -0
- package/dist/gateways/query.d.ts +91 -0
- package/dist/gateways/query.d.ts.map +1 -0
- package/dist/gateways/query.js +245 -0
- package/dist/gateways/query.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +299 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/audit.d.ts +118 -0
- package/dist/lib/audit.d.ts.map +1 -0
- package/dist/lib/audit.js +311 -0
- package/dist/lib/audit.js.map +1 -0
- package/dist/lib/background-jobs.d.ts +86 -0
- package/dist/lib/background-jobs.d.ts.map +1 -0
- package/dist/lib/background-jobs.js +183 -0
- package/dist/lib/background-jobs.js.map +1 -0
- package/dist/lib/cache.d.ts +78 -0
- package/dist/lib/cache.d.ts.map +1 -0
- package/dist/lib/cache.js +204 -0
- package/dist/lib/cache.js.map +1 -0
- package/dist/lib/command-builder.d.ts +52 -0
- package/dist/lib/command-builder.d.ts.map +1 -0
- package/dist/lib/command-builder.js +280 -0
- package/dist/lib/command-builder.js.map +1 -0
- package/dist/lib/config.d.ts +42 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +248 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/defaults.d.ts +115 -0
- package/dist/lib/defaults.d.ts.map +1 -0
- package/dist/lib/defaults.js +61 -0
- package/dist/lib/defaults.js.map +1 -0
- package/dist/lib/error-handler.d.ts +101 -0
- package/dist/lib/error-handler.d.ts.map +1 -0
- package/dist/lib/error-handler.js +277 -0
- package/dist/lib/error-handler.js.map +1 -0
- package/dist/lib/executor.d.ts +110 -0
- package/dist/lib/executor.d.ts.map +1 -0
- package/dist/lib/executor.js +362 -0
- package/dist/lib/executor.js.map +1 -0
- package/dist/lib/exit-codes.d.ts +190 -0
- package/dist/lib/exit-codes.d.ts.map +1 -0
- package/dist/lib/exit-codes.js +1027 -0
- package/dist/lib/exit-codes.js.map +1 -0
- package/dist/lib/formatter.d.ts +196 -0
- package/dist/lib/formatter.d.ts.map +1 -0
- package/dist/lib/formatter.js +260 -0
- package/dist/lib/formatter.js.map +1 -0
- package/dist/lib/gate-validators.d.ts +103 -0
- package/dist/lib/gate-validators.d.ts.map +1 -0
- package/dist/lib/gate-validators.js +689 -0
- package/dist/lib/gate-validators.js.map +1 -0
- package/dist/lib/manifest-parser.d.ts +61 -0
- package/dist/lib/manifest-parser.d.ts.map +1 -0
- package/dist/lib/manifest-parser.js +338 -0
- package/dist/lib/manifest-parser.js.map +1 -0
- package/dist/lib/manifest.d.ts +177 -0
- package/dist/lib/manifest.d.ts.map +1 -0
- package/dist/lib/manifest.js +301 -0
- package/dist/lib/manifest.js.map +1 -0
- package/dist/lib/protocol-enforcement.d.ts +105 -0
- package/dist/lib/protocol-enforcement.d.ts.map +1 -0
- package/dist/lib/protocol-enforcement.js +331 -0
- package/dist/lib/protocol-enforcement.js.map +1 -0
- package/dist/lib/protocol-rules.d.ts +55 -0
- package/dist/lib/protocol-rules.d.ts.map +1 -0
- package/dist/lib/protocol-rules.js +760 -0
- package/dist/lib/protocol-rules.js.map +1 -0
- package/dist/lib/rate-limiter.d.ts +110 -0
- package/dist/lib/rate-limiter.d.ts.map +1 -0
- package/dist/lib/rate-limiter.js +208 -0
- package/dist/lib/rate-limiter.js.map +1 -0
- package/dist/lib/router.d.ts +126 -0
- package/dist/lib/router.d.ts.map +1 -0
- package/dist/lib/router.js +276 -0
- package/dist/lib/router.js.map +1 -0
- package/dist/lib/schema.d.ts +55 -0
- package/dist/lib/schema.d.ts.map +1 -0
- package/dist/lib/schema.js +70 -0
- package/dist/lib/schema.js.map +1 -0
- package/dist/lib/security.d.ts +156 -0
- package/dist/lib/security.d.ts.map +1 -0
- package/dist/lib/security.js +347 -0
- package/dist/lib/security.js.map +1 -0
- package/dist/lib/verification-gates.d.ts +287 -0
- package/dist/lib/verification-gates.d.ts.map +1 -0
- package/dist/lib/verification-gates.js +548 -0
- package/dist/lib/verification-gates.js.map +1 -0
- package/dist/types/domain.d.ts +29 -0
- package/dist/types/domain.d.ts.map +1 -0
- package/dist/types/domain.js +7 -0
- package/dist/types/domain.js.map +1 -0
- package/dist/types/error.d.ts +101 -0
- package/dist/types/error.d.ts.map +1 -0
- package/dist/types/error.js +61 -0
- package/dist/types/error.js.map +1 -0
- package/dist/types/gateway.d.ts +78 -0
- package/dist/types/gateway.d.ts.map +1 -0
- package/dist/types/gateway.js +7 -0
- package/dist/types/gateway.js.map +1 -0
- package/dist/types/index.d.ts +21 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +11 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/operations/lifecycle.d.ts +140 -0
- package/dist/types/operations/lifecycle.d.ts.map +1 -0
- package/dist/types/operations/lifecycle.js +8 -0
- package/dist/types/operations/lifecycle.js.map +1 -0
- package/dist/types/operations/orchestrate.d.ts +140 -0
- package/dist/types/operations/orchestrate.d.ts.map +1 -0
- package/dist/types/operations/orchestrate.js +8 -0
- package/dist/types/operations/orchestrate.js.map +1 -0
- package/dist/types/operations/release.d.ts +97 -0
- package/dist/types/operations/release.d.ts.map +1 -0
- package/dist/types/operations/release.js +7 -0
- package/dist/types/operations/release.js.map +1 -0
- package/dist/types/operations/research.d.ts +122 -0
- package/dist/types/operations/research.d.ts.map +1 -0
- package/dist/types/operations/research.js +8 -0
- package/dist/types/operations/research.js.map +1 -0
- package/dist/types/operations/session.d.ts +108 -0
- package/dist/types/operations/session.d.ts.map +1 -0
- package/dist/types/operations/session.js +8 -0
- package/dist/types/operations/session.js.map +1 -0
- package/dist/types/operations/system.d.ts +147 -0
- package/dist/types/operations/system.d.ts.map +1 -0
- package/dist/types/operations/system.js +8 -0
- package/dist/types/operations/system.js.map +1 -0
- package/dist/types/operations/tasks.d.ts +186 -0
- package/dist/types/operations/tasks.d.ts.map +1 -0
- package/dist/types/operations/tasks.js +8 -0
- package/dist/types/operations/tasks.js.map +1 -0
- package/dist/types/operations/validate.d.ts +170 -0
- package/dist/types/operations/validate.d.ts.map +1 -0
- package/dist/types/operations/validate.js +8 -0
- package/dist/types/operations/validate.js.map +1 -0
- package/package.json +67 -0
- package/schemas/IMPLEMENTATION-SUMMARY.md +250 -0
- package/schemas/README.md +284 -0
- package/schemas/common/error.schema.json +54 -0
- package/schemas/common/meta.schema.json +39 -0
- package/schemas/common/pagination.schema.json +32 -0
- package/schemas/index.json +159 -0
- package/schemas/requests/lifecycle/check.schema.json +20 -0
- package/schemas/requests/lifecycle/gate.fail.schema.json +25 -0
- package/schemas/requests/lifecycle/gate.pass.schema.json +28 -0
- package/schemas/requests/lifecycle/gates.schema.json +15 -0
- package/schemas/requests/lifecycle/history.schema.json +15 -0
- package/schemas/requests/lifecycle/prerequisites.schema.json +15 -0
- package/schemas/requests/lifecycle/progress.schema.json +29 -0
- package/schemas/requests/lifecycle/reset.schema.json +25 -0
- package/schemas/requests/lifecycle/skip.schema.json +25 -0
- package/schemas/requests/lifecycle/status.schema.json +23 -0
- package/schemas/requests/orchestrate/analyze.schema.json +15 -0
- package/schemas/requests/orchestrate/context.schema.json +13 -0
- package/schemas/requests/orchestrate/next.schema.json +15 -0
- package/schemas/requests/orchestrate/parallel.end.schema.json +20 -0
- package/schemas/requests/orchestrate/parallel.start.schema.json +20 -0
- package/schemas/requests/orchestrate/ready.schema.json +15 -0
- package/schemas/requests/orchestrate/skill.list.schema.json +13 -0
- package/schemas/requests/orchestrate/spawn.schema.json +25 -0
- package/schemas/requests/orchestrate/startup.schema.json +15 -0
- package/schemas/requests/orchestrate/status.schema.json +15 -0
- package/schemas/requests/orchestrate/validate.schema.json +15 -0
- package/schemas/requests/orchestrate/waves.schema.json +15 -0
- package/schemas/requests/release/changelog.schema.json +23 -0
- package/schemas/requests/release/commit.schema.json +22 -0
- package/schemas/requests/release/gates.run.schema.json +17 -0
- package/schemas/requests/release/prepare.schema.json +20 -0
- package/schemas/requests/release/push.schema.json +20 -0
- package/schemas/requests/release/rollback.schema.json +20 -0
- package/schemas/requests/release/tag.schema.json +19 -0
- package/schemas/requests/research/inject.schema.json +24 -0
- package/schemas/requests/research/link.schema.json +25 -0
- package/schemas/requests/research/list.schema.json +19 -0
- package/schemas/requests/research/manifest.append.schema.json +20 -0
- package/schemas/requests/research/manifest.archive.schema.json +19 -0
- package/schemas/requests/research/manifest.read.schema.json +21 -0
- package/schemas/requests/research/pending.schema.json +14 -0
- package/schemas/requests/research/query.schema.json +21 -0
- package/schemas/requests/research/show.schema.json +14 -0
- package/schemas/requests/research/stats.schema.json +14 -0
- package/schemas/requests/session/end.schema.json +13 -0
- package/schemas/requests/session/focus.clear.schema.json +7 -0
- package/schemas/requests/session/focus.get.schema.json +7 -0
- package/schemas/requests/session/focus.set.schema.json +15 -0
- package/schemas/requests/session/gc.schema.json +14 -0
- package/schemas/requests/session/history.schema.json +16 -0
- package/schemas/requests/session/list.schema.json +13 -0
- package/schemas/requests/session/resume.schema.json +14 -0
- package/schemas/requests/session/show.schema.json +14 -0
- package/schemas/requests/session/start.schema.json +23 -0
- package/schemas/requests/session/status.schema.json +7 -0
- package/schemas/requests/session/suspend.schema.json +13 -0
- package/schemas/requests/system/backup.schema.json +19 -0
- package/schemas/requests/system/cleanup.schema.json +20 -0
- package/schemas/requests/system/config.get.schema.json +14 -0
- package/schemas/requests/system/config.set.schema.json +24 -0
- package/schemas/requests/system/context.schema.json +7 -0
- package/schemas/requests/system/doctor.schema.json +7 -0
- package/schemas/requests/system/init.schema.json +18 -0
- package/schemas/requests/system/migrate.schema.json +19 -0
- package/schemas/requests/system/restore.schema.json +14 -0
- package/schemas/requests/system/stats.schema.json +7 -0
- package/schemas/requests/system/sync.schema.json +15 -0
- package/schemas/requests/system/version.schema.json +7 -0
- package/schemas/requests/tasks/analyze.schema.json +14 -0
- package/schemas/requests/tasks/archive.schema.json +19 -0
- package/schemas/requests/tasks/blockers.schema.json +15 -0
- package/schemas/requests/tasks/complete.schema.json +24 -0
- package/schemas/requests/tasks/create.schema.json +48 -0
- package/schemas/requests/tasks/delete.schema.json +20 -0
- package/schemas/requests/tasks/deps.schema.json +21 -0
- package/schemas/requests/tasks/exists.schema.json +15 -0
- package/schemas/requests/tasks/find.schema.json +22 -0
- package/schemas/requests/tasks/get.schema.json +15 -0
- package/schemas/requests/tasks/list.schema.json +26 -0
- package/schemas/requests/tasks/next.schema.json +21 -0
- package/schemas/requests/tasks/promote.schema.json +15 -0
- package/schemas/requests/tasks/reopen.schema.json +15 -0
- package/schemas/requests/tasks/reorder.schema.json +20 -0
- package/schemas/requests/tasks/reparent.schema.json +20 -0
- package/schemas/requests/tasks/tree.schema.json +21 -0
- package/schemas/requests/tasks/unarchive.schema.json +15 -0
- package/schemas/requests/tasks/update.schema.json +41 -0
- package/schemas/requests/validate/compliance.record.schema.json +20 -0
- package/schemas/requests/validate/compliance.summary.schema.json +18 -0
- package/schemas/requests/validate/compliance.violations.schema.json +19 -0
- package/schemas/requests/validate/manifest.schema.json +23 -0
- package/schemas/requests/validate/output.schema.json +19 -0
- package/schemas/requests/validate/protocol.schema.json +20 -0
- package/schemas/requests/validate/schema.schema.json +19 -0
- package/schemas/requests/validate/task.schema.json +21 -0
- package/schemas/requests/validate/test.coverage.schema.json +14 -0
- package/schemas/requests/validate/test.run.schema.json +22 -0
- package/schemas/requests/validate/test.status.schema.json +14 -0
- package/schemas/responses/common-error.schema.json +20 -0
- package/schemas/responses/common-success.schema.json +21 -0
- package/schemas/responses/lifecycle/check.schema.json +18 -0
- package/schemas/responses/lifecycle/gate.fail.schema.json +18 -0
- package/schemas/responses/lifecycle/gate.pass.schema.json +18 -0
- package/schemas/responses/lifecycle/gates.schema.json +18 -0
- package/schemas/responses/lifecycle/history.schema.json +18 -0
- package/schemas/responses/lifecycle/prerequisites.schema.json +18 -0
- package/schemas/responses/lifecycle/progress.schema.json +18 -0
- package/schemas/responses/lifecycle/reset.schema.json +18 -0
- package/schemas/responses/lifecycle/skip.schema.json +18 -0
- package/schemas/responses/lifecycle/status.schema.json +18 -0
- package/schemas/responses/orchestrate/analyze.schema.json +18 -0
- package/schemas/responses/orchestrate/context.schema.json +18 -0
- package/schemas/responses/orchestrate/next.schema.json +18 -0
- package/schemas/responses/orchestrate/parallel.end.schema.json +18 -0
- package/schemas/responses/orchestrate/parallel.start.schema.json +18 -0
- package/schemas/responses/orchestrate/ready.schema.json +18 -0
- package/schemas/responses/orchestrate/skill.list.schema.json +18 -0
- package/schemas/responses/orchestrate/spawn.schema.json +18 -0
- package/schemas/responses/orchestrate/startup.schema.json +18 -0
- package/schemas/responses/orchestrate/status.schema.json +18 -0
- package/schemas/responses/orchestrate/validate.schema.json +18 -0
- package/schemas/responses/orchestrate/waves.schema.json +18 -0
- package/schemas/responses/release/changelog.schema.json +18 -0
- package/schemas/responses/release/commit.schema.json +18 -0
- package/schemas/responses/release/gates.run.schema.json +18 -0
- package/schemas/responses/release/prepare.schema.json +18 -0
- package/schemas/responses/release/push.schema.json +18 -0
- package/schemas/responses/release/rollback.schema.json +18 -0
- package/schemas/responses/release/tag.schema.json +18 -0
- package/schemas/responses/research/inject.schema.json +18 -0
- package/schemas/responses/research/link.schema.json +18 -0
- package/schemas/responses/research/list.schema.json +18 -0
- package/schemas/responses/research/manifest.append.schema.json +18 -0
- package/schemas/responses/research/manifest.archive.schema.json +18 -0
- package/schemas/responses/research/manifest.read.schema.json +18 -0
- package/schemas/responses/research/pending.schema.json +18 -0
- package/schemas/responses/research/query.schema.json +18 -0
- package/schemas/responses/research/show.schema.json +18 -0
- package/schemas/responses/research/stats.schema.json +18 -0
- package/schemas/responses/session/end.schema.json +18 -0
- package/schemas/responses/session/focus.clear.schema.json +18 -0
- package/schemas/responses/session/focus.get.schema.json +18 -0
- package/schemas/responses/session/focus.set.schema.json +18 -0
- package/schemas/responses/session/gc.schema.json +18 -0
- package/schemas/responses/session/history.schema.json +18 -0
- package/schemas/responses/session/list.schema.json +18 -0
- package/schemas/responses/session/resume.schema.json +18 -0
- package/schemas/responses/session/show.schema.json +18 -0
- package/schemas/responses/session/start.schema.json +18 -0
- package/schemas/responses/session/status.schema.json +18 -0
- package/schemas/responses/session/suspend.schema.json +18 -0
- package/schemas/responses/system/backup.schema.json +18 -0
- package/schemas/responses/system/cleanup.schema.json +18 -0
- package/schemas/responses/system/config.get.schema.json +18 -0
- package/schemas/responses/system/config.set.schema.json +18 -0
- package/schemas/responses/system/context.schema.json +18 -0
- package/schemas/responses/system/doctor.schema.json +18 -0
- package/schemas/responses/system/init.schema.json +18 -0
- package/schemas/responses/system/migrate.schema.json +18 -0
- package/schemas/responses/system/restore.schema.json +18 -0
- package/schemas/responses/system/stats.schema.json +18 -0
- package/schemas/responses/system/sync.schema.json +18 -0
- package/schemas/responses/system/version.schema.json +18 -0
- package/schemas/responses/tasks/analyze.schema.json +18 -0
- package/schemas/responses/tasks/archive.schema.json +18 -0
- package/schemas/responses/tasks/blockers.schema.json +18 -0
- package/schemas/responses/tasks/complete.schema.json +18 -0
- package/schemas/responses/tasks/create.schema.json +18 -0
- package/schemas/responses/tasks/delete.schema.json +18 -0
- package/schemas/responses/tasks/deps.schema.json +18 -0
- package/schemas/responses/tasks/exists.schema.json +18 -0
- package/schemas/responses/tasks/find.schema.json +18 -0
- package/schemas/responses/tasks/get.schema.json +87 -0
- package/schemas/responses/tasks/list.schema.json +18 -0
- package/schemas/responses/tasks/next.schema.json +18 -0
- package/schemas/responses/tasks/promote.schema.json +18 -0
- package/schemas/responses/tasks/reopen.schema.json +18 -0
- package/schemas/responses/tasks/reorder.schema.json +18 -0
- package/schemas/responses/tasks/reparent.schema.json +18 -0
- package/schemas/responses/tasks/tree.schema.json +18 -0
- package/schemas/responses/tasks/unarchive.schema.json +18 -0
- package/schemas/responses/tasks/update.schema.json +18 -0
- package/schemas/responses/validate/compliance.record.schema.json +18 -0
- package/schemas/responses/validate/compliance.summary.schema.json +18 -0
- package/schemas/responses/validate/compliance.violations.schema.json +18 -0
- package/schemas/responses/validate/manifest.schema.json +18 -0
- package/schemas/responses/validate/output.schema.json +18 -0
- package/schemas/responses/validate/protocol.schema.json +18 -0
- package/schemas/responses/validate/schema.schema.json +18 -0
- package/schemas/responses/validate/task.schema.json +18 -0
- package/schemas/responses/validate/test.coverage.schema.json +18 -0
- package/schemas/responses/validate/test.run.schema.json +18 -0
- package/schemas/responses/validate/test.status.schema.json +18 -0
- package/server.json +53 -0
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration loader for CLEO MCP Server
|
|
3
|
+
*
|
|
4
|
+
* Loads configuration from:
|
|
5
|
+
* 1. Environment variables (CLEO_MCP_*)
|
|
6
|
+
* 2. Config file (.cleo/config.json)
|
|
7
|
+
* 3. Defaults (fallback values)
|
|
8
|
+
*
|
|
9
|
+
* @task T2928
|
|
10
|
+
*/
|
|
11
|
+
import { readFileSync, existsSync } from 'fs';
|
|
12
|
+
import { join } from 'path';
|
|
13
|
+
import { DEFAULT_CONFIG, DEFAULT_LIFECYCLE_ENFORCEMENT, DEFAULT_PROTOCOL_VALIDATION, DEFAULT_RATE_LIMITING, ENV_PREFIX, CONFIG_SCHEMA, } from './defaults.js';
|
|
14
|
+
/**
|
|
15
|
+
* Configuration validation error
|
|
16
|
+
*/
|
|
17
|
+
export class ConfigValidationError extends Error {
|
|
18
|
+
field;
|
|
19
|
+
value;
|
|
20
|
+
constraint;
|
|
21
|
+
constructor(field, value, constraint) {
|
|
22
|
+
super(`Invalid config field '${field}': ${constraint} (got ${value})`);
|
|
23
|
+
this.field = field;
|
|
24
|
+
this.value = value;
|
|
25
|
+
this.constraint = constraint;
|
|
26
|
+
this.name = 'ConfigValidationError';
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Load configuration value from environment variable
|
|
31
|
+
*/
|
|
32
|
+
function loadFromEnv(key) {
|
|
33
|
+
const envKey = `${ENV_PREFIX}${key.toUpperCase()}`;
|
|
34
|
+
return process.env[envKey];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Parse environment variable to appropriate type
|
|
38
|
+
*/
|
|
39
|
+
function parseEnvValue(key, value) {
|
|
40
|
+
const schema = CONFIG_SCHEMA[key];
|
|
41
|
+
if (schema.type === 'boolean') {
|
|
42
|
+
return value.toLowerCase() === 'true' || value === '1';
|
|
43
|
+
}
|
|
44
|
+
if (schema.type === 'number') {
|
|
45
|
+
const num = parseInt(value, 10);
|
|
46
|
+
if (isNaN(num)) {
|
|
47
|
+
throw new ConfigValidationError(key, value, 'must be a number');
|
|
48
|
+
}
|
|
49
|
+
return num;
|
|
50
|
+
}
|
|
51
|
+
return value;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Load configuration from .cleo/config.json file
|
|
55
|
+
*/
|
|
56
|
+
function loadFromFile(projectRoot) {
|
|
57
|
+
const root = projectRoot || process.cwd();
|
|
58
|
+
const configPath = join(root, '.cleo', 'config.json');
|
|
59
|
+
if (!existsSync(configPath)) {
|
|
60
|
+
return {};
|
|
61
|
+
}
|
|
62
|
+
try {
|
|
63
|
+
const content = readFileSync(configPath, 'utf-8');
|
|
64
|
+
const config = JSON.parse(content);
|
|
65
|
+
// Extract MCP-specific config if nested
|
|
66
|
+
const result = {};
|
|
67
|
+
if (config.mcp) {
|
|
68
|
+
if (config.mcp.cliPath !== undefined)
|
|
69
|
+
result.cliPath = config.mcp.cliPath;
|
|
70
|
+
if (config.mcp.timeout !== undefined)
|
|
71
|
+
result.timeout = config.mcp.timeout;
|
|
72
|
+
if (config.mcp.logLevel !== undefined)
|
|
73
|
+
result.logLevel = config.mcp.logLevel;
|
|
74
|
+
if (config.mcp.enableMetrics !== undefined)
|
|
75
|
+
result.enableMetrics = config.mcp.enableMetrics;
|
|
76
|
+
if (config.mcp.maxRetries !== undefined)
|
|
77
|
+
result.maxRetries = config.mcp.maxRetries;
|
|
78
|
+
if (config.mcp.features?.queryCache !== undefined)
|
|
79
|
+
result.queryCache = config.mcp.features.queryCache;
|
|
80
|
+
if (config.mcp.features?.queryCacheTtl !== undefined)
|
|
81
|
+
result.queryCacheTtl = config.mcp.features.queryCacheTtl;
|
|
82
|
+
if (config.mcp.features?.auditLog !== undefined)
|
|
83
|
+
result.auditLog = config.mcp.features.auditLog;
|
|
84
|
+
if (config.mcp.features?.strictValidation !== undefined)
|
|
85
|
+
result.strictValidation = config.mcp.features.strictValidation;
|
|
86
|
+
}
|
|
87
|
+
// Extract lifecycle enforcement config (Section 12.2)
|
|
88
|
+
if (config.lifecycleEnforcement) {
|
|
89
|
+
result.lifecycleEnforcement = {
|
|
90
|
+
...DEFAULT_LIFECYCLE_ENFORCEMENT,
|
|
91
|
+
...config.lifecycleEnforcement,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
// Extract protocol validation config (Section 12.3)
|
|
95
|
+
if (config.protocolValidation) {
|
|
96
|
+
result.protocolValidation = {
|
|
97
|
+
...DEFAULT_PROTOCOL_VALIDATION,
|
|
98
|
+
...config.protocolValidation,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
// Extract rate limiting config (Section 13.3)
|
|
102
|
+
if (config.rateLimiting || config.mcp?.rateLimiting) {
|
|
103
|
+
const rlConfig = config.rateLimiting || config.mcp?.rateLimiting;
|
|
104
|
+
result.rateLimiting = {
|
|
105
|
+
...DEFAULT_RATE_LIMITING,
|
|
106
|
+
...rlConfig,
|
|
107
|
+
query: { ...DEFAULT_RATE_LIMITING.query, ...rlConfig?.query },
|
|
108
|
+
mutate: { ...DEFAULT_RATE_LIMITING.mutate, ...rlConfig?.mutate },
|
|
109
|
+
spawn: { ...DEFAULT_RATE_LIMITING.spawn, ...rlConfig?.spawn },
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
// If no mcp block, check for flat config keys
|
|
113
|
+
if (!config.mcp) {
|
|
114
|
+
return config;
|
|
115
|
+
}
|
|
116
|
+
return result;
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
// Log error but don't fail - fall back to defaults
|
|
120
|
+
console.error(`Warning: Failed to load config file: ${error}`);
|
|
121
|
+
return {};
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Validate configuration field
|
|
126
|
+
*/
|
|
127
|
+
function validateField(key, value) {
|
|
128
|
+
const schema = CONFIG_SCHEMA[key];
|
|
129
|
+
if (!schema) {
|
|
130
|
+
return; // Unknown fields are ignored
|
|
131
|
+
}
|
|
132
|
+
// Type check
|
|
133
|
+
const actualType = typeof value;
|
|
134
|
+
if (actualType !== schema.type) {
|
|
135
|
+
throw new ConfigValidationError(key, value, `must be of type ${schema.type}`);
|
|
136
|
+
}
|
|
137
|
+
// Enum check
|
|
138
|
+
if ('enum' in schema && schema.enum && !schema.enum.includes(value)) {
|
|
139
|
+
throw new ConfigValidationError(key, value, `must be one of: ${schema.enum.join(', ')}`);
|
|
140
|
+
}
|
|
141
|
+
// Range check for numbers
|
|
142
|
+
if (schema.type === 'number') {
|
|
143
|
+
const numValue = value;
|
|
144
|
+
if ('min' in schema && numValue < schema.min) {
|
|
145
|
+
throw new ConfigValidationError(key, value, `must be >= ${schema.min}`);
|
|
146
|
+
}
|
|
147
|
+
if ('max' in schema && numValue > schema.max) {
|
|
148
|
+
throw new ConfigValidationError(key, value, `must be <= ${schema.max}`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Validate complete configuration
|
|
154
|
+
*/
|
|
155
|
+
export function validateConfig(config) {
|
|
156
|
+
for (const [key, value] of Object.entries(config)) {
|
|
157
|
+
validateField(key, value);
|
|
158
|
+
}
|
|
159
|
+
// Required field check
|
|
160
|
+
for (const [key, schema] of Object.entries(CONFIG_SCHEMA)) {
|
|
161
|
+
if ('required' in schema && schema.required) {
|
|
162
|
+
if (config[key] === undefined) {
|
|
163
|
+
throw new ConfigValidationError(key, undefined, 'is required');
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Load configuration from all sources
|
|
170
|
+
*
|
|
171
|
+
* Priority order:
|
|
172
|
+
* 1. Environment variables (CLEO_MCP_*)
|
|
173
|
+
* 2. Config file (.cleo/config.json)
|
|
174
|
+
* 3. Defaults
|
|
175
|
+
*/
|
|
176
|
+
export function loadConfig(projectRoot) {
|
|
177
|
+
// Start with defaults (deep copy nested objects)
|
|
178
|
+
const config = {
|
|
179
|
+
...DEFAULT_CONFIG,
|
|
180
|
+
lifecycleEnforcement: { ...DEFAULT_LIFECYCLE_ENFORCEMENT },
|
|
181
|
+
protocolValidation: { ...DEFAULT_PROTOCOL_VALIDATION },
|
|
182
|
+
rateLimiting: {
|
|
183
|
+
...DEFAULT_RATE_LIMITING,
|
|
184
|
+
query: { ...DEFAULT_RATE_LIMITING.query },
|
|
185
|
+
mutate: { ...DEFAULT_RATE_LIMITING.mutate },
|
|
186
|
+
spawn: { ...DEFAULT_RATE_LIMITING.spawn },
|
|
187
|
+
},
|
|
188
|
+
};
|
|
189
|
+
// Load from file (overrides defaults)
|
|
190
|
+
const fileConfig = loadFromFile(projectRoot);
|
|
191
|
+
// Merge nested objects carefully
|
|
192
|
+
if (fileConfig.lifecycleEnforcement) {
|
|
193
|
+
config.lifecycleEnforcement = {
|
|
194
|
+
...config.lifecycleEnforcement,
|
|
195
|
+
...fileConfig.lifecycleEnforcement,
|
|
196
|
+
};
|
|
197
|
+
delete fileConfig.lifecycleEnforcement;
|
|
198
|
+
}
|
|
199
|
+
if (fileConfig.protocolValidation) {
|
|
200
|
+
config.protocolValidation = {
|
|
201
|
+
...config.protocolValidation,
|
|
202
|
+
...fileConfig.protocolValidation,
|
|
203
|
+
};
|
|
204
|
+
delete fileConfig.protocolValidation;
|
|
205
|
+
}
|
|
206
|
+
if (fileConfig.rateLimiting) {
|
|
207
|
+
config.rateLimiting = {
|
|
208
|
+
...config.rateLimiting,
|
|
209
|
+
...fileConfig.rateLimiting,
|
|
210
|
+
query: { ...config.rateLimiting.query, ...fileConfig.rateLimiting.query },
|
|
211
|
+
mutate: { ...config.rateLimiting.mutate, ...fileConfig.rateLimiting.mutate },
|
|
212
|
+
spawn: { ...config.rateLimiting.spawn, ...fileConfig.rateLimiting.spawn },
|
|
213
|
+
};
|
|
214
|
+
delete fileConfig.rateLimiting;
|
|
215
|
+
}
|
|
216
|
+
Object.assign(config, fileConfig);
|
|
217
|
+
// Load from environment (overrides file and defaults)
|
|
218
|
+
for (const key of Object.keys(DEFAULT_CONFIG)) {
|
|
219
|
+
const envValue = loadFromEnv(key);
|
|
220
|
+
if (envValue !== undefined) {
|
|
221
|
+
config[key] = parseEnvValue(key, envValue);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
// Validate final configuration
|
|
225
|
+
validateConfig(config);
|
|
226
|
+
return config;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Global configuration singleton
|
|
230
|
+
* Loaded once at module initialization
|
|
231
|
+
*/
|
|
232
|
+
let globalConfig = null;
|
|
233
|
+
/**
|
|
234
|
+
* Get global configuration (singleton)
|
|
235
|
+
*/
|
|
236
|
+
export function getConfig() {
|
|
237
|
+
if (globalConfig === null) {
|
|
238
|
+
globalConfig = loadConfig();
|
|
239
|
+
}
|
|
240
|
+
return globalConfig;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Reset global configuration (for testing)
|
|
244
|
+
*/
|
|
245
|
+
export function resetConfig() {
|
|
246
|
+
globalConfig = null;
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAEL,cAAc,EACd,6BAA6B,EAC7B,2BAA2B,EAC3B,qBAAqB,EACrB,UAAU,EACV,aAAa,GAGd,MAAM,eAAe,CAAC;AAEvB;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAErC;IACA;IACA;IAHT,YACS,KAAa,EACb,KAAc,EACd,UAAkB;QAEzB,KAAK,CAAC,yBAAyB,KAAK,MAAM,UAAU,SAAS,KAAK,GAAG,CAAC,CAAC;QAJhE,UAAK,GAAL,KAAK,CAAQ;QACb,UAAK,GAAL,KAAK,CAAS;QACd,eAAU,GAAV,UAAU,CAAQ;QAGzB,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,MAAM,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;IACnD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,GAAW,EAAE,KAAa;IAC/C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAiC,CAAC,CAAC;IAEhE,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,CAAC;IACzD,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,WAAoB;IACxC,MAAM,IAAI,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAEtD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEnC,wCAAwC;QACxC,MAAM,MAAM,GAAuB,EAAE,CAAC;QAEtC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YACf,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS;gBAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;YAC1E,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS;gBAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;YAC1E,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS;gBAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC7E,IAAI,MAAM,CAAC,GAAG,CAAC,aAAa,KAAK,SAAS;gBAAE,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;YAC5F,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,KAAK,SAAS;gBAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;YACnF,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,KAAK,SAAS;gBAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;YACtG,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,KAAK,SAAS;gBAAE,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC/G,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,KAAK,SAAS;gBAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAChG,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,KAAK,SAAS;gBAAE,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC1H,CAAC;QAED,sDAAsD;QACtD,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;YAChC,MAAM,CAAC,oBAAoB,GAAG;gBAC5B,GAAG,6BAA6B;gBAChC,GAAG,MAAM,CAAC,oBAAoB;aAC/B,CAAC;QACJ,CAAC;QAED,oDAAoD;QACpD,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC9B,MAAM,CAAC,kBAAkB,GAAG;gBAC1B,GAAG,2BAA2B;gBAC9B,GAAG,MAAM,CAAC,kBAAkB;aAC7B,CAAC;QACJ,CAAC;QAED,8CAA8C;QAC9C,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,GAAG,EAAE,YAAY,EAAE,CAAC;YACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC;YACjE,MAAM,CAAC,YAAY,GAAG;gBACpB,GAAG,qBAAqB;gBACxB,GAAG,QAAQ;gBACX,KAAK,EAAE,EAAE,GAAG,qBAAqB,CAAC,KAAK,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE;gBAC7D,MAAM,EAAE,EAAE,GAAG,qBAAqB,CAAC,MAAM,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE;gBAChE,KAAK,EAAE,EAAE,GAAG,qBAAqB,CAAC,KAAK,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE;aAC9D,CAAC;QACJ,CAAC;QAED,8CAA8C;QAC9C,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YAChB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mDAAmD;QACnD,OAAO,CAAC,KAAK,CAAC,wCAAwC,KAAK,EAAE,CAAC,CAAC;QAC/D,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,GAAW,EAAE,KAAc;IAChD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAiC,CAAC,CAAC;IAEhE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,6BAA6B;IACvC,CAAC;IAED,aAAa;IACb,MAAM,UAAU,GAAG,OAAO,KAAK,CAAC;IAChC,IAAI,UAAU,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,IAAI,qBAAqB,CAC7B,GAAG,EACH,KAAK,EACL,mBAAmB,MAAM,CAAC,IAAI,EAAE,CACjC,CAAC;IACJ,CAAC;IAED,aAAa;IACb,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAc,CAAC,EAAE,CAAC;QAC7E,MAAM,IAAI,qBAAqB,CAC7B,GAAG,EACH,KAAK,EACL,mBAAmB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5C,CAAC;IACJ,CAAC;IAED,0BAA0B;IAC1B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,KAAe,CAAC;QACjC,IAAI,KAAK,IAAI,MAAM,IAAI,QAAQ,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YAC7C,MAAM,IAAI,qBAAqB,CAC7B,GAAG,EACH,KAAK,EACL,cAAc,MAAM,CAAC,GAAG,EAAE,CAC3B,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,IAAI,MAAM,IAAI,QAAQ,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YAC7C,MAAM,IAAI,qBAAqB,CAC7B,GAAG,EACH,KAAK,EACL,cAAc,MAAM,CAAC,GAAG,EAAE,CAC3B,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAiB;IAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,uBAAuB;IACvB,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QAC1D,IAAI,UAAU,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC5C,IAAI,MAAM,CAAC,GAAsB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACjD,MAAM,IAAI,qBAAqB,CAAC,GAAG,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,WAAoB;IAC7C,iDAAiD;IACjD,MAAM,MAAM,GAAc;QACxB,GAAG,cAAc;QACjB,oBAAoB,EAAE,EAAE,GAAG,6BAA6B,EAAE;QAC1D,kBAAkB,EAAE,EAAE,GAAG,2BAA2B,EAAE;QACtD,YAAY,EAAE;YACZ,GAAG,qBAAqB;YACxB,KAAK,EAAE,EAAE,GAAG,qBAAqB,CAAC,KAAK,EAAE;YACzC,MAAM,EAAE,EAAE,GAAG,qBAAqB,CAAC,MAAM,EAAE;YAC3C,KAAK,EAAE,EAAE,GAAG,qBAAqB,CAAC,KAAK,EAAE;SAC1C;KACF,CAAC;IAEF,sCAAsC;IACtC,MAAM,UAAU,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAC7C,iCAAiC;IACjC,IAAI,UAAU,CAAC,oBAAoB,EAAE,CAAC;QACpC,MAAM,CAAC,oBAAoB,GAAG;YAC5B,GAAG,MAAM,CAAC,oBAAoB;YAC9B,GAAG,UAAU,CAAC,oBAAoB;SACnC,CAAC;QACF,OAAQ,UAAkB,CAAC,oBAAoB,CAAC;IAClD,CAAC;IACD,IAAI,UAAU,CAAC,kBAAkB,EAAE,CAAC;QAClC,MAAM,CAAC,kBAAkB,GAAG;YAC1B,GAAG,MAAM,CAAC,kBAAkB;YAC5B,GAAG,UAAU,CAAC,kBAAkB;SACjC,CAAC;QACF,OAAQ,UAAkB,CAAC,kBAAkB,CAAC;IAChD,CAAC;IACD,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;QAC5B,MAAM,CAAC,YAAY,GAAG;YACpB,GAAG,MAAM,CAAC,YAAY;YACtB,GAAG,UAAU,CAAC,YAAY;YAC1B,KAAK,EAAE,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE;YACzE,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE;YAC5E,KAAK,EAAE,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE;SAC1E,CAAC;QACF,OAAQ,UAAkB,CAAC,YAAY,CAAC;IAC1C,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAElC,sDAAsD;IACtD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAA2B,EAAE,CAAC;QACxE,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAU,CAAC;QACtD,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,cAAc,CAAC,MAAM,CAAC,CAAC;IAEvB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,IAAI,YAAY,GAAqB,IAAI,CAAC;AAE1C;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,YAAY,GAAG,UAAU,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,YAAY,GAAG,IAAI,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default configuration values for CLEO MCP Server
|
|
3
|
+
*
|
|
4
|
+
* @task T2928
|
|
5
|
+
* @task T3145
|
|
6
|
+
* @task T2916 - Rate limiting configuration (Section 13.3)
|
|
7
|
+
*/
|
|
8
|
+
import type { RateLimitingConfig } from './rate-limiter.js';
|
|
9
|
+
export type { RateLimitingConfig } from './rate-limiter.js';
|
|
10
|
+
export { DEFAULT_RATE_LIMITING } from './rate-limiter.js';
|
|
11
|
+
/**
|
|
12
|
+
* Lifecycle enforcement configuration (Section 12.2)
|
|
13
|
+
*/
|
|
14
|
+
export interface LifecycleEnforcementConfig {
|
|
15
|
+
/** Enforcement mode: strict blocks, advisory warns, off skips */
|
|
16
|
+
mode: 'strict' | 'advisory' | 'off';
|
|
17
|
+
/** Stages that may be skipped without failing gates */
|
|
18
|
+
allowSkip: string[];
|
|
19
|
+
/** Emergency bypass flag - disables all gate checks */
|
|
20
|
+
emergencyBypass: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Protocol validation configuration (Section 12.3)
|
|
24
|
+
*/
|
|
25
|
+
export interface ProtocolValidationConfig {
|
|
26
|
+
/** Enable strict protocol validation */
|
|
27
|
+
strictMode: boolean;
|
|
28
|
+
/** Block operations on protocol violations */
|
|
29
|
+
blockOnViolation: boolean;
|
|
30
|
+
/** Log protocol violations to audit trail */
|
|
31
|
+
logViolations: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface MCPConfig {
|
|
34
|
+
/** Path to CLEO CLI binary (default: 'cleo') */
|
|
35
|
+
cliPath: string;
|
|
36
|
+
/** Operation timeout in milliseconds (default: 30000) */
|
|
37
|
+
timeout: number;
|
|
38
|
+
/** Logging verbosity level (default: 'info') */
|
|
39
|
+
logLevel: 'debug' | 'info' | 'warn' | 'error';
|
|
40
|
+
/** Enable token tracking metrics (default: false) */
|
|
41
|
+
enableMetrics: boolean;
|
|
42
|
+
/** Retry count for failed operations (default: 3) */
|
|
43
|
+
maxRetries: number;
|
|
44
|
+
/** Enable query cache (default: true) */
|
|
45
|
+
queryCache: boolean;
|
|
46
|
+
/** Query cache TTL in milliseconds (default: 30000) */
|
|
47
|
+
queryCacheTtl: number;
|
|
48
|
+
/** Enable audit logging (default: true) */
|
|
49
|
+
auditLog: boolean;
|
|
50
|
+
/** Strict validation mode (default: true) */
|
|
51
|
+
strictValidation: boolean;
|
|
52
|
+
/** Lifecycle enforcement configuration (Section 12.2) */
|
|
53
|
+
lifecycleEnforcement: LifecycleEnforcementConfig;
|
|
54
|
+
/** Protocol validation configuration (Section 12.3) */
|
|
55
|
+
protocolValidation: ProtocolValidationConfig;
|
|
56
|
+
/** Rate limiting configuration (Section 13.3) */
|
|
57
|
+
rateLimiting: RateLimitingConfig;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Default lifecycle enforcement configuration
|
|
61
|
+
*/
|
|
62
|
+
export declare const DEFAULT_LIFECYCLE_ENFORCEMENT: LifecycleEnforcementConfig;
|
|
63
|
+
/**
|
|
64
|
+
* Default protocol validation configuration
|
|
65
|
+
*/
|
|
66
|
+
export declare const DEFAULT_PROTOCOL_VALIDATION: ProtocolValidationConfig;
|
|
67
|
+
/**
|
|
68
|
+
* Default configuration values
|
|
69
|
+
*/
|
|
70
|
+
export declare const DEFAULT_CONFIG: MCPConfig;
|
|
71
|
+
/**
|
|
72
|
+
* Environment variable prefix for CLEO configuration
|
|
73
|
+
*/
|
|
74
|
+
export declare const ENV_PREFIX = "CLEO_MCP_";
|
|
75
|
+
/**
|
|
76
|
+
* Configuration schema for validation
|
|
77
|
+
*/
|
|
78
|
+
export declare const CONFIG_SCHEMA: {
|
|
79
|
+
readonly cliPath: {
|
|
80
|
+
readonly type: "string";
|
|
81
|
+
readonly required: true;
|
|
82
|
+
};
|
|
83
|
+
readonly timeout: {
|
|
84
|
+
readonly type: "number";
|
|
85
|
+
readonly min: 1000;
|
|
86
|
+
readonly max: 300000;
|
|
87
|
+
};
|
|
88
|
+
readonly logLevel: {
|
|
89
|
+
readonly type: "string";
|
|
90
|
+
readonly enum: readonly ["debug", "info", "warn", "error"];
|
|
91
|
+
};
|
|
92
|
+
readonly enableMetrics: {
|
|
93
|
+
readonly type: "boolean";
|
|
94
|
+
};
|
|
95
|
+
readonly maxRetries: {
|
|
96
|
+
readonly type: "number";
|
|
97
|
+
readonly min: 0;
|
|
98
|
+
readonly max: 10;
|
|
99
|
+
};
|
|
100
|
+
readonly queryCache: {
|
|
101
|
+
readonly type: "boolean";
|
|
102
|
+
};
|
|
103
|
+
readonly queryCacheTtl: {
|
|
104
|
+
readonly type: "number";
|
|
105
|
+
readonly min: 0;
|
|
106
|
+
readonly max: 600000;
|
|
107
|
+
};
|
|
108
|
+
readonly auditLog: {
|
|
109
|
+
readonly type: "boolean";
|
|
110
|
+
};
|
|
111
|
+
readonly strictValidation: {
|
|
112
|
+
readonly type: "boolean";
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/lib/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,iEAAiE;IACjE,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC;IACpC,uDAAuD;IACvD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,uDAAuD;IACvD,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,wCAAwC;IACxC,UAAU,EAAE,OAAO,CAAC;IACpB,8CAA8C;IAC9C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,6CAA6C;IAC7C,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAEhB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAEhB,gDAAgD;IAChD,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAE9C,qDAAqD;IACrD,aAAa,EAAE,OAAO,CAAC;IAEvB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IAEnB,yCAAyC;IACzC,UAAU,EAAE,OAAO,CAAC;IAEpB,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAC;IAEtB,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAElB,6CAA6C;IAC7C,gBAAgB,EAAE,OAAO,CAAC;IAE1B,yDAAyD;IACzD,oBAAoB,EAAE,0BAA0B,CAAC;IAEjD,uDAAuD;IACvD,kBAAkB,EAAE,wBAAwB,CAAC;IAE7C,iDAAiD;IACjD,YAAY,EAAE,kBAAkB,CAAC;CAClC;AAED;;GAEG;AACH,eAAO,MAAM,6BAA6B,EAAE,0BAI3C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,wBAIzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,SAa5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,cAAc,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUhB,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default configuration values for CLEO MCP Server
|
|
3
|
+
*
|
|
4
|
+
* @task T2928
|
|
5
|
+
* @task T3145
|
|
6
|
+
* @task T2916 - Rate limiting configuration (Section 13.3)
|
|
7
|
+
*/
|
|
8
|
+
import { DEFAULT_RATE_LIMITING } from './rate-limiter.js';
|
|
9
|
+
export { DEFAULT_RATE_LIMITING } from './rate-limiter.js';
|
|
10
|
+
/**
|
|
11
|
+
* Default lifecycle enforcement configuration
|
|
12
|
+
*/
|
|
13
|
+
export const DEFAULT_LIFECYCLE_ENFORCEMENT = {
|
|
14
|
+
mode: 'strict',
|
|
15
|
+
allowSkip: ['consensus'],
|
|
16
|
+
emergencyBypass: false,
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Default protocol validation configuration
|
|
20
|
+
*/
|
|
21
|
+
export const DEFAULT_PROTOCOL_VALIDATION = {
|
|
22
|
+
strictMode: true,
|
|
23
|
+
blockOnViolation: true,
|
|
24
|
+
logViolations: true,
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Default configuration values
|
|
28
|
+
*/
|
|
29
|
+
export const DEFAULT_CONFIG = {
|
|
30
|
+
cliPath: 'cleo',
|
|
31
|
+
timeout: 30000, // 30 seconds
|
|
32
|
+
logLevel: 'info',
|
|
33
|
+
enableMetrics: false,
|
|
34
|
+
maxRetries: 3,
|
|
35
|
+
queryCache: true,
|
|
36
|
+
queryCacheTtl: 30000, // 30 seconds
|
|
37
|
+
auditLog: true,
|
|
38
|
+
strictValidation: true,
|
|
39
|
+
lifecycleEnforcement: { ...DEFAULT_LIFECYCLE_ENFORCEMENT },
|
|
40
|
+
protocolValidation: { ...DEFAULT_PROTOCOL_VALIDATION },
|
|
41
|
+
rateLimiting: { ...DEFAULT_RATE_LIMITING },
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Environment variable prefix for CLEO configuration
|
|
45
|
+
*/
|
|
46
|
+
export const ENV_PREFIX = 'CLEO_MCP_';
|
|
47
|
+
/**
|
|
48
|
+
* Configuration schema for validation
|
|
49
|
+
*/
|
|
50
|
+
export const CONFIG_SCHEMA = {
|
|
51
|
+
cliPath: { type: 'string', required: true },
|
|
52
|
+
timeout: { type: 'number', min: 1000, max: 300000 },
|
|
53
|
+
logLevel: { type: 'string', enum: ['debug', 'info', 'warn', 'error'] },
|
|
54
|
+
enableMetrics: { type: 'boolean' },
|
|
55
|
+
maxRetries: { type: 'number', min: 0, max: 10 },
|
|
56
|
+
queryCache: { type: 'boolean' },
|
|
57
|
+
queryCacheTtl: { type: 'number', min: 0, max: 600000 },
|
|
58
|
+
auditLog: { type: 'boolean' },
|
|
59
|
+
strictValidation: { type: 'boolean' },
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/lib/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAgE1D;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAA+B;IACvE,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,CAAC,WAAW,CAAC;IACxB,eAAe,EAAE,KAAK;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAA6B;IACnE,UAAU,EAAE,IAAI;IAChB,gBAAgB,EAAE,IAAI;IACtB,aAAa,EAAE,IAAI;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAc;IACvC,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,KAAK,EAAE,aAAa;IAC7B,QAAQ,EAAE,MAAM;IAChB,aAAa,EAAE,KAAK;IACpB,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,KAAK,EAAE,aAAa;IACnC,QAAQ,EAAE,IAAI;IACd,gBAAgB,EAAE,IAAI;IACtB,oBAAoB,EAAE,EAAE,GAAG,6BAA6B,EAAE;IAC1D,kBAAkB,EAAE,EAAE,GAAG,2BAA2B,EAAE;IACtD,YAAY,EAAE,EAAE,GAAG,qBAAqB,EAAE;CAC3C,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3C,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE;IACnD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IACtE,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAClC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IAC/C,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC/B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE;IACtD,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC7B,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;CAC7B,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error handler for CLEO CLI operations
|
|
3
|
+
*
|
|
4
|
+
* @task T2913
|
|
5
|
+
* @epic T2908
|
|
6
|
+
*
|
|
7
|
+
* Processes CLI errors, generates contextual fix commands,
|
|
8
|
+
* and formats error responses with recovery suggestions.
|
|
9
|
+
*/
|
|
10
|
+
import { ErrorSeverity, ErrorCategory, type ErrorAlternative } from './exit-codes.js';
|
|
11
|
+
/**
|
|
12
|
+
* CLI error context
|
|
13
|
+
*/
|
|
14
|
+
export interface CLIErrorContext {
|
|
15
|
+
command: string;
|
|
16
|
+
args: string[];
|
|
17
|
+
stderr?: string;
|
|
18
|
+
stdout?: string;
|
|
19
|
+
details?: Record<string, string>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Formatted error response
|
|
23
|
+
*/
|
|
24
|
+
export interface FormattedError {
|
|
25
|
+
code: string;
|
|
26
|
+
name: string;
|
|
27
|
+
exitCode: number;
|
|
28
|
+
message: string;
|
|
29
|
+
description: string;
|
|
30
|
+
category: ErrorCategory;
|
|
31
|
+
severity: ErrorSeverity;
|
|
32
|
+
retryable: boolean;
|
|
33
|
+
fix?: string;
|
|
34
|
+
alternatives?: ErrorAlternative[];
|
|
35
|
+
context?: Record<string, string>;
|
|
36
|
+
documentation?: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Handle CLI error and format response
|
|
40
|
+
*/
|
|
41
|
+
export declare function handleCLIError(exitCode: number, context: CLIErrorContext): FormattedError;
|
|
42
|
+
/**
|
|
43
|
+
* Check if error is recoverable (can be fixed by user action)
|
|
44
|
+
*/
|
|
45
|
+
export declare function isRecoverable(exitCode: number): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Format error for MCP response
|
|
48
|
+
*/
|
|
49
|
+
export declare function formatErrorForMCP(error: FormattedError): {
|
|
50
|
+
success: false;
|
|
51
|
+
error: {
|
|
52
|
+
code: string;
|
|
53
|
+
exitCode: number;
|
|
54
|
+
message: string;
|
|
55
|
+
details?: Record<string, unknown>;
|
|
56
|
+
fix?: string;
|
|
57
|
+
alternatives?: ErrorAlternative[];
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Add error context from operation details
|
|
62
|
+
*/
|
|
63
|
+
export declare function addErrorContext(context: CLIErrorContext, additionalDetails: Record<string, string>): CLIErrorContext;
|
|
64
|
+
/**
|
|
65
|
+
* Create error context from operation
|
|
66
|
+
*/
|
|
67
|
+
export declare function createErrorContext(command: string, args: string[], stderr?: string, stdout?: string, details?: Record<string, string>): CLIErrorContext;
|
|
68
|
+
/**
|
|
69
|
+
* Error with exit code information for retry logic
|
|
70
|
+
*
|
|
71
|
+
* @task T3142
|
|
72
|
+
*/
|
|
73
|
+
export interface CLIError extends Error {
|
|
74
|
+
exitCode: number;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Result of a retried operation, including retry metadata
|
|
78
|
+
*
|
|
79
|
+
* @task T3142
|
|
80
|
+
*/
|
|
81
|
+
export interface RetryResult<T> {
|
|
82
|
+
result: T;
|
|
83
|
+
attempts: number;
|
|
84
|
+
retriedExitCodes: number[];
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Retry an operation with exponential backoff for retryable errors.
|
|
88
|
+
*
|
|
89
|
+
* Per MCP-SERVER-SPECIFICATION Section 9.1:
|
|
90
|
+
* - Exit codes 7, 20-22, 60-63 support retry with exponential backoff
|
|
91
|
+
* - Max 3 attempts by default
|
|
92
|
+
* - Backoff: 2^attempt seconds
|
|
93
|
+
* - Tracks retry count in response metadata
|
|
94
|
+
*
|
|
95
|
+
* Non-recoverable errors (Section 9.2) are never retried and
|
|
96
|
+
* immediately rethrown.
|
|
97
|
+
*
|
|
98
|
+
* @task T3142
|
|
99
|
+
*/
|
|
100
|
+
export declare function retryOperation<T>(fn: () => Promise<T>, maxAttempts?: number): Promise<RetryResult<T>>;
|
|
101
|
+
//# sourceMappingURL=error-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/lib/error-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAEL,aAAa,EACb,aAAa,EAQb,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,aAAa,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,eAAe,GACvB,cAAc,CA0BhB;AAuHD;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAgDvD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG;IACxD,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;KACnC,CAAC;CACH,CAmBA;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,eAAe,EACxB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACxC,eAAe,CAQjB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,eAAe,CAQjB;AAED;;;;GAIG;AACH,MAAM,WAAW,QAAS,SAAQ,KAAK;IACrC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,MAAM,EAAE,CAAC,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AASD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,WAAW,GAAE,MAA6B,GACzC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAuCzB"}
|