@tocca-systems/twp-cli 0.85.2 → 0.86.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.
@@ -11,6 +11,14 @@
11
11
  `CHANGELOG.md` に残してあります。顧客向けの履歴は public 公開以降を対象とします。
12
12
  -->
13
13
 
14
+ ## 0.86.0
15
+
16
+ タスク一覧(twp task list / twp task subtasks)に、本文を省いて出す --summary オプションを追加しました。
17
+
18
+ ## 0.85.3
19
+
20
+ モデルの切り替えで、会話の形式が異なるモデルへ移るときは新しい会話から始めるようにしました。
21
+
14
22
  ## 0.85.2
15
23
 
16
24
  `twp task-loop` で、待ち合わせ中のタスクが先へ進んだときや待ち合わせ先のタスクが完了したときに、次の計画から作業が再開されるようにしました。
package/README.md CHANGED
@@ -122,9 +122,9 @@ AI を介さずに TWP を直接読み書きします。スクリプトからも
122
122
  ```
123
123
  twp project list | get <コード|ID> | members <コード|ID> | mine
124
124
 
125
- twp task list [--project <コード|__private__>] [--status <名前>] [--type <名前>] [--assignee <me|名前>]
125
+ twp task list [--project <コード|__private__>] [--status <名前>] [--type <名前>] [--assignee <me|名前>] [--summary]
126
126
  twp task get <キー|ID> # 例: twp task get ACME-123
127
- twp task subtasks <キー|ID>
127
+ twp task subtasks <キー|ID> [--summary]
128
128
  twp task create --project <コード> --subject "<件名>" [--type <名前>] [--assignee <名前>]
129
129
  twp task update <キー|ID> [--status <名前>] [--subject "<件名>"] [--assignee <名前>]
130
130
  twp task delete <キー|ID> --yes
@@ -173,6 +173,7 @@ twp task status delete <ステータス> --yes [--project <コード>]
173
173
  - **`delete` には `--yes` が必要です。** 対話中でも確認プロンプトには落ちません(自動実行と手動実行で必要な引数を変えないため)
174
174
  - **本文は `--body-file` / `--description-file` を主経路にしてください**(`-` で標準入力)。引数に直接書くと改行と Markdown が壊れます
175
175
  - 一覧は `--limit <件数>` / `--all` / `--cursor` で辿れます(`task subtasks` と `project members` はページングがありません)
176
+ - **`twp task list` / `task subtasks` に `--summary` を付けると、各タスクの本文(`description` / `description_html`)を省いて出します。** 件数・ページング情報は変わらず、`--all` / `--keyword` / `--query` / `--project __private__` と併用できます。本文の要らない一覧(重複確認・仕分け)で出力を小さくしたいときに使います
176
177
  - **フラグの値は `--flag 値` でも `--flag=値` でも書けます。** 空白を含む値は `--keyword "山田 太郎"` のように引用し、`-` で始まる値は `--keyword=-foo` の形で渡します
177
178
  - **質問(`--ask-question`)は質問文(`--question` / `--question-file`)と選択肢(`--option キー=表示文`・1〜5個)が要ります。** 選択肢のキーは10文字以内で、回答(`--select`)に使う識別子です。複数選択は `--multi-select`、自由記述を禁じるなら `--no-free-text`。選択肢ごとの説明は `--option-description キー=説明`(1000文字以内)、画像は `--option-image キー=添付ID`(`twp task attachment upload` で得た ID)で付けます。どちらも最初の `=` で区切るので、説明に `=` や改行を含めて構いません。`list` の `question` 列には説明(改行は空白に畳む)と画像の ID も出ます
178
179
  - **`twp task comment list` の `question` / `answer` 列で、回答済みかどうかが分かります**(同じページにある回答を質問の行へ突き合わせます。ページをまたぐ場合は `--all` を付けてください)
@@ -182,7 +183,7 @@ twp task status delete <ステータス> --yes [--project <コード>]
182
183
  - **`twp task attachment explain` は画像(PNG / JPEG / GIF / WebP)・PDF・テキストの内容を AI に説明させます**(20MB まで)。`--question` を付けるとその問いに答えます。問いなしの説明は保存され、2回目以降は保存済みの説明を返します(`cached` が `true`)。TWP の AI クレジットには計上されません(自社の AI キーを登録している組織では、そのキーで呼び出します)
183
184
  - ヘルプは `twp task help` / `twp task comment help` / `twp task create help` / `twp task attachment help`
184
185
 
185
- グローバルオプション: `--profile <名前>` / `--output <json|table|text|tsv>` / `--query <JMESPath>` / `--dry-run` / `--debug` / `--yes` / `--refresh`。**`--output json` は常に API の生のレスポンス**を返します(表示用に間引きません)。
186
+ グローバルオプション: `--profile <名前>` / `--output <json|table|text|tsv>` / `--query <JMESPath>` / `--dry-run` / `--debug` / `--yes` / `--refresh`。**`--output json` は常に API の生のレスポンス**を返します(表示用に間引きません。`twp task list` / `task subtasks` の `--summary` のように、利用者が絞り込みを指定したときはその分だけ省かれます)。
186
187
 
187
188
  応答に載る token / secret / api_key / password などの値は、`--query` で取り出したものも含めて**既定で伏字**にして出します(出力は端末やログに平文で残るため)。値そのものが要るときは各操作に `--no-redact` を付けてください(`twp api` と同じ意味です。エラー出力は常に伏字のままです)。
188
189
 
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{CommandModelMissingError,MAX_REPORTED_VIOLATIONS,loadCommandModelDomain,loadCommandModelRoutes,validateBody,validateQuery}from"./chunk-NZ7WI4RZ.js";import{exitCodeFor,fetchAllPages,reportError}from"./chunk-HAV5BPIC.js";import"./chunk-QJY5OHCV.js";import{renderOutput}from"./chunk-SZOEBJGI.js";import"./chunk-Q3B65OFC.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{describeWaitResult,parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";
3
+ import{CommandModelMissingError,MAX_REPORTED_VIOLATIONS,loadCommandModelDomain,loadCommandModelRoutes,validateBody,validateQuery}from"./chunk-NZ7WI4RZ.js";import{exitCodeFor,fetchAllPages,reportError}from"./chunk-DED3IIC5.js";import"./chunk-S5WBKXGY.js";import{renderOutput}from"./chunk-SZOEBJGI.js";import"./chunk-Q3B65OFC.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{describeWaitResult,parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";
4
4
  import{parseOperationArgs,repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-IWYJSQ5I.js";import{ALLOW_REDACTED_FLAG,NO_REDACT_FLAG,NO_REDACT_NOTICE}from"./chunk-W4NLJ2YK.js";import"./chunk-RSSPNFSK.js";import"./chunk-HVZUXLQ4.js";import{ApiError,TwpApiClient,appendQuery}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-IXT2X5BZ.js";import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,
5
5
  envelopePaging,isPageNumberEnvelope,pageRangeNotes,positiveInteger,readEnvelopeCursor,readPageNumberCursor,shellQuote}from"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import{ApiResponseError,EXIT_OK,EXIT_WAIT_TIMEOUT,NetworkError,UsageError}from"./chunk-VFPY2A23.js";import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{AuthSession,NotLoggedInError,SessionExpiredError,loadCredentials}from"./chunk-XNLIEUAW.js";import{httpFetch}from"./chunk-J7QYPKVK.js";
6
6
  import{effectiveApiUrl,resolveConfiguredOutput,resolveProfile}from"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import{HELP_TOKEN}from"./chunk-MLRBDF44.js";import"./chunk-QQRJLH6B.js";import{OUTPUT_FORMATS,resolveOutputFormat}from"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var MIN_SEGMENT_CHARS=3;var parsedCache=new WeakMap;function splitSegments(path){return path.split("/").filter(segment=>segment!=="")}function parseRoutes(routes){const cached=parsedCache.get(routes);if(cached!==void 0)return cached;const parsed=[];for(const[key,domain]of Object.entries(routes.routes)){const space=key.indexOf(" ");if(space<=0)continue;const template=key.slice(space+1);parsed.push({method:key.slice(0,space),template,domain,segments:splitSegments(template).map(segment=>/^\{[^/{}]+\}$/.
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{RESIDENT_TOKEN_CAP,activateModeFiles,activatePermissionSettings,buildResidentSet,buildSystemPrompt,createAuditLogger,createTwpToolkit,currentBranch,describeAuditLog,describeToolCatalog,displayCwd,executeTool,findProjectTwpSubdir,localTools,lstatOrNull,parseFrontMatter,parseRule,persistProjectAllow,projectPermissionsPath,projectRootFor,readFileTool,residentInputs,resolveGitExecutable,runTurn,secretReason}from"./chunk-IMETEGK7.js";import"./chunk-NZ7WI4RZ.js";import{buildDiffLines,
4
- diffStat}from"./chunk-VRBI2NPI.js";import{require_fuzzysort}from"./chunk-DIMZRTLE.js";import"./chunk-N2UVRM3Z.js";import"./chunk-RSSPNFSK.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-IXT2X5BZ.js";import"./chunk-II5RVJQN.js";import"./chunk-VFPY2A23.js";import{RelayError,builtinCatalog,classifyModelSwitch,createRuntime,loadCachedCatalog,modelLabel,pickModel,specFor,toModelInfos}from"./chunk-2QRQXKIM.js";
3
+ import{RESIDENT_TOKEN_CAP,activateModeFiles,activatePermissionSettings,buildResidentSet,buildSystemPrompt,createAuditLogger,createTwpToolkit,currentBranch,describeAuditLog,describeToolCatalog,displayCwd,executeTool,findProjectTwpSubdir,localTools,lstatOrNull,parseFrontMatter,parseRule,persistProjectAllow,projectPermissionsPath,projectRootFor,readFileTool,residentInputs,resolveGitExecutable,runTurn,secretReason}from"./chunk-4DUZIRGL.js";import"./chunk-NZ7WI4RZ.js";import{buildDiffLines,
4
+ diffStat}from"./chunk-VRBI2NPI.js";import{require_fuzzysort}from"./chunk-DIMZRTLE.js";import"./chunk-N2UVRM3Z.js";import"./chunk-RSSPNFSK.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-IXT2X5BZ.js";import"./chunk-II5RVJQN.js";import"./chunk-VFPY2A23.js";import{RelayError,builtinCatalog,classifyModelSwitch,createRuntime,loadCachedCatalog,modelLabel,pickModel,specFor,toModelInfos}from"./chunk-LLBLGHHZ.js";
5
5
  import"./chunk-D233KKXW.js";import"./chunk-PMOUHEJQ.js";import"./chunk-XNLIEUAW.js";import{proxyDiagnostics}from"./chunk-J7QYPKVK.js";import{checkMinSupportedVersion,isBelowMinSupported,minSupportedBlockMessage}from"./chunk-DXXFUNYN.js";import"./chunk-EDF4U5BT.js";import{configReadDirs,twpHomeDir}from"./chunk-RZVI6PMW.js";import{parseArgv}from"./chunk-IVFSEXD3.js";import{applyPermissionMode,checkPermission,describePermissionMode,getMode,isModeId,modeSource,
6
6
  nextMode}from"./chunk-2LOT54OO.js";import"./chunk-MLRBDF44.js";import"./chunk-VERYHAWV.js";import"./chunk-QQRJLH6B.js";import{isFullWidth,isWide,stringWidth,stripAnsi}from"./chunk-UREA4ZIG.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import{__commonJS,__export,__require,__toESM}from"./chunk-VSJBJXZO.js";var require_react_production=__commonJS({"node_modules/react/cjs/react.production.js"(exports){"use strict";var REACT_ELEMENT_TYPE=Symbol.for("react.transitional.element");var REACT_PORTAL_TYPE=Symbol.for("react.portal");var REACT_FRAGMENT_TYPE=Symbol.for("react.fragment");var REACT_STRICT_MODE_TYPE=Symbol.for("react.strict_mode");var REACT_PROFILER_TYPE=Symbol.for("react.profiler");var REACT_CONSUMER_TYPE=Symbol.for("react.consumer");var REACT_CONTEXT_TYPE=Symbol.for("react.context");var REACT_FORWARD_REF_TYPE=Symbol.
7
7
  for("react.forward_ref");var REACT_SUSPENSE_TYPE=Symbol.for("react.suspense");var REACT_MEMO_TYPE=Symbol.for("react.memo");var REACT_LAZY_TYPE=Symbol.for("react.lazy");var REACT_ACTIVITY_TYPE=Symbol.for("react.activity");var REACT_VIEW_TRANSITION_TYPE=Symbol.for("react.view_transition");var MAYBE_ITERATOR_SYMBOL=Symbol.iterator;function getIteratorFn(maybeIterable){if(null===maybeIterable||"object"!==typeof maybeIterable)return null;maybeIterable=MAYBE_ITERATOR_SYMBOL&&maybeIterable[MAYBE_ITERATOR_SYMBOL]||
@@ -1212,7 +1212,7 @@ cwd()){const listed=await gitListFiles(cwd2);const raw=listed??await walkFiles(c
1212
1212
  1;const after=/^[^\s]*/.exec(text.slice(cursor))?.[0]??"";return{query,start,end:cursor+after.length}}var TWP_SLASH_ROUTES={"/tasks":{domain:"task",operation:"list"},"/task":{domain:"task",operation:"get"},"/projects":{domain:"project",operation:"list"}};function isTwpSlashCommand(name){return Object.hasOwn(TWP_SLASH_ROUTES,name)}async function runTwpSlashCommand(name,args,deps){const route=TWP_SLASH_ROUTES[name];if(!Object.hasOwn(TWP_SLASH_ROUTES,name)||route===void 0){return{code:2,out:"",err:`\u4E0D\u660E\u306A\u30B3\u30DE\u30F3\u30C9: ${name}
1213
1213
  `}}const parsed=parseArgv([route.domain,route.operation,...args]);if(parsed.command!=="domain"||parsed.domain!==route.domain){return{code:2,out:"",err:`${name}: \u3053\u306E\u5F15\u6570\u306F\u4F7F\u3048\u307E\u305B\u3093\uFF08${args.join(" ")}\uFF09
1214
1214
  `}}if(parsed.unknown.length>0){return{code:2,out:"",err:`\u4E0D\u660E\u306A\u5F15\u6570: ${parsed.unknown.join(" ")}
1215
- `}}let out="";let err="";const io={out:text=>void(out+=text),err:text=>void(err+=text),isTty:true};const globals={profile:parsed.profile??deps.profile,...parsed.output!==void 0?{output:parsed.output}:{},...parsed.query!==void 0?{query:parsed.query}:{},dryRun:parsed.dryRun,debug:parsed.debug,yes:parsed.yes,refresh:parsed.refresh};const{runDomain}=await import("./run-XJQ6DBKV.js");try{const code=await runDomain({domain:route.domain,...parsed.operation!==void 0?{operation:parsed.operation}:
1215
+ `}}let out="";let err="";const io={out:text=>void(out+=text),err:text=>void(err+=text),isTty:true};const globals={profile:parsed.profile??deps.profile,...parsed.output!==void 0?{output:parsed.output}:{},...parsed.query!==void 0?{query:parsed.query}:{},dryRun:parsed.dryRun,debug:parsed.debug,yes:parsed.yes,refresh:parsed.refresh};const{runDomain}=await import("./run-D5WEOH42.js");try{const code=await runDomain({domain:route.domain,...parsed.operation!==void 0?{operation:parsed.operation}:
1216
1216
  {},argv:parsed.domainArgv,help:parsed.domainHelp,globals,version:deps.version,io,...deps.fetchImpl!==void 0?{fetchImpl:deps.fetchImpl}:{}});return{code,out,err}}catch(e){return{code:1,out,err:`${err}${e.message}
1217
1217
  `}}}var GIT_LOG_OUTPUT=["9f3c1a2 feat(ui): \u4E00\u89A7\u306E\u30D5\u30A3\u30EB\u30BF\u3092 URL \u30AF\u30A8\u30EA\u3068\u540C\u671F\u3059\u308B","4b8e0d7 fix(ui): \u4EEE\u60F3\u30B9\u30AF\u30ED\u30FC\u30EB\u306E\u884C\u9AD8\u3055\u3092\u5B9F\u6E2C\u5024\u306B\u5408\u308F\u305B\u308B","c15a99e refactor(api): \u4E00\u89A7\u53D6\u5F97\u306E\u30DA\u30FC\u30B8\u30F3\u30B0\u51E6\u7406\u3092\u5171\u901A\u5316\u3059\u308B","2d70f4b test: \u4E00\u89A7\u30D5\u30A3\u30EB\u30BF\u306E\u56DE\u5E30\u30C6\u30B9\u30C8\u3092\u8FFD\u52A0\u3059\u308B",
1218
1218
  "a6e2b38 fix(api): \u7A7A\u306E\u691C\u7D22\u6761\u4EF6\u3067\u5168\u4EF6\u8FD4\u3089\u306A\u3044\u3088\u3046\u306B\u3059\u308B","7c40d51 chore(deps): \u958B\u767A\u4F9D\u5B58\u3092\u6700\u65B0\u3078\u66F4\u65B0\u3059\u308B","e83b1c6 docs: \u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u624B\u9806\u306B Node 22 \u306E\u524D\u63D0\u3092\u8FFD\u8A18\u3059\u308B","b91f7a4 fix(ui): \u30E2\u30FC\u30C0\u30EB\u306E\u91CD\u306A\u308A\u9806\u3092\u6307\u5B9A\u3059\u308B","5a2c8e0 perf(api): \u4E00\u89A7\u306E N+1 \u3092\u89E3\u6D88\u3059\u308B",
@@ -1335,14 +1335,14 @@ err.message)}`})})},[buffer,commit]);const onKey=(0,import_react38.useCallback)(
1335
1335
  return}if(bufferRef.current.text!==""){clearBuffer();return}if(ctrlCArmed){exit();return}setCtrlCArmed(true);commit({kind:"notice",tone:"info",text:"\u3082\u3046\u4E00\u5EA6 Ctrl+C \u3067\u7D42\u4E86\u3057\u307E\u3059\uFF08Ctrl+D \u3067\u3082\u7D42\u4E86\uFF09"});return}setCtrlCArmed(false);if(ev.name==="shift-tab"||ev.name==="alt-m"){const to=nextMode(modeRef.current);setMode(to);return}if(ev.name==="ctrl-r"){const last=lastToolRef.current;if(last)commit({kind:"tool",run:{...last,summary:`${last.
1336
1336
  summary}\uFF08\u5C55\u958B\uFF09`},expanded:true});return}if(overlay==="permission"){const resolve=permissionResolver.current;if(!resolve)return;if(ev.name==="paste"&&ev.value&&permStateRef.current.stage!=="instead"){const pasted=ev.value.replace(/\r\n?/g,"\n");setBuffer(b=>insert(b,pasted));return}const step=stepDialog(permStateRef.current,ev,pendingPermissionRef.current??{name:""});if("answer"in step)resolve(step.answer);else setPermState(step.state);return}if(overlay==="doctor"){if(ev.name===
1337
1337
  "escape")setOverlay("none");return}if(overlay==="model"){if(ev.name==="up")setSelected(s=>Math.max(0,s-1));else if(ev.name==="down")setSelected(s=>Math.min(catalog.ids.length-1,s+1));else if(ev.name==="escape")setOverlay("none");else if(ev.name==="enter"){const pickedId=catalog.ids[selectedRef.current];if(pickedId!==void 0&&classifyModelSwitch(catalog,model,pickedId)==="new_conversation"&&!runtime.context.isEmpty()){if(busyRef.current){commit({kind:"notice",tone:"warn",text:`${modelLabel(pickedId)}\
1338
- \u306F\u63A5\u7D9A\u5148\u304C\u7570\u306A\u308B\u305F\u3081\u65B0\u3057\u3044\u4F1A\u8A71\u304C\u5FC5\u8981\u3067\u3059\u3002\u5FDC\u7B54\u304C\u7D42\u308F\u3063\u3066\u304B\u3089\u5207\u308A\u66FF\u3048\u3066\u304F\u3060\u3055\u3044`});setOverlay("none");return}setPendingSwitch(pickedId);setSelected(0);setOverlay("model-confirm");return}if(pickedId!==void 0){setModel(pickedId);commit({kind:"notice",tone:"info",text:`\u30E2\u30C7\u30EB\u3092 ${modelLabel(pickedId)} \u306B\u5207\u308A\u66FF\u3048\u307E\u3057\u305F\uFF08\u30E2\u30FC\u30C9\u306F ${getMode(
1339
- modeRef.current).label} \u306E\u307E\u307E\uFF09`})}setOverlay("none")}return}if(overlay==="model-confirm"){if(ev.name==="up")setSelected(0);else if(ev.name==="down")setSelected(1);else if(ev.name==="escape"||ev.name==="enter"&&selectedRef.current!==0){setPendingSwitch(null);setOverlay("none");commit({kind:"notice",tone:"info",text:`\u30E2\u30C7\u30EB\u306F ${modelLabel(model)} \u306E\u307E\u307E\u3067\u3059`})}else if(ev.name==="enter"&&pendingSwitch!==null){setItems([]);runtime.context.clear();
1340
- setContext(runtime.context.snapshot());setModel(pendingSwitch);commit({kind:"notice",tone:"info",text:`\u65B0\u3057\u3044\u4F1A\u8A71\u3092\u59CB\u3081\u3001\u30E2\u30C7\u30EB\u3092 ${modelLabel(pendingSwitch)} \u306B\u5207\u308A\u66FF\u3048\u307E\u3057\u305F\uFF08\u63A5\u7D9A\u5148\u304C\u7570\u306A\u308B\u305F\u3081\u524D\u306E\u4F1A\u8A71\u306F\u5F15\u304D\u7D99\u3044\u3067\u3044\u307E\u305B\u3093\uFF09`});setPendingSwitch(null);setOverlay("none")}return}const mention=mentionAtCursor(bufferRef.
1341
- current.text,bufferRef.current.cursor);if(mention===null||mention.start!==dismissedMentionRef.current)dismissedMentionRef.current=null;const files=busyRef.current?null:fileCompletionFor(bufferRef.current,fileIndexRef.current);if(files!==null&&files.start!==dismissedMentionRef.current){if(ev.name==="up"){setSelected(s=>Math.max(0,s-1));return}if(ev.name==="down"){setSelected(s=>Math.min(files.items.length-1,s+1));return}if(ev.name==="tab"){const picked=files.items[Math.min(selectedRef.current,files.
1342
- items.length-1)];if(picked!==void 0){const insertText=`@${picked} `;setBuffer(b=>({text:b.text.slice(0,files.start)+insertText+b.text.slice(files.end),cursor:files.start+insertText.length}));setSelected(0)}return}if(ev.name==="escape"){dismissedMentionRef.current=files.start;setBuffer(b=>({...b}));return}}const palette=busyRef.current?[]:paletteFor(bufferRef.current.text,modeRef.current);if(palette.length>0){if(ev.name==="up"){setSelected(s=>Math.max(0,s-1));return}if(ev.name==="down"){setSelected(
1343
- s=>Math.min(palette.length-1,s+1));return}if(ev.name==="tab"){const picked=palette[selectedRef.current];if(picked){setBuffer(()=>({text:picked.name,cursor:picked.name.length}));setSelected(0)}return}if(ev.name==="enter"){const typed=bufferRef.current.text.trim();const exact=palette.find(c=>c.name===typed||c.aliases?.includes(typed));const picked=exact??palette[Math.min(selectedRef.current,palette.length-1)];if(picked){if(exact===void 0&&picked.argumentHint?.startsWith("<")===true){setBuffer(()=>({
1344
- text:`${picked.name} `,cursor:picked.name.length+1}));setSelected(0);return}clearBuffer();runCommand(picked.name)}return}if(ev.name==="escape"){clearBuffer();return}}switch(ev.name){case"char":if(ev.value){setBuffer(b=>insert(b,ev.value??""));setSelected(0)}return;case"paste":if(ev.value){const pasted=ev.value.replace(/\r\n?/g,"\n");setBuffer(b=>insert(b,pasted));setSelected(0)}return;case"newline":setBuffer(b=>insert(b,"\n"));return;case"enter":{const b=bufferRef.current;if(b.cursor>0&&b.text[b.
1345
- cursor-1]==="\\"){setBuffer(prev=>({text:`${prev.text.slice(0,prev.cursor-1)}
1338
+ \u306F\u63A5\u7D9A\u5148\u307E\u305F\u306F\u4F1A\u8A71\u306E\u5F62\u5F0F\u304C\u7570\u306A\u308B\u305F\u3081\u65B0\u3057\u3044\u4F1A\u8A71\u304C\u5FC5\u8981\u3067\u3059\u3002\u5FDC\u7B54\u304C\u7D42\u308F\u3063\u3066\u304B\u3089\u5207\u308A\u66FF\u3048\u3066\u304F\u3060\u3055\u3044`});setOverlay("none");return}setPendingSwitch(pickedId);setSelected(0);setOverlay("model-confirm");return}if(pickedId!==void 0){setModel(pickedId);commit({kind:"notice",tone:"info",text:`\u30E2\u30C7\u30EB\u3092 ${modelLabel(
1339
+ pickedId)} \u306B\u5207\u308A\u66FF\u3048\u307E\u3057\u305F\uFF08\u30E2\u30FC\u30C9\u306F ${getMode(modeRef.current).label} \u306E\u307E\u307E\uFF09`})}setOverlay("none")}return}if(overlay==="model-confirm"){if(ev.name==="up")setSelected(0);else if(ev.name==="down")setSelected(1);else if(ev.name==="escape"||ev.name==="enter"&&selectedRef.current!==0){setPendingSwitch(null);setOverlay("none");commit({kind:"notice",tone:"info",text:`\u30E2\u30C7\u30EB\u306F ${modelLabel(model)} \u306E\u307E\u307E\u3067\u3059`})}else if(ev.
1340
+ name==="enter"&&pendingSwitch!==null){setItems([]);runtime.context.clear();setContext(runtime.context.snapshot());setModel(pendingSwitch);commit({kind:"notice",tone:"info",text:`\u65B0\u3057\u3044\u4F1A\u8A71\u3092\u59CB\u3081\u3001\u30E2\u30C7\u30EB\u3092 ${modelLabel(pendingSwitch)} \u306B\u5207\u308A\u66FF\u3048\u307E\u3057\u305F\uFF08\u63A5\u7D9A\u5148\u307E\u305F\u306F\u4F1A\u8A71\u306E\u5F62\u5F0F\u304C\u7570\u306A\u308B\u305F\u3081\u524D\u306E\u4F1A\u8A71\u306F\u5F15\u304D\u7D99\u3044\u3067\u3044\u307E\u305B\u3093\uFF09`});
1341
+ setPendingSwitch(null);setOverlay("none")}return}const mention=mentionAtCursor(bufferRef.current.text,bufferRef.current.cursor);if(mention===null||mention.start!==dismissedMentionRef.current)dismissedMentionRef.current=null;const files=busyRef.current?null:fileCompletionFor(bufferRef.current,fileIndexRef.current);if(files!==null&&files.start!==dismissedMentionRef.current){if(ev.name==="up"){setSelected(s=>Math.max(0,s-1));return}if(ev.name==="down"){setSelected(s=>Math.min(files.items.length-1,s+
1342
+ 1));return}if(ev.name==="tab"){const picked=files.items[Math.min(selectedRef.current,files.items.length-1)];if(picked!==void 0){const insertText=`@${picked} `;setBuffer(b=>({text:b.text.slice(0,files.start)+insertText+b.text.slice(files.end),cursor:files.start+insertText.length}));setSelected(0)}return}if(ev.name==="escape"){dismissedMentionRef.current=files.start;setBuffer(b=>({...b}));return}}const palette=busyRef.current?[]:paletteFor(bufferRef.current.text,modeRef.current);if(palette.length>
1343
+ 0){if(ev.name==="up"){setSelected(s=>Math.max(0,s-1));return}if(ev.name==="down"){setSelected(s=>Math.min(palette.length-1,s+1));return}if(ev.name==="tab"){const picked=palette[selectedRef.current];if(picked){setBuffer(()=>({text:picked.name,cursor:picked.name.length}));setSelected(0)}return}if(ev.name==="enter"){const typed=bufferRef.current.text.trim();const exact=palette.find(c=>c.name===typed||c.aliases?.includes(typed));const picked=exact??palette[Math.min(selectedRef.current,palette.length-
1344
+ 1)];if(picked){if(exact===void 0&&picked.argumentHint?.startsWith("<")===true){setBuffer(()=>({text:`${picked.name} `,cursor:picked.name.length+1}));setSelected(0);return}clearBuffer();runCommand(picked.name)}return}if(ev.name==="escape"){clearBuffer();return}}switch(ev.name){case"char":if(ev.value){setBuffer(b=>insert(b,ev.value??""));setSelected(0)}return;case"paste":if(ev.value){const pasted=ev.value.replace(/\r\n?/g,"\n");setBuffer(b=>insert(b,pasted));setSelected(0)}return;case"newline":setBuffer(
1345
+ b=>insert(b,"\n"));return;case"enter":{const b=bufferRef.current;if(b.cursor>0&&b.text[b.cursor-1]==="\\"){setBuffer(prev=>({text:`${prev.text.slice(0,prev.cursor-1)}
1346
1346
  ${prev.text.slice(prev.cursor)}`,cursor:prev.cursor}));return}submit();return}case"backspace":setBuffer(b=>{const prev=prevBoundary(b.text,b.cursor);return prev===b.cursor?b:{text:b.text.slice(0,prev)+b.text.slice(b.cursor),cursor:prev}});setSelected(0);return;case"delete":setBuffer(b=>({text:b.text.slice(0,b.cursor)+b.text.slice(nextBoundary(b.text,b.cursor)),cursor:b.cursor}));return;case"left":setBuffer(b=>({...b,cursor:prevBoundary(b.text,b.cursor)}));return;case"right":setBuffer(b=>({...b,cursor:nextBoundary(
1347
1347
  b.text,b.cursor)}));return;case"home":setBuffer(b=>({...b,cursor:0}));return;case"end":setBuffer(b=>({...b,cursor:b.text.length}));return;case"ctrl-u":clearBuffer();return;default:return}},[busy,catalog,clearBuffer,commit,ctrlCArmed,exit,model,overlay,pendingSwitch,runtime,setBuffer,setSelected,stream,submit,runCommand]);useTerminalInput(onKey,setPasting);const streamRows=fitTailRows(stream.text,size.columns,budget.body).rows;const diffBudget=budget.body-13;const listBudget=Math.max(1,budget.body-
1348
1348
  6);const doctorBudget=Math.max(1,budget.body-11-doctorNetworkRows(networkDiagnostics));return(0,import_jsx_runtime9.jsxs)(Box_default,{flexDirection:"column",children:[(0,import_jsx_runtime9.jsx)(Static,{items,children:item=>(0,import_jsx_runtime9.jsx)(ItemView,{item},item.id)}),(0,import_jsx_runtime9.jsxs)(Box_default,{flexDirection:"column",marginTop:1,children:[stream.streaming||stream.text!==""?(0,import_jsx_runtime9.jsx)(Box_default,{flexDirection:"column",children:streamRows.map((line,i)=>(0,import_jsx_runtime9.jsx)(
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{fetchLatestVersion,isBehindLatest,resolveNpmCommand}from"./chunk-DVBFLDHZ.js";import"./chunk-2QRQXKIM.js";import"./chunk-D233KKXW.js";import"./chunk-PMOUHEJQ.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import{PARENT_PID_ENV,WORKER_ENV,autoUpdateDisabledReason,classifyInstall,isCheckDue,listRegisteredPids,lockFilePath,readUpdateState,resolveCliPath,runDirPath,writeUpdateState}from"./chunk-CH6QU76P.js";import{PACKAGE_NAME,parseVersionCore}from"./chunk-DXXFUNYN.js";
3
+ import{fetchLatestVersion,isBehindLatest,resolveNpmCommand}from"./chunk-6EIW4KTU.js";import"./chunk-LLBLGHHZ.js";import"./chunk-D233KKXW.js";import"./chunk-PMOUHEJQ.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import{PARENT_PID_ENV,WORKER_ENV,autoUpdateDisabledReason,classifyInstall,isCheckDue,listRegisteredPids,lockFilePath,readUpdateState,resolveCliPath,runDirPath,writeUpdateState}from"./chunk-CH6QU76P.js";import{PACKAGE_NAME,parseVersionCore}from"./chunk-DXXFUNYN.js";
4
4
  import"./chunk-5WGOHFAS.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import{execFile}from"child_process";import fs from"fs";import path from"path";var PARENT_WAIT_MAX_MS=12*60*60*1e3;var PARENT_POLL_MS=1e3;var LOCK_STALE_MS=PARENT_WAIT_MAX_MS+60*60*1e3;var INSTALL_TIMEOUT_MS=0;function childEnv(env){const next={...env};delete next[WORKER_ENV];delete next[PARENT_PID_ENV];return next}function createNpmRunner(env=process.env){const cmd=resolveNpmCommand({env});if(cmd===null)return null;return(args,timeoutMs)=>new Promise(resolve=>{execFile(cmd.file,[...cmd.prefix,...args],{timeout:timeoutMs,windowsHide:true,maxBuffer:8*1024*1024,cwd:path.dirname(lockFilePath(env)),env:childEnv(env)},(error,stdout,stderr)=>{if(error===null){resolve({ok:true,stdout:String(stdout),stderr:String(
5
5
  stderr)});return}const e=error;resolve({ok:false,stdout:String(stdout??""),stderr:String(stderr??""),...e.killed?{error:"\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u3057\u307E\u3057\u305F"}:typeof e.code==="string"?{error:e.code}:{}})})})}function summarizeNpmFailure(result){const text=`${result.stderr}
6
6
  ${result.stdout}`;const code=/npm (?:ERR!|error) code (\S+)/.exec(text)?.[1]??result.error;let reason;if(code==="EACCES"||code==="EPERM"){reason=`\u30B0\u30ED\u30FC\u30D0\u30EB\u306E\u5C0E\u5165\u5148\u306B\u66F8\u304D\u8FBC\u3080\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\uFF08${code}\uFF09`}else if(code!==void 0&&/^(ENOTFOUND|ETIMEDOUT|ECONNREFUSED|ECONNRESET|EAI_AGAIN|ENETUNREACH)$/.test(code)){reason=`npm registry \u306B\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${code}\
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{CommandModelMissingError,MAX_REPORTED_VIOLATIONS,loadCommandModelDomain,loadCommandModelIndex,validateBody,validateQuery}from"./chunk-NZ7WI4RZ.js";import{isForceOnly,killProcessTree,system32}from"./chunk-N2UVRM3Z.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError,TwpApiClient,appendQuery}from"./chunk-JA5A6UJ2.js";import{redactSecretValues}from"./chunk-IXT2X5BZ.js";import{DEFAULT_MAX_HISTORY_BYTES,DEFAULT_MAX_TOKENS,effectiveModelSpec,emptyUsage}from"./chunk-2QRQXKIM.js";
3
+ import{CommandModelMissingError,MAX_REPORTED_VIOLATIONS,loadCommandModelDomain,loadCommandModelIndex,validateBody,validateQuery}from"./chunk-NZ7WI4RZ.js";import{isForceOnly,killProcessTree,system32}from"./chunk-N2UVRM3Z.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError,TwpApiClient,appendQuery}from"./chunk-JA5A6UJ2.js";import{redactSecretValues}from"./chunk-IXT2X5BZ.js";import{DEFAULT_MAX_HISTORY_BYTES,DEFAULT_MAX_TOKENS,effectiveModelSpec,emptyUsage}from"./chunk-LLBLGHHZ.js";
4
4
  import{isPrivateTwpHome,isTrustworthyCacheFile,writePrivateFileAtomic}from"./chunk-D233KKXW.js";import{findExecutable,isWindowsDriveAbsolute}from"./chunk-PMOUHEJQ.js";import{AuthSession,NotLoggedInError,SessionExpiredError,withFileLock}from"./chunk-XNLIEUAW.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{configReadDirs,ensureTwpHome,twpHomeDir}from"./chunk-RZVI6PMW.js";import{MODES,applyPermissionMode,checkPermission,isModeId,setActiveModes}from"./chunk-2LOT54OO.js";
5
5
  import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import fs2 from"fs";import path3 from"path";import os2 from"os";import{realpathSync}from"fs";import{homedir}from"os";import{dirname,isAbsolute,relative,resolve,sep}from"path";var PathDeniedError=class extends Error{constructor(message){super(message);this.name="PathDeniedError"}};function resolveToolPath(input,cwd,home=homedir()){if(typeof input!=="string"||input.trim()===""){throw new PathDeniedError("path must be a non-empty string")}const expanded=expandHome(input,home);const abs=isAbsolute(expanded)?resolve(expanded):resolve(cwd,expanded);const root=realOrSelf(resolve(cwd));assertInside(abs,resolve(cwd),abs);assertNotSecret(abs,home);const real=realOrSelf(abs);if(real!==
6
6
  abs){assertInside(real,root,abs);assertNotSecret(real,home)}return abs}function realToolPath(input,cwd,home=homedir()){return realOrSelf(resolveToolPath(input,cwd,home))}function assertInside(target,root,reported){const rel=relative(root,target);const outside=rel===".."||rel.startsWith(`..${sep}`)||isAbsolute(rel);if(outside){throw new PathDeniedError(`path escapes the working directory (${reported}). Only paths under ${root} can be accessed.`)}}function realOrSelf(target){let current=target;const rest=[];
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{createRuntime}from"./chunk-2QRQXKIM.js";import{findExecutable}from"./chunk-PMOUHEJQ.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{describeAutoUpdate}from"./chunk-CH6QU76P.js";import{PACKAGE_NAME,UPDATE_COMMAND,compareVersionCores,isBelowMinSupported,parseVersionCore}from"./chunk-DXXFUNYN.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import{execFile}from"child_process";import fs from"fs";import path from"path";function resolveNpmCommand(deps={}){const platform=deps.platform??process.platform;const env=deps.env??process.env;const npmPath=(deps.find??(name=>findExecutable(name,{env,platform})))("npm");if(npmPath===null)return null;if(platform!=="win32")return{file:npmPath,prefix:[]};if(/\.exe$/i.test(npmPath))return{file:npmPath,prefix:[]};const cliJs=path.win32.join(path.win32.dirname(npmPath),"node_modules","npm","bin","npm-cli.js");return(deps.exists??fs.existsSync)(cliJs)?{file:deps.nodePath??process.
3
+ import{createRuntime}from"./chunk-LLBLGHHZ.js";import{findExecutable}from"./chunk-PMOUHEJQ.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{describeAutoUpdate}from"./chunk-CH6QU76P.js";import{PACKAGE_NAME,UPDATE_COMMAND,compareVersionCores,isBelowMinSupported,parseVersionCore}from"./chunk-DXXFUNYN.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import{execFile}from"child_process";import fs from"fs";import path from"path";function resolveNpmCommand(deps={}){const platform=deps.platform??process.platform;const env=deps.env??process.env;const npmPath=(deps.find??(name=>findExecutable(name,{env,platform})))("npm");if(npmPath===null)return null;if(platform!=="win32")return{file:npmPath,prefix:[]};if(/\.exe$/i.test(npmPath))return{file:npmPath,prefix:[]};const cliJs=path.win32.join(path.win32.dirname(npmPath),"node_modules","npm","bin","npm-cli.js");return(deps.exists??fs.existsSync)(cliJs)?{file:deps.nodePath??process.
4
4
  execPath,prefix:[cliJs]}:null}var DEFAULT_REGISTRY="https://registry.npmjs.org";function registryBase(env=process.env){const configured=env["npm_config_registry"]?.trim();if(configured===void 0||configured==="")return DEFAULT_REGISTRY;try{const url=new URL(configured);if(url.protocol!=="https:"&&url.protocol!=="http:")return DEFAULT_REGISTRY}catch{return DEFAULT_REGISTRY}return configured.replace(/\/+$/,"")}async function fetchFromRegistry(fetchImpl=httpFetch,env=process.env){const url=`${registryBase(env)}/${PACKAGE_NAME.replace(
5
5
  "/","%2f")}`;const res=await fetchImpl(url,{headers:{Accept:"application/vnd.npm.install-v1+json"},signal:AbortSignal.timeout(5e3)});if(!res.ok){throw new Error(`registry \u304C ${res.status} \u3092\u8FD4\u3057\u307E\u3057\u305F`)}const body=await res.json();const latest=body["dist-tags"]?.latest;if(typeof latest!=="string"||parseVersionCore(latest)===null){throw new Error("registry \u306E\u5FDC\u7B54\u306B dist-tags.latest \u304C\u3042\u308A\u307E\u305B\u3093")}return{version:latest.trim(),source:"\
6
6
  registry"}}async function fetchFromNpmCli(){const npm=resolveNpmCommand();if(npm===null){throw new Error("npm \u304C PATH \u306B\u898B\u3064\u304B\u308A\u307E\u305B\u3093")}const stdout=await new Promise((resolve,reject)=>{execFile(npm.file,[...npm.prefix,"view",PACKAGE_NAME,"version","--json"],{timeout:15e3,windowsHide:true},(error,out)=>error?reject(error):resolve(out))});const parsed=JSON.parse(stdout.trim());const latest=typeof parsed==="string"?parsed:null;if(latest===null||parseVersionCore(
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{loadDomain}from"./chunk-QJY5OHCV.js";import{renderDocument,renderOutput}from"./chunk-SZOEBJGI.js";import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{parseOperationArgs}from"./chunk-RX5HWI4L.js";import{NO_REDACT_NOTICE,withCommonFlags}from"./chunk-W4NLJ2YK.js";import{Resolver,requireDefaultProject}from"./chunk-RSSPNFSK.js";import{ResolveError}from"./chunk-HVZUXLQ4.js";import{ApiError,MultipartBody,
3
+ import{loadDomain}from"./chunk-S5WBKXGY.js";import{renderDocument,renderOutput}from"./chunk-SZOEBJGI.js";import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{parseOperationArgs}from"./chunk-RX5HWI4L.js";import{NO_REDACT_NOTICE,withCommonFlags}from"./chunk-W4NLJ2YK.js";import{Resolver,requireDefaultProject}from"./chunk-RSSPNFSK.js";import{ResolveError}from"./chunk-HVZUXLQ4.js";import{ApiError,MultipartBody,
4
4
  TwpApiClient,appendQuery}from"./chunk-JA5A6UJ2.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-IXT2X5BZ.js";import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,nextPageNotes,positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{isRecord}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,EXIT_API_CLIENT,EXIT_API_SERVER,EXIT_AUTH,EXIT_FAILURE,EXIT_OK,EXIT_USAGE,EXIT_WAIT_TIMEOUT,NetworkError,UsageError,WaitTimeoutError}from"./chunk-VFPY2A23.js";
5
5
  import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{AuthSession,NotLoggedInError,SessionExpiredError,loadCredentials}from"./chunk-XNLIEUAW.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{effectiveApiUrl,loadUserConfig,resolveConfiguredBacklogSpace,resolveConfiguredOutput,resolveProfile}from"./chunk-EDF4U5BT.js";import{HELP_TOKEN}from"./chunk-MLRBDF44.js";import{OUTPUT_FORMATS,resolveOutputFormat}from"./chunk-74BPZOKU.js";import{stringWidth}from"./chunk-UREA4ZIG.js";
6
6
  import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import fs from"fs";import path from"path";function alignedList(entries,indent=" "){const width=entries.reduce((max,[left])=>Math.max(max,stringWidth(left)),0);return entries.map(([left,right])=>`${indent}${left}${" ".repeat(Math.max(0,width-stringWidth(left)))} ${right}`).join("\n")}function subresourcesOf(resource){return resource.subresources??[]}function renderResourceHelp(resource,path2){const subresources=subresourcesOf(resource);const operationSection=resource.operations.length===0?"":`
@@ -32,7 +32,8 @@ fetched_at==="string"?entry.fetched_at:null}}catch{return{minSupportedVersion:nu
32
32
  try{file=readCacheFile(env)}catch{file={version:1,entries:{}}}const entries={...file.entries??{}};entries[profile]={relay_url:relayUrl,fetched_at:new Date(now()).toISOString(),models:ids,specs:specs.map(toWireSpec),min_supported_version:minSupportedVersion};writePrivateFileAtomic(modelCachePath(env),`${JSON.stringify({version:1,entries},null,2)}
33
33
  `)})}catch{}}async function loadCatalog(client,profile,relayUrl,env=process.env){try{const{ids,models,minSupportedVersion}=await client.fetchModelCatalog();await saveCatalog(profile,relayUrl,ids,minSupportedVersion,env,Date.now,models);return{ids,models,source:"server",fetchedAt:new Date().toISOString(),minSupportedVersion}}catch{return loadCachedCatalog(profile,relayUrl,env)??builtinCatalog()}}function pickModel(catalog,configured){const fallback=catalog.ids[0]??MODELS[0]?.id??DEFAULT_MODEL;if(!configured||
34
34
  configured==="")return{model:fallback};if(catalog.ids.includes(configured))return{model:configured};if(catalog.source==="builtin"){return{model:configured,warning:`\u30E2\u30C7\u30EB\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081\u3001\u6307\u5B9A\u3055\u308C\u305F ${configured} \u3092\u305D\u306E\u307E\u307E\u4F7F\u3044\u307E\u3059\uFF08\u5229\u7528\u3067\u304D\u306A\u3044\u5834\u5408\u306F\u30EA\u30EC\u30FC\u304C 400 \u3092\u8FD4\u3057\u307E\u3059\uFF09`}}return{
35
- model:fallback,warning:`${configured} \u306F\u5229\u7528\u3067\u304D\u306A\u3044\u305F\u3081 ${fallback} \u3092\u4F7F\u3044\u307E\u3059\uFF08\u5229\u7528\u53EF\u80FD: ${catalog.ids.join(" / ")}\uFF09`}}function specFor(catalog,id){return effectiveModelSpec(catalog.models?.find(m=>m.id===id))}function classifyModelSwitch(catalog,from,to){if(from===to)return"same";return specFor(catalog,from).provider===specFor(catalog,to).provider?"keep":"new_conversation"}var MAX_EVENT_BYTES=8*1024*1024;var SseBufferOverflowError=class extends Error{constructor(limit){super(`SSE \u306E\u30A4\u30D9\u30F3\u30C8\u5883\u754C\uFF08\u7A7A\u884C\uFF09\u304C ${limit} \u30D0\u30A4\u30C8\u4EE5\u5185\u306B\u73FE\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u4E0A\u6D41\u306E\u5FDC\u7B54\u304C\u58CA\u308C\u3066\u3044\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002`)}};var SseParser=class{constructor(maxEventBytes=MAX_EVENT_BYTES){this.maxEventBytes=maxEventBytes}maxEventBytes;buffer="";pendingCr=false;push(chunk){
35
+ model:fallback,warning:`${configured} \u306F\u5229\u7528\u3067\u304D\u306A\u3044\u305F\u3081 ${fallback} \u3092\u4F7F\u3044\u307E\u3059\uFF08\u5229\u7528\u53EF\u80FD: ${catalog.ids.join(" / ")}\uFF09`}}function specFor(catalog,id){return effectiveModelSpec(catalog.models?.find(m=>m.id===id))}function classifyModelSwitch(catalog,from,to){if(from===to)return"same";const a=specFor(catalog,from);const b=specFor(catalog,to);return a.provider===b.provider&&a.protocol===b.protocol?"keep":"new_conversat\
36
+ ion"}var MAX_EVENT_BYTES=8*1024*1024;var SseBufferOverflowError=class extends Error{constructor(limit){super(`SSE \u306E\u30A4\u30D9\u30F3\u30C8\u5883\u754C\uFF08\u7A7A\u884C\uFF09\u304C ${limit} \u30D0\u30A4\u30C8\u4EE5\u5185\u306B\u73FE\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u4E0A\u6D41\u306E\u5FDC\u7B54\u304C\u58CA\u308C\u3066\u3044\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002`)}};var SseParser=class{constructor(maxEventBytes=MAX_EVENT_BYTES){this.maxEventBytes=maxEventBytes}maxEventBytes;buffer="";pendingCr=false;push(chunk){
36
37
  let pending=this.pendingCr?`\r${chunk}`:chunk;this.pendingCr=pending.endsWith("\r");if(this.pendingCr)pending=pending.slice(0,-1);this.buffer+=pending.replace(/\r\n/g,"\n").replace(/\r/g,"\n");if(this.buffer.length>this.maxEventBytes){this.buffer="";this.pendingCr=false;throw new SseBufferOverflowError(this.maxEventBytes)}const events=[];for(;;){const boundary=this.buffer.indexOf("\n\n");if(boundary===-1)break;const block=this.buffer.slice(0,boundary);this.buffer=this.buffer.slice(boundary+2);const parsed=parseBlock(
37
38
  block);if(parsed)events.push(parsed)}return events}flush(){const rest=(this.pendingCr?`${this.buffer}
38
39
  `:this.buffer).trim();this.buffer="";this.pendingCr=false;if(rest==="")return[];const parsed=parseBlock(rest);return parsed?[parsed]:[]}};function parseBlock(block){let event="message";const data=[];for(const line of block.split("\n")){if(line.startsWith(":"))continue;const colon=line.indexOf(":");const field=colon===-1?line:line.slice(0,colon);let value=colon===-1?"":line.slice(colon+1);if(value.startsWith(" "))value=value.slice(1);if(field==="event")event=value;else if(field==="data")data.push(
@@ -4,8 +4,8 @@ var LOADERS={agent:async()=>(await import("./agent-YYDLDJJP.js")).agentDomain,"a
4
4
  backlog:async()=>(await import("./backlog-P5KPB76Q.js")).backlogDomain,budget:async()=>(await import("./budget-ZE5AMVSC.js")).budgetDomain,"business-hours":async()=>(await import("./business-hours-I4X6YQS3.js")).businessHoursDomain,"business-place":async()=>(await import("./sales-master-THVBWI5T.js")).businessPlaceDomain,company:async()=>(await import("./company-2CRWKBJL.js")).companyDomain,contract:async()=>(await import("./contract-E523CMAL.js")).contractDomain,customer:async()=>(await import("./company-2CRWKBJL.js")).
5
5
  customerDomain,department:async()=>(await import("./department-GPVHVFFP.js")).departmentDomain,deposit:async()=>(await import("./deposit-2HTM27AQ.js")).depositDomain,estimate:async()=>(await import("./estimate-ADFAC72Y.js")).estimateDomain,evaluation:async()=>(await import("./evaluation-VP7OFTBS.js")).evaluationDomain,expense:async()=>(await import("./expense-3LLZQ4HE.js")).expenseDomain,"fiscal-year":async()=>(await import("./fiscal-year-ZTCSF46U.js")).fiscalYearDomain,holiday:async()=>(await import("./holiday-E7N4ONKQ.js")).
6
6
  holidayDomain,"goal-sheet":async()=>(await import("./evaluation-VP7OFTBS.js")).goalSheetDomain,inquiry:async()=>(await import("./inquiry-4Q4BRYM3.js")).inquiryDomain,invoice:async()=>(await import("./invoice-ZJM5Y7GE.js")).invoiceDomain,"job-title":async()=>(await import("./job-title-NCFHCA4M.js")).jobTitleDomain,knowledge:async()=>(await import("./domain-knowledge-VLLAEQEG.js")).knowledgeDomain,leave:async()=>(await import("./leave-IZOHEIL3.js")).leaveDomain,license:async()=>(await import("./license-XSWDXSJE.js")).
7
- licenseDomain,media:async()=>(await import("./media-ALQC4SYV.js")).mediaDomain,meeting:async()=>(await import("./knowledge-VYQKSGQH.js")).meetingDomain,note:async()=>(await import("./knowledge-VYQKSGQH.js")).noteDomain,notification:async()=>(await import("./notification-WP7CH734.js")).notificationDomain,onedrive:async()=>(await import("./onedrive-KWVOUGG6.js")).onedriveDomain,outlook:async()=>(await import("./outlook-FQYNTXOB.js")).outlookDomain,payee:async()=>(await import("./sales-master-THVBWI5T.js")).
7
+ licenseDomain,media:async()=>(await import("./media-REBBHHCL.js")).mediaDomain,meeting:async()=>(await import("./knowledge-VYQKSGQH.js")).meetingDomain,note:async()=>(await import("./knowledge-VYQKSGQH.js")).noteDomain,notification:async()=>(await import("./notification-WP7CH734.js")).notificationDomain,onedrive:async()=>(await import("./onedrive-KWVOUGG6.js")).onedriveDomain,outlook:async()=>(await import("./outlook-FQYNTXOB.js")).outlookDomain,payee:async()=>(await import("./sales-master-THVBWI5T.js")).
8
8
  payeeDomain,position:async()=>(await import("./position-H3NSDVKQ.js")).positionDomain,project:async()=>(await import("./project-QAWTPSCR.js")).projectDomain,prospect:async()=>(await import("./prospect-QY3NYP2A.js")).prospectDomain,purchase:async()=>(await import("./purchase-H4K66GDS.js")).purchaseDomain,qualification:async()=>(await import("./skill-7NQZGSML.js")).qualificationDomain,receivable:async()=>(await import("./receivable-6H4W2OKM.js")).receivableDomain,redmine:async()=>(await import("./redmine-644RTL42.js")).
9
9
  redmineDomain,report:async()=>(await import("./report-HUJS6P5H.js")).reportDomain,"rounding-setting":async()=>(await import("./sales-numbering-E276FXQD.js")).roundingSettingDomain,"seal-impression":async()=>(await import("./sales-master-THVBWI5T.js")).sealImpressionDomain,search:async()=>(await import("./search-BLMSVPIL.js")).searchDomain,segment:async()=>(await import("./segment-G4IPD43F.js")).segmentDomain,shift:async()=>(await import("./attendance-lists-3IGZIBOR.js")).shiftDomain,skill:async()=>(await import("./skill-7NQZGSML.js")).
10
- skillDomain,"staffing-board":async()=>(await import("./staffing-board-PNTCS7NC.js")).staffingBoardDomain,storage:async()=>(await import("./storage-AQDCEBDJ.js")).storageDomain,"supplier-payment":async()=>(await import("./supplier-payment-T25C3NGB.js")).supplierPaymentDomain,support:async()=>(await import("./support-UNJKXLAZ.js")).supportDomain,task:async()=>(await import("./task-TY3ALGSP.js")).taskDomain,teams:async()=>(await import("./teams-X5WBB5YH.js")).teamsDomain,user:async()=>(await import("./user-DZV5ZMTP.js")).
10
+ skillDomain,"staffing-board":async()=>(await import("./staffing-board-PNTCS7NC.js")).staffingBoardDomain,storage:async()=>(await import("./storage-AQDCEBDJ.js")).storageDomain,"supplier-payment":async()=>(await import("./supplier-payment-T25C3NGB.js")).supplierPaymentDomain,support:async()=>(await import("./support-UNJKXLAZ.js")).supportDomain,task:async()=>(await import("./task-IIZRFCUR.js")).taskDomain,teams:async()=>(await import("./teams-X5WBB5YH.js")).teamsDomain,user:async()=>(await import("./user-DZV5ZMTP.js")).
11
11
  userDomain,"user-contract-type":async()=>(await import("./user-contract-type-HDA5TITL.js")).userContractTypeDomain,wiki:async()=>(await import("./knowledge-VYQKSGQH.js")).wikiDomain,workchange:async()=>(await import("./attendance-lists-3IGZIBOR.js")).workchangeDomain,"worker-agent":async()=>(await import("./worker-agent-5EKRFAD3.js")).workerAgentDomain,workflow:async()=>(await import("./workflow-ZA3TDTIT.js")).workflowDomain};async function loadDomain(name){return LOADERS[name]()}export{loadDomain};
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __twpCreateRequire } from 'node:module';
3
3
  const require = __twpCreateRequire(import.meta.url);
4
- import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{parseArgv}from"./chunk-IVFSEXD3.js";import"./chunk-2LOT54OO.js";import"./chunk-MLRBDF44.js";import"./chunk-VERYHAWV.js";import"./chunk-QQRJLH6B.js";import"./chunk-VSJBJXZO.js";var VERSION=true?"0.85.2":"0.0.0-dev";var HELP=`twp ${VERSION} \u2014 TWP CLI
4
+ import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{parseArgv}from"./chunk-IVFSEXD3.js";import"./chunk-2LOT54OO.js";import"./chunk-MLRBDF44.js";import"./chunk-VERYHAWV.js";import"./chunk-QQRJLH6B.js";import"./chunk-VSJBJXZO.js";var VERSION=true?"0.86.0":"0.0.0-dev";var HELP=`twp ${VERSION} \u2014 TWP CLI
5
5
 
6
6
  \u4F7F\u3044\u65B9:
7
7
  twp \u5BFE\u8A71 TUI \u3092\u8D77\u52D5
@@ -1391,16 +1391,16 @@ TUI \u5185:
1391
1391
  TWP API \u3092\u547C\u3079\u307E\u3059\u3002TWP API \u306E\u30C4\u30FC\u30EB\u306F\u65E2\u5B9A\u3067\u78BA\u8A8D\u304C\u51FA\u307E\u3059\uFF08-p \u3067\u306F\u62D2\u5426\u3002--allowed-tools \u3067\u540D\u524D\u3092\u8A31\u53EF\uFF09\u3002
1392
1392
  \u4F1A\u8A71\u30FB\u30ED\u30FC\u30AB\u30EB\u30C4\u30FC\u30EB\uFF08\u30D5\u30A1\u30A4\u30EB\u30FB\u30B3\u30DE\u30F3\u30C9\u30FBgit\uFF09\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u30AF\u30EC\u30B8\u30C3\u30C8\u3067\u5B9F\u969B\u306B\u52D5\u304D\u307E\u3059\u3002
1393
1393
  `;function ignoreEpipe(stream){stream.on("error",err=>{if(err.code==="EPIPE")process.exit(0);throw err})}async function main(){const nodeMajor=Number(process.versions.node.split(".")[0]);if(nodeMajor<22){process.stderr.write(`twp-cli \u306B\u306F Node.js 22 \u4EE5\u4E0A\u304C\u5FC5\u8981\u3067\u3059\uFF08\u73FE\u5728: ${process.versions.node}\uFF09
1394
- `);process.exit(1)}ignoreEpipe(process.stdout);ignoreEpipe(process.stderr);if(process.env["TWP_AUTO_UPDATE_WORKER"]==="1"){const{runAutoUpdateWorker}=await import("./auto-update-worker-AGHPI7CM.js");await runAutoUpdateWorker().catch(()=>void 0);return}const[first,...rest]=process.argv.slice(2);if(first==="__complete"||first==="completion"){const completion=await import("./completion-C6ZQCDT2.js");if(first==="completion"){process.exitCode=completion.runCompletion(rest,process.stdout,process.stderr);return}
1395
- const[{loadDomain},{loadUserConfig}]=await Promise.all([import("./registry-BHBN22YL.js"),import("./config-XYWRBIC6.js")]);process.exitCode=await completion.runComplete(rest,process.stdout,{loadDomain,profileNames:()=>Object.keys(loadUserConfig().profiles??{})});return}if(first==="configure"){const autoUpdate2=await import("./auto-update-FXXQHBV5.js");autoUpdate2.registerRunning();autoUpdate2.onStartup(VERSION);const{runConfigure}=await import("./configure-3JID6MQ5.js");process.exitCode=
1394
+ `);process.exit(1)}ignoreEpipe(process.stdout);ignoreEpipe(process.stderr);if(process.env["TWP_AUTO_UPDATE_WORKER"]==="1"){const{runAutoUpdateWorker}=await import("./auto-update-worker-XT4VB4LJ.js");await runAutoUpdateWorker().catch(()=>void 0);return}const[first,...rest]=process.argv.slice(2);if(first==="__complete"||first==="completion"){const completion=await import("./completion-C6ZQCDT2.js");if(first==="completion"){process.exitCode=completion.runCompletion(rest,process.stdout,process.stderr);return}
1395
+ const[{loadDomain},{loadUserConfig}]=await Promise.all([import("./registry-XHUKN55J.js"),import("./config-XYWRBIC6.js")]);process.exitCode=await completion.runComplete(rest,process.stdout,{loadDomain,profileNames:()=>Object.keys(loadUserConfig().profiles??{})});return}if(first==="configure"){const autoUpdate2=await import("./auto-update-FXXQHBV5.js");autoUpdate2.registerRunning();autoUpdate2.onStartup(VERSION);const{runConfigure}=await import("./configure-3JID6MQ5.js");process.exitCode=
1396
1396
  await runConfigure(rest);return}const args=parseArgv(process.argv.slice(2));if(args.command==="version"){process.stdout.write(`${VERSION}
1397
1397
  `);return}if(args.command==="help"){process.stdout.write(HELP);return}if(args.movedCommand!==void 0){const{MOVED_QUEUE_COMMAND_MESSAGE}=await import("./dispatch-HHWTJ3P4.js");process.stderr.write(MOVED_QUEUE_COMMAND_MESSAGE);process.exitCode=2;return}if(args.unknown.length>0){process.stderr.write(`\u4E0D\u660E\u306A\u5F15\u6570: ${args.unknown.join(" ")}
1398
1398
 
1399
- ${HELP}`);process.exitCode=2;return}const autoUpdate=await import("./auto-update-FXXQHBV5.js");autoUpdate.registerRunning();if(args.command==="task-loop"&&args.taskLoopAction!=="capacity"){process.env[autoUpdate.DISABLE_ENV]="1"}else if(args.command!=="update"){autoUpdate.onStartup(VERSION)}if(args.command==="domain"&&args.domain!==void 0){const{runDomain}=await import("./run-XJQ6DBKV.js");process.exitCode=await runDomain({domain:args.domain,...args.operation!==void 0?{operation:args.operation}:
1400
- {},argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.profile}:{},...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes,refresh:args.refresh},version:VERSION});return}if(args.command==="api"){const{runApiCommand}=await import("./api-command-HQSOCK4P.js");process.exitCode=await runApiCommand({argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.
1401
- profile}:{},...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes},version:VERSION});return}if(args.command==="update"){const{runUpdate}=await import("./update-RXDALEOA.js");process.exitCode=await runUpdate({...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}if(args.command==="login"||args.command==="logout"||args.command==="whoami"){const{runLogin,runLogout,runWhoami}=await import("./commands-KKEZJCLF.js");
1399
+ ${HELP}`);process.exitCode=2;return}const autoUpdate=await import("./auto-update-FXXQHBV5.js");autoUpdate.registerRunning();if(args.command==="task-loop"&&args.taskLoopAction!=="capacity"){process.env[autoUpdate.DISABLE_ENV]="1"}else if(args.command!=="update"){autoUpdate.onStartup(VERSION)}if(args.command==="domain"&&args.domain!==void 0){const{runDomain}=await import("./run-D5WEOH42.js");process.exitCode=await runDomain({domain:args.domain,...args.operation!==void 0?{operation:args.operation}:
1400
+ {},argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.profile}:{},...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes,refresh:args.refresh},version:VERSION});return}if(args.command==="api"){const{runApiCommand}=await import("./api-command-3ETVO5IN.js");process.exitCode=await runApiCommand({argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.
1401
+ profile}:{},...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes},version:VERSION});return}if(args.command==="update"){const{runUpdate}=await import("./update-5NJSC26F.js");process.exitCode=await runUpdate({...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}if(args.command==="login"||args.command==="logout"||args.command==="whoami"){const{runLogin,runLogout,runWhoami}=await import("./commands-KKEZJCLF.js");
1402
1402
  const options={profile:args.profile,method:args.loginMethod,tenant:args.tenant,noBrowser:args.loginNoBrowser,cliVersion:VERSION,force:args.logoutForce,...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{}};const runner=args.command==="login"?runLogin:args.command==="logout"?runLogout:runWhoami;process.exitCode=await runner(options);return}if(args.command==="task-loop"){const{runTaskLoop}=await import("./commands-GQBRPBFW.js");process.exitCode=await runTaskLoop(
1403
1403
  {action:args.taskLoopAction??"run",project:args.project,profile:args.profile,safe:args.safe,daemon:args.daemon,interval:args.interval,maxCycles:args.maxCycles,forceRunner:args.forceRunner,force:args.stopForce,drain:args.stopDrain,engine:args.engine,version:VERSION,verbose:args.verbose,scheduleNow:args.scheduleNow,scheduleCounts:args.scheduleCounts,scheduleGate:args.scheduleGate,scheduleOp:args.scheduleOp,scheduleConfigOp:args.scheduleConfigOp,scheduleId:args.scheduleId,charterOp:args.charterOp,charterInput:args.
1404
1404
  charterFile,charterOutput:args.charterOut,charterRevision:args.charterRevision,settingsOp:args.settingsOp,skillOp:args.skillOp,skillName:args.skillName,skillAll:args.skillAll,skillDir:args.skillDir,skillConfig:args.skillConfig,output:args.output,query:args.query,revisionFrom:args.revisionFrom,revisionTo:args.revisionTo,planOp:args.planOp,capacityOp:args.capacityOp,runnerOp:args.runnerOp,runnerId:args.runnerTargetId,planEmpty:args.planEmpty,planCheck:args.planCheck,yes:args.yes,ais:args.ais,workspace:args.
1405
- workspace,aiConfigFile:args.aiConfigFile,noAiConfigFile:args.noAiConfigFile});return}if(args.command==="print"){const{runOneShot}=await import("./oneshot-STBDDXPF.js");process.exitCode=await runOneShot({prompt:args.prompt??"",fromStdin:args.promptFromStdin,mode:args.mode??"dev",...args.permissionMode!==void 0?{permissionMode:args.permissionMode}:{},allowedTools:args.allowedTools,disallowedTools:args.disallowedTools,...args.model!==void 0?{model:args.model}:{},...args.profile!==void 0?{profile:args.
1406
- profile}:{},version:VERSION});return}const{startTui}=await import("./app-FPPF7CJH.js");await startTui({mode:args.mode,permissionMode:args.permissionMode,allowedTools:args.allowedTools,disallowedTools:args.disallowedTools,model:args.model,profile:args.profile,noTui:args.noTui||!process.stdout.isTTY,doctor:args.doctor,version:VERSION})}await main();
1405
+ workspace,aiConfigFile:args.aiConfigFile,noAiConfigFile:args.noAiConfigFile});return}if(args.command==="print"){const{runOneShot}=await import("./oneshot-S6T7VJNY.js");process.exitCode=await runOneShot({prompt:args.prompt??"",fromStdin:args.promptFromStdin,mode:args.mode??"dev",...args.permissionMode!==void 0?{permissionMode:args.permissionMode}:{},allowedTools:args.allowedTools,disallowedTools:args.disallowedTools,...args.model!==void 0?{model:args.model}:{},...args.profile!==void 0?{profile:args.
1406
+ profile}:{},version:VERSION});return}const{startTui}=await import("./app-PM4PZSKD.js");await startTui({mode:args.mode,permissionMode:args.permissionMode,allowedTools:args.allowedTools,disallowedTools:args.disallowedTools,model:args.model,profile:args.profile,noTui:args.noTui||!process.stdout.isTTY,doctor:args.doctor,version:VERSION})}await main();
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{checkOutTarget}from"./chunk-HAV5BPIC.js";import"./chunk-QJY5OHCV.js";import"./chunk-SZOEBJGI.js";import"./chunk-Q3B65OFC.js";import"./chunk-GFLGXGWE.js";import{contentTypeFor,inspectLocalFile}from"./chunk-WTYIFLVB.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import"./chunk-RMFLTSOV.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-IWYJSQ5I.js";
3
+ import{checkOutTarget}from"./chunk-DED3IIC5.js";import"./chunk-S5WBKXGY.js";import"./chunk-SZOEBJGI.js";import"./chunk-Q3B65OFC.js";import"./chunk-GFLGXGWE.js";import{contentTypeFor,inspectLocalFile}from"./chunk-WTYIFLVB.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import"./chunk-RMFLTSOV.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-IWYJSQ5I.js";
4
4
  import"./chunk-W4NLJ2YK.js";import"./chunk-RSSPNFSK.js";import{collapsesInUrlPath,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-IXT2X5BZ.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger,readEnvelopeCursor,shellQuote}from"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";
5
5
  import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,NetworkError,UsageError,WaitTimeoutError}from"./chunk-VFPY2A23.js";import"./chunk-PECIBNFD.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-MLRBDF44.js";import"./chunk-QQRJLH6B.js";import"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import"./chunk-NHYMHCAT.js";
6
6
  import"./chunk-VSJBJXZO.js";import crypto2 from"crypto";import fs2 from"fs";import path from"path";var SCOPE_PERSONAL="personal";var SCOPE_PROJECT="project";var UUID=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;var FORBIDDEN_NAME=/[/\\:*?"<>|]/;var NAME_MAX=255;var ROW_COLUMNS=["id","path","name","file_count","subfolder_count","parent_id","updated_at"];var TRASH_COLUMNS=["id","path","name","file_count","subfolder_count","parent_id","deleted_at"];function folderRows(raw){return raw.map(row=>{const id=row["id"];const name=row["name"];const parentId=row["parent_id"];if(typeof id!==
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{activateModeFiles,activatePermissionSettings,buildResidentSet,buildSystemPrompt,createAuditLogger,createTwpToolkit,currentBranch,displayCwd,residentInputs,runTurn}from"./chunk-IMETEGK7.js";import"./chunk-NZ7WI4RZ.js";import"./chunk-N2UVRM3Z.js";import"./chunk-RSSPNFSK.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-IXT2X5BZ.js";import"./chunk-II5RVJQN.js";import"./chunk-VFPY2A23.js";
4
- import{RelayError,createRuntime,pickModel,specFor}from"./chunk-2QRQXKIM.js";import"./chunk-D233KKXW.js";import"./chunk-PMOUHEJQ.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import{checkMinSupportedVersion,enforceMinSupportedVersion,floorNeedsRefresh}from"./chunk-DXXFUNYN.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import{getMode}from"./chunk-2LOT54OO.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";
3
+ import{activateModeFiles,activatePermissionSettings,buildResidentSet,buildSystemPrompt,createAuditLogger,createTwpToolkit,currentBranch,displayCwd,residentInputs,runTurn}from"./chunk-4DUZIRGL.js";import"./chunk-NZ7WI4RZ.js";import"./chunk-N2UVRM3Z.js";import"./chunk-RSSPNFSK.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-IXT2X5BZ.js";import"./chunk-II5RVJQN.js";import"./chunk-VFPY2A23.js";
4
+ import{RelayError,createRuntime,pickModel,specFor}from"./chunk-LLBLGHHZ.js";import"./chunk-D233KKXW.js";import"./chunk-PMOUHEJQ.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import{checkMinSupportedVersion,enforceMinSupportedVersion,floorNeedsRefresh}from"./chunk-DXXFUNYN.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import{getMode}from"./chunk-2LOT54OO.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";
5
5
  import"./chunk-VSJBJXZO.js";async function runOneShot(opts,deps={}){const out=deps.out??(text=>void process.stdout.write(stripTerminalControls(text)));const err=deps.err??(text=>void process.stderr.write(stripTerminalControls(text)));activateModeFiles(err);const permissionLayers=activatePermissionSettings(err,{...opts.allowedTools?{allowedTools:opts.allowedTools}:{},...opts.disallowedTools?{disallowedTools:opts.disallowedTools}:{}});const prompt=opts.fromStdin?await(deps.readStdin??readStdin)():opts.prompt;if(prompt.trim()===
6
6
  ""){err('\u30D7\u30ED\u30F3\u30D7\u30C8\u304C\u7A7A\u3067\u3059\u3002`twp -p "\u8CEA\u554F"`\uFF08`-p -` \u3067\u6A19\u6E96\u5165\u529B\uFF09\n');return 2}const runtime=deps.runtime??createRuntime({...opts.profile!==void 0?{profile:opts.profile}:{},...opts.model!==void 0?{model:opts.model}:{},cliVersion:opts.version});const cachedFloor=runtime.loadCachedFloor();if(await checkMinSupportedVersion({current:opts.version,cachedFloor:cachedFloor.minSupportedVersion,refresh:async()=>(await runtime.loadCatalog()).
7
7
  minSupportedVersion,write:err})){return 1}if(!runtime.loggedIn){err("\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u307E\u305B\u3093\u3002`twp login` \u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n");return 1}let model=runtime.configuredModel??"";let catalog=null;if(model===""){catalog=await runtime.loadCatalog();const picked=pickModel(catalog,void 0);model=picked.model;if(catalog.source!=="server"){err(`\u26A0 \u30E2\u30C7\u30EB\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081 ${model}\
@@ -1,3 +1,3 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{loadDomain}from"./chunk-QJY5OHCV.js";import"./chunk-VSJBJXZO.js";export{loadDomain};
3
+ import{loadDomain}from"./chunk-S5WBKXGY.js";import"./chunk-VSJBJXZO.js";export{loadDomain};
@@ -1,5 +1,5 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{CURATED_PAGING_VOCABULARY,buildPrepareContext,checkOutTarget,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain}from"./chunk-HAV5BPIC.js";import"./chunk-QJY5OHCV.js";import"./chunk-SZOEBJGI.js";import"./chunk-Q3B65OFC.js";import"./chunk-GFLGXGWE.js";import"./chunk-RX5HWI4L.js";import"./chunk-W4NLJ2YK.js";import"./chunk-RSSPNFSK.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";
3
+ import{CURATED_PAGING_VOCABULARY,buildPrepareContext,checkOutTarget,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain}from"./chunk-DED3IIC5.js";import"./chunk-S5WBKXGY.js";import"./chunk-SZOEBJGI.js";import"./chunk-Q3B65OFC.js";import"./chunk-GFLGXGWE.js";import"./chunk-RX5HWI4L.js";import"./chunk-W4NLJ2YK.js";import"./chunk-RSSPNFSK.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";
4
4
  import"./chunk-IXT2X5BZ.js";import"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-PECIBNFD.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-MLRBDF44.js";import"./chunk-QQRJLH6B.js";import"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import"./chunk-NHYMHCAT.js";
5
5
  import"./chunk-VSJBJXZO.js";export{CURATED_PAGING_VOCABULARY,buildPrepareContext,checkOutTarget,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain};
@@ -175,16 +175,17 @@ var PRIVATE_HELP=`\u500B\u4EBA\u30BF\u30B9\u30AF\uFF08\u30D7\u30ED\u30B8\u30A7\u
175
175
  twp task comment list PRIVATE-<\u756A\u53F7> --project ${PRIVATE_PROJECT_REF}`;var PRIVATE_SURFACE2="private";var TASK_MANHOURS_USAGE="twp task manhours <\u30AD\u30FC|ID> [--project <\u30B3\u30FC\u30C9|ID>] [--from <YYYY-MM-DD>] [--to <YYYY-MM-DD>]";function isPrivatePlan2(input){return input.resolved?.["surface"]===PRIVATE_SURFACE2}function taskObject(body){const task=isRecord(body)?body["task"]:void 0;if(!isRecord(task)){throw new ApiResponseError("\u30BF\u30B9\u30AF\u8A73\u7D30\u306E\u5FDC\u7B54\u306B task \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
176
176
  return task}function withPrerequisiteSummary(task){const out=pick(task,GET_COLUMNS);if(!isRecord(task)||!("prerequisites_satisfied"in task))return out;const satisfied=task["prerequisites_satisfied"];out["prerequisites_satisfied"]=satisfied===true?"\u5145\u8DB3":satisfied===false?"\u672A\u5145\u8DB3":"\u5224\u5B9A\u4E0D\u80FD";const prerequisites=task["prerequisites"];out["prerequisites"]=Array.isArray(prerequisites)?prerequisites.length===0?"\u306A\u3057":prerequisites.map(describePrerequisite).
177
177
  join(", "):"\u5224\u5B9A\u4E0D\u80FD";return out}function describePrerequisite(row){const p=isRecord(row)?row:{};if(p["exists"]===false)return`${String(p["task_id"]??"?")}\uFF08\u524A\u9664\u6E08\u307F\u30FB\u5145\u8DB3\u6271\u3044\uFF09`;const name=typeof p["task_key"]==="string"?p["task_key"]:String(p["task_id"]??"?");return`${name}\uFF08${String(p["status_id"]??"?")}\u30FB${p["satisfied"]===true?"\u5145\u8DB3":"\u672A\u5145\u8DB3"}\uFF09`}function subtaskItems(body){const items=isRecord(body)?
178
- body["items"]:void 0;if(!Array.isArray(items)){throw new ApiResponseError("\u30B5\u30D6\u30BF\u30B9\u30AF\u4E00\u89A7\u306E\u5FDC\u7B54\u306B items \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return items}var SUBJECT_MAX_CHARS=500;var ESTIMATED_HOURS_MAX=9999;var PROGRESS_RANGE={min:0,max:100};var DESCRIPTION_MAX_CHARS=1e4;var FIELD_FLAGS=[{name:"--subject",summary:"\u4EF6\u540D",takesValue:true,placeholder:"\
179
- <\u6587\u5B57\u5217>"},{name:"--description",summary:"\u672C\u6587\u3092\u76F4\u63A5\u6307\u5B9A\u3059\u308B\uFF08--description-file \u3068\u306E\u4F75\u7528\u306F\u30A8\u30E9\u30FC\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"},{name:"--description-file",summary:"\u672C\u6587\u3092\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u8AAD\u3080\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09\u3002\u6539\u884C\u30FBMarkdown \u3092\u58CA\u3055\u306A\u3044",takesValue:true,placeholder:"<\u30D1\u30B9|->"},
180
- {name:"--status",summary:"\u30B9\u30C6\u30FC\u30BF\u30B9\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--type",summary:"\u7A2E\u5225\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--assignee",summary:"\u62C5\u5F53\u8005\uFF08me / \u540D\u524D / \u30E1\u30FC\u30EB / ID\uFF09",takesValue:true,placeholder:"<me|\u540D\u524D|ID>"},{name:"--due-date",summary:"\u671F\u65E5\uFF08YYYY-MM-\
181
- DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"},{name:"--start-date",summary:"\u958B\u59CB\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"},{name:"--priority",summary:"\u512A\u5148\u5EA6\uFF081: \u9AD8 / 2: \u4E2D / 3: \u4F4E\uFF09",takesValue:true,placeholder:"<1|2|3>"},{name:"--category",summary:"\u30AB\u30C6\u30B4\u30EA\uFF08\u540D\u524D\u30FBID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--milestone",summary:"\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3\uFF08\u540D\u524D\u30FBID\uFF09",
182
- takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--label",summary:"\u30E9\u30D9\u30EB\uFF08\u540D\u524D\u30FBID\uFF09\u3002\u8907\u6570\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u6307\u5B9A\u3057\u305F\u3082\u306E\u304C\u5168\u4F53\u306B\u306A\u308A\u307E\u3059\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>",repeatable:true},{name:"--estimated-hours",summary:"\u898B\u7A4D\u5DE5\u6570\uFF08\u6642\u9593\u30FB0\u301C9999\u30FB\u5C0F\u6570\u53EF\uFF09",takesValue:true,placeholder:"<\u6570\u5024>"},
183
- {name:"--progress",summary:"\u9032\u6357\u7387\uFF080\u301C100 \u306E\u6574\u6570\u30FB%\uFF09",takesValue:true,placeholder:"<0\u301C100>"},{name:"--custom-field",summary:"\u30AB\u30B9\u30BF\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08<\u30D5\u30A3\u30FC\u30EB\u30C9\u540D>=<\u5024>\uFF09\u3002\u8907\u6570\u6307\u5B9A\u3067\u304D\u307E\u3059",takesValue:true,placeholder:"<\u540D\u524D>=<\u5024>",repeatable:true},{name:"--parent",summary:"\u89AA\u30BF\u30B9\u30AF\uFF08\u30AD\u30FC\u30FBID\uFF09\u3002\u6307\u5B9A\u3059\u308B\u3068\u30B5\u30D6\u30BF\u30B9\u30AF\u306B\u306A\u308A\u307E\u3059",
184
- takesValue:true,placeholder:"<\u30AD\u30FC|ID>"},{name:"--required-platforms",summary:"\u5B9F\u884C\u3067\u304D\u308B\u6A5F\u4F53\u306E\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\uFF08mac / windows / linux\uFF09\u3002\u8907\u6570\u6307\u5B9A\u30FB\u30AB\u30F3\u30DE\u533A\u5207\u308A\u53EF\uFF08\u6307\u5B9A\u3057\u305F\u3082\u306E\u304C\u5168\u4F53\u306B\u306A\u308A\u307E\u3059\uFF09",takesValue:true,placeholder:"<mac|windows|linux>",repeatable:true}];var CLEAR_FLAG={name:"--clear",summary:"\
185
- \u9805\u76EE\u3092\u7A7A\u306B\u3059\u308B\uFF08\u8907\u6570\u6307\u5B9A\u53EF\u30FB\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u304C\u7A7A\u306B\u306A\u308A\u307E\u3059\uFF09",takesValue:true,placeholder:"<\u9805\u76EE>",repeatable:true};var CLEARABLE=[{token:"assignee",flags:["--assignee"],key:"assignee_id"},{token:"due-date",flags:["--due-date"],key:"due_date"},{token:"start-date",flags:["--start-date"],key:"start_date"},{token:"priority",flags:["--priority"],key:"priority"},{token:"cate\
186
- gory",flags:["--category"],key:"category_id"},{token:"milestone",flags:["--milestone"],key:"milestone_id"},{token:"label",flags:["--label"],key:"label_ids",empty:[]},{token:"estimated-hours",flags:["--estimated-hours"],key:"estimated_hours"},{token:"progress",flags:["--progress"],key:"progress"},{token:"description",flags:["--description","--description-file"],key:"description"},{token:"parent",flags:["--parent"],key:"parent_task_id"},{token:"required-platforms",flags:["--required-platforms"],key:"\
187
- required_platforms",empty:[]}];var CLEAR_HELP=`--clear \u306F\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u7A7A\u306B\u3057\u307E\u3059\uFF08\u4F8B: --clear assignee --clear due-date\uFF09\u3002
178
+ body["items"]:void 0;if(!Array.isArray(items)){throw new ApiResponseError("\u30B5\u30D6\u30BF\u30B9\u30AF\u4E00\u89A7\u306E\u5FDC\u7B54\u306B items \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return items}var SUMMARY_FLAG={name:"--summary",summary:"\u5404\u30BF\u30B9\u30AF\u306E\u672C\u6587\uFF08description / description_html\uFF09\u3092\u7701\u3044\u3066\u51FA\u3059\uFF08\u4EF6\u6570\u30FB\u30DA\u30FC\u30B8\u30F3\u30B0\u60C5\u5831\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09",
179
+ takesValue:false};var BODY_FIELDS=["description","description_html"];function withoutBodies(body,input){if(!input.flags.has(SUMMARY_FLAG.name)||!isRecord(body))return body;const out={...body};for(const key of["items","data"]){const rows2=body[key];if(!Array.isArray(rows2))continue;out[key]=rows2.map(row=>{if(!isRecord(row))return row;const copy={...row};for(const field of BODY_FIELDS)delete copy[field];return copy})}return out}var SUBJECT_MAX_CHARS=500;var ESTIMATED_HOURS_MAX=9999;var PROGRESS_RANGE={
180
+ min:0,max:100};var DESCRIPTION_MAX_CHARS=1e4;var FIELD_FLAGS=[{name:"--subject",summary:"\u4EF6\u540D",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"},{name:"--description",summary:"\u672C\u6587\u3092\u76F4\u63A5\u6307\u5B9A\u3059\u308B\uFF08--description-file \u3068\u306E\u4F75\u7528\u306F\u30A8\u30E9\u30FC\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"},{name:"--description-file",summary:"\u672C\u6587\u3092\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u8AAD\u3080\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09\u3002\u6539\u884C\u30FBMarkdown \u3092\u58CA\u3055\u306A\u3044",
181
+ takesValue:true,placeholder:"<\u30D1\u30B9|->"},{name:"--status",summary:"\u30B9\u30C6\u30FC\u30BF\u30B9\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--type",summary:"\u7A2E\u5225\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--assignee",summary:"\u62C5\u5F53\u8005\uFF08me / \u540D\u524D / \u30E1\u30FC\u30EB / ID\uFF09",takesValue:true,placeholder:"<me|\u540D\u524D|ID>"},
182
+ {name:"--due-date",summary:"\u671F\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"},{name:"--start-date",summary:"\u958B\u59CB\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"},{name:"--priority",summary:"\u512A\u5148\u5EA6\uFF081: \u9AD8 / 2: \u4E2D / 3: \u4F4E\uFF09",takesValue:true,placeholder:"<1|2|3>"},{name:"--category",summary:"\u30AB\u30C6\u30B4\u30EA\uFF08\u540D\u524D\u30FBID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--\
183
+ milestone",summary:"\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3\uFF08\u540D\u524D\u30FBID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--label",summary:"\u30E9\u30D9\u30EB\uFF08\u540D\u524D\u30FBID\uFF09\u3002\u8907\u6570\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u6307\u5B9A\u3057\u305F\u3082\u306E\u304C\u5168\u4F53\u306B\u306A\u308A\u307E\u3059\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>",repeatable:true},{name:"--estimated-hours",summary:"\u898B\u7A4D\u5DE5\u6570\uFF08\u6642\u9593\u30FB0\u301C9999\u30FB\u5C0F\u6570\u53EF\uFF09",
184
+ takesValue:true,placeholder:"<\u6570\u5024>"},{name:"--progress",summary:"\u9032\u6357\u7387\uFF080\u301C100 \u306E\u6574\u6570\u30FB%\uFF09",takesValue:true,placeholder:"<0\u301C100>"},{name:"--custom-field",summary:"\u30AB\u30B9\u30BF\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08<\u30D5\u30A3\u30FC\u30EB\u30C9\u540D>=<\u5024>\uFF09\u3002\u8907\u6570\u6307\u5B9A\u3067\u304D\u307E\u3059",takesValue:true,placeholder:"<\u540D\u524D>=<\u5024>",repeatable:true},{name:"--parent",summary:"\u89AA\u30BF\u30B9\u30AF\uFF08\u30AD\u30FC\u30FBID\uFF09\u3002\u6307\u5B9A\u3059\u308B\
185
+ \u3068\u30B5\u30D6\u30BF\u30B9\u30AF\u306B\u306A\u308A\u307E\u3059",takesValue:true,placeholder:"<\u30AD\u30FC|ID>"},{name:"--required-platforms",summary:"\u5B9F\u884C\u3067\u304D\u308B\u6A5F\u4F53\u306E\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\uFF08mac / windows / linux\uFF09\u3002\u8907\u6570\u6307\u5B9A\u30FB\u30AB\u30F3\u30DE\u533A\u5207\u308A\u53EF\uFF08\u6307\u5B9A\u3057\u305F\u3082\u306E\u304C\u5168\u4F53\u306B\u306A\u308A\u307E\u3059\uFF09",takesValue:true,placeholder:"<mac|window\
186
+ s|linux>",repeatable:true}];var CLEAR_FLAG={name:"--clear",summary:"\u9805\u76EE\u3092\u7A7A\u306B\u3059\u308B\uFF08\u8907\u6570\u6307\u5B9A\u53EF\u30FB\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u304C\u7A7A\u306B\u306A\u308A\u307E\u3059\uFF09",takesValue:true,placeholder:"<\u9805\u76EE>",repeatable:true};var CLEARABLE=[{token:"assignee",flags:["--assignee"],key:"assignee_id"},{token:"due-date",flags:["--due-date"],key:"due_date"},{token:"start-date",flags:["--start-date"],key:"start_date"},
187
+ {token:"priority",flags:["--priority"],key:"priority"},{token:"category",flags:["--category"],key:"category_id"},{token:"milestone",flags:["--milestone"],key:"milestone_id"},{token:"label",flags:["--label"],key:"label_ids",empty:[]},{token:"estimated-hours",flags:["--estimated-hours"],key:"estimated_hours"},{token:"progress",flags:["--progress"],key:"progress"},{token:"description",flags:["--description","--description-file"],key:"description"},{token:"parent",flags:["--parent"],key:"parent_task\
188
+ _id"},{token:"required-platforms",flags:["--required-platforms"],key:"required_platforms",empty:[]}];var CLEAR_HELP=`--clear \u306F\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u7A7A\u306B\u3057\u307E\u3059\uFF08\u4F8B: --clear assignee --clear due-date\uFF09\u3002
188
189
  \u6307\u5B9A\u3067\u304D\u308B\u9805\u76EE: ${CLEARABLE.map(entry=>entry.token).join(" / ")}
189
190
  \u4EF6\u540D\u30FB\u30B9\u30C6\u30FC\u30BF\u30B9\u30FB\u7A2E\u5225\u306F\u30B5\u30FC\u30D0\u5074\u3067\u5FC5\u9808\u306E\u305F\u3081\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093\u3002
190
191
  \u540C\u3058\u9805\u76EE\u3092\u5024\u3068 --clear \u306E\u4E21\u65B9\u3067\u6307\u5B9A\u3059\u308B\u3068\u30A8\u30E9\u30FC\u306B\u306A\u308A\u307E\u3059\uFF08\u3069\u3061\u3089\u304C\u52B9\u3044\u305F\u306E\u304B\u5206\u304B\u3089\u306A\u3044\u305F\u3081\uFF09\u3002`;function clearTargets(input){const tokens=repeatedValues(input,CLEAR_FLAG.name).map(token=>token.trim());const out=[];for(const token of tokens){const entry=CLEARABLE.find(candidate=>candidate.token===token);if(entry===void 0){throw new UsageError(
@@ -205,10 +206,12 @@ y")).id;const milestone=nonEmpty(input.flags,"--milestone");if(milestone!==void
205
206
  void 0)out["parent_task_id"]=await resolveParentTaskId(ctx,projectId,parent);return out}async function resolveParentTaskId(ctx,projectId,ref){const classified=classifyTaskRef(ref);if(classified.kind==="id")return classified.value;if(classified.kind==="unknown"){throw new UsageError(`--parent \u304C\u300C\u30BF\u30B9\u30AF\u30AD\u30FC\uFF08\u4F8B ABC-123\uFF09\u300D\u306B\u3082\u300CID\uFF08UUID / ULID\uFF09\u300D\u306B\u3082\u898B\u3048\u307E\u305B\u3093: ${ref}`,"\u89AA\u30BF\u30B9\u30AF\u306F\u30AD\u30FC\u304B ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
206
207
  const resolved=await ctx.resolver.taskByKey(classified.value);if(resolved.projectId!==projectId){throw new UsageError(`--parent ${classified.value} \u306F\u5225\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30BF\u30B9\u30AF\u3067\u3059`,"\u89AA\u30BF\u30B9\u30AF\u306F\u540C\u3058\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30BF\u30B9\u30AF\u3060\u3051\u3092\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u5074\u304C\u540C\u4E00\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5185\u3067\u3057\u304B\u968E\u5C64\u3092\u4F5C\u308C\u307E\u305B\u3093\uFF09\u3002")}
207
208
  const id=resolved.task["id"];if(typeof id!=="string"||id===""){throw new ApiResponseError(`\u30BF\u30B9\u30AF\u30AD\u30FC\u89E3\u6C7A\u306E\u5FDC\u7B54\u306B task.id \u304C\u3042\u308A\u307E\u305B\u3093\uFF08--parent ${classified.value}\uFF09\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return id}async function resolvePrivateParent(input,ctx){const parent=nonEmpty(input.flags,"--parent");if(parent===void 0)return{};return{parent_task_id:await resolvePrivateTaskId(
208
- ctx,parent)}}var taskDomain={name:"task",summary:"\u30BF\u30B9\u30AF\u306E\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u30B5\u30D6\u30BF\u30B9\u30AF\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664",operations:[{name:"list",summary:"\u30BF\u30B9\u30AF\u3092\u4E00\u89A7\u3059\u308B",usage:"twp task list [--project <\u30B3\u30FC\u30C9|ID|__private__>] [--status <\u540D\u524D>] [--type <\u540D\u524D>] [--assignee <me|\u540D\u524D>] [--keyword <\u8A9E>] [--all]",description:`--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\
209
- \u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002
209
+ ctx,parent)}}var taskDomain={name:"task",summary:"\u30BF\u30B9\u30AF\u306E\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u30B5\u30D6\u30BF\u30B9\u30AF\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664",operations:[{name:"list",summary:"\u30BF\u30B9\u30AF\u3092\u4E00\u89A7\u3059\u308B",usage:"twp task list [--project <\u30B3\u30FC\u30C9|ID|__private__>] [--status <\u540D\u524D>] [--type <\u540D\u524D>] [--assignee <me|\u540D\u524D>] [--keyword <\u8A9E>] [--all] [--summary]",description:`--output json \u306F\
210
+ API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002
210
211
  --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08key / subject / status_id / assignee_id / priority / due_date / updated_at\uFF09\u3067\u3059\u3002
211
212
  \u6B32\u3057\u3044\u5217\u3060\u3051\u3092\u6A5F\u68B0\u51E6\u7406\u3057\u305F\u3044\u3068\u304D\u306F --query \u3067\u9078\u3093\u3067\u304F\u3060\u3055\u3044\uFF08--query \u306F\u751F\u30C7\u30FC\u30BF\u306B\u5BFE\u3057\u3066\u8A55\u4FA1\u3055\u308C\u307E\u3059\uFF09\u3002
213
+ --summary \u3092\u4ED8\u3051\u308B\u3068\u5404\u30BF\u30B9\u30AF\u306E\u672C\u6587\uFF08description / description_html\uFF09\u3092\u7701\u304D\u307E\u3059\u3002\u4EF6\u6570\u30FB\u30DA\u30FC\u30B8\u30F3\u30B0\u60C5\u5831\u306F\u5909\u308F\u3089\u305A\u3001
214
+ --all / --keyword / --query \u3068\u4F75\u7528\u3067\u304D\u307E\u3059\uFF08--query \u306F\u672C\u6587\u3092\u7701\u3044\u305F\u5F8C\u306E\u30C7\u30FC\u30BF\u306B\u5F53\u305F\u308A\u307E\u3059\uFF09\u3002
212
215
 
213
216
  --status / --type / --assignee \u306F\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID \u306E\u3044\u305A\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002
214
217
  \u5B8C\u5168\u4E00\u81F4\u3060\u3051\u3067\u89E3\u6C7A\u3057\u3001\u8907\u6570\u306B\u5F53\u305F\u308B\u30FB1\u4EF6\u3082\u5F53\u305F\u3089\u306A\u3044\u5834\u5408\u306F\u5019\u88DC\u3092\u51FA\u3057\u3066\u7D42\u4E86\u30B3\u30FC\u30C9 2 \u3067\u6B62\u307E\u308A\u307E\u3059
@@ -218,21 +221,22 @@ ctx,parent)}}var taskDomain={name:"task",summary:"\u30BF\u30B9\u30AF\u306E\u4E00
218
221
  ${PRIVATE_HELP}
219
222
 
220
223
  `+LIST_PAGING_HELP,flags:[...LIST_FLAGS,PROJECT_FLAG,{name:"--status",summary:"\u30B9\u30C6\u30FC\u30BF\u30B9\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--type",summary:"\u7A2E\u5225\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"},{name:"--assignee",summary:"\u62C5\u5F53\u8005\u3067\u7D5E\u308A\u8FBC\u3080\uFF08me / \u540D\u524D / \u30E1\u30FC\u30EB / ID\uFF09",
221
- takesValue:true,placeholder:"<me|\u540D\u524D|ID>"},{name:"--keyword",summary:"\u4EF6\u540D\u30FB\u672C\u6587\u306E\u90E8\u5206\u4E00\u81F4\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u691C\u7D22\u7D4C\u8DEF\u306B\u5207\u308A\u66FF\u308F\u308A\u307E\u3059\uFF09",takesValue:true,placeholder:"<\u8A9E>"}],paging:listPaging2,async prepare(input,ctx){if(input.args.length>0){throw new UsageError(`list \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"twp task list h\
222
- elp")}if(wantsPrivateSurface(input)){rejectPrivateUnsupportedFlags(input);return withResolved(input,{surface:PRIVATE_SURFACE2,...await resolvePrivateStatusAndType(input,ctx,{useDefaults:false})})}const projectId=await ctx.projectId(input.flags.get("--project"));const resolved={projectId};const status=nonEmpty(input.flags,"--status");if(status!==void 0)resolved["status_id"]=(await ctx.resolver.status(projectId,status)).id;const type=nonEmpty(input.flags,"--type");if(type!==void 0)resolved["type_i\
223
- d"]=(await ctx.resolver.taskType(projectId,type)).id;const assignee=nonEmpty(input.flags,"--assignee");if(assignee!==void 0)resolved["assignee_id"]=(await ctx.resolver.assignee(projectId,assignee)).id;return withResolved(input,resolved)},plan(input){const query={limit:positiveInteger(input.flags,"--limit"),cursor:nonEmpty(input.flags,"--cursor"),keyword:nonEmpty(input.flags,"--keyword"),status_id:input.resolved?.["status_id"],type_id:input.resolved?.["type_id"],assignee_id:input.resolved?.["assi\
224
- gnee_id"]};if(isPrivatePlan2(input))return{method:"GET",path:PRIVATE_TASKS_PATH,query};const projectId=requireResolved(input,"projectId");return{method:"GET",path:`/api/v2/projects/${encodeURIComponent(projectId)}/tasks`,query}},summarize:body=>listPaging2.items(body).map(row=>pick(row,LIST_COLUMNS3)),raw:body=>listPaging2.items(body)},{name:"get",summary:"\u30BF\u30B9\u30AF1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B",usage:"twp task get <\u30AD\u30FC|ID> [--project <\u30B3\u30FC\u30C9|ID|__private__>]",
225
- description:`${TASK_REF_HELP}
224
+ takesValue:true,placeholder:"<me|\u540D\u524D|ID>"},{name:"--keyword",summary:"\u4EF6\u540D\u30FB\u672C\u6587\u306E\u90E8\u5206\u4E00\u81F4\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u691C\u7D22\u7D4C\u8DEF\u306B\u5207\u308A\u66FF\u308F\u308A\u307E\u3059\uFF09",takesValue:true,placeholder:"<\u8A9E>"},SUMMARY_FLAG],paging:listPaging2,async prepare(input,ctx){if(input.args.length>0){throw new UsageError(`list \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"tw\
225
+ p task list help")}if(wantsPrivateSurface(input)){rejectPrivateUnsupportedFlags(input);return withResolved(input,{surface:PRIVATE_SURFACE2,...await resolvePrivateStatusAndType(input,ctx,{useDefaults:false})})}const projectId=await ctx.projectId(input.flags.get("--project"));const resolved={projectId};const status=nonEmpty(input.flags,"--status");if(status!==void 0)resolved["status_id"]=(await ctx.resolver.status(projectId,status)).id;const type=nonEmpty(input.flags,"--type");if(type!==void 0)resolved["\
226
+ type_id"]=(await ctx.resolver.taskType(projectId,type)).id;const assignee=nonEmpty(input.flags,"--assignee");if(assignee!==void 0)resolved["assignee_id"]=(await ctx.resolver.assignee(projectId,assignee)).id;return withResolved(input,resolved)},plan(input){const query={limit:positiveInteger(input.flags,"--limit"),cursor:nonEmpty(input.flags,"--cursor"),keyword:nonEmpty(input.flags,"--keyword"),status_id:input.resolved?.["status_id"],type_id:input.resolved?.["type_id"],assignee_id:input.resolved?.["\
227
+ assignee_id"]};if(isPrivatePlan2(input))return{method:"GET",path:PRIVATE_TASKS_PATH,query};const projectId=requireResolved(input,"projectId");return{method:"GET",path:`/api/v2/projects/${encodeURIComponent(projectId)}/tasks`,query}},narrow:withoutBodies,summarize:body=>listPaging2.items(body).map(row=>pick(row,LIST_COLUMNS3)),raw:body=>listPaging2.items(body)},{name:"get",summary:"\u30BF\u30B9\u30AF1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B",usage:"twp task get <\u30AD\u30FC|ID> [--project <\u30B3\
228
+ \u30FC\u30C9|ID|__private__>]",description:`${TASK_REF_HELP}
226
229
 
227
230
  ${PRIVATE_HELP}`,flags:[TASK_REF_FLAG,PROJECT_FLAG],async prepare(input,ctx){const ref=singleRef(input,{flag:"--task",label:"\u30BF\u30B9\u30AF",usage:"twp task get help"});if(taskSurface(input,ref)===PRIVATE_SURFACE2){return withResolved(input,{surface:PRIVATE_SURFACE2,privateRef:privateTaskRef(ref).value})}const classified=classifyTaskRef(ref);if(classified.kind==="key"){rejectRedundantProject(input,classified.value);return withResolved(input,{mode:"key",key:classified.value})}const{projectId,
228
231
  taskId}=await resolveTaskLocation(input,ctx,classified.value);return withResolved(input,{mode:"id",projectId,taskId})},plan(input){if(isPrivatePlan2(input)){return{method:"GET",path:`${PRIVATE_TASKS_PATH}/${encodeURIComponent(requireResolved(input,"privateRef"))}`}}if(requireResolved(input,"mode")==="key"){return{method:"GET",path:`/api/v2/tasks/resolve-by-key/${encodeURIComponent(requireResolved(input,"key"))}`}}const projectId=encodeURIComponent(requireResolved(input,"projectId"));return{method:"\
229
- GET",path:`/api/v2/projects/${projectId}/tasks/${encodeURIComponent(requireResolved(input,"taskId"))}`}},summarize:body=>withPrerequisiteSummary(taskObject(body)),raw:body=>taskObject(body)},{name:"subtasks",summary:"\u30BF\u30B9\u30AF\u306E\u30B5\u30D6\u30BF\u30B9\u30AF\u3092\u4E00\u89A7\u3059\u308B",usage:"twp task subtasks <\u30AD\u30FC|ID> [--project <\u30B3\u30FC\u30C9|ID|__private__>]",description:`${TASK_REF_HELP}
232
+ GET",path:`/api/v2/projects/${projectId}/tasks/${encodeURIComponent(requireResolved(input,"taskId"))}`}},summarize:body=>withPrerequisiteSummary(taskObject(body)),raw:body=>taskObject(body)},{name:"subtasks",summary:"\u30BF\u30B9\u30AF\u306E\u30B5\u30D6\u30BF\u30B9\u30AF\u3092\u4E00\u89A7\u3059\u308B",usage:"twp task subtasks <\u30AD\u30FC|ID> [--project <\u30B3\u30FC\u30C9|ID|__private__>] [--summary]",description:`${TASK_REF_HELP}
230
233
 
231
234
  ${PRIVATE_HELP}
232
235
 
233
- \u3053\u306E API \u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u6301\u305F\u305A\u3001\u5E38\u306B\u5168\u4EF6\u3092\u8FD4\u3057\u307E\u3059\uFF08--all / --limit \u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002`,flags:[TASK_REF_FLAG,PROJECT_FLAG],async prepare(input,ctx){const ref=singleRef(input,{flag:"--task",label:"\u30BF\u30B9\u30AF",usage:"twp task subtasks help"});if(taskSurface(input,ref)===PRIVATE_SURFACE2){return withResolved(input,{surface:PRIVATE_SURFACE2,taskId:await resolvePrivateTaskId(
234
- ctx,ref)})}return withResolved(input,await resolveTaskLocation(input,ctx,ref))},plan(input){const taskId=encodeURIComponent(requireResolved(input,"taskId"));if(isPrivatePlan2(input)){return{method:"GET",path:`${PRIVATE_TASKS_PATH}/${taskId}/subtasks`}}const projectId=encodeURIComponent(requireResolved(input,"projectId"));return{method:"GET",path:`/api/v2/projects/${projectId}/tasks/${taskId}/subtasks`}},summarize:body=>subtaskItems(body).map(row=>pick(row,LIST_COLUMNS3)),raw:body=>subtaskItems(body)},
235
- {name:"manhours",summary:"\u30BF\u30B9\u30AF\u306E\u5DE5\u6570\uFF08\u671F\u9593\u5185\u306E\u4F5C\u696D\u6642\u9593\uFF09\u3092\u30E6\u30FC\u30B6\u30FC\u3054\u3068\u306B\u8868\u793A\u3059\u308B",usage:TASK_MANHOURS_USAGE,description:`GET /api/v2/projects/{projectId}/tasks/{taskId}/manhours\u3002${TASK_REF_HELP}
236
+ \u3053\u306E API \u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u6301\u305F\u305A\u3001\u5E38\u306B\u5168\u4EF6\u3092\u8FD4\u3057\u307E\u3059\uFF08--all / --limit \u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002
237
+ --summary \u3092\u4ED8\u3051\u308B\u3068\u5404\u30B5\u30D6\u30BF\u30B9\u30AF\u306E\u672C\u6587\uFF08description / description_html\uFF09\u3092\u7701\u304D\u307E\u3059\u3002`,flags:[TASK_REF_FLAG,PROJECT_FLAG,SUMMARY_FLAG],async prepare(input,ctx){const ref=singleRef(input,{flag:"--task",label:"\u30BF\u30B9\u30AF",usage:"twp task subtasks help"});if(taskSurface(input,ref)===PRIVATE_SURFACE2){return withResolved(input,{surface:PRIVATE_SURFACE2,taskId:await resolvePrivateTaskId(ctx,ref)})}return withResolved(
238
+ input,await resolveTaskLocation(input,ctx,ref))},plan(input){const taskId=encodeURIComponent(requireResolved(input,"taskId"));if(isPrivatePlan2(input)){return{method:"GET",path:`${PRIVATE_TASKS_PATH}/${taskId}/subtasks`}}const projectId=encodeURIComponent(requireResolved(input,"projectId"));return{method:"GET",path:`/api/v2/projects/${projectId}/tasks/${taskId}/subtasks`}},narrow:withoutBodies,summarize:body=>subtaskItems(body).map(row=>pick(row,LIST_COLUMNS3)),raw:body=>subtaskItems(body)},{name:"\
239
+ manhours",summary:"\u30BF\u30B9\u30AF\u306E\u5DE5\u6570\uFF08\u671F\u9593\u5185\u306E\u4F5C\u696D\u6642\u9593\uFF09\u3092\u30E6\u30FC\u30B6\u30FC\u3054\u3068\u306B\u8868\u793A\u3059\u308B",usage:TASK_MANHOURS_USAGE,description:`GET /api/v2/projects/{projectId}/tasks/{taskId}/manhours\u3002${TASK_REF_HELP}
236
240
 
237
241
  \u500B\u4EBA\u30BF\u30B9\u30AF\uFF08--project __private__\uFF09\u306B\u306F\u5DE5\u6570\u306E API \u304C\u3042\u308A\u307E\u305B\u3093\u3002
238
242
  `+MANHOUR_DESCRIPTION,flags:[TASK_REF_FLAG,PROJECT_FLAG,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG],async prepare(input,ctx){const ref=singleRef(input,{flag:"--task",label:"\u30BF\u30B9\u30AF",usage:"twp task manhours help"});return withResolved(input,await resolveTaskLocation(input,ctx,ref))},plan(input){const projectId=encodeURIComponent(requireResolved(input,"projectId"));const taskId=encodeURIComponent(requireResolved(input,"taskId"));return{method:"GET",path:`/api/v2/projects/${projectId}/tasks/${taskId}\
@@ -1,3 +1,3 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{fetchLatestVersion,isBehindLatest,runUpdate}from"./chunk-DVBFLDHZ.js";import"./chunk-2QRQXKIM.js";import"./chunk-D233KKXW.js";import"./chunk-PMOUHEJQ.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-CH6QU76P.js";import"./chunk-DXXFUNYN.js";import"./chunk-5WGOHFAS.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{fetchLatestVersion,isBehindLatest,runUpdate};
3
+ import{fetchLatestVersion,isBehindLatest,runUpdate}from"./chunk-6EIW4KTU.js";import"./chunk-LLBLGHHZ.js";import"./chunk-D233KKXW.js";import"./chunk-PMOUHEJQ.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-CH6QU76P.js";import"./chunk-DXXFUNYN.js";import"./chunk-5WGOHFAS.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{fetchLatestVersion,isBehindLatest,runUpdate};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tocca-systems/twp-cli",
3
- "version": "0.85.2",
3
+ "version": "0.86.0",
4
4
  "description": "TWP CLI — Tocca Working Platform の CLI 型統合インターフェース(AIエージェントハーネス)",
5
5
  "type": "module",
6
6
  "bin": {