harvask-cli 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +147 -0
  3. package/dist/api-base.js +8 -0
  4. package/dist/api-base.js.map +1 -0
  5. package/dist/api-client.js +221 -0
  6. package/dist/api-client.js.map +1 -0
  7. package/dist/cli.js +154 -0
  8. package/dist/cli.js.map +1 -0
  9. package/dist/commands/_exec.js +63 -0
  10. package/dist/commands/_exec.js.map +1 -0
  11. package/dist/commands/api/index.js +88 -0
  12. package/dist/commands/api/index.js.map +1 -0
  13. package/dist/commands/attachment/index.js +54 -0
  14. package/dist/commands/attachment/index.js.map +1 -0
  15. package/dist/commands/auth/index.js +238 -0
  16. package/dist/commands/auth/index.js.map +1 -0
  17. package/dist/commands/calendar/index.js +167 -0
  18. package/dist/commands/calendar/index.js.map +1 -0
  19. package/dist/commands/chat/index.js +97 -0
  20. package/dist/commands/chat/index.js.map +1 -0
  21. package/dist/commands/file/index.js +42 -0
  22. package/dist/commands/file/index.js.map +1 -0
  23. package/dist/commands/global-wiki/index.js +196 -0
  24. package/dist/commands/global-wiki/index.js.map +1 -0
  25. package/dist/commands/issue/builds.js +160 -0
  26. package/dist/commands/issue/builds.js.map +1 -0
  27. package/dist/commands/issue/index.js +169 -0
  28. package/dist/commands/issue/index.js.map +1 -0
  29. package/dist/commands/issue/sub.js +149 -0
  30. package/dist/commands/issue/sub.js.map +1 -0
  31. package/dist/commands/issue/subbuilds.js +174 -0
  32. package/dist/commands/issue/subbuilds.js.map +1 -0
  33. package/dist/commands/milestone/index.js +104 -0
  34. package/dist/commands/milestone/index.js.map +1 -0
  35. package/dist/commands/note/builds.js +68 -0
  36. package/dist/commands/note/builds.js.map +1 -0
  37. package/dist/commands/note/index.js +122 -0
  38. package/dist/commands/note/index.js.map +1 -0
  39. package/dist/commands/preview-config/index.js +87 -0
  40. package/dist/commands/preview-config/index.js.map +1 -0
  41. package/dist/commands/project/builds.js +78 -0
  42. package/dist/commands/project/builds.js.map +1 -0
  43. package/dist/commands/project/index.js +103 -0
  44. package/dist/commands/project/index.js.map +1 -0
  45. package/dist/commands/scheduled-task/index.js +196 -0
  46. package/dist/commands/scheduled-task/index.js.map +1 -0
  47. package/dist/commands/site-credential/index.js +23 -0
  48. package/dist/commands/site-credential/index.js.map +1 -0
  49. package/dist/commands/skill/index.js +121 -0
  50. package/dist/commands/skill/index.js.map +1 -0
  51. package/dist/commands/storage/index.js +103 -0
  52. package/dist/commands/storage/index.js.map +1 -0
  53. package/dist/commands/user/index.js +55 -0
  54. package/dist/commands/user/index.js.map +1 -0
  55. package/dist/commands/wiki/builds.js +135 -0
  56. package/dist/commands/wiki/builds.js.map +1 -0
  57. package/dist/commands/wiki/index.js +177 -0
  58. package/dist/commands/wiki/index.js.map +1 -0
  59. package/dist/commands/workflow/index.js +111 -0
  60. package/dist/commands/workflow/index.js.map +1 -0
  61. package/dist/config.js +123 -0
  62. package/dist/config.js.map +1 -0
  63. package/dist/context.js +61 -0
  64. package/dist/context.js.map +1 -0
  65. package/dist/errors/hint-map.js +81 -0
  66. package/dist/errors/hint-map.js.map +1 -0
  67. package/dist/errors/index.js +132 -0
  68. package/dist/errors/index.js.map +1 -0
  69. package/dist/index.js +17 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/output/format.js +108 -0
  72. package/dist/output/format.js.map +1 -0
  73. package/dist/output/index.js +3 -0
  74. package/dist/output/index.js.map +1 -0
  75. package/dist/output/tty.js +22 -0
  76. package/dist/output/tty.js.map +1 -0
  77. package/dist/registry.js +47 -0
  78. package/dist/registry.js.map +1 -0
  79. package/dist/token-store.js +92 -0
  80. package/dist/token-store.js.map +1 -0
  81. package/dist/types/api.js +8 -0
  82. package/dist/types/api.js.map +1 -0
  83. package/dist/utils/bulk.js +29 -0
  84. package/dist/utils/bulk.js.map +1 -0
  85. package/dist/utils/download.js +36 -0
  86. package/dist/utils/download.js.map +1 -0
  87. package/dist/utils/file-utils.js +58 -0
  88. package/dist/utils/file-utils.js.map +1 -0
  89. package/dist/utils/input.js +66 -0
  90. package/dist/utils/input.js.map +1 -0
  91. package/dist/utils/issue-resolver.js +20 -0
  92. package/dist/utils/issue-resolver.js.map +1 -0
  93. package/dist/utils/loopback.js +86 -0
  94. package/dist/utils/loopback.js.map +1 -0
  95. package/dist/utils/pkce.js +20 -0
  96. package/dist/utils/pkce.js.map +1 -0
  97. package/dist/utils/project-resolver.js +63 -0
  98. package/dist/utils/project-resolver.js.map +1 -0
  99. package/dist/utils/prompt.js +17 -0
  100. package/dist/utils/prompt.js.map +1 -0
  101. package/dist/utils/upload.js +32 -0
  102. package/dist/utils/upload.js.map +1 -0
  103. package/package.json +44 -0
  104. package/skills/harvask/AGENTS.md +131 -0
  105. package/skills/harvask/GEMINI.md +131 -0
  106. package/skills/harvask/SKILL.md +134 -0
@@ -0,0 +1,196 @@
1
+ /**
2
+ * scheduled-task カテゴリ(定期タスク, /v1/projects/{project}/scheduled-tasks)。
3
+ */
4
+ import { execCall, parseProjectArg } from '../_exec.js';
5
+ import { printOutput } from '../../output/index.js';
6
+ import { ValidationError } from '../../errors/index.js';
7
+ import { parseIntArg, parseNumberList } from '../../utils/input.js';
8
+ import { API_NS } from '../../api-base.js';
9
+ const BASE = `${API_NS}/projects/{project}/scheduled-tasks`;
10
+ export const EXECUTION_TYPES = ['issue', 'workflow'];
11
+ export const FREQUENCIES = ['daily', 'weekly', 'monthly', 'cron'];
12
+ export const ST_ISSUE_TYPES = ['task', 'bug', 'feature', 'research', 'one_shot'];
13
+ export const ST_PRIORITIES = ['low', 'normal', 'high', 'urgent'];
14
+ function assertEnum(value, allowed, field) {
15
+ if (!allowed.includes(value))
16
+ throw new ValidationError(`${field} must be one of: ${allowed.join(', ')}`);
17
+ }
18
+ export function buildScheduledTaskListCall() {
19
+ return { method: 'GET', path: BASE };
20
+ }
21
+ export function buildScheduledTaskShowCall(id) {
22
+ return { method: 'GET', path: `${BASE}/${id}` };
23
+ }
24
+ export function buildScheduledTaskCreateCall(a) {
25
+ if (!a.name || a.name.trim() === '')
26
+ throw new ValidationError('name is required (--name)');
27
+ if (a.name.length > 255)
28
+ throw new ValidationError('name must be <= 255 characters');
29
+ assertEnum(a.executionType, EXECUTION_TYPES, 'execution-type');
30
+ assertEnum(a.frequency, FREQUENCIES, 'frequency');
31
+ // 頻度別の必須チェック
32
+ if (a.frequency === 'cron') {
33
+ if (!a.cronExpression)
34
+ throw new ValidationError('--cron is required when frequency=cron');
35
+ }
36
+ else {
37
+ if (!a.executionTime)
38
+ throw new ValidationError('--time (HH:MM) is required unless frequency=cron');
39
+ if (!/^\d{2}:\d{2}$/.test(a.executionTime))
40
+ throw new ValidationError('--time must be HH:MM');
41
+ }
42
+ if (a.frequency === 'weekly' && a.dayOfWeek === undefined) {
43
+ throw new ValidationError('--day-of-week (0-6) is required when frequency=weekly');
44
+ }
45
+ if (a.frequency === 'monthly' && a.dayOfMonth === undefined) {
46
+ throw new ValidationError('--day-of-month (1-28) is required when frequency=monthly');
47
+ }
48
+ if (a.dayOfWeek !== undefined && (a.dayOfWeek < 0 || a.dayOfWeek > 6)) {
49
+ throw new ValidationError('--day-of-week must be 0-6');
50
+ }
51
+ if (a.dayOfMonth !== undefined && (a.dayOfMonth < 1 || a.dayOfMonth > 28)) {
52
+ throw new ValidationError('--day-of-month must be 1-28');
53
+ }
54
+ // execution_type 別の必須
55
+ if (a.executionType === 'issue') {
56
+ if (!a.title)
57
+ throw new ValidationError('--title is required when execution-type=issue');
58
+ if (!a.priority)
59
+ throw new ValidationError('--priority is required when execution-type=issue');
60
+ }
61
+ else if (a.executionType === 'workflow') {
62
+ if (a.workflowTemplateId === undefined)
63
+ throw new ValidationError('--workflow-template-id is required when execution-type=workflow');
64
+ }
65
+ if (a.issueType)
66
+ assertEnum(a.issueType, ST_ISSUE_TYPES, 'issue-type');
67
+ if (a.priority)
68
+ assertEnum(a.priority, ST_PRIORITIES, 'priority');
69
+ const b = {
70
+ name: a.name.trim(),
71
+ execution_type: a.executionType,
72
+ frequency: a.frequency,
73
+ };
74
+ if (a.description !== undefined)
75
+ b.description = a.description;
76
+ if (a.executionTime !== undefined)
77
+ b.execution_time = a.executionTime;
78
+ if (a.dayOfWeek !== undefined)
79
+ b.day_of_week = a.dayOfWeek;
80
+ if (a.dayOfMonth !== undefined)
81
+ b.day_of_month = a.dayOfMonth;
82
+ if (a.cronExpression !== undefined)
83
+ b.cron_expression = a.cronExpression;
84
+ if (a.title !== undefined)
85
+ b.title = a.title;
86
+ if (a.issueType !== undefined)
87
+ b.issue_type = a.issueType;
88
+ if (a.priority !== undefined)
89
+ b.priority = a.priority;
90
+ if (a.workflowTemplateId !== undefined)
91
+ b.workflow_template_id = a.workflowTemplateId;
92
+ if (a.assigneeId !== undefined)
93
+ b.assignee_id = a.assigneeId;
94
+ if (a.reviewerId !== undefined)
95
+ b.reviewer_id = a.reviewerId;
96
+ if (a.estimatedHours !== undefined)
97
+ b.estimated_hours = a.estimatedHours;
98
+ if (a.siteCredentialIds && a.siteCredentialIds.length)
99
+ b.site_credential_ids = a.siteCredentialIds;
100
+ return { method: 'POST', path: BASE, body: b };
101
+ }
102
+ export function buildScheduledTaskUpdateCall(id, a) {
103
+ if (a.name !== undefined && a.name.length > 255)
104
+ throw new ValidationError('name must be <= 255 characters');
105
+ const b = {};
106
+ if (a.name !== undefined)
107
+ b.name = a.name;
108
+ if (a.description !== undefined)
109
+ b.description = a.description;
110
+ if (a.isActive !== undefined)
111
+ b.is_active = a.isActive;
112
+ if (a.siteCredentialIds && a.siteCredentialIds.length)
113
+ b.site_credential_ids = a.siteCredentialIds;
114
+ if (Object.keys(b).length === 0)
115
+ throw new ValidationError('nothing to update');
116
+ return { method: 'PUT', path: `${BASE}/${id}`, body: b };
117
+ }
118
+ export const scheduledTaskModule = {
119
+ name: 'scheduled-task',
120
+ describe: 'Manage scheduled tasks',
121
+ register(program, ctx) {
122
+ const st = program.command('scheduled-task').description('Scheduled (recurring) tasks');
123
+ const withProject = (cmd) => cmd.option('-p, --project <key|id>', 'project key (PRJ) or numeric id');
124
+ withProject(st.command('list'))
125
+ .description('List scheduled tasks')
126
+ .action(async (opts) => {
127
+ printOutput(await execCall(ctx, buildScheduledTaskListCall(), parseProjectArg(opts.project)), ctx.out);
128
+ });
129
+ withProject(st.command('show'))
130
+ .description('Show a scheduled task')
131
+ .argument('<id>', 'scheduled task id')
132
+ .action(async (id, opts) => {
133
+ printOutput(await execCall(ctx, buildScheduledTaskShowCall(parseIntArg(id)), parseProjectArg(opts.project)), ctx.out);
134
+ });
135
+ withProject(st.command('create'))
136
+ .description('Create a scheduled task')
137
+ .requiredOption('--name <name>', 'name (<=255)')
138
+ .requiredOption('--execution-type <type>', `(${EXECUTION_TYPES.join('|')})`)
139
+ .requiredOption('--frequency <freq>', `(${FREQUENCIES.join('|')})`)
140
+ .option('--description <text>', 'description')
141
+ .option('--time <HH:MM>', 'execution time (required unless cron)')
142
+ .option('--day-of-week <n>', 'weekly: 0(Sun)-6(Sat)', parseIntArg)
143
+ .option('--day-of-month <n>', 'monthly: 1-28', parseIntArg)
144
+ .option('--cron <expr>', 'cron expression (when frequency=cron)')
145
+ .option('--title <title>', 'issue title (execution-type=issue)')
146
+ .option('--issue-type <type>', `(${ST_ISSUE_TYPES.join('|')})`)
147
+ .option('--priority <priority>', `(${ST_PRIORITIES.join('|')})`)
148
+ .option('--workflow-template-id <id>', 'workflow template id (execution-type=workflow)', parseIntArg)
149
+ .option('--assignee-id <id>', 'assignee user id', parseIntArg)
150
+ .option('--reviewer-id <id>', 'reviewer user id', parseIntArg)
151
+ .option('--estimated-hours <n>', 'estimated hours', parseFloat)
152
+ .option('--site-credential-ids <ids>', 'comma-separated site credential ids', parseNumberList)
153
+ .action(async (opts) => {
154
+ const call = buildScheduledTaskCreateCall({
155
+ name: opts.name,
156
+ executionType: opts.executionType,
157
+ frequency: opts.frequency,
158
+ description: opts.description,
159
+ executionTime: opts.time,
160
+ dayOfWeek: opts.dayOfWeek,
161
+ dayOfMonth: opts.dayOfMonth,
162
+ cronExpression: opts.cron,
163
+ title: opts.title,
164
+ issueType: opts.issueType,
165
+ priority: opts.priority,
166
+ workflowTemplateId: opts.workflowTemplateId,
167
+ assigneeId: opts.assigneeId,
168
+ reviewerId: opts.reviewerId,
169
+ estimatedHours: opts.estimatedHours,
170
+ siteCredentialIds: opts.siteCredentialIds,
171
+ });
172
+ printOutput(await execCall(ctx, call, parseProjectArg(opts.project)), ctx.out);
173
+ });
174
+ withProject(st.command('update'))
175
+ .description('Update a scheduled task')
176
+ .argument('<id>', 'scheduled task id')
177
+ .option('--name <name>', 'name (<=255)')
178
+ .option('--description <text>', 'description')
179
+ .option('--active', 'set active')
180
+ .option('--inactive', 'set inactive')
181
+ .option('--site-credential-ids <ids>', 'comma-separated site credential ids', parseNumberList)
182
+ .action(async (id, opts) => {
183
+ if (opts.active && opts.inactive)
184
+ throw new ValidationError('use only one of --active / --inactive');
185
+ const isActive = opts.active ? true : opts.inactive ? false : undefined;
186
+ const call = buildScheduledTaskUpdateCall(parseIntArg(id), {
187
+ name: opts.name,
188
+ description: opts.description,
189
+ isActive,
190
+ siteCredentialIds: opts.siteCredentialIds,
191
+ });
192
+ printOutput(await execCall(ctx, call, parseProjectArg(opts.project)), ctx.out);
193
+ });
194
+ },
195
+ };
196
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/scheduled-task/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * site-credential カテゴリ(read-only, /v1/projects/{project}/site-credentials)。
3
+ */
4
+ import { execCall, parseProjectArg } from '../_exec.js';
5
+ import { printOutput } from '../../output/index.js';
6
+ import { API_NS } from '../../api-base.js';
7
+ export function buildSiteCredentialListCall() {
8
+ return { method: 'GET', path: `${API_NS}/projects/{project}/site-credentials` };
9
+ }
10
+ export const siteCredentialModule = {
11
+ name: 'site-credential',
12
+ describe: 'List available browser site credentials (read-only)',
13
+ register(program, ctx) {
14
+ program
15
+ .command('site-credential')
16
+ .description('List browser site credentials usable in workflows / scheduled tasks')
17
+ .option('-p, --project <key|id>', 'project key (PRJ) or numeric id')
18
+ .action(async (opts) => {
19
+ printOutput(await execCall(ctx, buildSiteCredentialListCall(), parseProjectArg(opts.project)), ctx.out);
20
+ });
21
+ },
22
+ };
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/site-credential/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,UAAU,2BAA2B;IACzC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,sCAAsC,EAAE,CAAC;AAClF,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAmB;IAClD,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE,qDAAqD;IAC/D,QAAQ,CAAC,OAAgB,EAAE,GAAmB;QAC5C,OAAO;aACJ,OAAO,CAAC,iBAAiB,CAAC;aAC1B,WAAW,CAAC,qEAAqE,CAAC;aAClF,MAAM,CAAC,wBAAwB,EAAE,iCAAiC,CAAC;aACnE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACrB,WAAW,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,2BAA2B,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1G,CAAC,CAAC,CAAC;IACP,CAAC;CACF,CAAC"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * skill カテゴリ: 同梱の Agent Skill(skills/harvask)を Claude Code の
3
+ * スキル探索ディレクトリにインストール/アンインストールする(ローカル操作、認証不要)。
4
+ */
5
+ import { fileURLToPath } from 'node:url';
6
+ import { homedir } from 'node:os';
7
+ import { dirname, join, resolve } from 'node:path';
8
+ import { existsSync, lstatSync, readlinkSync, realpathSync, mkdirSync, rmSync, symlinkSync, cpSync, } from 'node:fs';
9
+ import { printOutput } from '../../output/index.js';
10
+ import { ValidationError } from '../../errors/index.js';
11
+ /**
12
+ * 同梱スキル(skills/harvask)の絶対パス。dist/commands/skill/index.js から
13
+ * パッケージルートを辿る。npm link / 通常インストールの双方で解決できる。
14
+ */
15
+ function skillSource() {
16
+ const here = dirname(fileURLToPath(import.meta.url)); // <root>/dist/commands/skill
17
+ const root = resolve(here, '..', '..', '..'); // <root>
18
+ const src = join(root, 'skills', 'harvask');
19
+ if (!existsSync(src)) {
20
+ throw new ValidationError(`bundled skill not found at ${src}`);
21
+ }
22
+ return src;
23
+ }
24
+ function targetDir(project) {
25
+ const base = project ? process.cwd() : homedir();
26
+ return join(base, '.claude', 'skills', 'harvask');
27
+ }
28
+ function lexists(p) {
29
+ try {
30
+ lstatSync(p);
31
+ return true;
32
+ }
33
+ catch {
34
+ return false;
35
+ }
36
+ }
37
+ function isSymlinkTo(p, src) {
38
+ try {
39
+ const st = lstatSync(p);
40
+ if (!st.isSymbolicLink()) {
41
+ return false;
42
+ }
43
+ return realpathSync(readlinkSync(p)) === realpathSync(src);
44
+ }
45
+ catch {
46
+ return false;
47
+ }
48
+ }
49
+ export const skillModule = {
50
+ name: 'skill',
51
+ describe: 'Install/uninstall the bundled agent skill for Claude Code',
52
+ register(program, ctx) {
53
+ const skill = program
54
+ .command('skill')
55
+ .description('Manage the bundled Claude Code agent skill (skills/harvask)')
56
+ .addHelpText('after', `
57
+ Installs the bundled skill so coding agents (e.g. Claude Code) discover it.
58
+ By default a symlink is created (edits to the source are reflected automatically).
59
+
60
+ Examples:
61
+ harvask skill install # symlink into ~/.claude/skills/harvask
62
+ harvask skill install --project # into ./.claude/skills/harvask
63
+ harvask skill install --copy # copy instead of symlink
64
+ harvask skill uninstall
65
+ harvask skill path
66
+ `);
67
+ skill
68
+ .command('install')
69
+ .description('Install the agent skill into a Claude Code skills directory')
70
+ .option('--project', 'install into ./.claude/skills (instead of ~/.claude/skills)')
71
+ .option('--copy', 'copy the files instead of creating a symlink')
72
+ .option('--force', 'replace an existing installation')
73
+ .action((opts) => {
74
+ const src = skillSource();
75
+ const target = targetDir(Boolean(opts.project));
76
+ const mode = opts.copy ? 'copy' : 'symlink';
77
+ if (!opts.copy && isSymlinkTo(target, src)) {
78
+ printOutput({ installed: target, mode, source: src, already: true }, ctx.out);
79
+ return;
80
+ }
81
+ if (lexists(target)) {
82
+ if (!opts.force) {
83
+ throw new ValidationError(`${target} already exists (use --force to replace)`);
84
+ }
85
+ rmSync(target, { recursive: true, force: true });
86
+ }
87
+ mkdirSync(dirname(target), { recursive: true });
88
+ if (opts.copy) {
89
+ cpSync(src, target, { recursive: true });
90
+ }
91
+ else {
92
+ symlinkSync(src, target, 'dir');
93
+ }
94
+ printOutput({ installed: target, mode, source: src }, ctx.out);
95
+ });
96
+ skill
97
+ .command('uninstall')
98
+ .description('Remove the installed agent skill')
99
+ .option('--project', 'remove from ./.claude/skills (instead of ~/.claude/skills)')
100
+ .action((opts) => {
101
+ const target = targetDir(Boolean(opts.project));
102
+ if (!lexists(target)) {
103
+ printOutput({ removed: false, path: target, note: 'not installed' }, ctx.out);
104
+ return;
105
+ }
106
+ rmSync(target, { recursive: true, force: true });
107
+ printOutput({ removed: true, path: target }, ctx.out);
108
+ });
109
+ skill
110
+ .command('path')
111
+ .description('Show the bundled skill source and install targets')
112
+ .action(() => {
113
+ printOutput({
114
+ source: skillSource(),
115
+ user_target: targetDir(false),
116
+ project_target: targetDir(true),
117
+ }, ctx.out);
118
+ });
119
+ },
120
+ };
121
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/skill/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * storage カテゴリ(プロジェクトストレージ, /v1/projects/{project}/storage)。
3
+ * upload は multipart、download は binary。
4
+ */
5
+ import { execCall, parseProjectArg } from '../_exec.js';
6
+ import { resolveProjectId } from '../../utils/project-resolver.js';
7
+ import { printOutput } from '../../output/index.js';
8
+ import { ValidationError } from '../../errors/index.js';
9
+ import { parseIntArg } from '../../utils/input.js';
10
+ import { buildFileFormData } from '../../utils/upload.js';
11
+ import { saveBlob } from '../../utils/download.js';
12
+ import { API_NS } from '../../api-base.js';
13
+ const BASE = `${API_NS}/projects/{project}/storage`;
14
+ export function buildStorageSearchCall(query, opts = {}) {
15
+ if (!query || query.trim() === '')
16
+ throw new ValidationError('search query is required');
17
+ const q = { query };
18
+ if (opts.limit !== undefined)
19
+ q.limit = String(Math.min(Math.max(opts.limit, 1), 50));
20
+ return { method: 'GET', path: `${BASE}/search`, query: q };
21
+ }
22
+ export function buildStorageStatsCall() {
23
+ return { method: 'GET', path: `${BASE}/stats` };
24
+ }
25
+ export function buildStorageFolderCall(a) {
26
+ if (!a.name || a.name.trim() === '')
27
+ throw new ValidationError('name is required (--name)');
28
+ if (a.name.length > 255)
29
+ throw new ValidationError('name must be <= 255 characters');
30
+ const body = { name: a.name };
31
+ if (a.parentId !== undefined)
32
+ body.parent_id = a.parentId;
33
+ return { method: 'POST', path: `${BASE}/folder`, body };
34
+ }
35
+ export function buildStorageMoveCall(itemId, parentId) {
36
+ return { method: 'PATCH', path: `${BASE}/${itemId}/move`, body: { parent_id: parentId } };
37
+ }
38
+ export function buildStorageContentCall(itemId) {
39
+ return { method: 'GET', path: `${BASE}/${itemId}/content` };
40
+ }
41
+ export const storageModule = {
42
+ name: 'storage',
43
+ describe: 'Project storage (search/stats/upload/folder/move/download/content)',
44
+ register(program, ctx) {
45
+ const st = program.command('storage').description('Project storage');
46
+ const withProject = (cmd) => cmd.option('-p, --project <key|id>', 'project key (PRJ) or numeric id');
47
+ withProject(st.command('search'))
48
+ .description('Search storage files')
49
+ .argument('<query>', 'search text')
50
+ .option('--limit <n>', 'max results (max 50)', parseIntArg)
51
+ .action(async (query, opts) => {
52
+ printOutput(await execCall(ctx, buildStorageSearchCall(query, { limit: opts.limit }), parseProjectArg(opts.project)), ctx.out);
53
+ });
54
+ withProject(st.command('stats'))
55
+ .description('Storage statistics')
56
+ .action(async (opts) => {
57
+ printOutput(await execCall(ctx, buildStorageStatsCall(), parseProjectArg(opts.project)), ctx.out);
58
+ });
59
+ withProject(st.command('folder'))
60
+ .description('Create a folder')
61
+ .requiredOption('--name <name>', 'folder name (<=255)')
62
+ .option('--parent-id <id>', 'parent folder id (omit = root)', parseIntArg)
63
+ .action(async (opts) => {
64
+ printOutput(await execCall(ctx, buildStorageFolderCall({ name: opts.name, parentId: opts.parentId }), parseProjectArg(opts.project)), ctx.out);
65
+ });
66
+ withProject(st.command('move'))
67
+ .description('Move an item to another folder (omit --parent-id to move to root)')
68
+ .argument('<itemId>', 'storage item id')
69
+ .option('--parent-id <id>', 'destination folder id (omit = root)', parseIntArg)
70
+ .action(async (itemId, opts) => {
71
+ const call = buildStorageMoveCall(parseIntArg(itemId), opts.parentId ?? null);
72
+ printOutput(await execCall(ctx, call, parseProjectArg(opts.project)), ctx.out);
73
+ });
74
+ withProject(st.command('content'))
75
+ .description('Get extracted/raw text content of an item')
76
+ .argument('<itemId>', 'storage item id')
77
+ .action(async (itemId, opts) => {
78
+ printOutput(await execCall(ctx, buildStorageContentCall(parseIntArg(itemId)), parseProjectArg(opts.project)), ctx.out);
79
+ });
80
+ withProject(st.command('upload'))
81
+ .description('Upload a file (multipart; very large files may exceed the request timeout)')
82
+ .requiredOption('--file <path>', 'local file path')
83
+ .option('--parent-id <id>', 'parent folder id (omit = root)', parseIntArg)
84
+ .action(async (opts) => {
85
+ const client = ctx.getApiClient();
86
+ const pid = await resolveProjectId(client, parseProjectArg(opts.project) ?? {});
87
+ const form = buildFileFormData(opts.file, { parent_id: opts.parentId });
88
+ const result = await client.postMultipart(`${API_NS}/projects/${pid}/storage/upload`, form);
89
+ printOutput(result, ctx.out);
90
+ });
91
+ withProject(st.command('download'))
92
+ .description('Download a storage item to a file')
93
+ .argument('<itemId>', 'storage item id')
94
+ .option('--out <path>', 'output path (default: server filename)')
95
+ .action(async (itemId, opts) => {
96
+ const client = ctx.getApiClient();
97
+ const pid = await resolveProjectId(client, parseProjectArg(opts.project) ?? {});
98
+ const blob = await client.getBlob(`${API_NS}/projects/${pid}/storage/${parseIntArg(itemId)}/download`);
99
+ printOutput(saveBlob(blob, opts.out), ctx.out);
100
+ });
101
+ },
102
+ };
103
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/storage/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * user カテゴリ(/v1/users)。
3
+ */
4
+ import { execCall } from '../_exec.js';
5
+ import { printOutput } from '../../output/index.js';
6
+ import { ValidationError } from '../../errors/index.js';
7
+ import { parseIntArg } from '../../utils/input.js';
8
+ import { API_NS } from '../../api-base.js';
9
+ const BASE = `${API_NS}/users`;
10
+ export function buildUserListCall(opts = {}) {
11
+ const q = {};
12
+ if (opts.ai !== undefined)
13
+ q.is_ai_user = opts.ai ? 'true' : 'false';
14
+ if (opts.page !== undefined)
15
+ q.page = String(Math.max(opts.page, 1));
16
+ if (opts.perPage !== undefined)
17
+ q.per_page = String(Math.min(Math.max(opts.perPage, 1), 100));
18
+ return { method: 'GET', path: BASE, query: q };
19
+ }
20
+ export function buildUserSearchCall(query) {
21
+ if (!query || query.trim() === '') {
22
+ throw new ValidationError('search query is required');
23
+ }
24
+ return { method: 'GET', path: `${BASE}/search`, query: { query } };
25
+ }
26
+ export const userModule = {
27
+ name: 'user',
28
+ describe: 'List/search tenant users',
29
+ register(program, ctx) {
30
+ const user = program.command('user').description('Tenant users');
31
+ user
32
+ .command('list')
33
+ .description('List users')
34
+ .option('--ai', 'only AI users')
35
+ .option('--human', 'only human users')
36
+ .option('--page <n>', 'page', parseIntArg)
37
+ .option('--per-page <n>', 'items per page (max 100)', parseIntArg)
38
+ .action(async (opts) => {
39
+ if (opts.ai && opts.human) {
40
+ throw new ValidationError('use only one of --ai / --human');
41
+ }
42
+ // どちらも未指定なら undefined(全件)
43
+ const ai = opts.ai ? true : opts.human ? false : undefined;
44
+ printOutput(await execCall(ctx, buildUserListCall({ ai, page: opts.page, perPage: opts.perPage })), ctx.out);
45
+ });
46
+ user
47
+ .command('search')
48
+ .description('Search users by name/email')
49
+ .argument('<query>', 'search text')
50
+ .action(async (query) => {
51
+ printOutput(await execCall(ctx, buildUserSearchCall(query)), ctx.out);
52
+ });
53
+ },
54
+ };
55
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/user/index.ts"],"names":[],"mappings":"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"}