agentflight 0.2.0 → 0.3.1
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/CHANGELOG.md +140 -0
- package/README.md +171 -88
- package/dist/adapters/agentloopkit.d.ts.map +1 -1
- package/dist/adapters/agentloopkit.js +26 -7
- package/dist/adapters/agentloopkit.js.map +1 -1
- package/dist/adapters/projscan.d.ts.map +1 -1
- package/dist/adapters/projscan.js +26 -7
- package/dist/adapters/projscan.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +11 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/doctor.d.ts +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +17 -0
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/replay.d.ts +1 -0
- package/dist/commands/replay.d.ts.map +1 -1
- package/dist/commands/replay.js +20 -8
- package/dist/commands/replay.js.map +1 -1
- package/dist/commands/report.d.ts +1 -0
- package/dist/commands/report.d.ts.map +1 -1
- package/dist/commands/report.js +19 -2
- package/dist/commands/report.js.map +1 -1
- package/dist/commands/resume.d.ts +1 -0
- package/dist/commands/resume.d.ts.map +1 -1
- package/dist/commands/resume.js +20 -1
- package/dist/commands/resume.js.map +1 -1
- package/dist/commands/snapshot.d.ts +13 -0
- package/dist/commands/snapshot.d.ts.map +1 -0
- package/dist/commands/snapshot.js +45 -0
- package/dist/commands/snapshot.js.map +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +28 -2
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +26 -2
- package/dist/commands/verify.js.map +1 -1
- package/dist/core/risk.d.ts.map +1 -1
- package/dist/core/risk.js +3 -0
- package/dist/core/risk.js.map +1 -1
- package/dist/core/session.d.ts +14 -1
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js +78 -0
- package/dist/core/session.js.map +1 -1
- package/dist/core/verification.js +3 -1
- package/dist/core/verification.js.map +1 -1
- package/dist/renderers/html-replay.d.ts +4 -5
- package/dist/renderers/html-replay.d.ts.map +1 -1
- package/dist/renderers/html-replay.js +40 -2
- package/dist/renderers/html-replay.js.map +1 -1
- package/dist/renderers/markdown-report.d.ts +2 -1
- package/dist/renderers/markdown-report.d.ts.map +1 -1
- package/dist/renderers/markdown-report.js +13 -0
- package/dist/renderers/markdown-report.js.map +1 -1
- package/dist/renderers/resume-prompt.d.ts +2 -0
- package/dist/renderers/resume-prompt.d.ts.map +1 -1
- package/dist/renderers/resume-prompt.js +6 -0
- package/dist/renderers/resume-prompt.js.map +1 -1
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -1
- package/docs/assets/agentflight-replay-timeline.png +0 -0
- package/docs/development/dogfooding.md +173 -0
- package/docs/development/release.md +66 -0
- package/docs/examples/basic-agentflight-session.md +164 -0
- package/docs/roadmap.md +49 -0
- package/package.json +12 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable AgentFlight changes are documented here.
|
|
4
|
+
|
|
5
|
+
## [0.3.1] - 2026-06-13
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Reworked the README around a clearer 60-second AgentFlight workflow.
|
|
10
|
+
- Added sample CLI output for status, report, replay, and resume.
|
|
11
|
+
- Added a replay timeline screenshot to make the v0.3.0 experience easier to understand.
|
|
12
|
+
- Added a basic example session walkthrough and v0.3.0 launch-note drafts.
|
|
13
|
+
- Improved npm keywords and package metadata.
|
|
14
|
+
- Narrowed packaged files to include useful README-linked docs/assets without shipping marketing drafts.
|
|
15
|
+
|
|
16
|
+
### Documentation
|
|
17
|
+
|
|
18
|
+
- Added launch notes draft for v0.3.0 public/demo positioning.
|
|
19
|
+
- Updated development log with post-v0.3.0 polish verification.
|
|
20
|
+
|
|
21
|
+
### Verification
|
|
22
|
+
|
|
23
|
+
- `npm run verify` passed.
|
|
24
|
+
- `npm run format:check` passed.
|
|
25
|
+
- `npm pack --dry-run` passed.
|
|
26
|
+
- `npm audit --audit-level=moderate` found `0 vulnerabilities`.
|
|
27
|
+
- ProjScan preflight passed.
|
|
28
|
+
- AgentLoopKit verification passed.
|
|
29
|
+
|
|
30
|
+
## [0.3.0] - 2026-06-13
|
|
31
|
+
|
|
32
|
+
AgentFlight now records session events and snapshots so reports and replays show how a coding session evolved.
|
|
33
|
+
|
|
34
|
+
### Added
|
|
35
|
+
|
|
36
|
+
- Added `agentflight snapshot --note "..."` to record a local checkpoint for the active session.
|
|
37
|
+
- Added session-level `events` with backward compatibility for older sessions.
|
|
38
|
+
- Added event recording for session start, verification attempts, snapshots, report generation, replay generation, resume prompt generation, and doctor runs.
|
|
39
|
+
- Added timeline sections to Markdown reports and HTML replays.
|
|
40
|
+
- Added latest snapshot context to status and resume prompts.
|
|
41
|
+
- Added changed-file groups to replay output.
|
|
42
|
+
- Added tests for session events, snapshot creation, missing active sessions, timeline rendering, older session compatibility, and verification events.
|
|
43
|
+
|
|
44
|
+
### Changed
|
|
45
|
+
|
|
46
|
+
- Replays now feel more like flight recorder timelines instead of final-state summaries.
|
|
47
|
+
- Reports now include a concise event timeline before changed files and proof evidence.
|
|
48
|
+
- Resume prompts now include latest snapshot notes and current verification state.
|
|
49
|
+
|
|
50
|
+
### Verification
|
|
51
|
+
|
|
52
|
+
- `npm run verify` passed.
|
|
53
|
+
- `npm run format:check` passed.
|
|
54
|
+
- `npm pack --dry-run` passed for `agentflight@0.3.0`.
|
|
55
|
+
- `npm audit --audit-level=moderate` found `0 vulnerabilities`.
|
|
56
|
+
- ProjScan preflight passed with health `100/100`.
|
|
57
|
+
- AgentLoopKit verification passed.
|
|
58
|
+
|
|
59
|
+
## [0.2.1] - 2026-06-13
|
|
60
|
+
|
|
61
|
+
Patch release candidate focused on friction found while dogfooding the v0.2.0 core workflow.
|
|
62
|
+
|
|
63
|
+
### Changed
|
|
64
|
+
|
|
65
|
+
- `agentflight verify` now prints the stdout and stderr evidence paths immediately after each recorded run.
|
|
66
|
+
- Failed verification output and downstream next actions now include the exact command to rerun.
|
|
67
|
+
- `agentflight report`, `agentflight replay`, and `agentflight resume` now avoid stale "generate a report" next actions once proof is ready.
|
|
68
|
+
- HTML replays now include a compact summary strip for risk, changed files, proof counts, and review readiness.
|
|
69
|
+
- AgentLoopKit workflow files under `.agentloop/` are treated as low-risk dogfooding artifacts instead of unknown code changes.
|
|
70
|
+
|
|
71
|
+
### Fixed
|
|
72
|
+
|
|
73
|
+
- ProjScan and AgentLoopKit adapters now prefer repo-local `node_modules/.bin` binaries before PATH-global commands, preventing stale global versions from appearing in reports.
|
|
74
|
+
- Tool adapter version output is normalized when CLIs include decorated version text.
|
|
75
|
+
|
|
76
|
+
### Verification
|
|
77
|
+
|
|
78
|
+
- Targeted v0.2.1 regression tests passed.
|
|
79
|
+
- `npm run verify` passed.
|
|
80
|
+
- `npm run format:check` passed.
|
|
81
|
+
- `npm pack --dry-run` passed for `agentflight@0.2.1`.
|
|
82
|
+
- `npm audit --audit-level=moderate` found `0 vulnerabilities`.
|
|
83
|
+
- ProjScan preflight passed with health `100/100`.
|
|
84
|
+
- AgentLoopKit verification passed.
|
|
85
|
+
|
|
86
|
+
## [0.2.0] - 2026-06-13
|
|
87
|
+
|
|
88
|
+
AgentFlight now captures real verification evidence and uses it across status, report, replay, and resume.
|
|
89
|
+
|
|
90
|
+
### Added
|
|
91
|
+
|
|
92
|
+
- Added `agentflight verify` to run verification commands and capture local evidence.
|
|
93
|
+
- Added verification run persistence in session records, including command, timestamps, duration, exit code, status, stdout path, and stderr path.
|
|
94
|
+
- Added `.agentflight/evidence/` for local stdout/stderr artifacts.
|
|
95
|
+
- Added evidence-aware status, report, replay, and resume outputs.
|
|
96
|
+
- Added tests for verification success, failure, persistence, evidence-aware outputs, and v0.1 session compatibility.
|
|
97
|
+
|
|
98
|
+
### Changed
|
|
99
|
+
|
|
100
|
+
- `agentflight status` now reports changed areas, proof gaps, review readiness, and a next action based on captured evidence.
|
|
101
|
+
- `agentflight report` now includes verification evidence and honest review recommendations.
|
|
102
|
+
- `agentflight replay` now renders verification cards in the local HTML artifact.
|
|
103
|
+
- `agentflight resume` now includes verification gaps, the exact next command, and stronger continuation guardrails.
|
|
104
|
+
|
|
105
|
+
### Fixed
|
|
106
|
+
|
|
107
|
+
- `agentflight doctor` now checks write permission for `.agentflight/`, not just path existence.
|
|
108
|
+
- `agentflight --version` now reports the package version instead of the stale `0.1.0` value.
|
|
109
|
+
|
|
110
|
+
### Verification
|
|
111
|
+
|
|
112
|
+
- `npm run verify` passed.
|
|
113
|
+
- `npm run format:check` passed.
|
|
114
|
+
- `npm pack --dry-run` passed.
|
|
115
|
+
- `npm audit --audit-level=moderate` found 0 vulnerabilities.
|
|
116
|
+
- ProjScan preflight passed.
|
|
117
|
+
- AgentLoopKit verification passed.
|
|
118
|
+
|
|
119
|
+
## [0.1.1] - 2026-06-13
|
|
120
|
+
|
|
121
|
+
### Fixed
|
|
122
|
+
|
|
123
|
+
- Fixed npm `.bin` symlink invocation so `npx agentflight --help` runs the CLI instead of exiting silently.
|
|
124
|
+
|
|
125
|
+
### Added
|
|
126
|
+
|
|
127
|
+
- Added CI verification on pushes and pull requests.
|
|
128
|
+
- Added tag-based npm publishing through GitHub Actions Trusted Publishing.
|
|
129
|
+
- Added release process documentation.
|
|
130
|
+
|
|
131
|
+
## [0.1.0] - 2026-06-13
|
|
132
|
+
|
|
133
|
+
### Added
|
|
134
|
+
|
|
135
|
+
- First AgentFlight MVP CLI.
|
|
136
|
+
- Added `init`, `start`, `status`, `report`, `replay`, `resume`, and `doctor` commands.
|
|
137
|
+
- Added local `.agentflight/` config, session, report, replay, and resume prompt artifacts.
|
|
138
|
+
- Added ProjScan and AgentLoopKit adapters with graceful fallbacks.
|
|
139
|
+
- Added TypeScript, Vitest, ESLint, Prettier, and npm package setup.
|
|
140
|
+
- Added README, architecture docs, dogfooding docs, verification docs, roadmap, and monetisation notes.
|
package/README.md
CHANGED
|
@@ -2,23 +2,163 @@
|
|
|
2
2
|
|
|
3
3
|
See what your coding agent did. Prove it works. Know what to do next.
|
|
4
4
|
|
|
5
|
-
AgentFlight is a local-first flight recorder for AI coding agents from Baseframe Labs. It
|
|
5
|
+
AgentFlight is a local-first flight recorder for AI coding agents from Baseframe Labs. It sits around Codex, Claude Code, Cursor, Windsurf, Gemini CLI, Aider, OpenCode, and similar tools so you can review the session instead of guessing what happened.
|
|
6
6
|
|
|
7
|
-
AgentFlight
|
|
7
|
+
AgentFlight helps you:
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
- start an AI coding session
|
|
10
|
+
- capture verification evidence
|
|
11
|
+
- see changed files and risk
|
|
12
|
+
- create snapshots during the session
|
|
13
|
+
- generate a proof report
|
|
14
|
+
- generate a local replay timeline
|
|
15
|
+
- create a resume prompt for the next agent or reviewer
|
|
10
16
|
|
|
11
|
-
|
|
17
|
+

|
|
12
18
|
|
|
13
|
-
-
|
|
14
|
-
- Which files are risky?
|
|
15
|
-
- What proof exists?
|
|
16
|
-
- What proof is missing?
|
|
17
|
-
- What should the next agent or reviewer do?
|
|
19
|
+
## 60-Second Workflow
|
|
18
20
|
|
|
19
|
-
|
|
21
|
+
```bash
|
|
22
|
+
npx agentflight@latest init
|
|
23
|
+
npx agentflight@latest start --task "Add password reset flow"
|
|
24
|
+
|
|
25
|
+
# Run Codex, Claude Code, Cursor, or your coding agent normally
|
|
26
|
+
|
|
27
|
+
npx agentflight@latest verify -- npm test
|
|
28
|
+
npx agentflight@latest snapshot --note "Initial implementation verified"
|
|
29
|
+
npx agentflight@latest status
|
|
30
|
+
npx agentflight@latest report
|
|
31
|
+
npx agentflight@latest replay
|
|
32
|
+
npx agentflight@latest resume
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
What you get:
|
|
36
|
+
|
|
37
|
+
- `init` creates local `.agentflight/` project files.
|
|
38
|
+
- `start` records the task, git branch, commit, dirty state, package manager, and tool availability.
|
|
39
|
+
- `verify -- npm test` runs the command and stores stdout, stderr, exit code, timing, and pass/fail status.
|
|
40
|
+
- `snapshot --note "..."` records the current git, risk, and proof state as a timeline event.
|
|
41
|
+
- `status` answers what changed, how risky it is, what proof exists, what proof is missing, and what to do next.
|
|
42
|
+
- `report` writes a Markdown proof report for review.
|
|
43
|
+
- `replay` writes a local HTML timeline you can open in a browser.
|
|
44
|
+
- `resume` writes a Codex/Claude-ready prompt for the next safe step.
|
|
45
|
+
|
|
46
|
+
## Why This Exists
|
|
47
|
+
|
|
48
|
+
AI coding agents move fast. After a few prompts, you can lose track of:
|
|
49
|
+
|
|
50
|
+
- what changed
|
|
51
|
+
- whether the agent drifted from the task
|
|
52
|
+
- what was verified
|
|
53
|
+
- what failed
|
|
54
|
+
- what is safe to review
|
|
55
|
+
- how to resume the work later
|
|
56
|
+
|
|
57
|
+
AgentFlight gives you a local control room for that work. It records the session, captures proof, shows risk, and creates handoff artifacts without uploading source code.
|
|
58
|
+
|
|
59
|
+
## Sample Outputs
|
|
60
|
+
|
|
61
|
+
`agentflight status`:
|
|
62
|
+
|
|
63
|
+
```text
|
|
64
|
+
AgentFlight status
|
|
65
|
+
|
|
66
|
+
Task:
|
|
67
|
+
Add password reset flow
|
|
68
|
+
|
|
69
|
+
Changed files:
|
|
70
|
+
3
|
|
71
|
+
|
|
72
|
+
Risk: medium
|
|
73
|
+
- Dependency, backend, or unknown files changed.
|
|
74
|
+
|
|
75
|
+
Verification Evidence:
|
|
76
|
+
1 passed, 0 failed
|
|
77
|
+
|
|
78
|
+
Latest snapshot:
|
|
79
|
+
- Note: Initial implementation verified
|
|
80
|
+
- Risk: medium
|
|
81
|
+
- Changed files: 3
|
|
82
|
+
|
|
83
|
+
Review readiness: Ready for review
|
|
84
|
+
|
|
85
|
+
Next action:
|
|
86
|
+
Generate a proof report with agentflight report
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
`agentflight report`:
|
|
90
|
+
|
|
91
|
+
```text
|
|
92
|
+
# AgentFlight Proof Report
|
|
93
|
+
|
|
94
|
+
## Recommendation
|
|
95
|
+
Ready for review
|
|
96
|
+
|
|
97
|
+
## Verification Evidence
|
|
98
|
+
- passed: npm test
|
|
99
|
+
- stdout: .agentflight/evidence/.../verification-1.stdout.txt
|
|
100
|
+
- stderr: .agentflight/evidence/.../verification-1.stderr.txt
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
`agentflight replay`:
|
|
104
|
+
|
|
105
|
+
```text
|
|
106
|
+
Replay saved:
|
|
107
|
+
.agentflight/reports/af-...-replay.html
|
|
108
|
+
|
|
109
|
+
Timeline:
|
|
110
|
+
session_started -> verification_passed -> snapshot_created -> replay_generated
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
`agentflight resume`:
|
|
114
|
+
|
|
115
|
+
```text
|
|
116
|
+
Continue the AgentFlight session for: Add password reset flow
|
|
117
|
+
|
|
118
|
+
Latest snapshot:
|
|
119
|
+
Initial implementation verified
|
|
120
|
+
|
|
121
|
+
Verification state:
|
|
122
|
+
1 passed, 0 failed
|
|
123
|
+
|
|
124
|
+
Guardrails:
|
|
125
|
+
- Stay scoped to the current task.
|
|
126
|
+
- Do not claim completion without proof.
|
|
127
|
+
- Run relevant verification before declaring success.
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Current Capabilities
|
|
20
131
|
|
|
21
|
-
|
|
132
|
+
The current AgentFlight release supports:
|
|
133
|
+
|
|
134
|
+
- local session setup
|
|
135
|
+
- active session tracking
|
|
136
|
+
- git branch, commit, dirty state, and changed file detection
|
|
137
|
+
- changed file risk categorisation
|
|
138
|
+
- verification evidence capture with `agentflight verify`
|
|
139
|
+
- session events
|
|
140
|
+
- snapshots with `agentflight snapshot --note "..."`
|
|
141
|
+
- Markdown proof reports
|
|
142
|
+
- self-contained HTML replay timelines
|
|
143
|
+
- resume prompts for Codex, Claude Code, or a human reviewer
|
|
144
|
+
- doctor checks for local setup
|
|
145
|
+
- defensive ProjScan and AgentLoopKit adapters
|
|
146
|
+
- no telemetry, cloud sync, or source upload
|
|
147
|
+
|
|
148
|
+
## What AgentFlight Is Not
|
|
149
|
+
|
|
150
|
+
AgentFlight is:
|
|
151
|
+
|
|
152
|
+
- not a coding agent
|
|
153
|
+
- not a cloud service
|
|
154
|
+
- not a replacement for tests
|
|
155
|
+
- not a security scanner
|
|
156
|
+
- not a CI platform
|
|
157
|
+
- not a code review replacement
|
|
158
|
+
|
|
159
|
+
Use your coding agent to make changes. Use AgentFlight to understand, verify, replay, and hand off the work.
|
|
160
|
+
|
|
161
|
+
## How It Works Locally
|
|
22
162
|
|
|
23
163
|
AgentFlight creates a local `.agentflight/` directory in your repo:
|
|
24
164
|
|
|
@@ -28,62 +168,32 @@ AgentFlight creates a local `.agentflight/` directory in your repo:
|
|
|
28
168
|
- `reports/` stores Markdown proof reports and HTML replays.
|
|
29
169
|
- `evidence/` stores stdout and stderr from captured verification runs.
|
|
30
170
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
## Quick Start
|
|
171
|
+
Sessions store an `events` timeline with meaningful moments such as session start, verification attempts, snapshots, and generated artifacts. Reports include filenames and summaries by default, not full source diffs.
|
|
34
172
|
|
|
35
|
-
|
|
36
|
-
npm install
|
|
37
|
-
npm run build
|
|
38
|
-
npx agentflight init
|
|
39
|
-
npx agentflight start --task "Add example feature"
|
|
40
|
-
npx agentflight status
|
|
41
|
-
npx agentflight verify -- npm test
|
|
42
|
-
npx agentflight report
|
|
43
|
-
npx agentflight replay
|
|
44
|
-
npx agentflight resume
|
|
45
|
-
npx agentflight doctor
|
|
46
|
-
```
|
|
173
|
+
Runtime session data is ignored by git by default in this repo:
|
|
47
174
|
|
|
48
|
-
|
|
175
|
+
- `.agentflight/sessions/`
|
|
176
|
+
- `.agentflight/reports/`
|
|
177
|
+
- `.agentflight/evidence/`
|
|
178
|
+
- `.agentflight/current/`
|
|
49
179
|
|
|
50
|
-
|
|
51
|
-
npm run agentflight -- init
|
|
52
|
-
npm run agentflight -- start --task "Add example feature"
|
|
53
|
-
```
|
|
180
|
+
`.agentflight/config.json` is intentionally not ignored, so a project can commit its local AgentFlight defaults when useful.
|
|
54
181
|
|
|
55
182
|
## Commands
|
|
56
183
|
|
|
57
184
|
- `agentflight init` initializes `.agentflight/` with safe writes.
|
|
58
185
|
- `agentflight start --task "..."` starts a session and writes the current handoff.
|
|
59
|
-
- `agentflight status` summarizes changed files, risk, verification status, and next action.
|
|
186
|
+
- `agentflight status` summarizes changed files, risk, verification status, snapshots, and next action.
|
|
60
187
|
- `agentflight verify -- <command>` runs a proof command and records stdout/stderr evidence.
|
|
61
188
|
- `agentflight verify` runs commands from `.agentflight/config.json`.
|
|
189
|
+
- `agentflight snapshot --note "..."` records current git, risk, and verification state as a timeline event.
|
|
62
190
|
- `agentflight report` generates a Markdown proof report.
|
|
63
191
|
- `agentflight replay` generates a local self-contained HTML replay.
|
|
64
|
-
- `agentflight resume` prints and saves a
|
|
192
|
+
- `agentflight resume` prints and saves a continuation prompt.
|
|
65
193
|
- `agentflight doctor` checks local setup, scripts, tools, config, and current session state.
|
|
66
194
|
|
|
67
195
|
Future placeholders exist for `upgrade`, `license`, and `login`; AgentFlight Pro/Team is not available yet.
|
|
68
196
|
|
|
69
|
-
## Example Workflow With Codex Or Claude Code
|
|
70
|
-
|
|
71
|
-
```bash
|
|
72
|
-
agentflight init
|
|
73
|
-
agentflight start --task "Add password reset flow"
|
|
74
|
-
|
|
75
|
-
# Run Codex, Claude Code, Cursor, or another coding agent normally.
|
|
76
|
-
|
|
77
|
-
agentflight status
|
|
78
|
-
agentflight verify -- npm run typecheck
|
|
79
|
-
agentflight verify -- npm test
|
|
80
|
-
agentflight report
|
|
81
|
-
agentflight replay
|
|
82
|
-
agentflight resume
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
Use `agentflight verify -- <command>` when you want AgentFlight to capture proof. The command records exit code, timing, stdout path, and stderr path in the current session. Use the generated report for review and the resume prompt when handing the work to another agent or human.
|
|
86
|
-
|
|
87
197
|
## Powered By ProjScan And AgentLoopKit
|
|
88
198
|
|
|
89
199
|
AgentFlight is powered by two open engines from Baseframe Labs:
|
|
@@ -91,7 +201,7 @@ AgentFlight is powered by two open engines from Baseframe Labs:
|
|
|
91
201
|
- ProjScan provides repo intelligence, risk analysis, codebase understanding, and preflight signals.
|
|
92
202
|
- AgentLoopKit provides task discipline, verification evidence, policies, and handoffs.
|
|
93
203
|
|
|
94
|
-
This repository dogfoods both tools
|
|
204
|
+
This repository dogfoods both tools. See [docs/development/dogfooding.md](docs/development/dogfooding.md).
|
|
95
205
|
|
|
96
206
|
Strategic architecture:
|
|
97
207
|
|
|
@@ -99,49 +209,22 @@ Strategic architecture:
|
|
|
99
209
|
- AgentLoopKit: agent workflow discipline engine
|
|
100
210
|
- AgentFlight: commercial and user-facing experience layer
|
|
101
211
|
|
|
102
|
-
##
|
|
103
|
-
|
|
104
|
-
AgentFlight runs locally. It does not add telemetry, login, billing, cloud sync, or source upload. The MVP reads git status and package metadata, writes human-readable local artifacts, and calls local or `npx` ProjScan/AgentLoopKit commands with graceful fallbacks.
|
|
105
|
-
|
|
106
|
-
Runtime session data is ignored by git by default:
|
|
107
|
-
|
|
108
|
-
- `.agentflight/sessions/`
|
|
109
|
-
- `.agentflight/reports/`
|
|
110
|
-
- `.agentflight/evidence/`
|
|
111
|
-
- `.agentflight/current/`
|
|
212
|
+
## Example Session
|
|
112
213
|
|
|
113
|
-
|
|
214
|
+
Read [docs/examples/basic-agentflight-session.md](docs/examples/basic-agentflight-session.md) for a short password-reset walkthrough with status, report, replay, and resume artifacts.
|
|
114
215
|
|
|
115
|
-
##
|
|
216
|
+
## Roadmap
|
|
116
217
|
|
|
117
|
-
|
|
218
|
+
See [docs/roadmap.md](docs/roadmap.md).
|
|
118
219
|
|
|
119
|
-
|
|
220
|
+
Not built yet:
|
|
120
221
|
|
|
121
|
-
-
|
|
122
|
-
-
|
|
123
|
-
-
|
|
124
|
-
- Status risk summary
|
|
125
|
-
- Markdown proof reports
|
|
126
|
-
- Self-contained HTML replay
|
|
127
|
-
- Resume prompt generation
|
|
128
|
-
- Doctor checks
|
|
129
|
-
- Verification evidence capture with `agentflight verify`
|
|
130
|
-
- Defensive ProjScan and AgentLoopKit adapters
|
|
131
|
-
- Vitest coverage for core behavior, renderers, adapters, and command workflow
|
|
132
|
-
|
|
133
|
-
Not implemented:
|
|
134
|
-
|
|
135
|
-
- Cloud sync
|
|
136
|
-
- Login
|
|
137
|
-
- Billing
|
|
222
|
+
- cloud sync
|
|
223
|
+
- login
|
|
224
|
+
- billing
|
|
138
225
|
- GitHub App
|
|
139
226
|
- Team dashboards
|
|
140
|
-
-
|
|
141
|
-
|
|
142
|
-
## Roadmap
|
|
143
|
-
|
|
144
|
-
See [docs/roadmap.md](docs/roadmap.md).
|
|
227
|
+
- paid feature gates
|
|
145
228
|
|
|
146
229
|
## Releases
|
|
147
230
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentloopkit.d.ts","sourceRoot":"","sources":["../../src/adapters/agentloopkit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agentloopkit.d.ts","sourceRoot":"","sources":["../../src/adapters/agentloopkit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,WAAW,0BAA0B;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,iBAAiB,CAAC,CAsC5B;AAED,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,GAAG,GAAE,aAA0B,GAC9B,OAAO,CAAC,iBAAiB,CAAC,CAoC5B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
1
2
|
import { runCommand } from "../core/process.js";
|
|
2
3
|
export async function inspectAgentLoopKit(options = {}) {
|
|
3
4
|
const run = options.run ?? runCommand;
|
|
@@ -12,7 +13,7 @@ export async function inspectAgentLoopKit(options = {}) {
|
|
|
12
13
|
const doctor = await runWithFallback(run, command, "agentloopkit@latest", ["doctor"], options.cwd, 20_000);
|
|
13
14
|
const result = {
|
|
14
15
|
available: true,
|
|
15
|
-
version: version.stdout
|
|
16
|
+
version: normalizeVersion(version.stdout),
|
|
16
17
|
summary: doctor.stdout.trim() || "AgentLoopKit available for task discipline.",
|
|
17
18
|
warnings: []
|
|
18
19
|
};
|
|
@@ -53,16 +54,34 @@ function summarizeFailure(result) {
|
|
|
53
54
|
return (result.stderr || result.stdout || "no output").trim();
|
|
54
55
|
}
|
|
55
56
|
async function runWithFallback(run, localCommand, packageName, args, cwd, timeoutMs = 10_000) {
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
const localFailures = [];
|
|
58
|
+
for (const candidate of repoLocalCommandCandidates(localCommand, cwd)) {
|
|
59
|
+
const local = await run(candidate, args, { cwd, timeoutMs });
|
|
60
|
+
if (local.exitCode === 0)
|
|
61
|
+
return local;
|
|
62
|
+
localFailures.push(local);
|
|
63
|
+
}
|
|
59
64
|
const fallback = await run("npx", ["--yes", packageName, ...args], { cwd, timeoutMs });
|
|
60
65
|
if (fallback.exitCode === 0)
|
|
61
66
|
return fallback;
|
|
67
|
+
const pathCommand = await run(localCommand, args, { cwd, timeoutMs });
|
|
68
|
+
if (pathCommand.exitCode === 0)
|
|
69
|
+
return pathCommand;
|
|
62
70
|
return {
|
|
63
|
-
exitCode:
|
|
64
|
-
stdout:
|
|
65
|
-
stderr: `${summarizeFailure(
|
|
71
|
+
exitCode: pathCommand.exitCode,
|
|
72
|
+
stdout: pathCommand.stdout,
|
|
73
|
+
stderr: `${localFailures.map(summarizeFailure).join("; ")}; npx fallback failed: ${summarizeFailure(fallback)}; PATH command failed: ${summarizeFailure(pathCommand)}`
|
|
66
74
|
};
|
|
67
75
|
}
|
|
76
|
+
function repoLocalCommandCandidates(command, cwd) {
|
|
77
|
+
if (!cwd || command.includes("/") || command.includes("\\"))
|
|
78
|
+
return [];
|
|
79
|
+
const executable = process.platform === "win32" ? `${command}.cmd` : command;
|
|
80
|
+
return [join(cwd, "node_modules", ".bin", executable)];
|
|
81
|
+
}
|
|
82
|
+
function normalizeVersion(output) {
|
|
83
|
+
const trimmed = output.trim();
|
|
84
|
+
const match = trimmed.match(/\bv?(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?)\b/);
|
|
85
|
+
return match?.[1] ?? trimmed;
|
|
86
|
+
}
|
|
68
87
|
//# sourceMappingURL=agentloopkit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentloopkit.js","sourceRoot":"","sources":["../../src/adapters/agentloopkit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agentloopkit.js","sourceRoot":"","sources":["../../src/adapters/agentloopkit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projscan.d.ts","sourceRoot":"","sources":["../../src/adapters/projscan.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"projscan.d.ts","sourceRoot":"","sources":["../../src/adapters/projscan.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,WAAW,sBAAsB;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,eAAe,CACnC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,iBAAiB,CAAC,CA+B5B;AAED,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,aAA0B,GAC9B,OAAO,CAAC,iBAAiB,CAAC,CAsB5B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
1
2
|
import { runCommand } from "../core/process.js";
|
|
2
3
|
export async function inspectProjScan(options = {}) {
|
|
3
4
|
const run = options.run ?? runCommand;
|
|
@@ -12,7 +13,7 @@ export async function inspectProjScan(options = {}) {
|
|
|
12
13
|
const help = await runWithFallback(run, command, "projscan@latest", ["--help"], options.cwd);
|
|
13
14
|
const result = {
|
|
14
15
|
available: true,
|
|
15
|
-
version: version.stdout
|
|
16
|
+
version: normalizeVersion(version.stdout),
|
|
16
17
|
summary: "ProjScan available for repo intelligence and risk analysis.",
|
|
17
18
|
warnings: []
|
|
18
19
|
};
|
|
@@ -39,16 +40,34 @@ function summarizeFailure(result) {
|
|
|
39
40
|
return (result.stderr || result.stdout || "no output").trim();
|
|
40
41
|
}
|
|
41
42
|
async function runWithFallback(run, localCommand, packageName, args, cwd, timeoutMs = 10_000) {
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
const localFailures = [];
|
|
44
|
+
for (const candidate of repoLocalCommandCandidates(localCommand, cwd)) {
|
|
45
|
+
const local = await run(candidate, args, { cwd, timeoutMs });
|
|
46
|
+
if (local.exitCode === 0)
|
|
47
|
+
return local;
|
|
48
|
+
localFailures.push(local);
|
|
49
|
+
}
|
|
45
50
|
const fallback = await run("npx", ["--yes", packageName, ...args], { cwd, timeoutMs });
|
|
46
51
|
if (fallback.exitCode === 0)
|
|
47
52
|
return fallback;
|
|
53
|
+
const pathCommand = await run(localCommand, args, { cwd, timeoutMs });
|
|
54
|
+
if (pathCommand.exitCode === 0)
|
|
55
|
+
return pathCommand;
|
|
48
56
|
return {
|
|
49
|
-
exitCode:
|
|
50
|
-
stdout:
|
|
51
|
-
stderr: `${summarizeFailure(
|
|
57
|
+
exitCode: pathCommand.exitCode,
|
|
58
|
+
stdout: pathCommand.stdout,
|
|
59
|
+
stderr: `${localFailures.map(summarizeFailure).join("; ")}; npx fallback failed: ${summarizeFailure(fallback)}; PATH command failed: ${summarizeFailure(pathCommand)}`
|
|
52
60
|
};
|
|
53
61
|
}
|
|
62
|
+
function repoLocalCommandCandidates(command, cwd) {
|
|
63
|
+
if (!cwd || command.includes("/") || command.includes("\\"))
|
|
64
|
+
return [];
|
|
65
|
+
const executable = process.platform === "win32" ? `${command}.cmd` : command;
|
|
66
|
+
return [join(cwd, "node_modules", ".bin", executable)];
|
|
67
|
+
}
|
|
68
|
+
function normalizeVersion(output) {
|
|
69
|
+
const trimmed = output.trim();
|
|
70
|
+
const match = trimmed.match(/\bv?(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?)\b/);
|
|
71
|
+
return match?.[1] ?? trimmed;
|
|
72
|
+
}
|
|
54
73
|
//# sourceMappingURL=projscan.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projscan.js","sourceRoot":"","sources":["../../src/adapters/projscan.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"projscan.js","sourceRoot":"","sources":["../../src/adapters/projscan.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,SAAS,IAAI,OAAO,CAuGnC;AAeD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAG5F"}
|
package/dist/cli.js
CHANGED
|
@@ -9,6 +9,7 @@ import { runInitCommand } from "./commands/init.js";
|
|
|
9
9
|
import { runReplayCommand } from "./commands/replay.js";
|
|
10
10
|
import { runReportCommand } from "./commands/report.js";
|
|
11
11
|
import { runResumeCommand } from "./commands/resume.js";
|
|
12
|
+
import { runSnapshotCommand } from "./commands/snapshot.js";
|
|
12
13
|
import { runStartCommand } from "./commands/start.js";
|
|
13
14
|
import { runStatusCommand } from "./commands/status.js";
|
|
14
15
|
import { runVerifyCommand } from "./commands/verify.js";
|
|
@@ -54,6 +55,16 @@ export function createCli() {
|
|
|
54
55
|
commandArgs
|
|
55
56
|
}));
|
|
56
57
|
});
|
|
58
|
+
program
|
|
59
|
+
.command("snapshot")
|
|
60
|
+
.description("Record a timeline snapshot for the current session.")
|
|
61
|
+
.option("--note <note>", "short snapshot note")
|
|
62
|
+
.action(async (options) => {
|
|
63
|
+
await printResult(runSnapshotCommand({
|
|
64
|
+
repoRoot: await getRepositoryRoot(process.cwd()),
|
|
65
|
+
note: options.note
|
|
66
|
+
}));
|
|
67
|
+
});
|
|
57
68
|
program
|
|
58
69
|
.command("report")
|
|
59
70
|
.description("Generate a Markdown proof report for the current session.")
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|