agent-conveyor 0.1.1 → 0.1.2
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/README.md +4 -2
- package/dist/cli/typescript-runtime.js +38 -6
- package/dist/cli/typescript-runtime.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime/audit.d.ts +10 -0
- package/dist/runtime/audit.js +145 -2
- package/dist/runtime/audit.js.map +1 -1
- package/dist/runtime/export.d.ts +9 -0
- package/dist/runtime/export.js +567 -4
- package/dist/runtime/export.js.map +1 -1
- package/dist/runtime/replay.d.ts +1 -0
- package/dist/runtime/replay.js +119 -0
- package/dist/runtime/replay.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -620,8 +620,10 @@ tmux attach -t codex-live-test
|
|
|
620
620
|
local telemetry and related tables: active tasks/sessions, cycle and command
|
|
621
621
|
success/failure counts, ingest/skipped-line totals, criteria counts,
|
|
622
622
|
reconcile drift counts, export counts, and retained capture/transcript bytes.
|
|
623
|
-
- `export-task <task> [--zip]
|
|
624
|
-
|
|
623
|
+
- `export-task <task> [--zip] [--include-transcripts]
|
|
624
|
+
[--include-full-transcripts]` — Dump task status, audit, prompts, transcript
|
|
625
|
+
metadata, and optional transcript segments/full transcript replay into an
|
|
626
|
+
export bundle. Exports include
|
|
625
627
|
`telemetry-events.json`, `telemetry-summary.json`, and
|
|
626
628
|
`telemetry-report.md`; see `docs/local-telemetry-workflow.md`.
|
|
627
629
|
|
|
@@ -6,7 +6,7 @@ import { dirname, join, relative, resolve } from "node:path";
|
|
|
6
6
|
import { fileURLToPath } from "node:url";
|
|
7
7
|
import { taskAuditSync } from "../runtime/audit.js";
|
|
8
8
|
import { classifyBusyWait, classifyStartupOutput } from "../runtime/classify.js";
|
|
9
|
-
import {
|
|
9
|
+
import { exportTaskSync } from "../runtime/export.js";
|
|
10
10
|
import { ingestSessionSync } from "../runtime/ingest.js";
|
|
11
11
|
import { acceptanceCriteriaForTaskSync, loopEvidenceCriterion, recordAdversarialLoopEvidenceSync, recordLoopEvidenceSync, recordVisualDiffLoopEvidenceSync, } from "../runtime/loop-evidence.js";
|
|
12
12
|
import { writePngRgba } from "../runtime/visual-diff.js";
|
|
@@ -2665,7 +2665,7 @@ function runAuditCommand(parsed, options) {
|
|
|
2665
2665
|
try {
|
|
2666
2666
|
const audit = taskAuditSync(database, task);
|
|
2667
2667
|
if (parsed.flags.json) {
|
|
2668
|
-
return jsonResult(audit);
|
|
2668
|
+
return jsonResult(parsed.flags.includeContent ? audit : redactAudit(audit));
|
|
2669
2669
|
}
|
|
2670
2670
|
const lines = [
|
|
2671
2671
|
`${audit.task.name}\t${audit.task.state}\t${audit.task.goal}`,
|
|
@@ -2703,16 +2703,19 @@ function runReplayCommand(parsed, options) {
|
|
|
2703
2703
|
}
|
|
2704
2704
|
function runExportTaskCommand(parsed, options) {
|
|
2705
2705
|
const task = requireTask(parsed);
|
|
2706
|
-
if (parsed.flags.zip || parsed.flags.includeTranscripts || parsed.flags.includeFullTranscripts) {
|
|
2707
|
-
return errorResult("TypeScript runtime export currently supports the migrated audit subset only; omit --zip and transcript flags.");
|
|
2708
|
-
}
|
|
2709
2706
|
const database = openRuntimeDatabase(parsed, options);
|
|
2710
2707
|
try {
|
|
2711
2708
|
const audit = taskAuditSync(database, task);
|
|
2712
2709
|
const outputDir = parsed.flags.output
|
|
2713
2710
|
? resolve(parsed.flags.output)
|
|
2714
2711
|
: join(stateRoot({ cwd: options.cwd, env: options.env }), "artifacts", "tasks", audit.task.id, "export");
|
|
2715
|
-
return jsonResult(
|
|
2712
|
+
return jsonResult(exportTaskSync(database, {
|
|
2713
|
+
includeFullTranscripts: parsed.flags.includeFullTranscripts,
|
|
2714
|
+
includeTranscripts: parsed.flags.includeTranscripts,
|
|
2715
|
+
outputDir,
|
|
2716
|
+
task,
|
|
2717
|
+
zip: parsed.flags.zip,
|
|
2718
|
+
}));
|
|
2716
2719
|
}
|
|
2717
2720
|
finally {
|
|
2718
2721
|
database.close();
|
|
@@ -17021,6 +17024,35 @@ function redactTranscriptSegments(result) {
|
|
|
17021
17024
|
task: result.task,
|
|
17022
17025
|
};
|
|
17023
17026
|
}
|
|
17027
|
+
function redactAudit(audit) {
|
|
17028
|
+
return {
|
|
17029
|
+
...audit,
|
|
17030
|
+
terminal_captures: audit.terminal_captures.map((capture) => {
|
|
17031
|
+
const { content, ...rest } = capture;
|
|
17032
|
+
if (typeof content !== "string") {
|
|
17033
|
+
return rest;
|
|
17034
|
+
}
|
|
17035
|
+
return {
|
|
17036
|
+
...rest,
|
|
17037
|
+
content_byte_count: Buffer.byteLength(content),
|
|
17038
|
+
content_line_count: pythonSplitlinesCount(content),
|
|
17039
|
+
content_redacted: true,
|
|
17040
|
+
};
|
|
17041
|
+
}),
|
|
17042
|
+
transcript_segments: audit.transcript_segments.map((segment) => {
|
|
17043
|
+
const { segment_text: segmentText, ...rest } = segment;
|
|
17044
|
+
if (typeof segmentText !== "string") {
|
|
17045
|
+
return rest;
|
|
17046
|
+
}
|
|
17047
|
+
return {
|
|
17048
|
+
...rest,
|
|
17049
|
+
segment_text_byte_count: Buffer.byteLength(segmentText),
|
|
17050
|
+
segment_text_line_count: pythonSplitlinesCount(segmentText),
|
|
17051
|
+
segment_text_redacted: true,
|
|
17052
|
+
};
|
|
17053
|
+
}),
|
|
17054
|
+
};
|
|
17055
|
+
}
|
|
17024
17056
|
function renderTranscriptCaptureText(captures) {
|
|
17025
17057
|
return captures.map((capture) => {
|
|
17026
17058
|
if ("error" in capture) {
|