@yoda.digital/iris-gateway 1.13.3
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/CHANGELOG.md +515 -0
- package/README.md +282 -0
- package/dist/auto-reply/engine.d.ts +13 -0
- package/dist/auto-reply/engine.d.ts.map +1 -0
- package/dist/auto-reply/engine.js +70 -0
- package/dist/auto-reply/engine.js.map +1 -0
- package/dist/auto-reply/types.d.ts +37 -0
- package/dist/auto-reply/types.d.ts.map +1 -0
- package/dist/auto-reply/types.js +2 -0
- package/dist/auto-reply/types.js.map +1 -0
- package/dist/bridge/circuit-breaker.d.ts +40 -0
- package/dist/bridge/circuit-breaker.d.ts.map +1 -0
- package/dist/bridge/circuit-breaker.js +82 -0
- package/dist/bridge/circuit-breaker.js.map +1 -0
- package/dist/bridge/event-handler.d.ts +18 -0
- package/dist/bridge/event-handler.d.ts.map +1 -0
- package/dist/bridge/event-handler.js +128 -0
- package/dist/bridge/event-handler.js.map +1 -0
- package/dist/bridge/message-queue.d.ts +50 -0
- package/dist/bridge/message-queue.d.ts.map +1 -0
- package/dist/bridge/message-queue.js +110 -0
- package/dist/bridge/message-queue.js.map +1 -0
- package/dist/bridge/message-router.d.ts +37 -0
- package/dist/bridge/message-router.d.ts.map +1 -0
- package/dist/bridge/message-router.js +329 -0
- package/dist/bridge/message-router.js.map +1 -0
- package/dist/bridge/opencode-client.d.ts +55 -0
- package/dist/bridge/opencode-client.d.ts.map +1 -0
- package/dist/bridge/opencode-client.js +282 -0
- package/dist/bridge/opencode-client.js.map +1 -0
- package/dist/bridge/routers/channels.d.ts +11 -0
- package/dist/bridge/routers/channels.d.ts.map +1 -0
- package/dist/bridge/routers/channels.js +164 -0
- package/dist/bridge/routers/channels.js.map +1 -0
- package/dist/bridge/routers/cli.d.ts +11 -0
- package/dist/bridge/routers/cli.d.ts.map +1 -0
- package/dist/bridge/routers/cli.js +31 -0
- package/dist/bridge/routers/cli.js.map +1 -0
- package/dist/bridge/routers/governance.d.ts +13 -0
- package/dist/bridge/routers/governance.d.ts.map +1 -0
- package/dist/bridge/routers/governance.js +115 -0
- package/dist/bridge/routers/governance.js.map +1 -0
- package/dist/bridge/routers/intelligence.d.ts +23 -0
- package/dist/bridge/routers/intelligence.d.ts.map +1 -0
- package/dist/bridge/routers/intelligence.js +165 -0
- package/dist/bridge/routers/intelligence.js.map +1 -0
- package/dist/bridge/routers/skills-handlers.d.ts +122 -0
- package/dist/bridge/routers/skills-handlers.d.ts.map +1 -0
- package/dist/bridge/routers/skills-handlers.js +396 -0
- package/dist/bridge/routers/skills-handlers.js.map +1 -0
- package/dist/bridge/routers/skills-router.d.ts +5 -0
- package/dist/bridge/routers/skills-router.d.ts.map +1 -0
- package/dist/bridge/routers/skills-router.js +22 -0
- package/dist/bridge/routers/skills-router.js.map +1 -0
- package/dist/bridge/routers/skills.d.ts +2 -0
- package/dist/bridge/routers/skills.d.ts.map +1 -0
- package/dist/bridge/routers/skills.js +4 -0
- package/dist/bridge/routers/skills.js.map +1 -0
- package/dist/bridge/routers/system.d.ts +29 -0
- package/dist/bridge/routers/system.d.ts.map +1 -0
- package/dist/bridge/routers/system.js +132 -0
- package/dist/bridge/routers/system.js.map +1 -0
- package/dist/bridge/routers/vault.d.ts +11 -0
- package/dist/bridge/routers/vault.d.ts.map +1 -0
- package/dist/bridge/routers/vault.js +97 -0
- package/dist/bridge/routers/vault.js.map +1 -0
- package/dist/bridge/session-map.d.ts +24 -0
- package/dist/bridge/session-map.d.ts.map +1 -0
- package/dist/bridge/session-map.js +78 -0
- package/dist/bridge/session-map.js.map +1 -0
- package/dist/bridge/stream-coalescer.d.ts +26 -0
- package/dist/bridge/stream-coalescer.d.ts.map +1 -0
- package/dist/bridge/stream-coalescer.js +82 -0
- package/dist/bridge/stream-coalescer.js.map +1 -0
- package/dist/bridge/supervisor.d.ts +50 -0
- package/dist/bridge/supervisor.d.ts.map +1 -0
- package/dist/bridge/supervisor.js +139 -0
- package/dist/bridge/supervisor.js.map +1 -0
- package/dist/bridge/tool-server.d.ts +73 -0
- package/dist/bridge/tool-server.d.ts.map +1 -0
- package/dist/bridge/tool-server.js +209 -0
- package/dist/bridge/tool-server.js.map +1 -0
- package/dist/canvas/components.d.ts +71 -0
- package/dist/canvas/components.d.ts.map +1 -0
- package/dist/canvas/components.js +2 -0
- package/dist/canvas/components.js.map +1 -0
- package/dist/canvas/renderer.d.ts +2 -0
- package/dist/canvas/renderer.d.ts.map +1 -0
- package/dist/canvas/renderer.js +240 -0
- package/dist/canvas/renderer.js.map +1 -0
- package/dist/canvas/server.d.ts +24 -0
- package/dist/canvas/server.d.ts.map +1 -0
- package/dist/canvas/server.js +134 -0
- package/dist/canvas/server.js.map +1 -0
- package/dist/canvas/session.d.ts +23 -0
- package/dist/canvas/session.d.ts.map +1 -0
- package/dist/canvas/session.js +64 -0
- package/dist/canvas/session.js.map +1 -0
- package/dist/channels/adapter.d.ts +90 -0
- package/dist/channels/adapter.d.ts.map +1 -0
- package/dist/channels/adapter.js +2 -0
- package/dist/channels/adapter.js.map +1 -0
- package/dist/channels/discord/client.d.ts +3 -0
- package/dist/channels/discord/client.d.ts.map +1 -0
- package/dist/channels/discord/client.js +13 -0
- package/dist/channels/discord/client.js.map +1 -0
- package/dist/channels/discord/index.d.ts +41 -0
- package/dist/channels/discord/index.d.ts.map +1 -0
- package/dist/channels/discord/index.js +113 -0
- package/dist/channels/discord/index.js.map +1 -0
- package/dist/channels/discord/normalize.d.ts +4 -0
- package/dist/channels/discord/normalize.d.ts.map +1 -0
- package/dist/channels/discord/normalize.js +20 -0
- package/dist/channels/discord/normalize.js.map +1 -0
- package/dist/channels/discord/send.d.ts +13 -0
- package/dist/channels/discord/send.d.ts.map +1 -0
- package/dist/channels/discord/send.js +54 -0
- package/dist/channels/discord/send.js.map +1 -0
- package/dist/channels/mention-gating.d.ts +13 -0
- package/dist/channels/mention-gating.d.ts.map +1 -0
- package/dist/channels/mention-gating.js +42 -0
- package/dist/channels/mention-gating.js.map +1 -0
- package/dist/channels/message-cache.d.ts +17 -0
- package/dist/channels/message-cache.d.ts.map +1 -0
- package/dist/channels/message-cache.js +43 -0
- package/dist/channels/message-cache.js.map +1 -0
- package/dist/channels/registry.d.ts +9 -0
- package/dist/channels/registry.d.ts.map +1 -0
- package/dist/channels/registry.js +19 -0
- package/dist/channels/registry.js.map +1 -0
- package/dist/channels/slack/index.d.ts +38 -0
- package/dist/channels/slack/index.d.ts.map +1 -0
- package/dist/channels/slack/index.js +105 -0
- package/dist/channels/slack/index.js.map +1 -0
- package/dist/channels/slack/normalize.d.ts +14 -0
- package/dist/channels/slack/normalize.d.ts.map +1 -0
- package/dist/channels/slack/normalize.js +23 -0
- package/dist/channels/slack/normalize.js.map +1 -0
- package/dist/channels/slack/send.d.ts +13 -0
- package/dist/channels/slack/send.d.ts.map +1 -0
- package/dist/channels/slack/send.js +48 -0
- package/dist/channels/slack/send.js.map +1 -0
- package/dist/channels/telegram/index.d.ts +42 -0
- package/dist/channels/telegram/index.d.ts.map +1 -0
- package/dist/channels/telegram/index.js +125 -0
- package/dist/channels/telegram/index.js.map +1 -0
- package/dist/channels/telegram/normalize.d.ts +4 -0
- package/dist/channels/telegram/normalize.d.ts.map +1 -0
- package/dist/channels/telegram/normalize.js +25 -0
- package/dist/channels/telegram/normalize.js.map +1 -0
- package/dist/channels/telegram/send.d.ts +13 -0
- package/dist/channels/telegram/send.d.ts.map +1 -0
- package/dist/channels/telegram/send.js +55 -0
- package/dist/channels/telegram/send.js.map +1 -0
- package/dist/channels/webchat/index.d.ts +20 -0
- package/dist/channels/webchat/index.d.ts.map +1 -0
- package/dist/channels/webchat/index.js +42 -0
- package/dist/channels/webchat/index.js.map +1 -0
- package/dist/channels/whatsapp/connection.d.ts +43 -0
- package/dist/channels/whatsapp/connection.d.ts.map +1 -0
- package/dist/channels/whatsapp/connection.js +76 -0
- package/dist/channels/whatsapp/connection.js.map +1 -0
- package/dist/channels/whatsapp/index.d.ts +38 -0
- package/dist/channels/whatsapp/index.d.ts.map +1 -0
- package/dist/channels/whatsapp/index.js +99 -0
- package/dist/channels/whatsapp/index.js.map +1 -0
- package/dist/channels/whatsapp/normalize.d.ts +4 -0
- package/dist/channels/whatsapp/normalize.d.ts.map +1 -0
- package/dist/channels/whatsapp/normalize.js +31 -0
- package/dist/channels/whatsapp/normalize.js.map +1 -0
- package/dist/channels/whatsapp/send.d.ts +12 -0
- package/dist/channels/whatsapp/send.d.ts.map +1 -0
- package/dist/channels/whatsapp/send.js +48 -0
- package/dist/channels/whatsapp/send.js.map +1 -0
- package/dist/cli/banner.d.ts +2 -0
- package/dist/cli/banner.d.ts.map +1 -0
- package/dist/cli/banner.js +18 -0
- package/dist/cli/banner.js.map +1 -0
- package/dist/cli/commands/config-cmd.d.ts +13 -0
- package/dist/cli/commands/config-cmd.d.ts.map +1 -0
- package/dist/cli/commands/config-cmd.js +76 -0
- package/dist/cli/commands/config-cmd.js.map +1 -0
- package/dist/cli/commands/cron-cmd.d.ts +23 -0
- package/dist/cli/commands/cron-cmd.d.ts.map +1 -0
- package/dist/cli/commands/cron-cmd.js +88 -0
- package/dist/cli/commands/cron-cmd.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +7 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +88 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/gateway.d.ts +8 -0
- package/dist/cli/commands/gateway.d.ts.map +1 -0
- package/dist/cli/commands/gateway.js +33 -0
- package/dist/cli/commands/gateway.js.map +1 -0
- package/dist/cli/commands/init.d.ts +7 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +308 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/pairing.d.ts +19 -0
- package/dist/cli/commands/pairing.d.ts.map +1 -0
- package/dist/cli/commands/pairing.js +70 -0
- package/dist/cli/commands/pairing.js.map +1 -0
- package/dist/cli/commands/scan.d.ts +8 -0
- package/dist/cli/commands/scan.d.ts.map +1 -0
- package/dist/cli/commands/scan.js +39 -0
- package/dist/cli/commands/scan.js.map +1 -0
- package/dist/cli/commands/security.d.ts +15 -0
- package/dist/cli/commands/security.d.ts.map +1 -0
- package/dist/cli/commands/security.js +49 -0
- package/dist/cli/commands/security.js.map +1 -0
- package/dist/cli/commands/send.d.ts +10 -0
- package/dist/cli/commands/send.d.ts.map +1 -0
- package/dist/cli/commands/send.js +64 -0
- package/dist/cli/commands/send.js.map +1 -0
- package/dist/cli/commands/session.d.ts +13 -0
- package/dist/cli/commands/session.d.ts.map +1 -0
- package/dist/cli/commands/session.js +48 -0
- package/dist/cli/commands/session.js.map +1 -0
- package/dist/cli/commands/status.d.ts +7 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +43 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/executor.d.ts +19 -0
- package/dist/cli/executor.d.ts.map +1 -0
- package/dist/cli/executor.js +75 -0
- package/dist/cli/executor.js.map +1 -0
- package/dist/cli/program.d.ts +3 -0
- package/dist/cli/program.d.ts.map +1 -0
- package/dist/cli/program.js +49 -0
- package/dist/cli/program.js.map +1 -0
- package/dist/cli/registry.d.ts +15 -0
- package/dist/cli/registry.d.ts.map +1 -0
- package/dist/cli/registry.js +64 -0
- package/dist/cli/registry.js.map +1 -0
- package/dist/cli/types.d.ts +40 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +2 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/config/loader.d.ts +4 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +31 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/paths.d.ts +4 -0
- package/dist/config/paths.d.ts.map +1 -0
- package/dist/config/paths.js +14 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/config/schema.d.ts +1414 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +256 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/types.d.ts +176 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/cron/run-log.d.ts +14 -0
- package/dist/cron/run-log.d.ts.map +1 -0
- package/dist/cron/run-log.js +16 -0
- package/dist/cron/run-log.js.map +1 -0
- package/dist/cron/service.d.ts +29 -0
- package/dist/cron/service.d.ts.map +1 -0
- package/dist/cron/service.js +98 -0
- package/dist/cron/service.js.map +1 -0
- package/dist/cron/store.d.ts +20 -0
- package/dist/cron/store.d.ts.map +1 -0
- package/dist/cron/store.js +61 -0
- package/dist/cron/store.js.map +1 -0
- package/dist/gateway/adapters.d.ts +37 -0
- package/dist/gateway/adapters.d.ts.map +1 -0
- package/dist/gateway/adapters.js +83 -0
- package/dist/gateway/adapters.js.map +1 -0
- package/dist/gateway/health.d.ts +19 -0
- package/dist/gateway/health.d.ts.map +1 -0
- package/dist/gateway/health.js +117 -0
- package/dist/gateway/health.js.map +1 -0
- package/dist/gateway/intelligence-wiring.d.ts +38 -0
- package/dist/gateway/intelligence-wiring.d.ts.map +1 -0
- package/dist/gateway/intelligence-wiring.js +49 -0
- package/dist/gateway/intelligence-wiring.js.map +1 -0
- package/dist/gateway/lifecycle.d.ts +71 -0
- package/dist/gateway/lifecycle.d.ts.map +1 -0
- package/dist/gateway/lifecycle.js +318 -0
- package/dist/gateway/lifecycle.js.map +1 -0
- package/dist/gateway/metrics.d.ts +27 -0
- package/dist/gateway/metrics.d.ts.map +1 -0
- package/dist/gateway/metrics.js +99 -0
- package/dist/gateway/metrics.js.map +1 -0
- package/dist/gateway/security-wiring.d.ts +16 -0
- package/dist/gateway/security-wiring.d.ts.map +1 -0
- package/dist/gateway/security-wiring.js +18 -0
- package/dist/gateway/security-wiring.js.map +1 -0
- package/dist/gateway/shutdown.d.ts +37 -0
- package/dist/gateway/shutdown.d.ts.map +1 -0
- package/dist/gateway/shutdown.js +60 -0
- package/dist/gateway/shutdown.js.map +1 -0
- package/dist/governance/engine.d.ts +11 -0
- package/dist/governance/engine.d.ts.map +1 -0
- package/dist/governance/engine.js +57 -0
- package/dist/governance/engine.js.map +1 -0
- package/dist/governance/policy.d.ts +68 -0
- package/dist/governance/policy.d.ts.map +1 -0
- package/dist/governance/policy.js +300 -0
- package/dist/governance/policy.js.map +1 -0
- package/dist/governance/types.d.ts +18 -0
- package/dist/governance/types.d.ts.map +1 -0
- package/dist/governance/types.js +2 -0
- package/dist/governance/types.js.map +1 -0
- package/dist/heartbeat/active-hours.d.ts +7 -0
- package/dist/heartbeat/active-hours.d.ts.map +1 -0
- package/dist/heartbeat/active-hours.js +38 -0
- package/dist/heartbeat/active-hours.js.map +1 -0
- package/dist/heartbeat/activity.d.ts +16 -0
- package/dist/heartbeat/activity.d.ts.map +1 -0
- package/dist/heartbeat/activity.js +41 -0
- package/dist/heartbeat/activity.js.map +1 -0
- package/dist/heartbeat/checkers.d.ts +34 -0
- package/dist/heartbeat/checkers.d.ts.map +1 -0
- package/dist/heartbeat/checkers.js +161 -0
- package/dist/heartbeat/checkers.js.map +1 -0
- package/dist/heartbeat/coalesce.d.ts +16 -0
- package/dist/heartbeat/coalesce.d.ts.map +1 -0
- package/dist/heartbeat/coalesce.js +36 -0
- package/dist/heartbeat/coalesce.js.map +1 -0
- package/dist/heartbeat/empty-check.d.ts +12 -0
- package/dist/heartbeat/empty-check.d.ts.map +1 -0
- package/dist/heartbeat/empty-check.js +24 -0
- package/dist/heartbeat/empty-check.js.map +1 -0
- package/dist/heartbeat/engine.d.ts +39 -0
- package/dist/heartbeat/engine.d.ts.map +1 -0
- package/dist/heartbeat/engine.js +235 -0
- package/dist/heartbeat/engine.js.map +1 -0
- package/dist/heartbeat/store.d.ts +32 -0
- package/dist/heartbeat/store.d.ts.map +1 -0
- package/dist/heartbeat/store.js +127 -0
- package/dist/heartbeat/store.js.map +1 -0
- package/dist/heartbeat/types.d.ts +74 -0
- package/dist/heartbeat/types.d.ts.map +1 -0
- package/dist/heartbeat/types.js +2 -0
- package/dist/heartbeat/types.js.map +1 -0
- package/dist/heartbeat/visibility.d.ts +8 -0
- package/dist/heartbeat/visibility.d.ts.map +1 -0
- package/dist/heartbeat/visibility.js +13 -0
- package/dist/heartbeat/visibility.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/instance/coordinator.d.ts +30 -0
- package/dist/instance/coordinator.d.ts.map +1 -0
- package/dist/instance/coordinator.js +113 -0
- package/dist/instance/coordinator.js.map +1 -0
- package/dist/intelligence/arcs/detector.d.ts +57 -0
- package/dist/intelligence/arcs/detector.d.ts.map +1 -0
- package/dist/intelligence/arcs/detector.js +140 -0
- package/dist/intelligence/arcs/detector.js.map +1 -0
- package/dist/intelligence/arcs/lifecycle.d.ts +39 -0
- package/dist/intelligence/arcs/lifecycle.d.ts.map +1 -0
- package/dist/intelligence/arcs/lifecycle.js +87 -0
- package/dist/intelligence/arcs/lifecycle.js.map +1 -0
- package/dist/intelligence/arcs/store.d.ts +30 -0
- package/dist/intelligence/arcs/store.d.ts.map +1 -0
- package/dist/intelligence/arcs/store.js +117 -0
- package/dist/intelligence/arcs/store.js.map +1 -0
- package/dist/intelligence/bus.d.ts +21 -0
- package/dist/intelligence/bus.d.ts.map +1 -0
- package/dist/intelligence/bus.js +26 -0
- package/dist/intelligence/bus.js.map +1 -0
- package/dist/intelligence/cross-channel/resolver.d.ts +43 -0
- package/dist/intelligence/cross-channel/resolver.d.ts.map +1 -0
- package/dist/intelligence/cross-channel/resolver.js +129 -0
- package/dist/intelligence/cross-channel/resolver.js.map +1 -0
- package/dist/intelligence/goals/lifecycle.d.ts +66 -0
- package/dist/intelligence/goals/lifecycle.d.ts.map +1 -0
- package/dist/intelligence/goals/lifecycle.js +135 -0
- package/dist/intelligence/goals/lifecycle.js.map +1 -0
- package/dist/intelligence/goals/store.d.ts +30 -0
- package/dist/intelligence/goals/store.d.ts.map +1 -0
- package/dist/intelligence/goals/store.js +105 -0
- package/dist/intelligence/goals/store.js.map +1 -0
- package/dist/intelligence/health/gate.d.ts +41 -0
- package/dist/intelligence/health/gate.d.ts.map +1 -0
- package/dist/intelligence/health/gate.js +140 -0
- package/dist/intelligence/health/gate.js.map +1 -0
- package/dist/intelligence/health/trend-detector.d.ts +43 -0
- package/dist/intelligence/health/trend-detector.d.ts.map +1 -0
- package/dist/intelligence/health/trend-detector.js +160 -0
- package/dist/intelligence/health/trend-detector.js.map +1 -0
- package/dist/intelligence/inference/engine.d.ts +32 -0
- package/dist/intelligence/inference/engine.d.ts.map +1 -0
- package/dist/intelligence/inference/engine.js +98 -0
- package/dist/intelligence/inference/engine.js.map +1 -0
- package/dist/intelligence/inference/rules/engagement-trend.d.ts +9 -0
- package/dist/intelligence/inference/rules/engagement-trend.d.ts.map +1 -0
- package/dist/intelligence/inference/rules/engagement-trend.js +50 -0
- package/dist/intelligence/inference/rules/engagement-trend.js.map +1 -0
- package/dist/intelligence/inference/rules/index.d.ts +3 -0
- package/dist/intelligence/inference/rules/index.d.ts.map +1 -0
- package/dist/intelligence/inference/rules/index.js +13 -0
- package/dist/intelligence/inference/rules/index.js.map +1 -0
- package/dist/intelligence/inference/rules/language-stability.d.ts +9 -0
- package/dist/intelligence/inference/rules/language-stability.d.ts.map +1 -0
- package/dist/intelligence/inference/rules/language-stability.js +68 -0
- package/dist/intelligence/inference/rules/language-stability.js.map +1 -0
- package/dist/intelligence/inference/rules/response-cadence.d.ts +9 -0
- package/dist/intelligence/inference/rules/response-cadence.d.ts.map +1 -0
- package/dist/intelligence/inference/rules/response-cadence.js +53 -0
- package/dist/intelligence/inference/rules/response-cadence.js.map +1 -0
- package/dist/intelligence/inference/rules/session-pattern.d.ts +9 -0
- package/dist/intelligence/inference/rules/session-pattern.d.ts.map +1 -0
- package/dist/intelligence/inference/rules/session-pattern.js +53 -0
- package/dist/intelligence/inference/rules/session-pattern.js.map +1 -0
- package/dist/intelligence/inference/rules/timezone-from-hours.d.ts +3 -0
- package/dist/intelligence/inference/rules/timezone-from-hours.d.ts.map +1 -0
- package/dist/intelligence/inference/rules/timezone-from-hours.js +93 -0
- package/dist/intelligence/inference/rules/timezone-from-hours.js.map +1 -0
- package/dist/intelligence/inference/store.d.ts +21 -0
- package/dist/intelligence/inference/store.d.ts.map +1 -0
- package/dist/intelligence/inference/store.js +82 -0
- package/dist/intelligence/inference/store.js.map +1 -0
- package/dist/intelligence/outcomes/analyzer.d.ts +52 -0
- package/dist/intelligence/outcomes/analyzer.d.ts.map +1 -0
- package/dist/intelligence/outcomes/analyzer.js +103 -0
- package/dist/intelligence/outcomes/analyzer.js.map +1 -0
- package/dist/intelligence/outcomes/categorizer.d.ts +12 -0
- package/dist/intelligence/outcomes/categorizer.d.ts.map +1 -0
- package/dist/intelligence/outcomes/categorizer.js +19 -0
- package/dist/intelligence/outcomes/categorizer.js.map +1 -0
- package/dist/intelligence/outcomes/store.d.ts +21 -0
- package/dist/intelligence/outcomes/store.d.ts.map +1 -0
- package/dist/intelligence/outcomes/store.js +107 -0
- package/dist/intelligence/outcomes/store.js.map +1 -0
- package/dist/intelligence/prompt-assembler.d.ts +39 -0
- package/dist/intelligence/prompt-assembler.d.ts.map +1 -0
- package/dist/intelligence/prompt-assembler.js +99 -0
- package/dist/intelligence/prompt-assembler.js.map +1 -0
- package/dist/intelligence/store.d.ts +50 -0
- package/dist/intelligence/store.d.ts.map +1 -0
- package/dist/intelligence/store.js +102 -0
- package/dist/intelligence/store.js.map +1 -0
- package/dist/intelligence/triggers/evaluator.d.ts +27 -0
- package/dist/intelligence/triggers/evaluator.d.ts.map +1 -0
- package/dist/intelligence/triggers/evaluator.js +81 -0
- package/dist/intelligence/triggers/evaluator.js.map +1 -0
- package/dist/intelligence/triggers/rules.d.ts +10 -0
- package/dist/intelligence/triggers/rules.d.ts.map +1 -0
- package/dist/intelligence/triggers/rules.js +186 -0
- package/dist/intelligence/triggers/rules.js.map +1 -0
- package/dist/intelligence/types.d.ts +182 -0
- package/dist/intelligence/types.d.ts.map +1 -0
- package/dist/intelligence/types.js +3 -0
- package/dist/intelligence/types.js.map +1 -0
- package/dist/logging/logger.d.ts +5 -0
- package/dist/logging/logger.d.ts.map +1 -0
- package/dist/logging/logger.js +20 -0
- package/dist/logging/logger.js.map +1 -0
- package/dist/media/compress.d.ts +13 -0
- package/dist/media/compress.d.ts.map +1 -0
- package/dist/media/compress.js +38 -0
- package/dist/media/compress.js.map +1 -0
- package/dist/media/fetch.d.ts +18 -0
- package/dist/media/fetch.d.ts.map +1 -0
- package/dist/media/fetch.js +62 -0
- package/dist/media/fetch.js.map +1 -0
- package/dist/media/mime.d.ts +11 -0
- package/dist/media/mime.d.ts.map +1 -0
- package/dist/media/mime.js +112 -0
- package/dist/media/mime.js.map +1 -0
- package/dist/media/parse.d.ts +20 -0
- package/dist/media/parse.d.ts.map +1 -0
- package/dist/media/parse.js +52 -0
- package/dist/media/parse.js.map +1 -0
- package/dist/media/server.d.ts +17 -0
- package/dist/media/server.d.ts.map +1 -0
- package/dist/media/server.js +76 -0
- package/dist/media/server.js.map +1 -0
- package/dist/media/store.d.ts +26 -0
- package/dist/media/store.d.ts.map +1 -0
- package/dist/media/store.js +100 -0
- package/dist/media/store.js.map +1 -0
- package/dist/onboarding/enricher.d.ts +25 -0
- package/dist/onboarding/enricher.d.ts.map +1 -0
- package/dist/onboarding/enricher.js +151 -0
- package/dist/onboarding/enricher.js.map +1 -0
- package/dist/onboarding/signals.d.ts +13 -0
- package/dist/onboarding/signals.d.ts.map +1 -0
- package/dist/onboarding/signals.js +79 -0
- package/dist/onboarding/signals.js.map +1 -0
- package/dist/onboarding/types.d.ts +28 -0
- package/dist/onboarding/types.d.ts.map +1 -0
- package/dist/onboarding/types.js +2 -0
- package/dist/onboarding/types.js.map +1 -0
- package/dist/plugins/hook-bus.d.ts +7 -0
- package/dist/plugins/hook-bus.d.ts.map +1 -0
- package/dist/plugins/hook-bus.js +25 -0
- package/dist/plugins/hook-bus.js.map +1 -0
- package/dist/plugins/loader.d.ts +14 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +108 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/registry.d.ts +13 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +32 -0
- package/dist/plugins/registry.js.map +1 -0
- package/dist/plugins/types.d.ts +67 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +2 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/proactive/engine.d.ts +46 -0
- package/dist/proactive/engine.d.ts.map +1 -0
- package/dist/proactive/engine.js +238 -0
- package/dist/proactive/engine.js.map +1 -0
- package/dist/proactive/store.d.ts +35 -0
- package/dist/proactive/store.d.ts.map +1 -0
- package/dist/proactive/store.js +186 -0
- package/dist/proactive/store.js.map +1 -0
- package/dist/proactive/types.d.ts +91 -0
- package/dist/proactive/types.d.ts.map +1 -0
- package/dist/proactive/types.js +2 -0
- package/dist/proactive/types.js.map +1 -0
- package/dist/sdk/client.d.ts +222 -0
- package/dist/sdk/client.d.ts.map +1 -0
- package/dist/sdk/client.js +108 -0
- package/dist/sdk/client.js.map +1 -0
- package/dist/security/allowlist-store.d.ts +17 -0
- package/dist/security/allowlist-store.d.ts.map +1 -0
- package/dist/security/allowlist-store.js +52 -0
- package/dist/security/allowlist-store.js.map +1 -0
- package/dist/security/dm-policy.d.ts +32 -0
- package/dist/security/dm-policy.d.ts.map +1 -0
- package/dist/security/dm-policy.js +67 -0
- package/dist/security/dm-policy.js.map +1 -0
- package/dist/security/pairing-store.d.ts +25 -0
- package/dist/security/pairing-store.d.ts.map +1 -0
- package/dist/security/pairing-store.js +103 -0
- package/dist/security/pairing-store.js.map +1 -0
- package/dist/security/rate-limiter.d.ts +17 -0
- package/dist/security/rate-limiter.d.ts.map +1 -0
- package/dist/security/rate-limiter.js +43 -0
- package/dist/security/rate-limiter.js.map +1 -0
- package/dist/security/scan-rules.d.ts +3 -0
- package/dist/security/scan-rules.d.ts.map +1 -0
- package/dist/security/scan-rules.js +79 -0
- package/dist/security/scan-rules.js.map +1 -0
- package/dist/security/scan-types.d.ts +27 -0
- package/dist/security/scan-types.d.ts.map +1 -0
- package/dist/security/scan-types.js +2 -0
- package/dist/security/scan-types.js.map +1 -0
- package/dist/security/scanner.d.ts +8 -0
- package/dist/security/scanner.d.ts.map +1 -0
- package/dist/security/scanner.js +105 -0
- package/dist/security/scanner.js.map +1 -0
- package/dist/usage/tracker.d.ts +13 -0
- package/dist/usage/tracker.d.ts.map +1 -0
- package/dist/usage/tracker.js +66 -0
- package/dist/usage/tracker.js.map +1 -0
- package/dist/usage/types.d.ts +28 -0
- package/dist/usage/types.d.ts.map +1 -0
- package/dist/usage/types.js +2 -0
- package/dist/usage/types.js.map +1 -0
- package/dist/utils/file-lock.d.ts +2 -0
- package/dist/utils/file-lock.d.ts.map +1 -0
- package/dist/utils/file-lock.js +15 -0
- package/dist/utils/file-lock.js.map +1 -0
- package/dist/utils/retry.d.ts +8 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +35 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/utils/text-chunker.d.ts +3 -0
- package/dist/utils/text-chunker.d.ts.map +1 -0
- package/dist/utils/text-chunker.js +58 -0
- package/dist/utils/text-chunker.js.map +1 -0
- package/dist/utils/typed-emitter.d.ts +14 -0
- package/dist/utils/typed-emitter.d.ts.map +1 -0
- package/dist/utils/typed-emitter.js +27 -0
- package/dist/utils/typed-emitter.js.map +1 -0
- package/dist/utils/types.d.ts +22 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +13 -0
- package/dist/utils/types.js.map +1 -0
- package/dist/vault/db.d.ts +19 -0
- package/dist/vault/db.d.ts.map +1 -0
- package/dist/vault/db.js +201 -0
- package/dist/vault/db.js.map +1 -0
- package/dist/vault/search.d.ts +16 -0
- package/dist/vault/search.d.ts.map +1 -0
- package/dist/vault/search.js +75 -0
- package/dist/vault/search.js.map +1 -0
- package/dist/vault/store.d.ts +68 -0
- package/dist/vault/store.d.ts.map +1 -0
- package/dist/vault/store.js +170 -0
- package/dist/vault/store.js.map +1 -0
- package/dist/vault/types.d.ts +50 -0
- package/dist/vault/types.d.ts.map +1 -0
- package/dist/vault/types.js +2 -0
- package/dist/vault/types.js.map +1 -0
- package/docs/sdk/getting-started.md +133 -0
- package/package.json +87 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { VaultDB } from "../vault/db.js";
|
|
2
|
+
import type { UsageRecord, UsageSummary } from "./types.js";
|
|
3
|
+
export declare class UsageTracker {
|
|
4
|
+
private readonly db;
|
|
5
|
+
constructor(db: VaultDB);
|
|
6
|
+
record(entry: UsageRecord): string;
|
|
7
|
+
summarize(opts: {
|
|
8
|
+
senderId?: string;
|
|
9
|
+
since?: number;
|
|
10
|
+
until?: number;
|
|
11
|
+
}): UsageSummary;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../../src/usage/tracker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,YAAY,CAAC;AAE5E,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,OAAO;IAExC,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IAiBlC,SAAS,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,YAAY;CAoDrF"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
export class UsageTracker {
|
|
3
|
+
db;
|
|
4
|
+
constructor(db) {
|
|
5
|
+
this.db = db;
|
|
6
|
+
}
|
|
7
|
+
record(entry) {
|
|
8
|
+
const id = randomUUID();
|
|
9
|
+
const timestamp = Date.now();
|
|
10
|
+
this.db.raw().prepare(`
|
|
11
|
+
INSERT INTO usage_log (id, timestamp, session_id, sender_id, channel_id,
|
|
12
|
+
model_id, provider_id, tokens_input, tokens_output, tokens_reasoning,
|
|
13
|
+
tokens_cache_read, tokens_cache_write, cost_usd, duration_ms)
|
|
14
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
15
|
+
`).run(id, timestamp, entry.sessionId, entry.senderId, entry.channelId, entry.modelId, entry.providerId, entry.tokensInput, entry.tokensOutput, entry.tokensReasoning, entry.tokensCacheRead, entry.tokensCacheWrite, entry.costUsd, entry.durationMs);
|
|
16
|
+
return id;
|
|
17
|
+
}
|
|
18
|
+
summarize(opts) {
|
|
19
|
+
const conditions = [];
|
|
20
|
+
const params = [];
|
|
21
|
+
if (opts.senderId) {
|
|
22
|
+
conditions.push("sender_id = ?");
|
|
23
|
+
params.push(opts.senderId);
|
|
24
|
+
}
|
|
25
|
+
if (opts.since) {
|
|
26
|
+
conditions.push("timestamp >= ?");
|
|
27
|
+
params.push(opts.since);
|
|
28
|
+
}
|
|
29
|
+
if (opts.until) {
|
|
30
|
+
conditions.push("timestamp <= ?");
|
|
31
|
+
params.push(opts.until);
|
|
32
|
+
}
|
|
33
|
+
const where = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
|
|
34
|
+
const row = this.db.raw().prepare(`
|
|
35
|
+
SELECT
|
|
36
|
+
COALESCE(SUM(tokens_input + tokens_output + tokens_reasoning), 0) as total_tokens,
|
|
37
|
+
COALESCE(SUM(cost_usd), 0) as total_cost,
|
|
38
|
+
COUNT(*) as message_count
|
|
39
|
+
FROM usage_log ${where}
|
|
40
|
+
`).get(...params);
|
|
41
|
+
const dailyRows = this.db.raw().prepare(`
|
|
42
|
+
SELECT
|
|
43
|
+
date(timestamp / 1000, 'unixepoch') as date,
|
|
44
|
+
SUM(tokens_input + tokens_output + tokens_reasoning) as tokens,
|
|
45
|
+
SUM(cost_usd) as cost,
|
|
46
|
+
COUNT(*) as messages
|
|
47
|
+
FROM usage_log ${where}
|
|
48
|
+
GROUP BY date(timestamp / 1000, 'unixepoch')
|
|
49
|
+
ORDER BY date DESC
|
|
50
|
+
LIMIT 30
|
|
51
|
+
`).all(...params);
|
|
52
|
+
return {
|
|
53
|
+
totalTokens: row.total_tokens,
|
|
54
|
+
totalCost: row.total_cost,
|
|
55
|
+
messageCount: row.message_count,
|
|
56
|
+
period: opts.since ? `since ${new Date(opts.since).toISOString()}` : "all time",
|
|
57
|
+
breakdown: dailyRows.map((r) => ({
|
|
58
|
+
date: r.date,
|
|
59
|
+
tokens: r.tokens,
|
|
60
|
+
cost: r.cost,
|
|
61
|
+
messages: r.messages,
|
|
62
|
+
})),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracker.js","sourceRoot":"","sources":["../../src/usage/tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,MAAM,OAAO,YAAY;IACM;IAA7B,YAA6B,EAAW;QAAX,OAAE,GAAF,EAAE,CAAS;IAAG,CAAC;IAE5C,MAAM,CAAC,KAAkB;QACvB,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;KAKrB,CAAC,CAAC,GAAG,CACJ,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,EAC/D,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EACtE,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,gBAAgB,EACpE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAChC,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,SAAS,CAAC,IAA2D;QACnE,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,MAAM,GAAc,EAAE,CAAC;QAE7B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAE/E,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;uBAKf,KAAK;KACvB,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAwE,CAAC;QAEzF,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;uBAMrB,KAAK;;;;KAIvB,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAA4E,CAAC;QAE7F,OAAO;YACL,WAAW,EAAE,GAAG,CAAC,YAAY;YAC7B,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,YAAY,EAAE,GAAG,CAAC,aAAa;YAC/B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU;YAC/E,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface UsageRecord {
|
|
2
|
+
readonly sessionId: string | null;
|
|
3
|
+
readonly senderId: string | null;
|
|
4
|
+
readonly channelId: string | null;
|
|
5
|
+
readonly modelId: string | null;
|
|
6
|
+
readonly providerId: string | null;
|
|
7
|
+
readonly tokensInput: number;
|
|
8
|
+
readonly tokensOutput: number;
|
|
9
|
+
readonly tokensReasoning: number;
|
|
10
|
+
readonly tokensCacheRead: number;
|
|
11
|
+
readonly tokensCacheWrite: number;
|
|
12
|
+
readonly costUsd: number;
|
|
13
|
+
readonly durationMs: number | null;
|
|
14
|
+
}
|
|
15
|
+
export interface UsageSummary {
|
|
16
|
+
readonly totalTokens: number;
|
|
17
|
+
readonly totalCost: number;
|
|
18
|
+
readonly messageCount: number;
|
|
19
|
+
readonly period: string;
|
|
20
|
+
readonly breakdown: UsageBreakdown[];
|
|
21
|
+
}
|
|
22
|
+
export interface UsageBreakdown {
|
|
23
|
+
readonly date: string;
|
|
24
|
+
readonly tokens: number;
|
|
25
|
+
readonly cost: number;
|
|
26
|
+
readonly messages: number;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/usage/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/usage/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-lock.d.ts","sourceRoot":"","sources":["../../src/utils/file-lock.ts"],"names":[],"mappings":"AAEA,wBAAsB,YAAY,CAAC,CAAC,EAClC,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,CAAC,CAAC,CAWZ"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as lockfile from "proper-lockfile";
|
|
2
|
+
export async function withFileLock(filePath, fn) {
|
|
3
|
+
let release;
|
|
4
|
+
try {
|
|
5
|
+
release = await lockfile.lock(filePath, {
|
|
6
|
+
retries: { retries: 3, minTimeout: 100 },
|
|
7
|
+
realpath: false,
|
|
8
|
+
});
|
|
9
|
+
return await fn();
|
|
10
|
+
}
|
|
11
|
+
finally {
|
|
12
|
+
await release?.();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=file-lock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-lock.js","sourceRoot":"","sources":["../../src/utils/file-lock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAAgB,EAChB,EAAwB;IAExB,IAAI,OAA0C,CAAC;IAC/C,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE;YACtC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE;YACxC,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,EAAE,EAAE,CAAC;IACpB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface RetryOptions {
|
|
2
|
+
readonly maxAttempts?: number;
|
|
3
|
+
readonly baseDelayMs?: number;
|
|
4
|
+
readonly maxDelayMs?: number;
|
|
5
|
+
readonly signal?: AbortSignal;
|
|
6
|
+
}
|
|
7
|
+
export declare function retry<T>(fn: (attempt: number) => Promise<T>, opts?: RetryOptions): Promise<T>;
|
|
8
|
+
//# sourceMappingURL=retry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAYD,wBAAsB,KAAK,CAAC,CAAC,EAC3B,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EACnC,IAAI,CAAC,EAAE,YAAY,GAClB,OAAO,CAAC,CAAC,CAAC,CAgCZ"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
const DEFAULT_MAX_ATTEMPTS = 3;
|
|
2
|
+
const DEFAULT_BASE_DELAY_MS = 200;
|
|
3
|
+
const DEFAULT_MAX_DELAY_MS = 10_000;
|
|
4
|
+
function jitteredDelay(baseMs, attempt, maxMs) {
|
|
5
|
+
const exponential = baseMs * 2 ** attempt;
|
|
6
|
+
const capped = Math.min(exponential, maxMs);
|
|
7
|
+
return capped * (0.5 + Math.random() * 0.5);
|
|
8
|
+
}
|
|
9
|
+
export async function retry(fn, opts) {
|
|
10
|
+
const maxAttempts = opts?.maxAttempts ?? DEFAULT_MAX_ATTEMPTS;
|
|
11
|
+
const baseDelayMs = opts?.baseDelayMs ?? DEFAULT_BASE_DELAY_MS;
|
|
12
|
+
const maxDelayMs = opts?.maxDelayMs ?? DEFAULT_MAX_DELAY_MS;
|
|
13
|
+
let lastError;
|
|
14
|
+
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
15
|
+
opts?.signal?.throwIfAborted();
|
|
16
|
+
try {
|
|
17
|
+
return await fn(attempt);
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
lastError = err;
|
|
21
|
+
if (attempt < maxAttempts - 1) {
|
|
22
|
+
const delay = jitteredDelay(baseDelayMs, attempt, maxDelayMs);
|
|
23
|
+
await new Promise((resolve, reject) => {
|
|
24
|
+
const timer = setTimeout(resolve, delay);
|
|
25
|
+
opts?.signal?.addEventListener("abort", () => {
|
|
26
|
+
clearTimeout(timer);
|
|
27
|
+
reject(opts.signal.reason);
|
|
28
|
+
}, { once: true });
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
throw lastError;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"AAOA,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAClC,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAEpC,SAAS,aAAa,CAAC,MAAc,EAAE,OAAe,EAAE,KAAa;IACnE,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC5C,OAAO,MAAM,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,EAAmC,EACnC,IAAmB;IAEnB,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,oBAAoB,CAAC;IAC9D,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,qBAAqB,CAAC;IAC/D,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,oBAAoB,CAAC;IAE5D,IAAI,SAAkB,CAAC;IAEvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAE/B,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,GAAG,GAAG,CAAC;YAChB,IAAI,OAAO,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;gBAC9D,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBACzC,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAC5B,OAAO,EACP,GAAG,EAAE;wBACH,YAAY,CAAC,KAAK,CAAC,CAAC;wBACpB,MAAM,CAAC,IAAI,CAAC,MAAO,CAAC,MAAM,CAAC,CAAC;oBAC9B,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,SAAS,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-chunker.d.ts","sourceRoot":"","sources":["../../src/utils/text-chunker.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKlD,CAAC;AAEF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CA6DnE"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export const PLATFORM_LIMITS = {
|
|
2
|
+
telegram: 4096,
|
|
3
|
+
discord: 2000,
|
|
4
|
+
whatsapp: 65536,
|
|
5
|
+
slack: 40000,
|
|
6
|
+
};
|
|
7
|
+
export function chunkText(text, maxLength) {
|
|
8
|
+
if (text.length <= maxLength)
|
|
9
|
+
return [text];
|
|
10
|
+
const chunks = [];
|
|
11
|
+
let remaining = text;
|
|
12
|
+
while (remaining.length > 0) {
|
|
13
|
+
if (remaining.length <= maxLength) {
|
|
14
|
+
chunks.push(remaining);
|
|
15
|
+
break;
|
|
16
|
+
}
|
|
17
|
+
const slice = remaining.slice(0, maxLength);
|
|
18
|
+
let splitAt = -1;
|
|
19
|
+
// Try paragraph boundary
|
|
20
|
+
const paraIdx = slice.lastIndexOf("\n\n");
|
|
21
|
+
if (paraIdx > maxLength * 0.3) {
|
|
22
|
+
splitAt = paraIdx + 2;
|
|
23
|
+
}
|
|
24
|
+
// Try sentence boundary
|
|
25
|
+
if (splitAt === -1) {
|
|
26
|
+
const sentenceMatch = slice.match(/[.!?]\s+(?=[A-Z])/g);
|
|
27
|
+
if (sentenceMatch) {
|
|
28
|
+
const lastSentenceEnd = slice.lastIndexOf(sentenceMatch[sentenceMatch.length - 1]);
|
|
29
|
+
if (lastSentenceEnd > maxLength * 0.3) {
|
|
30
|
+
splitAt =
|
|
31
|
+
lastSentenceEnd + sentenceMatch[sentenceMatch.length - 1].length;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// Try newline boundary
|
|
36
|
+
if (splitAt === -1) {
|
|
37
|
+
const newlineIdx = slice.lastIndexOf("\n");
|
|
38
|
+
if (newlineIdx > maxLength * 0.3) {
|
|
39
|
+
splitAt = newlineIdx + 1;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// Try word boundary
|
|
43
|
+
if (splitAt === -1) {
|
|
44
|
+
const spaceIdx = slice.lastIndexOf(" ");
|
|
45
|
+
if (spaceIdx > maxLength * 0.3) {
|
|
46
|
+
splitAt = spaceIdx + 1;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// Hard cut as last resort
|
|
50
|
+
if (splitAt === -1) {
|
|
51
|
+
splitAt = maxLength;
|
|
52
|
+
}
|
|
53
|
+
chunks.push(remaining.slice(0, splitAt));
|
|
54
|
+
remaining = remaining.slice(splitAt);
|
|
55
|
+
}
|
|
56
|
+
return chunks;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=text-chunker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-chunker.js","sourceRoot":"","sources":["../../src/utils/text-chunker.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,KAAK;CACb,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,SAAiB;IACvD,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,SAAS,GAAG,IAAI,CAAC;IAErB,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,IAAI,SAAS,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvB,MAAM;QACR,CAAC;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC5C,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;QAEjB,yBAAyB;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,OAAO,GAAG,SAAS,GAAG,GAAG,EAAE,CAAC;YAC9B,OAAO,GAAG,OAAO,GAAG,CAAC,CAAC;QACxB,CAAC;QAED,wBAAwB;QACxB,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;YACnB,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACxD,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CACvC,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CACxC,CAAC;gBACF,IAAI,eAAe,GAAG,SAAS,GAAG,GAAG,EAAE,CAAC;oBACtC,OAAO;wBACL,eAAe,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;gBACrE,CAAC;YACH,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;YACnB,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,UAAU,GAAG,SAAS,GAAG,GAAG,EAAE,CAAC;gBACjC,OAAO,GAAG,UAAU,GAAG,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,QAAQ,GAAG,SAAS,GAAG,GAAG,EAAE,CAAC;gBAC/B,OAAO,GAAG,QAAQ,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;YACnB,OAAO,GAAG,SAAS,CAAC;QACtB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACzC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
type Fn = (...args: any[]) => void;
|
|
2
|
+
export declare class TypedEventEmitter<T extends {
|
|
3
|
+
[K in keyof T]: Fn;
|
|
4
|
+
}> {
|
|
5
|
+
private readonly emitter;
|
|
6
|
+
on<K extends string & keyof T>(event: K, listener: T[K]): this;
|
|
7
|
+
off<K extends string & keyof T>(event: K, listener: T[K]): this;
|
|
8
|
+
once<K extends string & keyof T>(event: K, listener: T[K]): this;
|
|
9
|
+
emit<K extends string & keyof T>(event: K, ...args: Parameters<T[K]>): boolean;
|
|
10
|
+
removeAllListeners<K extends string & keyof T>(event?: K): this;
|
|
11
|
+
listenerCount<K extends string & keyof T>(event: K): number;
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=typed-emitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-emitter.d.ts","sourceRoot":"","sources":["../../src/utils/typed-emitter.ts"],"names":[],"mappings":"AAGA,KAAK,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;AAEnC,qBAAa,iBAAiB,CAC5B,CAAC,SAAS;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE;CAAE;IAEhC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAE9C,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAK9D,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAK/D,IAAI,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAKhE,IAAI,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,EAC7B,KAAK,EAAE,CAAC,EACR,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACxB,OAAO;IAIV,kBAAkB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI;IAK/D,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM;CAG5D"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { EventEmitter } from "node:events";
|
|
2
|
+
export class TypedEventEmitter {
|
|
3
|
+
emitter = new EventEmitter();
|
|
4
|
+
on(event, listener) {
|
|
5
|
+
this.emitter.on(event, listener);
|
|
6
|
+
return this;
|
|
7
|
+
}
|
|
8
|
+
off(event, listener) {
|
|
9
|
+
this.emitter.off(event, listener);
|
|
10
|
+
return this;
|
|
11
|
+
}
|
|
12
|
+
once(event, listener) {
|
|
13
|
+
this.emitter.once(event, listener);
|
|
14
|
+
return this;
|
|
15
|
+
}
|
|
16
|
+
emit(event, ...args) {
|
|
17
|
+
return this.emitter.emit(event, ...args);
|
|
18
|
+
}
|
|
19
|
+
removeAllListeners(event) {
|
|
20
|
+
this.emitter.removeAllListeners(event);
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
listenerCount(event) {
|
|
24
|
+
return this.emitter.listenerCount(event);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=typed-emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-emitter.js","sourceRoot":"","sources":["../../src/utils/typed-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAK3C,MAAM,OAAO,iBAAiB;IAGX,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;IAE9C,EAAE,CAA6B,KAAQ,EAAE,QAAc;QACrD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAc,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAA6B,KAAQ,EAAE,QAAc;QACtD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAc,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAA6B,KAAQ,EAAE,QAAc;QACvD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,QAAc,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CACF,KAAQ,EACR,GAAG,IAAsB;QAEzB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,kBAAkB,CAA6B,KAAS;QACtD,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAA6B,KAAQ;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
declare const brand: unique symbol;
|
|
2
|
+
type Brand<T, B extends string> = T & {
|
|
3
|
+
readonly [brand]: B;
|
|
4
|
+
};
|
|
5
|
+
export type ChannelId = Brand<string, "ChannelId">;
|
|
6
|
+
export type SessionId = Brand<string, "SessionId">;
|
|
7
|
+
export type UserId = Brand<string, "UserId">;
|
|
8
|
+
export type ChatId = Brand<string, "ChatId">;
|
|
9
|
+
export declare const ChannelId: {
|
|
10
|
+
make: (value: string) => ChannelId;
|
|
11
|
+
};
|
|
12
|
+
export declare const SessionId: {
|
|
13
|
+
make: (value: string) => SessionId;
|
|
14
|
+
};
|
|
15
|
+
export declare const UserId: {
|
|
16
|
+
make: (value: string) => UserId;
|
|
17
|
+
};
|
|
18
|
+
export declare const ChatId: {
|
|
19
|
+
make: (value: string) => ChatId;
|
|
20
|
+
};
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,EAAE,OAAO,MAAM,CAAC;AACnC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACnD,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACnD,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC7C,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE7C,eAAO,MAAM,SAAS;kBACN,MAAM,KAAG,SAAS;CACjC,CAAC;AAEF,eAAO,MAAM,SAAS;kBACN,MAAM,KAAG,SAAS;CACjC,CAAC;AAEF,eAAO,MAAM,MAAM;kBACH,MAAM,KAAG,MAAM;CAC9B,CAAC;AAEF,eAAO,MAAM,MAAM;kBACH,MAAM,KAAG,MAAM;CAC9B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const ChannelId = {
|
|
2
|
+
make: (value) => value,
|
|
3
|
+
};
|
|
4
|
+
export const SessionId = {
|
|
5
|
+
make: (value) => value,
|
|
6
|
+
};
|
|
7
|
+
export const UserId = {
|
|
8
|
+
make: (value) => value,
|
|
9
|
+
};
|
|
10
|
+
export const ChatId = {
|
|
11
|
+
make: (value) => value,
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,CAAC,KAAa,EAAa,EAAE,CAAC,KAAkB;CACvD,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,CAAC,KAAa,EAAa,EAAE,CAAC,KAAkB;CACvD,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,CAAC,KAAa,EAAU,EAAE,CAAC,KAAe;CACjD,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,CAAC,KAAa,EAAU,EAAE,CAAC,KAAe;CACjD,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import Database from "better-sqlite3";
|
|
2
|
+
export declare class VaultDB {
|
|
3
|
+
private db;
|
|
4
|
+
constructor(stateDir: string);
|
|
5
|
+
/**
|
|
6
|
+
* Forward-only migrations for existing databases.
|
|
7
|
+
* Each migration is idempotent (checks before altering).
|
|
8
|
+
*/
|
|
9
|
+
private migrate;
|
|
10
|
+
raw(): Database.Database;
|
|
11
|
+
isOpen(): boolean;
|
|
12
|
+
close(): void;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Standalone migration helper for unit tests and external tooling.
|
|
16
|
+
* Also called automatically by VaultDB constructor.
|
|
17
|
+
*/
|
|
18
|
+
export declare function runAuditLogMigration(db: Database.Database): void;
|
|
19
|
+
//# sourceMappingURL=db.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/vault/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AA4ItC,qBAAa,OAAO;IAClB,OAAO,CAAC,EAAE,CAAoB;gBAElB,QAAQ,EAAE,MAAM;IAS5B;;;OAGG;IACH,OAAO,CAAC,OAAO;IA2Bf,GAAG,IAAI,QAAQ,CAAC,QAAQ;IAIxB,MAAM,IAAI,OAAO;IAIjB,KAAK,IAAI,IAAI;CAKd;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAKhE"}
|
package/dist/vault/db.js
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import Database from "better-sqlite3";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
const SCHEMA_SQL = `
|
|
4
|
+
CREATE TABLE IF NOT EXISTS memories (
|
|
5
|
+
id TEXT PRIMARY KEY,
|
|
6
|
+
session_id TEXT NOT NULL,
|
|
7
|
+
channel_id TEXT,
|
|
8
|
+
sender_id TEXT,
|
|
9
|
+
type TEXT NOT NULL CHECK(type IN ('fact','preference','event','insight')),
|
|
10
|
+
content TEXT NOT NULL,
|
|
11
|
+
source TEXT CHECK(source IN ('user_stated','extracted','system')),
|
|
12
|
+
confidence REAL DEFAULT 1.0,
|
|
13
|
+
created_at INTEGER NOT NULL,
|
|
14
|
+
updated_at INTEGER NOT NULL,
|
|
15
|
+
expires_at INTEGER
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS memories_fts USING fts5(
|
|
19
|
+
content,
|
|
20
|
+
type,
|
|
21
|
+
content='memories',
|
|
22
|
+
content_rowid='rowid',
|
|
23
|
+
tokenize='porter unicode61'
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
CREATE TRIGGER IF NOT EXISTS memories_ai AFTER INSERT ON memories BEGIN
|
|
27
|
+
INSERT INTO memories_fts(rowid, content, type) VALUES (new.rowid, new.content, new.type);
|
|
28
|
+
END;
|
|
29
|
+
|
|
30
|
+
CREATE TRIGGER IF NOT EXISTS memories_ad AFTER DELETE ON memories BEGIN
|
|
31
|
+
INSERT INTO memories_fts(memories_fts, rowid, content, type) VALUES('delete', old.rowid, old.content, old.type);
|
|
32
|
+
END;
|
|
33
|
+
|
|
34
|
+
CREATE TRIGGER IF NOT EXISTS memories_au AFTER UPDATE ON memories BEGIN
|
|
35
|
+
INSERT INTO memories_fts(memories_fts, rowid, content, type) VALUES('delete', old.rowid, old.content, old.type);
|
|
36
|
+
INSERT INTO memories_fts(rowid, content, type) VALUES (new.rowid, new.content, new.type);
|
|
37
|
+
END;
|
|
38
|
+
|
|
39
|
+
CREATE TABLE IF NOT EXISTS profiles (
|
|
40
|
+
sender_id TEXT NOT NULL,
|
|
41
|
+
channel_id TEXT NOT NULL,
|
|
42
|
+
name TEXT,
|
|
43
|
+
timezone TEXT,
|
|
44
|
+
language TEXT,
|
|
45
|
+
preferences TEXT DEFAULT '{}',
|
|
46
|
+
first_seen INTEGER NOT NULL,
|
|
47
|
+
last_seen INTEGER NOT NULL,
|
|
48
|
+
PRIMARY KEY (sender_id, channel_id)
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
CREATE TABLE IF NOT EXISTS audit_log (
|
|
52
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
53
|
+
timestamp INTEGER NOT NULL,
|
|
54
|
+
session_id TEXT,
|
|
55
|
+
tool TEXT NOT NULL,
|
|
56
|
+
args TEXT,
|
|
57
|
+
result TEXT,
|
|
58
|
+
duration_ms INTEGER,
|
|
59
|
+
turn_id TEXT,
|
|
60
|
+
step_index INTEGER
|
|
61
|
+
);
|
|
62
|
+
CREATE INDEX IF NOT EXISTS idx_audit_log_session_id ON audit_log (session_id);
|
|
63
|
+
CREATE INDEX IF NOT EXISTS idx_audit_log_timestamp ON audit_log (timestamp DESC);
|
|
64
|
+
|
|
65
|
+
CREATE TABLE IF NOT EXISTS governance_log (
|
|
66
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
67
|
+
timestamp INTEGER NOT NULL,
|
|
68
|
+
session_id TEXT,
|
|
69
|
+
tool TEXT,
|
|
70
|
+
rule_id TEXT,
|
|
71
|
+
action TEXT CHECK(action IN ('allowed','blocked','modified')),
|
|
72
|
+
reason TEXT
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
CREATE TABLE IF NOT EXISTS usage_log (
|
|
76
|
+
id TEXT PRIMARY KEY,
|
|
77
|
+
timestamp INTEGER NOT NULL,
|
|
78
|
+
session_id TEXT,
|
|
79
|
+
sender_id TEXT,
|
|
80
|
+
channel_id TEXT,
|
|
81
|
+
model_id TEXT,
|
|
82
|
+
provider_id TEXT,
|
|
83
|
+
tokens_input INTEGER DEFAULT 0,
|
|
84
|
+
tokens_output INTEGER DEFAULT 0,
|
|
85
|
+
tokens_reasoning INTEGER DEFAULT 0,
|
|
86
|
+
tokens_cache_read INTEGER DEFAULT 0,
|
|
87
|
+
tokens_cache_write INTEGER DEFAULT 0,
|
|
88
|
+
cost_usd REAL DEFAULT 0,
|
|
89
|
+
duration_ms INTEGER
|
|
90
|
+
);
|
|
91
|
+
CREATE INDEX IF NOT EXISTS idx_usage_sender ON usage_log(sender_id);
|
|
92
|
+
CREATE INDEX IF NOT EXISTS idx_usage_timestamp ON usage_log(timestamp);
|
|
93
|
+
|
|
94
|
+
CREATE TABLE IF NOT EXISTS proactive_intents (
|
|
95
|
+
id TEXT PRIMARY KEY,
|
|
96
|
+
session_id TEXT NOT NULL,
|
|
97
|
+
channel_id TEXT NOT NULL,
|
|
98
|
+
chat_id TEXT NOT NULL,
|
|
99
|
+
sender_id TEXT NOT NULL,
|
|
100
|
+
what TEXT NOT NULL,
|
|
101
|
+
why TEXT,
|
|
102
|
+
category TEXT,
|
|
103
|
+
confidence REAL DEFAULT 0.8,
|
|
104
|
+
execute_at INTEGER NOT NULL,
|
|
105
|
+
executed_at INTEGER,
|
|
106
|
+
result TEXT,
|
|
107
|
+
created_at INTEGER NOT NULL
|
|
108
|
+
);
|
|
109
|
+
CREATE INDEX IF NOT EXISTS idx_proactive_intents_pending
|
|
110
|
+
ON proactive_intents(execute_at) WHERE executed_at IS NULL;
|
|
111
|
+
|
|
112
|
+
CREATE TABLE IF NOT EXISTS proactive_triggers (
|
|
113
|
+
id TEXT PRIMARY KEY,
|
|
114
|
+
type TEXT NOT NULL CHECK(type IN ('dormant_user','unanswered','engagement_drop','external')),
|
|
115
|
+
channel_id TEXT NOT NULL,
|
|
116
|
+
chat_id TEXT NOT NULL,
|
|
117
|
+
sender_id TEXT NOT NULL,
|
|
118
|
+
context TEXT NOT NULL,
|
|
119
|
+
execute_at INTEGER NOT NULL,
|
|
120
|
+
executed_at INTEGER,
|
|
121
|
+
result TEXT
|
|
122
|
+
);
|
|
123
|
+
CREATE INDEX IF NOT EXISTS idx_proactive_triggers_pending
|
|
124
|
+
ON proactive_triggers(execute_at) WHERE executed_at IS NULL;
|
|
125
|
+
|
|
126
|
+
CREATE TABLE IF NOT EXISTS proactive_log (
|
|
127
|
+
id TEXT PRIMARY KEY,
|
|
128
|
+
sender_id TEXT NOT NULL,
|
|
129
|
+
channel_id TEXT NOT NULL,
|
|
130
|
+
type TEXT NOT NULL CHECK(type IN ('intent','trigger')),
|
|
131
|
+
source_id TEXT NOT NULL,
|
|
132
|
+
sent_at INTEGER NOT NULL,
|
|
133
|
+
engaged INTEGER DEFAULT 0,
|
|
134
|
+
engagement_at INTEGER
|
|
135
|
+
);
|
|
136
|
+
CREATE INDEX IF NOT EXISTS idx_proactive_log_sender
|
|
137
|
+
ON proactive_log(sender_id, channel_id, sent_at);
|
|
138
|
+
`;
|
|
139
|
+
export class VaultDB {
|
|
140
|
+
db;
|
|
141
|
+
constructor(stateDir) {
|
|
142
|
+
this.db = new Database(join(stateDir, "vault.db"));
|
|
143
|
+
this.db.pragma("journal_mode = WAL");
|
|
144
|
+
this.db.pragma("busy_timeout = 5000");
|
|
145
|
+
this.db.pragma("foreign_keys = ON");
|
|
146
|
+
this.db.exec(SCHEMA_SQL);
|
|
147
|
+
this.migrate();
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Forward-only migrations for existing databases.
|
|
151
|
+
* Each migration is idempotent (checks before altering).
|
|
152
|
+
*/
|
|
153
|
+
migrate() {
|
|
154
|
+
const piColumns = this.db
|
|
155
|
+
.prepare("PRAGMA table_info(proactive_intents)")
|
|
156
|
+
.all();
|
|
157
|
+
if (piColumns.length > 0 && !piColumns.some((c) => c.name === "category")) {
|
|
158
|
+
this.db.exec("ALTER TABLE proactive_intents ADD COLUMN category TEXT");
|
|
159
|
+
}
|
|
160
|
+
// audit_log: add turn_id and step_index for trace grouping
|
|
161
|
+
const auditColumns = this.db
|
|
162
|
+
.prepare("PRAGMA table_info(audit_log)")
|
|
163
|
+
.all();
|
|
164
|
+
if (auditColumns.length > 0) {
|
|
165
|
+
if (!auditColumns.some((c) => c.name === "turn_id")) {
|
|
166
|
+
this.db.exec("ALTER TABLE audit_log ADD COLUMN turn_id TEXT");
|
|
167
|
+
}
|
|
168
|
+
if (!auditColumns.some((c) => c.name === "step_index")) {
|
|
169
|
+
this.db.exec("ALTER TABLE audit_log ADD COLUMN step_index INTEGER");
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
// Create turn_id index here (not in SCHEMA_SQL) so it runs after the column
|
|
173
|
+
// is guaranteed to exist — both for new installs and migrated databases.
|
|
174
|
+
this.db.exec("CREATE INDEX IF NOT EXISTS idx_audit_log_turn_id ON audit_log (turn_id)");
|
|
175
|
+
}
|
|
176
|
+
raw() {
|
|
177
|
+
return this.db;
|
|
178
|
+
}
|
|
179
|
+
isOpen() {
|
|
180
|
+
return this.db.open;
|
|
181
|
+
}
|
|
182
|
+
close() {
|
|
183
|
+
if (this.db.open) {
|
|
184
|
+
this.db.close();
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Standalone migration helper for unit tests and external tooling.
|
|
190
|
+
* Also called automatically by VaultDB constructor.
|
|
191
|
+
*/
|
|
192
|
+
export function runAuditLogMigration(db) {
|
|
193
|
+
const cols = db.prepare("PRAGMA table_info(audit_log)").all().map(c => c.name);
|
|
194
|
+
if (cols.length === 0)
|
|
195
|
+
return; // table doesn't exist yet
|
|
196
|
+
if (!cols.includes("turn_id"))
|
|
197
|
+
db.exec("ALTER TABLE audit_log ADD COLUMN turn_id TEXT");
|
|
198
|
+
if (!cols.includes("step_index"))
|
|
199
|
+
db.exec("ALTER TABLE audit_log ADD COLUMN step_index INTEGER");
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=db.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/vault/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuIlB,CAAC;AAEF,MAAM,OAAO,OAAO;IACV,EAAE,CAAoB;IAE9B,YAAY,QAAgB;QAC1B,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACrC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;;OAGG;IACK,OAAO;QACb,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE;aACtB,OAAO,CAAC,sCAAsC,CAAC;aAC/C,GAAG,EAA6B,CAAC;QACpC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACzE,CAAC;QAED,2DAA2D;QAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE;aACzB,OAAO,CAAC,8BAA8B,CAAC;aACvC,GAAG,EAA6B,CAAC;QACpC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;gBACpD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;YAChE,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,CAAC;gBACvD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QACD,4EAA4E;QAC5E,yEAAyE;QACzE,IAAI,CAAC,EAAE,CAAC,IAAI,CACV,yEAAyE,CAC1E,CAAC;IACJ,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;IACtB,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAqB;IACxD,MAAM,IAAI,GAAI,EAAE,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,GAAG,EAA2B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzG,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,0BAA0B;IACzD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,EAAE,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IACxF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,EAAE,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;AACnG,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { VaultDB } from "./db.js";
|
|
2
|
+
import type { Memory, MemoryType } from "./types.js";
|
|
3
|
+
export interface SearchParams {
|
|
4
|
+
senderId?: string;
|
|
5
|
+
channelId?: string;
|
|
6
|
+
type?: MemoryType;
|
|
7
|
+
limit?: number;
|
|
8
|
+
}
|
|
9
|
+
export declare class VaultSearch {
|
|
10
|
+
private readonly db;
|
|
11
|
+
constructor(vaultDb: VaultDB);
|
|
12
|
+
search(query: string, params?: SearchParams): Memory[];
|
|
13
|
+
private filteredList;
|
|
14
|
+
private toMemory;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/vault/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAER,OAAO,EAAE,OAAO;IAI5B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,EAAE;IAyCtD,OAAO,CAAC,YAAY;IA6BpB,OAAO,CAAC,QAAQ;CAejB"}
|