youmd 0.8.16 → 0.8.18
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/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/api.d.ts +62 -0
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +41 -0
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/remote-command.d.ts +21 -3
- package/dist/lib/remote-command.d.ts.map +1 -1
- package/dist/lib/remote-command.js +147 -6
- package/dist/lib/remote-command.js.map +1 -1
- package/dist/lib/skill-catalog.d.ts.map +1 -1
- package/dist/lib/skill-catalog.js +10 -0
- package/dist/lib/skill-catalog.js.map +1 -1
- package/dist/mcp/registry.js +1 -1
- package/dist/mcp/registry.js.map +1 -1
- package/package.json +1 -1
- package/skills/remote-machine.md +69 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: remote-machine
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
scope: shared
|
|
5
|
+
identity_fields: [profile.about, preferences.agent]
|
|
6
|
+
description: Check a synced machine's agent/work status and, if needed, trigger it to commit and push — so the user can resume on another computer.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# remote-machine
|
|
10
|
+
|
|
11
|
+
Use this skill when the user asks about work happening on **another one of their
|
|
12
|
+
machines** and wants to check on it or hand it off — e.g.:
|
|
13
|
+
|
|
14
|
+
- "Is the work on my Mac mini done? Is it committed and pushed?"
|
|
15
|
+
- "What was the last update on my office machine?"
|
|
16
|
+
- "Have my Mac mini commit and push the youmd work so I can pull it down here."
|
|
17
|
+
- "Check <machine> and if it's not pushed, push it."
|
|
18
|
+
|
|
19
|
+
This runs entirely through the you.md synced connection (the agent bus relayed via
|
|
20
|
+
Convex). The user's machines are not directly reachable; commands and results flow
|
|
21
|
+
machine → Convex → machine. **Zero user steps beyond the sentence** — never ask the
|
|
22
|
+
user to run anything by hand.
|
|
23
|
+
|
|
24
|
+
## Identity Context
|
|
25
|
+
|
|
26
|
+
- **About:** {{profile.about}}
|
|
27
|
+
- **Agent preferences:** {{preferences.agent}}
|
|
28
|
+
|
|
29
|
+
## Workflow
|
|
30
|
+
|
|
31
|
+
1. **Identify the target machine.** If the user names it ("Mac mini", "office"),
|
|
32
|
+
match it against their machines. If unsure, call `remote_machine_status` with no
|
|
33
|
+
machine to list them, or `you remote list`, and pick/confirm the obvious one.
|
|
34
|
+
|
|
35
|
+
2. **Check status (read-only first).** Call the MCP tool `remote_machine_status`
|
|
36
|
+
(or `you remote status <machine>`). Report concisely:
|
|
37
|
+
- last readiness proof (ready / warn / failed) + when
|
|
38
|
+
- git state if available: branch, dirty?, ahead/behind, last commit
|
|
39
|
+
- last agent-bus activity (what the remote agent was doing)
|
|
40
|
+
|
|
41
|
+
3. **Decide if action is needed.** If the work is **clean and pushed** (not dirty,
|
|
42
|
+
ahead = 0), tell the user it's already safe to pull — done. If it's **dirty or
|
|
43
|
+
ahead of upstream** (uncommitted or unpushed commits), proceed to step 4.
|
|
44
|
+
|
|
45
|
+
4. **Trigger commit + push (only if needed).** Call `remote_machine_run` with
|
|
46
|
+
`action: "git.commit_push"` and `args: { project: "<name>", message: "<short wip msg>" }`
|
|
47
|
+
(or `you remote run <machine> git.commit_push --project <name> --message "..."`).
|
|
48
|
+
This requires the opt-in `remote:command` scope on the key. The remote daemon
|
|
49
|
+
executes a **whitelisted** git action only (never arbitrary commands).
|
|
50
|
+
|
|
51
|
+
5. **Confirm + report.** Read the returned result (`ok`, `gitState`, `output`).
|
|
52
|
+
Tell the user exactly what happened and that they can now `git pull` here to
|
|
53
|
+
resume. If it failed (e.g. auth, conflicts), report the redacted error and the
|
|
54
|
+
safe next step — do not retry destructively.
|
|
55
|
+
|
|
56
|
+
## Allowed remote actions (the security boundary)
|
|
57
|
+
|
|
58
|
+
Only these may ever be triggered remotely: `git.status`, `git.last_activity`,
|
|
59
|
+
`git.commit_push`, `git.pull`, `agent.status`. Everything else is rejected by the
|
|
60
|
+
daemon. There is **no** arbitrary shell, force-push, reset, or file write. If the
|
|
61
|
+
user wants something outside this list, explain it's not a permitted remote action
|
|
62
|
+
and offer the closest safe option.
|
|
63
|
+
|
|
64
|
+
## Notes
|
|
65
|
+
|
|
66
|
+
- Prefer the read-only status call before any mutating one.
|
|
67
|
+
- All dispatches + results are audited (brain activity) and owner-scoped — a
|
|
68
|
+
command can only target the user's own machines.
|
|
69
|
+
- See `project-context/CROSS-MACHINE-AGENTS.md` for the full architecture.
|