@possumtech/rummy 0.5.0 → 2.0.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/.env.example +42 -5
- package/PLUGINS.md +389 -194
- package/README.md +25 -8
- package/SPEC.md +934 -373
- package/bin/demo.js +166 -0
- package/bin/rummy.js +9 -3
- package/biome/no-fallbacks.grit +50 -0
- package/lang/en.json +2 -2
- package/migrations/001_initial_schema.sql +88 -37
- package/package.json +13 -11
- package/scriptify/ask_run.js +77 -0
- package/service.js +50 -9
- package/src/agent/AgentLoop.js +476 -335
- package/src/agent/ContextAssembler.js +4 -4
- package/src/agent/Entries.js +676 -0
- package/src/agent/ProjectAgent.js +30 -18
- package/src/agent/TurnExecutor.js +232 -421
- package/src/agent/XmlParser.js +99 -33
- package/src/agent/budget.js +56 -0
- package/src/agent/errors.js +22 -0
- package/src/agent/httpStatus.js +39 -0
- package/src/agent/known_checks.sql +8 -4
- package/src/agent/known_queries.sql +9 -13
- package/src/agent/known_store.sql +280 -125
- package/src/agent/materializeContext.js +104 -0
- package/src/agent/runs.sql +29 -7
- package/src/agent/schemes.sql +14 -3
- package/src/agent/tokens.js +6 -0
- package/src/agent/turns.sql +9 -9
- package/src/hooks/HookRegistry.js +6 -5
- package/src/hooks/Hooks.js +44 -3
- package/src/hooks/PluginContext.js +29 -21
- package/src/{server → hooks}/RpcRegistry.js +2 -1
- package/src/hooks/RummyContext.js +139 -35
- package/src/hooks/ToolRegistry.js +21 -16
- package/src/llm/LlmProvider.js +66 -89
- package/src/llm/errors.js +21 -0
- package/src/llm/retry.js +63 -0
- package/src/plugins/ask_user/README.md +1 -1
- package/src/plugins/ask_user/ask_user.js +37 -12
- package/src/plugins/ask_user/ask_userDoc.js +2 -25
- package/src/plugins/ask_user/ask_userDoc.md +10 -0
- package/src/plugins/budget/README.md +27 -25
- package/src/plugins/budget/budget.js +306 -88
- package/src/plugins/cp/README.md +2 -2
- package/src/plugins/cp/cp.js +29 -11
- package/src/plugins/cp/cpDoc.js +2 -15
- package/src/plugins/cp/cpDoc.md +7 -0
- package/src/plugins/engine/README.md +2 -2
- package/src/plugins/engine/engine.sql +4 -4
- package/src/plugins/engine/turn_context.sql +10 -10
- package/src/plugins/env/README.md +20 -5
- package/src/plugins/env/env.js +45 -6
- package/src/plugins/env/envDoc.js +2 -23
- package/src/plugins/env/envDoc.md +13 -0
- package/src/plugins/error/README.md +16 -0
- package/src/plugins/error/error.js +151 -0
- package/src/plugins/file/README.md +6 -6
- package/src/plugins/file/file.js +15 -2
- package/src/plugins/get/README.md +1 -1
- package/src/plugins/get/get.js +103 -48
- package/src/plugins/get/getDoc.js +2 -32
- package/src/plugins/get/getDoc.md +36 -0
- package/src/plugins/hedberg/README.md +1 -2
- package/src/plugins/hedberg/hedberg.js +8 -4
- package/src/plugins/hedberg/matcher.js +16 -17
- package/src/plugins/hedberg/normalize.js +0 -48
- package/src/plugins/helpers.js +42 -2
- package/src/plugins/index.js +146 -123
- package/src/plugins/instructions/README.md +35 -9
- package/src/plugins/instructions/instructions.js +244 -9
- package/src/plugins/instructions/instructions.md +33 -0
- package/src/plugins/instructions/instructions_104.md +7 -0
- package/src/plugins/instructions/instructions_105.md +38 -0
- package/src/plugins/instructions/instructions_106.md +21 -0
- package/src/plugins/instructions/instructions_107.md +10 -0
- package/src/plugins/instructions/instructions_108.md +0 -0
- package/src/plugins/instructions/protocol.js +12 -0
- package/src/plugins/known/README.md +2 -2
- package/src/plugins/known/known.js +68 -36
- package/src/plugins/known/knownDoc.js +2 -17
- package/src/plugins/known/knownDoc.md +8 -0
- package/src/plugins/log/README.md +48 -0
- package/src/plugins/log/log.js +129 -0
- package/src/plugins/mv/README.md +2 -2
- package/src/plugins/mv/mv.js +55 -22
- package/src/plugins/mv/mvDoc.js +2 -18
- package/src/plugins/mv/mvDoc.md +10 -0
- package/src/plugins/ollama/README.md +15 -0
- package/src/{llm/OllamaClient.js → plugins/ollama/ollama.js} +40 -18
- package/src/plugins/openai/README.md +17 -0
- package/src/plugins/openai/openai.js +120 -0
- package/src/plugins/openrouter/README.md +27 -0
- package/src/plugins/openrouter/openrouter.js +121 -0
- package/src/plugins/persona/README.md +20 -0
- package/src/plugins/persona/persona.js +9 -16
- package/src/plugins/policy/README.md +21 -0
- package/src/plugins/policy/policy.js +29 -14
- package/src/plugins/prompt/README.md +1 -1
- package/src/plugins/prompt/prompt.js +64 -16
- package/src/plugins/rm/README.md +1 -1
- package/src/plugins/rm/rm.js +56 -12
- package/src/plugins/rm/rmDoc.js +2 -20
- package/src/plugins/rm/rmDoc.md +13 -0
- package/src/plugins/rpc/README.md +2 -2
- package/src/plugins/rpc/rpc.js +525 -296
- package/src/plugins/set/README.md +1 -1
- package/src/plugins/set/set.js +318 -75
- package/src/plugins/set/setDoc.js +2 -35
- package/src/plugins/set/setDoc.md +22 -0
- package/src/plugins/sh/README.md +28 -5
- package/src/plugins/sh/sh.js +50 -6
- package/src/plugins/sh/shDoc.js +2 -23
- package/src/plugins/sh/shDoc.md +13 -0
- package/src/plugins/skill/README.md +23 -0
- package/src/plugins/skill/skill.js +14 -18
- package/src/plugins/stream/README.md +101 -0
- package/src/plugins/stream/stream.js +290 -0
- package/src/plugins/telemetry/README.md +1 -1
- package/src/plugins/telemetry/telemetry.js +129 -80
- package/src/plugins/think/README.md +1 -1
- package/src/plugins/think/think.js +12 -0
- package/src/plugins/think/thinkDoc.js +2 -15
- package/src/plugins/think/thinkDoc.md +7 -0
- package/src/plugins/unknown/README.md +3 -3
- package/src/plugins/unknown/unknown.js +47 -19
- package/src/plugins/unknown/unknownDoc.js +2 -21
- package/src/plugins/unknown/unknownDoc.md +11 -0
- package/src/plugins/update/README.md +1 -1
- package/src/plugins/update/update.js +83 -5
- package/src/plugins/update/updateDoc.js +2 -30
- package/src/plugins/update/updateDoc.md +8 -0
- package/src/plugins/xai/README.md +23 -0
- package/src/{llm/XaiClient.js → plugins/xai/xai.js} +58 -37
- package/src/plugins/yolo/yolo.js +192 -0
- package/src/server/ClientConnection.js +64 -37
- package/src/server/SocketServer.js +23 -10
- package/src/server/protocol.js +11 -0
- package/src/sql/v_model_context.sql +27 -31
- package/src/sql/v_run_log.sql +9 -14
- package/EXCEPTIONS.md +0 -46
- package/FIDELITY_CONTRACT.md +0 -172
- package/src/agent/KnownStore.js +0 -337
- package/src/agent/ResponseHealer.js +0 -241
- package/src/llm/OpenAiClient.js +0 -100
- package/src/llm/OpenRouterClient.js +0 -100
- package/src/plugins/budget/recovery.js +0 -47
- package/src/plugins/instructions/preamble.md +0 -45
- package/src/plugins/performed/README.md +0 -15
- package/src/plugins/performed/performed.js +0 -45
- package/src/plugins/previous/README.md +0 -16
- package/src/plugins/previous/previous.js +0 -56
- package/src/plugins/progress/README.md +0 -16
- package/src/plugins/progress/progress.js +0 -43
- package/src/plugins/summarize/README.md +0 -19
- package/src/plugins/summarize/summarize.js +0 -32
- package/src/plugins/summarize/summarizeDoc.js +0 -27
package/.env.example
CHANGED
|
@@ -17,13 +17,17 @@ RUMMY_MMAP_MB=0
|
|
|
17
17
|
|
|
18
18
|
# Agent Loop Limits
|
|
19
19
|
RUMMY_MAX_TURNS=99
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
# Hard cap on commands per turn — high by design. The real cost
|
|
21
|
+
# ceiling is the Token Budget; per-tool rate limits (e.g.
|
|
22
|
+
# RUMMY_WEB_SEARCH_MAX) bound the expensive tools individually.
|
|
23
|
+
RUMMY_MAX_COMMANDS=99
|
|
24
|
+
# Per-turn cap on <search>. Refusals strike via 429.
|
|
25
|
+
RUMMY_WEB_SEARCH_MAX=1
|
|
22
26
|
RUMMY_MAX_STALLS=3
|
|
27
|
+
RUMMY_MAX_STRIKES=3
|
|
23
28
|
RUMMY_MIN_CYCLES=3
|
|
24
29
|
RUMMY_MAX_CYCLE_PERIOD=4
|
|
25
30
|
RUMMY_MAX_UPDATE_REPEATS=3
|
|
26
|
-
RUMMY_MAX_PATH_STAGNATION=5
|
|
27
31
|
|
|
28
32
|
# Hygiene
|
|
29
33
|
# Days to keep completed/aborted runs before purging
|
|
@@ -32,6 +36,16 @@ RUMMY_RETENTION_DAYS=31
|
|
|
32
36
|
# Timeouts (ms)
|
|
33
37
|
RUMMY_RPC_TIMEOUT=30000
|
|
34
38
|
RUMMY_FETCH_TIMEOUT=300000
|
|
39
|
+
# Test harness — how long AuditClient waits for a single ask/act to reach
|
|
40
|
+
# terminal status. Sized for full-context ingest on large-window models.
|
|
41
|
+
RUMMY_TEST_RUN_TIMEOUT=3600000
|
|
42
|
+
|
|
43
|
+
# LLM retry policy: time-bounded exponential backoff with full jitter.
|
|
44
|
+
# DEADLINE is total wall-clock budget for an LLM call across all retries.
|
|
45
|
+
# MAX_BACKOFF caps each inter-attempt sleep so a long deadline doesn't
|
|
46
|
+
# yield 10-minute waits between attempts.
|
|
47
|
+
RUMMY_LLM_DEADLINE_MS=600000
|
|
48
|
+
RUMMY_LLM_MAX_BACKOFF_MS=30000
|
|
35
49
|
|
|
36
50
|
# Debug
|
|
37
51
|
# RUMMY_DEBUG=true
|
|
@@ -55,6 +69,17 @@ RUMMY_TOKEN_DIVISOR=2
|
|
|
55
69
|
# LLM temperature (0 = deterministic, 0.7 = creative). Client can override per-request.
|
|
56
70
|
RUMMY_TEMPERATURE=0.5
|
|
57
71
|
|
|
72
|
+
# Run Attribute Defaults
|
|
73
|
+
# Per-run attributes (passed in the run-creation set call) trump these.
|
|
74
|
+
# Strict "1" enables; unset / "0" / "" disables. Useful in profile env
|
|
75
|
+
# files (e.g. .env.tbench) layered via --env-file-if-exists.
|
|
76
|
+
#
|
|
77
|
+
# RUMMY_YOLO=1 # auto-accept every proposal (headless / CI / bench)
|
|
78
|
+
# RUMMY_NO_INTERACTION=1 # exclude <ask_user> from the tool list
|
|
79
|
+
# RUMMY_NO_WEB=1 # exclude <search> from the tool list
|
|
80
|
+
# RUMMY_NO_PROPOSALS=1 # exclude <ask_user>/<env>/<sh>
|
|
81
|
+
# RUMMY_NO_REPO=1 # skip rummy.repo scanning (file scan + overview)
|
|
82
|
+
|
|
58
83
|
# Provider Configuration
|
|
59
84
|
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
|
|
60
85
|
# OPENROUTER_API_KEY=
|
|
@@ -71,15 +96,27 @@ RUMMY_X_TITLE=RUMMY
|
|
|
71
96
|
# XAI_API_KEY=""
|
|
72
97
|
|
|
73
98
|
# Model Aliases (Optional)
|
|
74
|
-
#
|
|
75
|
-
#
|
|
99
|
+
# First path segment picks the provider plugin; the rest is the
|
|
100
|
+
# provider's own model identifier. OpenRouter is tri-level because
|
|
101
|
+
# its API expects publisher/model; direct providers are bi-level.
|
|
102
|
+
# RUMMY_MODEL_g420="xai/grok-4.20-reasoning-latest"
|
|
103
|
+
# RUMMY_MODEL_grok="xai/grok-4-1-fast-reasoning-latest"
|
|
104
|
+
# RUMMY_MODEL_opus="openrouter/anthropic/claude-opus-4.6"
|
|
105
|
+
# RUMMY_MODEL_gpro="openrouter/google/gemini-3.1-pro-preview"
|
|
106
|
+
# RUMMY_MODEL_gemma="openai/gemma-4-26B-A4B-it-UD-Q3_K_XL.gguf"
|
|
107
|
+
# RUMMY_MODEL_qwen="ollama/qwen:7b"
|
|
76
108
|
|
|
77
109
|
# Necessary for automated testing
|
|
78
110
|
# RUMMY_TEST_MODEL=grok
|
|
79
111
|
|
|
80
112
|
# Web Search
|
|
113
|
+
|
|
114
|
+
# RUMMY_SEARCH="searxng"
|
|
81
115
|
# RUMMY_SEARXNG_URL="http://127.0.0.1:8888"
|
|
82
116
|
|
|
117
|
+
# RUMMY_SEARCH="brave"
|
|
118
|
+
# BRAVE_API_KEY=""
|
|
119
|
+
|
|
83
120
|
# External plugins: npm i -g <package>, then uncomment
|
|
84
121
|
# RUMMY_PLUGIN_WEB="@possumtech/rummy.web"
|
|
85
122
|
# RUMMY_PLUGIN_REPO="@possumtech/rummy.repo"
|