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,13 +1,16 @@
1
+ import { readOpenFirstArtifact } from "../core/artifacts.js";
1
2
  import { listChangedFiles } from "../core/git.js";
2
3
  import { filterChangedFiles } from "../core/changed-files.js";
3
4
  import { loadConfig } from "../core/config.js";
4
5
  import { pathExists, readJsonFile } from "../core/fs-safe.js";
5
- import { compactCommandInText, formatVerifyCommandForDisplay } from "../core/output.js";
6
+ import { compactCommandInText, formatCommandForDisplay, formatVerificationCountLine, formatVerificationFailureContext, formatVerifyCommandForDisplay } from "../core/output.js";
6
7
  import { resolveAgentFlightPaths } from "../core/paths.js";
7
8
  import { analyzeRisk } from "../core/risk.js";
8
9
  import { buildReviewIntelligence } from "../core/review-intelligence.js";
9
- import { getLatestSessionEvent } from "../core/session.js";
10
+ import { getLatestRecordedReviewSummary, getLatestSessionEvent } from "../core/session.js";
10
11
  import { buildVerificationSummary } from "../core/verification.js";
12
+ const STATUS_VERIFICATION_RUN_LIMIT = 8;
13
+ const readyHandoffNextAction = "Run agentflight handoff to generate the local review packet.";
11
14
  export async function runStatusCommand(options) {
12
15
  const format = normalizeStatusFormat(options.format);
13
16
  const session = await readCurrentSession(options.repoRoot);
@@ -23,6 +26,13 @@ export async function runStatusCommand(options) {
23
26
  const latestSnapshot = getLatestSessionEvent(session, "snapshot_created");
24
27
  const readinessReason = compactCommandInText(review.readiness.reason, review.readiness.suggestedCommand);
25
28
  const nextAction = compactCommandInText(review.readiness.nextAction, review.readiness.suggestedCommand);
29
+ const statusTextNextAction = await buildStatusTextNextAction({
30
+ repoRoot: options.repoRoot,
31
+ session,
32
+ readinessState: review.readiness.state,
33
+ nextAction
34
+ });
35
+ const verificationFailureContext = formatVerificationFailureContext(verification);
26
36
  if (format === "json") {
27
37
  return {
28
38
  output: `${JSON.stringify(buildStatusJson({
@@ -57,8 +67,10 @@ Risk: ${risk.level}
57
67
  ${risk.reasons.map((reason) => `- ${reason}`).join("\n")}
58
68
 
59
69
  Verification Evidence:
60
- ${verification.passed} passed, ${verification.failed} failed
61
- ${formatVerificationRuns(verification.runs)}
70
+ ${formatVerificationCountLine(verification)}
71
+ ${verificationFailureContext ? `${verificationFailureContext}\n` : ""}${formatVerificationRuns(verification.runs, {
72
+ tuckDetails: changedFiles.length === 0 && verification.unresolvedFailed === 0
73
+ })}
62
74
 
63
75
  Review first:
64
76
  ${formatReviewFocus(review.focus.slice(0, 5))}
@@ -73,7 +85,7 @@ Readiness: ${review.readiness.label}
73
85
  Reason: ${readinessReason}
74
86
 
75
87
  Next action:
76
- ${nextAction}
88
+ ${statusTextNextAction}
77
89
  `
78
90
  };
79
91
  }
@@ -99,6 +111,8 @@ function buildStatusJson(input) {
99
111
  verification: {
100
112
  passed: input.verification.passed,
101
113
  failed: input.verification.failed,
114
+ unresolvedFailed: input.verification.unresolvedFailed,
115
+ resolvedFailed: input.verification.resolvedFailed,
102
116
  runs: input.verification.runs
103
117
  },
104
118
  review: {
@@ -133,6 +147,34 @@ function formatLatestSnapshot(event) {
133
147
  - Risk: ${riskLevel}
134
148
  - Changed files: ${changedFiles}`;
135
149
  }
150
+ function formatCleanStatusNextAction(openFirst) {
151
+ const openLine = openFirst
152
+ ? `Open first: ${openFirst}`
153
+ : "Run agentflight history --limit 1 to reopen the latest local artifacts.";
154
+ return `${openLine}
155
+ Start a new AgentFlight session when you begin the next task.`;
156
+ }
157
+ async function buildStatusTextNextAction(input) {
158
+ const openFirstReadiness = statusOpenFirstReadiness(input.readinessState, input.session);
159
+ if (openFirstReadiness === undefined)
160
+ return input.nextAction;
161
+ const openFirst = await readOpenFirstArtifact(input.repoRoot, input.session.id, openFirstReadiness);
162
+ if (input.readinessState === "clean_worktree")
163
+ return formatCleanStatusNextAction(openFirst);
164
+ return formatReadyStatusNextAction(input.nextAction, openFirst);
165
+ }
166
+ function statusOpenFirstReadiness(readinessState, session) {
167
+ if (readinessState === "clean_worktree")
168
+ return getLatestRecordedReviewSummary(session)?.state;
169
+ if (readinessState === "ready_for_review")
170
+ return readinessState;
171
+ return undefined;
172
+ }
173
+ function formatReadyStatusNextAction(nextAction, openFirst) {
174
+ if (openFirst && nextAction === readyHandoffNextAction)
175
+ return `Open first: ${openFirst}`;
176
+ return nextAction;
177
+ }
136
178
  function readMetadataObject(event, key) {
137
179
  const value = event.metadata?.[key];
138
180
  return typeof value === "object" && value !== null && !Array.isArray(value)
@@ -162,12 +204,35 @@ function formatChangedAreas(categories) {
162
204
  .map((summary) => `- ${summary.category}: ${summary.files.join(", ")}`)
163
205
  .join("\n");
164
206
  }
165
- function formatVerificationRuns(runs) {
207
+ function formatVerificationRuns(runs, options = {}) {
166
208
  if (!runs || runs.length === 0)
167
209
  return "- No verification runs recorded.";
168
- return runs
169
- .map((run) => `- ${run.status}: ${run.command} (exit ${run.exitCode ?? "unknown"}, ${run.durationMs}ms)`)
170
- .join("\n");
210
+ if (options.tuckDetails)
211
+ return formatTuckedVerificationRuns();
212
+ return formatVisibleVerificationRuns(runs);
213
+ }
214
+ function formatTuckedVerificationRuns() {
215
+ return "- Verification run details are tucked because the worktree is clean; open handoff/report/replay or JSON output for the full ledger.";
216
+ }
217
+ function formatVisibleVerificationRuns(runs) {
218
+ const displayRuns = runs.length > STATUS_VERIFICATION_RUN_LIMIT ? runs.slice(-STATUS_VERIFICATION_RUN_LIMIT) : runs;
219
+ const runLines = displayRuns.map(formatVerificationRunLine).join("\n");
220
+ if (displayRuns.length === runs.length)
221
+ return runLines;
222
+ return `${formatOmittedVerificationRunNote(runs.length, displayRuns.length)}
223
+ ${runLines}`;
224
+ }
225
+ function formatVerificationRunLine(run) {
226
+ return `- ${run.status}: ${formatCommandForDisplay(run.command)} (exit ${run.exitCode ?? "unknown"}, ${run.durationMs}ms)`;
227
+ }
228
+ function formatOmittedVerificationRunNote(totalRuns, shownRuns) {
229
+ const omitted = totalRuns - shownRuns;
230
+ return `- Showing latest ${shownRuns} of ${totalRuns} verification runs.
231
+ - ${formatOmittedVerificationRunCount(omitted)} remain in report/replay and JSON output.`;
232
+ }
233
+ function formatOmittedVerificationRunCount(omitted) {
234
+ const runNoun = omitted === 1 ? "run" : "runs";
235
+ return `${omitted} earlier verification ${runNoun}`;
171
236
  }
172
237
  function formatReviewFocus(items) {
173
238
  if (items.length === 0)
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAsB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,GAAG,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAC/B,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC1C,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,WAAW,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACvD;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,eAAe,EAAE,CAAC;CACzB;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAsB9B"}
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAsB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,GAAG,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAC/B,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC1C,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,WAAW,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACvD;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,eAAe,EAAE,CAAC;CACzB;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAoB9B"}
@@ -1,6 +1,7 @@
1
1
  import { loadConfig } from "../core/config.js";
2
+ import { readPackageJson } from "../core/project.js";
2
3
  import { appendSessionEvent, appendVerificationRun } from "../core/session.js";
3
- import { formatCommand, parseCommandLine, runVerificationCommand } from "../core/verification.js";
4
+ import { detectVerificationCommands, formatCommand, parseCommandLine, runVerificationCommand } from "../core/verification.js";
4
5
  import { readCurrentSession } from "./status.js";
5
6
  export async function runVerifyCommand(options) {
6
7
  const session = await readCurrentSession(options.repoRoot);
@@ -8,8 +9,7 @@ export async function runVerifyCommand(options) {
8
9
  const resolutionError = buildResolutionErrorResult(commandResolution.error);
9
10
  if (resolutionError)
10
11
  return resolutionError;
11
- const commandSets = commandResolution.commandSets;
12
- const missingCommand = buildMissingCommandResult(commandSets);
12
+ const missingCommand = buildMissingCommandResult(commandResolution);
13
13
  if (missingCommand)
14
14
  return missingCommand;
15
15
  const { output, runs } = await runResolvedVerificationCommands(options, session, commandResolution);
@@ -95,13 +95,22 @@ ${error}
95
95
  runs: []
96
96
  };
97
97
  }
98
- function buildMissingCommandResult(commandSets) {
99
- if (commandSets.length > 0)
98
+ function buildMissingCommandResult(commandResolution) {
99
+ if (commandResolution.commandSets.length > 0)
100
100
  return null;
101
+ const suggestedCommands = commandResolution.suggestedCommands ?? [];
102
+ const suggestions = suggestedCommands.length > 0
103
+ ? `
104
+
105
+ Try one of:
106
+ ${suggestedCommands.map((command) => `- agentflight verify -- ${command}`).join("\n")}
107
+
108
+ To make this the default, add commands under verification.commands in .agentflight/config.json.`
109
+ : "";
101
110
  return {
102
111
  output: `AgentFlight verify
103
112
 
104
- No verification command was provided and no commands are configured in .agentflight/config.json.
113
+ No verification command was provided and no commands are configured in .agentflight/config.json.${suggestions}
105
114
  `,
106
115
  exitCode: 1,
107
116
  runs: []
@@ -144,7 +153,7 @@ async function resolveCommandSets(options) {
144
153
  if (profile.name) {
145
154
  return resolveProfileCommandSets(config?.verification, profile.name);
146
155
  }
147
- return resolveConfiguredCommandSets(config?.verification.commands);
156
+ return resolveConfiguredCommandSets(options.repoRoot, config?.verification.commands);
148
157
  }
149
158
  function hasExplicitCommandArgs(options) {
150
159
  return Array.isArray(options.commandArgs) && options.commandArgs.length > 0;
@@ -155,9 +164,13 @@ function normalizeProfileOption(profile) {
155
164
  return { error: "Verification profile name cannot be empty." };
156
165
  return name ? { name } : {};
157
166
  }
158
- function resolveConfiguredCommandSets(commands) {
167
+ async function resolveConfiguredCommandSets(repoRoot, commands) {
168
+ const commandSets = parseConfiguredCommands(commands ?? []);
169
+ if (commandSets.length > 0)
170
+ return { commandSets };
159
171
  return {
160
- commandSets: parseConfiguredCommands(commands ?? [])
172
+ commandSets,
173
+ suggestedCommands: detectVerificationCommands(await readPackageJson(repoRoot))
161
174
  };
162
175
  }
163
176
  function resolveProfileCommandSets(verification, profileName) {
@@ -1 +1 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { ReviewReadinessState } from "../types/index.js";
2
+ export interface ReviewArtifacts {
3
+ handoff: string;
4
+ report: string;
5
+ replay: string;
6
+ resume: string;
7
+ }
8
+ export declare function readReviewArtifacts(repoRoot: string, sessionId: string): Promise<ReviewArtifacts>;
9
+ export declare function readOpenFirstArtifact(repoRoot: string, sessionId: string, readiness: ReviewReadinessState | undefined): Promise<string | null>;
10
+ export declare function chooseOpenFirstArtifact(readiness: ReviewReadinessState | undefined, artifacts: ReviewArtifacts): string;
11
+ //# sourceMappingURL=artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/core/artifacts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAID,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,CAO1B;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,oBAAoB,GAAG,SAAS,GAC1C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAIxB;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,oBAAoB,GAAG,SAAS,EAC3C,SAAS,EAAE,eAAe,GACzB,MAAM,CAmBR"}
@@ -0,0 +1,39 @@
1
+ import { pathExists } from "./fs-safe.js";
2
+ import { formatRepoRelativePath, resolveAgentFlightPaths } from "./paths.js";
3
+ export async function readReviewArtifacts(repoRoot, sessionId) {
4
+ return {
5
+ handoff: await formatArtifactPath(repoRoot, sessionId, "handoff.md"),
6
+ report: await formatArtifactPath(repoRoot, sessionId, "proof.md"),
7
+ replay: await formatArtifactPath(repoRoot, sessionId, "replay.html"),
8
+ resume: await formatArtifactPath(repoRoot, sessionId, "resume.md")
9
+ };
10
+ }
11
+ export async function readOpenFirstArtifact(repoRoot, sessionId, readiness) {
12
+ const artifacts = await readReviewArtifacts(repoRoot, sessionId);
13
+ const openFirst = chooseOpenFirstArtifact(readiness, artifacts);
14
+ return openFirst === "none yet" ? null : openFirst;
15
+ }
16
+ export function chooseOpenFirstArtifact(readiness, artifacts) {
17
+ if (readiness === "ready_for_review") {
18
+ return formatOpenFirstArtifact(firstExistingArtifact(["handoff", "replay", "report"], artifacts), artifacts);
19
+ }
20
+ if (readiness) {
21
+ return formatOpenFirstArtifact(firstExistingArtifact(["report", "handoff", "replay"], artifacts), artifacts);
22
+ }
23
+ return formatOpenFirstArtifact(firstExistingArtifact(["handoff", "replay", "report"], artifacts), artifacts);
24
+ }
25
+ function firstExistingArtifact(order, artifacts) {
26
+ return order.find((artifact) => artifacts[artifact] !== "missing") ?? null;
27
+ }
28
+ function formatOpenFirstArtifact(artifact, artifacts) {
29
+ if (!artifact)
30
+ return "none yet";
31
+ return `${artifact} ${artifacts[artifact]}`;
32
+ }
33
+ async function formatArtifactPath(repoRoot, sessionId, suffix) {
34
+ const artifactPath = `${resolveAgentFlightPaths(repoRoot).reports}/${sessionId}-${suffix}`;
35
+ return (await pathExists(artifactPath))
36
+ ? formatRepoRelativePath(repoRoot, artifactPath)
37
+ : "missing";
38
+ }
39
+ //# sourceMappingURL=artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/core/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAY7E,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAAgB,EAChB,SAAiB;IAEjB,OAAO;QACL,OAAO,EAAE,MAAM,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC;QACpE,MAAM,EAAE,MAAM,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC;QACjE,MAAM,EAAE,MAAM,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC;QACpE,MAAM,EAAE,MAAM,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC;KACnE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAAgB,EAChB,SAAiB,EACjB,SAA2C;IAE3C,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,uBAAuB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAChE,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,SAA2C,EAC3C,SAA0B;IAE1B,IAAI,SAAS,KAAK,kBAAkB,EAAE,CAAC;QACrC,OAAO,uBAAuB,CAC5B,qBAAqB,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,EACjE,SAAS,CACV,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,uBAAuB,CAC5B,qBAAqB,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,EACjE,SAAS,CACV,CAAC;IACJ,CAAC;IAED,OAAO,uBAAuB,CAC5B,qBAAqB,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,EACjE,SAAS,CACV,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAwB,EACxB,SAA0B;IAE1B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC;AAC7E,CAAC;AAED,SAAS,uBAAuB,CAC9B,QAAgC,EAChC,SAA0B;IAE1B,IAAI,CAAC,QAAQ;QAAE,OAAO,UAAU,CAAC;IACjC,OAAO,GAAG,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC9C,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,QAAgB,EAChB,SAAiB,EACjB,MAA+D;IAE/D,MAAM,YAAY,GAAG,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC,OAAO,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;IAC3F,OAAO,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC;QACrC,CAAC,CAAC,sBAAsB,CAAC,QAAQ,EAAE,YAAY,CAAC;QAChD,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC"}
@@ -2,6 +2,7 @@ import type { AgentFlightConfig, AgentFlightPaths } from "../types/index.js";
2
2
  export interface CreateDefaultConfigOptions {
3
3
  repoRoot: string;
4
4
  now?: Date | undefined;
5
+ verificationCommands?: string[] | undefined;
5
6
  }
6
7
  export interface InitAgentFlightOptions {
7
8
  repoRoot: string;
@@ -12,6 +13,7 @@ export interface InitAgentFlightResult {
12
13
  config: AgentFlightConfig;
13
14
  created: string[];
14
15
  skipped: string[];
16
+ detectedVerificationCommands: string[];
15
17
  detections: {
16
18
  agentloopkit: boolean;
17
19
  projscan: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE7E,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE;QACV,YAAY,EAAE,OAAO,CAAC;QACtB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;CACH;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,iBAAiB,CA6B1F;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CA0ChC;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAIpF"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI7E,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAC7C;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,4BAA4B,EAAE,MAAM,EAAE,CAAC;IACvC,UAAU,EAAE;QACV,YAAY,EAAE,OAAO,CAAC;QACtB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;CACH;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,iBAAiB,CA6B1F;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAyChC;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAIpF"}
@@ -1,6 +1,9 @@
1
1
  import { basename } from "node:path";
2
2
  import { ensureDir, pathExists, readJsonFile, writeJsonFileSafe, writeTextFileSafe } from "./fs-safe.js";
3
3
  import { resolveAgentFlightPaths } from "./paths.js";
4
+ import { readPackageJson } from "./project.js";
5
+ import { detectVerificationCommands } from "./verification.js";
6
+ const runtimeGitignore = ["/sessions/", "/reports/", "/evidence/", "/current/", ""].join("\n");
4
7
  export function createDefaultConfig(options) {
5
8
  const now = options.now ?? new Date();
6
9
  return {
@@ -18,7 +21,7 @@ export function createDefaultConfig(options) {
18
21
  }
19
22
  },
20
23
  verification: {
21
- commands: [],
24
+ commands: options.verificationCommands ?? [],
22
25
  profiles: {}
23
26
  },
24
27
  changedFileFilters: {
@@ -39,19 +42,17 @@ export async function initAgentFlight(options) {
39
42
  await ensureDir(paths.reports);
40
43
  await ensureDir(paths.evidence);
41
44
  await ensureDir(paths.current);
42
- for (const gitkeepPath of [
43
- `${paths.sessions}/.gitkeep`,
44
- `${paths.reports}/.gitkeep`,
45
- `${paths.evidence}/.gitkeep`,
46
- `${paths.current}/.gitkeep`
47
- ]) {
48
- const result = await writeTextFileSafe(gitkeepPath, "");
49
- if (result.status === "created")
50
- created.push(result.path);
51
- if (result.status === "skipped")
52
- skipped.push(result.path);
53
- }
54
- const defaultConfig = createDefaultConfig({ repoRoot: options.repoRoot, now: options.now });
45
+ const runtimeIgnoreWrite = await writeTextFileSafe(`${paths.root}/.gitignore`, runtimeGitignore);
46
+ if (runtimeIgnoreWrite.status === "created")
47
+ created.push(runtimeIgnoreWrite.path);
48
+ if (runtimeIgnoreWrite.status === "skipped")
49
+ skipped.push(runtimeIgnoreWrite.path);
50
+ const verificationCommands = detectVerificationCommands(await readPackageJson(options.repoRoot));
51
+ const defaultConfig = createDefaultConfig({
52
+ repoRoot: options.repoRoot,
53
+ now: options.now,
54
+ verificationCommands
55
+ });
55
56
  const configWrite = await writeJsonFileSafe(paths.config, defaultConfig);
56
57
  if (configWrite.status === "created")
57
58
  created.push(configWrite.path);
@@ -65,6 +66,7 @@ export async function initAgentFlight(options) {
65
66
  config,
66
67
  created,
67
68
  skipped,
69
+ detectedVerificationCommands: verificationCommands,
68
70
  detections: {
69
71
  agentloopkit: await pathExists(`${options.repoRoot}/.agentloop`),
70
72
  projscan: await pathExists(`${options.repoRoot}/.projscanrc.json`)
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,10 @@ export interface DoctorEvaluationInput {
11
11
  currentSessionExists: boolean;
12
12
  projscanAvailable: boolean;
13
13
  agentloopkitAvailable: boolean;
14
+ configuredVerificationCommands?: number | undefined;
15
+ detectedVerificationCommands?: string[] | undefined;
16
+ projscanMemoryPresent?: boolean | undefined;
17
+ projscanMemoryIgnored?: boolean | undefined;
14
18
  scripts: {
15
19
  test: boolean;
16
20
  build: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/core/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE;QACP,IAAI,EAAE,OAAO,CAAC;QACd,KAAK,EAAE,OAAO,CAAC;QACf,SAAS,EAAE,OAAO,CAAC;QACnB,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;CACH;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,CAkI/E"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/core/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,8BAA8B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpD,4BAA4B,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACpD,qBAAqB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5C,qBAAqB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5C,OAAO,EAAE;QACP,IAAI,EAAE,OAAO,CAAC;QACd,KAAK,EAAE,OAAO,CAAC;QACf,SAAS,EAAE,OAAO,CAAC;QACnB,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;CACH;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,CAoJ/E"}
@@ -11,7 +11,7 @@ export function evaluateDoctorChecks(input) {
11
11
  ? ok("git availability", "git is available.")
12
12
  : warning("git availability", "git is not available or this repo cannot run git commands.", "Install git or run AgentFlight inside a git repository."));
13
13
  checks.push(input.repoRoot
14
- ? ok("repository root", input.repoRoot)
14
+ ? ok("repository root", "Repository root detected.")
15
15
  : error("repository root", "Unable to determine repository root.", "Run AgentFlight from inside a git repository or project directory."));
16
16
  checks.push(input.packageManager
17
17
  ? ok("package manager", input.packageManager)
@@ -27,13 +27,21 @@ export function evaluateDoctorChecks(input) {
27
27
  : error(".agentflight writable", ".agentflight is not writable.", "Check filesystem permissions."));
28
28
  checks.push(input.currentSessionExists
29
29
  ? ok("current session", "A current session exists.")
30
- : warning("current session", "No current session exists.", 'Run agentflight start --task "...".'));
30
+ : ok("current session", 'No current session is active. Run agentflight start --task "..." when you begin work.'));
31
31
  checks.push(input.projscanAvailable
32
32
  ? ok("ProjScan availability", "ProjScan is available.")
33
33
  : warning("ProjScan availability", "ProjScan is not currently available.", "Install projscan locally or allow AgentFlight to use npx projscan@latest."));
34
34
  checks.push(input.agentloopkitAvailable
35
35
  ? ok("AgentLoopKit availability", "AgentLoopKit is available.")
36
36
  : warning("AgentLoopKit availability", "AgentLoopKit is not currently available.", "Install agentloopkit locally or allow AgentFlight to use npx agentloopkit@latest."));
37
+ if (input.configuredVerificationCommands !== undefined) {
38
+ checks.push(verificationCommandsCheck(input));
39
+ }
40
+ if (input.projscanMemoryPresent) {
41
+ checks.push(input.projscanMemoryIgnored
42
+ ? ok("generated tool state", ".projscan-memory/memory.json is filtered by changedFileFilters.ignore.")
43
+ : warning("generated tool state", ".projscan-memory/memory.json is present and remains reviewable.", 'If ProjScan memory is generated evidence in this repo, add ".projscan-memory/**" to changedFileFilters.ignore in .agentflight/config.json.'));
44
+ }
37
45
  for (const script of ["test", "build", "typecheck", "lint"]) {
38
46
  checks.push(input.scripts[script]
39
47
  ? ok(`${script} script`, `npm run ${script} is configured.`)
@@ -48,6 +56,33 @@ export function evaluateDoctorChecks(input) {
48
56
  checks
49
57
  };
50
58
  }
59
+ function verificationCommandsCheck(input) {
60
+ const count = Math.max(0, input.configuredVerificationCommands ?? 0);
61
+ if (count > 0) {
62
+ return ok("verification commands", `.agentflight/config.json has ${count} configured verification ${count === 1 ? "command" : "commands"}.`);
63
+ }
64
+ if (hasPackageProofScript(input.scripts)) {
65
+ return warning("verification commands", ".agentflight/config.json has no configured verification commands, but package proof scripts are available.", buildVerificationCommandsSuggestedFix(input.detectedVerificationCommands));
66
+ }
67
+ return ok("verification commands", "No configured verification commands and no package proof scripts detected.");
68
+ }
69
+ function hasPackageProofScript(input) {
70
+ return input.test || input.build || input.typecheck || input.lint;
71
+ }
72
+ function buildVerificationCommandsSuggestedFix(commands) {
73
+ const suggestions = (commands ?? [])
74
+ .filter((command) => command.trim().length > 0)
75
+ .slice(0, 4)
76
+ .map((command) => `agentflight verify -- ${command}`);
77
+ if (suggestions.length === 0) {
78
+ return "Add commands under verification.commands or run agentflight verify -- <command> explicitly.";
79
+ }
80
+ return [
81
+ "Try one of:",
82
+ ...suggestions.map((suggestion) => `- ${suggestion}`),
83
+ "To make one command the default, add it under verification.commands."
84
+ ].join("\n");
85
+ }
51
86
  function parseNodeMajor(version) {
52
87
  const match = /^v?(\d+)/.exec(version);
53
88
  return match ? Number(match[1]) : 0;
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/core/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/core/doctor.ts"],"names":[],"mappings":"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"}
@@ -6,10 +6,16 @@ export interface SafeWriteResult {
6
6
  export interface SafeWriteOptions {
7
7
  overwrite?: boolean;
8
8
  }
9
+ export interface FileLockOptions {
10
+ timeoutMs?: number;
11
+ pollMs?: number;
12
+ }
9
13
  export declare function pathExists(path: string): Promise<boolean>;
10
14
  export declare function isPathWritable(path: string): Promise<boolean>;
11
15
  export declare function ensureDir(path: string): Promise<void>;
12
16
  export declare function readJsonFile<T>(path: string): Promise<T>;
13
17
  export declare function writeJsonFileSafe(path: string, value: unknown, options?: SafeWriteOptions): Promise<SafeWriteResult>;
14
18
  export declare function writeTextFileSafe(path: string, value: string, options?: SafeWriteOptions): Promise<SafeWriteResult>;
19
+ export declare function tryWriteTextFileExclusive(path: string, value: string): Promise<boolean>;
20
+ export declare function withFileLock<T>(lockPath: string, callback: () => Promise<T>, options?: FileLockOptions): Promise<T>;
15
21
  //# sourceMappingURL=fs-safe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fs-safe.d.ts","sourceRoot":"","sources":["../../src/core/fs-safe.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO/D;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3D;AAED,wBAAsB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAE9D;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAE1B;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAU1B"}
1
+ {"version":3,"file":"fs-safe.d.ts","sourceRoot":"","sources":["../../src/core/fs-safe.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO/D;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3D;AAED,wBAAsB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAE9D;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAE1B;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAmB1B;AAED,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAW7F;AAED,wBAAsB,YAAY,CAAC,CAAC,EAClC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC1B,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,CAAC,CAAC,CAkBZ"}