@brickhouse-tech/sync-agents 0.2.6 → 0.3.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.
package/README.md CHANGED
@@ -6,29 +6,48 @@ AGENTS.md serves as an auto-generated index of everything in `.agents/` and is s
6
6
 
7
7
  ## Installation
8
8
 
9
- ### npm
9
+ ### npm (recommended for Node.js projects)
10
+
11
+ Ships native Go binaries via per-platform optional packages — no build step required.
10
12
 
11
13
  ```bash
12
- npm install @brickhouse-tech/sync-agents
14
+ npm install -g @brickhouse-tech/sync-agents
13
15
  ```
14
16
 
15
- or globally:
17
+ Or as a project devDependency:
16
18
 
17
19
  ```bash
18
- npm install -g @brickhouse-tech/sync-agents
20
+ npm install --save-dev @brickhouse-tech/sync-agents
21
+ ```
22
+
23
+ ### go install (no Node.js required)
24
+
25
+ ```bash
26
+ go install github.com/brickhouse-tech/sync-agents@latest
19
27
  ```
20
28
 
21
- ### Standalone (no npm required) deprecated
29
+ Requires Go 1.21+. The binary is placed in `$GOPATH/bin` (or `$HOME/go/bin`). Version is read from the module proxy at install time via `debug.ReadBuildInfo`.
22
30
 
23
- > **Deprecated.** The bash script is kept as a fallback for unsupported
24
- > triples but will be removed in a future major. Prefer the npm install
25
- > above; it ships native Go binaries via per-platform optional packages.
31
+ ### Homebrew
26
32
 
27
33
  ```bash
28
- curl -fsSL https://raw.githubusercontent.com/brickhouse-tech/sync-agents/main/src/sh/sync-agents.sh -o /usr/local/bin/sync-agents
29
- chmod +x /usr/local/bin/sync-agents
34
+ brew install brickhouse-tech/tap/sync-agents
30
35
  ```
31
36
 
37
+ The tap is updated automatically on every release via GoReleaser.
38
+
39
+ ### GitHub Releases (pre-built binaries)
40
+
41
+ Download the archive for your platform from the [Releases page](https://github.com/brickhouse-tech/sync-agents/releases), extract, and place the binary on your `PATH`:
42
+
43
+ ```bash
44
+ # Example: macOS arm64
45
+ curl -fsSL https://github.com/brickhouse-tech/sync-agents/releases/latest/download/sync-agents_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/').tar.gz | tar -xz
46
+ sudo mv sync-agents /usr/local/bin/
47
+ ```
48
+
49
+ SHA-256 checksums are published alongside each release as `checksums.txt`.
50
+
32
51
  ## Topology
33
52
 
34
53
  `.agents/` is the source of truth. It contains all rules, skills, workflows, and state for your agents:
@@ -1,8 +1,7 @@
1
1
  #!/usr/bin/env node
2
- // Launcher: prefer the Go binary shipped via the matching platform package
3
- // (@brickhouse-tech/sync-agents-<os>-<arch>); fall back to the bash script
4
- // at src/sh/sync-agents.sh so the package never bricks on an unsupported
5
- // triple.
2
+ // Launcher: resolve the Go binary shipped via the matching platform package
3
+ // (@brickhouse-tech/sync-agents-<os>-<arch>). Exits with a clear error on
4
+ // unsupported triples rather than silently falling back to a bash script.
6
5
 
7
6
  const { spawnSync } = require("node:child_process");
8
7
  const path = require("node:path");
@@ -17,22 +16,25 @@ function resolveGoBinary() {
17
16
  const candidate = path.join(path.dirname(pkgJson), "bin", exe);
18
17
  if (fs.existsSync(candidate)) return candidate;
19
18
  } catch {
20
- // platform package not installed (npm skipped it via os/cpu mismatch
21
- // or it failed as an optionalDependency); fall through to bash.
19
+ // platform package not installed or not available for this triple.
22
20
  }
23
21
  return null;
24
22
  }
25
23
 
26
- function fallbackShellScript() {
27
- return path.join(__dirname, "..", "src", "sh", "sync-agents.sh");
28
- }
24
+ const target = resolveGoBinary();
29
25
 
30
- const target = resolveGoBinary() ?? fallbackShellScript();
31
- const isShell = target.endsWith(".sh");
26
+ if (!target) {
27
+ console.error(
28
+ `sync-agents: no pre-built binary for ${process.platform}/${process.arch}.\n` +
29
+ `Install via one of the supported channels:\n` +
30
+ ` go install github.com/brickhouse-tech/sync-agents@latest\n` +
31
+ ` brew install brickhouse-tech/tap/sync-agents\n` +
32
+ ` https://github.com/brickhouse-tech/sync-agents/releases`
33
+ );
34
+ process.exit(1);
35
+ }
32
36
 
33
- const result = spawnSync(isShell ? "bash" : target, isShell ? [target, ...process.argv.slice(2)] : process.argv.slice(2), {
34
- stdio: "inherit",
35
- });
37
+ const result = spawnSync(target, process.argv.slice(2), { stdio: "inherit" });
36
38
 
37
39
  if (result.error) {
38
40
  console.error(`sync-agents: failed to exec ${target}: ${result.error.message}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brickhouse-tech/sync-agents",
3
- "version": "0.2.6",
3
+ "version": "0.3.0",
4
4
  "description": "Simple scripts to DRY up common agent interactions across multiple LLM providers.",
5
5
  "keywords": [
6
6
  "agents",
@@ -23,26 +23,27 @@
23
23
  "sync-agents": "bin/sync-agents.js"
24
24
  },
25
25
  "files": [
26
- "bin/sync-agents.js",
27
- "src/**/*"
26
+ "bin/sync-agents.js"
28
27
  ],
29
28
  "optionalDependencies": {
30
- "@brickhouse-tech/sync-agents-darwin-arm64": "0.2.6",
31
- "@brickhouse-tech/sync-agents-darwin-x64": "0.2.6",
32
- "@brickhouse-tech/sync-agents-linux-arm64": "0.2.6",
33
- "@brickhouse-tech/sync-agents-linux-x64": "0.2.6",
34
- "@brickhouse-tech/sync-agents-win32-x64": "0.2.6"
29
+ "@brickhouse-tech/sync-agents-darwin-arm64": "0.3.0",
30
+ "@brickhouse-tech/sync-agents-darwin-x64": "0.3.0",
31
+ "@brickhouse-tech/sync-agents-linux-arm64": "0.3.0",
32
+ "@brickhouse-tech/sync-agents-linux-x64": "0.3.0",
33
+ "@brickhouse-tech/sync-agents-win32-x64": "0.3.0"
35
34
  },
36
35
  "overrides": {
37
36
  "file-type": ">=22",
38
37
  "picomatch": ">=4.0.4"
39
38
  },
40
39
  "scripts": {
41
- "lint": "shellcheck src/sh/*.sh",
42
- "test": "npx concurrently --names \"sh,go\" -c \"cyan,magenta\" \"npm run test:sh\" \"npm run test:go\"",
43
- "test:sh": "npx bats test/",
44
- "test:go": "make test",
45
- "prepare": "make install",
40
+ "prepare": "node scripts/install.js",
41
+ "build": "node scripts/build.js",
42
+ "build:platform": "node scripts/build-platform.js",
43
+ "build:all": "node scripts/build-all.js",
44
+ "clean": "node scripts/clean.js",
45
+ "test": "npm run build && npx bats test/sync-agents.bats test/integration-global.bats",
46
+ "test:integration": "npm run build && npx bats test/integration-global.bats",
46
47
  "prepack": "node scripts/sync-optional-deps.js",
47
48
  "bootstrap:publish": "bash scripts/bootstrap-platform-publish.sh"
48
49
  },
@@ -1,6 +0,0 @@
1
-
2
- ---
3
- trigger: always_on
4
- ---
5
-
6
- # ${NAME}
@@ -1,23 +0,0 @@
1
- ---
2
- trigger: always_on
3
- ---
4
-
5
- # ${NAME}
6
-
7
- ## Description
8
-
9
- Brief description of what this skill enables.
10
-
11
- ## Usage
12
-
13
- When to use this skill and how to invoke it.
14
-
15
- ## Examples
16
-
17
- ```
18
- Example usage or invocation here.
19
- ```
20
-
21
- ## Notes
22
-
23
- Any caveats, prerequisites, or related skills.
@@ -1,24 +0,0 @@
1
- ---
2
- trigger: always_on
3
- ---
4
-
5
- # State
6
-
7
- Track project progress, current objectives, and resumption context.
8
- Update this file regularly so agents can pick up where they left off.
9
-
10
- ## Save location
11
-
12
- ../STATE_${CONTEXT_DESCRIPTION}_YYYYMMDDHHMMSS.md
13
-
14
- A new file will be created each time during agent executions as a short summary of the current state, progress, blockers, and next steps. This allows for a historical record of the project's evolution and provides context for future agent executions. The timestamp in the filename helps to keep track of when each state was recorded, and the context description provides a quick reference to the specific project or objective being tracked. Lastly there should exist session information / session id so we can resume openclaw tui and or claude-code sessions with the relevant context and state information.
15
-
16
- Save both if necessary, but the state file is more important for tracking progress and providing context for future executions. The session information can be useful for resuming interactive sessions, but the state file is essential for maintaining a record of the project's evolution and providing context for future agent executions.
17
-
18
- ## Format
19
-
20
- ### YYYYMMDDHHMMSS STATE: <objective>
21
-
22
- Description of current state, progress, blockers, and next steps.
23
-
24
- Be sure to indicate whats left and what done via - [ ] checkboxes in state file
@@ -1,24 +0,0 @@
1
- ---
2
- trigger: always_on
3
- ---
4
-
5
- # ${NAME}
6
-
7
- ## Trigger
8
-
9
- Describe when this workflow should be activated.
10
-
11
- ## Steps
12
-
13
- 1. Step one
14
- 2. Step two
15
- 3. Step three
16
-
17
- ## Conditions
18
-
19
- - Pre-conditions that must be met
20
- - Any guards or checks
21
-
22
- ## Output
23
-
24
- What the workflow produces or changes when complete.