@a5c-ai/babysitter-codex 0.1.6-staging.dfcd1fad → 0.1.6-staging.e8344d77
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 +45 -91
- package/assets/icon.svg +7 -0
- package/assets/logo.svg +8 -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 -37
- 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/{.codex/hooks.json → hooks.json} +3 -3
- package/package.json +13 -11
- package/scripts/team-install.js +34 -291
- package/skills/assimilate/SKILL.md +17 -0
- package/skills/babysit/SKILL.md +47 -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/.codex/config.toml +0 -24
- package/.codex/hooks/babysitter-session-start.sh +0 -15
- package/.codex/hooks/babysitter-stop-hook.sh +0 -15
- package/.codex/hooks/user-prompt-submit.sh +0 -15
- package/.codex/skills/babysitter/assimilate/SKILL.md +0 -58
- package/.codex/skills/babysitter/call/SKILL.md +0 -588
- package/.codex/skills/babysitter/doctor/SKILL.md +0 -89
- package/.codex/skills/babysitter/forever/SKILL.md +0 -45
- package/.codex/skills/babysitter/help/SKILL.md +0 -48
- package/.codex/skills/babysitter/issue/SKILL.md +0 -36
- package/.codex/skills/babysitter/model/SKILL.md +0 -31
- package/.codex/skills/babysitter/observe/SKILL.md +0 -38
- package/.codex/skills/babysitter/plan/SKILL.md +0 -44
- package/.codex/skills/babysitter/project-install/SKILL.md +0 -62
- package/.codex/skills/babysitter/resume/SKILL.md +0 -30
- package/.codex/skills/babysitter/retrospect/SKILL.md +0 -43
- package/.codex/skills/babysitter/team-install/SKILL.md +0 -35
- package/.codex/skills/babysitter/user-install/SKILL.md +0 -53
- package/.codex/skills/babysitter/yolo/SKILL.md +0 -48
- package/SKILL.md +0 -103
- package/agents/openai.yaml +0 -4
- package/bin/postinstall.js +0 -224
- package/commands/README.md +0 -23
- package/commands/assimilate.md +0 -26
- package/commands/call.md +0 -29
- package/commands/doctor.md +0 -27
- package/commands/forever.md +0 -26
- package/commands/help.md +0 -27
- package/commands/issue.md +0 -26
- package/commands/model.md +0 -26
- package/commands/observe.md +0 -26
- package/commands/plan.md +0 -26
- package/commands/project-install.md +0 -30
- package/commands/resume.md +0 -28
- package/commands/retrospect.md +0 -26
- package/commands/team-install.md +0 -28
- package/commands/user-install.md +0 -26
- package/commands/yolo.md +0 -27
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
CHANGED
|
@@ -2,41 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
Babysitter integration package for OpenAI Codex CLI.
|
|
4
4
|
|
|
5
|
-
This package
|
|
6
|
-
Codex plugin manifest and it does not run an external orchestrator. The Codex
|
|
7
|
-
plugin path is:
|
|
5
|
+
This package ships a real Codex plugin bundle:
|
|
8
6
|
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
- Babysitter SDK CLI for run creation, iteration, result posting, and
|
|
14
|
-
process-library binding
|
|
7
|
+
- `.codex-plugin/plugin.json`
|
|
8
|
+
- `skills/`
|
|
9
|
+
- `hooks.json`
|
|
10
|
+
- `hooks/`
|
|
15
11
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
- `SKILL.md`
|
|
21
|
-
- `.codex/`
|
|
22
|
-
- `agents/`
|
|
23
|
-
- `commands/`
|
|
24
|
-
- `bin/`
|
|
25
|
-
- `scripts/`
|
|
26
|
-
- `babysitter.lock.json`
|
|
27
|
-
|
|
28
|
-
It does not bundle the process library.
|
|
29
|
-
|
|
30
|
-
## Integration Model
|
|
31
|
-
|
|
32
|
-
Babysitter for Codex uses only the hooks model:
|
|
33
|
-
|
|
34
|
-
- `SessionStart` seeds Babysitter session state
|
|
35
|
-
- `UserPromptSubmit` handles prompt-time transformations
|
|
36
|
-
- `Stop` yields continuation back into the Babysitter orchestration loop
|
|
37
|
-
|
|
38
|
-
The process library is fetched at workspace-install time through the SDK CLI and
|
|
39
|
-
bound for active use in `.a5c/active/process-library.json`.
|
|
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.
|
|
40
16
|
|
|
41
17
|
## Installation
|
|
42
18
|
|
|
@@ -46,92 +22,70 @@ Install the SDK CLI first:
|
|
|
46
22
|
npm install -g @a5c-ai/babysitter-sdk
|
|
47
23
|
```
|
|
48
24
|
|
|
49
|
-
|
|
25
|
+
clone the repo and install the plugin globally:
|
|
50
26
|
|
|
51
27
|
```bash
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
Then install the Codex plugin payload into the target workspace:
|
|
28
|
+
git clone https://github.com/a5c-ai/babysitter.git
|
|
29
|
+
cd babysitter
|
|
30
|
+
codex
|
|
56
31
|
|
|
57
|
-
|
|
58
|
-
babysitter harness:install-plugin codex --workspace /path/to/repo
|
|
32
|
+
> /plugins
|
|
59
33
|
```
|
|
60
34
|
|
|
61
|
-
|
|
62
|
-
workspace, `postinstall` will also auto-run the packaged `team-install.js`
|
|
63
|
-
against that workspace.
|
|
64
|
-
|
|
65
|
-
## What `team-install.js` Does
|
|
35
|
+
then navigate to the 'babysitter' entry and select 'Install'.
|
|
66
36
|
|
|
67
|
-
|
|
68
|
-
`babysitter harness:install-plugin codex`.
|
|
37
|
+
## Integration Model
|
|
69
38
|
|
|
70
|
-
|
|
39
|
+
The plugin provides:
|
|
71
40
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
4. Binds `<workspace>/.a5c/process-library/babysitter-repo/library` with
|
|
77
|
-
`babysitter process-library:use`.
|
|
78
|
-
5. Writes `<workspace>/.a5c/active/process-library.json`.
|
|
79
|
-
6. Writes or refreshes `<workspace>/.codex/hooks.json`.
|
|
80
|
-
7. Creates or merges `<workspace>/.codex/config.toml` so the workspace has the
|
|
81
|
-
required Codex settings.
|
|
82
|
-
8. Writes `<workspace>/.a5c/team/install.json`.
|
|
83
|
-
9. Creates `<workspace>/.a5c/team/profile.json` if it does not already exist.
|
|
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`
|
|
84
45
|
|
|
85
|
-
|
|
86
|
-
|
|
46
|
+
The process library is fetched and bound through the SDK CLI in
|
|
47
|
+
`~/.a5c/active/process-library.json`.
|
|
87
48
|
|
|
88
|
-
##
|
|
49
|
+
## Workspace Output
|
|
89
50
|
|
|
90
|
-
After
|
|
51
|
+
After `install --workspace`, the important files are:
|
|
91
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/`
|
|
92
58
|
- `.codex/hooks.json`
|
|
59
|
+
- `.agents/plugins/marketplace.json`
|
|
93
60
|
- `.codex/config.toml`
|
|
94
61
|
- `.a5c/team/install.json`
|
|
95
62
|
- `.a5c/team/profile.json`
|
|
96
|
-
- `.a5c/active/process-library.json`
|
|
97
|
-
- `.a5c/process-library/babysitter-repo/library`
|
|
98
|
-
|
|
99
|
-
## Using It In Codex
|
|
100
|
-
|
|
101
|
-
Use normal Codex chat phrases:
|
|
102
|
-
|
|
103
|
-
```text
|
|
104
|
-
babysitter call implement authentication with tests
|
|
105
|
-
babysitter resume
|
|
106
|
-
babysitter doctor
|
|
107
|
-
babysitter team-install
|
|
108
|
-
babysitter project-install
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
The Codex skill and hooks own the plugin flow. Low-level SDK commands are still
|
|
112
|
-
the runtime mechanism, but they are not the user-facing interface.
|
|
113
63
|
|
|
114
64
|
## Verification
|
|
115
65
|
|
|
116
|
-
Verify the installed
|
|
66
|
+
Verify the installed plugin bundle:
|
|
117
67
|
|
|
118
68
|
```bash
|
|
119
69
|
npm ls -g @a5c-ai/babysitter-codex --depth=0
|
|
120
|
-
|
|
121
|
-
test -f ~/.codex/
|
|
122
|
-
test -f ~/.codex/
|
|
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
|
|
123
78
|
```
|
|
124
79
|
|
|
125
|
-
Verify the active process-library binding
|
|
80
|
+
Verify the active shared process-library binding:
|
|
126
81
|
|
|
127
82
|
```bash
|
|
128
|
-
babysitter process-library:active --
|
|
83
|
+
babysitter process-library:active --json
|
|
129
84
|
```
|
|
130
85
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
- Internal orchestration details: [.codex/skills/babysitter/call/SKILL.md](./.codex/skills/babysitter/call/SKILL.md)
|
|
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.
|
|
135
89
|
|
|
136
90
|
## License
|
|
137
91
|
|
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>
|
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();
|