@codeatlasdev/ao-plugin-agent-kiro 0.1.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/LICENSE +21 -0
- package/README.md +57 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +250 -0
- package/dist/index.js.map +1 -0
- package/package.json +45 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 CodeAtlas
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# @codeatlasdev/ao-plugin-agent-kiro
|
|
2
|
+
|
|
3
|
+
[Agent Orchestrator](https://github.com/ComposioHQ/agent-orchestrator) plugin that adds [Kiro CLI](https://kiro.dev/cli/) as an agent backend.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
ao plugin install agent-kiro
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Or add to your `agent-orchestrator.yaml`:
|
|
12
|
+
|
|
13
|
+
```yaml
|
|
14
|
+
defaults:
|
|
15
|
+
agent: kiro
|
|
16
|
+
|
|
17
|
+
plugins:
|
|
18
|
+
- name: agent-kiro
|
|
19
|
+
source: npm
|
|
20
|
+
package: "@codeatlasdev/ao-plugin-agent-kiro"
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## What it does
|
|
24
|
+
|
|
25
|
+
Spawns Kiro CLI (`kiro-cli chat`) sessions inside AO-managed tmux worktrees. Handles:
|
|
26
|
+
|
|
27
|
+
- Launch with inline prompts and permission flags
|
|
28
|
+
- Activity detection via terminal output parsing + AO JSONL logs
|
|
29
|
+
- Session resume via `kiro-cli chat --resume`
|
|
30
|
+
- PATH wrapper hooks for `gh`/`git` metadata interception
|
|
31
|
+
- Process liveness checks
|
|
32
|
+
|
|
33
|
+
## Permission mapping
|
|
34
|
+
|
|
35
|
+
| AO Mode | Kiro CLI Flag |
|
|
36
|
+
| -------------- | -------------------- |
|
|
37
|
+
| permissionless | `--trust-all-tools` |
|
|
38
|
+
| auto-edit | `--trust-all-tools` |
|
|
39
|
+
| default | _(none)_ |
|
|
40
|
+
| suggest | _(none)_ |
|
|
41
|
+
|
|
42
|
+
## Requirements
|
|
43
|
+
|
|
44
|
+
- [Kiro CLI](https://kiro.dev/cli/) installed and authenticated (`kiro-cli login`)
|
|
45
|
+
- Agent Orchestrator >= 0.2.0
|
|
46
|
+
|
|
47
|
+
## Development
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
bun install
|
|
51
|
+
bun run build
|
|
52
|
+
bun test
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## License
|
|
56
|
+
|
|
57
|
+
MIT
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type Agent } from "@aoagents/ao-core";
|
|
2
|
+
export declare const manifest: {
|
|
3
|
+
name: string;
|
|
4
|
+
slot: "agent";
|
|
5
|
+
description: string;
|
|
6
|
+
version: string;
|
|
7
|
+
displayName: string;
|
|
8
|
+
};
|
|
9
|
+
export declare function create(): Agent;
|
|
10
|
+
export declare function detect(): boolean;
|
|
11
|
+
declare const _default: {
|
|
12
|
+
manifest: {
|
|
13
|
+
name: string;
|
|
14
|
+
slot: "agent";
|
|
15
|
+
description: string;
|
|
16
|
+
version: string;
|
|
17
|
+
displayName: string;
|
|
18
|
+
};
|
|
19
|
+
create: typeof create;
|
|
20
|
+
detect: typeof detect;
|
|
21
|
+
};
|
|
22
|
+
export default _default;
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAYL,KAAK,KAAK,EAUX,MAAM,mBAAmB,CAAC;AAa3B,eAAO,MAAM,QAAQ;;;;;;CAMpB,CAAC;AAmRF,wBAAgB,MAAM,IAAI,KAAK,CAE9B;AAED,wBAAgB,MAAM,IAAI,OAAO,CAOhC;;;;;;;;;;;;AAED,wBAA0E"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import { DEFAULT_READY_THRESHOLD_MS, DEFAULT_ACTIVE_WINDOW_MS, shellEscape, normalizeAgentPermissionMode, buildAgentPath, setupPathWrapperWorkspace, readLastActivityEntry, checkActivityLogState, getActivityFallbackState, recordTerminalActivity, PREFERRED_GH_PATH, } from "@aoagents/ao-core";
|
|
2
|
+
import { execFile, execFileSync } from "node:child_process";
|
|
3
|
+
import { stat } from "node:fs/promises";
|
|
4
|
+
import { homedir } from "node:os";
|
|
5
|
+
import { join } from "node:path";
|
|
6
|
+
import { promisify } from "node:util";
|
|
7
|
+
const execFileAsync = promisify(execFile);
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// Plugin Manifest
|
|
10
|
+
// =============================================================================
|
|
11
|
+
export const manifest = {
|
|
12
|
+
name: "kiro",
|
|
13
|
+
slot: "agent",
|
|
14
|
+
description: "Agent plugin: Kiro CLI (AWS)",
|
|
15
|
+
version: "0.1.0",
|
|
16
|
+
displayName: "Kiro CLI",
|
|
17
|
+
};
|
|
18
|
+
// =============================================================================
|
|
19
|
+
// Binary Resolution
|
|
20
|
+
// =============================================================================
|
|
21
|
+
async function resolveKiroBinary() {
|
|
22
|
+
try {
|
|
23
|
+
const { stdout } = await execFileAsync("which", ["kiro-cli"], {
|
|
24
|
+
timeout: 10_000,
|
|
25
|
+
});
|
|
26
|
+
const resolved = stdout.trim();
|
|
27
|
+
if (resolved)
|
|
28
|
+
return resolved;
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// Not found via which
|
|
32
|
+
}
|
|
33
|
+
const home = homedir();
|
|
34
|
+
const candidates = [
|
|
35
|
+
"/usr/local/bin/kiro-cli",
|
|
36
|
+
"/opt/homebrew/bin/kiro-cli",
|
|
37
|
+
join(home, ".local", "bin", "kiro-cli"),
|
|
38
|
+
join(home, ".kiro", "bin", "kiro-cli"),
|
|
39
|
+
];
|
|
40
|
+
for (const candidate of candidates) {
|
|
41
|
+
try {
|
|
42
|
+
await stat(candidate);
|
|
43
|
+
return candidate;
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
// Not found
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return "kiro-cli";
|
|
50
|
+
}
|
|
51
|
+
// =============================================================================
|
|
52
|
+
// Agent Implementation
|
|
53
|
+
// =============================================================================
|
|
54
|
+
function appendPermissionFlags(parts, permissions) {
|
|
55
|
+
const mode = normalizeAgentPermissionMode(permissions);
|
|
56
|
+
if (mode === "permissionless" || mode === "auto-edit") {
|
|
57
|
+
parts.push("--trust-all-tools");
|
|
58
|
+
}
|
|
59
|
+
// "default" and "suggest" → no flag (kiro's default interactive approval)
|
|
60
|
+
}
|
|
61
|
+
function createKiroAgent() {
|
|
62
|
+
let resolvedBinary = null;
|
|
63
|
+
let resolvingBinary = null;
|
|
64
|
+
return {
|
|
65
|
+
name: "kiro",
|
|
66
|
+
processName: "kiro-cli",
|
|
67
|
+
promptDelivery: "inline",
|
|
68
|
+
getLaunchCommand(config) {
|
|
69
|
+
const binary = resolvedBinary ?? "kiro-cli";
|
|
70
|
+
const parts = [shellEscape(binary), "chat"];
|
|
71
|
+
appendPermissionFlags(parts, config.permissions);
|
|
72
|
+
if (config.systemPrompt) {
|
|
73
|
+
// kiro-cli has no --append-system-prompt; prepend to user prompt
|
|
74
|
+
const combined = config.prompt
|
|
75
|
+
? `${config.systemPrompt}\n\n---\n\n${config.prompt}`
|
|
76
|
+
: config.systemPrompt;
|
|
77
|
+
parts.push(shellEscape(combined));
|
|
78
|
+
}
|
|
79
|
+
else if (config.systemPromptFile) {
|
|
80
|
+
// Read system prompt file and combine with user prompt via shell
|
|
81
|
+
const fileRead = `$(cat ${shellEscape(config.systemPromptFile)})`;
|
|
82
|
+
const combined = config.prompt
|
|
83
|
+
? `${fileRead}\n\n---\n\n${shellEscape(config.prompt)}`
|
|
84
|
+
: fileRead;
|
|
85
|
+
parts.push(combined);
|
|
86
|
+
}
|
|
87
|
+
else if (config.prompt) {
|
|
88
|
+
parts.push(shellEscape(config.prompt));
|
|
89
|
+
}
|
|
90
|
+
return parts.join(" ");
|
|
91
|
+
},
|
|
92
|
+
getEnvironment(config) {
|
|
93
|
+
const env = {};
|
|
94
|
+
env["AO_SESSION_ID"] = config.sessionId;
|
|
95
|
+
if (config.issueId) {
|
|
96
|
+
env["AO_ISSUE_ID"] = config.issueId;
|
|
97
|
+
}
|
|
98
|
+
env["PATH"] = buildAgentPath(process.env["PATH"]);
|
|
99
|
+
env["GH_PATH"] = PREFERRED_GH_PATH;
|
|
100
|
+
return env;
|
|
101
|
+
},
|
|
102
|
+
detectActivity(terminalOutput) {
|
|
103
|
+
if (!terminalOutput.trim())
|
|
104
|
+
return "idle";
|
|
105
|
+
const lines = terminalOutput.trim().split("\n");
|
|
106
|
+
const lastLine = lines[lines.length - 1]?.trim() ?? "";
|
|
107
|
+
const tail = lines.slice(-8).join("\n");
|
|
108
|
+
// Kiro prompt waiting for input ("> " or similar)
|
|
109
|
+
if (/^[>$❯]\s*$/.test(lastLine))
|
|
110
|
+
return "ready";
|
|
111
|
+
// Permission / confirmation prompts
|
|
112
|
+
if (/\b(allow|deny|approve|confirm)\b/i.test(tail)) {
|
|
113
|
+
return "waiting_input";
|
|
114
|
+
}
|
|
115
|
+
if (/\(y\)es.*\(n\)o/i.test(tail))
|
|
116
|
+
return "waiting_input";
|
|
117
|
+
if (/\[y\/n\]/i.test(tail))
|
|
118
|
+
return "waiting_input";
|
|
119
|
+
// Error patterns
|
|
120
|
+
if (/\b(error|fatal|panic|exception)\b/i.test(lastLine)) {
|
|
121
|
+
return "blocked";
|
|
122
|
+
}
|
|
123
|
+
return "active";
|
|
124
|
+
},
|
|
125
|
+
async getActivityState(session, readyThresholdMs) {
|
|
126
|
+
const threshold = readyThresholdMs ?? DEFAULT_READY_THRESHOLD_MS;
|
|
127
|
+
if (!session.runtimeHandle) {
|
|
128
|
+
return { state: "exited", timestamp: new Date() };
|
|
129
|
+
}
|
|
130
|
+
const running = await this.isProcessRunning(session.runtimeHandle);
|
|
131
|
+
if (!running)
|
|
132
|
+
return { state: "exited", timestamp: new Date() };
|
|
133
|
+
if (!session.workspacePath)
|
|
134
|
+
return null;
|
|
135
|
+
// Check AO activity JSONL (terminal-derived)
|
|
136
|
+
const activityResult = await readLastActivityEntry(session.workspacePath);
|
|
137
|
+
const activityState = checkActivityLogState(activityResult);
|
|
138
|
+
if (activityState)
|
|
139
|
+
return activityState;
|
|
140
|
+
// Fallback: age-based decay
|
|
141
|
+
const activeWindowMs = Math.min(DEFAULT_ACTIVE_WINDOW_MS, threshold);
|
|
142
|
+
const fallback = getActivityFallbackState(activityResult, activeWindowMs, threshold);
|
|
143
|
+
if (fallback)
|
|
144
|
+
return fallback;
|
|
145
|
+
return null;
|
|
146
|
+
},
|
|
147
|
+
async recordActivity(session, terminalOutput) {
|
|
148
|
+
if (!session.workspacePath)
|
|
149
|
+
return;
|
|
150
|
+
await recordTerminalActivity(session.workspacePath, terminalOutput, (output) => this.detectActivity(output));
|
|
151
|
+
},
|
|
152
|
+
async isProcessRunning(handle) {
|
|
153
|
+
try {
|
|
154
|
+
if (handle.runtimeName === "tmux" && handle.id) {
|
|
155
|
+
const { stdout: ttyOut } = await execFileAsync("tmux", ["list-panes", "-t", handle.id, "-F", "#{pane_tty}"], { timeout: 30_000 });
|
|
156
|
+
const ttys = ttyOut
|
|
157
|
+
.trim()
|
|
158
|
+
.split("\n")
|
|
159
|
+
.map((t) => t.trim())
|
|
160
|
+
.filter(Boolean);
|
|
161
|
+
if (ttys.length === 0)
|
|
162
|
+
return false;
|
|
163
|
+
const { stdout: psOut } = await execFileAsync("ps", ["-eo", "pid,tty,args"], { timeout: 30_000 });
|
|
164
|
+
const ttySet = new Set(ttys.map((t) => t.replace(/^\/dev\//, "")));
|
|
165
|
+
const processRe = /(?:^|\/)kiro-cli(?:\s|$)/;
|
|
166
|
+
for (const line of psOut.split("\n")) {
|
|
167
|
+
const cols = line.trimStart().split(/\s+/);
|
|
168
|
+
if (cols.length < 3 || !ttySet.has(cols[1] ?? ""))
|
|
169
|
+
continue;
|
|
170
|
+
if (processRe.test(cols.slice(2).join(" ")))
|
|
171
|
+
return true;
|
|
172
|
+
}
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
const rawPid = handle.data["pid"];
|
|
176
|
+
const pid = typeof rawPid === "number" ? rawPid : Number(rawPid);
|
|
177
|
+
if (Number.isFinite(pid) && pid > 0) {
|
|
178
|
+
try {
|
|
179
|
+
process.kill(pid, 0);
|
|
180
|
+
return true;
|
|
181
|
+
}
|
|
182
|
+
catch (err) {
|
|
183
|
+
if (err instanceof Error &&
|
|
184
|
+
"code" in err &&
|
|
185
|
+
err.code === "EPERM") {
|
|
186
|
+
return true;
|
|
187
|
+
}
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
return false;
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
async getSessionInfo(_session) {
|
|
198
|
+
// Kiro CLI doesn't expose session data in a parseable format yet.
|
|
199
|
+
// Return minimal info; can be enriched when kiro exposes session APIs.
|
|
200
|
+
return {
|
|
201
|
+
summary: null,
|
|
202
|
+
agentSessionId: null,
|
|
203
|
+
};
|
|
204
|
+
},
|
|
205
|
+
async getRestoreCommand(_session, _project) {
|
|
206
|
+
// kiro-cli chat --resume resumes the last session for the cwd.
|
|
207
|
+
// Since each AO session has its own worktree, this picks up the right one.
|
|
208
|
+
const binary = resolvedBinary ?? "kiro-cli";
|
|
209
|
+
const parts = [shellEscape(binary), "chat", "--resume"];
|
|
210
|
+
appendPermissionFlags(parts, _project.agentConfig?.permissions);
|
|
211
|
+
return parts.join(" ");
|
|
212
|
+
},
|
|
213
|
+
async setupWorkspaceHooks(workspacePath, _config) {
|
|
214
|
+
await setupPathWrapperWorkspace(workspacePath);
|
|
215
|
+
},
|
|
216
|
+
async postLaunchSetup(session) {
|
|
217
|
+
if (!resolvedBinary) {
|
|
218
|
+
if (!resolvingBinary) {
|
|
219
|
+
resolvingBinary = resolveKiroBinary();
|
|
220
|
+
}
|
|
221
|
+
try {
|
|
222
|
+
resolvedBinary = await resolvingBinary;
|
|
223
|
+
}
|
|
224
|
+
finally {
|
|
225
|
+
resolvingBinary = null;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
if (session.workspacePath) {
|
|
229
|
+
await setupPathWrapperWorkspace(session.workspacePath);
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
// =============================================================================
|
|
235
|
+
// Plugin Export
|
|
236
|
+
// =============================================================================
|
|
237
|
+
export function create() {
|
|
238
|
+
return createKiroAgent();
|
|
239
|
+
}
|
|
240
|
+
export function detect() {
|
|
241
|
+
try {
|
|
242
|
+
execFileSync("kiro-cli", ["--version"], { stdio: "ignore" });
|
|
243
|
+
return true;
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
return false;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
export default { manifest, create, detect };
|
|
250
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@codeatlasdev/ao-plugin-agent-kiro",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Agent Orchestrator plugin: Kiro CLI agent adapter",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsc",
|
|
13
|
+
"typecheck": "tsc --noEmit",
|
|
14
|
+
"test": "bun test",
|
|
15
|
+
"prepublishOnly": "bun run build"
|
|
16
|
+
},
|
|
17
|
+
"keywords": [
|
|
18
|
+
"agent-orchestrator",
|
|
19
|
+
"ao-plugin",
|
|
20
|
+
"kiro",
|
|
21
|
+
"kiro-cli",
|
|
22
|
+
"ai-agent"
|
|
23
|
+
],
|
|
24
|
+
"author": "CodeAtlas <hello@codeatlas.com.br>",
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"repository": {
|
|
27
|
+
"type": "git",
|
|
28
|
+
"url": "https://github.com/codeatlasdev/ao-plugin-agent-kiro.git"
|
|
29
|
+
},
|
|
30
|
+
"bugs": {
|
|
31
|
+
"url": "https://github.com/codeatlasdev/ao-plugin-agent-kiro/issues"
|
|
32
|
+
},
|
|
33
|
+
"homepage": "https://github.com/codeatlasdev/ao-plugin-agent-kiro#readme",
|
|
34
|
+
"engines": {
|
|
35
|
+
"node": ">=20"
|
|
36
|
+
},
|
|
37
|
+
"peerDependencies": {
|
|
38
|
+
"@aoagents/ao-core": ">=0.2.0"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@aoagents/ao-core": "^0.2.0",
|
|
42
|
+
"@types/bun": "latest",
|
|
43
|
+
"typescript": "^5.7.0"
|
|
44
|
+
}
|
|
45
|
+
}
|