@proletariat/cli 0.3.102 → 0.3.104

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 (94) hide show
  1. package/dist/commands/project/configure.d.ts +13 -0
  2. package/dist/commands/project/configure.js +149 -0
  3. package/dist/commands/project/configure.js.map +1 -0
  4. package/dist/commands/session/attach.d.ts +6 -1
  5. package/dist/commands/session/attach.js +82 -28
  6. package/dist/commands/session/attach.js.map +1 -1
  7. package/dist/commands/session/report.d.ts +5 -0
  8. package/dist/commands/session/report.js +53 -0
  9. package/dist/commands/session/report.js.map +1 -1
  10. package/dist/commands/ticket/delete.js +15 -7
  11. package/dist/commands/ticket/delete.js.map +1 -1
  12. package/dist/commands/ticket/move.js +21 -10
  13. package/dist/commands/ticket/move.js.map +1 -1
  14. package/dist/commands/ticket/update.js +18 -9
  15. package/dist/commands/ticket/update.js.map +1 -1
  16. package/dist/commands/update.js +12 -6
  17. package/dist/commands/update.js.map +1 -1
  18. package/dist/commands/work/ship.js +39 -57
  19. package/dist/commands/work/ship.js.map +1 -1
  20. package/dist/commands/work/start.js +62 -77
  21. package/dist/commands/work/start.js.map +1 -1
  22. package/dist/lib/events/events.d.ts +2 -0
  23. package/dist/lib/execution/devcontainer.d.ts +1 -0
  24. package/dist/lib/execution/devcontainer.js +1 -0
  25. package/dist/lib/execution/devcontainer.js.map +1 -1
  26. package/dist/lib/execution/runners/docker-management.d.ts +22 -3
  27. package/dist/lib/execution/runners/docker-management.js +102 -14
  28. package/dist/lib/execution/runners/docker-management.js.map +1 -1
  29. package/dist/lib/execution/runners/prompt-builder.d.ts +12 -0
  30. package/dist/lib/execution/runners/prompt-builder.js +44 -0
  31. package/dist/lib/execution/runners/prompt-builder.js.map +1 -1
  32. package/dist/lib/orchestrate/actions.js +68 -1
  33. package/dist/lib/orchestrate/actions.js.map +1 -1
  34. package/dist/lib/orchestrate/engine.d.ts +19 -39
  35. package/dist/lib/orchestrate/engine.js +51 -215
  36. package/dist/lib/orchestrate/engine.js.map +1 -1
  37. package/dist/lib/orchestrate/poller.d.ts +4 -1
  38. package/dist/lib/orchestrate/poller.js +63 -13
  39. package/dist/lib/orchestrate/poller.js.map +1 -1
  40. package/dist/lib/orchestrate/presets.js +18 -3
  41. package/dist/lib/orchestrate/presets.js.map +1 -1
  42. package/dist/lib/orchestrate/simple-poller.js +33 -11
  43. package/dist/lib/orchestrate/simple-poller.js.map +1 -1
  44. package/dist/lib/orchestrate/types.d.ts +5 -13
  45. package/dist/lib/orchestrate/types.js +4 -2
  46. package/dist/lib/orchestrate/types.js.map +1 -1
  47. package/dist/lib/pmo/base-command.js +12 -2
  48. package/dist/lib/pmo/base-command.js.map +1 -1
  49. package/dist/lib/pmo/templates-builtin.d.ts +2 -0
  50. package/dist/lib/pmo/templates-builtin.js +13 -0
  51. package/dist/lib/pmo/templates-builtin.js.map +1 -1
  52. package/dist/lib/pr/index.d.ts +9 -0
  53. package/dist/lib/pr/index.js +22 -0
  54. package/dist/lib/pr/index.js.map +1 -1
  55. package/dist/lib/providers/linear-provider.d.ts +11 -12
  56. package/dist/lib/providers/linear-provider.js +150 -177
  57. package/dist/lib/providers/linear-provider.js.map +1 -1
  58. package/dist/lib/providers/resolver.d.ts +5 -5
  59. package/dist/lib/providers/resolver.js +25 -31
  60. package/dist/lib/providers/resolver.js.map +1 -1
  61. package/dist/lib/sync/engine.js +15 -6
  62. package/dist/lib/sync/engine.js.map +1 -1
  63. package/dist/lib/sync/reconciler.d.ts +11 -2
  64. package/dist/lib/sync/reconciler.js +30 -12
  65. package/dist/lib/sync/reconciler.js.map +1 -1
  66. package/dist/lib/update-check.d.ts +24 -0
  67. package/dist/lib/update-check.js +85 -0
  68. package/dist/lib/update-check.js.map +1 -1
  69. package/dist/lib/update-prompt.js +10 -5
  70. package/dist/lib/update-prompt.js.map +1 -1
  71. package/dist/lib/work-lifecycle/hooks/executor.js +2 -0
  72. package/dist/lib/work-lifecycle/hooks/executor.js.map +1 -1
  73. package/dist/lib/work-lifecycle/hooks/index.d.ts +5 -3
  74. package/dist/lib/work-lifecycle/hooks/index.js +3 -2
  75. package/dist/lib/work-lifecycle/hooks/index.js.map +1 -1
  76. package/dist/lib/work-lifecycle/hooks/manager.d.ts +93 -8
  77. package/dist/lib/work-lifecycle/hooks/manager.js +248 -20
  78. package/dist/lib/work-lifecycle/hooks/manager.js.map +1 -1
  79. package/dist/lib/work-lifecycle/hooks/storage.d.ts +1 -0
  80. package/dist/lib/work-lifecycle/hooks/storage.js +28 -6
  81. package/dist/lib/work-lifecycle/hooks/storage.js.map +1 -1
  82. package/dist/lib/work-lifecycle/hooks/types.d.ts +38 -1
  83. package/dist/lib/work-lifecycle/hooks/types.js +4 -0
  84. package/dist/lib/work-lifecycle/hooks/types.js.map +1 -1
  85. package/dist/lib/work-lifecycle/index.d.ts +2 -1
  86. package/dist/lib/work-lifecycle/index.js +1 -1
  87. package/dist/lib/work-lifecycle/index.js.map +1 -1
  88. package/dist/lib/work-lifecycle/settings.d.ts +42 -0
  89. package/dist/lib/work-lifecycle/settings.js +65 -0
  90. package/dist/lib/work-lifecycle/settings.js.map +1 -1
  91. package/dist/lib/work-lifecycle/transition.js +45 -31
  92. package/dist/lib/work-lifecycle/transition.js.map +1 -1
  93. package/oclif.manifest.json +818 -754
  94. package/package.json +1 -1
@@ -7,7 +7,8 @@
7
7
  */
8
8
  export type { WorkEventSource, WorkStartedEvent, WorkStatusChangedEvent, WorkPRCreatedEvent, WorkCompletedEvent, } from './events.js';
9
9
  export { WorkLifecycleAdapter, initWorkLifecycleAdapter, stopWorkLifecycleAdapter, } from './adapter.js';
10
- export { initHookManager, stopHookManager, } from './hooks/index.js';
10
+ export { initHookManager, stopHookManager, HookManager, } from './hooks/index.js';
11
+ export type { HookManagerOptions } from './hooks/index.js';
11
12
  export { handlePostExecutionTransition, type PostExecutionContext, type PostExecutionResult, } from './post-execution.js';
12
13
  export { validateCommits, tryValidateCommits, type CommitValidationResult, } from '../execution/commit-validation.js';
13
14
  export { WorkflowRuleEvaluator, initWorkflowRuleEvaluator, stopWorkflowRuleEvaluator, } from './rule-evaluator.js';
@@ -6,7 +6,7 @@
6
6
  * GitHub PRs, Linear issues, etc.) into these domain events.
7
7
  */
8
8
  export { WorkLifecycleAdapter, initWorkLifecycleAdapter, stopWorkLifecycleAdapter, } from './adapter.js';
9
- export { initHookManager, stopHookManager, } from './hooks/index.js';
9
+ export { initHookManager, stopHookManager, HookManager, } from './hooks/index.js';
10
10
  export { handlePostExecutionTransition, } from './post-execution.js';
11
11
  export { validateCommits, tryValidateCommits, } from '../execution/commit-validation.js';
12
12
  export { WorkflowRuleEvaluator, initWorkflowRuleEvaluator, stopWorkflowRuleEvaluator, } from './rule-evaluator.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/work-lifecycle/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,eAAe,EACf,eAAe,GAChB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,6BAA6B,GAG9B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,eAAe,EACf,kBAAkB,GAEnB,MAAM,mCAAmC,CAAA;AAE1C,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,6BAA6B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/work-lifecycle/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,eAAe,EACf,eAAe,EACf,WAAW,GACZ,MAAM,kBAAkB,CAAA;AAIzB,OAAO,EACL,6BAA6B,GAG9B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,eAAe,EACf,kBAAkB,GAEnB,MAAM,mCAAmC,CAAA;AAE1C,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,6BAA6B,CAAA"}
@@ -25,8 +25,20 @@ export declare const DEFAULT_WORK_COLUMNS: {
25
25
  readonly in_progress: "In Progress";
26
26
  readonly review: "Review";
27
27
  readonly done: "Done";
28
+ readonly backlog: "Backlog";
28
29
  };
29
30
  export type WorkColumnType = keyof typeof DEFAULT_WORK_COLUMNS;
31
+ /**
32
+ * Full workflow configuration — the resolved column names for each lifecycle stage.
33
+ * Read from pmo_settings with fallback to DEFAULT_WORK_COLUMNS.
34
+ */
35
+ export interface WorkflowConfig {
36
+ planned: string;
37
+ in_progress: string;
38
+ review: string;
39
+ done: string;
40
+ backlog: string;
41
+ }
30
42
  /**
31
43
  * Get a work column setting from pmo_settings with fallback to default.
32
44
  * Column matching is case-insensitive.
@@ -58,6 +70,36 @@ export declare function setWorkColumnSetting(db: DatabaseLike, columnType: WorkC
58
70
  * @returns The matching column name, or null if not found
59
71
  */
60
72
  export declare function findColumnByName(columnNames: string[], targetColumn: string): string | null;
73
+ /**
74
+ * Read the full workflow configuration from pmo_settings.
75
+ * Returns configured column names for each lifecycle stage, falling back
76
+ * to DEFAULT_WORK_COLUMNS for any that aren't set.
77
+ *
78
+ * @param db - Database instance
79
+ * @returns WorkflowConfig with resolved column names
80
+ */
81
+ export declare function getWorkflowConfig(db: DatabaseLike): WorkflowConfig;
82
+ /**
83
+ * Save a full workflow configuration to pmo_settings.
84
+ *
85
+ * @param db - Database instance
86
+ * @param config - Partial workflow config — only provided keys are saved
87
+ */
88
+ export declare function setWorkflowConfig(db: DatabaseLike, config: Partial<WorkflowConfig>): void;
89
+ /**
90
+ * Resolve a workflow target name to the configured column name.
91
+ *
92
+ * Used by the move-ticket action to translate intent-like targets
93
+ * (e.g. 'done', 'review') into the actual column name configured
94
+ * for the workspace (e.g. 'Shipped', 'QA').
95
+ *
96
+ * If the target is not a known intent, returns it unchanged.
97
+ *
98
+ * @param db - Database instance
99
+ * @param target - Target name from preset/action config
100
+ * @returns Resolved column name
101
+ */
102
+ export declare function resolveWorkflowTarget(db: DatabaseLike, target: string): string;
61
103
  /**
62
104
  * Default priority scale (backwards compatible with hardcoded P0-P3).
63
105
  */
@@ -18,6 +18,7 @@ export const DEFAULT_WORK_COLUMNS = {
18
18
  in_progress: 'In Progress',
19
19
  review: 'Review',
20
20
  done: 'Done',
21
+ backlog: 'Backlog',
21
22
  };
22
23
  /**
23
24
  * Get a work column setting from pmo_settings with fallback to default.
@@ -70,6 +71,70 @@ export function findColumnByName(columnNames, targetColumn) {
70
71
  targetLower.includes(col.toLowerCase()));
71
72
  return partialMatch || null;
72
73
  }
74
+ /**
75
+ * Read the full workflow configuration from pmo_settings.
76
+ * Returns configured column names for each lifecycle stage, falling back
77
+ * to DEFAULT_WORK_COLUMNS for any that aren't set.
78
+ *
79
+ * @param db - Database instance
80
+ * @returns WorkflowConfig with resolved column names
81
+ */
82
+ export function getWorkflowConfig(db) {
83
+ return {
84
+ planned: getWorkColumnSetting(db, 'planned'),
85
+ in_progress: getWorkColumnSetting(db, 'in_progress'),
86
+ review: getWorkColumnSetting(db, 'review'),
87
+ done: getWorkColumnSetting(db, 'done'),
88
+ backlog: getWorkColumnSetting(db, 'backlog'),
89
+ };
90
+ }
91
+ /**
92
+ * Save a full workflow configuration to pmo_settings.
93
+ *
94
+ * @param db - Database instance
95
+ * @param config - Partial workflow config — only provided keys are saved
96
+ */
97
+ export function setWorkflowConfig(db, config) {
98
+ for (const [key, value] of Object.entries(config)) {
99
+ if (value !== undefined) {
100
+ setWorkColumnSetting(db, key, value);
101
+ }
102
+ }
103
+ }
104
+ /**
105
+ * Map from short target names (used in presets/actions) to WorkColumnType.
106
+ * Allows presets to use human-friendly names like 'done' or 'review'
107
+ * that resolve to the user's actual column names.
108
+ */
109
+ const TARGET_TO_COLUMN_TYPE = {
110
+ 'done': 'done',
111
+ 'review': 'review',
112
+ 'in-progress': 'in_progress',
113
+ 'in_progress': 'in_progress',
114
+ 'ready': 'planned',
115
+ 'planned': 'planned',
116
+ 'backlog': 'backlog',
117
+ };
118
+ /**
119
+ * Resolve a workflow target name to the configured column name.
120
+ *
121
+ * Used by the move-ticket action to translate intent-like targets
122
+ * (e.g. 'done', 'review') into the actual column name configured
123
+ * for the workspace (e.g. 'Shipped', 'QA').
124
+ *
125
+ * If the target is not a known intent, returns it unchanged.
126
+ *
127
+ * @param db - Database instance
128
+ * @param target - Target name from preset/action config
129
+ * @returns Resolved column name
130
+ */
131
+ export function resolveWorkflowTarget(db, target) {
132
+ const columnType = TARGET_TO_COLUMN_TYPE[target.toLowerCase()];
133
+ if (columnType) {
134
+ return getWorkColumnSetting(db, columnType);
135
+ }
136
+ return target;
137
+ }
73
138
  // =============================================================================
74
139
  // Workspace Priority Settings
75
140
  // =============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/lib/work-lifecycle/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/lib/work-lifecycle/settings.ts"],"names":[],"mappings":"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"}
@@ -88,49 +88,63 @@ export async function moveTicketByIntent(opts) {
88
88
  if (previousColumn && previousColumn.toLowerCase() === targetColumn.toLowerCase()) {
89
89
  return { moved: false, targetColumn, previousColumn, message: 'Already in target state' };
90
90
  }
91
- // Move in local PMO
92
- let localMoveSucceeded = false;
93
- try {
94
- await storage.moveTicket(ticket.projectId, ticket.id, targetColumn);
95
- localMoveSucceeded = true;
91
+ // Determine which provider handles this ticket
92
+ let resolvedProvider = null;
93
+ if (resolveProvider) {
94
+ try {
95
+ resolvedProvider = await resolveProvider(ticket.id, ticket.projectId);
96
+ }
97
+ catch {
98
+ // Fall through to local PMO
99
+ }
96
100
  }
97
- catch (error) {
98
- const code = error.code;
99
- if (code === 'SQLITE_READONLY') {
100
- // PRLT-1183: In container environments the HQ database is mounted read-only.
101
- // Skip local PMO write but still sync to external provider below.
102
- if (log)
103
- log('Local PMO update skipped (read-only database)');
101
+ const isExternalProvider = resolvedProvider && resolvedProvider.name !== 'pmo';
102
+ // For external providers (Linear, etc.), go directly to the provider — no local PMO mirror
103
+ if (isExternalProvider && resolvedProvider) {
104
+ try {
105
+ const result = await resolvedProvider.moveTicket(ticket.id, targetColumn);
106
+ if (result.success) {
107
+ if (log)
108
+ log(`Moved via ${result.provider}: ${targetColumn}`);
109
+ return { moved: true, targetColumn, previousColumn };
110
+ }
111
+ return {
112
+ moved: false,
113
+ targetColumn,
114
+ previousColumn,
115
+ message: `Provider move failed: ${result.error}`,
116
+ };
104
117
  }
105
- else {
118
+ catch (error) {
106
119
  return {
107
120
  moved: false,
108
121
  targetColumn,
109
122
  previousColumn,
110
- message: `Failed to move: ${error instanceof Error ? error.message : String(error)}`,
123
+ message: `Failed to move via provider: ${error instanceof Error ? error.message : String(error)}`,
111
124
  };
112
125
  }
113
126
  }
114
- // Sync to external provider (e.g. Linear)
115
- let externalSyncSucceeded = false;
116
- if (resolveProvider) {
117
- try {
118
- const provider = await resolveProvider(ticket.id, ticket.projectId);
119
- if (provider.name !== 'pmo') {
120
- const result = await provider.moveTicket(ticket.id, targetColumn);
121
- if (result.success) {
122
- externalSyncSucceeded = true;
123
- if (log)
124
- log(`Synced to ${result.provider}: ${targetColumn}`);
125
- }
126
- }
127
- }
128
- catch {
129
- // Non-fatal — don't block work commands for provider sync failures
127
+ // For local PMO provider, move in local storage
128
+ try {
129
+ await storage.moveTicket(ticket.projectId, ticket.id, targetColumn);
130
+ }
131
+ catch (error) {
132
+ const code = error.code;
133
+ if (code === 'SQLITE_READONLY') {
134
+ // PRLT-1183: In container environments the HQ database is mounted read-only.
135
+ if (log)
136
+ log('Local PMO update skipped (read-only database)');
137
+ return { moved: false, targetColumn, previousColumn, message: 'Read-only database' };
130
138
  }
139
+ return {
140
+ moved: false,
141
+ targetColumn,
142
+ previousColumn,
143
+ message: `Failed to move: ${error instanceof Error ? error.message : String(error)}`,
144
+ };
131
145
  }
132
146
  return {
133
- moved: localMoveSucceeded || externalSyncSucceeded,
147
+ moved: true,
134
148
  targetColumn,
135
149
  previousColumn,
136
150
  };
@@ -1 +1 @@
1
- {"version":3,"file":"transition.js","sourceRoot":"","sources":["../../../src/lib/work-lifecycle/transition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transition.js","sourceRoot":"","sources":["../../../src/lib/work-lifecycle/transition.ts"],"names":[],"mappings":"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"}