@tocca-systems/twp-cli 0.84.0 → 0.85.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.public.md +10 -0
- package/README.md +3 -2
- package/dist/{agent-loop-E5XWZV3V.js → agent-loop-7VB3TCC2.js} +1 -1
- package/dist/{ai-dispatch-PABSQGQA.js → ai-dispatch-JFQER55H.js} +1 -1
- package/dist/{api-command-PWAWH4NR.js → api-command-GW7K7XPV.js} +1 -1
- package/dist/{app-57NA4OFE.js → app-PNP2HJOT.js} +1 -1
- package/dist/{chunk-UUN3IO3Z.js → chunk-2PPNJG2O.js} +4 -4
- package/dist/{chunk-Z5NBJC77.js → chunk-JDL2LIIX.js} +3 -3
- package/dist/{chunk-4P6BO4NM.js → chunk-MD2JOA4Q.js} +1 -1
- package/dist/{chunk-VJ72Y4TG.js → chunk-PQ4QWY3J.js} +1 -1
- package/dist/{chunk-HR6DHK6N.js → chunk-ZGLK3T4C.js} +1 -1
- package/dist/cli.js +6 -6
- package/dist/{commands-SYSUH2RP.js → commands-KQY6WFKY.js} +4 -4
- package/dist/{media-TDXLP4T6.js → media-HY23HQUV.js} +1 -1
- package/dist/{plan-submit-DQRUUZTK.js → plan-submit-SPIGZD3G.js} +1 -1
- package/dist/{registry-WXXPS55F.js → registry-CRDOOPA3.js} +1 -1
- package/dist/{run-4KFKWIKY.js → run-ZH2TO55L.js} +1 -1
- package/dist/{task-AGNMPS4F.js → task-6ET2LVR4.js} +29 -20
- package/package.json +1 -1
package/CHANGELOG.public.md
CHANGED
|
@@ -11,6 +11,16 @@
|
|
|
11
11
|
`CHANGELOG.md` に残してあります。顧客向けの履歴は public 公開以降を対象とします。
|
|
12
12
|
-->
|
|
13
13
|
|
|
14
|
+
## 0.85.0
|
|
15
|
+
|
|
16
|
+
`twp task comment create` / `update` で、個人タスクに本人以外をメンションしようとしたときに、何を指定すればよいかを案内するようにしました(個人タスクでメンションできるのは `me` だけです)。
|
|
17
|
+
|
|
18
|
+
`twp task comment create --ask-question` で、選択肢ごとの説明(`--option-description`)と画像(`--option-image`)を付けられるようにしました。コメント一覧の質問列にも選択肢の説明が表示されます。
|
|
19
|
+
|
|
20
|
+
## 0.84.1
|
|
21
|
+
|
|
22
|
+
`twp task-loop` がサーバへ送る記録で、`\` を含む秘密の値が途中までしか伏字にならないことがあった問題を修正しました。
|
|
23
|
+
|
|
14
24
|
## 0.84.0
|
|
15
25
|
|
|
16
26
|
AIチェックの結果表示(`ai-review get`)で、`acknowledged` 列を `referenced_reason` 列に置き換えました。過去に承認された同じ観点の判断が参考として添えられている行が `true` になります(警告そのものは消えません)。
|
package/README.md
CHANGED
|
@@ -136,7 +136,8 @@ twp task comment delete <コメントID> --task <キー|ID> --yes
|
|
|
136
136
|
|
|
137
137
|
# クリックで回答できる質問を投稿する / 回答する
|
|
138
138
|
twp task comment create <キー|ID> --body-file <背景.md> \
|
|
139
|
-
--ask-question --question "<質問文>" --option ok=このまま進める --option back=差し戻す
|
|
139
|
+
--ask-question --question "<質問文>" --option ok=このまま進める --option back=差し戻す \
|
|
140
|
+
--option-description "ok=<影響・推奨理由>" --option-image ok=<添付ID>
|
|
140
141
|
twp task comment create <キー|ID> --body-file <回答.md> --answer-to <コメントID> --select ok
|
|
141
142
|
|
|
142
143
|
# タスクの添付ファイル
|
|
@@ -173,7 +174,7 @@ twp task status delete <ステータス> --yes [--project <コード>]
|
|
|
173
174
|
- **本文は `--body-file` / `--description-file` を主経路にしてください**(`-` で標準入力)。引数に直接書くと改行と Markdown が壊れます
|
|
174
175
|
- 一覧は `--limit <件数>` / `--all` / `--cursor` で辿れます(`task subtasks` と `project members` はページングがありません)
|
|
175
176
|
- **フラグの値は `--flag 値` でも `--flag=値` でも書けます。** 空白を含む値は `--keyword "山田 太郎"` のように引用し、`-` で始まる値は `--keyword=-foo` の形で渡します
|
|
176
|
-
- **質問(`--ask-question`)は質問文(`--question` / `--question-file`)と選択肢(`--option キー=表示文`・1〜5個)が要ります。** 選択肢のキーは10文字以内で、回答(`--select`)に使う識別子です。複数選択は `--multi-select`、自由記述を禁じるなら `--no-free-text`
|
|
177
|
+
- **質問(`--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 も出ます
|
|
177
178
|
- **`twp task comment list` の `question` / `answer` 列で、回答済みかどうかが分かります**(同じページにある回答を質問の行へ突き合わせます。ページをまたぐ場合は `--all` を付けてください)
|
|
178
179
|
- **`twp task attachment upload` はアップロード用URLの発行・ファイルの転送・タスクへの紐づけを1コマンドで行います。** 既にある添付は残したまま追加します。紐づけに失敗したときは添付IDを stderr に出して失敗で終わります(紐づけていない添付はサーバが自動で削除するので、そのまま再実行して構いません)。`--dry-run` はURLの発行リクエストだけを表示します(その前に送る容量検査は注記で知らせます)
|
|
179
180
|
- `twp task attachment download` は `twp backlog attachment download` と同じく **`--out` のパスへ実体を書き出し、既存ファイルは `--force` を付けたときだけ上書きします**。添付ID は `twp task attachment list` の `id` です
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{stepToItem}from"./chunk-
|
|
3
|
+
import{stepToItem}from"./chunk-ZGLK3T4C.js";import"./chunk-2PPNJG2O.js";import{loadLocalConfig}from"./chunk-Y24FMUYU.js";import{parseOperations}from"./chunk-CVX2YWHC.js";import"./chunk-VYDPW2YO.js";import"./chunk-TTST7UDR.js";import{loadAiConfig}from"./chunk-FABDZBDZ.js";import{SKILL_PREFIX_RE,setSkillPrefix}from"./chunk-6CS5L24D.js";import"./chunk-N2UVRM3Z.js";import"./chunk-O52RKZCC.js";import"./chunk-H6XS5AMQ.js";import{PRIVATE_PROJECT_PREFIX,
|
|
4
4
|
PRIVATE_PROJECT_REF,isPrivateProjectRef}from"./chunk-RMFLTSOV.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-PMOUHEJQ.js";import"./chunk-J7QYPKVK.js";import"./chunk-5WGOHFAS.js";
|
|
5
5
|
import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LABEL="\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30EB\u30FC\u30D7\u306E\u30A2\u30A4\u30C6\u30E0";var STATUSES=["pending","processing","completed","failed"];var AI_TYPES=["claude","gemini","codex","copilot"];var EFFORTS=["low","medium","high","xhigh","max"];var PRIORITIES=["P0","P1","P2","P3"];var LIST_COLUMNS=["item_id","status","task_key","label","ai_type","ai_effort","runner_id","created_at"];var GET_COLUMNS=["item_id","status","task_key","label","prompt","ai_type","ai_model","ai_effort","runn\
|
|
6
6
|
er_id","attempt_count","reclaim_count","error_message","created_by_name","created_at","started_at","completed_at"];var HISTORY_COLUMNS=["item_id","status","task_key","skill","ai_type","runner_id","duration_ms","cost_usd","created_at"];var PLAN_RESULTS=["enqueued","empty","json_not_found","ai_failed","error","skipped","gated","locked","abandoned"];var PLAN_HISTORY_COLUMNS=["plan_run_id","result","runner_id","ai_type","duration_ms","cost_usd","step_count","started_at"];var PROJECT_FLAG={name:"--pr\
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{failureHint,isAuthError,isCliFatalText,isRateLimited,isServerAiType,isUntrusted,maxTurnsReached,rateLimitWaitSeconds,tailForScan}from"./chunk-MBPJV745.js";import{expandServerSkills,prepareSkillOverlay}from"./chunk-QGRBZ2C2.js";import{detectAiClis}from"./chunk-5SONMN6K.js";import"./chunk-MYBIPHZ7.js";import"./chunk-A4LFG7MW.js";import"./chunk-VRBI2NPI.js";import{ClaudeStreamRenderer}from"./chunk-
|
|
3
|
+
import{failureHint,isAuthError,isCliFatalText,isRateLimited,isServerAiType,isUntrusted,maxTurnsReached,rateLimitWaitSeconds,tailForScan}from"./chunk-MBPJV745.js";import{expandServerSkills,prepareSkillOverlay}from"./chunk-QGRBZ2C2.js";import{detectAiClis}from"./chunk-5SONMN6K.js";import"./chunk-MYBIPHZ7.js";import"./chunk-A4LFG7MW.js";import"./chunk-VRBI2NPI.js";import{ClaudeStreamRenderer}from"./chunk-2PPNJG2O.js";import{DEFAULT_CLAUDE_LAUNCHER,activeSlotPath,
|
|
4
4
|
detectClaudeAutoSwitch,isClaudeAi,isUsableModelId,modelFitsRoute,resolveSpawnTarget,usesBedrock,wrapWithAutoSwitch}from"./chunk-FABDZBDZ.js";import"./chunk-6CS5L24D.js";import{isForceOnly,killProcessTree,system32}from"./chunk-N2UVRM3Z.js";import"./chunk-O52RKZCC.js";import"./chunk-H6XS5AMQ.js";import"./chunk-RMFLTSOV.js";import"./chunk-VFPY2A23.js";import{findExecutable,isWindowsDriveAbsolute}from"./chunk-PMOUHEJQ.js";import"./chunk-J7QYPKVK.js";
|
|
5
5
|
import"./chunk-5WGOHFAS.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import{spawnSync}from"child_process";import fs2 from"fs";import path2 from"path";import{spawn}from"child_process";import fs from"fs";import path from"path";var DEFAULT_AI_TIMING={abortGraceMs:5e3,abortReapMs:2e3,pollIntervalMs:5e3};function resolveTiming(over){return{abortGraceMs:over?.abortGraceMs??DEFAULT_AI_TIMING.abortGraceMs,abortReapMs:over?.abortReapMs??DEFAULT_AI_TIMING.abortReapMs,pollIntervalMs:over?.pollIntervalMs??DEFAULT_AI_TIMING.pollIntervalMs}}var MAX_RETAINED_BYTES=4*1024*1024;function closeStream(stream){return new Promise(resolve=>{if(stream===null)return resolve();stream.once("error",()=>resolve());stream.end(()=>resolve())})}function buildArgs(req,cfg,env,workspace){
|
|
6
6
|
const warnings=[];const requested=(req.model??"").trim();const usable=requested!==""&&isUsableModelId(requested);if(requested!==""&&!usable){warnings.push(`ai_model '${requested}' \u306F\u4F7F\u3048\u306A\u3044\u5F62\u3067\u3059 \u2192 \u30AB\u30C6\u30B4\u30EA\u65E2\u5B9A\u306E\u30E2\u30C7\u30EB\u3092\u4F7F\u3044\u307E\u3059`)}const fitsRoute=!usable||!isClaudeAi(req.ai)||modelFitsRoute(requested,env);if(usable&&!fitsRoute){warnings.push(`ai_model '${requested}' \u306F\u73FE\u5728\u306E\u5B9F\u884C\u7D4C\u8DEF\u3067\u306F\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\uFF08\u3053\u306E\u6A5F\u4F53\u306F ${usesBedrock(
|
|
@@ -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{NO_REDACT_FLAG,NO_REDACT_NOTICE,exitCodeFor,fetchAllPages,reportError}from"./chunk-
|
|
3
|
+
import{CommandModelMissingError,MAX_REPORTED_VIOLATIONS,loadCommandModelDomain,loadCommandModelRoutes,validateBody,validateQuery}from"./chunk-NZ7WI4RZ.js";import{NO_REDACT_FLAG,NO_REDACT_NOTICE,exitCodeFor,fetchAllPages,reportError}from"./chunk-PQ4QWY3J.js";import"./chunk-JDL2LIIX.js";import{renderOutput}from"./chunk-ZPSPSYDD.js";import"./chunk-Q3B65OFC.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{describeWaitResult,parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";
|
|
4
4
|
import{redactSecretValues,redactSecrets,withDebug}from"./chunk-H6XS5AMQ.js";import{parseOperationArgs,repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import"./chunk-RSSPNFSK.js";import"./chunk-HVZUXLQ4.js";import{ApiError,TwpApiClient,appendQuery}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,envelopePaging,isPageNumberEnvelope,pageRangeNotes,positiveInteger,readEnvelopeCursor,
|
|
5
5
|
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";import{effectiveApiUrl,resolveConfiguredOutput,resolveProfile}from"./chunk-EDF4U5BT.js";
|
|
6
6
|
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=>/^\{[^/{}]+\}$/.
|
|
@@ -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-
|
|
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-ZH2TO55L.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",
|
|
@@ -3,10 +3,10 @@ const require = __twpCreateRequire(import.meta.url);
|
|
|
3
3
|
import{REDACTED,redactSecrets}from"./chunk-H6XS5AMQ.js";var ENV_SECRET_ASSIGNMENT=/\b([A-Z0-9_]{0,128}?(?:TOKEN|SECRET|PASSWORD|PASSWD|API_?KEY|CREDENTIALS?|PRIVATE_KEY)(?:_[A-Z0-9_]{0,128})?=)(?:\\?"(?!\$)[^"\n]+?\\?"|\\?'(?!\$)[^'\n]+?\\?'|(?![$(])[^\s"'`;&)]{8,})/g;var PEM_BEGIN=/-----BEGIN [A-Z ]{0,64}PRIVATE KEY-----/g;var PEM_END=/-----END [A-Z ]{0,64}PRIVATE KEY-----/g;var PEM_UNCLOSED_BODY=/(?:(?:\r?\n|\\(?:r\\)?n)[ \t]*(?:(?:Proc-Type|DEK-Info):[^\n\\]*|(?:[A-Za-z0-9+/]{16,}={0,2}|[A-Za-z0-9+/]*={1,2})[ \t]*(?=[\r\n"\\]|$)))*/y;function redactPemPrivateKeys(text){
|
|
4
4
|
if(!text.includes("PRIVATE KEY-----"))return text;let out="";let last=0;let end=null;let noMoreEnd=false;PEM_BEGIN.lastIndex=0;for(let begin=PEM_BEGIN.exec(text);begin!==null;begin=PEM_BEGIN.exec(text)){const after=begin.index+begin[0].length;if(!noMoreEnd&&(end===null||end.index<after)){PEM_END.lastIndex=after;end=PEM_END.exec(text);noMoreEnd=end===null}let stop;if(end!==null&&!noMoreEnd){stop=end.index+end[0].length}else{PEM_UNCLOSED_BODY.lastIndex=after;PEM_UNCLOSED_BODY.exec(text);stop=Math.
|
|
5
5
|
max(after,PEM_UNCLOSED_BODY.lastIndex)}out+=text.slice(last,begin.index)+REDACTED;last=stop;PEM_BEGIN.lastIndex=stop}return out+text.slice(last)}var KNOWN_TOKEN_PATTERNS=[/\b(?:gh[pousr]_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{20,}|sk-ant-[A-Za-z0-9_-]{20,}|(?:AKIA|ASIA)[0-9A-Z]{16}|npm_[A-Za-z0-9]{30,}|xox[abprs]-[A-Za-z0-9-]{10,})\b/g,/\beyJ[A-Za-z0-9_-]{8,}\.eyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}/g];var URL_USERINFO=/((?<![A-Za-z0-9+.-])[a-z][a-z0-9+.-]{0,31}:\/\/)[^\s/@:"'`]+:[^\s/"'`]+@/gi;
|
|
6
|
-
var
|
|
7
|
-
?[^\\s"'\`\\\\\\u0080-\\uFFFF][^\\n"'\`\\\\\\u0080-\\uFFFF]*`,"gi");var COOKIE_TOKEN
|
|
8
|
-
|
|
9
|
-
out);return out}var FINAL_REPORT_BEGIN="<<<AI_FINAL_REPORT>>>";var FINAL_REPORT_END="<<<END_AI_FINAL_REPORT>>>";var ClaudeStreamRenderer=class{constructor(now=()=>new Date){this.now=now}now;toolNames=new Map;toolCount=0;result={subtype:null,isError:null,numTurns:null,costUsd:null,durationMs:null,tokensIn:null,tokensOut:null,rateLimited:false,resetsAt:null,finalText:""};push(line){const trimmed=line.trim();if(trimmed==="")return[];let event;try{const parsed=JSON.parse(trimmed);if(parsed===null||typeof parsed!=="\
|
|
6
|
+
var VALUE_ESCAPE="\\\\[^\\r\\n\"'`nrt\\u0080-\\uFFFF]";var HEADER_TOKEN=`(?:[^\\s"'\`\\\\\\u0080-\\uFFFF]|${VALUE_ESCAPE})+`;var HEADER_SEP=`(\\\\?["']?[ \\t]*:[ \\t]*(?:\\\\?["'])?)`;var AUTH_SCHEME="(?:basic|bearer|token|digest|negotiate|ntlm|aws4-hmac-sha256)";var HEADER_SECRET=new RegExp(`(?<![\\w-])(x-api-key|x-auth-token|x-vercel-protection-bypass)${HEADER_SEP}(?![$(]|\\*\\*\\*\uFF08)${HEADER_TOKEN}`,"gi");var AUTHORIZATION_HEADER=new RegExp(`(?<![\\w-])((?:proxy-)?authorization)${HEADER_SEP}\
|
|
7
|
+
(?!(?:${AUTH_SCHEME}[ \\t]+)?(?:[$(]|\\*\\*\\*\uFF08))(${AUTH_SCHEME}[ \\t]+)?(?:[^\\s"'\`\\\\\\u0080-\\uFFFF]|${VALUE_ESCAPE})(?:[^\\n"'\`\\\\\\u0080-\\uFFFF]|${VALUE_ESCAPE})*`,"gi");var COOKIE_TOKEN=`(?:[^\\s"'\`\\\\;\\u0080-\\uFFFF]|${VALUE_ESCAPE})+`;var COOKIE_HEADER=new RegExp(`(?<![\\w-])((?:set-)?cookie)${HEADER_SEP}(?![$(]|\\*\\*\\*\uFF08)${COOKIE_TOKEN}(?:[ \\t]*;[ \\t]*${COOKIE_TOKEN})*`,"gi");var AWS_CREDENTIALS_FILE=new RegExp(`\\b(aws_(?:secret_access_key|session_token|security_tok\
|
|
8
|
+
en)[ \\t]*[=:][ \\t]*(?:\\\\?["'])?)(?![$(])(?:[^\\s"'\`\\\\]|${VALUE_ESCAPE})+`,"gi");function redactLoopOutput(text){if(text==="")return text;let out=redactSecrets(text).replace(URL_USERINFO,`$1${REDACTED}@`).replace(AUTHORIZATION_HEADER,(_m,name,sep,scheme)=>`${name}${sep}${scheme??""}${REDACTED}`).replace(HEADER_SECRET,`$1$2${REDACTED}`).replace(COOKIE_HEADER,`$1$2${REDACTED}`).replace(AWS_CREDENTIALS_FILE,`$1${REDACTED}`).replace(ENV_SECRET_ASSIGNMENT,(match,name)=>{const value=match.slice(
|
|
9
|
+
name.length);const quote=/^\\?["']/.exec(value)?.[0]??"";return`${name}${quote}${REDACTED}${quote}`});for(const pattern of KNOWN_TOKEN_PATTERNS)out=out.replace(pattern,REDACTED);out=redactPemPrivateKeys(out);return out}var FINAL_REPORT_BEGIN="<<<AI_FINAL_REPORT>>>";var FINAL_REPORT_END="<<<END_AI_FINAL_REPORT>>>";var ClaudeStreamRenderer=class{constructor(now=()=>new Date){this.now=now}now;toolNames=new Map;toolCount=0;result={subtype:null,isError:null,numTurns:null,costUsd:null,durationMs:null,tokensIn:null,tokensOut:null,rateLimited:false,resetsAt:null,finalText:""};push(line){const trimmed=line.trim();if(trimmed==="")return[];let event;try{const parsed=JSON.parse(trimmed);if(parsed===null||typeof parsed!=="\
|
|
10
10
|
object"||Array.isArray(parsed)){return[line]}event=parsed}catch{return[line]}switch(event["type"]){case"rate_limit_event":return this.onRateLimit(event);case"assistant":return this.onAssistant(event);case"user":return this.onUser(event);case"result":return this.onResult(event);default:return event["type"]==="system"?[]:[line]}}sawRateLimit(){return this.result.rateLimited}lastRateLimitNote="";onRateLimit(event){const info=event["rate_limit_info"];if(info===null||typeof info!=="object")return[];const rec=info;
|
|
11
11
|
const status=typeof rec["status"]==="string"?rec["status"]:"";const resets=typeof rec["resetsAt"]==="number"?rec["resetsAt"]:null;if(status==="")return[];const at=isSaneEpochSec(resets)?` resets=${new Date(resets*1e3).toISOString()}`:"";if(status.startsWith("allowed")){if(status==="allowed")return[];const seen=`${status}|${resets??""}`;if(seen===this.lastRateLimitNote)return[];this.lastRateLimitNote=seen;return[this.line(`\u2139\uFE0F \u4E0A\u9650\u306B\u63A5\u8FD1\uFF08status=${status}${at}\uFF09\u2014 \u5B9F\
|
|
12
12
|
\u884C\u306F\u7D99\u7D9A\u3057\u307E\u3059`)]}if(resets!==null)this.result.resetsAt=resets;this.result.rateLimited=true;return[this.line(`\u26A0\uFE0F \u30EC\u30FC\u30C8\u30EA\u30DF\u30C3\u30C8\u901A\u77E5: status=${status}${at}`)]}onAssistant(event){const out=[];for(const block of contentBlocks(event)){if(block.type==="tool_use"){const name=typeof block.name==="string"?block.name:"tool";if(typeof block.id==="string")this.toolNames.set(block.id,name);this.toolCount+=1;out.push(this.line(`>> ${name}${toolDetail(
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
var LOADERS={agent:async()=>(await import("./agent-WTDLGRNM.js")).agentDomain,"agent-loop":async()=>(await import("./agent-loop-
|
|
3
|
+
var LOADERS={agent:async()=>(await import("./agent-WTDLGRNM.js")).agentDomain,"agent-loop":async()=>(await import("./agent-loop-7VB3TCC2.js")).agentLoopDomain,"ai-review-reason":async()=>(await import("./sales-ai-review-KJICZNUR.js")).aiReviewReasonDomain,analysis:async()=>(await import("./analysis-H52FJIFO.js")).analysisDomain,announcement:async()=>(await import("./announcement-RTTVGW4K.js")).announcementDomain,attendance:async()=>(await import("./attendance-correct-OLWRCDP4.js")).attendanceDomainWithRecords,
|
|
4
4
|
backlog:async()=>(await import("./backlog-HDDV2NTC.js")).backlogDomain,budget:async()=>(await import("./budget-T246BG2P.js")).budgetDomain,"business-hours":async()=>(await import("./business-hours-I4X6YQS3.js")).businessHoursDomain,"business-place":async()=>(await import("./sales-master-BQML5IJT.js")).businessPlaceDomain,company:async()=>(await import("./company-2CRWKBJL.js")).companyDomain,contract:async()=>(await import("./contract-5AU5B4NN.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-3I3NV556.js")).depositDomain,estimate:async()=>(await import("./estimate-Z3ANB4WK.js")).estimateDomain,evaluation:async()=>(await import("./evaluation-VP7OFTBS.js")).evaluationDomain,expense:async()=>(await import("./expense-O2O4623X.js")).expenseDomain,"fiscal-year":async()=>(await import("./fiscal-year-ZTCSF46U.js")).fiscalYearDomain,holiday:async()=>(await import("./holiday-WDI4CSNL.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-YVUMRHY2.js")).invoiceDomain,"job-title":async()=>(await import("./job-title-NCFHCA4M.js")).jobTitleDomain,knowledge:async()=>(await import("./domain-knowledge-SZZCV6IO.js")).knowledgeDomain,leave:async()=>(await import("./leave-NVOZB7VQ.js")).leaveDomain,license:async()=>(await import("./license-XSWDXSJE.js")).
|
|
7
|
-
licenseDomain,media:async()=>(await import("./media-
|
|
7
|
+
licenseDomain,media:async()=>(await import("./media-HY23HQUV.js")).mediaDomain,meeting:async()=>(await import("./knowledge-TCADQEPU.js")).meetingDomain,note:async()=>(await import("./knowledge-TCADQEPU.js")).noteDomain,notification:async()=>(await import("./notification-WP7CH734.js")).notificationDomain,onedrive:async()=>(await import("./onedrive-KWVOUGG6.js")).onedriveDomain,outlook:async()=>(await import("./outlook-GYRF5TXA.js")).outlookDomain,payee:async()=>(await import("./sales-master-BQML5IJT.js")).
|
|
8
8
|
payeeDomain,position:async()=>(await import("./position-H3NSDVKQ.js")).positionDomain,project:async()=>(await import("./project-UDHRIZZN.js")).projectDomain,prospect:async()=>(await import("./prospect-QY3NYP2A.js")).prospectDomain,purchase:async()=>(await import("./purchase-7XCGCQ2G.js")).purchaseDomain,qualification:async()=>(await import("./skill-4TSTVUXY.js")).qualificationDomain,receivable:async()=>(await import("./receivable-GW5WCVJ7.js")).receivableDomain,redmine:async()=>(await import("./redmine-644RTL42.js")).
|
|
9
9
|
redmineDomain,report:async()=>(await import("./report-P74LSHTE.js")).reportDomain,"rounding-setting":async()=>(await import("./sales-numbering-OW4O6WH6.js")).roundingSettingDomain,"seal-impression":async()=>(await import("./sales-master-BQML5IJT.js")).sealImpressionDomain,search:async()=>(await import("./search-BLMSVPIL.js")).searchDomain,segment:async()=>(await import("./segment-G4IPD43F.js")).segmentDomain,shift:async()=>(await import("./attendance-lists-TBUZCRKK.js")).shiftDomain,skill:async()=>(await import("./skill-4TSTVUXY.js")).
|
|
10
|
-
skillDomain,"staffing-board":async()=>(await import("./staffing-board-MQREMSVJ.js")).staffingBoardDomain,storage:async()=>(await import("./storage-AQDCEBDJ.js")).storageDomain,"supplier-payment":async()=>(await import("./supplier-payment-KRLYWEKY.js")).supplierPaymentDomain,support:async()=>(await import("./support-ITRXFVMK.js")).supportDomain,task:async()=>(await import("./task-
|
|
10
|
+
skillDomain,"staffing-board":async()=>(await import("./staffing-board-MQREMSVJ.js")).staffingBoardDomain,storage:async()=>(await import("./storage-AQDCEBDJ.js")).storageDomain,"supplier-payment":async()=>(await import("./supplier-payment-KRLYWEKY.js")).supplierPaymentDomain,support:async()=>(await import("./support-ITRXFVMK.js")).supportDomain,task:async()=>(await import("./task-6ET2LVR4.js")).taskDomain,teams:async()=>(await import("./teams-MZR3256V.js")).teamsDomain,user:async()=>(await import("./user-3IHEIFAT.js")).
|
|
11
11
|
userDomain,"user-contract-type":async()=>(await import("./user-contract-type-HDA5TITL.js")).userContractTypeDomain,wiki:async()=>(await import("./knowledge-TCADQEPU.js")).wikiDomain,workchange:async()=>(await import("./attendance-lists-TBUZCRKK.js")).workchangeDomain,"worker-agent":async()=>(await import("./worker-agent-52PXQO4N.js")).workerAgentDomain,workflow:async()=>(await import("./workflow-2FODUREO.js")).workflowDomain};async function loadDomain(name){return LOADERS[name]()}export{loadDomain};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{placeholderTaskKey,stepToItem}from"./chunk-
|
|
3
|
+
import{placeholderTaskKey,stepToItem}from"./chunk-ZGLK3T4C.js";import{redactLoopOutput}from"./chunk-2PPNJG2O.js";import{localDate}from"./chunk-Y24FMUYU.js";import{normalizeSkillName,skillOfItem}from"./chunk-FABDZBDZ.js";import{DEFAULT_SKILL_PREFIX,SKILL_PREFIX_RE,setSkillPrefix,skillCommand,skillPrefix}from"./chunk-6CS5L24D.js";import{describeError,pick,pickString}from"./chunk-O52RKZCC.js";import{isTaskKey}from"./chunk-II5RVJQN.js";import{createHash,randomBytes}from"crypto";import fs2 from"fs";import path2 from"path";var INFLIGHT_STALE_HOURS=3;function staleFloorHours(aiTimeoutSec){return Math.ceil(aiTimeoutSec*2/3600)}function inflightStaleHours(aiTimeoutSec,baseHours=INFLIGHT_STALE_HOURS){const base=Number.isFinite(baseHours)&&baseHours>0?baseHours:INFLIGHT_STALE_HOURS;return Math.max(base,staleFloorHours(aiTimeoutSec))}function ageMinutesOf(item,now){for(const raw of[item.started_at,item.updated_at,item.dequeued_at,item.created_at]){if(!raw)continue;const ts=Date.parse(raw);if(Number.isNaN(ts))continue;return Math.
|
|
4
4
|
floor((now.getTime()-ts)/6e4)}return null}function inflightEntries(items,now=new Date,staleHours=INFLIGHT_STALE_HOURS){const staleMinutes=staleHours*60;const byKey=new Map;for(const item of items){const key=(item.task_key??"").trim();if(!key)continue;const ageMinutes=ageMinutesOf(item,now);if(ageMinutes!==null&&ageMinutes>staleMinutes)continue;const entry={key,runner:item.runner_id??"-",ageMinutes,label:(item.label??"").slice(0,60)};const prev=byKey.get(key);if(!prev||(entry.ageMinutes??-1)>(prev.
|
|
5
5
|
ageMinutes??-1))byKey.set(key,entry)}return[...byKey.values()].sort((a,b)=>a.key.localeCompare(b.key))}function formatInflightEntry(entry){const age=entry.ageMinutes===null?"\u4E0D\u660E":`${entry.ageMinutes}\u5206`;return`${entry.key} runner=${entry.runner} \u7D4C\u904E=${age}`}import fs from"fs";import path from"path";async function createItem(api,body){const res=await api.create(redactItemBody(body));if(!res.ok)return{itemId:null,detail:describeError(res)};for(const p of["item_id","id","item.item_id","item.id","data.item_id","data.id"]){const v=pickString(res.json,p);if(v)return{itemId:v,detail:""}}return{itemId:null,detail:`item_id \u3092\u8AAD\u3081\u307E\u305B\u3093: ${res.raw.slice(0,200)}`}}function redactItemBody(body){const out={...body};for(const key of["prompt","label"]){if(typeof out[key]==="string")
|
|
6
6
|
out[key]=redactLoopOutput(out[key])}return out}function reorderSucceeded(targetId,json){if(pick(json,"result")===true)return true;const raw=Array.isArray(json)?json:pick(json,"items");if(!Array.isArray(raw)||raw.length===0)return false;const items=raw;const orderOf=it=>typeof it.sort_order==="number"?it.sort_order:Number.POSITIVE_INFINITY;const hit=items.find(it=>(it.item_id??"")===targetId);if(!hit)return false;return orderOf(hit)===Math.min(...items.map(orderOf))}function queueContainsKey(items,key){
|
|
@@ -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-
|
|
3
|
+
import{loadDomain}from"./chunk-JDL2LIIX.js";import{renderDocument,renderOutput}from"./chunk-ZPSPSYDD.js";import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-H6XS5AMQ.js";import{parseOperationArgs}from"./chunk-RX5HWI4L.js";import{Resolver,requireDefaultProject}from"./chunk-RSSPNFSK.js";import{ResolveError}from"./chunk-HVZUXLQ4.js";import{ApiError,
|
|
4
4
|
MultipartBody,TwpApiClient,appendQuery}from"./chunk-JA5A6UJ2.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";import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";
|
|
5
5
|
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";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import fs from"fs";import path from"path";var NO_REDACT_FLAG={name:"--no-redact",summary:"\u5FDC\u7B54\u306E\u4F0F\u5B57\u5316\u3092\u89E3\u9664\u3057\u3066\u751F\u306E\u5024\u3092\u51FA\u3059\uFF08\u9375\u306E\u53D7\u3051\u53D6\u308A\u7B49\uFF09",takesValue:false};var NO_REDACT_NOTICE="\u6CE8\u8A18: --no-redact \u306E\u305F\u3081\u51FA\u529B\u3092\u4F0F\u5B57\u5316\u3057\u307E\u305B\u3093\uFF08\u7AEF\u672B\u3068\u30ED\u30B0\u306B\u5E73\u6587\u3067\u6B8B\u308A\u307E\u3059\uFF09\u3002";function withCommonFlags(flags){return flags.some(flag=>flag.
|
|
6
6
|
name===NO_REDACT_FLAG.name)?flags:[...flags,NO_REDACT_FLAG]}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?"":`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{FINAL_REPORT_BEGIN,FINAL_REPORT_END,redactLoopOutput}from"./chunk-
|
|
3
|
+
import{FINAL_REPORT_BEGIN,FINAL_REPORT_END,redactLoopOutput}from"./chunk-2PPNJG2O.js";import{skillCommand,skillPrefix}from"./chunk-6CS5L24D.js";import{normalizeRequiredPlatforms}from"./chunk-O52RKZCC.js";import{extractLeadingTaskKey}from"./chunk-II5RVJQN.js";var LEDGER_TASK_KEY_MAX=50;var CONTROL_CHAR_RE=/[\u0000-\u001f\u007f]/;var FLAG_TOKEN_RE=/(?:^|\s)-/;function loosen(source){let t=source.replace(/^[ \t]*\/\/[^\n]*$/gm,"");t=t.replace(/\/\*[\s\S]*?\*\//g,"");t=t.replace(/,(\s*[}\]])/g,"$1");return t===source?null:t}function tryParsePlan(source){for(const candidate of[source,loosen(source)]){if(candidate===null)continue;try{const obj=JSON.parse(candidate);if(obj!==null&&typeof obj==="object"&&Array.isArray(obj.steps)){return obj}}catch{}}return null}
|
|
4
4
|
function fencedBlocks(text,tag){const re=new RegExp("```"+tag+"\\s*\\n([\\s\\S]*?)\\n```","g");const out=[];for(const m of text.matchAll(re)){if(m[1]!==void 0)out.push(m[1])}return out}function extractGeminiEnvelope(text){const anchor=/\{[^{}]*"session_id"[^{}]*"response"\s*:\s*"/g;for(const m of text.matchAll(anchor)){const start=m.index;if(start===void 0)continue;let depth=0;let inStr=false;let escape=false;for(let i=start;i<text.length;i++){const c=text[i];if(escape){escape=false;continue}if(c===
|
|
5
5
|
"\\"){escape=true;continue}if(c==='"'){inStr=!inStr;continue}if(inStr)continue;if(c==="{")depth++;else if(c==="}"){depth--;if(depth===0){try{const obj=JSON.parse(text.slice(start,i+1));if(obj!==null&&typeof obj==="object"&&typeof obj.response==="string"){return obj.response}}catch{}break}}}}return null}function matchingBrace(text,start){let depth=0;let inStr=false;let escape=false;for(let i=start;i<text.length;i++){const c=text[i];if(escape){escape=false;continue}if(inStr){if(c==="\\")escape=true;else if(c===
|
|
6
6
|
'"')inStr=false;continue}if(c==='"')inStr=true;else if(c==="{")depth++;else if(c==="}"){depth--;if(depth===0)return i}}return-1}var MAX_STEPS_ANCHORS=20;var MAX_OPEN_CANDIDATES=8;function lastStepsObject(text){const anchors=[...text.matchAll(/"steps"\s*:/g)].map(m=>m.index).filter(i=>i!==void 0);for(const at of anchors.reverse().slice(0,MAX_STEPS_ANCHORS)){let tried=0;for(let open=text.lastIndexOf("{",at);open>=0&&tried<MAX_OPEN_CANDIDATES;open=text.lastIndexOf("{",open-1)){tried++;const close=matchingBrace(
|
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.
|
|
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.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
|
|
@@ -1392,15 +1392,15 @@ TUI \u5185:
|
|
|
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
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-Q4KASOTO.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-
|
|
1395
|
+
const[{loadDomain},{loadUserConfig}]=await Promise.all([import("./registry-CRDOOPA3.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-
|
|
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-
|
|
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-ZH2TO55L.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-GW7K7XPV.js");process.exitCode=await runApiCommand({argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.
|
|
1401
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-6E4IPTUE.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-7GDO4YEQ.js");
|
|
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-
|
|
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-KQY6WFKY.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
1405
|
workspace,aiConfigFile:args.aiConfigFile,noAiConfigFile:args.noAiConfigFile});return}if(args.command==="print"){const{runOneShot}=await import("./oneshot-GTOK2ZPQ.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-
|
|
1406
|
+
profile}:{},version:VERSION});return}const{startTui}=await import("./app-PNP2HJOT.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,9 +1,9 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
3
|
import{ScheduleApi,collectDue,gateStatus,nowInZone,parseCounts,promptSection}from"./chunk-IIK77LSC.js";import{NO_PLAN_SESSION,RECENT_ADVANCE_WINDOW_HOURS,ReleaseOutcomeLog,buildDynamicBlocks,buildRecentCandidateIndex,createItem,enqueueBlockerRecovery,enqueueDevVerifyForMerged,enqueueReleasePartialMergeRerun,enqueueReleasePhase5Recovery,fileSkillNames,findRecentCandidate,formatInflightEntry,formatPlanResultLine,formatRecentAdvance,formatResumeHold,inflightEntries,inflightStaleHours,openPlanSession,
|
|
4
|
-
parseOutcomeCode,parseReleaseResult,parseTaskStatusSnapshot,pendingTaskKeys,resolveRecentAdvance,resolveResumeHold,shouldSuppressForResume,shouldSuppressForStatus,staleFloorHours,unavailableChecks,windowStartMicros}from"./chunk-
|
|
4
|
+
parseOutcomeCode,parseReleaseResult,parseTaskStatusSnapshot,pendingTaskKeys,resolveRecentAdvance,resolveResumeHold,shouldSuppressForResume,shouldSuppressForStatus,staleFloorHours,unavailableChecks,windowStartMicros}from"./chunk-MD2JOA4Q.js";import{EngineNotConfiguredError,NoopEngine,UnknownEngineError,aiUnavailableLabel,assertKnownEngine,failureHint,isAiUnavailable,needsHumanToRestoreAi}from"./chunk-MBPJV745.js";import{ServerSkillCatalog,formatSkillOrigins}from"./chunk-QGRBZ2C2.js";
|
|
5
5
|
import{claudeConfigDir,resolveDetectDeps}from"./chunk-5SONMN6K.js";import{InstanceLock,buildLockOwner,defaultIsLoopProcess,writeLockOwner}from"./chunk-3WHC4FSG.js";import{LoopSettingsApplier,renderStepBudget}from"./chunk-4FCPLEZN.js";import"./chunk-MYBIPHZ7.js";import"./chunk-A4LFG7MW.js";import"./chunk-VRBI2NPI.js";import{duplicateTaskKeyDropReason,excludedKeyInArgs,extractPlanJson,parseOpsCount,parsePlanExcludeKeys,placeholderTaskKey,releaseDeployDropReason,
|
|
6
|
-
stepToItem,zeroTargetDropReasons}from"./chunk-
|
|
6
|
+
stepToItem,zeroTargetDropReasons}from"./chunk-ZGLK3T4C.js";import{redactLoopOutput}from"./chunk-2PPNJG2O.js";import{buildLoopConfig,evaluateOwnership,exportStateDirEnv,localConfigPath,loopStateDir}from"./chunk-Y24FMUYU.js";import{describeOperations,evaluatePlanGate,planGateStatePath,recordPlanned}from"./chunk-CVX2YWHC.js";import{CapacityReporter}from"./chunk-VYDPW2YO.js";import{formatHookIds,formatHookWiring,runHook,runPrefetch,runPreflight}from"./chunk-TTST7UDR.js";
|
|
7
7
|
import{exclusiveInflightEntries,formatExclusiveEntry,normalizeSkillName,spawnSyncResolved}from"./chunk-FABDZBDZ.js";import{setSkillPrefix,skillCommand,skillFromPrompt,stripSkillCommand}from"./chunk-6CS5L24D.js";import{killProcessTree}from"./chunk-N2UVRM3Z.js";import{AgentLoopApi,describeError,filterByStatus,isPermanent,pick,pickString}from"./chunk-O52RKZCC.js";import"./chunk-H6XS5AMQ.js";import{PRIVATE_PROJECT_REF,isPrivateProjectId,isPrivateProjectRef,privateProjectId,
|
|
8
8
|
projectFileKey}from"./chunk-RMFLTSOV.js";import{ULID_RE,loopProjectIdPolicy,resolveProjectRef}from"./chunk-HVZUXLQ4.js";import"./chunk-II5RVJQN.js";import"./chunk-VFPY2A23.js";import{joinFor}from"./chunk-PMOUHEJQ.js";import{AuthSession}from"./chunk-XNLIEUAW.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{compareVersionCores,parseVersionCore}from"./chunk-DXXFUNYN.js";import"./chunk-5WGOHFAS.js";import{effectiveApiUrl,resolveProfile}from"./chunk-EDF4U5BT.js";
|
|
9
9
|
import{twpHomeDir}from"./chunk-RZVI6PMW.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs9 from"fs";import path7 from"path";import fs from"fs";import path from"path";var LoopLogger=class{constructor(runnerId,logFile,out=process.stdout,now=()=>new Date){this.runnerId=runnerId;this.out=out;this.now=now;if(logFile){fs.mkdirSync(path.dirname(logFile),{recursive:true});this.stream=fs.createWriteStream(logFile,{flags:"a"})}}runnerId;out;now;stream=null;log(message){const d=this.now();const ts=`${d.getFullYear()}-${pad(d.getMonth()+1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;const line=`[${ts}] [${this.runnerId}] ${stripTerminalControls(
|
|
@@ -295,10 +295,10 @@ const startedAtMs=now();let warned="";let done=false;const check=()=>{if(done)re
|
|
|
295
295
|
decision.key)return;warned=decision.key;handlers.onWarn(decision.reason);return}done=true;const recorded=writeRestartAttempt(opts.stateDir,opts.projectKey,{from:decision.from,to:decision.to,at:new Date(now()).toISOString()},opts.store);if(!recorded){handlers.onWarn(`\u518D\u8D77\u52D5\u8A18\u9332\u3092\u66F8\u3051\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${restartAttemptPath(opts.stateDir,opts.projectKey)}\uFF09\u3002\u540C\u3058\u7248\u30C9\u30EA\u30D5\u30C8\u304C\u89E3\u6D88\u3057\u306A\u3044\u5834\u5408\u3001\u518D\u8D77\u52D5\u3092\u7E70\u308A\u8FD4\u3059\u9632\u6CE2\u5824\u304C\u52B9\u304D\u307E\u305B\u3093`)}
|
|
296
296
|
handlers.onRestart({from:decision.from,to:decision.to})};const timer=setInterval(check,opts.intervalMs??DRIFT_POLL_MS);timer.unref?.();return{stop:()=>{done=true;clearInterval(timer)},check}}import fs8 from"fs";import path6 from"path";var POLL_MS=1e3;var MAX_STOP_BYTES=4096;var MAX_AT_LENGTH=64;function markerPath(lockDir2,kind){return path6.join(lockDir2,kind)}function requestMarker(lockDir2,kind,pid,deps={}){const target=markerPath(lockDir2,kind);const write=deps.writeFileSync??((p,d)=>fs8.writeFileSync(p,d,{flag:"wx",mode:384}));const now=deps.now??(()=>new Date);clearMarker(lockDir2,kind,deps);try{write(target,`${JSON.stringify({pid,at:now().toISOString()})}
|
|
297
297
|
`);return{ok:true}}catch(err){const e=err;return{ok:false,reason:e.code??"UNKNOWN"}}}function readMarker(lockDir2,kind,deps={}){const target=markerPath(lockDir2,kind);const read=deps.readFileSync??(p=>fs8.readFileSync(p,"utf8"));const size=deps.statSize??(p=>fs8.statSync(p).size);let raw;try{if(size(target)>MAX_STOP_BYTES)return null;raw=read(target)}catch{return null}if(raw.length>MAX_STOP_BYTES)return null;try{const parsed=JSON.parse(raw);if(typeof parsed!=="object"||parsed===null)return null;const pid=parsed.pid;const at=parsed.at;if(typeof pid!=="number"||!Number.isInteger(pid)||
|
|
298
|
-
pid<=0)return null;return{pid,at:sanitizeAt(at)}}catch{return null}}function sanitizeAt(at){if(typeof at!=="string")return"";return at.replace(/[\u0000-\u001f\u007f]/g," ").slice(0,MAX_AT_LENGTH)}function clearMarker(lockDir2,kind,deps={}){const rm=deps.rmSync??(p=>fs8.rmSync(p,{recursive:true,force:true}));try{rm(markerPath(lockDir2,kind))}catch{}}function watchMarker(lockDir2,kind,selfPid,onStop,deps={}){let fired=false;const timer=setInterval(()=>{if(fired)return;const req=readMarker(lockDir2,kind,deps);if(req===null||req.pid!==selfPid)return;fired=true;onStop(req)},deps.intervalMs??POLL_MS);timer.unref?.();return()=>{fired=true;clearInterval(timer)}}function safe(s){return stripTerminalControls(s)}function compactTimestamp(at=new Date){const p2=n=>String(n).padStart(2,"0");return`${at.getFullYear()}${p2(at.getMonth()+1)}${p2(at.getDate())}-${p2(at.getHours())}${p2(at.getMinutes())}${p2(at.getSeconds())}`}async function buildEngine(config,log){if(config.engine==="noop")return new NoopEngine;const{DispatchEngine}=await import("./ai-dispatch-
|
|
298
|
+
pid<=0)return null;return{pid,at:sanitizeAt(at)}}catch{return null}}function sanitizeAt(at){if(typeof at!=="string")return"";return at.replace(/[\u0000-\u001f\u007f]/g," ").slice(0,MAX_AT_LENGTH)}function clearMarker(lockDir2,kind,deps={}){const rm=deps.rmSync??(p=>fs8.rmSync(p,{recursive:true,force:true}));try{rm(markerPath(lockDir2,kind))}catch{}}function watchMarker(lockDir2,kind,selfPid,onStop,deps={}){let fired=false;const timer=setInterval(()=>{if(fired)return;const req=readMarker(lockDir2,kind,deps);if(req===null||req.pid!==selfPid)return;fired=true;onStop(req)},deps.intervalMs??POLL_MS);timer.unref?.();return()=>{fired=true;clearInterval(timer)}}function safe(s){return stripTerminalControls(s)}function compactTimestamp(at=new Date){const p2=n=>String(n).padStart(2,"0");return`${at.getFullYear()}${p2(at.getMonth()+1)}${p2(at.getDate())}-${p2(at.getHours())}${p2(at.getMinutes())}${p2(at.getSeconds())}`}async function buildEngine(config,log){if(config.engine==="noop")return new NoopEngine;const{DispatchEngine}=await import("./ai-dispatch-JFQER55H.js");const{DEFAULT_PREFLIGHT_HOSTS}=await import("./ai-dispatch-JFQER55H.js");const extraHosts=config.
|
|
299
299
|
operations.preflightHosts;return new DispatchEngine(config.ai,log,{workspace:config.workspace,charterFile:config.charterFile??void 0,charterEnabled:config.charterEnabled,...config.charterPrefix===null?{}:{charterPrefix:config.charterPrefix},...config.charterSuffix===null?{}:{charterSuffix:config.charterSuffix},serverPrompts:()=>config.serverPrompts??{},compileCommand:config.compileCommand??void 0,skillOverlayDir:path7.join(config.stateDir,"skill-overlay",projectFileKey(config.projectId)),launcherBin:config.
|
|
300
300
|
claudeLauncher.bin,...extraHosts.length>0?{preflightHosts:[...DEFAULT_PREFLIGHT_HOSTS,...extraHosts]}:{}})}function lockDir(config){return path7.join(config.stateDir,`task-loop-${projectFileKey(config.projectId)}.lock.d`)}function runnerIdPersisted(stateDir,env=process.env){if((env.RUNNER_ID?.trim()??"")!=="")return true;const file=env.RUNNER_ID_FILE&&env.RUNNER_ID_FILE.trim()!==""?env.RUNNER_ID_FILE:path7.join(stateDir,"runner-id");return fs9.existsSync(file)}async function runTaskLoop(opts){if(opts.
|
|
301
|
-
action==="stop")return await stopLoop(opts);if(opts.action==="plan"){if(opts.planOp!=="submit"){process.stderr.write("plan \u306B\u306F submit \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\n");return 2}const{runPlanSubmit}=await import("./plan-submit-
|
|
301
|
+
action==="stop")return await stopLoop(opts);if(opts.action==="plan"){if(opts.planOp!=="submit"){process.stderr.write("plan \u306B\u306F submit \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\n");return 2}const{runPlanSubmit}=await import("./plan-submit-SPIGZD3G.js");return runPlanSubmit({file:opts.charterInput,empty:opts.planEmpty===true,check:opts.planCheck===true},{env:process.env,readStdin:()=>fs9.readFileSync(0,"utf8"),stdout:s=>process.stdout.write(s),stderr:s=>process.stderr.write(s)})}
|
|
302
302
|
const profile=resolveProfile(opts.profile);let creds;try{creds=new AuthSession(profile.name,profile.apiUrl).loadOrThrow()}catch(err){process.stderr.write(`${err.message}
|
|
303
303
|
`);return 1}const apiUrl=effectiveApiUrl(profile,creds.api_url);const session=new AuthSession(profile.name,apiUrl);const projectRef=opts.project??process.env.TWP_PROJECT??"";if(projectRef===""){process.stderr.write("--project <\u30AD\u30FC|UUID> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08TWP_PROJECT \u3067\u3082\u53EF\uFF09\n");return 2}const projectApi=new ProjectApi(apiUrl,session);let project;try{project=await projectApi.resolve(projectRef)}catch(err){process.stderr.write(`${err.
|
|
304
304
|
message}
|
|
@@ -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-
|
|
3
|
+
import{checkOutTarget}from"./chunk-PQ4QWY3J.js";import"./chunk-JDL2LIIX.js";import"./chunk-ZPSPSYDD.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-H6XS5AMQ.js";import"./chunk-RMFLTSOV.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";
|
|
4
4
|
import{readBody}from"./chunk-6LSQCOCJ.js";import"./chunk-RSSPNFSK.js";import{collapsesInUrlPath,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.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";import{acknowledgement,
|
|
5
5
|
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,4 +1,4 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{NO_PLAN_SESSION,PLAN_DIR_ENV,PLAN_TOKEN_ENV,checkPlan,fileSkillNames,formatCheck,openPlanSession,runPlanSubmit}from"./chunk-
|
|
3
|
+
import{NO_PLAN_SESSION,PLAN_DIR_ENV,PLAN_TOKEN_ENV,checkPlan,fileSkillNames,formatCheck,openPlanSession,runPlanSubmit}from"./chunk-MD2JOA4Q.js";import"./chunk-ZGLK3T4C.js";import"./chunk-2PPNJG2O.js";import"./chunk-Y24FMUYU.js";import"./chunk-CVX2YWHC.js";import"./chunk-VYDPW2YO.js";import"./chunk-TTST7UDR.js";import"./chunk-FABDZBDZ.js";import"./chunk-6CS5L24D.js";import"./chunk-N2UVRM3Z.js";import"./chunk-O52RKZCC.js";import"./chunk-H6XS5AMQ.js";
|
|
4
4
|
import"./chunk-RMFLTSOV.js";import"./chunk-II5RVJQN.js";import"./chunk-PMOUHEJQ.js";import"./chunk-J7QYPKVK.js";import"./chunk-5WGOHFAS.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{NO_PLAN_SESSION,PLAN_DIR_ENV,PLAN_TOKEN_ENV,checkPlan,fileSkillNames,formatCheck,openPlanSession,runPlanSubmit};
|
|
@@ -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-
|
|
3
|
+
import{loadDomain}from"./chunk-JDL2LIIX.js";import"./chunk-VSJBJXZO.js";export{loadDomain};
|
|
@@ -1,4 +1,4 @@
|
|
|
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-
|
|
3
|
+
import{CURATED_PAGING_VOCABULARY,buildPrepareContext,checkOutTarget,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain}from"./chunk-PQ4QWY3J.js";import"./chunk-JDL2LIIX.js";import"./chunk-ZPSPSYDD.js";import"./chunk-Q3B65OFC.js";import"./chunk-GFLGXGWE.js";import"./chunk-H6XS5AMQ.js";import"./chunk-RX5HWI4L.js";import"./chunk-RSSPNFSK.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";
|
|
4
4
|
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";import"./chunk-VSJBJXZO.js";export{CURATED_PAGING_VOCABULARY,buildPrepareContext,checkOutTarget,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain};
|
|
@@ -14,10 +14,11 @@ return{projectId,taskId:id}}async function resolvePrivateStatusAndType(input,ctx
|
|
|
14
14
|
useDefaults){const ref=await ctx.resolver.privateDefaultTaskType();out["type_id"]=ref.id;out["type_defaulted"]=ref.name}return out}async function resolvePrivateExtras(input,ctx){const out={};const category=nonEmpty(input.flags,"--category");if(category!==void 0){out["category_id"]=(await ctx.resolver.privateTaskMaster("categories",category,"--category","\u30AB\u30C6\u30B4\u30EA")).id}const labels=repeatedValues(input,"--label");if(labels.length>0){const ids=[];for(const ref of labels){const label=await ctx.
|
|
15
15
|
resolver.privateTaskMaster("labels",ref,"--label","\u30E9\u30D9\u30EB");if(!ids.includes(label.id))ids.push(label.id)}out["label_ids"]=JSON.stringify(ids)}return out}var LIST_COLUMNS=["id","created_at","created_by_name","comment_type","content"];var QUESTION_COLUMN="question";var ANSWER_COLUMN="answer";function summarizeComments(items){const answersByQuestion=new Map;for(const row of items){const answer=isRecord(row)?row["answer_to"]:void 0;if(!isRecord(answer))continue;const target=answer["comment_id"];if(typeof target!=="string"||target==="")continue;answersByQuestion.set(target,selectedKeyText(answer["selected_key"]))}return items.map(row=>{const source=isRecord(
|
|
16
16
|
row)?row:{};const id=typeof source["id"]==="string"?source["id"]:"";const answer=isRecord(source["answer_to"])?selectedKeyText(source["answer_to"]["selected_key"]):answersByQuestion.get(id)??null;const base=pick(row,LIST_COLUMNS);return{id:base["id"],created_at:base["created_at"],created_by_name:base["created_by_name"],comment_type:base["comment_type"],[QUESTION_COLUMN]:questionText(source["question"]),[ANSWER_COLUMN]:answer,content:base["content"]}})}function questionText(question){if(!isRecord(
|
|
17
|
-
question))return null;const options=question["options"];if(!Array.isArray(options))return null;const parts=options.map(option=>{if(!isRecord(option))return null;const key=typeof option["key"]==="string"?option["key"]:null;if(key===null)return null;const label=typeof option["label"]==="string"?option["label"]:"";
|
|
18
|
-
"")return selected;if(Array.isArray(selected)){const keys=selected.filter(key=>typeof key==="string"&&key!=="");if(keys.length>0)return keys.join(",")}return"(\u81EA\u7531\u8A18\u8FF0)"}
|
|
19
|
-
{label:"\u30B3\u30E1\u30F3\u30C8\u4E00\u89A7"});function commentObject(body){const comment=isRecord(body)?body["comment"]:void 0;if(!isRecord(
|
|
20
|
-
|
|
17
|
+
question))return null;const options=question["options"];if(!Array.isArray(options))return null;const parts=options.map(option=>{if(!isRecord(option))return null;const key=typeof option["key"]==="string"?option["key"]:null;if(key===null)return null;const label=typeof option["label"]==="string"?option["label"]:"";const head=label===""?key:`${key}=${label}`;const description=typeof option["description"]==="string"?option["description"].replace(/\s+/g," ").trim():"";const image=typeof option["image_\
|
|
18
|
+
attachment_id"]==="string"?option["image_attachment_id"]:"";return`${head}${description===""?"":` \u2014 ${description}`}${image===""?"":` [\u753B\u50CF:${image}]`}`}).filter(part=>part!==null);return parts.length===0?null:parts.join(" / ")}function selectedKeyText(selected){if(typeof selected==="string"&&selected!=="")return selected;if(Array.isArray(selected)){const keys=selected.filter(key=>typeof key==="string"&&key!=="");if(keys.length>0)return keys.join(",")}return"(\u81EA\u7531\u8A18\u8FF0)"}
|
|
19
|
+
var WRITE_COLUMNS=["id","task_id","created_at","updated_at","created_by_name","content"];var CONTENT_MAX_CHARS=1e4;var QUESTION_MAX_CHARS=2e3;var CONTENT_HTML_MAX_CHARS=1e5;var OPTION_KEY_MAX_CHARS=10;var OPTION_LABEL_MAX_CHARS=200;var OPTION_DESCRIPTION_MAX_CHARS=1e3;var OPTION_MIN=1;var OPTION_MAX=5;var SELECTED_KEY_MAX_CHARS=10;var listPaging=envelopePaging({label:"\u30B3\u30E1\u30F3\u30C8\u4E00\u89A7"});function commentObject(body){const comment=isRecord(body)?body["comment"]:void 0;if(!isRecord(
|
|
20
|
+
comment)){throw new ApiResponseError("\u30B3\u30E1\u30F3\u30C8\u306E\u5FDC\u7B54\u306B comment \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return comment}var BODY_FLAGS=[{name:"--body-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\u4E3B\u7D4C\u8DEF",takesValue:true,placeholder:"\
|
|
21
|
+
<\u30D1\u30B9|->"},{name:"--body",summary:"\u672C\u6587\u3092\u76F4\u63A5\u6307\u5B9A\u3059\u308B\uFF08\u4E00\u884C\u5411\u3051\u3002--body-file \u3068\u306E\u4F75\u7528\u306F\u30A8\u30E9\u30FC\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"}];var BODY_HELP=`\u672C\u6587\u306F --body-file \u3092\u4E3B\u7D4C\u8DEF\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u30B7\u30A7\u30EB\u306E\u5F15\u6570\u306B\u8F09\u305B\u308B\u3068\u6539\u884C\u30FBMarkdown \u306E\u898B\u51FA\u3057\uFF08#\uFF09\u30FB
|
|
21
22
|
\u5F15\u7528\u7B26\u3067\u58CA\u308C\u307E\u3059\uFF08gh pr create --body \u3068\u540C\u3058\u554F\u984C\uFF09\u3002--body-file - \u3067\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u3081\u307E\u3059\u3002
|
|
22
23
|
|
|
23
24
|
\u672C\u6587\u306F\u52A0\u5DE5\u3057\u307E\u305B\u3093\uFF08\u6539\u884C\u30FB\u672B\u5C3E\u306E\u6539\u884C\u30FBCRLF \u306F\u305D\u306E\u307E\u307E\u9001\u308A\u307E\u3059\uFF09\u3002\u843D\u3068\u3059\u306E\u306F\u5148\u982D\u306E UTF-8 BOM \u3060\u3051\u3067\u3059\u3002
|
|
@@ -26,32 +27,40 @@ takesValue:true,placeholder:"<\u30D1\u30B9|->"},{name:"--body",summary:"\u672C\u
|
|
|
26
27
|
if(!isSafePathSegment(commentId)){throw new UsageError(`\u30B3\u30E1\u30F3\u30C8 ID \u306E\u5F62\u5F0F\u3067\u306F\u3042\u308A\u307E\u305B\u3093: ${commentId}`,"\u30B3\u30E1\u30F3\u30C8 ID \u306F twp task comment list <\u30AD\u30FC> \u306E id \u5217\u304B\u3089\u53D6\u308C\u307E\u3059\u3002")}const task=input.flags.get("--task");if(task===void 0||task.trim()===""){throw new UsageError("\u5BFE\u8C61\u306E\u30BF\u30B9\u30AF\u3092 --task <\u30AD\u30FC|ID> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
27
28
|
usage)}const located=await locateCommentTask({...input,args:[]},ctx,task.trim());return withResolved(input,{...located,commentId:commentId.trim()})}var QUESTION_FLAGS=[{name:"--ask-question",summary:"\u30AF\u30EA\u30C3\u30AF\u3067\u56DE\u7B54\u3067\u304D\u308B\u8CEA\u554F\u3068\u3057\u3066\u6295\u7A3F\u3059\u308B\uFF08--question \u3068 --option \u304C\u8981\u308B\uFF09",takesValue:false},{name:"--question",summary:`\u8CEA\u554F\u6587\u3092\u76F4\u63A5\u6307\u5B9A\u3059\u308B\uFF08\u4E0A\u9650 ${QUESTION_MAX_CHARS}\
|
|
28
29
|
\u6587\u5B57\uFF09`,takesValue:true,placeholder:"<\u6587\u5B57\u5217>"},{name:"--question-file",summary:"\u8CEA\u554F\u6587\u3092\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u8AAD\u3080\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9|->"},{name:"--option",summary:`\u9078\u629E\u80A2 \u30AD\u30FC=\u8868\u793A\u6587\uFF08${OPTION_MIN}\u301C${OPTION_MAX}\u56DE\u3002\u30AD\u30FC\u306F${OPTION_KEY_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"\
|
|
29
|
-
<\u30AD\u30FC=\u8868\u793A\u6587>",repeatable:true},{name:"--
|
|
30
|
-
takesValue:true,placeholder:"<\
|
|
30
|
+
<\u30AD\u30FC=\u8868\u793A\u6587>",repeatable:true},{name:"--option-description",summary:`\u9078\u629E\u80A2\u306E\u8AAC\u660E \u30AD\u30FC=\u8AAC\u660E\uFF08--option \u306E\u30AD\u30FC\u306B\u4ED8\u3051\u308B\u30FB${OPTION_DESCRIPTION_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\u30FB\u8907\u6570\u56DE\u53EF\uFF09`,takesValue:true,placeholder:"<\u30AD\u30FC=\u8AAC\u660E>",repeatable:true},{name:"--option-image",summary:"\u9078\u629E\u80A2\u306E\u753B\u50CF \u30AD\u30FC=\u6DFB\u4ED8ID\uFF08twp task attachment upload \u3067\u5F97\u305F ID\u30FB\u8907\u6570\u56DE\u53EF\uFF09",
|
|
31
|
+
takesValue:true,placeholder:"<\u30AD\u30FC=\u6DFB\u4ED8ID>",repeatable:true},{name:"--multi-select",summary:"\u8907\u6570\u306E\u9078\u629E\u80A2\u3092\u9078\u3079\u308B\u8CEA\u554F\u306B\u3059\u308B",takesValue:false},{name:"--no-free-text",summary:"\u81EA\u7531\u8A18\u8FF0\u3067\u306E\u56DE\u7B54\u3092\u8A31\u3055\u306A\u3044\uFF08\u65E2\u5B9A\u306F\u8A31\u3059\uFF09",takesValue:false}];var ANSWER_FLAGS=[{name:"--answer-to",summary:"\u56DE\u7B54\u3059\u308B\u8CEA\u554F\u30B3\u30E1\u30F3\u30C8\u306E ID\uFF08list \u306E id \u5217\uFF09",
|
|
32
|
+
takesValue:true,placeholder:"<\u30B3\u30E1\u30F3\u30C8ID>"},{name:"--select",summary:`\u9078\u3093\u3060\u9078\u629E\u80A2\u306E\u30AD\u30FC\uFF08\u8907\u6570\u9078\u629E\u306E\u8CEA\u554F\u306A\u3089\u8907\u6570\u56DE\u30FB${SELECTED_KEY_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u30AD\u30FC>",repeatable:true}];var MENTION_FLAG={name:"--mention",summary:"\u30E1\u30F3\u30B7\u30E7\u30F3\u3059\u308B\u76F8\u624B\uFF08me / \u540D\u524D / \u30E1\u30FC\u30EB / ID\u30FB\u8907\u6570\u56DE\u53EF\u3002\u500B\u4EBA\u30BF\u30B9\u30AF\u3067\u306F me \u306E\u307F\uFF09",
|
|
31
33
|
takesValue:true,placeholder:"<me|\u540D\u524D|ID>",repeatable:true};var ATTACHMENT_FLAG={name:"--attachment",summary:"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u6E08\u307F\u306E\u6DFB\u4ED8 ID \u3092\u7D10\u3065\u3051\u308B\uFF08\u8907\u6570\u56DE\u53EF\u3002\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u306F 7-E \u306E\u7BC4\u56F2\uFF09",takesValue:true,placeholder:"<\u6DFB\u4ED8ID>",repeatable:true};var CONTENT_HTML_FLAG={name:"--content-html-file",summary:`\u30EA\u30C3\u30C1\u30C6\u30AD\u30B9\u30C8\u672C\u6587\u3092\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u8AAD\u3080\uFF08- \u3067\u6A19\u6E96\u5165\u529B\u30FB\u4E0A\u9650 ${CONTENT_HTML_MAX_CHARS}\
|
|
32
34
|
\u6587\u5B57\uFF09`,takesValue:true,placeholder:"<\u30D1\u30B9|->"};var QUESTION_HELP=`\u8CEA\u554F\u3068\u3057\u3066\u6295\u7A3F\u3059\u308B\u306B\u306F --ask-question \uFF0B \u8CEA\u554F\u6587\uFF08--question / --question-file\uFF09\uFF0B \u9078\u629E\u80A2\uFF08--option\uFF09\u304C\u8981\u308A\u307E\u3059\u3002
|
|
33
35
|
\u9078\u629E\u80A2\u306F \u30AD\u30FC=\u8868\u793A\u6587 \u306E\u5F62\u3067 ${OPTION_MIN}\u301C${OPTION_MAX} \u500B\u3002\u30AD\u30FC\u306F${OPTION_KEY_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\u3067\u3001\u56DE\u7B54\u306E\u8B58\u5225\u5B50\u306B\u306A\u308A\u307E\u3059
|
|
34
36
|
\uFF08\u4F8B: --option ok=\u627F\u8A8D\u3059\u308B --option back=\u5DEE\u3057\u623B\u3059\uFF09\u3002
|
|
37
|
+
\u9078\u629E\u80A2\u3054\u3068\u306E\u8AAC\u660E\uFF08\u5F71\u97FF\u30FB\u63A8\u5968\u7406\u7531\uFF09\u306F --option-description \u30AD\u30FC=\u8AAC\u660E\uFF08${OPTION_DESCRIPTION_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\uFF09\u3067\u3001
|
|
38
|
+
\u753B\u50CF\u306F --option-image \u30AD\u30FC=\u6DFB\u4ED8ID \u3067\u4ED8\u3051\u307E\u3059\u3002\u3069\u3061\u3089\u3082\u6700\u521D\u306E = \u3067\u533A\u5207\u308B\u306E\u3067\u3001\u8AAC\u660E\u306B = \u3084\u6539\u884C\u3092\u542B\u3081\u3066\u69CB\u3044\u307E\u305B\u3093\u3002
|
|
35
39
|
\u672C\u6587\uFF08--body-file\uFF09\u306F\u8CEA\u554F\u306E\u80CC\u666F\u306B\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002\u8CEA\u554F\u6587\u305D\u306E\u3082\u306E\u306F --question \u5074\u306B\u7F6E\u304D\u307E\u3059\u3002
|
|
36
40
|
|
|
37
41
|
\u56DE\u7B54\u3059\u308B\u3068\u304D\u306F --answer-to <\u8CEA\u554F\u306E\u30B3\u30E1\u30F3\u30C8ID> \u3068 --select <\u30AD\u30FC> \u3092\u4F7F\u3044\u307E\u3059\uFF08\u81EA\u7531\u8A18\u8FF0\u3060\u3051\u306E\u56DE\u7B54\u306A\u3089 --select \u306F\u4E0D\u8981\uFF09\u3002
|
|
38
42
|
--ask-question \u3068 --answer-to \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF08\u8CEA\u554F\u3068\u56DE\u7B54\u306F\u5225\u306E\u30B3\u30E1\u30F3\u30C8\u3067\u3059\uFF09\u3002`;function tooLong(value,max){return charCount(value)>max}function parseOption(raw){const at=raw.indexOf("=");if(at<=0){throw new UsageError(`--option \u306F \u30AD\u30FC=\u8868\u793A\u6587 \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,"\u4F8B: --option ok=\u627F\u8A8D\u3059\u308B\u3002\u30AD\u30FC\u306F\u56DE\u7B54\u306B\u4F7F\u3046\u8B58\u5225\u5B50\
|
|
39
43
|
\u3067\u3001\u8868\u793A\u6587\u304C\u753B\u9762\u306E\u30DC\u30BF\u30F3\u306B\u306A\u308A\u307E\u3059\u3002")}const key=raw.slice(0,at).trim();const label=raw.slice(at+1).trim();if(key==="")throw new UsageError(`--option \u306E\u30AD\u30FC\u304C\u7A7A\u3067\u3059: ${raw}`);if(label==="")throw new UsageError(`--option \u306E\u8868\u793A\u6587\u304C\u7A7A\u3067\u3059: ${raw}`);if(tooLong(key,OPTION_KEY_MAX_CHARS)){throw new UsageError(`--option \u306E\u30AD\u30FC\u306F${OPTION_KEY_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\u3067\
|
|
40
44
|
\u3059\uFF08${charCount(key)}\u6587\u5B57\uFF09: ${key}`,"\u30B5\u30FC\u30D0\u304C 422 \u3067\u62D2\u3080\u5024\u306A\u306E\u3067\u3001\u9001\u3089\u305A\u306B\u6B62\u3081\u3066\u3044\u307E\u3059\u3002\u77ED\u3044\u8B58\u5225\u5B50\u306B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ok / back / hold\uFF09\u3002")}if(tooLong(label,OPTION_LABEL_MAX_CHARS)){throw new UsageError(`--option \u306E\u8868\u793A\u6587\u306F${OPTION_LABEL_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\u3067\u3059\uFF08${charCount(
|
|
41
|
-
label)}\u6587\u5B57\uFF09`,"\u9577\u3044\u8AAC\u660E\u306F\u672C\u6587\uFF08--body-file\uFF09\u3078\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002")}return{key,label}}
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
45
|
+
label)}\u6587\u5B57\uFF09`,"\u9577\u3044\u8AAC\u660E\u306F\u672C\u6587\uFF08--body-file\uFF09\u3078\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002")}return{key,label}}function parseOptionExtras(input,flag,keys,maxChars){const extras=new Map;for(const raw of repeatedValues(input,flag)){const at=raw.indexOf("=");if(at<=0){throw new UsageError(`${flag} \u306F \u30AD\u30FC=\u5024 \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,`\u4F8B: ${flag} ok=${flag==="--option-image"?
|
|
46
|
+
"<\u6DFB\u4ED8ID>":"\u3053\u306E\u307E\u307E\u9032\u3081\u308B\u3068\u25EF\u25EF\u304C\u4ECA\u65E5\u51FA\u305B\u307E\u3059\uFF08\u63A8\u5968\uFF09"}`)}const key=raw.slice(0,at).trim();const value=raw.slice(at+1).trim();if(!keys.has(key)){throw new UsageError(`${flag} \u306E\u30AD\u30FC\u306B\u5BFE\u5FDC\u3059\u308B --option \u304C\u3042\u308A\u307E\u305B\u3093: ${key}`,`--option \u3067\u6307\u5B9A\u3057\u305F\u30AD\u30FC\uFF08${[...keys].join(" / ")}\uFF09\u306E\u3069\u308C\u304B\u3092\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002`)}
|
|
47
|
+
if(value==="")throw new UsageError(`${flag} \u306E\u5024\u304C\u7A7A\u3067\u3059: ${raw}`);if(extras.has(key))throw new UsageError(`${flag} \u306E\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059: ${key}`);if(maxChars!==void 0&&tooLong(value,maxChars)){throw new UsageError(`${flag} \u306F${maxChars}\u6587\u5B57\u4EE5\u5185\u3067\u3059\uFF08${charCount(value)}\u6587\u5B57\uFF09: ${key}`,"\u30B5\u30FC\u30D0\u304C 422 \u3067\u62D2\u3080\u5024\u306A\u306E\u3067\u3001\u9001\u3089\u305A\u306B\u6B62\u3081\u3066\u3044\u307E\u3059\u3002\u9577\u3044\u80CC\u666F\u306F\u672C\u6587\uFF08--body-file\uFF09\u3078\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002")}
|
|
48
|
+
extras.set(key,value)}return extras}async function buildQuestion(input,usage){const asking=input.flags.has("--ask-question");const options=repeatedValues(input,"--option");const multiSelect=input.flags.has("--multi-select");const noFreeText=input.flags.has("--no-free-text");const hasQuestionText=input.flags.has("--question")||input.flags.has("--question-file");const hasOptionExtras=repeatedValues(input,"--option-description").length>0||repeatedValues(input,"--option-image").length>0;if(!asking){
|
|
49
|
+
const stray=[...options.length>0?["--option"]:[],...hasOptionExtras?["--option-description / --option-image"]:[],...hasQuestionText?["--question / --question-file"]:[],...multiSelect?["--multi-select"]:[],...noFreeText?["--no-free-text"]:[]];if(stray.length>0){throw new UsageError(`${stray.join(" / ")} \u306F --ask-question \u3068\u4E00\u7DD2\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,"\u8CEA\u554F\u3068\u3057\u3066\u6295\u7A3F\u3059\u308B\u306A\u3089 --ask-question \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002\n\u3075\u3064\u3046\u306E\u30B3\u30E1\u30F3\u30C8\u3068\u3057\u3066\u6295\u7A3F\u3059\u308B\u306A\u3089\u3001\u3053\u308C\u3089\u306E\u30D5\u30E9\u30B0\u3092\u5916\u3057\u3066\u304F\u3060\u3055\u3044\n\uFF08\u4ED8\u3051\u305F\u307E\u307E\u6295\u7A3F\u3059\u308B\u3068\u5E73\u6587\u306E\u30B3\u30E1\u30F3\u30C8\u306B\u306A\u308A\u3001\u753B\u9762\u306B\u56DE\u7B54\u30DC\
|
|
50
|
+
\u30BF\u30F3\u304C\u51FA\u307E\u305B\u3093\uFF09\u3002")}return void 0}const description=await readBody(input,{flag:"--question",fileFlag:"--question-file",label:"\u8CEA\u554F\u6587",maxChars:QUESTION_MAX_CHARS,usage});if(description===void 0){throw new UsageError("\u8CEA\u554F\u6587\u3092 --question <\u6587\u5B57\u5217> \u304B --question-file <\u30D1\u30B9> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage)}if(options.length<OPTION_MIN){throw new UsageError(`--ask-question \u306B\u306F\u9078\u629E\u80A2\u304C${OPTION_MIN}\
|
|
51
|
+
\u500B\u4EE5\u4E0A\u8981\u308A\u307E\u3059`,"\u4F8B: --option ok=\u627F\u8A8D\u3059\u308B --option back=\u5DEE\u3057\u623B\u3059")}if(options.length>OPTION_MAX){throw new UsageError(`\u9078\u629E\u80A2\u306F${OPTION_MAX}\u500B\u307E\u3067\u3067\u3059\uFF08${options.length}\u500B\uFF09`,"\u30B5\u30FC\u30D0\u304C 422 \u3067\u62D2\u3080\u5024\u306A\u306E\u3067\u3001\u9001\u3089\u305A\u306B\u6B62\u3081\u3066\u3044\u307E\u3059\u3002\u9078\u629E\u80A2\u3092\u7D5E\u3063\u3066\u304F\u3060\u3055\u3044\u3002")}
|
|
52
|
+
const parsed=options.map(parseOption);const seen=new Set;for(const option of parsed){if(seen.has(option.key))throw new UsageError(`--option \u306E\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059: ${option.key}`);seen.add(option.key)}const descriptions=parseOptionExtras(input,"--option-description",seen,OPTION_DESCRIPTION_MAX_CHARS);const images=parseOptionExtras(input,"--option-image",seen,void 0);return{description,options:parsed.map(option=>({...option,...descriptions.has(option.key)?
|
|
53
|
+
{description:descriptions.get(option.key)}:{},...images.has(option.key)?{image_attachment_id:images.get(option.key)}:{}})),allow_free_text:!noFreeText,multi_select:multiSelect}}function buildAnswer(input){const target=nonEmpty(input.flags,"--answer-to");const selected=repeatedValues(input,"--select").map(key=>key.trim());if(target===void 0){if(selected.length>0){throw new UsageError("--select \u306F --answer-to <\u30B3\u30E1\u30F3\u30C8ID> \u3068\u4E00\u7DD2\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
54
|
+
"\u56DE\u7B54\u5148\u306E\u8CEA\u554F\u30B3\u30E1\u30F3\u30C8\u306E ID \u306F twp task comment list <\u30AD\u30FC> \u306E id \u5217\u304B\u3089\u53D6\u308C\u307E\u3059\u3002")}return void 0}const seen=new Set;for(const key of selected){if(key==="")throw new UsageError("--select \u306B\u7A7A\u306E\u30AD\u30FC\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093");if(tooLong(key,SELECTED_KEY_MAX_CHARS)){throw new UsageError(`--select \u306E\u30AD\u30FC\u306F${SELECTED_KEY_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\u3067\u3059\uFF08${charCount(
|
|
55
|
+
key)}\u6587\u5B57\uFF09: ${key}`,"\u8CEA\u554F\u306E\u9078\u629E\u80A2\u306E\u30AD\u30FC\u3092\u305D\u306E\u307E\u307E\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08list \u306E question \u5217\u306B\u51FA\u307E\u3059\uFF09\u3002")}if(seen.has(key))throw new UsageError(`--select \u306E\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059: ${key}`);seen.add(key)}return{comment_id:target.trim(),...selected.length===0?{}:{selected_key:selected.length===1?selected[0]:[...selected]}}}function attachmentIds(input){
|
|
56
|
+
const ids=repeatedValues(input,"--attachment").map(id=>id.trim());const seen=new Set;for(const id of ids){if(id==="")throw new UsageError("--attachment \u306B\u7A7A\u306E ID \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093");if(seen.has(id))throw new UsageError(`--attachment \u306E ID \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059: ${id}`);seen.add(id)}return ids}async function resolveMentions(input,ctx,projectId){const refs=repeatedValues(input,"--mention");for(const ref of refs){if(ref.trim()===
|
|
57
|
+
"")throw new UsageError("--mention \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093");if(isPrivateProjectId(projectId)&&ref.trim().toLowerCase()!=="me"){throw new UsageError(`\u500B\u4EBA\u30BF\u30B9\u30AF\u3067\u30E1\u30F3\u30B7\u30E7\u30F3\u3067\u304D\u308B\u306E\u306F\u672C\u4EBA\uFF08me\uFF09\u3060\u3051\u3067\u3059: --mention ${ref}`,"\u672C\u4EBA\u3078\u30E1\u30F3\u30B7\u30E7\u30F3\u3059\u308B\u306A\u3089 --mention me \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}}
|
|
58
|
+
const ids=[];for(const ref of refs){const member=await ctx.resolver.assignee(projectId,ref,"--mention");if(!ids.includes(member.id))ids.push(member.id)}return ids}async function readContentHtml(input,usage){return readBody(input,{flag:"--content-html",fileFlag:"--content-html-file",label:"\u30EA\u30C3\u30C1\u30C6\u30AD\u30B9\u30C8\u672C\u6587",maxChars:CONTENT_HTML_MAX_CHARS,usage})}function rejectDoubleStdin(input){const stdinFlags=["--body-file","--question-file","--content-html-file"].filter(
|
|
59
|
+
name=>input.flags.get(name)==="-");if(stdinFlags.length>1){throw new UsageError(`\u6A19\u6E96\u5165\u529B\u3092\u8AAD\u3080\u30D5\u30E9\u30B0\u304C\u8907\u6570\u3042\u308A\u307E\u3059: ${stdinFlags.join(" / ")}`,"\u6A19\u6E96\u5165\u529B\u306F1\u3064\u3057\u304B\u8AAD\u3081\u307E\u305B\u3093\u3002\u3069\u308C\u304B1\u3064\u3060\u3051\u3092 - \u306B\u3057\u3066\u3001\u6B8B\u308A\u306F\u30D5\u30A1\u30A4\u30EB\u3067\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}}function takeJson(input,key){const raw=input.
|
|
60
|
+
resolved?.[key];if(raw===void 0||raw==="")return void 0;return JSON.parse(raw)}function takeList(input,key){const parsed=takeJson(input,key);if(parsed===void 0)return[];if(!Array.isArray(parsed))throw new Error(`\u5185\u90E8\u30A8\u30E9\u30FC: ${key} \u306E\u53D7\u3051\u6E21\u3057\u304C\u58CA\u308C\u3066\u3044\u307E\u3059`);return parsed}function optionalResolved(values){const out={};for(const[key,value]of Object.entries(values)){if(value===void 0)continue;out[key]=typeof value==="string"?value:
|
|
61
|
+
JSON.stringify(value)}return out}function commonOptionalBody(input){const mentions=takeList(input,"mentioned_user_ids");const attachments=takeList(input,"attachment_ids");const contentHtml=input.resolved?.["content_html"];return{content_html:contentHtml??null,...mentions.length>0?{mentioned_user_ids:mentions}:{},...attachments.length>0?{attachment_ids:attachments}:{}}}function commentBody(input){const question=takeJson(input,"question");const answer=takeJson(input,"answer_to");return{content:requireResolved(
|
|
62
|
+
input,"content"),...commonOptionalBody(input),...question!==void 0?{comment_type:"ask_question",question}:{},...answer!==void 0?{answer_to:answer}:{}}}async function locateCommentTask(input,ctx,ref){if(taskSurface(input,ref)==="private")return resolvePrivateTaskLocation(ctx,ref);return resolveTaskLocation(input,ctx,ref)}function commentPath(input){const projectId=encodeURIComponent(requireResolved(input,"projectId"));const taskId=encodeURIComponent(requireResolved(input,"taskId"));return`/api/v2\
|
|
63
|
+
/projects/${projectId}/tasks/${taskId}/comments`}var taskCommentResource={name:"comment",summary:"\u30BF\u30B9\u30AF\u30B3\u30E1\u30F3\u30C8\u306E\u4E00\u89A7\u30FB\u6295\u7A3F\u30FB\u66F4\u65B0\u30FB\u524A\u9664",operations:[{name:"list",summary:"\u30BF\u30B9\u30AF\u306E\u30B3\u30E1\u30F3\u30C8\u3092\u4E00\u89A7\u3059\u308B",usage:"twp task comment list <\u30AD\u30FC|ID> [--project <\u30B3\u30FC\u30C9|ID>] [--all]",description:`${TASK_REF_HELP}
|
|
55
64
|
|
|
56
65
|
\u4F5C\u6210\u65E5\u6642\u306E\u6607\u9806\u3067\u8FD4\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u5074\u306E\u4E26\u3073\uFF09\u3002
|
|
57
66
|
|