@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.
Files changed (69) hide show
  1. package/.app.json +3 -0
  2. package/.codex-plugin/plugin.json +47 -0
  3. package/README.md +45 -91
  4. package/assets/icon.svg +7 -0
  5. package/assets/logo.svg +8 -0
  6. package/bin/cli.js +104 -0
  7. package/bin/install-shared.js +509 -0
  8. package/bin/install.js +48 -0
  9. package/bin/uninstall.js +40 -37
  10. package/hooks/babysitter-session-start.sh +37 -0
  11. package/hooks/babysitter-stop-hook.sh +37 -0
  12. package/hooks/user-prompt-submit.sh +39 -0
  13. package/{.codex/hooks.json → hooks.json} +3 -3
  14. package/package.json +13 -11
  15. package/scripts/team-install.js +34 -291
  16. package/skills/assimilate/SKILL.md +17 -0
  17. package/skills/babysit/SKILL.md +47 -0
  18. package/skills/call/SKILL.md +17 -0
  19. package/skills/doctor/SKILL.md +16 -0
  20. package/skills/forever/SKILL.md +15 -0
  21. package/skills/help/SKILL.md +15 -0
  22. package/skills/issue/SKILL.md +16 -0
  23. package/skills/model/SKILL.md +15 -0
  24. package/skills/observe/SKILL.md +15 -0
  25. package/skills/plan/SKILL.md +16 -0
  26. package/skills/project-install/SKILL.md +15 -0
  27. package/skills/resume/SKILL.md +15 -0
  28. package/skills/retrospect/SKILL.md +15 -0
  29. package/skills/team-install/SKILL.md +15 -0
  30. package/skills/user-install/SKILL.md +15 -0
  31. package/skills/yolo/SKILL.md +19 -0
  32. package/.codex/config.toml +0 -24
  33. package/.codex/hooks/babysitter-session-start.sh +0 -15
  34. package/.codex/hooks/babysitter-stop-hook.sh +0 -15
  35. package/.codex/hooks/user-prompt-submit.sh +0 -15
  36. package/.codex/skills/babysitter/assimilate/SKILL.md +0 -58
  37. package/.codex/skills/babysitter/call/SKILL.md +0 -588
  38. package/.codex/skills/babysitter/doctor/SKILL.md +0 -89
  39. package/.codex/skills/babysitter/forever/SKILL.md +0 -45
  40. package/.codex/skills/babysitter/help/SKILL.md +0 -48
  41. package/.codex/skills/babysitter/issue/SKILL.md +0 -36
  42. package/.codex/skills/babysitter/model/SKILL.md +0 -31
  43. package/.codex/skills/babysitter/observe/SKILL.md +0 -38
  44. package/.codex/skills/babysitter/plan/SKILL.md +0 -44
  45. package/.codex/skills/babysitter/project-install/SKILL.md +0 -62
  46. package/.codex/skills/babysitter/resume/SKILL.md +0 -30
  47. package/.codex/skills/babysitter/retrospect/SKILL.md +0 -43
  48. package/.codex/skills/babysitter/team-install/SKILL.md +0 -35
  49. package/.codex/skills/babysitter/user-install/SKILL.md +0 -53
  50. package/.codex/skills/babysitter/yolo/SKILL.md +0 -48
  51. package/SKILL.md +0 -103
  52. package/agents/openai.yaml +0 -4
  53. package/bin/postinstall.js +0 -224
  54. package/commands/README.md +0 -23
  55. package/commands/assimilate.md +0 -26
  56. package/commands/call.md +0 -29
  57. package/commands/doctor.md +0 -27
  58. package/commands/forever.md +0 -26
  59. package/commands/help.md +0 -27
  60. package/commands/issue.md +0 -26
  61. package/commands/model.md +0 -26
  62. package/commands/observe.md +0 -26
  63. package/commands/plan.md +0 -26
  64. package/commands/project-install.md +0 -30
  65. package/commands/resume.md +0 -28
  66. package/commands/retrospect.md +0 -26
  67. package/commands/team-install.md +0 -28
  68. package/commands/user-install.md +0 -26
  69. package/commands/yolo.md +0 -27
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 CHANGED
@@ -2,41 +2,17 @@
2
2
 
3
3
  Babysitter integration package for OpenAI Codex CLI.
4
4
 
5
- This package is a Codex skill bundle plus installer assets. It is not a native
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
- - installed skill bundle under `~/.codex/skills/babysitter-codex`
10
- - workspace `.codex/hooks.json`
11
- - workspace `.codex/config.toml`
12
- - workspace `.a5c/` state
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
- ## What This Package Installs
17
-
18
- Global install copies the Codex-facing bundle into `CODEX_HOME`:
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
- Install the Codex package:
25
+ clone the repo and install the plugin globally:
50
26
 
51
27
  ```bash
52
- npm install -g @a5c-ai/babysitter-codex
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
- ```bash
58
- babysitter harness:install-plugin codex --workspace /path/to/repo
32
+ > /plugins
59
33
  ```
60
34
 
61
- If `npm install -g @a5c-ai/babysitter-codex` is run from inside the target
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
- `scripts/team-install.js` is the workspace installer used by the package and by
68
- `babysitter harness:install-plugin codex`.
37
+ ## Integration Model
69
38
 
70
- It:
39
+ The plugin provides:
71
40
 
72
- 1. Resolves the installed package root.
73
- 2. Reads `babysitter.lock.json`.
74
- 3. Clones or updates the upstream Babysitter repo into
75
- `<workspace>/.a5c/process-library/babysitter-repo`.
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
- It does not create an external orchestrator, bundle the process library, or
86
- turn the workspace into a fake Codex plugin manifest.
46
+ The process library is fetched and bound through the SDK CLI in
47
+ `~/.a5c/active/process-library.json`.
87
48
 
88
- ## Resulting Workspace Files
49
+ ## Workspace Output
89
50
 
90
- After a successful workspace install, the important files are:
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 skill bundle:
66
+ Verify the installed plugin bundle:
117
67
 
118
68
  ```bash
119
69
  npm ls -g @a5c-ai/babysitter-codex --depth=0
120
- ls -1 ~/.codex/skills/babysitter-codex
121
- test -f ~/.codex/skills/babysitter-codex/scripts/team-install.js
122
- test -f ~/.codex/skills/babysitter-codex/.codex/hooks/babysitter-stop-hook.sh
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 for a workspace:
80
+ Verify the active shared process-library binding:
126
81
 
127
82
  ```bash
128
- babysitter process-library:active --state-dir /path/to/repo/.a5c --json
83
+ babysitter process-library:active --json
129
84
  ```
130
85
 
131
- ## Docs
132
-
133
- - [commands/README.md](./commands/README.md)
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
 
@@ -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>
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();