{"version":3,"file":"agent-contract.d.ts","sourceRoot":"","sources":["../../../../src/runs/shared/agent-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EAEb,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,MAAM,uBAAuB,CAAC;AAE/B,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO,CAE9E;AAED,wBAAgB,wBAAwB,CACvC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,OAAO,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC,GACpG,mBAAmB,CAoCrB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,GAAG,gBAAgB,CAIhG;AAED,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,YAAY,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAK9E","sourcesContent":["import type {\n\tAgentContract,\n\tEffectsProjection,\n\tExecutionProjection,\n\tReviewProjection,\n\tSingleResult,\n} from \"../../shared/types.ts\";\n\nexport function isAgentContractV1(contract: AgentContract | undefined): boolean {\n\treturn contract?.version === 1;\n}\n\nexport function buildExecutionProjection(\n\tresult: Pick<SingleResult, \"exitCode\" | \"error\" | \"interrupted\" | \"timedOut\" | \"stopped\" | \"detached\">,\n): ExecutionProjection {\n\tif (result.detached) {\n\t\treturn {\n\t\t\tstatus: \"detached\",\n\t\t\tsuccess: false,\n\t\t\texitCode: result.exitCode,\n\t\t\tdetached: true,\n\t\t\t...(result.error ? { error: result.error } : {}),\n\t\t};\n\t}\n\tif (result.stopped) {\n\t\treturn {\n\t\t\tstatus: \"stopped\",\n\t\t\tsuccess: false,\n\t\t\texitCode: result.exitCode,\n\t\t\tstopped: true,\n\t\t\t...(result.error ? { error: result.error } : {}),\n\t\t};\n\t}\n\tif (result.interrupted) {\n\t\treturn {\n\t\t\tstatus: \"paused\",\n\t\t\tsuccess: true,\n\t\t\texitCode: result.exitCode,\n\t\t\tinterrupted: true,\n\t\t\t...(result.error ? { error: result.error } : {}),\n\t\t};\n\t}\n\tconst success = result.exitCode === 0 && !result.error && !result.timedOut;\n\treturn {\n\t\tstatus: success ? \"completed\" : \"failed\",\n\t\tsuccess,\n\t\texitCode: result.exitCode,\n\t\t...(result.error ? { error: result.error } : {}),\n\t\t...(result.timedOut ? { timedOut: true } : {}),\n\t};\n}\n\nexport function buildReviewProjection(result: Pick<SingleResult, \"acceptance\">): ReviewProjection {\n\tconst review = result.acceptance?.reviewResult;\n\tif (!review) return { status: \"not-requested\" };\n\treturn { status: review.status, findings: review.findings };\n}\n\nexport function attachContractProjections<T extends SingleResult>(result: T): T {\n\tresult.execution = buildExecutionProjection(result);\n\tresult.review = buildReviewProjection(result);\n\tif (!result.effects) result.effects = {} satisfies EffectsProjection;\n\treturn result;\n}\n"]}