@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
|
@@ -3,11 +3,18 @@
|
|
|
3
3
|
* make it actually visible.
|
|
4
4
|
*
|
|
5
5
|
* The menu surface lives in `operator/swiftbar/` because it is a tiny
|
|
6
|
-
* operator-adjacent script, but beta users should not have to
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
6
|
+
* operator-adjacent script, but beta users should not have to wire repo paths
|
|
7
|
+
* by hand. This command installs a self-contained COPY of the wrapper AND the
|
|
8
|
+
* renderer into SwiftBar's plugin folder (the default). Copy — not symlink —
|
|
9
|
+
* because a symlink points back into the package root, which npm/Homebrew can
|
|
10
|
+
* move or delete on update (and a temp-prefix install would point at a dir
|
|
11
|
+
* that vanishes), leaving SwiftBar running a dangling `rift.10s.sh`. The
|
|
12
|
+
* wrapper already self-resolves the renderer beside itself and the `rift` CLI
|
|
13
|
+
* from absolute system paths, so the copied pair depends on nothing under the
|
|
14
|
+
* package. `--symlink` keeps the old dev/auto-update behavior for checkouts.
|
|
15
|
+
* Writes are atomic (temp + rename) so SwiftBar's 10s poll never reads a
|
|
16
|
+
* half-written file. `rift update` / postinstall re-run this, so the copy
|
|
17
|
+
* stays fresh and any pre-migration dangling symlink self-heals.
|
|
11
18
|
*
|
|
12
19
|
* Dropping the plugin file is necessary but NOT sufficient for the icon to
|
|
13
20
|
* appear (this was the beta.20 first-run bug): SwiftBar is a separate app, and
|
|
@@ -44,7 +51,7 @@ export function makeMenuBarCommand() {
|
|
|
44
51
|
.command("install")
|
|
45
52
|
.description("Install or refresh the SwiftBar menu plugin")
|
|
46
53
|
.option("--plugin-dir <path>", "Override SwiftBar's plugin directory")
|
|
47
|
-
.option("--
|
|
54
|
+
.option("--symlink", "Symlink to the packaged files instead of copying (dev checkouts; fragile if the package moves)")
|
|
48
55
|
.option("--yes", "Non-interactive install; accepted for install scripts")
|
|
49
56
|
.action((opts, command) => {
|
|
50
57
|
const globalOpts = command.optsWithGlobals();
|
|
@@ -53,8 +60,8 @@ export function makeMenuBarCommand() {
|
|
|
53
60
|
const installOpts = {};
|
|
54
61
|
if (opts.pluginDir)
|
|
55
62
|
installOpts.pluginDir = opts.pluginDir;
|
|
56
|
-
if (opts.
|
|
57
|
-
installOpts.
|
|
63
|
+
if (opts.symlink !== undefined)
|
|
64
|
+
installOpts.symlink = opts.symlink;
|
|
58
65
|
result = installMenuBar(installOpts);
|
|
59
66
|
}
|
|
60
67
|
catch (err) {
|
|
@@ -152,16 +159,19 @@ export function installMenuBar(opts = {}) {
|
|
|
152
159
|
assertReadableFile(rendererPath, "SwiftBar renderer");
|
|
153
160
|
fs.mkdirSync(pluginDir, { recursive: true });
|
|
154
161
|
let backupPath = null;
|
|
155
|
-
|
|
162
|
+
// Copy is the default; symlink is opt-in (dev/auto-update). See module header.
|
|
163
|
+
const mode = opts.symlink ? "symlink" : "copy";
|
|
156
164
|
if (mode === "symlink") {
|
|
157
165
|
backupPath = replaceExistingPlugin(pluginPath, sourcePath, opts.now);
|
|
158
166
|
fs.symlinkSync(sourcePath, pluginPath);
|
|
159
167
|
}
|
|
160
168
|
else {
|
|
169
|
+
// Clear/back up any existing plugin (incl. a pre-migration dangling
|
|
170
|
+
// symlink) BEFORE writing, then atomic-copy both files so SwiftBar's
|
|
171
|
+
// 10s poll never sees a torn write or a wrapper without its renderer.
|
|
161
172
|
backupPath = replaceExistingPlugin(pluginPath, sourcePath, opts.now);
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
fs.chmodSync(pluginPath, 0o755);
|
|
173
|
+
atomicCopyFile(sourcePath, pluginPath, 0o755);
|
|
174
|
+
atomicCopyFile(rendererPath, path.join(pluginDir, SWIFTBAR_RENDERER_NAME));
|
|
165
175
|
}
|
|
166
176
|
transcript.push("Menu bar installed.");
|
|
167
177
|
// --- Make it visible: launch/refresh SwiftBar, or hand back a recovery ---
|
|
@@ -267,6 +277,20 @@ function replaceExistingPlugin(pluginPath, sourcePath, now) {
|
|
|
267
277
|
function toBackupStamp(iso) {
|
|
268
278
|
return iso.replace(/[:.]/g, "-");
|
|
269
279
|
}
|
|
280
|
+
/**
|
|
281
|
+
* Copy `src` onto `dest` atomically: write a sibling temp file, chmod it, then
|
|
282
|
+
* `rename` over `dest` (atomic within one directory/filesystem). SwiftBar polls
|
|
283
|
+
* the plugin every 10s, so a plain `copyFileSync` could be read half-written;
|
|
284
|
+
* the rename guarantees an observer sees either the old file or the whole new
|
|
285
|
+
* one. The temp sits beside `dest` so the rename never crosses filesystems.
|
|
286
|
+
*/
|
|
287
|
+
function atomicCopyFile(src, dest, modeBits) {
|
|
288
|
+
const tmp = `${dest}.rift-tmp`;
|
|
289
|
+
fs.copyFileSync(src, tmp);
|
|
290
|
+
if (modeBits !== undefined)
|
|
291
|
+
fs.chmodSync(tmp, modeBits);
|
|
292
|
+
fs.renameSync(tmp, dest);
|
|
293
|
+
}
|
|
270
294
|
function findPackageRoot() {
|
|
271
295
|
let dir = path.dirname(fileURLToPath(import.meta.url));
|
|
272
296
|
for (let i = 0; i < 8; i += 1) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menubar.js","sourceRoot":"","sources":["../../../../src/cli/commands/menubar.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"menubar.js","sourceRoot":"","sources":["../../../../src/cli/commands/menubar.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,7 @@ interface OnboardOpts {
|
|
|
41
41
|
codexCapture?: boolean;
|
|
42
42
|
noCodexCapture?: boolean;
|
|
43
43
|
enableCodexEnrichment?: boolean;
|
|
44
|
+
enableClaudeEnrichment?: boolean;
|
|
44
45
|
enableCapture?: boolean;
|
|
45
46
|
}
|
|
46
47
|
/**
|
|
@@ -83,13 +84,32 @@ export declare function persistVoyageLabel(configPath: string, label: string): v
|
|
|
83
84
|
* Persist the Codex AI-metadata-enrichment opt-in into config.json. Default
|
|
84
85
|
* onboarding leaves `enrichment.ai_metadata = false` (AI-free import + keyword
|
|
85
86
|
* search, zero Codex calls). When the user passes `--enable-codex-enrichment`,
|
|
86
|
-
* this flips it to true
|
|
87
|
-
*
|
|
87
|
+
* this flips it to true AND pins `enrichment.metadata.provider = "codex_cli"` so
|
|
88
|
+
* the daemon/worker select the Codex-backed extractor — overriding any prior
|
|
89
|
+
* `claude_code` pin rather than silently leaving Claude selected. Backs the file
|
|
90
|
+
* up first, mirroring `persistVoyageLabel`.
|
|
88
91
|
*
|
|
89
92
|
* Exported for orchestrator-level tests; `runOnboard` is the only production
|
|
90
93
|
* caller. Returns true when the flag was set and persisted, false otherwise.
|
|
91
94
|
*/
|
|
92
95
|
export declare function applyCodexEnrichmentOptIn(enable: boolean | undefined, configPath: string, emit: (line: string) => void): boolean;
|
|
96
|
+
/**
|
|
97
|
+
* Persist the Claude-Code AI-metadata-enrichment opt-in into config.json. Like
|
|
98
|
+
* `applyCodexEnrichmentOptIn` it flips `enrichment.ai_metadata = true`, but it
|
|
99
|
+
* ALSO pins `enrichment.metadata.provider = "claude_code"` so the daemon/worker
|
|
100
|
+
* route metadata through the `claude` CLI instead of Codex. Backs the file up
|
|
101
|
+
* first, mirroring the Codex opt-in. Callers must reject the combination of
|
|
102
|
+
* both enrichment flags before reaching here (see `runOnboard`).
|
|
103
|
+
*
|
|
104
|
+
* Discloses the one capability this does NOT turn on: there is no Claude digest
|
|
105
|
+
* worker yet and we will not silently borrow Codex for it, so digests/
|
|
106
|
+
* compaction stay off until a dedicated digest-provider slice ships. Saying so
|
|
107
|
+
* here prevents a silent capability loss for a user who switches to Claude.
|
|
108
|
+
*
|
|
109
|
+
* Exported for orchestrator-level tests; `runOnboard` is the only production
|
|
110
|
+
* caller. Returns true when the flag was set and persisted, false otherwise.
|
|
111
|
+
*/
|
|
112
|
+
export declare function applyClaudeEnrichmentOptIn(enable: boolean | undefined, configPath: string, emit: (line: string) => void): boolean;
|
|
93
113
|
/**
|
|
94
114
|
* Persist the scheduled-capture opt-in. Default install writes
|
|
95
115
|
* `capture.enabled = false` (trust-first: zero Codex calls on a fresh
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"onboard.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/onboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,10 +34,10 @@ import { sanitizeProjectLabel } from "../../runtime/legacy-name-guard.js";
|
|
|
34
34
|
import { validateVoyageKey } from "../../onboarding/voyage-validate.js";
|
|
35
35
|
import { writeEnvFile } from "../../onboarding/env-file.js";
|
|
36
36
|
import { kickstartDaemon, waitForHealth, } from "../../onboarding/daemon-control.js";
|
|
37
|
-
import { runAutoCapture, resolveCodexCaptureDeps, } from "../../capture/auto-capture.js";
|
|
37
|
+
import { runAutoCapture, resolveCodexCaptureDeps, resolveCursorCaptureDeps, } from "../../capture/auto-capture.js";
|
|
38
38
|
import { appendAutoCaptureRunRecord, buildAutoCaptureRunRecord, } from "../../capture/observability.js";
|
|
39
|
-
import { DEFAULT_AUTO_CAPTURE_SOURCES } from "../../capture/sources.js";
|
|
40
|
-
import {
|
|
39
|
+
import { DEFAULT_AUTO_CAPTURE_SOURCES, CURSOR_CAPTURE_SOURCE, } from "../../capture/sources.js";
|
|
40
|
+
import { createTriageProvider, resolveTriageProviderName, setConfiguredTriageProviderName, triageWorkerLabel, } from "../../capture/triage-provider-factory.js";
|
|
41
41
|
import { discoverClaudeCodeSessions } from "../../ingestion/parsers/claude-code-jsonl.js";
|
|
42
42
|
import { discoverCodexSessions } from "../../ingestion/parsers/codex-jsonl.js";
|
|
43
43
|
import { sniffInboxSource } from "../../ingestion/inbox-core/source-sniffer.js";
|
|
@@ -89,11 +89,12 @@ export function makeOnboardCommand() {
|
|
|
89
89
|
.option("--reconfigure-voyage", "Recovery flow: replace the Voyage key only", false)
|
|
90
90
|
.option("--yes", "Accept all defaults (non-interactive)", false)
|
|
91
91
|
.option("--skip-capture", "Skip the post-setup capture pass (test-only)", false)
|
|
92
|
-
.option("--no-codex-capture", "Skip the
|
|
92
|
+
.option("--no-codex-capture", "Skip the triage-worker preflight + disable the capture pass for this run")
|
|
93
93
|
.option("--with-claude-hook", "Install the Rift policy hook into Claude Code without prompting", false)
|
|
94
94
|
.option("--no-claude-hook", "Skip the Claude Code policy-hook prompt entirely")
|
|
95
95
|
.option("--enable-codex-enrichment", "Opt into Codex AI metadata enrichment (default: AI-free import + keyword search)", false)
|
|
96
|
-
.option("--enable-
|
|
96
|
+
.option("--enable-claude-enrichment", "Opt into Claude Code AI metadata enrichment (digests/compaction stay off until Claude digest support ships; mutually exclusive with --enable-codex-enrichment)", false)
|
|
97
|
+
.option("--enable-capture", "Opt into scheduled chat capture + its triage-worker preflight (Codex by default, or Claude Code via capture.triage.provider; default: capture off, zero AI-worker calls)", false)
|
|
97
98
|
.action(async (opts, cmd) => {
|
|
98
99
|
const globalOpts = cmd.optsWithGlobals();
|
|
99
100
|
try {
|
|
@@ -119,6 +120,13 @@ export async function runOnboard(opts, globalOpts) {
|
|
|
119
120
|
terminal: !!process.stdin.isTTY,
|
|
120
121
|
});
|
|
121
122
|
try {
|
|
123
|
+
// Fail fast, before any config write: the two enrichment opt-ins pick
|
|
124
|
+
// different metadata workers (Codex vs Claude), so passing both is an
|
|
125
|
+
// ambiguous request, not a mergeable one. Reject it up front rather than
|
|
126
|
+
// letting last-writer-wins silently decide which provider you got.
|
|
127
|
+
if (opts.enableCodexEnrichment === true && opts.enableClaudeEnrichment === true) {
|
|
128
|
+
throw new CliError("Pass only one of --enable-codex-enrichment or --enable-claude-enrichment — they select different metadata workers.", "validation");
|
|
129
|
+
}
|
|
122
130
|
if (opts.reconfigureVoyage) {
|
|
123
131
|
await reconfigureVoyageFlow(opts, globalOpts, rl);
|
|
124
132
|
return;
|
|
@@ -152,6 +160,7 @@ export async function runOnboard(opts, globalOpts) {
|
|
|
152
160
|
// AI-free import + keyword search (zero Codex calls). Only persisted when
|
|
153
161
|
// the user explicitly passed --enable-codex-enrichment.
|
|
154
162
|
applyCodexEnrichmentOptIn(opts.enableCodexEnrichment, globalOpts.config, say);
|
|
163
|
+
applyClaudeEnrichmentOptIn(opts.enableClaudeEnrichment, globalOpts.config, say);
|
|
155
164
|
// Step 2d — optional opt-in to scheduled chat capture. Default off, so a
|
|
156
165
|
// fresh install makes zero Codex calls. Auto-capture embeds each saved
|
|
157
166
|
// conversation, so it requires a Voyage key; opting in without one would
|
|
@@ -190,7 +199,7 @@ export async function runOnboard(opts, globalOpts) {
|
|
|
190
199
|
throw new CliError(`Voyage smoke failed after daemon kickstart: ${refresh.reason}`, "server_error");
|
|
191
200
|
}
|
|
192
201
|
}
|
|
193
|
-
// Step 3 —
|
|
202
|
+
// Step 3 — triage-worker preflight (capture lane only).
|
|
194
203
|
//
|
|
195
204
|
// Capture is OFF by default (trust-first): a fresh install makes zero
|
|
196
205
|
// Codex calls. The preflight below performs a real Codex triage call,
|
|
@@ -213,6 +222,19 @@ export async function runOnboard(opts, globalOpts) {
|
|
|
213
222
|
// import-prompt and summary copy stay honest instead of either over- or
|
|
214
223
|
// under-promising automatic capture.
|
|
215
224
|
let codexUnavailable = false;
|
|
225
|
+
// Resolve the configured triage worker so the preflight probes (and labels)
|
|
226
|
+
// the worker the daemon will actually use, and record it process-wide so
|
|
227
|
+
// the first-capture pass below inherits the same selection. Unreadable
|
|
228
|
+
// config falls back to codex_cli — byte-for-byte the prior default.
|
|
229
|
+
let triageWorkerName = "codex_cli";
|
|
230
|
+
try {
|
|
231
|
+
triageWorkerName = resolveTriageProviderName(loadConfig(path.resolve(globalOpts.config)));
|
|
232
|
+
}
|
|
233
|
+
catch {
|
|
234
|
+
triageWorkerName = "codex_cli";
|
|
235
|
+
}
|
|
236
|
+
setConfiguredTriageProviderName(triageWorkerName);
|
|
237
|
+
const workerLabel = triageWorkerLabel(triageWorkerName);
|
|
216
238
|
if (!captureEnabled) {
|
|
217
239
|
ui.step("skip", "Chat access", captureRequested
|
|
218
240
|
? "capture needs a Voyage key — skipped"
|
|
@@ -224,14 +246,16 @@ export async function runOnboard(opts, globalOpts) {
|
|
|
224
246
|
captureDisabled = true;
|
|
225
247
|
}
|
|
226
248
|
else {
|
|
227
|
-
const
|
|
228
|
-
const
|
|
229
|
-
if (
|
|
230
|
-
|
|
249
|
+
const preflightSpin = new ui.Spinner("Chat access").start();
|
|
250
|
+
const preflightOk = await triagePreflight(triageWorkerName);
|
|
251
|
+
if (preflightOk) {
|
|
252
|
+
preflightSpin.succeed("Chat access", `ready · ${workerLabel}`);
|
|
231
253
|
}
|
|
232
254
|
else {
|
|
233
|
-
|
|
234
|
-
ui.note(
|
|
255
|
+
preflightSpin.fail("Chat access", `not ready · ${workerLabel} — auto-import off`);
|
|
256
|
+
ui.note(triageWorkerName === "claude_code"
|
|
257
|
+
? "To enable later: run `claude` once and sign in, then re-run `rift onboard`."
|
|
258
|
+
: "To enable later: run `codex login`, then re-run `rift onboard`.");
|
|
235
259
|
captureDisabled = true;
|
|
236
260
|
codexUnavailable = true;
|
|
237
261
|
}
|
|
@@ -246,6 +270,24 @@ export async function runOnboard(opts, globalOpts) {
|
|
|
246
270
|
const claudeSessions = safeDiscover(() => discoverClaudeCodeSessions(path.join(os.homedir(), ".claude")));
|
|
247
271
|
const codexSessions = safeDiscover(() => discoverCodexSessions());
|
|
248
272
|
ui.step("ok", "Chat history", `${claudeSessions} Claude Code · ${codexSessions} Codex CLI`);
|
|
273
|
+
// Set the expectation honestly up front: auto-capture covers the CLI agents,
|
|
274
|
+
// not every AI app on the Mac. The Claude/ChatGPT desktop + web apps keep
|
|
275
|
+
// their history server-side, so those chats arrive via export → rift import.
|
|
276
|
+
// `ui.detail` (legible, not dimmed) because this is trust-critical copy.
|
|
277
|
+
//
|
|
278
|
+
// The CLI-agent line is gated on `autoCaptureWillRun`: "captured
|
|
279
|
+
// automatically" is only true once capture is enabled AND the worker
|
|
280
|
+
// preflight passed. On a default/off or not-ready install (we just printed
|
|
281
|
+
// "capture off"/"not ready" above) we describe ELIGIBILITY instead, so the
|
|
282
|
+
// block never contradicts the gate it sits under.
|
|
283
|
+
const cliAgentsLine = autoCaptureWillRun
|
|
284
|
+
? " • Claude Code + Codex CLI — captured automatically\n"
|
|
285
|
+
: " • Claude Code + Codex CLI — eligible for auto-capture once capture is enabled and chat access is ready\n";
|
|
286
|
+
ui.detail("Auto-capture covers your terminal AI agents — not every AI app on your Mac:\n" +
|
|
287
|
+
cliAgentsLine +
|
|
288
|
+
" • Cursor — only if you turn it on (add cursor_composer to capture.sources)\n" +
|
|
289
|
+
" • Claude Desktop / ChatGPT / web chats — NOT automatic; export them, then:\n" +
|
|
290
|
+
" rift import <file> --source claude_web (or chatgpt_web)");
|
|
249
291
|
// Step 5 — beta opt-in (stay connected: news, pricing, feedback).
|
|
250
292
|
const feedback = await collectFeedbackPreference(opts, dataDir, rl);
|
|
251
293
|
if (feedback.email) {
|
|
@@ -300,6 +342,7 @@ export async function runOnboard(opts, globalOpts) {
|
|
|
300
342
|
const importPath = await collectImportPath(opts, rl, {
|
|
301
343
|
willRun: autoCaptureWillRun,
|
|
302
344
|
configured: captureEnabled,
|
|
345
|
+
workerLabel,
|
|
303
346
|
});
|
|
304
347
|
if (importPath) {
|
|
305
348
|
importAttempted = true;
|
|
@@ -343,13 +386,15 @@ export async function runOnboard(opts, globalOpts) {
|
|
|
343
386
|
? `Voyage: key valid (last 4 …${last4})${safeLabel ? ` · label ${safeLabel}` : ""}`
|
|
344
387
|
: "Search: keyword-only (no embedding key) — add one later for semantic search"));
|
|
345
388
|
// One-line "what's on/off" so the friend leaves knowing whether Rift keeps
|
|
346
|
-
// itself fed. Three honest states: ready (configured +
|
|
347
|
-
// configured-but-not-ready (
|
|
348
|
-
// off (the default). Capture is off by default (zero-
|
|
389
|
+
// itself fed. Three honest states: ready (configured + worker available),
|
|
390
|
+
// configured-but-not-ready (preflight failed — don't claim it's running),
|
|
391
|
+
// and off (the default). Capture is off by default (zero-egress default).
|
|
349
392
|
card.push(ui.pc.dim(autoCaptureWillRun
|
|
350
393
|
? "Auto-capture: on — new chats are captured on a schedule."
|
|
351
394
|
: captureEnabled
|
|
352
|
-
?
|
|
395
|
+
? `Auto-capture: configured on, but not ready — ${workerLabel} isn't available (${triageWorkerName === "claude_code"
|
|
396
|
+
? "run `claude` and sign in"
|
|
397
|
+
: "run `codex login`"}).`
|
|
353
398
|
: "Auto-capture: off — enable with: rift onboard --enable-capture"));
|
|
354
399
|
ui.box(card);
|
|
355
400
|
ui.line("");
|
|
@@ -482,8 +527,10 @@ export function persistVoyageLabel(configPath, label) {
|
|
|
482
527
|
* Persist the Codex AI-metadata-enrichment opt-in into config.json. Default
|
|
483
528
|
* onboarding leaves `enrichment.ai_metadata = false` (AI-free import + keyword
|
|
484
529
|
* search, zero Codex calls). When the user passes `--enable-codex-enrichment`,
|
|
485
|
-
* this flips it to true
|
|
486
|
-
*
|
|
530
|
+
* this flips it to true AND pins `enrichment.metadata.provider = "codex_cli"` so
|
|
531
|
+
* the daemon/worker select the Codex-backed extractor — overriding any prior
|
|
532
|
+
* `claude_code` pin rather than silently leaving Claude selected. Backs the file
|
|
533
|
+
* up first, mirroring `persistVoyageLabel`.
|
|
487
534
|
*
|
|
488
535
|
* Exported for orchestrator-level tests; `runOnboard` is the only production
|
|
489
536
|
* caller. Returns true when the flag was set and persisted, false otherwise.
|
|
@@ -501,6 +548,13 @@ export function applyCodexEnrichmentOptIn(enable, configPath, emit) {
|
|
|
501
548
|
const parsed = JSON.parse(raw);
|
|
502
549
|
const enrichment = parsed["enrichment"] ?? {};
|
|
503
550
|
enrichment["ai_metadata"] = true;
|
|
551
|
+
// Pin the metadata worker to Codex explicitly. Setting only `ai_metadata`
|
|
552
|
+
// would leave a pre-existing `metadata.provider = "claude_code"` in place, so
|
|
553
|
+
// "use Codex" would silently keep routing metadata through Claude (and keep
|
|
554
|
+
// digests off). Codex opt-in must win the provider selection, not just the gate.
|
|
555
|
+
const metadata = enrichment["metadata"] ?? {};
|
|
556
|
+
metadata["provider"] = "codex_cli";
|
|
557
|
+
enrichment["metadata"] = metadata;
|
|
504
558
|
parsed["enrichment"] = enrichment;
|
|
505
559
|
const tmp = `${absolute}.tmp.${process.pid}`;
|
|
506
560
|
fs.writeFileSync(tmp, JSON.stringify(parsed, null, 2) + "\n", {
|
|
@@ -508,7 +562,49 @@ export function applyCodexEnrichmentOptIn(enable, configPath, emit) {
|
|
|
508
562
|
mode: 0o644,
|
|
509
563
|
});
|
|
510
564
|
fs.renameSync(tmp, absolute);
|
|
511
|
-
emit("Codex AI metadata enrichment enabled (enrichment.ai_metadata = true).");
|
|
565
|
+
emit("Codex AI metadata enrichment enabled (enrichment.ai_metadata = true, metadata.provider = codex_cli).");
|
|
566
|
+
return true;
|
|
567
|
+
}
|
|
568
|
+
/**
|
|
569
|
+
* Persist the Claude-Code AI-metadata-enrichment opt-in into config.json. Like
|
|
570
|
+
* `applyCodexEnrichmentOptIn` it flips `enrichment.ai_metadata = true`, but it
|
|
571
|
+
* ALSO pins `enrichment.metadata.provider = "claude_code"` so the daemon/worker
|
|
572
|
+
* route metadata through the `claude` CLI instead of Codex. Backs the file up
|
|
573
|
+
* first, mirroring the Codex opt-in. Callers must reject the combination of
|
|
574
|
+
* both enrichment flags before reaching here (see `runOnboard`).
|
|
575
|
+
*
|
|
576
|
+
* Discloses the one capability this does NOT turn on: there is no Claude digest
|
|
577
|
+
* worker yet and we will not silently borrow Codex for it, so digests/
|
|
578
|
+
* compaction stay off until a dedicated digest-provider slice ships. Saying so
|
|
579
|
+
* here prevents a silent capability loss for a user who switches to Claude.
|
|
580
|
+
*
|
|
581
|
+
* Exported for orchestrator-level tests; `runOnboard` is the only production
|
|
582
|
+
* caller. Returns true when the flag was set and persisted, false otherwise.
|
|
583
|
+
*/
|
|
584
|
+
export function applyClaudeEnrichmentOptIn(enable, configPath, emit) {
|
|
585
|
+
if (enable !== true)
|
|
586
|
+
return false;
|
|
587
|
+
const absolute = path.resolve(configPath);
|
|
588
|
+
if (!fs.existsSync(absolute)) {
|
|
589
|
+
throw new CliError(`Cannot persist enrichment opt-in: config not found at ${absolute}`, "validation");
|
|
590
|
+
}
|
|
591
|
+
const raw = fs.readFileSync(absolute, "utf8");
|
|
592
|
+
const stamp = new Date().toISOString().replace(/[:.]/g, "-");
|
|
593
|
+
fs.writeFileSync(`${absolute}.bak.${stamp}`, raw, { encoding: "utf8", mode: 0o600 });
|
|
594
|
+
const parsed = JSON.parse(raw);
|
|
595
|
+
const enrichment = parsed["enrichment"] ?? {};
|
|
596
|
+
enrichment["ai_metadata"] = true;
|
|
597
|
+
const metadata = enrichment["metadata"] ?? {};
|
|
598
|
+
metadata["provider"] = "claude_code";
|
|
599
|
+
enrichment["metadata"] = metadata;
|
|
600
|
+
parsed["enrichment"] = enrichment;
|
|
601
|
+
const tmp = `${absolute}.tmp.${process.pid}`;
|
|
602
|
+
fs.writeFileSync(tmp, JSON.stringify(parsed, null, 2) + "\n", {
|
|
603
|
+
encoding: "utf8",
|
|
604
|
+
mode: 0o644,
|
|
605
|
+
});
|
|
606
|
+
fs.renameSync(tmp, absolute);
|
|
607
|
+
emit("Claude metadata enrichment enabled. Digests/compaction stay off until Claude digest support ships.");
|
|
512
608
|
return true;
|
|
513
609
|
}
|
|
514
610
|
/**
|
|
@@ -740,12 +836,18 @@ export function describeTokenFailure(reason) {
|
|
|
740
836
|
}
|
|
741
837
|
return "re-run `rift onboard`. If the failure repeats, run `rift feedback --kind=broke --with-status` to ship a diagnostic bundle.";
|
|
742
838
|
}
|
|
743
|
-
// ----- Step 3:
|
|
744
|
-
|
|
839
|
+
// ----- Step 3: triage-worker preflight -----
|
|
840
|
+
/**
|
|
841
|
+
* Live triage probe for the CONFIGURED worker (Codex CLI by default, or Claude
|
|
842
|
+
* Code when `capture.triage.provider = claude_code`). Routing through the
|
|
843
|
+
* factory — not a hardcoded CodexCliTriageProvider — is what stops a Claude
|
|
844
|
+
* Code user who deliberately picked `claude_code` from being failed by a Codex
|
|
845
|
+
* probe they never asked for.
|
|
846
|
+
*/
|
|
847
|
+
async function triagePreflight(name) {
|
|
745
848
|
try {
|
|
746
|
-
await
|
|
849
|
+
await createTriageProvider(name, { timeoutMs: 120_000 }).triage({
|
|
747
850
|
content: "User: Rift onboarding preflight.\n\nAssistant: Ready.",
|
|
748
|
-
source: "codex_cli",
|
|
749
851
|
});
|
|
750
852
|
return true;
|
|
751
853
|
}
|
|
@@ -1075,15 +1177,38 @@ export async function runFirstCapturePass(configPath, dataDir) {
|
|
|
1075
1177
|
const token = tokenResult.token;
|
|
1076
1178
|
const client = createHttpClient({ baseUrl, token });
|
|
1077
1179
|
let codexCaptureDeps = {};
|
|
1180
|
+
let cursorCaptureDeps = {};
|
|
1181
|
+
// Onboarding is a config-driven capture path, so it must honor the Cursor
|
|
1182
|
+
// opt-in exactly like the daemon: if `cursor_composer` is in
|
|
1183
|
+
// `config.capture.sources`, this first pass authorizes Cursor discovery +
|
|
1184
|
+
// persistence WITHOUT the env flags (which exist only for ad-hoc dogfood
|
|
1185
|
+
// runs). Without this, onboarding would record cursor_composer in its ledger
|
|
1186
|
+
// row yet runAutoCapture would treat Cursor as disabled — capturing nothing.
|
|
1187
|
+
let cursorConfigEnabled = false;
|
|
1078
1188
|
let enabledSources = DEFAULT_AUTO_CAPTURE_SOURCES;
|
|
1189
|
+
// Worker name for the honest preflight-failed warning below (defaults to the
|
|
1190
|
+
// codex_cli label until config resolves).
|
|
1191
|
+
let captureWorkerLabel = triageWorkerLabel("codex_cli");
|
|
1079
1192
|
try {
|
|
1080
1193
|
const { loadConfig } = await import("../../config/loader.js");
|
|
1081
1194
|
const cfg = loadConfig(configPath);
|
|
1195
|
+
// Route this first capture pass through the configured triage worker —
|
|
1196
|
+
// runAutoCapture builds its provider from the process-wide configured name,
|
|
1197
|
+
// so without this a claude_code user's onboarding pass would silently fall
|
|
1198
|
+
// back to Codex. (Step 3 already set it; re-assert here so this function is
|
|
1199
|
+
// correct independent of call order.)
|
|
1200
|
+
const captureWorkerName = resolveTriageProviderName(cfg);
|
|
1201
|
+
setConfiguredTriageProviderName(captureWorkerName);
|
|
1202
|
+
captureWorkerLabel = triageWorkerLabel(captureWorkerName);
|
|
1082
1203
|
codexCaptureDeps = resolveCodexCaptureDeps(cfg);
|
|
1204
|
+
cursorCaptureDeps = resolveCursorCaptureDeps(cfg);
|
|
1205
|
+
cursorConfigEnabled = cfg.capture.sources.includes(CURSOR_CAPTURE_SOURCE);
|
|
1083
1206
|
enabledSources = cfg.capture.sources;
|
|
1084
1207
|
}
|
|
1085
1208
|
catch {
|
|
1086
1209
|
codexCaptureDeps = {};
|
|
1210
|
+
cursorCaptureDeps = {};
|
|
1211
|
+
cursorConfigEnabled = false;
|
|
1087
1212
|
}
|
|
1088
1213
|
const startedAt = new Date();
|
|
1089
1214
|
const captureSpin = new ui.Spinner("Chat import").start();
|
|
@@ -1098,6 +1223,8 @@ export async function runFirstCapturePass(configPath, dataDir) {
|
|
|
1098
1223
|
// ledger that says one thing while capture did another.
|
|
1099
1224
|
sources: enabledSources,
|
|
1100
1225
|
...codexCaptureDeps,
|
|
1226
|
+
...cursorCaptureDeps,
|
|
1227
|
+
cursorConfigEnabled,
|
|
1101
1228
|
saveFn: async (saveOpts) => {
|
|
1102
1229
|
const { data } = await client.post("/save", {
|
|
1103
1230
|
source: saveOpts.source,
|
|
@@ -1140,12 +1267,12 @@ export async function runFirstCapturePass(configPath, dataDir) {
|
|
|
1140
1267
|
: String(observabilityErr)}\n`);
|
|
1141
1268
|
}
|
|
1142
1269
|
const base = `${report.saved} added · ${report.review} to review`;
|
|
1143
|
-
// A preflight failure (
|
|
1144
|
-
// so an `errors > 0` check alone would `succeed()` on a run where
|
|
1145
|
-
// never ran — telling a friend everything's fine when it isn't.
|
|
1146
|
-
// failed probe as a warning too, and surface why.
|
|
1270
|
+
// A preflight failure (triage-worker health probe) carries 0 per-session
|
|
1271
|
+
// errors, so an `errors > 0` check alone would `succeed()` on a run where
|
|
1272
|
+
// triage never ran — telling a friend everything's fine when it isn't.
|
|
1273
|
+
// Treat a failed probe as a warning too, and surface why.
|
|
1147
1274
|
if (!report.preflight_ok) {
|
|
1148
|
-
captureSpin.warn("Chat import", `${base} ·
|
|
1275
|
+
captureSpin.warn("Chat import", `${base} · ${captureWorkerLabel} preflight failed${report.preflight_error ? ` (${report.preflight_error})` : ""}`);
|
|
1149
1276
|
}
|
|
1150
1277
|
else if (report.errors > 0) {
|
|
1151
1278
|
captureSpin.warn("Chat import", `${base} · ${report.errors} error(s)`);
|
|
@@ -1178,14 +1305,14 @@ async function collectImportPath(opts, rl, capture) {
|
|
|
1178
1305
|
//
|
|
1179
1306
|
// The "skipping is fine" reassurance MUST match what will actually happen.
|
|
1180
1307
|
// Auto-capture is OFF by default, AND can be configured-on-but-not-running
|
|
1181
|
-
// when the
|
|
1308
|
+
// when the triage-worker preflight failed — promising "new chats get captured
|
|
1182
1309
|
// automatically" in either case is the exact trust break this flow removes.
|
|
1183
1310
|
// Only promise it when capture will genuinely run; otherwise point at the
|
|
1184
|
-
// real next step (fix
|
|
1311
|
+
// real next step (fix the triage worker if configured, or enable it if off).
|
|
1185
1312
|
const whySkip = capture.willRun
|
|
1186
1313
|
? "skipping is fine — new chats get captured automatically."
|
|
1187
1314
|
: capture.configured
|
|
1188
|
-
?
|
|
1315
|
+
? `skipping is fine — import later with \`rift import\` (auto-capture is on but won't run until ${capture.workerLabel} is ready — see above).`
|
|
1189
1316
|
: "skipping is fine — import later with `rift import`, or turn on auto-capture with `rift onboard --enable-capture`.";
|
|
1190
1317
|
ui.detail([
|
|
1191
1318
|
"Import past chats (optional)",
|
|
@@ -1452,7 +1579,8 @@ function say(line) {
|
|
|
1452
1579
|
function sayPrivacyContract() {
|
|
1453
1580
|
ui.detail([
|
|
1454
1581
|
"• Conversation content stays local (LanceDB + raw transcripts).",
|
|
1455
|
-
"•
|
|
1582
|
+
"• Indexed conversation text — and your search queries — leave the machine",
|
|
1583
|
+
" for embedding only when a Voyage key is configured (Voyage AI).",
|
|
1456
1584
|
"• The Voyage key sits in ~/.rift.env (mode 0600), is sent only to Voyage,",
|
|
1457
1585
|
" and is never logged or sent to Clem.",
|
|
1458
1586
|
"• Feedback is stored locally as JSONL. Relay is opt-in: explicit notes only,",
|