@agentteams/cli 0.1.97 → 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 (182) hide show
  1. package/.eslintcache +1 -1
  2. package/README.md +27 -11
  3. package/dist/commands/auth.d.ts +2 -0
  4. package/dist/commands/auth.d.ts.map +1 -1
  5. package/dist/commands/auth.js +15 -4
  6. package/dist/commands/auth.js.map +1 -1
  7. package/dist/commands/coaction.d.ts.map +1 -1
  8. package/dist/commands/coaction.js +6 -21
  9. package/dist/commands/coaction.js.map +1 -1
  10. package/dist/commands/codeReview.d.ts.map +1 -1
  11. package/dist/commands/codeReview.js +1 -2
  12. package/dist/commands/codeReview.js.map +1 -1
  13. package/dist/commands/document.d.ts +0 -1
  14. package/dist/commands/document.d.ts.map +1 -1
  15. package/dist/commands/document.js +1 -1
  16. package/dist/commands/document.js.map +1 -1
  17. package/dist/commands/plan.d.ts.map +1 -1
  18. package/dist/commands/plan.js +10 -53
  19. package/dist/commands/plan.js.map +1 -1
  20. package/dist/commands/postmortem.d.ts.map +1 -1
  21. package/dist/commands/postmortem.js +1 -5
  22. package/dist/commands/postmortem.js.map +1 -1
  23. package/dist/commands/report.d.ts.map +1 -1
  24. package/dist/commands/report.js +1 -5
  25. package/dist/commands/report.js.map +1 -1
  26. package/dist/commands/task.js +2 -2
  27. package/dist/commands/task.js.map +1 -1
  28. package/dist/index.js +3 -1350
  29. package/dist/index.js.map +1 -1
  30. package/dist/mcp/context.js +1 -1
  31. package/dist/mcp/context.js.map +1 -1
  32. package/dist/program/agentConfig.d.ts +3 -0
  33. package/dist/program/agentConfig.d.ts.map +1 -0
  34. package/dist/program/agentConfig.js +14 -0
  35. package/dist/program/agentConfig.js.map +1 -0
  36. package/dist/program/attachment.d.ts +3 -0
  37. package/dist/program/attachment.d.ts.map +1 -0
  38. package/dist/program/attachment.js +17 -0
  39. package/dist/program/attachment.js.map +1 -0
  40. package/dist/program/auth.d.ts +3 -0
  41. package/dist/program/auth.d.ts.map +1 -0
  42. package/dist/program/auth.js +39 -0
  43. package/dist/program/auth.js.map +1 -0
  44. package/dist/program/changeSet.d.ts +4 -0
  45. package/dist/program/changeSet.d.ts.map +1 -0
  46. package/dist/program/changeSet.js +53 -0
  47. package/dist/program/changeSet.js.map +1 -0
  48. package/dist/program/coaction.d.ts +7 -0
  49. package/dist/program/coaction.d.ts.map +1 -0
  50. package/dist/program/coaction.js +81 -0
  51. package/dist/program/coaction.js.map +1 -0
  52. package/dist/program/codeReview.d.ts +4 -0
  53. package/dist/program/codeReview.d.ts.map +1 -0
  54. package/dist/program/codeReview.js +100 -0
  55. package/dist/program/codeReview.js.map +1 -0
  56. package/dist/program/comment.d.ts +4 -0
  57. package/dist/program/comment.d.ts.map +1 -0
  58. package/dist/program/comment.js +50 -0
  59. package/dist/program/comment.js.map +1 -0
  60. package/dist/program/config.d.ts +3 -0
  61. package/dist/program/config.d.ts.map +1 -0
  62. package/dist/program/config.js +9 -0
  63. package/dist/program/config.js.map +1 -0
  64. package/dist/program/convention.d.ts +4 -0
  65. package/dist/program/convention.d.ts.map +1 -0
  66. package/dist/program/convention.js +37 -0
  67. package/dist/program/convention.js.map +1 -0
  68. package/dist/program/dependency.d.ts +3 -0
  69. package/dist/program/dependency.d.ts.map +1 -0
  70. package/dist/program/dependency.js +15 -0
  71. package/dist/program/dependency.js.map +1 -0
  72. package/dist/program/doctor.d.ts +6 -0
  73. package/dist/program/doctor.d.ts.map +1 -0
  74. package/dist/program/doctor.js +31 -0
  75. package/dist/program/doctor.js.map +1 -0
  76. package/dist/program/document.d.ts +7 -0
  77. package/dist/program/document.d.ts.map +1 -0
  78. package/dist/program/document.js +87 -0
  79. package/dist/program/document.js.map +1 -0
  80. package/dist/program/feedback.d.ts +3 -0
  81. package/dist/program/feedback.d.ts.map +1 -0
  82. package/dist/program/feedback.js +10 -0
  83. package/dist/program/feedback.js.map +1 -0
  84. package/dist/program/index.d.ts +3 -0
  85. package/dist/program/index.d.ts.map +1 -0
  86. package/dist/program/index.js +66 -0
  87. package/dist/program/index.js.map +1 -0
  88. package/dist/program/init.d.ts +6 -0
  89. package/dist/program/init.d.ts.map +1 -0
  90. package/dist/program/init.js +50 -0
  91. package/dist/program/init.js.map +1 -0
  92. package/dist/program/linear.d.ts +3 -0
  93. package/dist/program/linear.d.ts.map +1 -0
  94. package/dist/program/linear.js +25 -0
  95. package/dist/program/linear.js.map +1 -0
  96. package/dist/program/mcp.d.ts +6 -0
  97. package/dist/program/mcp.d.ts.map +1 -0
  98. package/dist/program/mcp.js +95 -0
  99. package/dist/program/mcp.js.map +1 -0
  100. package/dist/program/options/completionReport.d.ts +5 -0
  101. package/dist/program/options/completionReport.d.ts.map +1 -0
  102. package/dist/program/options/completionReport.js +19 -0
  103. package/dist/program/options/completionReport.js.map +1 -0
  104. package/dist/program/options/connection.d.ts +3 -0
  105. package/dist/program/options/connection.d.ts.map +1 -0
  106. package/dist/program/options/connection.js +8 -0
  107. package/dist/program/options/connection.js.map +1 -0
  108. package/dist/program/options/output.d.ts +3 -0
  109. package/dist/program/options/output.d.ts.map +1 -0
  110. package/dist/program/options/output.js +6 -0
  111. package/dist/program/options/output.js.map +1 -0
  112. package/dist/program/options/pagination.d.ts +3 -0
  113. package/dist/program/options/pagination.d.ts.map +1 -0
  114. package/dist/program/options/pagination.js +6 -0
  115. package/dist/program/options/pagination.js.map +1 -0
  116. package/dist/program/options/resource.d.ts +6 -0
  117. package/dist/program/options/resource.d.ts.map +1 -0
  118. package/dist/program/options/resource.js +29 -0
  119. package/dist/program/options/resource.js.map +1 -0
  120. package/dist/program/plan.d.ts +7 -0
  121. package/dist/program/plan.d.ts.map +1 -0
  122. package/dist/program/plan.js +137 -0
  123. package/dist/program/plan.js.map +1 -0
  124. package/dist/program/postmortem.d.ts +4 -0
  125. package/dist/program/postmortem.d.ts.map +1 -0
  126. package/dist/program/postmortem.js +27 -0
  127. package/dist/program/postmortem.js.map +1 -0
  128. package/dist/program/report.d.ts +4 -0
  129. package/dist/program/report.d.ts.map +1 -0
  130. package/dist/program/report.js +38 -0
  131. package/dist/program/report.js.map +1 -0
  132. package/dist/program/resolve.d.ts +6 -0
  133. package/dist/program/resolve.d.ts.map +1 -0
  134. package/dist/program/resolve.js +30 -0
  135. package/dist/program/resolve.js.map +1 -0
  136. package/dist/program/search.d.ts +6 -0
  137. package/dist/program/search.d.ts.map +1 -0
  138. package/dist/program/search.js +43 -0
  139. package/dist/program/search.js.map +1 -0
  140. package/dist/program/shared.d.ts +32 -0
  141. package/dist/program/shared.d.ts.map +1 -0
  142. package/dist/program/shared.js +96 -0
  143. package/dist/program/shared.js.map +1 -0
  144. package/dist/program/sync.d.ts +6 -0
  145. package/dist/program/sync.d.ts.map +1 -0
  146. package/dist/program/sync.js +35 -0
  147. package/dist/program/sync.js.map +1 -0
  148. package/dist/program/task.d.ts +3 -0
  149. package/dist/program/task.d.ts.map +1 -0
  150. package/dist/program/task.js +13 -0
  151. package/dist/program/task.js.map +1 -0
  152. package/dist/program/worktree.d.ts +3 -0
  153. package/dist/program/worktree.d.ts.map +1 -0
  154. package/dist/program/worktree.js +30 -0
  155. package/dist/program/worktree.js.map +1 -0
  156. package/dist/utils/apiContext.d.ts.map +1 -1
  157. package/dist/utils/apiContext.js +6 -1
  158. package/dist/utils/apiContext.js.map +1 -1
  159. package/dist/utils/apiKeyInput.d.ts +1 -3
  160. package/dist/utils/apiKeyInput.d.ts.map +1 -1
  161. package/dist/utils/apiKeyInput.js +1 -9
  162. package/dist/utils/apiKeyInput.js.map +1 -1
  163. package/dist/utils/apiOrigin.d.ts +43 -0
  164. package/dist/utils/apiOrigin.d.ts.map +1 -0
  165. package/dist/utils/apiOrigin.js +78 -0
  166. package/dist/utils/apiOrigin.js.map +1 -0
  167. package/dist/utils/config.d.ts +9 -3
  168. package/dist/utils/config.d.ts.map +1 -1
  169. package/dist/utils/config.js +12 -4
  170. package/dist/utils/config.js.map +1 -1
  171. package/dist/utils/httpClient.d.ts.map +1 -1
  172. package/dist/utils/httpClient.js +50 -0
  173. package/dist/utils/httpClient.js.map +1 -1
  174. package/dist/utils/outputPolicy.d.ts +6 -7
  175. package/dist/utils/outputPolicy.d.ts.map +1 -1
  176. package/dist/utils/outputPolicy.js +0 -5
  177. package/dist/utils/outputPolicy.js.map +1 -1
  178. package/dist/utils/projectRootHash.d.ts +30 -0
  179. package/dist/utils/projectRootHash.d.ts.map +1 -0
  180. package/dist/utils/projectRootHash.js +43 -0
  181. package/dist/utils/projectRootHash.js.map +1 -0
  182. package/package.json +1 -1
@@ -0,0 +1,95 @@
1
+ import { CONVENTION_HINT, MCP_CLIENT_IDS, createApiKeyFileOption, formatOutput, handleError, } from './shared.js';
2
+ /**
3
+ * 액션 인벤토리: 액션: server(부모), config/install/doctor. 등록 액션은 client/scope/toolProfile/serverEntry/json 및 접속 옵션, install만 yes, doctor는 yes/json. 별칭 없음.
4
+ */
5
+ export function registerMcpCommand(program) {
6
+ const mcpCommand = program
7
+ .command('mcp')
8
+ .description('Run an MCP server over stdio, exposing AgentTeams reads to MCP-capable coding agents')
9
+ .option('--tool-profile <profile>', 'Tool catalog profile (full, read, documents, comments, minimal); full is the compatibility default, limited profiles reduce upfront schemas', 'full')
10
+ .option('--api-url <url>', 'Override API URL (optional)')
11
+ .addOption(createApiKeyFileOption())
12
+ .option('--project-id <id>', 'Override project ID (optional)')
13
+ .addHelpText('after', CONVENTION_HINT)
14
+ .action(async (options) => {
15
+ try {
16
+ // Loaded lazily so the MCP SDK — which requires a newer Node than some of
17
+ // the CLI's other commands need — never enters the other command paths.
18
+ const { startMcpServer } = await import('../commands/mcp.js');
19
+ // stdout carries JSON-RPC frames only: this action deliberately bypasses
20
+ // executeCommand()/printCommandResult() and never writes to stdout.
21
+ await startMcpServer({
22
+ apiUrl: options.apiUrl,
23
+ apiKey: options.apiKey,
24
+ projectId: options.projectId,
25
+ toolProfile: options.toolProfile,
26
+ });
27
+ }
28
+ catch (error) {
29
+ // Staying alive without credentials would make the client retry forever.
30
+ console.error(handleError(error));
31
+ process.exit(1);
32
+ }
33
+ });
34
+ const MCP_CLIENT_CHOICES = MCP_CLIENT_IDS.join(', ');
35
+ function addMcpRegistrationOptions(command) {
36
+ return command
37
+ .option('--client <id>', `Target client (${MCP_CLIENT_CHOICES})`)
38
+ .option('--scope <scope>', 'Configuration scope (user, project)', 'project')
39
+ .option('--tool-profile <profile>', 'Tool catalog profile (full, read, documents, comments, minimal); full is the compatibility default, limited profiles reduce upfront schemas. A client whose backend rejects part of the catalog is narrowed automatically unless you name a profile here')
40
+ .option('--server-entry <path>', 'Use a local `cli/dist/index.js` instead of the published package (for pre-release testing)')
41
+ .option('--json', 'Print the machine-readable result instead of the human-readable report', false)
42
+ .option('--api-url <url>', 'Override API URL (optional)')
43
+ .addOption(createApiKeyFileOption())
44
+ .option('--project-id <id>', 'Override project ID (optional)');
45
+ }
46
+ /**
47
+ * The registration surface is loaded lazily for the same reason the server is:
48
+ * `agentteams mcp` must stay a thin stdio entry point, and no other command
49
+ * should pay for the client registry.
50
+ */
51
+ async function runMcpRegistration(action, options, command) {
52
+ try {
53
+ const parentOptions = command.parent?.opts() ?? {};
54
+ const merged = { ...parentOptions, ...options };
55
+ const { runMcpConfigCommand, runMcpInstallCommand } = await import('../mcp-registration/index.js');
56
+ const output = action === 'config' ? runMcpConfigCommand(merged) : runMcpInstallCommand(merged);
57
+ console.log(options.json ? formatOutput(output.json) : output.text);
58
+ process.exitCode = output.exitCode;
59
+ }
60
+ catch (error) {
61
+ console.error(handleError(error));
62
+ process.exit(1);
63
+ }
64
+ }
65
+ addMcpRegistrationOptions(mcpCommand
66
+ .command('config')
67
+ .description('Print the MCP configuration snippet for a coding agent. Never writes files or credentials.'))
68
+ .addHelpText('after', CONVENTION_HINT)
69
+ .action((options, command) => runMcpRegistration('config', options, command));
70
+ addMcpRegistrationOptions(mcpCommand
71
+ .command('install')
72
+ .description('Register AgentTeams with local MCP clients. Without --client it only prints a detection plan; batch apply requires --scope user --yes.'))
73
+ .option('--yes', 'Apply an explicitly selected user-scope batch plan instead of only printing it', false)
74
+ .addHelpText('after', CONVENTION_HINT)
75
+ .action((options, command) => runMcpRegistration('install', options, command));
76
+ mcpCommand
77
+ .command('doctor')
78
+ .description('Find legacy plaintext MCP key copies; cleanup is applied only with explicit --yes confirmation.')
79
+ .option('--yes', 'Confirm safe cleanup after the audit', false)
80
+ .option('--json', 'Print the machine-readable result instead of the human-readable report', false)
81
+ .addHelpText('after', CONVENTION_HINT)
82
+ .action(async (options) => {
83
+ try {
84
+ const { runMcpDoctorCommand } = await import('../mcp-registration/doctor.js');
85
+ const output = await runMcpDoctorCommand({ yes: options.yes === true });
86
+ console.log(options.json ? formatOutput(output.json) : output.text);
87
+ process.exitCode = output.exitCode;
88
+ }
89
+ catch (error) {
90
+ console.error(handleError(error));
91
+ process.exit(1);
92
+ }
93
+ });
94
+ }
95
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/program/mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { Command } from 'commander';
2
+ export declare function addGitToggleOption(command: Command): Command;
3
+ export declare function addCompletionReportMetricsOptions(command: Command): Command;
4
+ export declare function addCompletionReportMetricValueOptions(command: Command): Command;
5
+ //# sourceMappingURL=completionReport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completionReport.d.ts","sourceRoot":"","sources":["../../../src/program/options/completionReport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAE5D;AAED,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAE3E;AAED,wBAAgB,qCAAqC,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAW/E"}
@@ -0,0 +1,19 @@
1
+ export function addGitToggleOption(command) {
2
+ return command.option('--no-git', 'Disable git metrics auto-collection');
3
+ }
4
+ export function addCompletionReportMetricsOptions(command) {
5
+ return addGitToggleOption(addCompletionReportMetricValueOptions(command));
6
+ }
7
+ export function addCompletionReportMetricValueOptions(command) {
8
+ return command
9
+ .option('--commit-hash <hash>', 'Git commit hash (manual override)')
10
+ .option('--branch-name <name>', 'Branch name (manual override)')
11
+ .option('--files-modified <n>', 'Number of modified files (manual override)')
12
+ .option('--lines-added <n>', 'Number of added lines (manual override)')
13
+ .option('--lines-deleted <n>', 'Number of deleted lines (manual override)')
14
+ .option('--duration-seconds <n>', 'Duration in seconds (manual only)')
15
+ .option('--commit-start <hash>', 'Commit range start hash (manual only)')
16
+ .option('--commit-end <hash>', 'Commit range end hash (manual only)')
17
+ .option('--pull-request-id <id>', 'Pull request ID (manual only)');
18
+ }
19
+ //# sourceMappingURL=completionReport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completionReport.js","sourceRoot":"","sources":["../../../src/program/options/completionReport.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,qCAAqC,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,OAAgB;IAChE,OAAO,kBAAkB,CAAC,qCAAqC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,qCAAqC,CAAC,OAAgB;IACpE,OAAO,OAAO;SACX,MAAM,CAAC,sBAAsB,EAAE,mCAAmC,CAAC;SACnE,MAAM,CAAC,sBAAsB,EAAE,+BAA+B,CAAC;SAC/D,MAAM,CAAC,sBAAsB,EAAE,4CAA4C,CAAC;SAC5E,MAAM,CAAC,mBAAmB,EAAE,yCAAyC,CAAC;SACtE,MAAM,CAAC,qBAAqB,EAAE,2CAA2C,CAAC;SAC1E,MAAM,CAAC,wBAAwB,EAAE,mCAAmC,CAAC;SACrE,MAAM,CAAC,uBAAuB,EAAE,uCAAuC,CAAC;SACxE,MAAM,CAAC,qBAAqB,EAAE,qCAAqC,CAAC;SACpE,MAAM,CAAC,wBAAwB,EAAE,+BAA+B,CAAC,CAAC;AACvE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function addConnectionOptions(command: Command): Command;
3
+ //# sourceMappingURL=connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/program/options/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAK9D"}
@@ -0,0 +1,8 @@
1
+ import { createApiKeyFileOption } from '../shared.js';
2
+ export function addConnectionOptions(command) {
3
+ return command
4
+ .option('--api-url <url>', 'Override API URL (optional)')
5
+ .addOption(createApiKeyFileOption())
6
+ .option('--project-id <id>', 'Override project ID (optional)');
7
+ }
8
+ //# sourceMappingURL=connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/program/options/connection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO,OAAO;SACX,MAAM,CAAC,iBAAiB,EAAE,6BAA6B,CAAC;SACxD,SAAS,CAAC,sBAAsB,EAAE,CAAC;SACnC,MAAM,CAAC,mBAAmB,EAAE,gCAAgC,CAAC,CAAC;AACnE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function addOutputOptions(command: Command): Command;
3
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/program/options/output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAI1D"}
@@ -0,0 +1,6 @@
1
+ export function addOutputOptions(command) {
2
+ return command
3
+ .option('--output-file <path>', 'Write full output to a file (stdout prints a short summary)')
4
+ .option('--verbose', 'Print full raw output to stdout; with --output-file, also echo it', false);
5
+ }
6
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/program/options/output.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,OAAO;SACX,MAAM,CAAC,sBAAsB,EAAE,6DAA6D,CAAC;SAC7F,MAAM,CAAC,WAAW,EAAE,mEAAmE,EAAE,KAAK,CAAC,CAAC;AACrG,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function addPaginationOptions(command: Command): Command;
3
+ //# sourceMappingURL=pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../../src/program/options/pagination.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAI9D"}
@@ -0,0 +1,6 @@
1
+ export function addPaginationOptions(command) {
2
+ return command
3
+ .option('--page <number>', 'Page number (list only)')
4
+ .option('--page-size <number>', 'Page size (list only)');
5
+ }
6
+ //# sourceMappingURL=pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../../src/program/options/pagination.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO,OAAO;SACX,MAAM,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;SACpD,MAAM,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Command } from 'commander';
2
+ export declare function addJsonResourceLeaf(parent: Command, resource: string, action: string, description: string, configure?: (command: Command) => Command, options?: {
3
+ connection?: boolean;
4
+ commandAction?: string;
5
+ }): Command;
6
+ //# sourceMappingURL=resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../src/program/options/resource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAA8B,EAC/D,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7D,OAAO,CAsBT"}
@@ -0,0 +1,29 @@
1
+ import { CONVENTION_HINT, executeCommand, handleError, printCommandResult } from '../shared.js';
2
+ import { addConnectionOptions } from './connection.js';
3
+ import { addOutputOptions } from './output.js';
4
+ export function addJsonResourceLeaf(parent, resource, action, description, configure = (command) => command, options = {}) {
5
+ let command = configure(parent.command(action).description(description));
6
+ if (options.connection !== false)
7
+ command = addConnectionOptions(command);
8
+ command = addOutputOptions(command).addHelpText('after', CONVENTION_HINT);
9
+ command.action(async (leafOptions) => {
10
+ try {
11
+ const { outputFile, verbose, ...actionOptions } = leafOptions;
12
+ const commandAction = options.commandAction ?? action;
13
+ const result = await executeCommand(resource, commandAction, actionOptions);
14
+ printCommandResult({
15
+ result,
16
+ outputFile,
17
+ verbose,
18
+ resource,
19
+ action: commandAction,
20
+ });
21
+ }
22
+ catch (error) {
23
+ console.error(handleError(error));
24
+ process.exit(1);
25
+ }
26
+ });
27
+ return command;
28
+ }
29
+ //# sourceMappingURL=resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.js","sourceRoot":"","sources":["../../../src/program/options/resource.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAChG,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,UAAU,mBAAmB,CACjC,MAAe,EACf,QAAgB,EAChB,MAAc,EACd,WAAmB,EACnB,YAA2C,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAC/D,UAA4D,EAAE;IAE9D,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;IACzE,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK;QAAE,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC1E,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAC1E,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;QACnC,IAAI,CAAC;YACH,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE,GAAG,WAAW,CAAC;YAC9D,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,MAAM,CAAC;YACtD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;YAC5E,kBAAkB,CAAC;gBACjB,MAAM;gBACN,UAAU;gBACV,OAAO;gBACP,QAAQ;gBACR,MAAM,EAAE,aAAa;aACtB,CAAC,CAAC;QACL,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;IACH,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Command } from './shared.js';
2
+ /**
3
+ * 액션 인벤토리: list/get/create/update/delete/download/cleanup/start/finish/quick/status/set-status/upload-html/link-issue/unlink-issue/list-issues.
4
+ * get/show와 link-issue/issue는 별칭이었으며 get과 link-issue만 유지합니다.
5
+ */
6
+ export declare function registerPlanCommand(program: Command): void;
7
+ //# sourceMappingURL=plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/program/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAoE,MAAM,aAAa,CAAC;AAKxG;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+L1D"}
@@ -0,0 +1,137 @@
1
+ import { CONVENTION_HINT, executeCommand, handleError, printCommandResult } from './shared.js';
2
+ import { addCompletionReportMetricsOptions, addGitToggleOption } from './options/completionReport.js';
3
+ import { addOutputOptions } from './options/output.js';
4
+ import { addPaginationOptions } from './options/pagination.js';
5
+ /**
6
+ * 액션 인벤토리: list/get/create/update/delete/download/cleanup/start/finish/quick/status/set-status/upload-html/link-issue/unlink-issue/list-issues.
7
+ * get/show와 link-issue/issue는 별칭이었으며 get과 link-issue만 유지합니다.
8
+ */
9
+ export function registerPlanCommand(program) {
10
+ const planCommand = program.command('plan').description('Manage plans').addHelpText('after', CONVENTION_HINT);
11
+ const addLeaf = (name, description, configure = (command) => command) => {
12
+ const command = addOutputOptions(configure(planCommand.command(name).description(description))).addHelpText('after', CONVENTION_HINT);
13
+ command.action(async (options) => {
14
+ try {
15
+ const { outputFile, verbose, ...actionOptions } = options;
16
+ const result = await executeCommand('plan', name, actionOptions);
17
+ printCommandResult({
18
+ result,
19
+ outputFile,
20
+ verbose,
21
+ resource: 'plan',
22
+ action: name,
23
+ });
24
+ }
25
+ catch (error) {
26
+ console.error(handleError(error));
27
+ process.exit(1);
28
+ }
29
+ });
30
+ return command;
31
+ };
32
+ addLeaf('list', 'List plans', (command) => addPaginationOptions(command)
33
+ .option('--title <title>', 'Plan title')
34
+ .option('--search <text>', 'Plan title/ID search keyword')
35
+ .option('--status <status>', 'Plan status')
36
+ .option('--type <type>', 'Plan type (FEATURE, BUG_FIX, ISSUE, REFACTOR, CHORE)')
37
+ .option('--assigned-to <id>', 'Agent config ID or name'));
38
+ addLeaf('get', 'Get a plan', (command) => command.option('--id <id>', 'Plan ID').option('--include-deps', 'Include dependencies in plan output', false));
39
+ addLeaf('status', 'Get plan lifecycle status', (command) => command.option('--id <id>', 'Plan ID'));
40
+ addLeaf('set-status', 'Set plan lifecycle status', (command) => command.option('--id <id>', 'Plan ID').option('--status <status>', 'Plan status'));
41
+ addLeaf('upload-html', 'Upload a legacy V1 plan HTML preview', (command) => command
42
+ .option('--id <id>', 'Plan ID')
43
+ .option('--file <path>', 'Read plan HTML summary from a local file')
44
+ .option('--stdin', 'Read plan HTML summary from stdin', false)
45
+ .option('--source-label <label>', 'Optional source label for uploaded plan HTML summary'));
46
+ addLeaf('start', 'Start plan execution', (command) => addGitToggleOption(command)
47
+ .option('--id <id>', 'Plan ID')
48
+ .option('--assigned-to <id>', 'Agent config ID or name')
49
+ .option('--task <text>', 'Task summary')
50
+ .option('--runner-type <type>', 'Runner type snapshot: CLAUDE_CODE, CODEX, ANTIGRAVITY, AMP, OPENCODE')
51
+ .option('--model <model>', 'Model ID snapshot')
52
+ .option('--fast', 'Request fast mode for the selected model when supported', false));
53
+ addLeaf('finish', 'Finish a plan and optionally attach a completion report', (command) => addCompletionReportMetricsOptions(command)
54
+ .option('--id <id>', 'Plan ID')
55
+ .option('--task <text>', 'Task summary')
56
+ .option('--report-title <title>', 'Completion report title')
57
+ .option('--report-file <path>', 'Read completion report content from a local file')
58
+ .option('--keep-temp', 'Keep the uploaded file under .agentteams/cli/temp/ instead of deleting it after upload', false)
59
+ .option('--report-status <status>', 'Completion report status: COMPLETED, FAILED, PARTIAL')
60
+ .option('--quality-score <n>', 'Quality score 0-100')
61
+ .option('--review-recommendation <value>', 'Code review recommendation: REQUIRED or NOT_NEEDED')
62
+ .option('--review-reason <text>', 'One-line reason for the review recommendation')
63
+ .option('--repository-remote-url <url>', 'Repository remote origin URL (defaults to git origin)')
64
+ .option('--runner-type <type>', 'Runner type snapshot: CLAUDE_CODE, CODEX, ANTIGRAVITY, AMP, OPENCODE')
65
+ .option('--model <model>', 'Model ID snapshot')
66
+ .option('--fast', 'Request fast mode for the selected model when supported', false));
67
+ addLeaf('create', 'Create a plan', (command) => addGitToggleOption(command)
68
+ .option('--title <title>', 'Plan title')
69
+ .option('--content <content>', 'Plan content (plain text or Tiptap JSON)')
70
+ .option('--interpret-escapes', 'Interpret \\n sequences in --content as newlines', false)
71
+ .option('--file <path>', 'Read plan content from a local file')
72
+ .option('--keep-temp', 'Keep the uploaded file under .agentteams/cli/temp/ instead of deleting it after upload', false)
73
+ .option('--html-file <path>', 'Read a legacy V1 plan HTML preview from a local file')
74
+ .option('--html-stdin', 'Read a legacy V1 plan HTML preview from stdin', false)
75
+ .option('--source-label <label>', 'Optional source label for uploaded plan HTML summary')
76
+ .option('--template <name>', 'Plan content template (refactor-minimal, quick-minimal)')
77
+ .option('--status <status>', 'Ignored because new plans start as BACKLOG')
78
+ .option('--type <type>', 'Plan type (FEATURE, BUG_FIX, ISSUE, REFACTOR, CHORE)')
79
+ .option('--complexity <level>', 'Plan complexity (MINIMAL, STANDARD, FULL; required)')
80
+ .option('--priority <priority>', 'Plan priority (LOW, MEDIUM, HIGH)')
81
+ .option('--repository-remote-url <url>', 'Repository remote origin URL (defaults to git origin)')
82
+ .option('--runner-type <type>', 'Runner type snapshot: CLAUDE_CODE, CODEX, ANTIGRAVITY, AMP, OPENCODE')
83
+ .option('--model <model>', 'Model ID snapshot')
84
+ .option('--fast', 'Request fast mode for the selected model when supported', false));
85
+ addLeaf('update', 'Update a plan', (command) => command
86
+ .option('--id <id>', 'Plan ID')
87
+ .option('--title <title>', 'Plan title')
88
+ .option('--content <content>', 'Plan content (plain text or Tiptap JSON)')
89
+ .option('--interpret-escapes', 'Interpret \\n sequences in --content as newlines', false)
90
+ .option('--file <path>', 'Read plan content from a local file')
91
+ .option('--keep-temp', 'Keep the uploaded file under .agentteams/cli/temp/ instead of deleting it after upload', false)
92
+ .option('--html-file <path>', 'Read a legacy V1 plan HTML preview from a local file')
93
+ .option('--html-stdin', 'Read a legacy V1 plan HTML preview from stdin', false)
94
+ .option('--source-label <label>', 'Optional source label for uploaded plan HTML summary')
95
+ .option('--status <status>', 'Plan status')
96
+ .option('--type <type>', 'Plan type (FEATURE, BUG_FIX, ISSUE, REFACTOR, CHORE)')
97
+ .option('--complexity <level>', 'Plan complexity (MINIMAL, STANDARD, FULL)')
98
+ .option('--complexity-reason <text>', 'Reason for changing complexity (recorded as a MODIFICATION comment)')
99
+ .option('--priority <priority>', 'Plan priority (LOW, MEDIUM, HIGH)'));
100
+ addLeaf('delete', 'Delete a plan', (command) => command.option('--id <id>', 'Plan ID'));
101
+ addLeaf('download', 'Download a plan runbook', (command) => command.option('--id <id>', 'Plan ID'));
102
+ addLeaf('cleanup', 'Remove downloaded plan runbooks', (command) => command.option('--id <id>', 'Plan ID (omit to remove all downloaded plans)'));
103
+ addLeaf('quick', 'Create and finish a quick log', (command) => addCompletionReportMetricsOptions(command)
104
+ .option('--title <title>', 'Plan title')
105
+ .option('--content <content>', 'Plan content')
106
+ .option('--interpret-escapes', 'Interpret \\n sequences in --content as newlines', false)
107
+ .option('--file <path>', 'Read plan content from a local file')
108
+ .option('--keep-temp', 'Keep uploaded files under .agentteams/cli/temp/ instead of deleting them after upload', false)
109
+ .option('--type <type>', 'Plan type (FEATURE, BUG_FIX, ISSUE, REFACTOR, CHORE)')
110
+ .option('--complexity <level>', 'Plan complexity (MINIMAL, STANDARD, FULL)')
111
+ .option('--priority <priority>', 'Plan priority (LOW, MEDIUM, HIGH)')
112
+ .option('--repository-remote-url <url>', 'Repository remote origin URL (defaults to git origin)')
113
+ .option('--assigned-to <id>', 'Agent config ID or name')
114
+ .option('--report-title <title>', 'Completion report title')
115
+ .option('--report-file <path>', 'Read completion report content from a local file')
116
+ .option('--report-status <status>', 'Completion report status: COMPLETED, FAILED, PARTIAL')
117
+ .option('--quality-score <n>', 'Quality score 0-100')
118
+ .option('--review-recommendation <value>', 'Code review recommendation: REQUIRED or NOT_NEEDED')
119
+ .option('--review-reason <text>', 'One-line reason for the review recommendation')
120
+ .option('--runner-type <type>', 'Runner type snapshot: CLAUDE_CODE, CODEX, ANTIGRAVITY, AMP, OPENCODE')
121
+ .option('--model <model>', 'Model ID snapshot')
122
+ .option('--fast', 'Request fast mode for the selected model when supported', false));
123
+ // 러너(@agentteams/runner)는 CLI와 별도로 배포되므로, CLI만 먼저 올라간 환경의
124
+ // 구 러너가 여전히 `plan issue`를 호출합니다. 한 릴리스 동안 숨은 별칭으로 흡수합니다.
125
+ // (별칭이어도 command.name()은 'link-issue'라 액션 분기는 그대로입니다.)
126
+ addLeaf('link-issue', 'Link an external issue to a plan', (command) => command
127
+ .alias('issue')
128
+ .option('--id <id>', 'Plan ID')
129
+ .option('--provider <provider>', 'External issue provider (GITHUB, GITLAB, LINEAR)')
130
+ .option('--external-id <id>', 'External issue ID')
131
+ .option('--external-url <url>', 'External issue URL')
132
+ .option('--title <title>', 'External issue title')
133
+ .option('--metadata <json>', 'Provider metadata as JSON (e.g. {"owner":"org","repo":"name"})'));
134
+ addLeaf('unlink-issue', 'Unlink an external issue from a plan', (command) => command.option('--id <id>', 'Plan ID').option('--issue-id <id>', 'PlanExternalIssue ID'));
135
+ addLeaf('list-issues', 'List external issues linked to a plan', (command) => command.option('--id <id>', 'Plan ID'));
136
+ }
137
+ //# sourceMappingURL=plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/program/plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Command } from './shared.js';
2
+ /** 액션 인벤토리: list/get/create/update/delete/download. */
3
+ export declare function registerPostmortemCommand(program: Command): void;
4
+ //# sourceMappingURL=postmortem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postmortem.d.ts","sourceRoot":"","sources":["../../src/program/postmortem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAmB,MAAM,aAAa,CAAC;AAKvD,uDAAuD;AACvD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgChE"}
@@ -0,0 +1,27 @@
1
+ import { CONVENTION_HINT } from './shared.js';
2
+ import { addGitToggleOption } from './options/completionReport.js';
3
+ import { addPaginationOptions } from './options/pagination.js';
4
+ import { addJsonResourceLeaf } from './options/resource.js';
5
+ /** 액션 인벤토리: list/get/create/update/delete/download. */
6
+ export function registerPostmortemCommand(program) {
7
+ const root = program.command('postmortem').description('Manage post mortems').addHelpText('after', CONVENTION_HINT);
8
+ const addLeaf = (action, description, configure = (command) => command) => addJsonResourceLeaf(root, 'postmortem', action, description, configure);
9
+ const addContent = (command) => command
10
+ .option('--plan-id <id>', 'Plan ID')
11
+ .option('--title <title>', 'Post mortem title')
12
+ .option('--content <content>', 'Post mortem markdown content')
13
+ .option('--file <path>', 'Read postmortem content from a local file')
14
+ .option('--keep-temp', 'Keep the uploaded temporary file', false)
15
+ .option('--action-items <csv>', 'Action items (comma-separated)')
16
+ .option('--status <status>', 'Post mortem status');
17
+ addLeaf('list', 'List post mortems', (command) => addPaginationOptions(command)
18
+ .option('--plan-id <id>', 'Plan ID')
19
+ .option('--status <status>', 'Post mortem status')
20
+ .option('--search <text>', 'Title keyword search'));
21
+ addLeaf('get', 'Get a post mortem', (command) => command.option('--id <id>', 'Post mortem ID'));
22
+ addLeaf('create', 'Create a post mortem', (command) => addGitToggleOption(addContent(command)).option('--repository-remote-url <url>', 'Repository remote origin URL (defaults to git origin)'));
23
+ addLeaf('update', 'Update a post mortem', (command) => addContent(command.option('--id <id>', 'Post mortem ID')));
24
+ addLeaf('delete', 'Delete a post mortem', (command) => command.option('--id <id>', 'Post mortem ID'));
25
+ addLeaf('download', 'Download a post mortem', (command) => command.option('--id <id>', 'Post mortem ID'));
26
+ }
27
+ //# sourceMappingURL=postmortem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postmortem.js","sourceRoot":"","sources":["../../src/program/postmortem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,eAAe,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,uDAAuD;AACvD,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACpH,MAAM,OAAO,GAAG,CACd,MAAc,EACd,WAAmB,EACnB,YAA2C,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAC/D,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAE,EAAE,CACtC,OAAO;SACJ,MAAM,CAAC,gBAAgB,EAAE,SAAS,CAAC;SACnC,MAAM,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;SAC9C,MAAM,CAAC,qBAAqB,EAAE,8BAA8B,CAAC;SAC7D,MAAM,CAAC,eAAe,EAAE,2CAA2C,CAAC;SACpE,MAAM,CAAC,aAAa,EAAE,kCAAkC,EAAE,KAAK,CAAC;SAChE,MAAM,CAAC,sBAAsB,EAAE,gCAAgC,CAAC;SAChE,MAAM,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;IACvD,OAAO,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,OAAO,EAAE,EAAE,CAC/C,oBAAoB,CAAC,OAAO,CAAC;SAC1B,MAAM,CAAC,gBAAgB,EAAE,SAAS,CAAC;SACnC,MAAM,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;SACjD,MAAM,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CACrD,CAAC;IACF,OAAO,CAAC,KAAK,EAAE,mBAAmB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAChG,OAAO,CAAC,QAAQ,EAAE,sBAAsB,EAAE,CAAC,OAAO,EAAE,EAAE,CACpD,kBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAC5C,+BAA+B,EAC/B,uDAAuD,CACxD,CACF,CAAC;IACF,OAAO,CAAC,QAAQ,EAAE,sBAAsB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAClH,OAAO,CAAC,QAAQ,EAAE,sBAAsB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACtG,OAAO,CAAC,UAAU,EAAE,wBAAwB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAC5G,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Command } from './shared.js';
2
+ /** 액션 인벤토리: list/get/create/update/dismiss-review/delete/download. */
3
+ export declare function registerReportCommand(program: Command): void;
4
+ //# sourceMappingURL=report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/program/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAmB,MAAM,aAAa,CAAC;AAQvD,sEAAsE;AACtE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2C5D"}
@@ -0,0 +1,38 @@
1
+ import { CONVENTION_HINT } from './shared.js';
2
+ import { addCompletionReportMetricsOptions, addCompletionReportMetricValueOptions, } from './options/completionReport.js';
3
+ import { addPaginationOptions } from './options/pagination.js';
4
+ import { addJsonResourceLeaf } from './options/resource.js';
5
+ /** 액션 인벤토리: list/get/create/update/dismiss-review/delete/download. */
6
+ export function registerReportCommand(program) {
7
+ const root = program.command('report').description('Manage completion reports').addHelpText('after', CONVENTION_HINT);
8
+ const addLeaf = (action, description, configure = (command) => command) => addJsonResourceLeaf(root, 'report', action, description, configure);
9
+ addLeaf('list', 'List completion reports', (command) => addPaginationOptions(command)
10
+ .option('--plan-id <id>', 'Plan ID')
11
+ .option('--status <status>', 'Report status')
12
+ .option('--search <text>', 'Title keyword search'));
13
+ addLeaf('get', 'Get a completion report', (command) => command.option('--id <id>', 'Report ID'));
14
+ addLeaf('create', 'Create a completion report', (command) => addCompletionReportMetricsOptions(command)
15
+ .option('--plan-id <id>', 'Plan ID')
16
+ .option('--title <title>', 'Report title')
17
+ .option('--file <path>', 'Read report content from a local file')
18
+ .option('--keep-temp', 'Keep the uploaded temporary file', false)
19
+ .option('--status <status>', 'Report status (COMPLETED, FAILED, PARTIAL)')
20
+ .option('--quality-score <n>', 'Quality score 0-100')
21
+ .option('--review-recommendation <value>', 'Code review recommendation: REQUIRED or NOT_NEEDED')
22
+ .option('--review-reason <text>', 'One-line reason for the review recommendation')
23
+ .option('--repository-remote-url <url>', 'Repository remote origin URL (defaults to git origin)')
24
+ .option('--runner-type <type>', 'Runner type snapshot')
25
+ .option('--model <model>', 'Model ID snapshot'));
26
+ addLeaf('update', 'Update a completion report', (command) => addCompletionReportMetricValueOptions(command)
27
+ .option('--id <id>', 'Report ID')
28
+ .option('--title <title>', 'Report title')
29
+ .option('--file <path>', 'Read report content from a local file')
30
+ .option('--status <status>', 'Report status (COMPLETED, FAILED, PARTIAL)')
31
+ .option('--quality-score <n>', 'Quality score 0-100')
32
+ .option('--review-recommendation <value>', 'Compatibility notice only')
33
+ .option('--review-reason <text>', 'Compatibility notice only'));
34
+ addLeaf('dismiss-review', 'Dismiss a report review recommendation', (command) => command.option('--id <id>', 'Report ID'));
35
+ addLeaf('delete', 'Delete a completion report', (command) => command.option('--id <id>', 'Report ID'));
36
+ addLeaf('download', 'Download a completion report', (command) => command.option('--id <id>', 'Report ID'));
37
+ }
38
+ //# sourceMappingURL=report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/program/report.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Command } from './shared.js';
2
+ /**
3
+ * 액션 인벤토리: 액션: get. 실사용 옵션: ref. 별칭/도움말 불일치: 없음.
4
+ */
5
+ export declare function registerResolveCommand(program: Command): void;
6
+ //# sourceMappingURL=resolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/program/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAoE,MAAM,aAAa,CAAC;AAExG;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8B7D"}
@@ -0,0 +1,30 @@
1
+ import { CONVENTION_HINT, executeCommand, handleError, printCommandResult } from './shared.js';
2
+ /**
3
+ * 액션 인벤토리: 액션: get. 실사용 옵션: ref. 별칭/도움말 불일치: 없음.
4
+ */
5
+ export function registerResolveCommand(program) {
6
+ program
7
+ .command('resolve')
8
+ .description('Resolve an entity reference token to the right entity and fetch it')
9
+ .argument('<ref>', 'Reference token, e.g. "plan:agentteams_pln_<uuid>", "agentteams_doc_<uuid>", or a whole [label](type:id) link')
10
+ .option('--output-file <path>', 'Write full output to a file (stdout prints a short summary)')
11
+ .option('--verbose', 'Print full raw output to stdout; with --output-file, also echo it', false)
12
+ .addHelpText('after', `\nReturns a "kind" that tells you what to do next:\n file read "filePath" (the entity body was downloaded)\n record use "record" (structured payload, already inline)\n localFile read "filePath" (the reference carried a local path)\n external open "url" or run "suggestedCommand" (gh/glab)\n${CONVENTION_HINT}`)
13
+ .action(async (ref, options) => {
14
+ try {
15
+ const result = await executeCommand('resolve', 'get', { ref });
16
+ printCommandResult({
17
+ result,
18
+ outputFile: options.outputFile,
19
+ verbose: options.verbose,
20
+ resource: 'resolve',
21
+ action: 'get',
22
+ });
23
+ }
24
+ catch (error) {
25
+ console.error(handleError(error));
26
+ process.exit(1);
27
+ }
28
+ });
29
+ }
30
+ //# sourceMappingURL=resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/program/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAExG;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,oEAAoE,CAAC;SACjF,QAAQ,CACP,OAAO,EACP,+GAA+G,CAChH;SACA,MAAM,CAAC,sBAAsB,EAAE,6DAA6D,CAAC;SAC7F,MAAM,CAAC,WAAW,EAAE,mEAAmE,EAAE,KAAK,CAAC;SAC/F,WAAW,CACV,OAAO,EACP,sTAAsT,eAAe,EAAE,CACxU;SACA,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YAE/D,kBAAkB,CAAC;gBACjB,MAAM;gBACN,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ,EAAE,SAAS;gBACnB,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;QACL,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,6 @@
1
+ import { Command } from './shared.js';
2
+ /**
3
+ * 액션 인벤토리: 단일 액션형 커맨드. 실사용 옵션: query,types,limit,maxTokens 및 접속 옵션. limit은 유일한 페이징 옵션이며 별칭이 아님.
4
+ */
5
+ export declare function registerSearchCommand(program: Command): void;
6
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/program/search.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAMR,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0C5D"}