@trygentic/agentloop 0.5.0-alpha.5 → 0.6.0-alpha.6

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 (3) hide show
  1. package/README.md +24 -5
  2. package/bin/agentloop +60 -83
  3. package/package.json +4 -4
package/README.md CHANGED
@@ -63,14 +63,33 @@ npm run build
63
63
  ```bash
64
64
  # Start interactive mode
65
65
  agentloop
66
+ ```
66
67
 
67
- # Run the orchestrator
68
- agentloop orchestrator
68
+ ### First-Time Setup
69
+
70
+ On first launch, AgentLoop opens the **Model Selection** screen. Choose how you want to connect:
71
+
72
+ 1. **AgentLoop Subscription** - Use subscription credits for premium models
73
+ 2. **Free Models** - Provided by OpenCode, no API key required
74
+ 3. **Bring Your Own API Key** - Connect your preferred provider:
75
+ - **Anthropic** - Direct API key or Claude Code CLI (recommended for Pro/Max subscribers)
76
+ - **OpenAI** - Direct API key
77
+ - **Google Gemini** - Direct API key
78
+ - **OpenRouter** - Access 100+ models
69
79
 
70
- # Send a single query
71
- agentloop query "Analyze the architecture of this project"
80
+ For Claude models with your Pro/Max subscription:
81
+ ```bash
82
+ # Install Claude Code CLI
83
+ npm install -g @anthropic-ai/claude-code
84
+
85
+ # Authenticate
86
+ claude
72
87
  ```
73
88
 
89
+ Then restart AgentLoop—your Claude models will appear automatically.
90
+
91
+ To change models later, use the `/models` command.
92
+
74
93
  ### Interacting with AgentLoop
75
94
 
76
95
  In interactive mode, you can communicate with agents using natural language—just type your message and press Enter. No slash commands required for conversations. AgentLoop uses tool calls behind the scenes to update the kanban board, manage tasks and dependencies in the DAG, and delegate work to specialized agents like Engineer and QA.
@@ -604,7 +623,7 @@ agentloop config
604
623
 
605
624
  ## Requirements
606
625
 
607
- - Node.js >= 18.0.0
626
+ - Node.js >= 22.0.0
608
627
  - npm or yarn
609
628
  - Podman (optional, for container sandboxing)
610
629
 
package/bin/agentloop CHANGED
@@ -1,83 +1,60 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * AgentLoop npm shim
5
- *
6
- * This thin wrapper finds and executes the platform-specific binary.
7
- * The binary is installed via optionalDependencies during npm install.
8
- */
9
-
10
- import { execSync, spawn } from "child_process";
11
- import fs from "fs";
12
- import os from "os";
13
- import path from "path";
14
- import { fileURLToPath } from "url";
15
-
16
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
17
-
18
- function isMusl() {
19
- if (os.platform() !== "linux") return false;
20
- try {
21
- const output = execSync("ldd --version 2>&1", { encoding: "utf8" });
22
- return output.includes("musl");
23
- } catch {
24
- try {
25
- const release = fs.readFileSync("/etc/os-release", "utf8");
26
- return release.includes("Alpine");
27
- } catch {
28
- return false;
29
- }
30
- }
31
- }
32
-
33
- function findBinary() {
34
- const platform = os.platform() === "win32" ? "windows" : os.platform();
35
- const arch = os.arch() === "arm64" ? "arm64" : "x64";
36
- const suffix = isMusl() ? "-musl" : "";
37
- const packageName = `@trygentic/agentloop-${platform}-${arch}${suffix}`;
38
- const executableName = platform === "windows" ? "agentloop-cli.exe" : "agentloop-cli";
39
-
40
- // Check for symlinked binary in same directory (created by postinstall)
41
- const localBinary = path.join(__dirname, executableName);
42
- if (fs.existsSync(localBinary)) {
43
- return localBinary;
44
- }
45
-
46
- // Find in node_modules
47
- const nodeModules = path.resolve(__dirname, "..", "node_modules");
48
- const packageBinary = path.join(nodeModules, packageName, "bin", executableName);
49
- if (fs.existsSync(packageBinary)) {
50
- return packageBinary;
51
- }
52
-
53
- // Try global node_modules
54
- const globalNodeModules = path.resolve(__dirname, "..", "..", "..");
55
- const globalBinary = path.join(globalNodeModules, packageName, "bin", executableName);
56
- if (fs.existsSync(globalBinary)) {
57
- return globalBinary;
58
- }
59
-
60
- console.error(`Error: Could not find agentloop binary for ${platform}-${arch}${suffix}`);
61
- console.error(`Expected package: ${packageName}`);
62
- console.error(`\nTry reinstalling: npm install -g @trygentic/agentloop`);
63
- process.exit(1);
64
- }
65
-
66
- const binary = findBinary();
67
- const child = spawn(binary, process.argv.slice(2), {
68
- stdio: "inherit",
69
- env: process.env,
70
- });
71
-
72
- child.on("error", (err) => {
73
- console.error(`Failed to start agentloop: ${err.message}`);
74
- process.exit(1);
75
- });
76
-
77
- child.on("exit", (code, signal) => {
78
- if (signal) {
79
- process.kill(process.pid, signal);
80
- } else {
81
- process.exit(code ?? 0);
82
- }
83
- });
1
+ #!/usr/bin/env bash
2
+ # Shim script for agentloop
3
+ # This file is auto-generated by build-binary.mjs. Do not edit manually.
4
+ #
5
+ # Handles multiple scenarios:
6
+ # 1. Local development (npm link) - uses agentloop-cli in the same directory
7
+ # 2. npm install fallback - finds platform binary in node_modules if postinstall symlink failed
8
+
9
+ set -e
10
+
11
+ # Resolve symlinks to find the actual script location
12
+ SOURCE="${BASH_SOURCE[0]}"
13
+ while [ -h "$SOURCE" ]; do
14
+ DIR="$(cd -P "$(dirname "$SOURCE")" && pwd)"
15
+ SOURCE="$(readlink "$SOURCE")"
16
+ [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
17
+ done
18
+ DIR="$(cd -P "$(dirname "$SOURCE")" && pwd)"
19
+
20
+ # Option 1: Local development - agentloop-cli exists in same directory
21
+ if [ -x "$DIR/agentloop-cli" ]; then
22
+ exec "$DIR/agentloop-cli" "$@"
23
+ fi
24
+
25
+ # Option 2: npm install fallback - find platform-specific binary
26
+ PLATFORM="$(uname -s | tr '[:upper:]' '[:lower:]')"
27
+ ARCH="$(uname -m)"
28
+
29
+ case "$PLATFORM" in
30
+ darwin) PLATFORM="darwin" ;;
31
+ linux) PLATFORM="linux" ;;
32
+ mingw*|msys*|cygwin*) PLATFORM="windows" ;;
33
+ esac
34
+
35
+ case "$ARCH" in
36
+ x86_64|amd64) ARCH="x64" ;;
37
+ arm64|aarch64) ARCH="arm64" ;;
38
+ esac
39
+
40
+ # Check for musl on Linux
41
+ SUFFIX=""
42
+ if [ "$PLATFORM" = "linux" ]; then
43
+ if ldd --version 2>&1 | grep -q musl || [ -f /etc/alpine-release ]; then
44
+ SUFFIX="-musl"
45
+ fi
46
+ fi
47
+
48
+ PACKAGE_NAME="@trygentic/agentloop-${PLATFORM}-${ARCH}${SUFFIX}"
49
+ NODE_MODULES="$DIR/../node_modules"
50
+ PLATFORM_BIN="$NODE_MODULES/$PACKAGE_NAME/bin/agentloop-cli"
51
+
52
+ if [ -x "$PLATFORM_BIN" ]; then
53
+ exec "$PLATFORM_BIN" "$@"
54
+ fi
55
+
56
+ echo "Error: Could not find agentloop executable" >&2
57
+ echo "Tried:" >&2
58
+ echo " - $DIR/agentloop-cli (local development)" >&2
59
+ echo " - $PLATFORM_BIN (npm package)" >&2
60
+ exit 1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trygentic/agentloop",
3
- "version": "0.5.0-alpha.5",
3
+ "version": "0.6.0-alpha.6",
4
4
  "description": "AI-powered autonomous coding agent",
5
5
  "bin": {
6
6
  "agentloop": "./bin/agentloop"
@@ -9,9 +9,9 @@
9
9
  "postinstall": "node ./scripts/postinstall.mjs"
10
10
  },
11
11
  "optionalDependencies": {
12
- "@trygentic/agentloop-darwin-arm64": "0.5.0-alpha.5",
13
- "@trygentic/agentloop-linux-x64": "0.5.0-alpha.5",
14
- "@trygentic/agentloop-windows-x64": "0.5.0-alpha.5"
12
+ "@trygentic/agentloop-darwin-arm64": "0.6.0-alpha.6",
13
+ "@trygentic/agentloop-linux-x64": "0.6.0-alpha.6",
14
+ "@trygentic/agentloop-windows-x64": "0.6.0-alpha.6"
15
15
  },
16
16
  "engines": {
17
17
  "node": ">=18.0.0"