@nxuss/lemma 1.31.0 → 1.32.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/README.md +55 -0
- package/dist/cjs/api/server.js +1 -1
- package/dist/cjs/api/server.js.map +1 -1
- package/dist/cjs/autopilot/AutopilotWatcher.js +2 -2
- package/dist/cjs/autopilot/AutopilotWatcher.js.map +1 -1
- package/dist/cjs/autopilot/Notifier.d.ts.map +1 -1
- package/dist/cjs/autopilot/Notifier.js +0 -1
- package/dist/cjs/autopilot/Notifier.js.map +1 -1
- package/dist/cjs/cli/lemma-proxy.d.ts.map +1 -1
- package/dist/cjs/cli/lemma-proxy.js +18 -18
- package/dist/cjs/cli/lemma-proxy.js.map +1 -1
- package/dist/cjs/cli/stack.d.ts.map +1 -1
- package/dist/cjs/cli/stack.js.map +1 -1
- package/dist/cjs/cloud/TenantCache.d.ts.map +1 -1
- package/dist/cjs/cloud/TenantCache.js +0 -1
- package/dist/cjs/cloud/TenantCache.js.map +1 -1
- package/dist/cjs/cloud/scrub/StatelessScrubber.d.ts.map +1 -1
- package/dist/cjs/cloud/scrub/StatelessScrubber.js +2 -1
- package/dist/cjs/cloud/scrub/StatelessScrubber.js.map +1 -1
- package/dist/cjs/cloud/server.js +4 -4
- package/dist/cjs/cloud/server.js.map +1 -1
- package/dist/cjs/cloud/store/FileBrainStore.d.ts.map +1 -1
- package/dist/cjs/cloud/store/FileBrainStore.js.map +1 -1
- package/dist/cjs/cloud/store/PostgresBrainStore.d.ts.map +1 -1
- package/dist/cjs/cloud/store/PostgresBrainStore.js +1 -1
- package/dist/cjs/cloud/store/PostgresBrainStore.js.map +1 -1
- package/dist/cjs/consensus/ConsensusEngine.d.ts.map +1 -1
- package/dist/cjs/consensus/ConsensusEngine.js +0 -1
- package/dist/cjs/consensus/ConsensusEngine.js.map +1 -1
- package/dist/cjs/core/GhostListener.d.ts.map +1 -1
- package/dist/cjs/core/GhostListener.js.map +1 -1
- package/dist/cjs/core/OrchestrationEngine.d.ts.map +1 -1
- package/dist/cjs/core/OrchestrationEngine.js +1 -1
- package/dist/cjs/core/OrchestrationEngine.js.map +1 -1
- package/dist/cjs/core/SubconsciousEngine.d.ts.map +1 -1
- package/dist/cjs/core/SubconsciousEngine.js.map +1 -1
- package/dist/cjs/core/router.d.ts.map +1 -1
- package/dist/cjs/core/router.js +2 -2
- package/dist/cjs/core/router.js.map +1 -1
- package/dist/cjs/embed/index.d.ts.map +1 -1
- package/dist/cjs/embed/index.js +0 -1
- package/dist/cjs/embed/index.js.map +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/infra/analyzers/DriftDetector.js +1 -1
- package/dist/cjs/infra/analyzers/DriftDetector.js.map +1 -1
- package/dist/cjs/infra/config.d.ts.map +1 -1
- package/dist/cjs/infra/mcp-tools.d.ts.map +1 -1
- package/dist/cjs/infra/mcp-tools.js +29 -5
- package/dist/cjs/infra/mcp-tools.js.map +1 -1
- package/dist/cjs/infra/providers/InfraProvider.d.ts.map +1 -1
- package/dist/cjs/infra/providers/JenkinsProvider.js +1 -1
- package/dist/cjs/infra/templates/jenkins/index.d.ts.map +1 -1
- package/dist/cjs/infra/templates/jenkins/index.js +8 -4
- package/dist/cjs/infra/templates/jenkins/index.js.map +1 -1
- package/dist/cjs/mcp/index.js +1 -1
- package/dist/cjs/mcp/index.js.map +1 -1
- package/dist/cjs/mcp/tools/codenav.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/codenav.js +145 -48
- package/dist/cjs/mcp/tools/codenav.js.map +1 -1
- package/dist/cjs/mcp/tools/context-tools.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/context-tools.js +1 -1
- package/dist/cjs/mcp/tools/context-tools.js.map +1 -1
- package/dist/cjs/mcp/tools/devtools.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/devtools.js +124 -33
- package/dist/cjs/mcp/tools/devtools.js.map +1 -1
- package/dist/cjs/mcp/tools/memory.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/memory.js +8 -0
- package/dist/cjs/mcp/tools/memory.js.map +1 -1
- package/dist/cjs/mcp/tools/misc.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/misc.js +16 -1
- package/dist/cjs/mcp/tools/misc.js.map +1 -1
- package/dist/cjs/mcp/tools/refactor.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/refactor.js +234 -107
- package/dist/cjs/mcp/tools/refactor.js.map +1 -1
- package/dist/cjs/mcp/tools/review.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/review.js +12 -11
- package/dist/cjs/mcp/tools/review.js.map +1 -1
- package/dist/cjs/mcp/tools/workspace.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/workspace.js +78 -16
- package/dist/cjs/mcp/tools/workspace.js.map +1 -1
- package/dist/cjs/mcp/tools.d.ts.map +1 -1
- package/dist/cjs/mcp/tools.js.map +1 -1
- package/dist/cjs/mcp/utils.d.ts +1 -1
- package/dist/cjs/mcp/utils.d.ts.map +1 -1
- package/dist/cjs/mcp/utils.js +242 -36
- package/dist/cjs/mcp/utils.js.map +1 -1
- package/dist/cjs/mcp/workspaceShared.d.ts +2 -0
- package/dist/cjs/mcp/workspaceShared.d.ts.map +1 -1
- package/dist/cjs/mcp/workspaceShared.js +10 -3
- package/dist/cjs/mcp/workspaceShared.js.map +1 -1
- package/dist/cjs/pr-review/adapters/AzureDevOpsAdapter.d.ts +1 -1
- package/dist/cjs/pr-review/adapters/AzureDevOpsAdapter.d.ts.map +1 -1
- package/dist/cjs/pr-review/adapters/AzureDevOpsAdapter.js +5 -5
- package/dist/cjs/pr-review/adapters/AzureDevOpsAdapter.js.map +1 -1
- package/dist/cjs/pr-review/adapters/GitHubAdapter.d.ts +1 -1
- package/dist/cjs/pr-review/adapters/GitHubAdapter.d.ts.map +1 -1
- package/dist/cjs/pr-review/adapters/GitHubAdapter.js +1 -1
- package/dist/cjs/pr-review/adapters/GitHubAdapter.js.map +1 -1
- package/dist/cjs/pr-review/adapters/GitLabAdapter.d.ts +1 -1
- package/dist/cjs/pr-review/adapters/GitLabAdapter.d.ts.map +1 -1
- package/dist/cjs/pr-review/adapters/GitLabAdapter.js +1 -2
- package/dist/cjs/pr-review/adapters/GitLabAdapter.js.map +1 -1
- package/dist/cjs/pr-review/analyzers/RegressionDetector.d.ts +1 -1
- package/dist/cjs/pr-review/analyzers/RegressionDetector.d.ts.map +1 -1
- package/dist/cjs/pr-review/analyzers/RegressionDetector.js +1 -2
- package/dist/cjs/pr-review/analyzers/RegressionDetector.js.map +1 -1
- package/dist/cjs/pr-review/analyzers/SecurityScanner.js +2 -2
- package/dist/cjs/pr-review/analyzers/SecurityScanner.js.map +1 -1
- package/dist/cjs/pr-review/analyzers/StaticAnalyzer.d.ts.map +1 -1
- package/dist/cjs/pr-review/analyzers/StaticAnalyzer.js +0 -6
- package/dist/cjs/pr-review/analyzers/StaticAnalyzer.js.map +1 -1
- package/dist/cjs/protocol/flows.d.ts +4 -1
- package/dist/cjs/protocol/flows.d.ts.map +1 -1
- package/dist/cjs/protocol/flows.js +13 -8
- package/dist/cjs/protocol/flows.js.map +1 -1
- package/dist/cjs/protocol/validators.d.ts.map +1 -1
- package/dist/cjs/protocol/validators.js.map +1 -1
- package/dist/cjs/proxy/AgentMultiplexer.d.ts +1 -1
- package/dist/cjs/proxy/AgentMultiplexer.d.ts.map +1 -1
- package/dist/cjs/proxy/AgentMultiplexer.js +1 -1
- package/dist/cjs/proxy/AgentMultiplexer.js.map +1 -1
- package/dist/cjs/proxy/Gatekeeper.js +0 -1
- package/dist/cjs/proxy/Gatekeeper.js.map +1 -1
- package/dist/cjs/security/MessageSanitizer.d.ts.map +1 -1
- package/dist/cjs/security/MessageSanitizer.js +2 -1
- package/dist/cjs/security/MessageSanitizer.js.map +1 -1
- package/dist/cjs/security/SecurityMiddleware.d.ts.map +1 -1
- package/dist/cjs/security/SecurityMiddleware.js.map +1 -1
- package/dist/cjs/security/SemanticScrubber.d.ts.map +1 -1
- package/dist/cjs/security/SemanticScrubber.js +54 -1
- package/dist/cjs/security/SemanticScrubber.js.map +1 -1
- package/dist/cjs/speculative/SpeculativeEngine.d.ts.map +1 -1
- package/dist/cjs/speculative/SpeculativeEngine.js.map +1 -1
- package/dist/cjs/subconscious/TheBrainV2.d.ts.map +1 -1
- package/dist/cjs/subconscious/TheBrainV2.js +1 -13
- package/dist/cjs/subconscious/TheBrainV2.js.map +1 -1
- package/dist/cjs/utils/AutoContextBundle.d.ts.map +1 -1
- package/dist/cjs/utils/AutoContextBundle.js.map +1 -1
- package/dist/cjs/utils/ClipboardWatcher.js +1 -1
- package/dist/cjs/utils/ClipboardWatcher.js.map +1 -1
- package/dist/cjs/utils/CommandEnv.d.ts +26 -0
- package/dist/cjs/utils/CommandEnv.d.ts.map +1 -0
- package/dist/cjs/utils/CommandEnv.js +91 -0
- package/dist/cjs/utils/CommandEnv.js.map +1 -0
- package/dist/cjs/utils/CommandSandbox.d.ts +42 -0
- package/dist/cjs/utils/CommandSandbox.d.ts.map +1 -0
- package/dist/cjs/utils/CommandSandbox.js +135 -0
- package/dist/cjs/utils/CommandSandbox.js.map +1 -0
- package/dist/cjs/utils/ContextSqueezer.d.ts +7 -1
- package/dist/cjs/utils/ContextSqueezer.d.ts.map +1 -1
- package/dist/cjs/utils/ContextSqueezer.js +187 -36
- package/dist/cjs/utils/ContextSqueezer.js.map +1 -1
- package/dist/cjs/utils/DepGraph.d.ts.map +1 -1
- package/dist/cjs/utils/DepGraph.js +52 -21
- package/dist/cjs/utils/DepGraph.js.map +1 -1
- package/dist/cjs/utils/Eol.d.ts +10 -0
- package/dist/cjs/utils/Eol.d.ts.map +1 -0
- package/dist/cjs/utils/Eol.js +20 -0
- package/dist/cjs/utils/Eol.js.map +1 -0
- package/dist/cjs/utils/ImportTreeContext.d.ts.map +1 -1
- package/dist/cjs/utils/ImportTreeContext.js +18 -4
- package/dist/cjs/utils/ImportTreeContext.js.map +1 -1
- package/dist/cjs/utils/PatchMatcher.d.ts +1 -1
- package/dist/cjs/utils/PatchMatcher.d.ts.map +1 -1
- package/dist/cjs/utils/PatchMatcher.js +47 -1
- package/dist/cjs/utils/PatchMatcher.js.map +1 -1
- package/dist/cjs/utils/SurgicalASTInsert.d.ts.map +1 -1
- package/dist/cjs/utils/SurgicalASTInsert.js +3 -1
- package/dist/cjs/utils/SurgicalASTInsert.js.map +1 -1
- package/dist/cjs/utils/SymbolSurgicalContext.js +3 -3
- package/dist/cjs/utils/SymbolSurgicalContext.js.map +1 -1
- package/dist/cjs/utils/TokenBudgetedReader.d.ts.map +1 -1
- package/dist/cjs/utils/TokenBudgetedReader.js +51 -37
- package/dist/cjs/utils/TokenBudgetedReader.js.map +1 -1
- package/dist/cjs/utils/WorkspaceSearch.d.ts.map +1 -1
- package/dist/cjs/utils/WorkspaceSearch.js +1 -0
- package/dist/cjs/utils/WorkspaceSearch.js.map +1 -1
- package/dist/cjs/utils/WormholeCompressor.js +3 -3
- package/dist/cjs/utils/WormholeCompressor.js.map +1 -1
- package/dist/esm/api/server.js +1 -1
- package/dist/esm/api/server.js.map +1 -1
- package/dist/esm/autopilot/AutopilotWatcher.js +2 -2
- package/dist/esm/autopilot/AutopilotWatcher.js.map +1 -1
- package/dist/esm/autopilot/Notifier.d.ts.map +1 -1
- package/dist/esm/autopilot/Notifier.js +0 -1
- package/dist/esm/autopilot/Notifier.js.map +1 -1
- package/dist/esm/cli/lemma-proxy.d.ts.map +1 -1
- package/dist/esm/cli/lemma-proxy.js +18 -18
- package/dist/esm/cli/lemma-proxy.js.map +1 -1
- package/dist/esm/cli/stack.d.ts.map +1 -1
- package/dist/esm/cli/stack.js.map +1 -1
- package/dist/esm/cloud/TenantCache.d.ts.map +1 -1
- package/dist/esm/cloud/TenantCache.js +0 -1
- package/dist/esm/cloud/TenantCache.js.map +1 -1
- package/dist/esm/cloud/scrub/StatelessScrubber.d.ts.map +1 -1
- package/dist/esm/cloud/scrub/StatelessScrubber.js +2 -1
- package/dist/esm/cloud/scrub/StatelessScrubber.js.map +1 -1
- package/dist/esm/cloud/server.js +4 -4
- package/dist/esm/cloud/server.js.map +1 -1
- package/dist/esm/cloud/store/FileBrainStore.d.ts.map +1 -1
- package/dist/esm/cloud/store/FileBrainStore.js.map +1 -1
- package/dist/esm/cloud/store/PostgresBrainStore.d.ts.map +1 -1
- package/dist/esm/cloud/store/PostgresBrainStore.js +1 -1
- package/dist/esm/cloud/store/PostgresBrainStore.js.map +1 -1
- package/dist/esm/consensus/ConsensusEngine.d.ts.map +1 -1
- package/dist/esm/consensus/ConsensusEngine.js +0 -1
- package/dist/esm/consensus/ConsensusEngine.js.map +1 -1
- package/dist/esm/core/GhostListener.d.ts.map +1 -1
- package/dist/esm/core/GhostListener.js.map +1 -1
- package/dist/esm/core/OrchestrationEngine.d.ts.map +1 -1
- package/dist/esm/core/OrchestrationEngine.js +1 -1
- package/dist/esm/core/OrchestrationEngine.js.map +1 -1
- package/dist/esm/core/SubconsciousEngine.d.ts.map +1 -1
- package/dist/esm/core/SubconsciousEngine.js.map +1 -1
- package/dist/esm/core/router.d.ts.map +1 -1
- package/dist/esm/core/router.js +2 -2
- package/dist/esm/core/router.js.map +1 -1
- package/dist/esm/embed/index.d.ts.map +1 -1
- package/dist/esm/embed/index.js +0 -1
- package/dist/esm/embed/index.js.map +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/infra/analyzers/DriftDetector.js +1 -1
- package/dist/esm/infra/analyzers/DriftDetector.js.map +1 -1
- package/dist/esm/infra/config.d.ts.map +1 -1
- package/dist/esm/infra/mcp-tools.d.ts.map +1 -1
- package/dist/esm/infra/mcp-tools.js +29 -5
- package/dist/esm/infra/mcp-tools.js.map +1 -1
- package/dist/esm/infra/providers/InfraProvider.d.ts.map +1 -1
- package/dist/esm/infra/providers/JenkinsProvider.js +1 -1
- package/dist/esm/infra/templates/jenkins/index.d.ts.map +1 -1
- package/dist/esm/infra/templates/jenkins/index.js +8 -4
- package/dist/esm/infra/templates/jenkins/index.js.map +1 -1
- package/dist/esm/mcp/index.js +1 -1
- package/dist/esm/mcp/index.js.map +1 -1
- package/dist/esm/mcp/tools/codenav.d.ts.map +1 -1
- package/dist/esm/mcp/tools/codenav.js +145 -48
- package/dist/esm/mcp/tools/codenav.js.map +1 -1
- package/dist/esm/mcp/tools/context-tools.d.ts.map +1 -1
- package/dist/esm/mcp/tools/context-tools.js +1 -1
- package/dist/esm/mcp/tools/context-tools.js.map +1 -1
- package/dist/esm/mcp/tools/devtools.d.ts.map +1 -1
- package/dist/esm/mcp/tools/devtools.js +124 -33
- package/dist/esm/mcp/tools/devtools.js.map +1 -1
- package/dist/esm/mcp/tools/memory.d.ts.map +1 -1
- package/dist/esm/mcp/tools/memory.js +8 -0
- package/dist/esm/mcp/tools/memory.js.map +1 -1
- package/dist/esm/mcp/tools/misc.d.ts.map +1 -1
- package/dist/esm/mcp/tools/misc.js +16 -1
- package/dist/esm/mcp/tools/misc.js.map +1 -1
- package/dist/esm/mcp/tools/refactor.d.ts.map +1 -1
- package/dist/esm/mcp/tools/refactor.js +234 -107
- package/dist/esm/mcp/tools/refactor.js.map +1 -1
- package/dist/esm/mcp/tools/review.d.ts.map +1 -1
- package/dist/esm/mcp/tools/review.js +12 -11
- package/dist/esm/mcp/tools/review.js.map +1 -1
- package/dist/esm/mcp/tools/workspace.d.ts.map +1 -1
- package/dist/esm/mcp/tools/workspace.js +78 -16
- package/dist/esm/mcp/tools/workspace.js.map +1 -1
- package/dist/esm/mcp/tools.d.ts.map +1 -1
- package/dist/esm/mcp/tools.js.map +1 -1
- package/dist/esm/mcp/utils.d.ts +1 -1
- package/dist/esm/mcp/utils.d.ts.map +1 -1
- package/dist/esm/mcp/utils.js +242 -36
- package/dist/esm/mcp/utils.js.map +1 -1
- package/dist/esm/mcp/workspaceShared.d.ts +2 -0
- package/dist/esm/mcp/workspaceShared.d.ts.map +1 -1
- package/dist/esm/mcp/workspaceShared.js +9 -3
- package/dist/esm/mcp/workspaceShared.js.map +1 -1
- package/dist/esm/pr-review/adapters/AzureDevOpsAdapter.d.ts +1 -1
- package/dist/esm/pr-review/adapters/AzureDevOpsAdapter.d.ts.map +1 -1
- package/dist/esm/pr-review/adapters/AzureDevOpsAdapter.js +5 -5
- package/dist/esm/pr-review/adapters/AzureDevOpsAdapter.js.map +1 -1
- package/dist/esm/pr-review/adapters/GitHubAdapter.d.ts +1 -1
- package/dist/esm/pr-review/adapters/GitHubAdapter.d.ts.map +1 -1
- package/dist/esm/pr-review/adapters/GitHubAdapter.js +1 -1
- package/dist/esm/pr-review/adapters/GitHubAdapter.js.map +1 -1
- package/dist/esm/pr-review/adapters/GitLabAdapter.d.ts +1 -1
- package/dist/esm/pr-review/adapters/GitLabAdapter.d.ts.map +1 -1
- package/dist/esm/pr-review/adapters/GitLabAdapter.js +1 -2
- package/dist/esm/pr-review/adapters/GitLabAdapter.js.map +1 -1
- package/dist/esm/pr-review/analyzers/RegressionDetector.d.ts +1 -1
- package/dist/esm/pr-review/analyzers/RegressionDetector.d.ts.map +1 -1
- package/dist/esm/pr-review/analyzers/RegressionDetector.js +1 -2
- package/dist/esm/pr-review/analyzers/RegressionDetector.js.map +1 -1
- package/dist/esm/pr-review/analyzers/SecurityScanner.js +2 -2
- package/dist/esm/pr-review/analyzers/SecurityScanner.js.map +1 -1
- package/dist/esm/pr-review/analyzers/StaticAnalyzer.d.ts.map +1 -1
- package/dist/esm/pr-review/analyzers/StaticAnalyzer.js +0 -6
- package/dist/esm/pr-review/analyzers/StaticAnalyzer.js.map +1 -1
- package/dist/esm/protocol/flows.d.ts +4 -1
- package/dist/esm/protocol/flows.d.ts.map +1 -1
- package/dist/esm/protocol/flows.js +13 -8
- package/dist/esm/protocol/flows.js.map +1 -1
- package/dist/esm/protocol/validators.d.ts.map +1 -1
- package/dist/esm/protocol/validators.js.map +1 -1
- package/dist/esm/proxy/AgentMultiplexer.d.ts +1 -1
- package/dist/esm/proxy/AgentMultiplexer.d.ts.map +1 -1
- package/dist/esm/proxy/AgentMultiplexer.js +1 -1
- package/dist/esm/proxy/AgentMultiplexer.js.map +1 -1
- package/dist/esm/proxy/Gatekeeper.js +0 -1
- package/dist/esm/proxy/Gatekeeper.js.map +1 -1
- package/dist/esm/security/MessageSanitizer.d.ts.map +1 -1
- package/dist/esm/security/MessageSanitizer.js +2 -1
- package/dist/esm/security/MessageSanitizer.js.map +1 -1
- package/dist/esm/security/SecurityMiddleware.d.ts.map +1 -1
- package/dist/esm/security/SecurityMiddleware.js.map +1 -1
- package/dist/esm/security/SemanticScrubber.d.ts.map +1 -1
- package/dist/esm/security/SemanticScrubber.js +54 -1
- package/dist/esm/security/SemanticScrubber.js.map +1 -1
- package/dist/esm/speculative/SpeculativeEngine.d.ts.map +1 -1
- package/dist/esm/speculative/SpeculativeEngine.js.map +1 -1
- package/dist/esm/subconscious/TheBrainV2.d.ts.map +1 -1
- package/dist/esm/subconscious/TheBrainV2.js +1 -13
- package/dist/esm/subconscious/TheBrainV2.js.map +1 -1
- package/dist/esm/utils/AutoContextBundle.d.ts.map +1 -1
- package/dist/esm/utils/AutoContextBundle.js.map +1 -1
- package/dist/esm/utils/ClipboardWatcher.js +1 -1
- package/dist/esm/utils/ClipboardWatcher.js.map +1 -1
- package/dist/esm/utils/CommandEnv.d.ts +26 -0
- package/dist/esm/utils/CommandEnv.d.ts.map +1 -0
- package/dist/esm/utils/CommandEnv.js +84 -0
- package/dist/esm/utils/CommandEnv.js.map +1 -0
- package/dist/esm/utils/CommandSandbox.d.ts +42 -0
- package/dist/esm/utils/CommandSandbox.d.ts.map +1 -0
- package/dist/esm/utils/CommandSandbox.js +126 -0
- package/dist/esm/utils/CommandSandbox.js.map +1 -0
- package/dist/esm/utils/ContextSqueezer.d.ts +7 -1
- package/dist/esm/utils/ContextSqueezer.d.ts.map +1 -1
- package/dist/esm/utils/ContextSqueezer.js +187 -36
- package/dist/esm/utils/ContextSqueezer.js.map +1 -1
- package/dist/esm/utils/DepGraph.d.ts.map +1 -1
- package/dist/esm/utils/DepGraph.js +52 -21
- package/dist/esm/utils/DepGraph.js.map +1 -1
- package/dist/esm/utils/Eol.d.ts +10 -0
- package/dist/esm/utils/Eol.d.ts.map +1 -0
- package/dist/esm/utils/Eol.js +16 -0
- package/dist/esm/utils/Eol.js.map +1 -0
- package/dist/esm/utils/ImportTreeContext.d.ts.map +1 -1
- package/dist/esm/utils/ImportTreeContext.js +18 -4
- package/dist/esm/utils/ImportTreeContext.js.map +1 -1
- package/dist/esm/utils/PatchMatcher.d.ts +1 -1
- package/dist/esm/utils/PatchMatcher.d.ts.map +1 -1
- package/dist/esm/utils/PatchMatcher.js +47 -1
- package/dist/esm/utils/PatchMatcher.js.map +1 -1
- package/dist/esm/utils/SurgicalASTInsert.d.ts.map +1 -1
- package/dist/esm/utils/SurgicalASTInsert.js +3 -1
- package/dist/esm/utils/SurgicalASTInsert.js.map +1 -1
- package/dist/esm/utils/SymbolSurgicalContext.js +3 -3
- package/dist/esm/utils/SymbolSurgicalContext.js.map +1 -1
- package/dist/esm/utils/TokenBudgetedReader.d.ts.map +1 -1
- package/dist/esm/utils/TokenBudgetedReader.js +51 -37
- package/dist/esm/utils/TokenBudgetedReader.js.map +1 -1
- package/dist/esm/utils/WorkspaceSearch.d.ts.map +1 -1
- package/dist/esm/utils/WorkspaceSearch.js +1 -0
- package/dist/esm/utils/WorkspaceSearch.js.map +1 -1
- package/dist/esm/utils/WormholeCompressor.js +3 -3
- package/dist/esm/utils/WormholeCompressor.js.map +1 -1
- package/package.json +5 -2
package/README.md
CHANGED
|
@@ -35,6 +35,27 @@ lemma start # gateway + dashboard on http://localhost:8081
|
|
|
35
35
|
>
|
|
36
36
|
> **🆕 v1.22.0 — Lemma auto-activates in every LLM client.** `npm i -g @nxuss/lemma` registers the skill in your **user** catalog (auto-loads in every `muse` session, any project) and `lemma init` wires each project for Muse, Claude Code, Cursor, Codex, Windsurf, Kiro and OpenCode. Health check: `lemma doctor`.
|
|
37
37
|
>
|
|
38
|
+
> **🆕 v1.32.0 — what a command can see and reach.** `run_workspace_command` no longer hands the
|
|
39
|
+
> child the host's whole environment (tokens, API keys, the license key): it gets a short allowlist,
|
|
40
|
+
> extendable via `mcp.commandEnv.allow`. `cat`, `ls`, `grep`, `find`, `sed`… must keep their paths
|
|
41
|
+
> inside the workspace, and on Windows a backslash executable path no longer passes as a bare name.
|
|
42
|
+
> New and opt-in: `mcp.sandbox.mode: "docker"` runs each command in a throwaway container with only
|
|
43
|
+
> the workspace, no network, no host environment and a read-only root, and fails closed if Docker is
|
|
44
|
+
> unavailable. **Behavior change:** a command that relied on an inherited variable now needs it allowed
|
|
45
|
+
> by name (or `mcp.commandEnv.mode: "inherit"`). Also fixed: options a tool advertised and ignored
|
|
46
|
+
> (`generate_pr_workflow.autoApprove`, `jenkins_generate_pipeline`, `TaskLifecycle.cleanup`), now guarded
|
|
47
|
+
> by a test. See the [changelog](CHANGELOG.md).
|
|
48
|
+
>
|
|
49
|
+
> **🆕 v1.31.1 — secrets, symlinks and stale fixes.** A second round of dogfooding (rounds 11-20)
|
|
50
|
+
> found that `run_workspace_command` handed `.env` secrets to the model in clear (`cat .env`,
|
|
51
|
+
> `grep -r PASSWORD .`) while `read_workspace_file` masked them — command output is now scrubbed too.
|
|
52
|
+
> Also closed: writes escaping the workspace through a dangling symlink, an allowlist that accepted
|
|
53
|
+
> `./git` and `env sh -c`, a compressor that cut code at `//` inside strings, a scrubber that masked
|
|
54
|
+
> code as secrets, `brain_trash purge` wiping the whole trash on an invalid `olderThanDays`, and
|
|
55
|
+
> `local_semantic_autofix` presenting a stale fix as a clean zero-token hit (it now says `STALE`, or
|
|
56
|
+
> that the fix is not anchored to any file). Patches keep your CRLF line endings and tab/space
|
|
57
|
+
> indentation, and `list_workspace_dir` caps huge directories. See the [changelog](CHANGELOG.md).
|
|
58
|
+
>
|
|
38
59
|
> **🆕 v1.31.0 — tools that said "success" without doing the job, fixed.** Dogfooding with a small
|
|
39
60
|
> project driven only through Lemma's own tools found a pattern: several tools answered cleanly
|
|
40
61
|
> without having done what was asked. `validate_patch_sandbox` approved *every* patch (it ran `npx tsc`
|
|
@@ -336,6 +357,40 @@ JS/TS, Python, Go, Rust, Ruby, JVM, `make`, git/gh, read-only shell utilities, a
|
|
|
336
357
|
CLIs. Extend via `lemma.config.json` → `mcp.allowedCommandPrefixes`. See
|
|
337
358
|
[`.env.security.example`](.env.security.example) for every security-related env var.
|
|
338
359
|
|
|
360
|
+
**What commands can reach.** Two guards apply by default, on macOS, Linux and Windows:
|
|
361
|
+
|
|
362
|
+
- *Environment.* Commands no longer inherit the host's whole environment (tokens, API keys, the
|
|
363
|
+
license key). They get `PATH`, home/temp dirs, locale, terminal and toolchain-location variables
|
|
364
|
+
only. If a command needs more (for example `HTTPS_PROXY`), allow it by name, or restore the old
|
|
365
|
+
behavior:
|
|
366
|
+
|
|
367
|
+
```json
|
|
368
|
+
{ "mcp": { "commandEnv": { "allow": ["HTTPS_PROXY"] } } }
|
|
369
|
+
{ "mcp": { "commandEnv": { "mode": "inherit" } } }
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
- *Paths.* `cat`, `head`, `tail`, `ls`, `find`, `grep`, `rg`, `sed`, `awk`, `diff`, `sort`, `wc` and
|
|
373
|
+
similar must keep their file operands inside the workspace: absolute paths, `~`, `..` that climb
|
|
374
|
+
out, environment variables in a path, and symlinks pointing outside are refused.
|
|
375
|
+
|
|
376
|
+
Those two are guards, not a sandbox: commands that run code (`node -e`, `python -c`, `npm run`,
|
|
377
|
+
`git -C …`) can still reach anything the user can. For real isolation, opt in to the Docker sandbox
|
|
378
|
+
(Docker is the one layer that works the same on macOS, Linux and Windows):
|
|
379
|
+
|
|
380
|
+
```json
|
|
381
|
+
{ "mcp": { "sandbox": { "mode": "docker", "image": "node:22-bookworm", "network": "none" } } }
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
Each validated command then runs in a throwaway container that sees only the workspace (mounted at
|
|
385
|
+
`/workspace`), with no network (`"network": "bridge"` allows it, for `npm install` or `git fetch`),
|
|
386
|
+
none of the host's environment, no capabilities, a read-only root filesystem, and bounded memory,
|
|
387
|
+
CPUs and processes (`memory`, `cpus`, `pidsLimit`). Files it creates belong to you, not to root.
|
|
388
|
+
It fails closed: if Docker is down or the image is missing, the command is **not** run on the host.
|
|
389
|
+
|
|
390
|
+
The image must contain the toolchain your commands use (`node:22-bookworm` has node, npm, git,
|
|
391
|
+
python3, make and gcc; there is no `cargo` or `go`). Run `docker pull <image>` once beforehand,
|
|
392
|
+
since a first download counts against the command's timeout.
|
|
393
|
+
|
|
339
394
|
**Confirmations.** `run_workspace_command`, `apply_workspace_patch` and `forget_memory` no longer
|
|
340
395
|
ask the host for a second "Proceed?" by default — the allowlist, the rejection of shell chaining and
|
|
341
396
|
the workspace-root path checks are what protect you, and your host has its own permission layer. To
|
package/dist/cjs/api/server.js
CHANGED
|
@@ -52,7 +52,7 @@ class DashboardAPIServer {
|
|
|
52
52
|
next();
|
|
53
53
|
});
|
|
54
54
|
// Error handling
|
|
55
|
-
this.app.use((err, req, res,
|
|
55
|
+
this.app.use((err, req, res, _next) => {
|
|
56
56
|
logger.error('Unhandled error:', err);
|
|
57
57
|
res.status(500).json({ error: 'Internal server error' });
|
|
58
58
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/api/server.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;AAEH,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/api/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,7 +38,7 @@ class AutopilotWatcher {
|
|
|
38
38
|
}, 1500);
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
|
-
triggerBuild(
|
|
41
|
+
triggerBuild(_modifiedFile) {
|
|
42
42
|
if (this.activeBuildProcess) {
|
|
43
43
|
this.activeBuildProcess.kill();
|
|
44
44
|
this.activeBuildProcess = null;
|
|
@@ -62,7 +62,7 @@ class AutopilotWatcher {
|
|
|
62
62
|
if (!error)
|
|
63
63
|
return;
|
|
64
64
|
const output = stdout + '\n' + stderr;
|
|
65
|
-
const tsErrorRegex = /([^\s\n]+\.(?:ts|tsx|js|jsx))[\s
|
|
65
|
+
const tsErrorRegex = /([^\s\n]+\.(?:ts|tsx|js|jsx))[\s(:]+(\d+)[\s,:]+(\d+)?[\s)]*[\s-:]+error\s+(TS\d+):\s+([^\n]+)/;
|
|
66
66
|
const match = output.match(tsErrorRegex);
|
|
67
67
|
if (!match)
|
|
68
68
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutopilotWatcher.js","sourceRoot":"","sources":["../../../src/autopilot/AutopilotWatcher.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmB;AACnB,gDAAuB;AACvB,iDAAoC;AACpC,oDAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"AutopilotWatcher.js","sourceRoot":"","sources":["../../../src/autopilot/AutopilotWatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Notifier.d.ts","sourceRoot":"","sources":["../../../src/autopilot/Notifier.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Notifier.d.ts","sourceRoot":"","sources":["../../../src/autopilot/Notifier.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAwBzC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAKvF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAO9C;AAgBD,wBAAgB,WAAW,IAAI,IAAI,CAElC"}
|
|
@@ -10,7 +10,6 @@ const child_process_1 = require("child_process");
|
|
|
10
10
|
const axios_1 = __importDefault(require("axios"));
|
|
11
11
|
const path_1 = __importDefault(require("path"));
|
|
12
12
|
const DASHBOARD_API_BASE = 'http://localhost:8081';
|
|
13
|
-
const LEMMA_ICON = path_1.default.join(__dirname, '..', '..', 'assets', 'icon.png');
|
|
14
13
|
function osascriptNotify(title, subtitle, message) {
|
|
15
14
|
try {
|
|
16
15
|
(0, child_process_1.execSync)(`osascript -e 'display notification "${message.replace(/"/g, '\\"')}" with title "${title.replace(/"/g, '\\"')}" subtitle "${subtitle.replace(/"/g, '\\"')}" sound name "default"'`, { timeout: 3000 });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Notifier.js","sourceRoot":"","sources":["../../../src/autopilot/Notifier.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"Notifier.js","sourceRoot":"","sources":["../../../src/autopilot/Notifier.ts"],"names":[],"mappings":";;;;;AA2BA,4CAKC;AAED,kCAOC;AAgBD,kCAEC;AA3DD,iDAAwC;AACxC,kDAAyB;AACzB,gDAAuB;AAGvB,MAAM,kBAAkB,GAAG,uBAAuB,CAAA;AAElD,SAAS,eAAe,CAAC,KAAa,EAAE,QAAgB,EAAE,OAAe;IACvE,IAAI,CAAC;QACH,IAAA,wBAAQ,EACN,uCAAuC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,iBAAiB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,eAAe,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,yBAAyB,EACnL,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAA;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACZ,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa,EAAE,QAAgB,EAAE,OAAe;IAC9E,IAAI,CAAC;QACH,IAAA,wBAAQ,EACN,6BAA6B,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,gBAAgB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,eAAe,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,8BAA8B,EAC7K,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC3C,CAAC;AACH,CAAC;AAED,SAAgB,gBAAgB,CAAC,KAAa,EAAE,QAAgB,EAAE,OAAe;IAC/E,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS;YAAE,OAAM;QACnD,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;AACH,CAAC;AAED,SAAgB,WAAW,CAAC,KAAY;IACtC,MAAM,KAAK,GAAG,aAAa,KAAK,CAAC,SAAS,EAAE,CAAA;IAC5C,MAAM,QAAQ,GAAG,GAAG,cAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAA;IACjE,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAE/C,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;IACtC,eAAe,CAAC,KAAK,CAAC,CAAA;AACxB,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,KAAY;IACzC,IAAI,CAAC;QACH,MAAM,eAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,qBAAqB,EAAE;YAC3D,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IACvB,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACZ,CAAC;AAED,SAAgB,WAAW;IACzB,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,CAAC,CAAA;AACxE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lemma-proxy.d.ts","sourceRoot":"","sources":["../../../src/cli/lemma-proxy.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"lemma-proxy.d.ts","sourceRoot":"","sources":["../../../src/cli/lemma-proxy.ts"],"names":[],"mappings":";AAwcA,wBAAgB,+BAA+B,CAAC,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA8DvF;AAifD,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGtD;AA6tDD,wBAAsB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA8KhL"}
|
|
@@ -61,7 +61,7 @@ const gitHooks_1 = require("./gitHooks");
|
|
|
61
61
|
const hostHooks_1 = require("./hostHooks");
|
|
62
62
|
const TheBrainV2_1 = require("../subconscious/TheBrainV2");
|
|
63
63
|
const chroma = new chromadb_1.ChromaClient({ host: 'localhost', port: 8000 });
|
|
64
|
-
const dummyEmbeddingFunction = { generate: (
|
|
64
|
+
const dummyEmbeddingFunction = { generate: (_texts) => Promise.resolve([]) };
|
|
65
65
|
const complexityRouter = new ComplexityRouter_1.default();
|
|
66
66
|
const semanticScrubber = new SemanticScrubber_1.default();
|
|
67
67
|
const cloudSync = new CloudSyncClient_1.default();
|
|
@@ -70,15 +70,6 @@ const keyManager = new KeyManager_1.KeyManager();
|
|
|
70
70
|
const gatekeeper = new Gatekeeper_1.Gatekeeper(keyManager);
|
|
71
71
|
// ── Paths ──────────────────────────────────────────────────────────────────────
|
|
72
72
|
const VALIDATE_URL = 'https://lemma.nxus.studio/api/validate-license';
|
|
73
|
-
async function checkDependency(url) {
|
|
74
|
-
try {
|
|
75
|
-
const resp = await fetch(url, { method: 'HEAD', signal: AbortSignal.timeout(2000) });
|
|
76
|
-
return resp.ok;
|
|
77
|
-
}
|
|
78
|
-
catch {
|
|
79
|
-
return false;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
73
|
function getPidByPort(port) {
|
|
83
74
|
try {
|
|
84
75
|
const result = require('child_process').execSync(`lsof -ti :${port} 2>/dev/null`, { encoding: 'utf8' }).trim();
|
|
@@ -626,12 +617,18 @@ async function recordStat(stats, project, fromCache, latencyMs, provider, tokens
|
|
|
626
617
|
const s = stats[project];
|
|
627
618
|
s.total++;
|
|
628
619
|
s.totalLatency += latencyMs;
|
|
629
|
-
fromCache
|
|
620
|
+
if (fromCache)
|
|
621
|
+
s.hits++;
|
|
622
|
+
else
|
|
623
|
+
s.misses++;
|
|
630
624
|
const tkSaved = fromCache ? (tokensSaved || 2000) : (tokensSaved || 0);
|
|
631
625
|
s.totalTokensSaved += tkSaved;
|
|
632
626
|
if (!s.providers[provider])
|
|
633
627
|
s.providers[provider] = { hits: 0, misses: 0 };
|
|
634
|
-
fromCache
|
|
628
|
+
if (fromCache)
|
|
629
|
+
s.providers[provider].hits++;
|
|
630
|
+
else
|
|
631
|
+
s.providers[provider].misses++;
|
|
635
632
|
// Only measured savings reach the ledger. `tokensSaved === undefined` means the
|
|
636
633
|
// caller never counted, so tkSaved is the 2000 placeholder — usable for the
|
|
637
634
|
// dashboard, not for a net-position claim.
|
|
@@ -1260,7 +1257,7 @@ class LemmaServer {
|
|
|
1260
1257
|
const emb = await getEmbedding(query);
|
|
1261
1258
|
if (!emb)
|
|
1262
1259
|
throw new Error('Failed to generate embedding');
|
|
1263
|
-
|
|
1260
|
+
const allResults = [];
|
|
1264
1261
|
// 1. Query all collections starting with 'lemma-cache' for cross-project search
|
|
1265
1262
|
const collections = await chroma.listCollections();
|
|
1266
1263
|
const targetCollections = collections.filter((c) => c.name.startsWith('lemma-cache'));
|
|
@@ -1367,7 +1364,7 @@ class LemmaServer {
|
|
|
1367
1364
|
// and look like a Brain nobody uses, so they're dropped rather than shown misleadingly.
|
|
1368
1365
|
this.app.get('/api/brain/stats', (req, res) => {
|
|
1369
1366
|
try {
|
|
1370
|
-
const { cacheHits, cacheMisses, ...stats } = (0, TheBrainV2_1.getBrain)().getStats();
|
|
1367
|
+
const { cacheHits: _cacheHits, cacheMisses: _cacheMisses, ...stats } = (0, TheBrainV2_1.getBrain)().getStats();
|
|
1371
1368
|
res.json(stats);
|
|
1372
1369
|
}
|
|
1373
1370
|
catch (e) {
|
|
@@ -1571,7 +1568,10 @@ class LemmaServer {
|
|
|
1571
1568
|
}
|
|
1572
1569
|
if (!s.providers['mcp'])
|
|
1573
1570
|
s.providers['mcp'] = { hits: 0, misses: 0 };
|
|
1574
|
-
source === 'cache'
|
|
1571
|
+
if (source === 'cache')
|
|
1572
|
+
s.providers['mcp'].hits++;
|
|
1573
|
+
else
|
|
1574
|
+
s.providers['mcp'].misses++;
|
|
1575
1575
|
// Write updated stats back to disk immediately
|
|
1576
1576
|
writeJson(ProjectStore_1.STATS_FILE, this.stats);
|
|
1577
1577
|
// Push to live telemetry logEvent array so the Dashboard event timeline updates instantly!
|
|
@@ -2070,7 +2070,7 @@ Adjusted Answer:`;
|
|
|
2070
2070
|
}
|
|
2071
2071
|
}
|
|
2072
2072
|
async callUpstream(body, provider) {
|
|
2073
|
-
|
|
2073
|
+
const apiKey = provider === 'openai' ? process.env.OPENAI_API_KEY : (provider === 'anthropic' ? process.env.ANTHROPIC_API_KEY : process.env.GEMINI_API_KEY);
|
|
2074
2074
|
// If the API key is an OpenAI key (sk-proj-) but requested for Anthropic or Gemini,
|
|
2075
2075
|
// multiplex it internally to OpenAI gpt-4o-mini to allow live, cheap simulated provider routing.
|
|
2076
2076
|
const isMockedProvider = apiKey && apiKey.startsWith('sk-') && provider !== 'openai';
|
|
@@ -2660,7 +2660,7 @@ Return your response in a clear JSON format with two keys:
|
|
|
2660
2660
|
Ensure you return strictly JSON. Do not return any other text outside the JSON block.`;
|
|
2661
2661
|
// Call local Ollama or the premium model
|
|
2662
2662
|
console.log('🧠 Running AI Diagnostics...');
|
|
2663
|
-
|
|
2663
|
+
const apiKey = process.env.OPENAI_API_KEY || process.env.ANTHROPIC_API_KEY || process.env.GEMINI_API_KEY;
|
|
2664
2664
|
let fixedJson = null;
|
|
2665
2665
|
try {
|
|
2666
2666
|
if (!apiKey) {
|
|
@@ -2790,7 +2790,7 @@ commander_1.program.command('patches')
|
|
|
2790
2790
|
.option('--pending', 'Show only pending patches')
|
|
2791
2791
|
.option('--all', 'Show all patches (including applied/discarded)')
|
|
2792
2792
|
.action((opts) => {
|
|
2793
|
-
const { listPatches, countPending } = require('../autopilot/PatchStore');
|
|
2793
|
+
const { listPatches, countPending: _countPending } = require('../autopilot/PatchStore');
|
|
2794
2794
|
const status = opts.pending ? 'pending' : undefined;
|
|
2795
2795
|
const showAll = opts.all;
|
|
2796
2796
|
const patches = showAll ? listPatches() : listPatches(status);
|