@nxuss/lemma 1.38.0 → 1.40.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 +3 -4
- package/bin/brain-ingest.js +68 -31
- package/bin/init.js +25 -28
- package/dashboard/dist/assets/index-DNTQXLER.css +1 -0
- package/dashboard/dist/assets/index-DzL_Zu3m.js +452 -0
- package/dashboard/dist/index.html +2 -2
- package/dist/cjs/cli/gitHooks.d.ts +9 -2
- package/dist/cjs/cli/gitHooks.d.ts.map +1 -1
- package/dist/cjs/cli/gitHooks.js +31 -4
- package/dist/cjs/cli/gitHooks.js.map +1 -1
- package/dist/cjs/cli/lemma-proxy.d.ts.map +1 -1
- package/dist/cjs/cli/lemma-proxy.js +21 -1
- package/dist/cjs/cli/lemma-proxy.js.map +1 -1
- package/dist/cjs/infra/analyzers/index.d.ts +0 -2
- package/dist/cjs/infra/analyzers/index.d.ts.map +1 -1
- package/dist/cjs/infra/analyzers/index.js +1 -6
- package/dist/cjs/infra/analyzers/index.js.map +1 -1
- package/dist/cjs/infra/cli.d.ts +4 -0
- package/dist/cjs/infra/cli.d.ts.map +1 -1
- package/dist/cjs/infra/cli.js +6 -199
- package/dist/cjs/infra/cli.js.map +1 -1
- package/dist/cjs/infra/index.d.ts +1 -3
- package/dist/cjs/infra/index.d.ts.map +1 -1
- package/dist/cjs/infra/index.js +1 -16
- package/dist/cjs/infra/index.js.map +1 -1
- package/dist/cjs/infra/mcp-tools.d.ts.map +1 -1
- package/dist/cjs/infra/mcp-tools.js +8 -453
- package/dist/cjs/infra/mcp-tools.js.map +1 -1
- package/dist/cjs/infra/types.d.ts +0 -101
- package/dist/cjs/infra/types.d.ts.map +1 -1
- package/dist/cjs/infra/types.js +2 -1
- package/dist/cjs/infra/types.js.map +1 -1
- package/dist/cjs/mcp/cognitiveMap.d.ts.map +1 -1
- package/dist/cjs/mcp/cognitiveMap.js +6 -2
- package/dist/cjs/mcp/cognitiveMap.js.map +1 -1
- package/dist/cjs/mcp/index.js +2 -0
- package/dist/cjs/mcp/index.js.map +1 -1
- package/dist/cjs/mcp/prompts.d.ts +1 -1
- package/dist/cjs/mcp/prompts.d.ts.map +1 -1
- package/dist/cjs/mcp/prompts.js +8 -23
- package/dist/cjs/mcp/prompts.js.map +1 -1
- package/dist/cjs/mcp/tool-profiles.d.ts +8 -3
- package/dist/cjs/mcp/tool-profiles.d.ts.map +1 -1
- package/dist/cjs/mcp/tool-profiles.js +25 -54
- package/dist/cjs/mcp/tool-profiles.js.map +1 -1
- package/dist/cjs/mcp/tools/devtools.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/devtools.js +11 -1
- package/dist/cjs/mcp/tools/devtools.js.map +1 -1
- package/dist/cjs/mcp/tools/memory.d.ts +8 -0
- package/dist/cjs/mcp/tools/memory.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/memory.js +209 -137
- package/dist/cjs/mcp/tools/memory.js.map +1 -1
- package/dist/cjs/mcp/tools/refactor.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/refactor.js +129 -32
- package/dist/cjs/mcp/tools/refactor.js.map +1 -1
- package/dist/cjs/mcp/tools/workspace.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/workspace.js +108 -8
- 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 +11 -6
- package/dist/cjs/mcp/tools.js.map +1 -1
- package/dist/cjs/mcp/workspaceShared.d.ts.map +1 -1
- package/dist/cjs/mcp/workspaceShared.js +8 -4
- package/dist/cjs/mcp/workspaceShared.js.map +1 -1
- package/dist/cjs/proxy/ProjectRegistry.d.ts +20 -0
- package/dist/cjs/proxy/ProjectRegistry.d.ts.map +1 -1
- package/dist/cjs/proxy/ProjectRegistry.js +46 -4
- package/dist/cjs/proxy/ProjectRegistry.js.map +1 -1
- package/dist/cjs/proxy/ProjectStore.d.ts.map +1 -1
- package/dist/cjs/proxy/ProjectStore.js +9 -6
- package/dist/cjs/proxy/ProjectStore.js.map +1 -1
- package/dist/cjs/subconscious/HostRecall.d.ts +26 -2
- package/dist/cjs/subconscious/HostRecall.d.ts.map +1 -1
- package/dist/cjs/subconscious/HostRecall.js +115 -40
- package/dist/cjs/subconscious/HostRecall.js.map +1 -1
- package/dist/cjs/subconscious/NarrowEvidence.d.ts +53 -0
- package/dist/cjs/subconscious/NarrowEvidence.d.ts.map +1 -0
- package/dist/cjs/subconscious/NarrowEvidence.js +237 -0
- package/dist/cjs/subconscious/NarrowEvidence.js.map +1 -0
- package/dist/cjs/subconscious/TheBrainV2.d.ts +48 -0
- package/dist/cjs/subconscious/TheBrainV2.d.ts.map +1 -1
- package/dist/cjs/subconscious/TheBrainV2.js +227 -26
- package/dist/cjs/subconscious/TheBrainV2.js.map +1 -1
- package/dist/cjs/subconscious/freshness/LocalFsResolver.d.ts.map +1 -1
- package/dist/cjs/subconscious/freshness/LocalFsResolver.js +32 -0
- package/dist/cjs/subconscious/freshness/LocalFsResolver.js.map +1 -1
- package/dist/cjs/subconscious/recallDigest.d.ts +8 -0
- package/dist/cjs/subconscious/recallDigest.d.ts.map +1 -1
- package/dist/cjs/subconscious/recallDigest.js +13 -1
- package/dist/cjs/subconscious/recallDigest.js.map +1 -1
- package/dist/cjs/utils/AffectedTests.d.ts +1 -5
- package/dist/cjs/utils/AffectedTests.d.ts.map +1 -1
- package/dist/cjs/utils/AffectedTests.js +5 -37
- package/dist/cjs/utils/AffectedTests.js.map +1 -1
- package/dist/cjs/utils/AtomicFile.d.ts +14 -0
- package/dist/cjs/utils/AtomicFile.d.ts.map +1 -0
- package/dist/cjs/utils/AtomicFile.js +44 -0
- package/dist/cjs/utils/AtomicFile.js.map +1 -0
- package/dist/cjs/utils/AutoContextBundle.js +1 -1
- package/dist/cjs/utils/AutoContextBundle.js.map +1 -1
- package/dist/cjs/utils/BulkFileDigest.js +1 -1
- package/dist/cjs/utils/BulkFileDigest.js.map +1 -1
- package/dist/cjs/utils/ContextSqueezer.d.ts +36 -4
- package/dist/cjs/utils/ContextSqueezer.d.ts.map +1 -1
- package/dist/cjs/utils/ContextSqueezer.js +69 -21
- package/dist/cjs/utils/ContextSqueezer.js.map +1 -1
- package/dist/cjs/utils/FileLock.d.ts +2 -0
- package/dist/cjs/utils/FileLock.d.ts.map +1 -0
- package/dist/cjs/utils/FileLock.js +32 -0
- package/dist/cjs/utils/FileLock.js.map +1 -0
- package/dist/cjs/utils/FileOutline.d.ts +1 -1
- package/dist/cjs/utils/FileOutline.d.ts.map +1 -1
- package/dist/cjs/utils/FileOutline.js +5 -1
- package/dist/cjs/utils/FileOutline.js.map +1 -1
- package/dist/cjs/utils/FixCapture.d.ts.map +1 -1
- package/dist/cjs/utils/FixCapture.js +4 -3
- package/dist/cjs/utils/FixCapture.js.map +1 -1
- package/dist/cjs/utils/GitChanges.d.ts +11 -0
- package/dist/cjs/utils/GitChanges.d.ts.map +1 -0
- package/dist/cjs/utils/GitChanges.js +44 -0
- package/dist/cjs/utils/GitChanges.js.map +1 -0
- package/dist/cjs/utils/JsonKeys.d.ts +17 -0
- package/dist/cjs/utils/JsonKeys.d.ts.map +1 -0
- package/dist/cjs/utils/JsonKeys.js +75 -0
- package/dist/cjs/utils/JsonKeys.js.map +1 -0
- package/dist/cjs/utils/LocalExclude.d.ts +3 -0
- package/dist/cjs/utils/LocalExclude.d.ts.map +1 -0
- package/dist/cjs/utils/LocalExclude.js +68 -0
- package/dist/cjs/utils/LocalExclude.js.map +1 -0
- package/dist/cjs/utils/OtherLanguageSymbols.d.ts +31 -0
- package/dist/cjs/utils/OtherLanguageSymbols.d.ts.map +1 -0
- package/dist/cjs/utils/OtherLanguageSymbols.js +276 -0
- package/dist/cjs/utils/OtherLanguageSymbols.js.map +1 -0
- package/dist/cjs/utils/OutputDelta.d.ts +14 -2
- package/dist/cjs/utils/OutputDelta.d.ts.map +1 -1
- package/dist/cjs/utils/OutputDelta.js +22 -15
- package/dist/cjs/utils/OutputDelta.js.map +1 -1
- package/dist/cjs/utils/RoiLedger.d.ts.map +1 -1
- package/dist/cjs/utils/RoiLedger.js +7 -3
- package/dist/cjs/utils/RoiLedger.js.map +1 -1
- package/dist/cjs/utils/SavingsLedger.d.ts +27 -0
- package/dist/cjs/utils/SavingsLedger.d.ts.map +1 -1
- package/dist/cjs/utils/SavingsLedger.js +56 -2
- package/dist/cjs/utils/SavingsLedger.js.map +1 -1
- package/dist/cjs/utils/SharedLedgerStore.d.ts.map +1 -1
- package/dist/cjs/utils/SharedLedgerStore.js +2 -1
- package/dist/cjs/utils/SharedLedgerStore.js.map +1 -1
- package/dist/cjs/utils/StoreDraft.d.ts +12 -0
- package/dist/cjs/utils/StoreDraft.d.ts.map +1 -1
- package/dist/cjs/utils/StoreDraft.js +53 -1
- package/dist/cjs/utils/StoreDraft.js.map +1 -1
- package/dist/cjs/utils/SurgicalASTInsert.d.ts.map +1 -1
- package/dist/cjs/utils/SurgicalASTInsert.js +2 -1
- package/dist/cjs/utils/SurgicalASTInsert.js.map +1 -1
- package/dist/cjs/utils/SymbolSurgicalContext.d.ts +2 -0
- package/dist/cjs/utils/SymbolSurgicalContext.d.ts.map +1 -1
- package/dist/cjs/utils/SymbolSurgicalContext.js +30 -62
- package/dist/cjs/utils/SymbolSurgicalContext.js.map +1 -1
- package/dist/cjs/utils/Utf8Guard.d.ts +23 -0
- package/dist/cjs/utils/Utf8Guard.d.ts.map +1 -0
- package/dist/cjs/utils/Utf8Guard.js +81 -0
- package/dist/cjs/utils/Utf8Guard.js.map +1 -0
- package/dist/cjs/utils/WorkspaceSearch.d.ts.map +1 -1
- package/dist/cjs/utils/WorkspaceSearch.js +26 -8
- package/dist/cjs/utils/WorkspaceSearch.js.map +1 -1
- package/dist/cjs/utils/reportSavings.d.ts +17 -4
- package/dist/cjs/utils/reportSavings.d.ts.map +1 -1
- package/dist/cjs/utils/reportSavings.js +67 -22
- package/dist/cjs/utils/reportSavings.js.map +1 -1
- package/dist/cjs/utils/tsLoader.d.ts +5 -0
- package/dist/cjs/utils/tsLoader.d.ts.map +1 -0
- package/dist/cjs/utils/tsLoader.js +15 -0
- package/dist/cjs/utils/tsLoader.js.map +1 -0
- package/dist/esm/cli/gitHooks.d.ts +9 -2
- package/dist/esm/cli/gitHooks.d.ts.map +1 -1
- package/dist/esm/cli/gitHooks.js +31 -4
- package/dist/esm/cli/gitHooks.js.map +1 -1
- package/dist/esm/cli/lemma-proxy.d.ts.map +1 -1
- package/dist/esm/cli/lemma-proxy.js +21 -1
- package/dist/esm/cli/lemma-proxy.js.map +1 -1
- package/dist/esm/infra/analyzers/index.d.ts +0 -2
- package/dist/esm/infra/analyzers/index.d.ts.map +1 -1
- package/dist/esm/infra/analyzers/index.js +0 -2
- package/dist/esm/infra/analyzers/index.js.map +1 -1
- package/dist/esm/infra/cli.d.ts +4 -0
- package/dist/esm/infra/cli.d.ts.map +1 -1
- package/dist/esm/infra/cli.js +6 -199
- package/dist/esm/infra/cli.js.map +1 -1
- package/dist/esm/infra/index.d.ts +1 -3
- package/dist/esm/infra/index.d.ts.map +1 -1
- package/dist/esm/infra/index.js +1 -3
- package/dist/esm/infra/index.js.map +1 -1
- package/dist/esm/infra/mcp-tools.d.ts.map +1 -1
- package/dist/esm/infra/mcp-tools.js +9 -454
- package/dist/esm/infra/mcp-tools.js.map +1 -1
- package/dist/esm/infra/types.d.ts +0 -101
- package/dist/esm/infra/types.d.ts.map +1 -1
- package/dist/esm/infra/types.js +2 -1
- package/dist/esm/infra/types.js.map +1 -1
- package/dist/esm/mcp/cognitiveMap.d.ts.map +1 -1
- package/dist/esm/mcp/cognitiveMap.js +6 -2
- package/dist/esm/mcp/cognitiveMap.js.map +1 -1
- package/dist/esm/mcp/index.js +2 -0
- package/dist/esm/mcp/index.js.map +1 -1
- package/dist/esm/mcp/prompts.d.ts +1 -1
- package/dist/esm/mcp/prompts.d.ts.map +1 -1
- package/dist/esm/mcp/prompts.js +8 -23
- package/dist/esm/mcp/prompts.js.map +1 -1
- package/dist/esm/mcp/tool-profiles.d.ts +8 -3
- package/dist/esm/mcp/tool-profiles.d.ts.map +1 -1
- package/dist/esm/mcp/tool-profiles.js +25 -54
- package/dist/esm/mcp/tool-profiles.js.map +1 -1
- package/dist/esm/mcp/tools/devtools.d.ts.map +1 -1
- package/dist/esm/mcp/tools/devtools.js +11 -1
- package/dist/esm/mcp/tools/devtools.js.map +1 -1
- package/dist/esm/mcp/tools/memory.d.ts +8 -0
- package/dist/esm/mcp/tools/memory.d.ts.map +1 -1
- package/dist/esm/mcp/tools/memory.js +211 -140
- package/dist/esm/mcp/tools/memory.js.map +1 -1
- package/dist/esm/mcp/tools/refactor.d.ts.map +1 -1
- package/dist/esm/mcp/tools/refactor.js +129 -32
- package/dist/esm/mcp/tools/refactor.js.map +1 -1
- package/dist/esm/mcp/tools/workspace.d.ts.map +1 -1
- package/dist/esm/mcp/tools/workspace.js +108 -8
- 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 +12 -7
- package/dist/esm/mcp/tools.js.map +1 -1
- package/dist/esm/mcp/workspaceShared.d.ts.map +1 -1
- package/dist/esm/mcp/workspaceShared.js +9 -5
- package/dist/esm/mcp/workspaceShared.js.map +1 -1
- package/dist/esm/proxy/ProjectRegistry.d.ts +20 -0
- package/dist/esm/proxy/ProjectRegistry.d.ts.map +1 -1
- package/dist/esm/proxy/ProjectRegistry.js +45 -3
- package/dist/esm/proxy/ProjectRegistry.js.map +1 -1
- package/dist/esm/proxy/ProjectStore.d.ts.map +1 -1
- package/dist/esm/proxy/ProjectStore.js +9 -6
- package/dist/esm/proxy/ProjectStore.js.map +1 -1
- package/dist/esm/subconscious/HostRecall.d.ts +26 -2
- package/dist/esm/subconscious/HostRecall.d.ts.map +1 -1
- package/dist/esm/subconscious/HostRecall.js +113 -41
- package/dist/esm/subconscious/HostRecall.js.map +1 -1
- package/dist/esm/subconscious/NarrowEvidence.d.ts +53 -0
- package/dist/esm/subconscious/NarrowEvidence.d.ts.map +1 -0
- package/dist/esm/subconscious/NarrowEvidence.js +228 -0
- package/dist/esm/subconscious/NarrowEvidence.js.map +1 -0
- package/dist/esm/subconscious/TheBrainV2.d.ts +48 -0
- package/dist/esm/subconscious/TheBrainV2.d.ts.map +1 -1
- package/dist/esm/subconscious/TheBrainV2.js +226 -25
- package/dist/esm/subconscious/TheBrainV2.js.map +1 -1
- package/dist/esm/subconscious/freshness/LocalFsResolver.d.ts.map +1 -1
- package/dist/esm/subconscious/freshness/LocalFsResolver.js +32 -0
- package/dist/esm/subconscious/freshness/LocalFsResolver.js.map +1 -1
- package/dist/esm/subconscious/recallDigest.d.ts +8 -0
- package/dist/esm/subconscious/recallDigest.d.ts.map +1 -1
- package/dist/esm/subconscious/recallDigest.js +12 -1
- package/dist/esm/subconscious/recallDigest.js.map +1 -1
- package/dist/esm/utils/AffectedTests.d.ts +1 -5
- package/dist/esm/utils/AffectedTests.d.ts.map +1 -1
- package/dist/esm/utils/AffectedTests.js +2 -35
- package/dist/esm/utils/AffectedTests.js.map +1 -1
- package/dist/esm/utils/AtomicFile.d.ts +14 -0
- package/dist/esm/utils/AtomicFile.d.ts.map +1 -0
- package/dist/esm/utils/AtomicFile.js +37 -0
- package/dist/esm/utils/AtomicFile.js.map +1 -0
- package/dist/esm/utils/AutoContextBundle.js +1 -1
- package/dist/esm/utils/AutoContextBundle.js.map +1 -1
- package/dist/esm/utils/BulkFileDigest.js +1 -1
- package/dist/esm/utils/BulkFileDigest.js.map +1 -1
- package/dist/esm/utils/ContextSqueezer.d.ts +36 -4
- package/dist/esm/utils/ContextSqueezer.d.ts.map +1 -1
- package/dist/esm/utils/ContextSqueezer.js +67 -21
- package/dist/esm/utils/ContextSqueezer.js.map +1 -1
- package/dist/esm/utils/FileLock.d.ts +2 -0
- package/dist/esm/utils/FileLock.d.ts.map +1 -0
- package/dist/esm/utils/FileLock.js +29 -0
- package/dist/esm/utils/FileLock.js.map +1 -0
- package/dist/esm/utils/FileOutline.d.ts +1 -1
- package/dist/esm/utils/FileOutline.d.ts.map +1 -1
- package/dist/esm/utils/FileOutline.js +5 -1
- package/dist/esm/utils/FileOutline.js.map +1 -1
- package/dist/esm/utils/FixCapture.d.ts.map +1 -1
- package/dist/esm/utils/FixCapture.js +3 -2
- package/dist/esm/utils/FixCapture.js.map +1 -1
- package/dist/esm/utils/GitChanges.d.ts +11 -0
- package/dist/esm/utils/GitChanges.d.ts.map +1 -0
- package/dist/esm/utils/GitChanges.js +41 -0
- package/dist/esm/utils/GitChanges.js.map +1 -0
- package/dist/esm/utils/JsonKeys.d.ts +17 -0
- package/dist/esm/utils/JsonKeys.d.ts.map +1 -0
- package/dist/esm/utils/JsonKeys.js +71 -0
- package/dist/esm/utils/JsonKeys.js.map +1 -0
- package/dist/esm/utils/LocalExclude.d.ts +3 -0
- package/dist/esm/utils/LocalExclude.d.ts.map +1 -0
- package/dist/esm/utils/LocalExclude.js +62 -0
- package/dist/esm/utils/LocalExclude.js.map +1 -0
- package/dist/esm/utils/OtherLanguageSymbols.d.ts +31 -0
- package/dist/esm/utils/OtherLanguageSymbols.d.ts.map +1 -0
- package/dist/esm/utils/OtherLanguageSymbols.js +268 -0
- package/dist/esm/utils/OtherLanguageSymbols.js.map +1 -0
- package/dist/esm/utils/OutputDelta.d.ts +14 -2
- package/dist/esm/utils/OutputDelta.d.ts.map +1 -1
- package/dist/esm/utils/OutputDelta.js +22 -15
- package/dist/esm/utils/OutputDelta.js.map +1 -1
- package/dist/esm/utils/RoiLedger.d.ts.map +1 -1
- package/dist/esm/utils/RoiLedger.js +7 -3
- package/dist/esm/utils/RoiLedger.js.map +1 -1
- package/dist/esm/utils/SavingsLedger.d.ts +27 -0
- package/dist/esm/utils/SavingsLedger.d.ts.map +1 -1
- package/dist/esm/utils/SavingsLedger.js +56 -2
- package/dist/esm/utils/SavingsLedger.js.map +1 -1
- package/dist/esm/utils/SharedLedgerStore.d.ts.map +1 -1
- package/dist/esm/utils/SharedLedgerStore.js +2 -1
- package/dist/esm/utils/SharedLedgerStore.js.map +1 -1
- package/dist/esm/utils/StoreDraft.d.ts +12 -0
- package/dist/esm/utils/StoreDraft.d.ts.map +1 -1
- package/dist/esm/utils/StoreDraft.js +52 -1
- package/dist/esm/utils/StoreDraft.js.map +1 -1
- package/dist/esm/utils/SurgicalASTInsert.d.ts.map +1 -1
- package/dist/esm/utils/SurgicalASTInsert.js +2 -1
- package/dist/esm/utils/SurgicalASTInsert.js.map +1 -1
- package/dist/esm/utils/SymbolSurgicalContext.d.ts +2 -0
- package/dist/esm/utils/SymbolSurgicalContext.d.ts.map +1 -1
- package/dist/esm/utils/SymbolSurgicalContext.js +2 -2
- package/dist/esm/utils/SymbolSurgicalContext.js.map +1 -1
- package/dist/esm/utils/Utf8Guard.d.ts +23 -0
- package/dist/esm/utils/Utf8Guard.d.ts.map +1 -0
- package/dist/esm/utils/Utf8Guard.js +74 -0
- package/dist/esm/utils/Utf8Guard.js.map +1 -0
- package/dist/esm/utils/WorkspaceSearch.d.ts.map +1 -1
- package/dist/esm/utils/WorkspaceSearch.js +26 -8
- package/dist/esm/utils/WorkspaceSearch.js.map +1 -1
- package/dist/esm/utils/reportSavings.d.ts +17 -4
- package/dist/esm/utils/reportSavings.d.ts.map +1 -1
- package/dist/esm/utils/reportSavings.js +65 -22
- package/dist/esm/utils/reportSavings.js.map +1 -1
- package/dist/esm/utils/tsLoader.d.ts +5 -0
- package/dist/esm/utils/tsLoader.d.ts.map +1 -0
- package/dist/esm/utils/tsLoader.js +13 -0
- package/dist/esm/utils/tsLoader.js.map +1 -0
- package/package.json +3 -2
- package/dashboard/dist/assets/index-CLXWgzTm.css +0 -1
- package/dashboard/dist/assets/index-CoMIMxyC.js +0 -451
- package/dist/cjs/infra/analyzers/DriftDetector.d.ts +0 -4
- package/dist/cjs/infra/analyzers/DriftDetector.d.ts.map +0 -1
- package/dist/cjs/infra/analyzers/DriftDetector.js +0 -88
- package/dist/cjs/infra/analyzers/DriftDetector.js.map +0 -1
- package/dist/cjs/infra/analyzers/InfraAnalyzer.d.ts +0 -3
- package/dist/cjs/infra/analyzers/InfraAnalyzer.d.ts.map +0 -1
- package/dist/cjs/infra/analyzers/InfraAnalyzer.js +0 -73
- package/dist/cjs/infra/analyzers/InfraAnalyzer.js.map +0 -1
- package/dist/cjs/infra/config.d.ts +0 -17
- package/dist/cjs/infra/config.d.ts.map +0 -1
- package/dist/cjs/infra/config.js +0 -111
- package/dist/cjs/infra/config.js.map +0 -1
- package/dist/cjs/infra/errorCause.d.ts +0 -36
- package/dist/cjs/infra/errorCause.d.ts.map +0 -1
- package/dist/cjs/infra/errorCause.js +0 -143
- package/dist/cjs/infra/errorCause.js.map +0 -1
- package/dist/cjs/infra/providers/InfraProvider.d.ts +0 -9
- package/dist/cjs/infra/providers/InfraProvider.d.ts.map +0 -1
- package/dist/cjs/infra/providers/InfraProvider.js +0 -3
- package/dist/cjs/infra/providers/InfraProvider.js.map +0 -1
- package/dist/cjs/infra/providers/JenkinsProvider.d.ts +0 -16
- package/dist/cjs/infra/providers/JenkinsProvider.d.ts.map +0 -1
- package/dist/cjs/infra/providers/JenkinsProvider.js +0 -193
- package/dist/cjs/infra/providers/JenkinsProvider.js.map +0 -1
- package/dist/cjs/infra/providers/OKDProvider.d.ts +0 -24
- package/dist/cjs/infra/providers/OKDProvider.d.ts.map +0 -1
- package/dist/cjs/infra/providers/OKDProvider.js +0 -296
- package/dist/cjs/infra/providers/OKDProvider.js.map +0 -1
- package/dist/cjs/infra/providers/TerraformProvider.d.ts +0 -17
- package/dist/cjs/infra/providers/TerraformProvider.d.ts.map +0 -1
- package/dist/cjs/infra/providers/TerraformProvider.js +0 -111
- package/dist/cjs/infra/providers/TerraformProvider.js.map +0 -1
- package/dist/cjs/infra/providers/index.d.ts +0 -9
- package/dist/cjs/infra/providers/index.d.ts.map +0 -1
- package/dist/cjs/infra/providers/index.js +0 -34
- package/dist/cjs/infra/providers/index.js.map +0 -1
- package/dist/cjs/infra/templates/jenkins/index.d.ts +0 -15
- package/dist/cjs/infra/templates/jenkins/index.d.ts.map +0 -1
- package/dist/cjs/infra/templates/jenkins/index.js +0 -128
- package/dist/cjs/infra/templates/jenkins/index.js.map +0 -1
- package/dist/cjs/infra/templates/okd/index.d.ts +0 -31
- package/dist/cjs/infra/templates/okd/index.d.ts.map +0 -1
- package/dist/cjs/infra/templates/okd/index.js +0 -149
- package/dist/cjs/infra/templates/okd/index.js.map +0 -1
- package/dist/esm/infra/analyzers/DriftDetector.d.ts +0 -4
- package/dist/esm/infra/analyzers/DriftDetector.d.ts.map +0 -1
- package/dist/esm/infra/analyzers/DriftDetector.js +0 -84
- package/dist/esm/infra/analyzers/DriftDetector.js.map +0 -1
- package/dist/esm/infra/analyzers/InfraAnalyzer.d.ts +0 -3
- package/dist/esm/infra/analyzers/InfraAnalyzer.d.ts.map +0 -1
- package/dist/esm/infra/analyzers/InfraAnalyzer.js +0 -70
- package/dist/esm/infra/analyzers/InfraAnalyzer.js.map +0 -1
- package/dist/esm/infra/config.d.ts +0 -17
- package/dist/esm/infra/config.d.ts.map +0 -1
- package/dist/esm/infra/config.js +0 -101
- package/dist/esm/infra/config.js.map +0 -1
- package/dist/esm/infra/errorCause.d.ts +0 -36
- package/dist/esm/infra/errorCause.d.ts.map +0 -1
- package/dist/esm/infra/errorCause.js +0 -138
- package/dist/esm/infra/errorCause.js.map +0 -1
- package/dist/esm/infra/providers/InfraProvider.d.ts +0 -9
- package/dist/esm/infra/providers/InfraProvider.d.ts.map +0 -1
- package/dist/esm/infra/providers/InfraProvider.js +0 -2
- package/dist/esm/infra/providers/InfraProvider.js.map +0 -1
- package/dist/esm/infra/providers/JenkinsProvider.d.ts +0 -16
- package/dist/esm/infra/providers/JenkinsProvider.d.ts.map +0 -1
- package/dist/esm/infra/providers/JenkinsProvider.js +0 -186
- package/dist/esm/infra/providers/JenkinsProvider.js.map +0 -1
- package/dist/esm/infra/providers/OKDProvider.d.ts +0 -24
- package/dist/esm/infra/providers/OKDProvider.d.ts.map +0 -1
- package/dist/esm/infra/providers/OKDProvider.js +0 -292
- package/dist/esm/infra/providers/OKDProvider.js.map +0 -1
- package/dist/esm/infra/providers/TerraformProvider.d.ts +0 -17
- package/dist/esm/infra/providers/TerraformProvider.d.ts.map +0 -1
- package/dist/esm/infra/providers/TerraformProvider.js +0 -107
- package/dist/esm/infra/providers/TerraformProvider.js.map +0 -1
- package/dist/esm/infra/providers/index.d.ts +0 -9
- package/dist/esm/infra/providers/index.d.ts.map +0 -1
- package/dist/esm/infra/providers/index.js +0 -27
- package/dist/esm/infra/providers/index.js.map +0 -1
- package/dist/esm/infra/templates/jenkins/index.d.ts +0 -15
- package/dist/esm/infra/templates/jenkins/index.d.ts.map +0 -1
- package/dist/esm/infra/templates/jenkins/index.js +0 -124
- package/dist/esm/infra/templates/jenkins/index.js.map +0 -1
- package/dist/esm/infra/templates/okd/index.d.ts +0 -31
- package/dist/esm/infra/templates/okd/index.d.ts.map +0 -1
- package/dist/esm/infra/templates/okd/index.js +0 -142
- package/dist/esm/infra/templates/okd/index.js.map +0 -1
|
@@ -9,9 +9,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
9
9
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.takeSubstitutedChars = takeSubstitutedChars;
|
|
12
13
|
exports.reportSavings = reportSavings;
|
|
13
14
|
exports.reportCost = reportCost;
|
|
14
15
|
exports.usageReportingDisabled = usageReportingDisabled;
|
|
16
|
+
exports.reportRecall = reportRecall;
|
|
15
17
|
const fs_1 = __importDefault(require("fs"));
|
|
16
18
|
const path_1 = __importDefault(require("path"));
|
|
17
19
|
const os_1 = __importDefault(require("os"));
|
|
@@ -31,7 +33,26 @@ function getProxyPort() {
|
|
|
31
33
|
* Report savings to the proxy's SavingsLedger via HTTP POST.
|
|
32
34
|
* Fire-and-forget — never throws, never blocks.
|
|
33
35
|
*/
|
|
36
|
+
/**
|
|
37
|
+
* Output a substitution left in context, since the last takeSubstitutedChars().
|
|
38
|
+
*
|
|
39
|
+
* A contextSqueeze saving on a read/search/command is measured against the native call it
|
|
40
|
+
* replaces: the native one would have put `charsBefore` in context, Lemma put `charsAfter`, so
|
|
41
|
+
* the saving is the difference. Charging those `charsAfter` again as a toolResult cost counted
|
|
42
|
+
* them twice (the ledger booked before − 2·after instead of before − after). The CallTool
|
|
43
|
+
* wrapper takes this figure after each handler and charges only what exceeds it — the notes
|
|
44
|
+
* Lemma adds on top. Concurrent calls can blur which call a figure belongs to; the totals stay
|
|
45
|
+
* right because every char is taken exactly once.
|
|
46
|
+
*/
|
|
47
|
+
let _substitutedChars = 0;
|
|
48
|
+
function takeSubstitutedChars() {
|
|
49
|
+
const chars = _substitutedChars;
|
|
50
|
+
_substitutedChars = 0;
|
|
51
|
+
return chars;
|
|
52
|
+
}
|
|
34
53
|
function reportSavings(payload) {
|
|
54
|
+
if (payload.source === 'contextSqueeze' && 'charsAfter' in payload)
|
|
55
|
+
_substitutedChars += Math.max(0, payload.charsAfter);
|
|
35
56
|
post('/api/savings-record', payload);
|
|
36
57
|
if (payload.toolName && !usageReportingDisabled()) {
|
|
37
58
|
const tokens = 'tokens' in payload ? payload.tokens : Math.floor(Math.max(0, payload.charsBefore - payload.charsAfter) / 4);
|
|
@@ -61,28 +82,52 @@ function reportCost(payload) {
|
|
|
61
82
|
function usageReportingDisabled() {
|
|
62
83
|
return process.env.LEMMA_MCP_NO_PROXY === '1';
|
|
63
84
|
}
|
|
64
|
-
|
|
85
|
+
/**
|
|
86
|
+
* Tell the proxy which memories a note offered, so the dashboard can count recall the agent
|
|
87
|
+
* never had to search for — and, when a later get_memory reads one of them, that it was used.
|
|
88
|
+
* Resolves once the proxy answered (or after a short timeout): the host hook is a short-lived
|
|
89
|
+
* process that exits right after, and a fire-and-forget request would die with it.
|
|
90
|
+
*/
|
|
91
|
+
function reportRecall(payload, timeoutMs = 300) {
|
|
92
|
+
if (payload.memoryIds.length === 0)
|
|
93
|
+
return Promise.resolve();
|
|
94
|
+
return post('/api/brain-recall', payload, timeoutMs);
|
|
95
|
+
}
|
|
96
|
+
function post(pathname, payload, timeoutMs) {
|
|
65
97
|
if (usageReportingDisabled())
|
|
66
|
-
return;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
98
|
+
return Promise.resolve();
|
|
99
|
+
return new Promise((resolve) => {
|
|
100
|
+
try {
|
|
101
|
+
const port = getProxyPort();
|
|
102
|
+
const body = JSON.stringify(payload);
|
|
103
|
+
const req = http_1.default.request({
|
|
104
|
+
hostname: '127.0.0.1',
|
|
105
|
+
port: parseInt(port),
|
|
106
|
+
path: pathname,
|
|
107
|
+
method: 'POST',
|
|
108
|
+
headers: {
|
|
109
|
+
'Content-Type': 'application/json',
|
|
110
|
+
'Content-Length': Buffer.byteLength(body),
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
req.on('response', (res) => {
|
|
114
|
+
res.resume();
|
|
115
|
+
res.on('end', () => resolve());
|
|
116
|
+
});
|
|
117
|
+
req.on('error', () => resolve()); // Silently ignore if proxy isn't running
|
|
118
|
+
if (timeoutMs !== undefined) {
|
|
119
|
+
req.setTimeout(timeoutMs, () => {
|
|
120
|
+
req.destroy();
|
|
121
|
+
resolve();
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
req.write(body);
|
|
125
|
+
req.end();
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
// Never throw — savings reporting is non-critical
|
|
129
|
+
resolve();
|
|
130
|
+
}
|
|
131
|
+
});
|
|
87
132
|
}
|
|
88
133
|
//# sourceMappingURL=reportSavings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reportSavings.js","sourceRoot":"","sources":["../../../src/utils/reportSavings.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;
|
|
1
|
+
{"version":3,"file":"reportSavings.js","sourceRoot":"","sources":["../../../src/utils/reportSavings.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AAwDH,oDAIC;AAED,sCASC;AAsBD,gCAMC;AAQD,wDAEC;AAmBD,oCAGC;AAjID,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AACpB,gDAAwB;AACxB,2CAA6D;AAuB7D,SAAS,YAAY;IACnB,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,OAAO,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH;;;;;;;;;;GAUG;AACH,IAAI,iBAAiB,GAAG,CAAC,CAAC;AAE1B,SAAgB,oBAAoB;IAClC,MAAM,KAAK,GAAG,iBAAiB,CAAC;IAChC,iBAAiB,GAAG,CAAC,CAAC;IACtB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,aAAa,CAAC,OAAsB;IAClD,IAAI,OAAO,CAAC,MAAM,KAAK,gBAAgB,IAAI,YAAY,IAAI,OAAO;QAAE,iBAAiB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACzH,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,sBAAsB,EAAE,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5H,mFAAmF;QACnF,gEAAgE;QAChE,IAAA,0BAAc,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAiBD;;;;GAIG;AACH,SAAgB,UAAU,CAAC,OAAoB;IAC7C,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,sBAAsB,EAAE,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACrH,IAAA,0BAAc,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB;IACpC,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,GAAG,CAAC;AAChD,CAAC;AAaD;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,OAAsB,EAAE,SAAS,GAAG,GAAG;IAClE,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7D,OAAO,IAAI,CAAC,mBAAmB,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,IAAI,CAAC,QAAgB,EAAE,OAAgB,EAAE,SAAkB;IAClE,IAAI,sBAAsB,EAAE;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IACvD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAErC,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC;gBACvB,QAAQ,EAAE,WAAW;gBACrB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;gBACpB,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;iBAC1C;aACF,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE;gBACzB,GAAG,CAAC,MAAM,EAAE,CAAC;gBACb,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,yCAAyC;YAC3E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE;oBAC7B,GAAG,CAAC,OAAO,EAAE,CAAC;oBACd,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;YACL,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChB,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC;QAAC,MAAM,CAAC;YACP,kDAAkD;YAClD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tsLoader.d.ts","sourceRoot":"","sources":["../../../src/utils/tsLoader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAiBtC,wBAAgB,KAAK,IAAI,OAAO,EAAE,CAGjC;AAED,yEAAyE;AACzE,eAAO,MAAM,EAAE,EAAE,OAAO,EAEtB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ts = void 0;
|
|
4
|
+
exports.getTs = getTs;
|
|
5
|
+
let loaded;
|
|
6
|
+
function getTs() {
|
|
7
|
+
if (!loaded)
|
|
8
|
+
loaded = require('typescript');
|
|
9
|
+
return loaded;
|
|
10
|
+
}
|
|
11
|
+
/** Drop-in for `import * as ts from 'typescript'` in value positions. */
|
|
12
|
+
exports.ts = new Proxy({}, {
|
|
13
|
+
get: (_target, prop) => getTs()[prop],
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=tsLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tsLoader.js","sourceRoot":"","sources":["../../../src/utils/tsLoader.ts"],"names":[],"mappings":";;;AAiBA,sBAGC;AALD,IAAI,MAA6B,CAAC;AAElC,SAAgB,KAAK;IACnB,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAc,CAAC;IACzD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,yEAAyE;AAC5D,QAAA,EAAE,GAAc,IAAI,KAAK,CAAC,EAAe,EAAE;IACtD,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAE,KAAK,EAAkD,CAAC,IAAI,CAAC;CACvF,CAAC,CAAC"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Installs the git hooks that feed the Brain without anyone remembering to: post-
|
|
3
|
-
*
|
|
2
|
+
* Installs the git hooks that feed the Brain without anyone remembering to: post-merge and
|
|
3
|
+
* post-checkout pull the team's shared memories (`.lemma-brain/`).
|
|
4
|
+
*
|
|
5
|
+
* post-commit used to store every commit as a memory. On the author's own repo that was 295 of
|
|
6
|
+
* 339 memories, recalled twice in total: a copy of `git log` that crowded the per-file notes and
|
|
7
|
+
* buried the memories someone wrote on purpose. It is no longer installed, and a block an older
|
|
8
|
+
* init left in post-commit is removed (`lemma-brain-ingest --commits` still backfills by hand).
|
|
4
9
|
*
|
|
5
10
|
* `lemma-brain-ingest` shipped with a post-commit recipe in its header comment and nothing ever
|
|
6
11
|
* installed it — on the author's own machine the corpus held 0 commit memories. This is the
|
|
@@ -17,6 +22,8 @@ export interface HookInstallResult {
|
|
|
17
22
|
installed: string[];
|
|
18
23
|
updated: string[];
|
|
19
24
|
unchanged: string[];
|
|
25
|
+
/** Hooks whose Lemma block was taken out because Lemma no longer installs them. */
|
|
26
|
+
removed: string[];
|
|
20
27
|
/** Set when hooks live in a versioned directory Lemma won't write to; holds what to add by hand. */
|
|
21
28
|
manual?: {
|
|
22
29
|
hooksDir: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitHooks.d.ts","sourceRoot":"","sources":["../../../src/cli/gitHooks.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gitHooks.d.ts","sourceRoot":"","sources":["../../../src/cli/gitHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAoBH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,mFAAmF;IACnF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,oGAAoG;IACpG,MAAM,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAcD,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAsB,GAAG,iBAAiB,CAwEhF"}
|
package/dist/esm/cli/gitHooks.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Installs the git hooks that feed the Brain without anyone remembering to: post-
|
|
3
|
-
*
|
|
2
|
+
* Installs the git hooks that feed the Brain without anyone remembering to: post-merge and
|
|
3
|
+
* post-checkout pull the team's shared memories (`.lemma-brain/`).
|
|
4
|
+
*
|
|
5
|
+
* post-commit used to store every commit as a memory. On the author's own repo that was 295 of
|
|
6
|
+
* 339 memories, recalled twice in total: a copy of `git log` that crowded the per-file notes and
|
|
7
|
+
* buried the memories someone wrote on purpose. It is no longer installed, and a block an older
|
|
8
|
+
* init left in post-commit is removed (`lemma-brain-ingest --commits` still backfills by hand).
|
|
4
9
|
*
|
|
5
10
|
* `lemma-brain-ingest` shipped with a post-commit recipe in its header comment and nothing ever
|
|
6
11
|
* installed it — on the author's own machine the corpus held 0 commit memories. This is the
|
|
@@ -19,11 +24,12 @@ import { execFileSync } from 'child_process';
|
|
|
19
24
|
const BEGIN = '# >>> lemma brain hooks >>>';
|
|
20
25
|
const END = '# <<< lemma brain hooks <<<';
|
|
21
26
|
const HOOK_BODIES = {
|
|
22
|
-
'post-commit': 'command -v lemma-brain-ingest >/dev/null 2>&1 && (lemma-brain-ingest "$(git rev-parse --show-toplevel)" >/dev/null 2>&1 &)',
|
|
23
27
|
'post-merge': 'command -v lemma-brain-ingest >/dev/null 2>&1 && (lemma-brain-ingest "$(git rev-parse --show-toplevel)" --team-pull --no-commits >/dev/null 2>&1 &)',
|
|
24
28
|
// $3 is 1 for a branch checkout, 0 for a file checkout — only a branch switch can change the shared set.
|
|
25
29
|
'post-checkout': '[ "$3" = "1" ] && command -v lemma-brain-ingest >/dev/null 2>&1 && (lemma-brain-ingest "$(git rev-parse --show-toplevel)" --team-pull --no-commits >/dev/null 2>&1 &)',
|
|
26
30
|
};
|
|
31
|
+
/** Hooks an older `lemma init` installed and this one takes back out. */
|
|
32
|
+
const RETIRED_HOOKS = ['post-commit'];
|
|
27
33
|
function git(cwd, args) {
|
|
28
34
|
try {
|
|
29
35
|
return execFileSync('git', ['-C', cwd, ...args], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();
|
|
@@ -36,7 +42,7 @@ function block(hook) {
|
|
|
36
42
|
return `${BEGIN}\n${HOOK_BODIES[hook]}\n${END}\n`;
|
|
37
43
|
}
|
|
38
44
|
export function installBrainHooks(cwd = process.cwd()) {
|
|
39
|
-
const result = { installed: [], updated: [], unchanged: [] };
|
|
45
|
+
const result = { installed: [], updated: [], unchanged: [], removed: [] };
|
|
40
46
|
const top = git(cwd, ['rev-parse', '--show-toplevel']);
|
|
41
47
|
const hooksRel = git(cwd, ['rev-parse', '--git-path', 'hooks']);
|
|
42
48
|
if (!top || !hooksRel) {
|
|
@@ -101,6 +107,27 @@ export function installBrainHooks(cwd = process.cwd()) {
|
|
|
101
107
|
catch { /* Windows: git for Windows runs hooks via sh regardless */ }
|
|
102
108
|
(current === null ? result.installed : result.updated).push(hook);
|
|
103
109
|
}
|
|
110
|
+
for (const hook of RETIRED_HOOKS) {
|
|
111
|
+
const file = path.join(hooksDir, hook);
|
|
112
|
+
let current;
|
|
113
|
+
try {
|
|
114
|
+
current = fs.readFileSync(file, 'utf8');
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
const start = current.indexOf(BEGIN);
|
|
120
|
+
const end = current.indexOf(END);
|
|
121
|
+
if (start === -1 || end < start)
|
|
122
|
+
continue;
|
|
123
|
+
const next = current.slice(0, start) + current.slice(end + END.length).replace(/^\n/, '');
|
|
124
|
+
// Nothing but the shebang left: the hook was Lemma's alone.
|
|
125
|
+
if (next.replace(/^#!.*\n?/, '').trim() === '')
|
|
126
|
+
fs.unlinkSync(file);
|
|
127
|
+
else
|
|
128
|
+
fs.writeFileSync(file, next, 'utf8');
|
|
129
|
+
result.removed.push(hook);
|
|
130
|
+
}
|
|
104
131
|
return result;
|
|
105
132
|
}
|
|
106
133
|
//# sourceMappingURL=gitHooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitHooks.js","sourceRoot":"","sources":["../../../src/cli/gitHooks.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gitHooks.js","sourceRoot":"","sources":["../../../src/cli/gitHooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lemma-proxy.d.ts","sourceRoot":"","sources":["../../../src/cli/lemma-proxy.ts"],"names":[],"mappings":";AAgdA,wBAAgB,+BAA+B,CAAC,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA+DvF;AAiiBD,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGtD;
|
|
1
|
+
{"version":3,"file":"lemma-proxy.d.ts","sourceRoot":"","sources":["../../../src/cli/lemma-proxy.ts"],"names":[],"mappings":";AAgdA,wBAAgB,+BAA+B,CAAC,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA+DvF;AAiiBD,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGtD;AAo0DD,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"}
|
|
@@ -1124,6 +1124,19 @@ class LemmaServer {
|
|
|
1124
1124
|
this.app.get('/api/projects', (req, res) => {
|
|
1125
1125
|
res.json({ projects: this.registry.snapshot() });
|
|
1126
1126
|
});
|
|
1127
|
+
// Memories a recall note put in front of an agent — from the host hooks (lemma-brain-ingest)
|
|
1128
|
+
// and from Lemma's own read tools. Counted per project, not logged as events: a note rides
|
|
1129
|
+
// on most file reads and would push tool calls out of the 100-event buffer.
|
|
1130
|
+
this.app.post('/api/brain-recall', (req, res) => {
|
|
1131
|
+
const { projectPath, trigger, memoryIds } = req.body || {};
|
|
1132
|
+
const triggers = ['read', 'edit', 'failure', 'prompt', 'session', 'search'];
|
|
1133
|
+
if (typeof projectPath !== 'string' || !projectPath || !triggers.includes(trigger) || !Array.isArray(memoryIds)) {
|
|
1134
|
+
return res.status(400).json({ error: 'projectPath, trigger and memoryIds required' });
|
|
1135
|
+
}
|
|
1136
|
+
const ids = memoryIds.filter((id) => typeof id === 'string' && id.length > 0 && id.length <= 64).slice(0, 20);
|
|
1137
|
+
this.registry.recordOffered(projectPath, ids);
|
|
1138
|
+
res.json({ ok: true, recorded: ids.length });
|
|
1139
|
+
});
|
|
1127
1140
|
this.app.get('/v1/models', (req, res) => {
|
|
1128
1141
|
res.json({ object: 'list', data: [
|
|
1129
1142
|
{ id: 'gpt-4o', object: 'model', owned_by: 'lemma-proxy' },
|
|
@@ -1239,6 +1252,8 @@ class LemmaServer {
|
|
|
1239
1252
|
eventData.error = e.error;
|
|
1240
1253
|
eventData.receipt = e.receipt;
|
|
1241
1254
|
eventData.projectPath = e.projectPath;
|
|
1255
|
+
if (e.recallUsed)
|
|
1256
|
+
eventData.recallUsed = true;
|
|
1242
1257
|
// tokensImpact is the size of the tool result — a context cost, not a saving.
|
|
1243
1258
|
eventData.tokensSaved = 0;
|
|
1244
1259
|
eventData.costSaved = 0;
|
|
@@ -1735,8 +1750,13 @@ class LemmaServer {
|
|
|
1735
1750
|
projectPath: typeof event.projectPath === 'string' ? event.projectPath : undefined,
|
|
1736
1751
|
timestamp: event.timestamp || new Date().toISOString(),
|
|
1737
1752
|
};
|
|
1753
|
+
// get_memory on a memory a recall note offered: the agent acted on recall it didn't
|
|
1754
|
+
// have to search for. Flagged on the event so the timeline can show it too.
|
|
1755
|
+
const readId = mcpEvent.args && typeof mcpEvent.args.id === 'string' ? mcpEvent.args.id : null;
|
|
1756
|
+
const recallUsed = mcpEvent.tool === 'get_memory' && mcpEvent.result === 'OK' && !!readId && !!mcpEvent.projectPath &&
|
|
1757
|
+
this.registry.recordRecallUse(mcpEvent.projectPath, readId);
|
|
1738
1758
|
// Add to EVENT_LOG
|
|
1739
|
-
logEvent(mcpEvent);
|
|
1759
|
+
logEvent(recallUsed ? { ...mcpEvent, recallUsed: true } : mcpEvent);
|
|
1740
1760
|
if (mcpEvent.projectPath)
|
|
1741
1761
|
this.registry.recordToolCall(mcpEvent.projectPath);
|
|
1742
1762
|
res.json({ success: true, eventId: mcpEvent.id });
|