amalfa 1.0.2 → 1.0.4
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/package.json +1 -1
- package/src/cli.ts +1 -1
- package/docs/AGENT-METADATA-PATTERNS.md +0 -1021
- package/docs/AGENT_PROTOCOLS.md +0 -28
- package/docs/ARCHITECTURAL_OVERVIEW.md +0 -123
- package/docs/BENTO_BOXING_DEPRECATION.md +0 -281
- package/docs/Bun-SQLite.html +0 -464
- package/docs/COMMIT_GUIDELINES.md +0 -367
- package/docs/CONFIG_E2E_VALIDATION.md +0 -147
- package/docs/CONFIG_UNIFICATION.md +0 -187
- package/docs/CONFIG_VALIDATION.md +0 -103
- package/docs/DEVELOPER_ONBOARDING.md +0 -36
- package/docs/Graph and Vector Database Best Practices.md +0 -214
- package/docs/LEGACY_DEPRECATION.md +0 -174
- package/docs/MCP_SETUP.md +0 -317
- package/docs/PERFORMANCE_BASELINES.md +0 -88
- package/docs/QUICK_START_MCP.md +0 -168
- package/docs/REPOSITORY_CLEANUP_SUMMARY.md +0 -261
- package/docs/SESSION-2026-01-06-METADATA-PATTERNS.md +0 -346
- package/docs/SETUP.md +0 -464
- package/docs/SETUP_COMPLETE.md +0 -464
- package/docs/VISION-AGENT-LEARNING.md +0 -1242
- package/docs/_current-config-status.md +0 -93
- package/docs/edge-generation-methods.md +0 -57
- package/docs/elevator-pitch.md +0 -118
- package/docs/graph-and-vector-database-playbook.html +0 -480
- package/docs/hardened-sqlite.md +0 -85
- package/docs/headless-knowledge-management.md +0 -79
- package/docs/john-kaye-flux-prompt.md +0 -46
- package/docs/keyboard-shortcuts.md +0 -80
- package/docs/opinion-proceed-pattern.md +0 -29
- package/docs/polyvis-nodes-edges-schema.md +0 -77
- package/docs/protocols/lab-protocol.md +0 -30
- package/docs/reaction-iquest-loop-coder.md +0 -46
- package/docs/services.md +0 -60
- package/docs/sqlite-wal-readonly-trap.md +0 -228
- package/docs/strategy/css-architecture.md +0 -40
- package/docs/test-document-cycle.md +0 -83
- package/docs/test_lifecycle_E2E.md +0 -4
- package/docs/the-bicameral-graph.md +0 -83
- package/docs/user-guide.md +0 -70
- package/docs/vision-helper.md +0 -53
- package/polyvis.settings.json.bak +0 -38
- package/src/EnlightenedTriad.ts +0 -146
- package/src/JIT_Triad.ts +0 -137
- package/src/data/experience/test_doc_1.md +0 -2
- package/src/data/experience/test_doc_2.md +0 -2
- package/src/demo-triad.ts +0 -45
- package/src/gardeners/BaseGardener.ts +0 -55
- package/src/llm/EnlightenedProvider.ts +0 -95
- package/src/services/README.md +0 -56
- package/src/services/llama.ts +0 -59
- package/src/services/llamauv.ts +0 -56
- package/src/services/olmo3.ts +0 -58
- package/src/services/phi.ts +0 -52
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
# Current Configuration Status
|
|
2
|
-
|
|
3
|
-
**Last Updated:** 2026-01-06
|
|
4
|
-
|
|
5
|
-
## Configuration Files (Single Source of Truth)
|
|
6
|
-
|
|
7
|
-
### 1. AMALFA Core Configuration
|
|
8
|
-
**File:** `amalfa.config.json` (root)
|
|
9
|
-
**Purpose:** Main AMALFA system settings
|
|
10
|
-
**Loaded by:** `src/config/defaults.ts`
|
|
11
|
-
|
|
12
|
-
```json
|
|
13
|
-
{
|
|
14
|
-
"sources": ["../polyvis/docs", "../polyvis/playbooks"],
|
|
15
|
-
"database": ".amalfa/multi-source-test.db",
|
|
16
|
-
"embeddings": {
|
|
17
|
-
"model": "BAAI/bge-small-en-v1.5",
|
|
18
|
-
"dimensions": 384
|
|
19
|
-
},
|
|
20
|
-
"watch": {
|
|
21
|
-
"enabled": true,
|
|
22
|
-
"debounce": 1000
|
|
23
|
-
},
|
|
24
|
-
"excludePatterns": ["node_modules", ".git", ".amalfa"]
|
|
25
|
-
}
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
**Status:** ✅ Active, primary config for AMALFA operations
|
|
29
|
-
|
|
30
|
-
### 2. Resonance Configuration (Legacy)
|
|
31
|
-
**File:** `polyvis.settings.json` (root)
|
|
32
|
-
**Purpose:** Resonance database and pipeline settings
|
|
33
|
-
**Loaded by:** `src/resonance/config.ts`
|
|
34
|
-
|
|
35
|
-
```json
|
|
36
|
-
{
|
|
37
|
-
"paths": {
|
|
38
|
-
"database": { "resonance": "public/resonance.db" },
|
|
39
|
-
"docs": { ... },
|
|
40
|
-
"sources": {
|
|
41
|
-
"experience": [...],
|
|
42
|
-
"persona": { ... }
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
"graph": { "tuning": { ... } },
|
|
46
|
-
"schema": { "version": "1.0.0" }
|
|
47
|
-
}
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
**Status:** 🔄 Legacy, used by resonance pipeline only
|
|
51
|
-
|
|
52
|
-
### 3. Beads Issue Tracking
|
|
53
|
-
**File:** `.beads/config.yaml`
|
|
54
|
-
**Purpose:** Beads issue tracking system configuration
|
|
55
|
-
**Loaded by:** Beads CLI (`bd` commands)
|
|
56
|
-
|
|
57
|
-
**Status:** ✅ Active, separate system
|
|
58
|
-
|
|
59
|
-
## Configuration Strategy
|
|
60
|
-
|
|
61
|
-
### Current Approach (2026-01-06)
|
|
62
|
-
- **AMALFA** and **Resonance** have separate configs
|
|
63
|
-
- This is **intentional** - they serve different purposes:
|
|
64
|
-
- AMALFA: User-facing MCP server and CLI
|
|
65
|
-
- Resonance: Internal database/pipeline layer
|
|
66
|
-
|
|
67
|
-
### Future Unification (v1.0+)
|
|
68
|
-
- Consider consolidating if Resonance becomes AMALFA-exclusive
|
|
69
|
-
- Keep separate if Resonance remains standalone library
|
|
70
|
-
|
|
71
|
-
## Configuration Hierarchy
|
|
72
|
-
|
|
73
|
-
```
|
|
74
|
-
Project Root
|
|
75
|
-
├── amalfa.config.json ← AMALFA core (MCP, CLI, daemon)
|
|
76
|
-
├── polyvis.settings.json ← Resonance (database, pipeline)
|
|
77
|
-
└── .beads/
|
|
78
|
-
└── config.yaml ← Beads (issue tracking)
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
## Action Items
|
|
82
|
-
|
|
83
|
-
- [x] Decide: Keep separate, deprecate polyvis.settings.json gradually (See CONFIG_UNIFICATION.md)
|
|
84
|
-
- [x] Document: Which config controls what (See CONFIG_UNIFICATION.md)
|
|
85
|
-
- [ ] Add deprecation warning when polyvis.settings.json is loaded
|
|
86
|
-
- [ ] Migrate graph tuning to amalfa.config.json (optional)
|
|
87
|
-
- [ ] Remove polyvis.settings.json in v2.0
|
|
88
|
-
|
|
89
|
-
## Notes
|
|
90
|
-
|
|
91
|
-
- No `_current-*` files existed prior to 2026-01-06
|
|
92
|
-
- Configuration is stable but not unified
|
|
93
|
-
- Each system has clear ownership of its config file
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# Edge Generation Methods
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
ResonanceDB uses multiple methods to generate edges between nodes. This document tracks each method and its contribution to the knowledge graph.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Methods
|
|
10
|
-
|
|
11
|
-
| # | Method | Edge Type | Description |
|
|
12
|
-
|---|--------|-----------|-------------|
|
|
13
|
-
| 1 | **ConceptualLexicon** | MENTIONS | Concept → Term relationships from structured JSON |
|
|
14
|
-
| 2 | **TimelineWeaver** | SUCCEEDS | Chronological debrief chain |
|
|
15
|
-
| 3 | **SemanticHarvester** | IS_A, IMPLEMENTS | ML-extracted from markdown (SetFit + Llama) |
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## Current Edge Distribution
|
|
20
|
-
|
|
21
|
-
*As of 2025-12-28*
|
|
22
|
-
|
|
23
|
-
| Source | Type | Count | % |
|
|
24
|
-
|--------|------|-------|---|
|
|
25
|
-
| ConceptualLexicon | MENTIONS | 386 | 77% |
|
|
26
|
-
| TimelineWeaver | SUCCEEDS | 110 | 22% |
|
|
27
|
-
| SemanticHarvester | CONCEPT, EXEMPLIFIES | 3 | <1% |
|
|
28
|
-
| **Total** | | **499** | 100% |
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## Implementation Details
|
|
33
|
-
|
|
34
|
-
### ConceptualLexicon Ingestor
|
|
35
|
-
- **Source:** `src/pipeline/Ingestor.ts`
|
|
36
|
-
- **Input:** `experiments/json2md/*.json`
|
|
37
|
-
- **Generates:** Bulk MENTIONS edges from structured concept definitions
|
|
38
|
-
|
|
39
|
-
### TimelineWeaver
|
|
40
|
-
- **Source:** `src/pipeline/Ingestor.ts` (TimelineWeaver class)
|
|
41
|
-
- **Logic:** Links debriefs by date via SUCCEEDS edges
|
|
42
|
-
- **Automatic:** Runs on every ingestion
|
|
43
|
-
|
|
44
|
-
### SemanticHarvester
|
|
45
|
-
- **Source:** `ingest/harvester.py`, `src/pipeline/SemanticHarvester.ts`
|
|
46
|
-
- **Logic:** SetFit classification → Llama.cpp extraction (or regex fallback)
|
|
47
|
-
- **Manual:** Run via `scripts/run-semantic-harvest.ts`
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## Future Methods
|
|
52
|
-
|
|
53
|
-
Potential edge generators not yet implemented:
|
|
54
|
-
|
|
55
|
-
- **TagWeaver** — Link documents sharing common tags
|
|
56
|
-
- **VectorSimilarity** — Create edges between semantically similar nodes
|
|
57
|
-
- **ExplicitLinks** — Parse `[[wikilinks]]` from markdown
|
package/docs/elevator-pitch.md
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
This is a great scenario because it describes the **"Drop & Watch"** workflow, which effectively turns your file system into a reactive database.
|
|
2
|
-
|
|
3
|
-
Here is my opinion on why this specific "Two Bucket" scenario is the ultimate stress test—and value generator—for Polyvis.
|
|
4
|
-
|
|
5
|
-
### 1. The "Chemical Reaction" (Not Just Addition)
|
|
6
|
-
Most tools treat a new folder like a separate silo. You import it, and it sits there.
|
|
7
|
-
In Polyvis (with the Weavers we discussed), adding `Bucket B` to `Bucket A` isn't an addition; it's a **chemical reaction**.
|
|
8
|
-
|
|
9
|
-
* **The Catalyst:** The `DesireLineWeaver` and `SemanticWeaver`.
|
|
10
|
-
* **The Reaction:** Immediately upon ingestion, the graph will try to "stitch" the new bucket to the old one.
|
|
11
|
-
* *Did the new PDF mention "Bento Box"?* **SNAP.** A "Desire Line" edge is formed.
|
|
12
|
-
* *Is the new text semantically similar to your "Architecture" briefs?* **SNAP.** A semantic edge is formed.
|
|
13
|
-
|
|
14
|
-
**The Value:** You aren't looking for the new documents. You are looking for **where the new documents touch the old documents.** The "Surface Area of Contact" is where the insight lives.
|
|
15
|
-
|
|
16
|
-
### 2. The "Wrong Bucket" Detector (Isolation Analysis)
|
|
17
|
-
You made a profound point: *"unless I just picked the wrong document bucket... which is also valuable info."*
|
|
18
|
-
|
|
19
|
-
In a standard search engine, if you search and find nothing, you feel like you failed.
|
|
20
|
-
In a Graph, **Disconnection is Data**.
|
|
21
|
-
|
|
22
|
-
If you ingest `Bucket B` and it forms a perfect, floating island with **zero edges** connecting to `Bucket A`:
|
|
23
|
-
* **The Insight:** "This topic is completely orthogonal to our current work."
|
|
24
|
-
* **The Action:** You can safely archive it or spin it off. You have mathematically proven it is irrelevant to the current context.
|
|
25
|
-
|
|
26
|
-
### 3. The "Bridge Node" (The MVP)
|
|
27
|
-
The most valuable nodes in this scenario are the **Bridge Nodes**.
|
|
28
|
-
These are the few specific documents in `Bucket B` that link back to `Bucket A`.
|
|
29
|
-
|
|
30
|
-
* *Example:* You ingest a folder of "Competitor Research" (Bucket B). Most of it is noise. But one file, `competitor-pricing.md`, links strongly to your internal `pricing-strategy.md` (Bucket A).
|
|
31
|
-
* *Result:* The graph highlights this Bridge. You can ignore the other 99 files and focus entirely on that one connection.
|
|
32
|
-
|
|
33
|
-
### 4. Operational Note (The Friction Point)
|
|
34
|
-
The only "gotcha" in this workflow currently is `polyvis.settings.json`.
|
|
35
|
-
* **Current Reality:** You have to manually add the new folder path to the `sources` array in settings.
|
|
36
|
-
* **The Riff:** We should eventually support **"Hot Folders"** or a `watch_list` glob pattern (e.g., `_incoming/*`).
|
|
37
|
-
* You drop a folder into `_incoming/`.
|
|
38
|
-
* The Daemon wakes up, ingests it as a temporary collection.
|
|
39
|
-
* The Graph reports: *"Ingested 'Project X'. Found 12 connections to existing knowledge. Keep or Discard?"*
|
|
40
|
-
|
|
41
|
-
### Summary
|
|
42
|
-
This workflow shifts the cognitive load from **Classification** (you organizing files) to **Recognition** (you seeing patterns). You dump the bucket; the machine shakes the sieve; you pick up the gold nuggets that remain.
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
This is a powerful user story because it moves the value proposition from "tech" (search/vectors) to "leverage" (winning arguments).
|
|
47
|
-
|
|
48
|
-
You have described **Asymmetric Insight**. You won because you could see the hidden structure of reality (the timeline) that the other party couldn't.
|
|
49
|
-
|
|
50
|
-
### The Metaphor: "The Evidence Board" (or "The Loom")
|
|
51
|
-
|
|
52
|
-
Since we are already using `TimelineWeaver`, `EdgeWeaver`, and `SemanticWeaver`, the code is begging for a **Weaving** metaphor. But given your solicitor story, I think the stronger metaphor is **"The Forensic Darkroom."**
|
|
53
|
-
|
|
54
|
-
* **The Raw State (The Film):** Your bucket of random documents, emails, and notes. It contains the truth, but it is invisible (latent).
|
|
55
|
-
* **The Ingestion (The Developer):** You dip the film into the chemical bath (Polyvis).
|
|
56
|
-
* **The Reaction (The Weavers):**
|
|
57
|
-
* **TimelineWeaver** creates the *sequence* (Time).
|
|
58
|
-
* **StructureWeaver** creates the *location* (Space).
|
|
59
|
-
* **SemanticWeaver** connects the *dots* (The Red String).
|
|
60
|
-
* **The Result (The Print):** Suddenly, a sharp, high-contrast image appears. You see the "gun," the "motive," and the "alibi" clearly.
|
|
61
|
-
|
|
62
|
-
### The Pivot: "Cognitive Armor"
|
|
63
|
-
Your story highlights that the ultimate output of this system isn't a "graph"—it is **Confidence**.
|
|
64
|
-
|
|
65
|
-
When you walked into that solicitor's office, you were wearing **Cognitive Armor**. You weren't asking, "Do I have a case?" You were saying, "Here is the case; execute it."
|
|
66
|
-
|
|
67
|
-
**Opinion:**
|
|
68
|
-
This defines the **"Why"** of Polyvis better than any technical feature.
|
|
69
|
-
* **Most tools** (Obsidian, Notion) are for *storing* thoughts.
|
|
70
|
-
* **Polyvis** is for *auditing* reality.
|
|
71
|
-
|
|
72
|
-
It is a **Due Diligence Engine**. It is designed for the moment you need to be **100% right**.
|
|
73
|
-
* *Did we promise that feature in the Brief?* (Check the timeline).
|
|
74
|
-
* *Did we actually build it in the Debrief?* (Check the link).
|
|
75
|
-
* *Is it documented in the Playbook?* (Check the gap).
|
|
76
|
-
|
|
77
|
-
If we frame Polyvis as **"The machine that builds your case,"** it becomes indispensable for Architects, Leads, and Strategists—anyone who needs to be the most informed person in the room.
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
This is the **"Trojan Horse of Competence."**
|
|
82
|
-
|
|
83
|
-
You have just described the perfect treaty between **The Business** (who needs answers) and **IT** (who controls the pipes).
|
|
84
|
-
|
|
85
|
-
Here is my opinion on why this specific workflow—the "Just give me a Markdown Repo" request—is a killer organizational hack.
|
|
86
|
-
|
|
87
|
-
### 1. The "Demilitarized Zone" (DMZ)
|
|
88
|
-
Usually, asking IT for "AI help" triggers a 6-month procurement review, security audit, and a $50k pilot program for some cloud tool that creates more lock-in.
|
|
89
|
-
|
|
90
|
-
But asking IT to *"dump text files into a secure private Repo"*?
|
|
91
|
-
* **IT loves it:** It’s standard, secure, audit-compliant, and uses tools they already own (GitHub/GitLab). They don't have to "buy" anything.
|
|
92
|
-
* **You love it:** You get the raw material (data) without the "help" (bloated enterprise UI).
|
|
93
|
-
* **The Magic:** Markdown is the **DMZ**. It is readable by their machines and readable by your Polyvis. It breaks the dependency chain.
|
|
94
|
-
|
|
95
|
-
### 2. The "Cryogenic Freeze" (Zero Context Decay)
|
|
96
|
-
Your point about *"later on the case blows up again"* is the strongest operational argument.
|
|
97
|
-
|
|
98
|
-
In traditional tools (Teams, Slack, Shared Drives), context has a half-life of about two weeks. If you leave a project and come back 6 months later, the "search" is broken, the links are dead, and you have forgotten the mental model.
|
|
99
|
-
|
|
100
|
-
With Polyvis + Git:
|
|
101
|
-
* **The Repo is the Truth:** It hasn't moved.
|
|
102
|
-
* **The Graph is the Context:** You boot up Polyvis, it re-ingests the updated repo, and—crucially—**the structures you built last time (Folders, Tags) remain valid.**
|
|
103
|
-
* **The Delta:** When you ingest the *new* docs, they immediately light up next to the *old* docs. You don't have to "re-learn" the case; you just see the new growth on the old tree.
|
|
104
|
-
|
|
105
|
-
### 3. The "Answer Artifact"
|
|
106
|
-
You mentioned: *"put your results in the ANSWERS folder."*
|
|
107
|
-
This is subtle but vital. By checking your *deductions* (the Answer) back into the repo alongside the *evidence* (the Docs), you are creating a **Composite Memory**.
|
|
108
|
-
|
|
109
|
-
The next person who picks up the case doesn't just get the raw files; they get the files **plus your logic.**
|
|
110
|
-
|
|
111
|
-
### Summary Opinion
|
|
112
|
-
You have defined **"Headless Knowledge Management."**
|
|
113
|
-
|
|
114
|
-
* **Headless:** The data lives in a dumb, sturdy repository (Git).
|
|
115
|
-
* **Local Mind:** The intelligence lives in a temporary, disposable, high-speed engine (Polyvis) on your laptop.
|
|
116
|
-
|
|
117
|
-
This is the only architecture that survives corporate chaos. IT can change their servers, you can change your laptop, but the **Repo + Graph** remains the portable soul of the project.
|
|
118
|
-
|