@a5c-ai/babysitter-codex 0.1.11-staging.f6cb97d6 → 5.0.0

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.
@@ -1,21 +1,23 @@
1
1
  {
2
2
  "name": "babysitter",
3
- "version": "0.1.5",
4
- "description": "Babysitter orchestration plugin for Codex with skill entrypoints and lifecycle hooks.",
3
+ "version": "5.0.0",
4
+ "description": "Orchestrate complex, multi-step workflows with event-sourced state management, hook-based extensibility, and human-in-the-loop approval",
5
5
  "author": {
6
6
  "name": "a5c.ai",
7
- "email": "support@a5c.ai",
8
- "url": "https://github.com/a5c-ai/babysitter"
7
+ "email": "support@a5c.ai"
9
8
  },
10
- "homepage": "https://github.com/a5c-ai/babysitter/tree/main/plugins/babysitter-codex#readme",
11
- "repository": "https://github.com/a5c-ai/babysitter",
12
9
  "license": "MIT",
10
+ "repository": "https://github.com/a5c-ai/babysitter",
13
11
  "keywords": [
14
- "babysitter",
15
- "codex",
16
12
  "orchestration",
13
+ "workflow",
14
+ "automation",
15
+ "event-sourced",
17
16
  "hooks",
18
- "skills"
17
+ "TDD",
18
+ "quality-convergence",
19
+ "agent",
20
+ "LLM"
19
21
  ],
20
22
  "skills": "./skills/",
21
23
  "hooks": "./hooks.json",
@@ -41,7 +43,7 @@
41
43
  ],
42
44
  "brandColor": "#0F766E",
43
45
  "composerIcon": "./assets/icon.svg",
44
- "logo": "./assets/logo.svg",
45
- "screenshots": []
46
- }
46
+ "logo": "./assets/logo.png"
47
+ },
48
+ "homepage": "https://github.com/a5c-ai/babysitter/tree/main/plugins/babysitter-codex#readme"
47
49
  }
package/README.md CHANGED
@@ -10,9 +10,10 @@ This package ships a real Codex plugin bundle:
10
10
  - `hooks/`
11
11
 
12
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.
13
+ state. Global install writes the plugin bundle to `~/.agents/plugins/babysitter`
14
+ and updates `~/.agents/plugins/marketplace.json` so Codex can load the plugin
15
+ through its marketplace surface. Workspace install continues to materialize a
16
+ workspace-local Codex surface for team setup.
16
17
 
17
18
  ## Installation
18
19
 
@@ -25,8 +26,8 @@ npm install -g @a5c-ai/babysitter-sdk
25
26
  clone the repo and install the plugin globally:
26
27
 
27
28
  ```bash
28
- git clone https://github.com/a5c-ai/babysitter.git
29
- cd babysitter
29
+ npx -y @a5c-ai/babysitter-codex install --global
30
+
30
31
  codex
31
32
 
32
33
  > /plugins
@@ -34,6 +35,10 @@ codex
34
35
 
35
36
  then navigate to the 'babysitter' entry and select 'Install'.
36
37
 
38
+ If Codex was already open when you ran `install --global`, start a new thread
39
+ after installing from `/plugins` before expecting `babysitter:*` skills such as
40
+ `$babysitter:babysit` or `$babysitter:call` to appear in the mention picker.
41
+
37
42
  ## Integration Model
38
43
 
39
44
  The plugin provides:
@@ -50,9 +55,9 @@ The process library is fetched and bound through the SDK CLI in
50
55
 
51
56
  After `install --workspace`, the important files are:
52
57
 
53
- - `plugins/babysitter/.codex-plugin/plugin.json`
54
- - `plugins/babysitter/skills/babysit/SKILL.md`
55
- - `plugins/babysitter/hooks.json`
58
+ - `.agents/plugins/babysitter/.codex-plugin/plugin.json`
59
+ - `.agents/plugins/babysitter/skills/babysit/SKILL.md`
60
+ - `.agents/plugins/babysitter/hooks.json`
56
61
  - `.codex/skills/`
57
62
  - `.codex/hooks/`
58
63
  - `.codex/hooks.json`
@@ -67,13 +72,10 @@ Verify the installed plugin bundle:
67
72
 
68
73
  ```bash
69
74
  npm ls -g @a5c-ai/babysitter-codex --depth=0
70
- test -f ~/.codex/plugins/babysitter/.codex-plugin/plugin.json
71
- test -f ~/.codex/plugins/babysitter/hooks.json
72
- test -f ~/.codex/plugins/babysitter/hooks/babysitter-stop-hook.sh
73
- test -f ~/.codex/plugins/babysitter/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
75
+ test -f ~/.agents/plugins/babysitter/.codex-plugin/plugin.json
76
+ test -f ~/.agents/plugins/babysitter/hooks.json
77
+ test -f ~/.agents/plugins/babysitter/hooks/babysitter-proxied-stop.sh
78
+ test -f ~/.agents/plugins/babysitter/skills/babysit/SKILL.md
77
79
  test -f ~/.agents/plugins/marketplace.json
78
80
  ```
79
81
 
Binary file
package/bin/cli.js CHANGED
@@ -5,6 +5,8 @@ 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([
@@ -23,16 +25,10 @@ function parseInstallArgs(argv) {
23
25
  for (let i = 0; i < argv.length; i += 1) {
24
26
  const arg = argv[i];
25
27
  if (arg === '--global') {
26
- if (scope === 'workspace') {
27
- throw new Error('install accepts either --global or --workspace, not both');
28
- }
29
28
  scope = 'global';
30
29
  continue;
31
30
  }
32
31
  if (arg === '--workspace') {
33
- if (scope === 'global' && workspace !== null) {
34
- throw new Error('install accepts either --global or --workspace, not both');
35
- }
36
32
  scope = 'workspace';
37
33
  const next = argv[i + 1];
38
34
  if (next && !next.startsWith('-')) {
@@ -46,21 +42,14 @@ function parseInstallArgs(argv) {
46
42
  passthrough.push(arg);
47
43
  }
48
44
 
49
- return {
50
- scope,
51
- workspace,
52
- passthrough,
53
- };
45
+ return { scope, workspace, passthrough };
54
46
  }
55
47
 
56
48
  function runNodeScript(scriptPath, args, extraEnv = {}) {
57
49
  const result = spawnSync(process.execPath, [scriptPath, ...args], {
58
50
  cwd: process.cwd(),
59
51
  stdio: 'inherit',
60
- env: {
61
- ...process.env,
62
- ...extraEnv,
63
- },
52
+ env: { ...process.env, ...extraEnv },
64
53
  });
65
54
  process.exitCode = result.status ?? 1;
66
55
  }
@@ -74,6 +63,9 @@ function main() {
74
63
  }
75
64
 
76
65
  if (command === 'install') {
66
+ if (shared && typeof shared.harnessCliRoute === 'function' && shared.harnessCliRoute(rest, PACKAGE_ROOT, runNodeScript)) {
67
+ return;
68
+ }
77
69
  const parsed = parseInstallArgs(rest);
78
70
  if (parsed.scope === 'workspace') {
79
71
  const args = [];
@@ -84,7 +76,7 @@ function main() {
84
76
  runNodeScript(
85
77
  path.join(PACKAGE_ROOT, 'scripts', 'team-install.js'),
86
78
  args,
87
- { BABYSITTER_PACKAGE_ROOT: PACKAGE_ROOT },
79
+ { PLUGIN_PACKAGE_ROOT: PACKAGE_ROOT },
88
80
  );
89
81
  return;
90
82
  }