@automagik/genie 0.260202.1833 → 0.260203.43
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/.beads/README.md +81 -0
- package/.beads/config.yaml +67 -0
- package/.beads/interactions.jsonl +0 -0
- package/.beads/issues.jsonl +9 -0
- package/.beads/metadata.json +4 -0
- package/.claude/skills/brainstorm/SKILL.md +53 -0
- package/.claude/skills/genie-base/SKILL.md +66 -0
- package/.claude/skills/genie-base/assets/workspace/AGENTS.md +191 -0
- package/.claude/skills/genie-base/assets/workspace/ENVIRONMENT.md +18 -0
- package/.claude/skills/genie-base/assets/workspace/HEARTBEAT.md +4 -0
- package/.claude/skills/genie-base/assets/workspace/IDENTITY.md +17 -0
- package/.claude/skills/genie-base/assets/workspace/MEMORY.md +16 -0
- package/.claude/skills/genie-base/assets/workspace/ROLE.md +14 -0
- package/.claude/skills/genie-base/assets/workspace/SOUL.md +36 -0
- package/.claude/skills/genie-base/assets/workspace/TOOLS.md +25 -0
- package/.claude/skills/genie-base/assets/workspace/USER.md +13 -0
- package/.claude/skills/genie-base/assets/workspace/memory/2026-01-30.md +6 -0
- package/.claude/skills/genie-base/assets/workspace/memory/2026-01-31.md +16 -0
- package/.claude/skills/genie-base/assets/workspace/memory/882c22be-9710-41c1-91f8-ed82947ef6ce.txt +1 -0
- package/.claude/skills/genie-base/scripts/install-workspace.sh +107 -0
- package/.claude/skills/genie-base/scripts/sanity-sweep.sh +60 -0
- package/.claude/skills/genie-blank-init/SKILL.md +37 -0
- package/.claude/skills/genie-blank-init/assets/BOOTSTRAP.md +44 -0
- package/.claude/skills/genie-blank-init/assets/IDENTITY.md +9 -0
- package/.claude/skills/genie-blank-init/assets/SOUL.md +10 -0
- package/.claude/skills/genie-blank-init/assets/USER.md +9 -0
- package/.claude/skills/genie-blank-init/scripts/apply-blank-init.sh +117 -0
- package/.claude/skills/genie-forge/SKILL.md +171 -0
- package/.claude/skills/genie-plan-review/CLAUDE.md +11 -0
- package/.claude/skills/genie-plan-review/SKILL.md +53 -0
- package/.claude/skills/genie-review/SKILL.md +171 -0
- package/.claude/skills/genie-wish/SKILL.md +141 -0
- package/.claude-plugin/marketplace.json +18 -0
- package/.genie/.gitkeep +3 -0
- package/.genie/backlog/hooks-v2.md +82 -0
- package/.genie/wishes/upgrade-brainstorm-handoff/wish.md +124 -0
- package/.gitattributes +3 -0
- package/AGENTS.md +75 -0
- package/bun.lock +55 -0
- package/dist/claudio.js +1 -1
- package/dist/genie.js +1 -1
- package/dist/term.js +123 -99
- package/docs/CO-ORCHESTRATION-GUIDE.md +368 -0
- package/package.json +5 -1
- package/plugin/.claude-plugin/plugin.json +18 -0
- package/plugin/README.md +120 -0
- package/plugin/agents/implementor.md +92 -0
- package/plugin/agents/quality-reviewer.md +113 -0
- package/plugin/agents/spec-reviewer.md +90 -0
- package/plugin/hooks/hooks.json +3 -0
- package/plugin/references/review-criteria.md +72 -0
- package/plugin/references/wish-template.md +92 -0
- package/plugin/scripts/genie.cjs +141 -0
- package/plugin/scripts/smart-install.js +308 -0
- package/plugin/scripts/src/install-genie-cli.sh +120 -0
- package/plugin/scripts/src/validate-completion.ts +142 -0
- package/plugin/scripts/src/validate-wish.ts +137 -0
- package/plugin/scripts/term.cjs +229 -0
- package/plugin/scripts/validate-completion.cjs +16 -0
- package/plugin/scripts/validate-wish.cjs +17 -0
- package/plugin/scripts/worker-service.cjs +28 -0
- package/plugin/skills/brainstorm/SKILL.md +106 -0
- package/plugin/skills/forge/SKILL.md +171 -0
- package/plugin/skills/genie-base/SKILL.md +99 -0
- package/plugin/skills/genie-base/assets/workspace/AGENTS.md +191 -0
- package/plugin/skills/genie-base/assets/workspace/ENVIRONMENT.md +18 -0
- package/plugin/skills/genie-base/assets/workspace/HEARTBEAT.md +4 -0
- package/plugin/skills/genie-base/assets/workspace/IDENTITY.md +17 -0
- package/plugin/skills/genie-base/assets/workspace/MEMORY.md +16 -0
- package/plugin/skills/genie-base/assets/workspace/ROLE.md +14 -0
- package/plugin/skills/genie-base/assets/workspace/SOUL.md +36 -0
- package/plugin/skills/genie-base/assets/workspace/TOOLS.md +25 -0
- package/plugin/skills/genie-base/assets/workspace/USER.md +13 -0
- package/plugin/skills/genie-base/scripts/install-workspace.sh +107 -0
- package/plugin/skills/genie-base/scripts/sanity-sweep.sh +60 -0
- package/plugin/skills/genie-blank-init/SKILL.md +73 -0
- package/plugin/skills/genie-blank-init/assets/BOOTSTRAP.md +44 -0
- package/plugin/skills/genie-blank-init/assets/IDENTITY.md +9 -0
- package/plugin/skills/genie-blank-init/assets/SOUL.md +10 -0
- package/plugin/skills/genie-blank-init/assets/USER.md +9 -0
- package/plugin/skills/genie-blank-init/scripts/apply-blank-init.sh +117 -0
- package/plugin/skills/genie-cli-dev/CLAUDE.md +19 -0
- package/plugin/skills/genie-cli-dev/SKILL.md +292 -0
- package/plugin/skills/plan-review/SKILL.md +101 -0
- package/plugin/skills/review/SKILL.md +221 -0
- package/plugin/skills/wish/SKILL.md +110 -0
- package/plugin/skills/work-orchestration/SKILL.md +110 -0
- package/scripts/build.js +132 -0
- package/scripts/smart-install.js +308 -0
- package/scripts/sync.js +134 -0
- package/src/lib/beads-registry.ts +595 -0
- package/src/lib/orchestrator/event-monitor.ts +2 -0
- package/src/lib/skill-loader.ts +215 -0
- package/src/lib/tmux.ts +30 -11
- package/src/lib/version.ts +1 -1
- package/src/lib/worker-registry.ts +10 -0
- package/src/services/worker-service.ts +351 -0
- package/src/term-commands/close.ts +48 -3
- package/src/term-commands/create.ts +95 -0
- package/src/term-commands/daemon.ts +176 -0
- package/src/term-commands/kill.ts +56 -2
- package/src/term-commands/orchestrate.ts +3 -2
- package/src/term-commands/send.ts +43 -15
- package/src/term-commands/spawn.ts +446 -0
- package/src/term-commands/split.ts +20 -8
- package/src/term-commands/work.ts +279 -37
- package/src/term-commands/workers.ts +36 -2
- package/src/term.ts +120 -7
package/src/term.ts
CHANGED
|
@@ -20,6 +20,9 @@ import * as workCmd from './term-commands/work.js';
|
|
|
20
20
|
import * as workersCmd from './term-commands/workers.js';
|
|
21
21
|
import * as closeCmd from './term-commands/close.js';
|
|
22
22
|
import * as killCmd from './term-commands/kill.js';
|
|
23
|
+
import * as daemonCmd from './term-commands/daemon.js';
|
|
24
|
+
import * as spawnCmd from './term-commands/spawn.js';
|
|
25
|
+
import * as createCmd from './term-commands/create.js';
|
|
23
26
|
|
|
24
27
|
const program = new Command();
|
|
25
28
|
|
|
@@ -35,12 +38,19 @@ Collaborative Usage:
|
|
|
35
38
|
Workflow: new → exec → read → rm
|
|
36
39
|
Full control: window new/ls/rm, pane ls/rm, split, status
|
|
37
40
|
|
|
41
|
+
Skill-Based Spawning:
|
|
42
|
+
term spawn - Pick skill interactively
|
|
43
|
+
term spawn <skill> - Spawn Claude with skill loaded
|
|
44
|
+
term skills - List available skills
|
|
45
|
+
term create <title> - Create beads issue
|
|
46
|
+
|
|
38
47
|
Worker Orchestration:
|
|
39
48
|
term work <bd-id> - Spawn worker bound to beads issue
|
|
40
49
|
term work next - Work on next ready issue
|
|
41
50
|
term workers - List all workers and states
|
|
42
51
|
term close <bd-id> - Close issue, cleanup worker
|
|
43
|
-
term kill <worker> - Force kill a stuck worker
|
|
52
|
+
term kill <worker> - Force kill a stuck worker
|
|
53
|
+
term daemon start - Start beads daemon for auto-sync`)
|
|
44
54
|
.version(VERSION);
|
|
45
55
|
|
|
46
56
|
// Session management
|
|
@@ -109,9 +119,11 @@ program
|
|
|
109
119
|
|
|
110
120
|
program
|
|
111
121
|
.command('send <session> <keys>')
|
|
112
|
-
.description('Send
|
|
113
|
-
.
|
|
114
|
-
|
|
122
|
+
.description('Send keys to a tmux session (appends Enter by default)')
|
|
123
|
+
.option('--no-enter', 'Send raw keys without appending Enter')
|
|
124
|
+
.option('-p, --pane <id>', 'Target specific pane ID (e.g., %16)')
|
|
125
|
+
.action(async (session: string, keys: string, options: { enter?: boolean; pane?: string }) => {
|
|
126
|
+
await sendCmd.sendKeysToSession(session, keys, options);
|
|
115
127
|
});
|
|
116
128
|
|
|
117
129
|
// Pane splitting
|
|
@@ -124,9 +136,9 @@ program
|
|
|
124
136
|
await splitCmd.splitSessionPane(session, direction, options);
|
|
125
137
|
});
|
|
126
138
|
|
|
127
|
-
//
|
|
139
|
+
// Info command (renamed from status)
|
|
128
140
|
program
|
|
129
|
-
.command('
|
|
141
|
+
.command('info <session>')
|
|
130
142
|
.description('Check session state (idle/busy, pane count)')
|
|
131
143
|
.option('--command <id>', 'Check specific command status')
|
|
132
144
|
.option('--json', 'Output as JSON')
|
|
@@ -212,14 +224,79 @@ program
|
|
|
212
224
|
await shortcutsCmd.handleShortcuts(options);
|
|
213
225
|
});
|
|
214
226
|
|
|
227
|
+
// Skill-based spawning
|
|
228
|
+
program
|
|
229
|
+
.command('spawn [skill]')
|
|
230
|
+
.description('Spawn Claude with a skill (interactive picker if no skill specified)')
|
|
231
|
+
.option('-s, --session <name>', 'Target tmux session')
|
|
232
|
+
.option('--no-worktree', 'Skip worktree creation when taskId provided')
|
|
233
|
+
.option('--no-focus', 'Don\'t focus the new pane')
|
|
234
|
+
.option('-p, --prompt <message>', 'Additional context for the skill')
|
|
235
|
+
.option('-t, --task-id <id>', 'Bind to beads issue')
|
|
236
|
+
.action(async (skill: string | undefined, options: spawnCmd.SpawnOptions) => {
|
|
237
|
+
await spawnCmd.spawnCommand(skill, options);
|
|
238
|
+
});
|
|
239
|
+
|
|
240
|
+
program
|
|
241
|
+
.command('skills')
|
|
242
|
+
.description('List available skills')
|
|
243
|
+
.action(async () => {
|
|
244
|
+
await spawnCmd.listSkillsCommand();
|
|
245
|
+
});
|
|
246
|
+
|
|
247
|
+
program
|
|
248
|
+
.command('brainstorm')
|
|
249
|
+
.description('Spawn Claude with brainstorm skill (idea → design → spec)')
|
|
250
|
+
.option('-s, --session <name>', 'Target tmux session')
|
|
251
|
+
.option('--no-focus', 'Don\'t focus the new pane')
|
|
252
|
+
.option('-p, --prompt <message>', 'Additional context')
|
|
253
|
+
.action(async (options: spawnCmd.SpawnOptions) => {
|
|
254
|
+
await spawnCmd.spawnCommand('brainstorm', options);
|
|
255
|
+
});
|
|
256
|
+
|
|
257
|
+
// Watch session events (promoted from orc watch)
|
|
258
|
+
program
|
|
259
|
+
.command('watch <session>')
|
|
260
|
+
.description('Watch session events in real-time')
|
|
261
|
+
.option('-p, --pane <id>', 'Target specific pane ID (e.g., %16)')
|
|
262
|
+
.option('--json', 'Output events as JSON')
|
|
263
|
+
.option('--poll <ms>', 'Poll interval in milliseconds')
|
|
264
|
+
.action(async (session: string, options: orchestrateCmd.WatchOptions) => {
|
|
265
|
+
await orchestrateCmd.watchSession(session, options);
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
// Run task with monitoring (promoted from orc run)
|
|
269
|
+
program
|
|
270
|
+
.command('run <session> <message>')
|
|
271
|
+
.description('Send task and auto-approve until idle (fire-and-forget)')
|
|
272
|
+
.option('-p, --pane <id>', 'Target specific pane ID (e.g., %16)')
|
|
273
|
+
.option('-a, --auto-approve', 'Auto-approve permissions and plans')
|
|
274
|
+
.option('-t, --timeout <ms>', 'Timeout in milliseconds (default: 300000)')
|
|
275
|
+
.option('--json', 'Output final state as JSON')
|
|
276
|
+
.action(async (session: string, message: string, options: orchestrateCmd.RunOptions) => {
|
|
277
|
+
await orchestrateCmd.runTask(session, message, options);
|
|
278
|
+
});
|
|
279
|
+
|
|
280
|
+
// Create beads issue command
|
|
281
|
+
program
|
|
282
|
+
.command('create <title>')
|
|
283
|
+
.description('Create a new beads issue')
|
|
284
|
+
.option('-d, --description <text>', 'Issue description')
|
|
285
|
+
.option('-p, --parent <id>', 'Parent issue ID (creates dependency)')
|
|
286
|
+
.option('--json', 'Output as JSON')
|
|
287
|
+
.action(async (title: string, options: createCmd.CreateOptions) => {
|
|
288
|
+
await createCmd.createCommand(title, options);
|
|
289
|
+
});
|
|
290
|
+
|
|
215
291
|
// Worker management commands (beads + Claude orchestration)
|
|
216
292
|
program
|
|
217
293
|
.command('work <target>')
|
|
218
294
|
.description('Spawn worker bound to beads issue (target: bd-id, "next", or "wish")')
|
|
219
295
|
.option('--no-worktree', 'Use shared repo instead of worktree')
|
|
220
296
|
.option('-s, --session <name>', 'Target tmux session')
|
|
221
|
-
.option('--
|
|
297
|
+
.option('--focus', 'Focus the worker pane after spawning')
|
|
222
298
|
.option('-p, --prompt <message>', 'Custom initial prompt')
|
|
299
|
+
.option('--no-resume', 'Start fresh session even if previous exists')
|
|
223
300
|
.action(async (target: string, options: workCmd.WorkOptions) => {
|
|
224
301
|
await workCmd.workCommand(target, options);
|
|
225
302
|
});
|
|
@@ -297,6 +374,42 @@ program
|
|
|
297
374
|
});
|
|
298
375
|
});
|
|
299
376
|
|
|
377
|
+
// Daemon management (beads auto-sync)
|
|
378
|
+
const daemonProgram = program.command('daemon').description('Manage beads daemon for auto-sync');
|
|
379
|
+
|
|
380
|
+
daemonProgram
|
|
381
|
+
.command('start')
|
|
382
|
+
.description('Start beads daemon (auto-commit, auto-sync)')
|
|
383
|
+
.option('--no-auto-commit', 'Disable auto-commit')
|
|
384
|
+
.option('--auto-push', 'Enable auto-push to remote')
|
|
385
|
+
.action(async (options: daemonCmd.DaemonStartOptions) => {
|
|
386
|
+
await daemonCmd.startCommand(options);
|
|
387
|
+
});
|
|
388
|
+
|
|
389
|
+
daemonProgram
|
|
390
|
+
.command('stop')
|
|
391
|
+
.description('Stop beads daemon')
|
|
392
|
+
.action(async () => {
|
|
393
|
+
await daemonCmd.stopCommand();
|
|
394
|
+
});
|
|
395
|
+
|
|
396
|
+
daemonProgram
|
|
397
|
+
.command('status')
|
|
398
|
+
.description('Show daemon status')
|
|
399
|
+
.option('--json', 'Output as JSON')
|
|
400
|
+
.action(async (options: daemonCmd.DaemonStatusOptions) => {
|
|
401
|
+
await daemonCmd.statusCommand(options);
|
|
402
|
+
});
|
|
403
|
+
|
|
404
|
+
daemonProgram
|
|
405
|
+
.command('restart')
|
|
406
|
+
.description('Restart beads daemon')
|
|
407
|
+
.option('--no-auto-commit', 'Disable auto-commit')
|
|
408
|
+
.option('--auto-push', 'Enable auto-push to remote')
|
|
409
|
+
.action(async (options: daemonCmd.DaemonStartOptions) => {
|
|
410
|
+
await daemonCmd.restartCommand(options);
|
|
411
|
+
});
|
|
412
|
+
|
|
300
413
|
// Orchestration commands (Claude Code automation)
|
|
301
414
|
const orcProgram = program.command('orc').description('Orchestrate Claude Code sessions');
|
|
302
415
|
|