@tocca-systems/twp-cli 0.82.0 → 0.84.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CHANGELOG.public.md +12 -0
  2. package/dist/{agent-loop-ZGHJGHFQ.js → agent-loop-E5XWZV3V.js} +1 -1
  3. package/dist/{ai-dispatch-DJ5JT5BE.js → ai-dispatch-PABSQGQA.js} +2 -2
  4. package/dist/{api-command-IKQCTKPH.js → api-command-PWAWH4NR.js} +2 -2
  5. package/dist/{app-W6EKFG6P.js → app-57NA4OFE.js} +3 -3
  6. package/dist/{auto-update-worker-OIVQGG34.js → auto-update-worker-Q4KASOTO.js} +1 -1
  7. package/dist/{chunk-5YJAT7HE.js → chunk-4FCPLEZN.js} +1 -1
  8. package/dist/{chunk-M6FZ62YR.js → chunk-4P6BO4NM.js} +21 -21
  9. package/dist/{chunk-22CRY6JR.js → chunk-AKQLBUYJ.js} +10 -9
  10. package/dist/{chunk-7KFX2TPV.js → chunk-AR4FQRII.js} +1 -1
  11. package/dist/{chunk-XMPHGOW4.js → chunk-CVX2YWHC.js} +21 -17
  12. package/dist/{chunk-LDBYJPRD.js → chunk-H6XS5AMQ.js} +5 -5
  13. package/dist/{chunk-QGJYT4NH.js → chunk-HR6DHK6N.js} +2 -2
  14. package/dist/{chunk-VON6ODNL.js → chunk-J5QOE2GM.js} +10 -3
  15. package/dist/{chunk-ZOOEH7ZE.js → chunk-MBPJV745.js} +1 -1
  16. package/dist/{chunk-XNYQH5JI.js → chunk-NWCW3ONW.js} +1 -1
  17. package/dist/{chunk-DRERU42W.js → chunk-O67RD5XL.js} +1 -1
  18. package/dist/{chunk-DELIIGWE.js → chunk-SQBPZREE.js} +7 -6
  19. package/dist/{chunk-JUJSF5ZG.js → chunk-UUN3IO3Z.js} +1 -1
  20. package/dist/{chunk-AK7CNRVB.js → chunk-VJ72Y4TG.js} +1 -1
  21. package/dist/{chunk-RCUI6WWU.js → chunk-Y24FMUYU.js} +1 -1
  22. package/dist/{chunk-YPULDSJ3.js → chunk-Z5NBJC77.js} +6 -6
  23. package/dist/{chunk-PO35MCYP.js → chunk-ZPSPSYDD.js} +1 -1
  24. package/dist/cli.js +9 -9
  25. package/dist/{commands-ZIRZVBH6.js → commands-7GDO4YEQ.js} +2 -2
  26. package/dist/{commands-D65LPET6.js → commands-SYSUH2RP.js} +78 -78
  27. package/dist/{contract-73RVPBYM.js → contract-5AU5B4NN.js} +1 -1
  28. package/dist/{estimate-NLKTWCYI.js → estimate-Z3ANB4WK.js} +1 -1
  29. package/dist/{invoice-BXSI6SMA.js → invoice-YVUMRHY2.js} +1 -1
  30. package/dist/{leave-W4GHXMSE.js → leave-NVOZB7VQ.js} +1 -1
  31. package/dist/{logout-guard-57LHDX6L.js → logout-guard-FCCJSF5V.js} +1 -1
  32. package/dist/{media-KWSFHGAQ.js → media-TDXLP4T6.js} +1 -1
  33. package/dist/{oneshot-R7BDYFEN.js → oneshot-GTOK2ZPQ.js} +2 -2
  34. package/dist/{plan-submit-4NT4OC7J.js → plan-submit-DQRUUZTK.js} +1 -1
  35. package/dist/{registry-QXXEYQZZ.js → registry-WXXPS55F.js} +1 -1
  36. package/dist/{render-4SBLHU4J.js → render-2QURVC5V.js} +1 -1
  37. package/dist/{run-SUYWHFJS.js → run-4KFKWIKY.js} +1 -1
  38. package/dist/{runner-command-SRPMAC5S.js → runner-command-FW3WJB42.js} +1 -1
  39. package/dist/{sales-ai-review-L5VW3DU3.js → sales-ai-review-KJICZNUR.js} +2 -2
  40. package/dist/{server-settings-OB7JF757.js → server-settings-GFWQ5ERV.js} +1 -1
  41. package/dist/{setup-FMSAHRGZ.js → setup-DW2H7BDN.js} +1 -1
  42. package/dist/{skill-check-CKLMW2AJ.js → skill-check-JBRUAUID.js} +1 -1
  43. package/dist/{skill-manage-command-UOWZCF6R.js → skill-manage-command-TFGMSCT4.js} +2 -2
  44. package/dist/{status-command-C42CVQ3Q.js → status-command-PXE4WVOV.js} +2 -2
  45. package/dist/{update-XUIOLVEL.js → update-6E4IPTUE.js} +1 -1
  46. package/dist/{workflow-4NC2C4TX.js → workflow-2FODUREO.js} +1 -1
  47. package/package.json +1 -1
@@ -15,7 +15,14 @@ block.id,model)})}else{parts.push({functionResponse:{id:block.tool_use_id,name:t
15
15
  "object"&&args!==null&&!Array.isArray(args)?JSON.stringify(args):""});out.push({kind:"tool_end",index});continue}if(typeof part.text==="string"&&part.text!==""&&part.thought!==true){out.push({kind:"text",delta:part.text})}}const usage=usageOf(parsed["usageMetadata"]);if(usage)out.push({kind:"usage",usage});const feedback=parsed["promptFeedback"];if(typeof feedback?.blockReason==="string"&&feedback.blockReason!==""){out.push({kind:"error",message:`Gemini \u304C\u8981\u6C42\u3092\u62D2\u5426\u3057\u307E\u3057\u305F: ${feedback.
16
16
  blockReason}`})}if(typeof candidate?.finishReason==="string"&&candidate.finishReason!==""){const reason=candidate.finishReason;out.push({kind:"stop",reason:stopReasonOf(reason)});if(!NORMAL_FINISH_REASONS.has(reason)){out.push({kind:"error",message:`Gemini \u304C\u5FDC\u7B54\u3092\u6253\u3061\u5207\u308A\u307E\u3057\u305F: ${reason}`})}}return out}var NORMAL_FINISH_REASONS=new Set(["STOP","MAX_TOKENS","FINISH_REASON_UNSPECIFIED"]);function usageOf(source){if(typeof source!=="object"||source===null)
17
17
  return null;const raw=source;const num=key=>{const v=raw[key];return typeof v==="number"&&Number.isFinite(v)?Math.max(0,v):null};const prompt=num("promptTokenCount");const candidates=num("candidatesTokenCount");if(prompt===null&&candidates===null)return null;const usage={};if(prompt!==null){const cached=Math.min(num("cachedContentTokenCount")??0,prompt);usage.inputTokens=prompt-cached;usage.cacheReadTokens=cached;usage.cacheWriteTokens=0}if(candidates!==null||num("thoughtsTokenCount")!==null){usage.
18
- outputTokens=(candidates??0)+(num("thoughtsTokenCount")??0)}return usage}function stopReasonOf(finishReason){if(finishReason==="STOP")return"end_turn";if(finishReason==="MAX_TOKENS")return"max_tokens";return finishReason.toLowerCase()}function safeJson2(text){try{const parsed=JSON.parse(text);return typeof parsed==="object"&&parsed!==null&&!Array.isArray(parsed)?parsed:null}catch{return null}}var ADAPTERS={anthropic:anthropicAdapter,gemini:geminiAdapter};var PROTOCOLS_HEADER="X-TWP-CLI-Protocols";function supportedProtocols(){return Object.keys(ADAPTERS)}function isModelProtocol(value){return value==="anthropic"||value==="openai-chat"||value==="gemini"}function adapterFor(protocol){return ADAPTERS[protocol]??null}var DEFAULT_PROVIDER="anthropic";function effectiveModelSpec(spec){return{provider:spec?.provider??DEFAULT_PROVIDER,protocol:spec?.protocol??"anthropic",contextWindow:spec?.contextWindow??null,maxOutputTokens:spec?.maxOutputTokens??null,tools:spec?.capabilities?.tools??true,promptCache:spec?.capabilities?.promptCache??"explicit"}}var PROVIDER_PATTERN=/^[a-z0-9-]{1,32}$/;function positiveInt(value){return typeof value==="number"&&Number.isInteger(value)&&value>0?value:void 0}function parseModelSpec(id,raw){
18
+ outputTokens=(candidates??0)+(num("thoughtsTokenCount")??0)}return usage}function stopReasonOf(finishReason){if(finishReason==="STOP")return"end_turn";if(finishReason==="MAX_TOKENS")return"max_tokens";return finishReason.toLowerCase()}function safeJson2(text){try{const parsed=JSON.parse(text);return typeof parsed==="object"&&parsed!==null&&!Array.isArray(parsed)?parsed:null}catch{return null}}var openAiChatAdapter={protocol:"openai-chat",streamPath:"/api/cli/v1/chat/completions",toRequestBody:toRequestBody3,decode:decode3};function toRequestBody3(request){const hasTools=request.tools!==void 0&&request.tools.length>0;return{model:request.model,max_completion_tokens:request.maxTokens,messages:[...request.system!==void 0?[{role:"system",content:request.system}]:[],...request.messages.flatMap(toOpenAiMessages)],...hasTools?{tools:request.tools.map(tool=>({type:"function",function:{name:tool.
19
+ name,description:tool.description,parameters:tool.input_schema}}))}:{},reasoning_effort:"none",stream_options:{include_usage:true}}}function toOpenAiMessages(message){const text=message.content.filter(block=>block.type==="text").map(block=>block.type==="text"?block.text:"").join("");if(message.role==="assistant"){const toolCalls=message.content.flatMap(block=>block.type==="tool_use"?[{id:block.id,type:"function",function:{name:block.name,arguments:JSON.stringify(block.input)}}]:[]);return[{role:"\
20
+ assistant",content:text===""?null:text,...toolCalls.length>0?{tool_calls:toolCalls}:{}}]}const toolResults=message.content.flatMap(block=>block.type==="tool_result"?[{role:"tool",tool_call_id:block.tool_use_id,content:block.is_error===true?`[tool error] ${block.content}`:block.content}]:[]);return[...toolResults,...text!==""||toolResults.length===0?[{role:"user",content:text}]:[]]}var STOP_REASONS={tool_calls:"tool_use",stop:"end_turn",length:"max_tokens"};function decode3(ev){if(ev.data.trim()===
21
+ "[DONE]")return[];const parsed=safeJson3(ev.data);if(!parsed)return[];if(parsed["error"]!==void 0&&parsed["error"]!==null){const raw=parsed["error"];const message=typeof raw==="string"?raw:raw.message;return[{kind:"error",message:typeof message==="string"&&message!==""?message:"\u30B9\u30C8\u30EA\u30FC\u30E0\u304C\u4E2D\u65AD\u3055\u308C\u307E\u3057\u305F"}]}const out=[];const choices=Array.isArray(parsed["choices"])?parsed["choices"]:[];const choice=choices[0];if(choice&&typeof choice.delta==="\
22
+ object"&&choice.delta!==null){const delta=choice.delta;if(typeof delta.content==="string"&&delta.content!==""){out.push({kind:"text",delta:delta.content})}if(typeof delta.refusal==="string"&&delta.refusal!==""){out.push({kind:"text",delta:delta.refusal})}if(Array.isArray(delta.tool_calls)){for(const call of delta.tool_calls){const index=typeof call["index"]==="number"?call["index"]:-1;const fn=call["function"]??{};const args=typeof fn.arguments==="string"?fn.arguments:"";if(typeof call["id"]==="\
23
+ string"&&typeof fn.name==="string"){out.push({kind:"tool_start",index,id:call["id"],name:fn.name,initialJson:args})}else if(args!==""){out.push({kind:"tool_delta",index,json:args})}}}}if(choice&&typeof choice.finish_reason==="string"){out.push({kind:"stop",reason:STOP_REASONS[choice.finish_reason]??choice.finish_reason})}out.push(...usageEvent2(parsed["usage"]));return out}function usageEvent2(source){if(typeof source!=="object"||source===null)return[];const raw=source;const prompt=raw["prompt_t\
24
+ okens"];const completion=raw["completion_tokens"];if(typeof prompt!=="number"||typeof completion!=="number")return[];const details=typeof raw["prompt_tokens_details"]==="object"&&raw["prompt_tokens_details"]!==null?raw["prompt_tokens_details"]:{};const count=value=>typeof value==="number"&&Number.isFinite(value)?Math.max(0,value):0;const total=Math.max(0,prompt);const cacheReadTokens=Math.min(count(details["cached_tokens"]),total);const cacheWriteTokens=Math.min(count(details["cache_write_tokens"]),
25
+ total-cacheReadTokens);const usage={inputTokens:total-cacheReadTokens-cacheWriteTokens,cacheReadTokens,cacheWriteTokens,outputTokens:Math.max(0,completion)};return[{kind:"usage",usage}]}function safeJson3(text){try{const parsed=JSON.parse(text);return typeof parsed==="object"&&parsed!==null?parsed:null}catch{return null}}var ADAPTERS={anthropic:anthropicAdapter,"openai-chat":openAiChatAdapter,gemini:geminiAdapter};var PROTOCOLS_HEADER="X-TWP-CLI-Protocols";function supportedProtocols(){return Object.keys(ADAPTERS)}function isModelProtocol(value){return value==="anthropic"||value==="openai-chat"||value==="gemini"}function adapterFor(protocol){return ADAPTERS[protocol]??null}var DEFAULT_PROVIDER="anthropic";function effectiveModelSpec(spec){return{provider:spec?.provider??DEFAULT_PROVIDER,protocol:spec?.protocol??"anthropic",contextWindow:spec?.contextWindow??null,maxOutputTokens:spec?.maxOutputTokens??null,tools:spec?.capabilities?.tools??true,promptCache:spec?.capabilities?.promptCache??"explicit"}}var PROVIDER_PATTERN=/^[a-z0-9-]{1,32}$/;function positiveInt(value){return typeof value==="number"&&Number.isInteger(value)&&value>0?value:void 0}function parseModelSpec(id,raw){
19
26
  const spec={id};if(typeof raw!=="object"||raw===null)return spec;const r=raw;if(typeof r["provider"]==="string"&&PROVIDER_PATTERN.test(r["provider"]))spec.provider=r["provider"];if(isModelProtocol(r["protocol"]))spec.protocol=r["protocol"];const contextWindow=positiveInt(r["context_window"]);if(contextWindow!==void 0)spec.contextWindow=contextWindow;const maxOutputTokens=positiveInt(r["max_output_tokens"]);if(maxOutputTokens!==void 0)spec.maxOutputTokens=maxOutputTokens;const caps=r["capabilitie\
20
27
  s"];if(typeof caps==="object"&&caps!==null){const c=caps;const capabilities={};if(typeof c["tools"]==="boolean")capabilities.tools=c["tools"];const cache=c["prompt_cache"];if(cache==="explicit"||cache==="automatic"||cache==="none")capabilities.promptCache=cache;if(Object.keys(capabilities).length>0)spec.capabilities=capabilities}return spec}function toWireSpec(spec){return{id:spec.id,...spec.provider!==void 0?{provider:spec.provider}:{},...spec.protocol!==void 0?{protocol:spec.protocol}:{},...spec.
21
28
  contextWindow!==void 0?{context_window:spec.contextWindow}:{},...spec.maxOutputTokens!==void 0?{max_output_tokens:spec.maxOutputTokens}:{},...spec.capabilities!==void 0?{capabilities:{...spec.capabilities.tools!==void 0?{tools:spec.capabilities.tools}:{},...spec.capabilities.promptCache!==void 0?{prompt_cache:spec.capabilities.promptCache}:{}}}:{}}}function modelCachePath(env=process.env){return path.join(twpHomeDir(env),"models.json")}function modelCacheLockPath(env=process.env){return path.join(twpHomeDir(env),"models.lock")}function builtinCatalog(){return{ids:MODELS.map(m=>m.id),source:"builtin",fetchedAt:null,minSupportedVersion:null}}function readCacheFile(env){const file=modelCachePath(env);if(!isTrustworthyCacheFile(file)){return{version:1,entries:{}}}const parsed=JSON.parse(fs.readFileSync(file,"utf8"));if(!parsed||typeof parsed!==
@@ -34,7 +41,7 @@ timeout(MODELS_TIMEOUT_MS));const body=await res.json().catch(()=>null);const mo
34
41
  const floor=body?.min_supported_version;const minSupportedVersion=typeof floor==="string"&&parseVersionCore(floor)!==null?floor.trim():null;return{ids,models,minSupportedVersion}}async stream(request,hooks){const protocol=request.protocol??"anthropic";const adapter=adapterFor(protocol);if(!adapter){throw new RelayError("validation",`\u30E2\u30C7\u30EB ${request.model} \u306F ${protocol} \u30D7\u30ED\u30C8\u30B3\u30EB\u306E\u305F\u3081\u3001\u3053\u306E\u7248\u306E twp \u3067\u306F\u5229\u7528\u3067\u304D\u307E\u305B\u3093\uFF08twp \u3092\u66F4\u65B0\u3057\u3066\u304F\u3060\u3055\u3044\uFF09`)}
35
42
  let res;try{res=await this.send("POST",adapter.streamPath,adapter.toRequestBody({model:request.model,maxTokens:request.maxTokens,...request.system!==void 0?{system:request.system}:{},messages:request.messages,...request.tools!==void 0?{tools:request.tools}:{},promptCache:request.promptCache??"explicit"}),hooks.signal)}catch(err){if(isAbortError(err)||hooks.signal?.aborted===true){return{text:"",usage:emptyUsage(),toolUses:[],stopReason:null,aborted:true,upstreamError:null}}throw err}const body=res.
36
43
  body;if(!body){throw new RelayError("upstream","\u30EA\u30EC\u30FC\u304C\u5FDC\u7B54\u672C\u6587\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F")}const parser=new SseParser;const decoder=new TextDecoder;const usage=emptyUsage();let text="";let stopReason=null;let streamError=null;const reader=body.getReader();const building=new Map;const toolUses=[];const finalizeBlock=index=>{const pending=building.get(index);if(!pending)return;building.delete(index);const input=pending.json.trim()===""?
37
- {}:safeJson3(pending.json);if(input===null){streamError=`\u30C4\u30FC\u30EB ${pending.name} \u306E\u5F15\u6570\u3092\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F`;return}toolUses.push({type:"tool_use",id:pending.id,name:pending.name,input})};const apply=ev=>{switch(ev.kind){case"usage":Object.assign(usage,ev.usage);return;case"text":text+=ev.delta;hooks.onTextDelta(ev.delta);return;case"tool_start":building.set(ev.index,{id:ev.id,name:ev.name,json:ev.initialJson});return;case"tool\
44
+ {}:safeJson4(pending.json);if(input===null){streamError=`\u30C4\u30FC\u30EB ${pending.name} \u306E\u5F15\u6570\u3092\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F`;return}toolUses.push({type:"tool_use",id:pending.id,name:pending.name,input})};const apply=ev=>{switch(ev.kind){case"usage":Object.assign(usage,ev.usage);return;case"text":text+=ev.delta;hooks.onTextDelta(ev.delta);return;case"tool_start":building.set(ev.index,{id:ev.id,name:ev.name,json:ev.initialJson});return;case"tool\
38
45
  _delta":{const pending=building.get(ev.index);if(pending)pending.json+=ev.json;return}case"tool_end":finalizeBlock(ev.index);return;case"stop":stopReason=ev.reason;return;case"error":streamError=ev.message;return}};const handle=events=>{for(const ev of events){for(const neutral of adapter.decode(ev))apply(neutral)}};const onAbort=()=>{void reader.cancel().catch(()=>void 0)};if(hooks.signal){if(hooks.signal.aborted)onAbort();else hooks.signal.addEventListener("abort",onAbort,{once:true})}try{for(;;){
39
46
  const{done,value}=await reader.read();if(done)break;handle(parser.push(decoder.decode(value,{stream:true})))}handle(parser.flush())}catch(err){if(err instanceof SseBufferOverflowError){streamError=err.message}else if(!isAbortError(err)&&hooks.signal?.aborted!==true){throw new RelayError("network",`\u30B9\u30C8\u30EA\u30FC\u30E0\u304C\u5207\u65AD\u3055\u308C\u307E\u3057\u305F: ${errorMessage(err)}`)}}finally{hooks.signal?.removeEventListener("abort",onAbort);void reader.cancel().catch(()=>void 0)}
40
47
  for(const index of[...building.keys()])finalizeBlock(index);return{text,usage,toolUses,stopReason,aborted:hooks.signal?.aborted===true,upstreamError:streamError===null?null:stripTerminalControls(streamError)}}async send(method,path2,body,signal){let token;try{token=await this.session.getAccessToken()}catch(err){throw new RelayError("not_logged_in",errorMessage(err))}let res=await this.fetchOrThrow(method,path2,token,body,signal);if(res.status===401){try{token=await this.session.refresh(token)}catch(err){
@@ -42,7 +49,7 @@ throw new RelayError("not_logged_in",errorMessage(err))}res=await this.fetchOrTh
42
49
  void 0?{"Content-Type":"application/json"}:{}},...body!==void 0?{body:JSON.stringify(body)}:{},...signal?{signal}:{}})}catch(err){if(isAbortError(err))throw err;throw new RelayError("network",`\u30E2\u30C7\u30EB\u53D6\u6B21\u30B5\u30FC\u30D0\u306B\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093\uFF08${this.relayUrl}\uFF09: ${errorMessage(err)}`)}}};async function toRelayError(res){const body=await res.json().catch(()=>null);const nested=typeof body?.error==="object"&&body.error!==null?body.error:void 0;
43
50
  const message=stripTerminalControls(body?.message??nested?.message??`HTTP ${res.status}`);if(res.status===401){return new RelayError("unauthorized","\u30E2\u30C7\u30EB\u53D6\u6B21\u306E\u8A8D\u8A3C\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002`twp login`\uFF08\u30D6\u30E9\u30A6\u30B6\u59D4\u8B72\uFF09\u307E\u305F\u306F `twp login --password` \u3067\u30ED\u30B0\u30A4\u30F3\u3057\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\uFF08`twp login --token` \u3067\u4FDD\u5B58\u3057\u305F\u901A\u5E38\u30C8\u30FC\u30AF\u30F3\u306F\u30E2\u30C7\u30EB\u53D6\u6B21\u306B\u306F\u4F7F\u3048\u307E\u305B\u3093\uFF09\u3002",
44
51
  401)}if(res.status===403){return new RelayError("cli_disabled",message,403)}if(res.status===429){return new RelayError("rate_limit",message,429)}if(res.status===400){const detail=body?.details;if(Array.isArray(detail?.allowed_models)){return new RelayError("model_not_allowed",`${message}
45
- \u5229\u7528\u3067\u304D\u308B\u30E2\u30C7\u30EB: ${detail.allowed_models.join(" / ")}`,400)}return new RelayError("validation",message,400)}if(res.status===503){return new RelayError("unavailable",message,503)}return new RelayError("upstream",message,res.status)}function safeJson3(text){try{const parsed=JSON.parse(text);return typeof parsed==="object"&&parsed!==null?parsed:null}catch{return null}}function isAbortError(err){return err instanceof Error&&(err.name==="AbortError"||err.name==="Timeo\
52
+ \u5229\u7528\u3067\u304D\u308B\u30E2\u30C7\u30EB: ${detail.allowed_models.join(" / ")}`,400)}return new RelayError("validation",message,400)}if(res.status===503){return new RelayError("unavailable",message,503)}return new RelayError("upstream",message,res.status)}function safeJson4(text){try{const parsed=JSON.parse(text);return typeof parsed==="object"&&parsed!==null?parsed:null}catch{return null}}function isAbortError(err){return err instanceof Error&&(err.name==="AbortError"||err.name==="Timeo\
46
53
  utError")}function errorMessage(err){return err instanceof Error?err.message:String(err)}var DEFAULT_CONTEXT_WINDOW_TOKENS=2e5;var DEFAULT_MAX_TOKENS=8192;var TRIM_THRESHOLD=.8;var ContextManager=class{constructor(defaultContextWindowTokens=DEFAULT_CONTEXT_WINDOW_TOKENS){this.defaultContextWindowTokens=defaultContextWindowTokens;this.contextWindowTokens=defaultContextWindowTokens}defaultContextWindowTokens;messages=[];totals=emptyUsage();turns=0;lastPromptTokens=0;pendingChars=0;droppedMessages=0;contextWindowTokens;setContextWindow(tokens){this.contextWindowTokens=tokens!==null&&tokens>
47
54
  0?tokens:this.defaultContextWindowTokens}addUser(text){this.pendingChars+=text.length;const last=this.messages[this.messages.length-1];if(last?.role==="user"){last.content.push({type:"text",text});return}this.messages.push({role:"user",content:[{type:"text",text}]})}addToolExchange(assistantText,toolUses,results){if(toolUses.length===0)return;const blocks=[];if(assistantText.trim()!=="")blocks.push({type:"text",text:assistantText});blocks.push(...toolUses);this.messages.push({role:"assistant",content:blocks});
48
55
  this.messages.push({role:"user",content:results});this.pendingChars+=blocks.reduce((n,b)=>n+blockLength(b),0);this.pendingChars+=results.reduce((n,b)=>n+blockLength(b),0)}completeTurn(assistantText){const text=assistantText.trim();if(text===""){const last=this.messages[this.messages.length-1];if(last?.role==="user"&&!hasToolResult(last)){this.messages.pop();this.pendingChars=Math.max(0,this.pendingChars-lengthOf(last))}return false}this.messages.push({role:"assistant",content:[{type:"text",text:assistantText}]});
@@ -3,7 +3,7 @@ const require = __twpCreateRequire(import.meta.url);
3
3
  function isAiUnavailable(outcome){return outcome==="unavailable"||outcome==="rate-limited"||outcome==="network-down"}function needsHumanToRestoreAi(outcome){return outcome==="unavailable"}function aiUnavailableLabel(outcome){if(outcome==="rate-limited")return"\u5168AI\u30EC\u30FC\u30C8\u30EA\u30DF\u30C3\u30C8";if(outcome==="network-down")return"\u30DB\u30B9\u30C8\u5074\u306E\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u969C\u5BB3";return"AI \u304C1\u3064\u3082\u4F7F\u3048\u306A\u3044\uFF08\u672A\u30ED\u30B0\u30A4\u30F3\u7B49\uFF09"}
4
4
  var SERVER_AI_TYPES=["claude","gemini","codex","copilot"];function isServerAiType(value){return SERVER_AI_TYPES.includes(value)}var NoopEngine=class{constructor(note="\uFF08noop \u30A8\u30F3\u30B8\u30F3: AI \u306F\u8D77\u52D5\u3057\u3066\u3044\u307E\u305B\u3093\uFF09"){this.note=note}note;name="noop";run(req){const output=[`[noop] prompt: ${req.prompt.split("\n").slice(-1)[0]??""}`,`[noop] cwd: ${req.cwd}`,`[noop] ai_type=${req.aiType??"(\u672A\u6307\u5B9A)"} ai_model=${req.aiModel??"(\u672A\u6307\u5B9A)"}`,
5
5
  this.note].join("\n");return Promise.resolve({outcome:"ok",usedAi:"noop",serverAiType:null,output})}};var UnknownEngineError=class extends Error{constructor(name,available){super(`\u672A\u77E5\u306E\u30A8\u30F3\u30B8\u30F3\u3067\u3059: ${name}\uFF08\u5229\u7528\u3067\u304D\u308B\u306E\u306F ${available.join(" / ")}\uFF09`)}};var ENGINE_NAMES=["cli","noop"];function assertKnownEngine(name){if(!ENGINE_NAMES.includes(name)){throw new UnknownEngineError(name,ENGINE_NAMES)}}var EngineNotConfiguredError=class extends Error{constructor(){
6
- super('\u5B9F\u884C\u30A8\u30F3\u30B8\u30F3\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\n \u5B9F AI \u3092\u8D77\u52D5\u3059\u308B\u306A\u3089 --engine cli\uFF08\u8A2D\u5B9A\u306A\u3089 "engine": "cli"\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n \u9AA8\u683C\u3060\u3051\u3092\u691C\u8A3C\u3057\u305F\u3044\u5834\u5408\u306F --engine noop \u3092**\u660E\u793A**\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n \u26A0\uFE0F noop \u306F AI \u30921\u3064\u3082\u8D77\u52D5\u305B\u305A\u30A2\u30A4\u30C6\u30E0\u3092 completed \u306B\u3057\u307E\u3059\u3002**\u5B9F\u30AD\u30E5\u30FC\uFF08\u672C\u756A\u306E TWP \u7B49\uFF09\u3078\u5411\u3051\u306A\u3044\u3053\u3068**\n \u5B9A\u671F\u7531\u6765\u306E\u30A2\u30A4\u30C6\u30E0\u306A\u3089\u67A0\u307E\u3067\u6D88\u5316\u3055\u308C\u3001\u305D\u306E\u7A93\u306E release-deploy / develop-merge \u304C\u767A\u706B\u3057\u306A\u304F\u306A\u308A\u307E\u3059\u3002')}};var MAX_SCAN_BYTES=512*1024;var PROGRESS_PREFIX=/^\s*\[\d{2}:\d{2}:\d{2}\]\s*/;var FINAL_REPORT_BEGIN="<<<AI_FINAL_REPORT>>>";var FINAL_REPORT_END="<<<END_AI_FINAL_REPORT>>>";var TRANSCRIPT_MARKER=/^(>>|<<|⛔|!!)\s/;function stripProgressPrefix(line){return line.replace(PROGRESS_PREFIX,"").trim()}function stripTranscript(raw){return filterLines(raw,true)}function stripModelProse(raw){return filterLines(raw,false)}function filterLines(raw,dropToolLines){const out=[];let inReport=false;for(const line of raw.
6
+ super('\u5B9F\u884C\u30A8\u30F3\u30B8\u30F3\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\n \u5B9F AI \u3092\u8D77\u52D5\u3059\u308B\u306A\u3089 --engine cli\uFF08\u8A2D\u5B9A\u306A\u3089 "engine": "cli"\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n \u9AA8\u683C\u3060\u3051\u3092\u691C\u8A3C\u3057\u305F\u3044\u5834\u5408\u306F --engine noop \u3092**\u660E\u793A**\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n \u26A0\uFE0F noop \u306F AI \u30921\u3064\u3082\u8D77\u52D5\u305B\u305A\u30A2\u30A4\u30C6\u30E0\u3092 completed \u306B\u3057\u307E\u3059\u3002**\u5B9F\u30AD\u30E5\u30FC\uFF08\u672C\u756A\u306E TWP \u7B49\uFF09\u3078\u5411\u3051\u306A\u3044\u3053\u3068**\n \u5B9A\u671F\u7531\u6765\u306E\u30A2\u30A4\u30C6\u30E0\u306A\u3089\u67A0\u307E\u3067\u6D88\u5316\u3055\u308C\u3001\u305D\u306E\u7A93\u306E\u30EA\u30EA\u30FC\u30B9\u30FB\u30DE\u30FC\u30B8\u7B49\u306E\u5B9A\u671F\u51E6\u7406\u304C\u767A\u706B\u3057\u306A\u304F\u306A\u308A\u307E\u3059\u3002')}};var MAX_SCAN_BYTES=512*1024;var PROGRESS_PREFIX=/^\s*\[\d{2}:\d{2}:\d{2}\]\s*/;var FINAL_REPORT_BEGIN="<<<AI_FINAL_REPORT>>>";var FINAL_REPORT_END="<<<END_AI_FINAL_REPORT>>>";var TRANSCRIPT_MARKER=/^(>>|<<|⛔|!!)\s/;function stripProgressPrefix(line){return line.replace(PROGRESS_PREFIX,"").trim()}function stripTranscript(raw){return filterLines(raw,true)}function stripModelProse(raw){return filterLines(raw,false)}function filterLines(raw,dropToolLines){const out=[];let inReport=false;for(const line of raw.
7
7
  split("\n")){if(line.includes(FINAL_REPORT_BEGIN)){inReport=true;continue}if(line.includes(FINAL_REPORT_END)){inReport=false;continue}if(inReport||line.includes("\u{1F4AC}"))continue;if(dropToolLines&&TRANSCRIPT_MARKER.test(stripProgressPrefix(line)))continue;out.push(line)}return out.join("\n")}var UNTRUSTED_PATTERNS=[/has not been trusted/i,/Ignoring [0-9]+ permissions\.allow entries/i];function isUntrusted(raw){const text=stripTranscript(raw);return UNTRUSTED_PATTERNS.some(p=>p.test(text))}var CLI_FATAL_TEXT_PATTERNS=[
8
8
  /^api error\b/i,/^failed to authenticate\b/i];function isCliFatalText(text){const head=text.trim();return CLI_FATAL_TEXT_PATTERNS.some(p=>p.test(head))}var CODEX_PLAIN_LIMIT_PATTERNS=[/^(?:error\s*:\s*)?you(?:'ve| have)? hit (?:your|the) (?:usage|session|weekly|rate|quota|spend) (?:limit|cap)\b.*$/i,/^(?:error\s*:\s*)?(?:your|the) (?:usage|rate|session|quota) limit (?:has been )?(?:reached|exceeded)\b.*$/i,/^(?:error\s*:\s*)?(?:usage|rate|session|quota) limit (?:reached|exceeded)\b.*$/i,/^try again at\s+(?:jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)[a-z]*\s+\d{1,2}(?:st|nd|rd|th)?\b.*$/i];
9
9
  var CODEX_RUST_LIMIT_PATTERN=/^(?:\d{4}-\d{2}-\d{2}T\S+\s+)?(?:ERROR|WARN)\s+codex(?:[_:]+[a-z0-9-]+){0,8}\s*:\s*.*(?:\b(?:429|529)\b|(?:usage|rate|session)[ ._-]*limit|quota[_ -]?(?:exhausted|exceeded))/i;var COMMON_LIMIT_PATTERNS=[/(?:status|code|http)[^a-z0-9]{0,10}429/i,/429[^0-9].{0,15}(?:too many|rate|throttl)/i,/(?:status|code|http)[^a-z0-9]{0,10}529/i,/529[^0-9].{0,15}overloaded/i,/too many requests/i,/max.?spend.?(?:limit|reached|exceeded)/i,/spending.?limit/i,/resets?\s+\d+(?::\d+)?\s*(?:am|pm)/i];
@@ -7,7 +7,7 @@ body,"hidden_count"),removed_count:pickNumber(body,"removed_count"),hide_after_d
7
7
  const{resolveOutputFormat}=await import("./format-F6PPBPY5.js");const format=resolveOutputFormat({...opts.output!==void 0?{flag:opts.output}:{},isTty:io.isTty});if(format===null||!LIST_FORMATS.includes(format)){throw new UsageError(`runner list \u306E --output \u306B\u300C${opts.output??""}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${LIST_FORMATS.join(" / ")} \u3067\u3059`)}const res=await api.request("GET","/runners");if(!res.ok){io.
8
8
  err(`\u26D4 \u30E9\u30F3\u30CA\u30FC\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\uFF08${errorDetail(res)}\uFF09
9
9
  `);return apiExit(res)}const parsed=parseRunners(res);if(parsed===null){io.err(`\u26D4 \u30E9\u30F3\u30CA\u30FC\u4E00\u89A7\u3092\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093\uFF08\u5FDC\u7B54\u306E\u5148\u982D: ${res.raw.slice(0,120)}\uFF09
10
- `);return EXIT_API_SERVER}const{entries,summary}=parsed;const{evaluateQuery}=await import("./query-XEOVFI4D.js");const{renderOutput}=await import("./render-4SBLHU4J.js");if(format==="json"){const value={...summary,runners:entries};const selected2=opts.query===void 0?value:await evaluateQuery(opts.query,value);const text2=renderOutput(selected2,"json");io.out(text2.endsWith("\n")?text2:`${text2}
10
+ `);return EXIT_API_SERVER}const{entries,summary}=parsed;const{evaluateQuery}=await import("./query-XEOVFI4D.js");const{renderOutput}=await import("./render-2QURVC5V.js");if(format==="json"){const value={...summary,runners:entries};const selected2=opts.query===void 0?value:await evaluateQuery(opts.query,value);const text2=renderOutput(selected2,"json");io.out(text2.endsWith("\n")?text2:`${text2}
11
11
  `);return EXIT_OK}io.err(summaryLine(summary));const selected=opts.query===void 0?entries:await evaluateQuery(opts.query,entries);if(opts.query===void 0&&entries.length===0){io.err("\u4E00\u89A7\u306B\u8868\u793A\u3055\u308C\u308B\u767B\u9332\u306F\u3042\u308A\u307E\u305B\u3093\n");return EXIT_OK}const text=renderOutput(selected,format);io.out(text.endsWith("\n")?text:`${text}
12
12
  `);if(opts.query===void 0&&entries.some(e=>e.state==="stale")){io.err(`${removeHint(opts)}
13
13
  `)}return EXIT_OK}function summaryLine(s){const n=v=>v===null?"?":String(v);const parts=[`\u7A3C\u50CD ${n(s.live_count)} / ${n(s.max_runners)}\uFF08\u6B7B\u6D3B\u3057\u304D\u3044\u5024 ${n(s.heartbeat_timeout)}\u79D2\uFF09`];parts.push(`${n(s.hide_after_days)}\u65E5\u4EE5\u4E0A\u5FDC\u7B54\u306A\u3057\u3067\u975E\u8868\u793A ${n(s.hidden_count)}\u53F0`);if(s.removed_count!==null)parts.push(`\u624B\u52D5\u3067\u5916\u3057\u305F\u767B\u9332 ${s.removed_count}\u53F0`);return`\u30E9\u30F3\u30CA\u30FC: ${parts.
@@ -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{redactSecretValues}from"./chunk-LDBYJPRD.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError,TwpApiClient,appendQuery}from"./chunk-JA5A6UJ2.js";import{DEFAULT_MAX_TOKENS,effectiveModelSpec,emptyUsage}from"./chunk-VON6ODNL.js";
3
+ import{CommandModelMissingError,MAX_REPORTED_VIOLATIONS,loadCommandModelDomain,loadCommandModelIndex,validateBody,validateQuery}from"./chunk-NZ7WI4RZ.js";import{isForceOnly,killProcessTree,system32}from"./chunk-N2UVRM3Z.js";import{redactSecretValues}from"./chunk-H6XS5AMQ.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError,TwpApiClient,appendQuery}from"./chunk-JA5A6UJ2.js";import{DEFAULT_MAX_TOKENS,effectiveModelSpec,emptyUsage}from"./chunk-J5QOE2GM.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=[];
@@ -12,11 +12,11 @@ return id}function reviewPath(input,doc,op){const usage=usageOf(doc,"ai-review",
12
12
  /^\.+$/.test(criterion)){throw new UsageError(`\u6307\u6458\u306E ID \u306F\u82F1\u6570\u5B57\u3068 _ . : - \u3060\u3051\u30FB128 \u6587\u5B57\u307E\u3067\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${criterion}`,usage)}const id=numericDocumentId(input.flags.get(`--${doc.name}`)??"",doc,usage,` --${doc.name}`);const base=`${SALES_PATH}/${doc.segment}/${encodeURIComponent(id)}/ai-review`;return{reviewPath:base,reasonPath:`${base}/reasons/${encodeURIComponent(criterion)}`,criterion}}function envelope(body,what){
13
13
  if(!isRecord(body)||body["result"]!==true){throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return body}function withoutResult(body){return Object.fromEntries(Object.entries(body).filter(([key])=>key!=="result"))}function reviewOf(body,what){const review=body["review"];if(review===null)return null;if(!isRecord(review)||typeof review["s\
14
14
  tatus"]!=="string"){throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306B review.status \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return review}function checksOf(review){const checks=review?.["checks"];return Array.isArray(checks)?checks.filter(isRecord):[]}function checkCounts(review){const checks=checksOf(review);return`\u78BA\u8A8D\u3057\u305F\u89B3\u70B9 ${checks.length} \u4EF6\uFF08\u3046\u3061\u8B66\u544A ${checks.
15
- filter(check=>check["severity"]==="warning").length} \u4EF6\uFF09`}function reasonsMap(body){return isRecord(body["reasons"])?body["reasons"]:{}}var CHECK_COLUMNS=["criterion_id","label","severity","acknowledged","reason_judgment","message"];function checkRows(body){const data=envelope(body,"\u7533\u8ACB\u524DAI\u30C1\u30A7\u30C3\u30AF");const reasons=reasonsMap(data);return checksOf(reviewOf(data,"\u7533\u8ACB\u524DAI\u30C1\u30A7\u30C3\u30AF")).map(check=>{const criterion=typeof check["criterio\
16
- n_id"]==="string"?check["criterion_id"]:null;const reason=criterion!==null?reasons[criterion]:void 0;return{...pick(check,["criterion_id","label","severity"]),acknowledged:check["acknowledged"]===true,reason_judgment:isRecord(reason)?reason["judgment"]??null:null,message:check["message"]??null}})}function reviewRaw(body){const data=envelope(body,"\u7533\u8ACB\u524DAI\u30C1\u30A7\u30C3\u30AF");reviewOf(data,"\u7533\u8ACB\u524DAI\u30C1\u30A7\u30C3\u30AF");return withoutResult(data)}function statusNotes(doc,id,review){
17
- if(review===null)return[`\u307E\u3060\u7533\u8ACB\u524DAI\u30C1\u30A7\u30C3\u30AF\u3092\u5B9F\u884C\u3057\u3066\u3044\u307E\u305B\u3093\uFF08twp ${doc.name} ai-review run ${id} --yes \u3067\u5B9F\u884C\u3067\u304D\u307E\u3059\uFF09`];const status=review["status"];if(IN_FLIGHT.has(String(status))){return[`\u751F\u6210\u4E2D\u3067\u3059\uFF08status=${String(status)}\uFF09\u3002twp ${doc.name} ai-review get ${id} \u3067\u7D50\u679C\u3092\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\uFF08run \u306B --wait \u3092\u4ED8\u3051\u308B\u3068\u5B8C\u4E86\u307E\u3067\u5F85\u3061\u307E\u3059\uFF09`]}
18
- if(status==="failed")return[`\u524D\u56DE\u306E\u751F\u6210\u306F\u5931\u6557\u3057\u307E\u3057\u305F\uFF08status=failed\uFF09\u3002twp ${doc.name} ai-review run ${id} --yes \u3067\u518D\u5B9F\u884C\u3067\u304D\u307E\u3059`];return[]}function getNotes(doc){return(body,input)=>{const data=envelope(body,"\u7533\u8ACB\u524DAI\u30C1\u30A7\u30C3\u30AF");const review=reviewOf(data,"\u7533\u8ACB\u524DAI\u30C1\u30A7\u30C3\u30AF");const id=input.args[0]?.trim()??"<ID>";const notes=statusNotes(doc,id,review);
19
- if(review!==null&&review["status"]==="completed"){if(typeof review["summary"]==="string"&&review["summary"]!=="")notes.push(`\u8981\u7D04: ${review["summary"]}`);notes.push(`${checkCounts(review)}\u3002\u751F\u6210\u65E5\u6642 ${String(review["generated_at"]??"\u4E0D\u660E")}`)}if(data["stale"]===true)notes.push(`\u3053\u306E\u7D50\u679C\u306F${doc.label}\u306E\u4FDD\u5B58\u3088\u308A\u524D\u306E\u3082\u306E\u3067\u3059\uFF08\u5185\u5BB9\u304C\u5909\u308F\u3063\u3066\u3044\u307E\u3059\uFF09\u3002\u627F\u8A8D\u7533\u8ACB\u306E\u524D\u306B\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044`);
15
+ filter(check=>check["severity"]==="warning").length} \u4EF6\uFF09`}function reasonsMap(body){return isRecord(body["reasons"])?body["reasons"]:{}}function hasReferencedReason(check){return isRecord(check["referenced_reason"])}var CHECK_COLUMNS=["criterion_id","label","severity","referenced_reason","reason_judgment","message"];function checkRows(body){const data=envelope(body,"\u7533\u8ACB\u524DAI\u30C1\u30A7\u30C3\u30AF");const reasons=reasonsMap(data);return checksOf(reviewOf(data,"\u7533\u8ACB\u524DAI\u30C1\u30A7\u30C3\u30AF")).
16
+ map(check=>{const criterion=typeof check["criterion_id"]==="string"?check["criterion_id"]:null;const reason=criterion!==null?reasons[criterion]:void 0;return{...pick(check,["criterion_id","label","severity"]),referenced_reason:hasReferencedReason(check),reason_judgment:isRecord(reason)?reason["judgment"]??null:null,message:check["message"]??null}})}function reviewRaw(body){const data=envelope(body,"\u7533\u8ACB\u524DAI\u30C1\u30A7\u30C3\u30AF");reviewOf(data,"\u7533\u8ACB\u524DAI\u30C1\u30A7\u30C3\u30AF");
17
+ return withoutResult(data)}function statusNotes(doc,id,review){if(review===null)return[`\u307E\u3060\u7533\u8ACB\u524DAI\u30C1\u30A7\u30C3\u30AF\u3092\u5B9F\u884C\u3057\u3066\u3044\u307E\u305B\u3093\uFF08twp ${doc.name} ai-review run ${id} --yes \u3067\u5B9F\u884C\u3067\u304D\u307E\u3059\uFF09`];const status=review["status"];if(IN_FLIGHT.has(String(status))){return[`\u751F\u6210\u4E2D\u3067\u3059\uFF08status=${String(status)}\uFF09\u3002twp ${doc.name} ai-review get ${id} \u3067\u7D50\u679C\u3092\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\uFF08run \u306B --wa\
18
+ it \u3092\u4ED8\u3051\u308B\u3068\u5B8C\u4E86\u307E\u3067\u5F85\u3061\u307E\u3059\uFF09`]}if(status==="failed")return[`\u524D\u56DE\u306E\u751F\u6210\u306F\u5931\u6557\u3057\u307E\u3057\u305F\uFF08status=failed\uFF09\u3002twp ${doc.name} ai-review run ${id} --yes \u3067\u518D\u5B9F\u884C\u3067\u304D\u307E\u3059`];return[]}function getNotes(doc){return(body,input)=>{const data=envelope(body,"\u7533\u8ACB\u524DAI\u30C1\u30A7\u30C3\u30AF");const review=reviewOf(data,"\u7533\u8ACB\u524DAI\u30C1\u30A7\u30C3\u30AF");
19
+ const id=input.args[0]?.trim()??"<ID>";const notes=statusNotes(doc,id,review);if(review!==null&&review["status"]==="completed"){if(typeof review["summary"]==="string"&&review["summary"]!=="")notes.push(`\u8981\u7D04: ${review["summary"]}`);notes.push(`${checkCounts(review)}\u3002\u751F\u6210\u65E5\u6642 ${String(review["generated_at"]??"\u4E0D\u660E")}`)}if(data["stale"]===true)notes.push(`\u3053\u306E\u7D50\u679C\u306F${doc.label}\u306E\u4FDD\u5B58\u3088\u308A\u524D\u306E\u3082\u306E\u3067\u3059\uFF08\u5185\u5BB9\u304C\u5909\u308F\u3063\u3066\u3044\u307E\u3059\uFF09\u3002\u627F\u8A8D\u7533\u8ACB\u306E\u524D\u306B\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044`);
20
20
  if(data["reason_editable"]===false){notes.push(data["reason_lock_reason"]==="approved"?"\u627F\u8A8D\u6E08\u307F\u306E\u305F\u3081\u3001\u78BA\u8A8D\u6E08\u307F\u306E\u7406\u7531\u306F\u5909\u66F4\u3067\u304D\u307E\u305B\u3093":"\u627F\u8A8D\u5F85\u3061\u306E\u9593\u306F\u3001\u78BA\u8A8D\u6E08\u307F\u306E\u7406\u7531\u3092\u5909\u66F4\u3067\u304D\u307E\u305B\u3093\uFF08\u5DEE\u3057\u623B\u3055\u308C\u308B\u3068\u5909\u66F4\u3067\u304D\u307E\u3059\uFF09")}notes.push("\u6307\u6458\u306E\u672C\u6587\u30FB\u5185\u8A33\uFF08details\uFF09\u30FB\u7406\u7531\u306E\u5168\u6587\u306F --o\
21
21
  utput json \u3067\u51FA\u307E\u3059");return notes}}var WAIT_FLAG={name:"--wait",summary:"\u751F\u6210\u304C\u7D42\u308F\u308B\uFF08completed / failed\uFF09\u307E\u3067\u5F85\u3064",takesValue:false};var TIMEOUT_FLAG={name:"--timeout",summary:`--wait \u3067\u5F85\u3064\u4E0A\u9650\u306E\u79D2\u6570\uFF08\u65E2\u5B9A ${WAIT_DEFAULT_SECONDS}\u30FB\u6700\u5927 ${WAIT_MAX_SECONDS}\uFF09`,takesValue:true,placeholder:"<\u79D2>"};function waitSeconds(input,doc){const timeout=positiveInteger(input.flags,
22
22
  TIMEOUT_FLAG.name);if(!input.flags.has(WAIT_FLAG.name)){if(timeout!==void 0)throw new UsageError("--timeout \u306F --wait \u3068\u4E00\u7DD2\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usageOf(doc,"ai-review","run"));return void 0}if(timeout!==void 0&&timeout>WAIT_MAX_SECONDS){throw new UsageError(`--timeout \u306F ${WAIT_MAX_SECONDS} \u79D2\u4EE5\u4E0B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u305D\u308C\u3088\u308A\u9577\u304F\u5F85\u3064\u306A\u3089 --wait \u3092\u5916\u3057\u3001\u3042\u3068\u3067 twp ${doc.
@@ -41,6 +41,7 @@ usage:`twp ${doc.name} ai-review get <${doc.label}ID>`,description:`GET ${SALES_
41
41
  \u4E00\u5EA6\u3082\u5B9F\u884C\u3057\u3066\u3044\u306A\u3044\u66F8\u985E\u3067\u306F\u7D50\u679C\u304C\u7A7A\u3067\u3059\uFF08\u30A8\u30E9\u30FC\u306B\u306F\u306A\u308A\u307E\u305B\u3093\uFF09\u3002
42
42
  --output table / text / tsv \u306F\u78BA\u8A8D\u3057\u305F\u89B3\u70B91\u4EF6\uFF1D1\u884C\uFF08${CHECK_COLUMNS.join(" / ")}\uFF09\u3067\u3001severity \u304C warning \u306E\u884C\u304C\u6307\u6458\u3067\u3059\u3002
43
43
  reason_judgment \u306F\u305D\u306E\u89B3\u70B9\u306B\u6DFB\u3048\u305F\u78BA\u8A8D\u6E08\u307F\u306E\u7406\u7531\u306E\u5224\u65AD\u3067\u3059\u3002
44
+ referenced_reason \u306F\u540C\u3058\u53D6\u5F15\u5148\u3067\u904E\u53BB\u306B\u627F\u8A8D\u3055\u308C\u305F\u540C\u3058\u89B3\u70B9\u306E\u5224\u65AD\u304C\u53C2\u8003\u3068\u3057\u3066\u6DFB\u3048\u3089\u308C\u3066\u3044\u308B\u304B\uFF08true/false\uFF09\u3067\u3059\u3002\u8B66\u544A\u306F\u6D88\u3048\u307E\u305B\u3093\u3002
44
45
  \u7406\u7531\u3092\u6DFB\u3048\u308B\u306E\u306F twp ${doc.name} ai-review-reason update <criterion_id> --${doc.name} <${doc.label}ID> \u3067\u3059\u3002`,flags:[],forbidden:documentForbidden,plan:input=>({method:"GET",path:reviewPath(input,doc,"get")}),summarize:checkRows,raw:reviewRaw,notes:getNotes(doc)}]}}function documentFlag(doc){return{name:`--${doc.name}`,summary:`${doc.label}\u306E ID\uFF08twp ${doc.name} list \u306E id \u5217\u306E\u6570\u5B57\u30FB\u5FC5\u9808\uFF09`,takesValue:true,placeholder:`\
45
46
  <${doc.label}ID>`}}var JUDGMENT_FLAG={name:"--judgment",summary:`\u5224\u65AD\uFF08${Object.keys(JUDGMENTS).join(" / ")}\u30FB\u5FC5\u9808\uFF09`,takesValue:true,placeholder:"<\u5224\u65AD>"};var REASON_FLAGS=[JUDGMENT_FLAG,{name:"--text",summary:`\u7406\u7531\u306E\u672C\u6587\uFF08${REASON_MAX_CHARS.toLocaleString()} \u6587\u5B57\u307E\u3067\uFF09`,takesValue:true,placeholder:"<\u7406\u7531>"},{name:"--text-file",summary:"\u7406\u7531\u306E\u672C\u6587\u3092\u8AAD\u3080\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",
46
47
  takesValue:true,placeholder:"<\u30D1\u30B9>"},{name:"--label",summary:"\u8A18\u9332\u306B\u6B8B\u3059\u6307\u6458\u306E\u30E9\u30D9\u30EB\uFF08\u7701\u7565\u6642\u306F\u4FDD\u5B58\u6E08\u307F\u306E\u30C1\u30A7\u30C3\u30AF\u7D50\u679C\u304B\u3089\u88DC\u3046\uFF09",takesValue:true,placeholder:"<\u30E9\u30D9\u30EB>"}];function judgmentOf(input,doc){const raw=nonEmpty(input.flags,JUDGMENT_FLAG.name)?.trim();const list=Object.entries(JUDGMENTS).map(([key,label])=>`${key}\uFF08${label}\uFF09`).join("\
@@ -99,4 +100,4 @@ PR \u306E\u672C\u6587\u306B\u306F\u3001\u9078\u3093\u3060\u7406\u7531\u306E\u630
99
100
  \uFF09`,takesValue:true,placeholder:"<\u30D1\u30B9>"}],forbidden:reasonsForbidden,prepare:preparePublish,plan:publishPlan,plannedNotes:input=>["GitHub \u306B PR \u3092\u4F5C\u308A\u307E\u3059\u3002\u9589\u3058\u3066\u3082 PR \u306E\u672C\u6587\u306F\u5C65\u6B74\u306B\u6B8B\u308A\u3001\u4F7F\u3063\u305F\u7406\u7531\u306B\u306F PR \u756A\u53F7\u304C\u8A18\u9332\u3055\u308C\u307E\u3059\uFF08\u540C\u3058\u7406\u7531\u3067\u306F2\u5EA6\u3068\u4F5C\u308C\u307E\u305B\u3093\uFF09"," \u5B9B\u5148: \u30B5\u30FC\u30D0\u306B\u8A2D\u5B9A\u3055\u308C\u305F\u793E\u5185\u30CA\u30EC\u30C3\u30B8\
100
101
  \u306E\u30EA\u30DD\u30B8\u30C8\u30EA\uFF08\u65E2\u5B9A\u306E\u30D6\u30E9\u30F3\u30C1\u304B\u3089\u65B0\u3057\u3044\u30D6\u30E9\u30F3\u30C1\u3092\u5207\u308A\u307E\u3059\u3002\u30EA\u30DD\u30B8\u30C8\u30EA\u540D\u3068\u30D6\u30E9\u30F3\u30C1\u540D\u306F\u5FDC\u7B54\u306B\u51FA\u307E\u3059\uFF09",` \u8FFD\u8A18\u5148: ${targetPathOf(input)??DEFAULT_TARGET}`,` PR \u672C\u6587: \u9078\u3093\u3060\u7406\u7531 ${reasonIds(input,"publish").length} \u4EF6\u306E\u6307\u6458\u30FB\u5224\u65AD\u30FB\u7406\u7531\u306E\u539F\u6587\uFF08\u539F\u6587\u306F\u53D6\u5F15\u5148\u540D\u30FB\u6848\u4EF6\u540D\u306E\u691C\u67FB\u3092\u53D7\u3051\u307E\u305B\u3093\uFF09`],
101
102
  execute:async(input,ctx)=>{try{return await ctx.send(publishPlan(input))}catch(err){if(!refusedBeforeSending(err)){ctx.warn("PR \u306E\u4F5C\u6210\u306F\u9001\u4FE1\u3057\u307E\u3057\u305F\u304C\u3001\u7D50\u679C\u3092\u53D7\u3051\u53D6\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u4F5C\u6210\u6E08\u307F\u306E\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\u6253\u3061\u76F4\u3059\u524D\u306B twp ai-review-reason list \u306E knowledge_pr_number \u5217\u3067\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\u3002")}
102
- throw err}},summarize:body=>pick(prOf(body),["pull_request_number","pull_request_url","repository","branch","target_path"]),raw:body=>withoutResult(prOf(body)),notes:body=>[`PR \u3092\u4F5C\u308A\u307E\u3057\u305F: ${String(prOf(body)["pull_request_url"])}\uFF08\u81EA\u52D5\u3067\u306F\u30DE\u30FC\u30B8\u3055\u308C\u307E\u305B\u3093\u3002\u5185\u5BB9\u3092\u78BA\u304B\u3081\u3066\u30DE\u30FC\u30B8\u3057\u3066\u304F\u3060\u3055\u3044\uFF09`]}]};export{CRITERION_RE,WAIT_POLL_INTERVAL_MS,envelope,withoutResult,reviewOf,checksOf,checkCounts,reasonsMap,estimateAiReviewResources,invoiceAiReviewResources,contractAiReviewResources,aiReviewReasonDomain};
103
+ throw err}},summarize:body=>pick(prOf(body),["pull_request_number","pull_request_url","repository","branch","target_path"]),raw:body=>withoutResult(prOf(body)),notes:body=>[`PR \u3092\u4F5C\u308A\u307E\u3057\u305F: ${String(prOf(body)["pull_request_url"])}\uFF08\u81EA\u52D5\u3067\u306F\u30DE\u30FC\u30B8\u3055\u308C\u307E\u305B\u3093\u3002\u5185\u5BB9\u3092\u78BA\u304B\u3081\u3066\u30DE\u30FC\u30B8\u3057\u3066\u304F\u3060\u3055\u3044\uFF09`]}]};export{CRITERION_RE,WAIT_POLL_INTERVAL_MS,envelope,withoutResult,reviewOf,checksOf,checkCounts,reasonsMap,hasReferencedReason,estimateAiReviewResources,invoiceAiReviewResources,contractAiReviewResources,aiReviewReasonDomain};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{REDACTED,redactSecrets}from"./chunk-LDBYJPRD.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){
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
6
  var HEADER_TOKEN="[^\\s\"'`\\\\\\u0080-\\uFFFF]+";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}(?!(?:${AUTH_SCHEME}[ \\t]+)?(?:[$(]|\\*\\*\\*\uFF08))(${AUTH_SCHEME}[ \\t]+)\
@@ -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-YPULDSJ3.js";import{renderDocument,renderOutput}from"./chunk-PO35MCYP.js";import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-LDBYJPRD.js";import{parseOperationArgs}from"./chunk-RX5HWI4L.js";import{Resolver,requireDefaultProject}from"./chunk-RSSPNFSK.js";import{ResolveError}from"./chunk-HVZUXLQ4.js";import{ApiError,
3
+ import{loadDomain}from"./chunk-Z5NBJC77.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{parseOperations}from"./chunk-XMPHGOW4.js";import{parseCapacityProbe}from"./chunk-VYDPW2YO.js";import{validateHooks}from"./chunk-TTST7UDR.js";import{DEFAULT_CLAUDE_LAUNCHER,loadAiConfig}from"./chunk-FABDZBDZ.js";import{projectFileKey}from"./chunk-RMFLTSOV.js";import{isBoolishTrue}from"./chunk-5WGOHFAS.js";import{twpHomeDir}from"./chunk-RZVI6PMW.js";function stringField(value,key,fallback,warnings){if(value===void 0||value===null)return fallback;if(typeof value!=="string"||value.trim()===""){warnings.push(`claude_launcher.${key} \u306F\u7A7A\u3067\u306A\u3044\u6587\u5B57\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u65E2\u5B9A '${fallback}' \u3092\u4F7F\u3044\u307E\u3059\uFF09`);return fallback}return value.trim()}function argvField(value,key,fallback,warnings,allowEmpty){if(value===void 0||value===null)return fallback;
3
+ import{parseOperations}from"./chunk-CVX2YWHC.js";import{parseCapacityProbe}from"./chunk-VYDPW2YO.js";import{validateHooks}from"./chunk-TTST7UDR.js";import{DEFAULT_CLAUDE_LAUNCHER,loadAiConfig}from"./chunk-FABDZBDZ.js";import{projectFileKey}from"./chunk-RMFLTSOV.js";import{isBoolishTrue}from"./chunk-5WGOHFAS.js";import{twpHomeDir}from"./chunk-RZVI6PMW.js";function stringField(value,key,fallback,warnings){if(value===void 0||value===null)return fallback;if(typeof value!=="string"||value.trim()===""){warnings.push(`claude_launcher.${key} \u306F\u7A7A\u3067\u306A\u3044\u6587\u5B57\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u65E2\u5B9A '${fallback}' \u3092\u4F7F\u3044\u307E\u3059\uFF09`);return fallback}return value.trim()}function argvField(value,key,fallback,warnings,allowEmpty){if(value===void 0||value===null)return fallback;
4
4
  if(!Array.isArray(value)){warnings.push(`claude_launcher.${key} \u306F\u6587\u5B57\u5217\u306E\u914D\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u65E2\u5B9A [${fallback.join(", ")}] \u3092\u4F7F\u3044\u307E\u3059\uFF09`);return fallback}for(const v of value){if(typeof v!=="string"||v.trim()===""){warnings.push(`claude_launcher.${key} \u306E\u8981\u7D20\u306F\u7A7A\u3067\u306A\u3044\u6587\u5B57\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u65E2\u5B9A [${fallback.
5
5
  join(", ")}] \u3092\u4F7F\u3044\u307E\u3059\uFF09`);return fallback}}if(value.length===0&&!allowEmpty){warnings.push(`claude_launcher.${key} \u306F1\u3064\u4EE5\u4E0A\u306E\u5F15\u6570\u304C\u8981\u308A\u307E\u3059\uFF08\u65E2\u5B9A [${fallback.join(", ")}] \u3092\u4F7F\u3044\u307E\u3059\uFF09`);return fallback}return value.map(v=>v.trim())}function probeMatchField(value,warnings){const raw=stringField(value,"probe_match",DEFAULT_CLAUDE_LAUNCHER.probeMatch,warnings);try{new RegExp(raw,"m")}catch(err){
6
6
  warnings.push(`claude_launcher.probe_match \u306F\u6B63\u898F\u8868\u73FE\u3068\u3057\u3066\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093\uFF08${err.message}\uFF09\u3002\u65E2\u5B9A '${DEFAULT_CLAUDE_LAUNCHER.probeMatch}' \u3092\u4F7F\u3044\u307E\u3059`);return DEFAULT_CLAUDE_LAUNCHER.probeMatch}return raw}var NOT_YET_APPLIED=[{key:"probe",get:c=>c.probe},{key:"probe_match",get:c=>c.probeMatch},{key:"exec_args",get:c=>c.execArgs},{key:"active_args",get:c=>c.activeArgs}];function sameAsDefault(key,parsed){
@@ -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-ZGHJGHFQ.js")).agentLoopDomain,"ai-review-reason":async()=>(await import("./sales-ai-review-L5VW3DU3.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
- 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-73RVPBYM.js")).contractDomain,customer:async()=>(await import("./company-2CRWKBJL.js")).
5
- customerDomain,department:async()=>(await import("./department-GPVHVFFP.js")).departmentDomain,deposit:async()=>(await import("./deposit-3I3NV556.js")).depositDomain,estimate:async()=>(await import("./estimate-NLKTWCYI.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
- holidayDomain,"goal-sheet":async()=>(await import("./evaluation-VP7OFTBS.js")).goalSheetDomain,inquiry:async()=>(await import("./inquiry-4Q4BRYM3.js")).inquiryDomain,invoice:async()=>(await import("./invoice-BXSI6SMA.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-W4GHXMSE.js")).leaveDomain,license:async()=>(await import("./license-XSWDXSJE.js")).
7
- licenseDomain,media:async()=>(await import("./media-KWSFHGAQ.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")).
3
+ var LOADERS={agent:async()=>(await import("./agent-WTDLGRNM.js")).agentDomain,"agent-loop":async()=>(await import("./agent-loop-E5XWZV3V.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
+ 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
+ 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
+ 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-TDXLP4T6.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
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-AGNMPS4F.js")).taskDomain,teams:async()=>(await import("./teams-MZR3256V.js")).teamsDomain,user:async()=>(await import("./user-3IHEIFAT.js")).
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-4NC2C4TX.js")).workflowDomain};async function loadDomain(name){return LOADERS[name]()}export{loadDomain};
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,3 +1,3 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{redactSecretValues,redactSecrets}from"./chunk-LDBYJPRD.js";import{formatOutput}from"./chunk-74BPZOKU.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";function renderOutput(value,format,noRedact=false){if(noRedact)return formatOutput(value,format);const formatted=formatOutput(redactSecretValues(value),format);return format==="json"?formatted:redactSecrets(formatted)}function renderDocument(text,noRedact=false){const visible=stripTerminalControls(text);return noRedact?visible:redactSecrets(visible)}export{renderOutput,renderDocument};
3
+ import{redactSecretValues,redactSecrets}from"./chunk-H6XS5AMQ.js";import{formatOutput}from"./chunk-74BPZOKU.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";function renderOutput(value,format,noRedact=false){if(noRedact)return formatOutput(value,format);const formatted=formatOutput(redactSecretValues(value),format);return format==="json"?formatted:redactSecrets(formatted)}function renderDocument(text,noRedact=false){const visible=stripTerminalControls(text);return noRedact?visible:redactSecrets(visible)}export{renderOutput,renderDocument};
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.82.0":"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.84.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-OIVQGG34.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-QXXEYQZZ.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-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-WXXPS55F.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-SUYWHFJS.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-IKQCTKPH.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-XUIOLVEL.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-ZIRZVBH6.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-D65LPET6.js");process.exitCode=await runTaskLoop(
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-4KFKWIKY.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-PWAWH4NR.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-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-SYSUH2RP.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-R7BDYFEN.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-W6EKFG6P.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-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-57NA4OFE.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();
@@ -50,12 +50,12 @@ ${err.hint?`${err.hint}
50
50
  `);return 1}writeErr(`\u30A8\u30E9\u30FC: ${err.message}
51
51
  `);return 1}}async function runLogin(options){return run(async()=>{const profile=resolveProfile(options.profile);const io=makeIo(options.cliVersion);if(options.method==="password"){await passwordLogin(profile,{tenantCode:options.tenant??void 0},process.env,io)}else if(options.method==="token"){await tokenLogin(profile,process.env,io)}else{await browserLogin(profile,process.env,io,{noBrowser:options.noBrowser})}})}async function runLogout(options){return run(async()=>{const profile=resolveProfile(
52
52
  options.profile);const creds=loadCredentials(profile.name);if(!creds){writeOut(`\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u300C${profile.name}\u300D\u306F\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u307E\u305B\u3093\u3002
53
- `);return}const{describeLogoutImpact,findLoopsUsingProfile}=await import("./logout-guard-57LHDX6L.js");const found=findLoopsUsingProfile(profile.name,options.logoutGuard);if(found.users.length>0||found.undetermined.length>0){writeErr(describeLogoutImpact(profile.name,found,options.force===true));if(options.force!==true)throw new LogoutRefusedError}const apiUrl=effectiveApiUrl(profile,creds.api_url);const revoked=await httpFetch(`${apiUrl}/api/v2/auth/logout`,{method:"POST",headers:{Accept:"applic\
53
+ `);return}const{describeLogoutImpact,findLoopsUsingProfile}=await import("./logout-guard-FCCJSF5V.js");const found=findLoopsUsingProfile(profile.name,options.logoutGuard);if(found.users.length>0||found.undetermined.length>0){writeErr(describeLogoutImpact(profile.name,found,options.force===true));if(options.force!==true)throw new LogoutRefusedError}const apiUrl=effectiveApiUrl(profile,creds.api_url);const revoked=await httpFetch(`${apiUrl}/api/v2/auth/logout`,{method:"POST",headers:{Accept:"applic\
54
54
  ation/json",Authorization:`Bearer ${creds.token}`}}).then(res=>res.ok,()=>false);await deleteCredentials(profile.name);writeOut(`\u2705 \u30ED\u30B0\u30A2\u30A6\u30C8\u3057\u307E\u3057\u305F\uFF08\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB: ${profile.name} / \u30C8\u30FC\u30AF\u30F3: ${maskToken(creds.token)}\uFF09
55
55
  `);if(!revoked){writeOut("\u26A0 \u30B5\u30FC\u30D0\u5074\u306E\u30C8\u30FC\u30AF\u30F3\u5931\u52B9\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF08\u30AA\u30D5\u30E9\u30A4\u30F3\u7B49\uFF09\u3002TWP \u306E\u300C\u8A2D\u5B9A > CLI\u7AEF\u672B\u300D\u304B\u3089\u3082\u5931\u52B9\u3067\u304D\u307E\u3059\u3002\n")}})}async function runWhoami(options){return run(async()=>{const profile=resolveProfile(options.profile);const structured=options.output!==void 0||options.query!==void 0;let format=null;if(structured){
56
56
  const{resolveOutputFormat,OUTPUT_FORMATS}=await import("./format-F6PPBPY5.js");format=resolveOutputFormat({...options.output!==void 0?{flag:options.output}:{},isTty:process.stdout.isTTY===true});if(format===null){throw new UsageError(`--output \u306B\u300C${options.output??""}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${OUTPUT_FORMATS.join(" / ")} \u3067\u3059`)}}const stored=loadCredentials(profile.name);const apiUrl=effectiveApiUrl(
57
57
  profile,stored?.api_url);const session=new AuthSession(profile.name,apiUrl);const client=new TwpApiClient(apiUrl,session,httpFetch,options.cliVersion);const me=await client.get("/api/v2/user");const user=me.user;const creds=loadCredentials(profile.name);if(format!==null){const value={id:user?.id??null,name:user?.name??null,email:user?.email??null,tenant_code:user?.tenant_code??null,role:user?.role??null,is_admin:user?.is_admin??null,profile:profile.name,api_url:apiUrl,expires_at:creds?.token_expires_at??
58
- null};const{evaluateQuery}=await import("./query-XEOVFI4D.js");const{renderOutput}=await import("./render-4SBLHU4J.js");const selected=options.query===void 0?value:await evaluateQuery(options.query,value);const text=renderOutput(selected,format);process.stdout.write(text.endsWith("\n")?text:`${text}
58
+ null};const{evaluateQuery}=await import("./query-XEOVFI4D.js");const{renderOutput}=await import("./render-2QURVC5V.js");const selected=options.query===void 0?value:await evaluateQuery(options.query,value);const text=renderOutput(selected,format);process.stdout.write(text.endsWith("\n")?text:`${text}
59
59
  `);return}writeOut(`\u30E6\u30FC\u30B6\u30FC: ${user?.name??"?"}\uFF08${user?.email??"?"}\uFF09
60
60
  `);writeOut(`ID: ${user?.id??"?"}
61
61
  `);writeOut(`\u30C6\u30CA\u30F3\u30C8: ${user?.tenant_code??"?"}