@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 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
@@ -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
+ }