harvask-cli 0.3.1 → 0.6.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.
- package/README.md +77 -3
- package/dist/api-client.js +23 -9
- package/dist/api-client.js.map +1 -1
- package/dist/cli.js +20 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/attachment/index.js +11 -1
- package/dist/commands/attachment/index.js.map +1 -1
- package/dist/commands/issue/builds.js +4 -0
- package/dist/commands/issue/builds.js.map +1 -1
- package/dist/commands/issue/deliverable.js +93 -0
- package/dist/commands/issue/deliverable.js.map +1 -0
- package/dist/commands/issue/index.js +18 -2
- package/dist/commands/issue/index.js.map +1 -1
- package/dist/commands/project/builds.js +13 -9
- package/dist/commands/project/builds.js.map +1 -1
- package/dist/commands/project/index.js +2 -1
- package/dist/commands/project/index.js.map +1 -1
- package/dist/commands/scheduled-task/index.js +290 -47
- package/dist/commands/scheduled-task/index.js.map +1 -1
- package/dist/commands/storage/index.js +17 -1
- package/dist/commands/storage/index.js.map +1 -1
- package/dist/commands/workspace/batch.js +65 -0
- package/dist/commands/workspace/batch.js.map +1 -0
- package/dist/commands/workspace/collect.js +368 -0
- package/dist/commands/workspace/collect.js.map +1 -0
- package/dist/commands/workspace/index.js +240 -0
- package/dist/commands/workspace/index.js.map +1 -0
- package/dist/errors/hint-map.js +34 -0
- package/dist/errors/hint-map.js.map +1 -1
- package/dist/registry.js +2 -0
- package/dist/registry.js.map +1 -1
- package/dist/utils/input.js +14 -0
- package/dist/utils/input.js.map +1 -1
- package/dist/utils/upload.js +29 -0
- package/dist/utils/upload.js.map +1 -1
- package/package.json +1 -1
- package/skills/harvask/AGENTS.md +38 -3
- package/skills/harvask/GEMINI.md +38 -3
- package/skills/harvask/SKILL.md +38 -3
- package/skills/harvask/migration.md +72 -0
package/README.md
CHANGED
|
@@ -69,6 +69,7 @@ harvask project list
|
|
|
69
69
|
harvask issue search -p PRJ "login bug"
|
|
70
70
|
harvask issue show -p PRJ 1234 --comments
|
|
71
71
|
harvask issue create -p PRJ --title "Fix login" --type bug --priority high
|
|
72
|
+
harvask issue update -p PRJ PRJ-12 --deliverable @decl.json # see "Deliverable declarations"
|
|
72
73
|
harvask issue status -p PRJ 1234 in_progress
|
|
73
74
|
harvask issue comment create -p PRJ 1234 --content "done"
|
|
74
75
|
harvask wiki create -p PRJ --title "Docs" --content @docs.md
|
|
@@ -77,22 +78,94 @@ harvask milestone list -p PRJ
|
|
|
77
78
|
harvask calendar list --from 2026-06-01 --to 2026-06-30
|
|
78
79
|
harvask user search alice
|
|
79
80
|
harvask file search -p PRJ "screenshot"
|
|
80
|
-
harvask storage upload -p PRJ --file ./report.pdf
|
|
81
|
+
harvask storage upload -p PRJ --file ./report.pdf --on-conflict overwrite
|
|
82
|
+
harvask scheduled-task execute -p PRJ 7 # run a recurring task now
|
|
83
|
+
harvask workspace push ./legacy-app -p PRJ --dest legacy --dry-run # plan the migration
|
|
81
84
|
harvask api GET projects # escape hatch
|
|
82
85
|
```
|
|
83
86
|
|
|
84
87
|
Command groups: `project`, `issue` (+ `comment`/`todo`/`memory`/`dependency`/
|
|
85
88
|
`bulk-create`/`bulk-update`), `wiki`, `global-wiki`, `note`, `milestone`,
|
|
86
89
|
`calendar`, `user`, `workflow`, `scheduled-task`, `chat`, `file`, `storage`,
|
|
87
|
-
`attachment`, `site-credential`, `preview-config`, `skill`, plus
|
|
90
|
+
`workspace`, `attachment`, `site-credential`, `preview-config`, `skill`, plus
|
|
88
91
|
`login`/`logout`/`whoami` and the `api` escape hatch.
|
|
89
92
|
|
|
90
93
|
- `-p, --project <key|id>` accepts a project key (`PRJ`) or numeric id.
|
|
94
|
+
- `project create --key` is optional — without it the server derives a unique
|
|
95
|
+
key from `--name`.
|
|
91
96
|
- `--content` / `--description` accept a literal string, `@file`, or `-` (stdin).
|
|
97
|
+
- JSON options (`--deliverable`, `--definition`, `--items`, …) accept inline
|
|
98
|
+
JSON, `@file.json`, or `-` (stdin). Invalid JSON is rejected before any API call.
|
|
99
|
+
|
|
100
|
+
### Deliverable declarations
|
|
101
|
+
|
|
102
|
+
An issue can declare the deliverable its work must produce. On submission, it
|
|
103
|
+
goes into the issue's deliverable box, where it is checked against rules
|
|
104
|
+
(character counts, required keywords/headings, format, file extensions). An AI
|
|
105
|
+
judge and a builder can also run on it if enabled.
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# issue create: attach a declaration (only `type` is required: text | file | none)
|
|
109
|
+
harvask issue create -p PRJ --title "Notice" \
|
|
110
|
+
--deliverable '{"type":"text","label":"Internal notice","rules":{"min_chars":60,"required_keywords":["date","agenda"]}}'
|
|
111
|
+
|
|
112
|
+
# issue update: replace it (@file / - also work), or remove it with null
|
|
113
|
+
harvask issue update -p PRJ PRJ-1 --deliverable @decl.json
|
|
114
|
+
harvask issue update -p PRJ PRJ-1 --deliverable null
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
- Without `--deliverable`, `issue update` leaves the current declaration untouched.
|
|
118
|
+
- The CLI only checks that the value is a JSON object (or `null`). The server
|
|
119
|
+
validates the contents and returns 422 for problems such as a missing or
|
|
120
|
+
invalid `type`.
|
|
121
|
+
- Full shape: `type`, `label`, `note`, `required`, `rules` (`min_chars`,
|
|
122
|
+
`max_chars`, `required_keywords`, `required_headings`, `format`
|
|
123
|
+
(`markdown|plain|json`), `extensions`, `max_rework`), `judge`
|
|
124
|
+
(`enabled`, `criteria`), `builder` (`enabled`, `instructions`). Workflow
|
|
125
|
+
steps take the same shape in `workflow create/update --definition`.
|
|
126
|
+
- `issue show` returns the box as `issue.deliverable`:
|
|
127
|
+
- `config`: the resolved declaration (`source` is `workflow_step` or `issue`), or `null`
|
|
128
|
+
- `final`: the accepted deliverable (text `content`, or `attachment` with a `download_url`), or `null`
|
|
129
|
+
- `history`: candidates, rejected attempts, and superseded finals, newest
|
|
130
|
+
first. Entries carry only `content_length`; failed checks appear in
|
|
131
|
+
`validation.checks[]`.
|
|
132
|
+
|
|
133
|
+
`--json` and piped output pass the box through unchanged. In a terminal,
|
|
134
|
+
`issue show` also prints a readable summary after the JSON: the declaration,
|
|
135
|
+
the final text, and each history entry's status with its failed checks. The
|
|
136
|
+
summary only appears when there is something to show.
|
|
92
137
|
- Global flags: `--json` (machine-readable), `--data` (payload only),
|
|
93
138
|
`--raw` (unformatted), `--profile <tenant>`, `--no-color`. They work before or
|
|
94
139
|
after the subcommand (e.g. `harvask issue list -p PRJ --json`).
|
|
95
140
|
|
|
141
|
+
### Migrating a local project (`workspace push`)
|
|
142
|
+
|
|
143
|
+
`workspace push` sends a local directory to the project's AI workspace (Web:
|
|
144
|
+
Files tab; AI sessions: `~/work`), keeping the directory structure.
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
harvask workspace push ./legacy-app -p PRJ --dest legacy --dry-run # plan only, sends nothing
|
|
148
|
+
harvask workspace push ./legacy-app -p PRJ --dest legacy --yes # do it
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
- `.env*` and `.git/` are **never** uploaded and cannot be re-enabled — the
|
|
152
|
+
workspace is visible to every project member. `node_modules/`, `vendor/`,
|
|
153
|
+
`dist/`, `build/`, `__pycache__/`, `.venv/`, `.DS_Store` are excluded by
|
|
154
|
+
default (`--include-ignored`, or `--include <glob>` for one path;
|
|
155
|
+
`--exclude <glob>` wins over both). In a git repository, `.gitignore` decides
|
|
156
|
+
the rest — the CLI lets `git ls-files` enumerate rather than parsing it.
|
|
157
|
+
- Same relative path = overwrite, with no version history, so overwriting
|
|
158
|
+
requires `--yes` in a non-interactive shell. `--dry-run` never does.
|
|
159
|
+
- Blocked extensions (`.exe .bat .cmd .ps1 .vbs .com .msi .dll`) are reported
|
|
160
|
+
under `skipped`, not treated as an error. `.sh` is allowed.
|
|
161
|
+
- Pushing into `apps/` or `canvas/` is refused without `--force`: mini-app
|
|
162
|
+
sources with their SQLite data and Canvas documents live there.
|
|
163
|
+
- Requests are batched (20 files and 200MB each, `--max-batch-bytes` to lower).
|
|
164
|
+
Batches are **not** atomic: if one fails, the result JSON lists `remaining`
|
|
165
|
+
and re-running the same command resumes.
|
|
166
|
+
- **409 `workspace_session_active`** means a mini-app / browser-agent session is
|
|
167
|
+
live; its sync would roll the upload back. End the session — do not retry.
|
|
168
|
+
|
|
96
169
|
Run `harvask --help` and `harvask <command> --help` for the full reference.
|
|
97
170
|
|
|
98
171
|
## Output & exit codes
|
|
@@ -132,7 +205,8 @@ to `src/registry.ts`.
|
|
|
132
205
|
## Agent skill
|
|
133
206
|
|
|
134
207
|
`skills/harvask/SKILL.md` documents the discover → fetch → act workflow for
|
|
135
|
-
coding agents and is shipped with the package
|
|
208
|
+
coding agents and is shipped with the package (alongside `migration.md`, the
|
|
209
|
+
procedure for moving an existing local project into a harvask project). `npm link` only installs the
|
|
136
210
|
`harvask` command — to make Claude Code discover the skill, install it:
|
|
137
211
|
|
|
138
212
|
```bash
|
package/dist/api-client.js
CHANGED
|
@@ -24,12 +24,19 @@ export class HarvaskApiClient {
|
|
|
24
24
|
* テナントドメインと一致している必要がある(本番は https://{tenant}/api、
|
|
25
25
|
* 開発は /etc/hosts で {tenant} を 127.0.0.1 に向けて http://{tenant}:port/api)。
|
|
26
26
|
*/
|
|
27
|
-
getHeaders(isFormData = false) {
|
|
28
|
-
const headers = {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
27
|
+
getHeaders(isFormData = false, extra) {
|
|
28
|
+
const headers = {};
|
|
29
|
+
// 追加ヘッダーを先に置き、認証系で必ず上書きする(呼び出し側が誤って潰せないように)。
|
|
30
|
+
for (const [key, value] of Object.entries(extra ?? {})) {
|
|
31
|
+
headers[key] = value;
|
|
32
|
+
}
|
|
33
|
+
headers.Accept = 'application/json';
|
|
34
|
+
headers.Authorization = `Bearer ${this.config.token}`;
|
|
35
|
+
if (isFormData) {
|
|
36
|
+
// multipart は undici が boundary 付きで付与する。明示すると boundary が落ちて壊れる。
|
|
37
|
+
delete headers['Content-Type'];
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
33
40
|
headers['Content-Type'] = 'application/json';
|
|
34
41
|
}
|
|
35
42
|
return headers;
|
|
@@ -48,7 +55,7 @@ export class HarvaskApiClient {
|
|
|
48
55
|
const timeoutId = setTimeout(() => controller.abort(), requestTimeout);
|
|
49
56
|
const response = await fetch(url, {
|
|
50
57
|
method,
|
|
51
|
-
headers: this.getHeaders(options?.isFormData),
|
|
58
|
+
headers: this.getHeaders(options?.isFormData, options?.headers),
|
|
52
59
|
body: options?.isFormData
|
|
53
60
|
? body
|
|
54
61
|
: body
|
|
@@ -140,9 +147,16 @@ export class HarvaskApiClient {
|
|
|
140
147
|
}
|
|
141
148
|
/**
|
|
142
149
|
* マルチパートPOST(ファイルアップロード用)
|
|
150
|
+
*
|
|
151
|
+
* 既定 120 秒。数十〜数百 MB を 1 リクエストで送る呼び出し(workspace push のバッチ)は
|
|
152
|
+
* 上り帯域次第で固定値では必ず足りなくなるため、options でサイズに応じて伸ばせるようにする。
|
|
143
153
|
*/
|
|
144
|
-
async postMultipart(endpoint, formData) {
|
|
145
|
-
return this.request('POST', endpoint, formData, {
|
|
154
|
+
async postMultipart(endpoint, formData, options) {
|
|
155
|
+
return this.request('POST', endpoint, formData, {
|
|
156
|
+
...options,
|
|
157
|
+
isFormData: true,
|
|
158
|
+
timeout: options?.timeout ?? 120000,
|
|
159
|
+
});
|
|
146
160
|
}
|
|
147
161
|
/**
|
|
148
162
|
* バイナリGET(ファイルダウンロード用)。{buffer, contentType, filename} を返す。
|
package/dist/api-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -1,11 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* commander プログラム構築とトップレベル実行
|
|
3
3
|
*/
|
|
4
|
+
import { readFileSync } from 'node:fs';
|
|
5
|
+
import { fileURLToPath } from 'node:url';
|
|
6
|
+
import { dirname, join } from 'node:path';
|
|
4
7
|
import { Command, CommanderError, Option } from 'commander';
|
|
5
8
|
import { CATEGORIES } from './registry.js';
|
|
6
9
|
import { CommandContext } from './context.js';
|
|
7
10
|
import { printError, exitCodeFor } from './errors/index.js';
|
|
8
|
-
|
|
11
|
+
/**
|
|
12
|
+
* CLI のバージョン。package.json の version を唯一の情報源とする。
|
|
13
|
+
*
|
|
14
|
+
* 以前は定数をここに手で持っていたため package.json と乖離していた
|
|
15
|
+
* (0.2.0 / 0.3.0 でも `--version` が 0.1.0 を返していた)。
|
|
16
|
+
* このファイルは dist/cli.js(src/cli.ts)として実行されるので、
|
|
17
|
+
* 1 つ上のディレクトリにある package.json を読む。
|
|
18
|
+
*/
|
|
19
|
+
function readPackageVersion() {
|
|
20
|
+
const pkgPath = join(dirname(fileURLToPath(import.meta.url)), '..', 'package.json');
|
|
21
|
+
const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
|
|
22
|
+
if (typeof pkg.version !== 'string' || pkg.version.length === 0) {
|
|
23
|
+
throw new Error(`invalid "version" in ${pkgPath}`);
|
|
24
|
+
}
|
|
25
|
+
return pkg.version;
|
|
26
|
+
}
|
|
27
|
+
export const VERSION = readPackageVersion();
|
|
9
28
|
function isCommanderExit(err) {
|
|
10
29
|
return (err instanceof CommanderError ||
|
|
11
30
|
(typeof err === 'object' &&
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAoB,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,12 +21,16 @@ export const attachmentModule = {
|
|
|
21
21
|
.requiredOption('--type <type>', `attachable type (${ATTACHABLE_TYPES.join('|')})`)
|
|
22
22
|
.option('--id <attachableId>', 'attachable id (required for issue/comment)', parseIntArg)
|
|
23
23
|
.option('-p, --project <key|id>', 'project (required for issue/comment)')
|
|
24
|
+
.option('--chat-id <chatId>', 'chat id (required for type=chat_message)', parseIntArg)
|
|
24
25
|
.action(async (opts) => {
|
|
25
26
|
if (!ATTACHABLE_TYPES.includes(opts.type)) {
|
|
26
27
|
throw new ValidationError(`--type must be one of: ${ATTACHABLE_TYPES.join(', ')}`);
|
|
27
28
|
}
|
|
28
29
|
const client = ctx.getApiClient();
|
|
29
30
|
const fields = { attachable_type: opts.type };
|
|
31
|
+
// chat_message だけ対象をヘッダー(X-Chat-Id)で指定する API 仕様。
|
|
32
|
+
// 本文のフィールドでは受け取られず、無いと 422 missing_chat_id になる。
|
|
33
|
+
const headers = {};
|
|
30
34
|
if (opts.type === 'issue' || opts.type === 'comment') {
|
|
31
35
|
if (opts.id === undefined)
|
|
32
36
|
throw new ValidationError(`--id is required for type=${opts.type}`);
|
|
@@ -36,8 +40,14 @@ export const attachmentModule = {
|
|
|
36
40
|
fields.attachable_id = opts.id;
|
|
37
41
|
fields.project_id = pid;
|
|
38
42
|
}
|
|
43
|
+
else {
|
|
44
|
+
if (opts.chatId === undefined) {
|
|
45
|
+
throw new ValidationError('--chat-id is required for type=chat_message');
|
|
46
|
+
}
|
|
47
|
+
headers['X-Chat-Id'] = String(opts.chatId);
|
|
48
|
+
}
|
|
39
49
|
const form = buildFileFormData(opts.file, fields);
|
|
40
|
-
const result = await client.postMultipart(`${API_NS}/attachments/upload`, form);
|
|
50
|
+
const result = await client.postMultipart(`${API_NS}/attachments/upload`, form, { headers });
|
|
41
51
|
printOutput(result, ctx.out);
|
|
42
52
|
});
|
|
43
53
|
at.command('download')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/attachment/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,cAAc,CAAU,CAAC;AAE9E,MAAM,CAAC,MAAM,gBAAgB,GAAmB;IAC9C,IAAI,EAAE,YAAY;IAClB,QAAQ,EAAE,6BAA6B;IACvC,QAAQ,CAAC,OAAgB,EAAE,GAAmB;QAC5C,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC;QAEtF,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;aACjB,WAAW,CAAC,kCAAkC,CAAC;aAC/C,cAAc,CAAC,eAAe,EAAE,iBAAiB,CAAC;aAClD,cAAc,CAAC,eAAe,EAAE,oBAAoB,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;aAClF,MAAM,CAAC,qBAAqB,EAAE,4CAA4C,EAAE,WAAW,CAAC;aACxF,MAAM,CAAC,wBAAwB,EAAE,sCAAsC,CAAC;aACxE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACrB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,eAAe,CAAC,0BAA0B,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrF,CAAC;YACD,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;YAClC,MAAM,MAAM,GAAgD,EAAE,eAAe,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3F,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACrD,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS;oBAAE,MAAM,IAAI,eAAe,CAAC,6BAA6B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC/F,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;oBAAE,MAAM,IAAI,eAAe,CAAC,qCAAqC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5G,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBAChF,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC;YAC1B,CAAC;YACD,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,qBAAqB,EAAE,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/attachment/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -107,6 +107,8 @@ export function buildIssueCreateCall(a) {
|
|
|
107
107
|
body.skip_plan_mode = a.skipPlanMode;
|
|
108
108
|
if (a.milestoneIds && a.milestoneIds.length > 0)
|
|
109
109
|
body.milestone_ids = a.milestoneIds;
|
|
110
|
+
if (a.deliverable !== undefined)
|
|
111
|
+
body.deliverable = a.deliverable;
|
|
110
112
|
return { method: 'POST', path: BASE, body };
|
|
111
113
|
}
|
|
112
114
|
export function buildIssueUpdateCall(issueId, a) {
|
|
@@ -145,6 +147,8 @@ export function buildIssueUpdateCall(issueId, a) {
|
|
|
145
147
|
body.skip_plan_mode = a.skipPlanMode;
|
|
146
148
|
if (a.milestoneIds && a.milestoneIds.length > 0)
|
|
147
149
|
body.milestone_ids = a.milestoneIds;
|
|
150
|
+
if (a.deliverable !== undefined)
|
|
151
|
+
body.deliverable = a.deliverable;
|
|
148
152
|
if (Object.keys(body).length === 0) {
|
|
149
153
|
throw new ValidationError('nothing to update: provide at least one field');
|
|
150
154
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builds.js","sourceRoot":"","sources":["../../../src/commands/issue/builds.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"builds.js","sourceRoot":"","sources":["../../../src/commands/issue/builds.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 成果物ボックスの人向け表示(純粋関数)
|
|
3
|
+
*
|
|
4
|
+
* `issue show` を端末で見たときに JSON の後ろへ付ける要約。
|
|
5
|
+
* 宣言の要約 → 確定した本文(text のとき)→ 履歴の状態と指摘、の順。
|
|
6
|
+
* JSON 出力(--json / パイプ)では使わず、issue.deliverable をそのまま通す。
|
|
7
|
+
*/
|
|
8
|
+
/** 宣言があるか、箱に何か入っているか */
|
|
9
|
+
export function hasDeliverableBox(box) {
|
|
10
|
+
return Boolean(box && (box.config || box.final || (Array.isArray(box.history) && box.history.length > 0)));
|
|
11
|
+
}
|
|
12
|
+
/** 宣言を 1 行に要約する */
|
|
13
|
+
export function summarizeDeliverableConfig(config) {
|
|
14
|
+
if (!config)
|
|
15
|
+
return 'none';
|
|
16
|
+
const parts = [config.label ? `${config.label} (${config.type})` : config.type];
|
|
17
|
+
if (config.required === false)
|
|
18
|
+
parts.push('optional');
|
|
19
|
+
const rules = config.rules ?? {};
|
|
20
|
+
const ruleParts = [];
|
|
21
|
+
if (rules.min_chars != null)
|
|
22
|
+
ruleParts.push(`>= ${rules.min_chars} chars`);
|
|
23
|
+
if (rules.max_chars != null)
|
|
24
|
+
ruleParts.push(`<= ${rules.max_chars} chars`);
|
|
25
|
+
if (rules.required_keywords?.length)
|
|
26
|
+
ruleParts.push(`keywords: ${rules.required_keywords.join(', ')}`);
|
|
27
|
+
if (rules.required_headings?.length)
|
|
28
|
+
ruleParts.push(`headings: ${rules.required_headings.join(', ')}`);
|
|
29
|
+
if (rules.format)
|
|
30
|
+
ruleParts.push(`format: ${rules.format}`);
|
|
31
|
+
if (rules.extensions?.length)
|
|
32
|
+
ruleParts.push(`extensions: ${rules.extensions.join('/')}`);
|
|
33
|
+
if (rules.max_rework != null)
|
|
34
|
+
ruleParts.push(`max rework ${rules.max_rework}`);
|
|
35
|
+
if (ruleParts.length)
|
|
36
|
+
parts.push(`rules: ${ruleParts.join(', ')}`);
|
|
37
|
+
if (config.judge?.enabled)
|
|
38
|
+
parts.push(`AI judge: ${config.judge.criteria || '(no criteria)'}`);
|
|
39
|
+
if (config.builder?.enabled)
|
|
40
|
+
parts.push('builder on');
|
|
41
|
+
if (config.source)
|
|
42
|
+
parts.push(`source: ${config.source}`);
|
|
43
|
+
return parts.join(' / ');
|
|
44
|
+
}
|
|
45
|
+
function describeEntry(d) {
|
|
46
|
+
const what = d.kind === 'file'
|
|
47
|
+
? `file ${d.attachment?.original_filename ?? ''}`.trim()
|
|
48
|
+
: `text${d.content_length != null ? ` ${d.content_length} chars` : ''}`;
|
|
49
|
+
const title = d.title ? `, "${d.title}"` : '';
|
|
50
|
+
let line = ` - attempt ${d.attempt}: ${d.status} (${d.produced_by}, ${what}${title})`;
|
|
51
|
+
for (const c of d.validation?.checks ?? []) {
|
|
52
|
+
if (!c.ok) {
|
|
53
|
+
line += `\n x ${c.message || c.rule}`;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return line;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* 成果物ボックスを人向けテキストにする。表示するものが無ければ null。
|
|
60
|
+
*/
|
|
61
|
+
export function formatDeliverableBox(box) {
|
|
62
|
+
if (!hasDeliverableBox(box)) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
const lines = ['Deliverable'];
|
|
66
|
+
lines.push(` Declaration: ${summarizeDeliverableConfig(box.config)}`);
|
|
67
|
+
if (box.config?.note) {
|
|
68
|
+
lines.push(` Note: ${box.config.note}`);
|
|
69
|
+
}
|
|
70
|
+
const f = box.final;
|
|
71
|
+
if (f) {
|
|
72
|
+
const validation = f.validation ? (f.validation.passed ? ', validation passed' : ', validation failed') : '';
|
|
73
|
+
lines.push(` Final: attempt ${f.attempt} (${f.produced_by}, ${f.kind}${f.title ? `, "${f.title}"` : ''}${validation})`);
|
|
74
|
+
if (f.kind === 'file' && f.attachment) {
|
|
75
|
+
lines.push(` ${f.attachment.original_filename} (${f.attachment.human_file_size}) ${f.attachment.download_url}`);
|
|
76
|
+
}
|
|
77
|
+
if (f.kind === 'text' && f.content) {
|
|
78
|
+
lines.push(' --- final content ---', f.content.replace(/\n+$/, ''), ' ---');
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
lines.push(' Final: none yet');
|
|
83
|
+
}
|
|
84
|
+
const history = Array.isArray(box.history) ? box.history : [];
|
|
85
|
+
if (history.length > 0) {
|
|
86
|
+
lines.push(' History (newest first):');
|
|
87
|
+
for (const d of history) {
|
|
88
|
+
lines.push(describeEntry(d));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return lines.join('\n') + '\n';
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=deliverable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deliverable.js","sourceRoot":"","sources":["../../../src/commands/issue/deliverable.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
* issue カテゴリ登録
|
|
3
3
|
*/
|
|
4
4
|
import { execCall, parseProjectArg } from '../_exec.js';
|
|
5
|
-
import { printOutput } from '../../output/index.js';
|
|
6
|
-
import { parseIntArg, parseNumberList, readContentArg } from '../../utils/input.js';
|
|
5
|
+
import { printOutput, isInteractive } from '../../output/index.js';
|
|
6
|
+
import { parseIntArg, parseNumberList, readContentArg, parseJsonObjectOrNullArg } from '../../utils/input.js';
|
|
7
7
|
import { resolveIssueId } from '../../utils/issue-resolver.js';
|
|
8
8
|
import { registerIssueSub } from './sub.js';
|
|
9
|
+
import { formatDeliverableBox } from './deliverable.js';
|
|
9
10
|
import { buildIssueListCall, buildIssueShowCall, buildIssueSearchCall, buildIssueCreateCall, buildIssueUpdateCall, buildIssueStatusCall, buildIssueAssignCall, ISSUE_TYPES, PRIORITIES, STATUSES, } from './builds.js';
|
|
10
11
|
export const issueModule = {
|
|
11
12
|
name: 'issue',
|
|
@@ -21,6 +22,8 @@ Examples:
|
|
|
21
22
|
harvask issue search -p PRJ "login bug"
|
|
22
23
|
harvask issue show -p PRJ 1234 --comments
|
|
23
24
|
harvask issue create -p PRJ --title "Fix login" --type bug --priority high
|
|
25
|
+
harvask issue create -p PRJ --title "Notice" --deliverable '{"type":"text","label":"Notice","rules":{"min_chars":60}}'
|
|
26
|
+
harvask issue update -p PRJ PRJ-1 --deliverable @decl.json # "null" removes the declaration
|
|
24
27
|
harvask issue status -p PRJ 1234 in_progress
|
|
25
28
|
`);
|
|
26
29
|
const withProject = (cmd) => cmd.option('-p, --project <key|id>', 'project key (PRJ) or numeric id');
|
|
@@ -58,6 +61,13 @@ Examples:
|
|
|
58
61
|
const call = buildIssueShowCall(issueId, { comments: Boolean(opts.comments) });
|
|
59
62
|
const result = await execCall(ctx, call, projectArg);
|
|
60
63
|
printOutput(result, ctx.out);
|
|
64
|
+
// 端末で見ているときだけ成果物ボックスの要約を付ける(パイプ / --json / --raw の出力は JSON のまま)
|
|
65
|
+
if (isInteractive() && !ctx.out.json && !ctx.out.raw) {
|
|
66
|
+
const box = formatDeliverableBox(result?.issue?.deliverable);
|
|
67
|
+
if (box) {
|
|
68
|
+
process.stdout.write('\n' + box);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
61
71
|
});
|
|
62
72
|
// search
|
|
63
73
|
withProject(issue.command('search'))
|
|
@@ -85,6 +95,7 @@ Examples:
|
|
|
85
95
|
.option('--parent-issue-id <id>', 'parent issue id (subtask)', parseIntArg)
|
|
86
96
|
.option('--skip-plan-mode', 'skip plan mode')
|
|
87
97
|
.option('--milestone-ids <ids>', 'comma-separated milestone ids', parseNumberList)
|
|
98
|
+
.option('--deliverable <json>', 'deliverable declaration JSON object (inline, @file.json or - for stdin)')
|
|
88
99
|
.action(async (opts) => {
|
|
89
100
|
const call = buildIssueCreateCall({
|
|
90
101
|
title: opts.title,
|
|
@@ -99,6 +110,7 @@ Examples:
|
|
|
99
110
|
parentIssueId: opts.parentIssueId,
|
|
100
111
|
skipPlanMode: opts.skipPlanMode,
|
|
101
112
|
milestoneIds: opts.milestoneIds,
|
|
113
|
+
deliverable: opts.deliverable !== undefined ? parseJsonObjectOrNullArg(opts.deliverable, '--deliverable') : undefined,
|
|
102
114
|
});
|
|
103
115
|
const result = await execCall(ctx, call, parseProjectArg(opts.project));
|
|
104
116
|
printOutput(result, ctx.out);
|
|
@@ -117,8 +129,11 @@ Examples:
|
|
|
117
129
|
.option('--estimated-hours <n>', 'estimated hours', parseFloat)
|
|
118
130
|
.option('--progress <n>', 'progress 0-100', parseIntArg)
|
|
119
131
|
.option('--milestone-ids <ids>', 'comma-separated milestone ids', parseNumberList)
|
|
132
|
+
.option('--deliverable <json|null>', 'replace the deliverable declaration (JSON object, @file.json or -); "null" removes it')
|
|
120
133
|
.action(async (issueRef, opts) => {
|
|
121
134
|
const projectArg = parseProjectArg(opts.project);
|
|
135
|
+
// 不正な JSON は課題キーの解決(API 呼び出し)より前に弾く
|
|
136
|
+
const deliverable = opts.deliverable !== undefined ? parseJsonObjectOrNullArg(opts.deliverable, '--deliverable') : undefined;
|
|
122
137
|
const issueId = await resolveIssueId(ctx.getApiClient(), projectArg, issueRef);
|
|
123
138
|
const call = buildIssueUpdateCall(issueId, {
|
|
124
139
|
title: opts.title,
|
|
@@ -131,6 +146,7 @@ Examples:
|
|
|
131
146
|
estimatedHours: opts.estimatedHours,
|
|
132
147
|
progress: opts.progress,
|
|
133
148
|
milestoneIds: opts.milestoneIds,
|
|
149
|
+
deliverable,
|
|
134
150
|
});
|
|
135
151
|
const result = await execCall(ctx, call, projectArg);
|
|
136
152
|
printOutput(result, ctx.out);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/issue/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/issue/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,19 +38,23 @@ export function buildProjectCreateCall(a) {
|
|
|
38
38
|
if (a.name.length > 255) {
|
|
39
39
|
throw new ValidationError('name must be <= 255 characters');
|
|
40
40
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
41
|
+
// key は任意。空文字で送るとサーバーの alpha_num で 422 になるので、その場合は未指定と同じ扱いにする。
|
|
42
|
+
const key = a.key?.trim();
|
|
43
|
+
if (key !== undefined && key !== '') {
|
|
44
|
+
if (key.length > 10) {
|
|
45
|
+
throw new ValidationError('key must be <= 10 characters');
|
|
46
|
+
}
|
|
47
|
+
if (!/^[A-Za-z0-9]+$/.test(key)) {
|
|
48
|
+
throw new ValidationError('key must be alphanumeric (A-Z, 0-9)');
|
|
49
|
+
}
|
|
49
50
|
}
|
|
50
51
|
if (a.status && !PROJECT_STATUSES.includes(a.status)) {
|
|
51
52
|
throw new ValidationError(`status must be one of: ${PROJECT_STATUSES.join(', ')}`);
|
|
52
53
|
}
|
|
53
|
-
const body = { name: a.name.trim()
|
|
54
|
+
const body = { name: a.name.trim() };
|
|
55
|
+
if (key !== undefined && key !== '') {
|
|
56
|
+
body.key = key;
|
|
57
|
+
}
|
|
54
58
|
if (a.description !== undefined) {
|
|
55
59
|
body.description = a.description;
|
|
56
60
|
}
|