agentflight 0.6.0 → 0.7.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.
Files changed (119) hide show
  1. package/CHANGELOG.md +284 -2
  2. package/README.md +86 -34
  3. package/dist/adapters/agentloopkit.d.ts +2 -1
  4. package/dist/adapters/agentloopkit.d.ts.map +1 -1
  5. package/dist/adapters/agentloopkit.js +53 -58
  6. package/dist/adapters/agentloopkit.js.map +1 -1
  7. package/dist/adapters/projscan.d.ts +1 -0
  8. package/dist/adapters/projscan.d.ts.map +1 -1
  9. package/dist/adapters/projscan.js +36 -44
  10. package/dist/adapters/projscan.js.map +1 -1
  11. package/dist/adapters/tool-runner.d.ts +16 -0
  12. package/dist/adapters/tool-runner.d.ts.map +1 -0
  13. package/dist/adapters/tool-runner.js +43 -0
  14. package/dist/adapters/tool-runner.js.map +1 -0
  15. package/dist/cli.d.ts.map +1 -1
  16. package/dist/cli.js +24 -2
  17. package/dist/cli.js.map +1 -1
  18. package/dist/commands/doctor.d.ts.map +1 -1
  19. package/dist/commands/doctor.js +26 -2
  20. package/dist/commands/doctor.js.map +1 -1
  21. package/dist/commands/handoff.d.ts +17 -0
  22. package/dist/commands/handoff.d.ts.map +1 -0
  23. package/dist/commands/handoff.js +286 -0
  24. package/dist/commands/handoff.js.map +1 -0
  25. package/dist/commands/history.d.ts +11 -0
  26. package/dist/commands/history.d.ts.map +1 -0
  27. package/dist/commands/history.js +251 -0
  28. package/dist/commands/history.js.map +1 -0
  29. package/dist/commands/init.d.ts +5 -0
  30. package/dist/commands/init.d.ts.map +1 -1
  31. package/dist/commands/init.js +28 -10
  32. package/dist/commands/init.js.map +1 -1
  33. package/dist/commands/replay.d.ts.map +1 -1
  34. package/dist/commands/replay.js +23 -16
  35. package/dist/commands/replay.js.map +1 -1
  36. package/dist/commands/report.d.ts.map +1 -1
  37. package/dist/commands/report.js +22 -16
  38. package/dist/commands/report.js.map +1 -1
  39. package/dist/commands/resume.d.ts +1 -0
  40. package/dist/commands/resume.d.ts.map +1 -1
  41. package/dist/commands/resume.js +24 -14
  42. package/dist/commands/resume.js.map +1 -1
  43. package/dist/commands/start.d.ts +12 -0
  44. package/dist/commands/start.d.ts.map +1 -1
  45. package/dist/commands/start.js +53 -33
  46. package/dist/commands/start.js.map +1 -1
  47. package/dist/commands/status.d.ts.map +1 -1
  48. package/dist/commands/status.js +74 -9
  49. package/dist/commands/status.js.map +1 -1
  50. package/dist/commands/verify.d.ts.map +1 -1
  51. package/dist/commands/verify.js +22 -9
  52. package/dist/commands/verify.js.map +1 -1
  53. package/dist/core/artifacts.d.ts +11 -0
  54. package/dist/core/artifacts.d.ts.map +1 -0
  55. package/dist/core/artifacts.js +39 -0
  56. package/dist/core/artifacts.js.map +1 -0
  57. package/dist/core/config.d.ts +2 -0
  58. package/dist/core/config.d.ts.map +1 -1
  59. package/dist/core/config.js +16 -14
  60. package/dist/core/config.js.map +1 -1
  61. package/dist/core/doctor.d.ts +4 -0
  62. package/dist/core/doctor.d.ts.map +1 -1
  63. package/dist/core/doctor.js +37 -2
  64. package/dist/core/doctor.js.map +1 -1
  65. package/dist/core/fs-safe.d.ts +6 -0
  66. package/dist/core/fs-safe.d.ts.map +1 -1
  67. package/dist/core/fs-safe.js +50 -4
  68. package/dist/core/fs-safe.js.map +1 -1
  69. package/dist/core/git.d.ts.map +1 -1
  70. package/dist/core/git.js +7 -1
  71. package/dist/core/git.js.map +1 -1
  72. package/dist/core/output.d.ts +14 -0
  73. package/dist/core/output.d.ts.map +1 -1
  74. package/dist/core/output.js +72 -4
  75. package/dist/core/output.js.map +1 -1
  76. package/dist/core/paths.d.ts +1 -0
  77. package/dist/core/paths.d.ts.map +1 -1
  78. package/dist/core/paths.js +9 -1
  79. package/dist/core/paths.js.map +1 -1
  80. package/dist/core/review-intelligence.d.ts.map +1 -1
  81. package/dist/core/review-intelligence.js +182 -104
  82. package/dist/core/review-intelligence.js.map +1 -1
  83. package/dist/core/risk.d.ts.map +1 -1
  84. package/dist/core/risk.js +9 -4
  85. package/dist/core/risk.js.map +1 -1
  86. package/dist/core/session.d.ts +47 -1
  87. package/dist/core/session.d.ts.map +1 -1
  88. package/dist/core/session.js +203 -10
  89. package/dist/core/session.js.map +1 -1
  90. package/dist/core/verification-runs.d.ts +6 -0
  91. package/dist/core/verification-runs.d.ts.map +1 -0
  92. package/dist/core/verification-runs.js +104 -0
  93. package/dist/core/verification-runs.js.map +1 -0
  94. package/dist/core/verification.d.ts +4 -3
  95. package/dist/core/verification.d.ts.map +1 -1
  96. package/dist/core/verification.js +33 -66
  97. package/dist/core/verification.js.map +1 -1
  98. package/dist/renderers/html-replay.d.ts +2 -0
  99. package/dist/renderers/html-replay.d.ts.map +1 -1
  100. package/dist/renderers/html-replay.js +169 -9
  101. package/dist/renderers/html-replay.js.map +1 -1
  102. package/dist/renderers/markdown-report.d.ts +2 -0
  103. package/dist/renderers/markdown-report.d.ts.map +1 -1
  104. package/dist/renderers/markdown-report.js +20 -6
  105. package/dist/renderers/markdown-report.js.map +1 -1
  106. package/dist/renderers/resume-prompt.d.ts +2 -0
  107. package/dist/renderers/resume-prompt.d.ts.map +1 -1
  108. package/dist/renderers/resume-prompt.js +47 -10
  109. package/dist/renderers/resume-prompt.js.map +1 -1
  110. package/dist/types/index.d.ts +3 -3
  111. package/dist/types/index.d.ts.map +1 -1
  112. package/docs/assets/agentflight-cli-demo.svg +3 -3
  113. package/docs/assets/agentflight-terminal-demo.gif +0 -0
  114. package/docs/development/changed-file-filters.md +19 -7
  115. package/docs/development/dogfooding.md +1 -1
  116. package/docs/examples/basic-agentflight-session.md +21 -10
  117. package/docs/roadmap/index.md +11 -3
  118. package/docs/roadmap/v0.4.0-review-intelligence-plan.md +1 -1
  119. package/package.json +3 -3
@@ -1,6 +1,7 @@
1
1
  import { constants } from "node:fs";
2
- import { access, mkdir, readFile, writeFile } from "node:fs/promises";
3
- import { dirname } from "node:path";
2
+ import { access, mkdir, readFile, rename, rm, writeFile } from "node:fs/promises";
3
+ import { randomUUID } from "node:crypto";
4
+ import { basename, dirname, join } from "node:path";
4
5
  export async function pathExists(path) {
5
6
  try {
6
7
  await access(path, constants.F_OK);
@@ -29,12 +30,57 @@ export async function writeJsonFileSafe(path, value, options = {}) {
29
30
  return writeTextFileSafe(path, `${JSON.stringify(value, null, 2)}\n`, options);
30
31
  }
31
32
  export async function writeTextFileSafe(path, value, options = {}) {
32
- await mkdir(dirname(path), { recursive: true });
33
+ const directory = dirname(path);
34
+ await mkdir(directory, { recursive: true });
33
35
  const exists = await pathExists(path);
34
36
  if (exists && options.overwrite !== true) {
35
37
  return { path, status: "skipped" };
36
38
  }
37
- await writeFile(path, value, "utf8");
39
+ const tempPath = join(directory, `.${basename(path)}.${process.pid}.${randomUUID()}.tmp`);
40
+ try {
41
+ await writeFile(tempPath, value, "utf8");
42
+ await rename(tempPath, path);
43
+ }
44
+ catch (error) {
45
+ await rm(tempPath, { force: true });
46
+ throw error;
47
+ }
38
48
  return { path, status: exists ? "overwritten" : "created" };
39
49
  }
50
+ export async function tryWriteTextFileExclusive(path, value) {
51
+ const directory = dirname(path);
52
+ await mkdir(directory, { recursive: true });
53
+ try {
54
+ await writeFile(path, value, { encoding: "utf8", flag: "wx" });
55
+ return true;
56
+ }
57
+ catch (error) {
58
+ if (isNodeError(error) && error.code === "EEXIST")
59
+ return false;
60
+ throw error;
61
+ }
62
+ }
63
+ export async function withFileLock(lockPath, callback, options = {}) {
64
+ const timeoutMs = options.timeoutMs ?? 5000;
65
+ const pollMs = options.pollMs ?? 10;
66
+ const startedAt = Date.now();
67
+ while (!(await tryWriteTextFileExclusive(lockPath, `${process.pid}\n`))) {
68
+ if (Date.now() - startedAt >= timeoutMs) {
69
+ throw new Error("Timed out waiting for AgentFlight local file lock.");
70
+ }
71
+ await sleep(pollMs);
72
+ }
73
+ try {
74
+ return await callback();
75
+ }
76
+ finally {
77
+ await rm(lockPath, { force: true });
78
+ }
79
+ }
80
+ function sleep(ms) {
81
+ return new Promise((resolve) => setTimeout(resolve, ms));
82
+ }
83
+ function isNodeError(error) {
84
+ return typeof error === "object" && error !== null && "code" in error;
85
+ }
40
86
  //# sourceMappingURL=fs-safe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fs-safe.js","sourceRoot":"","sources":["../../src/core/fs-safe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY;IAC/C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY;IAC1C,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAI,IAAY;IAChD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAM,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAY,EACZ,KAAc,EACd,UAA4B,EAAE;IAE9B,OAAO,iBAAiB,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAY,EACZ,KAAa,EACb,UAA4B,EAAE;IAE9B,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,MAAM,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QACzC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"fs-safe.js","sourceRoot":"","sources":["../../src/core/fs-safe.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/core/git.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGjD,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,aAA0B,GAC9B,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,aAA0B,GAC9B,OAAO,CAAC,OAAO,CAAC,CAgBlB;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,aAA0B,GAC9B,OAAO,CAAC,MAAM,EAAE,CAAC,CAMnB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAW5D"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/core/git.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGjD,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,aAA0B,GAC9B,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,aAA0B,GAC9B,OAAO,CAAC,OAAO,CAAC,CAgBlB;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,aAA0B,GAC9B,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAW5D"}
package/dist/core/git.js CHANGED
@@ -23,7 +23,10 @@ export async function listChangedFiles(repoRoot, run = runCommand) {
23
23
  cwd: repoRoot,
24
24
  timeoutMs: 10_000
25
25
  });
26
- return result.exitCode === 0 ? filterBuiltInRuntimePaths(parseGitStatusFiles(result.stdout)) : [];
26
+ if (result.exitCode !== 0) {
27
+ throw new Error(`Unable to inspect changed files with git status: ${formatGitStatusFailure(result)}`);
28
+ }
29
+ return filterBuiltInRuntimePaths(parseGitStatusFiles(result.stdout));
27
30
  }
28
31
  export function parseGitStatusFiles(output) {
29
32
  return output
@@ -38,4 +41,7 @@ export function parseGitStatusFiles(output) {
38
41
  })
39
42
  .filter(Boolean);
40
43
  }
44
+ function formatGitStatusFailure(result) {
45
+ return (result.stderr || result.stdout || "git status exited without output").trim();
46
+ }
41
47
  //# sourceMappingURL=git.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/core/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/core/git.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,16 @@ import type { ToolAdapterResult } from "../types/index.js";
2
2
  export interface CommandOutput {
3
3
  output: string;
4
4
  }
5
+ export interface VerificationFailureCounts {
6
+ passed: number;
7
+ failed: number;
8
+ unresolvedFailed: number;
9
+ resolvedFailed: number;
10
+ }
11
+ export declare const AGENTFLIGHT_PROJECT_CONFIG_GUIDANCE = ".agentflight/config.json is project config. Review or commit it when shared AgentFlight defaults are useful.";
12
+ export declare const AGENTFLIGHT_RUNTIME_EVIDENCE_GUIDANCE = ".agentflight/sessions/, reports/, evidence/, current/ are local runtime evidence and are excluded from AgentFlight changed-file analysis.";
13
+ export declare const AGENTFLIGHT_GITIGNORE_GUIDANCE = ".agentflight/.gitignore keeps runtime evidence out of git while leaving config.json visible.";
14
+ export declare const PROJSCAN_MEMORY_FILTER_GUIDANCE = "If .projscan-memory/memory.json appears as generated tool state, add \".projscan-memory/**\" to changedFileFilters.ignore in .agentflight/config.json.";
5
15
  export declare function formatToolAvailability(label: string, available: boolean): string;
6
16
  export declare function renderStatus(status: "ok" | "warning" | "error"): string;
7
17
  export declare function formatCommandForDisplay(command: string, options?: {
@@ -9,5 +19,9 @@ export declare function formatCommandForDisplay(command: string, options?: {
9
19
  }): string;
10
20
  export declare function formatVerifyCommandForDisplay(command: string): string;
11
21
  export declare function compactCommandInText(text: string, command: string | undefined): string;
22
+ export declare function formatVerificationCountLine(counts: VerificationFailureCounts): string;
23
+ export declare function formatVerificationFailureContext(counts: VerificationFailureCounts): string;
24
+ export declare function formatAgentFlightGeneratedFileList(repoRoot: string, files: string[]): string;
25
+ export declare function formatAgentFlightLocalFilesGuidance(): string;
12
26
  export declare function formatToolForReport(label: string, result: ToolAdapterResult): string;
13
27
  //# sourceMappingURL=output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/core/output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB;AAID,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CAEhF;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAIvE;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACnC,MAAM,CAKR;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGtF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAMpF"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/core/output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB;AAGD,eAAO,MAAM,mCAAmC,iHACgE,CAAC;AACjH,eAAO,MAAM,qCAAqC,8IAC2F,CAAC;AAC9I,eAAO,MAAM,8BAA8B,iGACqD,CAAC;AACjG,eAAO,MAAM,+BAA+B,2JAC4G,CAAC;AAEzJ,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CAEhF;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAIvE;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACnC,MAAM,CAKR;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGtF;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,yBAAyB,GAAG,MAAM,CAMrF;AAED,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,yBAAyB,GAAG,MAAM,CAW1F;AAED,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAO5F;AAED,wBAAgB,mCAAmC,IAAI,MAAM,CAO5D;AAiBD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAQpF"}
@@ -1,4 +1,9 @@
1
+ import { formatRepoRelativePath } from "./paths.js";
1
2
  const DEFAULT_COMMAND_DISPLAY_LENGTH = 96;
3
+ export const AGENTFLIGHT_PROJECT_CONFIG_GUIDANCE = ".agentflight/config.json is project config. Review or commit it when shared AgentFlight defaults are useful.";
4
+ export const AGENTFLIGHT_RUNTIME_EVIDENCE_GUIDANCE = ".agentflight/sessions/, reports/, evidence/, current/ are local runtime evidence and are excluded from AgentFlight changed-file analysis.";
5
+ export const AGENTFLIGHT_GITIGNORE_GUIDANCE = ".agentflight/.gitignore keeps runtime evidence out of git while leaving config.json visible.";
6
+ export const PROJSCAN_MEMORY_FILTER_GUIDANCE = 'If .projscan-memory/memory.json appears as generated tool state, add ".projscan-memory/**" to changedFileFilters.ignore in .agentflight/config.json.';
2
7
  export function formatToolAvailability(label, available) {
3
8
  return `${label}: ${available ? "available" : "unavailable"}`;
4
9
  }
@@ -24,14 +29,76 @@ export function compactCommandInText(text, command) {
24
29
  return text;
25
30
  return text.split(command).join(formatCommandForDisplay(command));
26
31
  }
32
+ export function formatVerificationCountLine(counts) {
33
+ const context = counts.failed > 0
34
+ ? ` (${counts.unresolvedFailed} unresolved, ${counts.resolvedFailed} resolved)`
35
+ : "";
36
+ return `${counts.passed} passed, ${counts.failed} failed${context}`;
37
+ }
38
+ export function formatVerificationFailureContext(counts) {
39
+ if (counts.failed === 0)
40
+ return "";
41
+ const lines = [];
42
+ if (counts.unresolvedFailed > 0) {
43
+ lines.push(`Unresolved failed runs: ${counts.unresolvedFailed}.`);
44
+ }
45
+ if (counts.resolvedFailed > 0) {
46
+ lines.push(`Historical failed runs: ${counts.resolvedFailed} resolved by later passing runs.`);
47
+ }
48
+ return lines.join(" ");
49
+ }
50
+ export function formatAgentFlightGeneratedFileList(repoRoot, files) {
51
+ if (files.length === 0)
52
+ return "- none";
53
+ return files
54
+ .map((file) => formatRepoRelativePath(repoRoot, file))
55
+ .sort(compareAgentFlightGeneratedFilePaths)
56
+ .map((file) => `- ${file}`)
57
+ .join("\n");
58
+ }
59
+ export function formatAgentFlightLocalFilesGuidance() {
60
+ return [
61
+ AGENTFLIGHT_PROJECT_CONFIG_GUIDANCE,
62
+ AGENTFLIGHT_RUNTIME_EVIDENCE_GUIDANCE,
63
+ AGENTFLIGHT_GITIGNORE_GUIDANCE,
64
+ PROJSCAN_MEMORY_FILTER_GUIDANCE
65
+ ].join("\n");
66
+ }
67
+ function compareAgentFlightGeneratedFilePaths(left, right) {
68
+ return (agentFlightGeneratedFilePathPriority(left) - agentFlightGeneratedFilePathPriority(right) ||
69
+ left.localeCompare(right));
70
+ }
71
+ function agentFlightGeneratedFilePathPriority(file) {
72
+ const priorities = new Map([
73
+ [".agentflight/config.json", 0],
74
+ [".agentflight/.gitignore", 1]
75
+ ]);
76
+ return priorities.get(file) ?? 10;
77
+ }
27
78
  export function formatToolForReport(label, result) {
28
79
  const status = result.available ? "available" : "unavailable";
29
80
  const version = result.version ? ` ${result.version}` : "";
81
+ const stateDetails = summarizeToolState(label, result);
30
82
  const warnings = result.warnings.map((warning) => summarizeToolWarning(label, warning));
31
- const warningText = warnings.length ? ` (${warnings.join("; ")})` : "";
32
- return `${status}${version}${warningText}`;
83
+ const details = [...stateDetails, ...warnings];
84
+ const detailText = details.length ? ` (${details.join("; ")})` : "";
85
+ return `${status}${version}${detailText}`;
86
+ }
87
+ function summarizeToolState(label, result) {
88
+ if (label !== "AgentLoopKit" || !result.available || result.taskLinked === undefined) {
89
+ return [];
90
+ }
91
+ return [result.taskLinked ? "active task linked" : "no active task linked"];
33
92
  }
34
93
  function summarizeToolWarning(label, warning) {
94
+ if (label === "ProjScan") {
95
+ if (warning.startsWith("ProjScan baseline skipped:")) {
96
+ return "ProjScan baseline skipped; run projscan start for details.";
97
+ }
98
+ if (warning.startsWith("ProjScan unavailable:")) {
99
+ return "ProjScan unavailable; run npx projscan@latest doctor for details.";
100
+ }
101
+ }
35
102
  if (label === "AgentLoopKit") {
36
103
  if (warning.startsWith("AgentLoopKit doctor reported issues:")) {
37
104
  return "AgentLoopKit doctor reported issues; run agentloopkit doctor for details.";
@@ -39,8 +106,9 @@ function summarizeToolWarning(label, warning) {
39
106
  if (warning.startsWith("AgentLoopKit unavailable:")) {
40
107
  return "AgentLoopKit unavailable; run npx agentloopkit@latest doctor for details.";
41
108
  }
42
- if (warning.startsWith("AgentLoopKit task creation failed:")) {
43
- return "AgentLoopKit task creation failed; run agentloopkit status for details.";
109
+ if (warning.startsWith("AgentLoopKit task creation failed:") ||
110
+ warning.startsWith("AgentLoopKit task link check failed:")) {
111
+ return "AgentLoopKit task link check needs attention; run agentloopkit status for details.";
44
112
  }
45
113
  }
46
114
  return formatCommandForDisplay(warning, { maxLength: 180 });
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/core/output.ts"],"names":[],"mappings":"AAMA,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAE1C,MAAM,UAAU,sBAAsB,CAAC,KAAa,EAAE,SAAkB;IACtE,OAAO,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAkC;IAC7D,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,OAAe,EACf,UAAkC,EAAE;IAEpC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,8BAA8B,CAAC;IACtE,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvD,IAAI,UAAU,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,UAAU,CAAC;IACtD,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,OAAe;IAC3D,OAAO,yBAAyB,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,OAA2B;IAC5E,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,MAAyB;IAC1E,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;IAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IACxF,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa,EAAE,OAAe;IAC1D,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,UAAU,CAAC,sCAAsC,CAAC,EAAE,CAAC;YAC/D,OAAO,2EAA2E,CAAC;QACrF,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,CAAC,2BAA2B,CAAC,EAAE,CAAC;YACpD,OAAO,2EAA2E,CAAC;QACrF,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,CAAC,oCAAoC,CAAC,EAAE,CAAC;YAC7D,OAAO,yEAAyE,CAAC;QACnF,CAAC;IACH,CAAC;IAED,OAAO,uBAAuB,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/core/output.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  import type { AgentFlightPaths } from "../types/index.js";
2
2
  export declare function resolveAgentFlightPaths(repoRoot: string): AgentFlightPaths;
3
+ export declare function formatRepoRelativePath(repoRoot: string, targetPath: string): string;
3
4
  //# sourceMappingURL=paths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/core/paths.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAc1E"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/core/paths.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAc1E;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAKnF"}
@@ -1,4 +1,4 @@
1
- import { join } from "node:path";
1
+ import { isAbsolute, join, relative, sep } from "node:path";
2
2
  export function resolveAgentFlightPaths(repoRoot) {
3
3
  const root = join(repoRoot, ".agentflight");
4
4
  return {
@@ -13,4 +13,12 @@ export function resolveAgentFlightPaths(repoRoot) {
13
13
  currentResumePrompt: join(root, "current", "resume-prompt.md")
14
14
  };
15
15
  }
16
+ export function formatRepoRelativePath(repoRoot, targetPath) {
17
+ const relativePath = relative(repoRoot, targetPath);
18
+ if (relativePath === "")
19
+ return ".";
20
+ if (relativePath.startsWith("..") || isAbsolute(relativePath))
21
+ return targetPath;
22
+ return relativePath.split(sep).join("/");
23
+ }
16
24
  //# sourceMappingURL=paths.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/core/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,UAAU,uBAAuB,CAAC,QAAgB;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAE5C,OAAO;QACL,IAAI;QACJ,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACjC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;QAChC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;QAC9B,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;QAChC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;QAC9B,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,cAAc,CAAC;QACrD,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC;QACnD,mBAAmB,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,kBAAkB,CAAC;KAC/D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/core/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAG5D,MAAM,UAAU,uBAAuB,CAAC,QAAgB;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAE5C,OAAO;QACL,IAAI;QACJ,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;QACjC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;QAChC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;QAC9B,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;QAChC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;QAC9B,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,cAAc,CAAC;QACrD,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC;QACnD,mBAAmB,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,kBAAkB,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,QAAgB,EAAE,UAAkB;IACzE,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACpD,IAAI,YAAY,KAAK,EAAE;QAAE,OAAO,GAAG,CAAC;IACpC,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,UAAU,CAAC;IACjF,OAAO,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"review-intelligence.d.ts","sourceRoot":"","sources":["../../src/core/review-intelligence.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAGlB,kBAAkB,EAIlB,kBAAkB,EAClB,YAAY,EAGZ,qBAAqB,EAEtB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,8BAA8B;IAC7C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,aAAa,CAAC,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;CAClD;AA2CD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,8BAA8B,GACtC,kBAAkB,CA8BpB;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,CAUpF"}
1
+ {"version":3,"file":"review-intelligence.d.ts","sourceRoot":"","sources":["../../src/core/review-intelligence.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,kBAAkB,EAGlB,kBAAkB,EAIlB,kBAAkB,EAClB,YAAY,EAGZ,qBAAqB,EAEtB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,8BAA8B;IAC7C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,aAAa,CAAC,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;CAClD;AAqJD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,8BAA8B,GACtC,kBAAkB,CA+BpB;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,CAUpF"}