@oxgeneral/orch 1.0.17 → 1.0.18

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.
Files changed (75) hide show
  1. package/dist/App-Q7J4JGDF.js +22 -0
  2. package/dist/agent-WLKP6WOR.js +9 -0
  3. package/dist/agent-factory-HJOS7FW3.js +2 -0
  4. package/dist/{agent-shop-JHDTCWCD.js → agent-shop-XWVUC3MK.js} +1 -1
  5. package/dist/{chunk-HWEMBO36.js → chunk-3YGXRXS7.js} +3 -3
  6. package/dist/{chunk-3AXNSYCM.js → chunk-6E6DC7OE.js} +1 -1
  7. package/dist/{chunk-J7ITYXE6.js → chunk-6JQDY3PP.js} +3 -3
  8. package/dist/{chunk-J7ITYXE6.js.map → chunk-6JQDY3PP.js.map} +1 -1
  9. package/dist/chunk-C7C7Q7XO.js +4 -0
  10. package/dist/{chunk-JM2WRI46.js → chunk-DEHFYICU.js} +1 -1
  11. package/dist/chunk-EWRVHOUA.js +2 -0
  12. package/dist/{chunk-NLQAJ7TW.js → chunk-IESAV453.js} +14 -4
  13. package/dist/chunk-IESAV453.js.map +1 -0
  14. package/dist/chunk-ITMAWW3J.js +3 -0
  15. package/dist/chunk-LRYVT4D4.js +2 -0
  16. package/dist/{chunk-XJ6KTO3E.js → chunk-NNF3VEVJ.js} +3 -3
  17. package/dist/{chunk-XJ6KTO3E.js.map → chunk-NNF3VEVJ.js.map} +1 -1
  18. package/dist/{chunk-TWEMIPRN.js → chunk-RFN447MA.js} +3 -3
  19. package/dist/{chunk-TWEMIPRN.js.map → chunk-RFN447MA.js.map} +1 -1
  20. package/dist/chunk-XMKCAUEH.js +2 -0
  21. package/dist/{claude-EMBYYPW4.js → claude-KZMCTMDP.js} +4 -4
  22. package/dist/{claude-EMBYYPW4.js.map → claude-KZMCTMDP.js.map} +1 -1
  23. package/dist/claude-PH7LT3OH.js +2 -0
  24. package/dist/cli.js +1 -1
  25. package/dist/{clipboard-service-WVON5ZN4.js → clipboard-service-AJTJG2DJ.js} +1 -1
  26. package/dist/{codex-WQ3LU3MM.js → codex-UR7Q22OV.js} +4 -4
  27. package/dist/{codex-WQ3LU3MM.js.map → codex-UR7Q22OV.js.map} +1 -1
  28. package/dist/codex-URQN4JLZ.js +2 -0
  29. package/dist/container-5FLJ4QYD.js +4 -0
  30. package/dist/{cursor-M3EJ432K.js → cursor-EMX3ECDY.js} +1 -1
  31. package/dist/{cursor-TKV5FFCN.js → cursor-O6M6XOMT.js} +4 -4
  32. package/dist/{cursor-TKV5FFCN.js.map → cursor-O6M6XOMT.js.map} +1 -1
  33. package/dist/{doctor-SKIWAKHW.js → doctor-5HTCX6K7.js} +1 -1
  34. package/dist/goal-KQ4XOSRH.js +8 -0
  35. package/dist/index.d.ts +87 -2
  36. package/dist/index.js +588 -14
  37. package/dist/index.js.map +1 -1
  38. package/dist/init-GVM7EYPO.js +74 -0
  39. package/dist/{logs-CU3NC24O.js → logs-EUOQ2UZL.js} +1 -1
  40. package/dist/{opencode-YWT3M4NX.js → opencode-HOX5TCMD.js} +4 -4
  41. package/dist/{opencode-YWT3M4NX.js.map → opencode-HOX5TCMD.js.map} +1 -1
  42. package/dist/opencode-K22RCQ5C.js +2 -0
  43. package/dist/orchestrator-I3CXUOH7.js +6 -0
  44. package/dist/{orchestrator-FWROY4JD.js.map → orchestrator-I3CXUOH7.js.map} +1 -1
  45. package/dist/{orchestrator-YZHLOVJO.js → orchestrator-L34ZPKAB.js} +3 -3
  46. package/dist/org-WCEBMHLR.js +3 -0
  47. package/dist/{shell-PMLIRG3N.js → shell-C2J4AIAV.js} +4 -4
  48. package/dist/{shell-PMLIRG3N.js.map → shell-C2J4AIAV.js.map} +1 -1
  49. package/dist/shell-NPNTWDMU.js +2 -0
  50. package/dist/shop-picker-2HA2CDKS.js +5 -0
  51. package/dist/{task-2LI5CMI4.js → task-TTOAOVM7.js} +1 -1
  52. package/dist/tui-IWCCSBDD.js +2 -0
  53. package/dist/{workspace-manager-KUU7UMMC.js → workspace-manager-QH27FF55.js} +4 -4
  54. package/dist/{workspace-manager-KUU7UMMC.js.map → workspace-manager-QH27FF55.js.map} +1 -1
  55. package/dist/{workspace-manager-DG4IFFG3.js → workspace-manager-ZI5SVXJU.js} +2 -2
  56. package/package.json +1 -1
  57. package/dist/App-2CW2WICK.js +0 -22
  58. package/dist/agent-TU6OC7ZT.js +0 -9
  59. package/dist/chunk-FQ5YUP4J.js +0 -4
  60. package/dist/chunk-IKNBPOQL.js +0 -2
  61. package/dist/chunk-LOJ26OVK.js +0 -3
  62. package/dist/chunk-NLQAJ7TW.js.map +0 -1
  63. package/dist/claude-GIGROCH5.js +0 -2
  64. package/dist/codex-AZD52UPS.js +0 -2
  65. package/dist/container-RFWMXKD6.js +0 -4
  66. package/dist/goal-RNNZYMNR.js +0 -8
  67. package/dist/init-6OVZBN6B.js +0 -73
  68. package/dist/opencode-4G7VAZGY.js +0 -2
  69. package/dist/orchestrator-FWROY4JD.js +0 -6
  70. package/dist/org-KLYK6MMJ.js +0 -3
  71. package/dist/shell-JC2WDWBR.js +0 -2
  72. package/dist/shop-picker-LE3SKFOX.js +0 -5
  73. package/dist/tui-24NBO5U6.js +0 -2
  74. package/scripts/demo.sh +0 -202
  75. /package/dist/{serve-JOIPYKKG.js → serve-DE7ES7Q5.js} +0 -0
@@ -27,7 +27,7 @@ var LockConflictError = class extends OrchestryError {
27
27
  };
28
28
  var NoAgentsError = class extends OrchestryError {
29
29
  constructor() {
30
- super("No agents configured", 1, "Run: orch agent add <name> --adapter claude");
30
+ super("No agents configured", 1, "Run: orch agent add <name> --adapter <adapter>");
31
31
  this.name = "NoAgentsError";
32
32
  }
33
33
  };
@@ -65,6 +65,16 @@ var GoalNotFoundError = class extends OrchestryError {
65
65
  this.name = "GoalNotFoundError";
66
66
  }
67
67
  };
68
+ var GoalHasPendingTasksError = class extends OrchestryError {
69
+ constructor(goalId, count, summary) {
70
+ super(
71
+ `Cannot mark goal ${goalId} as achieved: ${count} task(s) still pending \u2014 ${summary}`,
72
+ 1,
73
+ "Use --force to cancel pending tasks and mark achieved"
74
+ );
75
+ this.name = "GoalHasPendingTasksError";
76
+ }
77
+ };
68
78
  var TeamNotFoundError = class extends OrchestryError {
69
79
  constructor(teamId) {
70
80
  super(`Team not found: ${teamId}`, 1);
@@ -142,6 +152,6 @@ function classifyAdapterError(error, exitCode) {
142
152
  return "unknown" /* UNKNOWN */;
143
153
  }
144
154
 
145
- export { AdapterErrorKind, AgentNotFoundError, ERROR_HINTS, GoalNotFoundError, InvalidArgumentsError, InvalidTransitionError, LockConflictError, NoAgentsError, NotInitializedError, OrchestryError, TaskAlreadyRunningError, TaskNotFoundError, TeamNotFoundError, WorkspaceError, classifyAdapterError };
146
- //# sourceMappingURL=chunk-NLQAJ7TW.js.map
147
- //# sourceMappingURL=chunk-NLQAJ7TW.js.map
155
+ export { AdapterErrorKind, AgentNotFoundError, ERROR_HINTS, GoalHasPendingTasksError, GoalNotFoundError, InvalidArgumentsError, InvalidTransitionError, LockConflictError, NoAgentsError, NotInitializedError, OrchestryError, TaskAlreadyRunningError, TaskNotFoundError, TeamNotFoundError, WorkspaceError, classifyAdapterError };
156
+ //# sourceMappingURL=chunk-IESAV453.js.map
157
+ //# sourceMappingURL=chunk-IESAV453.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/domain/errors.ts"],"names":["AdapterErrorKind"],"mappings":"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","file":"chunk-IESAV453.js","sourcesContent":["/**\n * Typed error hierarchy for the orchestrator.\n *\n * Every error carries an exit code (matching CLI_UI_DESIGN.md §11)\n * and an optional hint for the user.\n *\n * Exit codes:\n * 0 - Success\n * 1 - General error\n * 2 - Invalid arguments\n * 3 - Not initialized (.orchestry/ not found)\n * 4 - Lock conflict (orchestrator already running)\n * 5 - Agent error (adapter test failed)\n */\n\nexport class OrchestryError extends Error {\n constructor(\n message: string,\n public readonly exitCode: number,\n public readonly hint?: string,\n ) {\n super(message);\n this.name = 'OrchestryError';\n }\n}\n\nexport class NotInitializedError extends OrchestryError {\n constructor() {\n super('Not initialized', 3, 'Run: orch init');\n this.name = 'NotInitializedError';\n }\n}\n\nexport class InvalidArgumentsError extends OrchestryError {\n constructor(message: string) {\n super(message, 2);\n this.name = 'InvalidArgumentsError';\n }\n}\n\nexport class LockConflictError extends OrchestryError {\n constructor(pid: number) {\n super(`Orchestrator already running (PID: ${pid})`, 4, 'Use: orch status');\n this.name = 'LockConflictError';\n }\n}\n\nexport class AgentAdapterError extends OrchestryError {\n constructor(adapter: string, detail: string) {\n super(`Agent adapter \"${adapter}\" not available`, 5, detail);\n this.name = 'AgentAdapterError';\n }\n}\n\nexport class NoAgentsError extends OrchestryError {\n constructor() {\n super('No agents configured', 1, 'Run: orch agent add <name> --adapter <adapter>');\n this.name = 'NoAgentsError';\n }\n}\n\nexport class TaskNotFoundError extends OrchestryError {\n constructor(taskId: string) {\n super(`Task not found: ${taskId}`, 1);\n this.name = 'TaskNotFoundError';\n }\n}\n\nexport class AgentNotFoundError extends OrchestryError {\n constructor(agentId: string) {\n super(`Agent not found: ${agentId}`, 1);\n this.name = 'AgentNotFoundError';\n }\n}\n\nexport class TaskAlreadyRunningError extends OrchestryError {\n constructor(taskId: string, runId: string, agentName: string) {\n super(\n `Task ${taskId} is already running (run: ${runId}, agent: ${agentName})`,\n 1,\n `Use: orch logs --task ${taskId} --follow`,\n );\n this.name = 'TaskAlreadyRunningError';\n }\n}\n\nexport class InvalidTransitionError extends OrchestryError {\n constructor(taskId: string, from: string, to: string) {\n super(`Invalid transition for ${taskId}: ${from} → ${to}`, 1);\n this.name = 'InvalidTransitionError';\n }\n}\n\nexport class GoalNotFoundError extends OrchestryError {\n constructor(goalId: string) {\n super(`Goal not found: ${goalId}`, 1);\n this.name = 'GoalNotFoundError';\n }\n}\n\nexport class GoalHasPendingTasksError extends OrchestryError {\n constructor(goalId: string, count: number, summary: string) {\n super(\n `Cannot mark goal ${goalId} as achieved: ${count} task(s) still pending — ${summary}`,\n 1,\n 'Use --force to cancel pending tasks and mark achieved',\n );\n this.name = 'GoalHasPendingTasksError';\n }\n}\n\nexport class TeamNotFoundError extends OrchestryError {\n constructor(teamId: string) {\n super(`Team not found: ${teamId}`, 1);\n this.name = 'TeamNotFoundError';\n }\n}\n\nexport class MessageNotFoundError extends OrchestryError {\n constructor(messageId: string) {\n super(`Message not found: ${messageId}`, 1);\n this.name = 'MessageNotFoundError';\n }\n}\n\nexport class WorkspaceError extends OrchestryError {\n constructor(message: string, hint?: string) {\n super(message, 6, hint);\n this.name = 'WorkspaceError';\n }\n}\n\n// ── Adapter Error Classification ──────────────────────────────────\n\nexport enum AdapterErrorKind {\n ADAPTER_NOT_FOUND = 'adapter_not_found',\n AUTH_FAILED = 'auth_failed',\n TIMEOUT = 'timeout',\n RATE_LIMIT = 'rate_limit',\n PROCESS_CRASH = 'process_crash',\n SPAWN_FAILED = 'spawn_failed',\n UNKNOWN = 'unknown',\n}\n\nexport interface AdapterErrorHint {\n message: string;\n fix: string;\n doctorHint?: boolean;\n}\n\nexport const ERROR_HINTS: Record<AdapterErrorKind, AdapterErrorHint> = {\n [AdapterErrorKind.ADAPTER_NOT_FOUND]: {\n message: 'CLI не установлен.',\n fix: 'Установите: npm i -g @anthropic-ai/claude-code',\n doctorHint: true,\n },\n [AdapterErrorKind.AUTH_FAILED]: {\n message: 'API ключ невалиден.',\n fix: 'Проверьте: claude auth status',\n },\n [AdapterErrorKind.TIMEOUT]: {\n message: 'Агент превысил лимит времени.',\n fix: 'Увеличьте через: orch config set agent_timeout <ms>',\n },\n [AdapterErrorKind.RATE_LIMIT]: {\n message: 'Достигнут лимит API.',\n fix: 'Подождите и повторите: orch task retry <id>',\n },\n [AdapterErrorKind.PROCESS_CRASH]: {\n message: 'Процесс агента упал.',\n fix: 'Попробуйте: orch task retry <id>',\n },\n [AdapterErrorKind.SPAWN_FAILED]: {\n message: 'Не удалось запустить процесс.',\n fix: 'Проверьте PATH и права доступа',\n },\n [AdapterErrorKind.UNKNOWN]: {\n message: 'Неизвестная ошибка.',\n fix: 'Запустите: orch doctor',\n doctorHint: true,\n },\n};\n\nexport function classifyAdapterError(error: string, exitCode?: number): AdapterErrorKind {\n const lower = error.toLowerCase();\n\n if (lower.includes('enoent') || lower.includes('spawn failed')) {\n return AdapterErrorKind.SPAWN_FAILED;\n }\n if (lower.includes('not found') || lower.includes('command not found') || lower.includes('no such file')) {\n return AdapterErrorKind.ADAPTER_NOT_FOUND;\n }\n if (lower.includes('auth') || lower.includes('unauthorized') || lower.includes('401') || lower.includes('invalid api key') || lower.includes('authentication')) {\n return AdapterErrorKind.AUTH_FAILED;\n }\n if (lower.includes('timeout') || lower.includes('timed out') || lower.includes('etimedout')) {\n return AdapterErrorKind.TIMEOUT;\n }\n if (lower.includes('rate limit') || lower.includes('429') || lower.includes('too many requests')) {\n return AdapterErrorKind.RATE_LIMIT;\n }\n if (exitCode !== undefined && exitCode !== 0) {\n return AdapterErrorKind.PROCESS_CRASH;\n }\n\n return AdapterErrorKind.UNKNOWN;\n}\n"]}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import {a}from'./chunk-C7C7Q7XO.js';import {o as o$1}from'./chunk-LRYVT4D4.js';import {b}from'./chunk-6MJ7V6VY.js';import {execFile}from'child_process';import {promisify}from'util';function m(){let n;return {promise:new Promise(t=>{n=t;}),resolve:n}}var o=class{buf;head=0;tail=0;count=0;capacity;dataReady=null;spaceReady=null;closed=false;constructor(e=1024){this.capacity=e,this.buf=new Array(e);}get size(){return this.count}get isFull(){return this.count>=this.capacity}async push(e){for(;this.isFull&&!this.closed;)this.spaceReady||(this.spaceReady=m()),await this.spaceReady.promise;if(!this.closed&&(this.buf[this.tail]=e,this.tail=(this.tail+1)%this.capacity,this.count++,this.dataReady)){let t=this.dataReady;this.dataReady=null,t.resolve();}}async take(){for(;this.count===0;){if(this.closed)return;this.dataReady||(this.dataReady=m()),await this.dataReady.promise;}let e=this.buf[this.head];if(this.buf[this.head]=void 0,this.head=(this.head+1)%this.capacity,this.count--,this.spaceReady){let t=this.spaceReady;this.spaceReady=null,t.resolve();}return e}close(){if(this.closed=true,this.dataReady){let e=this.dataReady;this.dataReady=null,e.resolve();}if(this.spaceReady){let e=this.spaceReady;this.spaceReady=null,e.resolve();}}get isClosed(){return this.closed}async*[Symbol.asyncIterator](){for(;;){let e=await this.take();if(e===void 0)return;yield e;}}};var E=promisify(execFile),y=class{constructor(e){this.processManager=e;}kind="shell";async test(){try{let{stdout:e}=await E("bash",["--version"]);return {ok:!0,version:e.split(`
3
+ `)[0]?.trim()??"unknown"}}catch{return {ok:false,error:"bash not found",errorKind:o$1("bash not found")}}}execute(e){let t=e.config.command;if(!t){async function*i(){yield {type:"error",timestamp:new Date().toISOString(),data:"Shell adapter requires a command in agent config",errorKind:"spawn_failed"};}return {pid:0,events:i()}}let{process:s,pid:u}=this.processManager.spawn("bash",["-lc",t],{cwd:e.workspace,env:{...process.env,...e.env,ORCHESTRY_TASK_PROMPT:a(e.systemPrompt,e.prompt)},signal:e.signal}),r=e.signal,v=this.processManager;async function*g(){let i=new o,d=()=>{v.killWithGrace(u,5e3).catch(()=>{});};r&&(r.aborted?d():r.addEventListener("abort",d,{once:true}));let A=(async()=>{if(s.stdout)for await(let a of b(s.stdout)){if(r?.aborted)break;await i.push({type:"output",timestamp:new Date().toISOString(),data:a});}})(),b$1=(async()=>{if(s.stderr)for await(let a of b(s.stderr)){if(r?.aborted)break;await i.push({type:"error",timestamp:new Date().toISOString(),data:a,errorKind:o$1(a)});}})();Promise.all([A,b$1]).then(()=>i.close(),()=>i.close()),yield*i,r&&!r.aborted&&r.removeEventListener("abort",d),await new Promise((a,p)=>{if(s.exitCode!==null||s.killed){a();return}s.on("close",h=>{h===0||r?.aborted?a():p(new Error(`Shell command exited with code ${h}`));}),s.on("error",p);});}return {pid:u,events:g()}}async stop(e){await this.processManager.killWithGrace(e);}};export{y as a};
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ var n=class extends Error{constructor(e,s,f){super(e);this.exitCode=s;this.hint=f;this.name="OrchestryError";}},o=class extends n{constructor(){super("Not initialized",3,"Run: orch init"),this.name="NotInitializedError";}},i=class extends n{constructor(r){super(r,2),this.name="InvalidArgumentsError";}},a=class extends n{constructor(r){super(`Orchestrator already running (PID: ${r})`,4,"Use: orch status"),this.name="LockConflictError";}};var c=class extends n{constructor(){super("No agents configured",1,"Run: orch agent add <name> --adapter <adapter>"),this.name="NoAgentsError";}},d=class extends n{constructor(r){super(`Task not found: ${r}`,1),this.name="TaskNotFoundError";}},u=class extends n{constructor(r){super(`Agent not found: ${r}`,1),this.name="AgentNotFoundError";}},l=class extends n{constructor(r,e,s){super(`Task ${r} is already running (run: ${e}, agent: ${s})`,1,`Use: orch logs --task ${r} --follow`),this.name="TaskAlreadyRunningError";}},p=class extends n{constructor(r,e,s){super(`Invalid transition for ${r}: ${e} \u2192 ${s}`,1),this.name="InvalidTransitionError";}},g=class extends n{constructor(r){super(`Goal not found: ${r}`,1),this.name="GoalNotFoundError";}},m=class extends n{constructor(r,e,s){super(`Cannot mark goal ${r} as achieved: ${e} task(s) still pending \u2014 ${s}`,1,"Use --force to cancel pending tasks and mark achieved"),this.name="GoalHasPendingTasksError";}},x=class extends n{constructor(r){super(`Team not found: ${r}`,1),this.name="TeamNotFoundError";}};var A=class extends n{constructor(r,e){super(r,6,e),this.name="WorkspaceError";}};var h={adapter_not_found:{message:"CLI \u043D\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D.",fix:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435: npm i -g @anthropic-ai/claude-code",doctorHint:true},auth_failed:{message:"API \u043A\u043B\u044E\u0447 \u043D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D.",fix:"\u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435: claude auth status"},timeout:{message:"\u0410\u0433\u0435\u043D\u0442 \u043F\u0440\u0435\u0432\u044B\u0441\u0438\u043B \u043B\u0438\u043C\u0438\u0442 \u0432\u0440\u0435\u043C\u0435\u043D\u0438.",fix:"\u0423\u0432\u0435\u043B\u0438\u0447\u044C\u0442\u0435 \u0447\u0435\u0440\u0435\u0437: orch config set agent_timeout <ms>"},rate_limit:{message:"\u0414\u043E\u0441\u0442\u0438\u0433\u043D\u0443\u0442 \u043B\u0438\u043C\u0438\u0442 API.",fix:"\u041F\u043E\u0434\u043E\u0436\u0434\u0438\u0442\u0435 \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435: orch task retry <id>"},process_crash:{message:"\u041F\u0440\u043E\u0446\u0435\u0441\u0441 \u0430\u0433\u0435\u043D\u0442\u0430 \u0443\u043F\u0430\u043B.",fix:"\u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435: orch task retry <id>"},spawn_failed:{message:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u043F\u0440\u043E\u0446\u0435\u0441\u0441.",fix:"\u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 PATH \u0438 \u043F\u0440\u0430\u0432\u0430 \u0434\u043E\u0441\u0442\u0443\u043F\u0430"},unknown:{message:"\u041D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430.",fix:"\u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435: orch doctor",doctorHint:true}};function E(t,r){let e=t.toLowerCase();return e.includes("enoent")||e.includes("spawn failed")?"spawn_failed":e.includes("not found")||e.includes("command not found")||e.includes("no such file")?"adapter_not_found":e.includes("auth")||e.includes("unauthorized")||e.includes("401")||e.includes("invalid api key")||e.includes("authentication")?"auth_failed":e.includes("timeout")||e.includes("timed out")||e.includes("etimedout")?"timeout":e.includes("rate limit")||e.includes("429")||e.includes("too many requests")?"rate_limit":r!==void 0&&r!==0?"process_crash":"unknown"}export{n as a,o as b,i as c,a as d,c as e,d as f,u as g,l as h,p as i,g as j,m as k,x as l,A as m,h as n,E as o};
@@ -1,6 +1,6 @@
1
1
  import { AUTONOMOUS_LABEL, DEFAULT_SYSTEM_TEMPLATE, DEFAULT_USER_TEMPLATE, buildPromptContext } from './chunk-XUZZJCKG.js';
2
2
  import { createTokenUsage } from './chunk-RHFRHCN5.js';
3
- import { LockConflictError, WorkspaceError, TaskAlreadyRunningError, NoAgentsError, classifyAdapterError } from './chunk-NLQAJ7TW.js';
3
+ import { LockConflictError, WorkspaceError, TaskAlreadyRunningError, NoAgentsError, classifyAdapterError } from './chunk-IESAV453.js';
4
4
  import { dirname } from 'path';
5
5
  import fs from 'fs/promises';
6
6
  import { execFile } from 'child_process';
@@ -1787,5 +1787,5 @@ function serializeEventData(data, maxLen) {
1787
1787
  }
1788
1788
 
1789
1789
  export { Orchestrator, canTransition, isBlocked, isDispatchable, isTerminal, resolveFailureStatus };
1790
- //# sourceMappingURL=chunk-XJ6KTO3E.js.map
1791
- //# sourceMappingURL=chunk-XJ6KTO3E.js.map
1790
+ //# sourceMappingURL=chunk-NNF3VEVJ.js.map
1791
+ //# sourceMappingURL=chunk-NNF3VEVJ.js.map