@femtomc/mu-agent 26.2.106 → 26.2.108
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 +41 -21
- package/assets/mu-tui-logo.png +0 -0
- package/dist/extensions/index.d.ts +1 -1
- package/dist/extensions/index.d.ts.map +1 -1
- package/dist/extensions/index.js +1 -1
- package/dist/extensions/mu-command-dispatcher.d.ts +0 -1
- package/dist/extensions/mu-command-dispatcher.d.ts.map +1 -1
- package/dist/extensions/mu-command-dispatcher.js +5 -42
- package/dist/extensions/mu-operator.js +2 -2
- package/dist/extensions/mu-serve.js +2 -2
- package/dist/extensions/ui.d.ts +4 -0
- package/dist/extensions/ui.d.ts.map +1 -0
- package/dist/extensions/ui.js +1055 -0
- package/dist/operator.d.ts +93 -255
- package/dist/operator.d.ts.map +1 -1
- package/dist/operator.js +41 -32
- package/package.json +33 -33
- package/prompts/skills/automation/SKILL.md +25 -0
- package/prompts/skills/{crons → automation/crons}/SKILL.md +2 -2
- package/prompts/skills/{heartbeats → automation/heartbeats}/SKILL.md +2 -2
- package/prompts/skills/core/SKILL.md +28 -0
- package/prompts/skills/{code-mode → core/code-mode}/SKILL.md +1 -1
- package/prompts/skills/{memory → core/memory}/SKILL.md +2 -2
- package/prompts/skills/{mu → core/mu}/SKILL.md +52 -9
- package/prompts/skills/{tmux → core/tmux}/SKILL.md +1 -1
- package/prompts/skills/messaging/SKILL.md +27 -0
- package/prompts/skills/subagents/SKILL.md +93 -243
- package/prompts/skills/{control-flow → subagents/control-flow}/SKILL.md +122 -17
- package/prompts/skills/subagents/execution/SKILL.md +428 -0
- package/prompts/skills/{model-routing → subagents/model-routing}/SKILL.md +179 -19
- package/prompts/skills/subagents/planning/SKILL.md +393 -0
- package/prompts/skills/{orchestration → subagents/protocol}/SKILL.md +7 -10
- package/prompts/skills/writing/SKILL.md +3 -2
- package/dist/extensions/hud.d.ts +0 -4
- package/dist/extensions/hud.d.ts.map +0 -1
- package/dist/extensions/hud.js +0 -483
- package/prompts/skills/hud/SKILL.md +0 -205
- package/prompts/skills/planning/SKILL.md +0 -244
- /package/prompts/skills/{setup-discord → messaging/setup-discord}/SKILL.md +0 -0
- /package/prompts/skills/{setup-neovim → messaging/setup-neovim}/SKILL.md +0 -0
- /package/prompts/skills/{setup-slack → messaging/setup-slack}/SKILL.md +0 -0
- /package/prompts/skills/{setup-telegram → messaging/setup-telegram}/SKILL.md +0 -0
package/package.json
CHANGED
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
2
|
+
"name": "@femtomc/mu-agent",
|
|
3
|
+
"version": "26.2.108",
|
|
4
|
+
"description": "Shared operator runtime for mu assistant sessions and serve extensions.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"mu",
|
|
7
|
+
"agent",
|
|
8
|
+
"runtime",
|
|
9
|
+
"chat",
|
|
10
|
+
"extensions"
|
|
11
|
+
],
|
|
12
|
+
"type": "module",
|
|
13
|
+
"main": "./dist/index.js",
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"types": "./dist/index.d.ts",
|
|
18
|
+
"default": "./dist/index.js"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"dist/**",
|
|
23
|
+
"assets/**",
|
|
24
|
+
"prompts/**",
|
|
25
|
+
"themes/**"
|
|
26
|
+
],
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@femtomc/mu-core": "26.2.108",
|
|
29
|
+
"@mariozechner/pi-agent-core": "^0.54.2",
|
|
30
|
+
"@mariozechner/pi-ai": "^0.54.2",
|
|
31
|
+
"@mariozechner/pi-coding-agent": "^0.54.2",
|
|
32
|
+
"@mariozechner/pi-tui": "^0.54.2",
|
|
33
|
+
"zod": "^4.1.9"
|
|
34
|
+
}
|
|
35
35
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: automation
|
|
3
|
+
description: "Meta-skill for durable and wall-clock automation. Routes to heartbeats and crons for recurring execution control."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# automation
|
|
7
|
+
|
|
8
|
+
Use this meta-skill when the user wants recurring automation, scheduled execution, or scheduler diagnostics.
|
|
9
|
+
|
|
10
|
+
## Subskills
|
|
11
|
+
|
|
12
|
+
- `heartbeats` — durable wake-loop programs that run one bounded pass per tick.
|
|
13
|
+
- `crons` — wall-clock scheduling (`at`, `every`, cron expressions) and lifecycle control.
|
|
14
|
+
|
|
15
|
+
## Selection guide
|
|
16
|
+
|
|
17
|
+
1. Use `heartbeats` for state-driven wake loops and short recurring supervision.
|
|
18
|
+
2. Use `crons` for explicit wall-clock schedules and calendar-style timing.
|
|
19
|
+
3. Pair automation with `subagents` stack skills (`protocol`, `execution`, etc.) when the workload is issue-DAG driven.
|
|
20
|
+
|
|
21
|
+
## Common patterns
|
|
22
|
+
|
|
23
|
+
- **Durable Orchestration**: Create a heartbeat (`heartbeats`) that runs one bounded `execution` pass per tick to supervise a `subagents` DAG over time, keeping the main chat clear.
|
|
24
|
+
- **Scheduled Maintenance / Memory Update**: Set up a cron job (`crons`) to periodically invoke `memory` to rebuild indexes, fetch new docs, or clean up obsolete logs on a schedule.
|
|
25
|
+
- **Continuous Diagnostics**: A heartbeat that periodically tails application logs or runs bounded check scripts locally. If a failure condition is met, the wake loop exits cleanly and notifies the user via the active channel.
|
|
@@ -152,10 +152,10 @@ post concise summary, then exit.
|
|
|
152
152
|
|
|
153
153
|
For DAG execution workloads, combine with:
|
|
154
154
|
- `planning`
|
|
155
|
-
- `
|
|
155
|
+
- `protocol`
|
|
156
156
|
- `control-flow` (when explicit loop/termination policy is required)
|
|
157
157
|
- `model-routing` (when per-issue model/provider/thinking policy is required)
|
|
158
|
-
- `
|
|
158
|
+
- `execution`
|
|
159
159
|
- `heartbeats` (for short-cadence wake loops)
|
|
160
160
|
|
|
161
161
|
## Diagnostics and recovery
|
|
@@ -145,10 +145,10 @@ packet mechanics, raw issue-ID lists). Include them only when diagnosing a block
|
|
|
145
145
|
|
|
146
146
|
For hierarchical DAG execution, pair this skill with:
|
|
147
147
|
- `planning`
|
|
148
|
-
- `
|
|
148
|
+
- `protocol`
|
|
149
149
|
- `control-flow` (when explicit loop/termination policy is required)
|
|
150
150
|
- `model-routing` (when per-issue model/provider/thinking policy is required)
|
|
151
|
-
- `
|
|
151
|
+
- `execution`
|
|
152
152
|
|
|
153
153
|
For wall-clock scheduling semantics (`at`, `every`, `cron`), use `crons`.
|
|
154
154
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: core
|
|
3
|
+
description: "Meta-skill for core mu operating primitives. Routes to mu, memory, tmux, and code-mode based on task shape."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# core
|
|
7
|
+
|
|
8
|
+
Use this meta-skill when the user asks for general `mu` operation guidance and you need to pick the correct foundational skill.
|
|
9
|
+
|
|
10
|
+
## Subskills
|
|
11
|
+
|
|
12
|
+
- `mu` — default CLI-first operating workflow (inspect, mutate, verify, handoff).
|
|
13
|
+
- `memory` — prior-context retrieval, timeline reconstruction, and memory-index maintenance.
|
|
14
|
+
- `tmux` — persistent terminal/session substrate for bounded command execution and fan-out.
|
|
15
|
+
- `code-mode` — tmux-backed REPL loops for iterative execution and context compression.
|
|
16
|
+
|
|
17
|
+
## Selection guide
|
|
18
|
+
|
|
19
|
+
1. Start with `mu` for most day-to-day operator work.
|
|
20
|
+
2. Add `memory` when prior context or timeline anchors are required.
|
|
21
|
+
3. Add `tmux` when durable shell state or parallel worker shells are needed.
|
|
22
|
+
4. Add `code-mode` when solving by live execution is cheaper than chat-only reasoning.
|
|
23
|
+
|
|
24
|
+
## Common patterns
|
|
25
|
+
|
|
26
|
+
- **Bounded investigation**: Use `mu` commands (`get`, `read`, `health`) to inspect current state, then use `memory` to find "when did this last work?" before attempting a fix.
|
|
27
|
+
- **Context compression**: If a user asks for complex debugging that involves running code and printing huge errors, route to `code-mode`. The agent can spin up a REPL, iterate on a fix offline, and return only the root cause to the chat.
|
|
28
|
+
- **Parallel fan-out**: If a command takes a long time, or needs to run across multiple directories, route to `tmux` to spawn parallel worker shells, keep them running in the background, and periodically read their output.
|
|
@@ -112,7 +112,7 @@ tmux new-session -d -s mu-code-sh "bash --noprofile --norc -i"
|
|
|
112
112
|
## Integration with other mu skills
|
|
113
113
|
|
|
114
114
|
- Use with `planning` when a plan step needs exploratory coding.
|
|
115
|
-
- Use with `
|
|
115
|
+
- Use with `protocol`/`execution` by assigning one tmux session per worker.
|
|
116
116
|
- Use with `control-flow` for explicit retry/termination policy around code passes.
|
|
117
117
|
- Use with `heartbeats`/`crons` when bounded code passes should run on schedule.
|
|
118
118
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: memory
|
|
3
|
-
description: "Runs cross-store memory retrieval and index maintenance workflows with bounded filters and timeline anchors. Use when querying
|
|
3
|
+
description: "Runs cross-store memory retrieval and index maintenance workflows with bounded filters and timeline anchors. Use when querying prior context or repairing memory index health."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# memory
|
|
7
7
|
|
|
8
|
-
Use this skill when the user asks for
|
|
8
|
+
Use this skill when the user asks for prior-context lookup, timeline reconstruction,
|
|
9
9
|
or memory index diagnostics.
|
|
10
10
|
|
|
11
11
|
## Contents
|
|
@@ -14,6 +14,7 @@ run focused execution loops, and hand off to specialized skills when needed.
|
|
|
14
14
|
- [CLI capability map](#cli-capability-map)
|
|
15
15
|
- [Default bounded investigation loop](#default-bounded-investigation-loop)
|
|
16
16
|
- [Common mutation and diagnostics patterns](#common-mutation-and-diagnostics-patterns)
|
|
17
|
+
- [Reference `/answer` flow (mu_ui-only)](#reference-answer-flow-mu_ui-only)
|
|
17
18
|
- [Session, serve, and one-shot surfaces](#session-serve-and-one-shot-surfaces)
|
|
18
19
|
- [Durable automation handoff](#durable-automation-handoff)
|
|
19
20
|
- [Evaluation scenarios](#evaluation-scenarios)
|
|
@@ -141,6 +142,37 @@ mu store tail cp_operator_turns --limit 20 --pretty
|
|
|
141
142
|
mu replay <issue-id-or-log-path>
|
|
142
143
|
```
|
|
143
144
|
|
|
145
|
+
## Reference `/answer` flow (mu_ui-only)
|
|
146
|
+
|
|
147
|
+
Use this as the canonical interactive-skill pattern. Keep all behavior in skill logic and
|
|
148
|
+
`mu_ui` documents/events; do not add adapter- or extension-specific branches.
|
|
149
|
+
|
|
150
|
+
1. Publish the answer prompt as a `UiDoc` via `mu_ui`:
|
|
151
|
+
|
|
152
|
+
```json
|
|
153
|
+
{
|
|
154
|
+
"action": "set",
|
|
155
|
+
"doc": {
|
|
156
|
+
"v": 1,
|
|
157
|
+
"ui_id": "ui:answer",
|
|
158
|
+
"title": "Answer",
|
|
159
|
+
"components": [{ "kind": "text", "id": "prompt", "text": "Choose an answer", "metadata": {} }],
|
|
160
|
+
"actions": [
|
|
161
|
+
{ "id": "answer_yes", "label": "Answer yes", "payload": { "choice": "yes" }, "metadata": { "command_text": "/answer yes" } },
|
|
162
|
+
{ "id": "answer_no", "label": "Answer no", "payload": { "choice": "no" }, "metadata": { "command_text": "/answer no" } }
|
|
163
|
+
],
|
|
164
|
+
"revision": { "id": "rev:answer:1", "version": 1 },
|
|
165
|
+
"updated_at_ms": 1
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
2. On `/answer <choice>` input, validate choice, clear/remove `ui:answer` via `mu_ui`, then emit a
|
|
171
|
+
normal response.
|
|
172
|
+
3. Keep revisions monotonic (`revision.version`) so reconnect/replay keeps the highest revision.
|
|
173
|
+
4. Rely on `metadata.command_text` for cross-surface parity: TUI + messaging channels should route
|
|
174
|
+
the same `/answer ...` command text.
|
|
175
|
+
|
|
144
176
|
## Session, serve, and one-shot surfaces
|
|
145
177
|
|
|
146
178
|
Primary interactive surface:
|
|
@@ -165,7 +197,15 @@ One-shot prompt (no durable session):
|
|
|
165
197
|
mu exec --message "<task>" --json
|
|
166
198
|
```
|
|
167
199
|
|
|
168
|
-
In attached terminal operator chat, `/mu` helpers are available (`/mu events`, `/mu
|
|
200
|
+
In attached terminal operator chat, `/mu` helpers are available (`/mu events`, `/mu ui status`, `/mu ui snapshot compact`, `/mu help`).
|
|
201
|
+
|
|
202
|
+
Canonical visibility checks while running orchestrated work:
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
/mu ui status
|
|
206
|
+
/mu ui snapshot compact
|
|
207
|
+
/mu ui snapshot multiline
|
|
208
|
+
```
|
|
169
209
|
|
|
170
210
|
## Durable automation handoff
|
|
171
211
|
|
|
@@ -177,10 +217,13 @@ mu cron --help
|
|
|
177
217
|
```
|
|
178
218
|
|
|
179
219
|
When work is multi-step and issue-graph driven, use `planning` to shape the DAG,
|
|
180
|
-
then `
|
|
181
|
-
|
|
182
|
-
then `
|
|
183
|
-
|
|
220
|
+
then `protocol` to keep DAG semantics consistent, then `control-flow` for explicit
|
|
221
|
+
loop/termination policy, then `model-routing` for per-issue provider/model/thinking
|
|
222
|
+
selection overlays, then `execution` for durable execution supervision.
|
|
223
|
+
Keep operator↔human communication mu_ui-first across these skills:
|
|
224
|
+
- one non-interactive status doc per active profile (`metadata.profile.variant: "status"`)
|
|
225
|
+
- separate interactive prompt docs for decisions (`metadata.command_text` actions)
|
|
226
|
+
- explicit `mu_ui remove` teardown for resolved prompts and completed passes
|
|
184
227
|
For REPL-driven exploration and context compression, use `code-mode`.
|
|
185
228
|
For persistent terminal sessions and worker fan-out mechanics, use `tmux`.
|
|
186
229
|
For recurring bounded automation loops, use `heartbeats`.
|
|
@@ -202,15 +245,15 @@ For wall-clock schedules (one-shot, interval, cron-expression), use `crons`.
|
|
|
202
245
|
|
|
203
246
|
## Escalation map
|
|
204
247
|
|
|
205
|
-
-
|
|
248
|
+
- Prior-context retrieval and index maintenance: **`memory`**
|
|
206
249
|
- Planning/decomposition and DAG review: **`planning`**
|
|
207
|
-
-
|
|
208
|
-
- Shared DAG semantics for planning + execution: **`
|
|
250
|
+
- mu_ui-first status/prompt communication patterns for DAG work: **`planning`**, **`execution`**, **`control-flow`**, **`model-routing`**
|
|
251
|
+
- Shared DAG semantics for planning + execution: **`protocol`**
|
|
209
252
|
- Loop/termination policy overlays (review gates, retries, escalation): **`control-flow`**
|
|
210
253
|
- Per-issue model/provider/thinking selection overlays: **`model-routing`**
|
|
211
254
|
- Live REPL execution and context engineering via tmux: **`code-mode`**
|
|
212
255
|
- Persistent tmux session management + worker fan-out primitives: **`tmux`**
|
|
213
|
-
- Durable multi-agent orchestration: **`
|
|
256
|
+
- Durable multi-agent orchestration: **`execution`**
|
|
214
257
|
- Recurring bounded automation scheduling: **`heartbeats`**
|
|
215
258
|
- Wall-clock scheduling workflows: **`crons`**
|
|
216
259
|
- Messaging adapter onboarding:
|
|
@@ -131,7 +131,7 @@ Quick diagnostics checklist:
|
|
|
131
131
|
## Integration map
|
|
132
132
|
|
|
133
133
|
- `code-mode`: tmux-backed REPL persistence and context engineering loops
|
|
134
|
-
- `
|
|
134
|
+
- `execution`: tmux fan-out for parallel worker execution
|
|
135
135
|
- `heartbeats` / `crons`: schedule bounded passes that dispatch into tmux workers
|
|
136
136
|
|
|
137
137
|
## Evaluation scenarios
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: messaging
|
|
3
|
+
description: "Meta-skill for messaging/channel onboarding. Routes to setup-slack, setup-discord, setup-telegram, and setup-neovim."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# messaging
|
|
7
|
+
|
|
8
|
+
Use this meta-skill when the user asks to onboard, repair, or verify channel messaging integration.
|
|
9
|
+
|
|
10
|
+
## Subskills
|
|
11
|
+
|
|
12
|
+
- `setup-slack` — Slack adapter setup, verification, and identity linking.
|
|
13
|
+
- `setup-discord` — Discord adapter setup, verification, and identity linking.
|
|
14
|
+
- `setup-telegram` — Telegram adapter setup, webhook flow, and identity linking.
|
|
15
|
+
- `setup-neovim` — Neovim (`mu.nvim`) channel setup and identity linking.
|
|
16
|
+
|
|
17
|
+
## Selection guide
|
|
18
|
+
|
|
19
|
+
1. Pick the channel-specific setup skill that matches the target adapter.
|
|
20
|
+
2. Run setup in an inspect -> patch config -> reload -> verify loop.
|
|
21
|
+
3. Confirm identities and delivery behavior before declaring completion.
|
|
22
|
+
|
|
23
|
+
## Common patterns
|
|
24
|
+
|
|
25
|
+
- **Agent-First Bootstrap**: Rather than asking the user for all details upfront, start the correct `setup-*` skill to investigate the current `mu` config, generate generic adapter secrets locally (if possible), and only ask the user for web-portal-specific secrets (e.g. Discord bot tokens or Slack bot tokens).
|
|
26
|
+
- **Verification Loop**: After rewriting the channel configuration dict, use the `setup-*` pattern to reload the mu controller (`mu cron ...`) and explicitly check the latest service logs or remote test (`/mu health`) to ensure connectivity works before ending the run.
|
|
27
|
+
- **Identity Context Tying**: During adapter onboarding, link the local OS user identity with their remote Slack/Discord/Telegram IDs so that subsequent `mu exec` jobs running offline can accurately ping the user back.
|