import { buildTaskContext, compactTaskContext, contextSizeReport } from "./task-context-lib.mjs"; const index = process.argv.indexOf("--task"); const task = index >= 0 ? process.argv[index + 1] : undefined; const bundle = buildTaskContext(task); const report = contextSizeReport(bundle); if (!report.withinBudget) { // Never send an oversized task package to the caller. The compact command // retains its nonzero exit for oversized source packages. Emit only the // separately bounded pointer so the next read can resume the current task. process.stderr.write(`task-context-over-budget task=${bundle.context.task} contentTokens=${report.totalTokens} envelopeTokens=${report.serializedContextTokens}/${report.reservedEnvelopeTokens} estimatedTokens=${report.estimatedContextTokens}\n`); if (report.serializedContextTokens <= report.reservedEnvelopeTokens) { process.stdout.write(JSON.stringify(compactTaskContext(bundle.context)) + "\n"); } process.exitCode = 1; } else { process.stdout.write(`${JSON.stringify({ ...compactTaskContext(bundle.context), size: report }, null, 2)}\n`); }