@getrift/rift 0.1.0-beta.21 → 0.1.0-beta.23
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 +7 -3
- package/dist/src/capture/auto-capture.d.ts +105 -4
- package/dist/src/capture/auto-capture.d.ts.map +1 -1
- package/dist/src/capture/auto-capture.js +313 -34
- package/dist/src/capture/auto-capture.js.map +1 -1
- package/dist/src/capture/claude-cli-triage-provider.d.ts +28 -0
- package/dist/src/capture/claude-cli-triage-provider.d.ts.map +1 -0
- package/dist/src/capture/claude-cli-triage-provider.js +88 -0
- package/dist/src/capture/claude-cli-triage-provider.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 +1 -33
- package/dist/src/capture/codex-cli-triage-provider.js.map +1 -1
- package/dist/src/capture/cursor-capture.d.ts +89 -0
- package/dist/src/capture/cursor-capture.d.ts.map +1 -0
- package/dist/src/capture/cursor-capture.js +121 -0
- package/dist/src/capture/cursor-capture.js.map +1 -0
- package/dist/src/capture/observability.d.ts +30 -0
- package/dist/src/capture/observability.d.ts.map +1 -1
- package/dist/src/capture/observability.js +29 -0
- package/dist/src/capture/observability.js.map +1 -1
- package/dist/src/capture/recover-quarantine.d.ts +4 -4
- package/dist/src/capture/sources.d.ts +41 -3
- package/dist/src/capture/sources.d.ts.map +1 -1
- package/dist/src/capture/sources.js +43 -1
- package/dist/src/capture/sources.js.map +1 -1
- package/dist/src/capture/triage-classification.d.ts +69 -0
- package/dist/src/capture/triage-classification.d.ts.map +1 -0
- package/dist/src/capture/triage-classification.js +62 -0
- package/dist/src/capture/triage-classification.js.map +1 -0
- package/dist/src/capture/triage-provider-factory.d.ts +36 -0
- package/dist/src/capture/triage-provider-factory.d.ts.map +1 -0
- package/dist/src/capture/triage-provider-factory.js +55 -0
- package/dist/src/capture/triage-provider-factory.js.map +1 -0
- package/dist/src/capture/triage.d.ts +1 -1
- package/dist/src/capture/triage.d.ts.map +1 -1
- package/dist/src/capture/triage.js +8 -6
- package/dist/src/capture/triage.js.map +1 -1
- package/dist/src/cli/commands/capture.d.ts.map +1 -1
- package/dist/src/cli/commands/capture.js +79 -17
- package/dist/src/cli/commands/capture.js.map +1 -1
- package/dist/src/cli/commands/chunk-backfill.d.ts +13 -0
- package/dist/src/cli/commands/chunk-backfill.d.ts.map +1 -0
- package/dist/src/cli/commands/chunk-backfill.js +157 -0
- package/dist/src/cli/commands/chunk-backfill.js.map +1 -0
- package/dist/src/cli/commands/cursor-probe.d.ts +20 -0
- package/dist/src/cli/commands/cursor-probe.d.ts.map +1 -0
- package/dist/src/cli/commands/cursor-probe.js +162 -0
- package/dist/src/cli/commands/cursor-probe.js.map +1 -0
- package/dist/src/cli/commands/menubar.d.ts +3 -1
- package/dist/src/cli/commands/menubar.d.ts.map +1 -1
- package/dist/src/cli/commands/menubar.js +36 -12
- package/dist/src/cli/commands/menubar.js.map +1 -1
- package/dist/src/cli/commands/onboard.d.ts +22 -2
- package/dist/src/cli/commands/onboard.d.ts.map +1 -1
- package/dist/src/cli/commands/onboard.js +160 -32
- package/dist/src/cli/commands/onboard.js.map +1 -1
- package/dist/src/cli/commands/status.d.ts.map +1 -1
- package/dist/src/cli/commands/status.js +12 -0
- package/dist/src/cli/commands/status.js.map +1 -1
- package/dist/src/cli/commands/update.d.ts +34 -1
- package/dist/src/cli/commands/update.d.ts.map +1 -1
- package/dist/src/cli/commands/update.js +166 -1
- package/dist/src/cli/commands/update.js.map +1 -1
- package/dist/src/cli/index.d.ts.map +1 -1
- package/dist/src/cli/index.js +4 -0
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/postinstall-menubar.d.ts +20 -13
- package/dist/src/cli/postinstall-menubar.d.ts.map +1 -1
- package/dist/src/cli/postinstall-menubar.js +56 -1
- package/dist/src/cli/postinstall-menubar.js.map +1 -1
- package/dist/src/cli/status/friend-header.d.ts +16 -3
- package/dist/src/cli/status/friend-header.d.ts.map +1 -1
- package/dist/src/cli/status/friend-header.js +186 -10
- package/dist/src/cli/status/friend-header.js.map +1 -1
- package/dist/src/cli/status/local-signals.d.ts +42 -4
- package/dist/src/cli/status/local-signals.d.ts.map +1 -1
- package/dist/src/cli/status/local-signals.js +52 -1
- package/dist/src/cli/status/local-signals.js.map +1 -1
- package/dist/src/config/schema.d.ts +220 -14
- package/dist/src/config/schema.d.ts.map +1 -1
- package/dist/src/config/schema.js +82 -7
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/diagnostics/claude-preflight.d.ts +35 -0
- package/dist/src/diagnostics/claude-preflight.d.ts.map +1 -0
- package/dist/src/diagnostics/claude-preflight.js +90 -0
- package/dist/src/diagnostics/claude-preflight.js.map +1 -0
- package/dist/src/diagnostics/codex-preflight.d.ts +1 -1
- package/dist/src/diagnostics/codex-preflight.d.ts.map +1 -1
- package/dist/src/diagnostics/codex-preflight.js +24 -0
- package/dist/src/diagnostics/codex-preflight.js.map +1 -1
- package/dist/src/diagnostics/doctor.d.ts +7 -4
- package/dist/src/diagnostics/doctor.d.ts.map +1 -1
- package/dist/src/diagnostics/doctor.js +70 -11
- package/dist/src/diagnostics/doctor.js.map +1 -1
- package/dist/src/diagnostics/memory-coverage.d.ts +54 -0
- package/dist/src/diagnostics/memory-coverage.d.ts.map +1 -0
- package/dist/src/diagnostics/memory-coverage.js +272 -0
- package/dist/src/diagnostics/memory-coverage.js.map +1 -0
- package/dist/src/diagnostics/notify.d.ts +20 -3
- package/dist/src/diagnostics/notify.d.ts.map +1 -1
- package/dist/src/diagnostics/notify.js +54 -14
- package/dist/src/diagnostics/notify.js.map +1 -1
- package/dist/src/ingestion/chunk-meta.d.ts +85 -0
- package/dist/src/ingestion/chunk-meta.d.ts.map +1 -0
- package/dist/src/ingestion/chunk-meta.js +167 -0
- package/dist/src/ingestion/chunk-meta.js.map +1 -0
- package/dist/src/ingestion/chunk-text.d.ts +39 -0
- package/dist/src/ingestion/chunk-text.d.ts.map +1 -0
- package/dist/src/ingestion/chunk-text.js +114 -0
- package/dist/src/ingestion/chunk-text.js.map +1 -0
- package/dist/src/ingestion/cursor/cursor-store.d.ts +177 -0
- package/dist/src/ingestion/cursor/cursor-store.d.ts.map +1 -0
- package/dist/src/ingestion/cursor/cursor-store.js +243 -0
- package/dist/src/ingestion/cursor/cursor-store.js.map +1 -0
- package/dist/src/ingestion/cursor/enrich-roots.d.ts +16 -0
- package/dist/src/ingestion/cursor/enrich-roots.d.ts.map +1 -0
- package/dist/src/ingestion/cursor/enrich-roots.js +22 -0
- package/dist/src/ingestion/cursor/enrich-roots.js.map +1 -0
- package/dist/src/ingestion/cursor/vscdb-reader.d.ts +32 -0
- package/dist/src/ingestion/cursor/vscdb-reader.d.ts.map +1 -0
- package/dist/src/ingestion/cursor/vscdb-reader.js +113 -0
- package/dist/src/ingestion/cursor/vscdb-reader.js.map +1 -0
- package/dist/src/ingestion/cursor/workspace-root.d.ts +96 -0
- package/dist/src/ingestion/cursor/workspace-root.d.ts.map +1 -0
- package/dist/src/ingestion/cursor/workspace-root.js +187 -0
- package/dist/src/ingestion/cursor/workspace-root.js.map +1 -0
- package/dist/src/ingestion/indexer.d.ts.map +1 -1
- package/dist/src/ingestion/indexer.js +41 -32
- package/dist/src/ingestion/indexer.js.map +1 -1
- package/dist/src/jobs/handlers/compact.d.ts.map +1 -1
- package/dist/src/jobs/handlers/compact.js +9 -4
- package/dist/src/jobs/handlers/compact.js.map +1 -1
- package/dist/src/jobs/handlers/ingest.d.ts.map +1 -1
- package/dist/src/jobs/handlers/ingest.js +60 -30
- package/dist/src/jobs/handlers/ingest.js.map +1 -1
- package/dist/src/jobs/handlers/reconcile.d.ts.map +1 -1
- package/dist/src/jobs/handlers/reconcile.js +128 -45
- package/dist/src/jobs/handlers/reconcile.js.map +1 -1
- package/dist/src/jobs/handlers/save.d.ts.map +1 -1
- package/dist/src/jobs/handlers/save.js +122 -72
- package/dist/src/jobs/handlers/save.js.map +1 -1
- package/dist/src/jobs/types.d.ts +1 -1
- package/dist/src/main.js +27 -16
- package/dist/src/main.js.map +1 -1
- package/dist/src/mcp/capture-diagnostics.d.ts +51 -0
- package/dist/src/mcp/capture-diagnostics.d.ts.map +1 -0
- package/dist/src/mcp/capture-diagnostics.js +127 -0
- package/dist/src/mcp/capture-diagnostics.js.map +1 -0
- package/dist/src/mcp/memory-diagnostics.d.ts +6 -0
- package/dist/src/mcp/memory-diagnostics.d.ts.map +1 -0
- package/dist/src/mcp/memory-diagnostics.js +51 -0
- package/dist/src/mcp/memory-diagnostics.js.map +1 -0
- package/dist/src/mcp/server.d.ts.map +1 -1
- package/dist/src/mcp/server.js +10 -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 +7 -1
- package/dist/src/mcp/tools/context-pack.js.map +1 -1
- package/dist/src/mcp/tools/conversations-search.d.ts +1 -1
- package/dist/src/mcp/tools/conversations-search.d.ts.map +1 -1
- package/dist/src/mcp/tools/conversations-search.js +7 -1
- package/dist/src/mcp/tools/conversations-search.js.map +1 -1
- package/dist/src/mcp/tools/evidence-feedback.d.ts +60 -0
- package/dist/src/mcp/tools/evidence-feedback.d.ts.map +1 -0
- package/dist/src/mcp/tools/evidence-feedback.js +62 -0
- package/dist/src/mcp/tools/evidence-feedback.js.map +1 -0
- package/dist/src/mcp/tools/log-outcome.d.ts +72 -0
- package/dist/src/mcp/tools/log-outcome.d.ts.map +1 -0
- package/dist/src/mcp/tools/log-outcome.js +59 -0
- package/dist/src/mcp/tools/log-outcome.js.map +1 -0
- package/dist/src/mcp/tools/open-evidence.d.ts +37 -0
- package/dist/src/mcp/tools/open-evidence.d.ts.map +1 -0
- package/dist/src/mcp/tools/open-evidence.js +72 -0
- package/dist/src/mcp/tools/open-evidence.js.map +1 -0
- package/dist/src/mcp/tools/save.d.ts +7 -2
- package/dist/src/mcp/tools/save.d.ts.map +1 -1
- package/dist/src/mcp/tools/save.js +7 -2
- package/dist/src/mcp/tools/save.js.map +1 -1
- package/dist/src/mcp/tools/search.d.ts.map +1 -1
- package/dist/src/mcp/tools/search.js +7 -1
- package/dist/src/mcp/tools/search.js.map +1 -1
- package/dist/src/mcp/tools/status.d.ts +15 -1
- package/dist/src/mcp/tools/status.d.ts.map +1 -1
- package/dist/src/mcp/tools/status.js +53 -2
- package/dist/src/mcp/tools/status.js.map +1 -1
- package/dist/src/observability/retrieval-feedback.d.ts +82 -0
- package/dist/src/observability/retrieval-feedback.d.ts.map +1 -0
- package/dist/src/observability/retrieval-feedback.js +231 -0
- package/dist/src/observability/retrieval-feedback.js.map +1 -0
- package/dist/src/observability/rift-context.d.ts.map +1 -1
- package/dist/src/observability/rift-context.js +3 -0
- package/dist/src/observability/rift-context.js.map +1 -1
- package/dist/src/observability/tool-usage-stats.d.ts +13 -0
- package/dist/src/observability/tool-usage-stats.d.ts.map +1 -1
- package/dist/src/observability/tool-usage-stats.js +15 -0
- package/dist/src/observability/tool-usage-stats.js.map +1 -1
- package/dist/src/observability/tool-usage.d.ts +56 -0
- package/dist/src/observability/tool-usage.d.ts.map +1 -1
- package/dist/src/observability/tool-usage.js +86 -0
- package/dist/src/observability/tool-usage.js.map +1 -1
- package/dist/src/providers/claude-cli-metadata-extraction.d.ts +47 -0
- package/dist/src/providers/claude-cli-metadata-extraction.d.ts.map +1 -0
- package/dist/src/providers/claude-cli-metadata-extraction.js +120 -0
- package/dist/src/providers/claude-cli-metadata-extraction.js.map +1 -0
- package/dist/src/providers/claude-cli-runner.d.ts +92 -0
- package/dist/src/providers/claude-cli-runner.d.ts.map +1 -0
- package/dist/src/providers/claude-cli-runner.js +598 -0
- package/dist/src/providers/claude-cli-runner.js.map +1 -0
- package/dist/src/providers/codex-cli-metadata-extraction.d.ts.map +1 -1
- package/dist/src/providers/codex-cli-metadata-extraction.js +1 -40
- package/dist/src/providers/codex-cli-metadata-extraction.js.map +1 -1
- package/dist/src/providers/codex-cli-runner.d.ts +7 -0
- package/dist/src/providers/codex-cli-runner.d.ts.map +1 -1
- package/dist/src/providers/codex-cli-runner.js +131 -5
- package/dist/src/providers/codex-cli-runner.js.map +1 -1
- package/dist/src/providers/conversation-generation.d.ts +10 -0
- package/dist/src/providers/conversation-generation.d.ts.map +1 -1
- package/dist/src/providers/conversation-generation.js +54 -13
- package/dist/src/providers/conversation-generation.js.map +1 -1
- package/dist/src/providers/openai-metadata-extraction.d.ts +48 -1
- package/dist/src/providers/openai-metadata-extraction.d.ts.map +1 -1
- package/dist/src/providers/openai-metadata-extraction.js +51 -2
- package/dist/src/providers/openai-metadata-extraction.js.map +1 -1
- package/dist/src/providers/types.d.ts +1 -1
- package/dist/src/providers/types.d.ts.map +1 -1
- package/dist/src/providers/types.js +4 -0
- package/dist/src/providers/types.js.map +1 -1
- package/dist/src/retrieval/canonical-files.d.ts +48 -0
- package/dist/src/retrieval/canonical-files.d.ts.map +1 -0
- package/dist/src/retrieval/canonical-files.js +210 -0
- package/dist/src/retrieval/canonical-files.js.map +1 -0
- package/dist/src/retrieval/compact.d.ts +95 -0
- package/dist/src/retrieval/compact.d.ts.map +1 -1
- package/dist/src/retrieval/compact.js +254 -8
- package/dist/src/retrieval/compact.js.map +1 -1
- package/dist/src/retrieval/context-pack.d.ts.map +1 -1
- package/dist/src/retrieval/context-pack.js +65 -15
- package/dist/src/retrieval/context-pack.js.map +1 -1
- package/dist/src/retrieval/conversation-dedup.d.ts +40 -0
- package/dist/src/retrieval/conversation-dedup.d.ts.map +1 -0
- package/dist/src/retrieval/conversation-dedup.js +141 -0
- package/dist/src/retrieval/conversation-dedup.js.map +1 -0
- package/dist/src/retrieval/evidence-key.d.ts +48 -0
- package/dist/src/retrieval/evidence-key.d.ts.map +1 -0
- package/dist/src/retrieval/evidence-key.js +131 -0
- package/dist/src/retrieval/evidence-key.js.map +1 -0
- package/dist/src/retrieval/feedback-ranking.d.ts +49 -0
- package/dist/src/retrieval/feedback-ranking.d.ts.map +1 -0
- package/dist/src/retrieval/feedback-ranking.js +138 -0
- package/dist/src/retrieval/feedback-ranking.js.map +1 -0
- package/dist/src/retrieval/git-state.d.ts +9 -0
- package/dist/src/retrieval/git-state.d.ts.map +1 -1
- package/dist/src/retrieval/git-state.js +18 -0
- package/dist/src/retrieval/git-state.js.map +1 -1
- package/dist/src/retrieval/group-by-parent.d.ts +38 -0
- package/dist/src/retrieval/group-by-parent.d.ts.map +1 -0
- package/dist/src/retrieval/group-by-parent.js +40 -0
- package/dist/src/retrieval/group-by-parent.js.map +1 -0
- package/dist/src/retrieval/lexical.d.ts.map +1 -1
- package/dist/src/retrieval/lexical.js +1 -3
- package/dist/src/retrieval/lexical.js.map +1 -1
- package/dist/src/retrieval/receipt.d.ts +57 -0
- package/dist/src/retrieval/receipt.d.ts.map +1 -0
- package/dist/src/retrieval/receipt.js +119 -0
- package/dist/src/retrieval/receipt.js.map +1 -0
- package/dist/src/retrieval/reranker.d.ts +49 -2
- package/dist/src/retrieval/reranker.d.ts.map +1 -1
- package/dist/src/retrieval/reranker.js +64 -4
- package/dist/src/retrieval/reranker.js.map +1 -1
- package/dist/src/retrieval/stitch-chunks.d.ts +73 -0
- package/dist/src/retrieval/stitch-chunks.d.ts.map +1 -0
- package/dist/src/retrieval/stitch-chunks.js +106 -0
- package/dist/src/retrieval/stitch-chunks.js.map +1 -0
- package/dist/src/server/app.d.ts +1 -1
- package/dist/src/server/app.d.ts.map +1 -1
- package/dist/src/server/app.js +20 -3
- package/dist/src/server/app.js.map +1 -1
- package/dist/src/server/routes/conversations-search.d.ts.map +1 -1
- package/dist/src/server/routes/conversations-search.js +22 -3
- package/dist/src/server/routes/conversations-search.js.map +1 -1
- package/dist/src/server/routes/friend-status.d.ts +64 -6
- package/dist/src/server/routes/friend-status.d.ts.map +1 -1
- package/dist/src/server/routes/friend-status.js +114 -18
- package/dist/src/server/routes/friend-status.js.map +1 -1
- package/dist/src/server/routes/mcp-usage.d.ts +9 -6
- 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/retrieval-feedback.d.ts +3 -0
- package/dist/src/server/routes/retrieval-feedback.d.ts.map +1 -0
- package/dist/src/server/routes/retrieval-feedback.js +290 -0
- package/dist/src/server/routes/retrieval-feedback.js.map +1 -0
- package/dist/src/server/routes/save.d.ts +3 -3
- package/dist/src/server/routes/save.d.ts.map +1 -1
- package/dist/src/server/routes/save.js +6 -2
- 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 +55 -8
- package/dist/src/server/routes/search.js.map +1 -1
- package/dist/src/server/serving-marker.d.ts +85 -0
- package/dist/src/server/serving-marker.d.ts.map +1 -0
- package/dist/src/server/serving-marker.js +226 -0
- package/dist/src/server/serving-marker.js.map +1 -0
- package/dist/src/storage/chunk-backfill.d.ts +39 -0
- package/dist/src/storage/chunk-backfill.d.ts.map +1 -0
- package/dist/src/storage/chunk-backfill.js +295 -0
- package/dist/src/storage/chunk-backfill.js.map +1 -0
- package/dist/src/storage/filter.d.ts +42 -0
- package/dist/src/storage/filter.d.ts.map +1 -0
- package/dist/src/storage/filter.js +70 -0
- package/dist/src/storage/filter.js.map +1 -0
- package/dist/src/storage/rebuild.d.ts.map +1 -1
- package/dist/src/storage/rebuild.js +44 -27
- package/dist/src/storage/rebuild.js.map +1 -1
- package/dist/src/storage/tables.d.ts +41 -0
- package/dist/src/storage/tables.d.ts.map +1 -1
- package/dist/src/storage/tables.js +64 -1
- package/dist/src/storage/tables.js.map +1 -1
- package/operator/swiftbar/render-menu.py +60 -18
- package/package.json +6 -4
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Classification of a recorded Claude Code `preflight_error` (the capture-triage
|
|
3
|
+
* probe failure) into a coarse class that drives honest, CLAUDE-SPECIFIC
|
|
4
|
+
* doctor/status copy — the Claude analogue of `codex-preflight.ts`.
|
|
5
|
+
*
|
|
6
|
+
* The string we classify is the runner's OWN leak-free error (see
|
|
7
|
+
* `claude-cli-runner.ts`): a canned `classifyClaudeStderr` phrase, the
|
|
8
|
+
* "No compatible Claude Code CLI found …" aggregate, the "was not found …"
|
|
9
|
+
* message, or a timeout. Those are structural phrases the runner emits — never
|
|
10
|
+
* raw stderr, prompt, or model output (the runner already stripped those). So we
|
|
11
|
+
* only ever pattern-match Rift's own wording here; nothing user-content-bearing
|
|
12
|
+
* reaches this module.
|
|
13
|
+
*
|
|
14
|
+
* Why a separate worker: when capture triage runs through `claude` instead of
|
|
15
|
+
* `codex`, "run codex login" is wrong advice. A Claude user needs Claude-shaped
|
|
16
|
+
* remedies — sign into `claude`, upgrade an old CLI that lacks `--safe-mode`, or
|
|
17
|
+
* point `RIFT_CLAUDE_CLI_PATH` past a wrapper. These classes encode exactly the
|
|
18
|
+
* failure buckets the runner can produce.
|
|
19
|
+
*/
|
|
20
|
+
export type ClaudePreflightErrorClass = "missing" | "incompatible" | "wrapper" | "auth" | "rate_limit" | "network" | "timeout" | "unknown";
|
|
21
|
+
export declare function classifyClaudePreflightError(error: string | null | undefined): ClaudePreflightErrorClass;
|
|
22
|
+
/**
|
|
23
|
+
* A short, leak-free, human summary for a class. Deliberately canned (no raw
|
|
24
|
+
* stderr, no file paths, no prompt/session content) so SwiftBar/doctor can
|
|
25
|
+
* surface it without parsing or redacting raw `claude` output.
|
|
26
|
+
*/
|
|
27
|
+
export declare function summarizeClaudePreflightClass(cls: ClaudePreflightErrorClass): string;
|
|
28
|
+
/**
|
|
29
|
+
* The single concrete remedy for a class — shown as the doctor `nextAction` and
|
|
30
|
+
* the status `Next:` line. Claude-shaped (never "codex login"). Capture is
|
|
31
|
+
* automatic, so each remedy ends with "Rift retries automatically" rather than
|
|
32
|
+
* telling the user to run `rift capture` by hand.
|
|
33
|
+
*/
|
|
34
|
+
export declare function claudePreflightNextAction(cls: ClaudePreflightErrorClass): string;
|
|
35
|
+
//# sourceMappingURL=claude-preflight.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-preflight.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/claude-preflight.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,yBAAyB,GACjC,SAAS,GACT,cAAc,GACd,SAAS,GACT,MAAM,GACN,YAAY,GACZ,SAAS,GACT,SAAS,GACT,SAAS,CAAC;AAEd,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,yBAAyB,CA2D3B;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,yBAAyB,GAC7B,MAAM,CAmBR;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,yBAAyB,GAC7B,MAAM,CAkBR"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
export function classifyClaudePreflightError(error) {
|
|
2
|
+
if (!error || error.trim().length === 0) {
|
|
3
|
+
return "unknown";
|
|
4
|
+
}
|
|
5
|
+
const text = error.toLowerCase();
|
|
6
|
+
// Structural install problems first — they are the most actionable and their
|
|
7
|
+
// wording is distinctive. Note the "No compatible … found" aggregate is NOT
|
|
8
|
+
// "missing" (a `claude` exists, it just failed the probe); it carries the
|
|
9
|
+
// specific per-candidate reasons matched below (e.g. `--safe-mode`, wrapper).
|
|
10
|
+
if (/was not found on path|was not found in|claude.*was not found/.test(text)) {
|
|
11
|
+
return "missing";
|
|
12
|
+
}
|
|
13
|
+
if (/--safe-mode|too old\/incompatible|too old for headless|\bincompatible\b|flag\/contract error|unknown option|unknown argument|invalid option|unrecognized option/.test(text)) {
|
|
14
|
+
return "incompatible";
|
|
15
|
+
}
|
|
16
|
+
// Auth BEFORE wrapper: a recorded reason can carry both signals — e.g. a legacy
|
|
17
|
+
// row (or any future caller) whose text says "authentication failed … likely a
|
|
18
|
+
// wrapper/PTY shim". Auth is the more specific, more actionable cause, so it
|
|
19
|
+
// wins the tie; a genuine wrapper failure carries no auth wording and still
|
|
20
|
+
// falls through to `wrapper` below. (The runner now also emits a precise,
|
|
21
|
+
// non-conflated reason — see claude-cli-runner.ts — so new rows rarely carry
|
|
22
|
+
// both; this ordering hardens the legacy/ambiguous path.)
|
|
23
|
+
if (/authentication failed|not (logged|signed) in|\bunauthorized\b|\b401\b|please (run|sign|log).{0,12}(login|in)|login (has )?expired|credentials? (expired|invalid)|sign in/.test(text)) {
|
|
24
|
+
return "auth";
|
|
25
|
+
}
|
|
26
|
+
if (/could not run headless|wrapper\/pty shim|pty shim|input must be provided|when using --print|not a tty|raw mode is not supported/.test(text)) {
|
|
27
|
+
return "wrapper";
|
|
28
|
+
}
|
|
29
|
+
if (/rate limit|\b429\b|too many requests|usage limit|\bquota\b|out of credits|insufficient (credit|quota|balance)/.test(text)) {
|
|
30
|
+
return "rate_limit";
|
|
31
|
+
}
|
|
32
|
+
if (/network error|econnreset|econnrefused|enotfound|etimedout|getaddrinfo|connection (refused|reset)|failed to (connect|reach)|\bnetwork\b|http 5\d\d|socket hang up/.test(text)) {
|
|
33
|
+
return "network";
|
|
34
|
+
}
|
|
35
|
+
if (/timed out|\btimeout\b/.test(text)) {
|
|
36
|
+
return "timeout";
|
|
37
|
+
}
|
|
38
|
+
return "unknown";
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* A short, leak-free, human summary for a class. Deliberately canned (no raw
|
|
42
|
+
* stderr, no file paths, no prompt/session content) so SwiftBar/doctor can
|
|
43
|
+
* surface it without parsing or redacting raw `claude` output.
|
|
44
|
+
*/
|
|
45
|
+
export function summarizeClaudePreflightClass(cls) {
|
|
46
|
+
switch (cls) {
|
|
47
|
+
case "missing":
|
|
48
|
+
return "Claude Code CLI (`claude`) was not found.";
|
|
49
|
+
case "incompatible":
|
|
50
|
+
return "Claude Code CLI is too old for headless triage (it needs `--safe-mode`).";
|
|
51
|
+
case "wrapper":
|
|
52
|
+
return "A PATH wrapper is intercepting `claude` and cannot run it headlessly.";
|
|
53
|
+
case "auth":
|
|
54
|
+
return "Claude Code login appears to have expired.";
|
|
55
|
+
case "rate_limit":
|
|
56
|
+
return "Claude hit a rate or usage limit — usually transient.";
|
|
57
|
+
case "network":
|
|
58
|
+
return "Claude could not reach its backend (network/transport).";
|
|
59
|
+
case "timeout":
|
|
60
|
+
return "Claude probe timed out — often a transient hiccup.";
|
|
61
|
+
case "unknown":
|
|
62
|
+
return "Claude preflight failed for an unrecognized reason.";
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The single concrete remedy for a class — shown as the doctor `nextAction` and
|
|
67
|
+
* the status `Next:` line. Claude-shaped (never "codex login"). Capture is
|
|
68
|
+
* automatic, so each remedy ends with "Rift retries automatically" rather than
|
|
69
|
+
* telling the user to run `rift capture` by hand.
|
|
70
|
+
*/
|
|
71
|
+
export function claudePreflightNextAction(cls) {
|
|
72
|
+
switch (cls) {
|
|
73
|
+
case "missing":
|
|
74
|
+
return "Install Claude Code, or set RIFT_CLAUDE_CLI_PATH to your `claude`; Rift retries automatically on its next pass.";
|
|
75
|
+
case "incompatible":
|
|
76
|
+
return "Upgrade Claude Code so it supports --safe-mode (or set RIFT_CLAUDE_CLI_PATH to a newer claude); Rift retries automatically on its next pass.";
|
|
77
|
+
case "wrapper":
|
|
78
|
+
return "Set RIFT_CLAUDE_CLI_PATH to the real claude binary (a wrapper is intercepting it); Rift retries automatically on its next pass.";
|
|
79
|
+
case "auth":
|
|
80
|
+
return "Sign back in: run claude and log in; Rift retries automatically on its next pass.";
|
|
81
|
+
case "rate_limit":
|
|
82
|
+
return "Wait for the limit to reset; Rift retries automatically on its next pass.";
|
|
83
|
+
case "network":
|
|
84
|
+
return "Check your network connection; Rift retries automatically on its next pass.";
|
|
85
|
+
case "timeout":
|
|
86
|
+
case "unknown":
|
|
87
|
+
return "Rift retries automatically on its next pass; check rift status if it persists.";
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=claude-preflight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-preflight.js","sourceRoot":"","sources":["../../../src/diagnostics/claude-preflight.ts"],"names":[],"mappings":"AA6BA,MAAM,UAAU,4BAA4B,CAC1C,KAAgC;IAEhC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAEjC,6EAA6E;IAC7E,4EAA4E;IAC5E,0EAA0E;IAC1E,8EAA8E;IAC9E,IAAI,8DAA8D,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9E,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IACE,iKAAiK,CAAC,IAAI,CACpK,IAAI,CACL,EACD,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,gFAAgF;IAChF,+EAA+E;IAC/E,6EAA6E;IAC7E,4EAA4E;IAC5E,0EAA0E;IAC1E,6EAA6E;IAC7E,0DAA0D;IAC1D,IACE,0KAA0K,CAAC,IAAI,CAC7K,IAAI,CACL,EACD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IACE,iIAAiI,CAAC,IAAI,CACpI,IAAI,CACL,EACD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IACE,+GAA+G,CAAC,IAAI,CAClH,IAAI,CACL,EACD,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,IACE,kKAAkK,CAAC,IAAI,CACrK,IAAI,CACL,EACD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAC3C,GAA8B;IAE9B,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,SAAS;YACZ,OAAO,2CAA2C,CAAC;QACrD,KAAK,cAAc;YACjB,OAAO,0EAA0E,CAAC;QACpF,KAAK,SAAS;YACZ,OAAO,uEAAuE,CAAC;QACjF,KAAK,MAAM;YACT,OAAO,4CAA4C,CAAC;QACtD,KAAK,YAAY;YACf,OAAO,uDAAuD,CAAC;QACjE,KAAK,SAAS;YACZ,OAAO,yDAAyD,CAAC;QACnE,KAAK,SAAS;YACZ,OAAO,oDAAoD,CAAC;QAC9D,KAAK,SAAS;YACZ,OAAO,qDAAqD,CAAC;IACjE,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,GAA8B;IAE9B,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,SAAS;YACZ,OAAO,iHAAiH,CAAC;QAC3H,KAAK,cAAc;YACjB,OAAO,8IAA8I,CAAC;QACxJ,KAAK,SAAS;YACZ,OAAO,iIAAiI,CAAC;QAC3I,KAAK,MAAM;YACT,OAAO,mFAAmF,CAAC;QAC7F,KAAK,YAAY;YACf,OAAO,2EAA2E,CAAC;QACrF,KAAK,SAAS;YACZ,OAAO,6EAA6E,CAAC;QACvF,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,gFAAgF,CAAC;IAC5F,CAAC;AACH,CAAC"}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* transport lines, and anything ambiguous falls to a non-auth bucket — we
|
|
18
18
|
* never falsely tell the user their login expired.
|
|
19
19
|
*/
|
|
20
|
-
export type CodexPreflightErrorClass = "auth" | "model" | "binary" | "timeout" | "backend" | "unknown";
|
|
20
|
+
export type CodexPreflightErrorClass = "auth" | "model" | "cli_incompatible" | "binary" | "rate_limit" | "timeout" | "backend" | "unknown";
|
|
21
21
|
export declare function classifyCodexPreflightError(error: string | null | undefined): CodexPreflightErrorClass;
|
|
22
22
|
/**
|
|
23
23
|
* Best-effort model name from the codex banner (`model: <name>`), for display
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-preflight.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/codex-preflight.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,wBAAwB,GAChC,MAAM,GACN,OAAO,GACP,QAAQ,GACR,SAAS,GACT,SAAS,GACT,SAAS,CAAC;AAOd,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,wBAAwB,
|
|
1
|
+
{"version":3,"file":"codex-preflight.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/codex-preflight.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,wBAAwB,GAChC,MAAM,GACN,OAAO,GACP,kBAAkB,GAClB,QAAQ,GACR,YAAY,GACZ,SAAS,GACT,SAAS,GACT,SAAS,CAAC;AAOd,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,wBAAwB,CAoF1B;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,MAAM,GAAG,IAAI,CAMf;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,MAAM,CAqBR"}
|
|
@@ -16,6 +16,18 @@ export function classifyCodexPreflightError(error) {
|
|
|
16
16
|
if (/\bunsupported model\b|\bunknown model\b|\bmodel_not_found\b|no working codex model|model[^\n]*\bnot (found|supported|available)\b|does not support the model|invalid model/.test(codexText)) {
|
|
17
17
|
return "model";
|
|
18
18
|
}
|
|
19
|
+
// CLI too old / incompatible: the executable launched fine but rejected an
|
|
20
|
+
// argument we depend on. The canonical signal is a Codex predating
|
|
21
|
+
// `--output-schema` (added after 0.39) — clap exits 2 with
|
|
22
|
+
// "error: unexpected argument '--output-schema' found". Also matches Rift's
|
|
23
|
+
// own pre-send capability-probe message ("too old … missing required
|
|
24
|
+
// option(s): --output-schema"). Distinct from `binary` (the executable runs)
|
|
25
|
+
// and from `auth`/`model`: the fix is to UPGRADE the CLI, not re-login or
|
|
26
|
+
// change the model. Mirrors the Claude runner's flag/contract bucket. Matched
|
|
27
|
+
// before the generic buckets so a too-old CLI never falls through to unknown.
|
|
28
|
+
if (/unexpected argument|unrecognized (subcommand|argument|option)|unknown (option|flag|argument|subcommand)|wasn'?t expected|isn'?t valid in this context|--output-schema|--output-last-message|too old|missing required option/.test(codexText)) {
|
|
29
|
+
return "cli_incompatible";
|
|
30
|
+
}
|
|
19
31
|
// Binary: the codex executable could not be launched at all — almost always
|
|
20
32
|
// `spawn … ENOENT`, i.e. the resolved path no longer exists (a `brew
|
|
21
33
|
// upgrade`/reinstall moved or removed it, or it was never installed). This is
|
|
@@ -30,6 +42,14 @@ export function classifyCodexPreflightError(error) {
|
|
|
30
42
|
if (/\bunauthorized\b|\b401\b|not (logged|signed) in|please run [`']?codex login|\bcodex login\b|login (has )?expired|authentication failed|missing api key|credentials? (expired|invalid)/.test(codexText)) {
|
|
31
43
|
return "auth";
|
|
32
44
|
}
|
|
45
|
+
// Out of credits / over quota / rate-limited: a 429 from codex's backend, the
|
|
46
|
+
// common cause being an exhausted OpenAI balance or a hit plan/usage cap.
|
|
47
|
+
// Mirrors the Claude classifier's rate_limit bucket. Matched before backend
|
|
48
|
+
// (which only catches 5xx, not 429) so it never falls through to unknown and
|
|
49
|
+
// gets mislabelled "preflight failed for an unrecognized reason".
|
|
50
|
+
if (/rate limit|\b429\b|too many requests|usage limit|\bquota\b|out of credits|insufficient (credit|quota|balance)/.test(codexText)) {
|
|
51
|
+
return "rate_limit";
|
|
52
|
+
}
|
|
33
53
|
if (/timed out|\btimeout\b/.test(codexText)) {
|
|
34
54
|
return "timeout";
|
|
35
55
|
}
|
|
@@ -62,8 +82,12 @@ export function summarizeCodexPreflightClass(cls, model) {
|
|
|
62
82
|
return model
|
|
63
83
|
? `Codex rejected the model "${model}".`
|
|
64
84
|
: "Codex rejected the configured model.";
|
|
85
|
+
case "cli_incompatible":
|
|
86
|
+
return "Codex CLI is too old for capture — it rejected an option Rift needs.";
|
|
65
87
|
case "binary":
|
|
66
88
|
return "Codex CLI could not be found or started — it may have moved or been removed.";
|
|
89
|
+
case "rate_limit":
|
|
90
|
+
return "Codex hit a rate/usage limit or is out of credits — check your OpenAI balance.";
|
|
67
91
|
case "timeout":
|
|
68
92
|
return "Codex probe timed out — often a transient backend hiccup.";
|
|
69
93
|
case "backend":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-preflight.js","sourceRoot":"","sources":["../../../src/diagnostics/codex-preflight.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codex-preflight.js","sourceRoot":"","sources":["../../../src/diagnostics/codex-preflight.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
*/
|
|
26
26
|
import type { FriendStatusPayload } from "../server/routes/friend-status.js";
|
|
27
27
|
/** Stable identifiers for each diagnosable condition. */
|
|
28
|
-
export type DoctorIssueKind = "daemon_unreachable" | "daemon_auth_failed" | "config_missing" | "voyage_key_missing" | "codex_auth_expired" | "codex_preflight_failed" | "voyage_embed_errors" | "index_write_errors" | "inbox_import_errors" | "capture_failed" | "capture_daemon_stale" | "mcp_not_installed" | "menu_bar_unavailable" | "capture_quarantined" | "capture_repairing" | "update_available";
|
|
28
|
+
export type DoctorIssueKind = "daemon_unreachable" | "daemon_auth_failed" | "config_missing" | "voyage_key_missing" | "codex_auth_expired" | "codex_preflight_failed" | "claude_auth_expired" | "claude_preflight_failed" | "voyage_embed_errors" | "index_write_errors" | "inbox_import_errors" | "capture_failed" | "capture_daemon_stale" | "mcp_not_installed" | "menu_bar_unavailable" | "menu_bar_broken" | "capture_quarantined" | "capture_repairing" | "update_available";
|
|
29
29
|
/**
|
|
30
30
|
* `broken` blocks Rift from doing its job (no capture, no search, no
|
|
31
31
|
* memory). `warning` is degraded-but-working or user-side (a rejected
|
|
@@ -65,12 +65,15 @@ export interface DoctorLocalSignals {
|
|
|
65
65
|
installed: boolean;
|
|
66
66
|
}>;
|
|
67
67
|
/**
|
|
68
|
-
* SwiftBar presence — null when not applicable (non-macOS, or
|
|
69
|
-
* does not probe it, e.g. the daemon notifier).
|
|
70
|
-
* raises the menu-bar advisory
|
|
68
|
+
* SwiftBar presence + plugin health — null when not applicable (non-macOS, or
|
|
69
|
+
* a caller that does not probe it, e.g. the daemon notifier). `installed:
|
|
70
|
+
* false` raises the menu-bar advisory; `pluginDangling: true` raises the
|
|
71
|
+
* "plugin is broken — reinstall" advisory. `pluginDangling` is optional so a
|
|
72
|
+
* caller that only knows app presence still type-checks (undefined → silent).
|
|
71
73
|
*/
|
|
72
74
|
swiftBar?: {
|
|
73
75
|
installed: boolean;
|
|
76
|
+
pluginDangling?: boolean;
|
|
74
77
|
} | null;
|
|
75
78
|
}
|
|
76
79
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAO7E,yDAAyD;AACzD,MAAM,MAAM,eAAe,GACvB,oBAAoB,GACpB,oBAAoB,GACpB,gBAAgB,GAChB,oBAAoB,GACpB,oBAAoB,GACpB,wBAAwB,GACxB,qBAAqB,GACrB,yBAAyB,GACzB,qBAAqB,GACrB,oBAAoB,GACpB,qBAAqB,GACrB,gBAAgB,GAChB,sBAAsB,GACtB,mBAAmB,GACnB,sBAAsB,GACtB,iBAAiB,GACjB,qBAAqB,GACrB,mBAAmB,GACnB,kBAAkB,CAAC;AAEvB;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;AAElD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,0EAA0E;AAC1E,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC1D;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CACpE;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,uBAAuB,GAC/B,oBAAoB,GACpB,aAAa,GACb,mBAAmB,GACnB,gBAAgB,GAChB,SAAS,CAAC;AAEd,MAAM,WAAW,WAAW;IAC1B,mEAAmE;IACnE,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACnC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;IAC5C,YAAY,EAAE,kBAAkB,CAAC;IACjC,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,yEAAyE;IACzE,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,mDAAmD;IACnD,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAmHD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CA0VzD"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { claudePreflightNextAction, } from "./claude-preflight.js";
|
|
1
2
|
/**
|
|
2
3
|
* True only when `iso` parses to a timestamp at/after the daemon's
|
|
3
4
|
* current start. Historical errors that predate the running process are
|
|
@@ -21,14 +22,18 @@ function isCurrentUptime(iso, daemonStartMs) {
|
|
|
21
22
|
function codexPreflightNextAction(cls) {
|
|
22
23
|
switch (cls) {
|
|
23
24
|
case "model":
|
|
24
|
-
return "Set codex_cli.model in your Rift config to a model your Codex plan supports
|
|
25
|
+
return "Set codex_cli.model in your Rift config to a model your Codex plan supports; Rift retries automatically on its next pass.";
|
|
26
|
+
case "cli_incompatible":
|
|
27
|
+
return "Codex CLI is too old. Upgrade Codex (e.g. brew upgrade codex, or reinstall); Rift retries automatically on its next pass.";
|
|
25
28
|
case "binary":
|
|
26
|
-
return "Codex CLI could not be launched — check it is installed and on PATH (e.g. brew upgrade codex, or reinstall)
|
|
29
|
+
return "Codex CLI could not be launched — check it is installed and on PATH (e.g. brew upgrade codex, or reinstall); Rift retries automatically on its next pass.";
|
|
30
|
+
case "rate_limit":
|
|
31
|
+
return "Codex is rate-limited or out of credits — top up your OpenAI balance or wait for the limit to reset; Rift retries automatically on its next pass.";
|
|
27
32
|
case "timeout":
|
|
28
33
|
case "backend":
|
|
29
|
-
return "Usually transient —
|
|
34
|
+
return "Usually transient — Rift retries automatically on its next pass.";
|
|
30
35
|
default:
|
|
31
|
-
return "
|
|
36
|
+
return "Rift retries automatically on its next pass; check rift status if it persists.";
|
|
32
37
|
}
|
|
33
38
|
}
|
|
34
39
|
function humanizeErrorClass(reason) {
|
|
@@ -137,15 +142,46 @@ export function diagnose(input) {
|
|
|
137
142
|
// login". Everything else (a rejected model, a backend timeout, MCP
|
|
138
143
|
// noise) gets a neutral, honest message — never a false login nag.
|
|
139
144
|
if (status.codex.last_preflight_ok === false) {
|
|
140
|
-
if (status.codex.
|
|
145
|
+
if (status.codex.last_preflight_worker === "claude") {
|
|
146
|
+
// Triage runs through the `claude` CLI on this install — every remedy is
|
|
147
|
+
// Claude-shaped (sign into claude / upgrade / point past a wrapper), never
|
|
148
|
+
// "codex login". The summary is already the leak-free Claude phrasing.
|
|
149
|
+
const claudeClass = status.codex.last_preflight_error_class ?? "unknown";
|
|
150
|
+
if (claudeClass === "auth") {
|
|
151
|
+
issues.push({
|
|
152
|
+
kind: "claude_auth_expired",
|
|
153
|
+
severity: "broken",
|
|
154
|
+
title: "Claude Code couldn't authenticate",
|
|
155
|
+
detail: "Rift triages your new Claude Code / Codex sessions through the " +
|
|
156
|
+
"`claude` CLI on this install, and couldn't authenticate to it, so " +
|
|
157
|
+
"automatic capture is paused. Rift keeps retrying on its own.",
|
|
158
|
+
nextAction: "Often clears on its own. If it persists, sign in: run claude and log in",
|
|
159
|
+
daemonObservable: true,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
issues.push({
|
|
164
|
+
kind: "claude_preflight_failed",
|
|
165
|
+
severity: "broken",
|
|
166
|
+
fingerprint: `claude_preflight_failed:${claudeClass}`,
|
|
167
|
+
title: "Claude Code capture probe is failing",
|
|
168
|
+
detail: `${status.codex.last_preflight_error_summary ?? "Claude preflight failed."} ` +
|
|
169
|
+
"Automatic capture is paused until a probe succeeds; recent " +
|
|
170
|
+
"conversations are safe on disk and will be captured once it clears.",
|
|
171
|
+
nextAction: claudePreflightNextAction(claudeClass),
|
|
172
|
+
daemonObservable: true,
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
else if (status.codex.last_preflight_error_class === "auth") {
|
|
141
177
|
issues.push({
|
|
142
178
|
kind: "codex_auth_expired",
|
|
143
179
|
severity: "broken",
|
|
144
|
-
title: "Codex
|
|
180
|
+
title: "Codex couldn't authenticate",
|
|
145
181
|
detail: "Rift reads your new Claude Code / Codex sessions through the codex " +
|
|
146
|
-
"CLI
|
|
147
|
-
"
|
|
148
|
-
nextAction: "
|
|
182
|
+
"CLI, and couldn't authenticate to it, so automatic capture is " +
|
|
183
|
+
"paused. Rift keeps retrying on its own.",
|
|
184
|
+
nextAction: "Often clears on its own. If it persists, sign in: codex login",
|
|
149
185
|
daemonObservable: true,
|
|
150
186
|
});
|
|
151
187
|
}
|
|
@@ -159,7 +195,10 @@ export function diagnose(input) {
|
|
|
159
195
|
"Your codex login looks fine — this is not an auth problem. " +
|
|
160
196
|
"Automatic capture is paused until a probe succeeds; recent " +
|
|
161
197
|
"conversations are safe on disk and will be captured once it clears.",
|
|
162
|
-
nextAction: codexPreflightNextAction(
|
|
198
|
+
nextAction: codexPreflightNextAction(
|
|
199
|
+
// This branch only runs for the Codex worker, so the class is a
|
|
200
|
+
// Codex class; narrow the worker-union field back for the helper.
|
|
201
|
+
status.codex.last_preflight_error_class ?? null),
|
|
163
202
|
daemonObservable: true,
|
|
164
203
|
});
|
|
165
204
|
}
|
|
@@ -209,7 +248,7 @@ export function diagnose(input) {
|
|
|
209
248
|
title: "The last capture run reported errors",
|
|
210
249
|
detail: "Rift's automatic capture ran but hit errors while saving sessions, " +
|
|
211
250
|
"so some recent conversations may not have been stored.",
|
|
212
|
-
nextAction: "
|
|
251
|
+
nextAction: "Rift retries the failed sessions automatically on its next pass; check rift status if it persists.",
|
|
213
252
|
daemonObservable: true,
|
|
214
253
|
});
|
|
215
254
|
}
|
|
@@ -296,6 +335,26 @@ export function diagnose(input) {
|
|
|
296
335
|
daemonObservable: false,
|
|
297
336
|
});
|
|
298
337
|
}
|
|
338
|
+
// 7c. Menu plugin is a DANGLING symlink — a legacy install symlinked
|
|
339
|
+
// `rift.10s.sh` into the package root, which npm/Homebrew later moved or
|
|
340
|
+
// deleted, so SwiftBar now runs a broken link and the icon misbehaves.
|
|
341
|
+
// Reinstalling lays down a self-contained copy. Degraded surface, not a
|
|
342
|
+
// broken engine → warning. ONLY when SwiftBar is installed: with the app
|
|
343
|
+
// absent, 7b already says "install SwiftBar" and "reinstall the plugin"
|
|
344
|
+
// would be the wrong next step (the plugin can't show regardless).
|
|
345
|
+
if (localSignals.swiftBar?.installed && localSignals.swiftBar.pluginDangling) {
|
|
346
|
+
issues.push({
|
|
347
|
+
kind: "menu_bar_broken",
|
|
348
|
+
severity: "warning",
|
|
349
|
+
title: "Rift's menu bar plugin is broken — it points at a file that's gone",
|
|
350
|
+
detail: "Rift's menu plugin is a stale shortcut into an old install location " +
|
|
351
|
+
"that has since moved, so SwiftBar can't run it and the icon won't " +
|
|
352
|
+
"update. Reinstalling replaces it with a self-contained copy. Rift " +
|
|
353
|
+
"still captures and searches in the background.",
|
|
354
|
+
nextAction: "Reinstall the menu plugin: rift menubar install",
|
|
355
|
+
daemonObservable: false,
|
|
356
|
+
});
|
|
357
|
+
}
|
|
299
358
|
// 8. Oversized sessions parked in quarantine — not in memory yet, but a
|
|
300
359
|
// graceful skip rather than an error, and one that now SELF-REPAIRS in
|
|
301
360
|
// the background. So the copy follows the repair state, not a bare count:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/diagnostics/doctor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/diagnostics/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { Config } from "../config/schema.js";
|
|
2
|
+
import type { CapabilityCounts } from "../observability/rift-context.js";
|
|
3
|
+
import type { SelectedMetadataProvider } from "../providers/conversation-generation.js";
|
|
4
|
+
export type DocumentCoverageStatus = "indexed" | "not_configured" | "source_missing" | "source_empty" | "embedding_unavailable" | "backfill_needed" | "unknown";
|
|
5
|
+
export type DigestCoverageStatus = "indexed" | "unavailable_basic" | "unavailable_claude" | "unavailable_worker" | "available_not_run" | "unknown";
|
|
6
|
+
export interface MemoryCoverageCounts {
|
|
7
|
+
conversations: number;
|
|
8
|
+
digests: number;
|
|
9
|
+
structured_docs: number;
|
|
10
|
+
}
|
|
11
|
+
export interface DocumentCoverageDiagnostics {
|
|
12
|
+
status: DocumentCoverageStatus;
|
|
13
|
+
/**
|
|
14
|
+
* True only when the filesystem source probe actually ran (i.e. docs == 0 and
|
|
15
|
+
* we owed the user a reason). When false — the healthy `indexed` steady state
|
|
16
|
+
* or a counts-unavailable `unknown` — the source/file fields below are
|
|
17
|
+
* placeholders, not measurements, and renderers must not present them as such.
|
|
18
|
+
*/
|
|
19
|
+
probed: boolean;
|
|
20
|
+
configured_sources: number;
|
|
21
|
+
existing_sources: number;
|
|
22
|
+
cloud_sources: number;
|
|
23
|
+
local_sources: number;
|
|
24
|
+
sources_with_supported_files: number;
|
|
25
|
+
supported_files_seen: number;
|
|
26
|
+
cloud_supported_files_seen: number;
|
|
27
|
+
local_supported_files_seen: number;
|
|
28
|
+
scan_limit: number;
|
|
29
|
+
scan_limited: boolean;
|
|
30
|
+
cloud_embedding_ready: boolean;
|
|
31
|
+
summary: string;
|
|
32
|
+
next_action: string | null;
|
|
33
|
+
}
|
|
34
|
+
export interface DigestCoverageDiagnostics {
|
|
35
|
+
status: DigestCoverageStatus;
|
|
36
|
+
metadata_provider: SelectedMetadataProvider;
|
|
37
|
+
compact_available: boolean;
|
|
38
|
+
summary: string;
|
|
39
|
+
next_action: string | null;
|
|
40
|
+
}
|
|
41
|
+
export interface MemoryCoverageDiagnostics {
|
|
42
|
+
counts: MemoryCoverageCounts | null;
|
|
43
|
+
digests: DigestCoverageDiagnostics;
|
|
44
|
+
documents: DocumentCoverageDiagnostics;
|
|
45
|
+
}
|
|
46
|
+
export interface BuildMemoryCoverageInput {
|
|
47
|
+
config: Config;
|
|
48
|
+
counts: CapabilityCounts | null;
|
|
49
|
+
voyageKeyPresent: boolean;
|
|
50
|
+
compactAvailable: boolean;
|
|
51
|
+
supportedFileScanLimit?: number;
|
|
52
|
+
}
|
|
53
|
+
export declare function buildMemoryCoverageDiagnostics(input: BuildMemoryCoverageInput): MemoryCoverageDiagnostics;
|
|
54
|
+
//# sourceMappingURL=memory-coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-coverage.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/memory-coverage.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,MAAM,EAAa,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAIzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAKxF,MAAM,MAAM,sBAAsB,GAC9B,SAAS,GACT,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,GACd,uBAAuB,GACvB,iBAAiB,GACjB,SAAS,CAAC;AAEd,MAAM,MAAM,oBAAoB,GAC5B,SAAS,GACT,mBAAmB,GACnB,oBAAoB,GACpB,oBAAoB,GACpB,mBAAmB,GACnB,SAAS,CAAC;AAEd,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,sBAAsB,CAAC;IAC/B;;;;;OAKG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,4BAA4B,EAAE,MAAM,CAAC;IACrC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,0BAA0B,EAAE,MAAM,CAAC;IACnC,0BAA0B,EAAE,MAAM,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,iBAAiB,EAAE,wBAAwB,CAAC;IAC5C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACpC,OAAO,EAAE,yBAAyB,CAAC;IACnC,SAAS,EAAE,2BAA2B,CAAC;CACxC;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAChC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAQD,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,wBAAwB,GAC9B,yBAAyB,CAyB3B"}
|