agentflight 0.5.1 → 0.7.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/CHANGELOG.md +312 -1
- package/README.md +45 -21
- package/dist/adapters/agentloopkit.d.ts +2 -1
- package/dist/adapters/agentloopkit.d.ts.map +1 -1
- package/dist/adapters/agentloopkit.js +53 -58
- package/dist/adapters/agentloopkit.js.map +1 -1
- package/dist/adapters/projscan.d.ts +1 -0
- package/dist/adapters/projscan.d.ts.map +1 -1
- package/dist/adapters/projscan.js +36 -44
- package/dist/adapters/projscan.js.map +1 -1
- package/dist/adapters/tool-runner.d.ts +16 -0
- package/dist/adapters/tool-runner.d.ts.map +1 -0
- package/dist/adapters/tool-runner.js +43 -0
- package/dist/adapters/tool-runner.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +36 -7
- package/dist/cli.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +26 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/handoff.d.ts +17 -0
- package/dist/commands/handoff.d.ts.map +1 -0
- package/dist/commands/handoff.js +286 -0
- package/dist/commands/handoff.js.map +1 -0
- package/dist/commands/history.d.ts +11 -0
- package/dist/commands/history.d.ts.map +1 -0
- package/dist/commands/history.js +251 -0
- package/dist/commands/history.js.map +1 -0
- package/dist/commands/init.d.ts +5 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +30 -7
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/replay.d.ts.map +1 -1
- package/dist/commands/replay.js +23 -16
- 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 +41 -16
- 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 +24 -14
- package/dist/commands/resume.js.map +1 -1
- package/dist/commands/start.d.ts +12 -0
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +53 -33
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +138 -10
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/verify.d.ts +1 -0
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +187 -58
- package/dist/commands/verify.js.map +1 -1
- package/dist/core/artifacts.d.ts +11 -0
- package/dist/core/artifacts.d.ts.map +1 -0
- package/dist/core/artifacts.js +39 -0
- package/dist/core/artifacts.js.map +1 -0
- package/dist/core/changed-files.d.ts +3 -0
- package/dist/core/changed-files.d.ts.map +1 -1
- package/dist/core/changed-files.js +18 -1
- package/dist/core/changed-files.js.map +1 -1
- package/dist/core/config.d.ts +2 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +17 -14
- package/dist/core/config.js.map +1 -1
- package/dist/core/doctor.d.ts +4 -0
- package/dist/core/doctor.d.ts.map +1 -1
- package/dist/core/doctor.js +37 -2
- package/dist/core/doctor.js.map +1 -1
- package/dist/core/fs-safe.d.ts +6 -0
- package/dist/core/fs-safe.d.ts.map +1 -1
- package/dist/core/fs-safe.js +50 -4
- package/dist/core/fs-safe.js.map +1 -1
- package/dist/core/git.d.ts.map +1 -1
- package/dist/core/git.js +9 -5
- package/dist/core/git.js.map +1 -1
- package/dist/core/output.d.ts +14 -0
- package/dist/core/output.d.ts.map +1 -1
- package/dist/core/output.js +72 -4
- package/dist/core/output.js.map +1 -1
- package/dist/core/paths.d.ts +1 -0
- package/dist/core/paths.d.ts.map +1 -1
- package/dist/core/paths.js +9 -1
- package/dist/core/paths.js.map +1 -1
- package/dist/core/review-intelligence.d.ts +2 -1
- package/dist/core/review-intelligence.d.ts.map +1 -1
- package/dist/core/review-intelligence.js +246 -104
- package/dist/core/review-intelligence.js.map +1 -1
- package/dist/core/risk.d.ts.map +1 -1
- package/dist/core/risk.js +9 -4
- package/dist/core/risk.js.map +1 -1
- package/dist/core/session.d.ts +47 -1
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js +203 -10
- package/dist/core/session.js.map +1 -1
- package/dist/core/verification-runs.d.ts +6 -0
- package/dist/core/verification-runs.d.ts.map +1 -0
- package/dist/core/verification-runs.js +104 -0
- package/dist/core/verification-runs.js.map +1 -0
- package/dist/core/verification.d.ts +4 -3
- package/dist/core/verification.d.ts.map +1 -1
- package/dist/core/verification.js +33 -66
- package/dist/core/verification.js.map +1 -1
- package/dist/renderers/html-replay.d.ts +2 -0
- package/dist/renderers/html-replay.d.ts.map +1 -1
- package/dist/renderers/html-replay.js +237 -17
- package/dist/renderers/html-replay.js.map +1 -1
- package/dist/renderers/markdown-report.d.ts +7 -1
- package/dist/renderers/markdown-report.d.ts.map +1 -1
- package/dist/renderers/markdown-report.js +85 -7
- 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 +47 -10
- package/dist/renderers/resume-prompt.js.map +1 -1
- package/dist/types/index.d.ts +13 -3
- package/dist/types/index.d.ts.map +1 -1
- package/docs/assets/agentflight-cli-demo.svg +3 -3
- package/docs/development/changed-file-filters.md +35 -6
- package/docs/development/dogfooding.md +1 -1
- package/docs/examples/basic-agentflight-session.md +21 -10
- package/docs/roadmap/index.md +11 -3
- package/docs/roadmap/v0.4.0-review-intelligence-plan.md +1 -1
- package/package.json +3 -3
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { VerificationFailureCounts } from "../core/output.js";
|
|
1
2
|
import type { ReviewIntelligence, RiskAnalysis, SessionEvent, ToolAdapterResult, VerificationRun } from "../types/index.js";
|
|
2
3
|
export interface MarkdownReportInput {
|
|
3
4
|
task: string;
|
|
@@ -8,6 +9,7 @@ export interface MarkdownReportInput {
|
|
|
8
9
|
risk: RiskAnalysis;
|
|
9
10
|
verificationCommands: string[];
|
|
10
11
|
verificationEvidence: VerificationRun[];
|
|
12
|
+
verificationSummary?: VerificationFailureCounts | undefined;
|
|
11
13
|
verificationGaps?: string[] | undefined;
|
|
12
14
|
recommendation?: string | undefined;
|
|
13
15
|
nextAction?: string | undefined;
|
|
@@ -17,5 +19,9 @@ export interface MarkdownReportInput {
|
|
|
17
19
|
agentloopkit: ToolAdapterResult;
|
|
18
20
|
};
|
|
19
21
|
}
|
|
20
|
-
export
|
|
22
|
+
export type MarkdownReportMode = "full" | "compact" | "pr-comment";
|
|
23
|
+
export interface MarkdownReportOptions {
|
|
24
|
+
mode?: MarkdownReportMode | undefined;
|
|
25
|
+
}
|
|
26
|
+
export declare function renderMarkdownReport(input: MarkdownReportInput, options?: MarkdownReportOptions): string;
|
|
21
27
|
//# sourceMappingURL=markdown-report.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-report.d.ts","sourceRoot":"","sources":["../../src/renderers/markdown-report.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"markdown-report.d.ts","sourceRoot":"","sources":["../../src/renderers/markdown-report.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;IAC5C,IAAI,EAAE,YAAY,CAAC;IACnB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,oBAAoB,EAAE,eAAe,EAAE,CAAC;IACxC,mBAAmB,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAC5D,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,MAAM,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACxC,OAAO,EAAE;QACP,QAAQ,EAAE,iBAAiB,CAAC;QAC5B,YAAY,EAAE,iBAAiB,CAAC;KACjC,CAAC;CACH;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC;AAEnE,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;CACvC;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,mBAAmB,EAC1B,OAAO,GAAE,qBAA0B,GAClC,MAAM,CAgDR"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
import { compactCommandInText, formatToolForReport, formatVerifyCommandForDisplay } from "../core/output.js";
|
|
2
|
-
export function renderMarkdownReport(input) {
|
|
1
|
+
import { compactCommandInText, formatCommandForDisplay, formatToolForReport, formatVerificationCountLine, formatVerificationFailureContext, formatVerifyCommandForDisplay } from "../core/output.js";
|
|
2
|
+
export function renderMarkdownReport(input, options = {}) {
|
|
3
|
+
if (options.mode === "compact")
|
|
4
|
+
return renderCompactMarkdownReport(input);
|
|
5
|
+
if (options.mode === "pr-comment")
|
|
6
|
+
return renderPrCommentDraft(input);
|
|
3
7
|
return `# AgentFlight Proof Report
|
|
4
8
|
|
|
5
9
|
## Task
|
|
@@ -9,9 +13,6 @@ ${input.task}
|
|
|
9
13
|
- Session ID: ${input.sessionId}
|
|
10
14
|
- Started: ${input.startedAt}
|
|
11
15
|
|
|
12
|
-
## Timeline
|
|
13
|
-
${renderTimeline(input.timelineEvents ?? [])}
|
|
14
|
-
|
|
15
16
|
## Changed Files
|
|
16
17
|
${renderList(input.changedFiles, "No changed files detected.")}
|
|
17
18
|
|
|
@@ -38,6 +39,9 @@ ${renderRecommendation(input)}
|
|
|
38
39
|
## Next Action
|
|
39
40
|
${renderNextAction(input)}
|
|
40
41
|
|
|
42
|
+
## Timeline
|
|
43
|
+
${renderTimeline(input.timelineEvents ?? [])}
|
|
44
|
+
|
|
41
45
|
## Tooling
|
|
42
46
|
- ProjScan: ${formatToolForReport("ProjScan", input.tooling.projscan)}
|
|
43
47
|
- AgentLoopKit: ${formatToolForReport("AgentLoopKit", input.tooling.agentloopkit)}
|
|
@@ -45,6 +49,60 @@ ${renderNextAction(input)}
|
|
|
45
49
|
Generated by AgentFlight, powered by ProjScan and AgentLoopKit where available.
|
|
46
50
|
`;
|
|
47
51
|
}
|
|
52
|
+
function renderPrCommentDraft(input) {
|
|
53
|
+
return `## AgentFlight Review Summary
|
|
54
|
+
|
|
55
|
+
Generated locally by AgentFlight. Not posted automatically.
|
|
56
|
+
|
|
57
|
+
- Task: ${input.task}
|
|
58
|
+
- Readiness: ${input.review?.readiness.label ?? input.recommendation ?? "Unknown"}
|
|
59
|
+
- Risk: ${input.risk.level}
|
|
60
|
+
- Changed files: ${input.changedFiles.length}
|
|
61
|
+
|
|
62
|
+
### Review first
|
|
63
|
+
${renderReviewFirst(input)}
|
|
64
|
+
|
|
65
|
+
### Proof gaps:
|
|
66
|
+
${renderPrCommentProofGaps(input)}
|
|
67
|
+
|
|
68
|
+
### Verification evidence
|
|
69
|
+
${renderVerification(input)}
|
|
70
|
+
|
|
71
|
+
### Next action
|
|
72
|
+
${renderNextAction(input)}
|
|
73
|
+
`;
|
|
74
|
+
}
|
|
75
|
+
function renderCompactMarkdownReport(input) {
|
|
76
|
+
return `# AgentFlight Compact Report
|
|
77
|
+
|
|
78
|
+
## Summary
|
|
79
|
+
- Task: ${input.task}
|
|
80
|
+
- Session ID: ${input.sessionId}
|
|
81
|
+
- Started: ${input.startedAt}
|
|
82
|
+
- Changed files: ${input.changedFiles.length}
|
|
83
|
+
- Risk: ${input.risk.level}
|
|
84
|
+
|
|
85
|
+
## Review Readiness
|
|
86
|
+
${renderReviewReadiness(input)}
|
|
87
|
+
|
|
88
|
+
## Review First
|
|
89
|
+
${renderReviewFirst(input)}
|
|
90
|
+
|
|
91
|
+
## Proof Gaps
|
|
92
|
+
${renderProofGaps(input)}
|
|
93
|
+
|
|
94
|
+
## Verification Evidence
|
|
95
|
+
${renderVerification(input)}
|
|
96
|
+
|
|
97
|
+
## Recommendation
|
|
98
|
+
${renderRecommendation(input)}
|
|
99
|
+
|
|
100
|
+
## Next Action
|
|
101
|
+
${renderNextAction(input)}
|
|
102
|
+
|
|
103
|
+
Generated by AgentFlight.
|
|
104
|
+
`;
|
|
105
|
+
}
|
|
48
106
|
function renderList(items, empty = "None.") {
|
|
49
107
|
return items.length ? items.map((item) => `- ${item}`).join("\n") : empty;
|
|
50
108
|
}
|
|
@@ -60,17 +118,31 @@ function renderVerification(input) {
|
|
|
60
118
|
}
|
|
61
119
|
const evidence = input.verificationEvidence
|
|
62
120
|
.map((run) => {
|
|
63
|
-
const
|
|
121
|
+
const command = formatCommandForDisplay(run.command);
|
|
122
|
+
const base = `- ${command}: ${run.status} (exit ${run.exitCode ?? "unknown"}, ${run.durationMs}ms)\n - stdout: ${run.stdoutPath}\n - stderr: ${run.stderrPath}`;
|
|
64
123
|
if (run.status === "failed" && run.outputExcerpt) {
|
|
65
124
|
return `${base}\n - Output excerpt:\n\n${renderExcerptFence(run.outputExcerpt)}`;
|
|
66
125
|
}
|
|
67
126
|
return base;
|
|
68
127
|
})
|
|
69
128
|
.join("\n");
|
|
129
|
+
const summary = input.verificationSummary ?? summarizeVerificationEvidence(input);
|
|
130
|
+
const failureContext = formatVerificationFailureContext(summary);
|
|
131
|
+
const summaryText = `${formatVerificationCountLine(summary)}${failureContext ? `\n${failureContext}` : ""}`;
|
|
70
132
|
const gaps = !input.review && input.verificationGaps?.length
|
|
71
133
|
? `\n\nGaps:\n${renderList(input.verificationGaps)}`
|
|
72
134
|
: "";
|
|
73
|
-
return `${evidence}${gaps}`;
|
|
135
|
+
return `${summaryText}\n${evidence}${gaps}`;
|
|
136
|
+
}
|
|
137
|
+
function summarizeVerificationEvidence(input) {
|
|
138
|
+
const passed = input.verificationEvidence.filter((run) => run.status === "passed").length;
|
|
139
|
+
const failed = input.verificationEvidence.filter((run) => run.status === "failed").length;
|
|
140
|
+
return {
|
|
141
|
+
passed,
|
|
142
|
+
failed,
|
|
143
|
+
unresolvedFailed: failed,
|
|
144
|
+
resolvedFailed: 0
|
|
145
|
+
};
|
|
74
146
|
}
|
|
75
147
|
function renderExcerptFence(excerpt) {
|
|
76
148
|
// Use a longer fence if the excerpt itself contains a triple backtick.
|
|
@@ -110,6 +182,12 @@ function renderProofGaps(input) {
|
|
|
110
182
|
}
|
|
111
183
|
return input.verificationGaps?.length ? renderList(input.verificationGaps) : "- none";
|
|
112
184
|
}
|
|
185
|
+
function renderPrCommentProofGaps(input) {
|
|
186
|
+
const gaps = input.review?.proofGaps ?? [];
|
|
187
|
+
if (gaps.length === 0 && !input.verificationGaps?.length)
|
|
188
|
+
return "Proof gaps: none";
|
|
189
|
+
return renderProofGaps(input);
|
|
190
|
+
}
|
|
113
191
|
function renderReviewReadiness(input) {
|
|
114
192
|
if (!input.review)
|
|
115
193
|
return input.recommendation ?? "Unknown";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-report.js","sourceRoot":"","sources":["../../src/renderers/markdown-report.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,6BAA6B,EAC9B,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown-report.js","sourceRoot":"","sources":["../../src/renderers/markdown-report.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,2BAA2B,EAC3B,gCAAgC,EAChC,6BAA6B,EAC9B,MAAM,mBAAmB,CAAC;AAoC3B,MAAM,UAAU,oBAAoB,CAClC,KAA0B,EAC1B,UAAiC,EAAE;IAEnC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,2BAA2B,CAAC,KAAK,CAAC,CAAC;IAC1E,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAEtE,OAAO;;;EAGP,KAAK,CAAC,IAAI;;;gBAGI,KAAK,CAAC,SAAS;aAClB,KAAK,CAAC,SAAS;;;EAG1B,UAAU,CAAC,KAAK,CAAC,YAAY,EAAE,4BAA4B,CAAC;;;WAGnD,KAAK,CAAC,IAAI,CAAC,KAAK;mBACR,KAAK,CAAC,IAAI,CAAC,YAAY;EACxC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;;;EAG9B,kBAAkB,CAAC,KAAK,CAAC;;;EAGzB,iBAAiB,CAAC,KAAK,CAAC;;;EAGxB,eAAe,CAAC,KAAK,CAAC;;;EAGtB,qBAAqB,CAAC,KAAK,CAAC;;;EAG5B,oBAAoB,CAAC,KAAK,CAAC;;;EAG3B,gBAAgB,CAAC,KAAK,CAAC;;;EAGvB,cAAc,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC;;;cAG9B,mBAAmB,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;kBACnD,mBAAmB,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;;;CAGhF,CAAC;AACF,CAAC;AAED,SAAS,oBAAoB,CAAC,KAA0B;IACtD,OAAO;;;;UAIC,KAAK,CAAC,IAAI;eACL,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC,cAAc,IAAI,SAAS;UACvE,KAAK,CAAC,IAAI,CAAC,KAAK;mBACP,KAAK,CAAC,YAAY,CAAC,MAAM;;;EAG1C,iBAAiB,CAAC,KAAK,CAAC;;;EAGxB,wBAAwB,CAAC,KAAK,CAAC;;;EAG/B,kBAAkB,CAAC,KAAK,CAAC;;;EAGzB,gBAAgB,CAAC,KAAK,CAAC;CACxB,CAAC;AACF,CAAC;AAED,SAAS,2BAA2B,CAAC,KAA0B;IAC7D,OAAO;;;UAGC,KAAK,CAAC,IAAI;gBACJ,KAAK,CAAC,SAAS;aAClB,KAAK,CAAC,SAAS;mBACT,KAAK,CAAC,YAAY,CAAC,MAAM;UAClC,KAAK,CAAC,IAAI,CAAC,KAAK;;;EAGxB,qBAAqB,CAAC,KAAK,CAAC;;;EAG5B,iBAAiB,CAAC,KAAK,CAAC;;;EAGxB,eAAe,CAAC,KAAK,CAAC;;;EAGtB,kBAAkB,CAAC,KAAK,CAAC;;;EAGzB,oBAAoB,CAAC,KAAK,CAAC;;;EAG3B,gBAAgB,CAAC,KAAK,CAAC;;;CAGxB,CAAC;AACF,CAAC;AAED,SAAS,UAAU,CAAC,KAAe,EAAE,KAAK,GAAG,OAAO;IAClD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5E,CAAC;AAED,SAAS,kBAAkB,CAAC,KAA0B;IACpD,IAAI,KAAK,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,oBAAoB,CAAC,MAAM;YAChD,CAAC,CAAC,4BAA4B,UAAU,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE;YACtE,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,GACR,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,MAAM;YAC7C,CAAC,CAAC,cAAc,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;YACpD,CAAC,CAAC,EAAE,CAAC;QACT,OAAO,qCAAqC,IAAI,GAAG,QAAQ,EAAE,CAAC;IAChE,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,oBAAoB;SACxC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,OAAO,GAAG,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,OAAO,KAAK,GAAG,CAAC,MAAM,UAAU,GAAG,CAAC,QAAQ,IAAI,SAAS,KAAK,GAAG,CAAC,UAAU,oBAAoB,GAAG,CAAC,UAAU,iBAAiB,GAAG,CAAC,UAAU,EAAE,CAAC;QAClK,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;YACjD,OAAO,GAAG,IAAI,4BAA4B,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QACpF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,OAAO,GAAG,KAAK,CAAC,mBAAmB,IAAI,6BAA6B,CAAC,KAAK,CAAC,CAAC;IAClF,MAAM,cAAc,GAAG,gCAAgC,CAAC,OAAO,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,GAAG,2BAA2B,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC5G,MAAM,IAAI,GACR,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,MAAM;QAC7C,CAAC,CAAC,cAAc,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;QACpD,CAAC,CAAC,EAAE,CAAC;IAET,OAAO,GAAG,WAAW,KAAK,QAAQ,GAAG,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,6BAA6B,CAAC,KAA0B;IAC/D,MAAM,MAAM,GAAG,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;IAC1F,MAAM,MAAM,GAAG,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;IAC1F,OAAO;QACL,MAAM;QACN,MAAM;QACN,gBAAgB,EAAE,MAAM;QACxB,cAAc,EAAE,CAAC;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe;IACzC,uEAAuE;IACvE,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IACvD,OAAO,GAAG,KAAK,SAAS,OAAO,KAAK,KAAK,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,cAAc,CAAC,MAAsB;IAC5C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,8BAA8B,CAAC;IAC/D,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,OAAO,KAAK,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,CAAC;IAC1D,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAA0B;IACnD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;IAClC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK;aACT,GAAG,CACF,CAAC,IAAI,EAAE,EAAE,CACP,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,eAAe,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,2BAA2B,6BAA6B,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAClO;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM;QACjC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU;aAClB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;aACtE,IAAI,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,6DAA6D,CAAC;AACpE,CAAC;AAED,SAAS,eAAe,CAAC,KAA0B;IACjD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM;YAClC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS;iBACnB,GAAG,CACF,CAAC,GAAG,EAAE,EAAE,CACN,KAAK,GAAG,CAAC,QAAQ,KAAK,oBAAoB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,0BAA0B,6BAA6B,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAChM;iBACA,IAAI,CAAC,IAAI,CAAC;YACf,CAAC,CAAC,QAAQ,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxF,CAAC;AAED,SAAS,wBAAwB,CAAC,KAA0B;IAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC;IAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM;QAAE,OAAO,kBAAkB,CAAC;IACpF,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,qBAAqB,CAAC,KAA0B;IACvD,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC,cAAc,IAAI,SAAS,CAAC;IAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;IACxD,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK;;UAE9B,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;eACvD,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;AAClF,CAAC;AAED,SAAS,oBAAoB,CAAC,KAA0B;IACtD,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,OAAO,GAAG,KAAK,CAAC,cAAc,GAAG,CAAC;IACpC,CAAC;IACD,IAAI,KAAK,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO,iGAAiG,CAAC;IAC3G,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QAChC,OAAO,uFAAuF,CAAC;IACjG,CAAC;IACD,OAAO,oEAAoE,CAAC;AAC9E,CAAC;AAED,SAAS,gBAAgB,CAAC,KAA0B;IAClD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,oBAAoB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,KAAK,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrF,OAAO,OAAO,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,0BAA0B,CAAC;IACxE,CAAC;IACD,OAAO,0DAA0D,CAAC;AACpE,CAAC"}
|
|
@@ -10,8 +10,10 @@ export interface ResumePromptInput {
|
|
|
10
10
|
reviewFocus?: ReviewFocusItem[] | undefined;
|
|
11
11
|
proofGaps?: ProofGap[] | undefined;
|
|
12
12
|
readiness?: ReviewReadinessDecision | undefined;
|
|
13
|
+
openFirstArtifact?: string | undefined;
|
|
13
14
|
latestSnapshotNote?: string | undefined;
|
|
14
15
|
verificationState?: string | undefined;
|
|
16
|
+
verificationContext?: string | undefined;
|
|
15
17
|
nextAction: string;
|
|
16
18
|
}
|
|
17
19
|
export declare function renderResumePrompt(input: ResumePromptInput): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume-prompt.d.ts","sourceRoot":"","sources":["../../src/renderers/resume-prompt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,uBAAuB,EACvB,SAAS,EACV,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC;IAC5C,SAAS,CAAC,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IACnC,SAAS,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAC;IAChD,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"resume-prompt.d.ts","sourceRoot":"","sources":["../../src/renderers/resume-prompt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,uBAAuB,EACvB,SAAS,EACV,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC;IAC5C,SAAS,CAAC,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IACnC,SAAS,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAC;IAChD,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAsCnE"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { compactCommandInText, formatVerifyCommandForDisplay } from "../core/output.js";
|
|
2
|
+
const readyHandoffNextAction = "Run agentflight handoff to generate the local review packet.";
|
|
2
3
|
export function renderResumePrompt(input) {
|
|
3
4
|
return `Continue this AgentFlight-recorded coding session safely.
|
|
4
5
|
|
|
@@ -20,7 +21,7 @@ ${renderList(input.riskReasons, "No specific risks detected yet.")}
|
|
|
20
21
|
${input.latestSnapshotNote ?? "No snapshot recorded."}
|
|
21
22
|
|
|
22
23
|
## Verification State
|
|
23
|
-
${input
|
|
24
|
+
${renderVerificationState(input)}
|
|
24
25
|
|
|
25
26
|
## Review Focus
|
|
26
27
|
${renderReviewFocus(input.reviewFocus ?? [])}
|
|
@@ -29,17 +30,13 @@ ${renderReviewFocus(input.reviewFocus ?? [])}
|
|
|
29
30
|
${renderProofGaps(input)}
|
|
30
31
|
|
|
31
32
|
## Review Readiness
|
|
32
|
-
${renderReadiness(input.readiness)}
|
|
33
|
+
${renderReadiness(input.readiness, input.openFirstArtifact)}
|
|
33
34
|
|
|
34
35
|
## Next Recommended Action
|
|
35
|
-
${input.nextAction}
|
|
36
|
+
${renderNextRecommendedAction(input.nextAction, input.openFirstArtifact)}
|
|
36
37
|
|
|
37
38
|
## Constraints
|
|
38
|
-
|
|
39
|
-
- Do not start unrelated work.
|
|
40
|
-
- Do not claim completion without proof.
|
|
41
|
-
- Run relevant verification before declaring success.
|
|
42
|
-
- Keep changes scoped.
|
|
39
|
+
${renderConstraints(input.readiness)}
|
|
43
40
|
`;
|
|
44
41
|
}
|
|
45
42
|
function renderList(items, empty) {
|
|
@@ -52,6 +49,10 @@ function renderReviewFocus(items) {
|
|
|
52
49
|
.map((item) => `${item.rank}. ${item.file}\n - Why: ${item.reasons.join("; ")}\n - Focus: ${item.suggestedReviewerFocus}${item.suggestedCommand ? `\n - Suggested proof: ${formatVerifyCommandForDisplay(item.suggestedCommand)}` : ""}`)
|
|
53
50
|
.join("\n");
|
|
54
51
|
}
|
|
52
|
+
function renderVerificationState(input) {
|
|
53
|
+
const state = input.verificationState ?? "No verification state recorded.";
|
|
54
|
+
return input.verificationContext ? `${state}\n${input.verificationContext}` : state;
|
|
55
|
+
}
|
|
55
56
|
function renderProofGaps(input) {
|
|
56
57
|
if (input.proofGaps) {
|
|
57
58
|
return input.proofGaps.length
|
|
@@ -62,12 +63,48 @@ function renderProofGaps(input) {
|
|
|
62
63
|
}
|
|
63
64
|
return renderList(input.verificationGaps, "No verification gaps recorded.");
|
|
64
65
|
}
|
|
65
|
-
function renderReadiness(readiness) {
|
|
66
|
+
function renderReadiness(readiness, openFirstArtifact) {
|
|
66
67
|
if (!readiness)
|
|
67
68
|
return "No review readiness recorded.";
|
|
68
69
|
const command = readiness.suggestedCommand;
|
|
70
|
+
const openFirst = openFirstArtifact ? `- Open first: ${openFirstArtifact}\n` : "";
|
|
71
|
+
const nextAction = formatResumeNextAction(readiness.nextAction, readiness, openFirstArtifact);
|
|
69
72
|
return `${readiness.label}
|
|
70
73
|
- Reason: ${compactCommandInText(readiness.reason, command)}
|
|
71
|
-
- Next action: ${compactCommandInText(
|
|
74
|
+
${openFirst}- Next action: ${compactCommandInText(nextAction, command)}`;
|
|
75
|
+
}
|
|
76
|
+
function renderNextRecommendedAction(nextAction, openFirstArtifact) {
|
|
77
|
+
if (!openFirstArtifact)
|
|
78
|
+
return nextAction;
|
|
79
|
+
if (nextAction === readyHandoffNextAction)
|
|
80
|
+
return `Open first: ${openFirstArtifact}`;
|
|
81
|
+
return `Open first: ${openFirstArtifact}
|
|
82
|
+
${nextAction}`;
|
|
83
|
+
}
|
|
84
|
+
function formatResumeNextAction(nextAction, readiness, openFirstArtifact) {
|
|
85
|
+
if (readiness.state === "ready_for_review" &&
|
|
86
|
+
openFirstArtifact &&
|
|
87
|
+
nextAction === readyHandoffNextAction) {
|
|
88
|
+
return "Open the existing local review artifact before continuing.";
|
|
89
|
+
}
|
|
90
|
+
return nextAction;
|
|
91
|
+
}
|
|
92
|
+
function renderConstraints(readiness) {
|
|
93
|
+
if (readiness?.state === "clean_worktree") {
|
|
94
|
+
return [
|
|
95
|
+
"- Open the listed local artifact if you need review context.",
|
|
96
|
+
"- Start a new AgentFlight session before unrelated work.",
|
|
97
|
+
"- Do not claim completion without proof.",
|
|
98
|
+
"- Run relevant verification before declaring success.",
|
|
99
|
+
"- Keep changes scoped."
|
|
100
|
+
].join("\n");
|
|
101
|
+
}
|
|
102
|
+
return [
|
|
103
|
+
"- Stay scoped to the current task.",
|
|
104
|
+
"- Do not start unrelated work.",
|
|
105
|
+
"- Do not claim completion without proof.",
|
|
106
|
+
"- Run relevant verification before declaring success.",
|
|
107
|
+
"- Keep changes scoped."
|
|
108
|
+
].join("\n");
|
|
72
109
|
}
|
|
73
110
|
//# sourceMappingURL=resume-prompt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume-prompt.js","sourceRoot":"","sources":["../../src/renderers/resume-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"resume-prompt.js","sourceRoot":"","sources":["../../src/renderers/resume-prompt.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export interface AgentFlightConfig {
|
|
|
15
15
|
};
|
|
16
16
|
verification: {
|
|
17
17
|
commands: string[];
|
|
18
|
+
profiles?: Record<string, string[]>;
|
|
18
19
|
};
|
|
19
20
|
changedFileFilters?: {
|
|
20
21
|
ignore: string[];
|
|
@@ -68,8 +69,8 @@ export interface SessionEvent {
|
|
|
68
69
|
message?: string;
|
|
69
70
|
metadata?: Record<string, unknown>;
|
|
70
71
|
}
|
|
71
|
-
export type RiskCategory = "auth" | "billing/payments" | "database/migrations" | "security/secrets" | "agentflight/config" | "config" | "tests" | "docs" | "frontend" | "backend/api" | "dependencies" | "unknown";
|
|
72
|
-
export type RiskLevel = "low" | "medium" | "high" | "unknown";
|
|
72
|
+
export type RiskCategory = "auth" | "billing/payments" | "database/migrations" | "security/secrets" | "agentflight/config" | "config" | "tests" | "docs" | "frontend" | "backend/api" | "dependencies" | "source" | "unknown";
|
|
73
|
+
export type RiskLevel = "none" | "low" | "medium" | "high" | "unknown";
|
|
73
74
|
export interface RiskCategorySummary {
|
|
74
75
|
category: RiskCategory;
|
|
75
76
|
files: string[];
|
|
@@ -105,7 +106,7 @@ export interface VerificationRun {
|
|
|
105
106
|
outputExcerpt?: string;
|
|
106
107
|
}
|
|
107
108
|
export type VerificationProofKind = "test" | "build" | "typecheck" | "lint" | "install" | "unknown";
|
|
108
|
-
export type ReviewReadinessState = "ready_for_review" | "not_ready_for_review" | "needs_verification" | "blocked_by_failed_verification" | "unknown";
|
|
109
|
+
export type ReviewReadinessState = "ready_for_review" | "not_ready_for_review" | "needs_verification" | "blocked_by_failed_verification" | "clean_worktree" | "unknown";
|
|
109
110
|
export type ReviewProofStatus = "covered" | "missing" | "failed" | "not_required" | "unknown";
|
|
110
111
|
export interface ReviewFocusItem {
|
|
111
112
|
rank: number;
|
|
@@ -119,6 +120,15 @@ export interface ReviewFocusItem {
|
|
|
119
120
|
suggestedCommand?: string;
|
|
120
121
|
relatedProofGapIds: string[];
|
|
121
122
|
}
|
|
123
|
+
export interface ProjScanReviewHint {
|
|
124
|
+
file: string;
|
|
125
|
+
/**
|
|
126
|
+
* Optional local ProjScan score for this file. AgentFlight treats it as a
|
|
127
|
+
* capped ranking hint, not as proof or a merge decision.
|
|
128
|
+
*/
|
|
129
|
+
riskScore?: number;
|
|
130
|
+
reason?: string;
|
|
131
|
+
}
|
|
122
132
|
export interface ProofGap {
|
|
123
133
|
id: string;
|
|
124
134
|
severity: "info" | "warning" | "blocking";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,OAAO,CAAC;AAEpD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,CAAC,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACP,QAAQ,EAAE;YACR,OAAO,EAAE,OAAO,CAAC;YACjB,IAAI,EAAE,qBAAqB,CAAC;SAC7B,CAAC;QACF,YAAY,EAAE;YACZ,OAAO,EAAE,OAAO,CAAC;YACjB,IAAI,EAAE,qBAAqB,CAAC;SAC7B,CAAC;KACH,CAAC;IACF,YAAY,EAAE;QACZ,QAAQ,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="680" viewBox="0 0 1200 680" role="img" aria-labelledby="title desc">
|
|
2
2
|
<title id="title">AgentFlight CLI workflow animation</title>
|
|
3
|
-
<desc id="desc">Animated terminal-style demo showing AgentFlight start, verify, snapshot, and status output for
|
|
3
|
+
<desc id="desc">Animated terminal-style demo showing AgentFlight start, verify, snapshot, and status output for a coding agent session.</desc>
|
|
4
4
|
<style>
|
|
5
5
|
.bg { fill: #0f111a; }
|
|
6
6
|
.bar { fill: #171a24; }
|
|
@@ -92,10 +92,10 @@
|
|
|
92
92
|
<text class="muted" x="44" y="296">Changed areas:</text>
|
|
93
93
|
<text class="text" x="70" y="342">docs: docs/password-reset.md</text>
|
|
94
94
|
<text class="text" x="70" y="386">tests: tests/password-reset.test.js</text>
|
|
95
|
-
<text class="text" x="70" y="430">
|
|
95
|
+
<text class="text" x="70" y="430">source: src/password-reset.ts</text>
|
|
96
96
|
<text class="warn" x="44" y="498">Risk: medium</text>
|
|
97
97
|
<text class="ok" x="44" y="548">Verification Evidence: 1 passed, 0 failed</text>
|
|
98
98
|
<text class="ok" x="44" y="598">Review readiness: Ready for review</text>
|
|
99
|
-
<text class="cmd cursor" x="44" y="642">Next action: agentflight
|
|
99
|
+
<text class="cmd cursor" x="44" y="642">Next action: agentflight handoff</text>
|
|
100
100
|
</g>
|
|
101
101
|
</svg>
|
|
@@ -15,7 +15,28 @@ These files are evidence and generated session data. Including them would make A
|
|
|
15
15
|
|
|
16
16
|
`.agentflight/config.json` stays visible because it is user-controlled project configuration and may be intentionally committed.
|
|
17
17
|
|
|
18
|
-
AgentFlight classifies `.agentflight/config.json`
|
|
18
|
+
AgentFlight classifies `.agentflight/config.json` and `.agentflight/.gitignore`
|
|
19
|
+
as AgentFlight project config. They remain reviewable without being treated as
|
|
20
|
+
unknown files.
|
|
21
|
+
|
|
22
|
+
`agentflight init` uses the same framing in its first-run output: `config.json`
|
|
23
|
+
is project configuration, while `sessions/`, `reports/`, `current/`, and
|
|
24
|
+
`evidence/` are local runtime evidence. It also writes `.agentflight/.gitignore`
|
|
25
|
+
so those runtime directories stay out of Git while `.agentflight/config.json`
|
|
26
|
+
remains visible.
|
|
27
|
+
|
|
28
|
+
AgentFlight also excludes local AgentLoopKit evidence when it appears in the
|
|
29
|
+
same worktree:
|
|
30
|
+
|
|
31
|
+
- `.agentloop/state.json`
|
|
32
|
+
- `.agentloop/reports/**`
|
|
33
|
+
- `.agentloop/handoffs/**`
|
|
34
|
+
- `.agentloop/runs/**`
|
|
35
|
+
|
|
36
|
+
These paths are local loop state, verification reports, handoffs, and run
|
|
37
|
+
ledgers. AgentLoopKit project contracts and repo guidance stay visible,
|
|
38
|
+
including `.agentloop/tasks/**`, `.agentloop/policies/**`,
|
|
39
|
+
`.agentloop/harness/**`, and `.agentloop/gates/**`.
|
|
19
40
|
|
|
20
41
|
## Project Filters
|
|
21
42
|
|
|
@@ -50,11 +71,19 @@ Ignored files do not appear in:
|
|
|
50
71
|
Keep filters conservative. Do not ignore generated files that reviewers are expected to inspect.
|
|
51
72
|
|
|
52
73
|
If `.projscan-memory/memory.json` appears in changed-file analysis during first
|
|
53
|
-
run
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
74
|
+
run, dogfood work, or a handoff check, AgentFlight will suggest adding
|
|
75
|
+
`.projscan-memory/**` here. This is expected first-run workspace noise in repos
|
|
76
|
+
where ProjScan writes local fallback state. AgentFlight does not ignore that
|
|
77
|
+
path by default because some teams may want generated tool state to remain
|
|
78
|
+
visible. Treat the suggestion as a local repo-policy decision: add the filter
|
|
79
|
+
only when ProjScan memory is generated evidence rather than a file reviewers
|
|
80
|
+
should inspect.
|
|
81
|
+
|
|
82
|
+
`agentflight doctor` uses the same policy. If `.projscan-memory/memory.json`
|
|
83
|
+
exists locally and is not filtered, doctor warns that the file remains
|
|
84
|
+
reviewable and suggests adding `.projscan-memory/**` when that matches repo
|
|
85
|
+
policy. If the filter is already configured, doctor reports the generated tool
|
|
86
|
+
state as OK.
|
|
58
87
|
|
|
59
88
|
## Supported Pattern Shape
|
|
60
89
|
|
|
@@ -12,7 +12,7 @@ Commands discovered and used:
|
|
|
12
12
|
npx projscan@latest --help
|
|
13
13
|
npx projscan@latest --version
|
|
14
14
|
npx projscan@latest init
|
|
15
|
-
npx projscan@latest start --intent "Build AgentFlight, a local-first
|
|
15
|
+
npx projscan@latest start --intent "Build AgentFlight, a local-first review layer for coding agent sessions"
|
|
16
16
|
npx projscan@latest coordinate --format json
|
|
17
17
|
npx projscan@latest preflight --mode before_edit --format json
|
|
18
18
|
npx projscan@latest privacy-check --offline
|
|
@@ -26,10 +26,10 @@ docs/password-reset.md
|
|
|
26
26
|
## 3. Capture Proof
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
|
-
npx agentflight@latest verify
|
|
29
|
+
npx agentflight@latest verify
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
AgentFlight runs the command and stores local evidence:
|
|
32
|
+
AgentFlight runs the configured proof command and stores local evidence:
|
|
33
33
|
|
|
34
34
|
```text
|
|
35
35
|
Verification recorded
|
|
@@ -85,10 +85,10 @@ Changed files:
|
|
|
85
85
|
Changed areas:
|
|
86
86
|
- docs: docs/password-reset.md
|
|
87
87
|
- tests: tests/password-reset.test.ts
|
|
88
|
-
-
|
|
88
|
+
- source: src/password-reset.ts
|
|
89
89
|
|
|
90
90
|
Risk: medium
|
|
91
|
-
-
|
|
91
|
+
- Application source files changed.
|
|
92
92
|
|
|
93
93
|
Verification Evidence:
|
|
94
94
|
1 passed, 0 failed
|
|
@@ -101,17 +101,20 @@ Latest snapshot:
|
|
|
101
101
|
Review readiness: Ready for review
|
|
102
102
|
|
|
103
103
|
Next action:
|
|
104
|
-
|
|
104
|
+
Run agentflight handoff to generate the local review packet.
|
|
105
105
|
```
|
|
106
106
|
|
|
107
|
-
## 6. Generate
|
|
107
|
+
## 6. Generate The Local Handoff
|
|
108
108
|
|
|
109
109
|
```bash
|
|
110
|
-
npx agentflight@latest
|
|
111
|
-
npx agentflight@latest replay
|
|
110
|
+
npx agentflight@latest handoff
|
|
112
111
|
```
|
|
113
112
|
|
|
114
|
-
The
|
|
113
|
+
The handoff tells you whether the work is ready, what to review first, what proof exists, and what proof is still missing. It also generates the supporting local artifacts:
|
|
114
|
+
|
|
115
|
+
- Markdown proof report
|
|
116
|
+
- HTML replay ledger
|
|
117
|
+
- resume prompt
|
|
115
118
|
|
|
116
119
|
The HTML replay gives a browser-friendly timeline:
|
|
117
120
|
|
|
@@ -124,7 +127,15 @@ report_generated
|
|
|
124
127
|
replay_generated
|
|
125
128
|
```
|
|
126
129
|
|
|
127
|
-
|
|
130
|
+
The report and replay stay local under `.agentflight/reports/`. The current handoff and resume prompt stay local under `.agentflight/current/`.
|
|
131
|
+
|
|
132
|
+
To reopen the latest local artifacts later:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
npx agentflight@latest history --limit 1
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
History shows the latest action, recorded readiness, and the report/replay/handoff/resume paths for the most recent session.
|
|
128
139
|
|
|
129
140
|
## 7. Resume Safely
|
|
130
141
|
|
package/docs/roadmap/index.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Roadmap
|
|
2
2
|
|
|
3
|
+
Current working direction: keep AgentFlight focused on becoming the best
|
|
4
|
+
local-first review layer for coding agent sessions. See
|
|
5
|
+
[docs/development/product-direction.md](../development/product-direction.md)
|
|
6
|
+
for the active post-v0.6.0 priority order.
|
|
7
|
+
|
|
3
8
|
## MVP
|
|
4
9
|
|
|
5
10
|
- Local CLI package.
|
|
@@ -21,11 +26,14 @@
|
|
|
21
26
|
## Future Free/Open-Core
|
|
22
27
|
|
|
23
28
|
- Basic local session history.
|
|
24
|
-
-
|
|
25
|
-
-
|
|
29
|
+
- Continued local handoff ergonomics.
|
|
30
|
+
- First-run workspace hygiene polish.
|
|
31
|
+
- Replay navigation and review ergonomics.
|
|
32
|
+
- Proof guidance quality improvements.
|
|
26
33
|
- Deeper ProjScan-enriched review hints once stable structured output exists.
|
|
27
34
|
- More precise git diff stats without including full code by default.
|
|
28
|
-
-
|
|
35
|
+
- Structured local automation surfaces where they make review artifacts easier
|
|
36
|
+
to inspect.
|
|
29
37
|
|
|
30
38
|
## Future Pro
|
|
31
39
|
|
|
@@ -11,7 +11,7 @@ The release should build on the v0.1 through v0.3 arc:
|
|
|
11
11
|
- v0.3: snapshots and timelines.
|
|
12
12
|
- v0.4: deterministic review intelligence over the recorded local evidence.
|
|
13
13
|
|
|
14
|
-
AgentFlight should remain the control room around
|
|
14
|
+
AgentFlight should remain the control room around coding agents. It should not become a coding agent, CI system, cloud service, or PR automation product in this release.
|
|
15
15
|
|
|
16
16
|
## Recommended Scope
|
|
17
17
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentflight",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Local-first
|
|
3
|
+
"version": "0.7.0",
|
|
4
|
+
"description": "Local-first review layer for coding agent sessions.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/cli.js",
|
|
7
7
|
"types": "./dist/cli.d.ts",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"check": "npm run typecheck && npm run lint && npm run test",
|
|
36
36
|
"dev": "tsx src/cli.ts",
|
|
37
37
|
"agentflight": "tsx src/cli.ts",
|
|
38
|
-
"projscan": "projscan start --intent \"Build AgentFlight, a local-first
|
|
38
|
+
"projscan": "projscan start --intent \"Build AgentFlight, a local-first review layer for coding agent sessions\"",
|
|
39
39
|
"agentloopkit:doctor": "agentloopkit doctor",
|
|
40
40
|
"demo:replay": "npm run build && node scripts/demo/capture-replay.mjs",
|
|
41
41
|
"demo:terminal": "vhs docs/marketing/agentflight-terminal-demo.tape",
|