mirror of
https://github.com/samvallad33/vestige.git
synced 2026-04-25 00:36:22 +02:00
feat(v2.0.5): Intentional Amnesia — active forgetting via top-down inhibitory control
First AI memory system to model forgetting as a neuroscience-grounded PROCESS rather than passive decay. Adds the `suppress` MCP tool (#24), Rac1 cascade worker, migration V10, and dashboard forgetting indicators. Based on: - Anderson, Hanslmayr & Quaegebeur (2025), Nat Rev Neurosci — right lateral PFC as the domain-general inhibitory controller; SIF compounds with each stopping attempt. - Cervantes-Sandoval et al. (2020), Front Cell Neurosci PMC7477079 — Rac1 GTPase as the active synaptic destabilization mechanism. What's new: * `suppress` MCP tool — each call compounds `suppression_count` and subtracts a `0.15 × count` penalty (saturating at 80%) from retrieval scores during hybrid search. Distinct from delete (removes) and demote (one-shot). * Rac1 cascade worker — background sweep piggybacks the 6h consolidation loop, walks `memory_connections` edges from recently-suppressed seeds, applies attenuated FSRS decay to co-activated neighbors. You don't just forget Jake — you fade the café, the roommate, the birthday. * 24h labile window — reversible via `suppress({id, reverse: true})` within 24 hours. Matches Nader reconsolidation semantics. * Migration V10 — additive-only (`suppression_count`, `suppressed_at` + partial indices). All v2.0.x DBs upgrade seamlessly on first launch. * Dashboard: `ForgettingIndicator.svelte` pulses when suppressions are active. 3D graph nodes dim to 20% opacity when suppressed. New WebSocket events: `MemorySuppressed`, `MemoryUnsuppressed`, `Rac1CascadeSwept`. Heartbeat carries `suppressed_count`. * Search pipeline: SIF penalty inserted into the accessibility stage so it stacks on top of passive FSRS decay. * Tool count bumped 23 → 24. Cognitive modules 29 → 30. Memories persist — they are INHIBITED, not erased. `memory.get(id)` returns full content through any number of suppressions. The 24h labile window is a grace period for regret. Also fixes issue #31 (dashboard graph view buggy) as a companion UI bug discovered during the v2.0.5 audit cycle: * Root cause: node glow `SpriteMaterial` had no `map`, so `THREE.Sprite` rendered as a solid-coloured 1×1 plane. Additive blending + `UnrealBloomPass(0.8, 0.4, 0.85)` amplified the square edges into hard-edged glowing cubes. * Fix: shared 128×128 radial-gradient `CanvasTexture` singleton used as the sprite map. Retuned bloom to `(0.55, 0.6, 0.2)`. Halved fog density (0.008 → 0.0035). Edges bumped from dark navy `0x4a4a7a` to brand violet `0x8b5cf6` with higher opacity. Added explicit `scene.background` and a 2000-point starfield for depth. * 21 regression tests added in `ui-fixes.test.ts` locking every invariant in (shared texture singleton, depthWrite:false, scale ×6, bloom magic numbers via source regex, starfield presence). Tests: 1,284 Rust (+47) + 171 Vitest (+21) = 1,455 total, 0 failed Clippy: clean across all targets, zero warnings Release binary: 22.6MB, `cargo build --release -p vestige-mcp` green Versions: workspace aligned at 2.0.5 across all 6 crates/packages Closes #31
This commit is contained in:
parent
95bde93b49
commit
8178beb961
359 changed files with 8277 additions and 3416 deletions
62
CHANGELOG.md
62
CHANGELOG.md
|
|
@ -5,6 +5,68 @@ All notable changes to Vestige will be documented in this file.
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [2.0.5] - 2026-04-14 — "Intentional Amnesia"
|
||||||
|
|
||||||
|
Every AI memory system stores too much. Vestige now treats forgetting as a first-class, neuroscientifically-grounded primitive. This release adds **active forgetting** — top-down inhibitory control over memory retrieval, based on two 2025 papers that no other AI memory system has implemented.
|
||||||
|
|
||||||
|
### Scientific grounding
|
||||||
|
|
||||||
|
- **Anderson, M. C., Hanslmayr, S., & Quaegebeur, L. (2025).** *"Brain mechanisms underlying the inhibitory control of thought."* Nature Reviews Neuroscience. DOI: [10.1038/s41583-025-00929-y](https://www.nature.com/articles/s41583-025-00929-y). Establishes the right lateral PFC as the domain-general inhibitory controller, and Suppression-Induced Forgetting (SIF) as compounding with each stopping attempt.
|
||||||
|
- **Cervantes-Sandoval, I., Chakraborty, M., MacMullen, C., & Davis, R. L. (2020).** *"Rac1 Impairs Forgetting-Induced Cellular Plasticity in Mushroom Body Output Neurons."* Front Cell Neurosci. [PMC7477079](https://pmc.ncbi.nlm.nih.gov/articles/PMC7477079/). Establishes Rac1 GTPase as the active synaptic destabilization mechanism — forgetting is a biological PROCESS, not passive decay.
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
#### `suppress` MCP Tool (NEW — Tool #24)
|
||||||
|
- **Top-down memory suppression.** Distinct from `memory.delete` (which removes) and `memory.demote` (which is a one-shot hit). Each `suppress` call compounds: `suppression_count` increments, and a `k × suppression_count` penalty (saturating at 80%) is subtracted from retrieval scores during hybrid search.
|
||||||
|
- **Rac1 cascade.** Background worker piggybacks the existing consolidation loop, walks `memory_connections` edges from recently-suppressed seeds, and applies attenuated FSRS decay to co-activated neighbors. You don't just forget "Jake" — you fade the café, the roommate, the birthday.
|
||||||
|
- **Reversible 24h labile window** — matches Nader reconsolidation semantics on a 24-hour axis. Pass `reverse: true` within 24h to undo. After that, it locks in.
|
||||||
|
- **Never deletes** — the memory persists and is still accessible via `memory.get(id)`. It's INHIBITED, not erased.
|
||||||
|
|
||||||
|
#### `active_forgetting` Cognitive Module (NEW — #30)
|
||||||
|
- `crates/vestige-core/src/neuroscience/active_forgetting.rs` — stateless helper for SIF penalty computation, labile window tracking, and Rac1 cascade factors.
|
||||||
|
- 7 unit tests + 9 integration tests = 16 new tests.
|
||||||
|
|
||||||
|
#### Migration V10
|
||||||
|
- `ALTER TABLE knowledge_nodes ADD COLUMN suppression_count INTEGER DEFAULT 0`
|
||||||
|
- `ALTER TABLE knowledge_nodes ADD COLUMN suppressed_at TEXT`
|
||||||
|
- Partial indices on both columns for efficient sweep queries.
|
||||||
|
- Additive-only — backward compatible with all existing v2.0.x databases.
|
||||||
|
|
||||||
|
#### Dashboard
|
||||||
|
- `ForgettingIndicator.svelte` — new status pill that pulses when suppressed memories exist.
|
||||||
|
- 3D graph nodes dim to 20% opacity and lose emissive glow when suppressed.
|
||||||
|
- New WebSocket events: `MemorySuppressed`, `MemoryUnsuppressed`, `Rac1CascadeSwept`.
|
||||||
|
- `Heartbeat` event now carries `suppressed_count` for live dashboard display.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- `search` scoring pipeline now includes an SIF penalty applied after the accessibility filter.
|
||||||
|
- Consolidation worker (`VESTIGE_CONSOLIDATION_INTERVAL_HOURS`, default 6h) now runs `run_rac1_cascade_sweep` after each `run_consolidation` call.
|
||||||
|
- Tool count assertion bumped from 23 → 24.
|
||||||
|
- Workspace version bumped 2.0.4 → 2.0.5.
|
||||||
|
|
||||||
|
### Tests
|
||||||
|
|
||||||
|
- Rust: 1,284 passing (up from 1,237). Net +47 new tests for active forgetting, Rac1 cascade, migration V10.
|
||||||
|
- Dashboard (Vitest): 171 passing (up from 150). +21 regression tests locking in the issue #31 UI fix.
|
||||||
|
- Zero warnings, clippy clean across all targets.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- **Dashboard graph view rendered glowing squares instead of round halos** ([#31](https://github.com/samvallad33/vestige/issues/31)). Root cause: the node glow `THREE.SpriteMaterial` had no `map` set, so `Sprite` rendered as a solid-coloured 1×1 plane; additive blending plus `UnrealBloomPass(strength=0.8, radius=0.4, threshold=0.85)` then amplified the square edges into hard-edged glowing cubes. The aggressive `FogExp2(..., 0.008)` swallowed edges at depth and dark-navy `0x4a4a7a` lines were invisible against the fog. Fix bundled:
|
||||||
|
- Generated a shared 128×128 radial-gradient `CanvasTexture` (module-level singleton) and assigned it as `SpriteMaterial.map`. Gradient stops: `rgba(255,255,255,1.0) → rgba(255,255,255,0.7) → rgba(255,255,255,0.2) → rgba(255,255,255,0.0)`. Sprite now reads as a soft round halo; bloom diffuses cleanly.
|
||||||
|
- Retuned `UnrealBloomPass` to `(strength=0.55, radius=0.6, threshold=0.2)` — gentler, allows mid-tones to bloom instead of only blown-out highlights.
|
||||||
|
- Halved fog density `FogExp2(0x050510, 0.008) → FogExp2(0x0a0a1a, 0.0035)` so distant memories stay visible.
|
||||||
|
- Bumped edge color `0x4a4a7a → 0x8b5cf6` (brand violet). Opacity `0.1 + weight*0.5 → 0.25 + weight*0.5`, cap `0.6 → 0.8`. Added `depthWrite: false` so edges blend cleanly through fog.
|
||||||
|
- Added explicit `scene.background = 0x05050f` and a 2000-point starfield distributed on a spherical shell at radius 600–1000, additive-blended with subtle cool-white/violet vertex colors.
|
||||||
|
- Glow sprite scale bumped `size × 4 → size × 6` so the gradient has visible screen footprint.
|
||||||
|
- All node glow sprites share a single `CanvasTexture` instance (singleton cache — memory leak guard for large graphs).
|
||||||
|
- 21 regression tests added in `apps/dashboard/src/lib/graph/__tests__/ui-fixes.test.ts`. Hybrid strategy: runtime unit tests via the existing `three-mock.ts` (extended to propagate `map`/`color`/`depthWrite`/`blending` params and added `createRadialGradient` to the canvas context mock), plus source-level regex assertions on `scene.ts` and `nodes.ts` magic numbers so any accidental revert of fog/bloom/color/helper fails the suite immediately.
|
||||||
|
- `apps/dashboard/package.json` version stale at 2.0.3 — bumped to 2.0.5 to match the workspace.
|
||||||
|
- `packages/vestige-mcp-npm/.gitignore` missing `bin/vestige-restore` and `bin/vestige-restore.exe` entries — the other three binaries were already ignored as postinstall downloads.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## [2.0.4] - 2026-04-09 — "Deep Reference"
|
## [2.0.4] - 2026-04-09 — "Deep Reference"
|
||||||
|
|
||||||
Context windows hit 1M tokens. Memory matters more than ever. This release removes artificial limits, adds contradiction detection, and hardens security.
|
Context windows hit 1M tokens. Memory matters more than ever. This release removes artificial limits, adds contradiction detection, and hardens security.
|
||||||
|
|
|
||||||
4
Cargo.lock
generated
4
Cargo.lock
generated
|
|
@ -4531,7 +4531,7 @@ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "vestige-core"
|
name = "vestige-core"
|
||||||
version = "2.0.4"
|
version = "2.0.5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"chrono",
|
"chrono",
|
||||||
"criterion",
|
"criterion",
|
||||||
|
|
@ -4566,7 +4566,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "vestige-mcp"
|
name = "vestige-mcp"
|
||||||
version = "2.0.4"
|
version = "2.0.5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"axum",
|
"axum",
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ exclude = [
|
||||||
]
|
]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "2.0.4"
|
version = "2.0.5"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "AGPL-3.0-only"
|
license = "AGPL-3.0-only"
|
||||||
repository = "https://github.com/samvallad33/vestige"
|
repository = "https://github.com/samvallad33/vestige"
|
||||||
|
|
|
||||||
46
README.md
46
README.md
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
[](https://github.com/samvallad33/vestige)
|
[](https://github.com/samvallad33/vestige)
|
||||||
[](https://github.com/samvallad33/vestige/releases/latest)
|
[](https://github.com/samvallad33/vestige/releases/latest)
|
||||||
[](https://github.com/samvallad33/vestige/actions)
|
[](https://github.com/samvallad33/vestige/actions)
|
||||||
[](LICENSE)
|
[](LICENSE)
|
||||||
[](https://modelcontextprotocol.io)
|
[](https://modelcontextprotocol.io)
|
||||||
|
|
||||||
|
|
@ -14,21 +14,30 @@
|
||||||
|
|
||||||
Built on 130 years of memory research — FSRS-6 spaced repetition, prediction error gating, synaptic tagging, spreading activation, memory dreaming — all running in a single Rust binary with a 3D neural visualization dashboard. 100% local. Zero cloud.
|
Built on 130 years of memory research — FSRS-6 spaced repetition, prediction error gating, synaptic tagging, spreading activation, memory dreaming — all running in a single Rust binary with a 3D neural visualization dashboard. 100% local. Zero cloud.
|
||||||
|
|
||||||
[Quick Start](#quick-start) | [Dashboard](#-3d-memory-dashboard) | [How It Works](#-the-cognitive-science-stack) | [Tools](#-23-mcp-tools) | [Docs](docs/)
|
[Quick Start](#quick-start) | [Dashboard](#-3d-memory-dashboard) | [How It Works](#-the-cognitive-science-stack) | [Tools](#-24-mcp-tools) | [Docs](docs/)
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## What's New in v2.0 "Cognitive Leap"
|
## What's New in v2.0.5 "Intentional Amnesia"
|
||||||
|
|
||||||
- **3D Memory Dashboard** — SvelteKit + Three.js neural visualization with real-time WebSocket events, bloom post-processing, force-directed graph layout. Watch your AI's mind in real-time.
|
The first AI memory system that can actively forget. New **`suppress`** tool applies top-down inhibitory control over retrieval — each call compounds a penalty (up to 80%), a background Rac1 worker fades co-activated neighbors over 72h, and it's reversible within a 24h labile window. **Never deletes** — the memory is inhibited, not erased.
|
||||||
- **WebSocket Event Bus** — Every cognitive operation broadcasts events: memory creation, search, dreaming, consolidation, retention decay
|
|
||||||
- **HyDE Query Expansion** — Template-based Hypothetical Document Embeddings for dramatically improved search quality on conceptual queries
|
Based on [Anderson et al. 2025](https://www.nature.com/articles/s41583-025-00929-y) (Suppression-Induced Forgetting) and [Cervantes-Sandoval et al. 2020](https://pmc.ncbi.nlm.nih.gov/articles/PMC7477079/) (Rac1 synaptic cascade). **24 tools · 30 cognitive modules · 1,284 tests.**
|
||||||
- **Nomic v2 MoE (experimental)** — fastembed 5.11 with optional Nomic Embed Text v2 MoE (475M params, 8 experts) + Metal GPU acceleration. Default: v1.5 (8192 token context)
|
|
||||||
- **Command Palette** — `Cmd+K` navigation, keyboard shortcuts, responsive mobile layout, PWA installable
|
<details>
|
||||||
- **FSRS Decay Visualization** — SVG retention curves with predicted decay at 1d/7d/30d, endangered memory alerts
|
<summary>Earlier releases (v2.0 "Cognitive Leap" → v2.0.4 "Deep Reference")</summary>
|
||||||
- **29 cognitive modules** — 1,238 tests, 79,600+ LOC
|
|
||||||
|
- **v2.0.4 — `deep_reference` Tool** — 8-stage cognitive reasoning pipeline with FSRS-6 trust scoring, intent classification, spreading activation, contradiction analysis, and pre-built reasoning chains. Token budgets raised 10K → 100K. CORS tightened.
|
||||||
|
- **v2.0 — 3D Memory Dashboard** — SvelteKit + Three.js neural visualization with real-time WebSocket events, bloom post-processing, force-directed graph layout.
|
||||||
|
- **v2.0 — WebSocket Event Bus** — Every cognitive operation broadcasts events: memory creation, search, dreaming, consolidation, retention decay.
|
||||||
|
- **v2.0 — HyDE Query Expansion** — Template-based Hypothetical Document Embeddings for dramatically improved search quality on conceptual queries.
|
||||||
|
- **v2.0 — Nomic v2 MoE (experimental)** — fastembed 5.11 with optional Nomic Embed Text v2 MoE (475M params, 8 experts) + Metal GPU acceleration.
|
||||||
|
- **v2.0 — Command Palette** — `Cmd+K` navigation, keyboard shortcuts, responsive mobile layout, PWA installable.
|
||||||
|
- **v2.0 — FSRS Decay Visualization** — SVG retention curves with predicted decay at 1d/7d/30d.
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -132,7 +141,7 @@ The dashboard runs automatically at `http://localhost:3927/dashboard` when the M
|
||||||
│ 15 REST endpoints · WS event broadcast │
|
│ 15 REST endpoints · WS event broadcast │
|
||||||
├─────────────────────────────────────────────────────┤
|
├─────────────────────────────────────────────────────┤
|
||||||
│ MCP Server (stdio JSON-RPC) │
|
│ MCP Server (stdio JSON-RPC) │
|
||||||
│ 23 tools · 29 cognitive modules │
|
│ 24 tools · 30 cognitive modules │
|
||||||
├─────────────────────────────────────────────────────┤
|
├─────────────────────────────────────────────────────┤
|
||||||
│ Cognitive Engine │
|
│ Cognitive Engine │
|
||||||
│ ┌──────────┐ ┌──────────┐ ┌───────────────┐ │
|
│ ┌──────────┐ ┌──────────┐ ┌───────────────┐ │
|
||||||
|
|
@ -192,11 +201,13 @@ This isn't a key-value store with an embedding model bolted on. Vestige implemen
|
||||||
|
|
||||||
**Autonomic Regulation** — Self-regulating memory health. Auto-promotes frequently accessed memories. Auto-GCs low-retention memories. Consolidation triggers on 6h staleness or 2h active use.
|
**Autonomic Regulation** — Self-regulating memory health. Auto-promotes frequently accessed memories. Auto-GCs low-retention memories. Consolidation triggers on 6h staleness or 2h active use.
|
||||||
|
|
||||||
|
**Active Forgetting** *(v2.0.5)* — Top-down inhibitory control via the `suppress` tool, distinct from passive FSRS decay and from bottom-up retrieval-induced forgetting. Each call compounds (Suppression-Induced Forgetting), a background Rac1 cascade worker fades co-activated neighbors, and a 24-hour labile window allows reversal. The memory persists — it's **inhibited, not erased**. Based on [Anderson et al., 2025](https://www.nature.com/articles/s41583-025-00929-y) and [Cervantes-Sandoval et al., 2020](https://pmc.ncbi.nlm.nih.gov/articles/PMC7477079/). First AI memory system to implement this.
|
||||||
|
|
||||||
[Full science documentation ->](docs/SCIENCE.md)
|
[Full science documentation ->](docs/SCIENCE.md)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🛠 23 MCP Tools
|
## 🛠 24 MCP Tools
|
||||||
|
|
||||||
### Context Packets
|
### Context Packets
|
||||||
| Tool | What It Does |
|
| Tool | What It Does |
|
||||||
|
|
@ -247,6 +258,11 @@ This isn't a key-value store with an embedding model bolted on. Vestige implemen
|
||||||
| `deep_reference` | **Cognitive reasoning across memories.** 8-stage pipeline: FSRS-6 trust scoring, intent classification, spreading activation, temporal supersession, contradiction analysis, relation assessment, dream insight integration, and algorithmic reasoning chain generation. Returns trust-scored evidence with a pre-built reasoning scaffold. |
|
| `deep_reference` | **Cognitive reasoning across memories.** 8-stage pipeline: FSRS-6 trust scoring, intent classification, spreading activation, temporal supersession, contradiction analysis, relation assessment, dream insight integration, and algorithmic reasoning chain generation. Returns trust-scored evidence with a pre-built reasoning scaffold. |
|
||||||
| `cross_reference` | Backward-compatible alias for `deep_reference`. |
|
| `cross_reference` | Backward-compatible alias for `deep_reference`. |
|
||||||
|
|
||||||
|
### Active Forgetting (v2.0.5)
|
||||||
|
| Tool | What It Does |
|
||||||
|
|------|-------------|
|
||||||
|
| `suppress` | **Top-down active forgetting** — neuroscience-grounded inhibitory control over retrieval. Distinct from `memory.delete` (destroys the row) and `memory.demote` (one-shot ranking hit). Each call **compounds** a retrieval-score penalty (Anderson 2025 SIF), and a background Rac1 cascade worker fades co-activated neighbors over 72h (Davis 2020). Reversible within a 24-hour labile window via `reverse: true`. **The memory persists** — it is inhibited, not erased. |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Make Your AI Use Vestige Automatically
|
## Make Your AI Use Vestige Automatically
|
||||||
|
|
@ -278,7 +294,7 @@ At the start of every session:
|
||||||
| Metric | Value |
|
| Metric | Value |
|
||||||
|--------|-------|
|
|--------|-------|
|
||||||
| **Language** | Rust 2024 edition (MSRV 1.91) |
|
| **Language** | Rust 2024 edition (MSRV 1.91) |
|
||||||
| **Codebase** | 79,600+ lines, 1,238 tests |
|
| **Codebase** | 80,000+ lines, 1,284 tests (364 core + 419 mcp + 497 e2e + 4 doctests) |
|
||||||
| **Binary size** | ~20MB |
|
| **Binary size** | ~20MB |
|
||||||
| **Embeddings** | Nomic Embed Text v1.5 (768d → 256d Matryoshka, 8192 context) |
|
| **Embeddings** | Nomic Embed Text v1.5 (768d → 256d Matryoshka, 8192 context) |
|
||||||
| **Vector search** | USearch HNSW (20x faster than FAISS) |
|
| **Vector search** | USearch HNSW (20x faster than FAISS) |
|
||||||
|
|
@ -286,7 +302,7 @@ At the start of every session:
|
||||||
| **Storage** | SQLite + FTS5 (optional SQLCipher encryption) |
|
| **Storage** | SQLite + FTS5 (optional SQLCipher encryption) |
|
||||||
| **Dashboard** | SvelteKit 2 + Svelte 5 + Three.js + Tailwind CSS 4 |
|
| **Dashboard** | SvelteKit 2 + Svelte 5 + Three.js + Tailwind CSS 4 |
|
||||||
| **Transport** | MCP stdio (JSON-RPC 2.0) + WebSocket |
|
| **Transport** | MCP stdio (JSON-RPC 2.0) + WebSocket |
|
||||||
| **Cognitive modules** | 29 stateful (16 neuroscience, 11 advanced, 2 search) |
|
| **Cognitive modules** | 30 stateful (17 neuroscience, 11 advanced, 2 search) |
|
||||||
| **First run** | Downloads embedding model (~130MB), then fully offline |
|
| **First run** | Downloads embedding model (~130MB), then fully offline |
|
||||||
| **Platforms** | macOS (ARM/Intel), Linux (x86_64), Windows |
|
| **Platforms** | macOS (ARM/Intel), Linux (x86_64), Windows |
|
||||||
|
|
||||||
|
|
@ -386,5 +402,5 @@ AGPL-3.0 — free to use, modify, and self-host. If you offer Vestige as a netwo
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<i>Built by <a href="https://github.com/samvallad33">@samvallad33</a></i><br>
|
<i>Built by <a href="https://github.com/samvallad33">@samvallad33</a></i><br>
|
||||||
<sub>79,600+ lines of Rust · 29 cognitive modules · 130 years of memory research · one 22MB binary</sub>
|
<sub>80,000+ lines of Rust · 30 cognitive modules · 130 years of memory research · one 22MB binary</sub>
|
||||||
</p>
|
</p>
|
||||||
|
|
|
||||||
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
BIN
apps/dashboard/build/_app/immutable/assets/0.D08DCOSm.css.br
Normal file
BIN
apps/dashboard/build/_app/immutable/assets/0.D08DCOSm.css.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/assets/0.D08DCOSm.css.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/assets/0.D08DCOSm.css.gz
Normal file
Binary file not shown.
Binary file not shown.
1
apps/dashboard/build/_app/immutable/chunks/B0IenmM-.js
Normal file
1
apps/dashboard/build/_app/immutable/chunks/B0IenmM-.js
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
import{aE as h,ah as d,ao as l,aF as p,F as _,aG as E,aH as g,T as u,aj as s,aI as y,a7 as M,aJ as N,ac as x,aK as A}from"./nyjtQ1Ok.js";var f;const i=((f=globalThis==null?void 0:globalThis.window)==null?void 0:f.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:t=>t});function b(t){return(i==null?void 0:i.createHTML(t))??t}function L(t){var r=h("template");return r.innerHTML=b(t.replaceAll("<!>","<!---->")),r.content}function a(t,r){var e=_;e.nodes===null&&(e.nodes={start:t,end:r,a:null,t:null})}function F(t,r){var e=(r&E)!==0,c=(r&g)!==0,n,m=!t.startsWith("<!>");return()=>{if(u)return a(s,null),s;n===void 0&&(n=L(m?t:"<!>"+t),e||(n=l(n)));var o=c||p?document.importNode(n,!0):n.cloneNode(!0);if(e){var T=l(o),v=o.lastChild;a(T,v)}else a(o,o);return o}}function H(t=""){if(!u){var r=d(t+"");return a(r,r),r}var e=s;return e.nodeType!==N?(e.before(e=d()),x(e)):A(e),a(e,e),e}function O(){if(u)return a(s,null),s;var t=document.createDocumentFragment(),r=document.createComment(""),e=d();return t.append(r,e),a(r,e),t}function P(t,r){if(u){var e=_;((e.f&y)===0||e.nodes.end===null)&&(e.nodes.end=s),M();return}t!==null&&t.before(r)}export{P as a,a as b,O as c,F as f,H as t};
|
||||||
BIN
apps/dashboard/build/_app/immutable/chunks/B0IenmM-.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/B0IenmM-.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/chunks/B0IenmM-.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/B0IenmM-.js.gz
Normal file
Binary file not shown.
1
apps/dashboard/build/_app/immutable/chunks/B17metm1.js
Normal file
1
apps/dashboard/build/_app/immutable/chunks/B17metm1.js
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
import{b as T,T as o,a7 as b,E as h,a8 as p,a9 as A,aa as E,ab as R,ac as g,ad as l}from"./nyjtQ1Ok.js";import{B as v}from"./C3lo34Tx.js";function N(t,c,u=!1){o&&b();var n=new v(t),_=u?h:0;function i(a,r){if(o){const e=p(t);var s;if(e===A?s=0:e===E?s=!1:s=parseInt(e.substring(1)),a!==s){var f=R();g(f),n.anchor=f,l(!1),n.ensure(a,r),l(!0);return}}n.ensure(a,r)}T(()=>{var a=!1;c((r,s=0)=>{a=!0,i(s,r)}),a||i(!1,null)},_)}export{N as i};
|
||||||
BIN
apps/dashboard/build/_app/immutable/chunks/B17metm1.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/B17metm1.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/chunks/B17metm1.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/B17metm1.js.gz
Normal file
Binary file not shown.
1
apps/dashboard/build/_app/immutable/chunks/B6fk3AxI.js
Normal file
1
apps/dashboard/build/_app/immutable/chunks/B6fk3AxI.js
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
import{d as c,w as S}from"./DAj0p1rI.js";const H=200;function y(){const{subscribe:t,set:o,update:e}=S({connected:!1,events:[],lastHeartbeat:null,error:null});let n=null,l=null,d=0;function m(i){const u=i||(window.location.port==="5173"?`ws://${window.location.hostname}:3927/ws`:`ws://${window.location.host}/ws`);if((n==null?void 0:n.readyState)!==WebSocket.OPEN)try{n=new WebSocket(u),n.onopen=()=>{d=0,e(a=>({...a,connected:!0,error:null}))},n.onmessage=a=>{try{const s=JSON.parse(a.data);e(b=>{if(s.type==="Heartbeat")return{...b,lastHeartbeat:s};const v=[s,...b.events].slice(0,H);return{...b,events:v}})}catch(s){console.warn("[vestige] Failed to parse WebSocket message:",s)}},n.onclose=()=>{e(a=>({...a,connected:!1})),f(u)},n.onerror=()=>{e(a=>({...a,error:"WebSocket connection failed"}))}}catch(a){e(s=>({...s,error:String(a)}))}}function f(i){l&&clearTimeout(l);const u=Math.min(1e3*2**d,3e4);d++,l=setTimeout(()=>m(i),u)}function p(){l&&clearTimeout(l),n==null||n.close(),n=null,o({connected:!1,events:[],lastHeartbeat:null,error:null})}function w(){e(i=>({...i,events:[]}))}return{subscribe:t,connect:m,disconnect:p,clearEvents:w}}const r=y(),h=c(r,t=>t.connected),k=c(r,t=>t.events);c(r,t=>t.lastHeartbeat);const T=c(r,t=>{var o,e;return((e=(o=t.lastHeartbeat)==null?void 0:o.data)==null?void 0:e.memory_count)??0}),W=c(r,t=>{var o,e;return((e=(o=t.lastHeartbeat)==null?void 0:o.data)==null?void 0:e.avg_retention)??0}),E=c(r,t=>{var o,e;return((e=(o=t.lastHeartbeat)==null?void 0:o.data)==null?void 0:e.suppressed_count)??0});export{W as a,k as e,h as i,T as m,E as s,r as w};
|
||||||
BIN
apps/dashboard/build/_app/immutable/chunks/B6fk3AxI.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/B6fk3AxI.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/chunks/B6fk3AxI.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/B6fk3AxI.js.gz
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
1
apps/dashboard/build/_app/immutable/chunks/BBOOwRwQ.js
Normal file
1
apps/dashboard/build/_app/immutable/chunks/BBOOwRwQ.js
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
import{T as i,W as d,X as n,Y as v,A as u,Z as h,_ as A,$ as g}from"./nyjtQ1Ok.js";const T=Symbol("is custom element"),l=Symbol("is html"),p=n?"link":"LINK";function S(r){if(i){var s=!1,e=()=>{if(!s){if(s=!0,r.hasAttribute("value")){var a=r.value;t(r,"value",null),r.value=a}if(r.hasAttribute("checked")){var o=r.checked;t(r,"checked",null),r.checked=o}}};r.__on_r=e,u(e),h()}}function t(r,s,e,a){var o=L(r);i&&(o[s]=r.getAttribute(s),s==="src"||s==="srcset"||s==="href"&&r.nodeName===p)||o[s]!==(o[s]=e)&&(s==="loading"&&(r[A]=e),e==null?r.removeAttribute(s):typeof e!="string"&&M(r).includes(s)?r[s]=e:r.setAttribute(s,e))}function L(r){return r.__attributes??(r.__attributes={[T]:r.nodeName.includes("-"),[l]:r.namespaceURI===d})}var c=new Map;function M(r){var s=r.getAttribute("is")||r.nodeName,e=c.get(s);if(e)return e;c.set(s,e=[]);for(var a,o=r,f=Element.prototype;f!==o;){a=g(o);for(var _ in a)a[_].set&&e.push(_);o=v(o)}return e}export{S as r,t as s};
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
Á@dUÕ¿Ïe…AÌz#0ãìœNÚ
|
||||||
|
©2–2céÿNÕä(üÁìþeîîMsh±X«óJå{К¶Ï¹ùÔhy
|
||||||
|
‚`>5§lÂÝÓkæ-›ðÀ?Â’¿`Ë]Øð7Œùº|Ž’¬\¨Ö–‡éú©ñ0«N
ܯΫ٫üþ¨Š0ùZQiûÏéèj;@¼’elW†&ìk®çÚ~ø‚J§É'ÝÅ3ÉIZø(·‹¦ã:kuì»îãAå¨fÇ‹VQ3·FeªÉŸoŠO“!òQF0õ£‚dY+¡díþFbJÉiõ÷7.Uo0<10>‘RÒNX¯°q`ÏýŸ[Tr“¢ÀXZ_t—7rŒØDLp>?Ô-¬
E¡kxÀ@¢èöŠÎgvÕ\„í$PQ`Å›(´QË.Íà„Š$m<>9\‰wš‡Å<E280A1>ØZëöïPi;$#&åNS<4E>îÅ8i.ܪol´ÑE¤>h·•!§òµßTêBÜ<T€¸œ“)‰¹?çíùJDþ%‹~È2ì²;¿ò'r‡Ô›fß,˜Ðù,«ÍA…"´Q3 Ôd?8±URöÉî‘ç(ÊCY3¦™?¸a.<1D>¼Œ0Váýf“eæÉ—¿}–Õ¢£’þ«Q¶)ɬ¤°VòÒS^gëÃ/'w
|
||||||
BIN
apps/dashboard/build/_app/immutable/chunks/BBOOwRwQ.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/BBOOwRwQ.js.gz
Normal file
Binary file not shown.
1
apps/dashboard/build/_app/immutable/chunks/BNytumrp.js
Normal file
1
apps/dashboard/build/_app/immutable/chunks/BNytumrp.js
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
const e={fact:"#00A8FF",concept:"#9D00FF",event:"#FFB800",person:"#00FFD1",place:"#00D4FF",note:"#8B95A5",pattern:"#FF3CAC",decision:"#FF4757"},F={MemoryCreated:"#00FFD1",MemoryUpdated:"#00A8FF",MemoryDeleted:"#FF4757",MemoryPromoted:"#00FF88",MemoryDemoted:"#FF6B35",MemorySuppressed:"#A33FFF",MemoryUnsuppressed:"#14E8C6",Rac1CascadeSwept:"#6E3FFF",SearchPerformed:"#818CF8",DreamStarted:"#9D00FF",DreamProgress:"#B44AFF",DreamCompleted:"#C084FC",ConsolidationStarted:"#FFB800",ConsolidationCompleted:"#FF9500",RetentionDecayed:"#FF4757",ConnectionDiscovered:"#00D4FF",ActivationSpread:"#14E8C6",ImportanceScored:"#FF3CAC",Heartbeat:"#8B95A5"};export{F as E,e as N};
|
||||||
BIN
apps/dashboard/build/_app/immutable/chunks/BNytumrp.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/BNytumrp.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/chunks/BNytumrp.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/BNytumrp.js.gz
Normal file
Binary file not shown.
1
apps/dashboard/build/_app/immutable/chunks/BOVu8he9.js
Normal file
1
apps/dashboard/build/_app/immutable/chunks/BOVu8he9.js
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
import{Q as _,R as b,n as i,z as m,T as y,U as v,V as h}from"./nyjtQ1Ok.js";function E(e,l,u=l){var f=new WeakSet;_(e,"input",async r=>{var a=r?e.defaultValue:e.value;if(a=t(e)?o(a):a,u(a),v!==null&&f.add(v),await b(),a!==(a=l())){var n=e.selectionStart,s=e.selectionEnd,d=e.value.length;if(e.value=a??"",s!==null){var c=e.value.length;n===s&&s===d&&c>d?(e.selectionStart=c,e.selectionEnd=c):(e.selectionStart=n,e.selectionEnd=Math.min(s,c))}}}),(y&&e.defaultValue!==e.value||i(l)==null&&e.value)&&(u(t(e)?o(e.value):e.value),v!==null&&f.add(v)),m(()=>{var r=l();if(e===document.activeElement){var a=h??v;if(f.has(a))return}t(e)&&r===o(e.value)||e.type==="date"&&!r&&!e.value||r!==e.value&&(e.value=r??"")})}function t(e){var l=e.type;return l==="number"||l==="range"}function o(e){return e===""?null:+e}export{E as b};
|
||||||
BIN
apps/dashboard/build/_app/immutable/chunks/BOVu8he9.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/BOVu8he9.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/chunks/BOVu8he9.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/BOVu8he9.js.gz
Normal file
Binary file not shown.
1
apps/dashboard/build/_app/immutable/chunks/BPtVz5jm.js
Normal file
1
apps/dashboard/build/_app/immutable/chunks/BPtVz5jm.js
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
import{B as m,C as D,P as T,g as P,c as B,h as b,D as M,F as N,G as Y,H as h,n as U,I as w,J as x,K as C,w as G,L as $,M as q,S as z,N as F}from"./nyjtQ1Ok.js";import{c as H}from"./C3ZC25l2.js";function Z(r,a,t,s){var o;var f=!w||(t&x)!==0,v=(t&h)!==0,O=(t&q)!==0,n=s,c=!0,I=()=>(c&&(c=!1,n=O?U(s):s),n),u;if(v){var R=z in r||F in r;u=((o=m(r,a))==null?void 0:o.set)??(R&&a in r?e=>r[a]=e:void 0)}var _,g=!1;v?[_,g]=H(()=>r[a]):_=r[a],_===void 0&&s!==void 0&&(_=I(),u&&(f&&D(),u(_)));var i;if(f?i=()=>{var e=r[a];return e===void 0?I():(c=!0,e)}:i=()=>{var e=r[a];return e!==void 0&&(n=void 0),e===void 0?n:e},f&&(t&T)===0)return i;if(u){var A=r.$$legacy;return(function(e,S){return arguments.length>0?((!f||!S||A||g)&&u(S?i():e),e):i()})}var l=!1,d=((t&C)!==0?G:$)(()=>(l=!1,i()));v&&P(d);var L=N;return(function(e,S){if(arguments.length>0){const E=S?P(d):f&&v?B(e):e;return b(d,E),l=!0,n!==void 0&&(n=E),e}return M&&l||(L.f&Y)!==0?d.v:P(d)})}export{Z as p};
|
||||||
BIN
apps/dashboard/build/_app/immutable/chunks/BPtVz5jm.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/BPtVz5jm.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/chunks/BPtVz5jm.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/BPtVz5jm.js.gz
Normal file
Binary file not shown.
|
|
@ -1 +0,0 @@
|
||||||
import{J as i,N as d,O as n,Q as v,q as u,R as h,T as g,U as A}from"./BBD-8XME.js";const N=Symbol("is custom element"),T=Symbol("is html"),l=n?"link":"LINK";function S(r){if(i){var s=!1,e=()=>{if(!s){if(s=!0,r.hasAttribute("value")){var a=r.value;t(r,"value",null),r.value=a}if(r.hasAttribute("checked")){var o=r.checked;t(r,"checked",null),r.checked=o}}};r.__on_r=e,u(e),h()}}function t(r,s,e,a){var o=p(r);i&&(o[s]=r.getAttribute(s),s==="src"||s==="srcset"||s==="href"&&r.nodeName===l)||o[s]!==(o[s]=e)&&(s==="loading"&&(r[g]=e),e==null?r.removeAttribute(s):typeof e!="string"&&L(r).includes(s)?r[s]=e:r.setAttribute(s,e))}function p(r){return r.__attributes??(r.__attributes={[N]:r.nodeName.includes("-"),[T]:r.namespaceURI===d})}var c=new Map;function L(r){var s=r.getAttribute("is")||r.nodeName,e=c.get(s);if(e)return e;c.set(s,e=[]);for(var a,o=r,f=Element.prototype;f!==o;){a=A(o);for(var _ in a)a[_].set&&e.push(_);o=v(o)}return e}export{S as r,t as s};
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
|
|
@ -1 +0,0 @@
|
||||||
import{s as c,g as l}from"./Br8WXJxx.js";import{V as o,W as a,X as b,g as p,h as d,Y as g}from"./BBD-8XME.js";let s=!1,i=Symbol();function y(e,n,r){const u=r[n]??(r[n]={store:null,source:b(void 0),unsubscribe:a});if(u.store!==e&&!(i in r))if(u.unsubscribe(),u.store=e??null,e==null)u.source.v=void 0,u.unsubscribe=a;else{var t=!0;u.unsubscribe=c(e,f=>{t?u.source.v=f:d(u.source,f)}),t=!1}return e&&i in r?l(e):p(u.source)}function m(){const e={};function n(){o(()=>{for(var r in e)e[r].unsubscribe();g(e,i,{enumerable:!1,value:!0})})}return[e,n]}function N(e){var n=s;try{return s=!1,[e(),s]}finally{s=n}}export{y as a,N as c,m as s};
|
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -1 +1 @@
|
||||||
import{t as l}from"./C5a--lgk.js";import{J as e}from"./BBD-8XME.js";function u(s,c,r,f,p,i){var a=s.__className;if(e||a!==r||a===void 0){var t=l(r);(!e||t!==s.getAttribute("class"))&&(t==null?s.removeAttribute("class"):s.className=t),s.__className=r}return i}export{u as s};
|
import{t as l}from"./BilMa3tw.js";import{T as e}from"./nyjtQ1Ok.js";function u(s,c,r,f,p,i){var a=s.__className;if(e||a!==r||a===void 0){var t=l(r);(!e||t!==s.getAttribute("class"))&&(t==null?s.removeAttribute("class"):s.className=t),s.__className=r}return i}export{u as s};
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
`Δ¬Ή|<7C>br½Ω’ο³gJhέι8ΚέΎ¶ τ<C2A0>Φ‚ZΧ(ΑΫ<>τd!><3E>cF5΅‚ξΛς”δΓίς«†Q³=΄Σ<CE84><CEA3>α<EFBFBD>TA΅/Ει½γ~<7E>έG…χέ&ξίό•ρ·…¦ p<ύ*¶+{ωϋMΰ€Ξυ³gΖΑΎ9ΒV8Θ=8#©~Όκ8¦i3Π¨V<C2A8>v[ εκ<>`Η¤βφο<CF86>Ύύ/_Ϊ]Ύ·½ό…
|
||||||
BIN
apps/dashboard/build/_app/immutable/chunks/BgOFZ9jq.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/BgOFZ9jq.js.gz
Normal file
Binary file not shown.
1
apps/dashboard/build/_app/immutable/chunks/BilMa3tw.js
Normal file
1
apps/dashboard/build/_app/immutable/chunks/BilMa3tw.js
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
import{ah as F,b as fe,an as ae,T as D,ac as L,ao as ie,a7 as le,g as W,a8 as ue,aa as se,ab as Z,ad as q,aj as z,ap as oe,aq as te,ar as $,U as ve,as as T,ai as y,at as de,al as ce,L as pe,a4 as _e,au as V,av as he,aw as ge,a2 as Ee,ax as j,ay as me,ae as ne,ag as re,az as B,A as Te,aA as Ae,aB as Ce,aC as we,af as Se,aD as Ie}from"./nyjtQ1Ok.js";function De(e,n){return n}function Ne(e,n,l){for(var t=[],g=n.length,s,u=n.length,c=0;c<g;c++){let E=n[c];re(E,()=>{if(s){if(s.pending.delete(E),s.done.add(E),s.pending.size===0){var o=e.outrogroups;U(V(s.done)),o.delete(s),o.size===0&&(e.outrogroups=null)}}else u-=1},!1)}if(u===0){var i=t.length===0&&l!==null;if(i){var v=l,r=v.parentNode;we(r),r.append(v),e.items.clear()}U(n,!i)}else s={pending:new Set(n),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(s)}function U(e,n=!0){for(var l=0;l<e.length;l++)Se(e[l],n)}var ee;function He(e,n,l,t,g,s=null){var u=e,c=new Map,i=(n&ae)!==0;if(i){var v=e;u=D?L(ie(v)):v.appendChild(F())}D&&le();var r=null,E=pe(()=>{var f=l();return _e(f)?f:f==null?[]:V(f)}),o,d=!0;function C(){a.fallback=r,xe(a,o,u,n,t),r!==null&&(o.length===0?(r.f&T)===0?ne(r):(r.f^=T,M(r,null,u)):re(r,()=>{r=null}))}var I=fe(()=>{o=W(E);var f=o.length;let N=!1;if(D){var x=ue(u)===se;x!==(f===0)&&(u=Z(),L(u),q(!1),N=!0)}for(var _=new Set,w=ve,b=ce(),p=0;p<f;p+=1){D&&z.nodeType===oe&&z.data===te&&(u=z,N=!0,q(!1));var S=o[p],R=t(S,p),h=d?null:c.get(R);h?(h.v&&$(h.v,S),h.i&&$(h.i,p),b&&w.unskip_effect(h.e)):(h=be(c,d?u:ee??(ee=F()),S,R,p,g,n,l),d||(h.e.f|=T),c.set(R,h)),_.add(R)}if(f===0&&s&&!r&&(d?r=y(()=>s(u)):(r=y(()=>s(ee??(ee=F()))),r.f|=T)),f>_.size&&de(),D&&f>0&&L(Z()),!d)if(b){for(const[k,O]of c)_.has(k)||w.skip_effect(O.e);w.oncommit(C),w.ondiscard(()=>{})}else C();N&&q(!0),W(E)}),a={effect:I,items:c,outrogroups:null,fallback:r};d=!1,D&&(u=z)}function H(e){for(;e!==null&&(e.f&Ae)===0;)e=e.next;return e}function xe(e,n,l,t,g){var h,k,O,Y,X,G,J,K,P;var s=(t&Ce)!==0,u=n.length,c=e.items,i=H(e.effect.first),v,r=null,E,o=[],d=[],C,I,a,f;if(s)for(f=0;f<u;f+=1)C=n[f],I=g(C,f),a=c.get(I).e,(a.f&T)===0&&((k=(h=a.nodes)==null?void 0:h.a)==null||k.measure(),(E??(E=new Set)).add(a));for(f=0;f<u;f+=1){if(C=n[f],I=g(C,f),a=c.get(I).e,e.outrogroups!==null)for(const m of e.outrogroups)m.pending.delete(a),m.done.delete(a);if((a.f&T)!==0)if(a.f^=T,a===i)M(a,null,l);else{var N=r?r.next:i;a===e.effect.last&&(e.effect.last=a.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),A(e,r,a),A(e,a,N),M(a,N,l),r=a,o=[],d=[],i=H(r.next);continue}if((a.f&B)!==0&&(ne(a),s&&((Y=(O=a.nodes)==null?void 0:O.a)==null||Y.unfix(),(E??(E=new Set)).delete(a))),a!==i){if(v!==void 0&&v.has(a)){if(o.length<d.length){var x=d[0],_;r=x.prev;var w=o[0],b=o[o.length-1];for(_=0;_<o.length;_+=1)M(o[_],x,l);for(_=0;_<d.length;_+=1)v.delete(d[_]);A(e,w.prev,b.next),A(e,r,w),A(e,b,x),i=x,r=b,f-=1,o=[],d=[]}else v.delete(a),M(a,i,l),A(e,a.prev,a.next),A(e,a,r===null?e.effect.first:r.next),A(e,r,a),r=a;continue}for(o=[],d=[];i!==null&&i!==a;)(v??(v=new Set)).add(i),d.push(i),i=H(i.next);if(i===null)continue}(a.f&T)===0&&o.push(a),r=a,i=H(a.next)}if(e.outrogroups!==null){for(const m of e.outrogroups)m.pending.size===0&&(U(V(m.done)),(X=e.outrogroups)==null||X.delete(m));e.outrogroups.size===0&&(e.outrogroups=null)}if(i!==null||v!==void 0){var p=[];if(v!==void 0)for(a of v)(a.f&B)===0&&p.push(a);for(;i!==null;)(i.f&B)===0&&i!==e.fallback&&p.push(i),i=H(i.next);var S=p.length;if(S>0){var R=(t&ae)!==0&&u===0?l:null;if(s){for(f=0;f<S;f+=1)(J=(G=p[f].nodes)==null?void 0:G.a)==null||J.measure();for(f=0;f<S;f+=1)(P=(K=p[f].nodes)==null?void 0:K.a)==null||P.fix()}Ne(e,p,R)}}s&&Te(()=>{var m,Q;if(E!==void 0)for(a of E)(Q=(m=a.nodes)==null?void 0:m.a)==null||Q.apply()})}function be(e,n,l,t,g,s,u,c){var i=(u&he)!==0?(u&ge)===0?Ee(l,!1,!1):j(l):null,v=(u&me)!==0?j(g):null;return{v:i,i:v,e:y(()=>(s(n,i??l,v??g,c),()=>{e.delete(t)}))}}function M(e,n,l){if(e.nodes)for(var t=e.nodes.start,g=e.nodes.end,s=n&&(n.f&T)===0?n.nodes.start:l;t!==null;){var u=Ie(t);if(s.before(t),t===g)return;t=u}}function A(e,n,l){n===null?e.effect.first=l:n.next=l,l===null?e.effect.last=n:l.prev=n}function Me(e,n,l){var t=e==null?"":""+e;return t===""?null:t}function ke(e,n){return e==null?null:String(e)}export{ke as a,He as e,De as i,Me as t};
|
||||||
BIN
apps/dashboard/build/_app/immutable/chunks/BilMa3tw.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/BilMa3tw.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/chunks/BilMa3tw.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/BilMa3tw.js.gz
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1 +0,0 @@
|
||||||
import{H as m,I as _,m as b,l as i,J as y,K as v,M as h}from"./BBD-8XME.js";function E(e,l,u=l){var f=new WeakSet;m(e,"input",async r=>{var a=r?e.defaultValue:e.value;if(a=t(e)?o(a):a,u(a),v!==null&&f.add(v),await _(),a!==(a=l())){var d=e.selectionStart,s=e.selectionEnd,n=e.value.length;if(e.value=a??"",s!==null){var c=e.value.length;d===s&&s===n&&c>n?(e.selectionStart=c,e.selectionEnd=c):(e.selectionStart=d,e.selectionEnd=Math.min(s,c))}}}),(y&&e.defaultValue!==e.value||b(l)==null&&e.value)&&(u(t(e)?o(e.value):e.value),v!==null&&f.add(v)),i(()=>{var r=l();if(e===document.activeElement){var a=h??v;if(f.has(a))return}t(e)&&r===o(e.value)||e.type==="date"&&!r&&!e.value||r!==e.value&&(e.value=r??"")})}function t(e){var l=e.type;return l==="number"||l==="range"}function o(e){return e===""?null:+e}export{E as b};
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1 +0,0 @@
|
||||||
import{H as s,k as o,V as c,Z as b,_ as m,$ as h,K as v,M as y}from"./BBD-8XME.js";function d(e,r,f=!1){if(e.multiple){if(r==null)return;if(!b(r))return m();for(var a of e.options)a.selected=r.includes(i(a));return}for(a of e.options){var t=i(a);if(h(t,r)){a.selected=!0;return}}(!f||r!==void 0)&&(e.selectedIndex=-1)}function q(e){var r=new MutationObserver(()=>{d(e,e.__value)});r.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),c(()=>{r.disconnect()})}function k(e,r,f=r){var a=new WeakSet,t=!0;s(e,"change",u=>{var l=u?"[selected]":":checked",n;if(e.multiple)n=[].map.call(e.querySelectorAll(l),i);else{var _=e.querySelector(l)??e.querySelector("option:not([disabled])");n=_&&i(_)}f(n),v!==null&&a.add(v)}),o(()=>{var u=r();if(e===document.activeElement){var l=y??v;if(a.has(l))return}if(d(e,u,t),t&&u===void 0){var n=e.querySelector(":checked");n!==null&&(u=i(n),f(u))}e.__value=u,t=!1}),q(e)}function i(e){return"__value"in e?e.__value:e.value}export{k as b};
|
|
||||||
Binary file not shown.
Binary file not shown.
1
apps/dashboard/build/_app/immutable/chunks/C3ZC25l2.js
Normal file
1
apps/dashboard/build/_app/immutable/chunks/C3ZC25l2.js
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
import{s as c,g as l}from"./DAj0p1rI.js";import{a0 as o,a1 as f,a2 as b,g as p,h as d,a3 as g}from"./nyjtQ1Ok.js";let s=!1,i=Symbol();function y(e,n,r){const u=r[n]??(r[n]={store:null,source:b(void 0),unsubscribe:f});if(u.store!==e&&!(i in r))if(u.unsubscribe(),u.store=e??null,e==null)u.source.v=void 0,u.unsubscribe=f;else{var t=!0;u.unsubscribe=c(e,a=>{t?u.source.v=a:d(u.source,a)}),t=!1}return e&&i in r?l(e):p(u.source)}function m(){const e={};function n(){o(()=>{for(var r in e)e[r].unsubscribe();g(e,i,{enumerable:!1,value:!0})})}return[e,n]}function N(e){var n=s;try{return s=!1,[e(),s]}finally{s=n}}export{y as a,N as c,m as s};
|
||||||
BIN
apps/dashboard/build/_app/immutable/chunks/C3ZC25l2.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/C3ZC25l2.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/chunks/C3ZC25l2.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/C3ZC25l2.js.gz
Normal file
Binary file not shown.
|
|
@ -1 +1 @@
|
||||||
var D=Object.defineProperty;var g=a=>{throw TypeError(a)};var F=(a,e,s)=>e in a?D(a,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):a[e]=s;var w=(a,e,s)=>F(a,typeof e!="symbol"?e+"":e,s),y=(a,e,s)=>e.has(a)||g("Cannot "+s);var t=(a,e,s)=>(y(a,e,"read from private field"),s?s.call(a):e.get(a)),l=(a,e,s)=>e.has(a)?g("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(a):e.set(a,s),M=(a,e,s,i)=>(y(a,e,"write to private field"),i?i.call(a,s):e.set(a,s),s);import{K as x,a7 as C,a8 as k,a9 as J,aa as A,ab as B,J as K,ac as S,ad as j,ae as q}from"./BBD-8XME.js";var r,n,h,u,p,_,v;class G{constructor(e,s=!0){w(this,"anchor");l(this,r,new Map);l(this,n,new Map);l(this,h,new Map);l(this,u,new Set);l(this,p,!0);l(this,_,()=>{var e=x;if(t(this,r).has(e)){var s=t(this,r).get(e),i=t(this,n).get(s);if(i)C(i),t(this,u).delete(s);else{var c=t(this,h).get(s);c&&(t(this,n).set(s,c.effect),t(this,h).delete(s),c.fragment.lastChild.remove(),this.anchor.before(c.fragment),i=c.effect)}for(const[f,o]of t(this,r)){if(t(this,r).delete(f),f===e)break;const d=t(this,h).get(o);d&&(k(d.effect),t(this,h).delete(o))}for(const[f,o]of t(this,n)){if(f===s||t(this,u).has(f))continue;const d=()=>{if(Array.from(t(this,r).values()).includes(f)){var b=document.createDocumentFragment();j(o,b),b.append(A()),t(this,h).set(f,{effect:o,fragment:b})}else k(o);t(this,u).delete(f),t(this,n).delete(f)};t(this,p)||!i?(t(this,u).add(f),J(o,d,!1)):d()}}});l(this,v,e=>{t(this,r).delete(e);const s=Array.from(t(this,r).values());for(const[i,c]of t(this,h))s.includes(i)||(k(c.effect),t(this,h).delete(i))});this.anchor=e,M(this,p,s)}ensure(e,s){var i=x,c=q();if(s&&!t(this,n).has(e)&&!t(this,h).has(e))if(c){var f=document.createDocumentFragment(),o=A();f.append(o),t(this,h).set(e,{effect:B(()=>s(o)),fragment:f})}else t(this,n).set(e,B(()=>s(this.anchor)));if(t(this,r).set(i,e),c){for(const[d,m]of t(this,n))d===e?i.unskip_effect(m):i.skip_effect(m);for(const[d,m]of t(this,h))d===e?i.unskip_effect(m.effect):i.skip_effect(m.effect);i.oncommit(t(this,_)),i.ondiscard(t(this,v))}else K&&(this.anchor=S),t(this,_).call(this)}}r=new WeakMap,n=new WeakMap,h=new WeakMap,u=new WeakMap,p=new WeakMap,_=new WeakMap,v=new WeakMap;export{G as B};
|
var D=Object.defineProperty;var g=a=>{throw TypeError(a)};var F=(a,e,s)=>e in a?D(a,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):a[e]=s;var w=(a,e,s)=>F(a,typeof e!="symbol"?e+"":e,s),y=(a,e,s)=>e.has(a)||g("Cannot "+s);var t=(a,e,s)=>(y(a,e,"read from private field"),s?s.call(a):e.get(a)),l=(a,e,s)=>e.has(a)?g("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(a):e.set(a,s),M=(a,e,s,i)=>(y(a,e,"write to private field"),i?i.call(a,s):e.set(a,s),s);import{U as x,ae as j,af as k,ag as C,ah as A,ai as B,T as S,aj as T,ak as U,al as q}from"./nyjtQ1Ok.js";var r,n,h,u,p,_,v;class G{constructor(e,s=!0){w(this,"anchor");l(this,r,new Map);l(this,n,new Map);l(this,h,new Map);l(this,u,new Set);l(this,p,!0);l(this,_,()=>{var e=x;if(t(this,r).has(e)){var s=t(this,r).get(e),i=t(this,n).get(s);if(i)j(i),t(this,u).delete(s);else{var c=t(this,h).get(s);c&&(t(this,n).set(s,c.effect),t(this,h).delete(s),c.fragment.lastChild.remove(),this.anchor.before(c.fragment),i=c.effect)}for(const[f,o]of t(this,r)){if(t(this,r).delete(f),f===e)break;const d=t(this,h).get(o);d&&(k(d.effect),t(this,h).delete(o))}for(const[f,o]of t(this,n)){if(f===s||t(this,u).has(f))continue;const d=()=>{if(Array.from(t(this,r).values()).includes(f)){var b=document.createDocumentFragment();U(o,b),b.append(A()),t(this,h).set(f,{effect:o,fragment:b})}else k(o);t(this,u).delete(f),t(this,n).delete(f)};t(this,p)||!i?(t(this,u).add(f),C(o,d,!1)):d()}}});l(this,v,e=>{t(this,r).delete(e);const s=Array.from(t(this,r).values());for(const[i,c]of t(this,h))s.includes(i)||(k(c.effect),t(this,h).delete(i))});this.anchor=e,M(this,p,s)}ensure(e,s){var i=x,c=q();if(s&&!t(this,n).has(e)&&!t(this,h).has(e))if(c){var f=document.createDocumentFragment(),o=A();f.append(o),t(this,h).set(e,{effect:B(()=>s(o)),fragment:f})}else t(this,n).set(e,B(()=>s(this.anchor)));if(t(this,r).set(i,e),c){for(const[d,m]of t(this,n))d===e?i.unskip_effect(m):i.skip_effect(m);for(const[d,m]of t(this,h))d===e?i.unskip_effect(m.effect):i.skip_effect(m.effect);i.oncommit(t(this,_)),i.ondiscard(t(this,v))}else S&&(this.anchor=T),t(this,_).call(this)}}r=new WeakMap,n=new WeakMap,h=new WeakMap,u=new WeakMap,p=new WeakMap,_=new WeakMap,v=new WeakMap;export{G as B};
|
||||||
BIN
apps/dashboard/build/_app/immutable/chunks/C3lo34Tx.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/C3lo34Tx.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/chunks/C3lo34Tx.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/C3lo34Tx.js.gz
Normal file
Binary file not shown.
2
apps/dashboard/build/_app/immutable/chunks/C4L78yoI.js
Normal file
2
apps/dashboard/build/_app/immutable/chunks/C4L78yoI.js
Normal file
File diff suppressed because one or more lines are too long
BIN
apps/dashboard/build/_app/immutable/chunks/C4L78yoI.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/C4L78yoI.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/chunks/C4L78yoI.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/C4L78yoI.js.gz
Normal file
Binary file not shown.
|
|
@ -1 +0,0 @@
|
||||||
import{aa as F,b as fe,an as ne,J as D,a5 as q,ao as ie,a0 as le,g as Q,a1 as ue,a3 as se,a4 as W,a6 as L,ac as z,ap as oe,aq as te,ar as $,K as ve,as as C,ab as y,at as de,ae as ce,C as pe,Z as _e,au as X,av as he,aw as ge,X as Ee,ax as j,ay as me,a7 as re,a9 as ae,az as B,q as Ce,aA as Te,aB as Ae,aC as we,a8 as Se,aD as Ie}from"./BBD-8XME.js";function De(e,r){return r}function Ne(e,r,l){for(var t=[],g=r.length,s,u=r.length,c=0;c<g;c++){let E=r[c];ae(E,()=>{if(s){if(s.pending.delete(E),s.done.add(E),s.pending.size===0){var o=e.outrogroups;V(X(s.done)),o.delete(s),o.size===0&&(e.outrogroups=null)}}else u-=1},!1)}if(u===0){var i=t.length===0&&l!==null;if(i){var v=l,a=v.parentNode;we(a),a.append(v),e.items.clear()}V(r,!i)}else s={pending:new Set(r),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(s)}function V(e,r=!0){for(var l=0;l<e.length;l++)Se(e[l],r)}var ee;function He(e,r,l,t,g,s=null){var u=e,c=new Map,i=(r&ne)!==0;if(i){var v=e;u=D?q(ie(v)):v.appendChild(F())}D&&le();var a=null,E=pe(()=>{var f=l();return _e(f)?f:f==null?[]:X(f)}),o,d=!0;function A(){n.fallback=a,xe(n,o,u,r,t),a!==null&&(o.length===0?(a.f&C)===0?re(a):(a.f^=C,M(a,null,u)):ae(a,()=>{a=null}))}var I=fe(()=>{o=Q(E);var f=o.length;let N=!1;if(D){var x=ue(u)===se;x!==(f===0)&&(u=W(),q(u),L(!1),N=!0)}for(var _=new Set,w=ve,b=ce(),p=0;p<f;p+=1){D&&z.nodeType===oe&&z.data===te&&(u=z,N=!0,L(!1));var S=o[p],R=t(S,p),h=d?null:c.get(R);h?(h.v&&$(h.v,S),h.i&&$(h.i,p),b&&w.unskip_effect(h.e)):(h=be(c,d?u:ee??(ee=F()),S,R,p,g,r,l),d||(h.e.f|=C),c.set(R,h)),_.add(R)}if(f===0&&s&&!a&&(d?a=y(()=>s(u)):(a=y(()=>s(ee??(ee=F()))),a.f|=C)),f>_.size&&de(),D&&f>0&&q(W()),!d)if(b){for(const[k,O]of c)_.has(k)||w.skip_effect(O.e);w.oncommit(A),w.ondiscard(()=>{})}else A();N&&L(!0),Q(E)}),n={effect:I,items:c,outrogroups:null,fallback:a};d=!1,D&&(u=z)}function H(e){for(;e!==null&&(e.f&Te)===0;)e=e.next;return e}function xe(e,r,l,t,g){var h,k,O,Y,J,K,U,Z,G;var s=(t&Ae)!==0,u=r.length,c=e.items,i=H(e.effect.first),v,a=null,E,o=[],d=[],A,I,n,f;if(s)for(f=0;f<u;f+=1)A=r[f],I=g(A,f),n=c.get(I).e,(n.f&C)===0&&((k=(h=n.nodes)==null?void 0:h.a)==null||k.measure(),(E??(E=new Set)).add(n));for(f=0;f<u;f+=1){if(A=r[f],I=g(A,f),n=c.get(I).e,e.outrogroups!==null)for(const m of e.outrogroups)m.pending.delete(n),m.done.delete(n);if((n.f&C)!==0)if(n.f^=C,n===i)M(n,null,l);else{var N=a?a.next:i;n===e.effect.last&&(e.effect.last=n.prev),n.prev&&(n.prev.next=n.next),n.next&&(n.next.prev=n.prev),T(e,a,n),T(e,n,N),M(n,N,l),a=n,o=[],d=[],i=H(a.next);continue}if((n.f&B)!==0&&(re(n),s&&((Y=(O=n.nodes)==null?void 0:O.a)==null||Y.unfix(),(E??(E=new Set)).delete(n))),n!==i){if(v!==void 0&&v.has(n)){if(o.length<d.length){var x=d[0],_;a=x.prev;var w=o[0],b=o[o.length-1];for(_=0;_<o.length;_+=1)M(o[_],x,l);for(_=0;_<d.length;_+=1)v.delete(d[_]);T(e,w.prev,b.next),T(e,a,w),T(e,b,x),i=x,a=b,f-=1,o=[],d=[]}else v.delete(n),M(n,i,l),T(e,n.prev,n.next),T(e,n,a===null?e.effect.first:a.next),T(e,a,n),a=n;continue}for(o=[],d=[];i!==null&&i!==n;)(v??(v=new Set)).add(i),d.push(i),i=H(i.next);if(i===null)continue}(n.f&C)===0&&o.push(n),a=n,i=H(n.next)}if(e.outrogroups!==null){for(const m of e.outrogroups)m.pending.size===0&&(V(X(m.done)),(J=e.outrogroups)==null||J.delete(m));e.outrogroups.size===0&&(e.outrogroups=null)}if(i!==null||v!==void 0){var p=[];if(v!==void 0)for(n of v)(n.f&B)===0&&p.push(n);for(;i!==null;)(i.f&B)===0&&i!==e.fallback&&p.push(i),i=H(i.next);var S=p.length;if(S>0){var R=(t&ne)!==0&&u===0?l:null;if(s){for(f=0;f<S;f+=1)(U=(K=p[f].nodes)==null?void 0:K.a)==null||U.measure();for(f=0;f<S;f+=1)(G=(Z=p[f].nodes)==null?void 0:Z.a)==null||G.fix()}Ne(e,p,R)}}s&&Ce(()=>{var m,P;if(E!==void 0)for(n of E)(P=(m=n.nodes)==null?void 0:m.a)==null||P.apply()})}function be(e,r,l,t,g,s,u,c){var i=(u&he)!==0?(u&ge)===0?Ee(l,!1,!1):j(l):null,v=(u&me)!==0?j(g):null;return{v:i,i:v,e:y(()=>(s(r,i??l,v??g,c),()=>{e.delete(t)}))}}function M(e,r,l){if(e.nodes)for(var t=e.nodes.start,g=e.nodes.end,s=r&&(r.f&C)===0?r.nodes.start:l;t!==null;){var u=Ie(t);if(s.before(t),t===g)return;t=u}}function T(e,r,l){r===null?e.effect.first=l:r.next=l,l===null?e.effect.last=r:l.prev=r}function Me(e,r,l){var t=e==null?"":""+e;return t===""?null:t}function ke(e,r){return e==null?null:String(e)}export{ke as a,He as e,De as i,Me as t};
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1 +0,0 @@
|
||||||
import{aE as h,aa as d,ao as l,aF as p,w as _,aG as E,aH as g,J as u,ac as s,aI as y,a0 as M,aJ as N,a5 as x,aK as A}from"./BBD-8XME.js";var f;const i=((f=globalThis==null?void 0:globalThis.window)==null?void 0:f.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:t=>t});function b(t){return(i==null?void 0:i.createHTML(t))??t}function w(t){var r=h("template");return r.innerHTML=b(t.replaceAll("<!>","<!---->")),r.content}function a(t,r){var e=_;e.nodes===null&&(e.nodes={start:t,end:r,a:null,t:null})}function H(t,r){var e=(r&E)!==0,c=(r&g)!==0,n,m=!t.startsWith("<!>");return()=>{if(u)return a(s,null),s;n===void 0&&(n=w(m?t:"<!>"+t),e||(n=l(n)));var o=c||p?document.importNode(n,!0):n.cloneNode(!0);if(e){var v=l(o),T=o.lastChild;a(v,T)}else a(o,o);return o}}function O(t=""){if(!u){var r=d(t+"");return a(r,r),r}var e=s;return e.nodeType!==N?(e.before(e=d()),x(e)):A(e),a(e,e),e}function P(){if(u)return a(s,null),s;var t=document.createDocumentFragment(),r=document.createComment(""),e=d();return t.append(r,e),a(r,e),t}function R(t,r){if(u){var e=_;((e.f&y)===0||e.nodes.end===null)&&(e.nodes.end=s),M();return}t!==null&&t.before(r)}export{R as a,a as b,P as c,H as f,O as t};
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
É@dSÕö,“ÅA\`¦Ô—)¥o9Z‚ÝÉI»óžû9¼ÝÂl<µŸ±è¶
|
|
||||||
^“UÀë¼I¯B‰'1$L/ÍeãäȘÔè`ˆW<CB86>?šF„ß¼.cxèÐÝÆX a†·0ÇMxÄ;xÂ=˜á½ã4AøQé<51>³³‹æáÏã¥îURýG»¬œ
±Ñc€6CJÝûÉÁ,•Ò±XÚ,JMŠ1XÃÙÖLtHÍ‚Óó¼ÉàAÑ4cþ@q*Ld¥¹’šOƒç¢å†âhOù(&,éiA”¼5Ѓe©§[Z@D<>Ž §ÞÏ]PœÑ•H
û‡Åd¹ñ1,gN‡CPÿ³#E!¥ÝD¼ŒH^3´o0.ò›áßR´V»ÃÉsÈ’—rˆ$¶.<™B±
Td)a<>V7—Àç—˜1oR•2uZ-<2D>8‹Z©{©1°rHÝä£e¯
cD2a Ð@mH¡´ÌL¸ky–§0:ŽE¿Ö#’¬V`yÑùW™Þ¿cmf$™úâò®[Ê6±°º:+{bMÛ<Eà¿4á!8¤vZÍh#+
LæLξjÀ‘ãÄ’KT€ç+…hx²1ÿ„:Û¸®—hµzòH>ÑJ%Å)¡k͘ŸŽAþ®‘f ˆÅ)’!A’¡7{¤5ÒTñÜ2g™WÞtb'É×bÝm”BƒV<>þÝþ¤˜H¿páRŸˆ™ˆnçsLóæjµMk±µÐé¸bò³éqÐHŠ™hj‘2E<32>IföIz[‚¡–<C2A1>½,Ý,<2C>ÛôÜx{<19>T®
|
|
||||||
Binary file not shown.
|
|
@ -1 +0,0 @@
|
||||||
const e={fact:"#00A8FF",concept:"#9D00FF",event:"#FFB800",person:"#00FFD1",place:"#00D4FF",note:"#8B95A5",pattern:"#FF3CAC",decision:"#FF4757"},F={MemoryCreated:"#00FFD1",MemoryUpdated:"#00A8FF",MemoryDeleted:"#FF4757",MemoryPromoted:"#00FF88",MemoryDemoted:"#FF6B35",SearchPerformed:"#818CF8",DreamStarted:"#9D00FF",DreamProgress:"#B44AFF",DreamCompleted:"#C084FC",ConsolidationStarted:"#FFB800",ConsolidationCompleted:"#FF9500",RetentionDecayed:"#FF4757",ConnectionDiscovered:"#00D4FF",ActivationSpread:"#14E8C6",ImportanceScored:"#FF3CAC",Heartbeat:"#8B95A5"};export{F as E,e as N};
|
|
||||||
Binary file not shown.
Binary file not shown.
1
apps/dashboard/build/_app/immutable/chunks/Ck7jSX2P.js
Normal file
1
apps/dashboard/build/_app/immutable/chunks/Ck7jSX2P.js
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
import{k as d,l as g,m as i,n as m,o as l,q as v,g as p,v as b,w as k}from"./nyjtQ1Ok.js";function x(n=!1){const s=d,e=s.l.u;if(!e)return;let r=()=>b(s.s);if(n){let o=0,t={};const _=k(()=>{let c=!1;const a=s.s;for(const f in a)a[f]!==t[f]&&(t[f]=a[f],c=!0);return c&&o++,o});r=()=>p(_)}e.b.length&&g(()=>{u(s,r),l(e.b)}),i(()=>{const o=m(()=>e.m.map(v));return()=>{for(const t of o)typeof t=="function"&&t()}}),e.a.length&&i(()=>{u(s,r),l(e.a)})}function u(n,s){if(n.l.s)for(const e of n.l.s)p(e);s()}export{x as i};
|
||||||
BIN
apps/dashboard/build/_app/immutable/chunks/Ck7jSX2P.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/Ck7jSX2P.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/chunks/Ck7jSX2P.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/Ck7jSX2P.js.gz
Normal file
Binary file not shown.
1
apps/dashboard/build/_app/immutable/chunks/Ckx7gB9J.js
Normal file
1
apps/dashboard/build/_app/immutable/chunks/Ckx7gB9J.js
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
import{b as p,E as t}from"./nyjtQ1Ok.js";import{B as c}from"./C3lo34Tx.js";function E(r,s,...a){var e=new c(r);p(()=>{const n=s()??null;e.ensure(n,n&&(o=>n(o,...a)))},t)}export{E as s};
|
||||||
BIN
apps/dashboard/build/_app/immutable/chunks/Ckx7gB9J.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/Ckx7gB9J.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/chunks/Ckx7gB9J.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/Ckx7gB9J.js.gz
Normal file
Binary file not shown.
|
|
@ -1 +0,0 @@
|
||||||
import{d as l,w as S}from"./Br8WXJxx.js";const y=200;function H(){const{subscribe:n,set:c,update:e}=S({connected:!1,events:[],lastHeartbeat:null,error:null});let t=null,a=null,d=0;function m(r){const u=r||(window.location.port==="5173"?`ws://${window.location.hostname}:3927/ws`:`ws://${window.location.host}/ws`);if((t==null?void 0:t.readyState)!==WebSocket.OPEN)try{t=new WebSocket(u),t.onopen=()=>{d=0,e(o=>({...o,connected:!0,error:null}))},t.onmessage=o=>{try{const s=JSON.parse(o.data);e(b=>{if(s.type==="Heartbeat")return{...b,lastHeartbeat:s};const p=[s,...b.events].slice(0,y);return{...b,events:p}})}catch{}},t.onclose=()=>{e(o=>({...o,connected:!1})),f(u)},t.onerror=()=>{e(o=>({...o,error:"WebSocket connection failed"}))}}catch(o){e(s=>({...s,error:String(o)}))}}function f(r){a&&clearTimeout(a);const u=Math.min(1e3*2**d,3e4);d++,a=setTimeout(()=>m(r),u)}function w(){a&&clearTimeout(a),t==null||t.close(),t=null,c({connected:!1,events:[],lastHeartbeat:null,error:null})}function v(){e(r=>({...r,events:[]}))}return{subscribe:n,connect:m,disconnect:w,clearEvents:v}}const i=H(),k=l(i,n=>n.connected),T=l(i,n=>n.events);l(i,n=>n.lastHeartbeat);const g=l(i,n=>{var c,e;return((e=(c=n.lastHeartbeat)==null?void 0:c.data)==null?void 0:e.memory_count)??0}),E=l(i,n=>{var c,e;return((e=(c=n.lastHeartbeat)==null?void 0:c.data)==null?void 0:e.avg_retention)??0});export{E as a,T as e,k as i,g as m,i as w};
|
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -1 +0,0 @@
|
||||||
import{n as L,o as D,P as T,g as P,c as B,h as b,v as Y,w as h,D as x,x as M,m as N,y as U,z as w,A as z,B as C,C as $,F as q,S as y,L as F}from"./BBD-8XME.js";import{c as G}from"./BexJutgU.js";function H(r,a,t,s){var o;var f=!U||(t&w)!==0,v=(t&M)!==0,E=(t&q)!==0,n=s,c=!0,g=()=>(c&&(c=!1,n=E?N(s):s),n),u;if(v){var O=y in r||F in r;u=((o=L(r,a))==null?void 0:o.set)??(O&&a in r?e=>r[a]=e:void 0)}var _,I=!1;v?[_,I]=G(()=>r[a]):_=r[a],_===void 0&&s!==void 0&&(_=g(),u&&(f&&D(),u(_)));var i;if(f?i=()=>{var e=r[a];return e===void 0?g():(c=!0,e)}:i=()=>{var e=r[a];return e!==void 0&&(n=void 0),e===void 0?n:e},f&&(t&T)===0)return i;if(u){var R=r.$$legacy;return(function(e,S){return arguments.length>0?((!f||!S||R||I)&&u(S?i():e),e):i()})}var l=!1,d=((t&z)!==0?C:$)(()=>(l=!1,i()));v&&P(d);var m=h;return(function(e,S){if(arguments.length>0){const A=S?P(d):f&&v?B(e):e;return b(d,A),l=!0,n!==void 0&&(n=A),e}return Y&&l||(m.f&x)!==0?d.v:P(d)})}export{H as p};
|
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -1 +0,0 @@
|
||||||
import{af as g,ag as d,ah as c,m,ai as i,aj as b,g as p,ak as h,B as k,al as v}from"./BBD-8XME.js";function x(t=!1){const a=g,e=a.l.u;if(!e)return;let o=()=>h(a.s);if(t){let n=0,s={};const _=k(()=>{let l=!1;const r=a.s;for(const f in r)r[f]!==s[f]&&(s[f]=r[f],l=!0);return l&&n++,n});o=()=>p(_)}e.b.length&&d(()=>{u(a,o),i(e.b)}),c(()=>{const n=m(()=>e.m.map(b));return()=>{for(const s of n)typeof s=="function"&&s()}}),e.a.length&&c(()=>{u(a,o),i(e.a)})}function u(t,a){if(t.l.s)for(const e of t.l.s)p(e);a()}v();export{x as i};
|
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -1 +1 @@
|
||||||
import{a as y}from"./C5a--lgk.js";import{J as r}from"./BBD-8XME.js";function a(t,e,f,i){var l=t.__style;if(r||l!==e){var s=y(e);(!r||s!==t.getAttribute("style"))&&(s==null?t.removeAttribute("style"):t.style.cssText=s),t.__style=e}return i}export{a as s};
|
import{a as y}from"./BilMa3tw.js";import{T as r}from"./nyjtQ1Ok.js";function a(t,e,f,i){var l=t.__style;if(r||l!==e){var s=y(e);(!r||s!==t.getAttribute("style"))&&(s==null?t.removeAttribute("style"):t.style.cssText=s),t.__style=e}return i}export{a as s};
|
||||||
BIN
apps/dashboard/build/_app/immutable/chunks/D2QmVWrb.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/D2QmVWrb.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/chunks/D2QmVWrb.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/D2QmVWrb.js.gz
Normal file
Binary file not shown.
1
apps/dashboard/build/_app/immutable/chunks/DAhpUNCK.js
Normal file
1
apps/dashboard/build/_app/immutable/chunks/DAhpUNCK.js
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
import{y as S,z as h,n as k,A,S as T}from"./nyjtQ1Ok.js";function t(r,i){return r===i||(r==null?void 0:r[T])===i}function x(r={},i,a,c){return S(()=>{var f,s;return h(()=>{f=s,s=[],k(()=>{r!==a(...s)&&(i(r,...s),f&&t(a(...f),r)&&i(null,...f))})}),()=>{A(()=>{s&&t(a(...s),r)&&i(null,...s)})}}),r}export{x as b};
|
||||||
BIN
apps/dashboard/build/_app/immutable/chunks/DAhpUNCK.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/DAhpUNCK.js.br
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue