@agenr/openclaw-plugin 0.13.4 → 0.14.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/CHANGELOG.md +19 -0
- package/dist/index.js +10 -5
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.14.0] - 2026-03-24
|
|
4
|
+
|
|
5
|
+
### Surgeon — Budget Model Overhaul
|
|
6
|
+
|
|
7
|
+
- **`--budget` now means dollars, not tokens.** The cumulative token budget that double-counted context re-sends across turns is gone. The surgeon is now constrained by two things: cost (dollars) and context window (tokens). Config `surgeon.budget` is dollars per run. Default: $5.
|
|
8
|
+
- **Context-aware limits.** New `surgeon.contextLimit` config field and `--context-limit` CLI flag. Auto-detects from `model.contextWindow * 0.85` if not set. The surgeon stops when context is full, not from artificial token counting.
|
|
9
|
+
- **`costCap` removed.** Replaced by `budget`. Old `costCap` values are accepted as backward-compatible alias with deprecation warning.
|
|
10
|
+
|
|
11
|
+
### Surgeon — Contradiction Improvements
|
|
12
|
+
|
|
13
|
+
- **`coexists` relation for `log_conflict`.** The surgeon can now log reviewed false-positive pairs as coexisting rather than forcing them into `contradicts` or `supersedes`. Coexists conflicts are auto-resolved as `keep-both` so they don't accumulate as pending conflicts and future scans skip them.
|
|
14
|
+
- **Improved contradiction candidate filtering.** Suppresses historical series pairs (release versions, prompt paths, roadmap snapshots) from claim divergence scanning. Prioritizes `current_state` claim divergence pairs.
|
|
15
|
+
|
|
16
|
+
### Surgeon — Retirement Candidate Scoping
|
|
17
|
+
|
|
18
|
+
- **Scoped candidate queries.** `query_candidates` now accepts `scope` parameter: `actionable` (default) filters to entries with high retirement probability — temporary, ephemeral, todos, low-importance events, mislabeled temporal artifacts. `all` shows the full candidate pool for deep sweeps.
|
|
19
|
+
- **Improved candidate ordering.** Actionable scope returns temporary entries first, then ephemeral, then todos, then low-importance events. Durable permanent decisions and preferences are excluded from the default scope.
|
|
20
|
+
- **Two-phase retirement in auto mode.** Surgeon starts with actionable candidates, widens to full pool only if budget remains after exhausting the actionable set.
|
|
21
|
+
|
|
3
22
|
## [0.13.4] - 2026-03-23
|
|
4
23
|
|
|
5
24
|
### Surgeon
|
package/dist/index.js
CHANGED
|
@@ -3894,7 +3894,7 @@ function isAgenrAuthMethod(value) {
|
|
|
3894
3894
|
function resolveDefaultKnowledgeDbPath() {
|
|
3895
3895
|
return path3.join(os3.homedir(), ".agenr", "knowledge.db");
|
|
3896
3896
|
}
|
|
3897
|
-
var SCORING_SET_KEYS, AUTH_METHOD_DEFINITIONS, AUTH_METHOD_SET, MODEL_TASK_KEYS, DEFAULT_EMBEDDING_PROVIDER, DEFAULT_EMBEDDING_MODEL, DEFAULT_EMBEDDING_DIMENSIONS, DEFAULT_FORGETTING_SCORE_THRESHOLD, DEFAULT_FORGETTING_MAX_AGE_DAYS, DEFAULT_FORGETTING_LOW_SCORE_TRIGGER_COUNT, DEFAULT_SCORING_FTS_BOOST, DEFAULT_SCORING_VECTOR_EXPONENT, DEFAULT_SCORING_IMPORTANCE_FLOOR, DEFAULT_SCORING_FRESHNESS_HIGH_HOURS, DEFAULT_SCORING_FRESHNESS_MEDIUM_HOURS, DEFAULT_SCORING_FRESHNESS_LOW_HOURS, DEFAULT_SCORING_RECENCY_HALFLIFE_PERMANENT, DEFAULT_SCORING_RECENCY_HALFLIFE_TEMPORARY, DEFAULT_SCORING_FRESHNESS_MIN_IMPORTANCE, DEFAULT_SCORING_CONTRADICTION_PENALTY, DEFAULT_SCORING_QUALITY_MIN, DEFAULT_SCORING_QUALITY_MAX, DEFAULT_SCORING_IMPORTANCE_BLEND, DEFAULT_SCORING_RECALL_BLEND, DEFAULT_SCORING_TODO_HALFLIFE_DAYS, DEFAULT_SCORING_TODO_FLOOR_HIGH, DEFAULT_SCORING_TODO_FLOOR_LOW, DEFAULT_CONTRADICTION_ENABLED, DEFAULT_TASK_MODEL, DEFAULT_SURGEON_MODEL, DEFAULT_AUTO_SUPERSEDE_CONFIDENCE, DEFAULT_CONTRADICTION_BLOCKING_THRESHOLD, DEFAULT_CLAIM_EXTRACTION_BATCH_SIZE, MAX_CLAIM_EXTRACTION_BATCH_SIZE, DEFAULT_CLAIM_EXTRACTION_CONCURRENCY, MAX_CLAIM_EXTRACTION_CONCURRENCY,
|
|
3897
|
+
var SCORING_SET_KEYS, AUTH_METHOD_DEFINITIONS, AUTH_METHOD_SET, MODEL_TASK_KEYS, DEFAULT_EMBEDDING_PROVIDER, DEFAULT_EMBEDDING_MODEL, DEFAULT_EMBEDDING_DIMENSIONS, DEFAULT_FORGETTING_SCORE_THRESHOLD, DEFAULT_FORGETTING_MAX_AGE_DAYS, DEFAULT_FORGETTING_LOW_SCORE_TRIGGER_COUNT, DEFAULT_SCORING_FTS_BOOST, DEFAULT_SCORING_VECTOR_EXPONENT, DEFAULT_SCORING_IMPORTANCE_FLOOR, DEFAULT_SCORING_FRESHNESS_HIGH_HOURS, DEFAULT_SCORING_FRESHNESS_MEDIUM_HOURS, DEFAULT_SCORING_FRESHNESS_LOW_HOURS, DEFAULT_SCORING_RECENCY_HALFLIFE_PERMANENT, DEFAULT_SCORING_RECENCY_HALFLIFE_TEMPORARY, DEFAULT_SCORING_FRESHNESS_MIN_IMPORTANCE, DEFAULT_SCORING_CONTRADICTION_PENALTY, DEFAULT_SCORING_QUALITY_MIN, DEFAULT_SCORING_QUALITY_MAX, DEFAULT_SCORING_IMPORTANCE_BLEND, DEFAULT_SCORING_RECALL_BLEND, DEFAULT_SCORING_TODO_HALFLIFE_DAYS, DEFAULT_SCORING_TODO_FLOOR_HIGH, DEFAULT_SCORING_TODO_FLOOR_LOW, DEFAULT_CONTRADICTION_ENABLED, DEFAULT_TASK_MODEL, DEFAULT_SURGEON_MODEL, DEFAULT_AUTO_SUPERSEDE_CONFIDENCE, DEFAULT_CONTRADICTION_BLOCKING_THRESHOLD, DEFAULT_CLAIM_EXTRACTION_BATCH_SIZE, MAX_CLAIM_EXTRACTION_BATCH_SIZE, DEFAULT_CLAIM_EXTRACTION_CONCURRENCY, MAX_CLAIM_EXTRACTION_CONCURRENCY, DEFAULT_SURGEON_CONTEXT_LIMIT, DEFAULT_SURGEON_COST_CAP, DEFAULT_SURGEON_DAILY_COST_CAP, DEFAULT_SURGEON_RETIREMENT_PROTECT_RECALLED_DAYS, DEFAULT_SURGEON_RETIREMENT_PROTECT_MIN_IMPORTANCE, DEFAULT_SURGEON_RETIREMENT_MAX_ACTIONS_PER_RUN, DEFAULT_SURGEON_SKIP_RECENTLY_EVALUATED_DAYS, DEFAULT_SURGEON_DEDUP_MAX_MERGES_PER_RUN, DEFAULT_SURGEON_CONTRADICTIONS_MAX_ACTIONS_PER_RUN;
|
|
3898
3898
|
var init_schema2 = __esm({
|
|
3899
3899
|
"src/shared/infrastructure/config/schema.ts"() {
|
|
3900
3900
|
"use strict";
|
|
@@ -3993,7 +3993,7 @@ var init_schema2 = __esm({
|
|
|
3993
3993
|
MAX_CLAIM_EXTRACTION_BATCH_SIZE = 25;
|
|
3994
3994
|
DEFAULT_CLAIM_EXTRACTION_CONCURRENCY = 5;
|
|
3995
3995
|
MAX_CLAIM_EXTRACTION_CONCURRENCY = 50;
|
|
3996
|
-
|
|
3996
|
+
DEFAULT_SURGEON_CONTEXT_LIMIT = null;
|
|
3997
3997
|
DEFAULT_SURGEON_COST_CAP = 5;
|
|
3998
3998
|
DEFAULT_SURGEON_DAILY_COST_CAP = 15;
|
|
3999
3999
|
DEFAULT_SURGEON_RETIREMENT_PROTECT_RECALLED_DAYS = 14;
|
|
@@ -4650,7 +4650,7 @@ function normalizeContradictionConfig(input) {
|
|
|
4650
4650
|
}
|
|
4651
4651
|
function normalizeSurgeonConfig(input) {
|
|
4652
4652
|
const normalized = {
|
|
4653
|
-
|
|
4653
|
+
contextLimit: DEFAULT_SURGEON_CONTEXT_LIMIT,
|
|
4654
4654
|
costCap: DEFAULT_SURGEON_COST_CAP,
|
|
4655
4655
|
dailyCostCap: DEFAULT_SURGEON_DAILY_COST_CAP,
|
|
4656
4656
|
passes: {
|
|
@@ -4676,8 +4676,12 @@ function normalizeSurgeonConfig(input) {
|
|
|
4676
4676
|
if (typeof record.model === "string" && record.model.trim()) {
|
|
4677
4677
|
normalized.model = record.model.trim();
|
|
4678
4678
|
}
|
|
4679
|
-
if (typeof record.
|
|
4680
|
-
normalized.
|
|
4679
|
+
if (typeof record.contextLimit === "number" && Number.isFinite(record.contextLimit) && record.contextLimit > 0) {
|
|
4680
|
+
normalized.contextLimit = Math.floor(record.contextLimit);
|
|
4681
|
+
} else if (record.contextLimit === null) {
|
|
4682
|
+
normalized.contextLimit = null;
|
|
4683
|
+
} else if (typeof record.budget === "number" && Number.isFinite(record.budget) && record.budget > 0) {
|
|
4684
|
+
normalized.contextLimit = Math.floor(record.budget);
|
|
4681
4685
|
}
|
|
4682
4686
|
if (typeof record.costCap === "number" && Number.isFinite(record.costCap) && record.costCap > 0) {
|
|
4683
4687
|
normalized.costCap = record.costCap;
|
|
@@ -5407,6 +5411,7 @@ __export(config_exports, {
|
|
|
5407
5411
|
AUTH_METHOD_DEFINITIONS: () => AUTH_METHOD_DEFINITIONS,
|
|
5408
5412
|
DEFAULT_CLAIM_EXTRACTION_BATCH_SIZE: () => DEFAULT_CLAIM_EXTRACTION_BATCH_SIZE,
|
|
5409
5413
|
DEFAULT_CLAIM_EXTRACTION_CONCURRENCY: () => DEFAULT_CLAIM_EXTRACTION_CONCURRENCY,
|
|
5414
|
+
DEFAULT_SURGEON_CONTEXT_LIMIT: () => DEFAULT_SURGEON_CONTEXT_LIMIT,
|
|
5410
5415
|
DEFAULT_SURGEON_MODEL: () => DEFAULT_SURGEON_MODEL,
|
|
5411
5416
|
DEFAULT_SURGEON_SKIP_RECENTLY_EVALUATED_DAYS: () => DEFAULT_SURGEON_SKIP_RECENTLY_EVALUATED_DAYS,
|
|
5412
5417
|
DEFAULT_TASK_MODEL: () => DEFAULT_TASK_MODEL,
|