@a5c-ai/babysitter-codex 0.1.6-staging.05b1f6af
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/.app.json +3 -0
- package/.codex-plugin/plugin.json +47 -0
- package/README.md +92 -0
- package/assets/icon.svg +7 -0
- package/assets/logo.svg +8 -0
- package/babysitter.lock.json +18 -0
- package/bin/cli.js +104 -0
- package/bin/install-shared.js +509 -0
- package/bin/install.js +48 -0
- package/bin/uninstall.js +40 -0
- package/hooks/babysitter-session-start.sh +37 -0
- package/hooks/babysitter-stop-hook.sh +37 -0
- package/hooks/user-prompt-submit.sh +39 -0
- package/hooks.json +37 -0
- package/package.json +48 -0
- package/scripts/team-install.js +86 -0
- package/skills/assimilate/SKILL.md +17 -0
- package/skills/babysit/SKILL.md +876 -0
- package/skills/call/SKILL.md +17 -0
- package/skills/doctor/SKILL.md +16 -0
- package/skills/forever/SKILL.md +15 -0
- package/skills/help/SKILL.md +15 -0
- package/skills/issue/SKILL.md +16 -0
- package/skills/model/SKILL.md +15 -0
- package/skills/observe/SKILL.md +15 -0
- package/skills/plan/SKILL.md +16 -0
- package/skills/project-install/SKILL.md +15 -0
- package/skills/resume/SKILL.md +15 -0
- package/skills/retrospect/SKILL.md +15 -0
- package/skills/team-install/SKILL.md +15 -0
- package/skills/user-install/SKILL.md +15 -0
- package/skills/yolo/SKILL.md +19 -0
package/.app.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "babysitter-codex",
|
|
3
|
+
"version": "0.1.5",
|
|
4
|
+
"description": "Babysitter orchestration plugin for Codex with skill entrypoints and lifecycle hooks.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "a5c.ai",
|
|
7
|
+
"email": "support@a5c.ai",
|
|
8
|
+
"url": "https://github.com/a5c-ai/babysitter"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://github.com/a5c-ai/babysitter/tree/main/plugins/babysitter-codex#readme",
|
|
11
|
+
"repository": "https://github.com/a5c-ai/babysitter",
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"babysitter",
|
|
15
|
+
"codex",
|
|
16
|
+
"orchestration",
|
|
17
|
+
"hooks",
|
|
18
|
+
"skills"
|
|
19
|
+
],
|
|
20
|
+
"skills": "./skills/",
|
|
21
|
+
"hooks": "./hooks.json",
|
|
22
|
+
"apps": "./.app.json",
|
|
23
|
+
"interface": {
|
|
24
|
+
"displayName": "Babysitter",
|
|
25
|
+
"shortDescription": "Run Babysitter orchestration flows from Codex",
|
|
26
|
+
"longDescription": "Babysitter adds orchestration entrypoints such as $call, $plan, and $resume, plus Codex lifecycle hooks that keep runs and workspace state in sync.",
|
|
27
|
+
"developerName": "a5c.ai",
|
|
28
|
+
"category": "Coding",
|
|
29
|
+
"capabilities": [
|
|
30
|
+
"Interactive",
|
|
31
|
+
"Read",
|
|
32
|
+
"Write"
|
|
33
|
+
],
|
|
34
|
+
"websiteURL": "https://github.com/a5c-ai/babysitter",
|
|
35
|
+
"privacyPolicyURL": "https://github.com/a5c-ai/babysitter",
|
|
36
|
+
"termsOfServiceURL": "https://github.com/a5c-ai/babysitter",
|
|
37
|
+
"defaultPrompt": [
|
|
38
|
+
"Use Babysitter to start a new orchestration run",
|
|
39
|
+
"Plan a Babysitter workflow before executing it",
|
|
40
|
+
"Resume the latest Babysitter run in this workspace"
|
|
41
|
+
],
|
|
42
|
+
"brandColor": "#0F766E",
|
|
43
|
+
"composerIcon": "./assets/icon.svg",
|
|
44
|
+
"logo": "./assets/logo.svg",
|
|
45
|
+
"screenshots": []
|
|
46
|
+
}
|
|
47
|
+
}
|
package/README.md
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# @a5c-ai/babysitter-codex
|
|
2
|
+
|
|
3
|
+
Babysitter integration package for OpenAI Codex CLI.
|
|
4
|
+
|
|
5
|
+
This package ships a real Codex plugin bundle:
|
|
6
|
+
|
|
7
|
+
- `.codex-plugin/plugin.json`
|
|
8
|
+
- `skills/`
|
|
9
|
+
- `hooks.json`
|
|
10
|
+
- `hooks/`
|
|
11
|
+
|
|
12
|
+
It still uses the Babysitter SDK CLI and the shared `~/.a5c` process-library
|
|
13
|
+
state. The installer registers the plugin bundle and also materializes the
|
|
14
|
+
active Codex `skills/`, `hooks/`, and `hooks.json` surface at the selected
|
|
15
|
+
scope so Codex can execute the Babysitter commands and hook scripts directly.
|
|
16
|
+
|
|
17
|
+
## Installation
|
|
18
|
+
|
|
19
|
+
Install the SDK CLI first:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm install -g @a5c-ai/babysitter-sdk
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
clone the repo and install the plugin globally:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
git clone https://github.com/a5c-ai/babysitter.git
|
|
29
|
+
cd babysitter
|
|
30
|
+
codex
|
|
31
|
+
|
|
32
|
+
> /plugins
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
then navigate to the 'babysitter' entry and select 'Install'.
|
|
36
|
+
|
|
37
|
+
## Integration Model
|
|
38
|
+
|
|
39
|
+
The plugin provides:
|
|
40
|
+
|
|
41
|
+
- `skills/babysit/SKILL.md` as the core entrypoint
|
|
42
|
+
- mode wrapper skills such as `$call`, `$plan`, and `$resume`
|
|
43
|
+
- plugin-level lifecycle hooks for `SessionStart`, `UserPromptSubmit`, and
|
|
44
|
+
`Stop`
|
|
45
|
+
|
|
46
|
+
The process library is fetched and bound through the SDK CLI in
|
|
47
|
+
`~/.a5c/active/process-library.json`.
|
|
48
|
+
|
|
49
|
+
## Workspace Output
|
|
50
|
+
|
|
51
|
+
After `install --workspace`, the important files are:
|
|
52
|
+
|
|
53
|
+
- `plugins/babysitter-codex/.codex-plugin/plugin.json`
|
|
54
|
+
- `plugins/babysitter-codex/skills/babysit/SKILL.md`
|
|
55
|
+
- `plugins/babysitter-codex/hooks.json`
|
|
56
|
+
- `.codex/skills/`
|
|
57
|
+
- `.codex/hooks/`
|
|
58
|
+
- `.codex/hooks.json`
|
|
59
|
+
- `.agents/plugins/marketplace.json`
|
|
60
|
+
- `.codex/config.toml`
|
|
61
|
+
- `.a5c/team/install.json`
|
|
62
|
+
- `.a5c/team/profile.json`
|
|
63
|
+
|
|
64
|
+
## Verification
|
|
65
|
+
|
|
66
|
+
Verify the installed plugin bundle:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
npm ls -g @a5c-ai/babysitter-codex --depth=0
|
|
70
|
+
test -f ~/.codex/plugins/babysitter-codex/.codex-plugin/plugin.json
|
|
71
|
+
test -f ~/.codex/plugins/babysitter-codex/hooks.json
|
|
72
|
+
test -f ~/.codex/plugins/babysitter-codex/hooks/babysitter-stop-hook.sh
|
|
73
|
+
test -f ~/.codex/plugins/babysitter-codex/skills/babysit/SKILL.md
|
|
74
|
+
test -f ~/.codex/hooks.json
|
|
75
|
+
test -f ~/.codex/hooks/babysitter-stop-hook.sh
|
|
76
|
+
test -f ~/.codex/skills/babysit/SKILL.md
|
|
77
|
+
test -f ~/.agents/plugins/marketplace.json
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Verify the active shared process-library binding:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
babysitter process-library:active --json
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
On native Windows, Codex currently does not execute hooks. The plugin still
|
|
87
|
+
installs correctly, but the lifecycle hooks will not fire until Codex enables
|
|
88
|
+
Windows hook execution.
|
|
89
|
+
|
|
90
|
+
## License
|
|
91
|
+
|
|
92
|
+
MIT
|
package/assets/icon.svg
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="Babysitter icon">
|
|
2
|
+
<rect width="64" height="64" rx="14" fill="#0F766E"/>
|
|
3
|
+
<path d="M16 22h32v20H16z" fill="#ECFEFF"/>
|
|
4
|
+
<circle cx="24" cy="32" r="3" fill="#0F766E"/>
|
|
5
|
+
<circle cx="32" cy="32" r="3" fill="#0F766E"/>
|
|
6
|
+
<circle cx="40" cy="32" r="3" fill="#0F766E"/>
|
|
7
|
+
</svg>
|
package/assets/logo.svg
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 80" role="img" aria-label="Babysitter logo">
|
|
2
|
+
<rect x="0" y="8" width="64" height="64" rx="14" fill="#0F766E"/>
|
|
3
|
+
<path d="M16 26h32v28H16z" fill="#ECFEFF"/>
|
|
4
|
+
<circle cx="24" cy="40" r="3" fill="#0F766E"/>
|
|
5
|
+
<circle cx="32" cy="40" r="3" fill="#0F766E"/>
|
|
6
|
+
<circle cx="40" cy="40" r="3" fill="#0F766E"/>
|
|
7
|
+
<text x="80" y="50" font-family="Arial, sans-serif" font-size="34" fill="#0F766E">Babysitter</text>
|
|
8
|
+
</svg>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"generatedAt": "2026-03-11T00:00:00.000Z",
|
|
4
|
+
"runtime": {
|
|
5
|
+
"name": "@a5c/babysitter-codex-runtime",
|
|
6
|
+
"version": "0.1.4"
|
|
7
|
+
},
|
|
8
|
+
"content": {
|
|
9
|
+
"name": "@a5c/babysitter-codex-content",
|
|
10
|
+
"version": "0.1.4",
|
|
11
|
+
"processLibrary": {
|
|
12
|
+
"repo": "https://github.com/a5c-ai/babysitter.git",
|
|
13
|
+
"processSubpath": "library",
|
|
14
|
+
"referenceSubpath": "library/reference",
|
|
15
|
+
"snapshotCommit": "unknown"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
package/bin/cli.js
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
const path = require('path');
|
|
5
|
+
const { spawnSync } = require('child_process');
|
|
6
|
+
|
|
7
|
+
const PACKAGE_ROOT = path.resolve(__dirname, '..');
|
|
8
|
+
|
|
9
|
+
function printUsage() {
|
|
10
|
+
console.error([
|
|
11
|
+
'Usage:',
|
|
12
|
+
' babysitter-codex install [--global]',
|
|
13
|
+
' babysitter-codex install --workspace [path]',
|
|
14
|
+
' babysitter-codex uninstall',
|
|
15
|
+
].join('\n'));
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function parseInstallArgs(argv) {
|
|
19
|
+
let scope = 'global';
|
|
20
|
+
let workspace = null;
|
|
21
|
+
const passthrough = [];
|
|
22
|
+
|
|
23
|
+
for (let i = 0; i < argv.length; i += 1) {
|
|
24
|
+
const arg = argv[i];
|
|
25
|
+
if (arg === '--global') {
|
|
26
|
+
if (scope === 'workspace') {
|
|
27
|
+
throw new Error('install accepts either --global or --workspace, not both');
|
|
28
|
+
}
|
|
29
|
+
scope = 'global';
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
if (arg === '--workspace') {
|
|
33
|
+
if (scope === 'global' && workspace !== null) {
|
|
34
|
+
throw new Error('install accepts either --global or --workspace, not both');
|
|
35
|
+
}
|
|
36
|
+
scope = 'workspace';
|
|
37
|
+
const next = argv[i + 1];
|
|
38
|
+
if (next && !next.startsWith('-')) {
|
|
39
|
+
workspace = path.resolve(next);
|
|
40
|
+
i += 1;
|
|
41
|
+
} else {
|
|
42
|
+
workspace = process.cwd();
|
|
43
|
+
}
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
passthrough.push(arg);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return {
|
|
50
|
+
scope,
|
|
51
|
+
workspace,
|
|
52
|
+
passthrough,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function runNodeScript(scriptPath, args, extraEnv = {}) {
|
|
57
|
+
const result = spawnSync(process.execPath, [scriptPath, ...args], {
|
|
58
|
+
cwd: process.cwd(),
|
|
59
|
+
stdio: 'inherit',
|
|
60
|
+
env: {
|
|
61
|
+
...process.env,
|
|
62
|
+
...extraEnv,
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
process.exitCode = result.status ?? 1;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function main() {
|
|
69
|
+
const [command, ...rest] = process.argv.slice(2);
|
|
70
|
+
if (!command || command === '--help' || command === '-h' || command === 'help') {
|
|
71
|
+
printUsage();
|
|
72
|
+
process.exitCode = command ? 0 : 1;
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if (command === 'install') {
|
|
77
|
+
const parsed = parseInstallArgs(rest);
|
|
78
|
+
if (parsed.scope === 'workspace') {
|
|
79
|
+
const args = [];
|
|
80
|
+
if (parsed.workspace) {
|
|
81
|
+
args.push('--workspace', parsed.workspace);
|
|
82
|
+
}
|
|
83
|
+
args.push(...parsed.passthrough);
|
|
84
|
+
runNodeScript(
|
|
85
|
+
path.join(PACKAGE_ROOT, 'scripts', 'team-install.js'),
|
|
86
|
+
args,
|
|
87
|
+
{ BABYSITTER_PACKAGE_ROOT: PACKAGE_ROOT },
|
|
88
|
+
);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
runNodeScript(path.join(PACKAGE_ROOT, 'bin', 'install.js'), parsed.passthrough);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
if (command === 'uninstall') {
|
|
96
|
+
runNodeScript(path.join(PACKAGE_ROOT, 'bin', 'uninstall.js'), rest);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
printUsage();
|
|
101
|
+
process.exitCode = 1;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
main();
|