titan-agent 7.1.0 → 7.2.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 +31 -0
- package/dist/agent/agent.js +16 -5
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/honestyGuard.js +66 -0
- package/dist/agent/honestyGuard.js.map +1 -0
- package/dist/agent/selfCritique.js +101 -0
- package/dist/agent/selfCritique.js.map +1 -0
- package/dist/agent/trajectoryLogger.js +19 -2
- package/dist/agent/trajectoryLogger.js.map +1 -1
- package/dist/analytics/collector.js +1 -1
- package/dist/analytics/collector.js.map +1 -1
- package/dist/config/schema.js +14 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/gateway/server.js +1 -1
- package/dist/gateway/server.js.map +1 -1
- package/dist/providers/router.js +1 -1
- package/dist/providers/router.js.map +1 -1
- package/dist/utils/constants.js +1 -1
- package/dist/utils/constants.js.map +1 -1
- package/package.json +1 -1
- package/ui/dist/sw.js +1 -1
package/README.md
CHANGED
|
@@ -50,6 +50,27 @@
|
|
|
50
50
|
|
|
51
51
|
<a id="whats-new"></a>
|
|
52
52
|
|
|
53
|
+
## What's new in v7.2.0 "Conscience" — Honesty as an Enforced Invariant
|
|
54
|
+
|
|
55
|
+
**TITAN stopped being able to bluff.** Two honesty organs turn any model — local
|
|
56
|
+
or cloud — into one that *verifies before it claims* and *critiques before it
|
|
57
|
+
speaks*. Flip one switch (`agent.reliabilityMode: true`) and your local model
|
|
58
|
+
behaves with the reliability discipline of a frontier model, because reliability
|
|
59
|
+
is enforced in the harness, not hoped for in the prompt.
|
|
60
|
+
|
|
61
|
+
- 🛡️ **Verification wall (always on):** claim you sent/posted/deleted/deployed/
|
|
62
|
+
saved something with no tool that did it → TITAN appends a visible correction.
|
|
63
|
+
- 🧠 **Self-critique (Reliability Mode):** the model reviews its own draft
|
|
64
|
+
adversarially and appends honest "on reflection" caveats. Live-proven: a local
|
|
65
|
+
model caught its own over-precise number and a definitional conflation,
|
|
66
|
+
unprompted.
|
|
67
|
+
- ⚡ **Perf:** ~19MB/turn read deleted (tail-read trajectories); every timer
|
|
68
|
+
`.unref()`'d.
|
|
69
|
+
|
|
70
|
+
See **[CHANGELOG.md](CHANGELOG.md)** for the full v7.2.0 entry.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
53
74
|
## What's new in v7.1.0 "Council" — Local-First Intelligence, Together
|
|
54
75
|
|
|
55
76
|
**Agents advising agents, models sized to their machines, and benchmarks you can trust.**
|
|
@@ -65,6 +86,16 @@ TITAN now **learns each deployment's real context ceiling from live traffic** an
|
|
|
65
86
|
|
|
66
87
|
**Proof, not vibes**: under the new `TITAN_BENCH=1` isolation mode, **Qwen3.6-35B-A3B NVFP4 on DGX-Spark-class hardware scores 85% through TITAN's harness — tying the RTX 5090's best local model.** Full corrected tables in [benchmarks/MODEL_COMPARISON.md](benchmarks/MODEL_COMPARISON.md).
|
|
67
88
|
|
|
89
|
+
### 🛡️ Honesty as an enforced invariant (any model)
|
|
90
|
+
TITAN won't let a model bluff. The **verification wall** appends a visible
|
|
91
|
+
correction if a reply claims it *did* something (sent, posted, deleted,
|
|
92
|
+
deployed, saved) with no tool that actually did it — deterministic, always on.
|
|
93
|
+
Turn on **Reliability Mode** (`agent.reliabilityMode: true` — one switch) and TITAN
|
|
94
|
+
also critiques its own draft before you see it, appending honest "on reflection"
|
|
95
|
+
caveats for anything it didn't verify. This is how a local model reaches
|
|
96
|
+
frontier *reliability* without frontier size — and it works on whatever brain
|
|
97
|
+
you plug in.
|
|
98
|
+
|
|
68
99
|
See **[CHANGELOG.md](CHANGELOG.md)** for the complete v7.1.0 entry.
|
|
69
100
|
|
|
70
101
|
---
|
package/dist/agent/agent.js
CHANGED
|
@@ -1542,12 +1542,23 @@ ${buildSystemWidgetGate(sw)}` : buildSystemWidgetGate(sw);
|
|
|
1542
1542
|
logger.info(COMPONENT, `[SystemWidgetShortcut] Deterministically emitted _____widget gate for ${sw.source}`);
|
|
1543
1543
|
}
|
|
1544
1544
|
}
|
|
1545
|
+
try {
|
|
1546
|
+
const agentCfg = config.agent;
|
|
1547
|
+
const { resolveSelfCritique, runSelfCritique } = await import("./selfCritique.js");
|
|
1548
|
+
const scCfg = resolveSelfCritique(agentCfg.selfCritique, agentCfg.reliabilityMode === true);
|
|
1549
|
+
if (scCfg.enabled) {
|
|
1550
|
+
const sc = await runSelfCritique(scCfg, message, finalContent, [...new Set(toolsUsed)], modelUsed);
|
|
1551
|
+
if (sc.critiqued && sc.issues.length > 0) finalContent = sc.content;
|
|
1552
|
+
}
|
|
1553
|
+
} catch (e) {
|
|
1554
|
+
logger.debug(COMPONENT, `Self-critique wrapper skipped: ${e.message}`);
|
|
1555
|
+
}
|
|
1545
1556
|
{
|
|
1546
|
-
const
|
|
1547
|
-
const
|
|
1548
|
-
if (
|
|
1549
|
-
finalContent
|
|
1550
|
-
logger.warn(COMPONENT,
|
|
1557
|
+
const { applyHonestyGuard } = await import("./honestyGuard.js");
|
|
1558
|
+
const guarded = applyHonestyGuard(finalContent, toolsUsed);
|
|
1559
|
+
if (guarded.flagged.length > 0) {
|
|
1560
|
+
finalContent = guarded.content;
|
|
1561
|
+
logger.warn(COMPONENT, `[HonestyGuard] Reply claimed ${guarded.flagged.join(", ")} without a capable tool \u2014 appended correction`);
|
|
1551
1562
|
}
|
|
1552
1563
|
}
|
|
1553
1564
|
addMessage(session, "assistant", finalContent, {
|