@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.
Files changed (42) hide show
  1. package/README.md +41 -21
  2. package/assets/mu-tui-logo.png +0 -0
  3. package/dist/extensions/index.d.ts +1 -1
  4. package/dist/extensions/index.d.ts.map +1 -1
  5. package/dist/extensions/index.js +1 -1
  6. package/dist/extensions/mu-command-dispatcher.d.ts +0 -1
  7. package/dist/extensions/mu-command-dispatcher.d.ts.map +1 -1
  8. package/dist/extensions/mu-command-dispatcher.js +5 -42
  9. package/dist/extensions/mu-operator.js +2 -2
  10. package/dist/extensions/mu-serve.js +2 -2
  11. package/dist/extensions/ui.d.ts +4 -0
  12. package/dist/extensions/ui.d.ts.map +1 -0
  13. package/dist/extensions/ui.js +1055 -0
  14. package/dist/operator.d.ts +93 -255
  15. package/dist/operator.d.ts.map +1 -1
  16. package/dist/operator.js +41 -32
  17. package/package.json +33 -33
  18. package/prompts/skills/automation/SKILL.md +25 -0
  19. package/prompts/skills/{crons → automation/crons}/SKILL.md +2 -2
  20. package/prompts/skills/{heartbeats → automation/heartbeats}/SKILL.md +2 -2
  21. package/prompts/skills/core/SKILL.md +28 -0
  22. package/prompts/skills/{code-mode → core/code-mode}/SKILL.md +1 -1
  23. package/prompts/skills/{memory → core/memory}/SKILL.md +2 -2
  24. package/prompts/skills/{mu → core/mu}/SKILL.md +52 -9
  25. package/prompts/skills/{tmux → core/tmux}/SKILL.md +1 -1
  26. package/prompts/skills/messaging/SKILL.md +27 -0
  27. package/prompts/skills/subagents/SKILL.md +93 -243
  28. package/prompts/skills/{control-flow → subagents/control-flow}/SKILL.md +122 -17
  29. package/prompts/skills/subagents/execution/SKILL.md +428 -0
  30. package/prompts/skills/{model-routing → subagents/model-routing}/SKILL.md +179 -19
  31. package/prompts/skills/subagents/planning/SKILL.md +393 -0
  32. package/prompts/skills/{orchestration → subagents/protocol}/SKILL.md +7 -10
  33. package/prompts/skills/writing/SKILL.md +3 -2
  34. package/dist/extensions/hud.d.ts +0 -4
  35. package/dist/extensions/hud.d.ts.map +0 -1
  36. package/dist/extensions/hud.js +0 -483
  37. package/prompts/skills/hud/SKILL.md +0 -205
  38. package/prompts/skills/planning/SKILL.md +0 -244
  39. /package/prompts/skills/{setup-discord → messaging/setup-discord}/SKILL.md +0 -0
  40. /package/prompts/skills/{setup-neovim → messaging/setup-neovim}/SKILL.md +0 -0
  41. /package/prompts/skills/{setup-slack → messaging/setup-slack}/SKILL.md +0 -0
  42. /package/prompts/skills/{setup-telegram → messaging/setup-telegram}/SKILL.md +0 -0
package/package.json CHANGED
@@ -1,35 +1,35 @@
1
1
  {
2
- "name": "@femtomc/mu-agent",
3
- "version": "26.2.106",
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.106",
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
- }
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
- - `orchestration`
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
- - `subagents`
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
- - `orchestration`
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
- - `subagents`
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 `orchestration`/`subagents` by assigning one tmux session per worker.
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 historical context or repairing memory index health."
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 historical context lookup, timeline reconstruction,
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 hud ...`, `/mu help`).
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 `hud` for canonical HUD behavior, then `orchestration` to keep DAG
181
- semantics consistent, then `control-flow` for explicit loop/termination policy,
182
- then `model-routing` for per-issue provider/model/thinking selection overlays,
183
- then `subagents` for durable execution.
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
- - Historical context retrieval and index maintenance: **`memory`**
248
+ - Prior-context retrieval and index maintenance: **`memory`**
206
249
  - Planning/decomposition and DAG review: **`planning`**
207
- - HUD contract/state updates across surfaces: **`hud`**
208
- - Shared DAG semantics for planning + execution: **`orchestration`**
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: **`subagents`**
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
- - `subagents`: tmux fan-out for parallel worker execution
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.