@proletariat/cli 0.3.85 → 0.3.86

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 (85) hide show
  1. package/bin/validate-better-sqlite3.cjs +11 -0
  2. package/dist/commands/session/cleanup.d.ts +2 -0
  3. package/dist/commands/session/cleanup.js +89 -42
  4. package/dist/commands/session/cleanup.js.map +1 -1
  5. package/dist/commands/session/index.js +4 -0
  6. package/dist/commands/session/index.js.map +1 -1
  7. package/dist/commands/session/report.d.ts +27 -0
  8. package/dist/commands/session/report.js +217 -0
  9. package/dist/commands/session/report.js.map +1 -0
  10. package/dist/commands/telemetry/disable.js +1 -1
  11. package/dist/commands/telemetry/disable.js.map +1 -1
  12. package/dist/commands/telemetry/enable.js +1 -1
  13. package/dist/commands/telemetry/enable.js.map +1 -1
  14. package/dist/commands/ticket/create.d.ts +3 -2
  15. package/dist/commands/ticket/create.js +6 -69
  16. package/dist/commands/ticket/create.js.map +1 -1
  17. package/dist/commands/work/groom.d.ts +15 -0
  18. package/dist/commands/work/groom.js +77 -0
  19. package/dist/commands/work/groom.js.map +1 -0
  20. package/dist/commands/work/implement.d.ts +16 -0
  21. package/dist/commands/work/implement.js +85 -0
  22. package/dist/commands/work/implement.js.map +1 -0
  23. package/dist/commands/work/index.js +38 -34
  24. package/dist/commands/work/index.js.map +1 -1
  25. package/dist/commands/work/peek.d.ts +18 -0
  26. package/dist/commands/work/peek.js +78 -0
  27. package/dist/commands/work/peek.js.map +1 -0
  28. package/dist/commands/work/poke.d.ts +19 -0
  29. package/dist/commands/work/poke.js +79 -0
  30. package/dist/commands/work/poke.js.map +1 -0
  31. package/dist/commands/work/review.d.ts +1 -31
  32. package/dist/commands/work/review.js +44 -368
  33. package/dist/commands/work/review.js.map +1 -1
  34. package/dist/commands/work/spawn.js +1 -1
  35. package/dist/commands/work/spawn.js.map +1 -1
  36. package/dist/commands/work/start.d.ts +2 -0
  37. package/dist/commands/work/start.js +24 -19
  38. package/dist/commands/work/start.js.map +1 -1
  39. package/dist/commands/work/stop.d.ts +14 -0
  40. package/dist/commands/work/stop.js +103 -0
  41. package/dist/commands/work/stop.js.map +1 -0
  42. package/dist/hooks/init.d.ts +1 -1
  43. package/dist/hooks/init.js +1 -1
  44. package/dist/lib/execution/config.d.ts +17 -1
  45. package/dist/lib/execution/config.js +38 -0
  46. package/dist/lib/execution/config.js.map +1 -1
  47. package/dist/lib/execution/devcontainer.js +0 -1
  48. package/dist/lib/execution/devcontainer.js.map +1 -1
  49. package/dist/lib/execution/runners/docker-management.js +20 -0
  50. package/dist/lib/execution/runners/docker-management.js.map +1 -1
  51. package/dist/lib/execution/runners/prompt-builder.js +1 -2
  52. package/dist/lib/execution/runners/prompt-builder.js.map +1 -1
  53. package/dist/lib/execution/runners/shared.js +3 -1
  54. package/dist/lib/execution/runners/shared.js.map +1 -1
  55. package/dist/lib/execution/spawner.d.ts +3 -1
  56. package/dist/lib/execution/spawner.js +10 -4
  57. package/dist/lib/execution/spawner.js.map +1 -1
  58. package/dist/lib/execution/storage.d.ts +2 -1
  59. package/dist/lib/execution/storage.js +4 -3
  60. package/dist/lib/execution/storage.js.map +1 -1
  61. package/dist/lib/execution/types.d.ts +9 -0
  62. package/dist/lib/execution/types.js.map +1 -1
  63. package/dist/lib/mcp/tools/tmux.d.ts +1 -1
  64. package/dist/lib/mcp/tools/tmux.js +1 -1
  65. package/dist/lib/mcp/tools/work.js +4 -35
  66. package/dist/lib/mcp/tools/work.js.map +1 -1
  67. package/dist/lib/pmo/schema.d.ts +1 -1
  68. package/dist/lib/pmo/schema.js +1 -0
  69. package/dist/lib/pmo/schema.js.map +1 -1
  70. package/dist/lib/pmo/storage/base.js +59 -501
  71. package/dist/lib/pmo/storage/base.js.map +1 -1
  72. package/dist/lib/pmo/utils.d.ts +22 -0
  73. package/dist/lib/pmo/utils.js +31 -0
  74. package/dist/lib/pmo/utils.js.map +1 -1
  75. package/dist/lib/telemetry/analytics.d.ts +10 -13
  76. package/dist/lib/telemetry/analytics.js +35 -125
  77. package/dist/lib/telemetry/analytics.js.map +1 -1
  78. package/dist/lib/telemetry/feature-flags.d.ts +12 -37
  79. package/dist/lib/telemetry/feature-flags.js +15 -63
  80. package/dist/lib/telemetry/feature-flags.js.map +1 -1
  81. package/oclif.manifest.json +1751 -1488
  82. package/package.json +2 -3
  83. package/dist/commands/work/revise.d.ts +0 -20
  84. package/dist/commands/work/revise.js +0 -377
  85. package/dist/commands/work/revise.js.map +0 -1
@@ -90,6 +90,17 @@ try {
90
90
  } catch (error) {
91
91
  const info = runtimeInfo()
92
92
  const message = error instanceof Error ? error.message : String(error)
93
+
94
+ // In CI, the workflow has explicit "Verify better-sqlite3 native binding" steps
95
+ // that run after cache restore / rebuild-with-retry. Don't fail pnpm install here
96
+ // — the flaky native build is handled by the workflow's fallback rebuild step.
97
+ if (process.env.CI) {
98
+ console.warn(message)
99
+ console.warn('\n[warn] better-sqlite3 validation failed during postinstall (CI mode).')
100
+ console.warn('[warn] The workflow will restore the cached binding or rebuild with retry.\n')
101
+ process.exit(0)
102
+ }
103
+
93
104
  // Under bun, native module build failures are expected — warn instead of
94
105
  // hard-failing so the install can complete. The user will get a clear error
95
106
  // at runtime with actionable fix steps.
@@ -5,6 +5,7 @@ export default class SessionCleanup extends PMOCommand {
5
5
  static flags: {
6
6
  'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
7
  force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
+ yes: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
9
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
10
  machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
11
  project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
@@ -13,4 +14,5 @@ export default class SessionCleanup extends PMOCommand {
13
14
  promptIfMultiple: boolean;
14
15
  };
15
16
  execute(): Promise<void>;
17
+ private outputResult;
16
18
  }
@@ -6,13 +6,14 @@ import { getWorkspaceInfo } from '../../lib/agents/commands.js';
6
6
  import { ExecutionStorage } from '../../lib/execution/index.js';
7
7
  import { listAgentContainers, cleanupCompletedContainers, } from '../../lib/execution/container-cleanup.js';
8
8
  import { PMOCommand, pmoBaseFlags } from '../../lib/pmo/index.js';
9
- import { shouldOutputJson, outputSuccessAsJson, outputErrorAsJson, createMetadata, } from '../../lib/prompt-json.js';
9
+ import { shouldOutputJson, outputSuccessAsJson, outputErrorAsJson, outputConfirmationNeededAsJson, createMetadata, } from '../../lib/prompt-json.js';
10
10
  export default class SessionCleanup extends PMOCommand {
11
11
  static description = 'Stop and remove Docker containers for completed agents';
12
12
  static examples = [
13
13
  '<%= config.bin %> session cleanup',
14
14
  '<%= config.bin %> session cleanup --dry-run',
15
15
  '<%= config.bin %> session cleanup --force',
16
+ '<%= config.bin %> session cleanup --force --yes',
16
17
  ];
17
18
  static flags = {
18
19
  ...pmoBaseFlags,
@@ -26,6 +27,11 @@ export default class SessionCleanup extends PMOCommand {
26
27
  description: 'Remove all agent containers, including those with active executions',
27
28
  default: false,
28
29
  }),
30
+ yes: Flags.boolean({
31
+ char: 'y',
32
+ description: 'Skip confirmation prompt when using --force',
33
+ default: false,
34
+ }),
29
35
  };
30
36
  getPMOOptions() {
31
37
  return { promptIfMultiple: false };
@@ -35,6 +41,7 @@ export default class SessionCleanup extends PMOCommand {
35
41
  const jsonMode = shouldOutputJson(flags);
36
42
  const dryRun = flags['dry-run'];
37
43
  const force = flags.force;
44
+ const skipConfirm = flags.yes;
38
45
  // Get workspace info
39
46
  let workspaceInfo;
40
47
  try {
@@ -53,14 +60,12 @@ export default class SessionCleanup extends PMOCommand {
53
60
  const db = new Database(dbPath);
54
61
  const executionStorage = new ExecutionStorage(db);
55
62
  try {
56
- // Find active executions to determine which containers are still needed
63
+ // Always find active executions to determine which containers are still needed
57
64
  const activeAgentNames = new Set();
58
- if (!force) {
59
- const runningExecutions = executionStorage.listExecutions({ status: 'running' });
60
- const startingExecutions = executionStorage.listExecutions({ status: 'starting' });
61
- for (const exec of [...runningExecutions, ...startingExecutions]) {
62
- activeAgentNames.add(exec.agentName);
63
- }
65
+ const runningExecutions = executionStorage.listExecutions({ status: 'running' });
66
+ const startingExecutions = executionStorage.listExecutions({ status: 'starting' });
67
+ for (const exec of [...runningExecutions, ...startingExecutions]) {
68
+ activeAgentNames.add(exec.agentName);
64
69
  }
65
70
  // List all containers first for reporting
66
71
  const allContainers = listAgentContainers();
@@ -80,7 +85,47 @@ export default class SessionCleanup extends PMOCommand {
80
85
  this.log('');
81
86
  return;
82
87
  }
83
- // Perform cleanup
88
+ // When --force is used, confirm before killing active agents
89
+ if (force && activeAgentNames.size > 0 && !dryRun) {
90
+ // Find which active agents actually have containers
91
+ const activeAgentsWithContainers = allContainers
92
+ .filter(c => activeAgentNames.has(c.agentName))
93
+ .map(c => c.agentName);
94
+ if (activeAgentsWithContainers.length > 0 && !skipConfirm) {
95
+ const agentList = activeAgentsWithContainers.join(', ');
96
+ const count = activeAgentsWithContainers.length;
97
+ const confirmMessage = `This will kill ${count} active agent${count === 1 ? '' : 's'}: ${agentList}. Continue?`;
98
+ if (jsonMode) {
99
+ outputConfirmationNeededAsJson({
100
+ activeAgents: activeAgentsWithContainers,
101
+ totalContainers: allContainers.length,
102
+ }, `prlt session cleanup --force --yes`, confirmMessage, createMetadata('session cleanup', flags));
103
+ return;
104
+ }
105
+ // Interactive confirmation using list selection (per CLAUDE.md UX rule)
106
+ const { confirm } = await this.prompt([
107
+ {
108
+ type: 'list',
109
+ name: 'confirm',
110
+ message: confirmMessage,
111
+ choices: [
112
+ { name: 'No, cancel', value: false },
113
+ { name: 'Yes, kill active agents and clean up', value: true },
114
+ ],
115
+ default: 0,
116
+ },
117
+ ], null);
118
+ if (!confirm) {
119
+ this.log(styles.muted('Operation cancelled.'));
120
+ return;
121
+ }
122
+ }
123
+ // Force mode: pass empty set so all containers are cleaned
124
+ const result = cleanupCompletedContainers(new Set(), { dryRun });
125
+ this.outputResult(result, dryRun, jsonMode, flags);
126
+ return;
127
+ }
128
+ // Normal mode (no --force): skip active agents automatically
84
129
  const result = cleanupCompletedContainers(activeAgentNames, { dryRun });
85
130
  if (result.removed.length === 0 && result.errors.length === 0) {
86
131
  if (jsonMode) {
@@ -101,43 +146,45 @@ export default class SessionCleanup extends PMOCommand {
101
146
  this.log('');
102
147
  return;
103
148
  }
104
- // Output results
105
- if (jsonMode) {
106
- outputSuccessAsJson({
107
- message: `${dryRun ? 'Would remove' : 'Removed'} ${result.removed.length} container(s)`,
108
- dryRun,
109
- ...result,
110
- }, createMetadata('session cleanup', flags));
111
- return;
112
- }
113
- this.log('');
114
- this.log(styles.header(`${dryRun ? '[DRY RUN] ' : ''}Container Cleanup`));
115
- this.log('═'.repeat(50));
116
- if (result.stopped.length > 0) {
117
- this.log(styles.info(` ${result.stopped.length} container(s) ${dryRun ? 'would be ' : ''}stopped:`));
118
- for (const name of result.stopped) {
119
- this.log(styles.muted(` - ${name}`));
120
- }
121
- }
122
- if (result.removed.length > 0) {
123
- this.log(styles.success(` ${result.removed.length} container(s) ${dryRun ? 'would be ' : ''}removed:`));
124
- for (const name of result.removed) {
125
- this.log(styles.muted(` - ${name}`));
126
- }
127
- }
128
- if (result.skipped.length > 0) {
129
- this.log(styles.muted(` ${result.skipped.length} container(s) skipped (active agents)`));
130
- }
131
- if (result.errors.length > 0) {
132
- for (const err of result.errors) {
133
- this.log(styles.error(` ${err}`));
134
- }
135
- }
136
- this.log('');
149
+ this.outputResult(result, dryRun, jsonMode, flags);
137
150
  }
138
151
  finally {
139
152
  db.close();
140
153
  }
141
154
  }
155
+ outputResult(result, dryRun, jsonMode, flags) {
156
+ if (jsonMode) {
157
+ outputSuccessAsJson({
158
+ message: `${dryRun ? 'Would remove' : 'Removed'} ${result.removed.length} container(s)`,
159
+ dryRun,
160
+ ...result,
161
+ }, createMetadata('session cleanup', flags));
162
+ return;
163
+ }
164
+ this.log('');
165
+ this.log(styles.header(`${dryRun ? '[DRY RUN] ' : ''}Container Cleanup`));
166
+ this.log('═'.repeat(50));
167
+ if (result.stopped.length > 0) {
168
+ this.log(styles.info(` ${result.stopped.length} container(s) ${dryRun ? 'would be ' : ''}stopped:`));
169
+ for (const name of result.stopped) {
170
+ this.log(styles.muted(` - ${name}`));
171
+ }
172
+ }
173
+ if (result.removed.length > 0) {
174
+ this.log(styles.success(` ${result.removed.length} container(s) ${dryRun ? 'would be ' : ''}removed:`));
175
+ for (const name of result.removed) {
176
+ this.log(styles.muted(` - ${name}`));
177
+ }
178
+ }
179
+ if (result.skipped.length > 0) {
180
+ this.log(styles.muted(` ${result.skipped.length} container(s) skipped (active agents)`));
181
+ }
182
+ if (result.errors.length > 0) {
183
+ for (const err of result.errors) {
184
+ this.log(styles.error(` ${err}`));
185
+ }
186
+ }
187
+ this.log('');
188
+ }
142
189
  }
143
190
  //# sourceMappingURL=cleanup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../../src/commands/session/cleanup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../../src/commands/session/cleanup.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,7 @@ export default class Session extends PMOCommand {
33
33
  { name: 'Restart an agent session', value: 'restart', command: 'prlt session restart --json' },
34
34
  { name: 'Prune stale sessions', value: 'prune', command: 'prlt session prune --json' },
35
35
  { name: 'Clean up completed containers', value: 'cleanup', command: 'prlt session cleanup --json' },
36
+ { name: 'Report agent session event', value: 'report', command: 'prlt session report --json' },
36
37
  { name: 'Cancel', value: 'cancel' },
37
38
  ],
38
39
  }], jsonModeConfig);
@@ -74,6 +75,9 @@ export default class Session extends PMOCommand {
74
75
  case 'cleanup':
75
76
  await this.config.runCommand('session:cleanup', []);
76
77
  break;
78
+ case 'report':
79
+ await this.config.runCommand('session:report', []);
80
+ break;
77
81
  }
78
82
  }
79
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/session/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/session/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAE3D,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,UAAU;IAC7C,MAAM,CAAC,WAAW,GAAG,2DAA2D,CAAA;IAEhF,MAAM,CAAC,QAAQ,GAAG;QAChB,qCAAqC;QACrC,0CAA0C;QAC1C,8DAA8D;QAC9D,uDAAuD;KACxD,CAAA;IAED,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,YAAY;KAChB,CAAA;IAES,aAAa;QACrB,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAE3C,MAAM,cAAc,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAEzF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAqB,CAAC;gBACxD,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,iDAAiD;gBAC1D,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B,EAAE;oBACpF,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,6BAA6B,EAAE;oBAC1F,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,4BAA4B,EAAE;oBACxF,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,4BAA4B,EAAE;oBACvF,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B,EAAE;oBACpF,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,4BAA4B,EAAE;oBACtF,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B,EAAE;oBACpF,EAAE,IAAI,EAAE,kCAAkC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B,EAAE;oBAChG,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,6BAA6B,EAAE;oBAC9F,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE;oBACtF,EAAE,IAAI,EAAE,+BAA+B,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,6BAA6B,EAAE;oBACnG,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,4BAA4B,EAAE;oBAC9F,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;iBACpC;aACF,CAAC,EAAE,cAAc,CAAC,CAAA;QAEnB,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,OAAM;QACR,CAAC;QAED,8BAA8B;QAC9B,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,MAAM;gBACT,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;gBAChD,MAAK;YACP,KAAK,SAAS;gBACZ,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAA;gBACnD,MAAK;YACP,KAAK,QAAQ;gBACX,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA;gBAClD,MAAK;YACP,KAAK,QAAQ;gBACX,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA;gBAClD,MAAK;YACP,KAAK,MAAM;gBACT,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;gBAChD,MAAK;YACP,KAAK,QAAQ;gBACX,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA;gBAClD,MAAK;YACP,KAAK,MAAM;gBACT,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;gBAChD,MAAK;YACP,KAAK,MAAM;gBACT,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;gBAChD,MAAK;YACP,KAAK,SAAS;gBACZ,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAA;gBACnD,MAAK;YACP,KAAK,OAAO;gBACV,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;gBACjD,MAAK;YACP,KAAK,SAAS;gBACZ,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAA;gBACnD,MAAK;YACP,KAAK,QAAQ;gBACX,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA;gBAClD,MAAK;QACT,CAAC;IACH,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Session Report Command (PRLT-1061)
3
+ *
4
+ * Called by Claude Code stop hook when an agent session ends.
5
+ * Reads the execution record and cleanup policy to determine
6
+ * whether to remove the container, update ticket status, and
7
+ * log telemetry events.
8
+ *
9
+ * Usage (from stop hook):
10
+ * prlt session report --agent bold-turing --status exited
11
+ */
12
+ import { PMOCommand } from '../../lib/pmo/index.js';
13
+ export default class SessionReport extends PMOCommand {
14
+ static description: string;
15
+ static examples: string[];
16
+ static flags: {
17
+ agent: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
18
+ status: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
19
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
20
+ machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
21
+ project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
22
+ };
23
+ protected getPMOOptions(): {
24
+ promptIfMultiple: boolean;
25
+ };
26
+ execute(): Promise<void>;
27
+ }
@@ -0,0 +1,217 @@
1
+ /**
2
+ * Session Report Command (PRLT-1061)
3
+ *
4
+ * Called by Claude Code stop hook when an agent session ends.
5
+ * Reads the execution record and cleanup policy to determine
6
+ * whether to remove the container, update ticket status, and
7
+ * log telemetry events.
8
+ *
9
+ * Usage (from stop hook):
10
+ * prlt session report --agent bold-turing --status exited
11
+ */
12
+ import { Flags } from '@oclif/core';
13
+ import * as path from 'node:path';
14
+ import { execSync } from 'node:child_process';
15
+ import Database from 'better-sqlite3';
16
+ import { getWorkspaceInfo } from '../../lib/agents/commands.js';
17
+ import { ExecutionStorage } from '../../lib/execution/index.js';
18
+ import { cleanupAgentContainer } from '../../lib/execution/container-cleanup.js';
19
+ import { trackEvent } from '../../lib/telemetry/analytics.js';
20
+ import { PMOCommand, pmoBaseFlags } from '../../lib/pmo/index.js';
21
+ import { shouldOutputJson, outputSuccessAsJson, outputErrorAsJson, createMetadata, } from '../../lib/prompt-json.js';
22
+ const VALID_STATUSES = new Set(['started', 'completed', 'errored', 'exited']);
23
+ export default class SessionReport extends PMOCommand {
24
+ static description = 'Report agent session lifecycle events and trigger cleanup';
25
+ static examples = [
26
+ '<%= config.bin %> session report --agent bold-turing --status exited',
27
+ '<%= config.bin %> session report --agent bold-turing --status completed',
28
+ '<%= config.bin %> session report --agent bold-turing --status errored',
29
+ ];
30
+ static flags = {
31
+ ...pmoBaseFlags,
32
+ agent: Flags.string({
33
+ description: 'Agent name',
34
+ required: true,
35
+ }),
36
+ status: Flags.string({
37
+ description: 'Session status (started, completed, errored, exited)',
38
+ required: true,
39
+ options: ['started', 'completed', 'errored', 'exited'],
40
+ }),
41
+ };
42
+ getPMOOptions() {
43
+ return { promptIfMultiple: false };
44
+ }
45
+ async execute() {
46
+ const { flags } = await this.parse(SessionReport);
47
+ const jsonMode = shouldOutputJson(flags);
48
+ const agentName = flags.agent;
49
+ const status = flags.status;
50
+ if (!VALID_STATUSES.has(status)) {
51
+ if (jsonMode) {
52
+ outputErrorAsJson('INVALID_STATUS', `Invalid status: ${status}. Must be one of: started, completed, errored, exited`, createMetadata('session report', flags));
53
+ return;
54
+ }
55
+ this.error(`Invalid status: ${status}. Must be one of: started, completed, errored, exited`);
56
+ return;
57
+ }
58
+ // Get workspace info
59
+ let workspaceInfo;
60
+ try {
61
+ workspaceInfo = getWorkspaceInfo();
62
+ }
63
+ catch {
64
+ if (jsonMode) {
65
+ outputErrorAsJson('NOT_IN_WORKSPACE', 'Not in a workspace.', createMetadata('session report', flags));
66
+ return;
67
+ }
68
+ this.error('Not in a workspace.');
69
+ return;
70
+ }
71
+ // Open database
72
+ const dbPath = path.join(workspaceInfo.path, '.proletariat', 'workspace.db');
73
+ const db = new Database(dbPath);
74
+ const executionStorage = new ExecutionStorage(db);
75
+ let needsSelfTerminate = false;
76
+ try {
77
+ // Find the most recent execution for this agent
78
+ const executions = executionStorage.getAgentRunningExecutions(agentName);
79
+ if (executions.length === 0) {
80
+ // No running executions — might be already cleaned up or stale
81
+ // Track the event anyway for observability
82
+ trackEvent('agent_session_report', null, {
83
+ agent_name: agentName,
84
+ report_status: status,
85
+ action: 'no_execution_found',
86
+ });
87
+ if (jsonMode) {
88
+ outputSuccessAsJson({
89
+ message: `No running executions found for agent ${agentName}`,
90
+ action: 'none',
91
+ }, createMetadata('session report', flags));
92
+ return;
93
+ }
94
+ this.log(`No running executions found for agent ${agentName}`);
95
+ return;
96
+ }
97
+ // Use the most recent execution
98
+ const execution = executions[0];
99
+ const cleanupPolicy = execution.cleanupPolicy || 'on-exit';
100
+ // Map report status to execution status
101
+ let executionStatus;
102
+ switch (status) {
103
+ case 'completed':
104
+ executionStatus = 'completed';
105
+ break;
106
+ case 'errored':
107
+ executionStatus = 'failed';
108
+ break;
109
+ case 'exited':
110
+ case 'started':
111
+ default:
112
+ executionStatus = 'stopped';
113
+ break;
114
+ }
115
+ // Update execution status
116
+ executionStorage.updateStatus(execution.id, executionStatus);
117
+ // Determine cleanup action based on policy
118
+ let shouldCleanup = false;
119
+ let cleanupReason = '';
120
+ switch (cleanupPolicy) {
121
+ case 'on-exit':
122
+ shouldCleanup = true;
123
+ cleanupReason = 'cleanup policy is on-exit';
124
+ break;
125
+ case 'persistent':
126
+ shouldCleanup = false;
127
+ cleanupReason = 'cleanup policy is persistent';
128
+ break;
129
+ case 'on-error-keep':
130
+ if (executionStatus === 'failed') {
131
+ shouldCleanup = false;
132
+ cleanupReason = 'cleanup policy is on-error-keep and execution failed';
133
+ }
134
+ else {
135
+ shouldCleanup = true;
136
+ cleanupReason = 'cleanup policy is on-error-keep and execution succeeded';
137
+ }
138
+ break;
139
+ }
140
+ // Perform container cleanup if needed
141
+ // First try docker rm -f (works when Docker socket is available, e.g., orchestrator containers).
142
+ // If that fails (regular agent containers don't have Docker socket), signal the
143
+ // container to stop by killing PID 1 (the sleep infinity process) after the report
144
+ // completes. The stopped container will be removed by the next host-side cleanup.
145
+ let cleanupResult = { success: true };
146
+ if (shouldCleanup) {
147
+ cleanupResult = cleanupAgentContainer(agentName);
148
+ if (!cleanupResult.success && process.env.DEVCONTAINER === 'true') {
149
+ // Running inside a container without Docker socket — schedule self-termination
150
+ needsSelfTerminate = true;
151
+ // Treat as success since the container will stop after this command finishes
152
+ cleanupResult = { success: true };
153
+ }
154
+ }
155
+ // Track telemetry event for agent lifecycle
156
+ trackEvent('agent_session_report', null, {
157
+ agent_name: agentName,
158
+ report_status: status,
159
+ execution_id: execution.id,
160
+ ticket_id: execution.ticketId,
161
+ cleanup_policy: cleanupPolicy,
162
+ cleanup_performed: String(shouldCleanup),
163
+ cleanup_success: String(cleanupResult.success),
164
+ execution_status: executionStatus,
165
+ environment: execution.environment,
166
+ executor: execution.executor,
167
+ });
168
+ // Build result
169
+ const result = {
170
+ executionId: execution.id,
171
+ ticketId: execution.ticketId,
172
+ agentName,
173
+ reportedStatus: status,
174
+ executionStatus,
175
+ cleanupPolicy,
176
+ cleanupPerformed: shouldCleanup,
177
+ cleanupReason,
178
+ cleanupSuccess: cleanupResult.success,
179
+ cleanupError: cleanupResult.error,
180
+ };
181
+ if (jsonMode) {
182
+ outputSuccessAsJson(result, createMetadata('session report', flags));
183
+ return;
184
+ }
185
+ this.log(`Session report for ${agentName}:`);
186
+ this.log(` Execution: ${execution.id} (${execution.ticketId})`);
187
+ this.log(` Status: ${status} → ${executionStatus}`);
188
+ this.log(` Cleanup policy: ${cleanupPolicy}`);
189
+ if (shouldCleanup) {
190
+ if (cleanupResult.success) {
191
+ this.log(` Container: removed (${cleanupReason})`);
192
+ }
193
+ else {
194
+ this.log(` Container: cleanup failed - ${cleanupResult.error}`);
195
+ }
196
+ }
197
+ else {
198
+ this.log(` Container: kept (${cleanupReason})`);
199
+ }
200
+ }
201
+ finally {
202
+ db.close();
203
+ // Self-terminate the container if cleanup was requested but Docker wasn't available.
204
+ // This kills the PID 1 process (sleep infinity) which stops the container.
205
+ // Done after db.close() to ensure clean shutdown.
206
+ if (needsSelfTerminate) {
207
+ try {
208
+ execSync('kill 1', { stdio: 'pipe' });
209
+ }
210
+ catch {
211
+ // Best-effort — container may not allow killing PID 1
212
+ }
213
+ }
214
+ }
215
+ }
216
+ }
217
+ //# sourceMappingURL=report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../../src/commands/session/report.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ export default class TelemetryDisable extends Command {
15
15
  async run() {
16
16
  const { flags } = await this.parse(TelemetryDisable);
17
17
  const jsonMode = shouldOutputJson(flags);
18
- // Disable both Statsig analytics and Sentry crash reporting
18
+ // Disable PostHog analytics and Sentry crash reporting
19
19
  disableTelemetry();
20
20
  writeTelemetryConfig({ enabled: false });
21
21
  if (jsonMode) {
@@ -1 +1 @@
1
- {"version":3,"file":"disable.js","sourceRoot":"","sources":["../../../src/commands/telemetry/disable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAChG,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,OAAO;IACnD,MAAM,CAAC,WAAW,GAAG,6BAA6B,CAAA;IAElD,MAAM,CAAC,QAAQ,GAAG;QAChB,qCAAqC;KACtC,CAAA;IAED,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,kBAAkB;KACtB,CAAA;IAED,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACpD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;QAExC,4DAA4D;QAC5D,gBAAgB,EAAE,CAAA;QAClB,oBAAoB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QAExC,IAAI,QAAQ,EAAE,CAAC;YACb,mBAAmB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,cAAc,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC,CAAA;YACnF,OAAM;QACR,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC,CAAA;IAC5E,CAAC"}
1
+ {"version":3,"file":"disable.js","sourceRoot":"","sources":["../../../src/commands/telemetry/disable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAChG,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,OAAO;IACnD,MAAM,CAAC,WAAW,GAAG,6BAA6B,CAAA;IAElD,MAAM,CAAC,QAAQ,GAAG;QAChB,qCAAqC;KACtC,CAAA;IAED,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,kBAAkB;KACtB,CAAA;IAED,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACpD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;QAExC,uDAAuD;QACvD,gBAAgB,EAAE,CAAA;QAClB,oBAAoB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QAExC,IAAI,QAAQ,EAAE,CAAC;YACb,mBAAmB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,cAAc,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC,CAAA;YACnF,OAAM;QACR,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC,CAAA;IAC5E,CAAC"}
@@ -15,7 +15,7 @@ export default class TelemetryEnable extends Command {
15
15
  async run() {
16
16
  const { flags } = await this.parse(TelemetryEnable);
17
17
  const jsonMode = shouldOutputJson(flags);
18
- // Enable both Statsig analytics and Sentry crash reporting
18
+ // Enable PostHog analytics and Sentry crash reporting
19
19
  enableTelemetry();
20
20
  writeTelemetryConfig({ enabled: true });
21
21
  if (jsonMode) {
@@ -1 +1 @@
1
- {"version":3,"file":"enable.js","sourceRoot":"","sources":["../../../src/commands/telemetry/enable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAChG,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,OAAO;IAClD,MAAM,CAAC,WAAW,GAAG,4BAA4B,CAAA;IAEjD,MAAM,CAAC,QAAQ,GAAG;QAChB,qCAAqC;KACtC,CAAA;IAED,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,kBAAkB;KACtB,CAAA;IAED,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;QACnD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;QAExC,2DAA2D;QAC3D,eAAe,EAAE,CAAA;QACjB,oBAAoB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAEvC,IAAI,QAAQ,EAAE,CAAC;YACb,mBAAmB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,cAAc,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAA;YACjF,OAAM;QACR,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC,CAAA;IACpF,CAAC"}
1
+ {"version":3,"file":"enable.js","sourceRoot":"","sources":["../../../src/commands/telemetry/enable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAChG,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,OAAO;IAClD,MAAM,CAAC,WAAW,GAAG,4BAA4B,CAAA;IAEjD,MAAM,CAAC,QAAQ,GAAG;QAChB,qCAAqC;KACtC,CAAA;IAED,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,kBAAkB;KACtB,CAAA;IAED,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;QACnD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;QAExC,sDAAsD;QACtD,eAAe,EAAE,CAAA;QACjB,oBAAoB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAEvC,IAAI,QAAQ,EAAE,CAAC;YACb,mBAAmB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,cAAc,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAA;YACjF,OAAM;QACR,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC,CAAA;IACpF,CAAC"}
@@ -35,8 +35,9 @@ export default class TicketCreate extends PMOCommand {
35
35
  private resolveSource;
36
36
  /**
37
37
  * Create an issue in Linear instead of the local PMO database.
38
- * Also creates a local PMO mirror ticket with external metadata
39
- * and a mapping record for future sync operations.
38
+ * When a cloud provider is connected, the cloud provider is the
39
+ * source of truth no local PMO mirror ticket is created.
40
+ * Local mirrors are created on demand by `work start --mirror-to-pmo`.
40
41
  */
41
42
  private createLinearIssue;
42
43
  private promptTicketData;