wayang-ai 0.3.0 → 0.4.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/README.md +44 -2
- package/dist/cli.js +787 -181
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -119,6 +119,47 @@ wayang --resume --all # list all sessions to pick
|
|
|
119
119
|
| `--resume [id]` | Resume a session | — |
|
|
120
120
|
| `--verbose` | Enable verbose logging | — |
|
|
121
121
|
|
|
122
|
+
## Skills
|
|
123
|
+
|
|
124
|
+
**Skills** are on-demand expertise packages (Anthropic-style `SKILL.md` + optional resource scripts) that any agent — Controller or Worker — can load at runtime via the `use_skill` tool. Skills are discovered once at startup and shared across all agents through the in-memory registry.
|
|
125
|
+
|
|
126
|
+
### Discovery
|
|
127
|
+
|
|
128
|
+
Wayang scans these directories (later ones override earlier ones on name conflict):
|
|
129
|
+
|
|
130
|
+
1. `~/.wayang/skills/` — global, cross-project skills
|
|
131
|
+
2. `<workspace>/.wayang/skills/` — project-level skills (commit these to share with your team)
|
|
132
|
+
3. Any extra dirs listed in `config.skillsDirs`
|
|
133
|
+
|
|
134
|
+
Each skill is a directory containing a `SKILL.md` with YAML frontmatter. Only `description` is required:
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
.wayang/skills/
|
|
138
|
+
└── my-skill/
|
|
139
|
+
├── SKILL.md # required, with `description` frontmatter
|
|
140
|
+
└── run.sh # optional resource files (scripts, templates, ...)
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
```markdown
|
|
144
|
+
---
|
|
145
|
+
description: One-line summary the LLM sees in the skill catalog.
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
# my-skill
|
|
149
|
+
|
|
150
|
+
Detailed instructions the agent loads on demand via use_skill.
|
|
151
|
+
Resource scripts are invoked by the worker's own shell tool — Wayang never
|
|
152
|
+
executes them for you.
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### How agents share skills
|
|
156
|
+
|
|
157
|
+
- **Controller** sees the skill catalog in its system prompt and can call `use_skill` to load domain knowledge before writing a task description.
|
|
158
|
+
- **Puppet Worker** sees the same catalog and has the `use_skill` tool, so it can load skill instructions while executing a task.
|
|
159
|
+
- **Claude Code Worker** has no Wayang tools, so its catalog lists each skill's directory — it reads `SKILL.md` with its own file tools.
|
|
160
|
+
|
|
161
|
+
Skills are read-only config: a worker that has already started won't pick up newly added skills until the next session (or the next worker spawn).
|
|
162
|
+
|
|
122
163
|
## Project Structure
|
|
123
164
|
|
|
124
165
|
```
|
|
@@ -132,10 +173,11 @@ src/
|
|
|
132
173
|
│ ├── supervisor.ts DI container + lifecycle
|
|
133
174
|
│ ├── controller-loop.ts Main control loop
|
|
134
175
|
│ ├── agents/ Agent layer (Controller + Worker + Prompts + State)
|
|
176
|
+
│ ├── skills/ Skill registry (discovery + lazy content loading)
|
|
135
177
|
│ ├── task/ Task domain (pool + scheduler + state)
|
|
136
178
|
│ ├── signal/ Signal domain (queue + event sourcing state)
|
|
137
179
|
│ ├── session/ Session domain (manager + state)
|
|
138
|
-
│ └── tools/ Tool implementations (
|
|
180
|
+
│ └── tools/ Tool implementations (incl. use_skill)
|
|
139
181
|
├── infra/ Infrastructure (event-bus, logger, state framework, persistence)
|
|
140
182
|
├── types/ Shared types
|
|
141
183
|
└── utils/ Utility functions
|
|
@@ -166,7 +208,7 @@ npm run lint # type check + lint
|
|
|
166
208
|
|
|
167
209
|
## Roadmap
|
|
168
210
|
|
|
169
|
-
- [
|
|
211
|
+
- [x] **Controller ↔ Worker Chat** — Allow the controller to chat with a running worker and ask for human approval when needed
|
|
170
212
|
- [ ] **Persistent Workers Across Tasks** — Allow workers to survive task completion and receive follow-up tasks, retaining conversation context for iterative refinement without starting from scratch
|
|
171
213
|
- [ ] **Sessionless Long-Running Agent** — Rethink session design: always inherit context from the previous run + long-term memory, making Wayang a continuously running agent rather than a session-based tool
|
|
172
214
|
- [ ] **More Third-Party Worker Agents** — Expand integrations beyond Claude Code (e.g. Codex, Aider, Cursor agent)
|