@code-partner/codepipe 0.14.1-dev.405.gb14c9aa1 → 0.14.1-dev.406.g8dba0f6e
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/dist/index.js +3 -3
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var IT=Object.defineProperty;var v=(t,e)=>()=>(t&&(e=t(t=0)),e);var me=(t,e)=>{for(var r in e)IT(t,r,{get:e[r],enumerable:!0})};var ye,_t,ou=v(()=>{"use strict";ye="0.14.1-dev.
|
|
2
|
+
var IT=Object.defineProperty;var v=(t,e)=>()=>(t&&(e=t(t=0)),e);var me=(t,e)=>{for(var r in e)IT(t,r,{get:e[r],enumerable:!0})};var ye,_t,ou=v(()=>{"use strict";ye="0.14.1-dev.406.g8dba0f6e",_t="https://hub.dev.codepipe.dev"});function Ei(t){return typeof t!="number"||!Number.isFinite(t)?!1:t>=Qh&&t<=Pt}var Pt,Qh,eg=v(()=>{"use strict";ou();Pt=4,Qh=4});var tg=v(()=>{"use strict";ou()});var iu,rg=v(()=>{"use strict";iu="local-owner@localhost"});function Ii(t=6){return`# CodePipe Context Repo format version.
|
|
3
3
|
# Bumped by the scaffold / the format-migration PR \u2014 do not edit by hand.
|
|
4
4
|
template_version: ${t}
|
|
5
5
|
`}function au(t){if(!t)return 0;let e=/^\s*template_version:\s*(\d+)\s*$/m.exec(t),r=e?parseInt(e[1]??"",10):NaN;return Number.isFinite(r)&&r>=0?r:0}function cu(t,e=su){let r=[];for(let n of e)if(!(n.version<=t))for(let o of n.addedPaths)r.includes(o)||r.push(o);return r}function lu(t,e=su){return e.filter(r=>r.version>t)}var ng,Yt,lo,su,og=v(()=>{"use strict";ng=6,Yt=".codepipe-context.yaml",lo=".devpipe-context.yaml",su=[{version:1,summary:"ADR section: adr/ scaffold (README, template, derived INDEX) + the format-version stamp itself",addedPaths:["adr/README.md","adr/0000-template.md","adr/INDEX.md",Yt]},{version:2,summary:"Rename the format-version stamp .devpipe-context.yaml \u2192 .codepipe-context.yaml (drop the devpipe-brand leftover)",addedPaths:[Yt]},{version:3,summary:"Custom project actions (the RUN tab): actions/ scaffold with the format README",addedPaths:["actions/README.md"]},{version:4,summary:"Project map: model/ scaffold with the format README (facts/ vs derived/ layout)",addedPaths:["model/README.md"]},{version:5,summary:"Roles: roles/ scaffold with the format README (override a bundled critic by name, or add your own)",addedPaths:["roles/README.md"]},{version:6,summary:"Skills: skills/ scaffold with the format README (procedures the agent invokes instead of improvising)",addedPaths:["skills/README.md"]}]});function Ti(t){return`model/facts/identity/${t}.yaml`}function In(t){return`model/facts/events/${t}.yaml`}function pu(t){return`model/facts/annotations/${t}.md`}function fu(t){return`model/derived/correlates/${t}.yaml`}function mu(t){return`model/derived/touched/${t}.yaml`}function ig(t){return t===""?"root":t.replace(/\//g,"-")}function hu(t,e){return`model/derived/structure/${t}/${ig(e)}.yaml`}function ia(t){return typeof t=="string"&&ag.test(t)}function se(t){if(typeof t!="string")return null;let e=t.indexOf(":");if(e<=0)return null;let r=t.indexOf(":",e+1);if(r<0)return null;let n=t.slice(0,e);if(!sg.includes(n))return null;let o=t.slice(e+1,r),i=t.slice(r+1);return o===""&&!_T.includes(n)||i===""?null:{level:n,repo:o,path:i}}function Fe(t){return`task::${t}`}function Oe(t,e,r){return`${t}:${e}:${r}`}function Ci(t){let e=[];return ar(t)?(aa(t.modelFormatVersion)||e.push("modelFormatVersion: missing or not a positive integer"),typeof t.repo!="string"&&e.push("repo: missing (empty string = cross-repo)"),typeof t.builtFromCommit!="string"&&e.push("builtFromCommit: missing"),Array.isArray(t.edges)?t.edges.forEach((r,n)=>{if(!ar(r)){e.push(`edges[${n}]: not an object`);return}gu.includes(r.kind)||e.push(`edges[${n}].kind: unknown "${String(r.kind)}"`),se(r.from)||e.push(`edges[${n}].from: malformed nodeKey`),se(r.to)||e.push(`edges[${n}].to: malformed nodeKey`),r.weight!==void 0&&!(typeof r.weight=="number"&&Number.isFinite(r.weight))&&e.push(`edges[${n}].weight: not a finite number`)}):e.push("edges: not an array"),e.length?{ok:!1,errors:e}:{ok:!0,value:t}):{ok:!1,errors:["edge sheet: not an object"]}}function cg(t){return{...t,edges:uo(t.edges,e=>`${e.kind} ${e.from} ${e.to}`)}}function Rn(t){return Tn(cg(t))}function ar(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function aa(t){return typeof t=="number"&&Number.isInteger(t)&&t>0}function zt(t){return typeof t=="string"&&t.length>0}function jT(t){return t.modelFormatVersion!==2}function $r(t){let e=[];if(!ar(t))return{ok:!1,errors:["shard: not an object"]};aa(t.modelFormatVersion)||e.push("modelFormatVersion: missing or not a positive integer"),zt(t.repo)||e.push("repo: missing or empty"),zt(t.builtFromCommit)||e.push("builtFromCommit: missing or empty");let r=typeof t.repo=="string"?t.repo:"",n=new Set;return Array.isArray(t.nodes)?t.nodes.forEach((o,i)=>{if(!ar(o)){e.push(`nodes[${i}]: not an object`);return}let s=se(o.key);if(!s){e.push(`nodes[${i}].key: malformed nodeKey (${JSON.stringify(o.key??null)})`);return}o.level!==s.level&&e.push(`nodes[${i}]: level "${String(o.level)}" does not match key prefix "${s.level}"`),r&&s.repo!==r&&e.push(`nodes[${i}].key: repo "${s.repo}" mixed into shard of repo "${r}"`);let a=o.key;n.has(a)&&e.push(`nodes[${i}].key: duplicate "${a}"`),n.add(a),o.entityId!==void 0&&!ia(o.entityId)&&e.push(`nodes[${i}].entityId: malformed (${JSON.stringify(o.entityId)})`)}):e.push("nodes: not an array"),Array.isArray(t.edges)?t.edges.forEach((o,i)=>{if(!ar(o)){e.push(`edges[${i}]: not an object`);return}gu.includes(o.kind)||e.push(`edges[${i}].kind: unknown "${String(o.kind)}"`),(!zt(o.to)||!se(o.to))&&e.push(`edges[${i}].to: malformed nodeKey`),(!zt(o.from)||!n.has(o.from))&&e.push(`edges[${i}].from: "${String(o.from)}" is not a node of this shard`),o.weight!==void 0&&!(typeof o.weight=="number"&&Number.isFinite(o.weight))&&e.push(`edges[${i}].weight: not a finite number`)}):e.push("edges: not an array"),e.length?{ok:!1,errors:e}:{ok:!0,value:t}}function Ai(t){let e=[];if(!ar(t))return{ok:!1,errors:["identity: not an object"]};if(aa(t.modelFormatVersion)||e.push("modelFormatVersion: missing or not a positive integer"),zt(t.repo)||e.push("repo: missing or empty"),t.builtFromCommit!==void 0&&!zt(t.builtFromCommit)&&e.push("builtFromCommit: not a non-empty string"),!Array.isArray(t.entities))e.push("entities: not an array");else{let r=new Set;t.entities.forEach((n,o)=>{if(!ar(n)){e.push(`entities[${o}]: not an object`);return}ia(n.entityId)?r.has(n.entityId)?e.push(`entities[${o}].entityId: duplicate "${n.entityId}"`):r.add(n.entityId):e.push(`entities[${o}].entityId: malformed (${JSON.stringify(n.entityId??null)})`),se(n.currentKey)||e.push(`entities[${o}].currentKey: malformed nodeKey`),n.status!=="active"&&n.status!=="orphaned"&&e.push(`entities[${o}].status: expected active|orphaned`),zt(n.firstSeen)||e.push(`entities[${o}].firstSeen: missing`),zt(n.lastSeen)||e.push(`entities[${o}].lastSeen: missing`),n.aliases!==void 0&&(Array.isArray(n.aliases)?n.aliases.forEach((i,s)=>{(!ar(i)||!se(i.key)||!zt(i.until))&&e.push(`entities[${o}].aliases[${s}]: malformed`)}):e.push(`entities[${o}].aliases: not an array`))})}return e.length?{ok:!1,errors:e}:{ok:!0,value:t}}function Sr(t){let e=[];return ar(t)?(aa(t.modelFormatVersion)||e.push("modelFormatVersion: missing or not a positive integer"),zt(t.taskKey)||e.push("taskKey: missing or empty"),t.origin!=="bootstrap"&&t.origin!=="pipeline"&&e.push("origin: expected bootstrap|pipeline"),t.date!==void 0&&!(typeof t.date=="string"&&/^\d{4}-\d{2}-\d{2}$/.test(t.date))&&e.push("date: expected YYYY-MM-DD"),(!Array.isArray(t.commits)||t.commits.some(r=>!zt(r)))&&e.push("commits: not an array of non-empty strings"),Array.isArray(t.files)?t.files.forEach((r,n)=>{if(!ar(r)||!se(r.key)){e.push(`files[${n}].key: malformed nodeKey`);return}r.entityId!==void 0&&!ia(r.entityId)&&e.push(`files[${n}].entityId: malformed`),r.churn!==void 0&&!(typeof r.churn=="number"&&r.churn>=0)&&e.push(`files[${n}].churn: not a non-negative number`)}):e.push("files: not an array"),e.length?{ok:!1,errors:e}:{ok:!0,value:t}):{ok:!1,errors:["event: not an object"]}}function uo(t,e){return[...t].sort((r,n)=>e(r)<e(n)?-1:e(r)>e(n)?1:0)}function lg(t){return{...t,nodes:uo(t.nodes,e=>e.key),edges:uo(t.edges,e=>`${e.kind}\0${e.from}\0${e.to}`)}}function ug(t){return{...t,entities:uo(t.entities,e=>e.entityId).map(e=>e.aliases?{...e,aliases:uo(e.aliases,r=>`${r.key}\0${r.until}`)}:e)}}function dg(t){let e=t.links?{...t.links,...t.links.adr?{adr:[...t.links.adr].sort()}:{},...t.links.tasks?{tasks:[...t.links.tasks].sort()}:{}}:void 0;return{...t,commits:[...t.commits].sort(),files:uo(t.files,r=>r.key),...e?{links:e}:{}}}function Ri(t){return NT.test(t)?t:JSON.stringify(t)}function pg(t){if(t===null)return"null";if(typeof t=="boolean")return t?"true":"false";if(typeof t=="number"){if(!Number.isFinite(t))throw new Error(`model yaml: non-finite number ${t}`);return JSON.stringify(t)}if(typeof t=="string")return JSON.stringify(t);throw new Error(`model yaml: unsupported scalar ${typeof t}`)}function fg(t){return t===null||["boolean","number","string"].includes(typeof t)}function uu(t){return Object.entries(t).filter(([,e])=>e!==void 0).sort(([e],[r])=>e<r?-1:e>r?1:0)}function mg(t,e,r){if(Array.isArray(t)){for(let n of t)if(fg(n))r.push(`${e}- ${pg(n)}`);else{if(Array.isArray(n))throw new Error("model yaml: nested arrays are not part of the model schema");{let o=uu(n);if(o.length===0){r.push(`${e}- {}`);continue}o.forEach(([i,s],a)=>{let c=a===0?`${e}- `:`${e} `;du(i,s,c,`${e} `,r)})}}return}for(let[n,o]of uu(t))du(n,o,e,e,r)}function du(t,e,r,n,o){if(fg(e))o.push(`${r}${Ri(t)}: ${pg(e)}`);else if(Array.isArray(e))e.length===0?o.push(`${r}${Ri(t)}: []`):(o.push(`${r}${Ri(t)}:`),mg(e,`${n} `,o));else{let i=uu(e);if(i.length===0)o.push(`${r}${Ri(t)}: {}`);else{o.push(`${r}${Ri(t)}:`);for(let[s,a]of i)du(s,a,`${n} `,`${n} `,o)}}}function Tn(t){let e=[];return mg(t,"",e),e.join(`
|
|
@@ -919,14 +919,14 @@ ${i}`.includes("--effort"))})}),rm.set(t,e)),e}function b$(t){let e;try{e=JSON.p
|
|
|
919
919
|
`))!==-1;){let I=P.slice(0,D).trim();if(P=P.slice(D+1),I){let C=b$(I);p(C),C&&m(C)}}}),b.stderr.on("data",$=>{o.push($),i.push($);for(let D of $.split(`
|
|
920
920
|
`)){let I=D.trim();I&&console.warn(`[claude:stderr] ${I}`)}}),b.on("error",$=>{S(),w($)}),b.on("close",$=>{if(S(),k){w(new nr(nm(s,a,c,l)));return}if(P.trim()){let I=b$(P.trim());p(I),I&&m(I)}let D=s?.is_error===!0;if($!==0||D){let I=typeof s?.api_error_status=="number"?s.api_error_status:void 0,C=typeof s?.subtype=="string"?s.subtype:void 0,F=typeof s?.result=="string"?s.result:void 0,q=bO(I,F,u,Date.now());w(new ct(vO($,s,i.join("")),{code:$,apiErrorStatus:I,subtype:C,resultText:F,retryAfterMs:xO(s),...q?{rateLimited:q}:{},usage:nm(s,a,c,l)}));return}console.log("[claude] exit code=0"),y({artifactPaths:[],log:o.join(""),usage:nm(s,a,c,l),...u?{rateLimit:u}:{}})})})}static isAvailable(e="claude"){return[e,`/usr/local/bin/${e}`,`/opt/homebrew/bin/${e}`].some(n=>n.includes("/")&&wO(n))}};k$=200});var R$={};me(R$,{CODEX_BIN:()=>al,CODEX_TESTED_WITH:()=>CO,CodexRunner:()=>Xo,agentsFileExists:()=>jO,codexEventToActivity:()=>I$,codexPresence:()=>AO,codexUsageFrom:()=>sm,codexWriteFlags:()=>E$});import{execFile as $$,spawn as RO}from"node:child_process";import{existsSync as TO}from"node:fs";import{join as S$}from"node:path";function AO(t=al){let e=om.get(t);return e||(e=new Promise(r=>{$$(t,["--version"],{timeout:15e3},(n,o)=>{if(n){om.delete(t),r({ok:!1,detail:n.message});return}r({ok:!0,version:o.trim()})})}),om.set(t,e)),e}function E$(t=al){let e=im.get(t);return e||(e=new Promise(r=>{$$(t,["exec","--help"],{timeout:5e3},(n,o)=>{if(n){im.delete(t),r(["--full-auto"]);return}let i=o??"";i.includes("--full-auto")?r(["--full-auto"]):i.includes("--sandbox")?r(["--sandbox","workspace-write"]):r([])})}),im.set(t,e)),e}function I$(t,e,r=!1){let n=Date.now(),o=String(t.type??t.msg_type??""),i=(o==="item.completed"||o==="item.started")&&t.item!==null&&typeof t.item=="object"?t.item:null,s=i??t,a=i?String(i.type??""):o;if(o==="item.started"&&a!=="command_execution")return[];if(a==="agent_message"||a==="message"){let c=String(s.message??s.text??"").trim();return c?r?[{ts:n,kind:"text",author:"agent",text:c.slice(0,Rs)}]:[{ts:n,kind:"text",text:c.slice(0,200)}]:[]}if(a==="command_execution"){let c=String(s.command??"").trim();if(o==="item.started")return[{ts:n,kind:"tool",tool:"Bash",...c?{file:c.slice(0,120)}:{}}];let l=String(s.status??""),u=typeof s.exit_code=="number"?s.exit_code:0;return[{ts:n,kind:"tool_result",...l==="failed"||u!==0?{isError:!0}:{}}]}if(a==="file_change"||a==="patch_apply"){let c=Array.isArray(s.changes)?s.changes:[],l=[];for(let u of c){let p=u&&typeof u=="object"?u.path:void 0,d=il(p,e);d&&l.push({ts:n,kind:"tool",tool:"Edit",file:d})}if(l.length===0){let u=il(s.path??s.file,e);u&&l.push({ts:n,kind:"tool",tool:"Edit",file:u})}return l}if(a==="reasoning"||a==="todo_list"||a==="web_search")return[];if(o==="turn.completed"||o==="turn.failed")return[{ts:n,kind:"result",text:o==="turn.completed"?"success":"failed"}];if(a==="exec_command_begin"||a==="tool_use"||a==="command_started"){let c=String(t.tool??t.command_name??"Bash"),l=il(t.path??t.file??t.file_path,e);return[{ts:n,kind:"tool",tool:c,...l?{file:l}:{}}]}if(a==="exec_command_end"||a==="tool_result"||a==="command_finished"){let c=typeof t.exit_code=="number"?t.exit_code:0;return[{ts:n,kind:"tool_result",...c===0?{}:{isError:!0}}]}if(a==="patch_apply_begin"||a==="file_change"){let c=il(t.path??t.file,e);return c?[{ts:n,kind:"tool",tool:"Edit",file:c}]:[]}if(a==="task_complete"||a==="turn_complete"||a==="result"){let c=String(t.status??t.subtype??"success");return[{ts:n,kind:"result",text:c}]}return a==="error"?[{ts:n,kind:"result",text:`error: ${String(t.message??"unknown")}`.slice(0,200)}]:[]}function sm(t,e){let r=t.usage??t.token_usage;if(!r)return null;let n=o=>typeof o=="number"&&Number.isFinite(o)?o:0;return{inputTokens:n(r.input_tokens??r.prompt_tokens),outputTokens:n(r.output_tokens??r.completion_tokens),cacheReadInputTokens:n(r.cached_input_tokens??r.cache_read_input_tokens),cacheCreationInputTokens:n(r.cache_creation_input_tokens),totalCostUsd:n(r.total_cost_usd??r.cost_usd),model:e??String(t.model??"codex"),numTurns:n(t.num_turns??r.turns),durationMs:n(t.duration_ms)}}function x$(t){try{let e=JSON.parse(t);return e&&typeof e=="object"?e:null}catch{return null}}function il(t,e){if(typeof t!="string"||t.trim()==="")return;let r=t.trim(),n=e.endsWith("/")?e:`${e}/`;if(r!==e){if(r.startsWith(n)){let o=r.slice(n.length).replace(/^\/+/,"");return o===""?void 0:o}return r.includes("/")?r.slice(r.lastIndexOf("/")+1):r}}function _O(t){return Object.values(Ea.codex).some(r=>(t?.[r]??"").trim()!=="")}function PO(t,e){return{inputTokens:t.inputTokens+e.inputTokens,outputTokens:t.outputTokens+e.outputTokens,cacheReadInputTokens:t.cacheReadInputTokens+e.cacheReadInputTokens,cacheCreationInputTokens:t.cacheCreationInputTokens+e.cacheCreationInputTokens,totalCostUsd:t.totalCostUsd+e.totalCostUsd,model:e.model||t.model,numTurns:t.numTurns+Math.max(e.numTurns,1),durationMs:t.durationMs+e.durationMs}}function jO(t){return TO(S$(t,"AGENTS.md"))}var al,CO,om,im,Xo,sl,cl=v(()=>{"use strict";Is();jr();em();_();al=process.env.SANDBOX_CODEX_BIN??"codex",CO="codex-cli 0.152 (exec --json, exec resume)",om=new Map;im=new Map;Xo=class{binary;constructor(e=al){this.binary=e}name(){return"codex"}async run(e){if(e.signal?.aborted)return{artifactPaths:[],log:"aborted before start",usage:je()};let r=await E$(this.binary);return e.interactive?await this.runChat(e,r):await this.runTurn(e,this.execArgs(e,e.prompt,r))}execArgs(e,r,n){let o=["exec","--json","--skip-git-repo-check",...n,"-C",e.workspaceDir];e.model&&e.model.trim()!==""&&o.push("--model",e.model.trim());let i=e.interactive?rl(mr(e.metadata)):zo(mr(e.metadata)),s=i?`${i}
|
|
921
921
|
|
|
922
|
-
${r}`:r;return o.push("--",ol(s)),o}resumeArgs(e,r,n
|
|
922
|
+
${r}`:r;return o.push("--",ol(s)),o}resumeArgs(e,r,n){let o=["exec","resume",r,"--json","--skip-git-repo-check"];return e.model&&e.model.trim()!==""&&o.push("--model",e.model.trim()),o.push("--",ol(n)),o}async runTurn(e,r,n={}){let o=[],i=null,s=null,a=!1;if(e.signal?.aborted)return{artifactPaths:[],log:"aborted before start",usage:je()};if(await new Promise((c,l)=>{let u=RO(this.binary,r,{cwd:e.workspaceDir,env:{...process.env,..._O(e.env)?{CODEX_HOME:S$(e.workspaceDir,".codex-home")}:{},...e.env??{}},stdio:["ignore","pipe","pipe"]}),p=()=>{a=!0;try{u.kill("SIGTERM")}catch{}m=setTimeout(()=>{try{u.kill("SIGKILL")}catch{}y(null)},5e3),m.unref?.()};e.signal?.addEventListener("abort",p,{once:!0});let d="";u.stdout?.setEncoding("utf-8"),u.stdout?.on("data",w=>{d+=w;let b=d.indexOf(`
|
|
923
923
|
`);for(;b>=0;){let k=d.slice(0,b).trim();if(d=d.slice(b+1),b=d.indexOf(`
|
|
924
924
|
`),k==="")continue;o.push(k);let x=x$(k);if(!x)continue;let g=sm(x,e.model);if(g&&(i=g,e.onUsage?.({inputTokens:g.inputTokens,outputTokens:g.outputTokens,cacheReadTokens:g.cacheReadInputTokens,cacheCreationTokens:g.cacheCreationInputTokens,turns:g.numTurns,...g.model?{model:g.model}:{},at:Date.now()})),String(x.type??"")==="error"&&(s=String(x.message??"codex reported an error")),String(x.type??"")==="turn.failed"){let S=x.error,P=S&&typeof S=="object"?String(S.message??""):"";s=P!==""?P:"codex reported a failed turn"}if(String(x.type??"")==="thread.started"){let S=String(x.thread_id??"").trim();S!==""&&n.onThreadId?.(S)}for(let S of I$(x,e.workspaceDir,n.chat===!0)){n.onActivity?.();try{e.onActivity?.(S)}catch{}}}}),u.stderr?.setEncoding("utf-8"),u.stderr?.on("data",w=>o.push(w.trimEnd())),u.on("error",l);let f=!1,m=null,y=w=>{if(f)return;f=!0,m&&clearTimeout(m),e.signal?.removeEventListener("abort",p);let b=d.trim();if(b!==""){o.push(b);let k=x$(b);if(k){let x=sm(k,e.model);x&&(i=x),String(k.type??"")==="error"&&(s=String(k.message??"codex reported an error"))}}w!==0&&!s&&!a&&(s=`codex exited with code ${w}`),c()};u.on("close",w=>y(w)),u.on("exit",w=>{a&&y(w)})}),s&&!a)throw new Error(`${s}
|
|
925
925
|
${o.slice(-20).join(`
|
|
926
926
|
`)}`);return{artifactPaths:[],log:o.join(`
|
|
927
927
|
`),usage:i??je()}}async runChat(e,r){let n=null,o=[],i=je(),s=mr(e.metadata),a=new AbortController,c=()=>a.abort();e.signal?.addEventListener("abort",c,{once:!0});let l=null,u=!1,p=()=>{l&&clearTimeout(l),l=setTimeout(()=>{u=!0,console.warn(`[codex:chat] idle for ${Jo}ms \u2014 ending session`),a.abort()},Jo),l.unref?.()};p();let d=()=>{try{e.onUsage?.({inputTokens:i.inputTokens,outputTokens:i.outputTokens,cacheReadTokens:i.cacheReadInputTokens,cacheCreationTokens:i.cacheCreationInputTokens,turns:i.numTurns,...i.model?{model:i.model}:{},at:Date.now()})}catch{}},f=async m=>{let y=await this.runTurn({...e,signal:a.signal,...e.onUsage?{onUsage:void 0}:{}},m,{chat:!0,onThreadId:w=>{n=w},onActivity:p});o.push(y.log),i=PO(i,y.usage),d(),p()};try{await f(this.execArgs(e,e.prompt,r));let m=async(w,b)=>{if(n===null)throw new sl("codex: the session reported no thread id, so the conversation cannot continue \u2014 this build of codex may not support `exec resume`");if(b)try{e.onActivity?.({ts:Date.now(),kind:"text",author:"user",text:w.slice(0,Rs)})}catch{}let k=nl(s);await f(this.resumeArgs(e,n,k?`${k}
|
|
928
928
|
|
|
929
|
-
${w}`:w
|
|
929
|
+
${w}`:w))},y=e.interactive.inbox[Symbol.asyncIterator]();for(;!a.signal.aborted;){let w=new Promise(x=>{let g=setInterval(()=>{a.signal.aborted&&(clearInterval(g),x("idle"))},1e3);g.unref?.()}),b=await Promise.race([y.next(),w]);if(b==="idle"||b.done)break;let k=b.value;if(k.kind==="finalize"){await m(Qf,!1);break}if(k.text.trim()!=="")try{await m(k.text,!0)}catch(x){if(a.signal.aborted||x instanceof sl)throw x;let g=x instanceof Error?x.message:String(x);o.push(`[turn failed] ${g}`);try{e.onActivity?.({ts:Date.now(),kind:"result",text:`turn failed: ${g}`.slice(0,200)})}catch{}}}}finally{l&&clearTimeout(l),e.signal?.removeEventListener("abort",c)}if(u&&!e.signal?.aborted)throw new Error(`chat session ended: idle for ${Jo}ms without a reply`);return{artifactPaths:[],log:o.join(`
|
|
930
930
|
`),usage:i}}},sl=class extends Error{}});import{mkdirSync as NO,writeFileSync as Zo}from"node:fs";import{dirname as OO,join as Qo}from"node:path";function T$(t,e,r){let n=Qo(t,e);NO(OO(n),{recursive:!0}),Zo(n,r)}function LO(t,e,r){return`# ${t} \u2014 Estimate
|
|
931
931
|
|
|
932
932
|
**Title:** ${e}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-partner/codepipe",
|
|
3
|
-
"version": "0.14.1-dev.
|
|
3
|
+
"version": "0.14.1-dev.406.g8dba0f6e",
|
|
4
4
|
"description": "CodePipe turns tasks into reviewed pull requests: an AI agent analyzes, implements, and opens a PR under your control.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"@types/ws": "^8.5.13",
|
|
30
30
|
"esbuild": "^0.21.5",
|
|
31
31
|
"vitest": "2.1.9",
|
|
32
|
-
"@codepipe/
|
|
33
|
-
"@codepipe/
|
|
32
|
+
"@codepipe/sandbox": "0.1.0",
|
|
33
|
+
"@codepipe/shared": "0.0.0"
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
36
36
|
"build": "tsc -p tsconfig.json && chmod +x dist/index.js",
|