@nxuss/lemma 1.17.0 → 1.18.1
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/bin/init.js +97 -11
- package/dist/cjs/cli/lemma-proxy.d.ts.map +1 -1
- package/dist/cjs/cli/lemma-proxy.js +19 -11
- package/dist/cjs/cli/lemma-proxy.js.map +1 -1
- package/dist/cjs/cloud/TenantCache.d.ts.map +1 -1
- package/dist/cjs/cloud/TenantCache.js +0 -4
- package/dist/cjs/cloud/TenantCache.js.map +1 -1
- package/dist/cjs/cloud/identity/ApiKey.d.ts +32 -0
- package/dist/cjs/cloud/identity/ApiKey.d.ts.map +1 -0
- package/dist/cjs/cloud/identity/ApiKey.js +59 -0
- package/dist/cjs/cloud/identity/ApiKey.js.map +1 -0
- package/dist/cjs/cloud/identity/PlanPolicy.d.ts +79 -0
- package/dist/cjs/cloud/identity/PlanPolicy.d.ts.map +1 -0
- package/dist/cjs/cloud/identity/PlanPolicy.js +135 -0
- package/dist/cjs/cloud/identity/PlanPolicy.js.map +1 -0
- package/dist/cjs/cloud/identity/RateLimiter.d.ts +49 -0
- package/dist/cjs/cloud/identity/RateLimiter.d.ts.map +1 -0
- package/dist/cjs/cloud/identity/RateLimiter.js +75 -0
- package/dist/cjs/cloud/identity/RateLimiter.js.map +1 -0
- package/dist/cjs/cloud/identity/TenantResolver.d.ts +19 -0
- package/dist/cjs/cloud/identity/TenantResolver.d.ts.map +1 -0
- package/dist/cjs/cloud/identity/TenantResolver.js +40 -0
- package/dist/cjs/cloud/identity/TenantResolver.js.map +1 -0
- package/dist/cjs/cloud/identity/authenticateV2.d.ts +48 -0
- package/dist/cjs/cloud/identity/authenticateV2.d.ts.map +1 -0
- package/dist/cjs/cloud/identity/authenticateV2.js +66 -0
- package/dist/cjs/cloud/identity/authenticateV2.js.map +1 -0
- package/dist/cjs/cloud/identity/identityStore.d.ts +56 -0
- package/dist/cjs/cloud/identity/identityStore.d.ts.map +1 -0
- package/dist/cjs/cloud/identity/identityStore.js +99 -0
- package/dist/cjs/cloud/identity/identityStore.js.map +1 -0
- package/dist/cjs/cloud/identity/index.d.ts +14 -0
- package/dist/cjs/cloud/identity/index.d.ts.map +1 -0
- package/dist/cjs/cloud/identity/index.js +30 -0
- package/dist/cjs/cloud/identity/index.js.map +1 -0
- package/dist/cjs/cloud/metering/TokenCounter.d.ts +26 -0
- package/dist/cjs/cloud/metering/TokenCounter.d.ts.map +1 -0
- package/dist/cjs/cloud/metering/TokenCounter.js +80 -0
- package/dist/cjs/cloud/metering/TokenCounter.js.map +1 -0
- package/dist/cjs/cloud/metering/UsageLedger.d.ts +68 -0
- package/dist/cjs/cloud/metering/UsageLedger.d.ts.map +1 -0
- package/dist/cjs/cloud/metering/UsageLedger.js +106 -0
- package/dist/cjs/cloud/metering/UsageLedger.js.map +1 -0
- package/dist/cjs/cloud/metering/index.d.ts +12 -0
- package/dist/cjs/cloud/metering/index.d.ts.map +1 -0
- package/dist/cjs/cloud/metering/index.js +28 -0
- package/dist/cjs/cloud/metering/index.js.map +1 -0
- package/dist/cjs/cloud/scrub/StatelessScrubber.d.ts +53 -0
- package/dist/cjs/cloud/scrub/StatelessScrubber.d.ts.map +1 -0
- package/dist/cjs/cloud/scrub/StatelessScrubber.js +203 -0
- package/dist/cjs/cloud/scrub/StatelessScrubber.js.map +1 -0
- package/dist/cjs/cloud/scrub/index.d.ts +5 -0
- package/dist/cjs/cloud/scrub/index.d.ts.map +1 -0
- package/dist/cjs/cloud/scrub/index.js +21 -0
- package/dist/cjs/cloud/scrub/index.js.map +1 -0
- package/dist/cjs/cloud/store/FileBrainStore.d.ts +26 -0
- package/dist/cjs/cloud/store/FileBrainStore.d.ts.map +1 -0
- package/dist/cjs/cloud/store/FileBrainStore.js +219 -0
- package/dist/cjs/cloud/store/FileBrainStore.js.map +1 -0
- package/dist/cjs/cloud/store/PostgresBrainStore.d.ts +50 -0
- package/dist/cjs/cloud/store/PostgresBrainStore.d.ts.map +1 -0
- package/dist/cjs/cloud/store/PostgresBrainStore.js +181 -0
- package/dist/cjs/cloud/store/PostgresBrainStore.js.map +1 -0
- package/dist/cjs/cloud/store/index.d.ts +6 -0
- package/dist/cjs/cloud/store/index.d.ts.map +1 -0
- package/dist/cjs/cloud/store/index.js +22 -0
- package/dist/cjs/cloud/store/index.js.map +1 -0
- package/dist/cjs/cloud/types.d.ts +0 -4
- package/dist/cjs/cloud/types.d.ts.map +1 -1
- package/dist/cjs/cloud/types.js +1 -3
- package/dist/cjs/cloud/types.js.map +1 -1
- package/dist/cjs/cloud/v2/app.d.ts +15 -0
- package/dist/cjs/cloud/v2/app.d.ts.map +1 -0
- package/dist/cjs/cloud/v2/app.js +63 -0
- package/dist/cjs/cloud/v2/app.js.map +1 -0
- package/dist/cjs/cloud/v2/routes/index.d.ts +24 -0
- package/dist/cjs/cloud/v2/routes/index.d.ts.map +1 -0
- package/dist/cjs/cloud/v2/routes/index.js +35 -0
- package/dist/cjs/cloud/v2/routes/index.js.map +1 -0
- package/dist/cjs/cloud/v2/routes/memories.d.ts +83 -0
- package/dist/cjs/cloud/v2/routes/memories.d.ts.map +1 -0
- package/dist/cjs/cloud/v2/routes/memories.js +249 -0
- package/dist/cjs/cloud/v2/routes/memories.js.map +1 -0
- package/dist/cjs/cloud/v2/routes/recall.d.ts +33 -0
- package/dist/cjs/cloud/v2/routes/recall.d.ts.map +1 -0
- package/dist/cjs/cloud/v2/routes/recall.js +51 -0
- package/dist/cjs/cloud/v2/routes/recall.js.map +1 -0
- package/dist/cjs/cloud/v2/routes/scrub.d.ts +13 -0
- package/dist/cjs/cloud/v2/routes/scrub.d.ts.map +1 -0
- package/dist/cjs/cloud/v2/routes/scrub.js +82 -0
- package/dist/cjs/cloud/v2/routes/scrub.js.map +1 -0
- package/dist/cjs/cloud/v2/routes/usage.d.ts +18 -0
- package/dist/cjs/cloud/v2/routes/usage.d.ts.map +1 -0
- package/dist/cjs/cloud/v2/routes/usage.js +18 -0
- package/dist/cjs/cloud/v2/routes/usage.js.map +1 -0
- package/dist/cjs/cloud/v2/routes/verify.d.ts +35 -0
- package/dist/cjs/cloud/v2/routes/verify.d.ts.map +1 -0
- package/dist/cjs/cloud/v2/routes/verify.js +43 -0
- package/dist/cjs/cloud/v2/routes/verify.js.map +1 -0
- package/dist/cjs/cloud/v2/server.d.ts +27 -0
- package/dist/cjs/cloud/v2/server.d.ts.map +1 -0
- package/dist/cjs/cloud/v2/server.js +47 -0
- package/dist/cjs/cloud/v2/server.js.map +1 -0
- package/dist/cjs/contracts/api-v2.types.d.ts +103 -0
- package/dist/cjs/contracts/api-v2.types.d.ts.map +1 -0
- package/dist/cjs/contracts/api-v2.types.js +3 -0
- package/dist/cjs/contracts/api-v2.types.js.map +1 -0
- package/dist/cjs/contracts/errors.d.ts +40 -0
- package/dist/cjs/contracts/errors.d.ts.map +1 -0
- package/dist/cjs/contracts/errors.js +50 -0
- package/dist/cjs/contracts/errors.js.map +1 -0
- package/dist/cjs/contracts/evidence.d.ts +49 -0
- package/dist/cjs/contracts/evidence.d.ts.map +1 -0
- package/dist/cjs/contracts/evidence.js +12 -0
- package/dist/cjs/contracts/evidence.js.map +1 -0
- package/dist/cjs/contracts/index.d.ts +10 -0
- package/dist/cjs/contracts/index.d.ts.map +1 -0
- package/dist/cjs/contracts/index.js +26 -0
- package/dist/cjs/contracts/index.js.map +1 -0
- package/dist/cjs/contracts/store.d.ts +30 -0
- package/dist/cjs/contracts/store.d.ts.map +1 -0
- package/dist/cjs/contracts/store.js +3 -0
- package/dist/cjs/contracts/store.js.map +1 -0
- 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/tool-profiles.d.ts.map +1 -1
- package/dist/cjs/mcp/tool-profiles.js +46 -1
- package/dist/cjs/mcp/tool-profiles.js.map +1 -1
- 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 +534 -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 +416 -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 +663 -0
- package/dist/cjs/mcp/tools/workspace.js.map +1 -0
- package/dist/cjs/mcp/tools.d.ts +2 -0
- package/dist/cjs/mcp/tools.d.ts.map +1 -1
- package/dist/cjs/mcp/tools.js +605 -6348
- package/dist/cjs/mcp/tools.js.map +1 -1
- package/dist/cjs/mcp/utils.d.ts +33 -0
- package/dist/cjs/mcp/utils.d.ts.map +1 -1
- package/dist/cjs/mcp/utils.js +96 -0
- 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/subconscious/TheBrainV2.d.ts +43 -7
- package/dist/cjs/subconscious/TheBrainV2.d.ts.map +1 -1
- package/dist/cjs/subconscious/TheBrainV2.js +86 -57
- package/dist/cjs/subconscious/TheBrainV2.js.map +1 -1
- package/dist/cjs/subconscious/freshness/LocalFsResolver.d.ts +16 -0
- package/dist/cjs/subconscious/freshness/LocalFsResolver.d.ts.map +1 -0
- package/dist/cjs/subconscious/freshness/LocalFsResolver.js +74 -0
- package/dist/cjs/subconscious/freshness/LocalFsResolver.js.map +1 -0
- package/dist/cjs/subconscious/freshness/SuppliedEvidenceResolver.d.ts +23 -0
- package/dist/cjs/subconscious/freshness/SuppliedEvidenceResolver.d.ts.map +1 -0
- package/dist/cjs/subconscious/freshness/SuppliedEvidenceResolver.js +24 -0
- package/dist/cjs/subconscious/freshness/SuppliedEvidenceResolver.js.map +1 -0
- package/dist/cjs/subconscious/freshness/index.d.ts +10 -0
- package/dist/cjs/subconscious/freshness/index.d.ts.map +1 -0
- package/dist/cjs/subconscious/freshness/index.js +26 -0
- package/dist/cjs/subconscious/freshness/index.js.map +1 -0
- package/dist/cjs/utils/ProjectIdentity.d.ts +12 -0
- package/dist/cjs/utils/ProjectIdentity.d.ts.map +1 -0
- package/dist/cjs/utils/ProjectIdentity.js +44 -0
- package/dist/cjs/utils/ProjectIdentity.js.map +1 -0
- package/dist/cjs/utils/PromptPatternCache.d.ts.map +1 -1
- package/dist/cjs/utils/PromptPatternCache.js +12 -2
- package/dist/cjs/utils/PromptPatternCache.js.map +1 -1
- package/dist/cjs/utils/RepeatGuard.d.ts.map +1 -1
- package/dist/cjs/utils/RepeatGuard.js +10 -2
- package/dist/cjs/utils/RepeatGuard.js.map +1 -1
- package/dist/cjs/utils/StateHashCache.d.ts +5 -0
- package/dist/cjs/utils/StateHashCache.d.ts.map +1 -1
- package/dist/cjs/utils/StateHashCache.js +40 -16
- package/dist/cjs/utils/StateHashCache.js.map +1 -1
- package/dist/esm/cli/lemma-proxy.d.ts.map +1 -1
- package/dist/esm/cli/lemma-proxy.js +19 -11
- package/dist/esm/cli/lemma-proxy.js.map +1 -1
- package/dist/esm/cloud/TenantCache.d.ts.map +1 -1
- package/dist/esm/cloud/TenantCache.js +0 -4
- package/dist/esm/cloud/TenantCache.js.map +1 -1
- package/dist/esm/cloud/identity/ApiKey.d.ts +32 -0
- package/dist/esm/cloud/identity/ApiKey.d.ts.map +1 -0
- package/dist/esm/cloud/identity/ApiKey.js +49 -0
- package/dist/esm/cloud/identity/ApiKey.js.map +1 -0
- package/dist/esm/cloud/identity/PlanPolicy.d.ts +79 -0
- package/dist/esm/cloud/identity/PlanPolicy.d.ts.map +1 -0
- package/dist/esm/cloud/identity/PlanPolicy.js +129 -0
- package/dist/esm/cloud/identity/PlanPolicy.js.map +1 -0
- package/dist/esm/cloud/identity/RateLimiter.d.ts +49 -0
- package/dist/esm/cloud/identity/RateLimiter.d.ts.map +1 -0
- package/dist/esm/cloud/identity/RateLimiter.js +69 -0
- package/dist/esm/cloud/identity/RateLimiter.js.map +1 -0
- package/dist/esm/cloud/identity/TenantResolver.d.ts +19 -0
- package/dist/esm/cloud/identity/TenantResolver.d.ts.map +1 -0
- package/dist/esm/cloud/identity/TenantResolver.js +36 -0
- package/dist/esm/cloud/identity/TenantResolver.js.map +1 -0
- package/dist/esm/cloud/identity/authenticateV2.d.ts +48 -0
- package/dist/esm/cloud/identity/authenticateV2.d.ts.map +1 -0
- package/dist/esm/cloud/identity/authenticateV2.js +62 -0
- package/dist/esm/cloud/identity/authenticateV2.js.map +1 -0
- package/dist/esm/cloud/identity/identityStore.d.ts +56 -0
- package/dist/esm/cloud/identity/identityStore.d.ts.map +1 -0
- package/dist/esm/cloud/identity/identityStore.js +94 -0
- package/dist/esm/cloud/identity/identityStore.js.map +1 -0
- package/dist/esm/cloud/identity/index.d.ts +14 -0
- package/dist/esm/cloud/identity/index.d.ts.map +1 -0
- package/dist/esm/cloud/identity/index.js +14 -0
- package/dist/esm/cloud/identity/index.js.map +1 -0
- package/dist/esm/cloud/metering/TokenCounter.d.ts +26 -0
- package/dist/esm/cloud/metering/TokenCounter.d.ts.map +1 -0
- package/dist/esm/cloud/metering/TokenCounter.js +76 -0
- package/dist/esm/cloud/metering/TokenCounter.js.map +1 -0
- package/dist/esm/cloud/metering/UsageLedger.d.ts +68 -0
- package/dist/esm/cloud/metering/UsageLedger.d.ts.map +1 -0
- package/dist/esm/cloud/metering/UsageLedger.js +98 -0
- package/dist/esm/cloud/metering/UsageLedger.js.map +1 -0
- package/dist/esm/cloud/metering/index.d.ts +12 -0
- package/dist/esm/cloud/metering/index.d.ts.map +1 -0
- package/dist/esm/cloud/metering/index.js +12 -0
- package/dist/esm/cloud/metering/index.js.map +1 -0
- package/dist/esm/cloud/scrub/StatelessScrubber.d.ts +53 -0
- package/dist/esm/cloud/scrub/StatelessScrubber.d.ts.map +1 -0
- package/dist/esm/cloud/scrub/StatelessScrubber.js +199 -0
- package/dist/esm/cloud/scrub/StatelessScrubber.js.map +1 -0
- package/dist/esm/cloud/scrub/index.d.ts +5 -0
- package/dist/esm/cloud/scrub/index.d.ts.map +1 -0
- package/dist/esm/cloud/scrub/index.js +5 -0
- package/dist/esm/cloud/scrub/index.js.map +1 -0
- package/dist/esm/cloud/store/FileBrainStore.d.ts +26 -0
- package/dist/esm/cloud/store/FileBrainStore.d.ts.map +1 -0
- package/dist/esm/cloud/store/FileBrainStore.js +212 -0
- package/dist/esm/cloud/store/FileBrainStore.js.map +1 -0
- package/dist/esm/cloud/store/PostgresBrainStore.d.ts +50 -0
- package/dist/esm/cloud/store/PostgresBrainStore.d.ts.map +1 -0
- package/dist/esm/cloud/store/PostgresBrainStore.js +176 -0
- package/dist/esm/cloud/store/PostgresBrainStore.js.map +1 -0
- package/dist/esm/cloud/store/index.d.ts +6 -0
- package/dist/esm/cloud/store/index.d.ts.map +1 -0
- package/dist/esm/cloud/store/index.js +6 -0
- package/dist/esm/cloud/store/index.js.map +1 -0
- package/dist/esm/cloud/types.d.ts +0 -4
- package/dist/esm/cloud/types.d.ts.map +1 -1
- package/dist/esm/cloud/types.js +0 -2
- package/dist/esm/cloud/types.js.map +1 -1
- package/dist/esm/cloud/v2/app.d.ts +15 -0
- package/dist/esm/cloud/v2/app.d.ts.map +1 -0
- package/dist/esm/cloud/v2/app.js +57 -0
- package/dist/esm/cloud/v2/app.js.map +1 -0
- package/dist/esm/cloud/v2/routes/index.d.ts +24 -0
- package/dist/esm/cloud/v2/routes/index.d.ts.map +1 -0
- package/dist/esm/cloud/v2/routes/index.js +32 -0
- package/dist/esm/cloud/v2/routes/index.js.map +1 -0
- package/dist/esm/cloud/v2/routes/memories.d.ts +83 -0
- package/dist/esm/cloud/v2/routes/memories.d.ts.map +1 -0
- package/dist/esm/cloud/v2/routes/memories.js +238 -0
- package/dist/esm/cloud/v2/routes/memories.js.map +1 -0
- package/dist/esm/cloud/v2/routes/recall.d.ts +33 -0
- package/dist/esm/cloud/v2/routes/recall.d.ts.map +1 -0
- package/dist/esm/cloud/v2/routes/recall.js +47 -0
- package/dist/esm/cloud/v2/routes/recall.js.map +1 -0
- package/dist/esm/cloud/v2/routes/scrub.d.ts +13 -0
- package/dist/esm/cloud/v2/routes/scrub.d.ts.map +1 -0
- package/dist/esm/cloud/v2/routes/scrub.js +79 -0
- package/dist/esm/cloud/v2/routes/scrub.js.map +1 -0
- package/dist/esm/cloud/v2/routes/usage.d.ts +18 -0
- package/dist/esm/cloud/v2/routes/usage.d.ts.map +1 -0
- package/dist/esm/cloud/v2/routes/usage.js +15 -0
- package/dist/esm/cloud/v2/routes/usage.js.map +1 -0
- package/dist/esm/cloud/v2/routes/verify.d.ts +35 -0
- package/dist/esm/cloud/v2/routes/verify.d.ts.map +1 -0
- package/dist/esm/cloud/v2/routes/verify.js +39 -0
- package/dist/esm/cloud/v2/routes/verify.js.map +1 -0
- package/dist/esm/cloud/v2/server.d.ts +27 -0
- package/dist/esm/cloud/v2/server.d.ts.map +1 -0
- package/dist/esm/cloud/v2/server.js +44 -0
- package/dist/esm/cloud/v2/server.js.map +1 -0
- package/dist/esm/contracts/api-v2.types.d.ts +103 -0
- package/dist/esm/contracts/api-v2.types.d.ts.map +1 -0
- package/dist/esm/contracts/api-v2.types.js +2 -0
- package/dist/esm/contracts/api-v2.types.js.map +1 -0
- package/dist/esm/contracts/errors.d.ts +40 -0
- package/dist/esm/contracts/errors.d.ts.map +1 -0
- package/dist/esm/contracts/errors.js +45 -0
- package/dist/esm/contracts/errors.js.map +1 -0
- package/dist/esm/contracts/evidence.d.ts +49 -0
- package/dist/esm/contracts/evidence.d.ts.map +1 -0
- package/dist/esm/contracts/evidence.js +11 -0
- package/dist/esm/contracts/evidence.js.map +1 -0
- package/dist/esm/contracts/index.d.ts +10 -0
- package/dist/esm/contracts/index.d.ts.map +1 -0
- package/dist/esm/contracts/index.js +10 -0
- package/dist/esm/contracts/index.js.map +1 -0
- package/dist/esm/contracts/store.d.ts +30 -0
- package/dist/esm/contracts/store.d.ts.map +1 -0
- package/dist/esm/contracts/store.js +2 -0
- package/dist/esm/contracts/store.js.map +1 -0
- 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/tool-profiles.d.ts.map +1 -1
- package/dist/esm/mcp/tool-profiles.js +46 -1
- package/dist/esm/mcp/tool-profiles.js.map +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 +494 -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 +380 -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 +657 -0
- package/dist/esm/mcp/tools/workspace.js.map +1 -0
- package/dist/esm/mcp/tools.d.ts +2 -0
- package/dist/esm/mcp/tools.d.ts.map +1 -1
- package/dist/esm/mcp/tools.js +608 -6352
- package/dist/esm/mcp/tools.js.map +1 -1
- package/dist/esm/mcp/utils.d.ts +33 -0
- package/dist/esm/mcp/utils.d.ts.map +1 -1
- package/dist/esm/mcp/utils.js +92 -0
- 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/subconscious/TheBrainV2.d.ts +43 -7
- package/dist/esm/subconscious/TheBrainV2.d.ts.map +1 -1
- package/dist/esm/subconscious/TheBrainV2.js +86 -57
- package/dist/esm/subconscious/TheBrainV2.js.map +1 -1
- package/dist/esm/subconscious/freshness/LocalFsResolver.d.ts +16 -0
- package/dist/esm/subconscious/freshness/LocalFsResolver.d.ts.map +1 -0
- package/dist/esm/subconscious/freshness/LocalFsResolver.js +67 -0
- package/dist/esm/subconscious/freshness/LocalFsResolver.js.map +1 -0
- package/dist/esm/subconscious/freshness/SuppliedEvidenceResolver.d.ts +23 -0
- package/dist/esm/subconscious/freshness/SuppliedEvidenceResolver.d.ts.map +1 -0
- package/dist/esm/subconscious/freshness/SuppliedEvidenceResolver.js +20 -0
- package/dist/esm/subconscious/freshness/SuppliedEvidenceResolver.js.map +1 -0
- package/dist/esm/subconscious/freshness/index.d.ts +10 -0
- package/dist/esm/subconscious/freshness/index.d.ts.map +1 -0
- package/dist/esm/subconscious/freshness/index.js +10 -0
- package/dist/esm/subconscious/freshness/index.js.map +1 -0
- package/dist/esm/utils/ProjectIdentity.d.ts +12 -0
- package/dist/esm/utils/ProjectIdentity.d.ts.map +1 -0
- package/dist/esm/utils/ProjectIdentity.js +37 -0
- package/dist/esm/utils/ProjectIdentity.js.map +1 -0
- package/dist/esm/utils/PromptPatternCache.d.ts.map +1 -1
- package/dist/esm/utils/PromptPatternCache.js +12 -2
- package/dist/esm/utils/PromptPatternCache.js.map +1 -1
- package/dist/esm/utils/RepeatGuard.d.ts.map +1 -1
- package/dist/esm/utils/RepeatGuard.js +10 -2
- package/dist/esm/utils/RepeatGuard.js.map +1 -1
- package/dist/esm/utils/StateHashCache.d.ts +5 -0
- package/dist/esm/utils/StateHashCache.d.ts.map +1 -1
- package/dist/esm/utils/StateHashCache.js +40 -16
- package/dist/esm/utils/StateHashCache.js.map +1 -1
- package/package.json +1 -1
- package/sdks/crewai/README.md +25 -0
- package/sdks/crewai/dist/index.d.ts +0 -130
- package/sdks/crewai/dist/index.js +0 -308
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Pool } from 'pg';
|
|
2
|
+
import { createApp } from './app.js';
|
|
3
|
+
import { FileBrainStore, PostgresBrainStore } from '../store/index.js';
|
|
4
|
+
import { InMemoryIdentityStore, PostgresIdentityStore, InMemoryRateLimiter, PostgresRateLimiter, PlanPolicy, TenantResolver, } from '../identity/index.js';
|
|
5
|
+
import { UsageLedger } from '../metering/index.js';
|
|
6
|
+
function buildDeps(options) {
|
|
7
|
+
const databaseUrl = options.databaseUrl ?? process.env.DATABASE_URL;
|
|
8
|
+
const policy = new PlanPolicy();
|
|
9
|
+
const usageLedger = new UsageLedger();
|
|
10
|
+
if (databaseUrl) {
|
|
11
|
+
const pool = new Pool({ connectionString: databaseUrl });
|
|
12
|
+
const identityStore = new PostgresIdentityStore(pool);
|
|
13
|
+
return {
|
|
14
|
+
store: new PostgresBrainStore(pool),
|
|
15
|
+
resolver: new TenantResolver(identityStore),
|
|
16
|
+
policy,
|
|
17
|
+
rateLimiter: new PostgresRateLimiter(pool),
|
|
18
|
+
usageLedger,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
const identityStore = new InMemoryIdentityStore();
|
|
22
|
+
return {
|
|
23
|
+
store: new FileBrainStore(),
|
|
24
|
+
resolver: new TenantResolver(identityStore),
|
|
25
|
+
policy,
|
|
26
|
+
rateLimiter: new InMemoryRateLimiter(),
|
|
27
|
+
usageLedger,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/** Starts the /v2 HTTP server. Resolves with the underlying `http.Server` once listening. */
|
|
31
|
+
export function startV2Server(options = {}) {
|
|
32
|
+
const port = options.port ?? parseInt(process.env.LEMMA_CLOUD_V2_PORT || '3200', 10);
|
|
33
|
+
const deps = buildDeps(options);
|
|
34
|
+
const app = createApp(deps);
|
|
35
|
+
return new Promise((resolve) => {
|
|
36
|
+
const server = app.listen(port, () => {
|
|
37
|
+
// eslint-disable-next-line no-console
|
|
38
|
+
console.log(`🚀 Lemma API v2 listening on port ${port}`);
|
|
39
|
+
resolve(server);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
export default startV2Server;
|
|
44
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../src/cloud/v2/server.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAgB,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACV,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAQ1C,SAAS,SAAS,CAAC,OAA6B;IAC9C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACpE,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;IAChC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAEtC,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC,CAAC;QACzD,MAAM,aAAa,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACtD,OAAO;YACL,KAAK,EAAE,IAAI,kBAAkB,CAAC,IAAI,CAAC;YACnC,QAAQ,EAAE,IAAI,cAAc,CAAC,aAAa,CAAC;YAC3C,MAAM;YACN,WAAW,EAAE,IAAI,mBAAmB,CAAC,IAAI,CAAC;YAC1C,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAClD,OAAO;QACL,KAAK,EAAE,IAAI,cAAc,EAAE;QAC3B,QAAQ,EAAE,IAAI,cAAc,CAAC,aAAa,CAAC;QAC3C,MAAM;QACN,WAAW,EAAE,IAAI,mBAAmB,EAAE;QACtC,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,aAAa,CAAC,UAAgC,EAAE;IAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;IACrF,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YACnC,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lemma API v2 — Wire types (Lane 0)
|
|
3
|
+
*
|
|
4
|
+
* The contract for the six /v2 routes. Frozen here so lanes C..K can implement
|
|
5
|
+
* against a stable shape and the TS SDK can generate identically-shaped clients.
|
|
6
|
+
*/
|
|
7
|
+
import type { Evidence } from './evidence.js';
|
|
8
|
+
/**
|
|
9
|
+
* Verifiability state of a memory or claim. This is the differentiator of the
|
|
10
|
+
* product and the fail-closed invariant lives here (see plan §0):
|
|
11
|
+
*
|
|
12
|
+
* fresh — every tracked path hashes identical to what was stored.
|
|
13
|
+
* stale — a tracked path hashed differently (with which files changed).
|
|
14
|
+
* unverified — the verifier cannot prove validity (client sent no current
|
|
15
|
+
* evidence, or omitted a tracked path). NEVER `fresh` by guess.
|
|
16
|
+
* contradicted — two stored claims about the same subject now diverge.
|
|
17
|
+
*/
|
|
18
|
+
export type MemoryState = 'fresh' | 'stale' | 'unverified' | 'contradicted';
|
|
19
|
+
/** One fact a memory asserts, self-contained. */
|
|
20
|
+
export interface MemoryClaim {
|
|
21
|
+
id: string;
|
|
22
|
+
text: string;
|
|
23
|
+
fileHashes?: Evidence['files'];
|
|
24
|
+
symbolHashes?: Evidence['symbols'];
|
|
25
|
+
symbolNormalizedHashes?: Evidence['symbolsNormalized'];
|
|
26
|
+
}
|
|
27
|
+
/** A worker result inside /v2/recall or /v2/verify. */
|
|
28
|
+
export interface VerifiedResult {
|
|
29
|
+
id: string;
|
|
30
|
+
state: MemoryState;
|
|
31
|
+
/** Paths (or `path::symbol`) that no longer hash the same, when stale. */
|
|
32
|
+
staleFiles?: string[];
|
|
33
|
+
/** Cosmetic-only changes ignored under semantic diff, when applicable. */
|
|
34
|
+
cosmeticChanges?: string[];
|
|
35
|
+
/** The original memory/claim payload, when the caller asked for it. */
|
|
36
|
+
memory?: unknown;
|
|
37
|
+
}
|
|
38
|
+
export interface CreateMemoryRequest {
|
|
39
|
+
claims: Array<{
|
|
40
|
+
text: string;
|
|
41
|
+
filePaths?: string[];
|
|
42
|
+
symbols?: Array<{
|
|
43
|
+
filePath: string;
|
|
44
|
+
symbolName: string;
|
|
45
|
+
}>;
|
|
46
|
+
}>;
|
|
47
|
+
evidence: Evidence;
|
|
48
|
+
/** Optional ids this memory was derived from (transitive freshness). */
|
|
49
|
+
derivedFrom?: string[];
|
|
50
|
+
}
|
|
51
|
+
export interface CreateMemoryResponse {
|
|
52
|
+
id: string;
|
|
53
|
+
claims: MemoryClaim[];
|
|
54
|
+
}
|
|
55
|
+
export interface RecallRequest {
|
|
56
|
+
query: string;
|
|
57
|
+
/** The client's current evidence for the candidate set, if it has any. */
|
|
58
|
+
currentEvidence?: Evidence;
|
|
59
|
+
limit?: number;
|
|
60
|
+
}
|
|
61
|
+
export interface RecallResponse {
|
|
62
|
+
results: VerifiedResult[];
|
|
63
|
+
query: string;
|
|
64
|
+
}
|
|
65
|
+
export interface VerifyRequest {
|
|
66
|
+
/** Ids whose freshness to resolve. */
|
|
67
|
+
ids: string[];
|
|
68
|
+
currentEvidence: Evidence;
|
|
69
|
+
}
|
|
70
|
+
export interface VerifyResponse {
|
|
71
|
+
results: VerifiedResult[];
|
|
72
|
+
}
|
|
73
|
+
/** Outcome of a batch forget. */
|
|
74
|
+
export interface ForgetResponse {
|
|
75
|
+
forged: string[];
|
|
76
|
+
}
|
|
77
|
+
export interface ScrubFinding {
|
|
78
|
+
type: string;
|
|
79
|
+
offset: number;
|
|
80
|
+
length: number;
|
|
81
|
+
}
|
|
82
|
+
export interface ScrubRequest {
|
|
83
|
+
text?: string;
|
|
84
|
+
toolCallJson?: string;
|
|
85
|
+
mode?: 'mask' | 'detect';
|
|
86
|
+
}
|
|
87
|
+
export interface ScrubResponse {
|
|
88
|
+
text?: string;
|
|
89
|
+
toolCallJson?: string;
|
|
90
|
+
findings: ScrubFinding[];
|
|
91
|
+
}
|
|
92
|
+
/** A single auditable usage number. Every value here is measured, never estimated. */
|
|
93
|
+
export interface UsageStat {
|
|
94
|
+
measurement: 'counted';
|
|
95
|
+
value: number;
|
|
96
|
+
}
|
|
97
|
+
export interface UsageResponse {
|
|
98
|
+
/** Keyed by metric name → counted value. */
|
|
99
|
+
metrics: Record<string, UsageStat>;
|
|
100
|
+
/** How many ledger events were excluded for lacking a reliable count. */
|
|
101
|
+
excludedEvents: number;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=api-v2.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-v2.types.d.ts","sourceRoot":"","sources":["../../../src/contracts/api-v2.types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,YAAY,GAAG,cAAc,CAAC;AAE5E,iDAAiD;AACjD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC/B,YAAY,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IACnC,sBAAsB,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;CACxD;AAED,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,WAAW,CAAC;IACnB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,0EAA0E;IAC1E,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAC;IACjH,QAAQ,EAAE,QAAQ,CAAC;IACnB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,eAAe,EAAE,QAAQ,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED,iCAAiC;AACjC,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,sFAAsF;AACtF,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,SAAS,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnC,yEAAyE;IACzE,cAAc,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-v2.types.js","sourceRoot":"","sources":["../../../src/contracts/api-v2.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lemma API v2 — Shared error types (Lane 0)
|
|
3
|
+
*
|
|
4
|
+
* Every failure that crosses the /v2 boundary is a LemmaApiError with a stable
|
|
5
|
+
* `code`, never a raw exception or a JS stack. Codes are contract — SDKs and
|
|
6
|
+
* clients branch on them, so they must not change across releases.
|
|
7
|
+
*/
|
|
8
|
+
/** Stable, machine-readable error codes exposed by the /v2 surface. */
|
|
9
|
+
export type LemmaErrorCode = 'unauthenticated' | 'invalid_request' | 'quota_exceeded' | 'not_found' | 'forbidden' | 'rate_limited' | 'not_implemented' | 'internal';
|
|
10
|
+
/**
|
|
11
|
+
* The single error type that crosses the API boundary. Carries a stable code, a
|
|
12
|
+
* human message and — where it does not leak internals — the offending field.
|
|
13
|
+
*/
|
|
14
|
+
export declare class LemmaApiError extends Error {
|
|
15
|
+
readonly code: LemmaErrorCode;
|
|
16
|
+
readonly status: number;
|
|
17
|
+
/** Offending field name, when the error is a validation failure. */
|
|
18
|
+
readonly field?: string;
|
|
19
|
+
/** Details destined for logs only, never for the client response. */
|
|
20
|
+
readonly internal?: unknown;
|
|
21
|
+
constructor(opts: {
|
|
22
|
+
code: LemmaErrorCode;
|
|
23
|
+
status: number;
|
|
24
|
+
message: string;
|
|
25
|
+
field?: string;
|
|
26
|
+
internal?: unknown;
|
|
27
|
+
});
|
|
28
|
+
toJSON(): Record<string, unknown>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Helper raising the "not implemented yet" signal. Lane 0 generates stubs for
|
|
32
|
+
* every lane file so the project compiles in any worktree; invoking a stub at
|
|
33
|
+
* runtime must never look like a real success, and must name the responsible
|
|
34
|
+
* lane so the integration chat can route the work.
|
|
35
|
+
*/
|
|
36
|
+
export declare class NotImplementedError extends Error {
|
|
37
|
+
readonly lane: string;
|
|
38
|
+
constructor(lane: string);
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/contracts/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,uEAAuE;AACvE,MAAM,MAAM,cAAc,GACtB,iBAAiB,GACjB,iBAAiB,GACjB,gBAAgB,GAChB,WAAW,GACX,WAAW,GACX,cAAc,GACd,iBAAiB,GACjB,UAAU,CAAC;AAEf;;;GAGG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,oEAAoE;IACpE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;gBAEhB,IAAI,EAAE;QAChB,IAAI,EAAE,cAAc,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB;IASD,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAUlC;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,IAAI,EAAE,MAAM;CAKzB"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lemma API v2 — Shared error types (Lane 0)
|
|
3
|
+
*
|
|
4
|
+
* Every failure that crosses the /v2 boundary is a LemmaApiError with a stable
|
|
5
|
+
* `code`, never a raw exception or a JS stack. Codes are contract — SDKs and
|
|
6
|
+
* clients branch on them, so they must not change across releases.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* The single error type that crosses the API boundary. Carries a stable code, a
|
|
10
|
+
* human message and — where it does not leak internals — the offending field.
|
|
11
|
+
*/
|
|
12
|
+
export class LemmaApiError extends Error {
|
|
13
|
+
constructor(opts) {
|
|
14
|
+
super(opts.message);
|
|
15
|
+
this.name = 'LemmaApiError';
|
|
16
|
+
this.code = opts.code;
|
|
17
|
+
this.status = opts.status;
|
|
18
|
+
this.field = opts.field;
|
|
19
|
+
this.internal = opts.internal;
|
|
20
|
+
}
|
|
21
|
+
toJSON() {
|
|
22
|
+
return {
|
|
23
|
+
error: {
|
|
24
|
+
code: this.code,
|
|
25
|
+
status: this.status,
|
|
26
|
+
message: this.message,
|
|
27
|
+
...(this.field ? { field: this.field } : {}),
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Helper raising the "not implemented yet" signal. Lane 0 generates stubs for
|
|
34
|
+
* every lane file so the project compiles in any worktree; invoking a stub at
|
|
35
|
+
* runtime must never look like a real success, and must name the responsible
|
|
36
|
+
* lane so the integration chat can route the work.
|
|
37
|
+
*/
|
|
38
|
+
export class NotImplementedError extends Error {
|
|
39
|
+
constructor(lane) {
|
|
40
|
+
super(`NotImplemented: lane ${lane} has not implemented this module yet`);
|
|
41
|
+
this.name = 'NotImplementedError';
|
|
42
|
+
this.lane = lane;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/contracts/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAQtC,YAAY,IAMX;QACC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,MAAM;QACJ,OAAO;YACL,KAAK,EAAE;gBACL,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7C;SACF,CAAC;IACJ,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAG5C,YAAY,IAAY;QACtB,KAAK,CAAC,wBAAwB,IAAI,sCAAsC,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lemma API v2 — Evidence & EvidenceResolver contract (Lane 0)
|
|
3
|
+
*
|
|
4
|
+
* Truth behind the product (see plan §0): freshness is computed by hashing the
|
|
5
|
+
* code a memory was recorded against. Local consumers hash the local filesystem
|
|
6
|
+
* (LocalFsResolver), cloud consumers send their own hashes (SuppliedEvidenceResolver).
|
|
7
|
+
* Both satisfy the same interface. The verifier only ever *compares* hashes — it
|
|
8
|
+
* never hashes on the server's behalf, because the server has no client filesystem.
|
|
9
|
+
*/
|
|
10
|
+
/** Hash of a whole file: path (as the client refers to it) → sha256 hex. */
|
|
11
|
+
export type FileHashes = Record<string, string>;
|
|
12
|
+
/** Hash pair for one symbol: key is `<path>::<symbolName>`. */
|
|
13
|
+
export type SymbolHashes = Record<string, string>;
|
|
14
|
+
/**
|
|
15
|
+
* The complete evidence bundle a client attaches when storing a memory and
|
|
16
|
+
* re-supplies when verifying. `files`/`symbols` are keyed by *relative* path as
|
|
17
|
+
* the client refers to them; the `branch`/`commit` fields let a verifier reason
|
|
18
|
+
* about cross-checkout freshness without re-reading disk.
|
|
19
|
+
*/
|
|
20
|
+
export interface Evidence {
|
|
21
|
+
files: FileHashes;
|
|
22
|
+
symbols: SymbolHashes;
|
|
23
|
+
/** Symbols hashed after stripping comments/whitespace (semantic diff). */
|
|
24
|
+
symbolsNormalized: SymbolHashes;
|
|
25
|
+
branch?: string;
|
|
26
|
+
commit?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Resolves the current evidence for a path/symbol.
|
|
30
|
+
*
|
|
31
|
+
* This is the seam that decouples the Brain from the local filesystem:
|
|
32
|
+
* - LocalFsResolver reads real files (MCP-local behaviour, byte for byte).
|
|
33
|
+
* - SuppliedEvidenceResolver consults a client-supplied `currentEvidence`
|
|
34
|
+
* mapping and FAILS CLOSED — a tracked path the client omitted resolves to
|
|
35
|
+
* `null`, which the verifier maps to `unverified`, never `fresh`.
|
|
36
|
+
*
|
|
37
|
+
* Methods resolve to `null` when evidence cannot be obtained. `null` is the
|
|
38
|
+
* fail-closed signal; callers must treat it as "cannot verify ⇒ not fresh".
|
|
39
|
+
*/
|
|
40
|
+
export interface EvidenceResolver {
|
|
41
|
+
/** sha256 of a whole file, or `null` if the file cannot be read/verified. */
|
|
42
|
+
hashFile(path: string): string | null;
|
|
43
|
+
/** Raw + normalized hash pair for a symbol, or `null` if it cannot be read. */
|
|
44
|
+
hashSymbol(path: string, symbolName: string): {
|
|
45
|
+
raw: string;
|
|
46
|
+
normalized: string;
|
|
47
|
+
} | null;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=evidence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../../src/contracts/evidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,4EAA4E;AAC5E,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEhD,+DAA+D;AAC/D,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAElD;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,YAAY,CAAC;IACtB,0EAA0E;IAC1E,iBAAiB,EAAE,YAAY,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACtC,+EAA+E;IAC/E,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC1F"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lemma API v2 — Evidence & EvidenceResolver contract (Lane 0)
|
|
3
|
+
*
|
|
4
|
+
* Truth behind the product (see plan §0): freshness is computed by hashing the
|
|
5
|
+
* code a memory was recorded against. Local consumers hash the local filesystem
|
|
6
|
+
* (LocalFsResolver), cloud consumers send their own hashes (SuppliedEvidenceResolver).
|
|
7
|
+
* Both satisfy the same interface. The verifier only ever *compares* hashes — it
|
|
8
|
+
* never hashes on the server's behalf, because the server has no client filesystem.
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=evidence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../../src/contracts/evidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lemma API v2 — Contracts barrel (Lane 0)
|
|
3
|
+
*
|
|
4
|
+
* Import everything the v2 lanes share from a single entry point.
|
|
5
|
+
*/
|
|
6
|
+
export * from './errors.js';
|
|
7
|
+
export * from './evidence.js';
|
|
8
|
+
export * from './store.js';
|
|
9
|
+
export * from './api-v2.types.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contracts/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lemma API v2 — Contracts barrel (Lane 0)
|
|
3
|
+
*
|
|
4
|
+
* Import everything the v2 lanes share from a single entry point.
|
|
5
|
+
*/
|
|
6
|
+
export * from './errors.js';
|
|
7
|
+
export * from './evidence.js';
|
|
8
|
+
export * from './store.js';
|
|
9
|
+
export * from './api-v2.types.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contracts/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lemma API v2 — BrainStore contract (Lane 0)
|
|
3
|
+
*
|
|
4
|
+
* The durable backing for the /v2 memory routes. Multi-tenant: every method is
|
|
5
|
+
* scoped by `tenantId` and every query MUST filter by it. A store that leaks one
|
|
6
|
+
* tenant's memories to another is a security failure, not a bug (Lane B tests it).
|
|
7
|
+
*
|
|
8
|
+
* Implementations: PostgresBrainStore (cloud, Lane B), FileBrainStore (wraps the
|
|
9
|
+
* local NDJSON brain, Lane B).
|
|
10
|
+
*/
|
|
11
|
+
export interface Candidate {
|
|
12
|
+
id: string;
|
|
13
|
+
score: number;
|
|
14
|
+
}
|
|
15
|
+
export interface BrainStore {
|
|
16
|
+
/** Persist a memory under `tenantId`; returns its id. */
|
|
17
|
+
put(tenantId: string, memory: unknown): Promise<string>;
|
|
18
|
+
/** Fetch one memory by id, scoped to the tenant. Resolves null if not owned. */
|
|
19
|
+
get(tenantId: string, id: string): Promise<unknown | null>;
|
|
20
|
+
/**
|
|
21
|
+
* Ranked candidates by BM25-style relevance for a query, scoped to the tenant.
|
|
22
|
+
* Must stay under the contractual p95 budget for the lane's backing impl.
|
|
23
|
+
*/
|
|
24
|
+
searchCandidates(tenantId: string, query: string, limit: number): Promise<Candidate[]>;
|
|
25
|
+
/** Fetch many memories by id in one round trip; results scoped to the tenant. */
|
|
26
|
+
listByIds(tenantId: string, ids: string[]): Promise<Map<string, unknown>>;
|
|
27
|
+
/** Hard delete (forget), scoped to the tenant. */
|
|
28
|
+
delete(tenantId: string, id: string): Promise<boolean>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/contracts/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,yDAAyD;IACzD,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAExD,gFAAgF;IAChF,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAE3D;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAEvF,iFAAiF;IACjF,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1E,kDAAkD;IAClD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACxD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/contracts/store.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface CognitiveDomain {
|
|
2
|
+
domain: string;
|
|
3
|
+
files: string[];
|
|
4
|
+
patterns: string[];
|
|
5
|
+
knownBugs: string[];
|
|
6
|
+
decisions: string[];
|
|
7
|
+
symbols: string[];
|
|
8
|
+
}
|
|
9
|
+
export interface CognitiveMapSchema {
|
|
10
|
+
workspace: string;
|
|
11
|
+
lastBuilt: string;
|
|
12
|
+
nodes: Record<string, CognitiveDomain>;
|
|
13
|
+
}
|
|
14
|
+
export declare const COG_MAP_FILE: string;
|
|
15
|
+
/**
|
|
16
|
+
* Best-effort domain for a repo-relative file path, so store_memory and the test-oracle
|
|
17
|
+
* auto-store below don't require a human to type `domain` by hand every time.
|
|
18
|
+
*
|
|
19
|
+
* Prefers the persisted Cognitive Map (built via `cognitive_map` action "build") when it
|
|
20
|
+
* has this exact file listed — that reflects an actual workspace scan. Falls back to the
|
|
21
|
+
* same lightweight substring heuristic "build" uses, so a project that never ran "build"
|
|
22
|
+
* still gets a reasonable tag instead of none at all. Returns undefined rather than
|
|
23
|
+
* "general" when nothing matches — an absent domain stays visible to every domain-scoped
|
|
24
|
+
* search (see BrainEntry.domain), while a wrong guess would actively mislead one.
|
|
25
|
+
*/
|
|
26
|
+
export declare function deriveDomainForFile(relPath: string): string | undefined;
|
|
27
|
+
//# sourceMappingURL=cognitiveMap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cognitiveMap.d.ts","sourceRoot":"","sources":["../../../src/mcp/cognitiveMap.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CACxC;AAED,eAAO,MAAM,YAAY,QAA0D,CAAC;AAEpF;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAkBvE"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import os from "os";
|
|
3
|
+
import path from "path";
|
|
4
|
+
export const COG_MAP_FILE = path.join(os.homedir(), ".lemma-cache", "cog_map.json");
|
|
5
|
+
/**
|
|
6
|
+
* Best-effort domain for a repo-relative file path, so store_memory and the test-oracle
|
|
7
|
+
* auto-store below don't require a human to type `domain` by hand every time.
|
|
8
|
+
*
|
|
9
|
+
* Prefers the persisted Cognitive Map (built via `cognitive_map` action "build") when it
|
|
10
|
+
* has this exact file listed — that reflects an actual workspace scan. Falls back to the
|
|
11
|
+
* same lightweight substring heuristic "build" uses, so a project that never ran "build"
|
|
12
|
+
* still gets a reasonable tag instead of none at all. Returns undefined rather than
|
|
13
|
+
* "general" when nothing matches — an absent domain stays visible to every domain-scoped
|
|
14
|
+
* search (see BrainEntry.domain), while a wrong guess would actively mislead one.
|
|
15
|
+
*/
|
|
16
|
+
export function deriveDomainForFile(relPath) {
|
|
17
|
+
const norm = relPath.replace(/^\//, "");
|
|
18
|
+
if (fs.existsSync(COG_MAP_FILE)) {
|
|
19
|
+
try {
|
|
20
|
+
const map = JSON.parse(fs.readFileSync(COG_MAP_FILE, "utf8"));
|
|
21
|
+
for (const node of Object.values(map.nodes || {})) {
|
|
22
|
+
if (node.files.includes(norm))
|
|
23
|
+
return node.domain;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
catch { /* fall through to heuristic */ }
|
|
27
|
+
}
|
|
28
|
+
if (norm.includes("mcp"))
|
|
29
|
+
return "mcp";
|
|
30
|
+
if (norm.includes("subconscious") || norm.includes("brain"))
|
|
31
|
+
return "memory";
|
|
32
|
+
if (norm.includes("security") || norm.includes("scrubber"))
|
|
33
|
+
return "security";
|
|
34
|
+
if (norm.includes("pr-review"))
|
|
35
|
+
return "pr-review";
|
|
36
|
+
if (norm.includes("utils"))
|
|
37
|
+
return "utils";
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=cognitiveMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cognitiveMap.js","sourceRoot":"","sources":["../../../src/mcp/cognitiveMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAkBxB,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;AAEpF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAExC,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,GAAG,GAAuB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;YAClF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;gBAClD,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAE,OAAO,IAAI,CAAC,MAAM,CAAC;YACpD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,+BAA+B,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7E,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IAC9E,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC;IACnD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC3C,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-profiles.d.ts","sourceRoot":"","sources":["../../../src/mcp/tool-profiles.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnD;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,EA8BnC,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-profiles.d.ts","sourceRoot":"","sources":["../../../src/mcp/tool-profiles.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnD;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,EA8BnC,CAAC;AAsHF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,UAAoE,CAAC;AAkBnG,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;IAC7D,OAAO,EAAE,WAAW,CAAC;IACrB,wCAAwC;IACxC,UAAU,EAAE,CAAC,EAAE,CAAC;IAChB,uFAAuF;IACvF,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,oDAAoD;IACpD,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACxC;AAED,wBAAgB,kBAAkB,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EACjF,cAAc,EAAE,CAAC,EAAE,EACnB,GAAG,GAAE,MAAsB,EAC3B,OAAO,GAAE,cAAmB,GAC3B,mBAAmB,CAAC,CAAC,CAAC,CAqDxB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACrD,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAuDR"}
|
|
@@ -70,7 +70,52 @@ function roiPromotedTools(cwd, alreadyAllowed) {
|
|
|
70
70
|
return [];
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
|
|
73
|
+
/** True if any of the given paths (relative to cwd) exists. Cheap: stat calls only, no reads. */
|
|
74
|
+
function anyPathExists(cwd, relPaths) {
|
|
75
|
+
return relPaths.some((rel) => {
|
|
76
|
+
try {
|
|
77
|
+
return fs.existsSync(path.join(cwd, rel));
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Repo-detectable situational groups. Deliberately narrow: each one is gated on a signal
|
|
86
|
+
* specific enough that a false positive is rare (unlike `.git`, which every repo has — see
|
|
87
|
+
* REVIEW_TOOL_NAMES above for why that one stays out of auto-detection entirely). A tool
|
|
88
|
+
* belongs here only when its own description ties it to exactly this kind of project; when
|
|
89
|
+
* detection would be `.git`-broad or session-mode-dependent instead of repo-evidence-based,
|
|
90
|
+
* it stays reachable through `lemma_toolbox` (or ROI promotion) rather than getting a group.
|
|
91
|
+
*/
|
|
92
|
+
const TOOL_GROUPS = [
|
|
93
|
+
{
|
|
94
|
+
name: "typescript-static-analysis",
|
|
95
|
+
// All four: TypeScript Compiler API, zero LLM cost, "essential before a refactor" class
|
|
96
|
+
// of tool — genuinely useless without a tsconfig.json to compile against.
|
|
97
|
+
tools: ["depgraph", "dead_export_necromancer", "type_coverage_report", "entropy_score"],
|
|
98
|
+
applies: (cwd) => fs.existsSync(path.join(cwd, "tsconfig.json")),
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: "database-migrations",
|
|
102
|
+
tools: ["schema_extract", "migration_tracer"],
|
|
103
|
+
applies: (cwd) => anyPathExists(cwd, [
|
|
104
|
+
"drizzle.config.ts",
|
|
105
|
+
"drizzle.config.js",
|
|
106
|
+
"prisma/schema.prisma",
|
|
107
|
+
"migrations",
|
|
108
|
+
]),
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: "env-snapshot",
|
|
112
|
+
tools: ["env_snapshot"],
|
|
113
|
+
// A project that documents its env vars is one where "what env state does this run
|
|
114
|
+
// against" is a real recurring question — .env.example without a matching .env would
|
|
115
|
+
// false-positive on nothing (the tool itself hides values either way).
|
|
116
|
+
applies: (cwd) => fs.existsSync(path.join(cwd, ".env.example")),
|
|
117
|
+
},
|
|
118
|
+
];
|
|
74
119
|
/**
|
|
75
120
|
* Infra tools (Jenkins/OKD/Terraform) are still under active development — half-finished
|
|
76
121
|
* error handling, no elicitation guard on the genuinely destructive ones (terraform_apply,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-profiles.js","sourceRoot":"","sources":["../../../src/mcp/tool-profiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAsBjD;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAa;IACvC,8BAA8B;IAC9B,qBAAqB;IACrB,oBAAoB;IACpB,kBAAkB;IAClB,kBAAkB;IAClB,uBAAuB;IACvB,eAAe;IACf,oDAAoD;IACpD,uBAAuB;IACvB,sBAAsB;IACtB,uBAAuB;IACvB,qBAAqB;IACrB,wBAAwB;IACxB,wCAAwC;IACxC,kBAAkB;IAClB,6BAA6B;IAC7B,wBAAwB;IACxB,oFAAoF;IACpF,uCAAuC;IACvC,gBAAgB;IAChB,6CAA6C;IAC7C,kBAAkB;IAClB,eAAe;IACf,eAAe;IACf,cAAc;IACd,eAAe;IACf,uBAAuB;IACvB,eAAe;IACf,oBAAoB;CACrB,CAAC;AAaF;;;;;;;;;;GAUG;AACH,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAClC,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAE1C,SAAS,gBAAgB,CAAC,GAAW,EAAE,cAA2B;IAChE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACvC,IAAI,CAAC,CAAC,KAAK,GAAG,uBAAuB;gBAAE,SAAS;YAChD,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;YAC1C,IAAI,GAAG,IAAI,4BAA4B;gBAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,6EAA6E;QAC7E,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,WAAW,GAAgB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-profiles.js","sourceRoot":"","sources":["../../../src/mcp/tool-profiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared MCP tool types — split out so per-domain tool modules (./tools/*.ts) and the
|
|
3
|
+
* main tools.ts registry can both declare ToolDefinition[]/handler maps without one
|
|
4
|
+
* importing the other.
|
|
5
|
+
*/
|
|
6
|
+
export type ToolHandler = (args: Record<string, any>) => Promise<Record<string, any>>;
|
|
7
|
+
/**
|
|
8
|
+
* Hints only (per spec: "Clients should never make tool use decisions based on
|
|
9
|
+
* ToolAnnotations received from untrusted servers") — but a well-behaved client uses
|
|
10
|
+
* them to skip confirmation friction on safe tools and add it on risky ones, which is
|
|
11
|
+
* exactly what tryElicitConfirmation (see ./utils) does server-side for the riskiest tools.
|
|
12
|
+
* Unset fields fall back to the spec defaults: readOnlyHint=false, destructiveHint=true,
|
|
13
|
+
* idempotentHint=false, openWorldHint=true — so only non-default values need stating.
|
|
14
|
+
*/
|
|
15
|
+
export interface ToolAnnotations {
|
|
16
|
+
readOnlyHint?: boolean;
|
|
17
|
+
destructiveHint?: boolean;
|
|
18
|
+
idempotentHint?: boolean;
|
|
19
|
+
openWorldHint?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface ToolDefinition {
|
|
22
|
+
name: string;
|
|
23
|
+
description: string;
|
|
24
|
+
inputSchema: {
|
|
25
|
+
type: string;
|
|
26
|
+
properties?: Record<string, any>;
|
|
27
|
+
required?: string[];
|
|
28
|
+
};
|
|
29
|
+
outputSchema?: {
|
|
30
|
+
type: string;
|
|
31
|
+
properties?: Record<string, any>;
|
|
32
|
+
required?: string[];
|
|
33
|
+
};
|
|
34
|
+
annotations?: ToolAnnotations;
|
|
35
|
+
execution?: {
|
|
36
|
+
taskSupport: "optional" | "required";
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=toolTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolTypes.d.ts","sourceRoot":"","sources":["../../../src/mcp/toolTypes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AAEtF;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACjC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,YAAY,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACjC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,WAAW,CAAC,EAAE,eAAe,CAAC;IAM9B,SAAS,CAAC,EAAE;QAAE,WAAW,EAAE,UAAU,GAAG,UAAU,CAAA;KAAE,CAAC;CACtD"}
|