agentplane 0.3.16 → 0.3.17

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 (123) hide show
  1. package/dist/.build-manifest.json +159 -54
  2. package/dist/backends/task-backend/redmine/backend-runtime.d.ts +4 -146
  3. package/dist/backends/task-backend/redmine/backend-runtime.d.ts.map +1 -1
  4. package/dist/backends/task-backend/redmine/backend-runtime.js +4 -258
  5. package/dist/backends/task-backend/redmine/mapping.js +1 -1
  6. package/dist/backends/task-backend/redmine/runtime-context.d.ts +98 -0
  7. package/dist/backends/task-backend/redmine/runtime-context.d.ts.map +1 -0
  8. package/dist/backends/task-backend/redmine/runtime-context.js +57 -0
  9. package/dist/backends/task-backend/redmine/runtime-methods.d.ts +33 -0
  10. package/dist/backends/task-backend/redmine/runtime-methods.d.ts.map +1 -0
  11. package/dist/backends/task-backend/redmine/runtime-methods.js +86 -0
  12. package/dist/backends/task-backend/redmine/runtime-operations.d.ts +19 -0
  13. package/dist/backends/task-backend/redmine/runtime-operations.d.ts.map +1 -0
  14. package/dist/backends/task-backend/redmine/runtime-operations.js +83 -0
  15. package/dist/backends/task-backend/redmine/runtime-state.d.ts +10 -0
  16. package/dist/backends/task-backend/redmine/runtime-state.d.ts.map +1 -0
  17. package/dist/backends/task-backend/redmine/runtime-state.js +45 -0
  18. package/dist/backends/task-backend/shared/constants.d.ts +1 -1
  19. package/dist/backends/task-backend/shared/constants.d.ts.map +1 -1
  20. package/dist/backends/task-backend/shared/constants.js +1 -1
  21. package/dist/backends/task-index.d.ts +0 -4
  22. package/dist/backends/task-index.d.ts.map +1 -1
  23. package/dist/backends/task-index.js +0 -33
  24. package/dist/cli/exit-codes.d.ts.map +1 -1
  25. package/dist/cli/exit-codes.js +1 -0
  26. package/dist/cli/http.d.ts.map +1 -1
  27. package/dist/cli/http.js +34 -15
  28. package/dist/cli/run-cli/command-loaders.d.ts +1 -5
  29. package/dist/cli/run-cli/command-loaders.d.ts.map +1 -1
  30. package/dist/cli/spec/errors.d.ts +5 -0
  31. package/dist/cli/spec/errors.d.ts.map +1 -1
  32. package/dist/cli/spec/errors.js +14 -1
  33. package/dist/cli/spec/parse.d.ts.map +1 -1
  34. package/dist/cli/spec/parse.js +8 -1
  35. package/dist/commands/branch/work-start.d.ts.map +1 -1
  36. package/dist/commands/branch/work-start.direct.d.ts +13 -0
  37. package/dist/commands/branch/work-start.direct.d.ts.map +1 -0
  38. package/dist/commands/branch/work-start.direct.js +75 -0
  39. package/dist/commands/branch/work-start.git.d.ts +3 -0
  40. package/dist/commands/branch/work-start.git.d.ts.map +1 -0
  41. package/dist/commands/branch/work-start.git.js +19 -0
  42. package/dist/commands/branch/work-start.hook-shim.d.ts +2 -0
  43. package/dist/commands/branch/work-start.hook-shim.d.ts.map +1 -0
  44. package/dist/commands/branch/work-start.hook-shim.js +38 -0
  45. package/dist/commands/branch/work-start.js +6 -235
  46. package/dist/commands/branch/work-start.materialize.d.ts +16 -0
  47. package/dist/commands/branch/work-start.materialize.d.ts.map +1 -0
  48. package/dist/commands/branch/work-start.materialize.js +110 -0
  49. package/dist/commands/doctor/fixes.d.ts +0 -5
  50. package/dist/commands/doctor/fixes.d.ts.map +1 -1
  51. package/dist/commands/doctor/fixes.js +0 -70
  52. package/dist/commands/doctor/workflow.d.ts.map +1 -1
  53. package/dist/commands/doctor/workflow.js +2 -23
  54. package/dist/commands/doctor.run.d.ts.map +1 -1
  55. package/dist/commands/doctor.run.js +1 -3
  56. package/dist/commands/hooks/index.d.ts +4 -20
  57. package/dist/commands/hooks/index.d.ts.map +1 -1
  58. package/dist/commands/hooks/index.js +4 -432
  59. package/dist/commands/hooks/install.d.ts +11 -0
  60. package/dist/commands/hooks/install.d.ts.map +1 -0
  61. package/dist/commands/hooks/install.js +136 -0
  62. package/dist/commands/hooks/run.commit-msg.d.ts +3 -0
  63. package/dist/commands/hooks/run.commit-msg.d.ts.map +1 -0
  64. package/dist/commands/hooks/run.commit-msg.js +67 -0
  65. package/dist/commands/hooks/run.d.ts +9 -0
  66. package/dist/commands/hooks/run.d.ts.map +1 -0
  67. package/dist/commands/hooks/run.js +45 -0
  68. package/dist/commands/hooks/run.post-merge.d.ts +3 -0
  69. package/dist/commands/hooks/run.post-merge.d.ts.map +1 -0
  70. package/dist/commands/hooks/run.post-merge.js +44 -0
  71. package/dist/commands/hooks/run.pre-commit.d.ts +3 -0
  72. package/dist/commands/hooks/run.pre-commit.d.ts.map +1 -0
  73. package/dist/commands/hooks/run.pre-commit.js +48 -0
  74. package/dist/commands/hooks/run.pre-push.d.ts +6 -0
  75. package/dist/commands/hooks/run.pre-push.d.ts.map +1 -0
  76. package/dist/commands/hooks/run.pre-push.js +88 -0
  77. package/dist/commands/hooks/shared.d.ts +7 -0
  78. package/dist/commands/hooks/shared.d.ts.map +1 -0
  79. package/dist/commands/hooks/shared.js +41 -0
  80. package/dist/commands/recipes/impl/index.d.ts.map +1 -1
  81. package/dist/commands/recipes/impl/index.js +13 -3
  82. package/dist/commands/task/hosted-close-pr.command.d.ts +2 -7
  83. package/dist/commands/task/hosted-close-pr.command.d.ts.map +1 -1
  84. package/dist/commands/task/hosted-close-pr.command.js +9 -373
  85. package/dist/commands/task/hosted-close-pr.execute.d.ts +3 -0
  86. package/dist/commands/task/hosted-close-pr.execute.d.ts.map +1 -0
  87. package/dist/commands/task/hosted-close-pr.execute.js +135 -0
  88. package/dist/commands/task/hosted-close-pr.postcheck.d.ts +3 -0
  89. package/dist/commands/task/hosted-close-pr.postcheck.d.ts.map +1 -0
  90. package/dist/commands/task/hosted-close-pr.postcheck.js +13 -0
  91. package/dist/commands/task/hosted-close-pr.precheck.d.ts +4 -0
  92. package/dist/commands/task/hosted-close-pr.precheck.d.ts.map +1 -0
  93. package/dist/commands/task/hosted-close-pr.precheck.js +288 -0
  94. package/dist/commands/task/hosted-close-pr.report.d.ts +4 -0
  95. package/dist/commands/task/hosted-close-pr.report.d.ts.map +1 -0
  96. package/dist/commands/task/hosted-close-pr.report.js +42 -0
  97. package/dist/commands/task/hosted-close-pr.types.d.ts +75 -0
  98. package/dist/commands/task/hosted-close-pr.types.d.ts.map +1 -0
  99. package/dist/commands/task/hosted-close-pr.types.js +1 -0
  100. package/dist/commands/upgrade/materialize.d.ts.map +1 -1
  101. package/dist/commands/upgrade/materialize.js +0 -7
  102. package/dist/commands/upgrade/source.d.ts +0 -1
  103. package/dist/commands/upgrade/source.d.ts.map +1 -1
  104. package/dist/commands/upgrade/source.js +1 -9
  105. package/dist/runner/context/base-prompts.d.ts.map +1 -1
  106. package/dist/runner/context/base-prompts.js +4 -0
  107. package/dist/runner/context/project-skill-prompt-blocks.d.ts +5 -0
  108. package/dist/runner/context/project-skill-prompt-blocks.d.ts.map +1 -0
  109. package/dist/runner/context/project-skill-prompt-blocks.js +57 -0
  110. package/dist/runner/process-supervision/run.d.ts.map +1 -1
  111. package/dist/runner/process-supervision/run.js +61 -59
  112. package/dist/shared/errors.d.ts +4 -1
  113. package/dist/shared/errors.d.ts.map +1 -1
  114. package/dist/shared/errors.js +6 -0
  115. package/dist/shared/workflow-artifacts.d.ts.map +1 -1
  116. package/dist/shared/workflow-artifacts.js +1 -8
  117. package/dist/workflow-runtime/file-ops.d.ts.map +1 -1
  118. package/dist/workflow-runtime/file-ops.js +1 -20
  119. package/dist/workflow-runtime/paths.d.ts.map +1 -1
  120. package/dist/workflow-runtime/paths.js +0 -1
  121. package/dist/workflow-runtime/types.d.ts +0 -1
  122. package/dist/workflow-runtime/types.d.ts.map +1 -1
  123. package/package.json +3 -3
@@ -278,65 +278,67 @@ export async function runSupervisedProcess(opts) {
278
278
  queueAppend("stderr", persistedText);
279
279
  });
280
280
  void child.on("error", finishWithError);
281
- void child.on("close", async (code, signal) => {
282
- if (settled)
283
- return;
284
- clearTimers();
285
- const ended_at = new Date().toISOString();
286
- if (stdout_buffer) {
287
- writeTraceLine("stdout", stdout_buffer);
288
- }
289
- if (stderr_buffer) {
290
- writeTraceLine("stderr", stderr_buffer);
291
- }
292
- if (settled)
293
- return;
294
- const normalizedSignal = normalizeSignal(signal);
295
- const currentState = await readRunnerRunState(opts.invocation.state_path);
296
- const supervision = currentState?.supervision;
297
- const runStatus = supervision?.cancel_requested_at
298
- ? "cancelled"
299
- : timeoutReason
300
- ? "failed"
301
- : code === 0
302
- ? "success"
303
- : "failed";
304
- const [traceArtifact, stderrArtifact] = await Promise.all([
305
- finalizeTraceArtifact({
306
- file_path: opts.invocation.trace_path,
307
- policy: tracePolicy,
308
- run_status: runStatus,
309
- }),
310
- finalizeTraceArtifact({
311
- file_path: opts.invocation.stderr_path,
312
- policy: tracePolicy,
313
- run_status: runStatus,
314
- }),
315
- ]);
316
- settled = true;
317
- resolve({
318
- exit_code: code,
319
- exit_signal: normalizedSignal,
320
- stdout_tail,
321
- stderr_tail,
322
- stdout_bytes,
323
- stderr_bytes,
324
- pid,
325
- started_at,
326
- ended_at,
327
- cancel_requested_at: supervision?.cancel_requested_at ?? null,
328
- cancel_signal: supervision?.cancel_signal ?? null,
329
- timeout_reason: supervision?.timeout_reason ?? timeoutReason,
330
- timeout_requested_at: supervision?.timeout_requested_at ?? timeoutRequestedAt,
331
- terminate_sent_at: supervision?.terminate_sent_at ?? terminateSentAt,
332
- kill_sent_at: supervision?.kill_sent_at ?? killSentAt,
333
- force_killed: supervision?.force_killed === true || killSentAt !== null,
334
- heartbeat_at: heartbeat_at || ended_at,
335
- trace_artifact_path: traceArtifact.artifact_path,
336
- trace_archive_path: traceArtifact.archive_path,
337
- stderr_artifact_path: stderrArtifact.artifact_path,
338
- stderr_archive_path: stderrArtifact.archive_path,
339
- });
281
+ void child.on("close", (code, signal) => {
282
+ void (async () => {
283
+ if (settled)
284
+ return;
285
+ clearTimers();
286
+ const ended_at = new Date().toISOString();
287
+ if (stdout_buffer) {
288
+ writeTraceLine("stdout", stdout_buffer);
289
+ }
290
+ if (stderr_buffer) {
291
+ writeTraceLine("stderr", stderr_buffer);
292
+ }
293
+ if (settled)
294
+ return;
295
+ const normalizedSignal = normalizeSignal(signal);
296
+ const currentState = await readRunnerRunState(opts.invocation.state_path);
297
+ const supervision = currentState?.supervision;
298
+ const runStatus = supervision?.cancel_requested_at
299
+ ? "cancelled"
300
+ : timeoutReason
301
+ ? "failed"
302
+ : code === 0
303
+ ? "success"
304
+ : "failed";
305
+ const [traceArtifact, stderrArtifact] = await Promise.all([
306
+ finalizeTraceArtifact({
307
+ file_path: opts.invocation.trace_path,
308
+ policy: tracePolicy,
309
+ run_status: runStatus,
310
+ }),
311
+ finalizeTraceArtifact({
312
+ file_path: opts.invocation.stderr_path,
313
+ policy: tracePolicy,
314
+ run_status: runStatus,
315
+ }),
316
+ ]);
317
+ settled = true;
318
+ resolve({
319
+ exit_code: code,
320
+ exit_signal: normalizedSignal,
321
+ stdout_tail,
322
+ stderr_tail,
323
+ stdout_bytes,
324
+ stderr_bytes,
325
+ pid,
326
+ started_at,
327
+ ended_at,
328
+ cancel_requested_at: supervision?.cancel_requested_at ?? null,
329
+ cancel_signal: supervision?.cancel_signal ?? null,
330
+ timeout_reason: supervision?.timeout_reason ?? timeoutReason,
331
+ timeout_requested_at: supervision?.timeout_requested_at ?? timeoutRequestedAt,
332
+ terminate_sent_at: supervision?.terminate_sent_at ?? terminateSentAt,
333
+ kill_sent_at: supervision?.kill_sent_at ?? killSentAt,
334
+ force_killed: supervision?.force_killed === true || killSentAt !== null,
335
+ heartbeat_at: heartbeat_at || ended_at,
336
+ trace_artifact_path: traceArtifact.artifact_path,
337
+ trace_archive_path: traceArtifact.archive_path,
338
+ stderr_artifact_path: stderrArtifact.artifact_path,
339
+ stderr_archive_path: stderrArtifact.archive_path,
340
+ });
341
+ })().catch(finishWithError);
340
342
  });
341
343
  if (timeoutPolicy.wall_clock_ms > 0) {
342
344
  wallTimer = setTimeout(() => {
@@ -11,7 +11,7 @@
11
11
  * - backend-specific transport/domain errors
12
12
  * - error factories that belong to one feature subtree only
13
13
  */
14
- export type ErrorCode = "E_USAGE" | "E_VALIDATION" | "E_IO" | "E_GIT" | "E_HANDOFF" | "E_BACKEND" | "E_NETWORK" | "E_RUNTIME" | "E_INTERNAL";
14
+ export type ErrorCode = "E_USAGE" | "E_DEPRECATED_FLAG" | "E_VALIDATION" | "E_IO" | "E_GIT" | "E_HANDOFF" | "E_BACKEND" | "E_NETWORK" | "E_RUNTIME" | "E_INTERNAL";
15
15
  export declare const DEFAULT_ERROR_EXIT_CODES: Readonly<Record<ErrorCode, number>>;
16
16
  type AgentplaneErrorOptions = {
17
17
  message: string;
@@ -35,6 +35,9 @@ export declare class CliError extends AgentplaneError {
35
35
  export declare class UsageError extends CliError {
36
36
  constructor(opts: AgentplaneErrorOptions);
37
37
  }
38
+ export declare class DeprecatedFlagError extends CliError {
39
+ constructor(opts: AgentplaneErrorOptions);
40
+ }
38
41
  export declare class ValidationError extends CliError {
39
42
  constructor(opts: AgentplaneErrorOptions);
40
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,cAAc,GACd,MAAM,GACN,OAAO,GACP,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,YAAY,CAAC;AAEjB,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAUxE,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF,qBAAa,eAAgB,SAAQ,KAAK;IACxC,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,IAAI,EAAE,SAAS,CAAC;IAChC,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAEtC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,sBAAsB;CAO1D;AAED,qBAAa,QAAS,SAAQ,eAAe;gBAC/B,IAAI,EAAE;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,SAAS,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC;CAGF;AAED,qBAAa,UAAW,SAAQ,QAAQ;gBAC1B,IAAI,EAAE,sBAAsB;CAGzC;AAED,qBAAa,eAAgB,SAAQ,QAAQ;gBAC/B,IAAI,EAAE,sBAAsB;CAGzC;AAED,qBAAa,OAAQ,SAAQ,QAAQ;gBACvB,IAAI,EAAE,sBAAsB;CAGzC;AAED,qBAAa,QAAS,SAAQ,QAAQ;gBACxB,IAAI,EAAE,sBAAsB;CAGzC;AAED,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,IAAI,EAAE,sBAAsB;CAGzC;AAED,qBAAa,eAAgB,SAAQ,QAAQ;gBAC/B,IAAI,EAAE,sBAAsB;CAGzC;AAED,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,IAAI,EAAE,sBAAsB;CAGzC;AAED,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,IAAI,EAAE,sBAAsB;CAGzC;AAED,qBAAa,aAAc,SAAQ,QAAQ;gBAC7B,IAAI,EAAE,sBAAsB;CAGzC;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,YAAY,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC;AAEF,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAiBnF"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,mBAAmB,GACnB,cAAc,GACd,MAAM,GACN,OAAO,GACP,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,YAAY,CAAC;AAEjB,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAWxE,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF,qBAAa,eAAgB,SAAQ,KAAK;IACxC,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,IAAI,EAAE,SAAS,CAAC;IAChC,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAEtC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,sBAAsB;CAO1D;AAED,qBAAa,QAAS,SAAQ,eAAe;gBAC/B,IAAI,EAAE;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,SAAS,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC;CAGF;AAED,qBAAa,UAAW,SAAQ,QAAQ;gBAC1B,IAAI,EAAE,sBAAsB;CAGzC;AAED,qBAAa,mBAAoB,SAAQ,QAAQ;gBACnC,IAAI,EAAE,sBAAsB;CAGzC;AAED,qBAAa,eAAgB,SAAQ,QAAQ;gBAC/B,IAAI,EAAE,sBAAsB;CAGzC;AAED,qBAAa,OAAQ,SAAQ,QAAQ;gBACvB,IAAI,EAAE,sBAAsB;CAGzC;AAED,qBAAa,QAAS,SAAQ,QAAQ;gBACxB,IAAI,EAAE,sBAAsB;CAGzC;AAED,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,IAAI,EAAE,sBAAsB;CAGzC;AAED,qBAAa,eAAgB,SAAQ,QAAQ;gBAC/B,IAAI,EAAE,sBAAsB;CAGzC;AAED,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,IAAI,EAAE,sBAAsB;CAGzC;AAED,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,IAAI,EAAE,sBAAsB;CAGzC;AAED,qBAAa,aAAc,SAAQ,QAAQ;gBAC7B,IAAI,EAAE,sBAAsB;CAGzC;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,YAAY,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC;AAEF,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAiBnF"}
@@ -1,5 +1,6 @@
1
1
  export const DEFAULT_ERROR_EXIT_CODES = {
2
2
  E_USAGE: 2,
3
+ E_DEPRECATED_FLAG: 2,
3
4
  E_VALIDATION: 3,
4
5
  E_IO: 4,
5
6
  E_GIT: 5,
@@ -31,6 +32,11 @@ export class UsageError extends CliError {
31
32
  super({ ...opts, code: "E_USAGE" });
32
33
  }
33
34
  }
35
+ export class DeprecatedFlagError extends CliError {
36
+ constructor(opts) {
37
+ super({ ...opts, code: "E_DEPRECATED_FLAG" });
38
+ }
39
+ }
34
40
  export class ValidationError extends CliError {
35
41
  constructor(opts) {
36
42
  super({ ...opts, code: "E_VALIDATION" });
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-artifacts.d.ts","sourceRoot":"","sources":["../../src/shared/workflow-artifacts.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,yBAAyB,GAAG;IACtC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,sBAAsB,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,QAAQ,GAAG,WAAW,CAAC;IACrC,SAAS,EAAE,yBAAyB,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;;;;;;;;;;;;;;;EAiBA;AAUD,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,QAAQ,GAAG,WAAW,CAAC;IACrC,SAAS,EAAE,yBAAyB,CAAC;IACrC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,GAAG,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAwErF"}
1
+ {"version":3,"file":"workflow-artifacts.d.ts","sourceRoot":"","sources":["../../src/shared/workflow-artifacts.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,yBAAyB,GAAG;IACtC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,sBAAsB,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,QAAQ,GAAG,WAAW,CAAC;IACrC,SAAS,EAAE,yBAAyB,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;;;;;;;;;;;;;;;EAiBA;AAUD,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,QAAQ,GAAG,WAAW,CAAC;IACrC,SAAS,EAAE,yBAAyB,CAAC;IACrC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,GAAG,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA+DrF"}
@@ -30,12 +30,9 @@ async function readIfPresent(absPath) {
30
30
  }
31
31
  export async function ensureWorkflowArtifacts(opts) {
32
32
  const workflowPaths = resolveWorkflowPaths(opts.gitRoot);
33
- const [beforeWorkflow, beforeLastKnownGood, beforeLegacyWorkflow] = await Promise.all([
33
+ const [beforeWorkflow, beforeLastKnownGood] = await Promise.all([
34
34
  readIfPresent(workflowPaths.workflowPath),
35
35
  readIfPresent(workflowPaths.lastKnownGoodPath),
36
- workflowPaths.legacyWorkflowPath === workflowPaths.workflowPath
37
- ? Promise.resolve(null)
38
- : readIfPresent(workflowPaths.legacyWorkflowPath),
39
36
  ]);
40
37
  const built = buildWorkflowFromTemplates({
41
38
  baseTemplate: DEFAULT_WORKFLOW_TEMPLATE,
@@ -82,10 +79,6 @@ export async function ensureWorkflowArtifacts(opts) {
82
79
  changedPaths.push(workflowPaths.workflowPath);
83
80
  if (beforeLastKnownGood !== built.text)
84
81
  changedPaths.push(workflowPaths.lastKnownGoodPath);
85
- if (workflowPaths.legacyWorkflowPath !== workflowPaths.workflowPath &&
86
- beforeLegacyWorkflow !== null) {
87
- changedPaths.push(workflowPaths.legacyWorkflowPath);
88
- }
89
82
  const commitPaths = [
90
83
  ...new Set(changedPaths.map((absPath) => path.relative(opts.gitRoot, absPath))),
91
84
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"file-ops.d.ts","sourceRoot":"","sources":["../../src/workflow-runtime/file-ops.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAiDjG,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAAC,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CA0BjG;AAED,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,wBAAwB,CAAC,CAuBnC;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,wBAAwB,CAAC,CAanC;AAED,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,wBAAwB,CAAC,CA0DnC;AAED,wBAAsB,gCAAgC,CACpD,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,wBAAwB,CAAC,CA6EnC"}
1
+ {"version":3,"file":"file-ops.d.ts","sourceRoot":"","sources":["../../src/workflow-runtime/file-ops.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AA4BjG,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAAC,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CA0BjG;AAED,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,wBAAwB,CAAC,CAuBnC;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,wBAAwB,CAAC,CAanC;AAED,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,wBAAwB,CAAC,CAyDnC;AAED,wBAAsB,gCAAgC,CACpD,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,wBAAwB,CAAC,CA4EnC"}
@@ -14,23 +14,6 @@ async function pathExists(absPath) {
14
14
  return false;
15
15
  }
16
16
  }
17
- async function resolveWorkflowReadPath(paths) {
18
- if (await pathExists(paths.workflowPath))
19
- return paths.workflowPath;
20
- if (await pathExists(paths.legacyWorkflowPath))
21
- return paths.legacyWorkflowPath;
22
- return paths.workflowPath;
23
- }
24
- async function removeLegacyWorkflowIfPresent(paths) {
25
- if (paths.workflowPath === paths.legacyWorkflowPath)
26
- return;
27
- try {
28
- await fs.rm(paths.legacyWorkflowPath, { force: true });
29
- }
30
- catch {
31
- // best effort cleanup
32
- }
33
- }
34
17
  async function listAgentIds(agentplaneDir) {
35
18
  const ids = new Set();
36
19
  const dir = path.join(agentplaneDir, "agents");
@@ -49,7 +32,7 @@ async function listAgentIds(agentplaneDir) {
49
32
  }
50
33
  export async function readWorkflowDocument(repoRoot, absPath) {
51
34
  const paths = resolveWorkflowPaths(repoRoot);
52
- const targetPath = absPath ?? (await resolveWorkflowReadPath(paths));
35
+ const targetPath = absPath ?? paths.workflowPath;
53
36
  try {
54
37
  const content = await fs.readFile(targetPath, "utf8");
55
38
  const parsed = parseWorkflowMarkdown(content, targetPath);
@@ -134,7 +117,6 @@ export async function publishWorkflowCandidate(repoRoot, candidateText) {
134
117
  await fs.mkdir(paths.workflowDir, { recursive: true });
135
118
  await fs.writeFile(tempPath, candidateText, "utf8");
136
119
  await fs.rename(tempPath, paths.workflowPath);
137
- await removeLegacyWorkflowIfPresent(paths);
138
120
  await fs.copyFile(paths.workflowPath, paths.lastKnownGoodPath);
139
121
  emitWorkflowEvent({
140
122
  event: "workflow_publish_completed",
@@ -213,7 +195,6 @@ export async function restoreWorkflowFromLastKnownGood(repoRoot) {
213
195
  await fs.mkdir(path.dirname(paths.workflowPath), { recursive: true });
214
196
  await fs.writeFile(tempPath, lkgText, "utf8");
215
197
  await fs.rename(tempPath, paths.workflowPath);
216
- await removeLegacyWorkflowIfPresent(paths);
217
198
  emitWorkflowEvent({
218
199
  event: "workflow_restore_completed",
219
200
  details: { workflowPath: paths.workflowPath, from: paths.lastKnownGoodPath },
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/workflow-runtime/paths.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CASpE"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/workflow-runtime/paths.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAQpE"}
@@ -4,7 +4,6 @@ export function resolveWorkflowPaths(repoRoot) {
4
4
  const workflowPath = path.join(repoRoot, ".agentplane", "WORKFLOW.md");
5
5
  return {
6
6
  workflowPath,
7
- legacyWorkflowPath: path.join(repoRoot, "WORKFLOW.md"),
8
7
  lastKnownGoodPath: path.join(workflowDir, "last-known-good.md"),
9
8
  workflowDir,
10
9
  };
@@ -52,7 +52,6 @@ export type WorkflowTemplateRenderOptions = {
52
52
  };
53
53
  export type WorkflowPaths = {
54
54
  workflowPath: string;
55
- legacyWorkflowPath: string;
56
55
  lastKnownGoodPath: string;
57
56
  workflowDir: string;
58
57
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/workflow-runtime/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/workflow-runtime/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,WAAW,CAAC;AAElD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,wBAAwB,EAAE,OAAO,CAAC;IAClC,gBAAgB,EAAE,aAAa,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,SAAS,EAAE,iBAAiB,CAAC;IAC7B,YAAY,EAAE,mBAAmB,CAAC;IAClC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE5E,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEtD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,mBAAmB,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzD,MAAM,MAAM,iBAAiB,GACzB,iBAAiB,GACjB,gBAAgB,GAChB,2BAA2B,GAC3B,gBAAgB,GAChB,mBAAmB,GACnB,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,uBAAuB,GACvB,6BAA6B,GAC7B,8BAA8B,GAC9B,4BAA4B,GAC5B,sBAAsB,GACtB,oBAAoB,GACpB,oBAAoB,GACpB,uBAAuB,CAAC;AAE5B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,kBAAkB,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC;CAC7D,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,kBAAkB,EAAE,CAAC;CACnC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentplane",
3
- "version": "0.3.16",
3
+ "version": "0.3.17",
4
4
  "description": "Agent Plane CLI for task workflows, recipes, and project automation.",
5
5
  "keywords": [
6
6
  "agentplane",
@@ -55,8 +55,8 @@
55
55
  "prepublishOnly": "node ../../scripts/enforce-github-publish.mjs && npm run prepack"
56
56
  },
57
57
  "dependencies": {
58
- "@agentplaneorg/core": "0.3.16",
59
- "@agentplaneorg/recipes": "0.3.16",
58
+ "@agentplaneorg/core": "0.3.17",
59
+ "@agentplaneorg/recipes": "0.3.17",
60
60
  "@clack/prompts": "^1.2.0",
61
61
  "yauzl": "^2.10.0",
62
62
  "zod": "^3",