@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.
- package/README.md +12 -14
- package/bin/cli.js +14 -26
- package/bin/install-shared.js +398 -215
- package/bin/install.js +49 -89
- package/bin/uninstall.js +30 -60
- package/commands/cleanup.md +30 -8
- package/commands/doctor.md +7 -8
- package/commands/help.md +245 -244
- package/commands/observe.md +12 -12
- package/hooks/babysitter-proxied-post-tool-use.ps1 +12 -0
- package/hooks/babysitter-proxied-post-tool-use.sh +3 -0
- package/hooks/babysitter-proxied-pre-compact.ps1 +12 -0
- package/hooks/babysitter-proxied-pre-compact.sh +3 -0
- package/hooks/babysitter-proxied-pre-tool-use.ps1 +12 -0
- package/hooks/babysitter-proxied-pre-tool-use.sh +3 -0
- package/hooks/babysitter-proxied-session-end.ps1 +10 -114
- package/hooks/babysitter-proxied-session-end.sh +2 -111
- package/hooks/babysitter-proxied-session-start.ps1 +10 -187
- package/hooks/babysitter-proxied-session-start.sh +6 -168
- package/hooks/babysitter-proxied-user-prompt-submitted.ps1 +10 -90
- package/hooks/babysitter-proxied-user-prompt-submitted.sh +2 -86
- package/hooks.json +33 -9
- package/package.json +20 -21
- package/plugin.json +7 -6
- package/scripts/create-release-tag.mjs +18 -0
- package/scripts/publish-from-tag.mjs +41 -0
- package/scripts/team-install.js +14 -84
- package/skills/cleanup/SKILL.md +43 -0
- package/skills/contrib/SKILL.md +34 -0
- package/skills/doctor/SKILL.md +7 -8
- package/skills/forever/SKILL.md +8 -0
- package/skills/help/SKILL.md +3 -2
- package/skills/observe/SKILL.md +1 -1
- package/skills/plugins/SKILL.md +257 -0
- package/skills/project-install/SKILL.md +18 -0
- package/skills/resume/SKILL.md +1 -1
- package/skills/retrospect/SKILL.md +48 -48
- package/skills/user-install/SKILL.md +3 -3
- package/skills/yolo/SKILL.md +8 -0
- package/versions.json +2 -1
- package/.github/plugin.json +0 -25
- package/hooks/proxied-hooks.json +0 -29
- package/hooks/session-end.ps1 +0 -69
- package/hooks/session-end.sh +0 -54
- package/hooks/session-start.ps1 +0 -111
- package/hooks/session-start.sh +0 -101
- package/hooks/user-prompt-submitted.ps1 +0 -52
- package/hooks/user-prompt-submitted.sh +0 -31
- 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
|
|
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
|
-
|
|
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
|
|
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": "./
|
|
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/
|
|
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
|
-
|
|
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/
|
|
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/
|
|
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.
|
|
87
|
-
|
|
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
|
-
{
|
|
87
|
+
{ PLUGIN_PACKAGE_ROOT: PACKAGE_ROOT },
|
|
100
88
|
);
|
|
101
89
|
return;
|
|
102
90
|
}
|