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
|
@@ -4,8 +4,14 @@ const agentFlightRuntimePrefixes = [
|
|
|
4
4
|
".agentflight/current/",
|
|
5
5
|
".agentflight/evidence/"
|
|
6
6
|
];
|
|
7
|
+
const agentLoopKitEvidencePrefixes = [
|
|
8
|
+
".agentloop/reports/",
|
|
9
|
+
".agentloop/handoffs/",
|
|
10
|
+
".agentloop/runs/"
|
|
11
|
+
];
|
|
12
|
+
const agentLoopKitEvidencePaths = [".agentloop/state.json"];
|
|
7
13
|
export function filterChangedFiles(files, options = {}) {
|
|
8
|
-
const runtimeFiltered =
|
|
14
|
+
const runtimeFiltered = filterBuiltInRuntimePaths(files);
|
|
9
15
|
const ignore = Array.isArray(options.ignore) ? options.ignore : [];
|
|
10
16
|
const patterns = ignore
|
|
11
17
|
.map(normalizeIgnorePattern)
|
|
@@ -20,10 +26,21 @@ export function filterChangedFiles(files, options = {}) {
|
|
|
20
26
|
export function filterAgentFlightRuntimePaths(files) {
|
|
21
27
|
return files.filter((file) => !isAgentFlightRuntimePath(file));
|
|
22
28
|
}
|
|
29
|
+
export function filterBuiltInRuntimePaths(files) {
|
|
30
|
+
return files.filter((file) => !isBuiltInRuntimePath(file));
|
|
31
|
+
}
|
|
23
32
|
export function isAgentFlightRuntimePath(file) {
|
|
24
33
|
const normalized = normalizeChangedFilePath(file);
|
|
25
34
|
return agentFlightRuntimePrefixes.some((prefix) => normalized === prefix.slice(0, -1) || normalized.startsWith(prefix));
|
|
26
35
|
}
|
|
36
|
+
export function isAgentLoopKitEvidencePath(file) {
|
|
37
|
+
const normalized = normalizeChangedFilePath(file);
|
|
38
|
+
return (agentLoopKitEvidencePaths.includes(normalized) ||
|
|
39
|
+
agentLoopKitEvidencePrefixes.some((prefix) => normalized === prefix.slice(0, -1) || normalized.startsWith(prefix)));
|
|
40
|
+
}
|
|
41
|
+
export function isBuiltInRuntimePath(file) {
|
|
42
|
+
return isAgentFlightRuntimePath(file) || isAgentLoopKitEvidencePath(file);
|
|
43
|
+
}
|
|
27
44
|
function normalizeChangedFilePath(file) {
|
|
28
45
|
return file.replaceAll("\\", "/").replace(/^\.\//, "");
|
|
29
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changed-files.js","sourceRoot":"","sources":["../../src/core/changed-files.ts"],"names":[],"mappings":"AAAA,MAAM,0BAA0B,GAAG;IACjC,wBAAwB;IACxB,uBAAuB;IACvB,uBAAuB;IACvB,wBAAwB;CACzB,CAAC;
|
|
1
|
+
{"version":3,"file":"changed-files.js","sourceRoot":"","sources":["../../src/core/changed-files.ts"],"names":[],"mappings":"AAAA,MAAM,0BAA0B,GAAG;IACjC,wBAAwB;IACxB,uBAAuB;IACvB,uBAAuB;IACvB,wBAAwB;CACzB,CAAC;AAEF,MAAM,4BAA4B,GAAG;IACnC,qBAAqB;IACrB,sBAAsB;IACtB,kBAAkB;CACnB,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAM5D,MAAM,UAAU,kBAAkB,CAChC,KAAe,EACf,UAAoC,EAAE;IAEtC,MAAM,eAAe,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,MAAM,QAAQ,GAAG,MAAM;SACpB,GAAG,CAAC,sBAAsB,CAAC;SAC3B,MAAM,CAAC,CAAC,OAAO,EAAqB,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;IAE5D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,eAAe,CAAC;IAElD,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACrC,MAAM,UAAU,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAClD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAAe;IAC3D,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAe;IACvD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,MAAM,UAAU,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAClD,OAAO,0BAA0B,CAAC,IAAI,CACpC,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAChF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,MAAM,UAAU,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAClD,OAAO,CACL,yBAAyB,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC9C,4BAA4B,CAAC,IAAI,CAC/B,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAChF,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,wBAAwB,CAAC,IAAI,CAAC,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY;IAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAe;IAC7C,MAAM,UAAU,GAAG,wBAAwB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACrE,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,OAAe;IACzD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpC,OAAO,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,KAAK,OAAO,CAAC;IAC1B,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,IAAI,MAAM,GAAG,GAAG,CAAC;IACjB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAE,CAAC;QAC7B,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAChC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjB,MAAM,IAAI,IAAI,CAAC;gBACf,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,OAAO,CAAC;YACpB,CAAC;YACD,SAAS;QACX,CAAC;QACD,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,IAAI,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC"}
|
package/dist/core/config.d.ts
CHANGED
|
@@ -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":"
|
|
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"}
|
package/dist/core/config.js
CHANGED
|
@@ -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,8 @@ export function createDefaultConfig(options) {
|
|
|
18
21
|
}
|
|
19
22
|
},
|
|
20
23
|
verification: {
|
|
21
|
-
commands: []
|
|
24
|
+
commands: options.verificationCommands ?? [],
|
|
25
|
+
profiles: {}
|
|
22
26
|
},
|
|
23
27
|
changedFileFilters: {
|
|
24
28
|
ignore: []
|
|
@@ -38,19 +42,17 @@ export async function initAgentFlight(options) {
|
|
|
38
42
|
await ensureDir(paths.reports);
|
|
39
43
|
await ensureDir(paths.evidence);
|
|
40
44
|
await ensureDir(paths.current);
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
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
|
+
});
|
|
54
56
|
const configWrite = await writeJsonFileSafe(paths.config, defaultConfig);
|
|
55
57
|
if (configWrite.status === "created")
|
|
56
58
|
created.push(configWrite.path);
|
|
@@ -64,6 +66,7 @@ export async function initAgentFlight(options) {
|
|
|
64
66
|
config,
|
|
65
67
|
created,
|
|
66
68
|
skipped,
|
|
69
|
+
detectedVerificationCommands: verificationCommands,
|
|
67
70
|
detections: {
|
|
68
71
|
agentloopkit: await pathExists(`${options.repoRoot}/.agentloop`),
|
|
69
72
|
projscan: await pathExists(`${options.repoRoot}/.projscanrc.json`)
|
package/dist/core/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EACL,SAAS,EACT,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
|
package/dist/core/doctor.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/core/doctor.js
CHANGED
|
@@ -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",
|
|
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
|
-
:
|
|
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;
|
package/dist/core/doctor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/core/doctor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/core/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/core/fs-safe.d.ts
CHANGED
|
@@ -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":"
|
|
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"}
|
package/dist/core/fs-safe.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { constants } from "node:fs";
|
|
2
|
-
import { access, mkdir, readFile, writeFile } from "node:fs/promises";
|
|
3
|
-
import {
|
|
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
|
-
|
|
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
|
-
|
|
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
|
package/dist/core/fs-safe.js.map
CHANGED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"fs-safe.js","sourceRoot":"","sources":["../../src/core/fs-safe.ts"],"names":[],"mappings":"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"}
|
package/dist/core/git.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { runCommand } from "./process.js";
|
|
2
|
-
import {
|
|
2
|
+
import { filterBuiltInRuntimePaths } from "./changed-files.js";
|
|
3
3
|
export async function getRepositoryRoot(cwd, run = runCommand) {
|
|
4
4
|
const result = await run("git", ["rev-parse", "--show-toplevel"], { cwd, timeoutMs: 10_000 });
|
|
5
5
|
return result.exitCode === 0 && result.stdout.trim() ? result.stdout.trim() : cwd;
|
|
@@ -10,7 +10,7 @@ export async function getGitInfo(repoRoot, run = runCommand) {
|
|
|
10
10
|
run("git", ["rev-parse", "--short", "HEAD"], { cwd: repoRoot, timeoutMs: 10_000 }),
|
|
11
11
|
run("git", ["status", "--porcelain", "-uall"], { cwd: repoRoot, timeoutMs: 10_000 })
|
|
12
12
|
]);
|
|
13
|
-
const changedFiles = status.exitCode === 0 ?
|
|
13
|
+
const changedFiles = status.exitCode === 0 ? filterBuiltInRuntimePaths(parseGitStatusFiles(status.stdout)) : [];
|
|
14
14
|
return {
|
|
15
15
|
branch: branch.exitCode === 0 && branch.stdout.trim() ? branch.stdout.trim() : null,
|
|
16
16
|
commit: commit.exitCode === 0 && commit.stdout.trim() ? commit.stdout.trim() : null,
|
|
@@ -23,9 +23,10 @@ export async function listChangedFiles(repoRoot, run = runCommand) {
|
|
|
23
23
|
cwd: repoRoot,
|
|
24
24
|
timeoutMs: 10_000
|
|
25
25
|
});
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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));
|
|
29
30
|
}
|
|
30
31
|
export function parseGitStatusFiles(output) {
|
|
31
32
|
return output
|
|
@@ -40,4 +41,7 @@ export function parseGitStatusFiles(output) {
|
|
|
40
41
|
})
|
|
41
42
|
.filter(Boolean);
|
|
42
43
|
}
|
|
44
|
+
function formatGitStatusFailure(result) {
|
|
45
|
+
return (result.stderr || result.stdout || "git status exited without output").trim();
|
|
46
|
+
}
|
|
43
47
|
//# sourceMappingURL=git.js.map
|
package/dist/core/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/core/git.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/core/git.ts"],"names":[],"mappings":"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"}
|
package/dist/core/output.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/core/output.js
CHANGED
|
@@ -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
|
|
32
|
-
|
|
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
|
-
|
|
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 });
|
package/dist/core/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/core/output.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/core/output.ts"],"names":[],"mappings":"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"}
|
package/dist/core/paths.d.ts
CHANGED
|
@@ -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
|
package/dist/core/paths.d.ts.map
CHANGED
|
@@ -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"}
|
package/dist/core/paths.js
CHANGED
|
@@ -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
|