@a5c-ai/babysitter-github 0.1.1-staging.0a3fc67d → 0.1.1-staging.0dc03363

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/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@a5c-ai/babysitter-github",
3
- "version": "0.1.1-staging.0a3fc67d",
3
+ "version": "0.1.1-staging.0dc03363",
4
4
  "description": "Babysitter orchestration plugin for GitHub Copilot CLI with lifecycle hooks and SDK-managed process-library bootstrapping",
5
5
  "scripts": {
6
- "test": "echo \"No tests yet\"",
6
+ "test": "node scripts/sync-command-surfaces.js --check && node test/cloud-agent-install.test.js",
7
+ "sync:commands": "node scripts/sync-command-surfaces.js",
7
8
  "postinstall": "node bin/install.js",
8
9
  "preuninstall": "node bin/uninstall.js",
9
10
  "team:install": "node scripts/team-install.js",
@@ -21,7 +22,10 @@
21
22
  "bin/",
22
23
  "scripts/",
23
24
  "versions.json",
24
- "AGENTS.md"
25
+ "AGENTS.md",
26
+ "commands/",
27
+ ".github/",
28
+ "README.md"
25
29
  ],
26
30
  "keywords": [
27
31
  "babysitter",
@@ -41,6 +45,6 @@
41
45
  },
42
46
  "homepage": "https://github.com/a5c-ai/babysitter/tree/main/plugins/babysitter-github#readme",
43
47
  "dependencies": {
44
- "@a5c-ai/babysitter-sdk": "0.0.183-staging.0a3fc67d"
48
+ "@a5c-ai/babysitter-sdk": "0.0.184-staging.0dc03363"
45
49
  }
46
50
  }
package/plugin.json CHANGED
@@ -2,57 +2,12 @@
2
2
  "name": "babysitter",
3
3
  "version": "0.1.0",
4
4
  "description": "Orchestrate complex, multi-step workflows with event-sourced state management, hook-based extensibility, and human-in-the-loop approval -- powered by the Babysitter SDK",
5
- "author": "a5c.ai",
5
+ "author": { "name": "a5c.ai", "email": "support@a5c.ai" },
6
6
  "license": "MIT",
7
- "hooks": {
8
- "sessionStart": "hooks/session-start.sh",
9
- "sessionEnd": "hooks/session-end.sh",
10
- "userPromptSubmitted": "hooks/user-prompt-submitted.sh"
11
- },
12
- "commands": [],
13
- "skills": [
14
- {
15
- "name": "babysit",
16
- "file": "skills/babysit/SKILL.md"
17
- },
18
- {
19
- "name": "call",
20
- "file": "skills/call/SKILL.md"
21
- },
22
- {
23
- "name": "doctor",
24
- "file": "skills/doctor/SKILL.md"
25
- },
26
- {
27
- "name": "retrospect",
28
- "file": "skills/retrospect/SKILL.md"
29
- },
30
- {
31
- "name": "resume",
32
- "file": "skills/resume/SKILL.md"
33
- },
34
- {
35
- "name": "observe",
36
- "file": "skills/observe/SKILL.md"
37
- },
38
- {
39
- "name": "help",
40
- "file": "skills/help/SKILL.md"
41
- },
42
- {
43
- "name": "plan",
44
- "file": "skills/plan/SKILL.md"
45
- },
46
- {
47
- "name": "assimilate",
48
- "file": "skills/assimilate/SKILL.md"
49
- },
50
- {
51
- "name": "user-install",
52
- "file": "skills/user-install/SKILL.md"
53
- }
54
- ],
55
- "contextFileName": "AGENTS.md",
7
+ "skills": "skills/",
8
+ "hooks": "hooks.json",
9
+ "commands": "commands/",
10
+ "agents": "AGENTS.md",
56
11
  "repository": {
57
12
  "type": "git",
58
13
  "url": "https://github.com/a5c-ai/babysitter"
@@ -0,0 +1,62 @@
1
+ 'use strict';
2
+
3
+ const path = require('path');
4
+ const {
5
+ listDirectories,
6
+ listMarkdownBasenames,
7
+ reportCheckResult,
8
+ syncCommandMirrors,
9
+ syncSkillsFromCommands,
10
+ } = require('../../../scripts/plugin-command-sync-lib.cjs');
11
+
12
+ const PACKAGE_ROOT = path.resolve(__dirname, '..');
13
+ const REPO_ROOT = path.resolve(PACKAGE_ROOT, '..', '..');
14
+ const ROOT_COMMANDS = path.join(REPO_ROOT, 'plugins', 'babysitter', 'commands');
15
+ const PLUGIN_COMMANDS = path.join(PACKAGE_ROOT, 'commands');
16
+ const PLUGIN_SKILLS = path.join(PACKAGE_ROOT, 'skills');
17
+ const LABEL = 'babysitter-github sync';
18
+
19
+ function getMirroredCommandNames() {
20
+ const local = new Set(listMarkdownBasenames(PLUGIN_COMMANDS));
21
+ return listMarkdownBasenames(ROOT_COMMANDS).filter((name) => local.has(name));
22
+ }
23
+
24
+ function getDerivedSkillNames() {
25
+ const local = new Set(listDirectories(PLUGIN_SKILLS));
26
+ return listMarkdownBasenames(PLUGIN_COMMANDS).filter((name) => local.has(name));
27
+ }
28
+
29
+ function main() {
30
+ const check = process.argv.includes('--check');
31
+ const mirrorResult = syncCommandMirrors({
32
+ label: LABEL,
33
+ sourceRoot: ROOT_COMMANDS,
34
+ targetRoot: PLUGIN_COMMANDS,
35
+ names: getMirroredCommandNames(),
36
+ check,
37
+ cwd: PACKAGE_ROOT,
38
+ });
39
+ const skillsResult = syncSkillsFromCommands({
40
+ label: LABEL,
41
+ sourceRoot: PLUGIN_COMMANDS,
42
+ skillsRoot: PLUGIN_SKILLS,
43
+ names: getDerivedSkillNames(),
44
+ check,
45
+ cwd: PACKAGE_ROOT,
46
+ });
47
+
48
+ if (check) {
49
+ reportCheckResult(LABEL, [...mirrorResult.stale, ...skillsResult.stale]);
50
+ return;
51
+ }
52
+
53
+ const updated = mirrorResult.updated + skillsResult.updated;
54
+ if (updated === 0) {
55
+ console.log(`[${LABEL}] no GitHub plugin command changes were needed.`);
56
+ return;
57
+ }
58
+
59
+ console.log(`[${LABEL}] updated ${updated} GitHub plugin file(s).`);
60
+ }
61
+
62
+ main();
@@ -16,11 +16,14 @@ const {
16
16
  function parseArgs(argv) {
17
17
  const args = {
18
18
  workspace: process.cwd(),
19
+ cloudAgent: false,
19
20
  dryRun: false,
20
21
  };
21
22
  for (let i = 2; i < argv.length; i += 1) {
22
23
  if (argv[i] === '--workspace' && argv[i + 1]) {
23
24
  args.workspace = path.resolve(argv[++i]);
25
+ } else if (argv[i] === '--cloud-agent') {
26
+ args.cloudAgent = true;
24
27
  } else if (argv[i] === '--dry-run') {
25
28
  args.dryRun = true;
26
29
  }
@@ -32,7 +35,7 @@ function main() {
32
35
  const args = parseArgs(process.argv);
33
36
  const packageRoot = path.resolve(process.env.BABYSITTER_PACKAGE_ROOT || path.join(__dirname, '..'));
34
37
  const workspaceRoot = args.workspace;
35
- const workspacePluginRoot = path.join(workspaceRoot, 'plugins', 'babysitter-github');
38
+ const workspacePluginRoot = path.join(workspaceRoot, 'plugins', 'babysitter');
36
39
  const workspaceMarketplacePath = path.join(workspaceRoot, '.agents', 'plugins', 'marketplace.json');
37
40
  const workspaceCopilotDir = path.join(workspaceRoot, '.copilot');
38
41
 
@@ -58,6 +61,10 @@ function main() {
58
61
  ensureMarketplaceEntry(workspaceMarketplacePath, workspacePluginRoot);
59
62
  registerCopilotPlugin(workspacePluginRoot);
60
63
  installCopilotSurface(packageRoot, workspaceCopilotDir);
64
+ if (args.cloudAgent) {
65
+ const { installCloudAgentSurface } = require('../bin/install-shared');
66
+ installInfo.cloudAgent = installCloudAgentSurface(packageRoot, workspaceRoot);
67
+ }
61
68
 
62
69
  const active = ensureGlobalProcessLibrary(packageRoot);
63
70
  installInfo.processLibraryStateFile = active.stateFile;
@@ -1,17 +1,38 @@
1
1
  ---
2
2
  name: assimilate
3
- description: Assimilate an external methodology, repo, spec, or process into a Babysitter workflow.
3
+ description: Assimilate an external methodology, harness, or specification into babysitter process definitions with skills and agents.
4
4
  ---
5
5
 
6
6
  # assimilate
7
7
 
8
- Load and use the installed `babysit` skill.
8
+ Invoke the babysitter:babysit skill (using the Skill tool) and follow its instructions (SKILL.md).
9
9
 
10
- Resolve the request in `assimilate` mode:
10
+ Use the assimilation domain processes from the active process library to convert external sources into well-defined babysitter process definitions with accompanying skills/ and agents/ directories.
11
11
 
12
- - treat everything after `$assimilate` as the target repo, methodology, spec,
13
- or reference to ingest
14
- - follow the `babysit` skill contract for research, process-library discovery,
15
- and orchestration
16
- - do not create a separate command surface here; this skill only forwards into
17
- `babysit`
12
+ If the workspace does not already have an active process-library binding, initialize it first through the shared global SDK binding:
13
+
14
+ ```bash
15
+ babysitter process-library:active --json
16
+ ```
17
+
18
+ Run the process after formalizing it.
19
+
20
+ Available assimilation workflows:
21
+ - **methodology-assimilation** (`specializations/meta/assimilation/workflows/methodology-assimilation`) - Learns an external methodology from its repo and converts procedural instructions, commands, and manual flows into babysitter processes with refactored skills and agents. Supports output as methodology or specialization.
22
+ - **harness integration** (`specializations/meta/assimilation/harness/*`) - Integrates babysitter SDK with a specific AI coding harness (generic, codex, opencode, gemini-cli, openclaw, antigravity).
23
+
24
+ During the interview phase, determine which assimilation workflow to use based on the user's target:
25
+ - If the target is a **repo URL or methodology name** then use the methodology-assimilation workflow.
26
+ - If the target is a **harness name** (e.g. codex, opencode, antigravity) then use the matching harness process.
27
+ - If the target is a **specification or other source** then adapt the methodology-assimilation workflow for the spec format.
28
+ - If unclear, ask the user to clarify the assimilation target and type.
29
+
30
+ ## After Assimilation: Contribute Back
31
+
32
+ After successfully assimilating a methodology or harness integration, prompt the user to share it with the community. The assimilated process definitions, skills, and agents could benefit other babysitter users:
33
+
34
+ - **Completed a methodology assimilation**: `/babysitter:contrib library contribution: assimilated [methodology-name] into babysitter process definitions`
35
+ - **Completed a harness integration**: `/babysitter:contrib library contribution: [harness-name] harness integration`
36
+ - **Hit issues during assimilation** (e.g. unsupported patterns, missing SDK features): `/babysitter:contrib bug report: assimilation of [target] failed because [description]` or `/babysitter:contrib feature request: [what the SDK needs to support]`
37
+
38
+ Even just reporting that an assimilation didn't work well helps improve babysitter for everyone.
@@ -1,17 +1,8 @@
1
1
  ---
2
2
  name: call
3
- description: Start a new Babysitter orchestration run from GitHub Copilot CLI.
3
+ description: Orchestrate a babysitter run. use this command to start babysitting a complex workflow.
4
4
  ---
5
5
 
6
6
  # call
7
7
 
8
- Load and use the installed `babysit` skill.
9
-
10
- Resolve the request in `call` mode:
11
-
12
- - treat everything after `$call` as the initial Babysitter request for a new
13
- orchestration run
14
- - create the process, create the run, and enter the Babysitter loop
15
- - using this always means the user meant an interactive run
16
- - do not create a separate command surface here; this skill only forwards into
17
- `babysit`
8
+ Invoke the babysitter:babysit skill (using the Skill tool) and follow its instructions (SKILL.md).