@a5c-ai/babysitter-github 5.0.1-staging.8f799c44 → 5.0.1-staging.917895b63

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 (49) hide show
  1. package/README.md +12 -14
  2. package/bin/cli.js +14 -26
  3. package/bin/install-shared.js +398 -215
  4. package/bin/install.js +49 -89
  5. package/bin/uninstall.js +30 -60
  6. package/commands/cleanup.md +30 -8
  7. package/commands/doctor.md +7 -8
  8. package/commands/help.md +245 -244
  9. package/commands/observe.md +12 -12
  10. package/hooks/babysitter-proxied-post-tool-use.ps1 +12 -0
  11. package/hooks/babysitter-proxied-post-tool-use.sh +3 -0
  12. package/hooks/babysitter-proxied-pre-compact.ps1 +12 -0
  13. package/hooks/babysitter-proxied-pre-compact.sh +3 -0
  14. package/hooks/babysitter-proxied-pre-tool-use.ps1 +12 -0
  15. package/hooks/babysitter-proxied-pre-tool-use.sh +3 -0
  16. package/hooks/babysitter-proxied-session-end.ps1 +10 -114
  17. package/hooks/babysitter-proxied-session-end.sh +2 -111
  18. package/hooks/babysitter-proxied-session-start.ps1 +10 -187
  19. package/hooks/babysitter-proxied-session-start.sh +6 -168
  20. package/hooks/babysitter-proxied-user-prompt-submitted.ps1 +10 -90
  21. package/hooks/babysitter-proxied-user-prompt-submitted.sh +2 -86
  22. package/hooks.json +33 -9
  23. package/package.json +20 -21
  24. package/plugin.json +7 -6
  25. package/scripts/create-release-tag.mjs +18 -0
  26. package/scripts/publish-from-tag.mjs +41 -0
  27. package/scripts/team-install.js +14 -84
  28. package/skills/cleanup/SKILL.md +43 -0
  29. package/skills/contrib/SKILL.md +34 -0
  30. package/skills/doctor/SKILL.md +7 -8
  31. package/skills/forever/SKILL.md +8 -0
  32. package/skills/help/SKILL.md +3 -2
  33. package/skills/observe/SKILL.md +1 -1
  34. package/skills/plugins/SKILL.md +257 -0
  35. package/skills/project-install/SKILL.md +18 -0
  36. package/skills/resume/SKILL.md +1 -1
  37. package/skills/retrospect/SKILL.md +48 -48
  38. package/skills/user-install/SKILL.md +3 -3
  39. package/skills/yolo/SKILL.md +8 -0
  40. package/versions.json +2 -1
  41. package/.github/plugin.json +0 -25
  42. package/hooks/proxied-hooks.json +0 -29
  43. package/hooks/session-end.ps1 +0 -69
  44. package/hooks/session-end.sh +0 -54
  45. package/hooks/session-start.ps1 +0 -111
  46. package/hooks/session-start.sh +0 -101
  47. package/hooks/user-prompt-submitted.ps1 +0 -52
  48. package/hooks/user-prompt-submitted.sh +0 -31
  49. package/scripts/sync-command-surfaces.js +0 -62
package/README.md CHANGED
@@ -28,7 +28,7 @@ Register the a5c.ai marketplace and install the plugin:
28
28
 
29
29
  ```bash
30
30
  # Register the marketplace
31
- copilot plugin marketplace add a5c-ai/babysitter
31
+ copilot plugin marketplace add a5c-ai/babysitter-claude
32
32
 
33
33
  # Install the plugin
34
34
  copilot plugin install babysitter
@@ -36,11 +36,10 @@ copilot plugin install babysitter
36
36
 
37
37
  ### Direct GitHub install
38
38
 
39
- Install directly from the Git repository using Copilot CLI. Copilot CLI
40
- discovers the plugin via `.github/plugin/marketplace.json` at the repo root:
39
+ Install directly from the generated external plugin repository:
41
40
 
42
41
  ```bash
43
- copilot plugin install a5c-ai/babysitter
42
+ copilot plugin install a5c-ai/babysitter-github-copilot
44
43
  ```
45
44
 
46
45
  ### Alternative Installation (npm / development)
@@ -61,11 +60,11 @@ npm install -g @a5c-ai/babysitter-github
61
60
  babysitter-github install
62
61
  ```
63
62
 
64
- Or install from source:
63
+ Or install from generated source:
65
64
 
66
65
  ```bash
67
- cd plugins/babysitter-github
68
- node bin/install.js
66
+ npm run generate:plugins
67
+ node artifacts/generated-plugins/github-copilot/bin/install.js
69
68
  ```
70
69
 
71
70
  Install into a specific workspace:
@@ -253,8 +252,7 @@ Copilot CLI looks for the plugin manifest in these paths, checked in order:
253
252
  The first match wins. This plugin uses `plugin.json` at the package root.
254
253
 
255
254
  For marketplace discovery, Copilot CLI looks for `.github/plugin/marketplace.json`
256
- at the repository root. This file lists all available plugins in the repo and is
257
- used when installing via `copilot plugin install OWNER/REPO`.
255
+ at the repository root of the generated plugin repository.
258
256
 
259
257
  ### plugin.json Schema
260
258
 
@@ -404,7 +402,7 @@ repository root in `.github/plugin/marketplace.json`:
404
402
  "name": "babysitter",
405
403
  "description": "Multi-step workflow orchestration with event-sourced state",
406
404
  "version": "0.1.0",
407
- "source": "./plugins/babysitter-github"
405
+ "source": "./"
408
406
  }
409
407
  ]
410
408
  }
@@ -461,7 +459,7 @@ These registries are available without running `marketplace add`.
461
459
  ## Plugin Structure (Directory Layout)
462
460
 
463
461
  ```
464
- plugins/babysitter-github/
462
+ artifacts/generated-plugins/github-copilot/
465
463
  plugin.json # Plugin manifest (skills, hooks, metadata)
466
464
  .github/plugin.json # Plugin manifest (alternate discovery path)
467
465
  hooks.json # Hook configuration (sessionStart, sessionEnd, userPromptSubmitted)
@@ -579,14 +577,14 @@ compatibility where PowerShell execution is available.
579
577
  git clone https://github.com/a5c-ai/babysitter.git
580
578
  cd babysitter
581
579
  npm install
582
- cd plugins/babysitter-github
580
+ npm run generate:plugins
583
581
  node bin/install.js
584
582
  ```
585
583
 
586
584
  ### Publishing
587
585
 
588
586
  ```bash
589
- cd plugins/babysitter-github
587
+ cd artifacts/generated-plugins/github-copilot
590
588
  npm run deploy # Publish to npm (public)
591
589
  npm run deploy:staging # Publish to npm with staging tag
592
590
  ```
@@ -594,7 +592,7 @@ npm run deploy:staging # Publish to npm with staging tag
594
592
  ### Team installation
595
593
 
596
594
  ```bash
597
- cd plugins/babysitter-github
595
+ cd artifacts/generated-plugins/github-copilot
598
596
  npm run team:install
599
597
  ```
600
598
 
package/bin/cli.js CHANGED
@@ -5,13 +5,14 @@ const path = require('path');
5
5
  const { spawnSync } = require('child_process');
6
6
 
7
7
  const PACKAGE_ROOT = path.resolve(__dirname, '..');
8
+ let shared;
9
+ try { shared = require('./install-shared'); } catch {}
8
10
 
9
11
  function printUsage() {
10
12
  console.error([
11
13
  'Usage:',
12
14
  ' babysitter-github install [--global]',
13
15
  ' babysitter-github install --workspace [path]',
14
- ' babysitter-github install --cloud-agent [--workspace [path]]',
15
16
  ' babysitter-github uninstall',
16
17
  ].join('\n'));
17
18
  }
@@ -19,22 +20,15 @@ function printUsage() {
19
20
  function parseInstallArgs(argv) {
20
21
  let scope = 'global';
21
22
  let workspace = null;
22
- let cloudAgent = false;
23
23
  const passthrough = [];
24
24
 
25
25
  for (let i = 0; i < argv.length; i += 1) {
26
26
  const arg = argv[i];
27
27
  if (arg === '--global') {
28
- if (scope === 'workspace') {
29
- throw new Error('install accepts either --global or --workspace, not both');
30
- }
31
28
  scope = 'global';
32
29
  continue;
33
30
  }
34
31
  if (arg === '--workspace') {
35
- if (scope === 'global' && workspace !== null) {
36
- throw new Error('install accepts either --global or --workspace, not both');
37
- }
38
32
  scope = 'workspace';
39
33
  const next = argv[i + 1];
40
34
  if (next && !next.startsWith('-')) {
@@ -45,30 +39,17 @@ function parseInstallArgs(argv) {
45
39
  }
46
40
  continue;
47
41
  }
48
- if (arg === '--cloud-agent') {
49
- cloudAgent = true;
50
- passthrough.push(arg);
51
- continue;
52
- }
53
42
  passthrough.push(arg);
54
43
  }
55
44
 
56
- return {
57
- cloudAgent,
58
- scope,
59
- workspace,
60
- passthrough,
61
- };
45
+ return { scope, workspace, passthrough };
62
46
  }
63
47
 
64
48
  function runNodeScript(scriptPath, args, extraEnv = {}) {
65
49
  const result = spawnSync(process.execPath, [scriptPath, ...args], {
66
50
  cwd: process.cwd(),
67
51
  stdio: 'inherit',
68
- env: {
69
- ...process.env,
70
- ...extraEnv,
71
- },
52
+ env: { ...process.env, ...extraEnv },
72
53
  });
73
54
  process.exitCode = result.status ?? 1;
74
55
  }
@@ -82,9 +63,16 @@ function main() {
82
63
  }
83
64
 
84
65
  if (command === 'install') {
66
+ if (shared && typeof shared.harnessCliRoute === 'function' && shared.harnessCliRoute(rest, PACKAGE_ROOT, runNodeScript)) {
67
+ return;
68
+ }
85
69
  const parsed = parseInstallArgs(rest);
86
- if (parsed.cloudAgent) {
87
- runNodeScript(path.join(PACKAGE_ROOT, 'bin', 'install.js'), parsed.passthrough);
70
+ if (parsed.passthrough.includes('--cloud-agent')) {
71
+ const args = [...parsed.passthrough];
72
+ if (parsed.workspace) {
73
+ args.push('--workspace', parsed.workspace);
74
+ }
75
+ runNodeScript(path.join(PACKAGE_ROOT, 'bin', 'install.js'), args);
88
76
  return;
89
77
  }
90
78
  if (parsed.scope === 'workspace') {
@@ -96,7 +84,7 @@ function main() {
96
84
  runNodeScript(
97
85
  path.join(PACKAGE_ROOT, 'scripts', 'team-install.js'),
98
86
  args,
99
- { BABYSITTER_PACKAGE_ROOT: PACKAGE_ROOT },
87
+ { PLUGIN_PACKAGE_ROOT: PACKAGE_ROOT },
100
88
  );
101
89
  return;
102
90
  }