iranti 0.2.16 → 0.2.19
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 +50 -94
- package/dist/scripts/iranti-cli.js +693 -0
- package/dist/scripts/iranti-mcp.js +1 -1
- package/dist/scripts/setup.js +7 -1
- package/dist/src/api/server.js +1 -1
- package/dist/src/archivist/index.d.ts.map +1 -1
- package/dist/src/archivist/index.js +93 -0
- package/dist/src/archivist/index.js.map +1 -1
- package/dist/src/attendant/AttendantInstance.d.ts.map +1 -1
- package/dist/src/attendant/AttendantInstance.js +126 -6
- package/dist/src/attendant/AttendantInstance.js.map +1 -1
- package/dist/src/lib/llm.d.ts +2 -0
- package/dist/src/lib/llm.d.ts.map +1 -1
- package/dist/src/lib/llm.js +21 -2
- package/dist/src/lib/llm.js.map +1 -1
- package/dist/src/lib/providers/mock.d.ts +1 -0
- package/dist/src/lib/providers/mock.d.ts.map +1 -1
- package/dist/src/lib/providers/mock.js +7 -0
- package/dist/src/lib/providers/mock.js.map +1 -1
- package/dist/src/lib/router.d.ts.map +1 -1
- package/dist/src/lib/router.js +8 -0
- package/dist/src/lib/router.js.map +1 -1
- package/dist/src/lib/runtimeLifecycle.d.ts.map +1 -1
- package/dist/src/lib/runtimeLifecycle.js +42 -13
- package/dist/src/lib/runtimeLifecycle.js.map +1 -1
- package/dist/src/lib/staffEventEmitter.d.ts +32 -0
- package/dist/src/lib/staffEventEmitter.d.ts.map +1 -0
- package/dist/src/lib/staffEventEmitter.js +30 -0
- package/dist/src/lib/staffEventEmitter.js.map +1 -0
- package/dist/src/lib/staffEventRegistry.d.ts +18 -0
- package/dist/src/lib/staffEventRegistry.d.ts.map +1 -0
- package/dist/src/lib/staffEventRegistry.js +33 -0
- package/dist/src/lib/staffEventRegistry.js.map +1 -0
- package/dist/src/librarian/index.d.ts.map +1 -1
- package/dist/src/librarian/index.js +238 -0
- package/dist/src/librarian/index.js.map +1 -1
- package/dist/src/library/locks.d.ts.map +1 -1
- package/dist/src/library/locks.js +11 -1
- package/dist/src/library/locks.js.map +1 -1
- package/dist/src/library/queries.d.ts +4 -4
- package/dist/src/resolutionist/index.d.ts.map +1 -1
- package/dist/src/resolutionist/index.js +32 -0
- package/dist/src/resolutionist/index.js.map +1 -1
- package/dist/src/sdk/index.d.ts +11 -0
- package/dist/src/sdk/index.d.ts.map +1 -1
- package/dist/src/sdk/index.js +11 -1
- package/dist/src/sdk/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
|
|
10
10
|
Iranti gives agents persistent, identity-based memory. Facts written by one agent are retrievable by any other agent through exact entity+key lookup. Iranti also supports hybrid search (lexical + vector) when exact keys are unknown. Memory persists across sessions and survives context window limits.
|
|
11
11
|
|
|
12
|
-
**Latest release:** [`v0.2.
|
|
12
|
+
**Latest release:** [`v0.2.19`](https://github.com/nfemmanuel/iranti/releases/tag/v0.2.19)
|
|
13
13
|
Published packages:
|
|
14
|
-
- `iranti@0.2.
|
|
15
|
-
- `@iranti/sdk@0.2.
|
|
14
|
+
- `iranti@0.2.19`
|
|
15
|
+
- `@iranti/sdk@0.2.19`
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
@@ -50,97 +50,47 @@ Vector databases answer "what's similar to X?" Iranti answers "what do we know a
|
|
|
50
50
|
|
|
51
51
|
---
|
|
52
52
|
|
|
53
|
-
##
|
|
53
|
+
## Benchmark Summary
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
Iranti has now been rerun against a broader benchmark program covering 13 capability tracks. The current picture is stronger and narrower than the early validation story: exact, durable, shared memory is benchmark-backed; broad semantic-memory claims still need tighter boundaries.
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
|---|---|---|---|
|
|
59
|
-
| **1. Easy Integration** | Raw HTTP (9 lines) | 3/3 facts | ✓ PASSED |
|
|
60
|
-
| **2. Context Persistence** | observe() API | 6/6 injected | ✓ PASSED |
|
|
61
|
-
| **3. Working Retrieval** | Cross-agent query | 5/5 facts | ✓ PASSED |
|
|
62
|
-
| **4. Per-Agent Persistence** | Cross-process | 5/5 facts | ✓ PASSED |
|
|
63
|
-
| **5. Response Quality** | Memory injection | 0/2 → 2/2 | ✓ PASSED |
|
|
57
|
+
### Confirmed Strengths
|
|
64
58
|
|
|
65
|
-
|
|
59
|
+
- **Exact lookup (`iranti_query`)**: O(1) retrieval confirmed up to 276k-token haystacks, with a positive differential over baseline at large context size.
|
|
60
|
+
- **Persistence**: Facts survive across sessions and across version upgrades with no observed data loss.
|
|
61
|
+
- **Conflict handling**: Reliable when confidence differentials are large and explicit.
|
|
62
|
+
- **Multi-agent coordination**: Agents can share memory with correct separation and attribution.
|
|
63
|
+
- **Provenance**: `agentId` attribution is preserved correctly.
|
|
64
|
+
- **Relationships**: Relationship writes, reads, and depth traversal are working.
|
|
65
|
+
- **Ingest**: Prose extraction is working and benchmark-confirmed in `v0.2.16`.
|
|
66
|
+
- **Search**: Effective for structured attribute-value retrieval.
|
|
67
|
+
- **Observe / Attend**: Automatic detection and injection behavior improved materially and now works in realistic benchmark conditions.
|
|
68
|
+
- **Session recovery**: Interrupted-session recovery now performs substantially better than baseline.
|
|
69
|
+
- **Upgrade safety**: Memory durability was preserved across three version upgrades.
|
|
66
70
|
|
|
67
|
-
|
|
71
|
+
### Current Limits
|
|
68
72
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
| **LangChain** | project/stellar_drift | 5 | 5/5 ✓ | 2.9s |
|
|
73
|
-
| **CrewAI** | project/nexus_prime | 6 | 6/6 ✓ | 60s |
|
|
73
|
+
- **Search is not yet full semantic paraphrase retrieval.**
|
|
74
|
+
- **Observe still performs better on confidence ranking than on broad progress-fact discovery.**
|
|
75
|
+
- **Structured search is operational, but not yet broad semantic paraphrase retrieval.**
|
|
74
76
|
|
|
75
|
-
|
|
77
|
+
### Practical Position
|
|
76
78
|
|
|
77
|
-
|
|
79
|
+
Iranti is strongest today as **structured memory infrastructure for multi-agent systems**:
|
|
80
|
+
- exact entity/key lookup
|
|
81
|
+
- durable shared memory
|
|
82
|
+
- provenance-aware writes
|
|
83
|
+
- conflict-aware storage
|
|
84
|
+
- session-aware recovery
|
|
85
|
+
- upgrade-safe persistence
|
|
78
86
|
|
|
79
|
-
|
|
87
|
+
It should not yet be described as a fully general semantic-memory or autonomous-extraction system.
|
|
80
88
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
| **Temporal conflict** | `4/4` | Equal-score ties now use deterministic temporal tie-breaks |
|
|
87
|
-
| **Cascading conflict** | `4/4` | Deterministic same-entity cross-key contradiction checks |
|
|
88
|
-
| **Multi-hop conflict** | `4/4` | Narrow relationship-aware contradiction checks across related entities |
|
|
89
|
-
| **Total** | `16/16 (100%)` | Current benchmark coverage for the Librarian |
|
|
90
|
-
|
|
91
|
-
Conflict benchmark methodology: [`docs/internal/conflict_benchmark.md`](docs/internal/conflict_benchmark.md)
|
|
92
|
-
|
|
93
|
-
### Consistency Validation
|
|
94
|
-
|
|
95
|
-
Iranti also now documents and validates its consistency model empirically:
|
|
96
|
-
|
|
97
|
-
| Check | Result |
|
|
98
|
-
|---|---|
|
|
99
|
-
| Concurrent write serialization | `PASS` |
|
|
100
|
-
| Read-after-write visibility | `PASS` |
|
|
101
|
-
| Escalation state integrity | `PASS` |
|
|
102
|
-
| Observe isolation from uncommitted writes | `PASS` |
|
|
103
|
-
| **Total** | `4/4` |
|
|
104
|
-
|
|
105
|
-
Consistency model and validation: [`docs/internal/consistency_model.md`](docs/internal/consistency_model.md)
|
|
106
|
-
|
|
107
|
-
### Goal 1: Easy Integration
|
|
108
|
-
|
|
109
|
-
- **Entity**: `project/quantum_bridge`
|
|
110
|
-
- **Test**: Integrate Iranti with raw HTTP in under 20 lines of Python
|
|
111
|
-
- **Result**: 9 lines of code, 3/3 facts written and retrieved
|
|
112
|
-
- **Conclusion**: No SDK or framework dependencies required, just standard `requests` library
|
|
113
|
-
|
|
114
|
-
### Goal 2: Context Persistence
|
|
115
|
-
|
|
116
|
-
- **Entity**: `project/nexus_prime`
|
|
117
|
-
- **Control**: Facts already in context → `observe()` returns 0 to inject (correct, avoids duplication)
|
|
118
|
-
- **Treatment**: Facts missing from context → `observe()` returns 6/6 facts for injection
|
|
119
|
-
- **Result**: 100% recovery rate when facts fall out of context window
|
|
120
|
-
|
|
121
|
-
### Goal 3: Working Retrieval
|
|
122
|
-
|
|
123
|
-
- **Entity**: `project/photon_cascade`
|
|
124
|
-
- **Test**: Agent 2 retrieves facts written by Agent 1 with zero shared context
|
|
125
|
-
- **Result**: 5/5 facts retrieved via identity-based lookup (entity+key)
|
|
126
|
-
- **Conclusion**: Facts accessible across agents with no context window dependency
|
|
127
|
-
|
|
128
|
-
### Goal 4: Per-Agent Knowledge Persistence
|
|
129
|
-
|
|
130
|
-
- **Entity**: `project/resonance_field`
|
|
131
|
-
- **Test**: Process 1 writes facts and exits, Process 2 reads in new process
|
|
132
|
-
- **Result**: 5/5 facts retrieved with no shared state between processes
|
|
133
|
-
- **Conclusion**: PostgreSQL storage validated, facts survive across sessions
|
|
134
|
-
|
|
135
|
-
### Goal 5: Response Quality
|
|
136
|
-
|
|
137
|
-
- **Entity**: `project/meridian_core`
|
|
138
|
-
- **Test**: Ask LLM question requiring facts from earlier in long conversation
|
|
139
|
-
- **Control**: Without Iranti → 0/2 facts correct (hallucinated answers)
|
|
140
|
-
- **Treatment**: With Iranti memory injection → 2/2 facts correct (accurate answers)
|
|
141
|
-
- **Conclusion**: Memory injection eliminates hallucination, improves response accuracy
|
|
142
|
-
|
|
143
|
-
Full validation report: [`docs/internal/validation_results.md`](docs/internal/validation_results.md)
|
|
89
|
+
Historical benchmark material remains available here:
|
|
90
|
+
- [`docs/internal/validation_results.md`](docs/internal/validation_results.md)
|
|
91
|
+
- [`docs/internal/MULTI_FRAMEWORK_VALIDATION.md`](docs/internal/MULTI_FRAMEWORK_VALIDATION.md)
|
|
92
|
+
- [`docs/internal/conflict_benchmark.md`](docs/internal/conflict_benchmark.md)
|
|
93
|
+
- [`docs/internal/consistency_model.md`](docs/internal/consistency_model.md)
|
|
144
94
|
|
|
145
95
|
## Gap Analysis
|
|
146
96
|
|
|
@@ -210,17 +160,14 @@ The current landscape splits into three buckets:
|
|
|
210
160
|
|
|
211
161
|
### Current Position
|
|
212
162
|
|
|
213
|
-
Iranti is strongest today as infrastructure for developers building multi-agent systems who need shared, structured, queryable memory rather than pure semantic recall. The current
|
|
214
|
-
|
|
215
|
-
- `16/16` fictional-fact transfer in retrieval validation
|
|
216
|
-
- `16/16 (100%)` on the current adversarial conflict benchmark
|
|
217
|
-
- `4/4` on empirical consistency validation for serialized writes and read visibility
|
|
218
|
-
|
|
219
|
-
That is not a claim that multi-agent memory is solved. It is a claim that Iranti now has reproducible evidence for three things at once:
|
|
163
|
+
Iranti is strongest today as infrastructure for developers building multi-agent systems who need shared, structured, queryable memory rather than pure semantic recall. The current benchmark base now supports a more concrete product claim:
|
|
220
164
|
|
|
221
|
-
- exact cross-agent fact transfer works
|
|
165
|
+
- exact cross-agent fact transfer works at meaningful context scales
|
|
166
|
+
- facts survive session loss and version upgrades
|
|
222
167
|
- same-key conflicting writes are serialized and observable
|
|
223
|
-
-
|
|
168
|
+
- relationship traversal, prose ingest, and attended recovery are usable surfaces
|
|
169
|
+
|
|
170
|
+
That is still not a claim that multi-agent memory is solved. It is a claim that Iranti now has broader evidence for durable, structured, attribution-aware memory with recovery and upgrade safety.
|
|
224
171
|
|
|
225
172
|
The next leverage is still product simplicity: setup, operations, and day-to-day inspection need to be simple enough that real users keep Iranti in the loop.
|
|
226
173
|
|
|
@@ -265,6 +212,15 @@ iranti run --instance local --debug
|
|
|
265
212
|
iranti upgrade --verbose
|
|
266
213
|
```
|
|
267
214
|
|
|
215
|
+
If you want to remove Iranti cleanly:
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
iranti uninstall --dry-run
|
|
219
|
+
iranti uninstall --all --yes
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Default uninstall keeps runtime data and project bindings. `--all` removes discovered runtime roots plus project-local Iranti integrations.
|
|
223
|
+
|
|
268
224
|
Advanced/manual path:
|
|
269
225
|
|
|
270
226
|
```bash
|