@tocca-systems/twp-cli 0.21.0 → 0.23.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/CHANGELOG.public.md +10 -0
- package/README.md +30 -5
- package/command-model/user-management.json +1137 -2
- package/dist/{ai-dispatch-36HRDRLF.js → ai-dispatch-VSCKUY6J.js} +1 -1
- package/dist/{api-command-2OPQMSTE.js → api-command-CLARDKAL.js} +5 -17
- package/dist/{app-CPMS4ICA.js → app-X3IKIAKB.js} +27 -26
- package/dist/{auto-update-CV2MM32C.js → auto-update-FBZGOQFI.js} +1 -1
- package/dist/{auto-update-worker-ML7EBNQW.js → auto-update-worker-SI7TVSCN.js} +2 -2
- package/dist/{backlog-NV7Z76R3.js → backlog-X2MQTA6F.js} +2 -2
- package/dist/chunk-7LTTKKQA.js +56 -0
- package/dist/{chunk-YV2TFD7D.js → chunk-7PRQ7JW2.js} +55 -27
- package/dist/chunk-APYYF7H6.js +3 -0
- package/dist/{chunk-ILKQDXI5.js → chunk-DSDVIU6A.js} +1 -1
- package/dist/chunk-E4H22AO5.js +3 -0
- package/dist/chunk-EQWW2F5V.js +12 -0
- package/dist/chunk-JB27KNCX.js +52 -0
- package/dist/chunk-K2ONOH3L.js +9 -0
- package/dist/{chunk-WH65FZJV.js → chunk-LD3AKGH6.js} +8 -8
- package/dist/chunk-NAUH75MM.js +10 -0
- package/dist/chunk-NZ7WI4RZ.js +18 -0
- package/dist/chunk-PEGUHUTD.js +3 -0
- package/dist/{chunk-GTABFTZP.js → chunk-SJRK4AVE.js} +1 -1
- package/dist/{chunk-FOFV2MNL.js → chunk-WOUKWOAR.js} +2 -2
- package/dist/{chunk-5QCAIKFE.js → chunk-X4RS5VBH.js} +1 -1
- package/dist/{chunk-G2QYUQJE.js → chunk-XLE4HW6B.js} +1 -1
- package/dist/{chunk-RCDOQ6TT.js → chunk-Y2QAP6SU.js} +1 -1
- package/dist/cli.js +18 -13
- package/dist/{commands-R4KQCXXA.js → commands-BE67IDNQ.js} +12 -7
- package/dist/{commands-XF5G3GIE.js → commands-JNG5TZ77.js} +16 -16
- package/dist/format-NMW6Y2E5.js +3 -0
- package/dist/{logout-guard-JMGI6NPB.js → logout-guard-CMZZBRUL.js} +1 -1
- package/dist/{oneshot-QLIXOLN2.js → oneshot-NA756EBO.js} +5 -5
- package/dist/{project-BATJQR3F.js → project-2LJZW747.js} +1 -1
- package/dist/query-NJMVSQR6.js +3 -0
- package/dist/render-ICZOK3HV.js +3 -0
- package/dist/run-XCAJDHFU.js +4 -0
- package/dist/{server-settings-ROZUOMC2.js → server-settings-CG3EM7R7.js} +1 -1
- package/dist/{setup-3UEZTO4T.js → setup-UI6V2Q3V.js} +1 -1
- package/dist/{task-6QUH5OXF.js → task-GKNM3G4K.js} +2 -2
- package/dist/{update-EXFIHTMW.js → update-TVVBJNN7.js} +1 -1
- package/dist/user-EU7Z3DAO.js +24 -0
- package/package.json +1 -1
- package/dist/chunk-BOBSH3QN.js +0 -9
- package/dist/chunk-MIMDLO52.js +0 -43
- package/dist/chunk-SPZO6C5N.js +0 -69
- package/dist/chunk-ZGG7TRAM.js +0 -3
- package/dist/run-2OQQAOHL.js +0 -4
package/CHANGELOG.public.md
CHANGED
|
@@ -11,6 +11,16 @@
|
|
|
11
11
|
`CHANGELOG.md` に残してあります。顧客向けの履歴は public 公開以降を対象とします。
|
|
12
12
|
-->
|
|
13
13
|
|
|
14
|
+
## 0.23.0
|
|
15
|
+
|
|
16
|
+
会話の中で AI が TWP のデータを調べて使えるようになりました。AI は必要な操作を検索し、内容を確かめてから実行します。TWP のデータを読む・書く操作は、実行前に確認が表示されます(削除は毎回確認します)。
|
|
17
|
+
|
|
18
|
+
プロジェクトコードに小文字や空白を使っている場合でも、エージェントループがタスクの進み具合を正しく読み取れるようになりました。タスクが先に進んでいるのに同じ作業の再開が止められる、リリースを止めている不具合の修正が後回しになる、といったことが起きなくなります。
|
|
19
|
+
|
|
20
|
+
## 0.22.0
|
|
21
|
+
|
|
22
|
+
AI が git の差分や履歴を読むときに、リポジトリ側で設定された外部の差分表示コマンドを実行しないようになりました。信用できないリポジトリで「変更点を見て」と頼んだだけで、そのリポジトリが仕込んだコマンドが動いてしまうことを防ぎます。差分そのものは通常どおり表示されます。
|
|
23
|
+
|
|
14
24
|
## 0.21.0
|
|
15
25
|
|
|
16
26
|
確認画面が「はい」「はい、今後聞かない」「いいえ、代わりにこうして」の3択になりました。「今後聞かない」では、このセッション中だけか、このプロジェクトでは今後も聞かないかを選べます。後者は `~/.twp/project-permissions.json` に保存され、次に起動したときも効きます(コマンド実行は `git log` のようにコマンドの先頭で保存します)。「代わりにこうして」に入力した内容は、そのまま AI への指示として伝わります。`rm -rf` や `&&` でつないだコマンドなど、毎回確認するものでは「今後聞かない」は表示されません。
|
package/README.md
CHANGED
|
@@ -20,6 +20,7 @@ TWP(Tocca Working Platform)を、ターミナルから使うための CLI
|
|
|
20
20
|
|---|---|
|
|
21
21
|
| **できる** | AI との会話(ストリーミング表示)。手元のファイルの読み書き・検索、コマンド実行、git の読み取り——いずれも**実行前に確認**します |
|
|
22
22
|
| **できる** | `twp project` / `twp task` によるプロジェクト・タスクの読み書き(一覧・取得・作成・更新・削除・コメント) |
|
|
23
|
+
| **できる** | `twp user` によるテナントのユーザーと所属(部署・役職)の参照(一覧・取得・所属の履歴)。取得と他人の所属の参照は組織管理者の権限が要ります |
|
|
23
24
|
| **できる** | `twp task-loop` による、TWP のタスクキューを手元の AI CLI に実行させる常駐ループ |
|
|
24
25
|
| **できる** | スラッシュコマンド: `/help` `/mode` `/model` `/clear` `/context` `/doctor` `/exit` `/demo`(動作デモ) `/tasks` `/task` `/projects`。`/tasks` などの TWP 系は `twp task list` と同じ結果を画面に出すだけで、AI は動かしません(クレジットも消費しません)。スラッシュコマンドは TUI の中だけで使えます(`twp -p` では解釈しません) |
|
|
25
26
|
| **できる** | 自分用のスラッシュコマンドを markdown で追加すること(`.twp/commands/*.md` / `~/.twp/commands/*.md`・[下記](#スラッシュコマンドを自分で足す))。入力中の `@パス` でファイルを、`#ABC-123` でタスクの内容を AI へ添付できます |
|
|
@@ -47,7 +48,9 @@ twp login ログイン(ブラウザ委譲 / --password / --token)
|
|
|
47
48
|
twp login --tenant <code>
|
|
48
49
|
テナントコードを先に指定する(--password のプロンプトを 1 つ省ける)
|
|
49
50
|
twp logout ログアウト(同じ資格情報で twp task-loop が稼働中なら拒否する。--force で続行)
|
|
50
|
-
twp whoami
|
|
51
|
+
twp whoami ログイン中のユーザー・ID・テナントを表示
|
|
52
|
+
twp whoami --output text --query id
|
|
53
|
+
ログイン中ユーザーのIDだけを出す(--output json も可。トークンは出さない)
|
|
51
54
|
twp update npm の最新版・サーバが要求する最小バージョン・自動更新の状態を確認
|
|
52
55
|
twp --mode biz 起動時のモードを指定(dev | biz | plan)
|
|
53
56
|
twp --permission-mode denyAll
|
|
@@ -117,6 +120,27 @@ twp task label list [--project <コード>]
|
|
|
117
120
|
twp task list --project ACME --status 進行中 --output json --query '[].{key:key,subject:subject}'
|
|
118
121
|
```
|
|
119
122
|
|
|
123
|
+
### テナントのユーザーと所属を参照する
|
|
124
|
+
|
|
125
|
+
組織管理者(総務)向けに、ユーザーの一覧・詳細と所属の履歴を引きます。
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
twp user list [--department <部署>] [--position <役職>] [--employment employee|partner]
|
|
129
|
+
[--keyword <語>] [--include-hidden] [--all]
|
|
130
|
+
twp user get <ユーザー> # 組織管理者のみ
|
|
131
|
+
twp user assignment list <ユーザー> [--current] # 本人・上長・組織管理者
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
- **`<ユーザー>` は ID・メールアドレス・社員番号・氏名・`me`(自分)で指定できます。** 氏名は完全一致で1人に絞れたときだけ受け付け、同姓同名なら候補を出して止まります(メールアドレスか社員番号で指定し直してください)
|
|
135
|
+
- **表示フラグを外したユーザーは、ID・メールアドレス・氏名で指定してください**(社員番号では引けません。組織管理者でない場合は ID だけです)。一覧に出すときは `--include-hidden` を付けます(組織管理者のときだけ効きます)
|
|
136
|
+
- **`--department` / `--position` は名前・コード・ID のどれでも指定できます**(主所属で絞り込みます)。候補が絞れないときは候補を出して止まります
|
|
137
|
+
- **失効(ログイン不可)したユーザーも一覧に出ます。** 失効かどうかは `twp user get` の `auth_type`(`disabled` なら失効)で確認できます
|
|
138
|
+
- `twp user get` の要約(table / text / tsv)には個人連絡先を出しません。`--output json` は API が返す全フィールドを出します
|
|
139
|
+
- `twp user assignment list` の `is_primary` は主務、`is_approval_route` はワークフローの上長承認に使われる所属です。部署名・役職名を表示するため、部署一覧と役職一覧も取得します
|
|
140
|
+
- 権限が無いときは HTTP 403 をそのまま出さず、誰の権限が要るかを案内します(終了コードは 3)
|
|
141
|
+
- 組織管理者でなくても `twp user list` は使えます(表示フラグが付いたユーザーだけが出ます)
|
|
142
|
+
- ヘルプは `twp user help` / `twp user assignment help`
|
|
143
|
+
|
|
120
144
|
### Backlog の課題を読む・書く
|
|
121
145
|
|
|
122
146
|
TWP に登録した Backlog スペースを通して、課題とコメントを読み、課題へ書きます。
|
|
@@ -365,14 +389,14 @@ mode: dev
|
|
|
365
389
|
"permissions": {
|
|
366
390
|
"allow": ["Bash(git status:*)", "Bash(npm test)", "Write(src/**)", "git(log:*)"],
|
|
367
391
|
"ask": ["Bash(git push:*)"],
|
|
368
|
-
"deny": ["Bash(rm:*)", "
|
|
392
|
+
"deny": ["Bash(rm:*)", "twp_delete_project-task"]
|
|
369
393
|
}
|
|
370
394
|
}
|
|
371
395
|
```
|
|
372
396
|
|
|
373
397
|
| 書き方 | 意味 |
|
|
374
398
|
|---|---|
|
|
375
|
-
| `Bash` / `
|
|
399
|
+
| `Bash` / `twp_update_project-task` | そのツール全体 |
|
|
376
400
|
| `Bash(git status:*)` | `git status` で始まるコマンド(語の区切りで一致) |
|
|
377
401
|
| `Bash(npm test)` | そのコマンドと完全一致 |
|
|
378
402
|
| `Write(src/**)` / `Edit(src/*.ts)` / `Read(~/notes/**)` | パスの glob(素の相対と `/` 始まりは作業ディレクトリ基準・`//` 始まりは絶対パス・`~/` はホーム)。`Edit` は `write_file` も含む |
|
|
@@ -384,13 +408,14 @@ mode: dev
|
|
|
384
408
|
- 拒否が無ければ**より具体的なルールが勝つ**(`Bash` の allow より `Bash(npm test)` の ask が強い)。同じ具体性なら上の置き場所が勝つ
|
|
385
409
|
- **`Bash(git status:*)` を許可しても `git status && rm -rf .` は通らない。** 許可ルールは「解釈の余地が無い文字(英数字と `_ - . / = : , @ % +` と空白)だけでできた1本のコマンド」にしか当たらない。引用符・`$`・`#`・`~`・`*`・分岐・リダイレクトを含むものと `rm -rf` には当たらず、確認へ落ちる(`git commit -m "x"` のような引用符付きも確認になる)。拒否ルールは逆に、分岐した後ろの断片にも当たる
|
|
386
410
|
- **Windows の `shell`(PowerShell / cmd)には `Bash(...)` の許可ルールを当てない**(引用と分岐の規則が bash と違うため。拒否ルールは当たる)
|
|
387
|
-
- **信用できないリポジトリでは git の許可ルールも安全ではない。** `git status` は `.git/config` の `core.fsmonitor`
|
|
411
|
+
- **信用できないリポジトリでは git の許可ルールも安全ではない。** `git status` は `.git/config` の `core.fsmonitor` を、差分を出すコマンドは `.gitattributes` の clean フィルタを実行しうる(`git` ツールは `diff.external` と textconv を無効化して起動するが、この2つは塞げない)。上の例の `Bash(git status:*)` / `git(log:*)` は、自分で clone した信用できるリポジトリで使う
|
|
388
412
|
- **リポジトリ側(`.twp/settings.json` / `.twp/settings.local.json`)は締める向きにしか効かない。** `allow` は無視して警告する(モード定義ファイルと同じ理由)。緩めるときは自分の `~/.twp/settings.json` に書くか、承認画面で「このプロジェクトでは確認しない」を選ぶ(`~/.twp/project-permissions.json` に保存される)
|
|
389
413
|
- **設定ファイルが読めないと自動許可を止める。** 壊れたファイルに書いていた拒否が消えて緩むのを避けるため、直るまで「許可」は「確認」に変わる。起動時に `⚠ 権限設定:` が出たらその行を直す
|
|
390
414
|
- **拒否ルールは「よくある書き方を止める網」であって、書いたコマンドを確実に止める境界ではない。** `sudo rm` `/bin/rm` `then rm` `$(rm …)` のような書き方には当たるが、`find -exec rm` のように引数の中から起動するものは拾えない。確実に止めたいならツールごと拒否する(`Bash`)か、業務・プランモードを使う
|
|
391
415
|
- `Read(...)` の拒否は `grep` / `glob` にも効くが、**探索の起点がその範囲の中にあるときだけ**(リポジトリ全体を起点にした `grep` は、拒否した範囲の中まで読む)。確実に読ませないなら `Read` ごと拒否するか業務・プランモードを使う
|
|
392
416
|
- 設定ファイルが読めない間は、読み取りも含めて**すべての自動許可が確認に変わる**(`-p` では確認できないので拒否になる)
|
|
393
|
-
- `twp_call
|
|
417
|
+
- `twp_call`(ツールを名前で呼ぶメタツール)は**中で実行されるツールの名前**(例: `twp_list_project-task`)で判定する。`twp_call` そのものを許可しても何も緩まない。TWP API のツールは読み取りも含めて既定で確認が出る(`-p` では拒否になる)ので、確認なしで使わせたいツールは名前で許可する(例: `--allowed-tools twp_list_project-task`)。**削除系(`destructive`)は許可ルールがあっても毎回確認する**
|
|
418
|
+
- モデルが TWP を調べる手順は `twp_search_tools`(名前と1行説明だけ)→ `twp_describe_tools`(スキーマ)→ `twp_call`(実行)。カタログはパッケージ同梱のコマンドモデルで、ネットワークに取りに行かない。同じドメインを続けて使うときは `twp_mount` で次のターンから常駐させられる
|
|
394
419
|
|
|
395
420
|
### 承認画面
|
|
396
421
|
|