@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.
- package/.eslintcache +1 -1
- package/README.md +81 -23
- package/dist/auth/credentialStore.d.ts +70 -10
- package/dist/auth/credentialStore.d.ts.map +1 -1
- package/dist/auth/credentialStore.js +207 -20
- package/dist/auth/credentialStore.js.map +1 -1
- package/dist/auth/fileCredentialStore.d.ts +172 -0
- package/dist/auth/fileCredentialStore.d.ts.map +1 -0
- package/dist/auth/fileCredentialStore.js +445 -0
- package/dist/auth/fileCredentialStore.js.map +1 -0
- package/dist/auth/personalTokenClient.d.ts +7 -1
- package/dist/auth/personalTokenClient.d.ts.map +1 -1
- package/dist/auth/personalTokenClient.js +19 -4
- package/dist/auth/personalTokenClient.js.map +1 -1
- package/dist/auth/personalTokenStore.d.ts +1 -1
- package/dist/auth/personalTokenStore.d.ts.map +1 -1
- package/dist/auth/personalTokenStore.js +7 -2
- package/dist/auth/personalTokenStore.js.map +1 -1
- package/dist/auth/refreshLock.d.ts +5 -2
- package/dist/auth/refreshLock.d.ts.map +1 -1
- package/dist/auth/refreshLock.js +8 -4
- package/dist/auth/refreshLock.js.map +1 -1
- package/dist/auth/slotHash.d.ts +15 -0
- package/dist/auth/slotHash.d.ts.map +1 -0
- package/dist/auth/slotHash.js +18 -0
- package/dist/auth/slotHash.js.map +1 -0
- package/dist/commands/auth.d.ts +8 -1
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +41 -7
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/coaction.d.ts.map +1 -1
- package/dist/commands/coaction.js +6 -21
- package/dist/commands/coaction.js.map +1 -1
- package/dist/commands/codeReview.d.ts.map +1 -1
- package/dist/commands/codeReview.js +1 -2
- package/dist/commands/codeReview.js.map +1 -1
- package/dist/commands/doctor.js +1 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/document.d.ts +0 -1
- package/dist/commands/document.d.ts.map +1 -1
- package/dist/commands/document.js +1 -1
- package/dist/commands/document.js.map +1 -1
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +2 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +10 -53
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/postmortem.d.ts.map +1 -1
- package/dist/commands/postmortem.js +1 -5
- package/dist/commands/postmortem.js.map +1 -1
- package/dist/commands/report.d.ts.map +1 -1
- package/dist/commands/report.js +1 -5
- package/dist/commands/report.js.map +1 -1
- package/dist/commands/task.js +2 -2
- package/dist/commands/task.js.map +1 -1
- package/dist/index.js +3 -1350
- package/dist/index.js.map +1 -1
- package/dist/mcp/context.d.ts +1 -1
- package/dist/mcp/context.js +1 -1
- package/dist/mcp/context.js.map +1 -1
- package/dist/mcp-registration/index.js +3 -3
- package/dist/mcp-registration/index.js.map +1 -1
- package/dist/mcp-registration/serverSpec.d.ts +1 -1
- package/dist/program/agentConfig.d.ts +3 -0
- package/dist/program/agentConfig.d.ts.map +1 -0
- package/dist/program/agentConfig.js +14 -0
- package/dist/program/agentConfig.js.map +1 -0
- package/dist/program/attachment.d.ts +3 -0
- package/dist/program/attachment.d.ts.map +1 -0
- package/dist/program/attachment.js +17 -0
- package/dist/program/attachment.js.map +1 -0
- package/dist/program/auth.d.ts +3 -0
- package/dist/program/auth.d.ts.map +1 -0
- package/dist/program/auth.js +39 -0
- package/dist/program/auth.js.map +1 -0
- package/dist/program/changeSet.d.ts +4 -0
- package/dist/program/changeSet.d.ts.map +1 -0
- package/dist/program/changeSet.js +53 -0
- package/dist/program/changeSet.js.map +1 -0
- package/dist/program/coaction.d.ts +7 -0
- package/dist/program/coaction.d.ts.map +1 -0
- package/dist/program/coaction.js +81 -0
- package/dist/program/coaction.js.map +1 -0
- package/dist/program/codeReview.d.ts +4 -0
- package/dist/program/codeReview.d.ts.map +1 -0
- package/dist/program/codeReview.js +100 -0
- package/dist/program/codeReview.js.map +1 -0
- package/dist/program/comment.d.ts +4 -0
- package/dist/program/comment.d.ts.map +1 -0
- package/dist/program/comment.js +50 -0
- package/dist/program/comment.js.map +1 -0
- package/dist/program/config.d.ts +3 -0
- package/dist/program/config.d.ts.map +1 -0
- package/dist/program/config.js +9 -0
- package/dist/program/config.js.map +1 -0
- package/dist/program/convention.d.ts +4 -0
- package/dist/program/convention.d.ts.map +1 -0
- package/dist/program/convention.js +37 -0
- package/dist/program/convention.js.map +1 -0
- package/dist/program/dependency.d.ts +3 -0
- package/dist/program/dependency.d.ts.map +1 -0
- package/dist/program/dependency.js +15 -0
- package/dist/program/dependency.js.map +1 -0
- package/dist/program/doctor.d.ts +6 -0
- package/dist/program/doctor.d.ts.map +1 -0
- package/dist/program/doctor.js +31 -0
- package/dist/program/doctor.js.map +1 -0
- package/dist/program/document.d.ts +7 -0
- package/dist/program/document.d.ts.map +1 -0
- package/dist/program/document.js +87 -0
- package/dist/program/document.js.map +1 -0
- package/dist/program/feedback.d.ts +3 -0
- package/dist/program/feedback.d.ts.map +1 -0
- package/dist/program/feedback.js +10 -0
- package/dist/program/feedback.js.map +1 -0
- package/dist/program/index.d.ts +3 -0
- package/dist/program/index.d.ts.map +1 -0
- package/dist/program/index.js +66 -0
- package/dist/program/index.js.map +1 -0
- package/dist/program/init.d.ts +6 -0
- package/dist/program/init.d.ts.map +1 -0
- package/dist/program/init.js +50 -0
- package/dist/program/init.js.map +1 -0
- package/dist/program/linear.d.ts +3 -0
- package/dist/program/linear.d.ts.map +1 -0
- package/dist/program/linear.js +25 -0
- package/dist/program/linear.js.map +1 -0
- package/dist/program/mcp.d.ts +6 -0
- package/dist/program/mcp.d.ts.map +1 -0
- package/dist/program/mcp.js +95 -0
- package/dist/program/mcp.js.map +1 -0
- package/dist/program/options/completionReport.d.ts +5 -0
- package/dist/program/options/completionReport.d.ts.map +1 -0
- package/dist/program/options/completionReport.js +19 -0
- package/dist/program/options/completionReport.js.map +1 -0
- package/dist/program/options/connection.d.ts +3 -0
- package/dist/program/options/connection.d.ts.map +1 -0
- package/dist/program/options/connection.js +8 -0
- package/dist/program/options/connection.js.map +1 -0
- package/dist/program/options/output.d.ts +3 -0
- package/dist/program/options/output.d.ts.map +1 -0
- package/dist/program/options/output.js +6 -0
- package/dist/program/options/output.js.map +1 -0
- package/dist/program/options/pagination.d.ts +3 -0
- package/dist/program/options/pagination.d.ts.map +1 -0
- package/dist/program/options/pagination.js +6 -0
- package/dist/program/options/pagination.js.map +1 -0
- package/dist/program/options/resource.d.ts +6 -0
- package/dist/program/options/resource.d.ts.map +1 -0
- package/dist/program/options/resource.js +29 -0
- package/dist/program/options/resource.js.map +1 -0
- package/dist/program/plan.d.ts +7 -0
- package/dist/program/plan.d.ts.map +1 -0
- package/dist/program/plan.js +137 -0
- package/dist/program/plan.js.map +1 -0
- package/dist/program/postmortem.d.ts +4 -0
- package/dist/program/postmortem.d.ts.map +1 -0
- package/dist/program/postmortem.js +27 -0
- package/dist/program/postmortem.js.map +1 -0
- package/dist/program/report.d.ts +4 -0
- package/dist/program/report.d.ts.map +1 -0
- package/dist/program/report.js +38 -0
- package/dist/program/report.js.map +1 -0
- package/dist/program/resolve.d.ts +6 -0
- package/dist/program/resolve.d.ts.map +1 -0
- package/dist/program/resolve.js +30 -0
- package/dist/program/resolve.js.map +1 -0
- package/dist/program/search.d.ts +6 -0
- package/dist/program/search.d.ts.map +1 -0
- package/dist/program/search.js +43 -0
- package/dist/program/search.js.map +1 -0
- package/dist/program/shared.d.ts +32 -0
- package/dist/program/shared.d.ts.map +1 -0
- package/dist/program/shared.js +96 -0
- package/dist/program/shared.js.map +1 -0
- package/dist/program/sync.d.ts +6 -0
- package/dist/program/sync.d.ts.map +1 -0
- package/dist/program/sync.js +35 -0
- package/dist/program/sync.js.map +1 -0
- package/dist/program/task.d.ts +3 -0
- package/dist/program/task.d.ts.map +1 -0
- package/dist/program/task.js +13 -0
- package/dist/program/task.js.map +1 -0
- package/dist/program/worktree.d.ts +3 -0
- package/dist/program/worktree.d.ts.map +1 -0
- package/dist/program/worktree.js +30 -0
- package/dist/program/worktree.js.map +1 -0
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/apiContext.d.ts.map +1 -1
- package/dist/utils/apiContext.js +6 -1
- package/dist/utils/apiContext.js.map +1 -1
- package/dist/utils/apiKeyInput.d.ts +1 -3
- package/dist/utils/apiKeyInput.d.ts.map +1 -1
- package/dist/utils/apiKeyInput.js +1 -9
- package/dist/utils/apiKeyInput.js.map +1 -1
- package/dist/utils/apiOrigin.d.ts +43 -0
- package/dist/utils/apiOrigin.d.ts.map +1 -0
- package/dist/utils/apiOrigin.js +78 -0
- package/dist/utils/apiOrigin.js.map +1 -0
- package/dist/utils/authFormat.d.ts.map +1 -1
- package/dist/utils/authFormat.js +32 -11
- package/dist/utils/authFormat.js.map +1 -1
- package/dist/utils/config.d.ts +10 -4
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +13 -5
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/httpClient.d.ts.map +1 -1
- package/dist/utils/httpClient.js +50 -0
- package/dist/utils/httpClient.js.map +1 -1
- package/dist/utils/initOutput.d.ts.map +1 -1
- package/dist/utils/initOutput.js +14 -3
- package/dist/utils/initOutput.js.map +1 -1
- package/dist/utils/outputPolicy.d.ts +6 -7
- package/dist/utils/outputPolicy.d.ts.map +1 -1
- package/dist/utils/outputPolicy.js +0 -5
- package/dist/utils/outputPolicy.js.map +1 -1
- package/dist/utils/projectRootHash.d.ts +30 -0
- package/dist/utils/projectRootHash.d.ts.map +1 -0
- package/dist/utils/projectRootHash.js +43 -0
- package/dist/utils/projectRootHash.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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":"AAAA,OAAO,EAAW,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACxG,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,0BAA0B,CAAC;SACvC,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAEzC,MAAM,OAAO,GAAG,CACd,IAAY,EACZ,WAAmB,EACnB,YAA2C,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EACtD,EAAE;QACX,MAAM,OAAO,GAAG,gBAAgB,CAC9B,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAC/E,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAExC,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,UAAU,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;gBAErE,kBAAkB,CAAC;oBACjB,MAAM;oBACN,UAAU;oBACV,OAAO;oBACP,QAAQ,EAAE,UAAU;oBACpB,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC;YACL,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;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,uBAAuB,GAAG,CAAC,OAAgB,EAAE,wBAAwB,GAAG,KAAK,EAAW,EAAE;QAC9F,MAAM,UAAU,GAAG,OAAO;aACvB,MAAM,CACL,qBAAqB,EACrB,sFAAsF,CACvF;aACA,MAAM,CACL,yBAAyB,EACzB,wFAAwF,CACzF,CAAC;QACJ,OAAO,wBAAwB;YAC7B,CAAC,CAAC,UAAU,CAAC,MAAM,CACf,6BAA6B,EAC7B,0FAA0F,CAC3F;YACH,CAAC,CAAC,UAAU,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO,CAAC,QAAQ,EAAE,mBAAmB,EAAE,CAAC,OAAO,EAAE,EAAE,CACjD,uBAAuB,CAAC,OAAO,CAAC;SAC7B,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;SAC3C,MAAM,CAAC,eAAe,EAAE,sCAAsC,CAAC;SAC/D,MAAM,CAAC,eAAe,EAAE,iCAAiC,CAAC;SAC1D,MAAM,CAAC,yBAAyB,EAAE,mCAAmC,CAAC;SACtE,MAAM,CAAC,2BAA2B,EAAE,yCAAyC,CAAC,CAClF,CAAC;IACF,OAAO,CAAC,QAAQ,EAAE,mBAAmB,EAAE,CAAC,OAAO,EAAE,EAAE,CACjD,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC;SACnC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC;SAClC,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;SAC3C,MAAM,CAAC,eAAe,EAAE,sCAAsC,CAAC;SAC/D,MAAM,CAAC,eAAe,EAAE,iCAAiC,CAAC;SAC1D,MAAM,CAAC,yBAAyB,EAAE,mCAAmC,CAAC;SACtE,MAAM,CAAC,2BAA2B,EAAE,yCAAyC,CAAC,CAClF,CAAC;IACF,OAAO,CAAC,UAAU,EAAE,qBAAqB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;IACpG,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,OAAO,EAAE,EAAE,CAC5C,oBAAoB,CAAC,OAAO,CAAC;SAC1B,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC;SACrC,MAAM,CAAC,eAAe,EAAE,4BAA4B,CAAC;SACrD,MAAM,CAAC,2BAA2B,EAAE,yCAAyC,CAAC;SAC9E,MAAM,CAAC,oBAAoB,EAAE,wCAAwC,CAAC,CAC1E,CAAC;IACF,OAAO,CAAC,MAAM,EAAE,8BAA8B,EAAE,CAAC,OAAO,EAAE,EAAE,CAC1D,OAAO;SACJ,MAAM,CAAC,2BAA2B,EAAE,yCAAyC,CAAC;SAC9E,MAAM,CAAC,oBAAoB,EAAE,wCAAwC,CAAC,CAC1E,CAAC;IACF,OAAO,CAAC,QAAQ,EAAE,mBAAmB,EAAE,CAAC,OAAO,EAAE,EAAE,CACjD,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,CAC1E,CAAC;IACF,OAAO,CAAC,SAAS,EAAE,oBAAoB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;IAClG,OAAO,CAAC,WAAW,EAAE,sBAAsB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;IACtG,OAAO,CAAC,WAAW,EAAE,yBAAyB,EAAE,CAAC,OAAO,EAAE,EAAE,CAC1D,oBAAoB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,CACjE,CAAC;IACF,OAAO,CAAC,cAAc,EAAE,yBAAyB,EAAE,CAAC,OAAO,EAAE,EAAE,CAC7D,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAChG,CAAC;IACF,OAAO,CAAC,kBAAkB,EAAE,6BAA6B,EAAE,CAAC,OAAO,EAAE,EAAE,CACrE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAChG,CAAC;IACF,OAAO,CAAC,cAAc,EAAE,wBAAwB,EAAE,CAAC,OAAO,EAAE,EAAE,CAC5D,oBAAoB,CAAC,OAAO,CAAC;SAC1B,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC;SAClC,MAAM,CAAC,iBAAiB,EAAE,6BAA6B,CAAC,CAC5D,CAAC;IACF,OAAO,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,CAAC,OAAO,EAAE,EAAE,CACjE,uBAAuB,CAAC,OAAO,CAAC;SAC7B,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC;SAClC,MAAM,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;SACtD,MAAM,CAAC,eAAe,EAAE,iDAAiD,CAAC,CAC9E,CAAC;IACF,OAAO,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,CAAC,OAAO,EAAE,EAAE,CACjE,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC;SACnC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC;SAClC,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;SAClD,MAAM,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;SACtD,MAAM,CAAC,eAAe,EAAE,iDAAiD,CAAC,CAC9E,CAAC;IACF,OAAO,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,CAAC,OAAO,EAAE,EAAE,CACjE,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC;SACnC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC;SAClC,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CACtD,CAAC;AACJ,CAAC"}
|
|
@@ -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 @@
|
|
|
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"}
|