@framers/agentos 0.1.58 → 0.1.60
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 +181 -218
- package/dist/memory/config.d.ts.map +1 -1
- package/dist/memory/config.js +2 -1
- package/dist/memory/config.js.map +1 -1
- package/dist/memory/index.d.ts +4 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +4 -0
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/prompt/MemoryPromptAssembler.d.ts +2 -0
- package/dist/memory/prompt/MemoryPromptAssembler.d.ts.map +1 -1
- package/dist/memory/prompt/MemoryPromptAssembler.js +11 -0
- package/dist/memory/prompt/MemoryPromptAssembler.js.map +1 -1
- package/dist/memory/types.d.ts +1 -0
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/memory/working/MarkdownWorkingMemory.d.ts +29 -0
- package/dist/memory/working/MarkdownWorkingMemory.d.ts.map +1 -0
- package/dist/memory/working/MarkdownWorkingMemory.js +80 -0
- package/dist/memory/working/MarkdownWorkingMemory.js.map +1 -0
- package/dist/memory/working/ReadWorkingMemoryTool.d.ts +26 -0
- package/dist/memory/working/ReadWorkingMemoryTool.d.ts.map +1 -0
- package/dist/memory/working/ReadWorkingMemoryTool.js +31 -0
- package/dist/memory/working/ReadWorkingMemoryTool.js.map +1 -0
- package/dist/memory/working/UpdateWorkingMemoryTool.d.ts +28 -0
- package/dist/memory/working/UpdateWorkingMemoryTool.d.ts.map +1 -0
- package/dist/memory/working/UpdateWorkingMemoryTool.js +40 -0
- package/dist/memory/working/UpdateWorkingMemoryTool.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -113,6 +113,29 @@
|
|
|
113
113
|
|
|
114
114
|
---
|
|
115
115
|
|
|
116
|
+
## Ecosystem
|
|
117
|
+
|
|
118
|
+
| Package | Description | Links |
|
|
119
|
+
|---------|-------------|-------|
|
|
120
|
+
| **@framers/agentos** | Core orchestration runtime | [](https://www.npmjs.com/package/@framers/agentos) · [GitHub](https://github.com/framersai/agentos) |
|
|
121
|
+
| **@framers/agentos-extensions** | Official extension registry (45+ extensions) | [](https://www.npmjs.com/package/@framers/agentos-extensions) · [GitHub](https://github.com/framersai/agentos-extensions) |
|
|
122
|
+
| **@framers/agentos-extensions-registry** | Curated manifest builder | [](https://www.npmjs.com/package/@framers/agentos-extensions-registry) · [GitHub](https://github.com/framersai/agentos-extensions-registry) |
|
|
123
|
+
| **@framers/agentos-skills-registry** | 28+ curated SKILL.md files | [](https://www.npmjs.com/package/@framers/agentos-skills-registry) · [GitHub](https://github.com/framersai/agentos-skills-registry) |
|
|
124
|
+
| **@framers/agentos-skills** | Skills runtime loader (reads SKILL.md → agent prompt) | [](https://www.npmjs.com/package/@framers/agentos-skills) · [GitHub](https://github.com/framersai/agentos-skills) |
|
|
125
|
+
| **docs.agentos.sh** | Documentation site (Docusaurus) | [GitHub](https://github.com/framersai/agentos-live-docs) · [docs.agentos.sh](https://docs.agentos.sh) |
|
|
126
|
+
|
|
127
|
+
### Guardrail Extensions
|
|
128
|
+
|
|
129
|
+
| Package | What It Does | Links |
|
|
130
|
+
|---------|-------------|-------|
|
|
131
|
+
| **@framers/agentos-ext-pii-redaction** | Four-tier PII detection (regex + NLP + NER + LLM) | [](https://www.npmjs.com/package/@framers/agentos-ext-pii-redaction) · [Docs](https://docs.agentos.sh/extensions/built-in/pii-redaction) |
|
|
132
|
+
| **@framers/agentos-ext-ml-classifiers** | Toxicity, injection, jailbreak via ONNX BERT | [](https://www.npmjs.com/package/@framers/agentos-ext-ml-classifiers) · [Docs](https://docs.agentos.sh/extensions/built-in/ml-classifiers) |
|
|
133
|
+
| **@framers/agentos-ext-topicality** | Embedding-based topic enforcement + drift detection | [](https://www.npmjs.com/package/@framers/agentos-ext-topicality) · [Docs](https://docs.agentos.sh/extensions/built-in/topicality) |
|
|
134
|
+
| **@framers/agentos-ext-code-safety** | OWASP Top 10 code scanning (25 regex rules) | [](https://www.npmjs.com/package/@framers/agentos-ext-code-safety) · [Docs](https://docs.agentos.sh/extensions/built-in/code-safety) |
|
|
135
|
+
| **@framers/agentos-ext-grounding-guard** | RAG-grounded hallucination detection via NLI | [](https://www.npmjs.com/package/@framers/agentos-ext-grounding-guard) · [Docs](https://docs.agentos.sh/extensions/built-in/grounding-guard) |
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
116
139
|
## Quick Start
|
|
117
140
|
|
|
118
141
|
```bash
|
|
@@ -147,112 +170,84 @@ for await (const chunk of agent.processRequest({
|
|
|
147
170
|
|
|
148
171
|
### Architecture Diagram
|
|
149
172
|
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
| | | | | |
|
|
190
|
-
| | | v v |
|
|
191
|
-
| | | +-----------+ +-----------+ |
|
|
192
|
-
| | | | Embedding | | ReAct | |
|
|
193
|
-
| | | | Manager | | Reasoner | |
|
|
194
|
-
| | | +-----------+ +-----------+ |
|
|
195
|
-
| | | | |
|
|
196
|
-
| v v v |
|
|
197
|
-
| +=========================================================+ |
|
|
198
|
-
| | LLM Provider Manager | |
|
|
199
|
-
| | | |
|
|
200
|
-
| | +--------+ +----------+ +-------+ +--------+ +------+ | |
|
|
201
|
-
| | | OpenAI | |Anthropic | | Azure | | Ollama | |OpenR.| | |
|
|
202
|
-
| | +--------+ +----------+ +-------+ +--------+ +------+ | |
|
|
203
|
-
| +=========================================================+ |
|
|
204
|
-
| |
|
|
205
|
-
| +---------+ +----------+ +----------+ +-----------+ |
|
|
206
|
-
| |Guardrail| | Circuit | | Cost | | Stuck | |
|
|
207
|
-
| | Service | | Breaker | | Guard | | Detector | |
|
|
208
|
-
| +---------+ +----------+ +----------+ +-----------+ |
|
|
209
|
-
| |
|
|
210
|
-
| +-------------------+ +-------------------+ +----------------+ |
|
|
211
|
-
| | Extension Manager | | Channel Router | | Call Manager | |
|
|
212
|
-
| | (12+ kinds) | | (40 platforms) | | (Voice/Tel.) | |
|
|
213
|
-
| +-------------------+ +-------------------+ +----------------+ |
|
|
214
|
-
| |
|
|
215
|
-
| +-------------------+ +-------------------+ +----------------+ |
|
|
216
|
-
| | Observability | | HITL Manager | | Skill Registry | |
|
|
217
|
-
| | (OpenTelemetry) | | (Approval/Escal.) | | (SKILL.md) | |
|
|
218
|
-
| +-------------------+ +-------------------+ +----------------+ |
|
|
219
|
-
| |
|
|
220
|
-
+====================================================================+
|
|
173
|
+
```mermaid
|
|
174
|
+
graph TB
|
|
175
|
+
subgraph Runtime["AgentOS Runtime"]
|
|
176
|
+
API["AgentOS API<br/><i>Service Facade</i>"] --> Orch["AgentOSOrchestrator<br/><i>Delegation Hub</i>"]
|
|
177
|
+
API --> Stream["StreamingManager<br/><i>Async Gen Mgmt</i>"]
|
|
178
|
+
Orch --> Prompt["PromptEngine<br/><i>Dynamic Prompts</i>"]
|
|
179
|
+
|
|
180
|
+
subgraph GMI["GMI Manager — Generalized Modular Intelligence"]
|
|
181
|
+
WM["Working<br/>Memory"] ~~~ CM["Context<br/>Manager"] ~~~ PO["Persona<br/>Overlay"] ~~~ LM["Learning<br/>Module"]
|
|
182
|
+
EM["Episodic<br/>Memory"] ~~~ SM["Semantic<br/>Memory"] ~~~ PM["Procedural<br/>Memory"]
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
Stream --> GMI
|
|
186
|
+
Prompt --> GMI
|
|
187
|
+
|
|
188
|
+
GMI --> Tools["Tool<br/>Orchestrator"]
|
|
189
|
+
GMI --> RAG["RAG<br/>Memory"]
|
|
190
|
+
GMI --> Plan["Planning<br/>Engine"]
|
|
191
|
+
GMI --> WF["Workflow<br/>Engine"]
|
|
192
|
+
|
|
193
|
+
RAG --> Embed["Embedding<br/>Manager"]
|
|
194
|
+
Plan --> ReAct["ReAct<br/>Reasoner"]
|
|
195
|
+
|
|
196
|
+
subgraph LLM["LLM Provider Manager"]
|
|
197
|
+
OAI["OpenAI"] ~~~ Anth["Anthropic"] ~~~ Az["Azure"] ~~~ Oll["Ollama"] ~~~ OR["OpenRouter"]
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
Tools --> LLM
|
|
201
|
+
Embed --> LLM
|
|
202
|
+
ReAct --> LLM
|
|
203
|
+
|
|
204
|
+
Guard["Guardrail<br/>Service"] ~~~ CB["Circuit<br/>Breaker"] ~~~ CG["Cost<br/>Guard"] ~~~ SD["Stuck<br/>Detector"]
|
|
205
|
+
Ext["Extension Manager<br/><i>12+ kinds</i>"] ~~~ Chan["Channel Router<br/><i>37 platforms</i>"] ~~~ Call["Call Manager<br/><i>Voice/Tel.</i>"]
|
|
206
|
+
Obs["Observability<br/><i>OpenTelemetry</i>"] ~~~ HITL["HITL Manager<br/><i>Approval/Escal.</i>"] ~~~ Skill["Skill Registry<br/><i>SKILL.md</i>"]
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
style Runtime fill:#0e0e18,stroke:#c9a227,stroke-width:2px,color:#f2f2fa
|
|
210
|
+
style GMI fill:#151520,stroke:#00f5ff,stroke-width:1px,color:#f2f2fa
|
|
211
|
+
style LLM fill:#151520,stroke:#8b5cf6,stroke-width:1px,color:#f2f2fa
|
|
221
212
|
```
|
|
222
213
|
|
|
223
214
|
### Request Lifecycle
|
|
224
215
|
|
|
225
216
|
A single `processRequest()` call flows through these stages:
|
|
226
217
|
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
[1
|
|
232
|
-
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
[
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
|
245
|
-
|
|
246
|
-
[
|
|
247
|
-
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
218
|
+
```mermaid
|
|
219
|
+
flowchart TD
|
|
220
|
+
Input["User Input<br/><code>AgentOSInput</code>"] --> G1
|
|
221
|
+
|
|
222
|
+
G1["1 · Input Guardrails<br/><i>evaluateInput()</i>"]
|
|
223
|
+
G1 -->|ALLOW| Ctx
|
|
224
|
+
G1 -.->|BLOCK / SANITIZE| Reject1["⛔ Rejected"]
|
|
225
|
+
|
|
226
|
+
Ctx["2 · Context Assembly<br/><i>ConversationManager + RAG</i>"] --> Prompt
|
|
227
|
+
Prompt["3 · Prompt Construction<br/><i>PromptEngine</i>"] --> GMI
|
|
228
|
+
GMI["4 · GMI Processing<br/><i>Working memory · Persona · Adaptation</i>"] --> LLM
|
|
229
|
+
|
|
230
|
+
LLM["5 · LLM Call<br/><i>Provider Manager + Circuit Breaker</i>"] --> ToolCheck
|
|
231
|
+
|
|
232
|
+
ToolCheck{"Tool call?"}
|
|
233
|
+
ToolCheck -->|Yes| ToolExec["6 · Tool Execution<br/><i>ToolOrchestrator + Permission Guard</i>"]
|
|
234
|
+
ToolExec -->|Loop| LLM
|
|
235
|
+
ToolCheck -->|No| G2
|
|
236
|
+
|
|
237
|
+
G2["7 · Output Guardrails<br/><i>evaluateOutput()</i>"]
|
|
238
|
+
G2 -->|ALLOW| Stream
|
|
239
|
+
G2 -.->|BLOCK / SANITIZE| Reject2["⛔ Rejected"]
|
|
240
|
+
|
|
241
|
+
Stream["8 · Streaming Response<br/><i>AsyncGenerator yields chunks</i>"] --> Post
|
|
242
|
+
Post["9 · Post-Processing<br/><i>Memory · Cost · Telemetry</i>"]
|
|
243
|
+
|
|
244
|
+
style Input fill:#1c1c28,stroke:#c9a227,color:#f2f2fa
|
|
245
|
+
style G1 fill:#1c1c28,stroke:#ef4444,color:#f2f2fa
|
|
246
|
+
style G2 fill:#1c1c28,stroke:#ef4444,color:#f2f2fa
|
|
247
|
+
style LLM fill:#1c1c28,stroke:#8b5cf6,color:#f2f2fa
|
|
248
|
+
style ToolCheck fill:#1c1c28,stroke:#00f5ff,color:#f2f2fa
|
|
249
|
+
style ToolExec fill:#1c1c28,stroke:#00f5ff,color:#f2f2fa
|
|
250
|
+
style Post fill:#1c1c28,stroke:#10b981,color:#f2f2fa
|
|
256
251
|
```
|
|
257
252
|
|
|
258
253
|
### Layer Breakdown
|
|
@@ -312,31 +307,19 @@ enum AgentOSResponseChunkType {
|
|
|
312
307
|
|
|
313
308
|
The Generalized Modular Intelligence (GMI) is the core agent instance -- the "brain" of each agent. A single AgentOS runtime can manage multiple GMI instances via `GMIManager`.
|
|
314
309
|
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
| | (Current session | | (Learning rate, style | |
|
|
329
|
-
| | state, tool ctx) | | drift, tone adaptation) | |
|
|
330
|
-
| +-------------------+ +----------------------------+ |
|
|
331
|
-
| |
|
|
332
|
-
| +-----------------------------------------------------------+ |
|
|
333
|
-
| | Multi-Layer Memory | |
|
|
334
|
-
| | +----------+ +----------+ +-----------+ +-----------+ | |
|
|
335
|
-
| | | Episodic | | Semantic | | Procedural| | Long-Term | | |
|
|
336
|
-
| | | (Events) | | (Facts) | | (Skills) | | (Archive) | | |
|
|
337
|
-
| | +----------+ +----------+ +-----------+ +-----------+ | |
|
|
338
|
-
| +-----------------------------------------------------------+ |
|
|
339
|
-
+================================================================+
|
|
310
|
+
```mermaid
|
|
311
|
+
graph TB
|
|
312
|
+
subgraph GMI["GMI Instance"]
|
|
313
|
+
PO["PersonaOverlay Manager<br/><i>Personality switching</i>"] ~~~ CTX["Context Manager<br/><i>Dynamic prompts · User context · Session</i>"]
|
|
314
|
+
WM["Working Memory<br/><i>Current session state · Tool context</i>"] ~~~ AM["Adaptation Manager<br/><i>Learning rate · Style drift · Tone</i>"]
|
|
315
|
+
subgraph Mem["Multi-Layer Memory"]
|
|
316
|
+
Ep["Episodic<br/><i>Events</i>"] ~~~ Sem["Semantic<br/><i>Facts</i>"] ~~~ Proc["Procedural<br/><i>Skills</i>"] ~~~ LT["Long-Term<br/><i>Archive</i>"]
|
|
317
|
+
end
|
|
318
|
+
PO --> Mem
|
|
319
|
+
WM --> Mem
|
|
320
|
+
end
|
|
321
|
+
style GMI fill:#0e0e18,stroke:#c9a227,stroke-width:2px,color:#f2f2fa
|
|
322
|
+
style Mem fill:#151520,stroke:#00f5ff,stroke-width:1px,color:#f2f2fa
|
|
340
323
|
```
|
|
341
324
|
|
|
342
325
|
**Key components:**
|
|
@@ -363,22 +346,14 @@ The Generalized Modular Intelligence (GMI) is the core agent instance -- the "br
|
|
|
363
346
|
|
|
364
347
|
The LLM layer abstracts multiple AI model providers behind a unified interface.
|
|
365
348
|
|
|
366
|
-
```
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
| OpenAI | | Ollama | | OpenRouter| | (Custom) |
|
|
375
|
-
| Provider | | Provider | | Provider | | Provider |
|
|
376
|
-
+----------+ +----------+ +----------+ +----------+
|
|
377
|
-
| | |
|
|
378
|
-
v v v
|
|
379
|
-
gpt-4o llama3.2 claude-3.5
|
|
380
|
-
gpt-4o-mini mistral gemini-pro
|
|
381
|
-
o1-preview codellama command-r+
|
|
349
|
+
```mermaid
|
|
350
|
+
graph TD
|
|
351
|
+
PM["AIModelProviderManager<br/><i>Provider registry · Routing · Fallback · Model switching</i>"]
|
|
352
|
+
PM --> OAI["OpenAI Provider<br/><code>gpt-4o · gpt-4o-mini · o1</code>"]
|
|
353
|
+
PM --> Oll["Ollama Provider<br/><code>llama3.2 · mistral · codellama</code>"]
|
|
354
|
+
PM --> OR["OpenRouter Provider<br/><code>claude-3.5 · gemini-pro · command-r+</code>"]
|
|
355
|
+
PM --> Custom["Custom Provider<br/><i>IProvider interface</i>"]
|
|
356
|
+
style PM fill:#1c1c28,stroke:#8b5cf6,color:#f2f2fa
|
|
382
357
|
```
|
|
383
358
|
|
|
384
359
|
**Provider implementations:**
|
|
@@ -419,19 +394,13 @@ for await (const chunk of agent.processRequest({
|
|
|
419
394
|
|
|
420
395
|
Tools are the primary mechanism for agents to interact with the outside world. Every tool implements the `ITool` interface.
|
|
421
396
|
|
|
422
|
-
```
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
+---------------+ +---------------+ +-------------------+
|
|
430
|
-
| ToolExecutor | | ToolPermission| | ToolExecution |
|
|
431
|
-
| (Validation, | | Manager | | Guard |
|
|
432
|
-
| invocation, | | (RBAC, per- | | (Timeout 30s, |
|
|
433
|
-
| result wrap) | | user access) | | circuit breaker) |
|
|
434
|
-
+---------------+ +---------------+ +-------------------+
|
|
397
|
+
```mermaid
|
|
398
|
+
graph TD
|
|
399
|
+
TO["ToolOrchestrator<br/><i>Discovery · Selection · Validation · Execution</i>"]
|
|
400
|
+
TO --> TE["ToolExecutor<br/><i>Validation · Invocation · Result wrap</i>"]
|
|
401
|
+
TO --> TP["ToolPermission Manager<br/><i>RBAC · Per-user access</i>"]
|
|
402
|
+
TO --> TG["ToolExecution Guard<br/><i>Timeout 30s · Circuit breaker</i>"]
|
|
403
|
+
style TO fill:#1c1c28,stroke:#00f5ff,color:#f2f2fa
|
|
435
404
|
```
|
|
436
405
|
|
|
437
406
|
**ITool interface (abbreviated):**
|
|
@@ -572,20 +541,15 @@ type ExtensionPackResolver =
|
|
|
572
541
|
|
|
573
542
|
The planning engine enables multi-step task decomposition and execution using ReAct (Reasoning + Acting) patterns.
|
|
574
543
|
|
|
575
|
-
```
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
| |
|
|
585
|
-
| createPlan(goal, context) -> Plan |
|
|
586
|
-
| executePlan(plan) -> AsyncGenerator<PlanStepResult> |
|
|
587
|
-
| revisePlan(plan, feedback) -> Plan |
|
|
588
|
-
+-----------------------------------------------------------+
|
|
544
|
+
```mermaid
|
|
545
|
+
graph TD
|
|
546
|
+
PE["PlanningEngine<br/><i>Task decomposition · Step sequencing · Execution loop</i>"]
|
|
547
|
+
PE --> IF["IPlanningEngine Interface"]
|
|
548
|
+
IF --- M1["createPlan(goal, context) → Plan"]
|
|
549
|
+
IF --- M2["executePlan(plan) → AsyncGenerator‹PlanStepResult›"]
|
|
550
|
+
IF --- M3["revisePlan(plan, feedback) → Plan"]
|
|
551
|
+
style PE fill:#1c1c28,stroke:#10b981,color:#f2f2fa
|
|
552
|
+
style IF fill:#151520,stroke:#c9a227,color:#f2f2fa
|
|
589
553
|
```
|
|
590
554
|
|
|
591
555
|
Plans are composed of typed steps that the agent executes sequentially, with the ability to revise the plan based on intermediate results. The planning engine integrates with:
|
|
@@ -618,30 +582,18 @@ Manages session state, message history, and long-term memory persistence.
|
|
|
618
582
|
|
|
619
583
|
A complete RAG pipeline with pluggable vector stores, embedding management, and document ingestion.
|
|
620
584
|
|
|
621
|
-
```
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
| |
|
|
634
|
-
v v
|
|
635
|
-
+-------------------+ +---------------------+
|
|
636
|
-
| LLM Provider | | IVectorStore impls |
|
|
637
|
-
| (embedding models)| +---------------------+
|
|
638
|
-
+-------------------+ | | | |
|
|
639
|
-
+----------+ | | +-----------+
|
|
640
|
-
v v v v
|
|
641
|
-
+-----------+ +--------+ +--------+ +---------+
|
|
642
|
-
| InMemory | | SQL | | HNSW | | Qdrant |
|
|
643
|
-
| (dev) | | (prod) | | (local)| | (cloud) |
|
|
644
|
-
+-----------+ +--------+ +--------+ +---------+
|
|
585
|
+
```mermaid
|
|
586
|
+
graph TD
|
|
587
|
+
RA["RetrievalAugmentor<br/><i>Ingestion · Retrieval · Document management</i>"]
|
|
588
|
+
RA --> EM["EmbeddingManager<br/><i>Model selection · Caching · Batch</i>"]
|
|
589
|
+
RA --> VSM["VectorStoreManager<br/><i>Multi-provider vector storage</i>"]
|
|
590
|
+
EM --> LLM["LLM Provider<br/><i>Embedding models</i>"]
|
|
591
|
+
VSM --> Mem["InMemory<br/><i>dev</i>"]
|
|
592
|
+
VSM --> SQL["SQL<br/><i>prod</i>"]
|
|
593
|
+
VSM --> HNSW["HNSW<br/><i>local ANN</i>"]
|
|
594
|
+
VSM --> Qd["Qdrant<br/><i>cloud</i>"]
|
|
595
|
+
style RA fill:#1c1c28,stroke:#c9a227,color:#f2f2fa
|
|
596
|
+
style VSM fill:#1c1c28,stroke:#8b5cf6,color:#f2f2fa
|
|
645
597
|
```
|
|
646
598
|
|
|
647
599
|
**Vector store implementations:**
|
|
@@ -654,6 +606,25 @@ A complete RAG pipeline with pluggable vector stores, embedding management, and
|
|
|
654
606
|
| `QdrantVectorStore` | `@framers/agentos/rag` | Cloud-hosted vector database |
|
|
655
607
|
| `Neo4jVectorStore` | `@framers/agentos/rag` | Neo4j 5.x native vector indexes with shared connection pooling |
|
|
656
608
|
|
|
609
|
+
> **Database Persistence: [`@framers/sql-storage-adapter`](https://github.com/framersai/sql-storage-adapter)**
|
|
610
|
+
>
|
|
611
|
+
> All SQL-backed storage in AgentOS — including `SqlVectorStore`, conversation persistence, and memory archival — is powered by the `@framers/sql-storage-adapter` package. It provides a unified interface across 7 database backends with automatic runtime detection:
|
|
612
|
+
>
|
|
613
|
+
> | Adapter | Runtime | Use Case |
|
|
614
|
+
> |---------|---------|----------|
|
|
615
|
+
> | `better-sqlite3` | Node.js | Production (default) |
|
|
616
|
+
> | `pg` | Node.js | PostgreSQL for cloud deployments |
|
|
617
|
+
> | `sql.js` | Browser/WASM | Client-side storage |
|
|
618
|
+
> | `capacitor` | Mobile | iOS/Android via Capacitor |
|
|
619
|
+
> | `electron` | Desktop | Electron apps with IPC bridge |
|
|
620
|
+
> | `indexeddb` | Browser | Fallback browser storage |
|
|
621
|
+
> | `memory` | Any | Testing and development |
|
|
622
|
+
>
|
|
623
|
+
> ```typescript
|
|
624
|
+
> import { createDatabase } from '@framers/sql-storage-adapter';
|
|
625
|
+
> const db = await createDatabase(); // auto-detects best adapter
|
|
626
|
+
> ```
|
|
627
|
+
|
|
657
628
|
**GraphRAG:**
|
|
658
629
|
|
|
659
630
|
AgentOS supports both in-memory `GraphRAGEngine` and persistent `Neo4jGraphRAGEngine` (at `src/rag/graphrag/`) for knowledge-graph-enhanced retrieval:
|
|
@@ -902,26 +873,18 @@ Enables teams of agents to collaborate on shared goals.
|
|
|
902
873
|
- **AgentCommunicationBus** -- Inter-agent message passing with typed events and handoffs
|
|
903
874
|
- **AgencyMemoryManager** -- Shared memory space with vector search for agency-wide knowledge
|
|
904
875
|
|
|
905
|
-
```
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
+-------+-------+-------+-------+-------+-------+
|
|
918
|
-
| |
|
|
919
|
-
v v
|
|
920
|
-
+------------------+ +--------------------+
|
|
921
|
-
| Communication | | Agency Memory |
|
|
922
|
-
| Bus (events, | | Manager (shared |
|
|
923
|
-
| handoffs, sync) | | vector memory) |
|
|
924
|
-
+------------------+ +--------------------+
|
|
876
|
+
```mermaid
|
|
877
|
+
graph TD
|
|
878
|
+
AR["AgencyRegistry"]
|
|
879
|
+
AR --> A1["Agent (GMI)<br/><b>Researcher</b>"]
|
|
880
|
+
AR --> A2["Agent (GMI)<br/><b>Writer</b>"]
|
|
881
|
+
AR --> A3["Agent (GMI)<br/><b>Reviewer</b>"]
|
|
882
|
+
AR --> A4["Agent (GMI)<br/><b>Deployer</b>"]
|
|
883
|
+
A1 & A2 & A3 & A4 --> Bus["Communication Bus<br/><i>Events · Handoffs · Sync</i>"]
|
|
884
|
+
A1 & A2 & A3 & A4 --> Mem["Agency Memory Manager<br/><i>Shared vector memory</i>"]
|
|
885
|
+
style AR fill:#1c1c28,stroke:#c9a227,color:#f2f2fa
|
|
886
|
+
style Bus fill:#151520,stroke:#00f5ff,color:#f2f2fa
|
|
887
|
+
style Mem fill:#151520,stroke:#8b5cf6,color:#f2f2fa
|
|
925
888
|
```
|
|
926
889
|
|
|
927
890
|
See [`docs/AGENT_COMMUNICATION.md`](docs/AGENT_COMMUNICATION.md) for the full multi-agent specification.
|
|
@@ -1509,7 +1472,7 @@ const config = await createTestAgentOSConfig();
|
|
|
1509
1472
|
await agent.initialize({ ...config, guardrailService: piiGuardrail });
|
|
1510
1473
|
```
|
|
1511
1474
|
|
|
1512
|
-
> **For production PII redaction**, use the built-in `
|
|
1475
|
+
> **For production PII redaction**, use the built-in `createPiiRedactionGuardrail()` extension
|
|
1513
1476
|
> instead of hand-rolled regex. It provides four-tier detection (regex + NLP + BERT NER +
|
|
1514
1477
|
> LLM-as-judge), streaming support, and configurable redaction styles. See
|
|
1515
1478
|
> [GUARDRAILS_USAGE.md](docs/GUARDRAILS_USAGE.md) for full examples.
|
|
@@ -1616,11 +1579,11 @@ import { SkillRegistry, SkillLoader } from '@framers/agentos/skills';
|
|
|
1616
1579
|
|
|
1617
1580
|
// Extension runtime helpers and built-in guardrail packs
|
|
1618
1581
|
import { SharedServiceRegistry } from '@framers/agentos';
|
|
1619
|
-
import {
|
|
1620
|
-
import {
|
|
1621
|
-
import {
|
|
1622
|
-
import {
|
|
1623
|
-
import {
|
|
1582
|
+
import { createPiiRedactionGuardrail } from '@framers/agentos-ext-pii-redaction';
|
|
1583
|
+
import { createMLClassifierGuardrail } from '@framers/agentos-ext-ml-classifiers';
|
|
1584
|
+
import { createTopicalityGuardrail } from '@framers/agentos-ext-topicality';
|
|
1585
|
+
import { createCodeSafetyGuardrail } from '@framers/agentos-ext-code-safety';
|
|
1586
|
+
import { createGroundingGuardrail } from '@framers/agentos-ext-grounding-guard';
|
|
1624
1587
|
|
|
1625
1588
|
// Deep imports (wildcard exports)
|
|
1626
1589
|
import { SomeType } from '@framers/agentos/core/safety/CircuitBreaker';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/memory/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/memory/config.ts"],"names":[],"mappings":"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"}
|
package/dist/memory/config.js
CHANGED
|
@@ -19,10 +19,11 @@ export const DEFAULT_DECAY_CONFIG = {
|
|
|
19
19
|
};
|
|
20
20
|
export const DEFAULT_BUDGET_ALLOCATION = {
|
|
21
21
|
workingMemory: 0.15,
|
|
22
|
-
semanticRecall: 0.
|
|
22
|
+
semanticRecall: 0.40,
|
|
23
23
|
recentEpisodic: 0.25,
|
|
24
24
|
prospectiveAlerts: 0.05,
|
|
25
25
|
graphAssociations: 0.05,
|
|
26
26
|
observationNotes: 0.05,
|
|
27
|
+
persistentMemory: 0.05,
|
|
27
28
|
};
|
|
28
29
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/memory/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6KH,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,YAAY,EAAE,GAAG;IACjB,kBAAkB,EAAE,GAAG;IACvB,2BAA2B,EAAE,GAAG;IAChC,4BAA4B,EAAE,GAAG;IACjC,eAAe,EAAE,OAAS;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC/C,gBAAgB,EAAE,IAAI;IACtB,iBAAiB,EAAE,QAAU;IAC7B,qBAAqB,EAAE,GAAG;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAA2B;IAC/D,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,IAAI;CACvB,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/memory/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6KH,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,YAAY,EAAE,GAAG;IACjB,kBAAkB,EAAE,GAAG;IACvB,2BAA2B,EAAE,GAAG;IAChC,4BAA4B,EAAE,GAAG;IACjC,eAAe,EAAE,OAAS;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC/C,gBAAgB,EAAE,IAAI;IACtB,iBAAiB,EAAE,QAAU;IAC7B,qBAAqB,EAAE,GAAG;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAA2B;IAC/D,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;CACvB,CAAC"}
|
package/dist/memory/index.d.ts
CHANGED
|
@@ -52,4 +52,8 @@ export { HierarchicalStrategy } from './context/strategies/HierarchicalStrategy.
|
|
|
52
52
|
export { HybridStrategy } from './context/strategies/HybridStrategy.js';
|
|
53
53
|
export type { InfiniteContextConfig, CompactionStrategy, TransparencyLevel, ContextMessage, CompactionEntry, SummaryChainNode, CompactionInput, CompactionResult, ICompactionStrategy, } from './context/types.js';
|
|
54
54
|
export { DEFAULT_INFINITE_CONTEXT_CONFIG } from './context/types.js';
|
|
55
|
+
export { MarkdownWorkingMemory } from './working/MarkdownWorkingMemory.js';
|
|
56
|
+
export type { WriteResult } from './working/MarkdownWorkingMemory.js';
|
|
57
|
+
export { UpdateWorkingMemoryTool } from './working/UpdateWorkingMemoryTool.js';
|
|
58
|
+
export { ReadWorkingMemoryTool } from './working/ReadWorkingMemoryTool.js';
|
|
55
59
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,qBAAqB,EACrB,4BAA4B,EAC5B,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,WAAW,EACX,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAGpF,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3G,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EACnB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,oCAAoC,CAAC;AAC5C,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGzG,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,YAAY,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AAGxF,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAGhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,YAAY,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACrF,YAAY,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAG3E,OAAO,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAG1F,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,yBAAyB,EACzB,aAAa,EACb,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,YAAY,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAG/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,YAAY,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAG/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAG/G,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,YAAY,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AAGjH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,YAAY,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACxG,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AAGrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,YAAY,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC"}
|
package/dist/memory/index.js
CHANGED
|
@@ -43,4 +43,8 @@ export { SlidingSummaryStrategy } from './context/strategies/SlidingSummaryStrat
|
|
|
43
43
|
export { HierarchicalStrategy } from './context/strategies/HierarchicalStrategy.js';
|
|
44
44
|
export { HybridStrategy } from './context/strategies/HybridStrategy.js';
|
|
45
45
|
export { DEFAULT_INFINITE_CONTEXT_CONFIG } from './context/types.js';
|
|
46
|
+
// --- Persistent Markdown Working Memory ---
|
|
47
|
+
export { MarkdownWorkingMemory } from './working/MarkdownWorkingMemory.js';
|
|
48
|
+
export { UpdateWorkingMemoryTool } from './working/UpdateWorkingMemoryTool.js';
|
|
49
|
+
export { ReadWorkingMemoryTool } from './working/ReadWorkingMemoryTool.js';
|
|
46
50
|
//# sourceMappingURL=index.js.map
|
package/dist/memory/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoCH,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAErB,mBAAmB;AACnB,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,sCAAsC,CAAC;AAG9C,gBAAgB;AAChB,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EACnB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,oCAAoC,CAAC;AAG5C,yBAAyB;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAG7E,gBAAgB;AAChB,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,0BAA0B;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGrF,4BAA4B;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,kCAAkC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,oBAAoB;AACpB,OAAO,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAY1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGlE,uCAAuC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGnE,uCAAuC;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAGrF,2CAA2C;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAGjF,4CAA4C;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAYxE,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoCH,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAErB,mBAAmB;AACnB,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,sCAAsC,CAAC;AAG9C,gBAAgB;AAChB,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EACnB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,oCAAoC,CAAC;AAG5C,yBAAyB;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAG7E,gBAAgB;AAChB,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,0BAA0B;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGrF,4BAA4B;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,kCAAkC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,oBAAoB;AACpB,OAAO,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAY1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGlE,uCAAuC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGnE,uCAAuC;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAGrF,2CAA2C;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAGjF,4CAA4C;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAYxE,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AAErE,6CAA6C;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC"}
|
|
@@ -31,6 +31,8 @@ export interface MemoryAssemblerInput {
|
|
|
31
31
|
graphContext?: string[];
|
|
32
32
|
/** Observation notes (Batch 2). */
|
|
33
33
|
observationNotes?: string[];
|
|
34
|
+
/** Persistent markdown memory (MEMORY.md contents). */
|
|
35
|
+
persistentMemoryText?: string;
|
|
34
36
|
}
|
|
35
37
|
/**
|
|
36
38
|
* Assemble memory context into a single formatted string within
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryPromptAssembler.d.ts","sourceRoot":"","sources":["../../../src/memory/prompt/MemoryPromptAssembler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAmCjD,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,gBAAgB,EAAE,MAAM,CAAC;IACzB,qCAAqC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC7C,oDAAoD;IACpD,MAAM,EAAE,YAAY,CAAC;IAGrB,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sDAAsD;IACtD,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACtC,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,mCAAmC;IACnC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"MemoryPromptAssembler.d.ts","sourceRoot":"","sources":["../../../src/memory/prompt/MemoryPromptAssembler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAmCjD,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,gBAAgB,EAAE,MAAM,CAAC;IACzB,qCAAqC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC7C,oDAAoD;IACpD,MAAM,EAAE,YAAY,CAAC;IAGrB,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sDAAsD;IACtD,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACtC,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,mCAAmC;IACnC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,uDAAuD;IACvD,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,sBAAsB,CAuJzF"}
|
|
@@ -48,6 +48,7 @@ export function assembleMemoryContext(input) {
|
|
|
48
48
|
const budget = input.totalTokenBudget;
|
|
49
49
|
const style = selectFormattingStyle(input.traits);
|
|
50
50
|
// Compute per-section budgets
|
|
51
|
+
const pmBudget = Math.floor(budget * alloc.persistentMemory);
|
|
51
52
|
const wmBudget = Math.floor(budget * alloc.workingMemory);
|
|
52
53
|
let semanticBudget = Math.floor(budget * alloc.semanticRecall);
|
|
53
54
|
const episodicBudget = Math.floor(budget * alloc.recentEpisodic);
|
|
@@ -57,6 +58,16 @@ export function assembleMemoryContext(input) {
|
|
|
57
58
|
const sections = [];
|
|
58
59
|
const includedIds = [];
|
|
59
60
|
let totalTokens = 0;
|
|
61
|
+
// --- Persistent Memory (MEMORY.md) ---
|
|
62
|
+
if (input.persistentMemoryText && pmBudget > 0) {
|
|
63
|
+
let pmText = input.persistentMemoryText;
|
|
64
|
+
const maxChars = pmBudget * 4;
|
|
65
|
+
if (pmText.length > maxChars) {
|
|
66
|
+
pmText = pmText.slice(0, maxChars) + '\n<!-- truncated -->';
|
|
67
|
+
}
|
|
68
|
+
sections.push(`## Persistent Memory\n\n${pmText}`);
|
|
69
|
+
totalTokens += Math.min(estimateTokens(input.persistentMemoryText), pmBudget);
|
|
70
|
+
}
|
|
60
71
|
// --- Working Memory ---
|
|
61
72
|
const wmText = input.workingMemoryText ?? '';
|
|
62
73
|
const wmTokens = estimateTokens(wmText);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryPromptAssembler.js","sourceRoot":"","sources":["../../../src/memory/prompt/MemoryPromptAssembler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAQH,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAwB,MAAM,uBAAuB,CAAC;AAEhF,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,iEAAiE;AACjE,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,8EAA8E;AAC9E,iCAAiC;AACjC,8EAA8E;AAE9E,MAAM,OAAO,GAAG,CAAC,CAAqB,EAAU,EAAE,CAChD,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEhD,SAAS,qBAAqB,CAAC,MAAoB;IACjD,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAEvC,qBAAqB;IACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,YAAY,CAAC;IAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC;IACzC,OAAO,WAAW,CAAC;AACrB,CAAC;
|
|
1
|
+
{"version":3,"file":"MemoryPromptAssembler.js","sourceRoot":"","sources":["../../../src/memory/prompt/MemoryPromptAssembler.ts"],"names":[],"mappings":"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"}
|
package/dist/memory/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface WriteResult {
|
|
2
|
+
success: boolean;
|
|
3
|
+
truncated: boolean;
|
|
4
|
+
tokensUsed: number;
|
|
5
|
+
error?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Persistent markdown working memory backed by a .md file on disk.
|
|
9
|
+
* The agent reads and fully replaces this file via tools.
|
|
10
|
+
* File contents are injected into the system prompt every turn.
|
|
11
|
+
*/
|
|
12
|
+
export declare class MarkdownWorkingMemory {
|
|
13
|
+
private readonly filePath;
|
|
14
|
+
private readonly template;
|
|
15
|
+
private readonly maxTokens;
|
|
16
|
+
constructor(filePath: string, template?: string, maxTokens?: number);
|
|
17
|
+
/** Creates the file with the template if it doesn't exist. */
|
|
18
|
+
ensureFile(): void;
|
|
19
|
+
/** Reads current file contents. Returns empty string if file missing. */
|
|
20
|
+
read(): string;
|
|
21
|
+
/** Replaces file contents entirely. Truncates if over maxTokens. */
|
|
22
|
+
write(content: string): WriteResult;
|
|
23
|
+
/** Estimates token count (~4 chars per token). */
|
|
24
|
+
estimateTokens(): number;
|
|
25
|
+
private estimateTokenCount;
|
|
26
|
+
/** Returns the file path for reference. */
|
|
27
|
+
getFilePath(): string;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=MarkdownWorkingMemory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkdownWorkingMemory.d.ts","sourceRoot":"","sources":["../../../src/memory/working/MarkdownWorkingMemory.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFT,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,MAAyB,EACnC,SAAS,GAAE,MAAa;IAG3C,8DAA8D;IAC9D,UAAU,IAAI,IAAI;IAOlB,yEAAyE;IACzE,IAAI,IAAI,MAAM;IASd,oEAAoE;IACpE,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW;IAoBnC,kDAAkD;IAClD,cAAc,IAAI,MAAM;IAIxB,OAAO,CAAC,kBAAkB;IAK1B,2CAA2C;IAC3C,WAAW,IAAI,MAAM;CAGtB"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs';
|
|
2
|
+
import { dirname } from 'node:path';
|
|
3
|
+
const DEFAULT_TEMPLATE = `# Working Memory
|
|
4
|
+
|
|
5
|
+
## User Profile
|
|
6
|
+
- **Name**:
|
|
7
|
+
- **Preferences**:
|
|
8
|
+
|
|
9
|
+
## Current Context
|
|
10
|
+
- **Active Topics**:
|
|
11
|
+
- **Recent Requests**:
|
|
12
|
+
|
|
13
|
+
## Notes
|
|
14
|
+
`;
|
|
15
|
+
/**
|
|
16
|
+
* Persistent markdown working memory backed by a .md file on disk.
|
|
17
|
+
* The agent reads and fully replaces this file via tools.
|
|
18
|
+
* File contents are injected into the system prompt every turn.
|
|
19
|
+
*/
|
|
20
|
+
export class MarkdownWorkingMemory {
|
|
21
|
+
constructor(filePath, template = DEFAULT_TEMPLATE, maxTokens = 2000) {
|
|
22
|
+
this.filePath = filePath;
|
|
23
|
+
this.template = template;
|
|
24
|
+
this.maxTokens = maxTokens;
|
|
25
|
+
}
|
|
26
|
+
/** Creates the file with the template if it doesn't exist. */
|
|
27
|
+
ensureFile() {
|
|
28
|
+
if (existsSync(this.filePath))
|
|
29
|
+
return;
|
|
30
|
+
const dir = dirname(this.filePath);
|
|
31
|
+
if (!existsSync(dir))
|
|
32
|
+
mkdirSync(dir, { recursive: true });
|
|
33
|
+
writeFileSync(this.filePath, this.template, 'utf8');
|
|
34
|
+
}
|
|
35
|
+
/** Reads current file contents. Returns empty string if file missing. */
|
|
36
|
+
read() {
|
|
37
|
+
if (!existsSync(this.filePath))
|
|
38
|
+
return '';
|
|
39
|
+
try {
|
|
40
|
+
return readFileSync(this.filePath, 'utf8');
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return '';
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/** Replaces file contents entirely. Truncates if over maxTokens. */
|
|
47
|
+
write(content) {
|
|
48
|
+
const tokens = this.estimateTokenCount(content);
|
|
49
|
+
let truncated = false;
|
|
50
|
+
if (tokens > this.maxTokens) {
|
|
51
|
+
const maxChars = this.maxTokens * 4;
|
|
52
|
+
content = content.slice(0, maxChars) + '\n\n<!-- truncated: exceeded token limit -->';
|
|
53
|
+
truncated = true;
|
|
54
|
+
}
|
|
55
|
+
try {
|
|
56
|
+
const dir = dirname(this.filePath);
|
|
57
|
+
if (!existsSync(dir))
|
|
58
|
+
mkdirSync(dir, { recursive: true });
|
|
59
|
+
writeFileSync(this.filePath, content, 'utf8');
|
|
60
|
+
return { success: true, truncated, tokensUsed: this.estimateTokenCount(content) };
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
return { success: false, truncated: false, tokensUsed: 0, error: err?.message };
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/** Estimates token count (~4 chars per token). */
|
|
67
|
+
estimateTokens() {
|
|
68
|
+
return this.estimateTokenCount(this.read());
|
|
69
|
+
}
|
|
70
|
+
estimateTokenCount(text) {
|
|
71
|
+
if (!text)
|
|
72
|
+
return 0;
|
|
73
|
+
return Math.ceil(text.length / 4);
|
|
74
|
+
}
|
|
75
|
+
/** Returns the file path for reference. */
|
|
76
|
+
getFilePath() {
|
|
77
|
+
return this.filePath;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=MarkdownWorkingMemory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkdownWorkingMemory.js","sourceRoot":"","sources":["../../../src/memory/working/MarkdownWorkingMemory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,gBAAgB,GAAG;;;;;;;;;;;CAWxB,CAAC;AASF;;;;GAIG;AACH,MAAM,OAAO,qBAAqB;IAChC,YACmB,QAAgB,EAChB,WAAmB,gBAAgB,EACnC,YAAoB,IAAI;QAFxB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,aAAQ,GAAR,QAAQ,CAA2B;QACnC,cAAS,GAAT,SAAS,CAAe;IACxC,CAAC;IAEJ,8DAA8D;IAC9D,UAAU;QACR,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO;QACtC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,yEAAyE;IACzE,IAAI;QACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,KAAK,CAAC,OAAe;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YACpC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,8CAA8C,CAAC;YACtF,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAC9C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;QACpF,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;QAClF,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,cAAc;QACZ,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IAEO,kBAAkB,CAAC,IAAY;QACrC,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,2CAA2C;IAC3C,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ITool, ToolExecutionResult, ToolExecutionContext, JSONSchemaObject } from '../../core/tools/ITool.js';
|
|
2
|
+
import type { MarkdownWorkingMemory } from './MarkdownWorkingMemory.js';
|
|
3
|
+
interface ReadOutput {
|
|
4
|
+
content: string;
|
|
5
|
+
tokensUsed: number;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Tool that lets the agent explicitly read its persistent working memory.
|
|
9
|
+
* The memory is also injected into the system prompt automatically,
|
|
10
|
+
* but this tool is useful when the agent wants to reason about its
|
|
11
|
+
* memory before deciding what to update.
|
|
12
|
+
*/
|
|
13
|
+
export declare class ReadWorkingMemoryTool implements ITool<Record<string, never>, ReadOutput> {
|
|
14
|
+
private readonly memory;
|
|
15
|
+
readonly id = "read-working-memory-v1";
|
|
16
|
+
readonly name = "read_working_memory";
|
|
17
|
+
readonly displayName = "Read Working Memory";
|
|
18
|
+
readonly description: string;
|
|
19
|
+
readonly category = "memory";
|
|
20
|
+
readonly hasSideEffects = false;
|
|
21
|
+
readonly inputSchema: JSONSchemaObject;
|
|
22
|
+
constructor(memory: MarkdownWorkingMemory);
|
|
23
|
+
execute(_args: Record<string, never>, _context: ToolExecutionContext): Promise<ToolExecutionResult<ReadOutput>>;
|
|
24
|
+
}
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=ReadWorkingMemoryTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadWorkingMemoryTool.d.ts","sourceRoot":"","sources":["../../../src/memory/working/ReadWorkingMemoryTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACpH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAExE,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,qBAAa,qBAAsB,YAAW,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC;IAexE,OAAO,CAAC,QAAQ,CAAC,MAAM;IAdnC,QAAQ,CAAC,EAAE,4BAA4B;IACvC,QAAQ,CAAC,IAAI,yBAAyB;IACtC,QAAQ,CAAC,WAAW,yBAAyB;IAC7C,QAAQ,CAAC,WAAW,SAGyC;IAC7D,QAAQ,CAAC,QAAQ,YAAY;IAC7B,QAAQ,CAAC,cAAc,SAAS;IAChC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAGpC;gBAE2B,MAAM,EAAE,qBAAqB;IAEpD,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;CAOtH"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool that lets the agent explicitly read its persistent working memory.
|
|
3
|
+
* The memory is also injected into the system prompt automatically,
|
|
4
|
+
* but this tool is useful when the agent wants to reason about its
|
|
5
|
+
* memory before deciding what to update.
|
|
6
|
+
*/
|
|
7
|
+
export class ReadWorkingMemoryTool {
|
|
8
|
+
constructor(memory) {
|
|
9
|
+
this.memory = memory;
|
|
10
|
+
this.id = 'read-working-memory-v1';
|
|
11
|
+
this.name = 'read_working_memory';
|
|
12
|
+
this.displayName = 'Read Working Memory';
|
|
13
|
+
this.description = 'Read your current persistent working memory contents. ' +
|
|
14
|
+
'This is also available in your system prompt, but use this tool ' +
|
|
15
|
+
'when you need to inspect your memory before updating it.';
|
|
16
|
+
this.category = 'memory';
|
|
17
|
+
this.hasSideEffects = false;
|
|
18
|
+
this.inputSchema = {
|
|
19
|
+
type: 'object',
|
|
20
|
+
properties: {},
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
async execute(_args, _context) {
|
|
24
|
+
const content = this.memory.read();
|
|
25
|
+
return {
|
|
26
|
+
success: true,
|
|
27
|
+
output: { content, tokensUsed: this.memory.estimateTokens() },
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=ReadWorkingMemoryTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadWorkingMemoryTool.js","sourceRoot":"","sources":["../../../src/memory/working/ReadWorkingMemoryTool.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,MAAM,OAAO,qBAAqB;IAehC,YAA6B,MAA6B;QAA7B,WAAM,GAAN,MAAM,CAAuB;QAdjD,OAAE,GAAG,wBAAwB,CAAC;QAC9B,SAAI,GAAG,qBAAqB,CAAC;QAC7B,gBAAW,GAAG,qBAAqB,CAAC;QACpC,gBAAW,GAClB,wDAAwD;YACxD,kEAAkE;YAClE,0DAA0D,CAAC;QACpD,aAAQ,GAAG,QAAQ,CAAC;QACpB,mBAAc,GAAG,KAAK,CAAC;QACvB,gBAAW,GAAqB;YACvC,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;SACf,CAAC;IAE2D,CAAC;IAE9D,KAAK,CAAC,OAAO,CAAC,KAA4B,EAAE,QAA8B;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE;SAC9D,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ITool, ToolExecutionResult, ToolExecutionContext, JSONSchemaObject } from '../../core/tools/ITool.js';
|
|
2
|
+
import type { MarkdownWorkingMemory } from './MarkdownWorkingMemory.js';
|
|
3
|
+
interface UpdateInput {
|
|
4
|
+
content: string;
|
|
5
|
+
}
|
|
6
|
+
interface UpdateOutput {
|
|
7
|
+
tokensUsed: number;
|
|
8
|
+
truncated: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Tool that lets the agent fully replace its persistent markdown working memory.
|
|
12
|
+
* The agent should call this whenever it learns new persistent context about the
|
|
13
|
+
* user, session, or ongoing tasks that should survive across conversations.
|
|
14
|
+
*/
|
|
15
|
+
export declare class UpdateWorkingMemoryTool implements ITool<UpdateInput, UpdateOutput> {
|
|
16
|
+
private readonly memory;
|
|
17
|
+
readonly id = "update-working-memory-v1";
|
|
18
|
+
readonly name = "update_working_memory";
|
|
19
|
+
readonly displayName = "Update Working Memory";
|
|
20
|
+
readonly description: string;
|
|
21
|
+
readonly category = "memory";
|
|
22
|
+
readonly hasSideEffects = true;
|
|
23
|
+
readonly inputSchema: JSONSchemaObject;
|
|
24
|
+
constructor(memory: MarkdownWorkingMemory);
|
|
25
|
+
execute(args: UpdateInput, _context: ToolExecutionContext): Promise<ToolExecutionResult<UpdateOutput>>;
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=UpdateWorkingMemoryTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UpdateWorkingMemoryTool.d.ts","sourceRoot":"","sources":["../../../src/memory/working/UpdateWorkingMemoryTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACpH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAExE,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,KAAK,CAAC,WAAW,EAAE,YAAY,CAAC;IAsBlE,OAAO,CAAC,QAAQ,CAAC,MAAM;IArBnC,QAAQ,CAAC,EAAE,8BAA8B;IACzC,QAAQ,CAAC,IAAI,2BAA2B;IACxC,QAAQ,CAAC,WAAW,2BAA2B;IAC/C,QAAQ,CAAC,WAAW,SAI+D;IACnF,QAAQ,CAAC,QAAQ,YAAY;IAC7B,QAAQ,CAAC,cAAc,QAAQ;IAC/B,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CASpC;gBAE2B,MAAM,EAAE,qBAAqB;IAEpD,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;CAU7G"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool that lets the agent fully replace its persistent markdown working memory.
|
|
3
|
+
* The agent should call this whenever it learns new persistent context about the
|
|
4
|
+
* user, session, or ongoing tasks that should survive across conversations.
|
|
5
|
+
*/
|
|
6
|
+
export class UpdateWorkingMemoryTool {
|
|
7
|
+
constructor(memory) {
|
|
8
|
+
this.memory = memory;
|
|
9
|
+
this.id = 'update-working-memory-v1';
|
|
10
|
+
this.name = 'update_working_memory';
|
|
11
|
+
this.displayName = 'Update Working Memory';
|
|
12
|
+
this.description = 'Replace your persistent working memory with updated content. ' +
|
|
13
|
+
'Use this to store user preferences, ongoing context, project notes, ' +
|
|
14
|
+
'and anything that should persist across conversations. ' +
|
|
15
|
+
'You must provide the COMPLETE updated content (full replacement, not a patch).';
|
|
16
|
+
this.category = 'memory';
|
|
17
|
+
this.hasSideEffects = true;
|
|
18
|
+
this.inputSchema = {
|
|
19
|
+
type: 'object',
|
|
20
|
+
properties: {
|
|
21
|
+
content: {
|
|
22
|
+
type: 'string',
|
|
23
|
+
description: 'The full markdown content to replace working memory with.',
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
required: ['content'],
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
async execute(args, _context) {
|
|
30
|
+
const result = this.memory.write(args.content);
|
|
31
|
+
if (!result.success) {
|
|
32
|
+
return { success: false, error: result.error ?? 'Failed to write working memory' };
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
success: true,
|
|
36
|
+
output: { tokensUsed: result.tokensUsed, truncated: result.truncated },
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=UpdateWorkingMemoryTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UpdateWorkingMemoryTool.js","sourceRoot":"","sources":["../../../src/memory/working/UpdateWorkingMemoryTool.ts"],"names":[],"mappings":"AAYA;;;;GAIG;AACH,MAAM,OAAO,uBAAuB;IAsBlC,YAA6B,MAA6B;QAA7B,WAAM,GAAN,MAAM,CAAuB;QArBjD,OAAE,GAAG,0BAA0B,CAAC;QAChC,SAAI,GAAG,uBAAuB,CAAC;QAC/B,gBAAW,GAAG,uBAAuB,CAAC;QACtC,gBAAW,GAClB,+DAA+D;YAC/D,sEAAsE;YACtE,yDAAyD;YACzD,gFAAgF,CAAC;QAC1E,aAAQ,GAAG,QAAQ,CAAC;QACpB,mBAAc,GAAG,IAAI,CAAC;QACtB,gBAAW,GAAqB;YACvC,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2DAA2D;iBACzE;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;SACtB,CAAC;IAE2D,CAAC;IAE9D,KAAK,CAAC,OAAO,CAAC,IAAiB,EAAE,QAA8B;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,gCAAgC,EAAE,CAAC;QACrF,CAAC;QACD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;SACvE,CAAC;IACJ,CAAC;CACF"}
|