@cleocode/cleo 2026.3.37 → 2026.3.39
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 +565 -0
- package/bin/postinstall.js +0 -0
- package/completions/bash-completion.sh +0 -0
- package/completions/zsh-completion.zsh +0 -0
- package/dist/cli/index.js +3507 -3631
- package/dist/cli/index.js.map +4 -4
- package/dist/mcp/index.js +3311 -3215
- package/dist/mcp/index.js.map +4 -4
- package/migrations/drizzle-brain/20260318205549_initial/migration.sql +0 -0
- package/migrations/drizzle-brain/20260318205549_initial/snapshot.json +0 -0
- package/migrations/drizzle-nexus/20260318205558_initial/migration.sql +0 -0
- package/migrations/drizzle-nexus/20260318205558_initial/snapshot.json +0 -0
- package/migrations/drizzle-tasks/20260318205539_initial/migration.sql +0 -0
- package/migrations/drizzle-tasks/20260318205539_initial/snapshot.json +0 -0
- package/package.json +17 -12
- package/dist/cli/commander-shim.d.ts +0 -108
- package/dist/cli/commander-shim.d.ts.map +0 -1
- package/dist/cli/commander-shim.js +0 -229
- package/dist/cli/commander-shim.js.map +0 -1
- package/dist/cli/commands/add.d.ts +0 -12
- package/dist/cli/commands/add.d.ts.map +0 -1
- package/dist/cli/commands/add.js +0 -91
- package/dist/cli/commands/add.js.map +0 -1
- package/dist/cli/commands/adr.d.ts +0 -27
- package/dist/cli/commands/adr.d.ts.map +0 -1
- package/dist/cli/commands/adr.js +0 -79
- package/dist/cli/commands/adr.js.map +0 -1
- package/dist/cli/commands/analyze.d.ts +0 -12
- package/dist/cli/commands/analyze.d.ts.map +0 -1
- package/dist/cli/commands/analyze.js +0 -20
- package/dist/cli/commands/analyze.js.map +0 -1
- package/dist/cli/commands/archive-stats.d.ts +0 -18
- package/dist/cli/commands/archive-stats.d.ts.map +0 -1
- package/dist/cli/commands/archive-stats.js +0 -49
- package/dist/cli/commands/archive-stats.js.map +0 -1
- package/dist/cli/commands/archive.d.ts +0 -12
- package/dist/cli/commands/archive.d.ts.map +0 -1
- package/dist/cli/commands/archive.js +0 -32
- package/dist/cli/commands/archive.js.map +0 -1
- package/dist/cli/commands/backup.d.ts +0 -8
- package/dist/cli/commands/backup.d.ts.map +0 -1
- package/dist/cli/commands/backup.js +0 -35
- package/dist/cli/commands/backup.js.map +0 -1
- package/dist/cli/commands/blockers.d.ts +0 -7
- package/dist/cli/commands/blockers.d.ts.map +0 -1
- package/dist/cli/commands/blockers.js +0 -16
- package/dist/cli/commands/blockers.js.map +0 -1
- package/dist/cli/commands/briefing.d.ts +0 -22
- package/dist/cli/commands/briefing.d.ts.map +0 -1
- package/dist/cli/commands/briefing.js +0 -45
- package/dist/cli/commands/briefing.js.map +0 -1
- package/dist/cli/commands/bug.d.ts +0 -12
- package/dist/cli/commands/bug.d.ts.map +0 -1
- package/dist/cli/commands/bug.js +0 -81
- package/dist/cli/commands/bug.js.map +0 -1
- package/dist/cli/commands/checkpoint.d.ts +0 -15
- package/dist/cli/commands/checkpoint.d.ts.map +0 -1
- package/dist/cli/commands/checkpoint.js +0 -92
- package/dist/cli/commands/checkpoint.js.map +0 -1
- package/dist/cli/commands/commands.d.ts +0 -13
- package/dist/cli/commands/commands.d.ts.map +0 -1
- package/dist/cli/commands/commands.js +0 -30
- package/dist/cli/commands/commands.js.map +0 -1
- package/dist/cli/commands/complete.d.ts +0 -12
- package/dist/cli/commands/complete.d.ts.map +0 -1
- package/dist/cli/commands/complete.js +0 -43
- package/dist/cli/commands/complete.js.map +0 -1
- package/dist/cli/commands/compliance.d.ts +0 -8
- package/dist/cli/commands/compliance.d.ts.map +0 -1
- package/dist/cli/commands/compliance.js +0 -85
- package/dist/cli/commands/compliance.js.map +0 -1
- package/dist/cli/commands/config.d.ts +0 -9
- package/dist/cli/commands/config.d.ts.map +0 -1
- package/dist/cli/commands/config.js +0 -43
- package/dist/cli/commands/config.js.map +0 -1
- package/dist/cli/commands/consensus.d.ts +0 -13
- package/dist/cli/commands/consensus.d.ts.map +0 -1
- package/dist/cli/commands/consensus.js +0 -45
- package/dist/cli/commands/consensus.js.map +0 -1
- package/dist/cli/commands/context.d.ts +0 -8
- package/dist/cli/commands/context.d.ts.map +0 -1
- package/dist/cli/commands/context.js +0 -40
- package/dist/cli/commands/context.js.map +0 -1
- package/dist/cli/commands/contribution.d.ts +0 -13
- package/dist/cli/commands/contribution.d.ts.map +0 -1
- package/dist/cli/commands/contribution.js +0 -41
- package/dist/cli/commands/contribution.js.map +0 -1
- package/dist/cli/commands/current.d.ts +0 -13
- package/dist/cli/commands/current.d.ts.map +0 -1
- package/dist/cli/commands/current.js +0 -20
- package/dist/cli/commands/current.js.map +0 -1
- package/dist/cli/commands/dash.d.ts +0 -12
- package/dist/cli/commands/dash.d.ts.map +0 -1
- package/dist/cli/commands/dash.js +0 -24
- package/dist/cli/commands/dash.js.map +0 -1
- package/dist/cli/commands/decomposition.d.ts +0 -13
- package/dist/cli/commands/decomposition.d.ts.map +0 -1
- package/dist/cli/commands/decomposition.js +0 -45
- package/dist/cli/commands/decomposition.js.map +0 -1
- package/dist/cli/commands/delete.d.ts +0 -12
- package/dist/cli/commands/delete.d.ts.map +0 -1
- package/dist/cli/commands/delete.js +0 -37
- package/dist/cli/commands/delete.js.map +0 -1
- package/dist/cli/commands/deps.d.ts +0 -9
- package/dist/cli/commands/deps.d.ts.map +0 -1
- package/dist/cli/commands/deps.js +0 -73
- package/dist/cli/commands/deps.js.map +0 -1
- package/dist/cli/commands/detect-drift.d.ts +0 -15
- package/dist/cli/commands/detect-drift.d.ts.map +0 -1
- package/dist/cli/commands/detect-drift.js +0 -385
- package/dist/cli/commands/detect-drift.js.map +0 -1
- package/dist/cli/commands/docs.d.ts +0 -13
- package/dist/cli/commands/docs.d.ts.map +0 -1
- package/dist/cli/commands/docs.js +0 -170
- package/dist/cli/commands/docs.js.map +0 -1
- package/dist/cli/commands/doctor.d.ts +0 -11
- package/dist/cli/commands/doctor.d.ts.map +0 -1
- package/dist/cli/commands/doctor.js +0 -54
- package/dist/cli/commands/doctor.js.map +0 -1
- package/dist/cli/commands/dynamic.d.ts +0 -24
- package/dist/cli/commands/dynamic.d.ts.map +0 -1
- package/dist/cli/commands/dynamic.js +0 -27
- package/dist/cli/commands/dynamic.js.map +0 -1
- package/dist/cli/commands/env.d.ts +0 -12
- package/dist/cli/commands/env.d.ts.map +0 -1
- package/dist/cli/commands/env.js +0 -44
- package/dist/cli/commands/env.js.map +0 -1
- package/dist/cli/commands/exists.d.ts +0 -7
- package/dist/cli/commands/exists.d.ts.map +0 -1
- package/dist/cli/commands/exists.js +0 -33
- package/dist/cli/commands/exists.js.map +0 -1
- package/dist/cli/commands/export-tasks.d.ts +0 -10
- package/dist/cli/commands/export-tasks.d.ts.map +0 -1
- package/dist/cli/commands/export-tasks.js +0 -47
- package/dist/cli/commands/export-tasks.js.map +0 -1
- package/dist/cli/commands/export.d.ts +0 -9
- package/dist/cli/commands/export.d.ts.map +0 -1
- package/dist/cli/commands/export.js +0 -46
- package/dist/cli/commands/export.js.map +0 -1
- package/dist/cli/commands/extract.d.ts +0 -16
- package/dist/cli/commands/extract.d.ts.map +0 -1
- package/dist/cli/commands/extract.js +0 -43
- package/dist/cli/commands/extract.js.map +0 -1
- package/dist/cli/commands/find.d.ts +0 -14
- package/dist/cli/commands/find.d.ts.map +0 -1
- package/dist/cli/commands/find.js +0 -70
- package/dist/cli/commands/find.js.map +0 -1
- package/dist/cli/commands/generate-changelog.d.ts +0 -14
- package/dist/cli/commands/generate-changelog.d.ts.map +0 -1
- package/dist/cli/commands/generate-changelog.js +0 -252
- package/dist/cli/commands/generate-changelog.js.map +0 -1
- package/dist/cli/commands/grade.d.ts +0 -13
- package/dist/cli/commands/grade.d.ts.map +0 -1
- package/dist/cli/commands/grade.js +0 -16
- package/dist/cli/commands/grade.js.map +0 -1
- package/dist/cli/commands/history.d.ts +0 -9
- package/dist/cli/commands/history.d.ts.map +0 -1
- package/dist/cli/commands/history.js +0 -30
- package/dist/cli/commands/history.js.map +0 -1
- package/dist/cli/commands/implementation.d.ts +0 -13
- package/dist/cli/commands/implementation.d.ts.map +0 -1
- package/dist/cli/commands/implementation.js +0 -41
- package/dist/cli/commands/implementation.js.map +0 -1
- package/dist/cli/commands/import-tasks.d.ts +0 -10
- package/dist/cli/commands/import-tasks.d.ts.map +0 -1
- package/dist/cli/commands/import-tasks.js +0 -38
- package/dist/cli/commands/import-tasks.js.map +0 -1
- package/dist/cli/commands/import.d.ts +0 -9
- package/dist/cli/commands/import.d.ts.map +0 -1
- package/dist/cli/commands/import.js +0 -28
- package/dist/cli/commands/import.js.map +0 -1
- package/dist/cli/commands/init.d.ts +0 -34
- package/dist/cli/commands/init.d.ts.map +0 -1
- package/dist/cli/commands/init.js +0 -94
- package/dist/cli/commands/init.js.map +0 -1
- package/dist/cli/commands/inject.d.ts +0 -8
- package/dist/cli/commands/inject.d.ts.map +0 -1
- package/dist/cli/commands/inject.js +0 -28
- package/dist/cli/commands/inject.js.map +0 -1
- package/dist/cli/commands/install-global.d.ts +0 -19
- package/dist/cli/commands/install-global.d.ts.map +0 -1
- package/dist/cli/commands/install-global.js +0 -54
- package/dist/cli/commands/install-global.js.map +0 -1
- package/dist/cli/commands/issue.d.ts +0 -14
- package/dist/cli/commands/issue.d.ts.map +0 -1
- package/dist/cli/commands/issue.js +0 -105
- package/dist/cli/commands/issue.js.map +0 -1
- package/dist/cli/commands/labels.d.ts +0 -13
- package/dist/cli/commands/labels.d.ts.map +0 -1
- package/dist/cli/commands/labels.js +0 -44
- package/dist/cli/commands/labels.js.map +0 -1
- package/dist/cli/commands/lifecycle.d.ts +0 -8
- package/dist/cli/commands/lifecycle.d.ts.map +0 -1
- package/dist/cli/commands/lifecycle.js +0 -72
- package/dist/cli/commands/lifecycle.js.map +0 -1
- package/dist/cli/commands/list.d.ts +0 -14
- package/dist/cli/commands/list.d.ts.map +0 -1
- package/dist/cli/commands/list.js +0 -71
- package/dist/cli/commands/list.js.map +0 -1
- package/dist/cli/commands/log.d.ts +0 -12
- package/dist/cli/commands/log.d.ts.map +0 -1
- package/dist/cli/commands/log.js +0 -30
- package/dist/cli/commands/log.js.map +0 -1
- package/dist/cli/commands/map.d.ts +0 -10
- package/dist/cli/commands/map.d.ts.map +0 -1
- package/dist/cli/commands/map.js +0 -23
- package/dist/cli/commands/map.js.map +0 -1
- package/dist/cli/commands/mcp-install.d.ts +0 -17
- package/dist/cli/commands/mcp-install.d.ts.map +0 -1
- package/dist/cli/commands/mcp-install.js +0 -128
- package/dist/cli/commands/mcp-install.js.map +0 -1
- package/dist/cli/commands/memory-brain.d.ts +0 -14
- package/dist/cli/commands/memory-brain.d.ts.map +0 -1
- package/dist/cli/commands/memory-brain.js +0 -151
- package/dist/cli/commands/memory-brain.js.map +0 -1
- package/dist/cli/commands/migrate-claude-mem.d.ts +0 -18
- package/dist/cli/commands/migrate-claude-mem.d.ts.map +0 -1
- package/dist/cli/commands/migrate-claude-mem.js +0 -60
- package/dist/cli/commands/migrate-claude-mem.js.map +0 -1
- package/dist/cli/commands/next.d.ts +0 -9
- package/dist/cli/commands/next.d.ts.map +0 -1
- package/dist/cli/commands/next.js +0 -20
- package/dist/cli/commands/next.js.map +0 -1
- package/dist/cli/commands/nexus.d.ts +0 -16
- package/dist/cli/commands/nexus.d.ts.map +0 -1
- package/dist/cli/commands/nexus.js +0 -155
- package/dist/cli/commands/nexus.js.map +0 -1
- package/dist/cli/commands/observe.d.ts +0 -9
- package/dist/cli/commands/observe.d.ts.map +0 -1
- package/dist/cli/commands/observe.js +0 -39
- package/dist/cli/commands/observe.js.map +0 -1
- package/dist/cli/commands/ops.d.ts +0 -10
- package/dist/cli/commands/ops.d.ts.map +0 -1
- package/dist/cli/commands/ops.js +0 -19
- package/dist/cli/commands/ops.js.map +0 -1
- package/dist/cli/commands/orchestrate.d.ts +0 -8
- package/dist/cli/commands/orchestrate.d.ts.map +0 -1
- package/dist/cli/commands/orchestrate.js +0 -58
- package/dist/cli/commands/orchestrate.js.map +0 -1
- package/dist/cli/commands/otel.d.ts +0 -12
- package/dist/cli/commands/otel.d.ts.map +0 -1
- package/dist/cli/commands/otel.js +0 -128
- package/dist/cli/commands/otel.js.map +0 -1
- package/dist/cli/commands/phase.d.ts +0 -12
- package/dist/cli/commands/phase.d.ts.map +0 -1
- package/dist/cli/commands/phase.js +0 -88
- package/dist/cli/commands/phase.js.map +0 -1
- package/dist/cli/commands/phases.d.ts +0 -12
- package/dist/cli/commands/phases.d.ts.map +0 -1
- package/dist/cli/commands/phases.js +0 -37
- package/dist/cli/commands/phases.js.map +0 -1
- package/dist/cli/commands/plan.d.ts +0 -8
- package/dist/cli/commands/plan.d.ts.map +0 -1
- package/dist/cli/commands/plan.js +0 -15
- package/dist/cli/commands/plan.js.map +0 -1
- package/dist/cli/commands/promote.d.ts +0 -7
- package/dist/cli/commands/promote.d.ts.map +0 -1
- package/dist/cli/commands/promote.js +0 -15
- package/dist/cli/commands/promote.js.map +0 -1
- package/dist/cli/commands/refresh-memory.d.ts +0 -9
- package/dist/cli/commands/refresh-memory.d.ts.map +0 -1
- package/dist/cli/commands/refresh-memory.js +0 -24
- package/dist/cli/commands/refresh-memory.js.map +0 -1
- package/dist/cli/commands/relates.d.ts +0 -12
- package/dist/cli/commands/relates.d.ts.map +0 -1
- package/dist/cli/commands/relates.js +0 -53
- package/dist/cli/commands/relates.js.map +0 -1
- package/dist/cli/commands/release.d.ts +0 -8
- package/dist/cli/commands/release.d.ts.map +0 -1
- package/dist/cli/commands/release.js +0 -72
- package/dist/cli/commands/release.js.map +0 -1
- package/dist/cli/commands/remote.d.ts +0 -12
- package/dist/cli/commands/remote.d.ts.map +0 -1
- package/dist/cli/commands/remote.js +0 -207
- package/dist/cli/commands/remote.js.map +0 -1
- package/dist/cli/commands/reorder.d.ts +0 -7
- package/dist/cli/commands/reorder.d.ts.map +0 -1
- package/dist/cli/commands/reorder.js +0 -20
- package/dist/cli/commands/reorder.js.map +0 -1
- package/dist/cli/commands/reparent.d.ts +0 -10
- package/dist/cli/commands/reparent.d.ts.map +0 -1
- package/dist/cli/commands/reparent.js +0 -19
- package/dist/cli/commands/reparent.js.map +0 -1
- package/dist/cli/commands/research.d.ts +0 -8
- package/dist/cli/commands/research.d.ts.map +0 -1
- package/dist/cli/commands/research.js +0 -129
- package/dist/cli/commands/research.js.map +0 -1
- package/dist/cli/commands/restore.d.ts +0 -11
- package/dist/cli/commands/restore.d.ts.map +0 -1
- package/dist/cli/commands/restore.js +0 -225
- package/dist/cli/commands/restore.js.map +0 -1
- package/dist/cli/commands/roadmap.d.ts +0 -8
- package/dist/cli/commands/roadmap.d.ts.map +0 -1
- package/dist/cli/commands/roadmap.js +0 -21
- package/dist/cli/commands/roadmap.js.map +0 -1
- package/dist/cli/commands/safestop.d.ts +0 -14
- package/dist/cli/commands/safestop.d.ts.map +0 -1
- package/dist/cli/commands/safestop.js +0 -32
- package/dist/cli/commands/safestop.js.map +0 -1
- package/dist/cli/commands/self-update.d.ts +0 -15
- package/dist/cli/commands/self-update.d.ts.map +0 -1
- package/dist/cli/commands/self-update.js +0 -332
- package/dist/cli/commands/self-update.js.map +0 -1
- package/dist/cli/commands/sequence.d.ts +0 -8
- package/dist/cli/commands/sequence.d.ts.map +0 -1
- package/dist/cli/commands/sequence.js +0 -30
- package/dist/cli/commands/sequence.js.map +0 -1
- package/dist/cli/commands/session.d.ts +0 -12
- package/dist/cli/commands/session.d.ts.map +0 -1
- package/dist/cli/commands/session.js +0 -160
- package/dist/cli/commands/session.js.map +0 -1
- package/dist/cli/commands/show.d.ts +0 -13
- package/dist/cli/commands/show.d.ts.map +0 -1
- package/dist/cli/commands/show.js +0 -20
- package/dist/cli/commands/show.js.map +0 -1
- package/dist/cli/commands/skills.d.ts +0 -13
- package/dist/cli/commands/skills.d.ts.map +0 -1
- package/dist/cli/commands/skills.js +0 -131
- package/dist/cli/commands/skills.js.map +0 -1
- package/dist/cli/commands/snapshot.d.ts +0 -9
- package/dist/cli/commands/snapshot.d.ts.map +0 -1
- package/dist/cli/commands/snapshot.js +0 -50
- package/dist/cli/commands/snapshot.js.map +0 -1
- package/dist/cli/commands/specification.d.ts +0 -13
- package/dist/cli/commands/specification.d.ts.map +0 -1
- package/dist/cli/commands/specification.js +0 -45
- package/dist/cli/commands/specification.js.map +0 -1
- package/dist/cli/commands/start.d.ts +0 -13
- package/dist/cli/commands/start.d.ts.map +0 -1
- package/dist/cli/commands/start.js +0 -20
- package/dist/cli/commands/start.js.map +0 -1
- package/dist/cli/commands/stats.d.ts +0 -12
- package/dist/cli/commands/stats.d.ts.map +0 -1
- package/dist/cli/commands/stats.js +0 -23
- package/dist/cli/commands/stats.js.map +0 -1
- package/dist/cli/commands/sticky.d.ts +0 -16
- package/dist/cli/commands/sticky.d.ts.map +0 -1
- package/dist/cli/commands/sticky.js +0 -211
- package/dist/cli/commands/sticky.js.map +0 -1
- package/dist/cli/commands/stop.d.ts +0 -13
- package/dist/cli/commands/stop.d.ts.map +0 -1
- package/dist/cli/commands/stop.js +0 -20
- package/dist/cli/commands/stop.js.map +0 -1
- package/dist/cli/commands/sync.d.ts +0 -13
- package/dist/cli/commands/sync.d.ts.map +0 -1
- package/dist/cli/commands/sync.js +0 -48
- package/dist/cli/commands/sync.js.map +0 -1
- package/dist/cli/commands/testing.d.ts +0 -13
- package/dist/cli/commands/testing.d.ts.map +0 -1
- package/dist/cli/commands/testing.js +0 -64
- package/dist/cli/commands/testing.js.map +0 -1
- package/dist/cli/commands/token.d.ts +0 -10
- package/dist/cli/commands/token.d.ts.map +0 -1
- package/dist/cli/commands/token.js +0 -135
- package/dist/cli/commands/token.js.map +0 -1
- package/dist/cli/commands/update.d.ts +0 -12
- package/dist/cli/commands/update.d.ts.map +0 -1
- package/dist/cli/commands/update.js +0 -77
- package/dist/cli/commands/update.js.map +0 -1
- package/dist/cli/commands/upgrade.d.ts +0 -16
- package/dist/cli/commands/upgrade.d.ts.map +0 -1
- package/dist/cli/commands/upgrade.js +0 -74
- package/dist/cli/commands/upgrade.js.map +0 -1
- package/dist/cli/commands/validate.d.ts +0 -12
- package/dist/cli/commands/validate.d.ts.map +0 -1
- package/dist/cli/commands/validate.js +0 -23
- package/dist/cli/commands/validate.js.map +0 -1
- package/dist/cli/commands/verify.d.ts +0 -8
- package/dist/cli/commands/verify.d.ts.map +0 -1
- package/dist/cli/commands/verify.js +0 -28
- package/dist/cli/commands/verify.js.map +0 -1
- package/dist/cli/commands/web.d.ts +0 -13
- package/dist/cli/commands/web.d.ts.map +0 -1
- package/dist/cli/commands/web.js +0 -264
- package/dist/cli/commands/web.js.map +0 -1
- package/dist/cli/field-context.d.ts +0 -32
- package/dist/cli/field-context.d.ts.map +0 -1
- package/dist/cli/field-context.js +0 -47
- package/dist/cli/field-context.js.map +0 -1
- package/dist/cli/format-context.d.ts +0 -32
- package/dist/cli/format-context.d.ts.map +0 -1
- package/dist/cli/format-context.js +0 -50
- package/dist/cli/format-context.js.map +0 -1
- package/dist/cli/index.d.ts +0 -12
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/logger-bootstrap.d.ts +0 -6
- package/dist/cli/logger-bootstrap.d.ts.map +0 -1
- package/dist/cli/logger-bootstrap.js +0 -10
- package/dist/cli/logger-bootstrap.js.map +0 -1
- package/dist/cli/middleware/output-format.d.ts +0 -30
- package/dist/cli/middleware/output-format.d.ts.map +0 -1
- package/dist/cli/middleware/output-format.js +0 -35
- package/dist/cli/middleware/output-format.js.map +0 -1
- package/dist/cli/progress.d.ts +0 -84
- package/dist/cli/progress.d.ts.map +0 -1
- package/dist/cli/progress.js +0 -169
- package/dist/cli/progress.js.map +0 -1
- package/dist/cli/renderers/colors.d.ts +0 -32
- package/dist/cli/renderers/colors.d.ts.map +0 -1
- package/dist/cli/renderers/colors.js +0 -141
- package/dist/cli/renderers/colors.js.map +0 -1
- package/dist/cli/renderers/error.d.ts +0 -13
- package/dist/cli/renderers/error.d.ts.map +0 -1
- package/dist/cli/renderers/error.js +0 -42
- package/dist/cli/renderers/error.js.map +0 -1
- package/dist/cli/renderers/index.d.ts +0 -59
- package/dist/cli/renderers/index.d.ts.map +0 -1
- package/dist/cli/renderers/index.js +0 -184
- package/dist/cli/renderers/index.js.map +0 -1
- package/dist/cli/renderers/normalizer.d.ts +0 -21
- package/dist/cli/renderers/normalizer.d.ts.map +0 -1
- package/dist/cli/renderers/normalizer.js +0 -106
- package/dist/cli/renderers/normalizer.js.map +0 -1
- package/dist/cli/renderers/system.d.ts +0 -25
- package/dist/cli/renderers/system.d.ts.map +0 -1
- package/dist/cli/renderers/system.js +0 -416
- package/dist/cli/renderers/system.js.map +0 -1
- package/dist/cli/renderers/tasks.d.ts +0 -28
- package/dist/cli/renderers/tasks.d.ts.map +0 -1
- package/dist/cli/renderers/tasks.js +0 -308
- package/dist/cli/renderers/tasks.js.map +0 -1
- package/dist/dispatch/adapters/cli.d.ts +0 -67
- package/dist/dispatch/adapters/cli.d.ts.map +0 -1
- package/dist/dispatch/adapters/cli.js +0 -205
- package/dist/dispatch/adapters/cli.js.map +0 -1
- package/dist/dispatch/adapters/mcp.d.ts +0 -37
- package/dist/dispatch/adapters/mcp.d.ts.map +0 -1
- package/dist/dispatch/adapters/mcp.js +0 -122
- package/dist/dispatch/adapters/mcp.js.map +0 -1
- package/dist/dispatch/context/session-context.d.ts +0 -54
- package/dist/dispatch/context/session-context.d.ts.map +0 -1
- package/dist/dispatch/context/session-context.js +0 -61
- package/dist/dispatch/context/session-context.js.map +0 -1
- package/dist/dispatch/dispatcher.d.ts +0 -23
- package/dist/dispatch/dispatcher.d.ts.map +0 -1
- package/dist/dispatch/dispatcher.js +0 -84
- package/dist/dispatch/dispatcher.js.map +0 -1
- package/dist/dispatch/domains/_base.d.ts +0 -59
- package/dist/dispatch/domains/_base.d.ts.map +0 -1
- package/dist/dispatch/domains/_base.js +0 -77
- package/dist/dispatch/domains/_base.js.map +0 -1
- package/dist/dispatch/domains/_meta.d.ts +0 -23
- package/dist/dispatch/domains/_meta.d.ts.map +0 -1
- package/dist/dispatch/domains/_meta.js +0 -25
- package/dist/dispatch/domains/_meta.js.map +0 -1
- package/dist/dispatch/domains/_routing.d.ts +0 -8
- package/dist/dispatch/domains/_routing.d.ts.map +0 -1
- package/dist/dispatch/domains/_routing.js +0 -20
- package/dist/dispatch/domains/_routing.js.map +0 -1
- package/dist/dispatch/domains/admin.d.ts +0 -27
- package/dist/dispatch/domains/admin.d.ts.map +0 -1
- package/dist/dispatch/domains/admin.js +0 -672
- package/dist/dispatch/domains/admin.js.map +0 -1
- package/dist/dispatch/domains/check.d.ts +0 -24
- package/dist/dispatch/domains/check.d.ts.map +0 -1
- package/dist/dispatch/domains/check.js +0 -281
- package/dist/dispatch/domains/check.js.map +0 -1
- package/dist/dispatch/domains/index.d.ts +0 -26
- package/dist/dispatch/domains/index.d.ts.map +0 -1
- package/dist/dispatch/domains/index.js +0 -38
- package/dist/dispatch/domains/index.js.map +0 -1
- package/dist/dispatch/domains/memory.d.ts +0 -24
- package/dist/dispatch/domains/memory.d.ts.map +0 -1
- package/dist/dispatch/domains/memory.js +0 -305
- package/dist/dispatch/domains/memory.js.map +0 -1
- package/dist/dispatch/domains/nexus.d.ts +0 -24
- package/dist/dispatch/domains/nexus.d.ts.map +0 -1
- package/dist/dispatch/domains/nexus.js +0 -252
- package/dist/dispatch/domains/nexus.js.map +0 -1
- package/dist/dispatch/domains/orchestrate.d.ts +0 -21
- package/dist/dispatch/domains/orchestrate.d.ts.map +0 -1
- package/dist/dispatch/domains/orchestrate.js +0 -261
- package/dist/dispatch/domains/orchestrate.js.map +0 -1
- package/dist/dispatch/domains/pipeline.d.ts +0 -36
- package/dist/dispatch/domains/pipeline.d.ts.map +0 -1
- package/dist/dispatch/domains/pipeline.js +0 -554
- package/dist/dispatch/domains/pipeline.js.map +0 -1
- package/dist/dispatch/domains/session.d.ts +0 -24
- package/dist/dispatch/domains/session.d.ts.map +0 -1
- package/dist/dispatch/domains/session.js +0 -257
- package/dist/dispatch/domains/session.js.map +0 -1
- package/dist/dispatch/domains/sticky.d.ts +0 -22
- package/dist/dispatch/domains/sticky.d.ts.map +0 -1
- package/dist/dispatch/domains/sticky.js +0 -166
- package/dist/dispatch/domains/sticky.js.map +0 -1
- package/dist/dispatch/domains/tasks.d.ts +0 -26
- package/dist/dispatch/domains/tasks.d.ts.map +0 -1
- package/dist/dispatch/domains/tasks.js +0 -352
- package/dist/dispatch/domains/tasks.js.map +0 -1
- package/dist/dispatch/domains/tools.d.ts +0 -40
- package/dist/dispatch/domains/tools.d.ts.map +0 -1
- package/dist/dispatch/domains/tools.js +0 -497
- package/dist/dispatch/domains/tools.js.map +0 -1
- package/dist/dispatch/engines/_error.d.ts +0 -42
- package/dist/dispatch/engines/_error.d.ts.map +0 -1
- package/dist/dispatch/engines/_error.js +0 -201
- package/dist/dispatch/engines/_error.js.map +0 -1
- package/dist/dispatch/engines/codebase-map-engine.d.ts +0 -17
- package/dist/dispatch/engines/codebase-map-engine.d.ts.map +0 -1
- package/dist/dispatch/engines/codebase-map-engine.js +0 -29
- package/dist/dispatch/engines/codebase-map-engine.js.map +0 -1
- package/dist/dispatch/engines/config-engine.d.ts +0 -21
- package/dist/dispatch/engines/config-engine.d.ts.map +0 -1
- package/dist/dispatch/engines/config-engine.js +0 -45
- package/dist/dispatch/engines/config-engine.js.map +0 -1
- package/dist/dispatch/engines/hooks-engine.d.ts +0 -47
- package/dist/dispatch/engines/hooks-engine.d.ts.map +0 -1
- package/dist/dispatch/engines/hooks-engine.js +0 -57
- package/dist/dispatch/engines/hooks-engine.js.map +0 -1
- package/dist/dispatch/engines/init-engine.d.ts +0 -43
- package/dist/dispatch/engines/init-engine.d.ts.map +0 -1
- package/dist/dispatch/engines/init-engine.js +0 -73
- package/dist/dispatch/engines/init-engine.js.map +0 -1
- package/dist/dispatch/engines/lifecycle-engine.d.ts +0 -66
- package/dist/dispatch/engines/lifecycle-engine.d.ts.map +0 -1
- package/dist/dispatch/engines/lifecycle-engine.js +0 -213
- package/dist/dispatch/engines/lifecycle-engine.js.map +0 -1
- package/dist/dispatch/engines/memory-engine.d.ts +0 -10
- package/dist/dispatch/engines/memory-engine.d.ts.map +0 -1
- package/dist/dispatch/engines/memory-engine.js +0 -10
- package/dist/dispatch/engines/memory-engine.js.map +0 -1
- package/dist/dispatch/engines/nexus-engine.d.ts +0 -159
- package/dist/dispatch/engines/nexus-engine.d.ts.map +0 -1
- package/dist/dispatch/engines/nexus-engine.js +0 -329
- package/dist/dispatch/engines/nexus-engine.js.map +0 -1
- package/dist/dispatch/engines/orchestrate-engine.d.ts +0 -133
- package/dist/dispatch/engines/orchestrate-engine.d.ts.map +0 -1
- package/dist/dispatch/engines/orchestrate-engine.js +0 -770
- package/dist/dispatch/engines/orchestrate-engine.js.map +0 -1
- package/dist/dispatch/engines/pipeline-engine.d.ts +0 -51
- package/dist/dispatch/engines/pipeline-engine.d.ts.map +0 -1
- package/dist/dispatch/engines/pipeline-engine.js +0 -192
- package/dist/dispatch/engines/pipeline-engine.js.map +0 -1
- package/dist/dispatch/engines/release-engine.d.ts +0 -94
- package/dist/dispatch/engines/release-engine.d.ts.map +0 -1
- package/dist/dispatch/engines/release-engine.js +0 -670
- package/dist/dispatch/engines/release-engine.js.map +0 -1
- package/dist/dispatch/engines/session-engine.d.ts +0 -326
- package/dist/dispatch/engines/session-engine.d.ts.map +0 -1
- package/dist/dispatch/engines/session-engine.js +0 -869
- package/dist/dispatch/engines/session-engine.js.map +0 -1
- package/dist/dispatch/engines/sticky-engine.d.ts +0 -100
- package/dist/dispatch/engines/sticky-engine.d.ts.map +0 -1
- package/dist/dispatch/engines/sticky-engine.js +0 -181
- package/dist/dispatch/engines/sticky-engine.js.map +0 -1
- package/dist/dispatch/engines/system-engine.d.ts +0 -377
- package/dist/dispatch/engines/system-engine.d.ts.map +0 -1
- package/dist/dispatch/engines/system-engine.js +0 -980
- package/dist/dispatch/engines/system-engine.js.map +0 -1
- package/dist/dispatch/engines/task-engine.d.ts +0 -584
- package/dist/dispatch/engines/task-engine.d.ts.map +0 -1
- package/dist/dispatch/engines/task-engine.js +0 -881
- package/dist/dispatch/engines/task-engine.js.map +0 -1
- package/dist/dispatch/engines/template-parser.d.ts +0 -34
- package/dist/dispatch/engines/template-parser.d.ts.map +0 -1
- package/dist/dispatch/engines/template-parser.js +0 -57
- package/dist/dispatch/engines/template-parser.js.map +0 -1
- package/dist/dispatch/engines/tools-engine.d.ts +0 -285
- package/dist/dispatch/engines/tools-engine.d.ts.map +0 -1
- package/dist/dispatch/engines/tools-engine.js +0 -676
- package/dist/dispatch/engines/tools-engine.js.map +0 -1
- package/dist/dispatch/engines/validate-engine.d.ts +0 -154
- package/dist/dispatch/engines/validate-engine.d.ts.map +0 -1
- package/dist/dispatch/engines/validate-engine.js +0 -527
- package/dist/dispatch/engines/validate-engine.js.map +0 -1
- package/dist/dispatch/index.d.ts +0 -20
- package/dist/dispatch/index.d.ts.map +0 -1
- package/dist/dispatch/index.js +0 -19
- package/dist/dispatch/index.js.map +0 -1
- package/dist/dispatch/lib/capability-matrix.d.ts +0 -11
- package/dist/dispatch/lib/capability-matrix.d.ts.map +0 -1
- package/dist/dispatch/lib/capability-matrix.js +0 -10
- package/dist/dispatch/lib/capability-matrix.js.map +0 -1
- package/dist/dispatch/lib/config.d.ts +0 -16
- package/dist/dispatch/lib/config.d.ts.map +0 -1
- package/dist/dispatch/lib/config.js +0 -15
- package/dist/dispatch/lib/config.js.map +0 -1
- package/dist/dispatch/lib/engine.d.ts +0 -25
- package/dist/dispatch/lib/engine.d.ts.map +0 -1
- package/dist/dispatch/lib/engine.js +0 -44
- package/dist/dispatch/lib/engine.js.map +0 -1
- package/dist/dispatch/lib/meta.d.ts +0 -26
- package/dist/dispatch/lib/meta.d.ts.map +0 -1
- package/dist/dispatch/lib/meta.js +0 -37
- package/dist/dispatch/lib/meta.js.map +0 -1
- package/dist/dispatch/lib/param-utils.d.ts +0 -11
- package/dist/dispatch/lib/param-utils.d.ts.map +0 -1
- package/dist/dispatch/lib/param-utils.js +0 -10
- package/dist/dispatch/lib/param-utils.js.map +0 -1
- package/dist/dispatch/lib/projections.d.ts +0 -23
- package/dist/dispatch/lib/projections.d.ts.map +0 -1
- package/dist/dispatch/lib/projections.js +0 -48
- package/dist/dispatch/lib/projections.js.map +0 -1
- package/dist/dispatch/lib/schema-utils.d.ts +0 -42
- package/dist/dispatch/lib/schema-utils.d.ts.map +0 -1
- package/dist/dispatch/lib/schema-utils.js +0 -93
- package/dist/dispatch/lib/schema-utils.js.map +0 -1
- package/dist/dispatch/lib/security.d.ts +0 -12
- package/dist/dispatch/lib/security.d.ts.map +0 -1
- package/dist/dispatch/lib/security.js +0 -10
- package/dist/dispatch/lib/security.js.map +0 -1
- package/dist/dispatch/middleware/audit.d.ts +0 -23
- package/dist/dispatch/middleware/audit.d.ts.map +0 -1
- package/dist/dispatch/middleware/audit.js +0 -169
- package/dist/dispatch/middleware/audit.js.map +0 -1
- package/dist/dispatch/middleware/field-filter.d.ts +0 -24
- package/dist/dispatch/middleware/field-filter.d.ts.map +0 -1
- package/dist/dispatch/middleware/field-filter.js +0 -65
- package/dist/dispatch/middleware/field-filter.js.map +0 -1
- package/dist/dispatch/middleware/pipeline.d.ts +0 -20
- package/dist/dispatch/middleware/pipeline.d.ts.map +0 -1
- package/dist/dispatch/middleware/pipeline.js +0 -47
- package/dist/dispatch/middleware/pipeline.js.map +0 -1
- package/dist/dispatch/middleware/projection.d.ts +0 -35
- package/dist/dispatch/middleware/projection.d.ts.map +0 -1
- package/dist/dispatch/middleware/projection.js +0 -145
- package/dist/dispatch/middleware/projection.js.map +0 -1
- package/dist/dispatch/middleware/protocol-enforcement.d.ts +0 -12
- package/dist/dispatch/middleware/protocol-enforcement.d.ts.map +0 -1
- package/dist/dispatch/middleware/protocol-enforcement.js +0 -30
- package/dist/dispatch/middleware/protocol-enforcement.js.map +0 -1
- package/dist/dispatch/middleware/rate-limiter.d.ts +0 -30
- package/dist/dispatch/middleware/rate-limiter.d.ts.map +0 -1
- package/dist/dispatch/middleware/rate-limiter.js +0 -101
- package/dist/dispatch/middleware/rate-limiter.js.map +0 -1
- package/dist/dispatch/middleware/sanitizer.d.ts +0 -10
- package/dist/dispatch/middleware/sanitizer.d.ts.map +0 -1
- package/dist/dispatch/middleware/sanitizer.js +0 -42
- package/dist/dispatch/middleware/sanitizer.js.map +0 -1
- package/dist/dispatch/middleware/session-resolver.d.ts +0 -26
- package/dist/dispatch/middleware/session-resolver.d.ts.map +0 -1
- package/dist/dispatch/middleware/session-resolver.js +0 -65
- package/dist/dispatch/middleware/session-resolver.js.map +0 -1
- package/dist/dispatch/middleware/verification-gates.d.ts +0 -3
- package/dist/dispatch/middleware/verification-gates.d.ts.map +0 -1
- package/dist/dispatch/middleware/verification-gates.js +0 -40
- package/dist/dispatch/middleware/verification-gates.js.map +0 -1
- package/dist/dispatch/registry.d.ts +0 -91
- package/dist/dispatch/registry.d.ts.map +0 -1
- package/dist/dispatch/registry.js +0 -2693
- package/dist/dispatch/registry.js.map +0 -1
- package/dist/dispatch/types.d.ts +0 -218
- package/dist/dispatch/types.d.ts.map +0 -1
- package/dist/dispatch/types.js +0 -25
- package/dist/dispatch/types.js.map +0 -1
- package/dist/mcp/gateways/mutate.d.ts +0 -146
- package/dist/mcp/gateways/mutate.d.ts.map +0 -1
- package/dist/mcp/gateways/mutate.js +0 -1016
- package/dist/mcp/gateways/mutate.js.map +0 -1
- package/dist/mcp/gateways/query.d.ts +0 -138
- package/dist/mcp/gateways/query.d.ts.map +0 -1
- package/dist/mcp/gateways/query.js +0 -186
- package/dist/mcp/gateways/query.js.map +0 -1
- package/dist/mcp/index.d.ts +0 -16
- package/dist/mcp/index.d.ts.map +0 -1
- package/dist/mcp/lib/background-jobs.d.ts +0 -86
- package/dist/mcp/lib/background-jobs.d.ts.map +0 -1
- package/dist/mcp/lib/background-jobs.js +0 -183
- package/dist/mcp/lib/background-jobs.js.map +0 -1
- package/dist/mcp/lib/budget.d.ts +0 -35
- package/dist/mcp/lib/budget.d.ts.map +0 -1
- package/dist/mcp/lib/budget.js +0 -102
- package/dist/mcp/lib/budget.js.map +0 -1
- package/dist/mcp/lib/cache.d.ts +0 -78
- package/dist/mcp/lib/cache.d.ts.map +0 -1
- package/dist/mcp/lib/cache.js +0 -207
- package/dist/mcp/lib/cache.js.map +0 -1
- package/dist/mcp/lib/config.d.ts +0 -42
- package/dist/mcp/lib/config.d.ts.map +0 -1
- package/dist/mcp/lib/config.js +0 -241
- package/dist/mcp/lib/config.js.map +0 -1
- package/dist/mcp/lib/defaults.d.ts +0 -115
- package/dist/mcp/lib/defaults.d.ts.map +0 -1
- package/dist/mcp/lib/defaults.js +0 -61
- package/dist/mcp/lib/defaults.js.map +0 -1
- package/dist/mcp/lib/exit-codes.d.ts +0 -197
- package/dist/mcp/lib/exit-codes.d.ts.map +0 -1
- package/dist/mcp/lib/exit-codes.js +0 -1016
- package/dist/mcp/lib/exit-codes.js.map +0 -1
- package/dist/mcp/lib/gate-validators.d.ts +0 -13
- package/dist/mcp/lib/gate-validators.d.ts.map +0 -1
- package/dist/mcp/lib/gate-validators.js +0 -13
- package/dist/mcp/lib/gate-validators.js.map +0 -1
- package/dist/mcp/lib/gateway-meta.d.ts +0 -37
- package/dist/mcp/lib/gateway-meta.d.ts.map +0 -1
- package/dist/mcp/lib/gateway-meta.js +0 -50
- package/dist/mcp/lib/gateway-meta.js.map +0 -1
- package/dist/mcp/lib/job-manager-accessor.d.ts +0 -10
- package/dist/mcp/lib/job-manager-accessor.d.ts.map +0 -1
- package/dist/mcp/lib/job-manager-accessor.js +0 -14
- package/dist/mcp/lib/job-manager-accessor.js.map +0 -1
- package/dist/mcp/lib/protocol-enforcement.d.ts +0 -12
- package/dist/mcp/lib/protocol-enforcement.d.ts.map +0 -1
- package/dist/mcp/lib/protocol-enforcement.js +0 -12
- package/dist/mcp/lib/protocol-enforcement.js.map +0 -1
- package/dist/mcp/lib/protocol-rules.d.ts +0 -12
- package/dist/mcp/lib/protocol-rules.d.ts.map +0 -1
- package/dist/mcp/lib/protocol-rules.js +0 -12
- package/dist/mcp/lib/protocol-rules.js.map +0 -1
- package/dist/mcp/lib/rate-limiter.d.ts +0 -110
- package/dist/mcp/lib/rate-limiter.d.ts.map +0 -1
- package/dist/mcp/lib/rate-limiter.js +0 -208
- package/dist/mcp/lib/rate-limiter.js.map +0 -1
- package/dist/mcp/lib/router.d.ts +0 -58
- package/dist/mcp/lib/router.d.ts.map +0 -1
- package/dist/mcp/lib/router.js +0 -12
- package/dist/mcp/lib/router.js.map +0 -1
- package/dist/mcp/lib/security.d.ts +0 -161
- package/dist/mcp/lib/security.d.ts.map +0 -1
- package/dist/mcp/lib/security.js +0 -361
- package/dist/mcp/lib/security.js.map +0 -1
- package/dist/mcp/lib/verification-gates.d.ts +0 -13
- package/dist/mcp/lib/verification-gates.d.ts.map +0 -1
- package/dist/mcp/lib/verification-gates.js +0 -12
- package/dist/mcp/lib/verification-gates.js.map +0 -1
- package/dist/mcp/resources/budget.d.ts +0 -22
- package/dist/mcp/resources/budget.d.ts.map +0 -1
- package/dist/mcp/resources/budget.js +0 -46
- package/dist/mcp/resources/budget.js.map +0 -1
- package/dist/mcp/resources/index.d.ts +0 -53
- package/dist/mcp/resources/index.d.ts.map +0 -1
- package/dist/mcp/resources/index.js +0 -278
- package/dist/mcp/resources/index.js.map +0 -1
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Audit Trail Middleware for CQRS Dispatch Layer.
|
|
3
|
-
*
|
|
4
|
-
* Dual-writes every audited operation to:
|
|
5
|
-
* 1. Pino structured log (subsystem: 'audit') -> .cleo/logs/cleo.log
|
|
6
|
-
* 2. SQLite audit_log table -> .cleo/tasks.db
|
|
7
|
-
*
|
|
8
|
-
* Legacy JSON file logging (.cleo/audit-log.json + rotated audit-log-*.json)
|
|
9
|
-
* has been removed per ADR-019.
|
|
10
|
-
*
|
|
11
|
-
* @task T2920
|
|
12
|
-
* @task T2929
|
|
13
|
-
* @task T4844
|
|
14
|
-
*/
|
|
15
|
-
import { getLogger, getProjectInfoSync } from '@cleocode/core/internal';
|
|
16
|
-
import { getConfig } from '../lib/config.js';
|
|
17
|
-
const log = getLogger('audit');
|
|
18
|
-
/** Cached project hash — read once from project-info.json (immutable at runtime). */
|
|
19
|
-
let cachedProjectHash;
|
|
20
|
-
function resolveProjectHash() {
|
|
21
|
-
if (cachedProjectHash !== undefined)
|
|
22
|
-
return cachedProjectHash;
|
|
23
|
-
try {
|
|
24
|
-
const info = getProjectInfoSync();
|
|
25
|
-
cachedProjectHash = info?.projectHash ?? null;
|
|
26
|
-
}
|
|
27
|
-
catch {
|
|
28
|
-
cachedProjectHash = null;
|
|
29
|
-
}
|
|
30
|
-
return cachedProjectHash;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Check if the current context is a grade session.
|
|
34
|
-
*
|
|
35
|
-
* Now simplified: session-resolver middleware (T4959) populates request.sessionId
|
|
36
|
-
* before audit runs, so we only need to check grade mode flags.
|
|
37
|
-
*/
|
|
38
|
-
function isGradeMode() {
|
|
39
|
-
return process.env.CLEO_SESSION_GRADE === 'true';
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Get active session info from SQLite or env vars.
|
|
43
|
-
*
|
|
44
|
-
* Session-resolver middleware (T4959) now populates request.sessionId.
|
|
45
|
-
* This function is retained as a fallback for edge cases where
|
|
46
|
-
* session-resolver is not in the pipeline (e.g., tests, legacy callers).
|
|
47
|
-
*/
|
|
48
|
-
async function getActiveSessionInfo() {
|
|
49
|
-
const gradeId = process.env.CLEO_SESSION_GRADE_ID;
|
|
50
|
-
if (gradeId && process.env.CLEO_SESSION_GRADE === 'true') {
|
|
51
|
-
return { id: gradeId, gradeMode: true };
|
|
52
|
-
}
|
|
53
|
-
const envId = process.env.CLEO_SESSION_ID;
|
|
54
|
-
if (envId) {
|
|
55
|
-
return { id: envId, gradeMode: false };
|
|
56
|
-
}
|
|
57
|
-
return null;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Write audit entry to SQLite audit_log table.
|
|
61
|
-
* Validates the payload with Zod before inserting.
|
|
62
|
-
* Fire-and-forget — errors are logged to Pino but never thrown.
|
|
63
|
-
*
|
|
64
|
-
* @task T4848
|
|
65
|
-
*/
|
|
66
|
-
async function writeToSqlite(entry, requestId) {
|
|
67
|
-
try {
|
|
68
|
-
const { getDb } = await import('@cleocode/core/internal');
|
|
69
|
-
const { auditLog } = await import('@cleocode/core/internal');
|
|
70
|
-
const { AuditLogInsertSchema } = await import('@cleocode/core/internal');
|
|
71
|
-
const { randomUUID } = await import('node:crypto');
|
|
72
|
-
const payload = {
|
|
73
|
-
id: randomUUID(),
|
|
74
|
-
timestamp: entry.timestamp,
|
|
75
|
-
action: entry.operation,
|
|
76
|
-
taskId: entry.metadata.taskId ?? 'system',
|
|
77
|
-
actor: entry.metadata.userId ?? 'agent',
|
|
78
|
-
detailsJson: JSON.stringify(entry.params),
|
|
79
|
-
// Dispatch-level columns (ADR-019)
|
|
80
|
-
domain: entry.domain,
|
|
81
|
-
operation: entry.operation,
|
|
82
|
-
sessionId: entry.sessionId,
|
|
83
|
-
requestId: requestId ?? null,
|
|
84
|
-
durationMs: entry.result.duration,
|
|
85
|
-
success: entry.result.success ? 1 : 0,
|
|
86
|
-
source: entry.metadata.source,
|
|
87
|
-
gateway: entry.metadata.gateway ?? null,
|
|
88
|
-
errorMessage: entry.error ?? null,
|
|
89
|
-
// Project correlation (T5337)
|
|
90
|
-
projectHash: resolveProjectHash(),
|
|
91
|
-
};
|
|
92
|
-
// Validate payload before insert (T4848)
|
|
93
|
-
const parsed = AuditLogInsertSchema.safeParse(payload);
|
|
94
|
-
if (!parsed.success) {
|
|
95
|
-
log.warn({ issues: parsed.error.issues }, 'Audit payload failed Zod validation; skipping insert');
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
const db = await getDb(process.cwd());
|
|
99
|
-
await db.insert(auditLog).values(parsed.data).run();
|
|
100
|
-
}
|
|
101
|
-
catch (err) {
|
|
102
|
-
log.warn({ err }, 'Failed to write audit entry to SQLite');
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Creates an audit middleware that logs all mutate operations
|
|
107
|
-
* (and query operations during grade sessions) to Pino + SQLite.
|
|
108
|
-
*/
|
|
109
|
-
export function createAudit() {
|
|
110
|
-
return async (req, next) => {
|
|
111
|
-
const startTime = Date.now();
|
|
112
|
-
// T4959: session-resolver middleware now populates req.sessionId before
|
|
113
|
-
// audit runs. Fall back to legacy lookup only if resolver missed it.
|
|
114
|
-
const currentSessionId = req.sessionId ?? (await getActiveSessionInfo())?.id ?? null;
|
|
115
|
-
const isGradeSession = isGradeMode();
|
|
116
|
-
const response = await next();
|
|
117
|
-
// Audit mutations always; audit queries only during grade sessions
|
|
118
|
-
const shouldAudit = req.gateway === 'mutate' || (req.gateway === 'query' && isGradeSession);
|
|
119
|
-
if (!shouldAudit)
|
|
120
|
-
return response;
|
|
121
|
-
// Check if audit logging is enabled
|
|
122
|
-
const config = getConfig();
|
|
123
|
-
if (!config.auditLog)
|
|
124
|
-
return response;
|
|
125
|
-
const entry = {
|
|
126
|
-
timestamp: new Date().toISOString(),
|
|
127
|
-
sessionId: currentSessionId,
|
|
128
|
-
domain: req.domain,
|
|
129
|
-
operation: req.operation,
|
|
130
|
-
params: req.params || {},
|
|
131
|
-
result: {
|
|
132
|
-
success: response.success,
|
|
133
|
-
exitCode: response.error?.exitCode || 0,
|
|
134
|
-
duration: Date.now() - startTime,
|
|
135
|
-
},
|
|
136
|
-
metadata: {
|
|
137
|
-
taskId: req.params?.taskId || req.params?.parent,
|
|
138
|
-
source: req.source,
|
|
139
|
-
gateway: req.gateway,
|
|
140
|
-
},
|
|
141
|
-
error: response.error?.message,
|
|
142
|
-
};
|
|
143
|
-
// Pino structured log (immediate, non-blocking)
|
|
144
|
-
log.info({
|
|
145
|
-
domain: entry.domain,
|
|
146
|
-
operation: entry.operation,
|
|
147
|
-
sessionId: entry.sessionId,
|
|
148
|
-
taskId: entry.metadata.taskId,
|
|
149
|
-
gateway: entry.metadata.gateway,
|
|
150
|
-
success: entry.result.success,
|
|
151
|
-
exitCode: entry.result.exitCode,
|
|
152
|
-
durationMs: entry.result.duration,
|
|
153
|
-
}, `${entry.metadata.gateway ?? 'dispatch'} ${entry.domain}.${entry.operation}`);
|
|
154
|
-
// SQLite write — await in grade mode to avoid race with grading query;
|
|
155
|
-
// fire-and-forget otherwise for performance.
|
|
156
|
-
if (isGradeSession) {
|
|
157
|
-
await writeToSqlite(entry, req.requestId);
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
writeToSqlite(entry, req.requestId).catch((err) => {
|
|
161
|
-
log.error({ err }, 'Failed to persist audit entry to SQLite');
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
return response;
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
// queryAudit re-exported from core (canonical location)
|
|
168
|
-
export { queryAudit } from '@cleocode/core/internal';
|
|
169
|
-
//# sourceMappingURL=audit.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/dispatch/middleware/audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LAFS Field Filter Middleware
|
|
3
|
-
*
|
|
4
|
-
* Implements LAFS _fields parameter (field selection) and _mvi envelope verbosity.
|
|
5
|
-
* Extracts _fields and _mvi from params (for MCP agents that pass them as params),
|
|
6
|
-
* stores them on the request, and post-processes the response via the canonical
|
|
7
|
-
* SDK utilities from @cleocode/lafs-protocol v1.5.0.
|
|
8
|
-
*
|
|
9
|
-
* @epic T4820
|
|
10
|
-
* @task T4979
|
|
11
|
-
*/
|
|
12
|
-
import type { Middleware } from '../types.js';
|
|
13
|
-
/**
|
|
14
|
-
* Create the LAFS field-filter middleware.
|
|
15
|
-
*
|
|
16
|
-
* Handles:
|
|
17
|
-
* - _fields: filter response data to specified fields (delegates to SDK applyFieldFilter)
|
|
18
|
-
* - _mvi: envelope verbosity — stored on request for downstream use
|
|
19
|
-
*
|
|
20
|
-
* _fields and _mvi are extracted from req.params (for MCP callers that pass
|
|
21
|
-
* them as params) and stored on the DispatchRequest before the domain handler runs.
|
|
22
|
-
*/
|
|
23
|
-
export declare function createFieldFilter(): Middleware;
|
|
24
|
-
//# sourceMappingURL=field-filter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field-filter.d.ts","sourceRoot":"","sources":["../../../src/dispatch/middleware/field-filter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAqC,UAAU,EAAE,MAAM,aAAa,CAAC;AAEjF;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,IAAI,UAAU,CA+C9C"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LAFS Field Filter Middleware
|
|
3
|
-
*
|
|
4
|
-
* Implements LAFS _fields parameter (field selection) and _mvi envelope verbosity.
|
|
5
|
-
* Extracts _fields and _mvi from params (for MCP agents that pass them as params),
|
|
6
|
-
* stores them on the request, and post-processes the response via the canonical
|
|
7
|
-
* SDK utilities from @cleocode/lafs-protocol v1.5.0.
|
|
8
|
-
*
|
|
9
|
-
* @epic T4820
|
|
10
|
-
* @task T4979
|
|
11
|
-
*/
|
|
12
|
-
import { isMVILevel, applyFieldFilter as sdkApplyFieldFilter } from '@cleocode/lafs-protocol';
|
|
13
|
-
/**
|
|
14
|
-
* Create the LAFS field-filter middleware.
|
|
15
|
-
*
|
|
16
|
-
* Handles:
|
|
17
|
-
* - _fields: filter response data to specified fields (delegates to SDK applyFieldFilter)
|
|
18
|
-
* - _mvi: envelope verbosity — stored on request for downstream use
|
|
19
|
-
*
|
|
20
|
-
* _fields and _mvi are extracted from req.params (for MCP callers that pass
|
|
21
|
-
* them as params) and stored on the DispatchRequest before the domain handler runs.
|
|
22
|
-
*/
|
|
23
|
-
export function createFieldFilter() {
|
|
24
|
-
return async (req, next) => {
|
|
25
|
-
// Extract control params from req.params (MCP agents pass them here)
|
|
26
|
-
const _fields = req._fields ?? req.params?._fields;
|
|
27
|
-
const rawMvi = req._mvi ?? req.params?._mvi;
|
|
28
|
-
const _mvi = isMVILevel(rawMvi) ? rawMvi : undefined;
|
|
29
|
-
// Remove from params so domain handlers don't see them
|
|
30
|
-
if (req.params) {
|
|
31
|
-
delete req.params['_fields'];
|
|
32
|
-
delete req.params['_mvi'];
|
|
33
|
-
}
|
|
34
|
-
// Store on request for potential downstream use
|
|
35
|
-
if (_fields)
|
|
36
|
-
req._fields = _fields;
|
|
37
|
-
if (_mvi)
|
|
38
|
-
req._mvi = _mvi;
|
|
39
|
-
const response = await next();
|
|
40
|
-
// Apply _fields filter via SDK — handles all four result shapes,
|
|
41
|
-
// preserves envelope structure, sets _meta.mvi = 'custom' per §9.1
|
|
42
|
-
if (_fields?.length && response.success && response.data !== undefined) {
|
|
43
|
-
const stub = {
|
|
44
|
-
$schema: 'https://lafs.dev/schemas/v1/envelope.schema.json',
|
|
45
|
-
_meta: {
|
|
46
|
-
specVersion: '',
|
|
47
|
-
schemaVersion: '',
|
|
48
|
-
timestamp: response._meta.timestamp,
|
|
49
|
-
operation: response._meta.operation,
|
|
50
|
-
requestId: response._meta.requestId,
|
|
51
|
-
transport: 'sdk',
|
|
52
|
-
strict: true,
|
|
53
|
-
mvi: 'standard',
|
|
54
|
-
contextVersion: 0,
|
|
55
|
-
},
|
|
56
|
-
success: true,
|
|
57
|
-
result: response.data,
|
|
58
|
-
};
|
|
59
|
-
const filtered = sdkApplyFieldFilter(stub, _fields);
|
|
60
|
-
response.data = filtered.result;
|
|
61
|
-
}
|
|
62
|
-
return response;
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
//# sourceMappingURL=field-filter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field-filter.js","sourceRoot":"","sources":["../../../src/dispatch/middleware/field-filter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,UAAU,EAAE,gBAAgB,IAAI,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9F;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,KAAK,EACV,GAAoB,EACpB,IAAqC,EACV,EAAE;QAC7B,qEAAqE;QACrE,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAK,GAAG,CAAC,MAAM,EAAE,OAAgC,CAAC;QAC7E,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,IAAK,GAAG,CAAC,MAAM,EAAE,IAA2B,CAAC;QACpE,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAErD,uDAAuD;QACvD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7B,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAED,gDAAgD;QAChD,IAAI,OAAO;YAAE,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;QACnC,IAAI,IAAI;YAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAE1B,MAAM,QAAQ,GAAG,MAAM,IAAI,EAAE,CAAC;QAE9B,iEAAiE;QACjE,mEAAmE;QACnE,IAAI,OAAO,EAAE,MAAM,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACvE,MAAM,IAAI,GAAiB;gBACzB,OAAO,EAAE,kDAAkD;gBAC3D,KAAK,EAAE;oBACL,WAAW,EAAE,EAAE;oBACf,aAAa,EAAE,EAAE;oBACjB,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS;oBACnC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS;oBACnC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS;oBACnC,SAAS,EAAE,KAAK;oBAChB,MAAM,EAAE,IAAI;oBACZ,GAAG,EAAE,UAAU;oBACf,cAAc,EAAE,CAAC;iBAClB;gBACD,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,QAAQ,CAAC,IAA8B;aAChD,CAAC;YACF,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACpD,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;QAClC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Unified CQRS Dispatch Layer -- Middleware Pipeline
|
|
3
|
-
*
|
|
4
|
-
* Provides compose() to chain multiple Middleware functions together
|
|
5
|
-
* into a single executable pipeline.
|
|
6
|
-
*
|
|
7
|
-
* @epic T4820
|
|
8
|
-
* @task T4815
|
|
9
|
-
*/
|
|
10
|
-
import type { Middleware } from '../types.js';
|
|
11
|
-
/**
|
|
12
|
-
* Composes an array of Middleware functions into a single Middleware function.
|
|
13
|
-
* Execution flows through the array from first to last, and returns bubble
|
|
14
|
-
* back up from last to first.
|
|
15
|
-
*
|
|
16
|
-
* @param middlewares Array of middleware functions to chain
|
|
17
|
-
* @returns A single composed Middleware function
|
|
18
|
-
*/
|
|
19
|
-
export declare function compose(middlewares: Middleware[]): Middleware;
|
|
20
|
-
//# sourceMappingURL=pipeline.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/dispatch/middleware/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAmD,UAAU,EAAE,MAAM,aAAa,CAAC;AAE/F;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,CAkC7D"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Unified CQRS Dispatch Layer -- Middleware Pipeline
|
|
3
|
-
*
|
|
4
|
-
* Provides compose() to chain multiple Middleware functions together
|
|
5
|
-
* into a single executable pipeline.
|
|
6
|
-
*
|
|
7
|
-
* @epic T4820
|
|
8
|
-
* @task T4815
|
|
9
|
-
*/
|
|
10
|
-
/**
|
|
11
|
-
* Composes an array of Middleware functions into a single Middleware function.
|
|
12
|
-
* Execution flows through the array from first to last, and returns bubble
|
|
13
|
-
* back up from last to first.
|
|
14
|
-
*
|
|
15
|
-
* @param middlewares Array of middleware functions to chain
|
|
16
|
-
* @returns A single composed Middleware function
|
|
17
|
-
*/
|
|
18
|
-
export function compose(middlewares) {
|
|
19
|
-
if (middlewares.length === 0) {
|
|
20
|
-
return async (_req, next) => next();
|
|
21
|
-
}
|
|
22
|
-
return async (request, next) => {
|
|
23
|
-
let index = -1;
|
|
24
|
-
async function dispatch(i) {
|
|
25
|
-
if (i <= index) {
|
|
26
|
-
throw new Error('next() called multiple times in middleware');
|
|
27
|
-
}
|
|
28
|
-
index = i;
|
|
29
|
-
let fn = middlewares[i];
|
|
30
|
-
if (i === middlewares.length) {
|
|
31
|
-
// We've reached the end of the middleware chain; call the final handler
|
|
32
|
-
fn = async (_req, nxt) => nxt();
|
|
33
|
-
}
|
|
34
|
-
if (!fn) {
|
|
35
|
-
return next();
|
|
36
|
-
}
|
|
37
|
-
return fn(request, async () => {
|
|
38
|
-
if (i === middlewares.length) {
|
|
39
|
-
return next();
|
|
40
|
-
}
|
|
41
|
-
return dispatch(i + 1);
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
return dispatch(0);
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=pipeline.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/dispatch/middleware/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CAAC,WAAyB;IAC/C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,EAAE,IAAqB,EAAE,IAAkB,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IACrE,CAAC;IAED,OAAO,KAAK,EAAE,OAAwB,EAAE,IAAkB,EAA6B,EAAE;QACvF,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;QAEf,KAAK,UAAU,QAAQ,CAAC,CAAS;YAC/B,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;YACD,KAAK,GAAG,CAAC,CAAC;YAEV,IAAI,EAAE,GAA2B,WAAW,CAAC,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;gBAC7B,wEAAwE;gBACxE,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;YAClC,CAAC;YAED,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAO,IAAI,EAAE,CAAC;YAChB,CAAC;YAED,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;gBAC5B,IAAI,CAAC,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;oBAC7B,OAAO,IAAI,EAAE,CAAC;gBAChB,CAAC;gBACD,OAAO,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MVI projection middleware.
|
|
3
|
-
* Reads _mviTier from request params and filters response fields accordingly.
|
|
4
|
-
* If the domain is not allowed at the resolved tier, short-circuits with an error.
|
|
5
|
-
*
|
|
6
|
-
* @epic T4820
|
|
7
|
-
* @task T5096
|
|
8
|
-
*/
|
|
9
|
-
import { type MviTier, type ProjectionConfig } from '../lib/projections.js';
|
|
10
|
-
import type { Middleware } from '../types.js';
|
|
11
|
-
export interface ProjectionContext {
|
|
12
|
-
tier: MviTier;
|
|
13
|
-
config: ProjectionConfig;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Check if a domain is allowed at the given tier.
|
|
17
|
-
*/
|
|
18
|
-
export declare function isOperationAllowed(domain: string, tier: MviTier): boolean;
|
|
19
|
-
/**
|
|
20
|
-
* Apply field projection to a result object.
|
|
21
|
-
* Removes fields that are excluded at the given tier and prunes depth.
|
|
22
|
-
*/
|
|
23
|
-
export declare function applyProjection<T>(data: T, config: ProjectionConfig): T;
|
|
24
|
-
/**
|
|
25
|
-
* Create projection context from request params.
|
|
26
|
-
*/
|
|
27
|
-
export declare function createProjectionContext(params?: Record<string, unknown>): ProjectionContext;
|
|
28
|
-
/**
|
|
29
|
-
* Create the MVI projection middleware.
|
|
30
|
-
*
|
|
31
|
-
* Extracts _mviTier from params, checks domain access, and applies
|
|
32
|
-
* field exclusions to the response.
|
|
33
|
-
*/
|
|
34
|
-
export declare function createProjectionMiddleware(): Middleware;
|
|
35
|
-
//# sourceMappingURL=projection.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../../src/dispatch/middleware/projection.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,gBAAgB,EAEtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAqC,UAAU,EAAE,MAAM,aAAa,CAAC;AAEjF,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAEzE;AAiCD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,gBAAgB,GAAG,CAAC,CAuCvE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,CAG3F;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,IAAI,UAAU,CAqDvD"}
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MVI projection middleware.
|
|
3
|
-
* Reads _mviTier from request params and filters response fields accordingly.
|
|
4
|
-
* If the domain is not allowed at the resolved tier, short-circuits with an error.
|
|
5
|
-
*
|
|
6
|
-
* @epic T4820
|
|
7
|
-
* @task T5096
|
|
8
|
-
*/
|
|
9
|
-
import { getBoundSession } from '../context/session-context.js';
|
|
10
|
-
import { PROJECTIONS, resolveTier, } from '../lib/projections.js';
|
|
11
|
-
/**
|
|
12
|
-
* Check if a domain is allowed at the given tier.
|
|
13
|
-
*/
|
|
14
|
-
export function isOperationAllowed(domain, tier) {
|
|
15
|
-
return PROJECTIONS[tier].allowedDomains.includes(domain);
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Recursively prune data beyond maxDepth.
|
|
19
|
-
* At maxDepth, objects become '[Object]' and arrays become '[Array(N)]'.
|
|
20
|
-
*/
|
|
21
|
-
function pruneDepth(data, maxDepth, currentDepth = 0) {
|
|
22
|
-
// Primitives pass through at any depth
|
|
23
|
-
if (data === null || data === undefined || typeof data !== 'object') {
|
|
24
|
-
return data;
|
|
25
|
-
}
|
|
26
|
-
// At max depth, replace with placeholder
|
|
27
|
-
if (currentDepth >= maxDepth) {
|
|
28
|
-
if (Array.isArray(data)) {
|
|
29
|
-
return `[Array(${data.length})]`;
|
|
30
|
-
}
|
|
31
|
-
return '[Object]';
|
|
32
|
-
}
|
|
33
|
-
// Recurse into arrays
|
|
34
|
-
if (Array.isArray(data)) {
|
|
35
|
-
return data.map((item) => pruneDepth(item, maxDepth, currentDepth + 1));
|
|
36
|
-
}
|
|
37
|
-
// Recurse into objects
|
|
38
|
-
const result = {};
|
|
39
|
-
for (const [key, value] of Object.entries(data)) {
|
|
40
|
-
result[key] = pruneDepth(value, maxDepth, currentDepth + 1);
|
|
41
|
-
}
|
|
42
|
-
return result;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Apply field projection to a result object.
|
|
46
|
-
* Removes fields that are excluded at the given tier and prunes depth.
|
|
47
|
-
*/
|
|
48
|
-
export function applyProjection(data, config) {
|
|
49
|
-
if (!data || typeof data !== 'object')
|
|
50
|
-
return data;
|
|
51
|
-
let result = data;
|
|
52
|
-
// Apply field exclusions
|
|
53
|
-
if (config.excludeFields?.length) {
|
|
54
|
-
const obj = { ...data };
|
|
55
|
-
for (const field of config.excludeFields) {
|
|
56
|
-
const parts = field.split('.');
|
|
57
|
-
if (parts.length === 1) {
|
|
58
|
-
delete obj[parts[0]];
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
// Handle nested fields like 'metadata._internal'
|
|
62
|
-
let current = obj;
|
|
63
|
-
for (let i = 0; i < parts.length - 1; i++) {
|
|
64
|
-
const val = current?.[parts[i]];
|
|
65
|
-
if (val && typeof val === 'object') {
|
|
66
|
-
current[parts[i]] = { ...val };
|
|
67
|
-
current = current[parts[i]];
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
current = undefined;
|
|
71
|
-
break;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
if (current) {
|
|
75
|
-
delete current[parts[parts.length - 1]];
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
result = obj;
|
|
80
|
-
}
|
|
81
|
-
// Apply depth pruning
|
|
82
|
-
if (config.maxDepth !== undefined) {
|
|
83
|
-
result = pruneDepth(result, config.maxDepth);
|
|
84
|
-
}
|
|
85
|
-
return result;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Create projection context from request params.
|
|
89
|
-
*/
|
|
90
|
-
export function createProjectionContext(params) {
|
|
91
|
-
const tier = resolveTier(params);
|
|
92
|
-
return { tier, config: PROJECTIONS[tier] };
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Create the MVI projection middleware.
|
|
96
|
-
*
|
|
97
|
-
* Extracts _mviTier from params, checks domain access, and applies
|
|
98
|
-
* field exclusions to the response.
|
|
99
|
-
*/
|
|
100
|
-
export function createProjectionMiddleware() {
|
|
101
|
-
return async (req, next) => {
|
|
102
|
-
const session = getBoundSession();
|
|
103
|
-
const tier = resolveTier(req.params, session?.scope ?? null);
|
|
104
|
-
const config = PROJECTIONS[tier];
|
|
105
|
-
// Remove control param so domain handlers don't see it
|
|
106
|
-
if (req.params) {
|
|
107
|
-
delete req.params['_mviTier'];
|
|
108
|
-
}
|
|
109
|
-
// MCP smart defaults: tasks.list defaults to compact mode
|
|
110
|
-
if (req.source === 'mcp' && req.domain === 'tasks' && req.operation === 'list') {
|
|
111
|
-
req.params ??= {};
|
|
112
|
-
if (req.params['compact'] === undefined) {
|
|
113
|
-
req.params['compact'] = true;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
// Check domain access at this tier
|
|
117
|
-
if (!config.allowedDomains.includes(req.domain)) {
|
|
118
|
-
return {
|
|
119
|
-
_meta: {
|
|
120
|
-
gateway: req.gateway,
|
|
121
|
-
domain: req.domain,
|
|
122
|
-
operation: req.operation,
|
|
123
|
-
version: '1.0.0',
|
|
124
|
-
timestamp: new Date().toISOString(),
|
|
125
|
-
duration_ms: 0,
|
|
126
|
-
source: req.source,
|
|
127
|
-
requestId: req.requestId,
|
|
128
|
-
},
|
|
129
|
-
success: false,
|
|
130
|
-
error: {
|
|
131
|
-
code: 'E_INVALID_OPERATION',
|
|
132
|
-
exitCode: 2,
|
|
133
|
-
message: `Operation not available at '${tier}' tier. Domain '${req.domain}' requires a higher tier.`,
|
|
134
|
-
},
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
const response = await next();
|
|
138
|
-
// Apply field exclusions to successful responses
|
|
139
|
-
if (response.success && response.data !== undefined) {
|
|
140
|
-
response.data = applyProjection(response.data, config);
|
|
141
|
-
}
|
|
142
|
-
return response;
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
//# sourceMappingURL=projection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../src/dispatch/middleware/projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { Middleware } from '../types.js';
|
|
2
|
-
/**
|
|
3
|
-
* Creates a middleware that enforces protocol compliance.
|
|
4
|
-
*
|
|
5
|
-
* Delegates to ProtocolEnforcer.enforceProtocol() which:
|
|
6
|
-
* - Passes through query operations untouched
|
|
7
|
-
* - Passes through mutate operations that don't require validation
|
|
8
|
-
* - Validates protocol compliance on validated mutate operations after execution
|
|
9
|
-
* - In strict mode, blocks operations with protocol violations (exit codes 60-70)
|
|
10
|
-
*/
|
|
11
|
-
export declare function createProtocolEnforcement(strictMode?: boolean): Middleware;
|
|
12
|
-
//# sourceMappingURL=protocol-enforcement.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"protocol-enforcement.d.ts","sourceRoot":"","sources":["../../../src/dispatch/middleware/protocol-enforcement.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmD,UAAU,EAAE,MAAM,aAAa,CAAC;AAE/F;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,GAAE,OAAc,GAAG,UAAU,CAqBhF"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { ProtocolEnforcer } from '@cleocode/core/internal';
|
|
2
|
-
/**
|
|
3
|
-
* Creates a middleware that enforces protocol compliance.
|
|
4
|
-
*
|
|
5
|
-
* Delegates to ProtocolEnforcer.enforceProtocol() which:
|
|
6
|
-
* - Passes through query operations untouched
|
|
7
|
-
* - Passes through mutate operations that don't require validation
|
|
8
|
-
* - Validates protocol compliance on validated mutate operations after execution
|
|
9
|
-
* - In strict mode, blocks operations with protocol violations (exit codes 60-70)
|
|
10
|
-
*/
|
|
11
|
-
export function createProtocolEnforcement(strictMode = true) {
|
|
12
|
-
const enforcer = new ProtocolEnforcer(strictMode);
|
|
13
|
-
return async (req, next) => {
|
|
14
|
-
const result = await enforcer.enforceProtocol(req, next);
|
|
15
|
-
// enforceProtocol may return a DomainResponse (missing source/requestId on _meta)
|
|
16
|
-
// when it constructs an error response. Ensure _meta has required DispatchResponse fields.
|
|
17
|
-
if (!result._meta.source || !result._meta.requestId) {
|
|
18
|
-
return {
|
|
19
|
-
...result,
|
|
20
|
-
_meta: {
|
|
21
|
-
...result._meta,
|
|
22
|
-
source: result._meta.source ?? req.source,
|
|
23
|
-
requestId: result._meta.requestId ?? req.requestId,
|
|
24
|
-
},
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
return result;
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=protocol-enforcement.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"protocol-enforcement.js","sourceRoot":"","sources":["../../../src/dispatch/middleware/protocol-enforcement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CAAC,aAAsB,IAAI;IAClE,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAElD,OAAO,KAAK,EAAE,GAAoB,EAAE,IAAkB,EAA6B,EAAE;QACnF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAEzD,kFAAkF;QAClF,2FAA2F;QAC3F,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACpD,OAAO;gBACL,GAAG,MAAM;gBACT,KAAK,EAAE;oBACL,GAAG,MAAM,CAAC,KAAK;oBACf,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM;oBACzC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS;iBACnD;aACkB,CAAC;QACxB,CAAC;QAED,OAAO,MAA0B,CAAC;IACpC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { DispatchRequest, Middleware, RateLimitMeta } from '../types.js';
|
|
2
|
-
/**
|
|
3
|
-
* Rate Limit Configuration
|
|
4
|
-
*/
|
|
5
|
-
export interface RateLimitConfig {
|
|
6
|
-
maxRequests: number;
|
|
7
|
-
windowMs: number;
|
|
8
|
-
}
|
|
9
|
-
export interface RateLimitingConfig {
|
|
10
|
-
enabled: boolean;
|
|
11
|
-
query: RateLimitConfig;
|
|
12
|
-
mutate: RateLimitConfig;
|
|
13
|
-
spawn: RateLimitConfig;
|
|
14
|
-
}
|
|
15
|
-
export declare const DEFAULT_RATE_LIMITING: RateLimitingConfig;
|
|
16
|
-
export declare class RateLimiter {
|
|
17
|
-
private buckets;
|
|
18
|
-
private config;
|
|
19
|
-
constructor(config?: Partial<RateLimitingConfig>);
|
|
20
|
-
check(req: DispatchRequest): RateLimitMeta & {
|
|
21
|
-
allowed: boolean;
|
|
22
|
-
};
|
|
23
|
-
private resolveCategory;
|
|
24
|
-
private getLimitConfig;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Creates a rate limiting middleware.
|
|
28
|
-
*/
|
|
29
|
-
export declare function createRateLimiter(config?: Partial<RateLimitingConfig>): Middleware;
|
|
30
|
-
//# sourceMappingURL=rate-limiter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../../src/dispatch/middleware/rate-limiter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EAEf,UAAU,EACV,aAAa,EACd,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,eAAe,CAAC;CACxB;AAED,eAAO,MAAM,qBAAqB,EAAE,kBAKnC,CAAC;AASF,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAA+C;IAC9D,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;IAUhD,KAAK,CAAC,GAAG,EAAE,eAAe,GAAG,aAAa,GAAG;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE;IA2CjE,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,cAAc;CAGvB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,UAAU,CAqClF"}
|