@getrift/rift 0.1.0-beta.2 → 0.1.0-beta.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -9
- package/dist/src/auth/keychain.d.ts +9 -0
- package/dist/src/auth/keychain.d.ts.map +1 -1
- package/dist/src/auth/keychain.js +37 -0
- package/dist/src/auth/keychain.js.map +1 -1
- package/dist/src/capture/auto-capture.d.ts +7 -0
- package/dist/src/capture/auto-capture.d.ts.map +1 -1
- package/dist/src/capture/auto-capture.js +82 -15
- package/dist/src/capture/auto-capture.js.map +1 -1
- package/dist/src/capture/auto-repair.d.ts +110 -0
- package/dist/src/capture/auto-repair.d.ts.map +1 -0
- package/dist/src/capture/auto-repair.js +269 -0
- package/dist/src/capture/auto-repair.js.map +1 -0
- package/dist/src/capture/codex-cli-triage-provider.d.ts.map +1 -1
- package/dist/src/capture/codex-cli-triage-provider.js +4 -3
- package/dist/src/capture/codex-cli-triage-provider.js.map +1 -1
- package/dist/src/capture/observability.d.ts +42 -0
- package/dist/src/capture/observability.d.ts.map +1 -1
- package/dist/src/capture/observability.js +45 -4
- package/dist/src/capture/observability.js.map +1 -1
- package/dist/src/capture/recover-quarantine.d.ts +260 -0
- package/dist/src/capture/recover-quarantine.d.ts.map +1 -0
- package/dist/src/capture/recover-quarantine.js +522 -0
- package/dist/src/capture/recover-quarantine.js.map +1 -0
- package/dist/src/cli/commands/backfill.d.ts.map +1 -1
- package/dist/src/cli/commands/backfill.js +5 -2
- package/dist/src/cli/commands/backfill.js.map +1 -1
- package/dist/src/cli/commands/capture-recover.d.ts +40 -0
- package/dist/src/cli/commands/capture-recover.d.ts.map +1 -0
- package/dist/src/cli/commands/capture-recover.js +184 -0
- package/dist/src/cli/commands/capture-recover.js.map +1 -0
- package/dist/src/cli/commands/capture.d.ts.map +1 -1
- package/dist/src/cli/commands/capture.js +96 -5
- package/dist/src/cli/commands/capture.js.map +1 -1
- package/dist/src/cli/commands/doctor.d.ts +6 -0
- package/dist/src/cli/commands/doctor.d.ts.map +1 -0
- package/dist/src/cli/commands/doctor.js +242 -0
- package/dist/src/cli/commands/doctor.js.map +1 -0
- package/dist/src/cli/commands/feedback.d.ts +12 -0
- package/dist/src/cli/commands/feedback.d.ts.map +1 -1
- package/dist/src/cli/commands/feedback.js +93 -4
- package/dist/src/cli/commands/feedback.js.map +1 -1
- package/dist/src/cli/commands/mcp-install.js +5 -2
- package/dist/src/cli/commands/mcp-install.js.map +1 -1
- package/dist/src/cli/commands/menubar.d.ts +30 -0
- package/dist/src/cli/commands/menubar.d.ts.map +1 -0
- package/dist/src/cli/commands/menubar.js +180 -0
- package/dist/src/cli/commands/menubar.js.map +1 -0
- package/dist/src/cli/commands/onboard.d.ts +129 -0
- package/dist/src/cli/commands/onboard.d.ts.map +1 -1
- package/dist/src/cli/commands/onboard.js +752 -171
- package/dist/src/cli/commands/onboard.js.map +1 -1
- package/dist/src/cli/commands/rebuild.d.ts.map +1 -1
- package/dist/src/cli/commands/rebuild.js +6 -3
- package/dist/src/cli/commands/rebuild.js.map +1 -1
- package/dist/src/cli/commands/reconcile.d.ts.map +1 -1
- package/dist/src/cli/commands/reconcile.js +12 -0
- package/dist/src/cli/commands/reconcile.js.map +1 -1
- package/dist/src/cli/commands/review.d.ts.map +1 -1
- package/dist/src/cli/commands/review.js +22 -7
- package/dist/src/cli/commands/review.js.map +1 -1
- package/dist/src/cli/commands/search.d.ts +2 -0
- package/dist/src/cli/commands/search.d.ts.map +1 -1
- package/dist/src/cli/commands/search.js +34 -4
- package/dist/src/cli/commands/search.js.map +1 -1
- package/dist/src/cli/commands/status.d.ts +9 -7
- package/dist/src/cli/commands/status.d.ts.map +1 -1
- package/dist/src/cli/commands/status.js +113 -12
- package/dist/src/cli/commands/status.js.map +1 -1
- package/dist/src/cli/commands/token-issue.d.ts.map +1 -1
- package/dist/src/cli/commands/token-issue.js +9 -1
- package/dist/src/cli/commands/token-issue.js.map +1 -1
- package/dist/src/cli/commands/triage.d.ts.map +1 -1
- package/dist/src/cli/commands/triage.js +7 -5
- package/dist/src/cli/commands/triage.js.map +1 -1
- package/dist/src/cli/commands/update.d.ts +80 -0
- package/dist/src/cli/commands/update.d.ts.map +1 -0
- package/dist/src/cli/commands/update.js +378 -0
- package/dist/src/cli/commands/update.js.map +1 -0
- package/dist/src/cli/default-config-path.d.ts +15 -0
- package/dist/src/cli/default-config-path.d.ts.map +1 -0
- package/dist/src/cli/default-config-path.js +27 -0
- package/dist/src/cli/default-config-path.js.map +1 -0
- package/dist/src/cli/feedback/feedback-config.d.ts +46 -0
- package/dist/src/cli/feedback/feedback-config.d.ts.map +1 -1
- package/dist/src/cli/feedback/feedback-config.js +130 -4
- package/dist/src/cli/feedback/feedback-config.js.map +1 -1
- package/dist/src/cli/feedback/feedback-history.d.ts +7 -0
- package/dist/src/cli/feedback/feedback-history.d.ts.map +1 -1
- package/dist/src/cli/feedback/feedback-history.js +39 -9
- package/dist/src/cli/feedback/feedback-history.js.map +1 -1
- package/dist/src/cli/feedback/feedback-payload.d.ts +22 -1
- package/dist/src/cli/feedback/feedback-payload.d.ts.map +1 -1
- package/dist/src/cli/feedback/feedback-payload.js.map +1 -1
- package/dist/src/cli/feedback/feedback-relay.d.ts +2 -2
- package/dist/src/cli/feedback/feedback-relay.d.ts.map +1 -1
- package/dist/src/cli/feedback/feedback-relay.js.map +1 -1
- package/dist/src/cli/feedback/invite.d.ts +17 -0
- package/dist/src/cli/feedback/invite.d.ts.map +1 -0
- package/dist/src/cli/feedback/invite.js +67 -0
- package/dist/src/cli/feedback/invite.js.map +1 -0
- package/dist/src/cli/feedback/relay-secret-store.d.ts +32 -0
- package/dist/src/cli/feedback/relay-secret-store.d.ts.map +1 -0
- package/dist/src/cli/feedback/relay-secret-store.js +137 -0
- package/dist/src/cli/feedback/relay-secret-store.js.map +1 -0
- package/dist/src/cli/http-client.d.ts +93 -1
- package/dist/src/cli/http-client.d.ts.map +1 -1
- package/dist/src/cli/http-client.js +254 -6
- package/dist/src/cli/http-client.js.map +1 -1
- package/dist/src/cli/index.d.ts.map +1 -1
- package/dist/src/cli/index.js +29 -6
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/postinstall-menubar.d.ts +22 -0
- package/dist/src/cli/postinstall-menubar.d.ts.map +1 -0
- package/dist/src/cli/postinstall-menubar.js +39 -0
- package/dist/src/cli/postinstall-menubar.js.map +1 -0
- package/dist/src/cli/status/friend-header.d.ts +8 -1
- package/dist/src/cli/status/friend-header.d.ts.map +1 -1
- package/dist/src/cli/status/friend-header.js +334 -26
- package/dist/src/cli/status/friend-header.js.map +1 -1
- package/dist/src/cli/ui.d.ts +47 -0
- package/dist/src/cli/ui.d.ts.map +1 -0
- package/dist/src/cli/ui.js +166 -0
- package/dist/src/cli/ui.js.map +1 -0
- package/dist/src/config/schema.d.ts +79 -0
- package/dist/src/config/schema.d.ts.map +1 -1
- package/dist/src/config/schema.js +44 -0
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/diagnostics/codex-preflight.d.ts +33 -0
- package/dist/src/diagnostics/codex-preflight.d.ts.map +1 -0
- package/dist/src/diagnostics/codex-preflight.js +75 -0
- package/dist/src/diagnostics/codex-preflight.js.map +1 -0
- package/dist/src/diagnostics/doctor.d.ts +106 -0
- package/dist/src/diagnostics/doctor.d.ts.map +1 -0
- package/dist/src/diagnostics/doctor.js +334 -0
- package/dist/src/diagnostics/doctor.js.map +1 -0
- package/dist/src/diagnostics/notify.d.ts +90 -0
- package/dist/src/diagnostics/notify.d.ts.map +1 -0
- package/dist/src/diagnostics/notify.js +177 -0
- package/dist/src/diagnostics/notify.js.map +1 -0
- package/dist/src/diagnostics/repair-prompt.d.ts +49 -0
- package/dist/src/diagnostics/repair-prompt.d.ts.map +1 -0
- package/dist/src/diagnostics/repair-prompt.js +223 -0
- package/dist/src/diagnostics/repair-prompt.js.map +1 -0
- package/dist/src/ingestion/inbox-core/conversation-fingerprint.d.ts +2 -0
- package/dist/src/ingestion/inbox-core/conversation-fingerprint.d.ts.map +1 -0
- package/dist/src/ingestion/inbox-core/conversation-fingerprint.js +27 -0
- package/dist/src/ingestion/inbox-core/conversation-fingerprint.js.map +1 -0
- package/dist/src/ingestion/inbox-core/conversation-key.d.ts +2 -0
- package/dist/src/ingestion/inbox-core/conversation-key.d.ts.map +1 -0
- package/dist/src/ingestion/inbox-core/conversation-key.js +31 -0
- package/dist/src/ingestion/inbox-core/conversation-key.js.map +1 -0
- package/dist/src/ingestion/inbox-core/extensions.d.ts +3 -0
- package/dist/src/ingestion/inbox-core/extensions.d.ts.map +1 -0
- package/dist/src/ingestion/inbox-core/extensions.js +16 -0
- package/dist/src/ingestion/inbox-core/extensions.js.map +1 -0
- package/dist/src/ingestion/inbox-core/idempotency.d.ts +2 -0
- package/dist/src/ingestion/inbox-core/idempotency.d.ts.map +1 -0
- package/dist/src/ingestion/inbox-core/idempotency.js +22 -0
- package/dist/src/ingestion/inbox-core/idempotency.js.map +1 -0
- package/dist/src/ingestion/inbox-core/index.d.ts +20 -0
- package/dist/src/ingestion/inbox-core/index.d.ts.map +1 -0
- package/dist/src/ingestion/inbox-core/index.js +20 -0
- package/dist/src/ingestion/inbox-core/index.js.map +1 -0
- package/dist/src/ingestion/inbox-core/source-detection.d.ts +2 -0
- package/dist/src/ingestion/inbox-core/source-detection.d.ts.map +1 -0
- package/dist/src/ingestion/inbox-core/source-detection.js +23 -0
- package/dist/src/ingestion/inbox-core/source-detection.js.map +1 -0
- package/dist/src/ingestion/inbox-core/source-sniffer.d.ts +11 -0
- package/dist/src/ingestion/inbox-core/source-sniffer.d.ts.map +1 -0
- package/dist/src/ingestion/inbox-core/source-sniffer.js +69 -0
- package/dist/src/ingestion/inbox-core/source-sniffer.js.map +1 -0
- package/dist/src/ingestion/inbox-core/zip-sniffer.d.ts +70 -0
- package/dist/src/ingestion/inbox-core/zip-sniffer.d.ts.map +1 -0
- package/dist/src/ingestion/inbox-core/zip-sniffer.js +161 -0
- package/dist/src/ingestion/inbox-core/zip-sniffer.js.map +1 -0
- package/dist/src/ingestion/inbox-watcher.d.ts.map +1 -1
- package/dist/src/ingestion/inbox-watcher.js +34 -50
- package/dist/src/ingestion/inbox-watcher.js.map +1 -1
- package/dist/src/ingestion/indexer.d.ts +7 -0
- package/dist/src/ingestion/indexer.d.ts.map +1 -1
- package/dist/src/ingestion/indexer.js +36 -2
- package/dist/src/ingestion/indexer.js.map +1 -1
- package/dist/src/ingestion/metadata-extraction.d.ts +8 -5
- package/dist/src/ingestion/metadata-extraction.d.ts.map +1 -1
- package/dist/src/ingestion/metadata-extraction.js +24 -5
- package/dist/src/ingestion/metadata-extraction.js.map +1 -1
- package/dist/src/ingestion/skip-quarantine.d.ts +10 -0
- package/dist/src/ingestion/skip-quarantine.d.ts.map +1 -0
- package/dist/src/ingestion/skip-quarantine.js +35 -0
- package/dist/src/ingestion/skip-quarantine.js.map +1 -0
- package/dist/src/jobs/handlers/compact.d.ts.map +1 -1
- package/dist/src/jobs/handlers/compact.js +30 -4
- package/dist/src/jobs/handlers/compact.js.map +1 -1
- package/dist/src/jobs/handlers/dedupe-conversations.d.ts +134 -0
- package/dist/src/jobs/handlers/dedupe-conversations.d.ts.map +1 -0
- package/dist/src/jobs/handlers/dedupe-conversations.js +371 -0
- package/dist/src/jobs/handlers/dedupe-conversations.js.map +1 -0
- package/dist/src/jobs/handlers/ingest.d.ts.map +1 -1
- package/dist/src/jobs/handlers/ingest.js +295 -41
- package/dist/src/jobs/handlers/ingest.js.map +1 -1
- package/dist/src/jobs/handlers/reconcile.d.ts +28 -0
- package/dist/src/jobs/handlers/reconcile.d.ts.map +1 -1
- package/dist/src/jobs/handlers/reconcile.js +145 -19
- package/dist/src/jobs/handlers/reconcile.js.map +1 -1
- package/dist/src/jobs/handlers/reindex.d.ts.map +1 -1
- package/dist/src/jobs/handlers/reindex.js +13 -2
- package/dist/src/jobs/handlers/reindex.js.map +1 -1
- package/dist/src/jobs/handlers/save.d.ts.map +1 -1
- package/dist/src/jobs/handlers/save.js +57 -3
- package/dist/src/jobs/handlers/save.js.map +1 -1
- package/dist/src/jobs/queue.d.ts +51 -1
- package/dist/src/jobs/queue.d.ts.map +1 -1
- package/dist/src/jobs/queue.js +466 -26
- package/dist/src/jobs/queue.js.map +1 -1
- package/dist/src/jobs/worker-entry.d.ts.map +1 -1
- package/dist/src/jobs/worker-entry.js +35 -7
- package/dist/src/jobs/worker-entry.js.map +1 -1
- package/dist/src/jobs/worker-process.d.ts +11 -0
- package/dist/src/jobs/worker-process.d.ts.map +1 -1
- package/dist/src/jobs/worker-process.js +37 -4
- package/dist/src/jobs/worker-process.js.map +1 -1
- package/dist/src/main.js +199 -46
- package/dist/src/main.js.map +1 -1
- package/dist/src/mcp/errors.d.ts.map +1 -1
- package/dist/src/mcp/errors.js +20 -1
- package/dist/src/mcp/errors.js.map +1 -1
- package/dist/src/mcp/server.d.ts.map +1 -1
- package/dist/src/mcp/server.js +43 -3
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/mcp/tools/context-pack.d.ts.map +1 -1
- package/dist/src/mcp/tools/context-pack.js +164 -23
- package/dist/src/mcp/tools/context-pack.js.map +1 -1
- package/dist/src/mcp/tools/search.d.ts +6 -2
- package/dist/src/mcp/tools/search.d.ts.map +1 -1
- package/dist/src/mcp/tools/search.js +35 -4
- package/dist/src/mcp/tools/search.js.map +1 -1
- package/dist/src/observability/embedding-events.d.ts +52 -0
- package/dist/src/observability/embedding-events.d.ts.map +1 -0
- package/dist/src/observability/embedding-events.js +149 -0
- package/dist/src/observability/embedding-events.js.map +1 -0
- package/dist/src/observability/index-events.d.ts +70 -0
- package/dist/src/observability/index-events.d.ts.map +1 -0
- package/dist/src/observability/index-events.js +148 -0
- package/dist/src/observability/index-events.js.map +1 -0
- package/dist/src/observability/onboarding-metric.d.ts +131 -0
- package/dist/src/observability/onboarding-metric.d.ts.map +1 -0
- package/dist/src/observability/onboarding-metric.js +351 -0
- package/dist/src/observability/onboarding-metric.js.map +1 -0
- package/dist/src/observability/tool-usage-stats.d.ts +77 -4
- package/dist/src/observability/tool-usage-stats.d.ts.map +1 -1
- package/dist/src/observability/tool-usage-stats.js +112 -32
- package/dist/src/observability/tool-usage-stats.js.map +1 -1
- package/dist/src/observability/tool-usage.d.ts +100 -7
- package/dist/src/observability/tool-usage.d.ts.map +1 -1
- package/dist/src/observability/tool-usage.js +196 -33
- package/dist/src/observability/tool-usage.js.map +1 -1
- package/dist/src/observability/version-check.d.ts +71 -0
- package/dist/src/observability/version-check.d.ts.map +1 -0
- package/dist/src/observability/version-check.js +198 -0
- package/dist/src/observability/version-check.js.map +1 -0
- package/dist/src/providers/basic-metadata-extraction.d.ts +60 -0
- package/dist/src/providers/basic-metadata-extraction.d.ts.map +1 -0
- package/dist/src/providers/basic-metadata-extraction.js +114 -0
- package/dist/src/providers/basic-metadata-extraction.js.map +1 -0
- package/dist/src/providers/codex-cli-metadata-extraction.d.ts +1 -0
- package/dist/src/providers/codex-cli-metadata-extraction.d.ts.map +1 -1
- package/dist/src/providers/codex-cli-metadata-extraction.js +6 -2
- package/dist/src/providers/codex-cli-metadata-extraction.js.map +1 -1
- package/dist/src/providers/codex-cli-model.d.ts +61 -0
- package/dist/src/providers/codex-cli-model.d.ts.map +1 -0
- package/dist/src/providers/codex-cli-model.js +194 -0
- package/dist/src/providers/codex-cli-model.js.map +1 -0
- package/dist/src/providers/codex-cli-runner.d.ts +39 -0
- package/dist/src/providers/codex-cli-runner.d.ts.map +1 -1
- package/dist/src/providers/codex-cli-runner.js +234 -48
- package/dist/src/providers/codex-cli-runner.js.map +1 -1
- package/dist/src/providers/conversation-generation.d.ts.map +1 -1
- package/dist/src/providers/conversation-generation.js +43 -6
- package/dist/src/providers/conversation-generation.js.map +1 -1
- package/dist/src/providers/ollama-embed.d.ts +2 -1
- package/dist/src/providers/ollama-embed.d.ts.map +1 -1
- package/dist/src/providers/ollama-embed.js +1 -0
- package/dist/src/providers/ollama-embed.js.map +1 -1
- package/dist/src/providers/openai-metadata-extraction.d.ts +3 -3
- package/dist/src/providers/openai-metadata-extraction.d.ts.map +1 -1
- package/dist/src/providers/openai-metadata-extraction.js +18 -3
- package/dist/src/providers/openai-metadata-extraction.js.map +1 -1
- package/dist/src/providers/placeholder-embed.d.ts +56 -0
- package/dist/src/providers/placeholder-embed.d.ts.map +1 -0
- package/dist/src/providers/placeholder-embed.js +64 -0
- package/dist/src/providers/placeholder-embed.js.map +1 -0
- package/dist/src/providers/stub.d.ts +2 -0
- package/dist/src/providers/stub.d.ts.map +1 -1
- package/dist/src/providers/stub.js +2 -0
- package/dist/src/providers/stub.js.map +1 -1
- package/dist/src/providers/types.d.ts +11 -0
- package/dist/src/providers/types.d.ts.map +1 -1
- package/dist/src/providers/voyage.d.ts +2 -1
- package/dist/src/providers/voyage.d.ts.map +1 -1
- package/dist/src/providers/voyage.js +1 -0
- package/dist/src/providers/voyage.js.map +1 -1
- package/dist/src/retrieval/compact.d.ts +116 -2
- package/dist/src/retrieval/compact.d.ts.map +1 -1
- package/dist/src/retrieval/compact.js +158 -5
- package/dist/src/retrieval/compact.js.map +1 -1
- package/dist/src/retrieval/context-pack.d.ts +114 -0
- package/dist/src/retrieval/context-pack.d.ts.map +1 -1
- package/dist/src/retrieval/context-pack.js +292 -8
- package/dist/src/retrieval/context-pack.js.map +1 -1
- package/dist/src/retrieval/current-truth.d.ts +360 -0
- package/dist/src/retrieval/current-truth.d.ts.map +1 -0
- package/dist/src/retrieval/current-truth.js +766 -0
- package/dist/src/retrieval/current-truth.js.map +1 -0
- package/dist/src/retrieval/git-state.d.ts +53 -0
- package/dist/src/retrieval/git-state.d.ts.map +1 -0
- package/dist/src/retrieval/git-state.js +174 -0
- package/dist/src/retrieval/git-state.js.map +1 -0
- package/dist/src/retrieval/lexical.d.ts.map +1 -1
- package/dist/src/retrieval/lexical.js +19 -3
- package/dist/src/retrieval/lexical.js.map +1 -1
- package/dist/src/retrieval/locator-boost.d.ts +37 -0
- package/dist/src/retrieval/locator-boost.d.ts.map +1 -0
- package/dist/src/retrieval/locator-boost.js +129 -0
- package/dist/src/retrieval/locator-boost.js.map +1 -0
- package/dist/src/retrieval/report-demotion.d.ts +46 -0
- package/dist/src/retrieval/report-demotion.d.ts.map +1 -0
- package/dist/src/retrieval/report-demotion.js +169 -0
- package/dist/src/retrieval/report-demotion.js.map +1 -0
- package/dist/src/retrieval/vector.d.ts.map +1 -1
- package/dist/src/retrieval/vector.js +11 -2
- package/dist/src/retrieval/vector.js.map +1 -1
- package/dist/src/server/app.d.ts.map +1 -1
- package/dist/src/server/app.js +92 -11
- package/dist/src/server/app.js.map +1 -1
- package/dist/src/server/routes/compact.d.ts.map +1 -1
- package/dist/src/server/routes/compact.js +4 -1
- package/dist/src/server/routes/compact.js.map +1 -1
- package/dist/src/server/routes/context.d.ts +1 -1
- package/dist/src/server/routes/context.d.ts.map +1 -1
- package/dist/src/server/routes/context.js +2 -1
- package/dist/src/server/routes/context.js.map +1 -1
- package/dist/src/server/routes/conversations-search.d.ts.map +1 -1
- package/dist/src/server/routes/conversations-search.js +28 -3
- package/dist/src/server/routes/conversations-search.js.map +1 -1
- package/dist/src/server/routes/enqueue.d.ts +11 -0
- package/dist/src/server/routes/enqueue.d.ts.map +1 -0
- package/dist/src/server/routes/enqueue.js +17 -0
- package/dist/src/server/routes/enqueue.js.map +1 -0
- package/dist/src/server/routes/friend-status.d.ts +339 -3
- package/dist/src/server/routes/friend-status.d.ts.map +1 -1
- package/dist/src/server/routes/friend-status.js +447 -13
- package/dist/src/server/routes/friend-status.js.map +1 -1
- package/dist/src/server/routes/ingest.d.ts.map +1 -1
- package/dist/src/server/routes/ingest.js +5 -2
- package/dist/src/server/routes/ingest.js.map +1 -1
- package/dist/src/server/routes/mcp-usage.d.ts +5 -4
- package/dist/src/server/routes/mcp-usage.d.ts.map +1 -1
- package/dist/src/server/routes/mcp-usage.js.map +1 -1
- package/dist/src/server/routes/reconcile.d.ts.map +1 -1
- package/dist/src/server/routes/reconcile.js +20 -1
- package/dist/src/server/routes/reconcile.js.map +1 -1
- package/dist/src/server/routes/reindex.d.ts.map +1 -1
- package/dist/src/server/routes/reindex.js +4 -1
- package/dist/src/server/routes/reindex.js.map +1 -1
- package/dist/src/server/routes/save.d.ts.map +1 -1
- package/dist/src/server/routes/save.js +4 -1
- package/dist/src/server/routes/save.js.map +1 -1
- package/dist/src/server/routes/search.d.ts +1 -1
- package/dist/src/server/routes/search.d.ts.map +1 -1
- package/dist/src/server/routes/search.js +253 -29
- package/dist/src/server/routes/search.js.map +1 -1
- package/dist/src/server/routes/triage.d.ts.map +1 -1
- package/dist/src/server/routes/triage.js +4 -1
- package/dist/src/server/routes/triage.js.map +1 -1
- package/dist/src/storage/rebuild.d.ts +35 -1
- package/dist/src/storage/rebuild.d.ts.map +1 -1
- package/dist/src/storage/rebuild.js +288 -64
- package/dist/src/storage/rebuild.js.map +1 -1
- package/dist/src/storage/tables.d.ts +29 -0
- package/dist/src/storage/tables.d.ts.map +1 -1
- package/dist/src/storage/tables.js +32 -1
- package/dist/src/storage/tables.js.map +1 -1
- package/operator/swiftbar/render-menu.py +524 -0
- package/operator/swiftbar/rift.10s.sh +176 -0
- package/package.json +9 -3
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `rift menubar install` — install/update the SwiftBar heartbeat plugin.
|
|
3
|
+
*
|
|
4
|
+
* The menu surface lives in `operator/swiftbar/` because it is a tiny
|
|
5
|
+
* operator-adjacent script, but beta users should not have to symlink repo
|
|
6
|
+
* paths by hand. This command links the packaged wrapper into SwiftBar's
|
|
7
|
+
* plugin folder. The wrapper follows the symlink back to the package so the
|
|
8
|
+
* renderer beside it updates whenever `npm install -g @getrift/rift@beta`
|
|
9
|
+
* replaces the package on disk.
|
|
10
|
+
*/
|
|
11
|
+
import fs from "node:fs";
|
|
12
|
+
import os from "node:os";
|
|
13
|
+
import path from "node:path";
|
|
14
|
+
import { fileURLToPath } from "node:url";
|
|
15
|
+
import { Command } from "commander";
|
|
16
|
+
import { printError, printJson, printText } from "../output.js";
|
|
17
|
+
export const SWIFTBAR_PLUGIN_NAME = "rift.10s.sh";
|
|
18
|
+
export const SWIFTBAR_RENDERER_NAME = "render-menu.py";
|
|
19
|
+
export function makeMenuBarCommand() {
|
|
20
|
+
const cmd = new Command("menubar").description("Install and manage the Rift menu bar");
|
|
21
|
+
cmd
|
|
22
|
+
.command("install")
|
|
23
|
+
.description("Install or refresh the SwiftBar menu plugin")
|
|
24
|
+
.option("--plugin-dir <path>", "Override SwiftBar's plugin directory")
|
|
25
|
+
.option("--copy", "Copy scripts instead of symlinking to the packaged files")
|
|
26
|
+
.option("--yes", "Non-interactive install; accepted for install scripts")
|
|
27
|
+
.action((opts, command) => {
|
|
28
|
+
const globalOpts = command.optsWithGlobals();
|
|
29
|
+
let result;
|
|
30
|
+
try {
|
|
31
|
+
const installOpts = {};
|
|
32
|
+
if (opts.pluginDir)
|
|
33
|
+
installOpts.pluginDir = opts.pluginDir;
|
|
34
|
+
if (opts.copy !== undefined)
|
|
35
|
+
installOpts.copy = opts.copy;
|
|
36
|
+
result = installMenuBar(installOpts);
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
40
|
+
if (globalOpts.json) {
|
|
41
|
+
printJson({ ok: false, error: message });
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
printError(`Menu bar install failed: ${message}`);
|
|
45
|
+
}
|
|
46
|
+
process.exitCode = 1;
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if (globalOpts.json) {
|
|
50
|
+
printJson(result);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
for (const line of result.transcript)
|
|
54
|
+
printText(line);
|
|
55
|
+
}
|
|
56
|
+
if (!result.ok)
|
|
57
|
+
process.exitCode = result.skipped ? 0 : 1;
|
|
58
|
+
});
|
|
59
|
+
return cmd;
|
|
60
|
+
}
|
|
61
|
+
export function defaultSwiftBarPluginDir(homeDir = os.homedir()) {
|
|
62
|
+
return path.join(homeDir, "Library", "Application Support", "SwiftBar", "Plugins");
|
|
63
|
+
}
|
|
64
|
+
export function installMenuBar(opts = {}) {
|
|
65
|
+
const platform = opts.platform ?? process.platform;
|
|
66
|
+
const homeDir = opts.homeDir ?? os.homedir();
|
|
67
|
+
const pluginDir = path.resolve(opts.pluginDir ?? process.env.RIFT_SWIFTBAR_PLUGIN_DIR ?? defaultSwiftBarPluginDir(homeDir));
|
|
68
|
+
const pluginPath = path.join(pluginDir, SWIFTBAR_PLUGIN_NAME);
|
|
69
|
+
const transcript = [];
|
|
70
|
+
const swiftBarDetected = detectSwiftBar(homeDir);
|
|
71
|
+
if (platform !== "darwin") {
|
|
72
|
+
const reason = "SwiftBar menu is macOS-only.";
|
|
73
|
+
return {
|
|
74
|
+
ok: true,
|
|
75
|
+
skipped: true,
|
|
76
|
+
reason,
|
|
77
|
+
pluginDir,
|
|
78
|
+
pluginPath,
|
|
79
|
+
sourceDir: null,
|
|
80
|
+
sourcePath: null,
|
|
81
|
+
rendererPath: null,
|
|
82
|
+
mode: null,
|
|
83
|
+
backupPath: null,
|
|
84
|
+
swiftBarDetected,
|
|
85
|
+
transcript: [`Menu bar skipped: ${reason}`],
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
const sourceDir = path.resolve(opts.sourceDir ??
|
|
89
|
+
path.join(opts.packageRoot ?? findPackageRoot(), "operator", "swiftbar"));
|
|
90
|
+
const sourcePath = path.join(sourceDir, SWIFTBAR_PLUGIN_NAME);
|
|
91
|
+
const rendererPath = path.join(sourceDir, SWIFTBAR_RENDERER_NAME);
|
|
92
|
+
assertReadableFile(sourcePath, "SwiftBar wrapper");
|
|
93
|
+
assertReadableFile(rendererPath, "SwiftBar renderer");
|
|
94
|
+
fs.mkdirSync(pluginDir, { recursive: true });
|
|
95
|
+
let backupPath = null;
|
|
96
|
+
const mode = opts.copy ? "copy" : "symlink";
|
|
97
|
+
if (mode === "symlink") {
|
|
98
|
+
backupPath = replaceExistingPlugin(pluginPath, sourcePath, opts.now);
|
|
99
|
+
fs.symlinkSync(sourcePath, pluginPath);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
backupPath = replaceExistingPlugin(pluginPath, sourcePath, opts.now);
|
|
103
|
+
fs.copyFileSync(sourcePath, pluginPath);
|
|
104
|
+
fs.copyFileSync(rendererPath, path.join(pluginDir, SWIFTBAR_RENDERER_NAME));
|
|
105
|
+
fs.chmodSync(pluginPath, 0o755);
|
|
106
|
+
}
|
|
107
|
+
transcript.push("Menu bar installed.");
|
|
108
|
+
if (swiftBarDetected) {
|
|
109
|
+
transcript.push("If the Rift icon is not visible, open SwiftBar or choose Refresh all.");
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
transcript.push("SwiftBar app was not detected. Install/open SwiftBar to show the Rift icon.");
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
ok: true,
|
|
116
|
+
skipped: false,
|
|
117
|
+
reason: null,
|
|
118
|
+
pluginDir,
|
|
119
|
+
pluginPath,
|
|
120
|
+
sourceDir,
|
|
121
|
+
sourcePath,
|
|
122
|
+
rendererPath,
|
|
123
|
+
mode,
|
|
124
|
+
backupPath,
|
|
125
|
+
swiftBarDetected,
|
|
126
|
+
transcript,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
function assertReadableFile(filePath, label) {
|
|
130
|
+
if (!fs.existsSync(filePath) || !fs.statSync(filePath).isFile()) {
|
|
131
|
+
throw new Error(`${label} missing from package: ${filePath}`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
function replaceExistingPlugin(pluginPath, sourcePath, now) {
|
|
135
|
+
let stat;
|
|
136
|
+
try {
|
|
137
|
+
stat = fs.lstatSync(pluginPath);
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
if (stat.isSymbolicLink()) {
|
|
143
|
+
const target = fs.readlinkSync(pluginPath);
|
|
144
|
+
const resolved = path.resolve(path.dirname(pluginPath), target);
|
|
145
|
+
if (resolved === sourcePath) {
|
|
146
|
+
fs.unlinkSync(pluginPath);
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
fs.unlinkSync(pluginPath);
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
const stamp = toBackupStamp((now ? now() : new Date()).toISOString());
|
|
153
|
+
const backupPath = `${pluginPath}.bak.${stamp}`;
|
|
154
|
+
fs.renameSync(pluginPath, backupPath);
|
|
155
|
+
return backupPath;
|
|
156
|
+
}
|
|
157
|
+
function toBackupStamp(iso) {
|
|
158
|
+
return iso.replace(/[:.]/g, "-");
|
|
159
|
+
}
|
|
160
|
+
function detectSwiftBar(homeDir) {
|
|
161
|
+
return [
|
|
162
|
+
"/Applications/SwiftBar.app",
|
|
163
|
+
path.join(homeDir, "Applications", "SwiftBar.app"),
|
|
164
|
+
].some((candidate) => fs.existsSync(candidate));
|
|
165
|
+
}
|
|
166
|
+
function findPackageRoot() {
|
|
167
|
+
let dir = path.dirname(fileURLToPath(import.meta.url));
|
|
168
|
+
for (let i = 0; i < 8; i += 1) {
|
|
169
|
+
if (fs.existsSync(path.join(dir, "package.json")) &&
|
|
170
|
+
fs.existsSync(path.join(dir, "operator", "swiftbar", SWIFTBAR_PLUGIN_NAME))) {
|
|
171
|
+
return dir;
|
|
172
|
+
}
|
|
173
|
+
const parent = path.dirname(dir);
|
|
174
|
+
if (parent === dir)
|
|
175
|
+
break;
|
|
176
|
+
dir = parent;
|
|
177
|
+
}
|
|
178
|
+
throw new Error("Could not locate packaged SwiftBar assets.");
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=menubar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menubar.js","sourceRoot":"","sources":["../../../../src/cli/commands/menubar.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,60 @@
|
|
|
1
|
+
import readline from "node:readline";
|
|
1
2
|
import { Command } from "commander";
|
|
2
3
|
import { loadRiftEnv } from "../../runtime/rift-env.js";
|
|
3
4
|
import { validateVoyageKey } from "../../onboarding/voyage-validate.js";
|
|
4
5
|
import { writeEnvFile } from "../../onboarding/env-file.js";
|
|
6
|
+
import { type RelaySecretStore } from "../feedback/relay-secret-store.js";
|
|
7
|
+
/**
|
|
8
|
+
* Commander.js note on `--no-<flag>` shape.
|
|
9
|
+
*
|
|
10
|
+
* `.option("--no-foo", ...)` sets `opts.foo = false` on the parsed
|
|
11
|
+
* options, NOT `opts.noFoo = true`. Two consequences:
|
|
12
|
+
* 1. We accept BOTH shapes in this interface: the affirmative key
|
|
13
|
+
* (`codexCapture: boolean`, `importExport: string | boolean`, …)
|
|
14
|
+
* is what Commander populates; the `no*` keys exist purely so
|
|
15
|
+
* tests that drive `runOnboard` programmatically can keep passing
|
|
16
|
+
* `{ noCodexCapture: true }` without going through the parser.
|
|
17
|
+
* 2. Every read goes through `isOff(opts, "<affirmative>", "<no*>")`
|
|
18
|
+
* so a real CLI invocation and a programmatic one resolve to the
|
|
19
|
+
* same truth. Reading only `opts.no*` (the pre-2026-05-19 bug)
|
|
20
|
+
* silently ignored the CLI form.
|
|
21
|
+
*/
|
|
22
|
+
interface OnboardOpts {
|
|
23
|
+
voyageKey?: string | boolean;
|
|
24
|
+
noVoyageKey?: boolean;
|
|
25
|
+
voyageLabel?: string;
|
|
26
|
+
invite?: string;
|
|
27
|
+
enableFeedbackRelay?: string;
|
|
28
|
+
relaySecret?: string;
|
|
29
|
+
allowUnsignedFeedbackRelay?: boolean;
|
|
30
|
+
feedbackRelay?: boolean;
|
|
31
|
+
noFeedbackRelay?: boolean;
|
|
32
|
+
email?: string;
|
|
33
|
+
importExport?: string | boolean;
|
|
34
|
+
noImportExport?: boolean;
|
|
35
|
+
reconfigureVoyage?: boolean;
|
|
36
|
+
yes?: boolean;
|
|
37
|
+
skipCapture?: boolean;
|
|
38
|
+
withClaudeHook?: boolean;
|
|
39
|
+
claudeHook?: boolean;
|
|
40
|
+
noClaudeHook?: boolean;
|
|
41
|
+
codexCapture?: boolean;
|
|
42
|
+
noCodexCapture?: boolean;
|
|
43
|
+
enableCodexEnrichment?: boolean;
|
|
44
|
+
enableCapture?: boolean;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Resolve a `--no-<flag>` to a single boolean ("yes, skip this thing").
|
|
48
|
+
* Commander populates the affirmative key with `false`; programmatic
|
|
49
|
+
* callers may pass the `no*` key with `true`. Either form wins.
|
|
50
|
+
*/
|
|
51
|
+
export declare function isOff<K extends keyof OnboardOpts, N extends keyof OnboardOpts>(opts: OnboardOpts, affirmative: K, negative: N): boolean;
|
|
52
|
+
interface GlobalOpts {
|
|
53
|
+
config: string;
|
|
54
|
+
json: boolean;
|
|
55
|
+
}
|
|
5
56
|
export declare function makeOnboardCommand(): Command;
|
|
57
|
+
export declare function runOnboard(opts: OnboardOpts, globalOpts: GlobalOpts): Promise<void>;
|
|
6
58
|
/**
|
|
7
59
|
* Sanitize a raw `--voyage-label`, persist it when valid, and return the
|
|
8
60
|
* string the caller should use for display. Invalid labels are dropped
|
|
@@ -27,6 +79,36 @@ export declare function applyVoyageLabel(rawLabel: string | undefined, configPat
|
|
|
27
79
|
* string in the file.
|
|
28
80
|
*/
|
|
29
81
|
export declare function persistVoyageLabel(configPath: string, label: string): void;
|
|
82
|
+
/**
|
|
83
|
+
* Persist the Codex AI-metadata-enrichment opt-in into config.json. Default
|
|
84
|
+
* onboarding leaves `enrichment.ai_metadata = false` (AI-free import + keyword
|
|
85
|
+
* search, zero Codex calls). When the user passes `--enable-codex-enrichment`,
|
|
86
|
+
* this flips it to true so the daemon/worker select the Codex-backed extractor.
|
|
87
|
+
* Backs the file up first, mirroring `persistVoyageLabel`.
|
|
88
|
+
*
|
|
89
|
+
* Exported for orchestrator-level tests; `runOnboard` is the only production
|
|
90
|
+
* caller. Returns true when the flag was set and persisted, false otherwise.
|
|
91
|
+
*/
|
|
92
|
+
export declare function applyCodexEnrichmentOptIn(enable: boolean | undefined, configPath: string, emit: (line: string) => void): boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Persist the scheduled-capture opt-in. Default install writes
|
|
95
|
+
* `capture.enabled = false` (trust-first: zero Codex calls on a fresh
|
|
96
|
+
* machine). When the user passes `--enable-capture`, this flips it to true
|
|
97
|
+
* so the daemon runs auto-capture on its interval. Backs the file up first,
|
|
98
|
+
* mirroring `applyCodexEnrichmentOptIn`.
|
|
99
|
+
*
|
|
100
|
+
* Exported for orchestrator-level tests; `runOnboard` is the only production
|
|
101
|
+
* caller. Returns true when the flag was set and persisted, false otherwise.
|
|
102
|
+
*/
|
|
103
|
+
export declare function applyCaptureOptIn(enable: boolean | undefined, configPath: string, emit: (line: string) => void): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Resolve the Voyage key, or `""` to mean "finish without a key" (keyword-only
|
|
106
|
+
* lexical mode). The key is no longer mandatory: a friend can import and search
|
|
107
|
+
* first, then add a key later for semantic ranking. Returns `""` on explicit
|
|
108
|
+
* opt-out (`--no-voyage-key`), on `--yes` with no key available, or when the
|
|
109
|
+
* interactive prompt is left blank.
|
|
110
|
+
*/
|
|
111
|
+
export declare function collectVoyageKey(opts: OnboardOpts, rl: readline.Interface): Promise<string>;
|
|
30
112
|
type DaemonRefreshOutcome = {
|
|
31
113
|
ok: true;
|
|
32
114
|
kickstarted: boolean;
|
|
@@ -35,9 +117,56 @@ type DaemonRefreshOutcome = {
|
|
|
35
117
|
reason: string;
|
|
36
118
|
kind: "not_configured" | "agent_not_loaded" | "kickstart_failed" | "health_failed" | "smoke_failed";
|
|
37
119
|
};
|
|
120
|
+
/**
|
|
121
|
+
* Result of ensureToken. Per A-1.1: existing-token is success
|
|
122
|
+
* (`source: "existing"`), not a failure variant. Per A-1.2: the
|
|
123
|
+
* locked-keychain classification covers reads (readToken /
|
|
124
|
+
* findLatestVersion) and writes (issueToken) — they share the same
|
|
125
|
+
* macOS error string.
|
|
126
|
+
*/
|
|
127
|
+
export type EnsureTokenResult = {
|
|
128
|
+
ok: true;
|
|
129
|
+
token: string;
|
|
130
|
+
source: "existing" | "issued";
|
|
131
|
+
} | {
|
|
132
|
+
ok: false;
|
|
133
|
+
reason: "keychain_locked" | "other";
|
|
134
|
+
message: string;
|
|
135
|
+
hint: string;
|
|
136
|
+
};
|
|
137
|
+
export declare function classifyTokenFailure(err: unknown): {
|
|
138
|
+
reason: "keychain_locked" | "other";
|
|
139
|
+
message: string;
|
|
140
|
+
};
|
|
141
|
+
export declare function ensureToken(configPath: string): Promise<EnsureTokenResult>;
|
|
142
|
+
export declare function describeTokenFailure(reason: string): string;
|
|
143
|
+
interface FeedbackConfig {
|
|
144
|
+
enabled: boolean;
|
|
145
|
+
url?: string;
|
|
146
|
+
installation_id?: string;
|
|
147
|
+
email?: string;
|
|
148
|
+
unsigned?: boolean;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Conservative email check — enough to catch obvious typos at the prompt;
|
|
152
|
+
* the relay endpoint can re-validate. Returns the normalized (trimmed,
|
|
153
|
+
* lowercased) address, or undefined if it doesn't look like an email.
|
|
154
|
+
*/
|
|
155
|
+
export declare function normalizeEmail(raw: string): string | undefined;
|
|
156
|
+
/**
|
|
157
|
+
* Bundled "stay connected" opt-in. One yes/no that, on yes, collects an
|
|
158
|
+
* email used for product news, pricing, a leaving-beta heads-up, and a
|
|
159
|
+
* feedback channel. Opt-in only: `--yes` alone never subscribes (consent
|
|
160
|
+
* must be active), `--no-feedback-relay` declines, and `--email` subscribes
|
|
161
|
+
* non-interactively. The relay URL stays operator-only infra; when none is
|
|
162
|
+
* configured the email is captured locally (sidecar + beta-signups.jsonl)
|
|
163
|
+
* and reaches the operator once an endpoint is wired.
|
|
164
|
+
*/
|
|
165
|
+
export declare function collectFeedbackPreference(opts: OnboardOpts, dataDir: string, rl: readline.Interface, store?: RelaySecretStore): Promise<FeedbackConfig>;
|
|
38
166
|
export declare function runFirstCapturePass(configPath: string, dataDir: string): Promise<{
|
|
39
167
|
saved: number;
|
|
40
168
|
reviewed: number;
|
|
169
|
+
fatal?: boolean;
|
|
41
170
|
}>;
|
|
42
171
|
export type RecallResult = {
|
|
43
172
|
ok: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboard.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/onboard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"onboard.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/onboard.ts"],"names":[],"mappings":"AAyBA,OAAO,QAAQ,MAAM,eAAe,CAAC;AAErC,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAS5C,OAAO,EAEL,WAAW,EACZ,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AA6B5D,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,mCAAmC,CAAC;AAG3C;;;;;;;;;;;;;;GAcG;AACH,UAAU,WAAW;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IAKvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IAIzB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAIhC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,WAAW,EAAE,CAAC,SAAS,MAAM,WAAW,EAC5E,IAAI,EAAE,WAAW,EACjB,WAAW,EAAE,CAAC,EACd,QAAQ,EAAE,CAAC,GACV,OAAO,CAET;AAED,UAAU,UAAU;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAgBD,wBAAgB,kBAAkB,IAAI,OAAO,CAiF5C;AAID,wBAAsB,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAqOzF;AAqED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC3B,MAAM,GAAG,IAAI,CAgBf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAmC1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,OAAO,GAAG,SAAS,EAC3B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC3B,OAAO,CA4BT;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,OAAO,GAAG,SAAS,EAC3B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC3B,OAAO,CA4BT;AA6CD;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,QAAQ,CAAC,SAAS,GACrB,OAAO,CAAC,MAAM,CAAC,CAyBjB;AAED,KAAK,oBAAoB,GACrB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,GAClC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,eAAe,GAAG,cAAc,CAAA;CAAE,CAAC;AAqDvI;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GACzB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAA;CAAE,GAC1D;IACE,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEN,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG;IAClD,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB,CAwBA;AAED,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,CAAC,CAkC5B;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAgC3D;AAkBD,UAAU,cAAc;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG9D;AAED;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,QAAQ,CAAC,SAAS,EACtB,KAAK,GAAE,gBAAsC,GAC5C,OAAO,CAAC,cAAc,CAAC,CAyHzB;AAkLD,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CA0I/D;AAmHD,MAAM,MAAM,YAAY,GACpB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC1B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;CACtB,GAAG,MAAM,EAAE,CA2BX;AAqED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC7C,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,iBAAiB,CAAC;IACpC,6DAA6D;IAC7D,KAAK,CAAC,EAAE,OAAO,YAAY,CAAC;IAC5B,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,WAAW,CAAC;IAC7B,0CAA0C;IAC1C,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,IAAI,CAAC,CAgCf;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,iBAAiB,EAC9B,oBAAoB,EAAE,MAAM,GAAG,SAAS,GACvC,IAAI,CAyBN"}
|