@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 ADDED
@@ -0,0 +1,3 @@
1
+ {
2
+ "apps": {}
3
+ }
@@ -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
@@ -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>
@@ -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();