@nxuss/lemma 1.17.0 → 1.18.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/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/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/tools.d.ts +2 -0
- package/dist/cjs/mcp/tools.d.ts.map +1 -1
- package/dist/cjs/mcp/tools.js +40 -21
- package/dist/cjs/mcp/tools.js.map +1 -1
- 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/api/dashboardRoutes.d.ts +3 -3
- package/dist/esm/api/dashboardRoutes.js +1 -1
- package/dist/esm/api/server.d.ts +4 -4
- package/dist/esm/api/server.js +3 -3
- package/dist/esm/autopilot/AutopilotWatcher.js +3 -3
- package/dist/esm/autopilot/Notifier.d.ts +1 -1
- package/dist/esm/cli/lemma-proxy.d.ts.map +1 -1
- package/dist/esm/cli/lemma-proxy.js +33 -25
- package/dist/esm/cli/lemma-proxy.js.map +1 -1
- package/dist/esm/cli/stack.d.ts +4 -4
- package/dist/esm/cli/stack.js +5 -5
- package/dist/esm/cloud/KeyManager.d.ts +1 -1
- package/dist/esm/cloud/KeyManager.js +1 -1
- package/dist/esm/cloud/TenantCache.d.ts +1 -1
- package/dist/esm/cloud/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/index.d.ts +3 -3
- package/dist/esm/cloud/index.js +3 -3
- 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/server.d.ts +3 -3
- package/dist/esm/cloud/server.js +5 -5
- 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/config/index.d.ts +1 -1
- package/dist/esm/config/index.js +1 -1
- package/dist/esm/consensus/index.d.ts +2 -2
- package/dist/esm/consensus/index.js +2 -2
- package/dist/esm/contracts/api-v2.types.d.ts +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/core/AgentRegistry.d.ts +1 -1
- package/dist/esm/core/AgentRegistry.js +1 -1
- package/dist/esm/core/DashboardBroadcaster.d.ts +3 -3
- package/dist/esm/core/DashboardBroadcaster.js +2 -2
- package/dist/esm/core/DashboardWebSocketServer.d.ts +1 -1
- package/dist/esm/core/DashboardWebSocketServer.js +1 -1
- package/dist/esm/core/GhostAlchemist.js +1 -1
- package/dist/esm/core/GhostListener.js +2 -2
- package/dist/esm/core/OrchestrationEngine.d.ts +3 -3
- package/dist/esm/core/OrchestrationEngine.js +2 -2
- package/dist/esm/core/SubconsciousEngine.d.ts +1 -1
- package/dist/esm/core/SubconsciousEngine.js +2 -2
- package/dist/esm/core/WebSocketServer.d.ts +2 -2
- package/dist/esm/core/WebSocketServer.js +1 -1
- package/dist/esm/core/index.d.ts +6 -6
- package/dist/esm/core/index.js +6 -6
- package/dist/esm/core/router.d.ts +3 -3
- package/dist/esm/core/router.js +1 -1
- package/dist/esm/db/database.js +1 -1
- package/dist/esm/embed.d.ts +2 -2
- package/dist/esm/embed.js +2 -2
- package/dist/esm/examples/basic-usage.js +1 -1
- package/dist/esm/index.d.ts +14 -14
- package/dist/esm/index.js +14 -14
- package/dist/esm/infra/analyzers/DriftDetector.d.ts +1 -1
- package/dist/esm/infra/analyzers/InfraAnalyzer.d.ts +1 -1
- package/dist/esm/infra/analyzers/MonolithAnalyzer.d.ts +1 -1
- package/dist/esm/infra/analyzers/index.d.ts +3 -3
- package/dist/esm/infra/analyzers/index.js +3 -3
- package/dist/esm/infra/cli.js +2 -2
- package/dist/esm/infra/config.d.ts +1 -1
- package/dist/esm/infra/index.d.ts +5 -5
- package/dist/esm/infra/index.js +5 -5
- package/dist/esm/infra/mcp-tools.js +5 -5
- package/dist/esm/infra/providers/InfraProvider.d.ts +1 -1
- package/dist/esm/infra/providers/JenkinsProvider.d.ts +2 -2
- package/dist/esm/infra/providers/OKDProvider.d.ts +2 -2
- package/dist/esm/infra/providers/TerraformProvider.d.ts +2 -2
- package/dist/esm/infra/providers/index.d.ts +5 -5
- package/dist/esm/infra/providers/index.js +3 -3
- package/dist/esm/mcp/index.js +5 -5
- package/dist/esm/mcp/prompts.js +1 -1
- package/dist/esm/mcp/resources.js +2 -2
- package/dist/esm/mcp/tasks.js +1 -1
- package/dist/esm/mcp/tool-profiles.d.ts.map +1 -1
- package/dist/esm/mcp/tool-profiles.js +47 -2
- package/dist/esm/mcp/tool-profiles.js.map +1 -1
- 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 +87 -69
- package/dist/esm/mcp/tools.js.map +1 -1
- package/dist/esm/observability/IdeContextSync.d.ts +1 -1
- package/dist/esm/observability/IdeContextSync.js +5 -5
- package/dist/esm/pr-review/PRReviewEngine.d.ts +1 -1
- package/dist/esm/pr-review/PRReviewEngine.js +4 -4
- package/dist/esm/pr-review/ReviewStore.d.ts +1 -1
- package/dist/esm/pr-review/adapters/AzureDevOpsAdapter.d.ts +2 -2
- package/dist/esm/pr-review/adapters/AzureDevOpsAdapter.js +1 -1
- package/dist/esm/pr-review/adapters/GitHubAdapter.d.ts +2 -2
- package/dist/esm/pr-review/adapters/GitHubAdapter.js +1 -1
- package/dist/esm/pr-review/adapters/GitLabAdapter.d.ts +2 -2
- package/dist/esm/pr-review/adapters/GitLabAdapter.js +1 -1
- package/dist/esm/pr-review/adapters/GitPlatformAdapter.d.ts +1 -1
- package/dist/esm/pr-review/adapters/index.d.ts +4 -4
- package/dist/esm/pr-review/adapters/index.js +3 -3
- package/dist/esm/pr-review/analyzers/QualityGrader.d.ts +1 -1
- package/dist/esm/pr-review/analyzers/RegressionDetector.d.ts +1 -1
- package/dist/esm/pr-review/analyzers/SecurityScanner.d.ts +1 -1
- package/dist/esm/pr-review/analyzers/StaticAnalyzer.d.ts +1 -1
- package/dist/esm/pr-review/analyzers/index.d.ts +8 -8
- package/dist/esm/pr-review/analyzers/index.js +4 -4
- package/dist/esm/pr-review/bridge/BrainBridge.d.ts +1 -1
- package/dist/esm/pr-review/bridge/BrainBridge.js +1 -1
- package/dist/esm/pr-review/bridge/index.d.ts +1 -1
- package/dist/esm/pr-review/bridge/index.js +1 -1
- package/dist/esm/pr-review/index.d.ts +4 -4
- package/dist/esm/pr-review/index.js +2 -2
- package/dist/esm/pr-review/reviewRunner.d.ts +2 -2
- package/dist/esm/pr-review/reviewRunner.js +6 -6
- package/dist/esm/pr-review/webhook/WebhookServer.js +1 -1
- package/dist/esm/pr-review/webhook/index.d.ts +1 -1
- package/dist/esm/pr-review/webhook/index.js +1 -1
- package/dist/esm/protocol/flows.d.ts +1 -1
- package/dist/esm/protocol/flows.js +1 -1
- package/dist/esm/protocol/index.d.ts +4 -4
- package/dist/esm/protocol/index.js +4 -4
- package/dist/esm/protocol/utils.d.ts +1 -1
- package/dist/esm/protocol/utils.js +2 -2
- package/dist/esm/protocol/validators.d.ts +1 -1
- package/dist/esm/protocol/validators.js +1 -1
- package/dist/esm/proxy/ContextInjector.d.ts +1 -1
- package/dist/esm/proxy/Gatekeeper.d.ts +1 -1
- package/dist/esm/security/SecurityMiddleware.d.ts +1 -1
- package/dist/esm/security/SecurityMiddleware.js +3 -3
- package/dist/esm/security/index.d.ts +4 -4
- package/dist/esm/security/index.js +4 -4
- package/dist/esm/speculative/SpeculativeCache.d.ts +2 -2
- package/dist/esm/speculative/SpeculativeEngine.d.ts +2 -2
- package/dist/esm/speculative/SpeculativeEngine.js +3 -3
- package/dist/esm/speculative/WorkerPool.d.ts +1 -1
- package/dist/esm/speculative/index.d.ts +4 -4
- package/dist/esm/speculative/index.js +4 -4
- package/dist/esm/subconscious/GitIngest.d.ts +1 -1
- package/dist/esm/subconscious/GitIngest.js +1 -1
- package/dist/esm/subconscious/SemanticCache.d.ts +2 -2
- package/dist/esm/subconscious/SemanticCache.js +2 -2
- package/dist/esm/subconscious/SubconsciousEngine.d.ts +1 -1
- package/dist/esm/subconscious/SubconsciousEngine.js +3 -3
- package/dist/esm/subconscious/TheBrainV2.d.ts +43 -7
- package/dist/esm/subconscious/TheBrainV2.d.ts.map +1 -1
- package/dist/esm/subconscious/TheBrainV2.js +87 -58
- 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/subconscious/index.d.ts +4 -4
- package/dist/esm/subconscious/index.js +4 -4
- package/dist/esm/utils/AffectedTests.js +1 -1
- package/dist/esm/utils/AutoContextBundle.d.ts +1 -1
- package/dist/esm/utils/AutoContextBundle.js +4 -4
- package/dist/esm/utils/BulkFileDigest.js +2 -2
- package/dist/esm/utils/ClipboardWatcher.js +2 -2
- package/dist/esm/utils/ContextCollapser.js +1 -1
- package/dist/esm/utils/ConversationCheckpoint.js +1 -1
- package/dist/esm/utils/ExecutiveReport.js +1 -1
- package/dist/esm/utils/OutputLedger.js +2 -2
- 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/ReadWorkspaceCache.js +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/SpeculativeWarmer.d.ts +1 -1
- package/dist/esm/utils/SpeculativeWarmer.js +2 -2
- 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/dist/esm/utils/StructuralSearch.d.ts +1 -1
- package/dist/esm/utils/SurgicalASTInsert.js +1 -1
- package/dist/esm/utils/SymbolSurgicalContext.js +1 -1
- package/dist/esm/utils/TestAutofixInterceptor.js +1 -1
- package/dist/esm/utils/WorkspaceSearch.js +0 -0
- package/dist/esm/utils/logger.js +1 -1
- package/dist/esm/utils/reportSavings.js +1 -1
- package/package.json +1 -1
- package/sdks/crewai/README.md +25 -0
- package/dist/cjs/package.json +0 -3
- package/dist/esm/package.json +0 -3
- package/sdks/crewai/dist/index.d.ts +0 -130
- package/sdks/crewai/dist/index.js +0 -308
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PostgresBrainStore = void 0;
|
|
4
|
+
exports.normalizeMemory = normalizeMemory;
|
|
5
|
+
const crypto_1 = require("crypto");
|
|
6
|
+
const errors_1 = require("../../contracts/errors");
|
|
7
|
+
const TheBrainV2_1 = require("../../subconscious/TheBrainV2");
|
|
8
|
+
function isRecord(v) {
|
|
9
|
+
return typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
10
|
+
}
|
|
11
|
+
/** Genera un id al estilo del Brain local: sha1 12-hex, con sal aleatoria. */
|
|
12
|
+
function generateId(query) {
|
|
13
|
+
const queryKey = query.trim().toLowerCase().substring(0, 200);
|
|
14
|
+
return (0, crypto_1.createHash)('sha1')
|
|
15
|
+
.update(queryKey + Date.now() + (0, crypto_1.randomBytes)(8).toString('hex'))
|
|
16
|
+
.digest('hex')
|
|
17
|
+
.substring(0, 12);
|
|
18
|
+
}
|
|
19
|
+
/** Texto del que se derivan los términos de búsqueda: query + response + claims. */
|
|
20
|
+
function searchableText(m) {
|
|
21
|
+
const parts = [m.query, m.response];
|
|
22
|
+
if (Array.isArray(m.claims)) {
|
|
23
|
+
for (const c of m.claims)
|
|
24
|
+
if (typeof c?.text === 'string')
|
|
25
|
+
parts.push(c.text);
|
|
26
|
+
}
|
|
27
|
+
return parts.filter((p) => typeof p === 'string' && p.length > 0).join(' ');
|
|
28
|
+
}
|
|
29
|
+
/** Normaliza una memoria arbitraria a la forma persistible, enriqueciéndola con
|
|
30
|
+
* termes/termFreq si no venía de un Brain que ya las computara. */
|
|
31
|
+
function normalizeMemory(memory) {
|
|
32
|
+
const m = isRecord(memory) ? memory : {};
|
|
33
|
+
const query = typeof m.query === 'string' ? m.query : '';
|
|
34
|
+
const response = typeof m.response === 'string' ? m.response : '';
|
|
35
|
+
const terms = Array.isArray(m.terms) && m.terms.length > 0
|
|
36
|
+
? [...new Set(m.terms.filter((t) => typeof t === 'string'))]
|
|
37
|
+
: (0, TheBrainV2_1.tokenize)(searchableText(m));
|
|
38
|
+
const termFreq = isRecord(m.termFreq) ? m.termFreq : (0, TheBrainV2_1.termFrequencies)(terms);
|
|
39
|
+
const projectId = typeof m.projectId === 'string' ? m.projectId : null;
|
|
40
|
+
const id = typeof m.id === 'string' && m.id.length > 0 ? m.id : generateId(query || response || Math.random().toString(36));
|
|
41
|
+
const payload = {
|
|
42
|
+
...(isRecord(memory) ? memory : {}),
|
|
43
|
+
id,
|
|
44
|
+
query,
|
|
45
|
+
response,
|
|
46
|
+
terms,
|
|
47
|
+
termFreq,
|
|
48
|
+
};
|
|
49
|
+
return { id, query, response, projectId, terms, termFreq, payload };
|
|
50
|
+
}
|
|
51
|
+
const PUT_SQL = `
|
|
52
|
+
INSERT INTO memories (id, tenant_id, project_id, query, response, payload, terms)
|
|
53
|
+
VALUES ($1, $2, $3, $4, $5, $6::jsonb, $7::text[])
|
|
54
|
+
ON CONFLICT (id, tenant_id) DO UPDATE SET
|
|
55
|
+
payload = EXCLUDED.payload,
|
|
56
|
+
terms = EXCLUDED.terms,
|
|
57
|
+
query = EXCLUDED.query,
|
|
58
|
+
response = EXCLUDED.response,
|
|
59
|
+
project_id = EXCLUDED.project_id,
|
|
60
|
+
updated_at = now()
|
|
61
|
+
`;
|
|
62
|
+
const GET_SQL = `
|
|
63
|
+
SELECT payload FROM memories
|
|
64
|
+
WHERE tenant_id = $1 AND id = $2
|
|
65
|
+
LIMIT 1
|
|
66
|
+
`;
|
|
67
|
+
const LIST_BY_IDS_SQL = `
|
|
68
|
+
SELECT id, payload FROM memories
|
|
69
|
+
WHERE tenant_id = $1 AND id = ANY($2::text[])
|
|
70
|
+
`;
|
|
71
|
+
const SEARCH_CANDIDATES_SQL = `
|
|
72
|
+
WITH q AS (
|
|
73
|
+
SELECT to_tsquery('simple', array_to_string($2::text[], ' | ')) AS tq
|
|
74
|
+
)
|
|
75
|
+
SELECT m.id AS id,
|
|
76
|
+
ts_rank_cd(array_to_tsvector(m.terms), q.tq)::numeric AS score
|
|
77
|
+
FROM memories m, q
|
|
78
|
+
WHERE m.tenant_id = $1
|
|
79
|
+
AND array_to_tsvector(m.terms) @@ q.tq
|
|
80
|
+
ORDER BY score DESC
|
|
81
|
+
LIMIT $3::int
|
|
82
|
+
`;
|
|
83
|
+
class PostgresBrainStore {
|
|
84
|
+
constructor(pool, opts = {}) {
|
|
85
|
+
this.pool = pool;
|
|
86
|
+
this.opts = opts;
|
|
87
|
+
this.lane = 'B';
|
|
88
|
+
}
|
|
89
|
+
async put(tenantId, memory) {
|
|
90
|
+
const { id, query, response, projectId, terms, termFreq, payload } = normalizeMemory(memory);
|
|
91
|
+
const m = isRecord(memory) ? memory : {};
|
|
92
|
+
const claims = Array.isArray(m.claims) ? m.claims.filter((c) => isRecord(c)) : [];
|
|
93
|
+
const evidence = [];
|
|
94
|
+
const collect = (kind, hashes) => {
|
|
95
|
+
if (!hashes)
|
|
96
|
+
return;
|
|
97
|
+
for (const [target, h] of Object.entries(hashes)) {
|
|
98
|
+
if (typeof h === 'string')
|
|
99
|
+
evidence.push({ kind, target, hash: h });
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
collect('file', m.fileHashes);
|
|
103
|
+
collect('symbol', m.symbolHashes);
|
|
104
|
+
collect('symbol_normalized', m.symbolNormalizedHashes);
|
|
105
|
+
const derivedFrom = Array.isArray(m.derivedFrom)
|
|
106
|
+
? m.derivedFrom.filter((d) => typeof d === 'string')
|
|
107
|
+
: [];
|
|
108
|
+
const client = await this.pool.connect();
|
|
109
|
+
try {
|
|
110
|
+
await client.query('BEGIN');
|
|
111
|
+
await client.query(PUT_SQL, [id, tenantId, projectId, query, response, JSON.stringify(payload), terms]);
|
|
112
|
+
await client.query('DELETE FROM claims WHERE tenant_id = $1 AND memory_id = $2', [tenantId, id]);
|
|
113
|
+
for (const c of claims) {
|
|
114
|
+
const cid = typeof c.id === 'string' && c.id ? c.id : generateId(c.text || Math.random().toString(36));
|
|
115
|
+
await client.query('INSERT INTO claims (id, memory_id, tenant_id, text, payload) VALUES ($1, $2, $3, $4, $5::jsonb)', [cid, id, tenantId, typeof c.text === 'string' ? c.text : '', JSON.stringify(c)]);
|
|
116
|
+
}
|
|
117
|
+
await client.query('DELETE FROM evidence_hashes WHERE tenant_id = $1 AND memory_id = $2', [tenantId, id]);
|
|
118
|
+
for (const e of evidence) {
|
|
119
|
+
await client.query('INSERT INTO evidence_hashes (tenant_id, memory_id, kind, target, hash) VALUES ($1, $2, $3, $4, $5)', [tenantId, id, e.kind, e.target, e.hash]);
|
|
120
|
+
}
|
|
121
|
+
await client.query('DELETE FROM memory_edges WHERE tenant_id = $1 AND memory_id = $2', [tenantId, id]);
|
|
122
|
+
for (const dep of derivedFrom) {
|
|
123
|
+
await client.query('INSERT INTO memory_edges (tenant_id, memory_id, derived_from) VALUES ($1, $2, $3)', [tenantId, id, dep]);
|
|
124
|
+
}
|
|
125
|
+
await client.query('COMMIT');
|
|
126
|
+
return id;
|
|
127
|
+
}
|
|
128
|
+
catch (err) {
|
|
129
|
+
await client.query('ROLLBACK');
|
|
130
|
+
throw new errors_1.LemmaApiError({ code: 'internal', status: 500, message: 'Failed to store memory', internal: err });
|
|
131
|
+
}
|
|
132
|
+
finally {
|
|
133
|
+
client.release();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
async get(tenantId, id) {
|
|
137
|
+
const { rows } = await this.pool.query(GET_SQL, [tenantId, id]);
|
|
138
|
+
if (rows.length === 0)
|
|
139
|
+
return null;
|
|
140
|
+
return rows[0].payload;
|
|
141
|
+
}
|
|
142
|
+
async searchCandidates(tenantId, query, limit) {
|
|
143
|
+
const terms = (0, TheBrainV2_1.tokenize)(query);
|
|
144
|
+
if (terms.length === 0)
|
|
145
|
+
return [];
|
|
146
|
+
const safeLimit = Math.max(1, Math.min(Math.trunc(limit) || 10, this.opts.maxCandidates ?? 100));
|
|
147
|
+
const { rows } = await this.pool.query(SEARCH_CANDIDATES_SQL, [tenantId, terms, safeLimit]);
|
|
148
|
+
return rows.map((r) => ({ id: r.id, score: Number(r.score) }));
|
|
149
|
+
}
|
|
150
|
+
async listByIds(tenantId, ids) {
|
|
151
|
+
if (ids.length === 0)
|
|
152
|
+
return new Map();
|
|
153
|
+
const { rows } = await this.pool.query(LIST_BY_IDS_SQL, [tenantId, ids]);
|
|
154
|
+
const out = new Map();
|
|
155
|
+
for (const r of rows)
|
|
156
|
+
out.set(r.id, r.payload);
|
|
157
|
+
return out;
|
|
158
|
+
}
|
|
159
|
+
async delete(tenantId, id) {
|
|
160
|
+
const client = await this.pool.connect();
|
|
161
|
+
try {
|
|
162
|
+
await client.query('BEGIN');
|
|
163
|
+
await client.query('DELETE FROM memory_edges WHERE tenant_id = $1 AND memory_id = $2', [tenantId, id]);
|
|
164
|
+
await client.query('DELETE FROM claims WHERE tenant_id = $1 AND memory_id = $2', [tenantId, id]);
|
|
165
|
+
await client.query('DELETE FROM evidence_hashes WHERE tenant_id = $1 AND memory_id = $2', [tenantId, id]);
|
|
166
|
+
const res = await client.query('DELETE FROM memories WHERE tenant_id = $1 AND id = $2', [tenantId, id]);
|
|
167
|
+
await client.query('COMMIT');
|
|
168
|
+
return (res.rowCount ?? 0) > 0;
|
|
169
|
+
}
|
|
170
|
+
catch (err) {
|
|
171
|
+
await client.query('ROLLBACK');
|
|
172
|
+
throw new errors_1.LemmaApiError({ code: 'internal', status: 500, message: 'Failed to delete memory', internal: err });
|
|
173
|
+
}
|
|
174
|
+
finally {
|
|
175
|
+
client.release();
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
exports.PostgresBrainStore = PostgresBrainStore;
|
|
180
|
+
exports.default = PostgresBrainStore;
|
|
181
|
+
//# sourceMappingURL=PostgresBrainStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PostgresBrainStore.js","sourceRoot":"","sources":["../../../../src/cloud/store/PostgresBrainStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cloud/store/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
/**
|
|
18
|
+
* Lemma API v2 — BrainStore implementations (Lane B stub)
|
|
19
|
+
*/
|
|
20
|
+
__exportStar(require("./PostgresBrainStore"), exports);
|
|
21
|
+
__exportStar(require("./FileBrainStore"), exports);
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cloud/store/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,uDAAqC;AACrC,mDAAiC"}
|
|
@@ -24,8 +24,6 @@ export interface TenantStats {
|
|
|
24
24
|
misses: number;
|
|
25
25
|
totalRequests: number;
|
|
26
26
|
hitRate: number;
|
|
27
|
-
estimatedTokensSaved: number;
|
|
28
|
-
estimatedCostSaved: number;
|
|
29
27
|
cacheSize: number;
|
|
30
28
|
}
|
|
31
29
|
export declare const PLAN_LIMITS: Record<string, {
|
|
@@ -33,6 +31,4 @@ export declare const PLAN_LIMITS: Record<string, {
|
|
|
33
31
|
monthlyRequests: number;
|
|
34
32
|
cacheEntries: number;
|
|
35
33
|
}>;
|
|
36
|
-
export declare const AVG_TOKENS_PER_REQUEST = 800;
|
|
37
|
-
export declare const COST_PER_TOKEN = 0.000002;
|
|
38
34
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cloud/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cloud/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAIhH,CAAC"}
|
package/dist/cjs/cloud/types.js
CHANGED
|
@@ -3,12 +3,10 @@
|
|
|
3
3
|
* Lemma Cloud — Shared Types
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.PLAN_LIMITS = void 0;
|
|
7
7
|
exports.PLAN_LIMITS = {
|
|
8
8
|
free: { dailyRequests: 1000, monthlyRequests: 10000, cacheEntries: 500 },
|
|
9
9
|
pro: { dailyRequests: 5000, monthlyRequests: 50000, cacheEntries: 10000 },
|
|
10
10
|
scale: { dailyRequests: Infinity, monthlyRequests: Infinity, cacheEntries: Infinity },
|
|
11
11
|
};
|
|
12
|
-
exports.AVG_TOKENS_PER_REQUEST = 800;
|
|
13
|
-
exports.COST_PER_TOKEN = 0.000002; // gpt-4o-mini input+output blended
|
|
14
12
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cloud/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cloud/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA6BU,QAAA,WAAW,GAA6F;IACnH,IAAI,EAAG,EAAE,aAAa,EAAE,IAAK,EAAI,eAAe,EAAE,KAAM,EAAI,YAAY,EAAE,GAAG,EAAE;IAC/E,GAAG,EAAI,EAAE,aAAa,EAAE,IAAK,EAAI,eAAe,EAAE,KAAM,EAAI,YAAY,EAAE,KAAM,EAAE;IAClF,KAAK,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE;CACtF,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lemma API v2 — HTTP factory (Lane C)
|
|
3
|
+
*
|
|
4
|
+
* createApp(deps) — dependency-injected, no global singletons, so tests build the
|
|
5
|
+
* app with in-memory stores/resolvers/ledgers. PROHIBITED: touching
|
|
6
|
+
* src/cloud/server.ts — the v1 server stays untouched; v2 lives entirely here.
|
|
7
|
+
*
|
|
8
|
+
* Ownership: Lane C.
|
|
9
|
+
*/
|
|
10
|
+
import { type Express } from 'express';
|
|
11
|
+
import { type MountDeps } from './routes';
|
|
12
|
+
export type AppDeps = MountDeps;
|
|
13
|
+
export declare function createApp(deps: AppDeps): Express;
|
|
14
|
+
export default createApp;
|
|
15
|
+
//# sourceMappingURL=app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../../src/cloud/v2/app.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAgB,EAAE,KAAK,OAAO,EAA4E,MAAM,SAAS,CAAC;AAE1H,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAGvD,MAAM,MAAM,OAAO,GAAG,SAAS,CAAC;AAoChC,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAehD;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createApp = createApp;
|
|
7
|
+
/**
|
|
8
|
+
* Lemma API v2 — HTTP factory (Lane C)
|
|
9
|
+
*
|
|
10
|
+
* createApp(deps) — dependency-injected, no global singletons, so tests build the
|
|
11
|
+
* app with in-memory stores/resolvers/ledgers. PROHIBITED: touching
|
|
12
|
+
* src/cloud/server.ts — the v1 server stays untouched; v2 lives entirely here.
|
|
13
|
+
*
|
|
14
|
+
* Ownership: Lane C.
|
|
15
|
+
*/
|
|
16
|
+
const express_1 = __importDefault(require("express"));
|
|
17
|
+
const errors_1 = require("../../contracts/errors");
|
|
18
|
+
const routes_1 = require("./routes");
|
|
19
|
+
const memories_1 = require("./routes/memories");
|
|
20
|
+
/** Body-parser errors (malformed JSON, over the size cap) never carry a code we
|
|
21
|
+
* can trust from Express — normalize them to the same envelope as every other
|
|
22
|
+
* /v2 failure instead of leaking a raw parser message. */
|
|
23
|
+
function isBodyParserError(err) {
|
|
24
|
+
return typeof err === 'object' && err !== null && ('type' in err || 'statusCode' in err || 'status' in err);
|
|
25
|
+
}
|
|
26
|
+
function errorHandler() {
|
|
27
|
+
return (err, _req, res, _next) => {
|
|
28
|
+
if (err instanceof errors_1.LemmaApiError) {
|
|
29
|
+
res.status(err.status).json(err.toJSON());
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (isBodyParserError(err)) {
|
|
33
|
+
const status = err.status ?? err.statusCode;
|
|
34
|
+
const apiErr = new errors_1.LemmaApiError({
|
|
35
|
+
code: 'invalid_request',
|
|
36
|
+
status: status === 413 ? 413 : 400,
|
|
37
|
+
message: 'invalid or too-large request body',
|
|
38
|
+
});
|
|
39
|
+
res.status(apiErr.status).json(apiErr.toJSON());
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
// Unknown error: log server-side for debugging, but the response NEVER carries
|
|
43
|
+
// a file path, a SQL fragment or a stack trace — only the stable internal code.
|
|
44
|
+
// eslint-disable-next-line no-console
|
|
45
|
+
console.error('[lemma:v2] unhandled error', err);
|
|
46
|
+
const apiErr = new errors_1.LemmaApiError({ code: 'internal', status: 500, message: 'internal error' });
|
|
47
|
+
res.status(500).json(apiErr.toJSON());
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function createApp(deps) {
|
|
51
|
+
const app = (0, express_1.default)();
|
|
52
|
+
app.disable('x-powered-by');
|
|
53
|
+
app.use(express_1.default.json({ limit: memories_1.MAX_BODY_BYTES }));
|
|
54
|
+
(0, routes_1.mountRoutes)(app, deps);
|
|
55
|
+
app.use((_req, res) => {
|
|
56
|
+
const apiErr = new errors_1.LemmaApiError({ code: 'not_found', status: 404, message: 'no such route' });
|
|
57
|
+
res.status(404).json(apiErr.toJSON());
|
|
58
|
+
});
|
|
59
|
+
app.use(errorHandler());
|
|
60
|
+
return app;
|
|
61
|
+
}
|
|
62
|
+
exports.default = createApp;
|
|
63
|
+
//# sourceMappingURL=app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../src/cloud/v2/app.ts"],"names":[],"mappings":";;;;;AAkDA,8BAeC;AAjED;;;;;;;;GAQG;AACH,sDAA0H;AAC1H,mDAAuD;AACvD,qCAAuD;AACvD,gDAAmD;AAInD;;2DAE2D;AAC3D,SAAS,iBAAiB,CAAC,GAAY;IACrC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,YAAY,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,CAAC,CAAC;AAC9G,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,CAAC,GAAY,EAAE,IAAa,EAAE,GAAa,EAAE,KAAmB,EAAE,EAAE;QACzE,IAAI,GAAG,YAAY,sBAAa,EAAE,CAAC;YACjC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAI,GAAgD,CAAC,MAAM,IAAK,GAA+B,CAAC,UAAU,CAAC;YACvH,MAAM,MAAM,GAAG,IAAI,sBAAa,CAAC;gBAC/B,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;gBAClC,OAAO,EAAE,mCAAmC;aAC7C,CAAC,CAAC;YACH,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,+EAA+E;QAC/E,gFAAgF;QAChF,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,sBAAa,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC/F,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,SAAS,CAAC,IAAa;IACrC,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IACtB,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5B,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAc,EAAE,CAAC,CAAC,CAAC;IAEjD,IAAA,oBAAW,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAEvB,GAAG,CAAC,GAAG,CAAC,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,IAAI,sBAAa,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;QAC/F,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;IAExB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,kBAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lemma API v2 — route index (Lane C)
|
|
3
|
+
*
|
|
4
|
+
* Mounts every /v2 route, including ./scrub (owned by Lane F — its handler is
|
|
5
|
+
* framework-agnostic by design, see routes/scrub.ts's header comment; this file
|
|
6
|
+
* does the Express wiring on Lane F's behalf).
|
|
7
|
+
*
|
|
8
|
+
* /v2/scrub is mounted BEFORE the auth middleware: its openapi.yaml operation
|
|
9
|
+
* declares `security: []` (stateless, no tenant to scope it to), so registering
|
|
10
|
+
* it ahead of `authenticateV2` — Express matches routes in registration order —
|
|
11
|
+
* is what keeps it public while every other /v2 route stays behind a bearer key.
|
|
12
|
+
*
|
|
13
|
+
* Ownership: Lane C.
|
|
14
|
+
*/
|
|
15
|
+
import type { Express } from 'express';
|
|
16
|
+
import { type AuthenticateV2Deps } from '../../identity/authenticateV2';
|
|
17
|
+
import { type MemoriesDeps } from './memories';
|
|
18
|
+
import { type RecallDeps } from './recall';
|
|
19
|
+
import { type VerifyDeps } from './verify';
|
|
20
|
+
import { type UsageDeps } from './usage';
|
|
21
|
+
export type MountDeps = AuthenticateV2Deps & MemoriesDeps & RecallDeps & VerifyDeps & UsageDeps;
|
|
22
|
+
export declare function mountRoutes(app: Express, deps: MountDeps): void;
|
|
23
|
+
export default mountRoutes;
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cloud/v2/routes/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAA4C,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAIvD,MAAM,MAAM,SAAS,GAAG,kBAAkB,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAEhG,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAuB/D;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mountRoutes = mountRoutes;
|
|
4
|
+
const authenticateV2_1 = require("../../identity/authenticateV2");
|
|
5
|
+
const memories_1 = require("./memories");
|
|
6
|
+
const recall_1 = require("./recall");
|
|
7
|
+
const verify_1 = require("./verify");
|
|
8
|
+
const usage_1 = require("./usage");
|
|
9
|
+
const scrub_1 = require("./scrub");
|
|
10
|
+
const errors_1 = require("../../../contracts/errors");
|
|
11
|
+
function mountRoutes(app, deps) {
|
|
12
|
+
// Public: no tenant, no auth (Lane F, stateless).
|
|
13
|
+
const scrub = (0, scrub_1.scrubRouter)();
|
|
14
|
+
app.post('/v2/scrub', (req, res, next) => {
|
|
15
|
+
try {
|
|
16
|
+
if (req.body === undefined) {
|
|
17
|
+
throw new errors_1.LemmaApiError({ code: 'invalid_request', status: 400, message: 'request body must be a JSON object' });
|
|
18
|
+
}
|
|
19
|
+
res.json(scrub.handle(req.body));
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
next(err);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
// Everything below requires a valid tenant.
|
|
26
|
+
const auth = (0, authenticateV2_1.authenticateV2)(deps);
|
|
27
|
+
app.use('/v2', auth);
|
|
28
|
+
app.post('/v2/memories', (0, memories_1.createMemoryHandler)(deps));
|
|
29
|
+
app.delete('/v2/memories/:id', (0, memories_1.forgetMemoryHandler)(deps));
|
|
30
|
+
app.post('/v2/recall', (0, recall_1.recallHandler)(deps));
|
|
31
|
+
app.post('/v2/verify', (0, verify_1.verifyHandler)(deps));
|
|
32
|
+
app.get('/v2/usage', (0, usage_1.usageHandler)(deps));
|
|
33
|
+
}
|
|
34
|
+
exports.default = mountRoutes;
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cloud/v2/routes/index.ts"],"names":[],"mappings":";;AAyBA,kCAuBC;AAjCD,kEAAwF;AACxF,yCAAyF;AACzF,qCAA0D;AAC1D,qCAA0D;AAC1D,mCAAuD;AACvD,mCAAsC;AACtC,sDAA0D;AAI1D,SAAgB,WAAW,CAAC,GAAY,EAAE,IAAe;IACvD,kDAAkD;IAClD,MAAM,KAAK,GAAG,IAAA,mBAAW,GAAE,CAAC;IAC5B,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACvC,IAAI,CAAC;YACH,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,sBAAa,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC,CAAC;YACnH,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,4CAA4C;IAC5C,MAAM,IAAI,GAAG,IAAA,+BAAc,EAAC,IAAI,CAAC,CAAC;IAClC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAErB,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,IAAA,8BAAmB,EAAC,IAAI,CAAC,CAAC,CAAC;IACpD,GAAG,CAAC,MAAM,CAAC,kBAAkB,EAAE,IAAA,8BAAmB,EAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAA,sBAAa,EAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAA,sBAAa,EAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,IAAA,oBAAY,EAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,kBAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { RequestHandler } from 'express';
|
|
2
|
+
import { z, type ZodError } from 'zod';
|
|
3
|
+
import { LemmaApiError } from '../../../contracts/errors';
|
|
4
|
+
import type { CreateMemoryRequest, MemoryClaim, MemoryState } from '../../../contracts/api-v2.types';
|
|
5
|
+
import type { Evidence } from '../../../contracts/evidence';
|
|
6
|
+
import type { BrainStore } from '../../../contracts/store';
|
|
7
|
+
export declare const MAX_CLAIMS = 50;
|
|
8
|
+
export declare const MAX_VERIFY_IDS = 200;
|
|
9
|
+
export declare const MAX_BODY_BYTES = 1000000;
|
|
10
|
+
export declare const EvidenceSchema: z.ZodObject<{
|
|
11
|
+
files: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
12
|
+
symbols: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
13
|
+
symbolsNormalized: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
14
|
+
branch: z.ZodOptional<z.ZodString>;
|
|
15
|
+
commit: z.ZodOptional<z.ZodString>;
|
|
16
|
+
}, z.core.$strip>;
|
|
17
|
+
export declare const CreateMemoryRequestSchema: z.ZodObject<{
|
|
18
|
+
claims: z.ZodArray<z.ZodObject<{
|
|
19
|
+
text: z.ZodString;
|
|
20
|
+
filePaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
21
|
+
symbols: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
22
|
+
filePath: z.ZodString;
|
|
23
|
+
symbolName: z.ZodString;
|
|
24
|
+
}, z.core.$strip>>>;
|
|
25
|
+
}, z.core.$strip>>;
|
|
26
|
+
evidence: z.ZodObject<{
|
|
27
|
+
files: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
28
|
+
symbols: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
29
|
+
symbolsNormalized: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
30
|
+
branch: z.ZodOptional<z.ZodString>;
|
|
31
|
+
commit: z.ZodOptional<z.ZodString>;
|
|
32
|
+
}, z.core.$strip>;
|
|
33
|
+
derivedFrom: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
34
|
+
}, z.core.$strip>;
|
|
35
|
+
/** Turns the first zod issue into the API's stable invalid_request shape — never a raw zod dump. */
|
|
36
|
+
export declare function zodToApiError(error: ZodError): LemmaApiError;
|
|
37
|
+
/** What Lane C persists via `BrainStore.put`. `query`/`response` feed the store's
|
|
38
|
+
* BM25 indexing (see FileBrainStore.searchCandidates) — same convention the v1
|
|
39
|
+
* Brain already writes, so a v2-written record stays searchable. */
|
|
40
|
+
export interface StoredMemory {
|
|
41
|
+
claims: MemoryClaim[];
|
|
42
|
+
derivedFrom?: string[];
|
|
43
|
+
query: string;
|
|
44
|
+
response: string;
|
|
45
|
+
createdAt: number;
|
|
46
|
+
}
|
|
47
|
+
declare function isStoredMemory(v: unknown): v is StoredMemory;
|
|
48
|
+
/**
|
|
49
|
+
* Builds the persisted claims from the request: each claim only tracks the
|
|
50
|
+
* files/symbols it explicitly declared, hashed from the top-level `evidence`
|
|
51
|
+
* bundle the client supplied. A declared path/symbol with no matching hash in
|
|
52
|
+
* `evidence` is a malformed request (the client can't establish a baseline it
|
|
53
|
+
* never sent) — this throws `invalid_request` naming the missing field, it never
|
|
54
|
+
* silently stores an untracked claim.
|
|
55
|
+
*/
|
|
56
|
+
export declare function buildClaims(body: CreateMemoryRequest): MemoryClaim[];
|
|
57
|
+
export interface MemoryStateResult {
|
|
58
|
+
state: MemoryState;
|
|
59
|
+
staleFiles: string[];
|
|
60
|
+
cosmeticChanges: string[];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Aggregates a memory's claims into one `MemoryState`. Precedence is worst-case
|
|
64
|
+
* fail-closed: any claim `unverified` ⇒ the memory is `unverified` (even if other
|
|
65
|
+
* claims are provably stale); otherwise any claim `stale` ⇒ `stale`; otherwise
|
|
66
|
+
* `fresh`. A memory whose claims track nothing is always `fresh` (nothing to go
|
|
67
|
+
* stale) — same as `TheBrainV2.checkClaimFreshness` for an evidence-less claim.
|
|
68
|
+
*
|
|
69
|
+
* `contradicted` is not produced here: detecting two stored claims about the same
|
|
70
|
+
* subject diverging is not part of this lane's acceptance criteria (see plan §3,
|
|
71
|
+
* Lane C) — noted under lane-notes/C.md ## decisions.
|
|
72
|
+
*/
|
|
73
|
+
export declare function computeMemoryState(claims: MemoryClaim[], currentEvidence: Evidence | undefined): MemoryStateResult;
|
|
74
|
+
export interface MemoriesDeps {
|
|
75
|
+
store: Pick<BrainStore, 'put' | 'get' | 'delete'>;
|
|
76
|
+
}
|
|
77
|
+
/** POST /v2/memories */
|
|
78
|
+
export declare function createMemoryHandler(deps: MemoriesDeps): RequestHandler;
|
|
79
|
+
/** DELETE /v2/memories/:id */
|
|
80
|
+
export declare function forgetMemoryHandler(deps: MemoriesDeps): RequestHandler;
|
|
81
|
+
export { isStoredMemory };
|
|
82
|
+
export default createMemoryHandler;
|
|
83
|
+
//# sourceMappingURL=memories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memories.d.ts","sourceRoot":"","sources":["../../../../../src/cloud/v2/routes/memories.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,CAAC,EAAE,KAAK,QAAQ,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EACV,mBAAmB,EAGnB,WAAW,EACX,WAAW,EACZ,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAM3D,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,cAAc,UAAY,CAAC;AAIxC,eAAO,MAAM,cAAc;;;;;;iBAMK,CAAC;AAEjC,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;iBAapC,CAAC;AAEH,oGAAoG;AACpG,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,aAAa,CAS5D;AAID;;qEAEqE;AACrE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,iBAAS,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,YAAY,CAMrD;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,mBAAmB,GAAG,WAAW,EAAE,CA4CpE;AAyDD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,eAAe,EAAE,QAAQ,GAAG,SAAS,GAAG,iBAAiB,CAoBlH;AAID,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;CACnD;AAED,wBAAwB;AACxB,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc,CA+BtE;AAED,8BAA8B;AAC9B,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc,CAoBtE;AAED,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,eAAe,mBAAmB,CAAC"}
|