jumbo-cli 2.10.0 → 2.11.1

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 (57) hide show
  1. package/README.md +26 -7
  2. package/dist/presentation/cli/commands/goals/approve/GoalApproveOutputBuilder.d.ts +1 -1
  3. package/dist/presentation/cli/commands/goals/approve/GoalApproveOutputBuilder.d.ts.map +1 -1
  4. package/dist/presentation/cli/commands/goals/approve/GoalApproveOutputBuilder.js +11 -6
  5. package/dist/presentation/cli/commands/goals/approve/GoalApproveOutputBuilder.js.map +1 -1
  6. package/dist/presentation/cli/commands/goals/approve/goal.approve.d.ts +1 -0
  7. package/dist/presentation/cli/commands/goals/approve/goal.approve.d.ts.map +1 -1
  8. package/dist/presentation/cli/commands/goals/approve/goal.approve.js +6 -4
  9. package/dist/presentation/cli/commands/goals/approve/goal.approve.js.map +1 -1
  10. package/dist/presentation/cli/commands/goals/close/GoalCloseOutputBuilder.d.ts +1 -1
  11. package/dist/presentation/cli/commands/goals/close/GoalCloseOutputBuilder.d.ts.map +1 -1
  12. package/dist/presentation/cli/commands/goals/close/GoalCloseOutputBuilder.js +9 -5
  13. package/dist/presentation/cli/commands/goals/close/GoalCloseOutputBuilder.js.map +1 -1
  14. package/dist/presentation/cli/commands/goals/close/goal.close.d.ts +1 -0
  15. package/dist/presentation/cli/commands/goals/close/goal.close.d.ts.map +1 -1
  16. package/dist/presentation/cli/commands/goals/close/goal.close.js +6 -4
  17. package/dist/presentation/cli/commands/goals/close/goal.close.js.map +1 -1
  18. package/dist/presentation/cli/commands/goals/commit/GoalCommitOutputBuilder.d.ts +1 -1
  19. package/dist/presentation/cli/commands/goals/commit/GoalCommitOutputBuilder.d.ts.map +1 -1
  20. package/dist/presentation/cli/commands/goals/commit/GoalCommitOutputBuilder.js +9 -3
  21. package/dist/presentation/cli/commands/goals/commit/GoalCommitOutputBuilder.js.map +1 -1
  22. package/dist/presentation/cli/commands/goals/commit/goal.commit.d.ts +1 -0
  23. package/dist/presentation/cli/commands/goals/commit/goal.commit.d.ts.map +1 -1
  24. package/dist/presentation/cli/commands/goals/commit/goal.commit.js +3 -2
  25. package/dist/presentation/cli/commands/goals/commit/goal.commit.js.map +1 -1
  26. package/dist/presentation/cli/commands/goals/reject/GoalRejectOutputBuilder.d.ts +1 -1
  27. package/dist/presentation/cli/commands/goals/reject/GoalRejectOutputBuilder.d.ts.map +1 -1
  28. package/dist/presentation/cli/commands/goals/reject/GoalRejectOutputBuilder.js +12 -4
  29. package/dist/presentation/cli/commands/goals/reject/GoalRejectOutputBuilder.js.map +1 -1
  30. package/dist/presentation/cli/commands/goals/reject/goal.reject.d.ts +1 -0
  31. package/dist/presentation/cli/commands/goals/reject/goal.reject.d.ts.map +1 -1
  32. package/dist/presentation/cli/commands/goals/reject/goal.reject.js +3 -2
  33. package/dist/presentation/cli/commands/goals/reject/goal.reject.js.map +1 -1
  34. package/dist/presentation/cli/commands/goals/show/GoalShowOutputBuilder.d.ts +16 -3
  35. package/dist/presentation/cli/commands/goals/show/GoalShowOutputBuilder.d.ts.map +1 -1
  36. package/dist/presentation/cli/commands/goals/show/GoalShowOutputBuilder.js +253 -119
  37. package/dist/presentation/cli/commands/goals/show/GoalShowOutputBuilder.js.map +1 -1
  38. package/dist/presentation/cli/commands/goals/show/goal.show.d.ts.map +1 -1
  39. package/dist/presentation/cli/commands/goals/show/goal.show.js +5 -2
  40. package/dist/presentation/cli/commands/goals/show/goal.show.js.map +1 -1
  41. package/dist/presentation/cli/commands/goals/submit/GoalSubmitOutputBuilder.d.ts +1 -1
  42. package/dist/presentation/cli/commands/goals/submit/GoalSubmitOutputBuilder.d.ts.map +1 -1
  43. package/dist/presentation/cli/commands/goals/submit/GoalSubmitOutputBuilder.js +15 -6
  44. package/dist/presentation/cli/commands/goals/submit/GoalSubmitOutputBuilder.js.map +1 -1
  45. package/dist/presentation/cli/commands/goals/submit/goal.submit.d.ts +1 -0
  46. package/dist/presentation/cli/commands/goals/submit/goal.submit.d.ts.map +1 -1
  47. package/dist/presentation/cli/commands/goals/submit/goal.submit.js +3 -2
  48. package/dist/presentation/cli/commands/goals/submit/goal.submit.js.map +1 -1
  49. package/dist/presentation/cli/commands/registry/CommandMetadata.d.ts +5 -0
  50. package/dist/presentation/cli/commands/registry/CommandMetadata.d.ts.map +1 -1
  51. package/dist/presentation/cli/commands/registry/CommandMetadata.js +9 -0
  52. package/dist/presentation/cli/commands/registry/CommandMetadata.js.map +1 -1
  53. package/dist/presentation/cli/rendering/StyleConfig.d.ts +7 -1
  54. package/dist/presentation/cli/rendering/StyleConfig.d.ts.map +1 -1
  55. package/dist/presentation/cli/rendering/StyleConfig.js +29 -1
  56. package/dist/presentation/cli/rendering/StyleConfig.js.map +1 -1
  57. package/package.json +1 -1
package/README.md CHANGED
@@ -52,16 +52,35 @@ Those solve the core problems. These make Jumbo pleasant to use:
52
52
 
53
53
  ## Quick Start
54
54
 
55
- <p style="background: #000000; padding: 15px 15px 15px 15px; font-size:16px; color: #eeeeee; font-family: 'Courier New', Courier, monospace; font-weight:bold">
56
- > <span style="color: #f9c741;">npm</span> <span style="color: #ababab;">i -g</span> jumbo-cli
57
- <br>
58
- > <span style="color: #f9c741;">jumbo</span> init
59
- <br>
60
- > <span style="color: #f9c741;">claude</span>
61
- <p>
55
+ 1. Install Jumbo globally
56
+ ``` bash
57
+ > npm i -g jumbo-cli
58
+ ```
59
+
60
+ 2. Browse your project folder and initialize Jumbo
61
+ ``` bash
62
+ > jumbo init
63
+ ```
64
+ Jumbo will guide you in getting started.
65
+
66
+ 3. Run your agent as normal (claude, codex, gemini, vibe)
67
+
68
+ ``` bash
69
+ > claude
70
+ [Nudge your agent once its running]
71
+ > Follow instructions
72
+ ```
62
73
 
63
74
  Jumbo will automatically orient the agent about your project and available goals.
64
75
 
76
+ > [!NOTE]
77
+ > Goals are the heart of Jumbo. Every memory, guideline, and constraint attaches to a goal — so define your work there first. (see `jumbo goal add --help`)
78
+ >
79
+ > Your agent can help define goals too. It knows how to use Jumbo.
80
+
81
+ > [!TIP]
82
+ > Hit the ground running with the [Jumbo Memories](https://github.com/jumbocontext/jumbo-memories) repo — a curated library of best practice guidelines and invariants ready to drop into any project.
83
+
65
84
  See the [Getting started](docs/getting-started/first-run.md) guide for the full workflow.
66
85
 
67
86
  ## Compatibility
@@ -14,7 +14,7 @@ export declare class GoalApproveOutputBuilder {
14
14
  * Build output for successful goal approval.
15
15
  * Renders approval result with next steps.
16
16
  */
17
- buildSuccess(response: QualifyGoalResponse): TerminalOutput;
17
+ buildSuccess(response: QualifyGoalResponse, continueFlag?: boolean): TerminalOutput;
18
18
  /**
19
19
  * Build output for goal approval failure.
20
20
  * Renders error message when goal approval fails.
@@ -1 +1 @@
1
- {"version":3,"file":"GoalApproveOutputBuilder.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/approve/GoalApproveOutputBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yEAAyE,CAAC;AAE9G;;;;;;GAMG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,OAAO,CAAwB;;IAMvC;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,mBAAmB,GAAG,cAAc;IAgC3D;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,cAAc;CAQzD"}
1
+ {"version":3,"file":"GoalApproveOutputBuilder.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/approve/GoalApproveOutputBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yEAAyE,CAAC;AAE9G;;;;;;GAMG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,OAAO,CAAwB;;IAMvC;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,mBAAmB,EAAE,YAAY,GAAE,OAAe,GAAG,cAAc;IAqC1F;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,cAAc;CAQzD"}
@@ -17,9 +17,8 @@ class GoalApproveOutputBuilder {
17
17
  * Build output for successful goal approval.
18
18
  * Renders approval result with next steps.
19
19
  */
20
- buildSuccess(response) {
20
+ buildSuccess(response, continueFlag = false) {
21
21
  this.builder.reset();
22
- // Header and success message
23
22
  this.builder.addPrompt("# Goal Approved\n" +
24
23
  `Goal ID: ${response.goalId}\n` +
25
24
  `Objective: ${response.objective}\n` +
@@ -28,10 +27,16 @@ class GoalApproveOutputBuilder {
28
27
  "## QA Review Passed\n" +
29
28
  "The goal has been approved and is ready for codification.\n" +
30
29
  "---");
31
- // Next steps
32
- let nextSteps = "## Next Steps\n" +
33
- "Codify the goal:\n" +
34
- ` Run: jumbo goal codify --id ${response.goalId}`;
30
+ let nextSteps;
31
+ if (continueFlag) {
32
+ nextSteps = "## Next Steps\n" +
33
+ "Codify the goal:\n" +
34
+ ` Run: jumbo goal codify --id ${response.goalId}`;
35
+ }
36
+ else {
37
+ nextSteps = "## [Next Phase] Codification\n" +
38
+ `To codify the goal: jumbo goal codify --id ${response.goalId}`;
39
+ }
35
40
  if (response.nextGoalId) {
36
41
  nextSteps += "\n\nAfter closing, the next goal in the queue is:\n" +
37
42
  ` Goal ID: ${response.nextGoalId}`;
@@ -1 +1 @@
1
- {"version":3,"file":"GoalApproveOutputBuilder.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/approve/GoalApproveOutputBuilder.ts"],"names":[],"mappings":";;;AAAA,uFAAiF;AAIjF;;;;;;GAMG;AACH,MAAa,wBAAwB;IAGnC;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,gDAAqB,EAAE,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,QAA6B;QACxC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAErB,6BAA6B;QAC7B,IAAI,CAAC,OAAO,CAAC,SAAS,CACpB,mBAAmB;YACnB,YAAY,QAAQ,CAAC,MAAM,IAAI;YAC/B,cAAc,QAAQ,CAAC,SAAS,IAAI;YACpC,WAAW,QAAQ,CAAC,MAAM,IAAI;YAC9B,SAAS;YACT,uBAAuB;YACvB,6DAA6D;YAC7D,KAAK,CACN,CAAC;QAEF,aAAa;QACb,IAAI,SAAS,GAAG,iBAAiB;YACjB,oBAAoB;YACpB,iCAAiC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAEnE,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxB,SAAS,IAAI,qDAAqD;gBACrD,cAAc,QAAQ,CAAC,UAAU,EAAE,CAAC;QACnD,CAAC;QAED,SAAS,IAAI,SAAS,CAAC;QAEvB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAElC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,KAAqB;QACrC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACnB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;SACxD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;CACF;AAvDD,4DAuDC"}
1
+ {"version":3,"file":"GoalApproveOutputBuilder.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/approve/GoalApproveOutputBuilder.ts"],"names":[],"mappings":";;;AAAA,uFAAiF;AAIjF;;;;;;GAMG;AACH,MAAa,wBAAwB;IAGnC;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,gDAAqB,EAAE,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,QAA6B,EAAE,eAAwB,KAAK;QACvE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAErB,IAAI,CAAC,OAAO,CAAC,SAAS,CACpB,mBAAmB;YACnB,YAAY,QAAQ,CAAC,MAAM,IAAI;YAC/B,cAAc,QAAQ,CAAC,SAAS,IAAI;YACpC,WAAW,QAAQ,CAAC,MAAM,IAAI;YAC9B,SAAS;YACT,uBAAuB;YACvB,6DAA6D;YAC7D,KAAK,CACN,CAAC;QAEF,IAAI,SAAiB,CAAC;QAEtB,IAAI,YAAY,EAAE,CAAC;YACjB,SAAS,GAAG,iBAAiB;gBACjB,oBAAoB;gBACpB,iCAAiC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,gCAAgC;gBAChC,8CAA8C,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC9E,CAAC;QAED,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxB,SAAS,IAAI,qDAAqD;gBACrD,cAAc,QAAQ,CAAC,UAAU,EAAE,CAAC;QACnD,CAAC;QAED,SAAS,IAAI,SAAS,CAAC;QAEvB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAElC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,KAAqB;QACrC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACnB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;SACxD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;CACF;AA5DD,4DA4DC"}
@@ -19,5 +19,6 @@ export declare const metadata: CommandMetadata;
19
19
  */
20
20
  export declare function goalApprove(options: {
21
21
  id: string;
22
+ continue?: boolean;
22
23
  }, container: IApplicationContainer): Promise<void>;
23
24
  //# sourceMappingURL=goal.approve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"goal.approve.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/approve/goal.approve.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0DAA0D,CAAC;AAIjG;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,eAiBtB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACvB,SAAS,EAAE,qBAAqB,iBAoBjC"}
1
+ {"version":3,"file":"goal.approve.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/approve/goal.approve.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,eAAe,EAAmB,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0DAA0D,CAAC;AAIjG;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,eAiBtB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,EAC3C,SAAS,EAAE,qBAAqB,iBAqBjC"}
@@ -11,6 +11,7 @@
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.metadata = void 0;
13
13
  exports.goalApprove = goalApprove;
14
+ const CommandMetadata_js_1 = require("../../registry/CommandMetadata.js");
14
15
  const Renderer_js_1 = require("../../../rendering/Renderer.js");
15
16
  const GoalApproveOutputBuilder_js_1 = require("./GoalApproveOutputBuilder.js");
16
17
  /**
@@ -25,7 +26,7 @@ exports.metadata = {
25
26
  description: "ID of the goal to approve"
26
27
  }
27
28
  ],
28
- options: [],
29
+ options: [CommandMetadata_js_1.CONTINUE_OPTION],
29
30
  examples: [
30
31
  {
31
32
  command: "jumbo goal approve --id goal_abc123",
@@ -40,18 +41,19 @@ exports.metadata = {
40
41
  */
41
42
  async function goalApprove(options, container) {
42
43
  const renderer = Renderer_js_1.Renderer.getInstance();
44
+ const outputBuilder = new GoalApproveOutputBuilder_js_1.GoalApproveOutputBuilder();
43
45
  try {
44
46
  // 1. Execute via controller (delegates to same QualifyGoalController)
45
47
  const response = await container.qualifyGoalController.handle({
46
48
  goalId: options.id,
47
49
  });
48
50
  // 2. Build and render output using builder pattern
49
- const outputBuilder = new GoalApproveOutputBuilder_js_1.GoalApproveOutputBuilder();
50
- const output = outputBuilder.buildSuccess(response);
51
+ const output = outputBuilder.buildSuccess(response, options.continue === true);
51
52
  renderer.info(output.toHumanReadable());
52
53
  }
53
54
  catch (error) {
54
- renderer.error("Failed to approve goal", error instanceof Error ? error : String(error));
55
+ const errorOutput = outputBuilder.buildFailureError(error instanceof Error ? error : String(error));
56
+ renderer.error(errorOutput.toHumanReadable());
55
57
  process.exit(1);
56
58
  }
57
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"goal.approve.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/approve/goal.approve.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAiCH,kCAsBC;AAnDD,gEAA0D;AAC1D,+EAAyE;AAEzE;;GAEG;AACU,QAAA,QAAQ,GAAoB;IACvC,WAAW,EAAE,2CAA2C;IACxD,QAAQ,EAAE,MAAM;IAChB,eAAe,EAAE;QACf;YACE,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,2BAA2B;SACzC;KACF;IACD,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE;QACR;YACE,OAAO,EAAE,qCAAqC;YAC9C,WAAW,EAAE,uCAAuC;SACrD;KACF;IACD,OAAO,EAAE,CAAC,aAAa,EAAE,eAAe,EAAE,YAAY,CAAC;CACxD,CAAC;AAEF;;;GAGG;AACI,KAAK,UAAU,WAAW,CAC/B,OAAuB,EACvB,SAAgC;IAEhC,MAAM,QAAQ,GAAG,sBAAQ,CAAC,WAAW,EAAE,CAAC;IAExC,IAAI,CAAC;QACH,sEAAsE;QACtE,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC;YAC5D,MAAM,EAAE,OAAO,CAAC,EAAE;SACnB,CAAC,CAAC;QAEH,mDAAmD;QACnD,MAAM,aAAa,GAAG,IAAI,sDAAwB,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAEpD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IAE1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACzF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"goal.approve.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/approve/goal.approve.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAiCH,kCAuBC;AAtDD,0EAAqF;AAErF,gEAA0D;AAC1D,+EAAyE;AAEzE;;GAEG;AACU,QAAA,QAAQ,GAAoB;IACvC,WAAW,EAAE,2CAA2C;IACxD,QAAQ,EAAE,MAAM;IAChB,eAAe,EAAE;QACf;YACE,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,2BAA2B;SACzC;KACF;IACD,OAAO,EAAE,CAAC,oCAAe,CAAC;IAC1B,QAAQ,EAAE;QACR;YACE,OAAO,EAAE,qCAAqC;YAC9C,WAAW,EAAE,uCAAuC;SACrD;KACF;IACD,OAAO,EAAE,CAAC,aAAa,EAAE,eAAe,EAAE,YAAY,CAAC;CACxD,CAAC;AAEF;;;GAGG;AACI,KAAK,UAAU,WAAW,CAC/B,OAA2C,EAC3C,SAAgC;IAEhC,MAAM,QAAQ,GAAG,sBAAQ,CAAC,WAAW,EAAE,CAAC;IAExC,MAAM,aAAa,GAAG,IAAI,sDAAwB,EAAE,CAAC;IAErD,IAAI,CAAC;QACH,sEAAsE;QACtE,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC;YAC5D,MAAM,EAAE,OAAO,CAAC,EAAE;SACnB,CAAC,CAAC;QAEH,mDAAmD;QACnD,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;QAC/E,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IAE1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACpG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -14,7 +14,7 @@ export declare class GoalCloseOutputBuilder {
14
14
  * Build output for successful goal close.
15
15
  * Renders close confirmation and optional next goal information.
16
16
  */
17
- buildSuccess(response: CloseGoalResponse): TerminalOutput;
17
+ buildSuccess(response: CloseGoalResponse, continueFlag?: boolean): TerminalOutput;
18
18
  /**
19
19
  * Build output for goal close failure.
20
20
  */
@@ -1 +1 @@
1
- {"version":3,"file":"GoalCloseOutputBuilder.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/close/GoalCloseOutputBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qEAAqE,CAAC;AAExG;;;;;;GAMG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,OAAO,CAAwB;;IAMvC;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,iBAAiB,GAAG,cAAc;IA6BzD;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,cAAc;CAQzD"}
1
+ {"version":3,"file":"GoalCloseOutputBuilder.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/close/GoalCloseOutputBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qEAAqE,CAAC;AAExG;;;;;;GAMG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,OAAO,CAAwB;;IAMvC;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,iBAAiB,EAAE,YAAY,GAAE,OAAe,GAAG,cAAc;IAmCxF;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,cAAc;CAQzD"}
@@ -17,15 +17,13 @@ class GoalCloseOutputBuilder {
17
17
  * Build output for successful goal close.
18
18
  * Renders close confirmation and optional next goal information.
19
19
  */
20
- buildSuccess(response) {
20
+ buildSuccess(response, continueFlag = false) {
21
21
  this.builder.reset();
22
- // Header
23
22
  this.builder.addPrompt("# Goal Closed\n" +
24
23
  `Goal ID: ${response.goalId}\n` +
25
24
  `Objective: ${response.objective}\n` +
26
25
  `Status: ${response.status}\n` +
27
26
  "---");
28
- // Next goal in chain (if exists)
29
27
  if (response.nextGoal) {
30
28
  this.builder.addPrompt("## Next goal in chain:");
31
29
  this.builder.addData({
@@ -33,8 +31,14 @@ class GoalCloseOutputBuilder {
33
31
  objective: response.nextGoal.objective,
34
32
  status: response.nextGoal.status,
35
33
  });
36
- this.builder.addPrompt("Start the next goal immediately. Run:\n" +
37
- ` jumbo goal start --id ${response.nextGoal.goalId}`);
34
+ if (continueFlag) {
35
+ this.builder.addPrompt("Start the next goal immediately. Run:\n" +
36
+ ` jumbo goal start --id ${response.nextGoal.goalId}`);
37
+ }
38
+ else {
39
+ this.builder.addPrompt("[Next Phase] Implementation\n" +
40
+ `To start the next goal: jumbo goal start --id ${response.nextGoal.goalId}`);
41
+ }
38
42
  }
39
43
  return this.builder.build();
40
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GoalCloseOutputBuilder.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/close/GoalCloseOutputBuilder.ts"],"names":[],"mappings":";;;AAAA,uFAAiF;AAIjF;;;;;;GAMG;AACH,MAAa,sBAAsB;IAGjC;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,gDAAqB,EAAE,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,QAA2B;QACtC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAErB,SAAS;QACT,IAAI,CAAC,OAAO,CAAC,SAAS,CACpB,iBAAiB;YACjB,YAAY,QAAQ,CAAC,MAAM,IAAI;YAC/B,cAAc,QAAQ,CAAC,SAAS,IAAI;YACpC,WAAW,QAAQ,CAAC,MAAM,IAAI;YAC9B,KAAK,CACN,CAAC;QAEF,iCAAiC;QACjC,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;gBACnB,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;gBAChC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS;gBACtC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;aACjC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,SAAS,CACpB,yCAAyC;gBACzC,2BAA2B,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CACtD,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,KAAqB;QACrC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACnB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;SACxD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;CACF;AAnDD,wDAmDC"}
1
+ {"version":3,"file":"GoalCloseOutputBuilder.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/close/GoalCloseOutputBuilder.ts"],"names":[],"mappings":";;;AAAA,uFAAiF;AAIjF;;;;;;GAMG;AACH,MAAa,sBAAsB;IAGjC;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,gDAAqB,EAAE,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,QAA2B,EAAE,eAAwB,KAAK;QACrE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAErB,IAAI,CAAC,OAAO,CAAC,SAAS,CACpB,iBAAiB;YACjB,YAAY,QAAQ,CAAC,MAAM,IAAI;YAC/B,cAAc,QAAQ,CAAC,SAAS,IAAI;YACpC,WAAW,QAAQ,CAAC,MAAM,IAAI;YAC9B,KAAK,CACN,CAAC;QAEF,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;gBACnB,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;gBAChC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS;gBACtC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;aACjC,CAAC,CAAC;YAEH,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,CAAC,SAAS,CACpB,yCAAyC;oBACzC,2BAA2B,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CACtD,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,SAAS,CACpB,+BAA+B;oBAC/B,iDAAiD,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAC5E,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,KAAqB;QACrC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACnB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;SACxD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;CACF;AAzDD,wDAyDC"}
@@ -16,5 +16,6 @@ export declare const metadata: CommandMetadata;
16
16
  */
17
17
  export declare function goalClose(options: {
18
18
  id: string;
19
+ continue?: boolean;
19
20
  }, container: IApplicationContainer): Promise<void>;
20
21
  //# sourceMappingURL=goal.close.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"goal.close.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/close/goal.close.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0DAA0D,CAAC;AAIjG;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,eAiBtB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACvB,SAAS,EAAE,qBAAqB,iBAoBjC"}
1
+ {"version":3,"file":"goal.close.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/close/goal.close.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAmB,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0DAA0D,CAAC;AAIjG;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,eAiBtB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,EAC3C,SAAS,EAAE,qBAAqB,iBAqBjC"}
@@ -8,6 +8,7 @@
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.metadata = void 0;
10
10
  exports.goalClose = goalClose;
11
+ const CommandMetadata_js_1 = require("../../registry/CommandMetadata.js");
11
12
  const Renderer_js_1 = require("../../../rendering/Renderer.js");
12
13
  const GoalCloseOutputBuilder_js_1 = require("./GoalCloseOutputBuilder.js");
13
14
  /**
@@ -22,7 +23,7 @@ exports.metadata = {
22
23
  description: "ID of the goal to close"
23
24
  }
24
25
  ],
25
- options: [],
26
+ options: [CommandMetadata_js_1.CONTINUE_OPTION],
26
27
  examples: [
27
28
  {
28
29
  command: "jumbo goal close --id goal_abc123",
@@ -37,18 +38,19 @@ exports.metadata = {
37
38
  */
38
39
  async function goalClose(options, container) {
39
40
  const renderer = Renderer_js_1.Renderer.getInstance();
41
+ const outputBuilder = new GoalCloseOutputBuilder_js_1.GoalCloseOutputBuilder();
40
42
  try {
41
43
  // 1. Execute via controller
42
44
  const response = await container.closeGoalController.handle({
43
45
  goalId: options.id,
44
46
  });
45
47
  // 2. Build and render output using builder pattern
46
- const outputBuilder = new GoalCloseOutputBuilder_js_1.GoalCloseOutputBuilder();
47
- const output = outputBuilder.buildSuccess(response);
48
+ const output = outputBuilder.buildSuccess(response, options.continue === true);
48
49
  renderer.info(output.toHumanReadable());
49
50
  }
50
51
  catch (error) {
51
- renderer.error("Failed to close goal", error instanceof Error ? error : String(error));
52
+ const errorOutput = outputBuilder.buildFailureError(error instanceof Error ? error : String(error));
53
+ renderer.error(errorOutput.toHumanReadable());
52
54
  process.exit(1);
53
55
  }
54
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"goal.close.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/close/goal.close.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAiCH,8BAsBC;AAnDD,gEAA0D;AAC1D,2EAAqE;AAErE;;GAEG;AACU,QAAA,QAAQ,GAAoB;IACvC,WAAW,EAAE,mEAAmE;IAChF,QAAQ,EAAE,MAAM;IAChB,eAAe,EAAE;QACf;YACE,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,yBAAyB;SACvC;KACF;IACD,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE;QACR;YACE,OAAO,EAAE,mCAAmC;YAC5C,WAAW,EAAE,iCAAiC;SAC/C;KACF;IACD,OAAO,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC;CACvC,CAAC;AAEF;;;GAGG;AACI,KAAK,UAAU,SAAS,CAC7B,OAAuB,EACvB,SAAgC;IAEhC,MAAM,QAAQ,GAAG,sBAAQ,CAAC,WAAW,EAAE,CAAC;IAExC,IAAI,CAAC;QACH,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,mBAAmB,CAAC,MAAM,CAAC;YAC1D,MAAM,EAAE,OAAO,CAAC,EAAE;SACnB,CAAC,CAAC;QAEH,mDAAmD;QACnD,MAAM,aAAa,GAAG,IAAI,kDAAsB,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAEpD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IAE1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"goal.close.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/close/goal.close.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAiCH,8BAuBC;AAtDD,0EAAqF;AAErF,gEAA0D;AAC1D,2EAAqE;AAErE;;GAEG;AACU,QAAA,QAAQ,GAAoB;IACvC,WAAW,EAAE,mEAAmE;IAChF,QAAQ,EAAE,MAAM;IAChB,eAAe,EAAE;QACf;YACE,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,yBAAyB;SACvC;KACF;IACD,OAAO,EAAE,CAAC,oCAAe,CAAC;IAC1B,QAAQ,EAAE;QACR;YACE,OAAO,EAAE,mCAAmC;YAC5C,WAAW,EAAE,iCAAiC;SAC/C;KACF;IACD,OAAO,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC;CACvC,CAAC;AAEF;;;GAGG;AACI,KAAK,UAAU,SAAS,CAC7B,OAA2C,EAC3C,SAAgC;IAEhC,MAAM,QAAQ,GAAG,sBAAQ,CAAC,WAAW,EAAE,CAAC;IAExC,MAAM,aAAa,GAAG,IAAI,kDAAsB,EAAE,CAAC;IAEnD,IAAI,CAAC;QACH,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,mBAAmB,CAAC,MAAM,CAAC;YAC1D,MAAM,EAAE,OAAO,CAAC,EAAE;SACnB,CAAC,CAAC;QAEH,mDAAmD;QACnD,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;QAC/E,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IAE1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACpG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -13,7 +13,7 @@ export declare class GoalCommitOutputBuilder {
13
13
  * Build output for successful goal commit.
14
14
  * Renders success message with next step to start the goal.
15
15
  */
16
- buildSuccess(goalId: string, status: string): TerminalOutput;
16
+ buildSuccess(goalId: string, status: string, continueFlag?: boolean): TerminalOutput;
17
17
  /**
18
18
  * Build output for goal not found error.
19
19
  * Renders error message when goal doesn't exist.
@@ -1 +1 @@
1
- {"version":3,"file":"GoalCommitOutputBuilder.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/commit/GoalCommitOutputBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE;;;;;;GAMG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,OAAO,CAAwB;;IAMvC;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc;IAW5D;;;OAGG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc;IAOtD;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,cAAc;CAQzD"}
1
+ {"version":3,"file":"GoalCommitOutputBuilder.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/commit/GoalCommitOutputBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE;;;;;;GAMG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,OAAO,CAAwB;;IAMvC;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAE,OAAe,GAAG,cAAc;IAoB3F;;;OAGG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc;IAOtD;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,cAAc;CAQzD"}
@@ -17,12 +17,18 @@ class GoalCommitOutputBuilder {
17
17
  * Build output for successful goal commit.
18
18
  * Renders success message with next step to start the goal.
19
19
  */
20
- buildSuccess(goalId, status) {
20
+ buildSuccess(goalId, status, continueFlag = false) {
21
21
  this.builder.reset();
22
22
  this.builder.addPrompt("✓ Goal committed");
23
23
  this.builder.addData({ goalId, status });
24
- this.builder.addPrompt("\n@LLM: Goal refinement is committed and ready to start.\n" +
25
- `Run: jumbo goal start --id ${goalId}`);
24
+ if (continueFlag) {
25
+ this.builder.addPrompt("\n@LLM: Goal refinement is committed and ready to start.\n" +
26
+ `Run: jumbo goal start --id ${goalId}`);
27
+ }
28
+ else {
29
+ this.builder.addPrompt("\n[Next Phase] Implementation\n" +
30
+ `The goal is now refined and can be started with: jumbo goal start --id ${goalId}`);
31
+ }
26
32
  return this.builder.build();
27
33
  }
28
34
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"GoalCommitOutputBuilder.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/commit/GoalCommitOutputBuilder.ts"],"names":[],"mappings":";;;AAAA,uFAAiF;AAGjF;;;;;;GAMG;AACH,MAAa,uBAAuB;IAGlC;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,gDAAqB,EAAE,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,MAAc,EAAE,MAAc;QACzC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,SAAS,CACpB,4DAA4D;YAC5D,8BAA8B,MAAM,EAAE,CACvC,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,sBAAsB,CAAC,MAAc;QACnC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,2BAA2B,MAAM,EAAE,EAAE,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,KAAqB;QACrC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACnB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;SACxD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;CACF;AA7CD,0DA6CC"}
1
+ {"version":3,"file":"GoalCommitOutputBuilder.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/commit/GoalCommitOutputBuilder.ts"],"names":[],"mappings":";;;AAAA,uFAAiF;AAGjF;;;;;;GAMG;AACH,MAAa,uBAAuB;IAGlC;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,gDAAqB,EAAE,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,MAAc,EAAE,MAAc,EAAE,eAAwB,KAAK;QACxE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAEzC,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,SAAS,CACpB,4DAA4D;gBAC5D,8BAA8B,MAAM,EAAE,CACvC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,SAAS,CACpB,iCAAiC;gBACjC,0EAA0E,MAAM,EAAE,CACnF,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,sBAAsB,CAAC,MAAc;QACnC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,2BAA2B,MAAM,EAAE,EAAE,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,KAAqB;QACrC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACnB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;SACxD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;CACF;AAtDD,0DAsDC"}
@@ -16,5 +16,6 @@ export declare const metadata: CommandMetadata;
16
16
  */
17
17
  export declare function goalCommit(options: {
18
18
  id: string;
19
+ continue?: boolean;
19
20
  }, container: IApplicationContainer): Promise<void>;
20
21
  //# sourceMappingURL=goal.commit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"goal.commit.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/commit/goal.commit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0DAA0D,CAAC;AAIjG;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,eAiBtB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACvB,SAAS,EAAE,qBAAqB,iBAoBjC"}
1
+ {"version":3,"file":"goal.commit.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/commit/goal.commit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAmB,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0DAA0D,CAAC;AAIjG;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,eAiBtB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,EAC3C,SAAS,EAAE,qBAAqB,iBAoBjC"}
@@ -8,6 +8,7 @@
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.metadata = void 0;
10
10
  exports.goalCommit = goalCommit;
11
+ const CommandMetadata_js_1 = require("../../registry/CommandMetadata.js");
11
12
  const Renderer_js_1 = require("../../../rendering/Renderer.js");
12
13
  const GoalCommitOutputBuilder_js_1 = require("./GoalCommitOutputBuilder.js");
13
14
  /**
@@ -22,7 +23,7 @@ exports.metadata = {
22
23
  description: "ID of the goal to commit"
23
24
  }
24
25
  ],
25
- options: [],
26
+ options: [CommandMetadata_js_1.CONTINUE_OPTION],
26
27
  examples: [
27
28
  {
28
29
  command: "jumbo goal commit --id goal_abc123",
@@ -44,7 +45,7 @@ async function goalCommit(options, container) {
44
45
  goalId: options.id,
45
46
  });
46
47
  // 2. Build and render output using builder pattern
47
- const output = outputBuilder.buildSuccess(response.goalId, response.status);
48
+ const output = outputBuilder.buildSuccess(response.goalId, response.status, options.continue === true);
48
49
  renderer.info(output.toHumanReadable());
49
50
  }
50
51
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"goal.commit.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/commit/goal.commit.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAiCH,gCAsBC;AAnDD,gEAA0D;AAC1D,6EAAuE;AAEvE;;GAEG;AACU,QAAA,QAAQ,GAAoB;IACvC,WAAW,EAAE,4CAA4C;IACzD,QAAQ,EAAE,MAAM;IAChB,eAAe,EAAE;QACf;YACE,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,0BAA0B;SACxC;KACF;IACD,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE;QACR;YACE,OAAO,EAAE,oCAAoC;YAC7C,WAAW,EAAE,8CAA8C;SAC5D;KACF;IACD,OAAO,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,cAAc,CAAC;CACvD,CAAC;AAEF;;;GAGG;AACI,KAAK,UAAU,UAAU,CAC9B,OAAuB,EACvB,SAAgC;IAEhC,MAAM,QAAQ,GAAG,sBAAQ,CAAC,WAAW,EAAE,CAAC;IACxC,MAAM,aAAa,GAAG,IAAI,oDAAuB,EAAE,CAAC;IAEpD,IAAI,CAAC;QACH,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,MAAM,CAAC;YAC3D,MAAM,EAAE,OAAO,CAAC,EAAE;SACnB,CAAC,CAAC;QAEH,mDAAmD;QACnD,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5E,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IAE1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACpG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"goal.commit.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/commit/goal.commit.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAiCH,gCAsBC;AArDD,0EAAqF;AAErF,gEAA0D;AAC1D,6EAAuE;AAEvE;;GAEG;AACU,QAAA,QAAQ,GAAoB;IACvC,WAAW,EAAE,4CAA4C;IACzD,QAAQ,EAAE,MAAM;IAChB,eAAe,EAAE;QACf;YACE,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,0BAA0B;SACxC;KACF;IACD,OAAO,EAAE,CAAC,oCAAe,CAAC;IAC1B,QAAQ,EAAE;QACR;YACE,OAAO,EAAE,oCAAoC;YAC7C,WAAW,EAAE,8CAA8C;SAC5D;KACF;IACD,OAAO,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,cAAc,CAAC;CACvD,CAAC;AAEF;;;GAGG;AACI,KAAK,UAAU,UAAU,CAC9B,OAA2C,EAC3C,SAAgC;IAEhC,MAAM,QAAQ,GAAG,sBAAQ,CAAC,WAAW,EAAE,CAAC;IACxC,MAAM,aAAa,GAAG,IAAI,oDAAuB,EAAE,CAAC;IAEpD,IAAI,CAAC;QACH,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,MAAM,CAAC;YAC3D,MAAM,EAAE,OAAO,CAAC,EAAE;SACnB,CAAC,CAAC;QAEH,mDAAmD;QACnD,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;QACvG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IAE1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACpG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -14,7 +14,7 @@ export declare class GoalRejectOutputBuilder {
14
14
  * Build output for successful goal rejection.
15
15
  * Renders rejection result with review issues and next steps for the implementing agent.
16
16
  */
17
- buildSuccess(response: RejectGoalResponse): TerminalOutput;
17
+ buildSuccess(response: RejectGoalResponse, continueFlag?: boolean): TerminalOutput;
18
18
  /**
19
19
  * Build output for goal rejection failure.
20
20
  * Renders error message when goal rejection fails.
@@ -1 +1 @@
1
- {"version":3,"file":"GoalRejectOutputBuilder.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/reject/GoalRejectOutputBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uEAAuE,CAAC;AAE3G;;;;;;GAMG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,OAAO,CAAwB;;IAMvC;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,kBAAkB,GAAG,cAAc;IA+B1D;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,cAAc;CAQzD"}
1
+ {"version":3,"file":"GoalRejectOutputBuilder.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/reject/GoalRejectOutputBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uEAAuE,CAAC;AAE3G;;;;;;GAMG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,OAAO,CAAwB;;IAMvC;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,kBAAkB,EAAE,YAAY,GAAE,OAAe,GAAG,cAAc;IAuCzF;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,cAAc;CAQzD"}
@@ -17,7 +17,7 @@ class GoalRejectOutputBuilder {
17
17
  * Build output for successful goal rejection.
18
18
  * Renders rejection result with review issues and next steps for the implementing agent.
19
19
  */
20
- buildSuccess(response) {
20
+ buildSuccess(response, continueFlag = false) {
21
21
  this.builder.reset();
22
22
  this.builder.addPrompt("# Goal Rejected\n" +
23
23
  `Goal ID: ${response.goalId}\n` +
@@ -28,9 +28,17 @@ class GoalRejectOutputBuilder {
28
28
  "The goal has been returned for rework. The following issues were found:\n\n" +
29
29
  `${response.reviewIssues}\n` +
30
30
  "---");
31
- let nextSteps = "## Next Steps\n" +
32
- "The implementing agent should address the review issues and restart the goal:\n" +
33
- ` Run: jumbo goal start --id ${response.goalId}`;
31
+ let nextSteps;
32
+ if (continueFlag) {
33
+ nextSteps = "## Next Steps\n" +
34
+ "The implementing agent should address the review issues and restart the goal:\n" +
35
+ ` Run: jumbo goal start --id ${response.goalId}`;
36
+ }
37
+ else {
38
+ nextSteps = "## [Next Phase] Rework\n" +
39
+ "The implementing agent should address the review issues.\n" +
40
+ `To restart the goal: jumbo goal start --id ${response.goalId}`;
41
+ }
34
42
  if (response.nextGoalId) {
35
43
  nextSteps += "\n\nThe next goal in the queue is:\n" +
36
44
  ` Goal ID: ${response.nextGoalId}`;
@@ -1 +1 @@
1
- {"version":3,"file":"GoalRejectOutputBuilder.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/reject/GoalRejectOutputBuilder.ts"],"names":[],"mappings":";;;AAAA,uFAAiF;AAIjF;;;;;;GAMG;AACH,MAAa,uBAAuB;IAGlC;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,gDAAqB,EAAE,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,QAA4B;QACvC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAErB,IAAI,CAAC,OAAO,CAAC,SAAS,CACpB,mBAAmB;YACnB,YAAY,QAAQ,CAAC,MAAM,IAAI;YAC/B,cAAc,QAAQ,CAAC,SAAS,IAAI;YACpC,WAAW,QAAQ,CAAC,MAAM,IAAI;YAC9B,SAAS;YACT,uBAAuB;YACvB,6EAA6E;YAC7E,GAAG,QAAQ,CAAC,YAAY,IAAI;YAC5B,KAAK,CACN,CAAC;QAEF,IAAI,SAAS,GAAG,iBAAiB;YACjB,iFAAiF;YACjF,gCAAgC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAElE,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxB,SAAS,IAAI,sCAAsC;gBACtC,cAAc,QAAQ,CAAC,UAAU,EAAE,CAAC;QACnD,CAAC;QAED,SAAS,IAAI,SAAS,CAAC;QAEvB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAElC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,KAAqB;QACrC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACnB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;SACxD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;CACF;AAtDD,0DAsDC"}
1
+ {"version":3,"file":"GoalRejectOutputBuilder.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/reject/GoalRejectOutputBuilder.ts"],"names":[],"mappings":";;;AAAA,uFAAiF;AAIjF;;;;;;GAMG;AACH,MAAa,uBAAuB;IAGlC;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,gDAAqB,EAAE,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,QAA4B,EAAE,eAAwB,KAAK;QACtE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAErB,IAAI,CAAC,OAAO,CAAC,SAAS,CACpB,mBAAmB;YACnB,YAAY,QAAQ,CAAC,MAAM,IAAI;YAC/B,cAAc,QAAQ,CAAC,SAAS,IAAI;YACpC,WAAW,QAAQ,CAAC,MAAM,IAAI;YAC9B,SAAS;YACT,uBAAuB;YACvB,6EAA6E;YAC7E,GAAG,QAAQ,CAAC,YAAY,IAAI;YAC5B,KAAK,CACN,CAAC;QAEF,IAAI,SAAiB,CAAC;QAEtB,IAAI,YAAY,EAAE,CAAC;YACjB,SAAS,GAAG,iBAAiB;gBACjB,iFAAiF;gBACjF,gCAAgC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,0BAA0B;gBAC1B,4DAA4D;gBAC5D,8CAA8C,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC9E,CAAC;QAED,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxB,SAAS,IAAI,sCAAsC;gBACtC,cAAc,QAAQ,CAAC,UAAU,EAAE,CAAC;QACnD,CAAC;QAED,SAAS,IAAI,SAAS,CAAC;QAEvB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAElC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,KAAqB;QACrC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACnB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;SACxD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;CACF;AA9DD,0DA8DC"}
@@ -18,5 +18,6 @@ export declare const metadata: CommandMetadata;
18
18
  export declare function goalReject(options: {
19
19
  id: string;
20
20
  reviewIssues: string;
21
+ continue?: boolean;
21
22
  }, container: IApplicationContainer): Promise<void>;
22
23
  //# sourceMappingURL=goal.reject.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"goal.reject.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/reject/goal.reject.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0DAA0D,CAAC;AAIjG;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,eAqBtB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAC7C,SAAS,EAAE,qBAAqB,iBAqBjC"}
1
+ {"version":3,"file":"goal.reject.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/reject/goal.reject.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,eAAe,EAAmB,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0DAA0D,CAAC;AAIjG;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,eAqBtB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,EACjE,SAAS,EAAE,qBAAqB,iBAqBjC"}
@@ -9,6 +9,7 @@
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.metadata = void 0;
11
11
  exports.goalReject = goalReject;
12
+ const CommandMetadata_js_1 = require("../../registry/CommandMetadata.js");
12
13
  const Renderer_js_1 = require("../../../rendering/Renderer.js");
13
14
  const GoalRejectOutputBuilder_js_1 = require("./GoalRejectOutputBuilder.js");
14
15
  /**
@@ -27,7 +28,7 @@ exports.metadata = {
27
28
  description: "Description of implementation problems that need fixing"
28
29
  }
29
30
  ],
30
- options: [],
31
+ options: [CommandMetadata_js_1.CONTINUE_OPTION],
31
32
  examples: [
32
33
  {
33
34
  command: 'jumbo goal reject --id goal_abc123 --review-issues "Missing error handling in API endpoint"',
@@ -50,7 +51,7 @@ async function goalReject(options, container) {
50
51
  reviewIssues: options.reviewIssues,
51
52
  });
52
53
  // 2. Build and render output using builder pattern
53
- const output = outputBuilder.buildSuccess(response);
54
+ const output = outputBuilder.buildSuccess(response, options.continue === true);
54
55
  renderer.info(output.toHumanReadable());
55
56
  }
56
57
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"goal.reject.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/reject/goal.reject.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAqCH,gCAuBC;AAxDD,gEAA0D;AAC1D,6EAAuE;AAEvE;;GAEG;AACU,QAAA,QAAQ,GAAoB;IACvC,WAAW,EAAE,sCAAsC;IACnD,QAAQ,EAAE,MAAM;IAChB,eAAe,EAAE;QACf;YACE,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,0BAA0B;SACxC;QACD;YACE,KAAK,EAAE,8BAA8B;YACrC,WAAW,EAAE,yDAAyD;SACvE;KACF;IACD,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE;QACR;YACE,OAAO,EAAE,6FAA6F;YACtG,WAAW,EAAE,kCAAkC;SAChD;KACF;IACD,OAAO,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,YAAY,CAAC;CACvD,CAAC;AAEF;;;GAGG;AACI,KAAK,UAAU,UAAU,CAC9B,OAA6C,EAC7C,SAAgC;IAEhC,MAAM,QAAQ,GAAG,sBAAQ,CAAC,WAAW,EAAE,CAAC;IACxC,MAAM,aAAa,GAAG,IAAI,oDAAuB,EAAE,CAAC;IAEpD,IAAI,CAAC;QACH,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,MAAM,CAAC;YAC3D,MAAM,EAAE,OAAO,CAAC,EAAE;YAClB,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,CAAC,CAAC;QAEH,mDAAmD;QACnD,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACpD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IAE1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACpG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"goal.reject.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/reject/goal.reject.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAqCH,gCAuBC;AA1DD,0EAAqF;AAErF,gEAA0D;AAC1D,6EAAuE;AAEvE;;GAEG;AACU,QAAA,QAAQ,GAAoB;IACvC,WAAW,EAAE,sCAAsC;IACnD,QAAQ,EAAE,MAAM;IAChB,eAAe,EAAE;QACf;YACE,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,0BAA0B;SACxC;QACD;YACE,KAAK,EAAE,8BAA8B;YACrC,WAAW,EAAE,yDAAyD;SACvE;KACF;IACD,OAAO,EAAE,CAAC,oCAAe,CAAC;IAC1B,QAAQ,EAAE;QACR;YACE,OAAO,EAAE,6FAA6F;YACtG,WAAW,EAAE,kCAAkC;SAChD;KACF;IACD,OAAO,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,YAAY,CAAC;CACvD,CAAC;AAEF;;;GAGG;AACI,KAAK,UAAU,UAAU,CAC9B,OAAiE,EACjE,SAAgC;IAEhC,MAAM,QAAQ,GAAG,sBAAQ,CAAC,WAAW,EAAE,CAAC;IACxC,MAAM,aAAa,GAAG,IAAI,oDAAuB,EAAE,CAAC;IAEpD,IAAI,CAAC;QACH,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,MAAM,CAAC;YAC3D,MAAM,EAAE,OAAO,CAAC,EAAE;YAClB,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,CAAC,CAAC;QAEH,mDAAmD;QACnD,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;QAC/E,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IAE1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACpG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -4,16 +4,29 @@ import { ContextualGoalView } from '../../../../../application/context/goals/get
4
4
  * Specialized builder for goal.show command output.
5
5
  * Encapsulates all output rendering for the show goal command.
6
6
  *
7
+ * Visual language follows the Jumbo design system (mockups/design-system.svg):
8
+ * - BrandColors.jumboBlue accent bar (|) as structural element at x=24
9
+ * - Section headings at x=38, content at x=42, indented at x=54
10
+ * - Only two dividers: after metadata block, before architecture band
11
+ * - BrandColors.accentCyan for entity names in Band 2
12
+ * - Static footer with ➤ arrow
13
+ *
7
14
  * Pattern: Output builders contain ALL prompt and output content.
8
15
  * Command files must not duplicate or add additional output after calling the builder.
9
16
  */
10
17
  export declare class GoalShowOutputBuilder {
11
18
  private builder;
12
19
  constructor();
13
- /**
14
- * Format status with visual indicator
15
- */
20
+ private bar;
21
+ private divider;
22
+ private heading;
23
+ private metaField;
24
+ private contentLine;
25
+ private indentLine;
16
26
  private formatStatus;
27
+ private wrapContent;
28
+ private wrapContentWithPrefix;
29
+ private wrapBulletContinuation;
17
30
  /**
18
31
  * Build output for TTY (human-readable formatted text).
19
32
  * Renders complete goal details with all fields.
@@ -1 +1 @@
1
- {"version":3,"file":"GoalShowOutputBuilder.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/show/GoalShowOutputBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oEAAoE,CAAC;AAGxG;;;;;;GAMG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,OAAO,CAAwB;;IAMvC;;OAEG;IACH,OAAO,CAAC,YAAY;IA2BpB;;;OAGG;IACH,KAAK,CAAC,cAAc,EAAE,kBAAkB,GAAG,cAAc;IA4JzD;;;OAGG;IACH,qBAAqB,CAAC,cAAc,EAAE,kBAAkB,GAAG,cAAc;IAqCzE;;;OAGG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc;IAOtD;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,cAAc;CAQzD"}
1
+ {"version":3,"file":"GoalShowOutputBuilder.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/goals/show/GoalShowOutputBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oEAAoE,CAAC;AAmCxG;;;;;;;;;;;;;GAaG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,OAAO,CAAwB;;IAMvC,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,qBAAqB;IAmC7B,OAAO,CAAC,sBAAsB;IAc9B;;;OAGG;IACH,KAAK,CAAC,cAAc,EAAE,kBAAkB,GAAG,cAAc;IAkNzD;;;OAGG;IACH,qBAAqB,CAAC,cAAc,EAAE,kBAAkB,GAAG,cAAc;IAqCzE;;;OAGG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc;IAOtD;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,cAAc;CAQzD"}