@openclaw-cloud/agent-controller 0.11.0 → 0.12.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/dist/commands/bootstrap.js +19 -0
- package/dist/commands/bootstrap.js.map +1 -1
- package/dist/handlers/board-handler.js +2 -0
- package/dist/handlers/board-handler.js.map +1 -1
- package/dist/skills/board-tools/SKILL.md +75 -0
- package/dist/skills/board-tools/scripts/board-artifact.sh +56 -0
- package/dist/skills/board-tools/scripts/board-artifacts.sh +16 -0
- package/dist/skills/board-tools/scripts/board-comment.sh +23 -0
- package/dist/skills/board-tools/scripts/board-move.sh +13 -0
- package/dist/skills/board-tools/scripts/board-result.sh +31 -0
- package/dist/skills/index.d.ts +1 -0
- package/dist/skills/index.js +22 -0
- package/dist/skills/index.js.map +1 -0
- package/package.json +2 -2
|
@@ -3,6 +3,7 @@ import path from 'node:path';
|
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import { createAgentApi } from '../api.js';
|
|
5
5
|
import { getBackendUrl, requireEnv } from '../utils/env.js';
|
|
6
|
+
import { BOARD_TOOLS_SKILL } from '../skills/index.js';
|
|
6
7
|
export async function bootstrap() {
|
|
7
8
|
const backendUrl = getBackendUrl();
|
|
8
9
|
const agentToken = requireEnv('AGENT_TOKEN');
|
|
@@ -41,6 +42,24 @@ export async function bootstrap() {
|
|
|
41
42
|
}
|
|
42
43
|
console.log(` ✓ ${fileNames.length} workspace file(s) written`);
|
|
43
44
|
}
|
|
45
|
+
// Deploy board-tools skill
|
|
46
|
+
const skillDir = path.join(workspaceDir, '.agents', 'skills', 'board-tools');
|
|
47
|
+
try {
|
|
48
|
+
for (const [relPath, content] of Object.entries(BOARD_TOOLS_SKILL)) {
|
|
49
|
+
const fullPath = path.join(skillDir, relPath);
|
|
50
|
+
await fs.mkdir(path.dirname(fullPath), { recursive: true });
|
|
51
|
+
await fs.writeFile(fullPath, content);
|
|
52
|
+
// Make scripts executable
|
|
53
|
+
if (relPath.endsWith('.sh')) {
|
|
54
|
+
await fs.chmod(fullPath, 0o755);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
console.log(` ✓ board-tools skill deployed`);
|
|
58
|
+
}
|
|
59
|
+
catch (err) {
|
|
60
|
+
console.error('Failed to deploy board-tools skill:', err instanceof Error ? err.message : err);
|
|
61
|
+
// Non-fatal — agent can still work without the skill
|
|
62
|
+
}
|
|
44
63
|
console.log('Bootstrap complete.');
|
|
45
64
|
}
|
|
46
65
|
//# sourceMappingURL=bootstrap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,6 +73,7 @@ export class BoardHandler {
|
|
|
73
73
|
// Fetch task prompt from backend (includes rendered workflow prompt)
|
|
74
74
|
const taskData = await this.api.get(`/api/agent/board/cards/${cardId}/task`);
|
|
75
75
|
this.currentCardProcessingId = taskData.cardProcessingId;
|
|
76
|
+
process.env.BOARD_CARD_ID = cardId;
|
|
76
77
|
await this.execOpenclaw(taskData.prompt);
|
|
77
78
|
// STRUCT-2: reset state after the openclaw event is sent so new cards can be claimed
|
|
78
79
|
await this.completeTask(cardId);
|
|
@@ -86,6 +87,7 @@ export class BoardHandler {
|
|
|
86
87
|
}
|
|
87
88
|
async completeTask(cardId) {
|
|
88
89
|
console.log(`Task completed: ${cardId}`);
|
|
90
|
+
delete process.env.BOARD_CARD_ID;
|
|
89
91
|
// Report completion to backend
|
|
90
92
|
await this.reportResult(cardId, 'completed');
|
|
91
93
|
this.currentCardProcessingId = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-handler.js","sourceRoot":"","sources":["../../src/handlers/board-handler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"board-handler.js","sourceRoot":"","sources":["../../src/handlers/board-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: board-tools
|
|
3
|
+
description: Interact with the AI Factory board — create artifacts, post comments, report task results, move cards. Use when working on a board task (card), saving work output, communicating progress, or completing a task.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Board Tools
|
|
7
|
+
|
|
8
|
+
Tools for interacting with the AI Factory kanban board. Use these when working on a task from the board.
|
|
9
|
+
|
|
10
|
+
## Available Tools
|
|
11
|
+
|
|
12
|
+
### Report Result
|
|
13
|
+
When you finish a task or encounter an unrecoverable error:
|
|
14
|
+
```bash
|
|
15
|
+
# Success
|
|
16
|
+
board-result complete
|
|
17
|
+
|
|
18
|
+
# Failure
|
|
19
|
+
board-result fail "Error description here"
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Create Artifact
|
|
23
|
+
Save structured output from your work. Other agents in the pipeline will see these.
|
|
24
|
+
```bash
|
|
25
|
+
# Code artifact (PR, commit, branch)
|
|
26
|
+
board-artifact code "PR #42" --metadata '{"url":"https://gitlab.com/...","branch":"feat/oauth"}'
|
|
27
|
+
|
|
28
|
+
# Document
|
|
29
|
+
board-artifact document "Design Doc" --content "# Architecture\n\n..."
|
|
30
|
+
|
|
31
|
+
# Review
|
|
32
|
+
board-artifact review "Code Review" --content "LGTM. Minor issues:\n- Fix error handling in auth.ts"
|
|
33
|
+
|
|
34
|
+
# Decision
|
|
35
|
+
board-artifact decision "Strategy Decision" --content "We chose B2B focus because..."
|
|
36
|
+
|
|
37
|
+
# Link
|
|
38
|
+
board-artifact link "Staging Deploy" --metadata '{"url":"https://staging.example.com"}'
|
|
39
|
+
|
|
40
|
+
# Data (test results, metrics, etc.)
|
|
41
|
+
board-artifact data "Test Results" --content '{"passed":42,"failed":0}'
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Post Comment
|
|
45
|
+
Add a human-readable comment to the card (visible in the UI):
|
|
46
|
+
```bash
|
|
47
|
+
board-comment "Completed the OAuth integration. PR ready for review."
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Move Card
|
|
51
|
+
Move the card to the next column (usually done after reporting result):
|
|
52
|
+
```bash
|
|
53
|
+
board-move
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### List Artifacts
|
|
57
|
+
See what previous agents/steps have produced:
|
|
58
|
+
```bash
|
|
59
|
+
board-artifacts
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Typical Workflow
|
|
63
|
+
|
|
64
|
+
1. Read the task prompt (provided automatically)
|
|
65
|
+
2. Review previous artifacts if any (provided in prompt, or run `board-artifacts`)
|
|
66
|
+
3. Do the work
|
|
67
|
+
4. Save outputs as artifacts (`board-artifact`)
|
|
68
|
+
5. Post a summary comment (`board-comment`)
|
|
69
|
+
6. Report result (`board-result complete`)
|
|
70
|
+
7. Move the card (`board-move`)
|
|
71
|
+
|
|
72
|
+
## Notes
|
|
73
|
+
- All scripts auto-detect the card ID from the environment (set by the board handler)
|
|
74
|
+
- Authentication is handled automatically via agent token
|
|
75
|
+
- Artifacts persist on the card — visible to all subsequent agents and in the UI
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Create artifact: board-artifact <type> <name> [--content <text>] [--metadata <json>]
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
|
|
5
|
+
CARD_ID="${BOARD_CARD_ID:?BOARD_CARD_ID not set}"
|
|
6
|
+
API_BASE="${BACKEND_URL:?BACKEND_URL not set}"
|
|
7
|
+
TOKEN="${AGENT_TOKEN:?AGENT_TOKEN not set}"
|
|
8
|
+
|
|
9
|
+
TYPE="${1:?Usage: board-artifact <type> <name> [--content <text>] [--metadata <json>]}"
|
|
10
|
+
NAME="${2:?Usage: board-artifact <type> <name> [--content <text>] [--metadata <json>]}"
|
|
11
|
+
shift 2
|
|
12
|
+
|
|
13
|
+
CONTENT=""
|
|
14
|
+
METADATA="{}"
|
|
15
|
+
|
|
16
|
+
while [[ $# -gt 0 ]]; do
|
|
17
|
+
case "$1" in
|
|
18
|
+
--content)
|
|
19
|
+
CONTENT="$2"
|
|
20
|
+
shift 2
|
|
21
|
+
;;
|
|
22
|
+
--metadata)
|
|
23
|
+
METADATA="$2"
|
|
24
|
+
shift 2
|
|
25
|
+
;;
|
|
26
|
+
*)
|
|
27
|
+
echo "Unknown option: $1" >&2
|
|
28
|
+
exit 1
|
|
29
|
+
;;
|
|
30
|
+
esac
|
|
31
|
+
done
|
|
32
|
+
|
|
33
|
+
# Build JSON payload using jq if available, otherwise manual construction
|
|
34
|
+
if command -v jq &>/dev/null; then
|
|
35
|
+
BODY=$(jq -n \
|
|
36
|
+
--arg type "$TYPE" \
|
|
37
|
+
--arg name "$NAME" \
|
|
38
|
+
--arg content "$CONTENT" \
|
|
39
|
+
--argjson metadata "$METADATA" \
|
|
40
|
+
'{type: $type, name: $name, content: (if $content == "" then null else $content end), metadata: $metadata}')
|
|
41
|
+
else
|
|
42
|
+
if [ -z "$CONTENT" ]; then
|
|
43
|
+
BODY="{\"type\":\"$TYPE\",\"name\":\"$NAME\",\"content\":null,\"metadata\":$METADATA}"
|
|
44
|
+
else
|
|
45
|
+
# Escape content for JSON
|
|
46
|
+
ESC_CONTENT=$(printf '%s' "$CONTENT" | sed 's/\\/\\\\/g; s/"/\\"/g')
|
|
47
|
+
BODY="{\"type\":\"$TYPE\",\"name\":\"$NAME\",\"content\":\"$ESC_CONTENT\",\"metadata\":$METADATA}"
|
|
48
|
+
fi
|
|
49
|
+
fi
|
|
50
|
+
|
|
51
|
+
curl -sf -X POST "${API_BASE}/api/agent/board/cards/${CARD_ID}/artifacts" \
|
|
52
|
+
-H "AgentToken: ${TOKEN}" \
|
|
53
|
+
-H "Content-Type: application/json" \
|
|
54
|
+
-d "$BODY"
|
|
55
|
+
|
|
56
|
+
echo "Artifact created: $TYPE / $NAME"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# List artifacts: board-artifacts
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
|
|
5
|
+
CARD_ID="${BOARD_CARD_ID:?BOARD_CARD_ID not set}"
|
|
6
|
+
API_BASE="${BACKEND_URL:?BACKEND_URL not set}"
|
|
7
|
+
TOKEN="${AGENT_TOKEN:?AGENT_TOKEN not set}"
|
|
8
|
+
|
|
9
|
+
RESPONSE=$(curl -sf "${API_BASE}/api/agent/board/cards/${CARD_ID}/artifacts" \
|
|
10
|
+
-H "AgentToken: ${TOKEN}")
|
|
11
|
+
|
|
12
|
+
if command -v jq &>/dev/null; then
|
|
13
|
+
echo "$RESPONSE" | jq -r '.[] | "[\(.type)] \(.name) (step \(.stepIndex // "n/a")): \(.content // (.metadata | tostring))"'
|
|
14
|
+
else
|
|
15
|
+
echo "$RESPONSE"
|
|
16
|
+
fi
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Post comment: board-comment <message>
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
|
|
5
|
+
CARD_ID="${BOARD_CARD_ID:?BOARD_CARD_ID not set}"
|
|
6
|
+
API_BASE="${BACKEND_URL:?BACKEND_URL not set}"
|
|
7
|
+
TOKEN="${AGENT_TOKEN:?AGENT_TOKEN not set}"
|
|
8
|
+
|
|
9
|
+
MESSAGE="${1:?Usage: board-comment <message>}"
|
|
10
|
+
|
|
11
|
+
if command -v jq &>/dev/null; then
|
|
12
|
+
BODY=$(jq -n --arg content "$MESSAGE" '{content: $content}')
|
|
13
|
+
else
|
|
14
|
+
ESC_MSG=$(printf '%s' "$MESSAGE" | sed 's/\\/\\\\/g; s/"/\\"/g')
|
|
15
|
+
BODY="{\"content\":\"$ESC_MSG\"}"
|
|
16
|
+
fi
|
|
17
|
+
|
|
18
|
+
curl -sf -X POST "${API_BASE}/api/agent/board/cards/${CARD_ID}/comments" \
|
|
19
|
+
-H "AgentToken: ${TOKEN}" \
|
|
20
|
+
-H "Content-Type: application/json" \
|
|
21
|
+
-d "$BODY"
|
|
22
|
+
|
|
23
|
+
echo "Comment posted"
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Move card to next column: board-move
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
|
|
5
|
+
CARD_ID="${BOARD_CARD_ID:?BOARD_CARD_ID not set}"
|
|
6
|
+
API_BASE="${BACKEND_URL:?BACKEND_URL not set}"
|
|
7
|
+
TOKEN="${AGENT_TOKEN:?AGENT_TOKEN not set}"
|
|
8
|
+
|
|
9
|
+
curl -sf -X POST "${API_BASE}/api/agent/board/cards/${CARD_ID}/move" \
|
|
10
|
+
-H "AgentToken: ${TOKEN}" \
|
|
11
|
+
-H "Content-Type: application/json"
|
|
12
|
+
|
|
13
|
+
echo "Card moved to next column"
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Report task result: board-result <complete|fail> [error message]
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
|
|
5
|
+
CARD_ID="${BOARD_CARD_ID:?BOARD_CARD_ID not set}"
|
|
6
|
+
API_BASE="${BACKEND_URL:?BACKEND_URL not set}"
|
|
7
|
+
TOKEN="${AGENT_TOKEN:?AGENT_TOKEN not set}"
|
|
8
|
+
|
|
9
|
+
STATUS="${1:?Usage: board-result <complete|fail> [error message]}"
|
|
10
|
+
shift || true
|
|
11
|
+
|
|
12
|
+
case "$STATUS" in
|
|
13
|
+
complete|completed)
|
|
14
|
+
BODY='{"status":"completed"}'
|
|
15
|
+
;;
|
|
16
|
+
fail|failed)
|
|
17
|
+
ERROR_MSG="${1:-Agent reported failure}"
|
|
18
|
+
BODY="{\"status\":\"failed\",\"error\":\"$ERROR_MSG\"}"
|
|
19
|
+
;;
|
|
20
|
+
*)
|
|
21
|
+
echo "Usage: board-result <complete|fail> [error message]" >&2
|
|
22
|
+
exit 1
|
|
23
|
+
;;
|
|
24
|
+
esac
|
|
25
|
+
|
|
26
|
+
curl -sf -X POST "${API_BASE}/api/agent/board/cards/${CARD_ID}/result" \
|
|
27
|
+
-H "AgentToken: ${TOKEN}" \
|
|
28
|
+
-H "Content-Type: application/json" \
|
|
29
|
+
-d "$BODY"
|
|
30
|
+
|
|
31
|
+
echo "Result reported: $STATUS"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const BOARD_TOOLS_SKILL: Record<string, string>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { fileURLToPath, URL } from 'node:url';
|
|
4
|
+
function readSkillFiles(skillName) {
|
|
5
|
+
const skillDir = path.join(path.dirname(fileURLToPath(new URL(import.meta.url))), skillName);
|
|
6
|
+
const files = {};
|
|
7
|
+
function walk(dir, prefix = '') {
|
|
8
|
+
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
9
|
+
const relPath = prefix ? `${prefix}/${entry.name}` : entry.name;
|
|
10
|
+
if (entry.isDirectory()) {
|
|
11
|
+
walk(path.join(dir, entry.name), relPath);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
files[relPath] = fs.readFileSync(path.join(dir, entry.name), 'utf-8');
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
walk(skillDir);
|
|
19
|
+
return files;
|
|
20
|
+
}
|
|
21
|
+
export const BOARD_TOOLS_SKILL = readSkillFiles('board-tools');
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE9C,SAAS,cAAc,CAAC,SAAiB;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACxB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EACrD,SAAS,CACV,CAAC;IACF,MAAM,KAAK,GAA2B,EAAE,CAAC;IAEzC,SAAS,IAAI,CAAC,GAAW,EAAE,SAAiB,EAAE;QAC5C,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACjE,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YAChE,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,CAAC;IACf,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAA2B,cAAc,CAAC,aAAa,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw-cloud/agent-controller",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"agent-controller": "bin/agent-controller.js"
|
|
8
8
|
},
|
|
9
9
|
"scripts": {
|
|
10
|
-
"build": "tsc",
|
|
10
|
+
"build": "tsc && cp -r src/skills/board-tools dist/skills/board-tools",
|
|
11
11
|
"prepublishOnly": "npm run build",
|
|
12
12
|
"test": "node --experimental-vm-modules node_modules/.bin/jest --forceExit",
|
|
13
13
|
"start": "node bin/agent-controller.js",
|