@idea1/cli 1.5.2 → 1.7.0

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 (126) hide show
  1. package/README.md +123 -92
  2. package/dist/commands/approve-pr.d.ts.map +1 -1
  3. package/dist/commands/approve-pr.js +7 -163
  4. package/dist/commands/approve-pr.js.map +1 -1
  5. package/dist/commands/attach-project-item.d.ts.map +1 -1
  6. package/dist/commands/attach-project-item.js +38 -89
  7. package/dist/commands/attach-project-item.js.map +1 -1
  8. package/dist/commands/close-worktree.d.ts.map +1 -1
  9. package/dist/commands/close-worktree.js +12 -9
  10. package/dist/commands/close-worktree.js.map +1 -1
  11. package/dist/commands/create-worktree.d.ts.map +1 -1
  12. package/dist/commands/create-worktree.js +3 -2
  13. package/dist/commands/create-worktree.js.map +1 -1
  14. package/dist/commands/help.d.ts.map +1 -1
  15. package/dist/commands/help.js +19 -14
  16. package/dist/commands/help.js.map +1 -1
  17. package/dist/commands/index.d.ts +3 -2
  18. package/dist/commands/index.d.ts.map +1 -1
  19. package/dist/commands/index.js +5 -3
  20. package/dist/commands/index.js.map +1 -1
  21. package/dist/commands/join-project-item.d.ts.map +1 -1
  22. package/dist/commands/join-project-item.js +38 -77
  23. package/dist/commands/join-project-item.js.map +1 -1
  24. package/dist/commands/next-workflow-step.d.ts.map +1 -1
  25. package/dist/commands/next-workflow-step.js +66 -51
  26. package/dist/commands/next-workflow-step.js.map +1 -1
  27. package/dist/commands/push.d.ts.map +1 -1
  28. package/dist/commands/push.js +5 -3
  29. package/dist/commands/push.js.map +1 -1
  30. package/dist/commands/ready-for-approval.d.ts.map +1 -1
  31. package/dist/commands/ready-for-approval.js +7 -66
  32. package/dist/commands/ready-for-approval.js.map +1 -1
  33. package/dist/commands/release.d.ts.map +1 -1
  34. package/dist/commands/release.js +5 -4
  35. package/dist/commands/release.js.map +1 -1
  36. package/dist/commands/start-agent-implementation.d.ts +3 -0
  37. package/dist/commands/start-agent-implementation.d.ts.map +1 -0
  38. package/dist/commands/start-agent-implementation.js +41 -0
  39. package/dist/commands/start-agent-implementation.js.map +1 -0
  40. package/dist/commands/start-dev-implementation.d.ts.map +1 -1
  41. package/dist/commands/start-dev-implementation.js +8 -55
  42. package/dist/commands/start-dev-implementation.js.map +1 -1
  43. package/dist/commands/start.d.ts +13 -0
  44. package/dist/commands/start.d.ts.map +1 -0
  45. package/dist/commands/start.js +81 -0
  46. package/dist/commands/start.js.map +1 -0
  47. package/dist/interactive.d.ts.map +1 -1
  48. package/dist/interactive.js +29 -9
  49. package/dist/interactive.js.map +1 -1
  50. package/dist/lib/claude-options.d.ts +33 -0
  51. package/dist/lib/claude-options.d.ts.map +1 -0
  52. package/dist/lib/claude-options.js +83 -0
  53. package/dist/lib/claude-options.js.map +1 -0
  54. package/dist/lib/settings.d.ts +18 -0
  55. package/dist/lib/settings.d.ts.map +1 -1
  56. package/dist/lib/settings.js +23 -5
  57. package/dist/lib/settings.js.map +1 -1
  58. package/dist/lib/workflow-states.d.ts +21 -3
  59. package/dist/lib/workflow-states.d.ts.map +1 -1
  60. package/dist/lib/workflow-states.generated.d.ts +21 -0
  61. package/dist/lib/workflow-states.generated.d.ts.map +1 -0
  62. package/dist/lib/workflow-states.generated.js +34 -0
  63. package/dist/lib/workflow-states.generated.js.map +1 -0
  64. package/dist/lib/workflow-states.js +47 -26
  65. package/dist/lib/workflow-states.js.map +1 -1
  66. package/dist/services/branch-setup.d.ts +42 -0
  67. package/dist/services/branch-setup.d.ts.map +1 -0
  68. package/dist/services/branch-setup.js +118 -0
  69. package/dist/services/branch-setup.js.map +1 -0
  70. package/dist/services/claude.d.ts +14 -4
  71. package/dist/services/claude.d.ts.map +1 -1
  72. package/dist/services/claude.js +39 -4
  73. package/dist/services/claude.js.map +1 -1
  74. package/dist/services/config.d.ts +3 -3
  75. package/dist/services/config.d.ts.map +1 -1
  76. package/dist/services/config.js +6 -4
  77. package/dist/services/config.js.map +1 -1
  78. package/dist/services/git.d.ts +66 -0
  79. package/dist/services/git.d.ts.map +1 -1
  80. package/dist/services/git.js +188 -8
  81. package/dist/services/git.js.map +1 -1
  82. package/dist/services/setup.d.ts +3 -1
  83. package/dist/services/setup.d.ts.map +1 -1
  84. package/dist/services/setup.js +19 -7
  85. package/dist/services/setup.js.map +1 -1
  86. package/dist/services/workflow-engine.d.ts +67 -0
  87. package/dist/services/workflow-engine.d.ts.map +1 -0
  88. package/dist/services/workflow-engine.js +371 -0
  89. package/dist/services/workflow-engine.js.map +1 -0
  90. package/dist/services/workflow-handlers/agent-implementation.d.ts +9 -0
  91. package/dist/services/workflow-handlers/agent-implementation.d.ts.map +1 -0
  92. package/dist/services/workflow-handlers/agent-implementation.js +37 -0
  93. package/dist/services/workflow-handlers/agent-implementation.js.map +1 -0
  94. package/dist/services/workflow-handlers/approve-pr.d.ts +8 -0
  95. package/dist/services/workflow-handlers/approve-pr.d.ts.map +1 -0
  96. package/dist/services/workflow-handlers/approve-pr.js +161 -0
  97. package/dist/services/workflow-handlers/approve-pr.js.map +1 -0
  98. package/dist/services/workflow-handlers/dev-implementation.d.ts +8 -0
  99. package/dist/services/workflow-handlers/dev-implementation.d.ts.map +1 -0
  100. package/dist/services/workflow-handlers/dev-implementation.js +34 -0
  101. package/dist/services/workflow-handlers/dev-implementation.js.map +1 -0
  102. package/dist/services/workflow-handlers/index.d.ts +18 -0
  103. package/dist/services/workflow-handlers/index.d.ts.map +1 -0
  104. package/dist/services/workflow-handlers/index.js +36 -0
  105. package/dist/services/workflow-handlers/index.js.map +1 -0
  106. package/dist/services/workflow-handlers/ready-for-approval.d.ts +8 -0
  107. package/dist/services/workflow-handlers/ready-for-approval.d.ts.map +1 -0
  108. package/dist/services/workflow-handlers/ready-for-approval.js +60 -0
  109. package/dist/services/workflow-handlers/ready-for-approval.js.map +1 -0
  110. package/dist/services/workflow.d.ts +1 -21
  111. package/dist/services/workflow.d.ts.map +1 -1
  112. package/dist/services/workflow.js +1 -67
  113. package/dist/services/workflow.js.map +1 -1
  114. package/dist/services/worktree.d.ts +23 -33
  115. package/dist/services/worktree.d.ts.map +1 -1
  116. package/dist/services/worktree.js +61 -140
  117. package/dist/services/worktree.js.map +1 -1
  118. package/dist/types/index.d.ts +41 -4
  119. package/dist/types/index.d.ts.map +1 -1
  120. package/dist/version.d.ts +1 -1
  121. package/dist/version.js +1 -1
  122. package/package.json +2 -2
  123. package/dist/commands/start-project-item.d.ts +0 -27
  124. package/dist/commands/start-project-item.d.ts.map +0 -1
  125. package/dist/commands/start-project-item.js +0 -325
  126. package/dist/commands/start-project-item.js.map +0 -1
@@ -1,27 +1,45 @@
1
1
  import { readFile } from 'fs/promises';
2
2
  import { existsSync } from 'fs';
3
3
  import { join } from 'path';
4
- import { normalizeWorkflowState } from './workflow-states.js';
4
+ import { WorkflowStates, normalizeWorkflowState } from './workflow-states.js';
5
5
  /**
6
6
  * Settings files read from `.idea1/`, in increasing order of precedence.
7
7
  * `settings.local.json` holds developer-specific overrides and is not committed.
8
8
  */
9
9
  export const SETTINGS_FILES = ['settings.json', 'settings.local.json'];
10
+ /**
11
+ * The branch names used when neither the repository's settings nor the user's
12
+ * own configuration name one. This repository's own convention: `working/agent/*`
13
+ * branches onto `working/release`, released by merging into `main`.
14
+ *
15
+ * A repository states its own convention in `.idea1/settings.json` — DataFabrIQ
16
+ * customer repos are seeded with one naming `draft` as the branch work lands on.
17
+ */
18
+ export const DEFAULT_BRANCH_SETTINGS = {
19
+ branchPrefix: 'working/agent',
20
+ baseBranch: 'working/release',
21
+ releaseBranch: 'working/release',
22
+ releaseTargetBranch: 'main',
23
+ integrationBranchPrefix: 'working/integration',
24
+ integrationBranchTemplate: '{prefix}/{name}-main',
25
+ integrationWorkBranchTemplate: '{prefix}/{name}/agent/{branchName}',
26
+ testCommand: 'npm run test'
27
+ };
10
28
  /**
11
29
  * Workflow states a worktree can be removed at, in the order they are reached.
12
30
  * Removal happens on the first transition that reaches the configured state,
13
31
  * so 'Agent Implementation' (where the worktree is created) is not a choice.
14
32
  */
15
33
  export const REMOVE_WORKTREE_STATES = [
16
- 'Dev Implementation',
17
- 'Needs Approval for Release',
18
- 'Approved and Merged'
34
+ WorkflowStates.DevImplementation,
35
+ WorkflowStates.NeedsApprovalForRelease,
36
+ WorkflowStates.ApprovedAndMerged
19
37
  ];
20
38
  /**
21
39
  * Worktree removal point used when `defaults.removeWorktreeAtState` is not set:
22
40
  * the worktree is removed by the `ready-for-approval` transition.
23
41
  */
24
- export const DEFAULT_REMOVE_WORKTREE_AT_STATE = 'Needs Approval for Release';
42
+ export const DEFAULT_REMOVE_WORKTREE_AT_STATE = WorkflowStates.NeedsApprovalForRelease;
25
43
  /**
26
44
  * Read a single settings file, returning null when it is absent or unreadable
27
45
  */
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/lib/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/lib/settings.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,30 @@
1
- import type { WorkflowState } from '../types/index.js';
1
+ import { type WorkflowState } from './workflow-states.generated.js';
2
+ export { WORKFLOW_STATES, WorkflowStates, LEGACY_WORKFLOW_STATE_ALIASES } from './workflow-states.generated.js';
3
+ export type { WorkflowState } from './workflow-states.generated.js';
2
4
  /**
3
5
  * Workflow states in the order they are reached
4
6
  */
5
7
  export declare const WORKFLOW_STATE_ORDER: readonly WorkflowState[];
6
8
  /**
7
9
  * Normalize a stored workflow state value to a current WorkflowState.
8
- * Maps legacy state names (case-insensitively) to their current equivalents,
9
- * passes current names through, and returns null for unrecognized values.
10
+ * Accepts current names (case-insensitively, since older metadata files carry
11
+ * variants like "Dev implementation"), maps legacy state names to their current
12
+ * equivalents, and returns null for unrecognized values.
10
13
  */
11
14
  export declare function normalizeWorkflowState(raw: string | null | undefined): WorkflowState | null;
15
+ /**
16
+ * The state that follows the given one in the workflow sequence. A null current
17
+ * state (an item that has never been started) advances to the first state; the
18
+ * last state has no successor.
19
+ */
20
+ export declare function getNextWorkflowState(state: WorkflowState | null): WorkflowState | null;
21
+ /**
22
+ * The states strictly after `from` up to and including `to`, in workflow order.
23
+ * Throws when `to` is not later than `from`.
24
+ */
25
+ export declare function getWorkflowStatesBetween(from: WorkflowState | null, to: WorkflowState): WorkflowState[];
26
+ /**
27
+ * Whether a workflow state is the target state or a later one in the sequence
28
+ */
29
+ export declare function isStateAtOrAfter(state: WorkflowState, targetState: WorkflowState): boolean;
12
30
  //# sourceMappingURL=workflow-states.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-states.d.ts","sourceRoot":"","sources":["../../src/lib/workflow-states.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,aAAa,EAUxD,CAAC;AAaF;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,aAAa,GAAG,IAAI,CAU3F"}
1
+ {"version":3,"file":"workflow-states.d.ts","sourceRoot":"","sources":["../../src/lib/workflow-states.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAChH,YAAY,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,aAAa,EAAoB,CAAC;AAE9E;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,aAAa,GAAG,IAAI,CAiB3F;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,GAAG,aAAa,GAAG,IAAI,CAStF;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,EAAE,EAAE,EAAE,aAAa,GAAG,aAAa,EAAE,CASvG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,GAAG,OAAO,CAE1F"}
@@ -0,0 +1,21 @@
1
+ /** Every workflow state, in workflow order. */
2
+ export declare const WORKFLOW_STATES: readonly ["Build Spec in Progress", "Refinement - Build Spec", "Refinement - Implementation", "Ready for Agent Implementation", "Agent Implementation", "Dev Implementation", "Needs Approval for Release", "Approved and Merged", "Released"];
3
+ export type WorkflowState = (typeof WORKFLOW_STATES)[number];
4
+ /** The workflow states as named constants. */
5
+ export declare const WorkflowStates: {
6
+ readonly BuildSpecInProgress: "Build Spec in Progress";
7
+ readonly RefinementBuildSpec: "Refinement - Build Spec";
8
+ readonly RefinementImplementation: "Refinement - Implementation";
9
+ readonly ReadyForAgentImplementation: "Ready for Agent Implementation";
10
+ readonly AgentImplementation: "Agent Implementation";
11
+ readonly DevImplementation: "Dev Implementation";
12
+ readonly NeedsApprovalForRelease: "Needs Approval for Release";
13
+ readonly ApprovedAndMerged: "Approved and Merged";
14
+ readonly Released: "Released";
15
+ };
16
+ /**
17
+ * Retired state names still found on older project items and branch metadata, mapped to their
18
+ * current equivalents. Keys are lowercase; compare case-insensitively.
19
+ */
20
+ export declare const LEGACY_WORKFLOW_STATE_ALIASES: Readonly<Record<string, WorkflowState>>;
21
+ //# sourceMappingURL=workflow-states.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-states.generated.d.ts","sourceRoot":"","sources":["../../src/lib/workflow-states.generated.ts"],"names":[],"mappings":"AAEA,+CAA+C;AAC/C,eAAO,MAAM,eAAe,gPAUlB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,8CAA8C;AAC9C,eAAO,MAAM,cAAc;;;;;;;;;;CAUjB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAGjF,CAAC"}
@@ -0,0 +1,34 @@
1
+ // AUTO-GENERATED — Do not edit. Modify shared-config/workflow-states.json instead.
2
+ /** Every workflow state, in workflow order. */
3
+ export const WORKFLOW_STATES = [
4
+ 'Build Spec in Progress',
5
+ 'Refinement - Build Spec',
6
+ 'Refinement - Implementation',
7
+ 'Ready for Agent Implementation',
8
+ 'Agent Implementation',
9
+ 'Dev Implementation',
10
+ 'Needs Approval for Release',
11
+ 'Approved and Merged',
12
+ 'Released',
13
+ ];
14
+ /** The workflow states as named constants. */
15
+ export const WorkflowStates = {
16
+ BuildSpecInProgress: 'Build Spec in Progress',
17
+ RefinementBuildSpec: 'Refinement - Build Spec',
18
+ RefinementImplementation: 'Refinement - Implementation',
19
+ ReadyForAgentImplementation: 'Ready for Agent Implementation',
20
+ AgentImplementation: 'Agent Implementation',
21
+ DevImplementation: 'Dev Implementation',
22
+ NeedsApprovalForRelease: 'Needs Approval for Release',
23
+ ApprovedAndMerged: 'Approved and Merged',
24
+ Released: 'Released',
25
+ };
26
+ /**
27
+ * Retired state names still found on older project items and branch metadata, mapped to their
28
+ * current equivalents. Keys are lowercase; compare case-insensitively.
29
+ */
30
+ export const LEGACY_WORKFLOW_STATE_ALIASES = {
31
+ 'pr needs approval': 'Needs Approval for Release',
32
+ 'complete': 'Approved and Merged',
33
+ };
34
+ //# sourceMappingURL=workflow-states.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-states.generated.js","sourceRoot":"","sources":["../../src/lib/workflow-states.generated.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,+CAA+C;AAC/C,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,wBAAwB;IACxB,yBAAyB;IACzB,6BAA6B;IAC7B,gCAAgC;IAChC,sBAAsB;IACtB,oBAAoB;IACpB,4BAA4B;IAC5B,qBAAqB;IACrB,UAAU;CACF,CAAC;AAIX,8CAA8C;AAC9C,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,mBAAmB,EAAE,wBAAwB;IAC7C,mBAAmB,EAAE,yBAAyB;IAC9C,wBAAwB,EAAE,6BAA6B;IACvD,2BAA2B,EAAE,gCAAgC;IAC7D,mBAAmB,EAAE,sBAAsB;IAC3C,iBAAiB,EAAE,oBAAoB;IACvC,uBAAuB,EAAE,4BAA4B;IACrD,iBAAiB,EAAE,qBAAqB;IACxC,QAAQ,EAAE,UAAU;CACZ,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAA4C;IACpF,mBAAmB,EAAE,4BAA4B;IACjD,UAAU,EAAE,qBAAqB;CAClC,CAAC"}
@@ -1,39 +1,60 @@
1
+ import { WORKFLOW_STATES, LEGACY_WORKFLOW_STATE_ALIASES } from './workflow-states.generated.js';
2
+ export { WORKFLOW_STATES, WorkflowStates, LEGACY_WORKFLOW_STATE_ALIASES } from './workflow-states.generated.js';
1
3
  /**
2
4
  * Workflow states in the order they are reached
3
5
  */
4
- export const WORKFLOW_STATE_ORDER = [
5
- 'Build Spec in Progress',
6
- 'Refinement - Build Spec',
7
- 'Refinement - Implementation',
8
- 'Ready for Agent Implementation',
9
- 'Agent Implementation',
10
- 'Dev Implementation',
11
- 'Needs Approval for Release',
12
- 'Approved and Merged',
13
- 'Released'
14
- ];
15
- /**
16
- * Legacy workflow state names mapped to their current equivalents.
17
- * Keys are lowercase for case-insensitive lookup.
18
- */
19
- const LEGACY_STATE_MAP = {
20
- 'agent implementation': 'Agent Implementation',
21
- 'dev implementation': 'Dev Implementation',
22
- 'pr needs approval': 'Needs Approval for Release',
23
- 'complete': 'Approved and Merged'
24
- };
6
+ export const WORKFLOW_STATE_ORDER = WORKFLOW_STATES;
25
7
  /**
26
8
  * Normalize a stored workflow state value to a current WorkflowState.
27
- * Maps legacy state names (case-insensitively) to their current equivalents,
28
- * passes current names through, and returns null for unrecognized values.
9
+ * Accepts current names (case-insensitively, since older metadata files carry
10
+ * variants like "Dev implementation"), maps legacy state names to their current
11
+ * equivalents, and returns null for unrecognized values.
29
12
  */
30
13
  export function normalizeWorkflowState(raw) {
31
14
  if (!raw) {
32
15
  return null;
33
16
  }
34
- if (WORKFLOW_STATE_ORDER.includes(raw)) {
35
- return raw;
17
+ const trimmed = raw.trim();
18
+ if (WORKFLOW_STATE_ORDER.includes(trimmed)) {
19
+ return trimmed;
20
+ }
21
+ const lower = trimmed.toLowerCase();
22
+ const caseInsensitiveMatch = WORKFLOW_STATE_ORDER.find(state => state.toLowerCase() === lower);
23
+ if (caseInsensitiveMatch) {
24
+ return caseInsensitiveMatch;
25
+ }
26
+ return LEGACY_WORKFLOW_STATE_ALIASES[lower] ?? null;
27
+ }
28
+ /**
29
+ * The state that follows the given one in the workflow sequence. A null current
30
+ * state (an item that has never been started) advances to the first state; the
31
+ * last state has no successor.
32
+ */
33
+ export function getNextWorkflowState(state) {
34
+ if (state === null) {
35
+ return WORKFLOW_STATE_ORDER[0];
36
+ }
37
+ const index = WORKFLOW_STATE_ORDER.indexOf(state);
38
+ return index >= 0 && index < WORKFLOW_STATE_ORDER.length - 1
39
+ ? WORKFLOW_STATE_ORDER[index + 1]
40
+ : null;
41
+ }
42
+ /**
43
+ * The states strictly after `from` up to and including `to`, in workflow order.
44
+ * Throws when `to` is not later than `from`.
45
+ */
46
+ export function getWorkflowStatesBetween(from, to) {
47
+ const fromIndex = from === null ? -1 : WORKFLOW_STATE_ORDER.indexOf(from);
48
+ const toIndex = WORKFLOW_STATE_ORDER.indexOf(to);
49
+ if (toIndex <= fromIndex) {
50
+ throw new Error(`Cannot move the workflow from "${from ?? '(none)'}" to "${to}": it is not a later state.`);
36
51
  }
37
- return LEGACY_STATE_MAP[raw.toLowerCase()] ?? null;
52
+ return WORKFLOW_STATE_ORDER.slice(fromIndex + 1, toIndex + 1);
53
+ }
54
+ /**
55
+ * Whether a workflow state is the target state or a later one in the sequence
56
+ */
57
+ export function isStateAtOrAfter(state, targetState) {
58
+ return WORKFLOW_STATE_ORDER.indexOf(state) >= WORKFLOW_STATE_ORDER.indexOf(targetState);
38
59
  }
39
60
  //# sourceMappingURL=workflow-states.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-states.js","sourceRoot":"","sources":["../../src/lib/workflow-states.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA6B;IAC5D,wBAAwB;IACxB,yBAAyB;IACzB,6BAA6B;IAC7B,gCAAgC;IAChC,sBAAsB;IACtB,oBAAoB;IACpB,4BAA4B;IAC5B,qBAAqB;IACrB,UAAU;CACX,CAAC;AAEF;;;GAGG;AACH,MAAM,gBAAgB,GAAkC;IACtD,sBAAsB,EAAE,sBAAsB;IAC9C,oBAAoB,EAAE,oBAAoB;IAC1C,mBAAmB,EAAE,4BAA4B;IACjD,UAAU,EAAE,qBAAqB;CAClC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAA8B;IACnE,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,oBAAoB,CAAC,QAAQ,CAAC,GAAoB,CAAC,EAAE,CAAC;QACxD,OAAO,GAAoB,CAAC;IAC9B,CAAC;IAED,OAAO,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"workflow-states.js","sourceRoot":"","sources":["../../src/lib/workflow-states.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,6BAA6B,EAE9B,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAGhH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA6B,eAAe,CAAC;AAE9E;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAA8B;IACnE,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,oBAAoB,CAAC,QAAQ,CAAC,OAAwB,CAAC,EAAE,CAAC;QAC5D,OAAO,OAAwB,CAAC;IAClC,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;IAC/F,IAAI,oBAAoB,EAAE,CAAC;QACzB,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,OAAO,6BAA6B,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAA2B;IAC9D,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClD,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,oBAAoB,CAAC,MAAM,GAAG,CAAC;QAC1D,CAAC,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,CAAC;QACjC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAA0B,EAAE,EAAiB;IACpF,MAAM,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAEjD,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,IAAI,QAAQ,SAAS,EAAE,6BAA6B,CAAC,CAAC;IAC9G,CAAC;IAED,OAAO,oBAAoB,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAoB,EAAE,WAA0B;IAC/E,OAAO,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC1F,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { CommandOption, DevWorkflowType } from '../types/index.js';
2
+ export declare const WORKFLOW_CHOICES: {
3
+ label: string;
4
+ value: string;
5
+ }[];
6
+ export interface IntegrationBranchSelection {
7
+ integrationName: string;
8
+ integrationBranchName: string;
9
+ isNew: boolean;
10
+ }
11
+ /**
12
+ * The options every command that can create an item's branch shares: which
13
+ * branch to base it on and which branching workflow to use.
14
+ */
15
+ export declare const branchCreationOptions: CommandOption[];
16
+ /**
17
+ * The branching decisions collected from the user before a branch is created.
18
+ */
19
+ export interface BranchCreationChoices {
20
+ shortBranchName: string | null;
21
+ baseBranch: string;
22
+ workflowType: DevWorkflowType;
23
+ stackBranch: string | null;
24
+ integrationSelection: IntegrationBranchSelection | null;
25
+ }
26
+ /**
27
+ * Collect every branching decision up front (stack branch, integration branch)
28
+ * so all user questions are asked before any slow git or MCP work starts.
29
+ */
30
+ export declare function collectBranchCreationChoices(resolved: Record<string, string>): Promise<BranchCreationChoices>;
31
+ /**
32
+ * Prompt the user whether to stack this branch on another and resolve the
33
+ * chosen stack branch. Prompt-only: performs no branch writes. Returns the
34
+ * resolved stack branch name, or null when the user opts not to stack.
35
+ */
36
+ export declare function promptForStackBranch(): Promise<string | null>;
37
+ /**
38
+ * Prompt the user for integration-branch selection. Prompt-only: does not
39
+ * perform any branch writes.
40
+ */
41
+ export declare function promptForIntegrationBranch(): Promise<IntegrationBranchSelection>;
42
+ //# sourceMappingURL=branch-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branch-setup.d.ts","sourceRoot":"","sources":["../../src/services/branch-setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAMxE,eAAO,MAAM,gBAAgB;;;GAG5B,CAAC;AAaF,MAAM,WAAW,0BAA0B;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,aAAa,EAyBhD,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,eAAe,CAAC;IAC9B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,oBAAoB,EAAE,0BAA0B,GAAG,IAAI,CAAC;CACzD;AAED;;;GAGG;AACH,wBAAsB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAYnH;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6BnE;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAoBtF"}
@@ -0,0 +1,118 @@
1
+ import { logger } from '../lib/logger.js';
2
+ import { promptInput, promptSelect } from '../lib/prompt.js';
3
+ import * as git from './git.js';
4
+ import * as worktree from './worktree.js';
5
+ export const WORKFLOW_CHOICES = [
6
+ { label: 'Independent Feature', value: 'independent' },
7
+ { label: 'Work for Integration', value: 'integration' }
8
+ ];
9
+ const STACK_CHOICES = [
10
+ { label: 'No', value: 'no' },
11
+ { label: 'Yes - specify a branch', value: 'branch' },
12
+ { label: 'Yes - specify a project item URL', value: 'url' }
13
+ ];
14
+ const INTEGRATION_BRANCH_CHOICES = [
15
+ { label: 'Create new integration branch', value: 'new' },
16
+ { label: 'Use existing integration branch', value: 'existing' }
17
+ ];
18
+ /**
19
+ * The options every command that can create an item's branch shares: which
20
+ * branch to base it on and which branching workflow to use.
21
+ */
22
+ export const branchCreationOptions = [
23
+ {
24
+ longName: 'branch-name',
25
+ shortName: 'n',
26
+ description: 'Branch name (auto-generated if not provided)',
27
+ defaultValue: undefined,
28
+ promptWhenDefaultExists: true
29
+ },
30
+ {
31
+ // Left empty so the repo's `.idea1/settings.json` still has a say: a default here
32
+ // would always be non-empty and would short-circuit `worktree.resolveBaseBranch()`,
33
+ // which is what consults the settings file.
34
+ longName: 'base-branch',
35
+ shortName: 'b',
36
+ description: 'Base branch',
37
+ defaultValue: '',
38
+ promptWhenDefaultExists: false
39
+ },
40
+ {
41
+ longName: 'workflow-type',
42
+ shortName: 'w',
43
+ description: 'Development workflow type',
44
+ defaultValue: undefined,
45
+ choices: WORKFLOW_CHOICES
46
+ }
47
+ ];
48
+ /**
49
+ * Collect every branching decision up front (stack branch, integration branch)
50
+ * so all user questions are asked before any slow git or MCP work starts.
51
+ */
52
+ export async function collectBranchCreationChoices(resolved) {
53
+ const workflowType = (resolved['workflow-type'] || 'independent');
54
+ const stackBranch = await promptForStackBranch();
55
+ const integrationSelection = workflowType === 'integration' ? await promptForIntegrationBranch() : null;
56
+ return {
57
+ shortBranchName: resolved['branch-name'] || null,
58
+ baseBranch: resolved['base-branch'] || await worktree.resolveBaseBranch(),
59
+ workflowType,
60
+ stackBranch,
61
+ integrationSelection
62
+ };
63
+ }
64
+ /**
65
+ * Prompt the user whether to stack this branch on another and resolve the
66
+ * chosen stack branch. Prompt-only: performs no branch writes. Returns the
67
+ * resolved stack branch name, or null when the user opts not to stack.
68
+ */
69
+ export async function promptForStackBranch() {
70
+ const stackChoice = await promptSelect('Stack this branch on another?', STACK_CHOICES);
71
+ if (stackChoice === 'branch') {
72
+ const stackBranch = await promptInput('Branch to stack on');
73
+ if (!stackBranch) {
74
+ throw new Error('Stack branch is required when stacking');
75
+ }
76
+ const stackExists = await git.branchExists(stackBranch);
77
+ if (!stackExists) {
78
+ throw new Error(`Stack branch '${stackBranch}' does not exist locally or on origin`);
79
+ }
80
+ return stackBranch;
81
+ }
82
+ if (stackChoice === 'url') {
83
+ const stackUrl = await promptInput('Project item URL to stack on');
84
+ if (!stackUrl) {
85
+ throw new Error('Project item URL is required when stacking by URL');
86
+ }
87
+ const stackBranch = await git.resolveBranchFromProjectItemUrl(stackUrl);
88
+ if (!stackBranch) {
89
+ throw new Error(`No branch found for project item URL: ${stackUrl}. Make sure the project item has been started.`);
90
+ }
91
+ logger.info(`Resolved stack branch: ${stackBranch}`);
92
+ return stackBranch;
93
+ }
94
+ return null;
95
+ }
96
+ /**
97
+ * Prompt the user for integration-branch selection. Prompt-only: does not
98
+ * perform any branch writes.
99
+ */
100
+ export async function promptForIntegrationBranch() {
101
+ const existingBranches = await worktree.listExistingIntegrationBranches();
102
+ const branchChoice = existingBranches.length > 0
103
+ ? await promptSelect('Integration branch', INTEGRATION_BRANCH_CHOICES)
104
+ : 'new';
105
+ if (branchChoice === 'existing') {
106
+ const branchChoices = existingBranches.map(b => ({ label: b, value: b }));
107
+ const integrationBranchName = await promptSelect('Select integration branch', branchChoices);
108
+ const integrationName = await worktree.extractIntegrationName(integrationBranchName);
109
+ return { integrationName, integrationBranchName, isNew: false };
110
+ }
111
+ const integrationName = await promptInput('Integration name (e.g., my-cool-feature)');
112
+ if (!integrationName) {
113
+ throw new Error('Integration name is required');
114
+ }
115
+ const integrationBranchName = await worktree.buildIntegrationBranchName(integrationName);
116
+ return { integrationName, integrationBranchName, isNew: true };
117
+ }
118
+ //# sourceMappingURL=branch-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branch-setup.js","sourceRoot":"","sources":["../../src/services/branch-setup.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { ClaudeEffortLevel, ClaudeModel } from '../types/index.js';
1
2
  /**
2
3
  * Ensure Claude CLI is available
3
4
  */
@@ -6,8 +7,10 @@ export declare function ensureClaudeCli(): Promise<boolean>;
6
7
  * Options shared by non-interactive claude runs.
7
8
  */
8
9
  export interface ClaudeRunOptions {
10
+ /** Model alias passed to claude via --model. */
11
+ model?: ClaudeModel;
9
12
  /** Effort level passed to claude via --effort. */
10
- effort?: "low" | "medium" | "high" | "xhigh" | "max";
13
+ effort?: ClaudeEffortLevel;
11
14
  }
12
15
  /**
13
16
  * Run claude with a specific prompt (non-interactive, returns output).
@@ -18,11 +21,18 @@ export declare function runWithPrompt(prompt: string, options?: ClaudeRunOptions
18
21
  /**
19
22
  * Launch interactive claude session
20
23
  */
21
- export declare function runInteractive(initialPrompt?: string, cwd?: string, permissionMode?: string, effort?: string): Promise<number>;
24
+ export declare function runInteractive(initialPrompt?: string, cwd?: string, permissionMode?: string, model?: string, effort?: string): Promise<number>;
22
25
  /**
23
- * Set workflow status on an idea1.ai project item
26
+ * Set workflow status on an idea1.ai project item. When the item's branch is
27
+ * known it is recorded on the item too, so the web client can find the branch
28
+ * without scanning the repository.
24
29
  */
25
- export declare function setWorkflowStatus(itemUrl: string, status: string): Promise<boolean>;
30
+ export declare function setWorkflowStatus(itemUrl: string, status: string, branchName?: string): Promise<boolean>;
31
+ /**
32
+ * Read the current workflow status of an idea1.ai project item. Returns null
33
+ * when the item has no status yet.
34
+ */
35
+ export declare function getWorkflowStatus(itemUrl: string): Promise<string | null>;
26
36
  /**
27
37
  * Generate a branch name from a project item description
28
38
  */
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/services/claude.ts"],"names":[],"mappings":"AAiBA;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAMxD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kDAAkD;IAClD,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;CACtD;AAqDD;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAS/F;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,aAAa,CAAC,EAAE,MAAM,EACtB,GAAG,CAAC,EAAE,MAAM,EACZ,cAAc,CAAC,EAAE,MAAM,EACvB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAkBjB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAoBzF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBzE;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBtE;AAcD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAa9E"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/services/claude.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAcxE;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAMxD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,kDAAkD;IAClD,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAwDD;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAS/F;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,aAAa,CAAC,EAAE,MAAM,EACtB,GAAG,CAAC,EAAE,MAAM,EACZ,cAAc,CAAC,EAAE,MAAM,EACvB,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAsB9G;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiB/E;AAcD;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBzE;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBtE;AAcD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAa9E"}
@@ -28,6 +28,9 @@ async function runStructured(prompt, jsonSchema, options) {
28
28
  '--output-format', 'json',
29
29
  '--json-schema', JSON.stringify(jsonSchema)
30
30
  ];
31
+ if (options?.model) {
32
+ args.push('--model', options.model);
33
+ }
31
34
  if (options?.effort) {
32
35
  args.push('--effort', options.effort);
33
36
  }
@@ -65,7 +68,7 @@ export async function runWithPrompt(prompt, options) {
65
68
  /**
66
69
  * Launch interactive claude session
67
70
  */
68
- export async function runInteractive(initialPrompt, cwd, permissionMode, effort) {
71
+ export async function runInteractive(initialPrompt, cwd, permissionMode, model, effort) {
69
72
  const hasClaude = await ensureClaudeCli();
70
73
  if (!hasClaude) {
71
74
  logger.error('Claude CLI is not available');
@@ -75,6 +78,9 @@ export async function runInteractive(initialPrompt, cwd, permissionMode, effort)
75
78
  if (permissionMode) {
76
79
  args.push('--permission-mode', permissionMode);
77
80
  }
81
+ if (model) {
82
+ args.push('--model', model);
83
+ }
78
84
  if (effort) {
79
85
  args.push('--effort', effort);
80
86
  }
@@ -84,17 +90,20 @@ export async function runInteractive(initialPrompt, cwd, permissionMode, effort)
84
90
  return execWithOutput('claude', args, { cwd });
85
91
  }
86
92
  /**
87
- * Set workflow status on an idea1.ai project item
93
+ * Set workflow status on an idea1.ai project item. When the item's branch is
94
+ * known it is recorded on the item too, so the web client can find the branch
95
+ * without scanning the repository.
88
96
  */
89
- export async function setWorkflowStatus(itemUrl, status) {
97
+ export async function setWorkflowStatus(itemUrl, status, branchName) {
90
98
  const hasClaude = await ensureClaudeCli();
91
99
  if (!hasClaude) {
92
100
  logger.warning('Claude CLI not available, skipping workflow status update');
93
101
  return false;
94
102
  }
95
103
  logger.step(`Setting workflow status to "${status}"...`);
104
+ const branchClause = branchName ? ` and pass branchName "${branchName}"` : '';
96
105
  try {
97
- await runWithPrompt(`Set the workflow status of ${itemUrl} to "${status}". Put "done" in the "result" field on success, or an explanation in the "error" field on failure.`);
106
+ await runWithPrompt(`Set the workflow status of ${itemUrl} to "${status}"${branchClause} using the set_item_workflow_status MCP tool. Put "done" in the "result" field on success, or an explanation in the "error" field on failure.`);
98
107
  logger.success(`Workflow status updated to "${status}"`);
99
108
  return true;
100
109
  }
@@ -106,6 +115,32 @@ export async function setWorkflowStatus(itemUrl, status) {
106
115
  return false;
107
116
  }
108
117
  }
118
+ /**
119
+ * Read the current workflow status of an idea1.ai project item. Returns null
120
+ * when the item has no status yet.
121
+ */
122
+ export async function getWorkflowStatus(itemUrl) {
123
+ const hasClaude = await ensureClaudeCli();
124
+ if (!hasClaude) {
125
+ throw new Error('Claude CLI is required to read the project item workflow status');
126
+ }
127
+ logger.step('Reading workflow status from idea1.ai...');
128
+ const output = await runStructured(`Get the idea1 project item ${itemUrl} using the get_item MCP tool and put its workflowStatus value in the "workflowStatus" field. Use an empty string when the item has no workflow status.`, workflowStatusSchema, { effort: 'low' });
129
+ const status = typeof output.workflowStatus === 'string' ? output.workflowStatus.trim() : '';
130
+ logger.dim(`Workflow status on idea1.ai: ${status || '(none)'}`);
131
+ return status || null;
132
+ }
133
+ /**
134
+ * JSON schema for the get-workflow-status structured output.
135
+ */
136
+ const workflowStatusSchema = {
137
+ type: 'object',
138
+ properties: {
139
+ workflowStatus: { type: 'string', description: 'The workflowStatus of the idea1 project item, or an empty string when it has none' }
140
+ },
141
+ required: ['workflowStatus'],
142
+ additionalProperties: false
143
+ };
109
144
  /**
110
145
  * Generate a branch name from a project item description
111
146
  */
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/services/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/services/claude.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ export declare const configService: {
3
3
  /**
4
4
  * Get the default base branch
5
5
  */
6
- getDefaultBaseBranch(): string;
6
+ getDefaultBaseBranch(): string | undefined;
7
7
  /**
8
8
  * Set the default base branch
9
9
  */
@@ -11,7 +11,7 @@ export declare const configService: {
11
11
  /**
12
12
  * Get the default branch prefix
13
13
  */
14
- getDefaultBranchPrefix(): string;
14
+ getDefaultBranchPrefix(): string | undefined;
15
15
  /**
16
16
  * Set the default branch prefix
17
17
  */
@@ -28,7 +28,7 @@ export declare const configService: {
28
28
  /**
29
29
  * Get the default integration branch prefix
30
30
  */
31
- getDefaultIntegrationBranchPrefix(): string;
31
+ getDefaultIntegrationBranchPrefix(): string | undefined;
32
32
  /**
33
33
  * Set the default integration branch prefix
34
34
  */