@execufunction/cli 0.3.1 → 0.4.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.
- package/dist/commands/tasks/create.d.ts +5 -0
- package/dist/commands/tasks/create.d.ts.map +1 -1
- package/dist/commands/tasks/create.js +43 -0
- package/dist/commands/tasks/create.js.map +1 -1
- package/dist/commands/tasks/get.d.ts.map +1 -1
- package/dist/commands/tasks/get.js +24 -0
- package/dist/commands/tasks/get.js.map +1 -1
- package/dist/commands/tasks/list.d.ts +3 -0
- package/dist/commands/tasks/list.d.ts.map +1 -1
- package/dist/commands/tasks/list.js +17 -1
- package/dist/commands/tasks/list.js.map +1 -1
- package/dist/commands/tasks/update.d.ts +6 -0
- package/dist/commands/tasks/update.d.ts.map +1 -1
- package/dist/commands/tasks/update.js +42 -0
- package/dist/commands/tasks/update.js.map +1 -1
- package/oclif.manifest.json +964 -796
- package/package.json +2 -2
|
@@ -8,6 +8,11 @@ export default class TasksCreate extends BaseCommand {
|
|
|
8
8
|
priority: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
9
|
due: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
10
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
phase: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
effort: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
'executor-agent': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
'acceptance-criteria': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
scope: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
16
|
token: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
17
|
'api-url': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
18
|
'no-input': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/tasks/create.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AAEtD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,MAAM,CAAC,WAAW,SAAmB;IAErC,MAAM,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/tasks/create.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AAEtD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,MAAM,CAAC,WAAW,SAAmB;IAErC,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;;;MA4BV;IAEI,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;CAgD9B"}
|
|
@@ -7,6 +7,7 @@ class TasksCreate extends base_command_js_1.BaseCommand {
|
|
|
7
7
|
static examples = [
|
|
8
8
|
'<%= config.bin %> tasks create --title "Review PR"',
|
|
9
9
|
'<%= config.bin %> tasks create --title "Ship feature" --priority do_now --due 2026-03-01',
|
|
10
|
+
'<%= config.bin %> tasks create --title "Refactor auth" --effort medium --phase draft',
|
|
10
11
|
];
|
|
11
12
|
static flags = {
|
|
12
13
|
...base_command_js_1.BaseCommand.baseFlags,
|
|
@@ -18,16 +19,58 @@ class TasksCreate extends base_command_js_1.BaseCommand {
|
|
|
18
19
|
}),
|
|
19
20
|
due: core_1.Flags.string({ description: 'Due date (ISO 8601)' }),
|
|
20
21
|
project: core_1.Flags.string({ description: 'Project ID' }),
|
|
22
|
+
phase: core_1.Flags.string({
|
|
23
|
+
description: 'Lifecycle phase',
|
|
24
|
+
options: ['draft', 'open', 'in_flight', 'review', 'blocked', 'done', 'cancelled'],
|
|
25
|
+
}),
|
|
26
|
+
effort: core_1.Flags.string({
|
|
27
|
+
description: 'Effort estimate',
|
|
28
|
+
options: ['trivial', 'small', 'medium', 'large', 'epic', 'unknown'],
|
|
29
|
+
}),
|
|
30
|
+
'executor-agent': core_1.Flags.string({
|
|
31
|
+
description: 'AI executor agent',
|
|
32
|
+
options: ['claude_code', 'openclaw', 'cursor', 'windsurf'],
|
|
33
|
+
}),
|
|
34
|
+
'acceptance-criteria': core_1.Flags.string({
|
|
35
|
+
description: 'Acceptance criteria (semicolon-separated text, e.g. "tests pass; docs updated")',
|
|
36
|
+
}),
|
|
37
|
+
scope: core_1.Flags.string({
|
|
38
|
+
description: 'Scope boundaries (JSON object with include/exclude arrays)',
|
|
39
|
+
}),
|
|
21
40
|
};
|
|
22
41
|
async run() {
|
|
23
42
|
const { flags } = await this.parse(TasksCreate);
|
|
24
43
|
const client = await this.client(flags);
|
|
44
|
+
// Parse acceptance criteria: semicolon-separated → array of {text, met: false}
|
|
45
|
+
let acceptanceCriteria;
|
|
46
|
+
if (flags['acceptance-criteria']) {
|
|
47
|
+
acceptanceCriteria = flags['acceptance-criteria']
|
|
48
|
+
.split(';')
|
|
49
|
+
.map(s => s.trim())
|
|
50
|
+
.filter(Boolean)
|
|
51
|
+
.map(text => ({ text, met: false }));
|
|
52
|
+
}
|
|
53
|
+
// Parse scope as JSON
|
|
54
|
+
let scope;
|
|
55
|
+
if (flags.scope) {
|
|
56
|
+
try {
|
|
57
|
+
scope = JSON.parse(flags.scope);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
this.error('Invalid JSON for --scope flag');
|
|
61
|
+
}
|
|
62
|
+
}
|
|
25
63
|
const response = await client.createTask({
|
|
26
64
|
title: flags.title,
|
|
27
65
|
description: flags.description,
|
|
28
66
|
priority: flags.priority,
|
|
29
67
|
dueAt: flags.due,
|
|
30
68
|
projectId: flags.project,
|
|
69
|
+
phase: flags.phase,
|
|
70
|
+
effort: flags.effort,
|
|
71
|
+
executorAgent: flags['executor-agent'],
|
|
72
|
+
acceptanceCriteria,
|
|
73
|
+
scope,
|
|
31
74
|
}, this.idempotencyKey());
|
|
32
75
|
this.handleApiError(response);
|
|
33
76
|
const task = this.unwrapOne(response, 'task');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/tasks/create.ts"],"names":[],"mappings":";;AAAA,sCAAkC;AAClC,+DAAsD;AAEtD,MAAqB,WAAY,SAAQ,6BAAW;IAClD,MAAM,CAAC,WAAW,GAAG,eAAe,CAAC;IAErC,MAAM,CAAC,QAAQ,GAAG;QAChB,oDAAoD;QACpD,0FAA0F;
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/tasks/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/tasks/get.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AAGtD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAC/C,MAAM,CAAC,WAAW,SAAsB;IAExC,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;;MAEV;IAEI,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/tasks/get.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AAGtD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW;IAC/C,MAAM,CAAC,WAAW,SAAsB;IAExC,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;;MAEV;IAEI,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;CAgD9B"}
|
|
@@ -18,11 +18,35 @@ class TasksGet extends base_command_js_1.BaseCommand {
|
|
|
18
18
|
this.handleApiError(response);
|
|
19
19
|
const task = this.unwrapOne(response, 'task');
|
|
20
20
|
if (!this.jsonEnabled()) {
|
|
21
|
+
// Format acceptance criteria
|
|
22
|
+
const ac = task.acceptanceCriteria;
|
|
23
|
+
let acDisplay = '—';
|
|
24
|
+
if (ac && ac.length > 0) {
|
|
25
|
+
const met = ac.filter((c) => c.met).length;
|
|
26
|
+
acDisplay = `${met}/${ac.length} met\n` + ac.map((c) => ` ${c.met ? '[x]' : '[ ]'} ${c.text}`).join('\n');
|
|
27
|
+
}
|
|
28
|
+
// Format scope
|
|
29
|
+
const sc = task.scope;
|
|
30
|
+
let scopeDisplay = '—';
|
|
31
|
+
if (sc && ((sc.include?.length ?? 0) > 0 || (sc.exclude?.length ?? 0) > 0)) {
|
|
32
|
+
const parts = [];
|
|
33
|
+
if (sc.include?.length)
|
|
34
|
+
parts.push(...sc.include.map((s) => ` + ${s}`));
|
|
35
|
+
if (sc.exclude?.length)
|
|
36
|
+
parts.push(...sc.exclude.map((s) => ` - ${s}`));
|
|
37
|
+
scopeDisplay = parts.join('\n');
|
|
38
|
+
}
|
|
21
39
|
(0, output_js_1.renderDetail)([
|
|
22
40
|
['ID', task.id],
|
|
23
41
|
['Title', task.title],
|
|
42
|
+
['Phase', task.phase || 'open'],
|
|
43
|
+
['Effort', task.effort || 'unknown'],
|
|
24
44
|
['Status', task.status],
|
|
25
45
|
['Priority', task.priority],
|
|
46
|
+
['Executor', task.executorAgent || '—'],
|
|
47
|
+
['Blocked Reason', task.blockedReason || '—'],
|
|
48
|
+
['Acceptance Criteria', acDisplay],
|
|
49
|
+
['Scope', scopeDisplay],
|
|
26
50
|
['Description', task.description],
|
|
27
51
|
['Due', (0, output_js_1.formatDate)(task.dueAt)],
|
|
28
52
|
['Project', task.projectId],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/tasks/get.ts"],"names":[],"mappings":";;AAAA,sCAAiC;AACjC,+DAAsD;AACtD,mDAA6D;AAE7D,MAAqB,QAAS,SAAQ,6BAAW;IAC/C,MAAM,CAAC,WAAW,GAAG,kBAAkB,CAAC;IAExC,MAAM,CAAC,IAAI,GAAG;QACZ,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC,EAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;KAC1D,CAAC;IAEF,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,6BAAW,CAAC,SAAS;KACzB,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAE9B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE9C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,IAAA,wBAAY,EAAC;gBACX,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBACf,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;gBACrB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;gBACvB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC;gBAC3B,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC;gBACjC,CAAC,KAAK,EAAE,IAAA,sBAAU,EAAC,IAAI,CAAC,KAAe,CAAC,CAAC;gBACzC,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC;gBAC3B,CAAC,SAAS,EAAE,IAAA,sBAAU,EAAC,IAAI,CAAC,SAAmB,CAAC,CAAC;gBACjD,CAAC,SAAS,EAAE,IAAA,sBAAU,EAAC,IAAI,CAAC,SAAmB,CAAC,CAAC;aAClD,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;;
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/tasks/get.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,9 @@ export default class TasksList extends BaseCommand {
|
|
|
6
6
|
status: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
7
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
8
|
limit: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
phase: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
effort: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
'executor-agent': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
12
|
token: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
13
|
'api-url': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
14
|
'no-input': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/tasks/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AAGtD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IAChD,MAAM,CAAC,WAAW,SAAgB;IAElC,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/tasks/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AAGtD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IAChD,MAAM,CAAC,WAAW,SAAgB;IAElC,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;MAoBV;IAEI,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;CA4B9B"}
|
|
@@ -18,6 +18,18 @@ class TasksList extends base_command_js_1.BaseCommand {
|
|
|
18
18
|
}),
|
|
19
19
|
project: core_1.Flags.string({ description: 'Filter by project ID' }),
|
|
20
20
|
limit: core_1.Flags.integer({ description: 'Maximum number of results' }),
|
|
21
|
+
phase: core_1.Flags.string({
|
|
22
|
+
description: 'Filter by phase',
|
|
23
|
+
options: ['draft', 'open', 'in_flight', 'review', 'blocked', 'done', 'cancelled'],
|
|
24
|
+
}),
|
|
25
|
+
effort: core_1.Flags.string({
|
|
26
|
+
description: 'Filter by effort',
|
|
27
|
+
options: ['trivial', 'small', 'medium', 'large', 'epic', 'unknown'],
|
|
28
|
+
}),
|
|
29
|
+
'executor-agent': core_1.Flags.string({
|
|
30
|
+
description: 'Filter by executor agent',
|
|
31
|
+
options: ['claude_code', 'openclaw', 'cursor', 'windsurf'],
|
|
32
|
+
}),
|
|
21
33
|
};
|
|
22
34
|
async run() {
|
|
23
35
|
const { flags } = await this.parse(TasksList);
|
|
@@ -26,6 +38,9 @@ class TasksList extends base_command_js_1.BaseCommand {
|
|
|
26
38
|
status: flags.status,
|
|
27
39
|
projectId: flags.project,
|
|
28
40
|
limit: flags.limit,
|
|
41
|
+
phase: flags.phase,
|
|
42
|
+
effort: flags.effort,
|
|
43
|
+
executorAgent: flags['executor-agent'],
|
|
29
44
|
});
|
|
30
45
|
this.handleApiError(response);
|
|
31
46
|
const tasks = this.unwrapList(response, 'tasks');
|
|
@@ -33,8 +48,9 @@ class TasksList extends base_command_js_1.BaseCommand {
|
|
|
33
48
|
(0, output_js_1.renderTable)(tasks, [
|
|
34
49
|
{ key: 'id', header: 'ID' },
|
|
35
50
|
{ key: 'title', header: 'Title' },
|
|
51
|
+
{ key: 'phase', header: 'Phase', get: (r) => r.phase || 'open' },
|
|
52
|
+
{ key: 'effort', header: 'Effort', get: (r) => r.effort || '—' },
|
|
36
53
|
{ key: 'status', header: 'Status' },
|
|
37
|
-
{ key: 'priority', header: 'Priority' },
|
|
38
54
|
{ key: 'dueAt', header: 'Due', get: (r) => r.dueAt ? new Date(r.dueAt).toLocaleDateString() : '—' },
|
|
39
55
|
]);
|
|
40
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/tasks/list.ts"],"names":[],"mappings":";;AAAA,sCAAkC;AAClC,+DAAsD;AACtD,mDAAgD;AAEhD,MAAqB,SAAU,SAAQ,6BAAW;IAChD,MAAM,CAAC,WAAW,GAAG,YAAY,CAAC;IAElC,MAAM,CAAC,QAAQ,GAAG;QAChB,8BAA8B;QAC9B,mDAAmD;QACnD,4DAA4D;KAC7D,CAAC;IAEF,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,6BAAW,CAAC,SAAS;QACxB,MAAM,EAAE,YAAK,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,kBAAkB;YAC/B,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC;SACzF,CAAC;QACF,OAAO,EAAE,YAAK,CAAC,MAAM,CAAC,EAAC,WAAW,EAAE,sBAAsB,EAAC,CAAC;QAC5D,KAAK,EAAE,YAAK,CAAC,OAAO,CAAC,EAAC,WAAW,EAAE,2BAA2B,EAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/tasks/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,12 @@ export default class TasksUpdate extends BaseCommand {
|
|
|
11
11
|
priority: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
12
|
due: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
13
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
phase: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
effort: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
|
+
'executor-agent': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
+
'blocked-reason': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
18
|
+
'acceptance-criteria': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
19
|
+
scope: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
20
|
token: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
21
|
'api-url': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
22
|
'no-input': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/tasks/update.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AAEtD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,MAAM,CAAC,WAAW,SAAmB;IAErC,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/tasks/update.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AAEtD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,MAAM,CAAC,WAAW,SAAmB;IAErC,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;MAiCV;IAEI,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;CAuC9B"}
|
|
@@ -21,6 +21,25 @@ class TasksUpdate extends base_command_js_1.BaseCommand {
|
|
|
21
21
|
}),
|
|
22
22
|
due: core_1.Flags.string({ description: 'Due date (ISO 8601)' }),
|
|
23
23
|
project: core_1.Flags.string({ description: 'Project ID' }),
|
|
24
|
+
phase: core_1.Flags.string({
|
|
25
|
+
description: 'Lifecycle phase',
|
|
26
|
+
options: ['draft', 'open', 'in_flight', 'review', 'blocked', 'done', 'cancelled'],
|
|
27
|
+
}),
|
|
28
|
+
effort: core_1.Flags.string({
|
|
29
|
+
description: 'Effort estimate',
|
|
30
|
+
options: ['trivial', 'small', 'medium', 'large', 'epic', 'unknown'],
|
|
31
|
+
}),
|
|
32
|
+
'executor-agent': core_1.Flags.string({
|
|
33
|
+
description: 'AI executor agent',
|
|
34
|
+
options: ['claude_code', 'openclaw', 'cursor', 'windsurf'],
|
|
35
|
+
}),
|
|
36
|
+
'blocked-reason': core_1.Flags.string({ description: 'Reason task is blocked' }),
|
|
37
|
+
'acceptance-criteria': core_1.Flags.string({
|
|
38
|
+
description: 'Acceptance criteria (semicolon-separated text, e.g. "tests pass; docs updated")',
|
|
39
|
+
}),
|
|
40
|
+
scope: core_1.Flags.string({
|
|
41
|
+
description: 'Scope boundaries (JSON object with include/exclude arrays)',
|
|
42
|
+
}),
|
|
24
43
|
};
|
|
25
44
|
async run() {
|
|
26
45
|
const { args, flags } = await this.parse(TasksUpdate);
|
|
@@ -38,6 +57,29 @@ class TasksUpdate extends base_command_js_1.BaseCommand {
|
|
|
38
57
|
updates.dueAt = flags.due;
|
|
39
58
|
if (flags.project !== undefined)
|
|
40
59
|
updates.projectId = flags.project;
|
|
60
|
+
if (flags.phase !== undefined)
|
|
61
|
+
updates.phase = flags.phase;
|
|
62
|
+
if (flags.effort !== undefined)
|
|
63
|
+
updates.effort = flags.effort;
|
|
64
|
+
if (flags['executor-agent'] !== undefined)
|
|
65
|
+
updates.executorAgent = flags['executor-agent'];
|
|
66
|
+
if (flags['blocked-reason'] !== undefined)
|
|
67
|
+
updates.blockedReason = flags['blocked-reason'];
|
|
68
|
+
if (flags['acceptance-criteria'] !== undefined) {
|
|
69
|
+
updates.acceptanceCriteria = flags['acceptance-criteria']
|
|
70
|
+
.split(';')
|
|
71
|
+
.map((s) => s.trim())
|
|
72
|
+
.filter(Boolean)
|
|
73
|
+
.map((text) => ({ text, met: false }));
|
|
74
|
+
}
|
|
75
|
+
if (flags.scope !== undefined) {
|
|
76
|
+
try {
|
|
77
|
+
updates.scope = JSON.parse(flags.scope);
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
this.error('Invalid JSON for --scope flag');
|
|
81
|
+
}
|
|
82
|
+
}
|
|
41
83
|
const response = await client.updateTask(args.id, updates, this.idempotencyKey());
|
|
42
84
|
this.handleApiError(response);
|
|
43
85
|
if (!this.jsonEnabled()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/tasks/update.ts"],"names":[],"mappings":";;AAAA,sCAAwC;AACxC,+DAAsD;AAEtD,MAAqB,WAAY,SAAQ,6BAAW;IAClD,MAAM,CAAC,WAAW,GAAG,eAAe,CAAC;IAErC,MAAM,CAAC,IAAI,GAAG;QACZ,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC,EAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;KAC1D,CAAC;IAEF,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,6BAAW,CAAC,SAAS;QACxB,KAAK,EAAE,YAAK,CAAC,MAAM,CAAC,EAAC,WAAW,EAAE,YAAY,EAAC,CAAC;QAChD,WAAW,EAAE,YAAK,CAAC,MAAM,CAAC,EAAC,WAAW,EAAE,kBAAkB,EAAC,CAAC;QAC5D,MAAM,EAAE,YAAK,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,aAAa;YAC1B,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC;SACzF,CAAC;QACF,QAAQ,EAAE,YAAK,CAAC,MAAM,CAAC;YACrB,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC;SACvD,CAAC;QACF,GAAG,EAAE,YAAK,CAAC,MAAM,CAAC,EAAC,WAAW,EAAE,qBAAqB,EAAC,CAAC;QACvD,OAAO,EAAE,YAAK,CAAC,MAAM,CAAC,EAAC,WAAW,EAAE,YAAY,EAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/tasks/update.ts"],"names":[],"mappings":"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"}
|