@possumtech/rummy 0.2.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 +55 -0
- package/LICENSE +21 -0
- package/PLUGINS.md +302 -0
- package/README.md +41 -0
- package/SPEC.md +524 -0
- package/lang/en.json +34 -0
- package/migrations/001_initial_schema.sql +226 -0
- package/package.json +54 -0
- package/service.js +143 -0
- package/src/agent/AgentLoop.js +553 -0
- package/src/agent/ContextAssembler.js +29 -0
- package/src/agent/KnownStore.js +254 -0
- package/src/agent/ProjectAgent.js +101 -0
- package/src/agent/ResponseHealer.js +134 -0
- package/src/agent/TurnExecutor.js +457 -0
- package/src/agent/XmlParser.js +247 -0
- package/src/agent/known_checks.sql +42 -0
- package/src/agent/known_queries.sql +80 -0
- package/src/agent/known_store.sql +161 -0
- package/src/agent/messages.js +17 -0
- package/src/agent/prompt_queue.sql +39 -0
- package/src/agent/runs.sql +114 -0
- package/src/agent/schemes.sql +3 -0
- package/src/agent/sessions.sql +51 -0
- package/src/agent/tokens.js +28 -0
- package/src/agent/turns.sql +36 -0
- package/src/hooks/HookRegistry.js +72 -0
- package/src/hooks/Hooks.js +115 -0
- package/src/hooks/PluginContext.js +116 -0
- package/src/hooks/RummyContext.js +181 -0
- package/src/hooks/ToolRegistry.js +83 -0
- package/src/llm/LlmProvider.js +107 -0
- package/src/llm/OllamaClient.js +88 -0
- package/src/llm/OpenAiClient.js +80 -0
- package/src/llm/OpenRouterClient.js +78 -0
- package/src/llm/XaiClient.js +113 -0
- package/src/plugins/ask_user/README.md +18 -0
- package/src/plugins/ask_user/ask_user.js +48 -0
- package/src/plugins/ask_user/docs.md +2 -0
- package/src/plugins/cp/README.md +18 -0
- package/src/plugins/cp/cp.js +55 -0
- package/src/plugins/cp/docs.md +2 -0
- package/src/plugins/current/README.md +14 -0
- package/src/plugins/current/current.js +48 -0
- package/src/plugins/engine/README.md +12 -0
- package/src/plugins/engine/engine.sql +18 -0
- package/src/plugins/engine/turn_context.sql +51 -0
- package/src/plugins/env/README.md +14 -0
- package/src/plugins/env/docs.md +2 -0
- package/src/plugins/env/env.js +32 -0
- package/src/plugins/file/README.md +25 -0
- package/src/plugins/file/file.js +85 -0
- package/src/plugins/get/README.md +19 -0
- package/src/plugins/get/docs.md +6 -0
- package/src/plugins/get/get.js +53 -0
- package/src/plugins/hedberg/README.md +72 -0
- package/src/plugins/hedberg/docs.md +9 -0
- package/src/plugins/hedberg/edits.js +65 -0
- package/src/plugins/hedberg/hedberg.js +89 -0
- package/src/plugins/hedberg/matcher.js +181 -0
- package/src/plugins/hedberg/normalize.js +41 -0
- package/src/plugins/hedberg/patterns.js +452 -0
- package/src/plugins/hedberg/sed.js +48 -0
- package/src/plugins/helpers.js +22 -0
- package/src/plugins/index.js +180 -0
- package/src/plugins/instructions/README.md +11 -0
- package/src/plugins/instructions/instructions.js +37 -0
- package/src/plugins/instructions/preamble.md +12 -0
- package/src/plugins/known/README.md +18 -0
- package/src/plugins/known/docs.md +3 -0
- package/src/plugins/known/known.js +57 -0
- package/src/plugins/mv/README.md +18 -0
- package/src/plugins/mv/docs.md +2 -0
- package/src/plugins/mv/mv.js +56 -0
- package/src/plugins/previous/README.md +15 -0
- package/src/plugins/previous/previous.js +50 -0
- package/src/plugins/progress/README.md +17 -0
- package/src/plugins/progress/progress.js +44 -0
- package/src/plugins/prompt/README.md +16 -0
- package/src/plugins/prompt/prompt.js +45 -0
- package/src/plugins/rm/README.md +18 -0
- package/src/plugins/rm/docs.md +4 -0
- package/src/plugins/rm/rm.js +51 -0
- package/src/plugins/rpc/README.md +45 -0
- package/src/plugins/rpc/rpc.js +587 -0
- package/src/plugins/set/README.md +32 -0
- package/src/plugins/set/docs.md +4 -0
- package/src/plugins/set/set.js +268 -0
- package/src/plugins/sh/README.md +18 -0
- package/src/plugins/sh/docs.md +2 -0
- package/src/plugins/sh/sh.js +32 -0
- package/src/plugins/skills/README.md +25 -0
- package/src/plugins/skills/skills.js +175 -0
- package/src/plugins/store/README.md +20 -0
- package/src/plugins/store/docs.md +5 -0
- package/src/plugins/store/store.js +52 -0
- package/src/plugins/summarize/README.md +18 -0
- package/src/plugins/summarize/docs.md +4 -0
- package/src/plugins/summarize/summarize.js +24 -0
- package/src/plugins/telemetry/README.md +19 -0
- package/src/plugins/telemetry/rpc_log.sql +28 -0
- package/src/plugins/telemetry/telemetry.js +186 -0
- package/src/plugins/unknown/README.md +23 -0
- package/src/plugins/unknown/docs.md +5 -0
- package/src/plugins/unknown/unknown.js +31 -0
- package/src/plugins/update/README.md +18 -0
- package/src/plugins/update/docs.md +4 -0
- package/src/plugins/update/update.js +24 -0
- package/src/server/ClientConnection.js +228 -0
- package/src/server/RpcRegistry.js +52 -0
- package/src/server/SocketServer.js +43 -0
- package/src/sql/file_constraints.sql +15 -0
- package/src/sql/functions/countTokens.js +7 -0
- package/src/sql/functions/hedmatch.js +8 -0
- package/src/sql/functions/hedreplace.js +8 -0
- package/src/sql/functions/hedsearch.js +8 -0
- package/src/sql/functions/schemeOf.js +7 -0
- package/src/sql/functions/slugify.js +6 -0
- package/src/sql/v_model_context.sql +101 -0
- package/src/sql/v_run_log.sql +23 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
-- INIT: create_v_model_context
|
|
2
|
+
CREATE VIEW IF NOT EXISTS v_model_context AS
|
|
3
|
+
WITH
|
|
4
|
+
classified AS (
|
|
5
|
+
SELECT
|
|
6
|
+
ke.run_id
|
|
7
|
+
, ke.id
|
|
8
|
+
, ke.path
|
|
9
|
+
, ke.body
|
|
10
|
+
, ke.scheme
|
|
11
|
+
, ke.state
|
|
12
|
+
, ke.turn
|
|
13
|
+
, ke.updated_at
|
|
14
|
+
, ke.attributes
|
|
15
|
+
, ke.tokens AS tokens_full
|
|
16
|
+
, CASE
|
|
17
|
+
-- Proposed entries hidden until resolved
|
|
18
|
+
WHEN ke.state = 'proposed' THEN NULL
|
|
19
|
+
-- Audit schemes (model_visible = 0) hidden
|
|
20
|
+
WHEN s.model_visible = 0 THEN NULL
|
|
21
|
+
-- State IS fidelity for visible entries
|
|
22
|
+
WHEN ke.state IN ('full', 'summary', 'index') THEN ke.state
|
|
23
|
+
-- Stored entries hidden (retrievable via <read>)
|
|
24
|
+
WHEN ke.state = 'stored' THEN NULL
|
|
25
|
+
-- Result/structural states are visible at full fidelity
|
|
26
|
+
WHEN ke.state IN ('pass', 'error', 'warn', 'pattern', 'read', 'info', 'summary') THEN 'full'
|
|
27
|
+
ELSE NULL
|
|
28
|
+
END AS fidelity
|
|
29
|
+
FROM known_entries AS ke
|
|
30
|
+
JOIN schemes AS s ON s.name = COALESCE(ke.scheme, 'file')
|
|
31
|
+
WHERE ke.state NOT IN ('proposed')
|
|
32
|
+
),
|
|
33
|
+
projected AS (
|
|
34
|
+
SELECT
|
|
35
|
+
run_id
|
|
36
|
+
, id
|
|
37
|
+
, path
|
|
38
|
+
, scheme
|
|
39
|
+
, state
|
|
40
|
+
, fidelity
|
|
41
|
+
, turn
|
|
42
|
+
, updated_at
|
|
43
|
+
, attributes
|
|
44
|
+
, CASE
|
|
45
|
+
WHEN fidelity IN ('full', 'summary') THEN body
|
|
46
|
+
ELSE ''
|
|
47
|
+
END AS body
|
|
48
|
+
, CASE
|
|
49
|
+
WHEN scheme IS NULL AND state IN ('full', 'summary') THEN 'file'
|
|
50
|
+
WHEN scheme IS NULL THEN 'file_index'
|
|
51
|
+
WHEN scheme IN ('http', 'https') AND state IN ('full', 'summary') THEN 'file'
|
|
52
|
+
WHEN scheme IN ('http', 'https') THEN 'file_index'
|
|
53
|
+
WHEN scheme IN ('known', 'skill') AND state = 'full' THEN 'known'
|
|
54
|
+
WHEN scheme IN ('known', 'skill') THEN 'known_index'
|
|
55
|
+
WHEN scheme = 'unknown' THEN 'unknown'
|
|
56
|
+
WHEN scheme IN ('ask', 'act', 'progress') THEN 'prompt'
|
|
57
|
+
WHEN scheme = 'summarize' THEN 'structural'
|
|
58
|
+
WHEN scheme = 'update' THEN 'structural'
|
|
59
|
+
WHEN scheme = 'tool' THEN 'tool'
|
|
60
|
+
ELSE 'result'
|
|
61
|
+
END AS category
|
|
62
|
+
FROM classified
|
|
63
|
+
WHERE fidelity IS NOT NULL
|
|
64
|
+
)
|
|
65
|
+
SELECT
|
|
66
|
+
run_id
|
|
67
|
+
, path
|
|
68
|
+
, scheme
|
|
69
|
+
, fidelity
|
|
70
|
+
, state
|
|
71
|
+
, body
|
|
72
|
+
, attributes
|
|
73
|
+
, category
|
|
74
|
+
, turn
|
|
75
|
+
, ROW_NUMBER() OVER (
|
|
76
|
+
PARTITION BY run_id
|
|
77
|
+
ORDER BY
|
|
78
|
+
CASE category
|
|
79
|
+
WHEN 'tool' THEN 1
|
|
80
|
+
WHEN 'known' THEN 2
|
|
81
|
+
WHEN 'known_index' THEN 2
|
|
82
|
+
WHEN 'file_index' THEN 2
|
|
83
|
+
WHEN 'file' THEN 2
|
|
84
|
+
WHEN 'result' THEN 3
|
|
85
|
+
WHEN 'structural' THEN 4
|
|
86
|
+
WHEN 'unknown' THEN 5
|
|
87
|
+
WHEN 'prompt' THEN 6
|
|
88
|
+
ELSE 6
|
|
89
|
+
END
|
|
90
|
+
, CASE scheme WHEN 'skill' THEN 0 ELSE 1 END
|
|
91
|
+
, CASE state
|
|
92
|
+
WHEN 'index' THEN 0
|
|
93
|
+
WHEN 'summary' THEN 1
|
|
94
|
+
ELSE 2
|
|
95
|
+
END
|
|
96
|
+
, turn
|
|
97
|
+
, updated_at
|
|
98
|
+
, id
|
|
99
|
+
) AS ordinal
|
|
100
|
+
, countTokens(body) AS tokens
|
|
101
|
+
FROM projected;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
-- INIT: create_v_run_log
|
|
2
|
+
CREATE VIEW IF NOT EXISTS v_run_log AS
|
|
3
|
+
SELECT
|
|
4
|
+
ke.run_id
|
|
5
|
+
, ke.path
|
|
6
|
+
, ke.body
|
|
7
|
+
, ke.state AS status
|
|
8
|
+
, COALESCE(ke.scheme, ke.state) AS tool
|
|
9
|
+
, COALESCE(
|
|
10
|
+
json_extract(ke.attributes, '$.command')
|
|
11
|
+
, json_extract(ke.attributes, '$.file')
|
|
12
|
+
, json_extract(ke.attributes, '$.path')
|
|
13
|
+
, json_extract(ke.attributes, '$.question')
|
|
14
|
+
, ''
|
|
15
|
+
) AS target
|
|
16
|
+
FROM known_entries AS ke
|
|
17
|
+
JOIN schemes AS s ON s.name = COALESCE(ke.scheme, 'file')
|
|
18
|
+
WHERE
|
|
19
|
+
ke.scheme IS NOT NULL
|
|
20
|
+
AND ke.state != 'proposed'
|
|
21
|
+
AND s.category NOT IN ('knowledge', 'file')
|
|
22
|
+
AND ke.scheme NOT IN ('system', 'reasoning', 'model', 'content')
|
|
23
|
+
ORDER BY ke.id;
|