@aman_asmuei/aman-agent 0.28.0 → 0.29.0
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 +12 -14
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
<details>
|
|
48
48
|
<summary><strong>Table of Contents</strong></summary>
|
|
49
49
|
|
|
50
|
-
- [What's New](#whats-new-in-
|
|
50
|
+
- [What's New](#whats-new-in-v0290)
|
|
51
51
|
- [The Problem](#the-problem)
|
|
52
52
|
- [The Solution](#the-solution)
|
|
53
53
|
- [Quick Start](#quick-start)
|
|
@@ -80,27 +80,25 @@
|
|
|
80
80
|
|
|
81
81
|
---
|
|
82
82
|
|
|
83
|
-
## What's New in v0.
|
|
83
|
+
## What's New in v0.29.0
|
|
84
84
|
|
|
85
|
-
> **
|
|
85
|
+
> **Ecosystem parity — the knowledge graph wires up.**
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
Memories now auto-relate after extraction, building a knowledge graph of connected insights across sessions. Admin tools for memory health diagnostics, repair, config, and reflection are fully wired. Stale references cleaned up.
|
|
88
88
|
|
|
89
89
|
| Feature | What it does |
|
|
90
90
|
|:---|:---|
|
|
91
|
-
| **
|
|
92
|
-
| **
|
|
93
|
-
| **Skill merging + versioning** | Near-duplicate skills prompt merge instead of skip; old versions archived as `.v1`, `.v2`, etc. |
|
|
94
|
-
| **Adaptive nudge learning** | Wellbeing nudges that consistently precede low-rated sessions get automatically suppressed |
|
|
95
|
-
| **Semantic trigger matching** | TF-IDF cosine similarity alongside keyword matching — skills trigger on meaning, not just words |
|
|
96
|
-
| **Feed-forward v2** | Preemptive context injection from frustration correlations (late-night, long sessions) |
|
|
97
|
-
| **LLM-based sentiment** | Piggybacks tone analysis on memory extraction — zero extra LLM calls |
|
|
98
|
-
| **Burnout predictor** | Forecasts burnout risk from session patterns; surfaces care nudge when risk > 70% |
|
|
99
|
-
| **`/skills list --auto`** | Now shows reinforcement count (★) and version history per skill |
|
|
91
|
+
| **Auto-relate memories** | After each successful extraction, `autoRelateMemory` finds and links semantically similar memories — builds a knowledge graph automatically |
|
|
92
|
+
| **Stale reference cleanup** | `aman-claude-code` → `aman-plugin` across all docs |
|
|
100
93
|
|
|
101
94
|
<details>
|
|
102
95
|
<summary><strong>Highlights from earlier releases</strong></summary>
|
|
103
96
|
|
|
97
|
+
**v0.28 — Learning loop completion**
|
|
98
|
+
- Rejection feedback, cross-session reinforcement, skill merging + versioning
|
|
99
|
+
- Adaptive nudge learning, semantic trigger matching, feed-forward v2
|
|
100
|
+
- LLM-based sentiment, burnout predictor, `/skills list --auto` enhancements
|
|
101
|
+
|
|
104
102
|
**v0.27 — Dynamic user model**
|
|
105
103
|
- Cross-session profile: trust (EMA), sentiment baseline, energy distribution
|
|
106
104
|
- Feed-forward personalized energy/mode overrides
|
|
@@ -906,7 +904,7 @@ The agent adapts its personality in real-time based on signals:
|
|
|
906
904
|
- **User sentiment**: detects frustration, excitement, confusion, fatigue from keywords
|
|
907
905
|
- **Wellbeing nudges**: suggests breaks when you've been at it too long, gently mentions sleep during late-night sessions
|
|
908
906
|
|
|
909
|
-
All state syncs to acore's Dynamics section — works across aman-agent, achannel, and aman-
|
|
907
|
+
All state syncs to acore's Dynamics section — works across aman-agent, achannel, and aman-plugin.
|
|
910
908
|
|
|
911
909
|
### Auto-Triggered Skills
|
|
912
910
|
|
package/dist/index.js
CHANGED
|
@@ -6045,7 +6045,7 @@ function handleReset(action) {
|
|
|
6045
6045
|
function handleUpdate() {
|
|
6046
6046
|
try {
|
|
6047
6047
|
const current = execFileSync3("npm", ["view", "@aman_asmuei/aman-agent", "version"], { encoding: "utf-8" }).trim();
|
|
6048
|
-
const local = true ? "0.
|
|
6048
|
+
const local = true ? "0.29.0" : "unknown";
|
|
6049
6049
|
if (current === local) {
|
|
6050
6050
|
return { handled: true, output: `${pc5.green("Up to date")} \u2014 v${local}` };
|
|
6051
6051
|
}
|
|
@@ -7575,7 +7575,7 @@ function matchKnowledge(userInput) {
|
|
|
7575
7575
|
}
|
|
7576
7576
|
|
|
7577
7577
|
// src/memory-extractor.ts
|
|
7578
|
-
import { reflect as reflect2, isReflectionDue as isReflectionDue2 } from "@aman_asmuei/amem-core";
|
|
7578
|
+
import { reflect as reflect2, isReflectionDue as isReflectionDue2, autoRelateMemory } from "@aman_asmuei/amem-core";
|
|
7579
7579
|
var VALID_TYPES = /* @__PURE__ */ new Set(["preference", "fact", "pattern", "topology", "decision", "correction"]);
|
|
7580
7580
|
var MIN_RESPONSE_LENGTH = 50;
|
|
7581
7581
|
var MIN_TURNS_BETWEEN_EMPTY = 3;
|
|
@@ -7703,6 +7703,10 @@ Assistant: ${assistantResponse.slice(0, 2e3)}`;
|
|
|
7703
7703
|
if (storeResult.action !== "private") {
|
|
7704
7704
|
stored++;
|
|
7705
7705
|
log.debug("extractor", "Stored " + candidate.type + ": " + candidate.content);
|
|
7706
|
+
try {
|
|
7707
|
+
autoRelateMemory(getDb(), storeResult.id);
|
|
7708
|
+
} catch {
|
|
7709
|
+
}
|
|
7706
7710
|
if (candidate.type === "pattern" || candidate.type === "preference") {
|
|
7707
7711
|
const skillMatch = matchPatternToSkill(candidate.content, candidate.tags);
|
|
7708
7712
|
if (skillMatch) {
|
|
@@ -9020,7 +9024,7 @@ function bootstrapEcosystem() {
|
|
|
9020
9024
|
return true;
|
|
9021
9025
|
}
|
|
9022
9026
|
var program = new Command();
|
|
9023
|
-
program.name("aman-agent").description("Your AI companion, running locally").version("0.
|
|
9027
|
+
program.name("aman-agent").description("Your AI companion, running locally").version("0.29.0").option("--model <model>", "Override LLM model").option("--budget <tokens>", "Token budget for system prompt (default: 8000)", parseInt).option("--profile <name>", "Use a specific agent profile (e.g., coder, writer, researcher)").action(async (options) => {
|
|
9024
9028
|
p3.intro(pc8.bold("aman agent") + pc8.dim(" \u2014 your AI companion"));
|
|
9025
9029
|
let config = loadConfig();
|
|
9026
9030
|
if (!config) {
|