wayang-ai 0.3.0 → 0.4.0

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 (3) hide show
  1. package/README.md +44 -2
  2. package/dist/cli.js +781 -179
  3. package/package.json +2 -1
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 (13 tools)
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
- - [ ] **Controller ↔ Worker Chat** — Allow the controller to chat with a running worker and ask for human approval when needed
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)