@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,548 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Verification Gate System for CLEO MCP Server
|
|
3
|
+
*
|
|
4
|
+
* @task T2936
|
|
5
|
+
* @epic T2908
|
|
6
|
+
*
|
|
7
|
+
* Implements 4-layer validation gate system:
|
|
8
|
+
* Layer 1: Schema Validation (JSON Schema compliance)
|
|
9
|
+
* Layer 2: Semantic Validation (Business rules)
|
|
10
|
+
* Layer 3: Referential Validation (Cross-entity integrity)
|
|
11
|
+
* Layer 4: Protocol Validation (RCSD-IVTR lifecycle)
|
|
12
|
+
*
|
|
13
|
+
* Reference: docs/specs/MCP-SERVER-SPECIFICATION.md Section 7
|
|
14
|
+
*/
|
|
15
|
+
import { ExitCode, ErrorCategory, ErrorSeverity } from './exit-codes.js';
|
|
16
|
+
import { ProtocolEnforcer } from './protocol-enforcement.js';
|
|
17
|
+
import { validateLayer1Schema, validateLayer2Semantic, validateLayer3Referential, validateLayer4Protocol, } from './gate-validators.js';
|
|
18
|
+
/**
|
|
19
|
+
* Gate layer enumeration
|
|
20
|
+
*/
|
|
21
|
+
export var GateLayer;
|
|
22
|
+
(function (GateLayer) {
|
|
23
|
+
GateLayer[GateLayer["SCHEMA"] = 1] = "SCHEMA";
|
|
24
|
+
GateLayer[GateLayer["SEMANTIC"] = 2] = "SEMANTIC";
|
|
25
|
+
GateLayer[GateLayer["REFERENTIAL"] = 3] = "REFERENTIAL";
|
|
26
|
+
GateLayer[GateLayer["PROTOCOL"] = 4] = "PROTOCOL";
|
|
27
|
+
})(GateLayer || (GateLayer = {}));
|
|
28
|
+
/**
|
|
29
|
+
* Gate status for each layer
|
|
30
|
+
*/
|
|
31
|
+
export var GateStatus;
|
|
32
|
+
(function (GateStatus) {
|
|
33
|
+
GateStatus["PENDING"] = "pending";
|
|
34
|
+
GateStatus["PASSED"] = "passed";
|
|
35
|
+
GateStatus["FAILED"] = "failed";
|
|
36
|
+
GateStatus["BLOCKED"] = "blocked";
|
|
37
|
+
GateStatus["SKIPPED"] = "skipped";
|
|
38
|
+
})(GateStatus || (GateStatus = {}));
|
|
39
|
+
/**
|
|
40
|
+
* Main Verification Gate class
|
|
41
|
+
*
|
|
42
|
+
* Orchestrates 4-layer validation and determines pass/fail status.
|
|
43
|
+
* Each layer must pass before proceeding to the next.
|
|
44
|
+
*/
|
|
45
|
+
export class VerificationGate {
|
|
46
|
+
protocolEnforcer;
|
|
47
|
+
strictMode;
|
|
48
|
+
constructor(strictMode = true) {
|
|
49
|
+
this.protocolEnforcer = new ProtocolEnforcer(strictMode);
|
|
50
|
+
this.strictMode = strictMode;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Execute all 4 gate layers sequentially
|
|
54
|
+
*
|
|
55
|
+
* Stops at first failure unless in advisory mode.
|
|
56
|
+
*/
|
|
57
|
+
async verifyOperation(context) {
|
|
58
|
+
const startTime = Date.now();
|
|
59
|
+
const layers = {};
|
|
60
|
+
// Layer 1: Schema Validation
|
|
61
|
+
const schemaResult = await this.runLayer(GateLayer.SCHEMA, () => validateLayer1Schema(context));
|
|
62
|
+
layers[GateLayer.SCHEMA] = schemaResult;
|
|
63
|
+
if (!schemaResult.passed && this.strictMode) {
|
|
64
|
+
return this.buildFailureResult(layers, GateLayer.SCHEMA);
|
|
65
|
+
}
|
|
66
|
+
// Layer 2: Semantic Validation
|
|
67
|
+
const semanticResult = await this.runLayer(GateLayer.SEMANTIC, () => validateLayer2Semantic(context));
|
|
68
|
+
layers[GateLayer.SEMANTIC] = semanticResult;
|
|
69
|
+
if (!semanticResult.passed && this.strictMode) {
|
|
70
|
+
return this.buildFailureResult(layers, GateLayer.SEMANTIC);
|
|
71
|
+
}
|
|
72
|
+
// Layer 3: Referential Validation
|
|
73
|
+
const referentialResult = await this.runLayer(GateLayer.REFERENTIAL, () => validateLayer3Referential(context));
|
|
74
|
+
layers[GateLayer.REFERENTIAL] = referentialResult;
|
|
75
|
+
if (!referentialResult.passed && this.strictMode) {
|
|
76
|
+
return this.buildFailureResult(layers, GateLayer.REFERENTIAL);
|
|
77
|
+
}
|
|
78
|
+
// Layer 4: Protocol Validation
|
|
79
|
+
const protocolResult = await this.runLayer(GateLayer.PROTOCOL, () => validateLayer4Protocol(context, this.protocolEnforcer));
|
|
80
|
+
layers[GateLayer.PROTOCOL] = protocolResult;
|
|
81
|
+
if (!protocolResult.passed && this.strictMode) {
|
|
82
|
+
return this.buildFailureResult(layers, GateLayer.PROTOCOL);
|
|
83
|
+
}
|
|
84
|
+
// All gates passed
|
|
85
|
+
return this.buildSuccessResult(layers);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Run a single validation layer with timing
|
|
89
|
+
*/
|
|
90
|
+
async runLayer(layer, validator) {
|
|
91
|
+
const startTime = Date.now();
|
|
92
|
+
try {
|
|
93
|
+
const result = await validator();
|
|
94
|
+
result.duration_ms = Date.now() - startTime;
|
|
95
|
+
return result;
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
// Convert exceptions to layer failures
|
|
99
|
+
return {
|
|
100
|
+
layer,
|
|
101
|
+
status: GateStatus.FAILED,
|
|
102
|
+
passed: false,
|
|
103
|
+
violations: [
|
|
104
|
+
{
|
|
105
|
+
layer,
|
|
106
|
+
severity: ErrorSeverity.ERROR,
|
|
107
|
+
code: 'E_VALIDATION_ERROR',
|
|
108
|
+
message: error instanceof Error ? error.message : String(error),
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
duration_ms: Date.now() - startTime,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Build success result when all gates pass
|
|
117
|
+
*/
|
|
118
|
+
buildSuccessResult(layers) {
|
|
119
|
+
return {
|
|
120
|
+
passed: true,
|
|
121
|
+
layers,
|
|
122
|
+
totalViolations: 0,
|
|
123
|
+
exitCode: ExitCode.SUCCESS,
|
|
124
|
+
category: ErrorCategory.GENERAL,
|
|
125
|
+
summary: 'All verification gates passed',
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Build failure result when a gate fails
|
|
130
|
+
*/
|
|
131
|
+
buildFailureResult(layers, blockedAt) {
|
|
132
|
+
const failedLayer = layers[blockedAt];
|
|
133
|
+
const totalViolations = Object.values(layers).reduce((sum, layer) => sum + layer.violations.length, 0);
|
|
134
|
+
// Determine exit code based on layer and violation type
|
|
135
|
+
let exitCode = ExitCode.E_VALIDATION_ERROR;
|
|
136
|
+
let category = ErrorCategory.GENERAL;
|
|
137
|
+
if (blockedAt === GateLayer.SCHEMA) {
|
|
138
|
+
exitCode = ExitCode.E_VALIDATION_ERROR;
|
|
139
|
+
category = ErrorCategory.GENERAL;
|
|
140
|
+
}
|
|
141
|
+
else if (blockedAt === GateLayer.SEMANTIC) {
|
|
142
|
+
exitCode = this.determineSemanticExitCode(failedLayer.violations);
|
|
143
|
+
category = ErrorCategory.HIERARCHY;
|
|
144
|
+
}
|
|
145
|
+
else if (blockedAt === GateLayer.REFERENTIAL) {
|
|
146
|
+
exitCode = this.determineReferentialExitCode(failedLayer.violations);
|
|
147
|
+
category = ErrorCategory.HIERARCHY;
|
|
148
|
+
}
|
|
149
|
+
else if (blockedAt === GateLayer.PROTOCOL) {
|
|
150
|
+
exitCode = this.determineProtocolExitCode(failedLayer.violations);
|
|
151
|
+
category = ErrorCategory.PROTOCOL;
|
|
152
|
+
}
|
|
153
|
+
return {
|
|
154
|
+
passed: false,
|
|
155
|
+
layers,
|
|
156
|
+
totalViolations,
|
|
157
|
+
exitCode,
|
|
158
|
+
category,
|
|
159
|
+
summary: `Verification failed at layer ${blockedAt}: ${failedLayer.violations[0]?.message || 'Unknown error'}`,
|
|
160
|
+
blockedAt,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Determine semantic layer exit code from violations
|
|
165
|
+
*/
|
|
166
|
+
determineSemanticExitCode(violations) {
|
|
167
|
+
// Check for specific semantic errors
|
|
168
|
+
for (const v of violations) {
|
|
169
|
+
if (v.code.includes('PARENT'))
|
|
170
|
+
return ExitCode.E_PARENT_NOT_FOUND;
|
|
171
|
+
if (v.code.includes('DEPTH'))
|
|
172
|
+
return ExitCode.E_DEPTH_EXCEEDED;
|
|
173
|
+
if (v.code.includes('SIBLING'))
|
|
174
|
+
return ExitCode.E_SIBLING_LIMIT;
|
|
175
|
+
if (v.code.includes('CIRCULAR'))
|
|
176
|
+
return ExitCode.E_CIRCULAR_REFERENCE;
|
|
177
|
+
if (v.code.includes('SESSION'))
|
|
178
|
+
return ExitCode.E_SESSION_REQUIRED;
|
|
179
|
+
}
|
|
180
|
+
return ExitCode.E_VALIDATION_ERROR;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Determine referential layer exit code from violations
|
|
184
|
+
*/
|
|
185
|
+
determineReferentialExitCode(violations) {
|
|
186
|
+
for (const v of violations) {
|
|
187
|
+
if (v.code.includes('NOT_FOUND'))
|
|
188
|
+
return ExitCode.E_NOT_FOUND;
|
|
189
|
+
if (v.code.includes('PARENT'))
|
|
190
|
+
return ExitCode.E_PARENT_NOT_FOUND;
|
|
191
|
+
if (v.code.includes('DEPENDENCY'))
|
|
192
|
+
return ExitCode.E_DEPENDENCY_ERROR;
|
|
193
|
+
}
|
|
194
|
+
return ExitCode.E_NOT_FOUND;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Determine protocol layer exit code from violations
|
|
198
|
+
*/
|
|
199
|
+
determineProtocolExitCode(violations) {
|
|
200
|
+
// Protocol violations map directly to 60-70 range
|
|
201
|
+
for (const v of violations) {
|
|
202
|
+
if (v.code.includes('RESEARCH'))
|
|
203
|
+
return ExitCode.E_PROTOCOL_RESEARCH;
|
|
204
|
+
if (v.code.includes('CONSENSUS'))
|
|
205
|
+
return ExitCode.E_PROTOCOL_CONSENSUS;
|
|
206
|
+
if (v.code.includes('SPECIFICATION'))
|
|
207
|
+
return ExitCode.E_PROTOCOL_SPECIFICATION;
|
|
208
|
+
if (v.code.includes('DECOMPOSITION'))
|
|
209
|
+
return ExitCode.E_PROTOCOL_DECOMPOSITION;
|
|
210
|
+
if (v.code.includes('IMPLEMENTATION'))
|
|
211
|
+
return ExitCode.E_PROTOCOL_IMPLEMENTATION;
|
|
212
|
+
if (v.code.includes('CONTRIBUTION'))
|
|
213
|
+
return ExitCode.E_PROTOCOL_CONTRIBUTION;
|
|
214
|
+
if (v.code.includes('RELEASE'))
|
|
215
|
+
return ExitCode.E_PROTOCOL_RELEASE;
|
|
216
|
+
if (v.code.includes('VALIDATION'))
|
|
217
|
+
return ExitCode.E_PROTOCOL_VALIDATION;
|
|
218
|
+
if (v.code.includes('TESTING'))
|
|
219
|
+
return ExitCode.E_TESTS_SKIPPED;
|
|
220
|
+
if (v.code.includes('LIFECYCLE'))
|
|
221
|
+
return ExitCode.E_LIFECYCLE_GATE_FAILED;
|
|
222
|
+
}
|
|
223
|
+
return ExitCode.E_PROTOCOL_GENERIC;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Check if an operation requires gate validation
|
|
227
|
+
*
|
|
228
|
+
* All mutate operations require validation.
|
|
229
|
+
* Query operations skip validation for performance.
|
|
230
|
+
*/
|
|
231
|
+
static requiresValidation(context) {
|
|
232
|
+
// All mutate operations require validation
|
|
233
|
+
if (context.gateway === 'cleo_mutate') {
|
|
234
|
+
return true;
|
|
235
|
+
}
|
|
236
|
+
// Query operations are read-only, skip validation
|
|
237
|
+
return false;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Get human-readable layer name
|
|
241
|
+
*/
|
|
242
|
+
static getLayerName(layer) {
|
|
243
|
+
const names = {
|
|
244
|
+
[GateLayer.SCHEMA]: 'Schema Validation',
|
|
245
|
+
[GateLayer.SEMANTIC]: 'Semantic Validation',
|
|
246
|
+
[GateLayer.REFERENTIAL]: 'Referential Validation',
|
|
247
|
+
[GateLayer.PROTOCOL]: 'Protocol Validation',
|
|
248
|
+
};
|
|
249
|
+
return names[layer];
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Factory function for creating verification gates
|
|
254
|
+
*/
|
|
255
|
+
export function createVerificationGate(strictMode = true) {
|
|
256
|
+
return new VerificationGate(strictMode);
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Export gate layer sequence for external use
|
|
260
|
+
*/
|
|
261
|
+
export const GATE_SEQUENCE = [
|
|
262
|
+
GateLayer.SCHEMA,
|
|
263
|
+
GateLayer.SEMANTIC,
|
|
264
|
+
GateLayer.REFERENTIAL,
|
|
265
|
+
GateLayer.PROTOCOL,
|
|
266
|
+
];
|
|
267
|
+
// ============================================================================
|
|
268
|
+
// Section 7: Workflow Verification Gates
|
|
269
|
+
// ============================================================================
|
|
270
|
+
/**
|
|
271
|
+
* Workflow gate names per MCP-SERVER-SPECIFICATION.md Section 7.1
|
|
272
|
+
*
|
|
273
|
+
* Sequence: implemented → testsPassed → qaPassed → cleanupDone → securityPassed → documented
|
|
274
|
+
*
|
|
275
|
+
* @task T3141
|
|
276
|
+
*/
|
|
277
|
+
export var WorkflowGateName;
|
|
278
|
+
(function (WorkflowGateName) {
|
|
279
|
+
WorkflowGateName["IMPLEMENTED"] = "implemented";
|
|
280
|
+
WorkflowGateName["TESTS_PASSED"] = "testsPassed";
|
|
281
|
+
WorkflowGateName["QA_PASSED"] = "qaPassed";
|
|
282
|
+
WorkflowGateName["CLEANUP_DONE"] = "cleanupDone";
|
|
283
|
+
WorkflowGateName["SECURITY_PASSED"] = "securityPassed";
|
|
284
|
+
WorkflowGateName["DOCUMENTED"] = "documented";
|
|
285
|
+
})(WorkflowGateName || (WorkflowGateName = {}));
|
|
286
|
+
/**
|
|
287
|
+
* Complete workflow gate definitions per Section 7.2
|
|
288
|
+
*/
|
|
289
|
+
export const WORKFLOW_GATE_DEFINITIONS = [
|
|
290
|
+
{
|
|
291
|
+
name: WorkflowGateName.IMPLEMENTED,
|
|
292
|
+
agent: 'coder',
|
|
293
|
+
dependsOn: [],
|
|
294
|
+
description: 'Code implementation complete',
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
name: WorkflowGateName.TESTS_PASSED,
|
|
298
|
+
agent: 'testing',
|
|
299
|
+
dependsOn: [WorkflowGateName.IMPLEMENTED],
|
|
300
|
+
description: 'All tests passing',
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
name: WorkflowGateName.QA_PASSED,
|
|
304
|
+
agent: 'qa',
|
|
305
|
+
dependsOn: [WorkflowGateName.TESTS_PASSED],
|
|
306
|
+
description: 'QA review approved',
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
name: WorkflowGateName.CLEANUP_DONE,
|
|
310
|
+
agent: 'cleanup',
|
|
311
|
+
dependsOn: [WorkflowGateName.QA_PASSED],
|
|
312
|
+
description: 'Code cleanup finished',
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
name: WorkflowGateName.SECURITY_PASSED,
|
|
316
|
+
agent: 'security',
|
|
317
|
+
dependsOn: [WorkflowGateName.CLEANUP_DONE],
|
|
318
|
+
description: 'Security audit passed',
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
name: WorkflowGateName.DOCUMENTED,
|
|
322
|
+
agent: 'docs',
|
|
323
|
+
dependsOn: [WorkflowGateName.SECURITY_PASSED],
|
|
324
|
+
description: 'Documentation complete',
|
|
325
|
+
},
|
|
326
|
+
];
|
|
327
|
+
/**
|
|
328
|
+
* Ordered workflow gate sequence per Section 7.1
|
|
329
|
+
*/
|
|
330
|
+
export const WORKFLOW_GATE_SEQUENCE = [
|
|
331
|
+
WorkflowGateName.IMPLEMENTED,
|
|
332
|
+
WorkflowGateName.TESTS_PASSED,
|
|
333
|
+
WorkflowGateName.QA_PASSED,
|
|
334
|
+
WorkflowGateName.CLEANUP_DONE,
|
|
335
|
+
WorkflowGateName.SECURITY_PASSED,
|
|
336
|
+
WorkflowGateName.DOCUMENTED,
|
|
337
|
+
];
|
|
338
|
+
/**
|
|
339
|
+
* Map from gate name to definition for fast lookup
|
|
340
|
+
*/
|
|
341
|
+
const GATE_DEF_MAP = Object.fromEntries(WORKFLOW_GATE_DEFINITIONS.map((d) => [d.name, d]));
|
|
342
|
+
/**
|
|
343
|
+
* WorkflowGateTracker
|
|
344
|
+
*
|
|
345
|
+
* Tracks the status of all 6 workflow verification gates for a task.
|
|
346
|
+
* Implements Section 7.4 failure cascade behavior: when a gate fails,
|
|
347
|
+
* all downstream gates reset to null.
|
|
348
|
+
*
|
|
349
|
+
* @task T3141
|
|
350
|
+
*/
|
|
351
|
+
export class WorkflowGateTracker {
|
|
352
|
+
gates;
|
|
353
|
+
constructor() {
|
|
354
|
+
this.gates = new Map();
|
|
355
|
+
for (const def of WORKFLOW_GATE_DEFINITIONS) {
|
|
356
|
+
this.gates.set(def.name, {
|
|
357
|
+
name: def.name,
|
|
358
|
+
status: null,
|
|
359
|
+
agent: def.agent,
|
|
360
|
+
updatedAt: null,
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Get the status of a specific gate
|
|
366
|
+
*/
|
|
367
|
+
getGateStatus(gateName) {
|
|
368
|
+
const gate = this.gates.get(gateName);
|
|
369
|
+
return gate ? gate.status : null;
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Get the full state of a specific gate
|
|
373
|
+
*/
|
|
374
|
+
getGateState(gateName) {
|
|
375
|
+
return this.gates.get(gateName);
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Get all gate states
|
|
379
|
+
*/
|
|
380
|
+
getAllGates() {
|
|
381
|
+
return WORKFLOW_GATE_SEQUENCE.map((name) => this.gates.get(name));
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Check if a gate can be attempted (all dependencies passed)
|
|
385
|
+
*/
|
|
386
|
+
canAttempt(gateName) {
|
|
387
|
+
const def = GATE_DEF_MAP[gateName];
|
|
388
|
+
if (!def)
|
|
389
|
+
return false;
|
|
390
|
+
for (const dep of def.dependsOn) {
|
|
391
|
+
const depState = this.gates.get(dep);
|
|
392
|
+
if (!depState || depState.status !== 'passed') {
|
|
393
|
+
return false;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
return true;
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Mark a gate as passed.
|
|
400
|
+
*
|
|
401
|
+
* Returns false if the gate cannot be attempted (dependencies not met).
|
|
402
|
+
*/
|
|
403
|
+
passGate(gateName, agent) {
|
|
404
|
+
if (!this.isValidGate(gateName))
|
|
405
|
+
return false;
|
|
406
|
+
if (!this.canAttempt(gateName))
|
|
407
|
+
return false;
|
|
408
|
+
const gate = this.gates.get(gateName);
|
|
409
|
+
const expectedAgent = GATE_DEF_MAP[gateName].agent;
|
|
410
|
+
if (agent && agent !== expectedAgent)
|
|
411
|
+
return false;
|
|
412
|
+
gate.status = 'passed';
|
|
413
|
+
gate.updatedAt = new Date().toISOString();
|
|
414
|
+
delete gate.failureReason;
|
|
415
|
+
return true;
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* Mark a gate as failed.
|
|
419
|
+
*
|
|
420
|
+
* Per Section 7.4: When a gate fails, all downstream gates reset to null.
|
|
421
|
+
*/
|
|
422
|
+
failGate(gateName, reason) {
|
|
423
|
+
if (!this.isValidGate(gateName))
|
|
424
|
+
return false;
|
|
425
|
+
const gate = this.gates.get(gateName);
|
|
426
|
+
gate.status = 'failed';
|
|
427
|
+
gate.updatedAt = new Date().toISOString();
|
|
428
|
+
if (reason)
|
|
429
|
+
gate.failureReason = reason;
|
|
430
|
+
// Section 7.4 failure cascade: reset all downstream gates to null
|
|
431
|
+
this.cascadeReset(gateName);
|
|
432
|
+
return true;
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Reset a gate and all downstream gates to null.
|
|
436
|
+
*
|
|
437
|
+
* Used for failure cascade per Section 7.4.
|
|
438
|
+
*/
|
|
439
|
+
cascadeReset(failedGateName) {
|
|
440
|
+
const failedIndex = WORKFLOW_GATE_SEQUENCE.indexOf(failedGateName);
|
|
441
|
+
if (failedIndex === -1)
|
|
442
|
+
return;
|
|
443
|
+
// Reset all gates downstream of the failed gate
|
|
444
|
+
for (let i = failedIndex + 1; i < WORKFLOW_GATE_SEQUENCE.length; i++) {
|
|
445
|
+
const downstreamName = WORKFLOW_GATE_SEQUENCE[i];
|
|
446
|
+
const downstreamGate = this.gates.get(downstreamName);
|
|
447
|
+
downstreamGate.status = null;
|
|
448
|
+
downstreamGate.updatedAt = null;
|
|
449
|
+
delete downstreamGate.failureReason;
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* Update blocked status for all gates based on current state.
|
|
454
|
+
*
|
|
455
|
+
* A gate is blocked if it hasn't been attempted (null) and its
|
|
456
|
+
* dependencies are not all passed.
|
|
457
|
+
*/
|
|
458
|
+
updateBlockedStatus() {
|
|
459
|
+
for (const name of WORKFLOW_GATE_SEQUENCE) {
|
|
460
|
+
const gate = this.gates.get(name);
|
|
461
|
+
// Only update gates that are null (not yet attempted)
|
|
462
|
+
if (gate.status === null && !this.canAttempt(name)) {
|
|
463
|
+
gate.status = 'blocked';
|
|
464
|
+
}
|
|
465
|
+
// If a gate was blocked but can now be attempted, reset to null
|
|
466
|
+
if (gate.status === 'blocked' && this.canAttempt(name)) {
|
|
467
|
+
gate.status = null;
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
/**
|
|
472
|
+
* Check if all gates have passed
|
|
473
|
+
*/
|
|
474
|
+
allPassed() {
|
|
475
|
+
for (const name of WORKFLOW_GATE_SEQUENCE) {
|
|
476
|
+
if (this.gates.get(name).status !== 'passed')
|
|
477
|
+
return false;
|
|
478
|
+
}
|
|
479
|
+
return true;
|
|
480
|
+
}
|
|
481
|
+
/**
|
|
482
|
+
* Get all gates that are currently blocked or have null status
|
|
483
|
+
*/
|
|
484
|
+
getPendingGates() {
|
|
485
|
+
return this.getAllGates().filter((g) => g.status === null || g.status === 'blocked');
|
|
486
|
+
}
|
|
487
|
+
/**
|
|
488
|
+
* Get the next gate that can be attempted
|
|
489
|
+
*/
|
|
490
|
+
getNextAttemptable() {
|
|
491
|
+
for (const name of WORKFLOW_GATE_SEQUENCE) {
|
|
492
|
+
const gate = this.gates.get(name);
|
|
493
|
+
if (gate.status !== 'passed' && this.canAttempt(name)) {
|
|
494
|
+
return name;
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
return null;
|
|
498
|
+
}
|
|
499
|
+
/**
|
|
500
|
+
* Get downstream gates of a given gate (not including the gate itself)
|
|
501
|
+
*/
|
|
502
|
+
getDownstreamGates(gateName) {
|
|
503
|
+
const index = WORKFLOW_GATE_SEQUENCE.indexOf(gateName);
|
|
504
|
+
if (index === -1)
|
|
505
|
+
return [];
|
|
506
|
+
return WORKFLOW_GATE_SEQUENCE.slice(index + 1);
|
|
507
|
+
}
|
|
508
|
+
/**
|
|
509
|
+
* Serialize gate states to a plain record
|
|
510
|
+
*/
|
|
511
|
+
toRecord() {
|
|
512
|
+
const record = {};
|
|
513
|
+
for (const name of WORKFLOW_GATE_SEQUENCE) {
|
|
514
|
+
record[name] = this.gates.get(name).status;
|
|
515
|
+
}
|
|
516
|
+
return record;
|
|
517
|
+
}
|
|
518
|
+
/**
|
|
519
|
+
* Restore gate states from a record
|
|
520
|
+
*/
|
|
521
|
+
fromRecord(record) {
|
|
522
|
+
for (const [name, status] of Object.entries(record)) {
|
|
523
|
+
const gate = this.gates.get(name);
|
|
524
|
+
if (gate) {
|
|
525
|
+
gate.status = status;
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
/**
|
|
530
|
+
* Check if a gate name is valid
|
|
531
|
+
*/
|
|
532
|
+
isValidGate(gateName) {
|
|
533
|
+
return this.gates.has(gateName);
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
/**
|
|
537
|
+
* Validate a workflow gate name string
|
|
538
|
+
*/
|
|
539
|
+
export function isValidWorkflowGateName(name) {
|
|
540
|
+
return WORKFLOW_GATE_SEQUENCE.includes(name);
|
|
541
|
+
}
|
|
542
|
+
/**
|
|
543
|
+
* Get the definition for a workflow gate
|
|
544
|
+
*/
|
|
545
|
+
export function getWorkflowGateDefinition(name) {
|
|
546
|
+
return GATE_DEF_MAP[name];
|
|
547
|
+
}
|
|
548
|
+
//# sourceMappingURL=verification-gates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification-gates.js","sourceRoot":"","sources":["../../src/lib/verification-gates.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain Operation Types
|
|
3
|
+
*
|
|
4
|
+
* Defines the structure for domain-specific operations and routing.
|
|
5
|
+
*/
|
|
6
|
+
import { DomainName } from './gateway.js';
|
|
7
|
+
/**
|
|
8
|
+
* Operation metadata
|
|
9
|
+
*/
|
|
10
|
+
export interface OperationMeta {
|
|
11
|
+
domain: DomainName;
|
|
12
|
+
operation: string;
|
|
13
|
+
description: string;
|
|
14
|
+
gateway: 'cleo_query' | 'cleo_mutate';
|
|
15
|
+
retryable?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Domain operation definition
|
|
19
|
+
*/
|
|
20
|
+
export interface DomainOperation<TParams = unknown, TResult = unknown> {
|
|
21
|
+
meta: OperationMeta;
|
|
22
|
+
params: TParams;
|
|
23
|
+
result: TResult;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Operation registry type for domain implementations
|
|
27
|
+
*/
|
|
28
|
+
export type OperationRegistry = Record<string, DomainOperation<any, any>>;
|
|
29
|
+
//# sourceMappingURL=domain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../src/types/domain.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,YAAY,GAAG,aAAa,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;IACnE,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain.js","sourceRoot":"","sources":["../../src/types/domain.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|