@getrift/rift 0.1.0-beta.20 → 0.1.0-beta.22
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/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 +72 -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 +50 -0
- package/dist/src/cli/commands/menubar.d.ts.map +1 -1
- package/dist/src/cli/commands/menubar.js +224 -16
- package/dist/src/cli/commands/menubar.js.map +1 -1
- package/dist/src/cli/commands/onboard.d.ts +36 -7
- package/dist/src/cli/commands/onboard.d.ts.map +1 -1
- package/dist/src/cli/commands/onboard.js +256 -53
- 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 +16 -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 +179 -2
- 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.map +1 -1
- package/dist/src/cli/postinstall-menubar.js +14 -0
- package/dist/src/cli/postinstall-menubar.js.map +1 -1
- package/dist/src/cli/status/friend-header.d.ts +18 -0
- package/dist/src/cli/status/friend-header.d.ts.map +1 -1
- package/dist/src/cli/status/friend-header.js +137 -0
- package/dist/src/cli/status/friend-header.js.map +1 -1
- package/dist/src/cli/status/local-signals.d.ts +41 -0
- package/dist/src/cli/status/local-signals.d.ts.map +1 -1
- package/dist/src/cli/status/local-signals.js +48 -0
- 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 +34 -0
- package/dist/src/diagnostics/claude-preflight.d.ts.map +1 -0
- package/dist/src/diagnostics/claude-preflight.js +89 -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 +14 -0
- package/dist/src/diagnostics/codex-preflight.js.map +1 -1
- package/dist/src/diagnostics/doctor.d.ts +9 -1
- package/dist/src/diagnostics/doctor.d.ts.map +1 -1
- package/dist/src/diagnostics/doctor.js +57 -2
- package/dist/src/diagnostics/doctor.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 +26 -15
- package/dist/src/main.js.map +1 -1
- 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/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/compact.d.ts +81 -0
- package/dist/src/retrieval/compact.d.ts.map +1 -1
- package/dist/src/retrieval/compact.js +248 -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 +28 -14
- package/dist/src/retrieval/context-pack.js.map +1 -1
- 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/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 +12 -2
- package/dist/src/retrieval/reranker.d.ts.map +1 -1
- package/dist/src/retrieval/reranker.js +11 -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.map +1 -1
- package/dist/src/server/app.js +17 -1
- 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 +12 -3
- package/dist/src/server/routes/conversations-search.js.map +1 -1
- package/dist/src/server/routes/friend-status.d.ts +44 -5
- package/dist/src/server/routes/friend-status.d.ts.map +1 -1
- package/dist/src/server/routes/friend-status.js +74 -6
- 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.map +1 -1
- package/dist/src/server/routes/search.js +19 -7
- 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 +57 -15
- package/package.json +5 -3
|
@@ -113,12 +113,13 @@ def time_until(iso, now):
|
|
|
113
113
|
return "in " + fmt_duration(delta)
|
|
114
114
|
|
|
115
115
|
|
|
116
|
-
def
|
|
116
|
+
def fmt_token_count(n):
|
|
117
|
+
"""Compact magnitude for a token count: '~800', '~31k', '~1.2M'."""
|
|
117
118
|
if n >= 1_000_000:
|
|
118
|
-
return "~{:.1f}M
|
|
119
|
+
return "~{:.1f}M".format(n / 1_000_000).replace(".0M", "M")
|
|
119
120
|
if n >= 1_000:
|
|
120
|
-
return "~{}k
|
|
121
|
-
return f"~{n}
|
|
121
|
+
return "~{}k".format(round(n / 1_000))
|
|
122
|
+
return f"~{n}"
|
|
122
123
|
|
|
123
124
|
|
|
124
125
|
# Friendly labels for the three Memory windows, mapped to their keys in the
|
|
@@ -129,22 +130,40 @@ def fmt_tokens(n):
|
|
|
129
130
|
# emits `today` still renders cleanly.
|
|
130
131
|
MEMORY_PERIODS = (("Today", "today"), ("This month", "month"), ("All time", "all_time"))
|
|
131
132
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
133
|
+
# The "saved ~X tokens of reading" clause is HELD until the source-size metric
|
|
134
|
+
# (`context_tokens_saved_estimate`, PR #66) has broad enough coverage to be
|
|
135
|
+
# per-window meaningful. It is forward-only — `source_tokens_estimate` is logged
|
|
136
|
+
# only from the daemon redeploy onward, and historical/all-time rows can never
|
|
137
|
+
# be back-filled — so today a single measured call smears the same number across
|
|
138
|
+
# every window, which reads as broken. Logging continues (data accumulates); only
|
|
139
|
+
# this menu line is held. Flip to True once coverage is broad (target: next beta),
|
|
140
|
+
# ideally alongside a per-window saved-measured-hits gate so the figure only shows
|
|
141
|
+
# where it's genuinely supported. See the #66 follow-up.
|
|
142
|
+
SHOW_SAVED_TOKENS = False
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
def memory_window_row(label, hits, saved_tokens):
|
|
146
|
+
"""One '<Label>: N useful recalls' row (+ optional saved clause).
|
|
147
|
+
|
|
148
|
+
The recall count is the honest hero — a recall is a discrete unit of help.
|
|
149
|
+
The 'saved ~tokens of reading' clause is the value figure, but it is gated
|
|
150
|
+
behind SHOW_SAVED_TOKENS: until the source-size metric has broad per-window
|
|
151
|
+
coverage, a single measured call would print the same number on every
|
|
152
|
+
window. While held, rows collapse cleanly to just the recall count.
|
|
153
|
+
"""
|
|
135
154
|
if hits <= 0:
|
|
136
155
|
return f"{label}: nothing yet"
|
|
137
156
|
parts = [f"{hits:,} useful recall" + ("" if hits == 1 else "s")]
|
|
138
|
-
if isinstance(
|
|
139
|
-
parts.append(
|
|
157
|
+
if SHOW_SAVED_TOKENS and isinstance(saved_tokens, int) and saved_tokens > 0:
|
|
158
|
+
parts.append(f"saved {fmt_token_count(saved_tokens)} tokens of reading")
|
|
140
159
|
return f"{label}: " + " · ".join(parts)
|
|
141
160
|
|
|
142
161
|
|
|
143
162
|
def memory_section(mcp):
|
|
144
163
|
"""Friendly 'Memory' section lines (header + period rows), or [].
|
|
145
164
|
|
|
146
|
-
Reads today / month / all-time recall +
|
|
147
|
-
from /stats/mcp-usage and prints them in plain language. Returns [] when
|
|
165
|
+
Reads today / month / all-time recall counts + reading-saved estimates
|
|
166
|
+
straight from /stats/mcp-usage and prints them in plain language. Returns [] when
|
|
148
167
|
the stats payload is missing or carries none of the expected windows, so
|
|
149
168
|
the menu degrades gracefully (section omitted, Rift still healthy) rather
|
|
150
169
|
than showing an error. A history with no recalls anywhere collapses to a
|
|
@@ -161,8 +180,8 @@ def memory_section(mcp):
|
|
|
161
180
|
hits = window.get("context_hits")
|
|
162
181
|
if not isinstance(hits, int):
|
|
163
182
|
continue
|
|
164
|
-
|
|
165
|
-
present.append((label, hits,
|
|
183
|
+
saved = window.get("context_tokens_saved_estimate")
|
|
184
|
+
present.append((label, hits, saved))
|
|
166
185
|
if hits > 0:
|
|
167
186
|
any_activity = True
|
|
168
187
|
if not present:
|
|
@@ -175,7 +194,7 @@ def memory_section(mcp):
|
|
|
175
194
|
if not any_activity and len(present) == len(MEMORY_PERIODS):
|
|
176
195
|
return ["Memory", "Nothing recalled yet — Rift learns as you use it"]
|
|
177
196
|
return ["Memory"] + [
|
|
178
|
-
memory_window_row(label, hits,
|
|
197
|
+
memory_window_row(label, hits, saved) for label, hits, saved in present
|
|
179
198
|
]
|
|
180
199
|
|
|
181
200
|
|
|
@@ -271,8 +290,31 @@ def has_doctor_report(doctor):
|
|
|
271
290
|
return isinstance(doctor, dict) and "healthy" in doctor
|
|
272
291
|
|
|
273
292
|
|
|
293
|
+
# The Rift brand mark ("smooth bloom": a 4x4 memory grid, cells bright in the
|
|
294
|
+
# top-right fading toward the bottom-left), rendered to a 144px PNG and
|
|
295
|
+
# base64-embedded so render-menu.py stays a single self-contained file — it is
|
|
296
|
+
# symlinked/copied standalone into SwiftBar's plugins dir, so an external asset
|
|
297
|
+
# would add a path-resolution surface. Shipped as a `templateImage`: macOS
|
|
298
|
+
# ignores RGB and tints the ALPHA mask to the menu-bar color (adapting to
|
|
299
|
+
# light/dark), so the bloom is baked into alpha (black ink, per-cell
|
|
300
|
+
# opacity), with no background container. DO NOT hand-edit this constant —
|
|
301
|
+
# regenerate from the locked logo: `python3 generate-icon.py` (source of
|
|
302
|
+
# truth: assets/rift-mark.svg).
|
|
303
|
+
RIFT_ICON_B64 = "iVBORw0KGgoAAAANSUhEUgAAAJAAAACQCAYAAADnRuK4AAAEBUlEQVR42u3cwUpVQRyAcbGkIsrQhYTG5UKJIAhuJFyEJLSQuxTcuU7aCG5a6rK1PUT0AkJv4Cp6Ane9Rs2hczYH7pzT3DnaxO+Db+fwF+a7C50/d24OAAAAAAAAAAAAAAAAAAAAAABk535wHNwNvk1wtz5/v8esh8G94GnwPMHT+vzDHrOeBE+CV8EfCV7V55/0mPWs/v1ugr8SvKnPPysxnp3EcNrudERUXfr7xHDavu+IqLr0r4nhtP3aEVF16d8Tw2n7vbSIxpniaRxHZu1liqdxLzLrJFM8jSeRWeeZ4mk8Lymg3cwB7UZmnWYO6DQy6ypzQFeRWTeZA7opKaC3Axj7pOZ2Gj8GcBq/BlBAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhLQHeM13mv8TNgHsg80EzYSbSRmichOtJ1oAAAAAEAR3AuuBDeCWwlu1Ofv9Zi1ENwMToJHCU7q8ws9Zj0OHgYvg18SvKzPP+4x62nwLHgd/JngdX3+aYnxvEoMp+2rjoiqS3+XGE7bdx0RVZf+KTGctp86Iqou/VtiOG2/lRbRSqZ4GlciszYzxdO4GZl1mCmexsPIrLNM8TSelRTQRuaANiKzJpkDmkRmXWYO6DIy6zpzQNclBbQ1gNM4GsBpfBnAafwcQAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEB3jNd4r/EzYR/IPtBM2Ei0kZglIjvRdqIBAAAAAEUwH1wKjoIvExzV5+d7zKq+xWwtuB18neB2fb7Pt6E9mPvztXvHwQ8JHtfnH/SY9Sh4ELwIfk7woj7/qMR4XiSG0/ZFR0TVpW8lhtN2qyOi6tKPEsNpe9QRUXXpHxPDafuxtIiWMsXTuBSZtZYpnsa1yKydTPE07kRmHWSKp/GgpIBGmQMaRWZtZw5oOzLrOHNAx5FZF5kDuigpoJcDOI3XAziNDwM4jc8DKCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCeiO8RrvNX4m7APZB5oJG4k2ErNEZCfaTjQAAAAAoJg/4xeDq/Wf5H/ran1+vues5eA4uJ7guD7/r/3LYKH+/fbn/nyL2t+6X59fKDGe54nhtH3ecbHz9c+tZ3A09+/807K69DeJ4bR9U1pEi5niaVyMzFrOFE/jcmTWbT6brGeKp3G9pIBWMwe0Gpk1zhzQODLrNh9u9zMHtF9SQKMBjH1SczuN21wdmQyggAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkoDvGa7zX+JmwD2QfaCZsJNpIzBKRnWg70QAAAAAAAAAAAAAAAAAAAAAA/J/8BkPYO9tuFesnAAAAAElFTkSuQmCC"
|
|
304
|
+
# width/height are required: SwiftBar renders a custom image at its decoded
|
|
305
|
+
# pixel size (144px here) unless both are set, which would oversize the icon
|
|
306
|
+
# and distort menu-bar spacing. 18pt matches the menu-bar glyph height; the
|
|
307
|
+
# 144px source downscales crisply on retina.
|
|
308
|
+
_RIFT_TITLE = f"Rift | templateImage={RIFT_ICON_B64} width=18 height=18"
|
|
309
|
+
|
|
310
|
+
# Hybrid menu-bar title: the Rift brand mark when healthy (calm, branded), but
|
|
311
|
+
# a colored SF Symbol when something needs attention so the alert stays legible
|
|
312
|
+
# at a glance without opening the dropdown. SwiftBar renders one image per title
|
|
313
|
+
# line and force-tints a `templateImage` to monochrome, so color has to come
|
|
314
|
+
# from the sfimage/sfcolor path — hence the brand mark is healthy-only. The
|
|
315
|
+
# detailed verdict still renders inside the dropdown for every state.
|
|
274
316
|
TITLES = {
|
|
275
|
-
"healthy":
|
|
317
|
+
"healthy": _RIFT_TITLE,
|
|
276
318
|
"warning": "Rift | sfimage=exclamationmark.circle.fill sfcolor=systemYellow",
|
|
277
319
|
"broken": "Rift | sfimage=exclamationmark.triangle.fill sfcolor=systemRed",
|
|
278
320
|
"unknown": "Rift | sfimage=questionmark.circle.fill sfcolor=systemGray",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getrift/rift",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.22",
|
|
4
4
|
"description": "Local-first personal memory + reasoning infrastructure with an MCP interface.",
|
|
5
5
|
"homepage": "https://getrift.dev",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
},
|
|
15
15
|
"files": [
|
|
16
16
|
"dist/src",
|
|
17
|
-
"operator/swiftbar",
|
|
17
|
+
"operator/swiftbar/rift.10s.sh",
|
|
18
|
+
"operator/swiftbar/render-menu.py",
|
|
18
19
|
"README.md"
|
|
19
20
|
],
|
|
20
21
|
"scripts": {
|
|
@@ -28,10 +29,11 @@
|
|
|
28
29
|
"ci:test:focused": "tsx tests/fixtures/generate.ts && vitest tests/retrieval/current-truth.test.ts tests/retrieval/report-demotion.test.ts tests/retrieval/locator-boost.test.ts tests/retrieval/context-pack.test.ts tests/server/routes/search.test.ts tests/server/routes/context.test.ts --run",
|
|
29
30
|
"ci:pr": "npm run ci:typecheck && npm run check:rename && npm run ci:test:focused",
|
|
30
31
|
"check:rename": "bash scripts/check-rename.sh",
|
|
32
|
+
"check:publish-source": "node scripts/check-publish-source.mjs",
|
|
31
33
|
"check:tarball": "bash scripts/verify-tarball.sh",
|
|
32
34
|
"plist:generate": "bash scripts/generate-plist.sh",
|
|
33
35
|
"postinstall": "node -e \"const e=process.env;if(e.RIFT_SKIP_POSTINSTALL_MENUBAR==='1'||(e.RIFT_POSTINSTALL_MENUBAR!=='1'&&e.npm_config_global!=='true'&&e.npm_config_location!=='global'))process.exit(0);import('./dist/src/cli/postinstall-menubar.js').catch(() => {})\"",
|
|
34
|
-
"prepublishOnly": "npm run check && npm run check:rename && npm run build && npm run check:tarball"
|
|
36
|
+
"prepublishOnly": "npm run check:publish-source && npm run check && npm run check:rename && npm run build && npm run check:tarball"
|
|
35
37
|
},
|
|
36
38
|
"dependencies": {
|
|
37
39
|
"@fastify/multipart": "^9.4.0",
|