@possumtech/rummy 2.2.1 → 2.3.1
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/package.json +14 -6
- package/service.js +18 -10
- package/src/agent/AgentLoop.js +2 -11
- package/src/agent/ContextAssembler.js +34 -3
- package/src/agent/Entries.js +16 -89
- package/src/agent/ProjectAgent.js +1 -16
- package/src/agent/TurnExecutor.js +12 -52
- package/src/agent/XmlParser.js +30 -117
- package/src/agent/errors.js +3 -22
- package/src/agent/materializeContext.js +3 -11
- package/src/hooks/Hooks.js +0 -29
- package/src/lib/hedberg/hedberg.js +4 -14
- package/src/lib/hedberg/marker.js +15 -59
- package/src/llm/LlmProvider.js +13 -26
- package/src/llm/errors.js +3 -11
- package/src/llm/openaiStream.js +6 -46
- package/src/plugins/ask_user/ask_user.js +12 -17
- package/src/plugins/budget/README.md +46 -8
- package/src/plugins/budget/budget.js +23 -42
- package/src/plugins/cp/cp.js +28 -18
- package/src/plugins/env/env.js +11 -7
- package/src/plugins/error/error.js +8 -37
- package/src/plugins/get/get.js +42 -24
- package/src/plugins/google/google.js +23 -3
- package/src/plugins/helpers.js +34 -50
- package/src/plugins/instructions/README.md +2 -2
- package/src/plugins/instructions/instructions-user.md +1 -1
- package/src/plugins/instructions/instructions.js +19 -6
- package/src/plugins/known/known.js +1 -8
- package/src/plugins/log/log.js +15 -1
- package/src/plugins/mv/mv.js +29 -19
- package/src/plugins/persona/persona.js +4 -4
- package/src/plugins/prompt/README.md +1 -1
- package/src/plugins/prompt/prompt.js +1 -1
- package/src/plugins/rm/rm.js +26 -15
- package/src/plugins/rm/rmDoc.md +0 -2
- package/src/plugins/set/set.js +37 -84
- package/src/plugins/set/setDoc.md +16 -16
- package/src/plugins/sh/sh.js +10 -8
- package/src/plugins/skill/skillDoc.md +1 -1
- package/src/plugins/unknown/README.md +1 -1
- package/src/plugins/unknown/unknown.js +2 -6
- package/src/plugins/update/update.js +3 -2
- package/src/plugins/update/updateDoc.md +1 -1
- package/.env.example +0 -152
- package/.xai.key +0 -1
- package/PLUGINS.md +0 -962
- package/SPEC.md +0 -1897
- package/biome/no-fallbacks.grit +0 -50
- package/gemini.key +0 -1
package/.env.example
DELETED
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
# DO NOT EDIT OR REMOVE!
|
|
2
|
-
# COPY TO ~/.rummy.env or add appropriate
|
|
3
|
-
# environment variables to ~/.bashrc or wherever
|
|
4
|
-
|
|
5
|
-
# This project uses cascading environment variables
|
|
6
|
-
# (environment) > ~/.rummy/.env > ~/.rummy/.env.example
|
|
7
|
-
|
|
8
|
-
# Service Configuration
|
|
9
|
-
RUMMY_PORT=3044
|
|
10
|
-
|
|
11
|
-
# Absolute path, no ~
|
|
12
|
-
# RUMMY_HOME=/home/ubuntu/.rummy
|
|
13
|
-
|
|
14
|
-
RUMMY_DB_PATH=rummy.db
|
|
15
|
-
# SQLite mmap size in MB
|
|
16
|
-
RUMMY_MMAP_MB=0
|
|
17
|
-
|
|
18
|
-
# Agent Loop Limits — per-loop cap (turns within a single loop).
|
|
19
|
-
# No per-run cap; a run can comprise many loops.
|
|
20
|
-
RUMMY_MAX_LOOP_TURNS=999
|
|
21
|
-
# Hard cap on commands per turn — high by design. The real cost
|
|
22
|
-
# ceiling is the Token Budget; per-tool rate limits (e.g.
|
|
23
|
-
# RUMMY_WEB_SEARCH_MAX) bound the expensive tools individually.
|
|
24
|
-
RUMMY_MAX_COMMANDS=99
|
|
25
|
-
# Per-turn cap on <search>. Refusals strike via 429.
|
|
26
|
-
RUMMY_WEB_SEARCH_MAX=1
|
|
27
|
-
# Default candidate count per <search>. Brave caps at 20; the model can
|
|
28
|
-
# still narrow per-call via <search results="N">.
|
|
29
|
-
RUMMY_WEB_SEARCH_RESULTS=20
|
|
30
|
-
RUMMY_MAX_STRIKES=3
|
|
31
|
-
RUMMY_MIN_CYCLES=3
|
|
32
|
-
RUMMY_MAX_CYCLE_PERIOD=4
|
|
33
|
-
# Free turns in an FCRM admin stage (Decomposition or Demotion) before
|
|
34
|
-
# the stagnation strike fires. Turn N+1 in the same admin stage emits a
|
|
35
|
-
# "N+1 turns in current stage" reminder and contributes to the strike
|
|
36
|
-
# streak (3 strikes → MAX_STRIKES → abandon). Distillation and Deployment
|
|
37
|
-
# are exempt — those phases can grind for many turns on hard tasks.
|
|
38
|
-
RUMMY_STAGNATION_FREE_TURNS=3
|
|
39
|
-
|
|
40
|
-
# Hygiene
|
|
41
|
-
# Days to keep completed/aborted runs before purging
|
|
42
|
-
RUMMY_RETENTION_DAYS=31
|
|
43
|
-
|
|
44
|
-
# Timeouts (ms)
|
|
45
|
-
RUMMY_RPC_TIMEOUT=30000
|
|
46
|
-
RUMMY_FETCH_TIMEOUT=300000
|
|
47
|
-
RUMMY_WEB_FETCH_TIMEOUT=300000
|
|
48
|
-
# Test harness — how long AuditClient waits for a single ask/act to reach
|
|
49
|
-
# terminal status. Sized for full-context ingest on large-window models.
|
|
50
|
-
RUMMY_TEST_RUN_TIMEOUT=3600000
|
|
51
|
-
# rummy-cli watchdog — wall-clock budget for a single loop (one ask/act
|
|
52
|
-
# CLI invocation). Overridable per invocation via --RUMMY_LOOP_TIMEOUT=<ms>.
|
|
53
|
-
RUMMY_LOOP_TIMEOUT=86400000
|
|
54
|
-
|
|
55
|
-
# Plugin module load watchdog.
|
|
56
|
-
RUMMY_PLUGINS_LOAD_TIMEOUT=10000
|
|
57
|
-
|
|
58
|
-
# Per-entry storage cap (bytes). Generous by design — rummy is a
|
|
59
|
-
# memory-resident workspace, not a chat buffer — but bounded so a
|
|
60
|
-
# pathological capture (e.g. 100 MB of vim escape codes from a single
|
|
61
|
-
# <sh>) becomes a healthy 413 strike instead of an unbounded write.
|
|
62
|
-
# Enforced at the SQLite layer (entries.body CHECK) and surfaced to
|
|
63
|
-
# the model as an error.log entry the strike system can act on.
|
|
64
|
-
RUMMY_ENTRY_SIZE_MAX=104857600
|
|
65
|
-
|
|
66
|
-
# LLM retry policy: time-bounded exponential backoff with full jitter.
|
|
67
|
-
# DEADLINE is total wall-clock budget for an LLM call across all retries.
|
|
68
|
-
# MAX_BACKOFF caps each inter-attempt sleep so a long deadline doesn't
|
|
69
|
-
# yield 10-minute waits between attempts.
|
|
70
|
-
RUMMY_LLM_DEADLINE=600000
|
|
71
|
-
RUMMY_LLM_MAX_BACKOFF=30000
|
|
72
|
-
|
|
73
|
-
# Debug
|
|
74
|
-
# RUMMY_DEBUG=true
|
|
75
|
-
|
|
76
|
-
# Reasoning request flag forwarded to the LLM provider's `think`
|
|
77
|
-
# parameter (gemma/llama.cpp: think=false skips server-side reasoning;
|
|
78
|
-
# ollama: same). 1 asks the provider to reason and surface reasoning
|
|
79
|
-
# content to rummy.
|
|
80
|
-
#
|
|
81
|
-
# Default 0 because forced reasoning on weak models (e.g. local gemma)
|
|
82
|
-
# burns the n_ctx ceiling on `<think>` blocks and triggers reasoning-
|
|
83
|
-
# runaway strikes. Opt in deliberately, per model.
|
|
84
|
-
#
|
|
85
|
-
# OpenRouter is intentionally orthogonal: rummy.web's openrouter plugin
|
|
86
|
-
# always sends `include_reasoning: true` (relay-level always-on
|
|
87
|
-
# telemetry — we pay the upstream cost regardless, so we keep the
|
|
88
|
-
# reasoning bytes). RUMMY_THINK does not apply there.
|
|
89
|
-
RUMMY_THINK=0
|
|
90
|
-
|
|
91
|
-
# Budget
|
|
92
|
-
# Fraction of context window used as ceiling. 0.9 = 90%, 10% reserved as headroom.
|
|
93
|
-
RUMMY_BUDGET_CEILING=0.9
|
|
94
|
-
# Maximum tokens per known entry. Entries exceeding this are rejected with 413.
|
|
95
|
-
RUMMY_MAX_ENTRY_TOKENS=512
|
|
96
|
-
|
|
97
|
-
# Token Estimation
|
|
98
|
-
# Characters per token. Lower = more conservative (fewer tokens per character).
|
|
99
|
-
# Default 2. Set to 1 for worst-case (1 token per character).
|
|
100
|
-
RUMMY_TOKEN_DIVISOR=2
|
|
101
|
-
|
|
102
|
-
# Model Behavior
|
|
103
|
-
# LLM temperature (0 = deterministic, 0.7 = creative). Client can override per-request.
|
|
104
|
-
RUMMY_TEMPERATURE=0.1
|
|
105
|
-
|
|
106
|
-
# Run Attribute Defaults
|
|
107
|
-
# Per-run attributes (passed in the run-creation set call) trump these.
|
|
108
|
-
# Strict "1" enables; unset / "0" / "" disables. Useful in profile env
|
|
109
|
-
# files (e.g. .env.tbench) layered via --env-file-if-exists.
|
|
110
|
-
#
|
|
111
|
-
# RUMMY_YOLO=1 # auto-accept every proposal (headless / CI / bench)
|
|
112
|
-
# RUMMY_NO_INTERACTION=1 # exclude <ask_user> from the tool list
|
|
113
|
-
# RUMMY_NO_WEB=1 # exclude <search> from the tool list
|
|
114
|
-
# RUMMY_NO_PROPOSALS=1 # exclude <ask_user>/<env>/<sh>
|
|
115
|
-
# RUMMY_NO_REPO=1 # skip rummy.repo scanning (file scan + overview)
|
|
116
|
-
|
|
117
|
-
# Provider Configuration
|
|
118
|
-
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
|
|
119
|
-
# OPENROUTER_API_KEY=
|
|
120
|
-
RUMMY_HTTP_REFERER=https://github.com/possumtech/rummy
|
|
121
|
-
# RUMMY_X_TITLE shows your app name in OpenRouter dashboards/rankings
|
|
122
|
-
RUMMY_X_TITLE=RUMMY
|
|
123
|
-
|
|
124
|
-
# OLLAMA_BASE_URL="http://127.0.0.1:11434"
|
|
125
|
-
|
|
126
|
-
# OPENAI_BASE_URL="http://127.0.0.1:11434"
|
|
127
|
-
# OPENAI_API_KEY=
|
|
128
|
-
|
|
129
|
-
# XAI_BASE_URL="https://api.x.ai/v1"
|
|
130
|
-
# XAI_API_KEY=""
|
|
131
|
-
|
|
132
|
-
# Model Aliases (Optional)
|
|
133
|
-
# First path segment picks the provider plugin; the rest is the
|
|
134
|
-
# provider's own model identifier. OpenRouter is tri-level because
|
|
135
|
-
# its API expects publisher/model; direct providers are bi-level.
|
|
136
|
-
# RUMMY_MODEL_g420="xai/grok-4.20-reasoning-latest"
|
|
137
|
-
# RUMMY_MODEL_grok="xai/grok-4-1-fast-reasoning-latest"
|
|
138
|
-
# RUMMY_MODEL_opus="openrouter/anthropic/claude-opus-4.6"
|
|
139
|
-
# RUMMY_MODEL_gpro="openrouter/google/gemini-3.1-pro-preview"
|
|
140
|
-
# RUMMY_MODEL_gemma="openai/macher.gguf"
|
|
141
|
-
# RUMMY_MODEL_qwen="ollama/qwen:7b"
|
|
142
|
-
|
|
143
|
-
# Necessary for automated testing
|
|
144
|
-
# RUMMY_TEST_MODEL=grok
|
|
145
|
-
|
|
146
|
-
# Web Search
|
|
147
|
-
|
|
148
|
-
# RUMMY_WEB_SEARXNG_URL="http://127.0.0.1:8888"
|
|
149
|
-
|
|
150
|
-
# External plugins: npm i -g <package>, then uncomment
|
|
151
|
-
# RUMMY_PLUGIN_WEB="@possumtech/rummy.web"
|
|
152
|
-
# RUMMY_PLUGIN_REPO="@possumtech/rummy.repo"
|
package/.xai.key
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export XAI_API_KEY="xai-oI0qbXtb0SUCLqgw3qeDPhIytrRs2YuPn3zGIV0l8XSygn1s5M1ZglxfbFHvCJUrIYrIbQvurCzkLpZA"
|