@cardor/agent-harness-kit 1.1.6 → 1.2.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 +168 -88
- package/dist/agent-templates/builder.md +1 -0
- package/dist/agent-templates/explorer.md +1 -0
- package/dist/agent-templates/reviewer.md +1 -0
- package/dist/cli.js +365 -220
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/package.json +7 -2
package/README.md
CHANGED
|
@@ -44,7 +44,7 @@ npx ahk init
|
|
|
44
44
|
- [What you can customize](#what-you-can-customize)
|
|
45
45
|
- [`agent-harness-kit.config.ts`](#agent-harness-kitconfigts)
|
|
46
46
|
- [`health.sh`](#healthsh)
|
|
47
|
-
- [Agent definition files
|
|
47
|
+
- [Agent definition files](#agent-definition-files)
|
|
48
48
|
- [`.harness/feature_list.json`](#harnessfeature_listjson)
|
|
49
49
|
- [MCP tools (for agents)](#mcp-tools-for-agents)
|
|
50
50
|
- [Agent roles](#agent-roles)
|
|
@@ -78,7 +78,7 @@ ahk init
|
|
|
78
78
|
└── creates config, agent definitions, task backlog, health check
|
|
79
79
|
|
|
80
80
|
AI tool opens your project
|
|
81
|
-
└── reads .claude/mcp.json or
|
|
81
|
+
└── reads .claude/mcp.json, opencode.json, or .codex/config.toml
|
|
82
82
|
└── spawns: npx ahk serve (stdio MCP server)
|
|
83
83
|
|
|
84
84
|
Agent starts working
|
|
@@ -99,7 +99,7 @@ Everything is stored locally in a SQLite database (`.harness/harness.db`). No cl
|
|
|
99
99
|
|
|
100
100
|
## Features
|
|
101
101
|
|
|
102
|
-
- **Provider-agnostic** — works with Claude Code, OpenCode, or any MCP-compatible AI tool. Switch providers without losing your task history or reconfiguring your workflow.
|
|
102
|
+
- **Provider-agnostic** — works with Claude Code, OpenCode, Codex CLI, or any MCP-compatible AI tool. Switch providers without losing your task history or reconfiguring your workflow.
|
|
103
103
|
- **Structured 4-agent workflow** — Lead, Explorer, Builder, and Reviewer each have defined responsibilities and can only act within their role.
|
|
104
104
|
- **Atomic task claiming** — agents use `tasks.claim()` which uses a SQLite transaction to prevent two agents from picking up the same task at the same time.
|
|
105
105
|
- **Full audit trail** — every action, file touched, tool used, and section written is stored in SQLite and queryable.
|
|
@@ -151,11 +151,12 @@ ahk init
|
|
|
151
151
|
|
|
152
152
|
# Skip prompts with flags
|
|
153
153
|
ahk init --name "my-app" --provider claude-code --docs ./docs --tasks local
|
|
154
|
+
ahk init --name "my-app" --provider codex-cli --docs ./docs --tasks local
|
|
154
155
|
```
|
|
155
156
|
|
|
156
157
|
Run this once per project. Safe to re-run — it will not overwrite files you've customized.
|
|
157
158
|
|
|
158
|
-
**Global installation** — if you answer yes to "Install globally?", files go to `~/.claude` (Claude Code)
|
|
159
|
+
**Global installation** — if you answer yes to "Install globally?", files go to `~/.claude` (Claude Code), `~/.config/opencode` (OpenCode), or `~/.codex` (Codex CLI). This lets you share one harness config across all your projects.
|
|
159
160
|
|
|
160
161
|
---
|
|
161
162
|
|
|
@@ -182,18 +183,17 @@ ahk dashboard --no-open # start server without opening browser
|
|
|
182
183
|
|
|
183
184
|
The dashboard includes:
|
|
184
185
|
|
|
185
|
-
| View
|
|
186
|
-
|
|
187
|
-
| **Overview**
|
|
188
|
-
| **Tasks**
|
|
189
|
-
| **Task detail** | Acceptance criteria, action timeline per agent, files touched, tools used
|
|
190
|
-
| **Agents**
|
|
191
|
-
| **Tools**
|
|
192
|
-
| **Files**
|
|
186
|
+
| View | What it shows |
|
|
187
|
+
| --------------- | --------------------------------------------------------------------------- |
|
|
188
|
+
| **Overview** | Status counts, active tasks with acceptance progress, recent agent activity |
|
|
189
|
+
| **Tasks** | Full task list, filterable by status, with acceptance progress bars |
|
|
190
|
+
| **Task detail** | Acceptance criteria, action timeline per agent, files touched, tools used |
|
|
191
|
+
| **Agents** | Per-role breakdown: actions, tasks worked, files touched, completion rate |
|
|
192
|
+
| **Tools** | Top tools bar chart + full log of recent tool calls with args and results |
|
|
193
|
+
| **Files** | Most-touched files with operation breakdown + recent file operation log |
|
|
193
194
|
|
|
194
195
|

|
|
195
196
|
|
|
196
|
-
|
|
197
197
|
---
|
|
198
198
|
|
|
199
199
|
### `ahk status`
|
|
@@ -285,14 +285,16 @@ Clears harness data interactively. Only SQLite databases are managed by this com
|
|
|
285
285
|
```bash
|
|
286
286
|
ahk reset # interactive — asks before deleting each item
|
|
287
287
|
ahk reset --force # skip all confirmation prompts
|
|
288
|
-
ahk reset --provider claude-code # also delete agent
|
|
288
|
+
ahk reset --provider claude-code # also delete agent files for this provider
|
|
289
289
|
ahk reset --provider opencode
|
|
290
|
+
ahk reset --provider codex-cli
|
|
290
291
|
```
|
|
291
292
|
|
|
292
293
|
What it can reset:
|
|
294
|
+
|
|
293
295
|
- The SQLite `.db` file (plus WAL and SHM files if present)
|
|
294
296
|
- `.harness/feature_list.json`
|
|
295
|
-
- Agent
|
|
297
|
+
- Agent definition files in `.claude/agents/`, `.opencode/agents/`, or `.codex/agents/`
|
|
296
298
|
|
|
297
299
|
After a reset, run `ahk init` to scaffold a fresh harness.
|
|
298
300
|
|
|
@@ -305,6 +307,7 @@ Migrates provider-specific files from one AI provider to another. Useful when sw
|
|
|
305
307
|
```bash
|
|
306
308
|
ahk migrate --to opencode
|
|
307
309
|
ahk migrate --to claude-code
|
|
310
|
+
ahk migrate --to codex-cli
|
|
308
311
|
```
|
|
309
312
|
|
|
310
313
|
---
|
|
@@ -324,36 +327,80 @@ ahk export --sql --output dump.sql # SQL dump to file
|
|
|
324
327
|
|
|
325
328
|
## Files created by `ahk init`
|
|
326
329
|
|
|
330
|
+
**Claude Code** (`provider: 'claude-code'`):
|
|
331
|
+
|
|
327
332
|
```
|
|
328
333
|
your-project/
|
|
329
|
-
├── agent-harness-kit.config.ts
|
|
330
|
-
├── AGENTS.md
|
|
331
|
-
├──
|
|
334
|
+
├── agent-harness-kit.config.ts
|
|
335
|
+
├── AGENTS.md
|
|
336
|
+
├── CLAUDE.md
|
|
337
|
+
├── health.sh
|
|
332
338
|
├── .harness/
|
|
333
|
-
│ ├── harness.db ←
|
|
334
|
-
│ ├── current.md ←
|
|
335
|
-
│ └── feature_list.json
|
|
336
|
-
└── .claude/
|
|
339
|
+
│ ├── harness.db ← gitignored
|
|
340
|
+
│ ├── current.md ← gitignored
|
|
341
|
+
│ └── feature_list.json
|
|
342
|
+
└── .claude/
|
|
337
343
|
├── agents/
|
|
338
344
|
│ ├── lead.md
|
|
339
345
|
│ ├── explorer.md
|
|
340
346
|
│ ├── builder.md
|
|
341
347
|
│ └── reviewer.md
|
|
342
|
-
|
|
348
|
+
├── mcp.json ← MCP server registration
|
|
349
|
+
└── settings.json ← sets `agent: "lead"` as the default session agent
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
**OpenCode** (`provider: 'opencode'`):
|
|
353
|
+
|
|
354
|
+
```
|
|
355
|
+
your-project/
|
|
356
|
+
├── agent-harness-kit.config.ts
|
|
357
|
+
├── AGENTS.md
|
|
358
|
+
├── health.sh
|
|
359
|
+
├── opencode.json ← MCP server + default_agent + compaction config
|
|
360
|
+
├── .harness/
|
|
361
|
+
└── .opencode/
|
|
362
|
+
└── agents/
|
|
363
|
+
├── lead.md
|
|
364
|
+
├── explorer.md
|
|
365
|
+
├── builder.md
|
|
366
|
+
└── reviewer.md
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
**Codex CLI** (`provider: 'codex-cli'`):
|
|
370
|
+
|
|
371
|
+
```
|
|
372
|
+
your-project/
|
|
373
|
+
├── agent-harness-kit.config.ts
|
|
374
|
+
├── AGENTS.md
|
|
375
|
+
├── health.sh
|
|
376
|
+
├── .harness/
|
|
377
|
+
└── .codex/
|
|
378
|
+
├── config.toml ← MCP server registration
|
|
379
|
+
└── agents/
|
|
380
|
+
├── lead.toml
|
|
381
|
+
├── explorer.toml
|
|
382
|
+
├── builder.toml
|
|
383
|
+
├── reviewer.toml
|
|
384
|
+
└── default.toml ← overrides Codex's built-in default agent → routes to lead
|
|
343
385
|
```
|
|
344
386
|
|
|
345
387
|
### What each file does
|
|
346
388
|
|
|
347
|
-
| File
|
|
348
|
-
|
|
349
|
-
| `agent-harness-kit.config.ts` | Defines project metadata, provider, storage paths, MCP port
|
|
350
|
-
| `AGENTS.md`
|
|
351
|
-
| `health.sh`
|
|
352
|
-
| `.harness/feature_list.json`
|
|
353
|
-
| `.harness/harness.db`
|
|
354
|
-
| `.harness/current.md`
|
|
355
|
-
| `.claude/agents/*.md`
|
|
356
|
-
| `.claude/mcp.json`
|
|
389
|
+
| File | Purpose | Edit it? |
|
|
390
|
+
| ----------------------------- | ------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
|
|
391
|
+
| `agent-harness-kit.config.ts` | Defines project metadata, provider, storage paths, MCP port | Yes — it's yours |
|
|
392
|
+
| `AGENTS.md` | Navigation map agents read first. Regenerated by `ahk build` | No — changes will be overwritten |
|
|
393
|
+
| `health.sh` | Shell script agents run before starting work. Must exit 0 | **Yes — implement your checks here** |
|
|
394
|
+
| `.harness/feature_list.json` | Task backlog in JSON. Humans edit this, `ahk sync` loads it into SQLite | Yes — add tasks here |
|
|
395
|
+
| `.harness/harness.db` | SQLite database. Source of truth for tasks, actions, sections | No — managed by the harness |
|
|
396
|
+
| `.harness/current.md` | Auto-generated session snapshot for agents without MCP access | No — regenerated automatically |
|
|
397
|
+
| `.claude/agents/*.md` | Agent role definitions (Claude Code). Created once, never overwritten | **Yes — customize agent behavior** |
|
|
398
|
+
| `.claude/mcp.json` | MCP server registration for Claude Code. Merged by `ahk build` | Yes, carefully — don't remove the `agent-harness-kit` entry |
|
|
399
|
+
| `.claude/settings.json` | Sets `agent: "lead"` so lead runs as the default session agent. Merged by `ahk build` | Yes, carefully |
|
|
400
|
+
| `.opencode/agents/*.md` | Agent role definitions (OpenCode). Created once, never overwritten | **Yes — customize agent behavior** |
|
|
401
|
+
| `opencode.json` | MCP server + `default_agent` + compaction config for OpenCode. Merged by `ahk build` | Yes, carefully |
|
|
402
|
+
| `.codex/agents/*.toml` | Agent role definitions (Codex CLI). Created once, never overwritten | **Yes — customize agent behavior** |
|
|
403
|
+
| `.codex/config.toml` | MCP server registration for Codex CLI. Merged by `ahk build` | Yes, carefully |
|
|
357
404
|
|
|
358
405
|
---
|
|
359
406
|
|
|
@@ -370,17 +417,17 @@ export default defineHarness({
|
|
|
370
417
|
project: {
|
|
371
418
|
name: 'My App',
|
|
372
419
|
description: 'What this project does',
|
|
373
|
-
docsPath: './docs',
|
|
420
|
+
docsPath: './docs', // where agents search for documentation
|
|
374
421
|
},
|
|
375
422
|
|
|
376
|
-
provider: 'claude-code',
|
|
423
|
+
provider: 'claude-code', // 'claude-code' | 'opencode' | 'codex-cli'
|
|
377
424
|
|
|
378
425
|
agents: {
|
|
379
|
-
lead:
|
|
426
|
+
lead: { instructionsPath: null },
|
|
380
427
|
explorer: { instructionsPath: null, allowedPaths: ['./docs', './src'] },
|
|
381
|
-
builder:
|
|
428
|
+
builder: { instructionsPath: null, writablePaths: ['./src', './tests'] },
|
|
382
429
|
reviewer: { instructionsPath: null },
|
|
383
|
-
custom:
|
|
430
|
+
custom: [], // define extra agents here
|
|
384
431
|
},
|
|
385
432
|
|
|
386
433
|
// ── Database ──────────────────────────────────────────────────────────────
|
|
@@ -394,25 +441,25 @@ export default defineHarness({
|
|
|
394
441
|
// database: { type: 'mysql', connectionString: process.env.DATABASE_URL },
|
|
395
442
|
|
|
396
443
|
storage: {
|
|
397
|
-
dir:
|
|
398
|
-
tasks: { adapter: 'local' },
|
|
444
|
+
dir: '.harness',
|
|
445
|
+
tasks: { adapter: 'local' }, // 'local' | 'jira' | 'linear' | 'mcp'
|
|
399
446
|
sections: {
|
|
400
|
-
toolsUsed:
|
|
401
|
-
filesModified: true,
|
|
402
|
-
result:
|
|
403
|
-
blockers:
|
|
404
|
-
nextSteps:
|
|
447
|
+
toolsUsed: true, // log which tools agents used
|
|
448
|
+
filesModified: true, // log which files were touched
|
|
449
|
+
result: true, // log action results
|
|
450
|
+
blockers: true, // log blockers agents hit
|
|
451
|
+
nextSteps: false, // optional next steps field
|
|
405
452
|
},
|
|
406
453
|
markdownFallback: { enabled: true, path: '.harness/current.md' },
|
|
407
454
|
},
|
|
408
455
|
|
|
409
456
|
health: {
|
|
410
457
|
scriptPath: './health.sh',
|
|
411
|
-
required:
|
|
458
|
+
required: true, // set to false to skip health checks
|
|
412
459
|
},
|
|
413
460
|
|
|
414
461
|
tools: {
|
|
415
|
-
mcp:
|
|
462
|
+
mcp: { enabled: true, port: 3742 },
|
|
416
463
|
scripts: { enabled: true, outputDir: './.harness/scripts' },
|
|
417
464
|
},
|
|
418
465
|
})
|
|
@@ -437,19 +484,22 @@ psql "$DATABASE_URL" -c "SELECT 1" > /dev/null 2>&1 || exit 1
|
|
|
437
484
|
echo "All checks passed."
|
|
438
485
|
```
|
|
439
486
|
|
|
440
|
-
### Agent definition files
|
|
487
|
+
### Agent definition files
|
|
441
488
|
|
|
442
|
-
|
|
489
|
+
Created once and **never overwritten** by `ahk build` — your edits are permanent.
|
|
443
490
|
|
|
444
|
-
|
|
445
|
-
- Add domain-specific context (e.g. "this project uses hexagonal architecture")
|
|
446
|
-
- Restrict what the agent is allowed to do
|
|
447
|
-
- Add project-specific conventions the agent must follow
|
|
448
|
-
- Reference specific files or docs the agent should read first
|
|
491
|
+
**Claude Code** (`.claude/agents/*.md`) and **OpenCode** (`.opencode/agents/*.md`) use Markdown with YAML frontmatter:
|
|
449
492
|
|
|
450
493
|
```markdown
|
|
451
494
|
---
|
|
495
|
+
name: builder
|
|
452
496
|
description: Builder agent — implements the plan produced by explorer and lead
|
|
497
|
+
tools:
|
|
498
|
+
read: true
|
|
499
|
+
write: true
|
|
500
|
+
edit: true
|
|
501
|
+
bash: true
|
|
502
|
+
permissionMode: acceptEdits
|
|
453
503
|
---
|
|
454
504
|
|
|
455
505
|
# Builder Agent
|
|
@@ -462,6 +512,29 @@ You are the builder agent for MyApp. Follow these rules:
|
|
|
462
512
|
- Use the existing error handling pattern from `src/lib/errors.ts`
|
|
463
513
|
```
|
|
464
514
|
|
|
515
|
+
**Codex CLI** (`.codex/agents/*.toml`) uses TOML format:
|
|
516
|
+
|
|
517
|
+
```toml
|
|
518
|
+
name = "builder"
|
|
519
|
+
sandbox_mode = "workspace-write"
|
|
520
|
+
|
|
521
|
+
description = """
|
|
522
|
+
Builder agent — implements the plan produced by explorer and lead.
|
|
523
|
+
"""
|
|
524
|
+
|
|
525
|
+
developer_instructions = """
|
|
526
|
+
# Builder Agent
|
|
527
|
+
|
|
528
|
+
You are the builder agent for MyApp. Follow these rules:
|
|
529
|
+
|
|
530
|
+
- All API endpoints must be defined in `src/routes/`
|
|
531
|
+
- Never modify `src/core/` without lead approval
|
|
532
|
+
- Run `npm test` after every change and fix failures before completing
|
|
533
|
+
"""
|
|
534
|
+
```
|
|
535
|
+
|
|
536
|
+
The `sandbox_mode` field controls Codex's filesystem permissions per agent: `"read-only"` for lead, explorer, and reviewer; `"workspace-write"` for builder. The `permissionMode` field in Claude Code agent files enforces the same constraints at the session level (`plan` for read-only roles, `acceptEdits` for builder).
|
|
537
|
+
|
|
465
538
|
### `.harness/feature_list.json`
|
|
466
539
|
|
|
467
540
|
The human-editable task backlog. Add tasks here, then run `ahk sync` to load them into SQLite.
|
|
@@ -490,46 +563,52 @@ Good acceptance criteria make the difference — the reviewer agent uses them to
|
|
|
490
563
|
|
|
491
564
|
The harness exposes these tools via MCP. Agents use them instead of reading files directly.
|
|
492
565
|
|
|
493
|
-
| Tool
|
|
494
|
-
|
|
495
|
-
| `tasks.get`
|
|
496
|
-
| `tasks.claim`
|
|
497
|
-
| `tasks.update`
|
|
498
|
-
| `tasks.add`
|
|
499
|
-
| `tasks.acceptance.update` | `criterionId`
|
|
500
|
-
| `actions.start`
|
|
501
|
-
| `actions.write`
|
|
502
|
-
| `actions.complete`
|
|
503
|
-
| `actions.get`
|
|
504
|
-
| `actions.record_file`
|
|
505
|
-
| `actions.record_tool`
|
|
506
|
-
| `docs.search`
|
|
566
|
+
| Tool | Parameters | Description |
|
|
567
|
+
| ------------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
568
|
+
| `tasks.get` | `status?` | List tasks, optionally filtered by `pending \| in_progress \| done \| blocked` |
|
|
569
|
+
| `tasks.claim` | `id, agent` | Atomically claim a pending task. Returns `task_already_claimed` if another agent got it first |
|
|
570
|
+
| `tasks.update` | `id, status` | Change task status |
|
|
571
|
+
| `tasks.add` | `title, slug?, description?, acceptance?` | Create a new task directly from MCP (agents can queue work on the fly) |
|
|
572
|
+
| `tasks.acceptance.update` | `criterionId` | Mark an acceptance criterion as met. Criterion IDs come from `tasks.get` |
|
|
573
|
+
| `actions.start` | `taskId, agent` | Start a new action, returns `actionId` |
|
|
574
|
+
| `actions.write` | `actionId, sectionType, content` | Record a text section: `result \| tools_used \| blockers \| next_steps`. Does **not** populate the Files dashboard — use `actions.record_file` for that |
|
|
575
|
+
| `actions.complete` | `actionId, summary` | Close an action with a one-line summary |
|
|
576
|
+
| `actions.get` | `taskId` | Full action history for a task (all agents, all sections) |
|
|
577
|
+
| `actions.record_file` | `actionId, filePath, operation, notes?` | Register a file touch. The **only** way to populate the Files dashboard. `operation`: `read \| created \| modified \| deleted` |
|
|
578
|
+
| `actions.record_tool` | `actionId, toolName, argsJson?, resultSummary?` | Register a tool call. The **only** way to populate the Tools dashboard |
|
|
579
|
+
| `docs.search` | `query` | Search the `docsPath` folder for content matching the query |
|
|
507
580
|
|
|
508
581
|
---
|
|
509
582
|
|
|
510
583
|
## Agent roles
|
|
511
584
|
|
|
512
|
-
| Role
|
|
513
|
-
|
|
514
|
-
| **lead**
|
|
515
|
-
| **explorer** | Reads and maps the codebase. Never writes files. Records every file read.
|
|
516
|
-
| **builder**
|
|
585
|
+
| Role | Responsibility |
|
|
586
|
+
| ------------ | ------------------------------------------------------------------------------------------------- |
|
|
587
|
+
| **lead** | Decomposes the task into a plan, assigns sub-agents. Does not write code or read source files. |
|
|
588
|
+
| **explorer** | Reads and maps the codebase. Never writes files. Records every file read. |
|
|
589
|
+
| **builder** | Implements the plan. Only writes to `writablePaths`. Records every file modified. |
|
|
517
590
|
| **reviewer** | Verifies all acceptance criteria are met. Approves or blocks. Runs health check before approving. |
|
|
518
591
|
|
|
519
592
|
---
|
|
520
593
|
|
|
521
594
|
## What to commit
|
|
522
595
|
|
|
523
|
-
| File
|
|
524
|
-
|
|
525
|
-
| `agent-harness-kit.config.ts` | Yes
|
|
526
|
-
| `AGENTS.md`
|
|
527
|
-
| `
|
|
528
|
-
|
|
|
529
|
-
| `.
|
|
530
|
-
| `.claude/
|
|
531
|
-
| `.
|
|
532
|
-
| `.
|
|
596
|
+
| File | Commit? |
|
|
597
|
+
| ----------------------------- | ------------------- |
|
|
598
|
+
| `agent-harness-kit.config.ts` | Yes |
|
|
599
|
+
| `AGENTS.md` | Yes |
|
|
600
|
+
| `CLAUDE.md` | Yes |
|
|
601
|
+
| `health.sh` | Yes |
|
|
602
|
+
| `.harness/feature_list.json` | Yes |
|
|
603
|
+
| `.claude/agents/*.md` | Yes |
|
|
604
|
+
| `.claude/mcp.json` | Yes |
|
|
605
|
+
| `.claude/settings.json` | Yes |
|
|
606
|
+
| `.opencode/agents/*.md` | Yes |
|
|
607
|
+
| `opencode.json` | Yes |
|
|
608
|
+
| `.codex/agents/*.toml` | Yes |
|
|
609
|
+
| `.codex/config.toml` | Yes |
|
|
610
|
+
| `.harness/harness.db` | **No** (gitignored) |
|
|
611
|
+
| `.harness/current.md` | **No** (gitignored) |
|
|
533
612
|
|
|
534
613
|
The rule: commit inputs (config, task definitions, agent instructions). Ignore outputs (DB, auto-generated snapshots).
|
|
535
614
|
|
|
@@ -537,11 +616,11 @@ The rule: commit inputs (config, task definitions, agent instructions). Ignore o
|
|
|
537
616
|
|
|
538
617
|
## Runtime compatibility
|
|
539
618
|
|
|
540
|
-
| Runtime
|
|
541
|
-
|
|
542
|
-
| Node.js ≥ 22
|
|
543
|
-
| Bun (any recent) | ✅ uses `bun:sqlite` built-in
|
|
544
|
-
| Node.js < 22
|
|
619
|
+
| Runtime | SQLite | PostgreSQL | MySQL |
|
|
620
|
+
| ---------------- | ------------------------------ | ------------------------- | ----------------------- |
|
|
621
|
+
| Node.js ≥ 22 | ✅ uses `node:sqlite` built-in | ✅ via `postgres` package | ✅ via `mysql2` package |
|
|
622
|
+
| Bun (any recent) | ✅ uses `bun:sqlite` built-in | ✅ via `postgres` package | ✅ via `mysql2` package |
|
|
623
|
+
| Node.js < 22 | ❌ `node:sqlite` not available | ✅ | ✅ |
|
|
545
624
|
|
|
546
625
|
SQLite requires no additional packages. For PostgreSQL install `postgres`, for MySQL install `mysql2`:
|
|
547
626
|
|
|
@@ -627,6 +706,7 @@ Types: `feat fix chore refactor docs test perf style build ci revert`
|
|
|
627
706
|
- ✅ **`tasks.add` via MCP** — agents can create new tasks on the fly without leaving the conversation.
|
|
628
707
|
- ✅ **Global installation** — `ahk init` can install the harness to your home directory, shared across projects.
|
|
629
708
|
- ✅ **Input validation** — all CLI prompts validate and retry on bad values.
|
|
709
|
+
- ✅ **Codex CLI provider** — full support for OpenAI Codex CLI. Generates `.codex/agents/*.toml` files with proper `sandbox_mode` per role and merges `.codex/config.toml` for MCP registration. Overrides the built-in `default` agent so the harness lead runs by default.
|
|
630
710
|
- **Graphify integration** — connect the harness to Graphify to visualize agent workflows, task dependencies, and action timelines as interactive graphs.
|
|
631
711
|
- **Open Telemetry integration** — emit OpenTelemetry spans for all agent actions, file operations, and tool calls.
|
|
632
712
|
- **Jira task adapter** — pull tasks directly from Jira instead of maintaining `feature_list.json` manually.
|