@uzukko/agentpm 0.1.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 (70) hide show
  1. package/bin/taskapp.js +2 -0
  2. package/dist/api-client.d.ts +2 -0
  3. package/dist/api-client.js +27 -0
  4. package/dist/api-client.js.map +1 -0
  5. package/dist/commands/activity.d.ts +2 -0
  6. package/dist/commands/activity.js +88 -0
  7. package/dist/commands/activity.js.map +1 -0
  8. package/dist/commands/ball.d.ts +2 -0
  9. package/dist/commands/ball.js +69 -0
  10. package/dist/commands/ball.js.map +1 -0
  11. package/dist/commands/client.d.ts +2 -0
  12. package/dist/commands/client.js +149 -0
  13. package/dist/commands/client.js.map +1 -0
  14. package/dist/commands/config-cmd.d.ts +2 -0
  15. package/dist/commands/config-cmd.js +95 -0
  16. package/dist/commands/config-cmd.js.map +1 -0
  17. package/dist/commands/meeting.d.ts +2 -0
  18. package/dist/commands/meeting.js +100 -0
  19. package/dist/commands/meeting.js.map +1 -0
  20. package/dist/commands/milestone.d.ts +2 -0
  21. package/dist/commands/milestone.js +98 -0
  22. package/dist/commands/milestone.js.map +1 -0
  23. package/dist/commands/minutes.d.ts +2 -0
  24. package/dist/commands/minutes.js +62 -0
  25. package/dist/commands/minutes.js.map +1 -0
  26. package/dist/commands/review.d.ts +2 -0
  27. package/dist/commands/review.js +98 -0
  28. package/dist/commands/review.js.map +1 -0
  29. package/dist/commands/scheduling.d.ts +2 -0
  30. package/dist/commands/scheduling.js +184 -0
  31. package/dist/commands/scheduling.js.map +1 -0
  32. package/dist/commands/space.d.ts +2 -0
  33. package/dist/commands/space.js +69 -0
  34. package/dist/commands/space.js.map +1 -0
  35. package/dist/commands/task.d.ts +2 -0
  36. package/dist/commands/task.js +192 -0
  37. package/dist/commands/task.js.map +1 -0
  38. package/dist/commands/wiki.d.ts +2 -0
  39. package/dist/commands/wiki.js +121 -0
  40. package/dist/commands/wiki.js.map +1 -0
  41. package/dist/config.d.ts +8 -0
  42. package/dist/config.js +41 -0
  43. package/dist/config.js.map +1 -0
  44. package/dist/defaults.d.ts +4 -0
  45. package/dist/defaults.js +8 -0
  46. package/dist/defaults.js.map +1 -0
  47. package/dist/index.d.ts +1 -0
  48. package/dist/index.js +48 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/output.d.ts +2 -0
  51. package/dist/output.js +140 -0
  52. package/dist/output.js.map +1 -0
  53. package/package.json +31 -0
  54. package/src/api-client.ts +32 -0
  55. package/src/commands/activity.ts +83 -0
  56. package/src/commands/ball.ts +64 -0
  57. package/src/commands/client.ts +135 -0
  58. package/src/commands/config-cmd.ts +106 -0
  59. package/src/commands/meeting.ts +91 -0
  60. package/src/commands/milestone.ts +89 -0
  61. package/src/commands/minutes.ts +57 -0
  62. package/src/commands/review.ts +89 -0
  63. package/src/commands/scheduling.ts +171 -0
  64. package/src/commands/space.ts +62 -0
  65. package/src/commands/task.ts +179 -0
  66. package/src/commands/wiki.ts +110 -0
  67. package/src/config.ts +56 -0
  68. package/src/index.ts +51 -0
  69. package/src/output.ts +139 -0
  70. package/tsconfig.json +19 -0
@@ -0,0 +1,98 @@
1
+ import { resolveSpaceId } from '../config.js';
2
+ import { callTool } from '../api-client.js';
3
+ import { output, outputError } from '../output.js';
4
+ export function registerMilestoneCommands(program) {
5
+ const ms = program.command('milestone').description('Milestone management');
6
+ ms
7
+ .command('list')
8
+ .description('List milestones')
9
+ .option('-s, --space-id <uuid>', 'Space UUID')
10
+ .action(async (opts) => {
11
+ try {
12
+ const result = await callTool('milestone_list', {
13
+ spaceId: resolveSpaceId(opts),
14
+ });
15
+ output(result, program.opts().json);
16
+ }
17
+ catch (e) {
18
+ outputError(e, program.opts().json);
19
+ }
20
+ });
21
+ ms
22
+ .command('create')
23
+ .description('Create a milestone')
24
+ .option('-s, --space-id <uuid>', 'Space UUID')
25
+ .requiredOption('--name <name>', 'Milestone name')
26
+ .option('--due-date <date>', 'Due date (YYYY-MM-DD)')
27
+ .action(async (opts) => {
28
+ try {
29
+ const result = await callTool('milestone_create', {
30
+ spaceId: resolveSpaceId(opts),
31
+ name: opts.name,
32
+ dueDate: opts.dueDate,
33
+ });
34
+ output(result, program.opts().json);
35
+ }
36
+ catch (e) {
37
+ outputError(e, program.opts().json);
38
+ }
39
+ });
40
+ ms
41
+ .command('update')
42
+ .description('Update a milestone')
43
+ .option('-s, --space-id <uuid>', 'Space UUID')
44
+ .requiredOption('--milestone-id <uuid>', 'Milestone UUID')
45
+ .option('--name <name>', 'New name')
46
+ .option('--due-date <date>', 'New due date')
47
+ .option('--order-key <n>', 'Display order key')
48
+ .action(async (opts) => {
49
+ try {
50
+ const result = await callTool('milestone_update', {
51
+ spaceId: resolveSpaceId(opts),
52
+ milestoneId: opts.milestoneId,
53
+ name: opts.name,
54
+ dueDate: opts.dueDate,
55
+ orderKey: opts.orderKey !== undefined ? parseInt(opts.orderKey) : undefined,
56
+ });
57
+ output(result, program.opts().json);
58
+ }
59
+ catch (e) {
60
+ outputError(e, program.opts().json);
61
+ }
62
+ });
63
+ ms
64
+ .command('get')
65
+ .description('Get milestone details')
66
+ .option('-s, --space-id <uuid>', 'Space UUID')
67
+ .requiredOption('--milestone-id <uuid>', 'Milestone UUID')
68
+ .action(async (opts) => {
69
+ try {
70
+ const result = await callTool('milestone_get', {
71
+ spaceId: resolveSpaceId(opts),
72
+ milestoneId: opts.milestoneId,
73
+ });
74
+ output(result, program.opts().json);
75
+ }
76
+ catch (e) {
77
+ outputError(e, program.opts().json);
78
+ }
79
+ });
80
+ ms
81
+ .command('delete')
82
+ .description('Delete a milestone')
83
+ .option('-s, --space-id <uuid>', 'Space UUID')
84
+ .requiredOption('--milestone-id <uuid>', 'Milestone UUID')
85
+ .action(async (opts) => {
86
+ try {
87
+ const result = await callTool('milestone_delete', {
88
+ spaceId: resolveSpaceId(opts),
89
+ milestoneId: opts.milestoneId,
90
+ });
91
+ output(result, program.opts().json);
92
+ }
93
+ catch (e) {
94
+ outputError(e, program.opts().json);
95
+ }
96
+ });
97
+ }
98
+ //# sourceMappingURL=milestone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"milestone.js","sourceRoot":"","sources":["../../src/commands/milestone.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerMinutesCommands(program: Command): void;
@@ -0,0 +1,62 @@
1
+ import { resolveSpaceId } from '../config.js';
2
+ import { callTool } from '../api-client.js';
3
+ import { output, outputError } from '../output.js';
4
+ export function registerMinutesCommands(program) {
5
+ const minutes = program.command('minutes').description('Meeting minutes');
6
+ minutes
7
+ .command('get')
8
+ .description('Get meeting minutes')
9
+ .option('-s, --space-id <uuid>', 'Space UUID')
10
+ .requiredOption('--meeting-id <id>', 'Meeting ID')
11
+ .action(async (opts) => {
12
+ try {
13
+ const result = await callTool('minutes_get', {
14
+ spaceId: resolveSpaceId(opts),
15
+ meetingId: opts.meetingId,
16
+ });
17
+ output(result, program.opts().json);
18
+ }
19
+ catch (e) {
20
+ outputError(e, program.opts().json);
21
+ }
22
+ });
23
+ minutes
24
+ .command('update')
25
+ .description('Update meeting minutes (overwrite)')
26
+ .option('-s, --space-id <uuid>', 'Space UUID')
27
+ .requiredOption('--meeting-id <id>', 'Meeting ID')
28
+ .requiredOption('--minutes-md <md>', 'Minutes content (Markdown)')
29
+ .action(async (opts) => {
30
+ try {
31
+ const result = await callTool('minutes_update', {
32
+ spaceId: resolveSpaceId(opts),
33
+ meetingId: opts.meetingId,
34
+ minutesMd: opts.minutesMd,
35
+ });
36
+ output(result, program.opts().json);
37
+ }
38
+ catch (e) {
39
+ outputError(e, program.opts().json);
40
+ }
41
+ });
42
+ minutes
43
+ .command('append')
44
+ .description('Append to meeting minutes')
45
+ .option('-s, --space-id <uuid>', 'Space UUID')
46
+ .requiredOption('--meeting-id <id>', 'Meeting ID')
47
+ .requiredOption('--content <md>', 'Content to append (Markdown)')
48
+ .action(async (opts) => {
49
+ try {
50
+ const result = await callTool('minutes_append', {
51
+ spaceId: resolveSpaceId(opts),
52
+ meetingId: opts.meetingId,
53
+ content: opts.content,
54
+ });
55
+ output(result, program.opts().json);
56
+ }
57
+ catch (e) {
58
+ outputError(e, program.opts().json);
59
+ }
60
+ });
61
+ }
62
+ //# sourceMappingURL=minutes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minutes.js","sourceRoot":"","sources":["../../src/commands/minutes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAElD,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAA;IAEzE,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,qBAAqB,CAAC;SAClC,MAAM,CAAC,uBAAuB,EAAE,YAAY,CAAC;SAC7C,cAAc,CAAC,mBAAmB,EAAE,YAAY,CAAC;SACjD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE;gBAC3C,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;gBAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CAAC,CAAA;YACF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAA;QAAC,CAAC;IACrD,CAAC,CAAC,CAAA;IAEJ,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,oCAAoC,CAAC;SACjD,MAAM,CAAC,uBAAuB,EAAE,YAAY,CAAC;SAC7C,cAAc,CAAC,mBAAmB,EAAE,YAAY,CAAC;SACjD,cAAc,CAAC,mBAAmB,EAAE,4BAA4B,CAAC;SACjE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gBAAgB,EAAE;gBAC9C,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;gBAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CAAC,CAAA;YACF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAA;QAAC,CAAC;IACrD,CAAC,CAAC,CAAA;IAEJ,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,2BAA2B,CAAC;SACxC,MAAM,CAAC,uBAAuB,EAAE,YAAY,CAAC;SAC7C,cAAc,CAAC,mBAAmB,EAAE,YAAY,CAAC;SACjD,cAAc,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;SAChE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gBAAgB,EAAE;gBAC9C,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;gBAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAA;YACF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAA;QAAC,CAAC;IACrD,CAAC,CAAC,CAAA;AACN,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerReviewCommands(program: Command): void;
@@ -0,0 +1,98 @@
1
+ import { resolveSpaceId } from '../config.js';
2
+ import { callTool } from '../api-client.js';
3
+ import { output, outputError } from '../output.js';
4
+ export function registerReviewCommands(program) {
5
+ const review = program.command('review').description('Review management');
6
+ review
7
+ .command('list')
8
+ .description('List reviews')
9
+ .option('-s, --space-id <uuid>', 'Space UUID')
10
+ .option('--status <status>', 'Filter: open|approved|changes_requested')
11
+ .option('--limit <n>', 'Max results', '20')
12
+ .action(async (opts) => {
13
+ try {
14
+ const result = await callTool('review_list', {
15
+ spaceId: resolveSpaceId(opts),
16
+ status: opts.status,
17
+ limit: parseInt(opts.limit),
18
+ });
19
+ output(result, program.opts().json);
20
+ }
21
+ catch (e) {
22
+ outputError(e, program.opts().json);
23
+ }
24
+ });
25
+ review
26
+ .command('open')
27
+ .description('Open a review')
28
+ .option('-s, --space-id <uuid>', 'Space UUID')
29
+ .requiredOption('--task-id <uuid>', 'Task UUID')
30
+ .requiredOption('--reviewer-ids <ids...>', 'Reviewer UUIDs (1+)')
31
+ .action(async (opts) => {
32
+ try {
33
+ const result = await callTool('review_open', {
34
+ spaceId: resolveSpaceId(opts),
35
+ taskId: opts.taskId,
36
+ reviewerIds: opts.reviewerIds,
37
+ });
38
+ output(result, program.opts().json);
39
+ }
40
+ catch (e) {
41
+ outputError(e, program.opts().json);
42
+ }
43
+ });
44
+ review
45
+ .command('approve')
46
+ .description('Approve a review')
47
+ .option('-s, --space-id <uuid>', 'Space UUID')
48
+ .requiredOption('--task-id <uuid>', 'Task UUID')
49
+ .action(async (opts) => {
50
+ try {
51
+ const result = await callTool('review_approve', {
52
+ spaceId: resolveSpaceId(opts),
53
+ taskId: opts.taskId,
54
+ });
55
+ output(result, program.opts().json);
56
+ }
57
+ catch (e) {
58
+ outputError(e, program.opts().json);
59
+ }
60
+ });
61
+ review
62
+ .command('block')
63
+ .description('Block a review (request changes)')
64
+ .option('-s, --space-id <uuid>', 'Space UUID')
65
+ .requiredOption('--task-id <uuid>', 'Task UUID')
66
+ .requiredOption('--reason <reason>', 'Block reason')
67
+ .action(async (opts) => {
68
+ try {
69
+ const result = await callTool('review_block', {
70
+ spaceId: resolveSpaceId(opts),
71
+ taskId: opts.taskId,
72
+ reason: opts.reason,
73
+ });
74
+ output(result, program.opts().json);
75
+ }
76
+ catch (e) {
77
+ outputError(e, program.opts().json);
78
+ }
79
+ });
80
+ review
81
+ .command('get')
82
+ .description('Get review details with approvals')
83
+ .option('-s, --space-id <uuid>', 'Space UUID')
84
+ .requiredOption('--task-id <uuid>', 'Task UUID')
85
+ .action(async (opts) => {
86
+ try {
87
+ const result = await callTool('review_get', {
88
+ spaceId: resolveSpaceId(opts),
89
+ taskId: opts.taskId,
90
+ });
91
+ output(result, program.opts().json);
92
+ }
93
+ catch (e) {
94
+ outputError(e, program.opts().json);
95
+ }
96
+ });
97
+ }
98
+ //# sourceMappingURL=review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerSchedulingCommands(program: Command): void;
@@ -0,0 +1,184 @@
1
+ import { resolveSpaceId } from '../config.js';
2
+ import { callTool } from '../api-client.js';
3
+ import { output, outputError } from '../output.js';
4
+ export function registerSchedulingCommands(program) {
5
+ const sched = program.command('scheduling').description('Scheduling management');
6
+ sched
7
+ .command('list')
8
+ .description('List scheduling proposals')
9
+ .option('-s, --space-id <uuid>', 'Space UUID')
10
+ .option('--status <status>', 'Filter: open|confirmed|cancelled|expired')
11
+ .option('--limit <n>', 'Max results', '50')
12
+ .action(async (opts) => {
13
+ try {
14
+ const result = await callTool('list_scheduling_proposals', {
15
+ spaceId: resolveSpaceId(opts),
16
+ status: opts.status,
17
+ limit: parseInt(opts.limit),
18
+ });
19
+ output(result, program.opts().json);
20
+ }
21
+ catch (e) {
22
+ outputError(e, program.opts().json);
23
+ }
24
+ });
25
+ sched
26
+ .command('create')
27
+ .description('Create a scheduling proposal (use --stdin for complex input)')
28
+ .option('-s, --space-id <uuid>', 'Space UUID')
29
+ .option('--stdin', 'Read JSON params from stdin')
30
+ .action(async (opts) => {
31
+ try {
32
+ let rawParams;
33
+ if (opts.stdin) {
34
+ const chunks = [];
35
+ for await (const chunk of process.stdin) {
36
+ chunks.push(chunk);
37
+ }
38
+ rawParams = JSON.parse(Buffer.concat(chunks).toString('utf-8'));
39
+ rawParams.spaceId ??= resolveSpaceId(opts);
40
+ }
41
+ else {
42
+ console.error('Error: scheduling create requires --stdin with JSON input for slots/respondents.');
43
+ console.error('Example: echo \'{"title":"Meeting","slots":[...],"respondents":[...]}\' | agentpm scheduling create --stdin');
44
+ process.exit(1);
45
+ }
46
+ const result = await callTool('create_scheduling_proposal', rawParams);
47
+ output(result, program.opts().json);
48
+ }
49
+ catch (e) {
50
+ outputError(e, program.opts().json);
51
+ }
52
+ });
53
+ sched
54
+ .command('respond')
55
+ .description('Respond to a scheduling proposal (use --stdin)')
56
+ .option('-s, --space-id <uuid>', 'Space UUID')
57
+ .option('--stdin', 'Read JSON params from stdin')
58
+ .requiredOption('--proposal-id <uuid>', 'Proposal UUID')
59
+ .action(async (opts) => {
60
+ try {
61
+ let rawParams;
62
+ if (opts.stdin) {
63
+ const chunks = [];
64
+ for await (const chunk of process.stdin) {
65
+ chunks.push(chunk);
66
+ }
67
+ rawParams = JSON.parse(Buffer.concat(chunks).toString('utf-8'));
68
+ rawParams.spaceId ??= resolveSpaceId(opts);
69
+ rawParams.proposalId ??= opts.proposalId;
70
+ }
71
+ else {
72
+ console.error('Error: scheduling respond requires --stdin with JSON responses.');
73
+ process.exit(1);
74
+ }
75
+ const result = await callTool('respond_to_proposal', rawParams);
76
+ output(result, program.opts().json);
77
+ }
78
+ catch (e) {
79
+ outputError(e, program.opts().json);
80
+ }
81
+ });
82
+ sched
83
+ .command('confirm')
84
+ .description('Confirm a scheduling slot')
85
+ .option('-s, --space-id <uuid>', 'Space UUID')
86
+ .requiredOption('--proposal-id <uuid>', 'Proposal UUID')
87
+ .requiredOption('--slot-id <uuid>', 'Slot UUID to confirm')
88
+ .action(async (opts) => {
89
+ try {
90
+ const result = await callTool('confirm_proposal_slot', {
91
+ spaceId: resolveSpaceId(opts),
92
+ proposalId: opts.proposalId,
93
+ slotId: opts.slotId,
94
+ });
95
+ output(result, program.opts().json);
96
+ }
97
+ catch (e) {
98
+ outputError(e, program.opts().json);
99
+ }
100
+ });
101
+ sched
102
+ .command('cancel')
103
+ .description('Cancel or extend a proposal')
104
+ .option('-s, --space-id <uuid>', 'Space UUID')
105
+ .requiredOption('--proposal-id <uuid>', 'Proposal UUID')
106
+ .requiredOption('--action <action>', 'cancel|extend')
107
+ .option('--new-expires-at <datetime>', 'New expiry (ISO8601, required for extend)')
108
+ .action(async (opts) => {
109
+ try {
110
+ const result = await callTool('cancel_scheduling_proposal', {
111
+ spaceId: resolveSpaceId(opts),
112
+ proposalId: opts.proposalId,
113
+ action: opts.action,
114
+ newExpiresAt: opts.newExpiresAt,
115
+ });
116
+ output(result, program.opts().json);
117
+ }
118
+ catch (e) {
119
+ outputError(e, program.opts().json);
120
+ }
121
+ });
122
+ sched
123
+ .command('responses')
124
+ .description('Get proposal response status')
125
+ .option('-s, --space-id <uuid>', 'Space UUID')
126
+ .requiredOption('--proposal-id <uuid>', 'Proposal UUID')
127
+ .action(async (opts) => {
128
+ try {
129
+ const result = await callTool('get_proposal_responses', {
130
+ spaceId: resolveSpaceId(opts),
131
+ proposalId: opts.proposalId,
132
+ });
133
+ output(result, program.opts().json);
134
+ }
135
+ catch (e) {
136
+ outputError(e, program.opts().json);
137
+ }
138
+ });
139
+ sched
140
+ .command('suggest')
141
+ .description('Suggest available time slots from Google Calendar')
142
+ .option('-s, --space-id <uuid>', 'Space UUID')
143
+ .requiredOption('--user-ids <ids...>', 'User UUIDs to check')
144
+ .requiredOption('--start-date <date>', 'Start date (YYYY-MM-DD)')
145
+ .requiredOption('--end-date <date>', 'End date (YYYY-MM-DD)')
146
+ .option('--duration-minutes <n>', 'Duration in minutes', '60')
147
+ .option('--business-hour-start <n>', 'Business start hour', '9')
148
+ .option('--business-hour-end <n>', 'Business end hour', '18')
149
+ .action(async (opts) => {
150
+ try {
151
+ const result = await callTool('suggest_available_slots', {
152
+ spaceId: resolveSpaceId(opts),
153
+ userIds: opts.userIds,
154
+ startDate: opts.startDate,
155
+ endDate: opts.endDate,
156
+ durationMinutes: parseInt(opts.durationMinutes),
157
+ businessHourStart: parseInt(opts.businessHourStart),
158
+ businessHourEnd: parseInt(opts.businessHourEnd),
159
+ });
160
+ output(result, program.opts().json);
161
+ }
162
+ catch (e) {
163
+ outputError(e, program.opts().json);
164
+ }
165
+ });
166
+ sched
167
+ .command('reminder')
168
+ .description('Send reminder to unresponded users')
169
+ .option('-s, --space-id <uuid>', 'Space UUID')
170
+ .requiredOption('--proposal-id <uuid>', 'Proposal UUID')
171
+ .action(async (opts) => {
172
+ try {
173
+ const result = await callTool('send_proposal_reminder', {
174
+ spaceId: resolveSpaceId(opts),
175
+ proposalId: opts.proposalId,
176
+ });
177
+ output(result, program.opts().json);
178
+ }
179
+ catch (e) {
180
+ outputError(e, program.opts().json);
181
+ }
182
+ });
183
+ }
184
+ //# sourceMappingURL=scheduling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduling.js","sourceRoot":"","sources":["../../src/commands/scheduling.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerSpaceCommands(program: Command): void;
@@ -0,0 +1,69 @@
1
+ import { resolveSpaceId } from '../config.js';
2
+ import { callTool } from '../api-client.js';
3
+ import { output, outputError } from '../output.js';
4
+ export function registerSpaceCommands(program) {
5
+ const space = program.command('space').description('Space/project management');
6
+ space
7
+ .command('list')
8
+ .description('List spaces')
9
+ .option('--type <type>', 'Filter: project|personal')
10
+ .action(async (opts) => {
11
+ try {
12
+ const result = await callTool('space_list', { type: opts.type });
13
+ output(result, program.opts().json);
14
+ }
15
+ catch (e) {
16
+ outputError(e, program.opts().json);
17
+ }
18
+ });
19
+ space
20
+ .command('create')
21
+ .description('Create a space')
22
+ .requiredOption('--name <name>', 'Space name')
23
+ .option('--type <type>', 'project|personal', 'project')
24
+ .action(async (opts) => {
25
+ try {
26
+ const result = await callTool('space_create', {
27
+ name: opts.name,
28
+ type: opts.type,
29
+ });
30
+ output(result, program.opts().json);
31
+ }
32
+ catch (e) {
33
+ outputError(e, program.opts().json);
34
+ }
35
+ });
36
+ space
37
+ .command('update')
38
+ .description('Update a space')
39
+ .option('-s, --space-id <uuid>', 'Space UUID')
40
+ .option('--name <name>', 'New name')
41
+ .action(async (opts) => {
42
+ try {
43
+ const result = await callTool('space_update', {
44
+ spaceId: resolveSpaceId(opts),
45
+ name: opts.name,
46
+ });
47
+ output(result, program.opts().json);
48
+ }
49
+ catch (e) {
50
+ outputError(e, program.opts().json);
51
+ }
52
+ });
53
+ space
54
+ .command('get')
55
+ .description('Get space details')
56
+ .option('-s, --space-id <uuid>', 'Space UUID')
57
+ .action(async (opts) => {
58
+ try {
59
+ const result = await callTool('space_get', {
60
+ spaceId: resolveSpaceId(opts),
61
+ });
62
+ output(result, program.opts().json);
63
+ }
64
+ catch (e) {
65
+ outputError(e, program.opts().json);
66
+ }
67
+ });
68
+ }
69
+ //# sourceMappingURL=space.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"space.js","sourceRoot":"","sources":["../../src/commands/space.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerTaskCommands(program: Command): void;