kairo-mcp 1.3.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/CHANGELOG.md +1122 -0
- package/LICENSE +21 -0
- package/README.md +662 -0
- package/dist/cli/cli.d.ts +3 -0
- package/dist/cli/cli.d.ts.map +1 -0
- package/dist/cli/cli.js +226 -0
- package/dist/cli/cli.js.map +1 -0
- package/dist/cli/commands.d.ts +10 -0
- package/dist/cli/commands.d.ts.map +1 -0
- package/dist/cli/commands.js +938 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/flags.d.ts +30 -0
- package/dist/cli/flags.d.ts.map +1 -0
- package/dist/cli/flags.js +90 -0
- package/dist/cli/flags.js.map +1 -0
- package/dist/cli/output.d.ts +69 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +166 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/cli/types.d.ts +34 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +2 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/contracts/migrations.d.ts +31 -0
- package/dist/contracts/migrations.d.ts.map +1 -0
- package/dist/contracts/migrations.js +71 -0
- package/dist/contracts/migrations.js.map +1 -0
- package/dist/contracts/schemas.d.ts +53 -0
- package/dist/contracts/schemas.d.ts.map +1 -0
- package/dist/contracts/schemas.js +27 -0
- package/dist/contracts/schemas.js.map +1 -0
- package/dist/contracts/stability.d.ts +32 -0
- package/dist/contracts/stability.d.ts.map +1 -0
- package/dist/contracts/stability.js +140 -0
- package/dist/contracts/stability.js.map +1 -0
- package/dist/contracts/zodSchemas.d.ts +811 -0
- package/dist/contracts/zodSchemas.d.ts.map +1 -0
- package/dist/contracts/zodSchemas.js +139 -0
- package/dist/contracts/zodSchemas.js.map +1 -0
- package/dist/core/brief/budget.d.ts +21 -0
- package/dist/core/brief/budget.d.ts.map +1 -0
- package/dist/core/brief/budget.js +42 -0
- package/dist/core/brief/budget.js.map +1 -0
- package/dist/core/checkpoint/checkpointManager.d.ts +29 -0
- package/dist/core/checkpoint/checkpointManager.d.ts.map +1 -0
- package/dist/core/checkpoint/checkpointManager.js +49 -0
- package/dist/core/checkpoint/checkpointManager.js.map +1 -0
- package/dist/core/compaction/compactor.d.ts +40 -0
- package/dist/core/compaction/compactor.d.ts.map +1 -0
- package/dist/core/compaction/compactor.js +168 -0
- package/dist/core/compaction/compactor.js.map +1 -0
- package/dist/core/continuation/continuationBuilder.d.ts +19 -0
- package/dist/core/continuation/continuationBuilder.d.ts.map +1 -0
- package/dist/core/continuation/continuationBuilder.js +184 -0
- package/dist/core/continuation/continuationBuilder.js.map +1 -0
- package/dist/core/coordination/coordinationManager.d.ts +34 -0
- package/dist/core/coordination/coordinationManager.d.ts.map +1 -0
- package/dist/core/coordination/coordinationManager.js +253 -0
- package/dist/core/coordination/coordinationManager.js.map +1 -0
- package/dist/core/coordination/types.d.ts +52 -0
- package/dist/core/coordination/types.d.ts.map +1 -0
- package/dist/core/coordination/types.js +6 -0
- package/dist/core/coordination/types.js.map +1 -0
- package/dist/core/github/changelog.d.ts +9 -0
- package/dist/core/github/changelog.d.ts.map +1 -0
- package/dist/core/github/changelog.js +41 -0
- package/dist/core/github/changelog.js.map +1 -0
- package/dist/core/github/commitMessage.d.ts +4 -0
- package/dist/core/github/commitMessage.d.ts.map +1 -0
- package/dist/core/github/commitMessage.js +125 -0
- package/dist/core/github/commitMessage.js.map +1 -0
- package/dist/core/github/gitContext.d.ts +3 -0
- package/dist/core/github/gitContext.d.ts.map +1 -0
- package/dist/core/github/gitContext.js +67 -0
- package/dist/core/github/gitContext.js.map +1 -0
- package/dist/core/github/releasePlan.d.ts +8 -0
- package/dist/core/github/releasePlan.d.ts.map +1 -0
- package/dist/core/github/releasePlan.js +56 -0
- package/dist/core/github/releasePlan.js.map +1 -0
- package/dist/core/github/semver.d.ts +11 -0
- package/dist/core/github/semver.d.ts.map +1 -0
- package/dist/core/github/semver.js +23 -0
- package/dist/core/github/semver.js.map +1 -0
- package/dist/core/github/types.d.ts +36 -0
- package/dist/core/github/types.d.ts.map +1 -0
- package/dist/core/github/types.js +2 -0
- package/dist/core/github/types.js.map +1 -0
- package/dist/core/graph/derived.d.ts +6 -0
- package/dist/core/graph/derived.d.ts.map +1 -0
- package/dist/core/graph/derived.js +133 -0
- package/dist/core/graph/derived.js.map +1 -0
- package/dist/core/graph/graphEngine.d.ts +11 -0
- package/dist/core/graph/graphEngine.d.ts.map +1 -0
- package/dist/core/graph/graphEngine.js +28 -0
- package/dist/core/graph/graphEngine.js.map +1 -0
- package/dist/core/graph/imports.d.ts +19 -0
- package/dist/core/graph/imports.d.ts.map +1 -0
- package/dist/core/graph/imports.js +0 -0
- package/dist/core/graph/imports.js.map +1 -0
- package/dist/core/graph/mermaid.d.ts +6 -0
- package/dist/core/graph/mermaid.d.ts.map +1 -0
- package/dist/core/graph/mermaid.js +40 -0
- package/dist/core/graph/mermaid.js.map +1 -0
- package/dist/core/graph/moduleGraph.d.ts +27 -0
- package/dist/core/graph/moduleGraph.d.ts.map +1 -0
- package/dist/core/graph/moduleGraph.js +186 -0
- package/dist/core/graph/moduleGraph.js.map +1 -0
- package/dist/core/graph/types.d.ts +32 -0
- package/dist/core/graph/types.d.ts.map +1 -0
- package/dist/core/graph/types.js +2 -0
- package/dist/core/graph/types.js.map +1 -0
- package/dist/core/query/queryEngine.d.ts +26 -0
- package/dist/core/query/queryEngine.d.ts.map +1 -0
- package/dist/core/query/queryEngine.js +258 -0
- package/dist/core/query/queryEngine.js.map +1 -0
- package/dist/core/query/types.d.ts +70 -0
- package/dist/core/query/types.d.ts.map +1 -0
- package/dist/core/query/types.js +6 -0
- package/dist/core/query/types.js.map +1 -0
- package/dist/core/repo/fingerprint.d.ts +0 -0
- package/dist/core/repo/fingerprint.d.ts.map +1 -0
- package/dist/core/repo/fingerprint.js +17 -0
- package/dist/core/repo/fingerprint.js.map +1 -0
- package/dist/core/repo/frameworkDetectors.d.ts +14 -0
- package/dist/core/repo/frameworkDetectors.d.ts.map +1 -0
- package/dist/core/repo/frameworkDetectors.js +151 -0
- package/dist/core/repo/frameworkDetectors.js.map +1 -0
- package/dist/core/repo/repoScanner.d.ts +20 -0
- package/dist/core/repo/repoScanner.d.ts.map +1 -0
- package/dist/core/repo/repoScanner.js +290 -0
- package/dist/core/repo/repoScanner.js.map +1 -0
- package/dist/core/repo/summary.d.ts +7 -0
- package/dist/core/repo/summary.d.ts.map +1 -0
- package/dist/core/repo/summary.js +34 -0
- package/dist/core/repo/summary.js.map +1 -0
- package/dist/core/repo/types.d.ts +62 -0
- package/dist/core/repo/types.d.ts.map +1 -0
- package/dist/core/repo/types.js +10 -0
- package/dist/core/repo/types.js.map +1 -0
- package/dist/core/risk/guardrail.d.ts +3 -0
- package/dist/core/risk/guardrail.d.ts.map +1 -0
- package/dist/core/risk/guardrail.js +47 -0
- package/dist/core/risk/guardrail.js.map +1 -0
- package/dist/core/risk/riskEngine.d.ts +8 -0
- package/dist/core/risk/riskEngine.d.ts.map +1 -0
- package/dist/core/risk/riskEngine.js +112 -0
- package/dist/core/risk/riskEngine.js.map +1 -0
- package/dist/core/risk/riskHeuristics.d.ts +4 -0
- package/dist/core/risk/riskHeuristics.d.ts.map +1 -0
- package/dist/core/risk/riskHeuristics.js +36 -0
- package/dist/core/risk/riskHeuristics.js.map +1 -0
- package/dist/core/salience/config.d.ts +14 -0
- package/dist/core/salience/config.d.ts.map +1 -0
- package/dist/core/salience/config.js +87 -0
- package/dist/core/salience/config.js.map +1 -0
- package/dist/core/salience/salienceEngine.d.ts +16 -0
- package/dist/core/salience/salienceEngine.d.ts.map +1 -0
- package/dist/core/salience/salienceEngine.js +64 -0
- package/dist/core/salience/salienceEngine.js.map +1 -0
- package/dist/core/salience/signals.d.ts +4 -0
- package/dist/core/salience/signals.d.ts.map +1 -0
- package/dist/core/salience/signals.js +143 -0
- package/dist/core/salience/signals.js.map +1 -0
- package/dist/core/salience/types.d.ts +69 -0
- package/dist/core/salience/types.d.ts.map +1 -0
- package/dist/core/salience/types.js +7 -0
- package/dist/core/salience/types.js.map +1 -0
- package/dist/core/session/eventPayloads.d.ts +92 -0
- package/dist/core/session/eventPayloads.d.ts.map +1 -0
- package/dist/core/session/eventPayloads.js +2 -0
- package/dist/core/session/eventPayloads.js.map +1 -0
- package/dist/core/session/reducer.d.ts +14 -0
- package/dist/core/session/reducer.d.ts.map +1 -0
- package/dist/core/session/reducer.js +181 -0
- package/dist/core/session/reducer.js.map +1 -0
- package/dist/core/session/sessionManager.d.ts +252 -0
- package/dist/core/session/sessionManager.d.ts.map +1 -0
- package/dist/core/session/sessionManager.js +655 -0
- package/dist/core/session/sessionManager.js.map +1 -0
- package/dist/core/telemetry/analytics.d.ts +24 -0
- package/dist/core/telemetry/analytics.d.ts.map +1 -0
- package/dist/core/telemetry/analytics.js +167 -0
- package/dist/core/telemetry/analytics.js.map +1 -0
- package/dist/core/telemetry/exporter.d.ts +17 -0
- package/dist/core/telemetry/exporter.d.ts.map +1 -0
- package/dist/core/telemetry/exporter.js +31 -0
- package/dist/core/telemetry/exporter.js.map +1 -0
- package/dist/core/telemetry/recorder.d.ts +19 -0
- package/dist/core/telemetry/recorder.d.ts.map +1 -0
- package/dist/core/telemetry/recorder.js +43 -0
- package/dist/core/telemetry/recorder.js.map +1 -0
- package/dist/core/telemetry/reports.d.ts +6 -0
- package/dist/core/telemetry/reports.d.ts.map +1 -0
- package/dist/core/telemetry/reports.js +84 -0
- package/dist/core/telemetry/reports.js.map +1 -0
- package/dist/core/telemetry/types.d.ts +82 -0
- package/dist/core/telemetry/types.d.ts.map +1 -0
- package/dist/core/telemetry/types.js +9 -0
- package/dist/core/telemetry/types.js.map +1 -0
- package/dist/core/vector/chunking/memoryChunker.d.ts +10 -0
- package/dist/core/vector/chunking/memoryChunker.d.ts.map +1 -0
- package/dist/core/vector/chunking/memoryChunker.js +202 -0
- package/dist/core/vector/chunking/memoryChunker.js.map +1 -0
- package/dist/core/vector/compression/architectureDigest.d.ts +12 -0
- package/dist/core/vector/compression/architectureDigest.d.ts.map +1 -0
- package/dist/core/vector/compression/architectureDigest.js +37 -0
- package/dist/core/vector/compression/architectureDigest.js.map +1 -0
- package/dist/core/vector/embedding/deterministicEmbedder.d.ts +10 -0
- package/dist/core/vector/embedding/deterministicEmbedder.d.ts.map +1 -0
- package/dist/core/vector/embedding/deterministicEmbedder.js +84 -0
- package/dist/core/vector/embedding/deterministicEmbedder.js.map +1 -0
- package/dist/core/vector/memory/memoryEngine.d.ts +56 -0
- package/dist/core/vector/memory/memoryEngine.d.ts.map +1 -0
- package/dist/core/vector/memory/memoryEngine.js +204 -0
- package/dist/core/vector/memory/memoryEngine.js.map +1 -0
- package/dist/core/vector/memory/memoryFingerprint.d.ts +12 -0
- package/dist/core/vector/memory/memoryFingerprint.d.ts.map +1 -0
- package/dist/core/vector/memory/memoryFingerprint.js +33 -0
- package/dist/core/vector/memory/memoryFingerprint.js.map +1 -0
- package/dist/core/vector/providers/deterministicProvider.d.ts +14 -0
- package/dist/core/vector/providers/deterministicProvider.d.ts.map +1 -0
- package/dist/core/vector/providers/deterministicProvider.js +22 -0
- package/dist/core/vector/providers/deterministicProvider.js.map +1 -0
- package/dist/core/vector/providers/httpEmbeddingProvider.d.ts +32 -0
- package/dist/core/vector/providers/httpEmbeddingProvider.d.ts.map +1 -0
- package/dist/core/vector/providers/httpEmbeddingProvider.js +93 -0
- package/dist/core/vector/providers/httpEmbeddingProvider.js.map +1 -0
- package/dist/core/vector/providers/registry.d.ts +9 -0
- package/dist/core/vector/providers/registry.d.ts.map +1 -0
- package/dist/core/vector/providers/registry.js +79 -0
- package/dist/core/vector/providers/registry.js.map +1 -0
- package/dist/core/vector/providers/types.d.ts +23 -0
- package/dist/core/vector/providers/types.d.ts.map +1 -0
- package/dist/core/vector/providers/types.js +2 -0
- package/dist/core/vector/providers/types.js.map +1 -0
- package/dist/core/vector/retrieval/hybridRetriever.d.ts +37 -0
- package/dist/core/vector/retrieval/hybridRetriever.d.ts.map +1 -0
- package/dist/core/vector/retrieval/hybridRetriever.js +131 -0
- package/dist/core/vector/retrieval/hybridRetriever.js.map +1 -0
- package/dist/core/vector/types.d.ts +87 -0
- package/dist/core/vector/types.d.ts.map +1 -0
- package/dist/core/vector/types.js +6 -0
- package/dist/core/vector/types.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -0
- package/dist/inspect/cli.d.ts +3 -0
- package/dist/inspect/cli.d.ts.map +1 -0
- package/dist/inspect/cli.js +40 -0
- package/dist/inspect/cli.js.map +1 -0
- package/dist/inspect/projections.d.ts +141 -0
- package/dist/inspect/projections.d.ts.map +1 -0
- package/dist/inspect/projections.js +311 -0
- package/dist/inspect/projections.js.map +1 -0
- package/dist/inspect/render.d.ts +27 -0
- package/dist/inspect/render.d.ts.map +1 -0
- package/dist/inspect/render.js +325 -0
- package/dist/inspect/render.js.map +1 -0
- package/dist/inspect/server.d.ts +18 -0
- package/dist/inspect/server.d.ts.map +1 -0
- package/dist/inspect/server.js +112 -0
- package/dist/inspect/server.js.map +1 -0
- package/dist/perf/index.d.ts +24 -0
- package/dist/perf/index.d.ts.map +1 -0
- package/dist/perf/index.js +38 -0
- package/dist/perf/index.js.map +1 -0
- package/dist/perf/report.d.ts +8 -0
- package/dist/perf/report.d.ts.map +1 -0
- package/dist/perf/report.js +52 -0
- package/dist/perf/report.js.map +1 -0
- package/dist/perf/runner.d.ts +29 -0
- package/dist/perf/runner.d.ts.map +1 -0
- package/dist/perf/runner.js +74 -0
- package/dist/perf/runner.js.map +1 -0
- package/dist/perf/scenarios.d.ts +8 -0
- package/dist/perf/scenarios.d.ts.map +1 -0
- package/dist/perf/scenarios.js +119 -0
- package/dist/perf/scenarios.js.map +1 -0
- package/dist/perf/types.d.ts +32 -0
- package/dist/perf/types.d.ts.map +1 -0
- package/dist/perf/types.js +6 -0
- package/dist/perf/types.js.map +1 -0
- package/dist/plugins/loader.d.ts +78 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +193 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/types.d.ts +38 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +10 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/pressure/pressureModel.d.ts +6 -0
- package/dist/pressure/pressureModel.d.ts.map +1 -0
- package/dist/pressure/pressureModel.js +102 -0
- package/dist/pressure/pressureModel.js.map +1 -0
- package/dist/prompts/continuityPrompt.d.ts +7 -0
- package/dist/prompts/continuityPrompt.d.ts.map +1 -0
- package/dist/prompts/continuityPrompt.js +43 -0
- package/dist/prompts/continuityPrompt.js.map +1 -0
- package/dist/sdk/index.d.ts +53 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +130 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/security/patterns.d.ts +16 -0
- package/dist/security/patterns.d.ts.map +1 -0
- package/dist/security/patterns.js +61 -0
- package/dist/security/patterns.js.map +1 -0
- package/dist/security/redactor.d.ts +20 -0
- package/dist/security/redactor.d.ts.map +1 -0
- package/dist/security/redactor.js +58 -0
- package/dist/security/redactor.js.map +1 -0
- package/dist/server/createServer.d.ts +10 -0
- package/dist/server/createServer.d.ts.map +1 -0
- package/dist/server/createServer.js +60 -0
- package/dist/server/createServer.js.map +1 -0
- package/dist/server/registerTools.d.ts +4 -0
- package/dist/server/registerTools.d.ts.map +1 -0
- package/dist/server/registerTools.js +1086 -0
- package/dist/server/registerTools.js.map +1 -0
- package/dist/server/responses.d.ts +17 -0
- package/dist/server/responses.d.ts.map +1 -0
- package/dist/server/responses.js +21 -0
- package/dist/server/responses.js.map +1 -0
- package/dist/snapshot/export.d.ts +26 -0
- package/dist/snapshot/export.d.ts.map +1 -0
- package/dist/snapshot/export.js +164 -0
- package/dist/snapshot/export.js.map +1 -0
- package/dist/snapshot/import.d.ts +34 -0
- package/dist/snapshot/import.d.ts.map +1 -0
- package/dist/snapshot/import.js +114 -0
- package/dist/snapshot/import.js.map +1 -0
- package/dist/snapshot/types.d.ts +63 -0
- package/dist/snapshot/types.d.ts.map +1 -0
- package/dist/snapshot/types.js +2 -0
- package/dist/snapshot/types.js.map +1 -0
- package/dist/storage/faultAdapter.d.ts +64 -0
- package/dist/storage/faultAdapter.d.ts.map +1 -0
- package/dist/storage/faultAdapter.js +134 -0
- package/dist/storage/faultAdapter.js.map +1 -0
- package/dist/storage/fileStorageAdapter.d.ts +55 -0
- package/dist/storage/fileStorageAdapter.d.ts.map +1 -0
- package/dist/storage/fileStorageAdapter.js +219 -0
- package/dist/storage/fileStorageAdapter.js.map +1 -0
- package/dist/storage/paths.d.ts +30 -0
- package/dist/storage/paths.d.ts.map +1 -0
- package/dist/storage/paths.js +32 -0
- package/dist/storage/paths.js.map +1 -0
- package/dist/storage/quarantine.d.ts +36 -0
- package/dist/storage/quarantine.d.ts.map +1 -0
- package/dist/storage/quarantine.js +26 -0
- package/dist/storage/quarantine.js.map +1 -0
- package/dist/storage/redactingAdapter.d.ts +13 -0
- package/dist/storage/redactingAdapter.d.ts.map +1 -0
- package/dist/storage/redactingAdapter.js +91 -0
- package/dist/storage/redactingAdapter.js.map +1 -0
- package/dist/storage/storageAdapter.d.ts +46 -0
- package/dist/storage/storageAdapter.d.ts.map +1 -0
- package/dist/storage/storageAdapter.js +2 -0
- package/dist/storage/storageAdapter.js.map +1 -0
- package/dist/types/domain.d.ts +139 -0
- package/dist/types/domain.d.ts.map +1 -0
- package/dist/types/domain.js +9 -0
- package/dist/types/domain.js.map +1 -0
- package/dist/types/events.d.ts +28 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +7 -0
- package/dist/types/events.js.map +1 -0
- package/dist/utils/errors.d.ts +6 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +10 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/ids.d.ts +7 -0
- package/dist/utils/ids.d.ts.map +1 -0
- package/dist/utils/ids.js +22 -0
- package/dist/utils/ids.js.map +1 -0
- package/dist/utils/logger.d.ts +7 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +26 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/time.d.ts +8 -0
- package/dist/utils/time.d.ts.map +1 -0
- package/dist/utils/time.js +11 -0
- package/dist/utils/time.js.map +1 -0
- package/package.json +79 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projections.js","sourceRoot":"","sources":["../../src/inspect/projections.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure HTML rendering for the local web inspector (v0.9.0, ADR-0011).
|
|
3
|
+
*
|
|
4
|
+
* Deterministic and side-effect-free: same inputs → byte-identical output.
|
|
5
|
+
* No CDN fetches, no remote fonts, no analytics. Plain semantic HTML +
|
|
6
|
+
* inline CSS so the page works offline and renders the same on any browser.
|
|
7
|
+
*/
|
|
8
|
+
import type { CheckpointListEntry, CoordinationSnapshot, GraphSummary, InspectOverview, MemoryIndexSnapshot, RiskSnapshot, SessionListEntry } from './projections.js';
|
|
9
|
+
import type { Checkpoint, SessionState } from '../types/domain.js';
|
|
10
|
+
import type { ConflictEntry, LineageNode, RetrievalTrace, TimelineEntry, UnifiedEvent } from '../core/query/types.js';
|
|
11
|
+
export declare function esc(s: unknown): string;
|
|
12
|
+
export declare function page(title: string, activePath: string, bodyHtml: string): string;
|
|
13
|
+
export declare function renderOverview(o: InspectOverview): string;
|
|
14
|
+
export declare function renderSessions(rows: SessionListEntry[]): string;
|
|
15
|
+
export declare function renderSession(s: SessionState): string;
|
|
16
|
+
export declare function renderCheckpoints(rows: CheckpointListEntry[]): string;
|
|
17
|
+
export declare function renderCheckpoint(cp: Checkpoint, lineage: LineageNode[]): string;
|
|
18
|
+
export declare function renderTimeline(kind: string, rows: TimelineEntry[]): string;
|
|
19
|
+
export declare function renderGraphs(list: string[], current?: GraphSummary): string;
|
|
20
|
+
export declare function renderMemory(m: MemoryIndexSnapshot | undefined): string;
|
|
21
|
+
export declare function renderCoordination(s: CoordinationSnapshot): string;
|
|
22
|
+
export declare function renderConflicts(c: ConflictEntry[]): string;
|
|
23
|
+
export declare function renderRisk(r: RiskSnapshot): string;
|
|
24
|
+
export declare function renderEvents(rows: UnifiedEvent[]): string;
|
|
25
|
+
export declare function renderRetrieval(t: RetrievalTrace): string;
|
|
26
|
+
export declare function renderContinuation(name: string, md: string): string;
|
|
27
|
+
//# sourceMappingURL=render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/inspect/render.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,cAAc,EACd,aAAa,EACb,YAAY,EACb,MAAM,wBAAwB,CAAC;AAEhC,wBAAgB,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAOtC;AA4CD,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAoBhF;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAsCzD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAsB/D;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAqCrD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAsBrE;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAmC/E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,MAAM,CAuB1E;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM,CAoB3E;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,mBAAmB,GAAG,SAAS,GAAG,MAAM,CA0BvE;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAkBlE;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,MAAM,CAS1D;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAoBlD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,CAkBzD;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAUzD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAGnE"}
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
export function esc(s) {
|
|
2
|
+
return String(s)
|
|
3
|
+
.replace(/&/g, '&')
|
|
4
|
+
.replace(/</g, '<')
|
|
5
|
+
.replace(/>/g, '>')
|
|
6
|
+
.replace(/"/g, '"')
|
|
7
|
+
.replace(/'/g, ''');
|
|
8
|
+
}
|
|
9
|
+
const CSS = `
|
|
10
|
+
:root { color-scheme: light dark; }
|
|
11
|
+
body { font: 14px/1.45 ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
|
12
|
+
margin: 0; padding: 0; background: Canvas; color: CanvasText; }
|
|
13
|
+
header { padding: 14px 22px; border-bottom: 1px solid #8884; }
|
|
14
|
+
header h1 { font-size: 16px; margin: 0; font-weight: 600; }
|
|
15
|
+
header .sub { font-size: 12px; opacity: .7; margin-top: 2px; }
|
|
16
|
+
nav { padding: 8px 22px; border-bottom: 1px solid #8884; }
|
|
17
|
+
nav a { display: inline-block; margin-right: 14px; text-decoration: none; color: inherit;
|
|
18
|
+
opacity: .75; font-size: 13px; }
|
|
19
|
+
nav a:hover, nav a.active { opacity: 1; text-decoration: underline; }
|
|
20
|
+
main { padding: 18px 22px 60px 22px; max-width: 1100px; }
|
|
21
|
+
h2 { font-size: 14px; font-weight: 600; margin: 24px 0 8px; }
|
|
22
|
+
table { border-collapse: collapse; width: 100%; font-size: 13px; }
|
|
23
|
+
th, td { text-align: left; padding: 6px 10px; border-bottom: 1px solid #8883; vertical-align: top; }
|
|
24
|
+
th { font-weight: 600; opacity: .75; }
|
|
25
|
+
code, pre { font: 12px/1.45 ui-monospace, SFMono-Regular, Menlo, monospace; }
|
|
26
|
+
pre { background: #8881; padding: 12px; border-radius: 6px; overflow: auto; }
|
|
27
|
+
.pill { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 11px;
|
|
28
|
+
background: #8882; }
|
|
29
|
+
.pill.high { background: #c2410c33; color: #c2410c; }
|
|
30
|
+
.pill.medium { background: #b4530933; color: #b45309; }
|
|
31
|
+
.pill.low { background: #16653433; color: #166534; }
|
|
32
|
+
.kv { display: grid; grid-template-columns: 180px 1fr; gap: 4px 14px; font-size: 13px; }
|
|
33
|
+
.kv dt { opacity: .65; }
|
|
34
|
+
.kv dd { margin: 0; }
|
|
35
|
+
.empty { opacity: .6; font-style: italic; }
|
|
36
|
+
footer { padding: 10px 22px; font-size: 11px; opacity: .55; border-top: 1px solid #8884; }
|
|
37
|
+
`;
|
|
38
|
+
const NAV = [
|
|
39
|
+
['/', 'Overview'],
|
|
40
|
+
['/sessions', 'Sessions'],
|
|
41
|
+
['/checkpoints', 'Checkpoints'],
|
|
42
|
+
['/timeline', 'Timeline'],
|
|
43
|
+
['/graphs', 'Graphs'],
|
|
44
|
+
['/memory', 'Memory'],
|
|
45
|
+
['/coordination', 'Coordination'],
|
|
46
|
+
['/risk', 'Risk'],
|
|
47
|
+
['/events', 'Events'],
|
|
48
|
+
];
|
|
49
|
+
export function page(title, activePath, bodyHtml) {
|
|
50
|
+
const nav = NAV.map(([p, label]) => `<a href="${esc(p)}" class="${p === activePath ? 'active' : ''}">${esc(label)}</a>`).join('');
|
|
51
|
+
return `<!doctype html>
|
|
52
|
+
<html lang="en"><head>
|
|
53
|
+
<meta charset="utf-8"/>
|
|
54
|
+
<title>${esc(title)} — Kairo Inspect</title>
|
|
55
|
+
<meta name="viewport" content="width=device-width,initial-scale=1"/>
|
|
56
|
+
<style>${CSS}</style>
|
|
57
|
+
</head><body>
|
|
58
|
+
<header>
|
|
59
|
+
<h1>Kairo Inspect</h1>
|
|
60
|
+
<div class="sub">Read-only local projection of <code>.kairo/</code> · ADR-0011 · no network</div>
|
|
61
|
+
</header>
|
|
62
|
+
<nav>${nav}</nav>
|
|
63
|
+
<main>${bodyHtml}</main>
|
|
64
|
+
<footer>Source of truth lives in <code>.kairo/</code>. This UI never writes.</footer>
|
|
65
|
+
</body></html>`;
|
|
66
|
+
}
|
|
67
|
+
export function renderOverview(o) {
|
|
68
|
+
if (!o.hasKairo) {
|
|
69
|
+
return `<p class="empty">No <code>.kairo/</code> directory at <code>${esc(o.projectRoot)}</code>. Start an MCP session first.</p>`;
|
|
70
|
+
}
|
|
71
|
+
const intel = o.intelligence;
|
|
72
|
+
return `
|
|
73
|
+
<h2>Project</h2>
|
|
74
|
+
<dl class="kv">
|
|
75
|
+
<dt>Root</dt><dd><code>${esc(o.projectRoot)}</code></dd>
|
|
76
|
+
<dt>Events</dt><dd>${o.eventCount}</dd>
|
|
77
|
+
<dt>Telemetry</dt><dd>${o.telemetryCount}</dd>
|
|
78
|
+
<dt>Sessions</dt><dd>${o.sessionCount}</dd>
|
|
79
|
+
<dt>Checkpoints</dt><dd>${o.checkpointCount}</dd>
|
|
80
|
+
<dt>Quarantine</dt><dd>${o.quarantineCount === 0
|
|
81
|
+
? '<span class="pill low">0</span>'
|
|
82
|
+
: `<span class="pill high">${o.quarantineCount}</span> see <code>.kairo/quarantine/</code>`}</dd>
|
|
83
|
+
<dt>Latest session</dt><dd>${o.latestSessionId ? `<code>${esc(o.latestSessionId)}</code>` : '<span class="empty">none</span>'}</dd>
|
|
84
|
+
<dt>Latest checkpoint</dt><dd>${o.latestCheckpointId
|
|
85
|
+
? `<a href="/checkpoints/${esc(o.latestCheckpointId)}"><code>${esc(o.latestCheckpointId)}</code></a>`
|
|
86
|
+
: '<span class="empty">none</span>'}</dd>
|
|
87
|
+
</dl>
|
|
88
|
+
${intel
|
|
89
|
+
? `<h2>Repository intelligence</h2>
|
|
90
|
+
<dl class="kv">
|
|
91
|
+
<dt>Schema</dt><dd>v${intel.schema}</dd>
|
|
92
|
+
<dt>Files indexed</dt><dd>${intel.files}${intel.truncated ? ' <span class="pill">truncated</span>' : ''}</dd>
|
|
93
|
+
<dt>Frameworks</dt><dd>${intel.frameworks.map((f) => `<code>${esc(f)}</code>`).join(', ') || '<span class="empty">none</span>'}</dd>
|
|
94
|
+
<dt>Languages</dt><dd>${intel.languages.map((l) => `<code>${esc(l)}</code>`).join(', ') || '<span class="empty">none</span>'}</dd>
|
|
95
|
+
</dl>`
|
|
96
|
+
: ''}`;
|
|
97
|
+
}
|
|
98
|
+
export function renderSessions(rows) {
|
|
99
|
+
if (rows.length === 0)
|
|
100
|
+
return `<p class="empty">No sessions recorded.</p>`;
|
|
101
|
+
return `<h2>Sessions (${rows.length})</h2>
|
|
102
|
+
<table><thead><tr>
|
|
103
|
+
<th>Started</th><th>Id</th><th>Agent</th><th>Status</th><th>Task</th>
|
|
104
|
+
<th>Files</th><th>Decisions</th><th>Errors</th>
|
|
105
|
+
</tr></thead><tbody>
|
|
106
|
+
${rows
|
|
107
|
+
.slice()
|
|
108
|
+
.reverse()
|
|
109
|
+
.map((r) => `<tr>
|
|
110
|
+
<td>${esc(r.startedAt)}</td>
|
|
111
|
+
<td><a href="/sessions/${esc(r.id)}"><code>${esc(r.id)}</code></a></td>
|
|
112
|
+
<td>${esc(r.agent)}</td>
|
|
113
|
+
<td><span class="pill">${esc(r.status)}</span></td>
|
|
114
|
+
<td>${esc(r.task)}</td>
|
|
115
|
+
<td>${r.changedFiles}</td><td>${r.decisions}</td><td>${r.errors}</td>
|
|
116
|
+
</tr>`)
|
|
117
|
+
.join('')}
|
|
118
|
+
</tbody></table>`;
|
|
119
|
+
}
|
|
120
|
+
export function renderSession(s) {
|
|
121
|
+
const files = Object.values(s.changedFiles);
|
|
122
|
+
return `<h2>Session <code>${esc(s.id)}</code></h2>
|
|
123
|
+
<dl class="kv">
|
|
124
|
+
<dt>Agent</dt><dd>${esc(s.agent)}</dd>
|
|
125
|
+
<dt>Task</dt><dd>${esc(s.task)}</dd>
|
|
126
|
+
<dt>Status</dt><dd><span class="pill">${esc(s.status)}</span></dd>
|
|
127
|
+
<dt>Started</dt><dd>${esc(s.startedAt)}</dd>
|
|
128
|
+
<dt>Last activity</dt><dd>${esc(s.lastActivityAt)}</dd>
|
|
129
|
+
<dt>Heartbeats / tools</dt><dd>${s.heartbeats} / ${s.toolCalls}</dd>
|
|
130
|
+
<dt>Compactions / clarifs</dt><dd>${s.compactions} / ${s.clarificationLoops}</dd>
|
|
131
|
+
</dl>
|
|
132
|
+
<h2>Changed files (${files.length})</h2>
|
|
133
|
+
${files.length === 0
|
|
134
|
+
? '<p class="empty">None.</p>'
|
|
135
|
+
: `<table><thead><tr><th>Path</th><th>Change</th><th>Touches</th></tr></thead><tbody>
|
|
136
|
+
${files
|
|
137
|
+
.map((f) => `<tr><td><code>${esc(f.path)}</code></td><td>${esc(f.changeKind)}</td><td>${f.touches}</td></tr>`)
|
|
138
|
+
.join('')}
|
|
139
|
+
</tbody></table>`}
|
|
140
|
+
<h2>Decisions (${s.decisions.length})</h2>
|
|
141
|
+
${s.decisions.length === 0
|
|
142
|
+
? '<p class="empty">None.</p>'
|
|
143
|
+
: `<ul>${s.decisions.map((d) => `<li><strong>${esc(d.summary)}</strong>${d.rationale ? ` — ${esc(d.rationale)}` : ''}</li>`).join('')}</ul>`}
|
|
144
|
+
<h2>Errors (${s.errors.length})</h2>
|
|
145
|
+
${s.errors.length === 0
|
|
146
|
+
? '<p class="empty">None.</p>'
|
|
147
|
+
: `<ul>${s.errors.map((e) => `<li>${esc(e.message)}${e.resolved ? ' <span class="pill low">resolved</span>' : ' <span class="pill high">open</span>'}</li>`).join('')}</ul>`}`;
|
|
148
|
+
}
|
|
149
|
+
export function renderCheckpoints(rows) {
|
|
150
|
+
if (rows.length === 0)
|
|
151
|
+
return `<p class="empty">No checkpoints recorded.</p>`;
|
|
152
|
+
return `<h2>Checkpoints (${rows.length})</h2>
|
|
153
|
+
<table><thead><tr>
|
|
154
|
+
<th>Created</th><th>Id</th><th>Reason</th><th>Risk</th><th>Task</th><th>Files</th><th>Brief</th>
|
|
155
|
+
</tr></thead><tbody>
|
|
156
|
+
${rows
|
|
157
|
+
.slice()
|
|
158
|
+
.reverse()
|
|
159
|
+
.map((r) => `<tr>
|
|
160
|
+
<td>${esc(r.createdAt)}</td>
|
|
161
|
+
<td><a href="/checkpoints/${esc(r.id)}"><code>${esc(r.id)}</code></a></td>
|
|
162
|
+
<td>${esc(r.reason)}</td>
|
|
163
|
+
<td><span class="pill ${esc(r.riskLevel)}">${esc(r.riskLevel)} (${r.riskScore.toFixed(2)})</span></td>
|
|
164
|
+
<td>${esc(r.task)}</td>
|
|
165
|
+
<td>${r.changedFiles}</td>
|
|
166
|
+
<td><a href="/continuations/${esc(r.continuationRef)}">brief</a></td>
|
|
167
|
+
</tr>`)
|
|
168
|
+
.join('')}
|
|
169
|
+
</tbody></table>`;
|
|
170
|
+
}
|
|
171
|
+
export function renderCheckpoint(cp, lineage) {
|
|
172
|
+
return `<h2>Checkpoint <code>${esc(cp.id)}</code></h2>
|
|
173
|
+
<dl class="kv">
|
|
174
|
+
<dt>Session</dt><dd><a href="/sessions/${esc(cp.sessionId)}"><code>${esc(cp.sessionId)}</code></a></dd>
|
|
175
|
+
<dt>Agent</dt><dd>${esc(cp.agent)}</dd>
|
|
176
|
+
<dt>Created</dt><dd>${esc(cp.createdAt)}</dd>
|
|
177
|
+
<dt>Reason</dt><dd>${esc(cp.reason)}</dd>
|
|
178
|
+
<dt>Task</dt><dd>${esc(cp.task)}</dd>
|
|
179
|
+
<dt>Risk</dt><dd><span class="pill ${esc(cp.risk.level)}">${esc(cp.risk.level)} (${cp.risk.score.toFixed(2)})</span></dd>
|
|
180
|
+
<dt>Pressure</dt><dd>${cp.pressure.score} → ${esc(cp.pressure.directive)}</dd>
|
|
181
|
+
<dt>Brief</dt><dd><a href="/continuations/${esc(cp.continuationRef)}">${esc(cp.continuationRef)}</a></dd>
|
|
182
|
+
</dl>
|
|
183
|
+
<h2>Lineage (${lineage.length})</h2>
|
|
184
|
+
${lineage.length === 0
|
|
185
|
+
? '<p class="empty">Root checkpoint.</p>'
|
|
186
|
+
: `<ol>${lineage
|
|
187
|
+
.map((n) => `<li><code>${esc(n.id)}</code> · ${esc(n.workerId)} · <span class="pill ${esc(n.riskLevel)}">${esc(n.riskLevel)}</span> · ${esc(n.task)}</li>`)
|
|
188
|
+
.join('')}</ol>`}
|
|
189
|
+
<h2>Risk factors</h2>
|
|
190
|
+
${cp.risk.factors.length === 0
|
|
191
|
+
? '<p class="empty">None.</p>'
|
|
192
|
+
: `<ul>${cp.risk.factors.map((f) => `<li><span class="pill ${esc(f.level)}">${esc(f.level)}</span> ${esc(f.detail)}</li>`).join('')}</ul>`}
|
|
193
|
+
<h2>Remaining work</h2>
|
|
194
|
+
${cp.remainingWork.length === 0
|
|
195
|
+
? '<p class="empty">None recorded.</p>'
|
|
196
|
+
: `<ul>${cp.remainingWork.map((w) => `<li>${esc(w)}</li>`).join('')}</ul>`}`;
|
|
197
|
+
}
|
|
198
|
+
export function renderTimeline(kind, rows) {
|
|
199
|
+
const kinds = [
|
|
200
|
+
['sessions', 'Sessions'],
|
|
201
|
+
['checkpoints', 'Checkpoints'],
|
|
202
|
+
['lease-conflicts', 'Lease conflicts'],
|
|
203
|
+
['retrievals', 'Retrievals'],
|
|
204
|
+
['memory-refresh', 'Memory refresh'],
|
|
205
|
+
];
|
|
206
|
+
const tabs = kinds
|
|
207
|
+
.map(([k, l]) => `<a href="/timeline?kind=${esc(k)}" class="${k === kind ? 'active' : ''}">${esc(l)}</a>`)
|
|
208
|
+
.join(' · ');
|
|
209
|
+
return `<h2>Timeline — ${esc(kind)}</h2>
|
|
210
|
+
<p>${tabs}</p>
|
|
211
|
+
${rows.length === 0
|
|
212
|
+
? '<p class="empty">No entries.</p>'
|
|
213
|
+
: `<table><thead><tr><th>Time</th><th>Session</th><th>Worker</th><th>Summary</th></tr></thead><tbody>
|
|
214
|
+
${rows.map((r) => `<tr><td>${esc(r.ts)}</td><td><code>${esc(r.sessionId)}</code></td><td>${esc(r.worker ?? '')}</td><td>${esc(r.summary)}</td></tr>`).join('')}
|
|
215
|
+
</tbody></table>`}`;
|
|
216
|
+
}
|
|
217
|
+
export function renderGraphs(list, current) {
|
|
218
|
+
const tabs = list
|
|
219
|
+
.map((k) => `<a href="/graphs/${esc(k)}" class="${current?.kind === k ? 'active' : ''}">${esc(k)}</a>`)
|
|
220
|
+
.join(' · ');
|
|
221
|
+
if (!current) {
|
|
222
|
+
return `<h2>Graphs</h2><p>${tabs || '<span class="empty">No graphs yet.</span>'}</p>`;
|
|
223
|
+
}
|
|
224
|
+
return `<h2>Graph — ${esc(current.kind)}</h2>
|
|
225
|
+
<p>${tabs}</p>
|
|
226
|
+
<dl class="kv">
|
|
227
|
+
<dt>Nodes</dt><dd>${current.nodes}</dd>
|
|
228
|
+
<dt>Edges</dt><dd>${current.edges}</dd>
|
|
229
|
+
<dt>Mirror</dt><dd><code>${esc(current.mirrorPath)}</code></dd>
|
|
230
|
+
</dl>
|
|
231
|
+
<h2>Mermaid source</h2>
|
|
232
|
+
<pre>${esc(current.mermaid)}</pre>
|
|
233
|
+
<p style="opacity:.6;font-size:12px">Paste into VS Code / GitHub / any Mermaid renderer. The inspector intentionally vendors no JS to stay offline-safe.</p>`;
|
|
234
|
+
}
|
|
235
|
+
export function renderMemory(m) {
|
|
236
|
+
if (!m)
|
|
237
|
+
return `<p class="empty">Memory not indexed yet.</p>`;
|
|
238
|
+
const kinds = Object.entries(m.byKind).sort();
|
|
239
|
+
return `<h2>Vector memory</h2>
|
|
240
|
+
<dl class="kv">
|
|
241
|
+
<dt>Embedder</dt><dd><code>${esc(m.embedder)}</code></dd>
|
|
242
|
+
<dt>Fingerprint</dt><dd><code>${esc(m.fingerprint)}</code></dd>
|
|
243
|
+
<dt>Chunks</dt><dd>${m.chunkCount}</dd>
|
|
244
|
+
</dl>
|
|
245
|
+
<h2>By kind</h2>
|
|
246
|
+
<table><thead><tr><th>Kind</th><th>Count</th></tr></thead><tbody>
|
|
247
|
+
${kinds.map(([k, n]) => `<tr><td><code>${esc(k)}</code></td><td>${n}</td></tr>`).join('')}
|
|
248
|
+
</tbody></table>
|
|
249
|
+
<h2>Top chunks (salience-ordered)</h2>
|
|
250
|
+
${m.topChunks.length === 0
|
|
251
|
+
? '<p class="empty">None.</p>'
|
|
252
|
+
: `<table><thead><tr><th>Salience</th><th>Kind</th><th>Locator</th></tr></thead><tbody>
|
|
253
|
+
${m.topChunks
|
|
254
|
+
.map((c) => `<tr><td>${c.salience.toFixed(3)}</td><td><code>${esc(c.kind)}</code></td><td><code>${esc(c.locator)}</code></td></tr>`)
|
|
255
|
+
.join('')}
|
|
256
|
+
</tbody></table>`}`;
|
|
257
|
+
}
|
|
258
|
+
export function renderCoordination(s) {
|
|
259
|
+
return `<h2>Workers (${s.knownWorkers.length})</h2>
|
|
260
|
+
${s.knownWorkers.length === 0
|
|
261
|
+
? '<p class="empty">None registered.</p>'
|
|
262
|
+
: `<table><thead><tr><th>Worker</th><th>Namespace</th><th>Agent</th><th>Last seen</th></tr></thead><tbody>
|
|
263
|
+
${s.knownWorkers.map((w) => `<tr><td><code>${esc(w.workerId)}</code></td><td><code>${esc(w.namespace)}</code></td><td>${esc(w.agent)}</td><td>${esc(w.lastSeen)}</td></tr>`).join('')}
|
|
264
|
+
</tbody></table>`}
|
|
265
|
+
<h2>Active leases (${s.activeLeases.length})</h2>
|
|
266
|
+
${s.activeLeases.length === 0
|
|
267
|
+
? '<p class="empty">None.</p>'
|
|
268
|
+
: `<table><thead><tr><th>Scope</th><th>Holder</th><th>Acquired</th><th>Expires</th></tr></thead><tbody>
|
|
269
|
+
${s.activeLeases.map((l) => `<tr><td><code>${esc(l.scopeKind)}:${esc(l.scope)}</code></td><td>${esc(l.holder)}</td><td>${esc(l.acquiredAt)}</td><td>${esc(l.expiresAt)}</td></tr>`).join('')}
|
|
270
|
+
</tbody></table>`}
|
|
271
|
+
${renderConflicts(s.conflicts)}`;
|
|
272
|
+
}
|
|
273
|
+
export function renderConflicts(c) {
|
|
274
|
+
return `<h2>Lease conflicts (${c.length})</h2>
|
|
275
|
+
${c.length === 0
|
|
276
|
+
? '<p class="empty">No denied leases on record.</p>'
|
|
277
|
+
: `<table><thead><tr><th>Denied</th><th>Scope</th><th>Denied worker</th><th>Held by</th><th>Granted at</th></tr></thead><tbody>
|
|
278
|
+
${c.map((x) => `<tr><td>${esc(x.deniedAt)}</td><td><code>${esc(x.scopeKind)}:${esc(x.scope)}</code></td><td>${esc(x.deniedWorker)}</td><td>${esc(x.holder)}</td><td>${esc(x.holderGrantedAt ?? '')}</td></tr>`).join('')}
|
|
279
|
+
</tbody></table>`}`;
|
|
280
|
+
}
|
|
281
|
+
export function renderRisk(r) {
|
|
282
|
+
return `<h2>Risk by checkpoint</h2>
|
|
283
|
+
<p>
|
|
284
|
+
<span class="pill low">low ${r.byLevel.low}</span>
|
|
285
|
+
<span class="pill medium">medium ${r.byLevel.medium}</span>
|
|
286
|
+
<span class="pill high">high ${r.byLevel.high}</span>
|
|
287
|
+
</p>
|
|
288
|
+
<h2>Escalations (${r.escalations.length})</h2>
|
|
289
|
+
${r.escalations.length === 0
|
|
290
|
+
? '<p class="empty">No medium/high checkpoints.</p>'
|
|
291
|
+
: `<table><thead><tr><th>Created</th><th>Checkpoint</th><th>Level</th><th>Task</th></tr></thead><tbody>
|
|
292
|
+
${r.escalations
|
|
293
|
+
.map((e) => `<tr><td>${esc(e.createdAt)}</td><td><a href="/checkpoints/${esc(e.checkpointId)}"><code>${esc(e.checkpointId)}</code></a></td><td><span class="pill ${esc(e.level)}">${esc(e.level)} (${e.score.toFixed(2)})</span></td><td>${esc(e.task)}</td></tr>`)
|
|
294
|
+
.join('')}
|
|
295
|
+
</tbody></table>`}`;
|
|
296
|
+
}
|
|
297
|
+
export function renderEvents(rows) {
|
|
298
|
+
return `<h2>Events (${rows.length})</h2>
|
|
299
|
+
<p style="opacity:.65;font-size:12px">Most-recent first. Use the MCP <code>kairo_query_events</code> tool for filtering — this view is read-only and unfiltered.</p>
|
|
300
|
+
${rows.length === 0
|
|
301
|
+
? '<p class="empty">No events.</p>'
|
|
302
|
+
: `<table><thead><tr><th>Time</th><th>Source</th><th>Kind</th><th>Session</th><th>Worker</th></tr></thead><tbody>
|
|
303
|
+
${rows
|
|
304
|
+
.slice()
|
|
305
|
+
.reverse()
|
|
306
|
+
.slice(0, 500)
|
|
307
|
+
.map((e) => `<tr><td>${esc(e.ts)}</td><td>${esc(e.source)}</td><td><code>${esc(e.kind)}</code></td><td><code>${esc(e.sessionId)}</code></td><td>${esc(e.worker ?? '')}</td></tr>`)
|
|
308
|
+
.join('')}
|
|
309
|
+
</tbody></table>`}`;
|
|
310
|
+
}
|
|
311
|
+
export function renderRetrieval(t) {
|
|
312
|
+
const row = (label, e) => `<dt>${esc(label)}</dt><dd>${e ? `<code>${esc(e.kind)}</code> · ${esc(e.ts)} · <code>${esc(e.sessionId)}</code>` : '<span class="empty">none</span>'}</dd>`;
|
|
313
|
+
return `<h2>Retrieval trace</h2>
|
|
314
|
+
<dl class="kv">
|
|
315
|
+
${row('Retrieval', t.retrieval)}
|
|
316
|
+
${row('Preceding session start', t.precedingSessionStart)}
|
|
317
|
+
${row('Latest memory refresh', t.latestMemoryRefresh)}
|
|
318
|
+
${row('Latest checkpoint before', t.latestCheckpointBefore)}
|
|
319
|
+
</dl>`;
|
|
320
|
+
}
|
|
321
|
+
export function renderContinuation(name, md) {
|
|
322
|
+
return `<h2>Continuation brief — <code>${esc(name)}</code></h2>
|
|
323
|
+
<pre>${esc(md)}</pre>`;
|
|
324
|
+
}
|
|
325
|
+
//# sourceMappingURL=render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/inspect/render.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local web inspector (v0.9.0, ADR-0011). Loopback-only by default. No
|
|
3
|
+
* network egress, no remote assets, no analytics. Read-only over `.kairo/`.
|
|
4
|
+
*/
|
|
5
|
+
export interface InspectServerOptions {
|
|
6
|
+
projectRoot?: string;
|
|
7
|
+
/** Defaults to 127.0.0.1 — loopback only. */
|
|
8
|
+
host?: string;
|
|
9
|
+
/** 0 picks a free port (used by tests). */
|
|
10
|
+
port?: number;
|
|
11
|
+
}
|
|
12
|
+
export interface InspectServerHandle {
|
|
13
|
+
url: string;
|
|
14
|
+
port: number;
|
|
15
|
+
close: () => Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
export declare function startInspectServer(opts?: InspectServerOptions): Promise<InspectServerHandle>;
|
|
18
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/inspect/server.ts"],"names":[],"mappings":"AAqBA;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,wBAAsB,kBAAkB,CACtC,IAAI,GAAE,oBAAyB,GAC9B,OAAO,CAAC,mBAAmB,CAAC,CAiC9B"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { createServer as createHttp } from 'node:http';
|
|
2
|
+
import { InspectProjection } from './projections.js';
|
|
3
|
+
import { page, renderCheckpoint, renderCheckpoints, renderContinuation, renderCoordination, renderEvents, renderGraphs, renderMemory, renderOverview, renderRetrieval, renderRisk, renderSession, renderSessions, renderTimeline, } from './render.js';
|
|
4
|
+
export async function startInspectServer(opts = {}) {
|
|
5
|
+
const projection = new InspectProjection(opts.projectRoot);
|
|
6
|
+
const host = opts.host ?? '127.0.0.1';
|
|
7
|
+
const desiredPort = opts.port ?? 4173;
|
|
8
|
+
const server = createHttp((req, res) => {
|
|
9
|
+
void handle(req, res, projection).catch((err) => {
|
|
10
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
11
|
+
res.statusCode = 500;
|
|
12
|
+
res.setHeader('Content-Type', 'text/plain; charset=utf-8');
|
|
13
|
+
res.end(`Inspector error: ${msg}`);
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
await new Promise((resolve, reject) => {
|
|
17
|
+
server.once('error', reject);
|
|
18
|
+
server.listen(desiredPort, host, () => {
|
|
19
|
+
server.off('error', reject);
|
|
20
|
+
resolve();
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
const addr = server.address();
|
|
24
|
+
const port = addr.port;
|
|
25
|
+
const url = `http://${host}:${port}`;
|
|
26
|
+
return {
|
|
27
|
+
url,
|
|
28
|
+
port,
|
|
29
|
+
close: () => new Promise((resolve, reject) => {
|
|
30
|
+
server.close((err) => (err ? reject(err) : resolve()));
|
|
31
|
+
}),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
async function handle(req, res, p) {
|
|
35
|
+
const url = new URL(req.url ?? '/', 'http://x');
|
|
36
|
+
const path = url.pathname;
|
|
37
|
+
const send = (status, html) => {
|
|
38
|
+
res.statusCode = status;
|
|
39
|
+
res.setHeader('Content-Type', 'text/html; charset=utf-8');
|
|
40
|
+
// CSP hardening: this UI vendors no JS/CSS from anywhere external.
|
|
41
|
+
res.setHeader('Content-Security-Policy', "default-src 'none'; style-src 'unsafe-inline'; img-src data:; base-uri 'none'; form-action 'none'");
|
|
42
|
+
res.setHeader('X-Content-Type-Options', 'nosniff');
|
|
43
|
+
res.setHeader('Referrer-Policy', 'no-referrer');
|
|
44
|
+
res.end(html);
|
|
45
|
+
};
|
|
46
|
+
if (path === '/') {
|
|
47
|
+
const o = await p.overview();
|
|
48
|
+
return send(200, page('Overview', '/', renderOverview(o)));
|
|
49
|
+
}
|
|
50
|
+
if (path === '/sessions') {
|
|
51
|
+
return send(200, page('Sessions', '/sessions', renderSessions(await p.listSessions())));
|
|
52
|
+
}
|
|
53
|
+
if (path.startsWith('/sessions/')) {
|
|
54
|
+
const id = decodeURIComponent(path.slice('/sessions/'.length));
|
|
55
|
+
const s = await p.getSession(id);
|
|
56
|
+
if (!s)
|
|
57
|
+
return send(404, page('Session', '/sessions', `<p class="empty">Not found.</p>`));
|
|
58
|
+
return send(200, page(`Session ${id}`, '/sessions', renderSession(s)));
|
|
59
|
+
}
|
|
60
|
+
if (path === '/checkpoints') {
|
|
61
|
+
return send(200, page('Checkpoints', '/checkpoints', renderCheckpoints(await p.listCheckpoints())));
|
|
62
|
+
}
|
|
63
|
+
if (path.startsWith('/checkpoints/')) {
|
|
64
|
+
const id = decodeURIComponent(path.slice('/checkpoints/'.length));
|
|
65
|
+
const cp = await p.getCheckpoint(id);
|
|
66
|
+
if (!cp)
|
|
67
|
+
return send(404, page('Checkpoint', '/checkpoints', `<p class="empty">Not found.</p>`));
|
|
68
|
+
const lineage = await p.lineage(id);
|
|
69
|
+
return send(200, page(`Checkpoint ${id}`, '/checkpoints', renderCheckpoint(cp, lineage)));
|
|
70
|
+
}
|
|
71
|
+
if (path.startsWith('/continuations/')) {
|
|
72
|
+
const name = decodeURIComponent(path.slice('/continuations/'.length));
|
|
73
|
+
const md = await p.readContinuation(name);
|
|
74
|
+
if (md === undefined)
|
|
75
|
+
return send(404, page('Brief', '/checkpoints', `<p class="empty">Not found.</p>`));
|
|
76
|
+
return send(200, page(`Brief ${name}`, '/checkpoints', renderContinuation(name, md)));
|
|
77
|
+
}
|
|
78
|
+
if (path === '/timeline') {
|
|
79
|
+
const kind = (url.searchParams.get('kind') ?? 'checkpoints');
|
|
80
|
+
return send(200, page('Timeline', '/timeline', renderTimeline(kind, await p.timeline(kind))));
|
|
81
|
+
}
|
|
82
|
+
if (path === '/graphs') {
|
|
83
|
+
return send(200, page('Graphs', '/graphs', renderGraphs(await p.listGraphs())));
|
|
84
|
+
}
|
|
85
|
+
if (path.startsWith('/graphs/')) {
|
|
86
|
+
const kind = decodeURIComponent(path.slice('/graphs/'.length));
|
|
87
|
+
const g = await p.readGraph(kind);
|
|
88
|
+
const list = await p.listGraphs();
|
|
89
|
+
return send(200, page(`Graph ${kind}`, '/graphs', renderGraphs(list, g)));
|
|
90
|
+
}
|
|
91
|
+
if (path === '/memory') {
|
|
92
|
+
return send(200, page('Memory', '/memory', renderMemory(await p.memoryIndex())));
|
|
93
|
+
}
|
|
94
|
+
if (path === '/coordination') {
|
|
95
|
+
return send(200, page('Coordination', '/coordination', renderCoordination(await p.coordination())));
|
|
96
|
+
}
|
|
97
|
+
if (path === '/risk') {
|
|
98
|
+
return send(200, page('Risk', '/risk', renderRisk(await p.risk())));
|
|
99
|
+
}
|
|
100
|
+
if (path === '/events') {
|
|
101
|
+
return send(200, page('Events', '/events', renderEvents(await p.events({ limit: 0 }))));
|
|
102
|
+
}
|
|
103
|
+
if (path.startsWith('/retrieval/')) {
|
|
104
|
+
const id = decodeURIComponent(path.slice('/retrieval/'.length));
|
|
105
|
+
const trace = await p.retrieval(id);
|
|
106
|
+
if (!trace)
|
|
107
|
+
return send(404, page('Retrieval', '/events', `<p class="empty">Not found.</p>`));
|
|
108
|
+
return send(200, page(`Retrieval ${id}`, '/events', renderRetrieval(trace)));
|
|
109
|
+
}
|
|
110
|
+
send(404, page('Not found', path, `<p class="empty">No route for <code>${path}</code>.</p>`));
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/inspect/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { SessionManager } from '../core/session/sessionManager.js';
|
|
2
|
+
import { type RunOptions, type ScenarioSpec } from './runner.js';
|
|
3
|
+
import type { BenchmarkReport } from './types.js';
|
|
4
|
+
export interface RunBenchmarkOptions extends RunOptions {
|
|
5
|
+
/** Override the scenario list (advanced). */
|
|
6
|
+
scenarios?: ScenarioSpec[];
|
|
7
|
+
/** ISO timestamp used in the report header. Pinnable for tests. */
|
|
8
|
+
now?: () => Date;
|
|
9
|
+
/** Override the report path. Defaults to `.kairo/reports/PERFORMANCE.md`. */
|
|
10
|
+
reportPath?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface RunBenchmarkResult {
|
|
13
|
+
report: BenchmarkReport;
|
|
14
|
+
reportPath: string;
|
|
15
|
+
markdown: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Run the benchmark suite end-to-end and write the report (ADR-0014).
|
|
19
|
+
* Reads pass through the v0.9.1 migration pipeline; nothing is mutated.
|
|
20
|
+
*/
|
|
21
|
+
export declare function runBenchmark(sessions: SessionManager, projectRoot: string, opts?: RunBenchmarkOptions): Promise<RunBenchmarkResult>;
|
|
22
|
+
export { renderPerformanceReport } from './report.js';
|
|
23
|
+
export * from './types.js';
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/perf/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGxE,OAAO,EAAgB,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAG/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD,6CAA6C;IAC7C,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAqB7B;AAED,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { mkdir, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { dirname } from 'node:path';
|
|
3
|
+
import { kairoPaths } from '../storage/paths.js';
|
|
4
|
+
import { SERVER_VERSION } from '../server/createServer.js';
|
|
5
|
+
import { runScenarios } from './runner.js';
|
|
6
|
+
import { renderPerformanceReport } from './report.js';
|
|
7
|
+
import { standardScenarios } from './scenarios.js';
|
|
8
|
+
/**
|
|
9
|
+
* Run the benchmark suite end-to-end and write the report (ADR-0014).
|
|
10
|
+
* Reads pass through the v0.9.1 migration pipeline; nothing is mutated.
|
|
11
|
+
*/
|
|
12
|
+
export async function runBenchmark(sessions, projectRoot, opts = {}) {
|
|
13
|
+
const paths = kairoPaths(projectRoot);
|
|
14
|
+
const specs = opts.scenarios ?? standardScenarios(sessions, projectRoot);
|
|
15
|
+
const startedAt = (opts.now ?? (() => new Date()))().toISOString();
|
|
16
|
+
const runOpts = {};
|
|
17
|
+
if (opts.iterations !== undefined)
|
|
18
|
+
runOpts.iterations = opts.iterations;
|
|
19
|
+
if (opts.only !== undefined)
|
|
20
|
+
runOpts.only = opts.only;
|
|
21
|
+
const results = await runScenarios(specs, runOpts);
|
|
22
|
+
const totalMs = results.reduce((acc, r) => acc + (r.skipped ? 0 : r.stats.median), 0);
|
|
23
|
+
const report = {
|
|
24
|
+
kairoVersion: SERVER_VERSION,
|
|
25
|
+
projectRoot,
|
|
26
|
+
startedAt,
|
|
27
|
+
totalMs,
|
|
28
|
+
scenarios: results,
|
|
29
|
+
};
|
|
30
|
+
const markdown = renderPerformanceReport(report);
|
|
31
|
+
const reportPath = opts.reportPath ?? `${paths.reportsDir}/PERFORMANCE.md`;
|
|
32
|
+
await mkdir(dirname(reportPath), { recursive: true });
|
|
33
|
+
await writeFile(reportPath, markdown, 'utf8');
|
|
34
|
+
return { report, reportPath, markdown };
|
|
35
|
+
}
|
|
36
|
+
export { renderPerformanceReport } from './report.js';
|
|
37
|
+
export * from './types.js';
|
|
38
|
+
//# sourceMappingURL=index.js.map
|