@agentteams/cli 0.1.96 → 0.1.98

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 (224) hide show
  1. package/.eslintcache +1 -1
  2. package/README.md +81 -23
  3. package/dist/auth/credentialStore.d.ts +70 -10
  4. package/dist/auth/credentialStore.d.ts.map +1 -1
  5. package/dist/auth/credentialStore.js +207 -20
  6. package/dist/auth/credentialStore.js.map +1 -1
  7. package/dist/auth/fileCredentialStore.d.ts +172 -0
  8. package/dist/auth/fileCredentialStore.d.ts.map +1 -0
  9. package/dist/auth/fileCredentialStore.js +445 -0
  10. package/dist/auth/fileCredentialStore.js.map +1 -0
  11. package/dist/auth/personalTokenClient.d.ts +7 -1
  12. package/dist/auth/personalTokenClient.d.ts.map +1 -1
  13. package/dist/auth/personalTokenClient.js +19 -4
  14. package/dist/auth/personalTokenClient.js.map +1 -1
  15. package/dist/auth/personalTokenStore.d.ts +1 -1
  16. package/dist/auth/personalTokenStore.d.ts.map +1 -1
  17. package/dist/auth/personalTokenStore.js +7 -2
  18. package/dist/auth/personalTokenStore.js.map +1 -1
  19. package/dist/auth/refreshLock.d.ts +5 -2
  20. package/dist/auth/refreshLock.d.ts.map +1 -1
  21. package/dist/auth/refreshLock.js +8 -4
  22. package/dist/auth/refreshLock.js.map +1 -1
  23. package/dist/auth/slotHash.d.ts +15 -0
  24. package/dist/auth/slotHash.d.ts.map +1 -0
  25. package/dist/auth/slotHash.js +18 -0
  26. package/dist/auth/slotHash.js.map +1 -0
  27. package/dist/commands/auth.d.ts +8 -1
  28. package/dist/commands/auth.d.ts.map +1 -1
  29. package/dist/commands/auth.js +41 -7
  30. package/dist/commands/auth.js.map +1 -1
  31. package/dist/commands/coaction.d.ts.map +1 -1
  32. package/dist/commands/coaction.js +6 -21
  33. package/dist/commands/coaction.js.map +1 -1
  34. package/dist/commands/codeReview.d.ts.map +1 -1
  35. package/dist/commands/codeReview.js +1 -2
  36. package/dist/commands/codeReview.js.map +1 -1
  37. package/dist/commands/doctor.js +1 -1
  38. package/dist/commands/doctor.js.map +1 -1
  39. package/dist/commands/document.d.ts +0 -1
  40. package/dist/commands/document.d.ts.map +1 -1
  41. package/dist/commands/document.js +1 -1
  42. package/dist/commands/document.js.map +1 -1
  43. package/dist/commands/init.d.ts +1 -0
  44. package/dist/commands/init.d.ts.map +1 -1
  45. package/dist/commands/init.js +2 -0
  46. package/dist/commands/init.js.map +1 -1
  47. package/dist/commands/plan.d.ts.map +1 -1
  48. package/dist/commands/plan.js +10 -53
  49. package/dist/commands/plan.js.map +1 -1
  50. package/dist/commands/postmortem.d.ts.map +1 -1
  51. package/dist/commands/postmortem.js +1 -5
  52. package/dist/commands/postmortem.js.map +1 -1
  53. package/dist/commands/report.d.ts.map +1 -1
  54. package/dist/commands/report.js +1 -5
  55. package/dist/commands/report.js.map +1 -1
  56. package/dist/commands/task.js +2 -2
  57. package/dist/commands/task.js.map +1 -1
  58. package/dist/index.js +3 -1350
  59. package/dist/index.js.map +1 -1
  60. package/dist/mcp/context.d.ts +1 -1
  61. package/dist/mcp/context.js +1 -1
  62. package/dist/mcp/context.js.map +1 -1
  63. package/dist/mcp-registration/index.js +3 -3
  64. package/dist/mcp-registration/index.js.map +1 -1
  65. package/dist/mcp-registration/serverSpec.d.ts +1 -1
  66. package/dist/program/agentConfig.d.ts +3 -0
  67. package/dist/program/agentConfig.d.ts.map +1 -0
  68. package/dist/program/agentConfig.js +14 -0
  69. package/dist/program/agentConfig.js.map +1 -0
  70. package/dist/program/attachment.d.ts +3 -0
  71. package/dist/program/attachment.d.ts.map +1 -0
  72. package/dist/program/attachment.js +17 -0
  73. package/dist/program/attachment.js.map +1 -0
  74. package/dist/program/auth.d.ts +3 -0
  75. package/dist/program/auth.d.ts.map +1 -0
  76. package/dist/program/auth.js +39 -0
  77. package/dist/program/auth.js.map +1 -0
  78. package/dist/program/changeSet.d.ts +4 -0
  79. package/dist/program/changeSet.d.ts.map +1 -0
  80. package/dist/program/changeSet.js +53 -0
  81. package/dist/program/changeSet.js.map +1 -0
  82. package/dist/program/coaction.d.ts +7 -0
  83. package/dist/program/coaction.d.ts.map +1 -0
  84. package/dist/program/coaction.js +81 -0
  85. package/dist/program/coaction.js.map +1 -0
  86. package/dist/program/codeReview.d.ts +4 -0
  87. package/dist/program/codeReview.d.ts.map +1 -0
  88. package/dist/program/codeReview.js +100 -0
  89. package/dist/program/codeReview.js.map +1 -0
  90. package/dist/program/comment.d.ts +4 -0
  91. package/dist/program/comment.d.ts.map +1 -0
  92. package/dist/program/comment.js +50 -0
  93. package/dist/program/comment.js.map +1 -0
  94. package/dist/program/config.d.ts +3 -0
  95. package/dist/program/config.d.ts.map +1 -0
  96. package/dist/program/config.js +9 -0
  97. package/dist/program/config.js.map +1 -0
  98. package/dist/program/convention.d.ts +4 -0
  99. package/dist/program/convention.d.ts.map +1 -0
  100. package/dist/program/convention.js +37 -0
  101. package/dist/program/convention.js.map +1 -0
  102. package/dist/program/dependency.d.ts +3 -0
  103. package/dist/program/dependency.d.ts.map +1 -0
  104. package/dist/program/dependency.js +15 -0
  105. package/dist/program/dependency.js.map +1 -0
  106. package/dist/program/doctor.d.ts +6 -0
  107. package/dist/program/doctor.d.ts.map +1 -0
  108. package/dist/program/doctor.js +31 -0
  109. package/dist/program/doctor.js.map +1 -0
  110. package/dist/program/document.d.ts +7 -0
  111. package/dist/program/document.d.ts.map +1 -0
  112. package/dist/program/document.js +87 -0
  113. package/dist/program/document.js.map +1 -0
  114. package/dist/program/feedback.d.ts +3 -0
  115. package/dist/program/feedback.d.ts.map +1 -0
  116. package/dist/program/feedback.js +10 -0
  117. package/dist/program/feedback.js.map +1 -0
  118. package/dist/program/index.d.ts +3 -0
  119. package/dist/program/index.d.ts.map +1 -0
  120. package/dist/program/index.js +66 -0
  121. package/dist/program/index.js.map +1 -0
  122. package/dist/program/init.d.ts +6 -0
  123. package/dist/program/init.d.ts.map +1 -0
  124. package/dist/program/init.js +50 -0
  125. package/dist/program/init.js.map +1 -0
  126. package/dist/program/linear.d.ts +3 -0
  127. package/dist/program/linear.d.ts.map +1 -0
  128. package/dist/program/linear.js +25 -0
  129. package/dist/program/linear.js.map +1 -0
  130. package/dist/program/mcp.d.ts +6 -0
  131. package/dist/program/mcp.d.ts.map +1 -0
  132. package/dist/program/mcp.js +95 -0
  133. package/dist/program/mcp.js.map +1 -0
  134. package/dist/program/options/completionReport.d.ts +5 -0
  135. package/dist/program/options/completionReport.d.ts.map +1 -0
  136. package/dist/program/options/completionReport.js +19 -0
  137. package/dist/program/options/completionReport.js.map +1 -0
  138. package/dist/program/options/connection.d.ts +3 -0
  139. package/dist/program/options/connection.d.ts.map +1 -0
  140. package/dist/program/options/connection.js +8 -0
  141. package/dist/program/options/connection.js.map +1 -0
  142. package/dist/program/options/output.d.ts +3 -0
  143. package/dist/program/options/output.d.ts.map +1 -0
  144. package/dist/program/options/output.js +6 -0
  145. package/dist/program/options/output.js.map +1 -0
  146. package/dist/program/options/pagination.d.ts +3 -0
  147. package/dist/program/options/pagination.d.ts.map +1 -0
  148. package/dist/program/options/pagination.js +6 -0
  149. package/dist/program/options/pagination.js.map +1 -0
  150. package/dist/program/options/resource.d.ts +6 -0
  151. package/dist/program/options/resource.d.ts.map +1 -0
  152. package/dist/program/options/resource.js +29 -0
  153. package/dist/program/options/resource.js.map +1 -0
  154. package/dist/program/plan.d.ts +7 -0
  155. package/dist/program/plan.d.ts.map +1 -0
  156. package/dist/program/plan.js +137 -0
  157. package/dist/program/plan.js.map +1 -0
  158. package/dist/program/postmortem.d.ts +4 -0
  159. package/dist/program/postmortem.d.ts.map +1 -0
  160. package/dist/program/postmortem.js +27 -0
  161. package/dist/program/postmortem.js.map +1 -0
  162. package/dist/program/report.d.ts +4 -0
  163. package/dist/program/report.d.ts.map +1 -0
  164. package/dist/program/report.js +38 -0
  165. package/dist/program/report.js.map +1 -0
  166. package/dist/program/resolve.d.ts +6 -0
  167. package/dist/program/resolve.d.ts.map +1 -0
  168. package/dist/program/resolve.js +30 -0
  169. package/dist/program/resolve.js.map +1 -0
  170. package/dist/program/search.d.ts +6 -0
  171. package/dist/program/search.d.ts.map +1 -0
  172. package/dist/program/search.js +43 -0
  173. package/dist/program/search.js.map +1 -0
  174. package/dist/program/shared.d.ts +32 -0
  175. package/dist/program/shared.d.ts.map +1 -0
  176. package/dist/program/shared.js +96 -0
  177. package/dist/program/shared.js.map +1 -0
  178. package/dist/program/sync.d.ts +6 -0
  179. package/dist/program/sync.d.ts.map +1 -0
  180. package/dist/program/sync.js +35 -0
  181. package/dist/program/sync.js.map +1 -0
  182. package/dist/program/task.d.ts +3 -0
  183. package/dist/program/task.d.ts.map +1 -0
  184. package/dist/program/task.js +13 -0
  185. package/dist/program/task.js.map +1 -0
  186. package/dist/program/worktree.d.ts +3 -0
  187. package/dist/program/worktree.d.ts.map +1 -0
  188. package/dist/program/worktree.js +30 -0
  189. package/dist/program/worktree.js.map +1 -0
  190. package/dist/types/index.d.ts +3 -1
  191. package/dist/types/index.d.ts.map +1 -1
  192. package/dist/utils/apiContext.d.ts.map +1 -1
  193. package/dist/utils/apiContext.js +6 -1
  194. package/dist/utils/apiContext.js.map +1 -1
  195. package/dist/utils/apiKeyInput.d.ts +1 -3
  196. package/dist/utils/apiKeyInput.d.ts.map +1 -1
  197. package/dist/utils/apiKeyInput.js +1 -9
  198. package/dist/utils/apiKeyInput.js.map +1 -1
  199. package/dist/utils/apiOrigin.d.ts +43 -0
  200. package/dist/utils/apiOrigin.d.ts.map +1 -0
  201. package/dist/utils/apiOrigin.js +78 -0
  202. package/dist/utils/apiOrigin.js.map +1 -0
  203. package/dist/utils/authFormat.d.ts.map +1 -1
  204. package/dist/utils/authFormat.js +32 -11
  205. package/dist/utils/authFormat.js.map +1 -1
  206. package/dist/utils/config.d.ts +10 -4
  207. package/dist/utils/config.d.ts.map +1 -1
  208. package/dist/utils/config.js +13 -5
  209. package/dist/utils/config.js.map +1 -1
  210. package/dist/utils/httpClient.d.ts.map +1 -1
  211. package/dist/utils/httpClient.js +50 -0
  212. package/dist/utils/httpClient.js.map +1 -1
  213. package/dist/utils/initOutput.d.ts.map +1 -1
  214. package/dist/utils/initOutput.js +14 -3
  215. package/dist/utils/initOutput.js.map +1 -1
  216. package/dist/utils/outputPolicy.d.ts +6 -7
  217. package/dist/utils/outputPolicy.d.ts.map +1 -1
  218. package/dist/utils/outputPolicy.js +0 -5
  219. package/dist/utils/outputPolicy.js.map +1 -1
  220. package/dist/utils/projectRootHash.d.ts +30 -0
  221. package/dist/utils/projectRootHash.d.ts.map +1 -0
  222. package/dist/utils/projectRootHash.js +43 -0
  223. package/dist/utils/projectRootHash.js.map +1 -0
  224. package/package.json +1 -1
@@ -0,0 +1,100 @@
1
+ import { CONVENTION_HINT, executeCommand, handleError, printCommandResult } from './shared.js';
2
+ import { addGitToggleOption } from './options/completionReport.js';
3
+ import { addConnectionOptions } from './options/connection.js';
4
+ import { addOutputOptions } from './options/output.js';
5
+ import { addPaginationOptions } from './options/pagination.js';
6
+ /** 액션 인벤토리: list/get/create/update/create-plan/submit-result/cancel/delete/dismiss/resolve/undismiss. */
7
+ export function registerCodeReviewCommand(program) {
8
+ const root = program
9
+ .command('code-review')
10
+ .description('Manage independent code reviews')
11
+ .addHelpText('after', CONVENTION_HINT);
12
+ const addLeaf = (name, description, configure = (command) => command) => {
13
+ const command = addOutputOptions(addConnectionOptions(configure(root.command(name).description(description)))).addHelpText('after', CONVENTION_HINT);
14
+ command.action(async (options) => {
15
+ try {
16
+ const { outputFile, verbose, ...actionOptions } = options;
17
+ const result = await executeCommand('code-review', name, actionOptions);
18
+ printCommandResult({
19
+ result,
20
+ outputFile,
21
+ verbose,
22
+ resource: 'code-review',
23
+ action: name,
24
+ });
25
+ }
26
+ catch (error) {
27
+ console.error(handleError(error));
28
+ process.exit(1);
29
+ }
30
+ });
31
+ return command;
32
+ };
33
+ addLeaf('list', 'List code reviews', (command) => addPaginationOptions(command)
34
+ .option('--search <text>', 'Search keyword')
35
+ .option('--status <status>', 'Status filter')
36
+ .option('--target-type <type>', 'Review target type')
37
+ .option('--source-plan-id <id>', 'Source plan ID')
38
+ .option('--source-completion-report-id <id>', 'Source completion report ID'));
39
+ addLeaf('get', 'Get a code review or finding', (command) => command.option('--id <id>', 'Code review ID').option('--finding-id <id>', 'Finding ID for single-finding focus'));
40
+ addLeaf('create', 'Create a code review', (command) => addGitToggleOption(command)
41
+ .option('--title <title>', 'Code review title')
42
+ .option('--target-type <type>', 'Review target type')
43
+ .option('--target-ref <ref>', 'Target reference')
44
+ .option('--repository-remote-url <url>', 'Repository remote origin URL (defaults to git origin)')
45
+ .option('--source-plan-id <id>', 'Source plan ID')
46
+ .option('--source-completion-report-id <id>', 'Source completion report ID')
47
+ .option('--source-commit-start <hash>', 'Source commit range start')
48
+ .option('--source-commit-end <hash>', 'Source commit range end')
49
+ .option('--source-branch-name <name>', 'Source branch name')
50
+ .option('--base-branch-name <name>', 'Base branch name')
51
+ .option('--diff-summary <text>', 'Diff summary text')
52
+ .option('--diff-file <path>', 'Read diff summary from a local file')
53
+ .option('--test-summary <text>', 'Verification summary text')
54
+ .option('--test-file <path>', 'Read verification summary from a local file')
55
+ .option('--reviewer-context <text>', 'Reviewer context or instructions')
56
+ .option('--recommendation-reason <text>', 'Why this review is recommended')
57
+ .option('--findings-file <path>', 'Read findings JSON array from a local file')
58
+ .option('--runner-type <type>', 'Runner type snapshot')
59
+ .option('--model <model>', 'Model ID snapshot'));
60
+ addLeaf('update', 'Update a code review', (command) => command
61
+ .option('--id <id>', 'Code review ID')
62
+ .option('--title <title>', 'Code review title')
63
+ .option('--target-type <type>', 'Review target type')
64
+ .option('--target-ref <ref>', 'Target reference')
65
+ .option('--source-commit-start <hash>', 'Source commit range start')
66
+ .option('--source-commit-end <hash>', 'Source commit range end')
67
+ .option('--source-branch-name <name>', 'Source branch name')
68
+ .option('--base-branch-name <name>', 'Base branch name')
69
+ .option('--diff-summary <text>', 'Diff summary text')
70
+ .option('--diff-file <path>', 'Read diff summary from a local file')
71
+ .option('--test-summary <text>', 'Verification summary text')
72
+ .option('--test-file <path>', 'Read verification summary from a local file')
73
+ .option('--reviewer-context <text>', 'Reviewer context or instructions')
74
+ .option('--recommendation-reason <text>', 'Why this review is recommended')
75
+ .option('--runner-type <type>', 'Runner type snapshot')
76
+ .option('--model <model>', 'Model ID snapshot'));
77
+ addLeaf('create-plan', 'Create a plan from findings', (command) => command
78
+ .option('--id <id>', 'Code review ID')
79
+ .option('--title <title>', 'Generated plan title')
80
+ .option('--finding-ids <ids>', 'Comma-separated finding IDs')
81
+ .option('--priority <priority>', 'Generated plan priority')
82
+ .option('--type <type>', 'Generated plan type')
83
+ .option('--runner-type <type>', 'Runner type snapshot')
84
+ .option('--model <model>', 'Model ID snapshot'));
85
+ addLeaf('submit-result', 'Submit a code review result', (command) => command
86
+ .option('--id <id>', 'Code review ID')
87
+ .option('--status <status>', 'Result status COMPLETED|FAILED')
88
+ .option('--findings-file <path>', 'Read findings JSON array from a local file')
89
+ .option('--result-summary <text>', 'Review result summary')
90
+ .option('--error-message <text>', 'Failure reason when status is FAILED'));
91
+ addLeaf('cancel', 'Cancel a code review', (command) => command.option('--id <id>', 'Code review ID'));
92
+ addLeaf('delete', 'Delete a code review', (command) => command.option('--id <id>', 'Code review ID'));
93
+ addLeaf('dismiss', 'Dismiss a finding', (command) => command.option('--id <id>', 'Code review ID').option('--finding-id <id>', 'Finding ID'));
94
+ addLeaf('resolve', 'Resolve findings', (command) => command
95
+ .option('--id <id>', 'Code review ID')
96
+ .option('--finding-id <id>', 'Finding ID')
97
+ .option('--finding-ids <ids>', 'Comma-separated finding IDs'));
98
+ addLeaf('undismiss', 'Restore a dismissed finding', (command) => command.option('--id <id>', 'Code review ID').option('--finding-id <id>', 'Finding ID'));
99
+ }
100
+ //# sourceMappingURL=codeReview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeReview.js","sourceRoot":"","sources":["../../src/program/codeReview.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Command } from './shared.js';
2
+ /** 액션 인벤토리: list/get/create/update/delete/reply-list/reply-get/reply-create/reply-update/reply-delete. */
3
+ export declare function registerCommentCommand(program: Command): void;
4
+ //# sourceMappingURL=comment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comment.d.ts","sourceRoot":"","sources":["../../src/program/comment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAoE,MAAM,aAAa,CAAC;AAIxG,0GAA0G;AAC1G,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuE7D"}
@@ -0,0 +1,50 @@
1
+ import { CONVENTION_HINT, executeCommand, handleError, printCommandResult } from './shared.js';
2
+ import { addOutputOptions } from './options/output.js';
3
+ import { addPaginationOptions } from './options/pagination.js';
4
+ /** 액션 인벤토리: list/get/create/update/delete/reply-list/reply-get/reply-create/reply-update/reply-delete. */
5
+ export function registerCommentCommand(program) {
6
+ const root = program
7
+ .command('comment')
8
+ .description('Manage plan, finding, and task comments with 1-depth replies')
9
+ .addHelpText('after', CONVENTION_HINT);
10
+ const addLeaf = (name, description, configure = (command) => command) => {
11
+ const command = addOutputOptions(configure(root.command(name).description(description))).addHelpText('after', CONVENTION_HINT);
12
+ command.action(async (options) => {
13
+ try {
14
+ const { outputFile, verbose, ...actionOptions } = options;
15
+ const result = await executeCommand('comment', name, actionOptions);
16
+ printCommandResult({ result, outputFile, verbose });
17
+ }
18
+ catch (error) {
19
+ console.error(handleError(error));
20
+ process.exit(1);
21
+ }
22
+ });
23
+ return command;
24
+ };
25
+ const addTargetOptions = (command) => command
26
+ .option('--plan-id <id>', 'Plan ID')
27
+ .option('--finding-id <id>', 'Code review finding ID')
28
+ .option('--task-id <id>', 'Plan task ID');
29
+ const addWriteOptions = (command) => command
30
+ .option('--guide-hash <hash>', 'Hash of the comment guide you followed')
31
+ .option('--idempotency-key <key>', 'Retry-safe key');
32
+ const addMutationOptions = (command) => addWriteOptions(command).option('--expected-updated-at <iso>', "The comment's updatedAt as you last read it");
33
+ addLeaf('list', 'List comments', (command) => addPaginationOptions(addTargetOptions(command)).option('--type <type>', 'Comment type (RISK, MODIFICATION, GENERAL)'));
34
+ addLeaf('get', 'Get a comment', (command) => command.option('--id <id>', 'Comment ID'));
35
+ addLeaf('create', 'Create a comment', (command) => addWriteOptions(addTargetOptions(command))
36
+ .option('--type <type>', 'Comment type (RISK, MODIFICATION, GENERAL)')
37
+ .option('--content <content>', 'Comment content')
38
+ .option('--affected-files <files>', 'Comma-separated affected file paths'));
39
+ addLeaf('update', 'Update a comment', (command) => addMutationOptions(command)
40
+ .option('--id <id>', 'Comment ID')
41
+ .option('--content <content>', 'Comment content')
42
+ .option('--affected-files <files>', 'Comma-separated affected file paths'));
43
+ addLeaf('delete', 'Delete a comment', (command) => addMutationOptions(command).option('--id <id>', 'Comment ID'));
44
+ addLeaf('reply-list', 'List replies', (command) => addPaginationOptions(command.option('--id <id>', 'Parent comment ID')));
45
+ addLeaf('reply-get', 'Get a reply', (command) => command.option('--reply-id <id>', 'Reply ID'));
46
+ addLeaf('reply-create', 'Create a reply', (command) => addWriteOptions(command).option('--id <id>', 'Parent comment ID').option('--content <content>', 'Reply content'));
47
+ addLeaf('reply-update', 'Update a reply', (command) => addMutationOptions(command).option('--reply-id <id>', 'Reply ID').option('--content <content>', 'Reply content'));
48
+ addLeaf('reply-delete', 'Delete a reply', (command) => addMutationOptions(command).option('--reply-id <id>', 'Reply ID'));
49
+ }
50
+ //# sourceMappingURL=comment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comment.js","sourceRoot":"","sources":["../../src/program/comment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACxG,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,0GAA0G;AAC1G,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,8DAA8D,CAAC;SAC3E,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,CACd,IAAY,EACZ,WAAmB,EACnB,YAA2C,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EACtD,EAAE;QACX,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAClG,OAAO,EACP,eAAe,CAChB,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC/B,IAAI,CAAC;gBACH,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC;gBAC1D,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;gBACpE,kBAAkB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;YACtD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;gBAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IACF,MAAM,gBAAgB,GAAG,CAAC,OAAgB,EAAE,EAAE,CAC5C,OAAO;SACJ,MAAM,CAAC,gBAAgB,EAAE,SAAS,CAAC;SACnC,MAAM,CAAC,mBAAmB,EAAE,wBAAwB,CAAC;SACrD,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAE,EAAE,CAC3C,OAAO;SACJ,MAAM,CAAC,qBAAqB,EAAE,wCAAwC,CAAC;SACvE,MAAM,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;IACzD,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAAE,EAAE,CAC9C,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,6BAA6B,EAAE,6CAA6C,CAAC,CAAC;IAEhH,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE,CAC3C,oBAAoB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CACpD,eAAe,EACf,4CAA4C,CAC7C,CACF,CAAC;IACF,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IACxF,OAAO,CAAC,QAAQ,EAAE,kBAAkB,EAAE,CAAC,OAAO,EAAE,EAAE,CAChD,eAAe,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;SACvC,MAAM,CAAC,eAAe,EAAE,4CAA4C,CAAC;SACrE,MAAM,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;SAChD,MAAM,CAAC,0BAA0B,EAAE,qCAAqC,CAAC,CAC7E,CAAC;IACF,OAAO,CAAC,QAAQ,EAAE,kBAAkB,EAAE,CAAC,OAAO,EAAE,EAAE,CAChD,kBAAkB,CAAC,OAAO,CAAC;SACxB,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC;SACjC,MAAM,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;SAChD,MAAM,CAAC,0BAA0B,EAAE,qCAAqC,CAAC,CAC7E,CAAC;IACF,OAAO,CAAC,QAAQ,EAAE,kBAAkB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAClH,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,OAAO,EAAE,EAAE,CAChD,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC,CACvE,CAAC;IACF,OAAO,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;IAChG,OAAO,CAAC,cAAc,EAAE,gBAAgB,EAAE,CAAC,OAAO,EAAE,EAAE,CACpD,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC,MAAM,CAAC,qBAAqB,EAAE,eAAe,CAAC,CACjH,CAAC;IACF,OAAO,CAAC,cAAc,EAAE,gBAAgB,EAAE,CAAC,OAAO,EAAE,EAAE,CACpD,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,qBAAqB,EAAE,eAAe,CAAC,CACjH,CAAC;IACF,OAAO,CAAC,cAAc,EAAE,gBAAgB,EAAE,CAAC,OAAO,EAAE,EAAE,CACpD,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAClE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from './shared.js';
2
+ export declare function registerConfigCommand(program: Command): void;
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/program/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAmB,MAAM,aAAa,CAAC;AAGvD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAK5D"}
@@ -0,0 +1,9 @@
1
+ import { CONVENTION_HINT } from './shared.js';
2
+ import { addJsonResourceLeaf } from './options/resource.js';
3
+ export function registerConfigCommand(program) {
4
+ const root = program.command('config').description('Inspect CLI configuration').addHelpText('after', CONVENTION_HINT);
5
+ addJsonResourceLeaf(root, 'config', 'whoami', 'Show the current API identity', undefined, {
6
+ connection: false,
7
+ });
8
+ }
9
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/program/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,eAAe,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACtH,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,+BAA+B,EAAE,SAAS,EAAE;QACxF,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Command } from './shared.js';
2
+ /** 액션 인벤토리: list/show/download/status/create/update/delete. */
3
+ export declare function registerConventionCommand(program: Command): void;
4
+ //# sourceMappingURL=convention.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convention.d.ts","sourceRoot":"","sources":["../../src/program/convention.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA4E,MAAM,aAAa,CAAC;AAGhH,+DAA+D;AAC/D,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoDhE"}
@@ -0,0 +1,37 @@
1
+ import { Option, CONVENTION_HINT, executeCommand, handleError, printCommandResult } from './shared.js';
2
+ import { addOutputOptions } from './options/output.js';
3
+ /** 액션 인벤토리: list/show/download/status/create/update/delete. */
4
+ export function registerConventionCommand(program) {
5
+ const root = program
6
+ .command('convention')
7
+ .description('Manage project conventions')
8
+ .addHelpText('after', CONVENTION_HINT);
9
+ const addLeaf = (name, description, configure = (command) => command) => {
10
+ const command = addOutputOptions(configure(root.command(name).description(description))).addHelpText('after', CONVENTION_HINT);
11
+ command.action(async (options) => {
12
+ try {
13
+ const { outputFile, verbose, ...actionOptions } = options;
14
+ const result = await executeCommand('convention', name, {
15
+ ...actionOptions,
16
+ cwd: actionOptions.cwd ?? process.cwd(),
17
+ });
18
+ printCommandResult({ result, outputFile, verbose });
19
+ }
20
+ catch (error) {
21
+ console.error(handleError(error));
22
+ process.exit(1);
23
+ }
24
+ });
25
+ return command;
26
+ };
27
+ const addCwd = (command) => command.option('--cwd <path>', 'Working directory (defaults to current)');
28
+ const addFiles = (command) => addCwd(command).option('-f, --file <path>', 'Target convention markdown file (repeatable)', (value, previous = []) => previous.concat([value]), []);
29
+ addLeaf('list', 'List project conventions');
30
+ addLeaf('show', 'Show the effective convention');
31
+ addLeaf('download', 'Download project conventions', addCwd);
32
+ addLeaf('status', 'Show convention freshness status', addCwd);
33
+ addLeaf('create', 'Create project conventions', (command) => addFiles(command).addOption(new Option('--scope <scope>', 'Convention scope (defaults to PROJECT)').choices(['PROJECT', 'PERSONAL'])));
34
+ addLeaf('update', 'Update project conventions', (command) => addFiles(command).option('--apply', 'Apply changes to server (default: dry-run)', false));
35
+ addLeaf('delete', 'Delete project conventions', (command) => addFiles(command).option('--apply', 'Apply changes to server (default: dry-run)', false));
36
+ }
37
+ //# sourceMappingURL=convention.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convention.js","sourceRoot":"","sources":["../../src/program/convention.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from './shared.js';
2
+ export declare function registerDependencyCommand(program: Command): void;
3
+ //# sourceMappingURL=dependency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency.d.ts","sourceRoot":"","sources":["../../src/program/dependency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAmB,MAAM,aAAa,CAAC;AAGvD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgBhE"}
@@ -0,0 +1,15 @@
1
+ import { CONVENTION_HINT } from './shared.js';
2
+ import { addJsonResourceLeaf } from './options/resource.js';
3
+ export function registerDependencyCommand(program) {
4
+ const root = program
5
+ .command('dependency')
6
+ .description('Manage plan dependencies')
7
+ .addHelpText('after', CONVENTION_HINT);
8
+ const addLeaf = (action, description, configure) => addJsonResourceLeaf(root, 'dependency', action, description, configure, {
9
+ connection: false,
10
+ });
11
+ addLeaf('list', 'List plan dependencies', (command) => command.option('--plan-id <id>', 'Plan ID'));
12
+ addLeaf('create', 'Create a plan dependency', (command) => command.option('--plan-id <id>', 'Plan ID').option('--blocking-plan-id <id>', 'Blocking plan ID'));
13
+ addLeaf('delete', 'Delete a plan dependency', (command) => command.option('--plan-id <id>', 'Plan ID').option('--dep-id <id>', 'Dependency ID to delete'));
14
+ }
15
+ //# sourceMappingURL=dependency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency.js","sourceRoot":"","sources":["../../src/program/dependency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,eAAe,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,0BAA0B,CAAC;SACvC,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,WAAmB,EAAE,SAAwC,EAAE,EAAE,CAChG,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE;QACtE,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC;IACL,OAAO,CAAC,MAAM,EAAE,wBAAwB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC,CAAC;IACpG,OAAO,CAAC,QAAQ,EAAE,0BAA0B,EAAE,CAAC,OAAO,EAAE,EAAE,CACxD,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,yBAAyB,EAAE,kBAAkB,CAAC,CAClG,CAAC;IACF,OAAO,CAAC,QAAQ,EAAE,0BAA0B,EAAE,CAAC,OAAO,EAAE,EAAE,CACxD,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,yBAAyB,CAAC,CAC/F,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Command } from './shared.js';
2
+ /**
3
+ * 액션 인벤토리: 액션: run. 실사용 옵션: cwd, installWorktreeHook. 별칭/도움말 불일치: 없음.
4
+ */
5
+ export declare function registerDoctorCommand(program: Command): void;
6
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/program/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAOR,MAAM,aAAa,CAAC;AAGrB;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+B5D"}
@@ -0,0 +1,31 @@
1
+ import { CONVENTION_HINT, executeCommand, executeValidatedInteractiveCommand, handleError, printDoctorResult, resolveDoctorExitCode, } from './shared.js';
2
+ /**
3
+ * 액션 인벤토리: 액션: run. 실사용 옵션: cwd, installWorktreeHook. 별칭/도움말 불일치: 없음.
4
+ */
5
+ export function registerDoctorCommand(program) {
6
+ program
7
+ .command('doctor')
8
+ .description('Diagnose convention reachability and install the worktree bootstrap hook')
9
+ .option('--format <format>', 'Output format (json; defaults to human-readable view)')
10
+ // The doctor honors the same gate `init` does — a repository with no linked
11
+ // worktree keeps its shared .git/hooks untouched — so opting in needs a flag
12
+ // on this command too, not just on `init`.
13
+ .option('--install-worktree-hook', 'Install the managed git post-checkout hook even if this repository has no linked worktrees yet.', false)
14
+ .addHelpText('after', CONVENTION_HINT)
15
+ .action(async (options) => {
16
+ try {
17
+ const { result, format } = await executeValidatedInteractiveCommand(options.format, async () => executeCommand('doctor', 'run', {
18
+ cwd: process.cwd(),
19
+ installWorktreeHook: options.installWorktreeHook === true,
20
+ }));
21
+ printDoctorResult(result, format);
22
+ // exitCode (not process.exit) lets stdout flush before termination.
23
+ process.exitCode = resolveDoctorExitCode(result);
24
+ }
25
+ catch (error) {
26
+ console.error(handleError(error));
27
+ process.exit(1);
28
+ }
29
+ });
30
+ }
31
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/program/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EACf,cAAc,EACd,kCAAkC,EAClC,WAAW,EACX,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAGrB;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,0EAA0E,CAAC;SACvF,MAAM,CAAC,mBAAmB,EAAE,uDAAuD,CAAC;QACrF,4EAA4E;QAC5E,6EAA6E;QAC7E,2CAA2C;SAC1C,MAAM,CACL,yBAAyB,EACzB,iGAAiG,EACjG,KAAK,CACN;SACA,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC;SACrC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kCAAkC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAC7F,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE;gBAC9B,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;gBAClB,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,KAAK,IAAI;aAC1D,CAAC,CACH,CAAC;YAEF,iBAAiB,CAAC,MAAsB,EAAE,MAAM,CAAC,CAAC;YAClD,oEAAoE;YACpE,OAAO,CAAC,QAAQ,GAAG,qBAAqB,CAAC,MAAsB,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Command } from './shared.js';
2
+ /**
3
+ * 액션 인벤토리: create/update/download/list/tags/delete/archive/unarchive/revisions/revision-get/revision-restore/comment-list/comment-create/comment-update/comment-delete.
4
+ * archive/unarchive는 반대 동작의 별개 액션이며 --limit 별칭은 제거합니다.
5
+ */
6
+ export declare function registerDocumentCommand(program: Command): void;
7
+ //# sourceMappingURL=document.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/program/document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAoE,MAAM,aAAa,CAAC;AAKxG;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyH9D"}
@@ -0,0 +1,87 @@
1
+ import { CONVENTION_HINT, executeCommand, handleError, printCommandResult } from './shared.js';
2
+ import { addConnectionOptions } from './options/connection.js';
3
+ import { addOutputOptions } from './options/output.js';
4
+ import { addPaginationOptions } from './options/pagination.js';
5
+ /**
6
+ * 액션 인벤토리: create/update/download/list/tags/delete/archive/unarchive/revisions/revision-get/revision-restore/comment-list/comment-create/comment-update/comment-delete.
7
+ * archive/unarchive는 반대 동작의 별개 액션이며 --limit 별칭은 제거합니다.
8
+ */
9
+ export function registerDocumentCommand(program) {
10
+ const parent = program
11
+ .command('document')
12
+ .description('Manage project documents')
13
+ .addHelpText('after', CONVENTION_HINT);
14
+ const addLeaf = (name, description, configure = (command) => command) => {
15
+ const command = addOutputOptions(addConnectionOptions(configure(parent.command(name).description(description)))).addHelpText('after', CONVENTION_HINT);
16
+ command.action(async (options) => {
17
+ try {
18
+ const { outputFile, verbose, ...actionOptions } = options;
19
+ const result = await executeCommand('document', name, actionOptions);
20
+ printCommandResult({
21
+ result,
22
+ outputFile,
23
+ verbose,
24
+ resource: 'document',
25
+ action: name,
26
+ });
27
+ }
28
+ catch (error) {
29
+ console.error(handleError(error));
30
+ process.exit(1);
31
+ }
32
+ });
33
+ return command;
34
+ };
35
+ const addWriteContractOptions = (command, includeExpectedUpdatedAt = false) => {
36
+ const configured = command
37
+ .option('--guide-hash <hash>', 'Hash of the document guide you followed. Stale hash is rejected with GUIDE_OUTDATED.')
38
+ .option('--idempotency-key <key>', 'Retry-safe key. Repeating the same key with the same request replays the first result.');
39
+ return includeExpectedUpdatedAt
40
+ ? configured.option('--expected-updated-at <iso>', "The document's updatedAt as you last read it. Rejects the write if it changed meanwhile.")
41
+ : configured;
42
+ };
43
+ addLeaf('create', 'Create a document', (command) => addWriteContractOptions(command)
44
+ .option('--title <title>', 'Document title')
45
+ .option('--file <path>', 'Read markdown body from a local file')
46
+ .option('--tags <tags>', 'Comma-separated tag suggestions')
47
+ .option('--suggested-tags <tags>', 'Comma-separated AI-suggested tags')
48
+ .option('--visibility <visibility>', 'Document visibility: PRIVATE or PROJECT'));
49
+ addLeaf('update', 'Update a document', (command) => addWriteContractOptions(command, true)
50
+ .option('--id <id>', 'Document ID')
51
+ .option('--title <title>', 'Document title')
52
+ .option('--file <path>', 'Read markdown body from a local file')
53
+ .option('--tags <tags>', 'Comma-separated tag suggestions')
54
+ .option('--suggested-tags <tags>', 'Comma-separated AI-suggested tags')
55
+ .option('--visibility <visibility>', 'Document visibility: PRIVATE or PROJECT'));
56
+ addLeaf('download', 'Download a document', (command) => command.option('--id <id>', 'Document ID'));
57
+ addLeaf('list', 'List documents', (command) => addPaginationOptions(command)
58
+ .option('--query <q>', 'Search query')
59
+ .option('--tags <tags>', 'Comma-separated tag filter')
60
+ .option('--visibility <visibility>', 'Document visibility: PRIVATE or PROJECT')
61
+ .option('--archived <state>', 'Archive filter (ACTIVE, ARCHIVED, ALL)'));
62
+ addLeaf('tags', 'List confirmed document tags', (command) => command
63
+ .option('--visibility <visibility>', 'Document visibility: PRIVATE or PROJECT')
64
+ .option('--archived <state>', 'Archive filter (ACTIVE, ARCHIVED, ALL)'));
65
+ addLeaf('delete', 'Delete a document', (command) => addWriteContractOptions(command, true).option('--id <id>', 'Document ID'));
66
+ addLeaf('archive', 'Archive a document', (command) => command.option('--id <id>', 'Document ID'));
67
+ addLeaf('unarchive', 'Unarchive a document', (command) => command.option('--id <id>', 'Document ID'));
68
+ addLeaf('revisions', 'List document revisions', (command) => addPaginationOptions(command).option('--id <id>', 'Document ID'));
69
+ addLeaf('revision-get', 'Get a document revision', (command) => command.option('--id <id>', 'Document ID').option('--revision-id <id>', 'Document revision ID'));
70
+ addLeaf('revision-restore', 'Restore a document revision', (command) => command.option('--id <id>', 'Document ID').option('--revision-id <id>', 'Document revision ID'));
71
+ addLeaf('comment-list', 'List document comments', (command) => addPaginationOptions(command)
72
+ .option('--id <id>', 'Document ID')
73
+ .option('--order <order>', 'Comment order (asc or desc)'));
74
+ addLeaf('comment-create', 'Create a document comment', (command) => addWriteContractOptions(command)
75
+ .option('--id <id>', 'Document ID')
76
+ .option('--content <text>', 'Markdown comment content')
77
+ .option('--file <path>', 'Read markdown comment content from a local file'));
78
+ addLeaf('comment-update', 'Update a document comment', (command) => addWriteContractOptions(command, true)
79
+ .option('--id <id>', 'Document ID')
80
+ .option('--comment-id <id>', 'Document comment ID')
81
+ .option('--content <text>', 'Markdown comment content')
82
+ .option('--file <path>', 'Read markdown comment content from a local file'));
83
+ addLeaf('comment-delete', 'Delete a document comment', (command) => addWriteContractOptions(command, true)
84
+ .option('--id <id>', 'Document ID')
85
+ .option('--comment-id <id>', 'Document comment ID'));
86
+ }
87
+ //# sourceMappingURL=document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/program/document.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from './shared.js';
2
+ export declare function registerFeedbackCommand(program: Command): void;
3
+ //# sourceMappingURL=feedback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../src/program/feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAmB,MAAM,aAAa,CAAC;AAGvD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAQ9D"}
@@ -0,0 +1,10 @@
1
+ import { CONVENTION_HINT } from './shared.js';
2
+ import { addJsonResourceLeaf } from './options/resource.js';
3
+ export function registerFeedbackCommand(program) {
4
+ const root = program.command('feedback').description('Send product feedback').addHelpText('after', CONVENTION_HINT);
5
+ addJsonResourceLeaf(root, 'feedback', 'create', 'Create feedback', (command) => command
6
+ .option('--category <category>', 'Feedback category (BUG, SUGGESTION, CONVENTION, UX)')
7
+ .option('--title <title>', 'Feedback title')
8
+ .option('--content <content>', 'Feedback content'));
9
+ }
10
+ //# sourceMappingURL=feedback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/program/feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,eAAe,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACpH,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,OAAO,EAAE,EAAE,CAC7E,OAAO;SACJ,MAAM,CAAC,uBAAuB,EAAE,qDAAqD,CAAC;SACtF,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;SAC3C,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CACrD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createProgram(version: string): Command;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/program/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BpC,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAyCtD"}
@@ -0,0 +1,66 @@
1
+ import { Command } from 'commander';
2
+ import { registerAgentConfigCommand } from './agentConfig.js';
3
+ import { registerAttachmentCommand } from './attachment.js';
4
+ import { registerAuthCommand } from './auth.js';
5
+ import { registerChangeSetCommand } from './changeSet.js';
6
+ import { registerCoactionCommand } from './coaction.js';
7
+ import { registerCodeReviewCommand } from './codeReview.js';
8
+ import { registerCommentCommand } from './comment.js';
9
+ import { registerConfigCommand } from './config.js';
10
+ import { registerConventionCommand } from './convention.js';
11
+ import { registerDependencyCommand } from './dependency.js';
12
+ import { registerDoctorCommand } from './doctor.js';
13
+ import { registerDocumentCommand } from './document.js';
14
+ import { registerFeedbackCommand } from './feedback.js';
15
+ import { registerInitCommand } from './init.js';
16
+ import { registerLinearCommand } from './linear.js';
17
+ import { registerMcpCommand } from './mcp.js';
18
+ import { registerPlanCommand } from './plan.js';
19
+ import { registerPostmortemCommand } from './postmortem.js';
20
+ import { registerReportCommand } from './report.js';
21
+ import { registerResolveCommand } from './resolve.js';
22
+ import { registerSearchCommand } from './search.js';
23
+ import { registerSyncCommand } from './sync.js';
24
+ import { registerTaskCommand } from './task.js';
25
+ import { registerWorktreeCommand } from './worktree.js';
26
+ import { registerApiKeyHook, removedContractHint } from './shared.js';
27
+ export function createProgram(version) {
28
+ const program = new Command();
29
+ // 서브커맨드는 생성 시점에 outputConfiguration을 상속하므로 등록보다 먼저 설정합니다.
30
+ program.configureOutput({
31
+ writeErr: (text) => {
32
+ process.stderr.write(text);
33
+ const hint = removedContractHint(text);
34
+ if (hint)
35
+ process.stderr.write(`hint: ${hint}\n`);
36
+ },
37
+ });
38
+ registerApiKeyHook(program);
39
+ program.name('agentteams').description('CLI tool for AgentTeams API').version(version);
40
+ registerInitCommand(program);
41
+ registerAuthCommand(program);
42
+ registerDoctorCommand(program);
43
+ registerSyncCommand(program);
44
+ registerWorktreeCommand(program);
45
+ registerPlanCommand(program);
46
+ registerResolveCommand(program);
47
+ registerTaskCommand(program);
48
+ registerCommentCommand(program);
49
+ registerAttachmentCommand(program);
50
+ registerReportCommand(program);
51
+ registerCodeReviewCommand(program);
52
+ registerChangeSetCommand(program);
53
+ registerPostmortemCommand(program);
54
+ registerCoactionCommand(program);
55
+ registerFeedbackCommand(program);
56
+ registerConventionCommand(program);
57
+ registerDocumentCommand(program);
58
+ registerDependencyCommand(program);
59
+ registerAgentConfigCommand(program);
60
+ registerConfigCommand(program);
61
+ registerSearchCommand(program);
62
+ registerMcpCommand(program);
63
+ registerLinearCommand(program);
64
+ return program;
65
+ }
66
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/program/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Command } from './shared.js';
2
+ /**
3
+ * 액션 인벤토리: 액션: start. 실사용 옵션: authMode, agentFiles, agentFilesExample, installWorktreeHook, deviceAuth, setDefault. 별칭/도움말 불일치: 없음.
4
+ */
5
+ export declare function registerInitCommand(program: Command): void;
6
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/program/init.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EASR,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4D1D"}