@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.
- package/bin/validate-better-sqlite3.cjs +11 -0
- package/dist/commands/session/cleanup.d.ts +2 -0
- package/dist/commands/session/cleanup.js +89 -42
- package/dist/commands/session/cleanup.js.map +1 -1
- package/dist/commands/session/index.js +4 -0
- package/dist/commands/session/index.js.map +1 -1
- package/dist/commands/session/report.d.ts +27 -0
- package/dist/commands/session/report.js +217 -0
- package/dist/commands/session/report.js.map +1 -0
- package/dist/commands/telemetry/disable.js +1 -1
- package/dist/commands/telemetry/disable.js.map +1 -1
- package/dist/commands/telemetry/enable.js +1 -1
- package/dist/commands/telemetry/enable.js.map +1 -1
- package/dist/commands/ticket/create.d.ts +3 -2
- package/dist/commands/ticket/create.js +6 -69
- package/dist/commands/ticket/create.js.map +1 -1
- package/dist/commands/work/groom.d.ts +15 -0
- package/dist/commands/work/groom.js +77 -0
- package/dist/commands/work/groom.js.map +1 -0
- package/dist/commands/work/implement.d.ts +16 -0
- package/dist/commands/work/implement.js +85 -0
- package/dist/commands/work/implement.js.map +1 -0
- package/dist/commands/work/index.js +38 -34
- package/dist/commands/work/index.js.map +1 -1
- package/dist/commands/work/peek.d.ts +18 -0
- package/dist/commands/work/peek.js +78 -0
- package/dist/commands/work/peek.js.map +1 -0
- package/dist/commands/work/poke.d.ts +19 -0
- package/dist/commands/work/poke.js +79 -0
- package/dist/commands/work/poke.js.map +1 -0
- package/dist/commands/work/review.d.ts +1 -31
- package/dist/commands/work/review.js +44 -368
- package/dist/commands/work/review.js.map +1 -1
- package/dist/commands/work/spawn.js +1 -1
- package/dist/commands/work/spawn.js.map +1 -1
- package/dist/commands/work/start.d.ts +2 -0
- package/dist/commands/work/start.js +24 -19
- package/dist/commands/work/start.js.map +1 -1
- package/dist/commands/work/stop.d.ts +14 -0
- package/dist/commands/work/stop.js +103 -0
- package/dist/commands/work/stop.js.map +1 -0
- package/dist/hooks/init.d.ts +1 -1
- package/dist/hooks/init.js +1 -1
- package/dist/lib/execution/config.d.ts +17 -1
- package/dist/lib/execution/config.js +38 -0
- package/dist/lib/execution/config.js.map +1 -1
- package/dist/lib/execution/devcontainer.js +0 -1
- package/dist/lib/execution/devcontainer.js.map +1 -1
- package/dist/lib/execution/runners/docker-management.js +20 -0
- package/dist/lib/execution/runners/docker-management.js.map +1 -1
- package/dist/lib/execution/runners/prompt-builder.js +1 -2
- package/dist/lib/execution/runners/prompt-builder.js.map +1 -1
- package/dist/lib/execution/runners/shared.js +3 -1
- package/dist/lib/execution/runners/shared.js.map +1 -1
- package/dist/lib/execution/spawner.d.ts +3 -1
- package/dist/lib/execution/spawner.js +10 -4
- package/dist/lib/execution/spawner.js.map +1 -1
- package/dist/lib/execution/storage.d.ts +2 -1
- package/dist/lib/execution/storage.js +4 -3
- package/dist/lib/execution/storage.js.map +1 -1
- package/dist/lib/execution/types.d.ts +9 -0
- package/dist/lib/execution/types.js.map +1 -1
- package/dist/lib/mcp/tools/tmux.d.ts +1 -1
- package/dist/lib/mcp/tools/tmux.js +1 -1
- package/dist/lib/mcp/tools/work.js +4 -35
- package/dist/lib/mcp/tools/work.js.map +1 -1
- package/dist/lib/pmo/schema.d.ts +1 -1
- package/dist/lib/pmo/schema.js +1 -0
- package/dist/lib/pmo/schema.js.map +1 -1
- package/dist/lib/pmo/storage/base.js +59 -501
- package/dist/lib/pmo/storage/base.js.map +1 -1
- package/dist/lib/pmo/utils.d.ts +22 -0
- package/dist/lib/pmo/utils.js +31 -0
- package/dist/lib/pmo/utils.js.map +1 -1
- package/dist/lib/telemetry/analytics.d.ts +10 -13
- package/dist/lib/telemetry/analytics.js +35 -125
- package/dist/lib/telemetry/analytics.js.map +1 -1
- package/dist/lib/telemetry/feature-flags.d.ts +12 -37
- package/dist/lib/telemetry/feature-flags.js +15 -63
- package/dist/lib/telemetry/feature-flags.js.map +1 -1
- package/oclif.manifest.json +1751 -1488
- package/package.json +2 -3
- package/dist/commands/work/revise.d.ts +0 -20
- package/dist/commands/work/revise.js +0 -377
- package/dist/commands/work/revise.js.map +0 -1
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Args, Flags } from '@oclif/core';
|
|
2
|
+
import { PMOCommand, pmoBaseFlags } from '../../lib/pmo/index.js';
|
|
3
|
+
import { shouldOutputJson, outputErrorAsJson, createMetadata, } from '../../lib/prompt-json.js';
|
|
4
|
+
export default class WorkPeek extends PMOCommand {
|
|
5
|
+
static description = 'View what an agent is doing on a ticket (non-interactive)';
|
|
6
|
+
static examples = [
|
|
7
|
+
'<%= config.bin %> work peek TKT-001',
|
|
8
|
+
'<%= config.bin %> work peek TKT-001 --lines 100',
|
|
9
|
+
'<%= config.bin %> work peek TKT-001 --follow',
|
|
10
|
+
'<%= config.bin %> work peek TKT-001 --full',
|
|
11
|
+
];
|
|
12
|
+
static args = {
|
|
13
|
+
ticketId: Args.string({
|
|
14
|
+
description: 'Ticket ID to peek at',
|
|
15
|
+
required: true,
|
|
16
|
+
}),
|
|
17
|
+
};
|
|
18
|
+
static flags = {
|
|
19
|
+
...pmoBaseFlags,
|
|
20
|
+
lines: Flags.integer({
|
|
21
|
+
char: 'l',
|
|
22
|
+
description: 'Number of scrollback lines to capture',
|
|
23
|
+
default: 200,
|
|
24
|
+
}),
|
|
25
|
+
full: Flags.boolean({
|
|
26
|
+
description: 'Capture entire scrollback buffer',
|
|
27
|
+
default: false,
|
|
28
|
+
}),
|
|
29
|
+
follow: Flags.boolean({
|
|
30
|
+
char: 'f',
|
|
31
|
+
description: 'Stream output continuously (like tail -f)',
|
|
32
|
+
default: false,
|
|
33
|
+
}),
|
|
34
|
+
since: Flags.string({
|
|
35
|
+
description: 'Filter output to lines after this timestamp (ISO 8601)',
|
|
36
|
+
}),
|
|
37
|
+
json: Flags.boolean({
|
|
38
|
+
char: 'm',
|
|
39
|
+
aliases: ['machine'],
|
|
40
|
+
description: 'Output as JSON',
|
|
41
|
+
default: false,
|
|
42
|
+
}),
|
|
43
|
+
};
|
|
44
|
+
async execute() {
|
|
45
|
+
const { args, flags } = await this.parse(WorkPeek);
|
|
46
|
+
const jsonMode = shouldOutputJson(flags);
|
|
47
|
+
const handleError = (code, message) => {
|
|
48
|
+
if (jsonMode) {
|
|
49
|
+
outputErrorAsJson(code, message, createMetadata('work peek', flags));
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
this.error(message);
|
|
53
|
+
};
|
|
54
|
+
const ticketId = args.ticketId;
|
|
55
|
+
if (!ticketId) {
|
|
56
|
+
return handleError('MISSING_TICKET', 'Ticket ID is required.');
|
|
57
|
+
}
|
|
58
|
+
// Delegate to session peek with the ticket ID
|
|
59
|
+
const peekArgs = [ticketId];
|
|
60
|
+
if (flags.lines !== 200) {
|
|
61
|
+
peekArgs.push('--lines', String(flags.lines));
|
|
62
|
+
}
|
|
63
|
+
if (flags.full) {
|
|
64
|
+
peekArgs.push('--full');
|
|
65
|
+
}
|
|
66
|
+
if (flags.follow) {
|
|
67
|
+
peekArgs.push('--follow');
|
|
68
|
+
}
|
|
69
|
+
if (flags.since) {
|
|
70
|
+
peekArgs.push('--since', flags.since);
|
|
71
|
+
}
|
|
72
|
+
if (jsonMode) {
|
|
73
|
+
peekArgs.push('--json');
|
|
74
|
+
}
|
|
75
|
+
await this.config.runCommand('session:peek', peekArgs);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=peek.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peek.js","sourceRoot":"","sources":["../../../src/commands/work/peek.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { PMOCommand } from '../../lib/pmo/index.js';
|
|
2
|
+
export default class WorkPoke extends PMOCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static aliases: string[];
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static args: {
|
|
7
|
+
ticketId: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
+
message: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
9
|
+
};
|
|
10
|
+
static flags: {
|
|
11
|
+
file: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
wait: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
|
+
timeout: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
15
|
+
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
16
|
+
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
+
};
|
|
18
|
+
execute(): Promise<void>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Args, Flags } from '@oclif/core';
|
|
2
|
+
import { PMOCommand, pmoBaseFlags } from '../../lib/pmo/index.js';
|
|
3
|
+
import { shouldOutputJson, outputErrorAsJson, createMetadata, } from '../../lib/prompt-json.js';
|
|
4
|
+
export default class WorkPoke extends PMOCommand {
|
|
5
|
+
static description = 'Send a message to steer an agent working on a ticket';
|
|
6
|
+
static aliases = ['work:steer'];
|
|
7
|
+
static examples = [
|
|
8
|
+
'<%= config.bin %> work poke TKT-001 "Focus on the tests first"',
|
|
9
|
+
'<%= config.bin %> work poke TKT-001 --file instructions.md',
|
|
10
|
+
'<%= config.bin %> work poke TKT-001 "Run the tests" --wait',
|
|
11
|
+
'<%= config.bin %> work steer TKT-001 "Add error handling"',
|
|
12
|
+
];
|
|
13
|
+
static args = {
|
|
14
|
+
ticketId: Args.string({
|
|
15
|
+
description: 'Ticket ID of the running agent',
|
|
16
|
+
required: true,
|
|
17
|
+
}),
|
|
18
|
+
message: Args.string({
|
|
19
|
+
description: 'Message to send (use "-" to read from stdin, or omit with --file)',
|
|
20
|
+
required: false,
|
|
21
|
+
}),
|
|
22
|
+
};
|
|
23
|
+
static flags = {
|
|
24
|
+
...pmoBaseFlags,
|
|
25
|
+
file: Flags.string({
|
|
26
|
+
char: 'F',
|
|
27
|
+
description: 'Read message from a file',
|
|
28
|
+
}),
|
|
29
|
+
wait: Flags.boolean({
|
|
30
|
+
char: 'w',
|
|
31
|
+
description: 'Wait for response after sending',
|
|
32
|
+
default: false,
|
|
33
|
+
}),
|
|
34
|
+
timeout: Flags.integer({
|
|
35
|
+
description: 'Timeout in seconds for --wait mode',
|
|
36
|
+
default: 120,
|
|
37
|
+
}),
|
|
38
|
+
json: Flags.boolean({
|
|
39
|
+
char: 'm',
|
|
40
|
+
aliases: ['machine'],
|
|
41
|
+
description: 'Output as JSON',
|
|
42
|
+
default: false,
|
|
43
|
+
}),
|
|
44
|
+
};
|
|
45
|
+
async execute() {
|
|
46
|
+
const { args, flags } = await this.parse(WorkPoke);
|
|
47
|
+
const jsonMode = shouldOutputJson(flags);
|
|
48
|
+
const handleError = (code, message) => {
|
|
49
|
+
if (jsonMode) {
|
|
50
|
+
outputErrorAsJson(code, message, createMetadata('work poke', flags));
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
this.error(message);
|
|
54
|
+
};
|
|
55
|
+
const ticketId = args.ticketId;
|
|
56
|
+
if (!ticketId) {
|
|
57
|
+
return handleError('MISSING_TICKET', 'Ticket ID is required.');
|
|
58
|
+
}
|
|
59
|
+
// Delegate to session poke with the ticket ID
|
|
60
|
+
const pokeArgs = [ticketId];
|
|
61
|
+
if (args.message) {
|
|
62
|
+
pokeArgs.push(args.message);
|
|
63
|
+
}
|
|
64
|
+
if (flags.file) {
|
|
65
|
+
pokeArgs.push('--file', flags.file);
|
|
66
|
+
}
|
|
67
|
+
if (flags.wait) {
|
|
68
|
+
pokeArgs.push('--wait');
|
|
69
|
+
}
|
|
70
|
+
if (flags.timeout !== 120) {
|
|
71
|
+
pokeArgs.push('--timeout', String(flags.timeout));
|
|
72
|
+
}
|
|
73
|
+
if (jsonMode) {
|
|
74
|
+
pokeArgs.push('--json');
|
|
75
|
+
}
|
|
76
|
+
await this.config.runCommand('session:poke', pokeArgs);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=poke.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poke.js","sourceRoot":"","sources":["../../../src/commands/work/poke.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,GACf,MAAM,0BAA0B,CAAA;AAEjC,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,UAAU;IAC9C,MAAM,CAAC,WAAW,GAAG,sDAAsD,CAAA;IAE3E,MAAM,CAAC,OAAO,GAAG,CAAC,YAAY,CAAC,CAAA;IAE/B,MAAM,CAAC,QAAQ,GAAG;QAChB,gEAAgE;QAChE,4DAA4D;QAC5D,4DAA4D;QAC5D,2DAA2D;KAC5D,CAAA;IAED,MAAM,CAAC,IAAI,GAAG;QACZ,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;YACpB,WAAW,EAAE,gCAAgC;YAC7C,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,mEAAmE;YAChF,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH,CAAA;IAED,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,YAAY;QACf,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,0BAA0B;SACxC,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,iCAAiC;YAC9C,OAAO,EAAE,KAAK;SACf,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACrB,WAAW,EAAE,oCAAoC;YACjD,OAAO,EAAE,GAAG;SACb,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,CAAC,SAAS,CAAC;YACpB,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAA;IAED,KAAK,CAAC,OAAO;QACX,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAElD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;QAExC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,OAAe,EAAQ,EAAE;YAC1D,IAAI,QAAQ,EAAE,CAAC;gBACb,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAA;gBACpE,OAAM;YACR,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACrB,CAAC,CAAA;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,WAAW,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,CAAA;QAChE,CAAC;QAED,8CAA8C;QAC9C,MAAM,QAAQ,GAAa,CAAC,QAAQ,CAAC,CAAA;QAErC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC7B,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACzB,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;QACnD,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACzB,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;IACxD,CAAC"}
|
|
@@ -2,44 +2,14 @@ import { PMOCommand } from '../../lib/pmo/index.js';
|
|
|
2
2
|
export default class WorkReview extends PMOCommand {
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
|
+
static strict: boolean;
|
|
5
6
|
static args: {
|
|
6
7
|
ticketId: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
7
8
|
};
|
|
8
9
|
static flags: {
|
|
9
|
-
'max-cycles': import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
-
auto: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
|
-
executor: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
-
'run-on-host': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
|
-
'skip-permissions': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
|
-
display: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
-
session: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
|
-
'poll-interval': import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
-
force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
18
10
|
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
19
11
|
machine: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
20
12
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
21
13
|
};
|
|
22
14
|
execute(): Promise<void>;
|
|
23
|
-
/**
|
|
24
|
-
* Build args for `work:start` command.
|
|
25
|
-
*/
|
|
26
|
-
private buildStartArgs;
|
|
27
|
-
/**
|
|
28
|
-
* Run the fix phase: spawn review-fix agent and wait for completion.
|
|
29
|
-
*/
|
|
30
|
-
private runFixPhase;
|
|
31
|
-
/**
|
|
32
|
-
* Wait for the most recent execution on a ticket to complete.
|
|
33
|
-
* Polls the execution storage and checks tmux session existence.
|
|
34
|
-
*/
|
|
35
|
-
private waitForAgentCompletion;
|
|
36
|
-
/**
|
|
37
|
-
* Check if a tmux session exists.
|
|
38
|
-
*/
|
|
39
|
-
private checkTmuxSession;
|
|
40
|
-
/**
|
|
41
|
-
* Get the review verdict from PR feedback.
|
|
42
|
-
*/
|
|
43
|
-
private getReviewVerdict;
|
|
44
|
-
private sleep;
|
|
45
15
|
}
|