@tocca-systems/twp-cli 0.71.0 → 0.72.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 +50 -2
- package/dist/{agent-SFX3ZVOB.js → agent-C37HJDJY.js} +1 -1
- package/dist/{agent-loop-OW6ZMQKN.js → agent-loop-XFYCEK5S.js} +3 -2
- package/dist/{ai-dispatch-YABGNMHQ.js → ai-dispatch-GONY4JAY.js} +2 -2
- package/dist/{analysis-HMOECNWG.js → analysis-THRX37XW.js} +2 -2
- package/dist/{announcement-Q642UMYK.js → announcement-4R7XFO5W.js} +1 -1
- package/dist/{api-command-4HXHTIQT.js → api-command-YMEYR2LG.js} +3 -3
- package/dist/{app-JCUJJQGB.js → app-37IMKCQZ.js} +4 -4
- package/dist/{attendance-correct-DWVFYL2Y.js → attendance-correct-Z5BGCSCL.js} +1 -1
- package/dist/{attendance-lists-772Y3ZWA.js → attendance-lists-357A3O5Y.js} +1 -1
- package/dist/{backlog-FG3Y5JTE.js → backlog-KF63TCEG.js} +1 -1
- package/dist/{budget-5RPOQZN7.js → budget-W7JXDJ4J.js} +1 -1
- package/dist/{capacity-report-command-ACWK2MR5.js → capacity-report-command-QSV3A6EX.js} +1 -1
- package/dist/charter-command-A4MFFBGE.js +3 -0
- package/dist/{chunk-QJAZLPA3.js → chunk-2CIQOXPK.js} +1 -1
- package/dist/chunk-35MQ27I6.js +4 -0
- package/dist/{chunk-NVMJXFBT.js → chunk-45OL54MY.js} +1 -1
- package/dist/chunk-5VZ54H2J.js +11 -0
- package/dist/{chunk-WBUYPDJH.js → chunk-A3FJEUDB.js} +1 -1
- package/dist/{chunk-GLKZ4ZZY.js → chunk-ARB4QFWO.js} +1 -1
- package/dist/{chunk-WMEGP2BT.js → chunk-BBOWZVCC.js} +1 -1
- package/dist/{chunk-OREF2S43.js → chunk-BYUV3D5Z.js} +2 -2
- package/dist/chunk-CCHPF23L.js +31 -0
- package/dist/{chunk-7EJOKJLV.js → chunk-DAXVAUV4.js} +1 -1
- package/dist/{chunk-LUBON4AA.js → chunk-DFHOCPA5.js} +2 -2
- package/dist/{chunk-DLY2IN3G.js → chunk-DPIJF3EN.js} +1 -1
- package/dist/{chunk-APPYZQNC.js → chunk-IVKWLJCY.js} +1 -1
- package/dist/{chunk-DAOC7VRM.js → chunk-K4JE26L6.js} +1 -1
- package/dist/{charter-command-LIX2JXRJ.js → chunk-LH4AZKLT.js} +1 -1
- package/dist/{chunk-XGYOJHZC.js → chunk-MP6YIILX.js} +1 -1
- package/dist/{chunk-HNG6MF26.js → chunk-MVZFZAT4.js} +69 -65
- package/dist/{chunk-RRHAX7RK.js → chunk-MYBIPHZ7.js} +1 -1
- package/dist/{chunk-BRE7D5AY.js → chunk-NBOA4T7F.js} +1 -1
- package/dist/{chunk-MAAICW7T.js → chunk-QS5VWTI3.js} +1 -1
- package/dist/{chunk-HBEOI456.js → chunk-QVID3GT4.js} +1 -1
- package/dist/chunk-T3C2BAVA.js +49 -0
- package/dist/chunk-TTST7UDR.js +20 -0
- package/dist/{chunk-XCPZ4R65.js → chunk-UGDB4QTS.js} +1 -1
- package/dist/{chunk-CCBNU5Y3.js → chunk-UXEYWMPO.js} +9 -8
- package/dist/{chunk-F4PGPJOI.js → chunk-VEA72AKG.js} +1 -1
- package/dist/{chunk-G4TZFGNN.js → chunk-VYDPW2YO.js} +2 -19
- package/dist/{chunk-JA7HEJOU.js → chunk-WYYHMKF7.js} +1 -1
- package/dist/{chunk-OMWCSE4P.js → chunk-XF4DN44V.js} +2 -2
- package/dist/{chunk-LJVAOWZI.js → chunk-XMPHGOW4.js} +4 -32
- package/dist/{chunk-P2DSHLHD.js → chunk-Z6T5M3NJ.js} +2 -2
- package/dist/cli.js +33 -9
- package/dist/{commands-4C6TJ4WG.js → commands-GMUQCBFQ.js} +1 -1
- package/dist/{commands-HH2DW2QJ.js → commands-MYGPEYBE.js} +20 -19
- package/dist/{company-4DHVAW25.js → company-W2OBOOKJ.js} +2 -2
- package/dist/{completion-JDD3SNUO.js → completion-EMY4WDII.js} +3 -3
- package/dist/{contract-PT7VW4IE.js → contract-LTQVLI7A.js} +2 -2
- package/dist/{department-C6WIZPBS.js → department-GZBKUFON.js} +1 -1
- package/dist/{deposit-OEYFPEZG.js → deposit-HCMV2MBU.js} +1 -1
- package/dist/domain-knowledge-32TTPFVY.js +79 -0
- package/dist/{estimate-4BUJQ3TP.js → estimate-ILUXZJG3.js} +3 -3
- package/dist/{evaluation-GLXQ54F6.js → evaluation-PE7QHATW.js} +1 -1
- package/dist/{expense-QE3WIJTN.js → expense-K2JPBP2M.js} +1 -1
- package/dist/{fiscal-year-YJWFQN4P.js → fiscal-year-XY4KA67D.js} +1 -1
- package/dist/{inquiry-ORB3ROAJ.js → inquiry-FEQWFU7Z.js} +1 -1
- package/dist/{invoice-XLX5KS2T.js → invoice-WOQZUL66.js} +2 -2
- package/dist/{job-title-UDF6I3BP.js → job-title-CDAMB4Q2.js} +1 -1
- package/dist/{knowledge-6A3MCIRY.js → knowledge-VM6P4XDQ.js} +57 -39
- package/dist/{leave-3BJMXI7Q.js → leave-TEXQJURZ.js} +2 -2
- package/dist/{license-OMIZUUTW.js → license-ZSZM5OSK.js} +1 -1
- package/dist/{logout-guard-2Y7HPIKN.js → logout-guard-3B767ADS.js} +2 -2
- package/dist/{media-FGEV2OI2.js → media-TAS7FF5K.js} +3 -3
- package/dist/{notification-2IESSY5E.js → notification-T46TUUMO.js} +1 -1
- package/dist/{oneshot-4XO5HIJR.js → oneshot-XRN744YK.js} +1 -1
- package/dist/plan-submit-YBTGYQD7.js +4 -0
- package/dist/{position-CR6P4WC5.js → position-BKZQH6A3.js} +1 -1
- package/dist/{project-JJEMEO2W.js → project-KL4DH2XE.js} +1 -1
- package/dist/{prospect-QG6X7ALK.js → prospect-BEB5AXPM.js} +2 -2
- package/dist/{purchase-Z6ENEOZM.js → purchase-P37K6MVO.js} +3 -3
- package/dist/{receivable-ZBDXXMHX.js → receivable-5N3KL3L4.js} +1 -1
- package/dist/{redmine-EIFHMLNE.js → redmine-K7A7AEUA.js} +1 -1
- package/dist/{registry-DC75DVLY.js → registry-GGKX3MCP.js} +1 -1
- package/dist/{report-TTXGXSR3.js → report-PZ4GMMK2.js} +1 -1
- package/dist/{revision-command-TYBPPUAF.js → revision-command-KT7NMRES.js} +1 -1
- package/dist/{run-R5CU36O3.js → run-65IJLMKQ.js} +2 -2
- package/dist/{sales-ai-review-6TDJFHDL.js → sales-ai-review-NBNSHUUP.js} +1 -1
- package/dist/{sales-master-H5HMVBJV.js → sales-master-23PVQUTQ.js} +2 -2
- package/dist/{sales-numbering-Q5KRM63Y.js → sales-numbering-FQ7YPQME.js} +1 -1
- package/dist/{schedule-command-4UBCTNRI.js → schedule-command-RVKP6QQS.js} +1 -1
- package/dist/{search-OSV6TA6Q.js → search-NYY22NHK.js} +1 -1
- package/dist/{segment-YOUY4PZC.js → segment-2C3MYZCV.js} +1 -1
- package/dist/server-settings-ELHHMBBK.js +4 -0
- package/dist/{server-skills-JEFNP63E.js → server-skills-EEPBSOPO.js} +1 -1
- package/dist/{setup-HHPKB6N4.js → setup-74LO2SXN.js} +2 -2
- package/dist/{skill-RH5MBRXZ.js → skill-RKCTUJHW.js} +1 -1
- package/dist/skill-check-2ILLHGDQ.js +29 -0
- package/dist/skill-command-4VMZ2H6A.js +3 -0
- package/dist/{skill-manage-command-S2RLIHTA.js → skill-manage-command-HPJQOTQK.js} +1 -1
- package/dist/{supplier-payment-EJTFKAKY.js → supplier-payment-G2BGSGLA.js} +2 -2
- package/dist/{support-FR3KY63E.js → support-E3PBMVG4.js} +1 -1
- package/dist/{task-AQSKV7VL.js → task-N6OVWNAT.js} +2 -2
- package/dist/{user-PRGHG3HM.js → user-VODWJQZI.js} +2 -2
- package/dist/{user-contract-type-K7CLKCEE.js → user-contract-type-7AVII6SV.js} +1 -1
- package/dist/{worker-agent-WDYZTQ5C.js → worker-agent-KRMY2RKK.js} +1 -1
- package/dist/{workflow-S25JXGWN.js → workflow-GWEN7NSQ.js} +1 -1
- package/package.json +1 -1
- package/dist/chunk-D5EYI7S3.js +0 -48
- package/dist/chunk-KDH3KWPO.js +0 -4
- package/dist/chunk-YUS4VPNA.js +0 -11
- package/dist/plan-submit-SRQJHV2X.js +0 -4
- package/dist/server-settings-BGVJNHAV.js +0 -4
- package/dist/skill-command-4V2GT73D.js +0 -3
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
|
+
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
+
import{isModeId,isPermissionModeId}from"./chunk-2LOT54OO.js";import{API_TOKEN,HELP_TOKEN,isDomainName}from"./chunk-35MQ27I6.js";import{splitFlagToken}from"./chunk-QQRJLH6B.js";var BUILTIN_COMMANDS=["login","logout","whoami","update","task-loop"];var TASK_LOOP_ACTIONS=["run","status","stop","schedule","setup","charter","skill","settings","plan","capacity"];var VALUE_FLAGS=new Set(["-p","--print","--profile","--tenant","--mode","--permission-mode","--model","--allowed-tools","--disallowed-tools","--project","--engine","--interval","--max-cycles","--ai","--workspace","--ai-config-file","--now","--counts","--gate","--file","--out","--revision","--dir","--from","--to","--c\
|
|
4
|
+
onfig","--output","--query"]);var BOOLEAN_FLAGS=new Set(["-h","--help","-v","--version","--no-tui","--doctor","--password","--token","--no-browser","--safe","--daemon","--force-runner","--force","--drain","--yes","-y","--no-ai-config-file","--verbose","--all","--empty","--check","--dry-run","--debug","--refresh"]);function dispatch(argv,limit=2){const tokens=[];const indexes=[];let truncated=false;for(let i=0;i<argv.length;i++){const arg=argv[i];if(arg===void 0)continue;if(arg.startsWith("-")&&arg!==
|
|
5
|
+
"-"){const{name,value:inline}=splitFlagToken(arg);if(BOOLEAN_FLAGS.has(name)){if(inline!==void 0){truncated=true;break}continue}if(VALUE_FLAGS.has(name)){if(inline!==void 0)continue;const next=argv[i+1];if(next!==void 0&&(!next.startsWith("-")||next==="-"))i++;continue}truncated=true;break}if(arg===""||arg==="-")continue;if(tokens.length>=limit)break;tokens.push(arg);indexes.push(i)}return{tokens,indexes,truncated}}function isBuiltin(token){return token!==void 0&&BUILTIN_COMMANDS.includes(token)}
|
|
6
|
+
function isTaskLoopAction(token){return token!==void 0&&TASK_LOOP_ACTIONS.includes(token)}function resolveRoute(result){const{tokens,indexes}=result;const[first,second]=tokens;const firstIndex=indexes[0];if(first===void 0||firstIndex===void 0)return{kind:"none",consumed:[]};const consumed=[firstIndex];const secondIndex=indexes[1];if(isBuiltin(first)){if(first==="task-loop"&&isTaskLoopAction(second)){if(secondIndex!==void 0)consumed.push(secondIndex);return{kind:"builtin",command:first,action:second,
|
|
7
|
+
consumed}}return{kind:"builtin",command:first,...first==="task-loop"?{action:"run"}:{},consumed}}if(second!==void 0&&secondIndex!==void 0)consumed.push(secondIndex);return{kind:"domain",domain:first,...second!==void 0?{operation:second}:{},consumed}}var GLOBAL_FLAGS=new Set(["-h","--help","-v","--version","--profile","--output","--query","--dry-run","--debug","--yes","-y","--refresh"]);function parseArgv(argv){const out={command:"tui",safe:false,daemon:false,forceRunner:false,stopForce:false,logoutForce:false,stopDrain:false,noTui:false,doctor:false,yes:false,skillAll:false,planEmpty:false,planCheck:false,noAiConfigFile:false,verbose:false,loginMethod:"browser",loginNoBrowser:false,promptFromStdin:false,domainArgv:[],domainHelp:false,dryRun:false,
|
|
8
|
+
debug:false,refresh:false,unknown:[],allowedTools:[],disallowedTools:[]};const route=resolveRoute(dispatch(argv));const consumed=new Set;const[firstIndex,secondIndex]=route.consumed;if(route.kind==="builtin"){out.command=route.command;if(route.action!==void 0)out.taskLoopAction=route.action;for(const index of route.consumed)consumed.add(index)}else if(route.kind==="domain"){if(route.domain===HELP_TOKEN){if(route.operation===void 0){out.command="help";if(firstIndex!==void 0)consumed.add(firstIndex)}else if(isDomainName(
|
|
9
|
+
route.operation)){out.command="domain";out.domain=route.operation;out.domainHelp=true;if(firstIndex!==void 0)consumed.add(firstIndex);if(secondIndex!==void 0)consumed.add(secondIndex)}else if(route.operation===API_TOKEN){out.command="api";out.domainHelp=true;if(firstIndex!==void 0)consumed.add(firstIndex);if(secondIndex!==void 0)consumed.add(secondIndex)}}else if(route.domain===API_TOKEN){out.command="api";if(firstIndex!==void 0)consumed.add(firstIndex)}else if(isDomainName(route.domain)){out.command=
|
|
10
|
+
"domain";out.domain=route.domain;if(route.operation!==void 0)out.operation=route.operation;for(const index of route.consumed)consumed.add(index)}}const hasSubcommandToken=route.kind==="builtin"||route.kind==="domain"&&(route.domain===HELP_TOKEN||route.domain===API_TOKEN||isDomainName(route.domain));const isDomainRoute=out.command==="domain"||out.command==="api";const takeValue=(i,flag,inline)=>{const value=inline??argv[i+1];if(value===void 0||inline===void 0&&value.startsWith("-")){out.unknown.push(
|
|
11
|
+
flag);return{step:0}}if(value.trim()===""){out.unknown.push(inline===void 0?`${flag} `:`${flag}=${inline}`);return{step:0}}return{value,step:inline===void 0?1:0}};let optionsClosed=false;for(let i=0;i<argv.length;i++){if(consumed.has(i))continue;const raw=argv[i];if(raw===void 0)continue;if(isDomainRoute&&raw==="--")optionsClosed=true;const{name:arg,value:inline}=splitFlagToken(raw);if(isDomainRoute&&(optionsClosed||!GLOBAL_FLAGS.has(arg))){out.domainArgv.push(raw);continue}if(inline!==void 0&&BOOLEAN_FLAGS.
|
|
12
|
+
has(arg)){out.unknown.push(raw);continue}switch(arg){case"-h":case"--help":if(isDomainRoute)out.domainHelp=true;else out.command="help";break;case"-v":case"--version":out.command="version";break;case"--no-tui":out.noTui=true;break;case"--doctor":out.doctor=true;break;case"--password":out.loginMethod="password";break;case"--token":out.loginMethod="token";break;case"--no-browser":out.loginNoBrowser=true;break;case"--profile":{const{value,step}=takeValue(i,"--profile",inline);if(value!==void 0){out.
|
|
13
|
+
profile=value;i+=step}break}case"-p":case"--print":{const next=inline??argv[i+1];const step=inline===void 0?1:0;if(hasSubcommandToken){out.unknown.push(raw)}else if(next==="-"){out.command="print";out.promptFromStdin=true;out.prompt="";i+=step}else if(next!==void 0&&(inline!==void 0||!next.startsWith("-"))){out.command="print";out.prompt=next;i+=step}else{out.unknown.push(raw)}break}case"--output":{const{value,step}=takeValue(i,"--output",inline);if(value!==void 0){out.output=value;i+=step}break}case"\
|
|
14
|
+
--query":{const{value,step}=takeValue(i,"--query",inline);if(value!==void 0){out.query=value;i+=step}break}case"--dry-run":out.dryRun=true;break;case"--debug":out.debug=true;break;case"--refresh":out.refresh=true;break;case"--tenant":{const{value,step}=takeValue(i,"--tenant",inline);if(value!==void 0){out.tenant=value;i+=step}break}case"--mode":{const next=inline??argv[i+1];const step=inline===void 0?1:0;if(isModeId(next)){out.mode=next;i+=step}else if(next!==void 0&&(inline!==void 0||!next.startsWith(
|
|
15
|
+
"-"))){out.unknown.push(inline!==void 0?raw:`--mode ${next}`);i+=step}else{out.unknown.push("--mode")}break}case"--permission-mode":{const next=inline??argv[i+1];const step=inline===void 0?1:0;if(isPermissionModeId(next)){out.permissionMode=next;i+=step}else if(next!==void 0&&(inline!==void 0||!next.startsWith("-"))){out.unknown.push(inline!==void 0?raw:`--permission-mode ${next}`);i+=step}else{out.unknown.push("--permission-mode")}break}case"--allowed-tools":case"--disallowed-tools":{const{value,
|
|
16
|
+
step}=takeValue(i,arg,inline);if(value!==void 0){(arg==="--allowed-tools"?out.allowedTools:out.disallowedTools).push(value);i+=step}break}case"--model":{const{value,step}=takeValue(i,"--model",inline);if(value!==void 0){out.model=value;i+=step}break}case"--safe":out.safe=true;break;case"--daemon":out.daemon=true;break;case"--force-runner":out.forceRunner=true;break;case"--force":out.stopForce=true;break;case"--drain":out.stopDrain=true;break;case"--project":{const{value,step}=takeValue(i,"--proj\
|
|
17
|
+
ect",inline);if(value!==void 0){out.project=value;i+=step}break}case"--engine":{const{value,step}=takeValue(i,"--engine",inline);if(value!==void 0){out.engine=value;i+=step}break}case"--interval":case"--max-cycles":{const{value,step}=takeValue(i,arg,inline);if(value!==void 0){const n=Number.parseInt(value,10);if(Number.isInteger(n)&&n>0){if(arg==="--interval")out.interval=n;else out.maxCycles=n}else{out.unknown.push(inline!==void 0?raw:`${arg} ${value}`)}i+=step}break}case"--yes":case"-y":out.yes=
|
|
18
|
+
true;break;case"--ai":{const{value:v,step}=takeValue(i,"--ai",inline);if(v!==void 0){out.ais=[...out.ais??[],v];i+=step}break}case"--no-ai-config-file":out.noAiConfigFile=true;break;case"--workspace":{const{value:v,step}=takeValue(i,"--workspace",inline);if(v!==void 0){out.workspace=v;i+=step}break}case"--ai-config-file":{const{value:v,step}=takeValue(i,"--ai-config-file",inline);if(v!==void 0){out.aiConfigFile=v;i+=step}break}case"--verbose":out.verbose=true;break;case"--now":{const{value:v,step}=takeValue(
|
|
19
|
+
i,"--now",inline);if(v!==void 0){out.scheduleNow=v;i+=step}break}case"--counts":{const{value:v,step}=takeValue(i,"--counts",inline);if(v!==void 0){out.scheduleCounts=v;i+=step}break}case"--gate":{const{value:v,step}=takeValue(i,"--gate",inline);if(v!==void 0){out.scheduleGate=v;i+=step}break}case"--file":{if(inline===void 0&&argv[i+1]==="-"){out.charterFile="-";i+=1;break}const{value:v,step}=takeValue(i,"--file",inline);if(v!==void 0){out.charterFile=v;i+=step}break}case"--out":{const{value:v,step}=takeValue(
|
|
20
|
+
i,"--out",inline);if(v!==void 0){out.charterOut=v;i+=step}break}case"--revision":{const{value:v,step}=takeValue(i,"--revision",inline);if(v!==void 0){out.charterRevision=v;i+=step}break}case"--from":{const{value:v,step}=takeValue(i,"--from",inline);if(v!==void 0){out.revisionFrom=v;i+=step}break}case"--to":{const{value:v,step}=takeValue(i,"--to",inline);if(v!==void 0){out.revisionTo=v;i+=step}break}case"--dir":{const{value:v,step}=takeValue(i,"--dir",inline);if(v!==void 0){out.skillDir=v;i+=step}
|
|
21
|
+
break}case"--config":{const{value:v,step}=takeValue(i,"--config",inline);if(v!==void 0){out.skillConfig=v;i+=step}break}case"--all":out.skillAll=true;break;case"--empty":out.planEmpty=true;break;case"--check":out.planCheck=true;break;default:if(out.command==="task-loop"&&out.taskLoopAction==="charter"&&out.charterOp===void 0&&isRevisionAwareOp(raw)){out.charterOp=raw;break}if(out.command==="task-loop"&&out.taskLoopAction==="schedule"){if(out.scheduleOp===void 0&&isScheduleOp(raw)){out.scheduleOp=
|
|
22
|
+
raw;break}if(out.scheduleOp==="config"&&out.scheduleConfigOp===void 0&&(raw==="pull"||raw==="push")){out.scheduleConfigOp=raw;break}if(out.scheduleOp==="delete"&&out.scheduleId===void 0&&!raw.startsWith("-")){out.scheduleId=raw;break}}if(out.command==="task-loop"&&out.taskLoopAction==="settings"&&out.settingsOp===void 0&&(raw==="push"||raw==="pull")){out.settingsOp=raw;break}if(out.command==="task-loop"&&out.taskLoopAction==="plan"&&out.planOp===void 0&&raw==="submit"){out.planOp="submit";break}
|
|
23
|
+
if(out.command==="task-loop"&&out.taskLoopAction==="capacity"&&out.capacityOp===void 0&&raw==="report"){out.capacityOp="report";break}if(out.command==="task-loop"&&out.taskLoopAction==="skill"){if(out.skillOp===void 0&&(isRevisionAwareOp(raw)||isSkillManageOp(raw)||raw==="check")){out.skillOp=raw;break}if(out.skillOp!==void 0&&out.skillName===void 0&&!raw.startsWith("-")){out.skillName=raw;break}}out.unknown.push(raw)}}if(out.command!=="login"&&out.loginMethod!=="browser"){out.unknown.push(out.loginMethod===
|
|
24
|
+
"password"?"--password":"--token");out.loginMethod="browser"}if(out.permissionMode!==void 0&&out.command!=="tui"&&out.command!=="print"){out.unknown.push("--permission-mode");delete out.permissionMode}if(out.command!=="tui"&&out.command!=="print"){if(out.allowedTools.length>0)out.unknown.push("--allowed-tools");if(out.disallowedTools.length>0)out.unknown.push("--disallowed-tools");out.allowedTools=[];out.disallowedTools=[]}if(out.loginNoBrowser&&!(out.command==="login"&&out.loginMethod==="browse\
|
|
25
|
+
r")){out.unknown.push("--no-browser");out.loginNoBrowser=false}if(out.command==="logout"&&out.stopForce){out.logoutForce=true;out.stopForce=false}if(out.command!=="task-loop"){if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.stopForce)out.unknown.push("--force");if(out.stopDrain)out.unknown.push("--drain");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--i\
|
|
26
|
+
nterval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles");if(out.project!==void 0)out.unknown.push("--project");if(out.verbose)out.unknown.push("--verbose");if(out.scheduleNow!==void 0)out.unknown.push("--now");if(out.scheduleCounts!==void 0)out.unknown.push("--counts");if(out.scheduleGate!==void 0)out.unknown.push("--gate");if(out.ais!==void 0)out.unknown.push("--ai");if(out.workspace!==void 0)out.unknown.push("--workspace");if(out.aiConfigFile!==void 0)out.unknown.push("--ai-config-\
|
|
27
|
+
file");if(out.noAiConfigFile)out.unknown.push("--no-ai-config-file");if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision");if(out.skillDir!==void 0)out.unknown.push("--dir");if(out.skillAll)out.unknown.push("--all");if(out.skillConfig!==void 0)out.unknown.push("--config");if(out.revisionFrom!==void 0)out.unknown.push("--from");if(out.revisionTo!==void 0)out.unknown.push("--to");if(out.
|
|
28
|
+
planEmpty)out.unknown.push("--empty");if(out.planCheck)out.unknown.push("--check")}if(out.yes&&out.command!=="task-loop"&&!isDomainRoute)out.unknown.push("--yes");const acceptsOutput=isDomainRoute||out.command==="whoami"||out.command==="task-loop"&&out.taskLoopAction==="skill"&&(out.skillOp==="list"||out.skillOp==="show"||out.skillOp==="check");if(!acceptsOutput){if(out.output!==void 0)out.unknown.push("--output");if(out.query!==void 0)out.unknown.push("--query")}else if(out.command==="task-loop"&&
|
|
29
|
+
out.skillOp==="check"&&out.query!==void 0){out.unknown.push("--query")}if(!isDomainRoute){if(out.dryRun)out.unknown.push("--dry-run");if(out.debug)out.unknown.push("--debug");if(out.refresh)out.unknown.push("--refresh")}if(out.command==="api"&&out.refresh){out.unknown.push("--refresh");out.refresh=false}if(out.command==="task-loop"&&(out.taskLoopAction!=="schedule"||out.scheduleOp!==void 0)){if(out.verbose)out.unknown.push("--verbose");if(out.scheduleNow!==void 0)out.unknown.push("--now");if(out.
|
|
30
|
+
scheduleCounts!==void 0)out.unknown.push("--counts");if(out.scheduleGate!==void 0)out.unknown.push("--gate")}if(out.command==="task-loop"&&out.taskLoopAction!=="stop"&&out.stopForce){out.unknown.push("--force")}if(out.command==="task-loop"&&out.taskLoopAction!=="stop"&&out.stopDrain){out.unknown.push("--drain")}if(out.command==="task-loop"&&out.taskLoopAction==="stop"&&out.stopForce&&out.stopDrain){out.unknown.push("--force \u3068 --drain \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093");
|
|
31
|
+
out.stopForce=false;out.stopDrain=false}if(out.command==="task-loop"&&out.taskLoopAction!=="setup"){const yesConfirms=out.taskLoopAction==="charter"||out.taskLoopAction==="skill"||out.taskLoopAction==="settings"||out.taskLoopAction==="schedule"&&out.scheduleOp!==void 0&&out.scheduleOp!=="list";if(out.yes&&!yesConfirms)out.unknown.push("--yes");if(out.ais!==void 0)out.unknown.push("--ai");if(out.workspace!==void 0)out.unknown.push("--workspace");if(out.aiConfigFile!==void 0)out.unknown.push("--ai\
|
|
32
|
+
-config-file");if(out.noAiConfigFile)out.unknown.push("--no-ai-config-file")}if(out.command==="task-loop"&&(out.taskLoopAction==="stop"||out.taskLoopAction==="status")){if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}if(out.command==="task-loop"&&
|
|
33
|
+
out.taskLoopAction==="setup"){if(out.engine!==void 0)out.unknown.push("--engine");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}if(out.command==="task-loop"&&out.taskLoopAction==="charter"){if(out.charterOp===void 0){out.unknown.push("charter \u306B\u306F push / pull / history / diff / revert \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\
|
|
34
|
+
\u3060\u3055\u3044")}if(out.charterOp!=="push"&&out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOp!=="push"&&out.charterOp!=="revert"&&out.charterRevision!==void 0){out.unknown.push("--revision")}pushRevisionFlagErrors(out,out.charterOp);if((out.charterOp==="history"||out.charterOp==="diff")&&out.yes)out.unknown.push("--yes");if(out.charterOp!=="pull"&&out.charterOut!==void 0)out.unknown.push("--out");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daem\
|
|
35
|
+
on");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="skill"){if(out.skillOp===void 0){out.unknown.push(SKILL_OP_REQUIRED)}else if(out.skillOp==="check"){if(out.skillName!==void 0)out.unknown.push("skill check \u306F\u30B9\u30AD\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u306E\u5168\u30B9\u30AD\u30EB\u3092\u691C\u67FB\u3057\u307E\u3059\uFF09");
|
|
36
|
+
if(out.skillAll)out.unknown.push("--all");if(out.yes)out.unknown.push("--yes")}else if(out.skillOp==="list"&&out.skillAll){out.unknown.push("--all")}else if(out.skillOp==="list"&&out.skillName!==void 0){out.unknown.push(`skill list \u306F\u30B9\u30AD\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093: ${out.skillName}`)}else if(out.skillOp==="list"){}else if(out.skillOp!=="push"&&out.skillOp!=="pull"&&out.skillAll){out.unknown.push(`skill ${out.skillOp} \u306F --all \u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093\uFF08\u30B9\u30AD\u30EB\u540D\u30921\u3064\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09`)}else if(out.
|
|
37
|
+
skillName===void 0&&!out.skillAll){out.unknown.push(out.skillOp==="push"||out.skillOp==="pull"?`skill ${out.skillOp} \u306B\u306F\u30B9\u30AD\u30EB\u540D\u304B --all \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`:`skill ${out.skillOp} \u306B\u306F\u30B9\u30AD\u30EB\u540D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`)}else if(out.skillName!==void 0&&out.skillAll){out.unknown.push("\u30B9\u30AD\u30EB\u540D\u3068 --all \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093")}
|
|
38
|
+
if(out.skillOp!=="push"&&out.skillOp!=="revert"&&out.skillOp!=="delete"&&out.charterRevision!==void 0){out.unknown.push("--revision")}pushRevisionFlagErrors(out,out.skillOp);if((out.skillOp==="history"||out.skillOp==="diff"||out.skillOp==="list"||out.skillOp==="show")&&out.yes){out.unknown.push("--yes")}if(out.skillOp!=="push"&&out.skillOp!=="pull"&&out.skillDir!==void 0)out.unknown.push("--dir");if(out.skillOp!=="check"&&out.skillConfig!==void 0)out.unknown.push("--config");if(out.charterFile!==
|
|
39
|
+
void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="settings"){if(out.settingsOp===void 0)out.unknown.push(
|
|
40
|
+
"settings \u306B\u306F push / pull \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(out.settingsOp!=="push"&&out.charterFile!==void 0)out.unknown.push("--file");if(out.settingsOp!=="push"&&out.charterRevision!==void 0)out.unknown.push("--revision");if(out.settingsOp!=="pull"&&out.charterOut!==void 0)out.unknown.push("--out");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runne\
|
|
41
|
+
r");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="plan"){if(out.planOp===void 0)out.unknown.push("plan \u306B\u306F submit \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision");if(out.safe)out.unknown.push(
|
|
42
|
+
"--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="capacity"){if(out.capacityOp===void 0)out.unknown.push("capacity \u306B\u306F report \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(out.charterFile!==void 0)
|
|
43
|
+
out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction===
|
|
44
|
+
"schedule"&&out.scheduleOp!==void 0){const op=out.scheduleOp;const takesFile=op==="push"||op==="config"&&out.scheduleConfigOp==="push";if(op==="config"&&out.scheduleConfigOp===void 0){out.unknown.push("schedule config \u306B\u306F pull \u304B push \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044")}if(op==="delete"&&out.scheduleId===void 0)out.unknown.push("schedule delete \u306B\u306F\u5B9A\u7FA9ID\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(takesFile&&out.charterFile===void 0)
|
|
45
|
+
out.unknown.push(`schedule ${op==="push"?"push":"config push"} \u306B\u306F --file <\u30D1\u30B9> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`);if(!takesFile&&out.charterFile!==void 0)out.unknown.push("--file");if(!(op==="config"&&out.scheduleConfigOp==="pull")&&out.charterOut!==void 0)out.unknown.push("--out");if((op==="list"||op==="config"&&out.scheduleConfigOp!=="push")&&out.charterRevision!==void 0){out.unknown.push("--revision")}if(out.safe)out.unknown.push("--safe");if(out.daemon)
|
|
46
|
+
out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"){if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision")}if(out.command==="task-loop"&&out.taskLoopAction!==
|
|
47
|
+
"skill"){if(out.skillDir!==void 0)out.unknown.push("--dir");if(out.skillAll)out.unknown.push("--all");if(out.skillConfig!==void 0)out.unknown.push("--config")}if(out.command==="task-loop"&&out.taskLoopAction!=="skill"&&out.taskLoopAction!=="charter"){if(out.revisionFrom!==void 0)out.unknown.push("--from");if(out.revisionTo!==void 0)out.unknown.push("--to")}if(out.command==="task-loop"&&out.taskLoopAction!=="plan"){if(out.planEmpty)out.unknown.push("--empty");if(out.planCheck)out.unknown.push("--\
|
|
48
|
+
check")}return out}function isScheduleOp(raw){return raw==="list"||raw==="push"||raw==="delete"||raw==="config"}function isSkillManageOp(raw){return raw==="list"||raw==="show"||raw==="delete"}var SKILL_OP_REQUIRED="skill \u306B\u306F push / pull / list / show / delete / history / diff / revert / check \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044";function isRevisionAwareOp(raw){return raw==="push"||raw==="pull"||raw==="history"||raw==="diff"||raw==="revert"}
|
|
49
|
+
function pushRevisionFlagErrors(out,op){if(op!=="diff"&&out.revisionFrom!==void 0)out.unknown.push("--from");if(op!=="diff"&&op!=="revert"&&out.revisionTo!==void 0)out.unknown.push("--to")}export{BUILTIN_COMMANDS,TASK_LOOP_ACTIONS,VALUE_FLAGS,GLOBAL_FLAGS,parseArgv};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
|
+
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
+
import{killProcessTree}from"./chunk-N2UVRM3Z.js";import{findExecutable,isWindowsDriveAbsolute}from"./chunk-PMOUHEJQ.js";import{spawn}from"child_process";function resolveHookCommand(file,env){if(process.platform!=="win32")return file;if(isWindowsDriveAbsolute(file))return file;return findExecutable(file,{env,platform:"win32"})}var DEFAULT_TIMEOUT_SEC=120;var MAX_OUTPUT_BYTES=512*1024;var HOOK_ID_RE=/^[A-Za-z0-9._:-]{1,64}$/;function validateHooks(raw,configKey="prefetch"){const warnings=[];if(raw===void 0||raw===null)return{hooks:[],warnings};if(!Array.isArray(raw)){return{hooks:[],warnings:[`${configKey} \u306F\u914D\u5217\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u30D5\u30C3\u30AF\u306F1\u3064\u3082\u5B9F\u884C\u3057\u307E\u305B\u3093`]}}
|
|
4
|
+
const hooks=[];const seen=new Set;for(const[i,entry]of raw.entries()){if(entry===null||typeof entry!=="object"||Array.isArray(entry)){warnings.push(`${configKey}[${i}] \u304C\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u3053\u306E\u30D5\u30C3\u30AF\u306F\u5B9F\u884C\u3057\u307E\u305B\u3093`);continue}const e=entry;const id=typeof e["id"]==="string"?e["id"].trim():"";const command=e["command"];if(id===""){warnings.push(`${configKey}[${i}] \u306B id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u3053\u306E\u30D5\u30C3\u30AF\u306F\
|
|
5
|
+
\u5B9F\u884C\u3057\u307E\u305B\u3093`);continue}if(!HOOK_ID_RE.test(id)){warnings.push(`${configKey}[${i}] \u306E id '${id}' \u306F64\u6587\u5B57\u4EE5\u4E0B\u306E\u82F1\u6570\u5B57\u3068 . _ : - \u3060\u3051\u3092\u4F7F\u3048\u307E\u3059\u3002\u3053\u306E\u30D5\u30C3\u30AF\u306F\u5B9F\u884C\u3057\u307E\u305B\u3093`);continue}if(seen.has(id)){warnings.push(`${configKey}[${i}] \u306E id '${id}' \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002\u3053\u306E\u30D5\u30C3\u30AF\u306F\u5B9F\u884C\u3057\u307E\u305B\u3093`);
|
|
6
|
+
continue}if(!Array.isArray(command)||command.length===0||!command.every(c=>typeof c==="string")){warnings.push(`${configKey}[${i}]\uFF08${id}\uFF09\u306E command \u304C\u6587\u5B57\u5217\u306E\u914D\u5217\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u3053\u306E\u30D5\u30C3\u30AF\u306F\u5B9F\u884C\u3057\u307E\u305B\u3093`);continue}const timeout=typeof e["timeout"]==="number"&&Number.isFinite(e["timeout"])&&e["timeout"]>0?Math.trunc(e["timeout"]):DEFAULT_TIMEOUT_SEC;seen.add(id);hooks.push({id,
|
|
7
|
+
command,timeout})}return{hooks,warnings}}async function runHook(hook,cwd,env=process.env,allowEmpty=false){const started=Date.now();const[file,...args]=hook.command;if(file===void 0){return{id:hook.id,ok:false,stdout:"",reason:"command \u304C\u7A7A\u3067\u3059",durationMs:0}}return new Promise(resolve=>{const resolved=resolveHookCommand(file,env);if(resolved===null){resolve({id:hook.id,ok:false,stdout:"",reason:`\u5B9F\u884C\u30D5\u30A1\u30A4\u30EB ${file} \u3092 PATH \u4E0A\u3067\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08Windows \u3067\u306F bare nam\
|
|
8
|
+
e \u3067\u8D77\u52D5\u3057\u307E\u305B\u3093\uFF09`,failure:"spawn",durationMs:0});return}let child;try{child=spawn(resolved,args,{cwd,env,detached:process.platform!=="win32",stdio:["ignore","pipe","pipe"]})}catch(e){const code=e.code??"spawn \u5931\u6557";resolve({id:hook.id,ok:false,stdout:"",reason:`\u8D77\u52D5\u3067\u304D\u307E\u305B\u3093: ${file} (${code})`,failure:"spawn",durationMs:Date.now()-started});return}let stdout="";let stderr="";let truncated=false;let timedOut=false;const timer=setTimeout(
|
|
9
|
+
()=>{timedOut=true;killProcessTree(child,"SIGKILL")},(hook.timeout??DEFAULT_TIMEOUT_SEC)*1e3);child.stdout.on("data",c=>{if(stdout.length>=MAX_OUTPUT_BYTES){truncated=true;return}stdout+=c.toString("utf8");if(stdout.length>MAX_OUTPUT_BYTES){stdout=stdout.slice(0,MAX_OUTPUT_BYTES);truncated=true}});child.stderr.on("data",c=>{if(stderr.length<8192)stderr+=c.toString("utf8")});const done=(ok,reason,failure)=>{clearTimeout(timer);resolve({id:hook.id,ok,stdout:truncated?`${stdout}
|
|
10
|
+
\u2026\uFF08\u51FA\u529B\u304C\u4E0A\u9650\u3092\u8D85\u3048\u305F\u305F\u3081\u5207\u308A\u8A70\u3081\u307E\u3057\u305F\uFF09`:stdout,reason,...failure===void 0?{}:{failure},durationMs:Date.now()-started})};child.on("error",e=>done(false,`\u8D77\u52D5\u3067\u304D\u307E\u305B\u3093: ${e.message}`,"spawn"));child.on("close",code=>{if(timedOut)return done(false,`\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\uFF08${hook.timeout??DEFAULT_TIMEOUT_SEC}\u79D2\uFF09`,"timeout");if(code!==0)return done(false,`\u7D42\u4E86\u30B3\
|
|
11
|
+
\u30FC\u30C9 ${code}${stderr.trim()===""?"":`: ${firstLine(stderr)}`}`,"exit");if(!allowEmpty&&stdout.trim()==="")return done(false,"\u51FA\u529B\u304C\u7A7A\u3067\u3057\u305F","empty");done(true,null)})})}async function runPrefetch(hooks,cwd,log,env=process.env){if(hooks.length===0)return"";const sections=[];for(const hook of hooks){const r=await runHook(hook,cwd,env);if(r.ok){log(` prefetch: ${r.id} \u53D6\u5F97\u5B8C\u4E86\uFF08${Math.round(r.durationMs/1e3)}s\uFF09`);sections.push(`--- pref\
|
|
12
|
+
etch: ${r.id} ---
|
|
13
|
+
${r.stdout.trim()}`)}else{log(` \u26A0\uFE0F prefetch: ${r.id} \u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${r.reason}\uFF09`);sections.push(`--- prefetch: ${r.id} ---
|
|
14
|
+
\uFF08\u53D6\u5F97\u306B\u5931\u6557\u3057\u307E\u3057\u305F: ${r.reason}\u3002\u3053\u306E\u60C5\u5831\u306F\u6B20\u3051\u3066\u3044\u307E\u3059\uFF09`)}}return["\u3010\u4E8B\u524D\u53D6\u5F97\u6E08\u307F\u30C7\u30FC\u30BF\u3011","\u4EE5\u4E0B\u306F\u30EB\u30FC\u30D7\u304C\u4E8B\u524D\u306B\u53D6\u5F97\u3057\u305F\u8A08\u753B\u7528\u30C7\u30FC\u30BF\u3067\u3059\u3002\u540C\u3058\u60C5\u5831\u3092\u96C6\u3081\u76F4\u3059\u5FC5\u8981\u306F\u3042\u308A\u307E\u305B\u3093\u3002","\u300C\u53D6\u5F97\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u300D\u3068\u66F8\u304B\u308C\u305F\u7BC0\u3060\u3051\
|
|
15
|
+
\u306F\u6B20\u3051\u3066\u3044\u308B\u306E\u3067\u3001\u5FC5\u8981\u306A\u3089\u305D\u306E\u5206\u3092\u81EA\u5206\u3067\u53D6\u5F97\u3057\u3066\u304F\u3060\u3055\u3044\u3002","",sections.join("\n\n")].join("\n")}async function runPreflight(hooks,cwd,log,env=process.env){if(hooks.length===0)return"";const sections=[];for(const hook of hooks){const r=await runHook(hook,cwd,env,true);if(r.ok){log(` preflight: ${r.id} \u78BA\u8A8D\u5B8C\u4E86\uFF08${Math.round(r.durationMs/1e3)}s\uFF09`);if(r.stdout.
|
|
16
|
+
trim()!=="")sections.push(`--- preflight: ${r.id} ---
|
|
17
|
+
${r.stdout.trim()}`)}else{log(` \u26A0\uFE0F preflight: ${r.id} \u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${r.reason}\uFF09`);sections.push(`--- preflight: ${r.id} ---
|
|
18
|
+
\uFF08\u78BA\u8A8D\u306B\u5931\u6557\u3057\u307E\u3057\u305F: ${r.reason}\u3002\u3053\u306E\u524D\u63D0\u6761\u4EF6\u306F\u4E0D\u660E\u3067\u3059\uFF09`)}}if(sections.length===0)return"";return["\u3010\u74B0\u5883\u306E\u524D\u63D0\u6761\u4EF6\uFF08preflight\uFF09\u3011","\u4EE5\u4E0B\u306F\u3053\u306E\u30B5\u30A4\u30AF\u30EB\u306E\u5192\u982D\u3067\u78BA\u8A8D\u3057\u305F\u74B0\u5883\u60C5\u5831\u3067\u3059\u3002\u8A08\u753B\u3068\u5404\u30A2\u30A4\u30C6\u30E0\u306E\u5B9F\u884C\u3067\u8003\u616E\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
19
|
+
"\u5931\u6557\u3057\u305F\u30D5\u30C3\u30AF\u304C\u3042\u3063\u3066\u3082\u30B5\u30A4\u30AF\u30EB\u306F\u7D99\u7D9A\u3057\u307E\u3059\u3002\u5FC5\u8981\u306A\u62C5\u4FDD\u304C\u53D6\u308C\u306A\u3044\u5834\u5408\u306F\u3001\u305D\u306E\u4E8B\u5B9F\u3092\u660E\u8A18\u3057\u3066\u304F\u3060\u3055\u3044\u3002","",sections.join("\n\n")].join("\n")}function firstLine(s){return(s.trim().split("\n")[0]??"").slice(0,200)}function formatHookWiring(prefetch,preflight){return`LOOP_HOOKS ${formatHookIds(prefetch,
|
|
20
|
+
preflight)}`}function formatHookIds(prefetch,preflight){const ids=hooks=>hooks.map(h=>h.id).join(",");return`prefetch=[${ids(prefetch)}] preflight=[${ids(preflight)}]`}export{validateHooks,runHook,runPrefetch,runPreflight,formatHookWiring,formatHookIds};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{salesAdminForbidden}from"./chunk-
|
|
3
|
+
import{salesAdminForbidden}from"./chunk-Z6T5M3NJ.js";import{nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PATH="/api/v2/sales/receivables";var FORBIDDEN=salesAdminForbidden("\u58F2\u639B\u91D1\u6B8B\u9AD8\u3068\u7DE0\u3081");var CLOSING_LIST_MAX=36;var SUMMARY_LABELS=[["previous_balance","\u524D\u6708\u6B8B\u9AD8"],["current_debit","\u5F53\u6708\u501F\u65B9\uFF08\u5F53\u6708\u8ACB\u6C42\u984D\uFF09"],["current_credit","\u5F53\u6708\u8CB8\u65B9\uFF08\u5F53\u6708\u5165\u91D1\u5F15\u5F53\u984D\uFF09"],["current_balance","\u5F53\u6708\u6B8B\u9AD8"],["current_month_uncollected","\u2460 \u5F53\u6708\u8ACB\u6C42 \u672A\u56DE\u53CE"],
|
|
4
4
|
["previous_uncollected","\u2461 \u524D\u6708\u4EE5\u524D \u672A\u5165\u91D1\u58F2\u639B\u91D1"],["advance_received","\u524D\u53D7\u91D1\uFF08\u7FCC\u6708\u4EE5\u964D\u8ACB\u6C42\u3078\u306E\u5165\u91D1\uFF09"],["future_invoice_total","\u2462 \u7FCC\u6708\u4EE5\u964D \u58F2\u639B\u91D1\uFF08\u8ACB\u6C42\u7DCF\u984D\u30FB\u53C2\u8003\uFF09"]];var ITEM_COLUMNS=["invoice_id","invoice_no","company_name","title","invoice_date","due_date","total","collected","uncollected"];var CLOSING_COLUMNS=["year_mo\
|
|
5
5
|
nth","basis_date","closed_at","closed_by_name","has_variance"];function usageOf(op){return`twp receivable ${op} help`}function yen(value){return typeof value==="number"?`${value.toLocaleString("ja-JP")} \u5186`:"\uFF08\u4E0D\u660E\uFF09"}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function yearMonthValue(raw,label){const value=raw.trim();if(!/^\d{4}-(0[1-9]|1[0-2])$/.test(value))throw new UsageError(`${label} \u306F YYYY-MM \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,
|
|
6
6
|
"\u4F8B: 2026-09");return value}function previousYearMonth(yearMonth){const[y,m]=yearMonth.split("-").map(Number);return m===1?`${y-1}-12`:`${y}-${String(m-1).padStart(2,"0")}`}function envelope(body,what){if(!isRecord(body)||body["result"]!==true)throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return body}function withoutResult(body){return Object.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{FROM_FLAG,MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,MONTH_FLAG,TO_FLAG,dataOf,listIn,manhourNotes,manhourQuery,manhourRows,monthRange,rangeNotes,recordOf,workloadDistributionNotes,workloadDistributionRows}from"./chunk-
|
|
4
|
-
LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{PROJECT_MEMBERS_LIMIT,resolveNamed}from"./chunk-
|
|
3
|
+
import{FROM_FLAG,MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,MONTH_FLAG,TO_FLAG,dataOf,listIn,manhourNotes,manhourQuery,manhourRows,monthRange,rangeNotes,recordOf,workloadDistributionNotes,workloadDistributionRows}from"./chunk-IVKWLJCY.js";import{USER_REF_FLAG,USER_REF_HELP,userPath}from"./chunk-DAXVAUV4.js";import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-MP6YIILX.js";import{boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{
|
|
4
|
+
LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{PROJECT_MEMBERS_LIMIT,resolveNamed}from"./chunk-MVZFZAT4.js";import{collapsesInUrlPath,safeProjectIdPolicy}from"./chunk-HVZUXLQ4.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PROJECT_FLAG={name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30B3\u30FC\u30C9\u307E\u305F\u306F ID\uFF08\u7701\u7565\u6642\u306F TWP_PROJECT / .twp/config.json / ~/.twp/config.json\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"};var ROLE_FLAG={name:"--role",summary:"\u5F79\u5272\uFF08member / manager \u306A\u3069\u30FB\u5024\u306F\u30B5\u30FC\u30D0\u304C\u691C\u67FB\u3059\u308B\uFF09",takesValue:true,placeholder:"<\u5F79\u5272>"};var START_DATE_FLAG={name:"\
|
|
5
5
|
--start-date",summary:"\u53C2\u753B\u958B\u59CB\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var END_DATE_FLAG={name:"--end-date",summary:"\u53C2\u753B\u7D42\u4E86\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var PERIOD_FILE_FLAG={name:"--period-file",summary:"\u7A3C\u50CD\u671F\u9593\uFF08assignment_periods\uFF09\u306E JSON \u914D\u5217\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};
|
|
6
6
|
var MEMO_FLAG={name:"--memo",summary:"\u30E1\u30E2\uFF0810,000 \u6587\u5B57\u307E\u3067\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"};var CLEAR_FLAG={name:"--clear",summary:"\u5225\u540D\u3092\u6D88\u3059",takesValue:false};var MEMO_MAX_CHARS=1e4;var PERIOD_FILE_MAX_CHARS=2e5;var ALIAS_MAX_CHARS=255;var PERIOD_KEYS=["id","start_date","end_date","daily_hours","total_hours","input_mode"];var PERIOD_REQUIRED=["start_date","end_date","daily_hours"];var ROLE_HELP="--role \u306E\u5024\u306F\u30B5\u30FC\u30D0\u304C\u691C\u67FB\u3057\u307E\u3059\uFF08CLI\
|
|
7
7
|
\u306F\u691C\u67FB\u3057\u307E\u305B\u3093\uFF09\u30022026-10-01 \u6642\u70B9\u306E\u5024\u306F\n member\uFF08\u30E1\u30F3\u30D0\u30FC\uFF09/ manager\uFF08\u7BA1\u7406\u8005\uFF09/ approver\uFF08\u7BA1\u7406\u8005\uFF08\u627F\u8A8D\u8005\uFF09\uFF09/ manager_no_punch\uFF08\u7BA1\u7406\u8005\uFF08\u6253\u523B\u7121\uFF09\uFF09\u3067\u3059\u3002\n \u5024\u306F\u5897\u3048\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\u4ECA\u306E\u30E1\u30F3\u30D0\u30FC\u306E\u5024\u306F twp project members \u306E role \u5217\u3067\u78BA\u304B\u3081\u3089\u308C\u307E\u3059\u3002";
|
|
@@ -88,9 +88,10 @@ resolver.user(ref,flagName)}}var FIELDS=[{kind:"text",flag:"--name",key:"name",l
|
|
|
88
88
|
{kind:"date",flag:"--start-date",key:"start_date",summary:"\u958B\u59CB\u65E5\uFF08YYYY-MM-DD\u30FBnone \u3067\u6D88\u3059\uFF09"},{kind:"date",flag:"--end-date",key:"end_date",summary:"\u7D42\u4E86\u65E5\uFF08YYYY-MM-DD\u30FBnone \u3067\u6D88\u3059\uFF09\u3002\u904E\u53BB\u65E5\u306B\u3059\u308B\u3068\u30AF\u30ED\u30FC\u30BA\u3001\u4ECA\u65E5\u4EE5\u964D\u304B none \u3067\u30A2\u30AF\u30C6\u30A3\u30D6\u306B\u306A\u308B"},userRefField("--manager","project_manager_id","\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30DE\u30CD\u30FC\u30B8\u30E3\u30FC"),
|
|
89
89
|
userRefField("--leader","project_leader_id","\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30EA\u30FC\u30C0\u30FC"),{kind:"ref",flag:"--department",key:"department_id",summary:"\u4E3B\u5E79\u90E8\u7F72\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",placeholder:"<\u90E8\u7F72>",clearFlag:"--no-department",clearSummary:"\u4E3B\u5E79\u90E8\u7F72\u3092\u5916\u3059",resolve:(ctx,ref,flag)=>ctx.resolver.department(ref,flag)},{kind:"boolean",flag:"--visible",key:"display_flg",summary:"\u4E00\u89A7\u306B\u8868\u793A\u3059\u308B\u304B\uFF08true /\
|
|
90
90
|
false\uFF09"},{kind:"boolean",flag:"--tasks-enabled",key:"task_enabled_flg",summary:"\u30BF\u30B9\u30AF\u7BA1\u7406\u3092\u4F7F\u3046\u304B\uFF08true / false\uFF09"},{kind:"boolean",flag:"--punch-disabled",key:"punch_disabled_flg",summary:"\u6253\u523B\u306E\u5BFE\u8C61\u304B\u3089\u5916\u3059\u304B\uFF08true / false\uFF09\u3002\u8AB2\u984C\u30FB\u30BF\u30B9\u30AF\u7BA1\u7406\u3060\u3051\u306B\u4F7F\u3046\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5411\u3051"},{kind:"integer",flag:"--default-due-days",
|
|
91
|
-
key:"default_due_days",label:"\u65E2\u5B9A\u306E\u671F\u65E5",min:1,max:365,summary:"\u30BF\u30B9\u30AF\u4F5C\u6210\u6642\u306E\u65E2\u5B9A\u306E\u671F\u65E5\uFF08\u4F5C\u6210\u65E5\u304B\u3089\u4F55\u65E5\u5F8C\u304B\u30FB1\u301C365\uFF09"}
|
|
92
|
-
|
|
93
|
-
takesValue:false},key:"default_due_days",conflicts:["--default-due-days"]}];var COLUMNS=["id","code","name","status","start_date","end_date","display_flg","task_enabled_flg","
|
|
91
|
+
key:"default_due_days",label:"\u65E2\u5B9A\u306E\u671F\u65E5",min:1,max:365,summary:"\u30BF\u30B9\u30AF\u4F5C\u6210\u6642\u306E\u65E2\u5B9A\u306E\u671F\u65E5\uFF08\u4F5C\u6210\u65E5\u304B\u3089\u4F55\u65E5\u5F8C\u304B\u30FB1\u301C365\uFF09"},{kind:"enum",flag:"--wiki-default-format",key:"wiki_default_content_format",values:["html","markdown"],summary:"Wiki \u306E\u65B0\u898F\u30DA\u30FC\u30B8\u306E\u65E2\u5B9A\u306E\u5F62\u5F0F\uFF08html / markdown\uFF09\u3002\u4F5C\u6210\u6E08\u307F\u306E\u30DA\u30FC\u30B8\u306E\u5F62\u5F0F\u306F\u5909\u308F\u3089\u306A\u3044"}];
|
|
92
|
+
var CREATE_FIELDS=FIELDS.filter(field=>field.key!=="default_due_days");var MEMO_FLAGS=[{name:"--memo",summary:"\u30E1\u30E2\u3092\u76F4\u63A5\u6307\u5B9A\u3059\u308B\uFF08--memo-file \u3068\u306E\u4F75\u7528\u306F\u30A8\u30E9\u30FC\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"},{name:"--memo-file",summary:"\u30E1\u30E2\u3092\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u8AAD\u3080\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09\u3002\u6539\u884C\u30FBMarkdown \u3092\u58CA\u3055\u306A\u3044",takesValue:true,
|
|
93
|
+
placeholder:"<\u30D1\u30B9|->"}];var CLEAR_FLAGS=[{flag:{name:"--no-memo",summary:"\u30E1\u30E2\u3092\u6D88\u3059",takesValue:false},key:"memo",conflicts:["--memo","--memo-file"]},{flag:{name:"--no-default-due-days",summary:"\u30BF\u30B9\u30AF\u4F5C\u6210\u6642\u306E\u65E2\u5B9A\u306E\u671F\u65E5\u3092\u5916\u3059",takesValue:false},key:"default_due_days",conflicts:["--default-due-days"]}];var COLUMNS=["id","code","name","status","start_date","end_date","display_flg","task_enabled_flg","wiki_def\
|
|
94
|
+
ault_content_format","updated_at"];var STATUS_HELP="\u30B9\u30C6\u30FC\u30BF\u30B9\uFF08active / closed\uFF09\u306F\u7D42\u4E86\u65E5\u304B\u3089\u81EA\u52D5\u3067\u6C7A\u307E\u308A\u307E\u3059\uFF08\u6307\u5B9A\u306F\u3067\u304D\u307E\u305B\u3093\uFF09\u3002\n\u65E9\u304F\u7D42\u3048\u308B\u3068\u304D\u306F --end-date \u3092\u904E\u53BB\u65E5\u306B\u3001\u518D\u958B\u3059\u308B\u3068\u304D\u306F\u4ECA\u65E5\u4EE5\u964D\u306E\u65E5\u4ED8\u304B none \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
|
|
94
95
|
var REF_HELP="\u30E6\u30FC\u30B6\u30FC\uFF08--manager / --leader\uFF09\u306F me\u30FBID\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u793E\u54E1\u756A\u53F7\u30FB\u6C0F\u540D\u3067\u3001\u90E8\u7F72\u306F\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID \u3067\u6307\u5B9A\u3067\u304D\u307E\u3059\n\uFF08\u540D\u524D\u304C\u8907\u6570\u306B\u4E00\u81F4\u3059\u308C\u3070\u5019\u88DC\u3092\u51FA\u3057\u3066\u6B62\u307E\u308A\u307E\u3059\uFF09\u3002\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3084\u793E\u54E1\u756A\u53F7\u3067\u6307\u5B9A\u3059\u308B\u3068\u4E00\u610F\u306B\u6C7A\u307E\u308A\u307E\u3059\u3002";
|
|
95
96
|
var CREATE_FORBIDDEN="\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u4F5C\u6210\u306B\u306F\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u6A5F\u80FD\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";var UPDATE_FORBIDDEN="\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u66F4\u65B0\u3059\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u6A5F\u80FD\u306E\u6A29\u9650\u304C\u300C\u7DE8\u96C6\u8005\u300D\u4EE5\u4E0A\u3067\u3001\u304B\u3064\u305D\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30DE\u30CD\u30FC\u30B8\u30E3\u30FC\u3067\u3042\u308B\u304B\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u6A5F\u80FD\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002";
|
|
96
97
|
function readMemo(input,usage){return readBody(input,{flag:"--memo",fileFlag:"--memo-file",label:"\u30E1\u30E2",maxChars:MEMO_MAX_CHARS2,usage})}function checkCode(input){const code=input.flags.get("--code");if(code!==void 0&&collapsesInUrlPath(code.trim())){throw new UsageError(`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B3\u30FC\u30C9\u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${code}`,"\u30C9\u30C3\u30C8\u3060\u3051\u306E\u5024\u306F URL \u306E\u30D1\u30B9\u8981\u7D20\u3068\u3057\u3066\u6D88\u3048\u3066\u3057\u307E\u3046\u305F\u3081\u3001twp project get \u306A\u3069\u3067\u5F15\u3051\u306A\u304F\u306A\u308A\u307E\u3059\u3002")}}
|
|
@@ -136,9 +137,9 @@ projectOf(body,"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u66F4\u65B0"),COLUMNS
|
|
|
136
137
|
const current=isRecord(body)&&typeof body["current_code"]==="string"?body["current_code"]:"\uFF08\u4E0D\u660E\uFF09";if(!changeable){const max=isRecord(body)&&typeof body["max_tasks"]==="number"?`\uFF08\u4E0A\u9650 ${body["max_tasks"]} \u4EF6\uFF09`:"";throw new UsageError(`\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306F\u30BF\u30B9\u30AF\u304C ${count} \u4EF6\u3042\u308B\u305F\u3081\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B3\u30FC\u30C9\u3092\u5909\u66F4\u3067\u304D\u307E\u305B\u3093${max}\
|
|
137
138
|
\u3002`,"\u30B3\u30FC\u30C9\u3092\u5909\u3048\u305A\u306B\u3001\u540D\u524D\uFF08--name\uFF09\u3060\u3051\u3092\u5909\u3048\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u3059\u3002")}if(current===next)return{notes:[`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B3\u30FC\u30C9\u306F ${next} \u306E\u307E\u307E\u3067\u3059\uFF08\u30BF\u30B9\u30AF\u30AD\u30FC\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002`],warnings:[]};if(count===0)return{notes:[`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B3\u30FC\u30C9\u3092 ${current}\
|
|
138
139
|
\u304B\u3089 ${next} \u306B\u5909\u3048\u307E\u3059\uFF08\u30BF\u30B9\u30AF\u304C\u7121\u3044\u305F\u3081\u3001\u66F8\u304D\u63DB\u308F\u308B\u30AD\u30FC\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002`],warnings:[]};return{notes:[],warnings:[`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B3\u30FC\u30C9\u3092 ${current} \u304B\u3089 ${next} \u306B\u5909\u3048\u308B\u3068\u3001\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30BF\u30B9\u30AF ${count} \u4EF6\u306E\u30AD\u30FC\u304C\u66F8\u304D\u63DB\u308F\u308A\u307E\u3059\uFF08${current}\
|
|
139
|
-
-1 \u2192 ${next}-1\uFF09\u3002\u5916\u90E8\u306B\u8CBC\u3063\u305F\u30AD\u30FC\u3084\u30D6\u30E9\u30F3\u30C1\u540D\u306F\u8FFD\u968F\u3057\u307E\u305B\u3093\u3002`]}}var projectWriteOperations=[createOperation2,updateOperation2];var LIST_COLUMNS=["id","code","name","status","effective_status"];var GET_COLUMNS=["id","code","name","status","effective_status","display_flg","closed_flg","task_enabled_flg","start_date","end_date","created_at","updated_at"];var MEMBER_COLUMNS2=["user_id","user_name","user_email","role","alias","department_name"];function memberItems(body){const list=isRecord(body)?body["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError("\u30E1\u30F3\u30D0\u30FC\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\
|
|
140
|
-
return list}var listPaging=envelopePaging({label:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4E00\u89A7"});function listItems(body){return listPaging.items(body)}function projectObject(body){const project=isRecord(body)?body["project"]:void 0;if(!isRecord(project)){throw new ApiResponseError("\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u8A73\u7D30\u306E\u5FDC\u7B54\u306B project \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
|
|
141
|
-
var MANHOURS_USAGE="twp project manhours [<ID|\u30B3\u30FC\u30C9>] [--from <YYYY-MM-DD>] [--to <YYYY-MM-DD>]";var projectDomain={name:"project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u30E1\u30F3\u30D0\u30FC\u306E\u30A2\u30B5\u30A4\u30F3\u30FB\u5DE5\u6570\u30FB\u30EA\u30B9\u30AF\u5206\u6790\u30FB\u53CE\u652F\u5206\u6790\u30FB\u5DE5\u7A0B",operations:[{name:"list",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u4E00\u89A7\u3059\u308B",
|
|
140
|
+
-1 \u2192 ${next}-1\uFF09\u3002\u5916\u90E8\u306B\u8CBC\u3063\u305F\u30AD\u30FC\u3084\u30D6\u30E9\u30F3\u30C1\u540D\u306F\u8FFD\u968F\u3057\u307E\u305B\u3093\u3002`]}}var projectWriteOperations=[createOperation2,updateOperation2];var LIST_COLUMNS=["id","code","name","status","effective_status"];var GET_COLUMNS=["id","code","name","status","effective_status","display_flg","closed_flg","task_enabled_flg","wiki_default_content_format","start_date","end_date","created_at","updated_at"];var MEMBER_COLUMNS2=["user_id","user_name","user_email","role","alias","department_name"];function memberItems(body){const list=isRecord(body)?body["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError("\u30E1\u30F3\u30D0\u30FC\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\
|
|
141
|
+
\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return list}var listPaging=envelopePaging({label:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4E00\u89A7"});function listItems(body){return listPaging.items(body)}function projectObject(body){const project=isRecord(body)?body["project"]:void 0;if(!isRecord(project)){throw new ApiResponseError("\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u8A73\u7D30\u306E\u5FDC\u7B54\u306B project \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
|
|
142
|
+
return project}var MANHOURS_USAGE="twp project manhours [<ID|\u30B3\u30FC\u30C9>] [--from <YYYY-MM-DD>] [--to <YYYY-MM-DD>]";var projectDomain={name:"project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u30E1\u30F3\u30D0\u30FC\u306E\u30A2\u30B5\u30A4\u30F3\u30FB\u5DE5\u6570\u30FB\u30EA\u30B9\u30AF\u5206\u6790\u30FB\u53CE\u652F\u5206\u6790\u30FB\u5DE5\u7A0B",operations:[{name:"list",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u4E00\u89A7\u3059\u308B",
|
|
142
143
|
usage:"twp project list [--all] [--limit <\u4EF6\u6570>] [--cursor <\u30AB\u30FC\u30BD\u30EB>] [--keyword <\u8A9E>] [--status <\u72B6\u614B>]",description:"--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002\n--output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08id / code / name / status / effective_status\uFF09\u3067\u3059\u3002\n\u6B32\u3057\u3044\u5217\u3060\u3051\u3092\u6A5F\u68B0\u51E6\u7406\u3057\u305F\u3044\u3068\u304D\u306F --query \u3067\u9078\u3093\u3067\u304F\u3060\u3055\u3044\uFF08--query \u306F\u751F\u30C7\u30FC\u30BF\u306B\u5BFE\u3057\u3066\u8A55\u4FA1\u3055\u308C\u307E\u3059\uFF09\u3002\n\n"+
|
|
143
144
|
LIST_PAGING_HELP,flags:[...LIST_FLAGS,{name:"--keyword",summary:"\u30B3\u30FC\u30C9\u30FB\u540D\u79F0\u306E\u90E8\u5206\u4E00\u81F4\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u8A9E>"},{name:"--status",summary:"\u30B9\u30C6\u30FC\u30BF\u30B9\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u4F8B: active\uFF09",takesValue:true,placeholder:"<\u72B6\u614B>"}],paging:listPaging,plan(input){if(input.args.length>0){throw new UsageError(`list \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.
|
|
144
145
|
args.join(" ")}`,"twp project list help")}return{method:"GET",path:"/api/v2/projects",query:{limit:positiveInteger(input.flags,"--limit"),cursor:nonEmpty(input.flags,"--cursor"),keyword:nonEmpty(input.flags,"--keyword"),status:nonEmpty(input.flags,"--status")}}},summarize:body=>listItems(body).map(row=>pick(row,LIST_COLUMNS)),raw:body=>listItems(body)},{name:"get",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C81\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B",usage:"twp project get <ID|\u30B3\u30FC\u30C9>",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{CUSTOMER_FLAG,CUSTOMER_LICENSE,childForbidden,levelForbidden,prepareCustomerFlag}from"./chunk-
|
|
3
|
+
import{CUSTOMER_FLAG,CUSTOMER_LICENSE,childForbidden,levelForbidden,prepareCustomerFlag}from"./chunk-45OL54MY.js";import{inspectLocalFile}from"./chunk-I4TR55UF.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-MP6YIILX.js";import{booleanText}from"./chunk-JJSBBWJ5.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{CUSTOMERS_PATH,isExactNumericId}from"./chunk-MVZFZAT4.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";
|
|
4
4
|
import{ApiError}from"./chunk-JA5A6UJ2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";import fs from"fs";import path from"path";var CONTRACT_TYPES=["basic_contract","nda","other"];var CONTRACT_TYPE_HELP="basic_contract\uFF1D\u57FA\u672C\u5951\u7D04\u66F8 / nda\uFF1D\u6A5F\u5BC6\u4FDD\u6301\u5951\u7D04\u66F8 / other\uFF1D\u305D\u306E\u4ED6\u5951\u7D04\u66F8\u985E";var FILE_NAME_MAX_CHARS=255;var PDF_MAGIC="%PDF-";var CONTRACT_FIELDS=[{kind:"text",flag:"--name",key:"document_name",label:"\u66F8\u985E\u540D",maxChars:255,summary:"\u66F8\u985E\u540D\uFF08create \u3067\u306F\u5FC5\u9808\uFF09"},{kind:"enum",flag:"--type",key:"\
|
|
5
5
|
document_type",values:CONTRACT_TYPES,summary:`\u66F8\u985E\u7A2E\u5225\uFF08${CONTRACT_TYPE_HELP}\u30FBcreate \u3067\u306F\u5FC5\u9808\uFF09`}];var CONTRACT_COLUMNS=["document_id","company_id","document_type","document_name","current_version","updated_by_name","updated_at"];var VERSION_COLUMNS=["version_number","file_name","file_size","is_current","created_by_name","created_at"];var CASE_COLUMNS=["document_id","document_type_label","document_name","estimate_no","estimate_title","project_name","c\
|
|
6
6
|
urrent_version","updated_at"];var FILE_FLAG={name:"--file",summary:"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3059\u308B PDF \u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9.pdf>"};var OUT_FLAG={name:"--out",summary:"\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF08\u5FC5\u9808\u3002\u6A19\u6E96\u51FA\u529B\u3078\u306F\u51FA\u3057\u307E\u305B\u3093\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};var FORCE_FLAG={
|
|
@@ -1,23 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{
|
|
4
|
-
const hooks=[];const seen=new Set;for(const[i,entry]of raw.entries()){if(entry===null||typeof entry!=="object"||Array.isArray(entry)){warnings.push(`${configKey}[${i}] \u304C\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u3053\u306E\u30D5\u30C3\u30AF\u306F\u5B9F\u884C\u3057\u307E\u305B\u3093`);continue}const e=entry;const id=typeof e["id"]==="string"?e["id"].trim():"";const command=e["command"];if(id===""){warnings.push(`${configKey}[${i}] \u306B id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u3053\u306E\u30D5\u30C3\u30AF\u306F\
|
|
5
|
-
\u5B9F\u884C\u3057\u307E\u305B\u3093`);continue}if(!HOOK_ID_RE.test(id)){warnings.push(`${configKey}[${i}] \u306E id '${id}' \u306F64\u6587\u5B57\u4EE5\u4E0B\u306E\u82F1\u6570\u5B57\u3068 . _ : - \u3060\u3051\u3092\u4F7F\u3048\u307E\u3059\u3002\u3053\u306E\u30D5\u30C3\u30AF\u306F\u5B9F\u884C\u3057\u307E\u305B\u3093`);continue}if(seen.has(id)){warnings.push(`${configKey}[${i}] \u306E id '${id}' \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002\u3053\u306E\u30D5\u30C3\u30AF\u306F\u5B9F\u884C\u3057\u307E\u305B\u3093`);
|
|
6
|
-
continue}if(!Array.isArray(command)||command.length===0||!command.every(c=>typeof c==="string")){warnings.push(`${configKey}[${i}]\uFF08${id}\uFF09\u306E command \u304C\u6587\u5B57\u5217\u306E\u914D\u5217\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u3053\u306E\u30D5\u30C3\u30AF\u306F\u5B9F\u884C\u3057\u307E\u305B\u3093`);continue}const timeout=typeof e["timeout"]==="number"&&Number.isFinite(e["timeout"])&&e["timeout"]>0?Math.trunc(e["timeout"]):DEFAULT_TIMEOUT_SEC;seen.add(id);hooks.push({id,
|
|
7
|
-
command,timeout})}return{hooks,warnings}}async function runHook(hook,cwd,env=process.env,allowEmpty=false){const started=Date.now();const[file,...args]=hook.command;if(file===void 0){return{id:hook.id,ok:false,stdout:"",reason:"command \u304C\u7A7A\u3067\u3059",durationMs:0}}return new Promise(resolve=>{const resolved=resolveHookCommand(file,env);if(resolved===null){resolve({id:hook.id,ok:false,stdout:"",reason:`\u5B9F\u884C\u30D5\u30A1\u30A4\u30EB ${file} \u3092 PATH \u4E0A\u3067\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08Windows \u3067\u306F bare nam\
|
|
8
|
-
e \u3067\u8D77\u52D5\u3057\u307E\u305B\u3093\uFF09`,failure:"spawn",durationMs:0});return}let child;try{child=spawn(resolved,args,{cwd,env,detached:process.platform!=="win32",stdio:["ignore","pipe","pipe"]})}catch(e){const code=e.code??"spawn \u5931\u6557";resolve({id:hook.id,ok:false,stdout:"",reason:`\u8D77\u52D5\u3067\u304D\u307E\u305B\u3093: ${file} (${code})`,failure:"spawn",durationMs:Date.now()-started});return}let stdout="";let stderr="";let truncated=false;let timedOut=false;const timer=setTimeout(
|
|
9
|
-
()=>{timedOut=true;killProcessTree(child,"SIGKILL")},(hook.timeout??DEFAULT_TIMEOUT_SEC)*1e3);child.stdout.on("data",c=>{if(stdout.length>=MAX_OUTPUT_BYTES){truncated=true;return}stdout+=c.toString("utf8");if(stdout.length>MAX_OUTPUT_BYTES){stdout=stdout.slice(0,MAX_OUTPUT_BYTES);truncated=true}});child.stderr.on("data",c=>{if(stderr.length<8192)stderr+=c.toString("utf8")});const done=(ok,reason,failure)=>{clearTimeout(timer);resolve({id:hook.id,ok,stdout:truncated?`${stdout}
|
|
10
|
-
\u2026\uFF08\u51FA\u529B\u304C\u4E0A\u9650\u3092\u8D85\u3048\u305F\u305F\u3081\u5207\u308A\u8A70\u3081\u307E\u3057\u305F\uFF09`:stdout,reason,...failure===void 0?{}:{failure},durationMs:Date.now()-started})};child.on("error",e=>done(false,`\u8D77\u52D5\u3067\u304D\u307E\u305B\u3093: ${e.message}`,"spawn"));child.on("close",code=>{if(timedOut)return done(false,`\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\uFF08${hook.timeout??DEFAULT_TIMEOUT_SEC}\u79D2\uFF09`,"timeout");if(code!==0)return done(false,`\u7D42\u4E86\u30B3\
|
|
11
|
-
\u30FC\u30C9 ${code}${stderr.trim()===""?"":`: ${firstLine(stderr)}`}`,"exit");if(!allowEmpty&&stdout.trim()==="")return done(false,"\u51FA\u529B\u304C\u7A7A\u3067\u3057\u305F","empty");done(true,null)})})}async function runPrefetch(hooks,cwd,log,env=process.env){if(hooks.length===0)return"";const sections=[];for(const hook of hooks){const r=await runHook(hook,cwd,env);if(r.ok){log(` prefetch: ${r.id} \u53D6\u5F97\u5B8C\u4E86\uFF08${Math.round(r.durationMs/1e3)}s\uFF09`);sections.push(`--- pref\
|
|
12
|
-
etch: ${r.id} ---
|
|
13
|
-
${r.stdout.trim()}`)}else{log(` \u26A0\uFE0F prefetch: ${r.id} \u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${r.reason}\uFF09`);sections.push(`--- prefetch: ${r.id} ---
|
|
14
|
-
\uFF08\u53D6\u5F97\u306B\u5931\u6557\u3057\u307E\u3057\u305F: ${r.reason}\u3002\u3053\u306E\u60C5\u5831\u306F\u6B20\u3051\u3066\u3044\u307E\u3059\uFF09`)}}return["\u3010\u4E8B\u524D\u53D6\u5F97\u6E08\u307F\u30C7\u30FC\u30BF\u3011","\u4EE5\u4E0B\u306F\u30EB\u30FC\u30D7\u304C\u4E8B\u524D\u306B\u53D6\u5F97\u3057\u305F\u8A08\u753B\u7528\u30C7\u30FC\u30BF\u3067\u3059\u3002\u540C\u3058\u60C5\u5831\u3092\u96C6\u3081\u76F4\u3059\u5FC5\u8981\u306F\u3042\u308A\u307E\u305B\u3093\u3002","\u300C\u53D6\u5F97\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u300D\u3068\u66F8\u304B\u308C\u305F\u7BC0\u3060\u3051\
|
|
15
|
-
\u306F\u6B20\u3051\u3066\u3044\u308B\u306E\u3067\u3001\u5FC5\u8981\u306A\u3089\u305D\u306E\u5206\u3092\u81EA\u5206\u3067\u53D6\u5F97\u3057\u3066\u304F\u3060\u3055\u3044\u3002","",sections.join("\n\n")].join("\n")}async function runPreflight(hooks,cwd,log,env=process.env){if(hooks.length===0)return"";const sections=[];for(const hook of hooks){const r=await runHook(hook,cwd,env,true);if(r.ok){log(` preflight: ${r.id} \u78BA\u8A8D\u5B8C\u4E86\uFF08${Math.round(r.durationMs/1e3)}s\uFF09`);if(r.stdout.
|
|
16
|
-
trim()!=="")sections.push(`--- preflight: ${r.id} ---
|
|
17
|
-
${r.stdout.trim()}`)}else{log(` \u26A0\uFE0F preflight: ${r.id} \u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${r.reason}\uFF09`);sections.push(`--- preflight: ${r.id} ---
|
|
18
|
-
\uFF08\u78BA\u8A8D\u306B\u5931\u6557\u3057\u307E\u3057\u305F: ${r.reason}\u3002\u3053\u306E\u524D\u63D0\u6761\u4EF6\u306F\u4E0D\u660E\u3067\u3059\uFF09`)}}if(sections.length===0)return"";return["\u3010\u74B0\u5883\u306E\u524D\u63D0\u6761\u4EF6\uFF08preflight\uFF09\u3011","\u4EE5\u4E0B\u306F\u3053\u306E\u30B5\u30A4\u30AF\u30EB\u306E\u5192\u982D\u3067\u78BA\u8A8D\u3057\u305F\u74B0\u5883\u60C5\u5831\u3067\u3059\u3002\u8A08\u753B\u3068\u5404\u30A2\u30A4\u30C6\u30E0\u306E\u5B9F\u884C\u3067\u8003\u616E\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
19
|
-
"\u5931\u6557\u3057\u305F\u30D5\u30C3\u30AF\u304C\u3042\u3063\u3066\u3082\u30B5\u30A4\u30AF\u30EB\u306F\u7D99\u7D9A\u3057\u307E\u3059\u3002\u5FC5\u8981\u306A\u62C5\u4FDD\u304C\u53D6\u308C\u306A\u3044\u5834\u5408\u306F\u3001\u305D\u306E\u4E8B\u5B9F\u3092\u660E\u8A18\u3057\u3066\u304F\u3060\u3055\u3044\u3002","",sections.join("\n\n")].join("\n")}function firstLine(s){return(s.trim().split("\n")[0]??"").slice(0,200)}function formatHookWiring(prefetch,preflight){return`LOOP_HOOKS ${formatHookIds(prefetch,
|
|
20
|
-
preflight)}`}function formatHookIds(prefetch,preflight){const ids=hooks=>hooks.map(h=>h.id).join(",");return`prefetch=[${ids(prefetch)}] preflight=[${ids(preflight)}]`}var CAPACITY_SCHEMA="twp.capacity/v1";var CAPACITY_MAX_BYTES=8192;var CAPACITY_FORMATS=[CAPACITY_SCHEMA,"claude_auto_switch/v1"];var IDENTITY_MODES=["masked","none","full"];var DEFAULT_CAPACITY_PROBE={format:CAPACITY_SCHEMA,interval:300,timeout:15,identity:"masked"};var LOCAL_HEAD=1;var LOCAL_TAIL=2;var DOMAIN_HEAD=2;var DOMAIN_TAIL=2;var COLLAPSED="***";function maskPart(value,head,tail){if(value.length<head+tail+1)return null;return`${value.slice(0,head)}${"*".repeat(value.length-head-tail)}${value.
|
|
3
|
+
import{runHook}from"./chunk-TTST7UDR.js";import{createHash}from"crypto";var CAPACITY_SCHEMA="twp.capacity/v1";var CAPACITY_MAX_BYTES=8192;var CAPACITY_FORMATS=[CAPACITY_SCHEMA,"claude_auto_switch/v1"];var IDENTITY_MODES=["masked","none","full"];var DEFAULT_CAPACITY_PROBE={format:CAPACITY_SCHEMA,interval:300,timeout:15,identity:"masked"};var LOCAL_HEAD=1;var LOCAL_TAIL=2;var DOMAIN_HEAD=2;var DOMAIN_TAIL=2;var COLLAPSED="***";function maskPart(value,head,tail){if(value.length<head+tail+1)return null;return`${value.slice(0,head)}${"*".repeat(value.length-head-tail)}${value.
|
|
21
4
|
slice(value.length-tail)}`}function maskEmail(raw){const value=raw.trim();const at=value.lastIndexOf("@");if(at<0)return maskPart(value,LOCAL_HEAD,LOCAL_TAIL)??COLLAPSED;const local=value.slice(0,at);const domain=value.slice(at+1);const maskedLocal=maskPart(local,LOCAL_HEAD,LOCAL_TAIL);const maskedDomain=maskPart(domain,DOMAIN_HEAD,DOMAIN_TAIL);if(maskedLocal===null||maskedDomain===null)return`${COLLAPSED}@${COLLAPSED}`;return`${maskedLocal}@${maskedDomain}`}function identityHash(raw){return`sha\
|
|
22
5
|
256:${createHash("sha256").update(raw.trim()).digest("hex").slice(0,12)}`}function applyIdentity(slot,raw,mode){if(mode==="none")return;if(typeof raw!=="string"||raw.trim()==="")return;slot.identity_masked=mode==="full"?raw.trim():maskEmail(raw);slot.identity_hash=identityHash(raw)}var CAS_METRIC_LABELS={five_hour:"5\u6642\u9593\u67A0",seven_day:"\u9031\u9593",weekly_fable:"\u9031\u9593(Fable)"};function isRecord(v){return typeof v==="object"&&v!==null&&!Array.isArray(v)}function num(v){return typeof v===
|
|
23
6
|
"number"&&Number.isFinite(v)?v:void 0}function str(v){return typeof v==="string"&&v.trim()!==""?v.trim():void 0}function epochToIso(v){const n=num(v);if(n===void 0||n<=0)return void 0;const d=new Date(n*1e3);return Number.isNaN(d.getTime())?void 0:d.toISOString()}function toSlotState(raw,eligible){const s=str(raw);if(s==="needs_login")return"needs_login";if(eligible===false)return"excluded";if(s==="over_ceiling")return"excluded";if(s===void 0)return"unknown";return"usable"}function newestMeasuredAt(accounts){
|
|
@@ -38,4 +21,4 @@ try{parsed=JSON.parse(outcome.stdout)}catch{log(" \u26A0\uFE0F capacity_probe
|
|
|
38
21
|
\u7D9A\u884C\u3057\u307E\u3059`);return failed("unexpected_shape")}const payload=encodeCapacity(report);const ok=report.error===void 0&&JSON.parse(payload).error===void 0;return{payload,ok}}catch{log(` \u26A0\uFE0F capacity_probe \u306E\u51FA\u529B\u3092 ${probe.format} \u3068\u3057\u3066\u5909\u63DB\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u7D9A\u884C\u3057\u307E\u3059`);return failed("unexpected_shape")}}var REUSE_LAST_SUCCESS_MS=30*60*1e3;var CapacityReporter=class{constructor(probe,cwd,log,env=process.
|
|
39
22
|
env,now=()=>Date.now()){this.probe=probe;this.cwd=cwd;this.log=log;this.env=env;this.now=now}probe;cwd;log;env;now;cached=null;lastSuccess=null;lastSuccessAt=0;lastProbedAt=0;pending=false;running=false;async refreshIfDue(){const at=this.now();if(this.cached!==null&&at-this.lastProbedAt<this.probe.interval*1e3)return;await this.refresh()}async refresh(){if(this.running)return;this.running=true;try{const outcome=await probeCapacityOutcome(this.probe,this.cwd,this.log,this.env);const at=this.now();
|
|
40
23
|
if(outcome.ok){this.lastSuccess=outcome.payload;this.lastSuccessAt=at}const reuse=!outcome.ok&&this.lastSuccess!==null&&at-this.lastSuccessAt<REUSE_LAST_SUCCESS_MS;this.cached=reuse?this.lastSuccess:outcome.payload;if(reuse){this.log(" \u76F4\u524D\u306B\u53D6\u5F97\u3067\u304D\u305F\u67A0\u60C5\u5831\u3092\u9001\u308A\u307E\u3059\uFF08\u4E00\u6642\u7684\u306A\u5931\u6557\u3068\u3057\u3066\u6271\u3044\u307E\u3059\uFF09")}this.lastProbedAt=this.now();this.pending=true}finally{this.running=false}}take(){
|
|
41
|
-
if(!this.pending||this.cached===null)return null;this.pending=false;return this.cached}rearm(){if(this.cached!==null)this.pending=true}};export{
|
|
24
|
+
if(!this.pending||this.cached===null)return null;this.pending=false;return this.cached}rearm(){if(this.cached!==null)this.pending=true}};export{capacityError,parseCapacityProbe,probeCapacityOutcome,REUSE_LAST_SUCCESS_MS,CapacityReporter};
|
|
@@ -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-QS5VWTI3.js";import{localDate}from"./chunk-CCHPF23L.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-5KAWCLYN.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(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 reorderSucceeded(targetId,json){if(pick(json,"result")===true)return true;const raw=Array.isArray(json)?json:pick(json,"i\
|
|
6
6
|
tems");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){const re=new RegExp(`${key.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?![0-9])`);return items.some(it=>re.test(`${it.label??""}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{salesAdminForbidden}from"./chunk-
|
|
4
|
-
SALES_ROUNDING_SETTING_PATH,isExactNumericId}from"./chunk-
|
|
3
|
+
import{salesAdminForbidden}from"./chunk-Z6T5M3NJ.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-BBOWZVCC.js";import{booleanText,boundedText}from"./chunk-JJSBBWJ5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{SALES_ESTIMATE_FORMATS_PATH,SALES_ESTIMATE_NO_RULES_PATH,SALES_INVOICE_NO_RULES_PATH,SALES_PURCHASE_NO_RULES_PATH,
|
|
4
|
+
SALES_ROUNDING_SETTING_PATH,isExactNumericId}from"./chunk-MVZFZAT4.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var INT_MAX=2147483647;var MEMBER_FORBIDDEN=licenseForbidden(featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"));function envelope(body,what){if(!isRecord(body)||body["result"]!==true)throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return body}function recordOf(body,what){const data=envelope(body,what)["data"];if(!isRecord(data)||typeof data["id"]!==
|
|
5
5
|
"string")throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306B data.id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return data}function serverMessage(body){const message=isRecord(body)?body["message"]:void 0;return typeof message==="string"&&message!==""?[message]:[]}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function integerValue(flag,raw,min,max=INT_MAX){const trimmed=raw.
|
|
6
6
|
trim();const value=/^\d+$/.test(trimmed)?Number(trimmed):Number.NaN;if(!Number.isSafeInteger(value)||value<min||value>max)throw new UsageError(`${flag} \u306F ${min} \u4EE5\u4E0A ${max} \u4EE5\u4E0B\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`);return value}var RULE_COLUMNS=["id","rule_name","prefix","digit_count","current_number","count_up_num","next_number","sort_order"];function nextNumber(rule,purchaseFormat){const current=rule["current_number"];const step=rule["\
|
|
7
7
|
count_up_num"]??1;const digits=rule["digit_count"];if(typeof current!=="number"||typeof step!=="number"||typeof digits!=="number")return void 0;const width=purchaseFormat&&digits===0?4:digits;const padded=String(current+step).padStart(width,"0");const prefix=rule["prefix"];if(purchaseFormat)return`${prefix===null||prefix===void 0?"2000":text(prefix)}${padded}`;return typeof prefix==="string"&&prefix!==""&&prefix!=="0"?`${prefix}${padded}`:padded}function withNext(spec,row){const next=nextNumber(
|
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{
|
|
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
|
-
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
|
-
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){
|
|
7
|
-
const entry=NOT_YET_APPLIED.find(e=>e.key===key);if(entry===void 0)return true;const a=entry.get(parsed);const b=entry.get(DEFAULT_CLAUDE_LAUNCHER);return typeof a==="string"||typeof b==="string"?a===b:a.length===b.length&&a.every((v,i)=>v===b[i])}function parseClaudeLauncher(value){const warnings=[];if(value===void 0||value===null){return{launcher:DEFAULT_CLAUDE_LAUNCHER,warnings}}if(typeof value!=="object"||Array.isArray(value)){warnings.push("claude_launcher \u306F\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u65E2\u5B9A\u306E\u8D77\u52D5\u65B9\u6CD5\u3092\u4F7F\u3044\u307E\u3059\uFF09");
|
|
8
|
-
return{launcher:DEFAULT_CLAUDE_LAUNCHER,warnings}}const v=value;const launcher={bin:stringField(v["bin"],"bin",DEFAULT_CLAUDE_LAUNCHER.bin,warnings),probe:argvField(v["probe"],"probe",DEFAULT_CLAUDE_LAUNCHER.probe,warnings,true),probeMatch:probeMatchField(v["probe_match"],warnings),execArgs:argvField(v["exec_args"],"exec_args",DEFAULT_CLAUDE_LAUNCHER.execArgs,warnings,false),activeArgs:argvField(v["active_args"],"active_args",DEFAULT_CLAUDE_LAUNCHER.activeArgs,warnings,false)};for(const{key}of NOT_YET_APPLIED){
|
|
9
|
-
if(!sameAsDefault(key,launcher)){warnings.push(`claude_launcher.${key} \u306F\u307E\u3060\u9069\u7528\u3055\u308C\u307E\u305B\u3093\uFF08\u3053\u306E\u7248\u3067\u52B9\u304F\u306E\u306F bin \u3060\u3051\u3067\u3059\uFF09`)}}return{launcher,warnings}}import{createHash}from"crypto";import fs from"fs";import path from"path";var DEFAULT_PLAN_GATE_TIMEOUT_SEC=30;var DEFAULT_PLAN_GATE_MAX_SKIP_SEC=3600;var MAX_STATE_BYTES=4096;function parsePlanGate(value,warnings){if(value===void 0||value===null)return null;if(typeof value!=="object"||Array.isArray(value)){warnings.push("operations.plan_gate \u306F\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u6BCE\u56DE\u8A08\u753B\u3057\u307E\u3059\uFF09");return null}const o=value;const entry={timeout:DEFAULT_PLAN_GATE_TIMEOUT_SEC,
|
|
3
|
+
import{runHook,validateHooks}from"./chunk-TTST7UDR.js";import{DEFAULT_SKILL_PREFIX,SKILL_PREFIX_RE}from"./chunk-6CS5L24D.js";import{createHash}from"crypto";import fs from"fs";import path from"path";var DEFAULT_PLAN_GATE_TIMEOUT_SEC=30;var DEFAULT_PLAN_GATE_MAX_SKIP_SEC=3600;var MAX_STATE_BYTES=4096;function parsePlanGate(value,warnings){if(value===void 0||value===null)return null;if(typeof value!=="object"||Array.isArray(value)){warnings.push("operations.plan_gate \u306F\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u6BCE\u56DE\u8A08\u753B\u3057\u307E\u3059\uFF09");return null}const o=value;const entry={timeout:DEFAULT_PLAN_GATE_TIMEOUT_SEC,
|
|
10
4
|
...o,id:"plan-gate"};const{hooks,warnings:w}=validateHooks([entry],"operations.plan_gate");warnings.push(...w.map(m=>`${m}\uFF08\u6BCE\u56DE\u8A08\u753B\u3057\u307E\u3059\uFF09`));const hook=hooks[0];if(!hook)return null;let maxSkipSec=DEFAULT_PLAN_GATE_MAX_SKIP_SEC;const raw=o["max_skip_sec"];if(typeof raw==="number"&&Number.isFinite(raw)&&raw>0){maxSkipSec=Math.trunc(raw)}else if(raw!==void 0&&raw!==null){warnings.push(`operations.plan_gate.max_skip_sec \u306F\u6B63\u306E\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u65E2\u5B9A\u306E ${DEFAULT_PLAN_GATE_MAX_SKIP_SEC}\
|
|
11
5
|
\u79D2\u3092\u4F7F\u3044\u307E\u3059\uFF09`)}return{hook,maxSkipSec}}function planGateStatePath(stateDir,projectKey){return path.join(stateDir,`task-loop-${projectKey}.plan-gate.json`)}function fingerprintOf(stdout){const line=stdout.split(/\r?\n/).map(l=>l.trim()).find(l=>l!=="");if(line===void 0)return null;return createHash("sha256").update(line).digest("hex")}function readPlanGateState(statePath){try{if(fs.statSync(statePath).size>MAX_STATE_BYTES)return null;const parsed=JSON.parse(fs.readFileSync(
|
|
12
6
|
statePath,"utf8"));const fingerprint=parsed["fingerprint"];const plannedAtMs=parsed["planned_at_ms"];if(typeof fingerprint!=="string"||!/^[0-9a-f]{64}$/.test(fingerprint))return null;if(typeof plannedAtMs!=="number"||!Number.isFinite(plannedAtMs))return null;return{fingerprint,plannedAtMs}}catch{return null}}function recordPlanned(statePath,fingerprint,nowMs){const tmp=`${statePath}.${process.pid}.tmp`;try{fs.mkdirSync(path.dirname(statePath),{recursive:true});fs.writeFileSync(tmp,JSON.stringify(
|
|
@@ -28,8 +22,8 @@ continue}const outcome=`${line}: ${rawValue.toUpperCase()}`;const prev=advancing
|
|
|
28
22
|
0&&!line.endsWith("_RESULT")){warnings.push(`operations.contract_lines.${skill}.line \u304C _RESULT \u3067\u7D42\u308F\u3089\u306A\u3044\u305F\u3081\u3001advances \u306F\u518D\u6295\u5165\u6291\u6B62\u306B\u4F7F\u3048\u307E\u305B\u3093\uFF08\u7DE0\u3081\u51E6\u7406\u306E\u5951\u7D04\u884C\u3068\u3057\u3066\u3060\u3051\u4F7F\u3044\u307E\u3059\uFF09`);for(const v2 of advances.keys())advancingOutcomes.delete(`${line}: ${v2}`)}contractLines.set(skill,{line,advances})}return{contractLines,advancingOutcomes}}
|
|
29
23
|
function parseCountHooks(value,warnings){const out=new Map;if(value===void 0||value===null)return out;if(typeof value!=="object"||Array.isArray(value)){warnings.push("operations.count_hooks \u306F\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u7121\u8996\u3057\u307E\u3059\uFF09");return out}for(const[key,v]of Object.entries(value)){const entry=v!==null&&typeof v==="object"&&!Array.isArray(v)?{id:`count:${key}`,...v}:v;const{hooks,warnings:w}=validateHooks(
|
|
30
24
|
[entry],`operations.count_hooks.${key}`);warnings.push(...w);const hook=hooks[0];if(hook)out.set(key,hook)}return out}function parseEndpoint(value,warnings){if(value===void 0||value===null)return null;if(typeof value!=="object"||Array.isArray(value)){warnings.push("operations.status_endpoint \u306F\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u6392\u4ED6\u3092\u7121\u52B9\u306B\u3057\u307E\u3059\uFF09");return null}const o=value;const url=typeof o["\
|
|
31
|
-
url"]==="string"?o["url"].trim():"";if(url===""){warnings.push("operations.status_endpoint.url \u304C\u7121\u3044\u305F\u3081\u6392\u4ED6\u3092\u7121\u52B9\u306B\u3057\u307E\u3059");return null}if(!/^https?:\/\//i.test(url)){warnings.push(`operations.status_endpoint.url \u306F http(s) \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${url}\uFF08\u6392\u4ED6\u3092\u7121\u52B9\u306B\u3057\u307E\u3059\uFF09`);return null}const
|
|
32
|
-
trim():DEFAULT_STATUS_PATH;const apiKeyEnvRaw=o["api_key_env"];const apiKeyEnv=typeof apiKeyEnvRaw==="string"&&apiKeyEnvRaw.trim()!==""?apiKeyEnvRaw.trim():null;const headerRaw=o["header"];const header=typeof headerRaw==="string"&&headerRaw.trim()!==""?headerRaw.trim():DEFAULT_STATUS_HEADER;return{url:url.replace(/\/+$/,""),path:
|
|
25
|
+
url"]==="string"?o["url"].trim():"";if(url===""){warnings.push("operations.status_endpoint.url \u304C\u7121\u3044\u305F\u3081\u6392\u4ED6\u3092\u7121\u52B9\u306B\u3057\u307E\u3059");return null}if(!/^https?:\/\//i.test(url)){warnings.push(`operations.status_endpoint.url \u306F http(s) \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${url}\uFF08\u6392\u4ED6\u3092\u7121\u52B9\u306B\u3057\u307E\u3059\uFF09`);return null}const path2=typeof o["path"]==="string"&&o["path"].trim()!==""?o["path"].
|
|
26
|
+
trim():DEFAULT_STATUS_PATH;const apiKeyEnvRaw=o["api_key_env"];const apiKeyEnv=typeof apiKeyEnvRaw==="string"&&apiKeyEnvRaw.trim()!==""?apiKeyEnvRaw.trim():null;const headerRaw=o["header"];const header=typeof headerRaw==="string"&&headerRaw.trim()!==""?headerRaw.trim():DEFAULT_STATUS_HEADER;return{url:url.replace(/\/+$/,""),path:path2.startsWith("/")?path2:`/${path2}`,apiKeyEnv,header}}function parseOperations(value){const warnings=[];if(value===void 0||value===null)return{operations:NO_OPERATIONS,
|
|
33
27
|
warnings};if(typeof value!=="object"||Array.isArray(value)){warnings.push("operations \u306F\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u7121\u8996\u3057\u307E\u3059\uFF09");return{operations:NO_OPERATIONS,warnings}}const o=value;const exclusiveSkills=new Set(stringArray(o["exclusive_skills"],"exclusive_skills",warnings));const statusEndpoint=parseEndpoint(o["status_endpoint"],warnings);if(exclusiveSkills.size>0&&statusEndpoint===null){warnings.
|
|
34
28
|
push("operations.exclusive_skills \u306F\u3042\u308A\u307E\u3059\u304C status_endpoint \u304C\u7121\u3044\u305F\u3081\u3001\u5B9A\u671F\u67A0\u306E\u6392\u4ED6\u306F\u884C\u3044\u307E\u305B\u3093")}if(exclusiveSkills.size===0&&statusEndpoint!==null){warnings.push("operations.status_endpoint \u306F\u3042\u308A\u307E\u3059\u304C exclusive_skills \u304C\u7A7A\u306E\u305F\u3081\u3001\u554F\u3044\u5408\u308F\u305B\u306F\u884C\u3044\u307E\u305B\u3093")}const releaseRecoveryRaw=o["release_recovery_skil\
|
|
35
29
|
l"];const releaseRecoverySkill=typeof releaseRecoveryRaw==="string"&&releaseRecoveryRaw.trim()!==""?releaseRecoveryRaw.trim():null;const planSkillRaw=o["plan_skill"];let planSkill=null;if(typeof planSkillRaw==="string"&&planSkillRaw.trim()!==""){planSkill=planSkillRaw.trim()}else if(planSkillRaw!==void 0&&planSkillRaw!==null){warnings.push("operations.plan_skill \u306F\u7A7A\u3067\u306A\u3044\u6587\u5B57\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u8A08\u753B\u30D5\u30A7\u30FC\u30BA\u3092\u884C\u3044\u307E\u305B\u3093\uFF09")}
|
|
@@ -40,26 +34,4 @@ o["preflight_hosts"],"preflight_hosts",warnings),releaseRecoverySkill,postSucces
|
|
|
40
34
|
planGate.maxSkipSec}\u79D2\uFF09`:""}`:"\u8A08\u753B\u30B9\u30AD\u30EB\u672A\u8A2D\u5B9A\uFF08\u8A08\u753B\u30D5\u30A7\u30FC\u30BA\u3092\u884C\u3044\u307E\u305B\u3093\uFF09";const prefix=`\u30B9\u30AD\u30EB\u63A5\u982D\u8F9E '/${ops.skillPrefix}'`;const advance=ops.advancingOutcomes.size>0?`\u518D\u6295\u5165\u6291\u6B62 ${ops.advancingOutcomes.size}\u7A2E`:"contract_lines \u672A\u8A2D\u5B9A\uFF08\u518D\u6295\u5165\u6291\u6B62\u3092\u884C\u3044\u307E\u305B\u3093\uFF09";if(ops===NO_OPERATIONS||ops.
|
|
41
35
|
exclusiveSkills.size===0&&ops.highRiskSkills.size===0&&ops.postSuccessEnqueue.size===0){return`\u904B\u7528\u8A2D\u5B9A: \u306A\u3057\uFF08\u30B9\u30AD\u30EB\u540D\u306B\u3088\u308B\u7279\u5225\u6271\u3044\u306F\u884C\u3044\u307E\u305B\u3093\uFF09 / ${prefix} / ${plan} / ${advance}`}const parts=[prefix,plan,advance];if(ops.exclusiveSkills.size>0&&ops.statusEndpoint){parts.push(`\u6392\u4ED6 ${[...ops.exclusiveSkills].join(",")} \u2190 ${ops.statusEndpoint.url}`)}else if(ops.exclusiveSkills.size>
|
|
42
36
|
0){parts.push(`\u6392\u4ED6 ${[...ops.exclusiveSkills].join(",")}\uFF08\u554F\u3044\u5408\u308F\u305B\u5148\u304C\u7121\u3044\u305F\u3081\u7121\u52B9\uFF09`)}if(ops.highRiskSkills.size>0)parts.push(`\u9AD8\u30EA\u30B9\u30AF ${ops.highRiskSkills.size}\u4EF6`);if(ops.releaseRecoverySkill)parts.push(`\u56DE\u53CE ${ops.releaseRecoverySkill}`);for(const[from,f]of ops.postSuccessEnqueue){parts.push(f.keysLine?`\u5F8C\u7D9A ${from}\u2192${f.skill}\uFF08${f.keysLine} \u884C\u306E\u30AD\u30FC\u5358\u4F4D\uFF09`:
|
|
43
|
-
`\u5F8C\u7D9A ${from}\u2192${f.skill}\uFF08keys_line \u672A\u8A2D\u5B9A\u306E\u305F\u3081\u30AD\u30FC\u5358\u4F4D\u306E\u6295\u5165\u306F\u3057\u307E\u305B\u3093\uFF09`)}return`\u904B\u7528\u8A2D\u5B9A: ${parts.join(" / ")}`}
|
|
44
|
-
lost",reason:`status=${status}\uFF08processing \u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09`}}const itemRunner=(item.runner_id??"").trim();const itemRun=(item.run_id??"").trim();if(itemRunner===""||itemRun===""){return{verdict:"unknown",reason:"\u5FDC\u7B54\u306B runner_id / run_id \u304C\u3042\u308A\u307E\u305B\u3093"}}if(itemRunner!==runnerId){return{verdict:"lost",reason:`\u5225\u306E\u30E9\u30F3\u30CA\u30FC\u304C\u4FDD\u6301\u3057\u3066\u3044\u307E\u3059\uFF08runner=${itemRunner}\uFF09`}}
|
|
45
|
-
if(itemRun!==runId){return{verdict:"lost",reason:`\u540C\u3058\u6A5F\u4F53\u306E\u5225\u306E\u8D77\u52D5\u304C\u4FDD\u6301\u3057\u3066\u3044\u307E\u3059\uFF08run_id \u304C\u4E00\u81F4\u3057\u307E\u305B\u3093\uFF09`}}return{verdict:"held",reason:"processing \u304B\u3064 runner_id / run_id \u304C\u4E00\u81F4"}}var OWNERSHIP_CHECK_INTERVAL_SEC=60;var DEFAULT_INTERVAL_SEC=300;function sanitizeInt(value,fallback,min=1){const n=typeof value==="number"?value:Number.parseInt(String(value??""),10);if(Number.isInteger(n)&&n>=min)return{value:n,warning:null};if(value===void 0||value===null||value==="")return{value:fallback,warning:null};return{value:fallback,warning:`'${String(value)}' \u306F${min}\u4EE5\u4E0A\u306E\u6574\u6570\u3067\u306F\u3042\u308A\u307E\u305B\u3093 \u2192 \u65E2\u5B9A ${fallback} \u3092\u4F7F\u3044\u307E\u3059`}}function nonEmpty(value){
|
|
46
|
-
const t=value?.trim();return t===void 0||t===""?void 0:value}function resolveCharterEnabled(raw,local,warn){return resolveBoolSetting(raw,local,"charter_enabled",true,"\u61B2\u7AE0\u3092\u524D\u7F6E\u3057\u307E\u3059",warn)}function resolveBoolSetting(raw,local,key,fallback,fallbackNote,warn){const v=(raw??"").trim();if(v!=="")return isBoolishTrue(v);if(local===void 0)return fallback;if(typeof local==="boolean")return local;if(typeof local==="string")return isBoolishTrue(local.trim()===""?String(
|
|
47
|
-
fallback):local);warn(`${key} \u306F\u771F\u507D\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08'${String(local)}' \u306F\u89E3\u91C8\u3067\u304D\u306A\u3044\u305F\u3081\u3001${fallbackNote}\uFF09`);return fallback}function charterWrapper(raw,local,key,warn){if(raw!==void 0)return raw;if(local===void 0)return null;if(typeof local==="string")return local;warn(`${key} \u306F\u6587\u5B57\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08'${String(local)}' \u306F\u7121\u8996\u3057\u3001\u65E2\u5B9A\u306E\u56F2\u307F\
|
|
48
|
-
\u6587\u3092\u4F7F\u3044\u307E\u3059\uFF09`);return null}var STATE_DIR_NAME=".twp-task-loop";var LEGACY_STATE_DIR_NAME=".twp-ops";function loopStateDir(env=process.env,exists=fs2.existsSync){const explicit=env.TWP_OPS_STATE_DIR?.trim();if(explicit)return explicit;const current=path2.join(os.homedir(),STATE_DIR_NAME);if(exists(current))return current;const legacy=path2.join(os.homedir(),LEGACY_STATE_DIR_NAME);if(exists(legacy))return legacy;return current}function exportStateDirEnv(config,env=process.
|
|
49
|
-
env){if(!env.TWP_OPS_STATE_DIR?.trim())env.TWP_OPS_STATE_DIR=config.stateDir;if(!env.RELEASE_OUTCOME_LOG?.trim())env.RELEASE_OUTCOME_LOG=config.releaseOutcomeLogPath}function releaseOutcomeLogPath(env=process.env,stateDir=loopStateDir(env)){const explicit=env.RELEASE_OUTCOME_LOG?.trim();if(explicit)return explicit;return path2.join(stateDir,"release-outcomes.tsv")}function localConfigPath(projectId,env=process.env){return path2.join(twpHomeDir(env),"loops",`${projectFileKey(projectId)}.json`)}function loadLocalConfig(projectId,env=process.
|
|
50
|
-
env){const file=localConfigPath(projectId,env);try{const parsed=JSON.parse(fs2.readFileSync(file,"utf8"));return parsed!==null&&typeof parsed==="object"?parsed:{}}catch(err){if(err.code==="ENOENT")return{};throw new Error(`\u30EB\u30FC\u30D7\u8A2D\u5B9A\u306E\u8AAD\u307F\u53D6\u308A\u306B\u5931\u6557\u3057\u307E\u3057\u305F: ${file}
|
|
51
|
-
${err.message}`,{cause:err})}}function resolveRunnerId(stateDir,env=process.env){const file=env.RUNNER_ID_FILE&&env.RUNNER_ID_FILE.trim()!==""?env.RUNNER_ID_FILE:path2.join(stateDir,"runner-id");let candidate=env.RUNNER_ID?.trim()??"";if(!candidate){try{candidate=fs2.readFileSync(file,"utf8").split("\n")[0]?.trim()??""}catch{candidate=""}}let warning=null;if(candidate&&!/^[A-Za-z0-9._-]+$/.test(candidate)){warning=`runner_id '${candidate}' \u306B\u4F7F\u3048\u306A\u3044\u6587\u5B57\u304C\u542B\u307E\u308C\u308B\u305F\u3081\u63A1\u756A\u3057\u76F4\u3057\u307E\u3057\u305F\uFF08[A-Za-z0-9._-] \u306E\u307F\uFF09`;
|
|
52
|
-
candidate=""}if(!candidate){const host=(os.hostname()||"host").split(".")[0]??"host";const hostPart=host.replace(/[^A-Za-z0-9._-]/g,"-").slice(0,32)||"host";candidate=`${hostPart}-${randomBytes(4).toString("hex")}`;try{fs2.mkdirSync(path2.dirname(file),{recursive:true,mode:448});fs2.writeFileSync(file,`${candidate}
|
|
53
|
-
`,{mode:384})}catch{warning=`runner_id \u3092 ${file} \u3078\u4FDD\u5B58\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u8D77\u52D5\u306E\u305F\u3073\u306B\u5225\u30E9\u30F3\u30CA\u30FC\u3068\u3057\u3066\u767B\u9332\u3055\u308C\u3001\u53F0\u6570\u4E0A\u9650\u306B\u9054\u3057\u307E\u3059`}}return{runnerId:candidate,warning}}function buildRunId(runnerId,now=new Date){const stamp=now.toISOString().replace(/[-:]/g,"").replace(/\.\d+Z$/,"Z");return`${runnerId}#${stamp}#${process.pid}`}function buildLoopConfig(input){
|
|
54
|
-
const env=input.env??process.env;const warnings=[];const num=(raw,fallback,min=1,label="")=>{const r=sanitizeInt(raw,fallback,min);if(r.warning)warnings.push(`${label}${r.warning}`);return r.value};if(input.daemon&&input.maxCycles!==void 0){warnings.push("--daemon \u3068 --max-cycles \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF08--daemon \u3092\u512A\u5148\u3057\u3001--max-cycles \u306F\u7121\u8996\u3057\u307E\u3059\uFF09")}const local=loadLocalConfig(input.projectId,env);
|
|
55
|
-
if(local.schedule_command&&local.schedule_command.length>0){warnings.push("\u30ED\u30FC\u30AB\u30EB\u8A2D\u5B9A\u306E schedule_command \u306F\u4F7F\u308F\u308C\u307E\u305B\u3093\uFF08\u5B9A\u671F\u30B9\u30B1\u30B8\u30E5\u30FC\u30EB\u306E\u5224\u5B9A\u306F twp-cli \u5185\u3067\u884C\u3044\u307E\u3059\uFF09\u3002\u8A2D\u5B9A\u304B\u3089\u524A\u9664\u3057\u3066\u304F\u3060\u3055\u3044")}if(nonEmpty(env.TWP_TASK_LOOP_SCHEDULE_CMD)){warnings.push("TWP_TASK_LOOP_SCHEDULE_CMD \u306F\u4F7F\u308F\u308C\u307E\u305B\u3093\uFF08\u5B9A\u671F\u30B9\u30B1\u30B8\u30E5\u30FC\u30EB\u306E\u5224\u5B9A\u306F twp-c\
|
|
56
|
-
li \u5185\u3067\u884C\u3044\u307E\u3059\uFF09")}const stateDir=loopStateDir(env);const{runnerId,warning:runnerWarning}=resolveRunnerId(stateDir,env);if(runnerWarning)warnings.push(runnerWarning);const aiTimeoutSec=num(env.AI_TIMEOUT??local.ai_timeout,4500,60,"AI_TIMEOUT=");const aiSoftDeadlineRatio=Math.min(num(env.AI_SOFT_DEADLINE_RATIO??local.ai_soft_deadline_ratio,80,1,"AI_SOFT_DEADLINE_RATIO="),100);const planLockTtlSec=num(env.PLAN_LOCK_TTL,1800,60,"PLAN_LOCK_TTL=");const workspace=nonEmpty(
|
|
57
|
-
local.workspace)??process.cwd();const ai=loadAiConfig(local.ai,local.ai_config_file,workspace);warnings.push(...ai.warnings);const operations=parseOperations(local.operations);warnings.push(...operations.warnings);const claudeLauncher=parseClaudeLauncher(local.claude_launcher);warnings.push(...claudeLauncher.warnings);const capacityProbe=parseCapacityProbe(local.capacity_probe);warnings.push(...capacityProbe.warnings);const prefetch=validateHooks(local.prefetch);warnings.push(...prefetch.warnings);
|
|
58
|
-
const preflight=validateHooks(local.preflight,"preflight");warnings.push(...preflight.warnings);return{projectId:input.projectId,projectRef:input.projectRef,apiUrl:input.apiUrl,runnerId,runId:buildRunId(runnerId,input.now??new Date),stateDir,logDir:nonEmpty(env.LOG_DIR)??local.log_dir??path2.join(os.homedir(),".twp-agent-loop","logs"),logRetentionDays:num(env.LOG_RETENTION_DAYS??local.log_retention_days,7,0,"LOG_RETENTION_DAYS="),workspace,gitIdentity:local.git_identity,safeMode:input.safeMode,daemon:input.
|
|
59
|
-
daemon,maxCycles:input.daemon?Number.MAX_SAFE_INTEGER:input.maxCycles??1,intervalSec:input.intervalSec??DEFAULT_INTERVAL_SEC,intervalSource:input.intervalSec!==void 0?"cli":"default",forceRunner:input.forceRunner,engine:nonEmpty(input.engine)??nonEmpty(local.engine)??"",aiTimeoutSec,aiSoftDeadlineRatio,planTimeoutSec:num(env.PLAN_TIMEOUT??local.plan_timeout,900,60,"PLAN_TIMEOUT="),heartbeatIntervalSec:num(env.AGENT_LOOP_HEARTBEAT_INTERVAL,120,1,"AGENT_LOOP_HEARTBEAT_INTERVAL="),ownershipCheckIntervalSec:num(
|
|
60
|
-
env.AGENT_LOOP_OWNERSHIP_CHECK_INTERVAL,OWNERSHIP_CHECK_INTERVAL_SEC,0,"AGENT_LOOP_OWNERSHIP_CHECK_INTERVAL="),contendedMax:num(env.AGENT_LOOP_CONTENDED_MAX,10,1,"AGENT_LOOP_CONTENDED_MAX="),queueUndeterminedMax:num(env.QUEUE_UNDETERMINED_MAX,5,1,"QUEUE_UNDETERMINED_MAX="),staleReclaimHours:num(env.STALE_RECLAIM_HOURS,3,0,"STALE_RECLAIM_HOURS="),planLockTtlSec,planLockWaitMaxSec:num(env.PLAN_LOCK_WAIT_MAX,planLockTtlSec,0,"PLAN_LOCK_WAIT_MAX="),planLockPollIntervalSec:num(env.PLAN_LOCK_POLL_INTERVAL,
|
|
61
|
-
60,1,"PLAN_LOCK_POLL_INTERVAL="),planLockRenewIntervalSec:num(env.PLAN_LOCK_RENEW_INTERVAL,Math.trunc(planLockTtlSec/3),1,"PLAN_LOCK_RENEW_INTERVAL="),planLockStealAttempts:num(env.PLAN_LOCK_STEAL_ATTEMPTS,3,0,"PLAN_LOCK_STEAL_ATTEMPTS="),planLockPermanentMax:num(env.PLAN_LOCK_PERMANENT_MAX,3,1,"PLAN_LOCK_PERMANENT_MAX="),scheduleMidcycleMax:num(env.SCHEDULE_MIDCYCLE_MAX,6,1,"SCHEDULE_MIDCYCLE_MAX="),blockerRecoveryMaxPerDay:num(env.BLOCKER_RECOVERY_MAX_PER_DAY,2,1,"BLOCKER_RECOVERY_MAX_PER_DAY="),
|
|
62
|
-
releaseRerunAutoEnqueue:env.RELEASE_RERUN_AUTOENQUEUE_ENABLED!=="false",releaseRerunMaxPerCause:num(env.RELEASE_RERUN_MAX_PER_CAUSE,2,1,"RELEASE_RERUN_MAX_PER_CAUSE="),writebackMaxAgeDays:num(env.AGENT_LOOP_WRITEBACK_MAX_AGE_DAYS,7,1,"AGENT_LOOP_WRITEBACK_MAX_AGE_DAYS="),scheduleTimezone:nonEmpty(env.AGENT_LOOP_SCHEDULE_TZ)??"Asia/Tokyo",counterTimezone:nonEmpty(env.AGENT_LOOP_COUNTER_TZ)??"Asia/Tokyo",compileCommand:local.compile_command!==void 0&&local.compile_command.length>0?local.compile_command:
|
|
63
|
-
null,charterFile:nonEmpty(env.CHARTER_FILE)??nonEmpty(local.charter_file)??"CONSTITUTION.md",charterEnabled:resolveCharterEnabled(env.CHARTER_ENABLED,local.charter_enabled,m=>warnings.push(m)),charterPrefix:charterWrapper(env.CHARTER_PREFIX,local.charter_prefix,"charter_prefix",m=>warnings.push(m)),charterSuffix:charterWrapper(env.CHARTER_SUFFIX,local.charter_suffix,"charter_suffix",m=>warnings.push(m)),planEnabled:resolveBoolSetting(env.PLAN_ENABLED,local.plan_enabled,"plan_enabled",true,"\u8A08\u753B\u30D5\u30A7\u30FC\
|
|
64
|
-
\u30BA\u3092\u5B9F\u884C\u3057\u307E\u3059",m=>warnings.push(m)),ai:ai.config,aiSource:{inline:local.ai,file:local.ai_config_file},operations:operations.operations,claudeLauncher:claudeLauncher.launcher,capacityProbe:capacityProbe.probe,prefetch:prefetch.hooks,preflight:preflight.hooks,configHash:ai.config.hash(),version:input.version,warnings,releaseOutcomeLogPath:releaseOutcomeLogPath(env,stateDir)}}function localDate(timezone,now=new Date){const fmt=new Intl.DateTimeFormat("en-CA",{timeZone:timezone,
|
|
65
|
-
year:"numeric",month:"2-digit",day:"2-digit"});return fmt.format(now)}export{parseClaudeLauncher,evaluateOwnership,planGateStatePath,recordPlanned,evaluatePlanGate,parseOperations,describeOperations,DEFAULT_INTERVAL_SEC,STATE_DIR_NAME,LEGACY_STATE_DIR_NAME,loopStateDir,exportStateDirEnv,localConfigPath,loadLocalConfig,buildLoopConfig,localDate};
|
|
37
|
+
`\u5F8C\u7D9A ${from}\u2192${f.skill}\uFF08keys_line \u672A\u8A2D\u5B9A\u306E\u305F\u3081\u30AD\u30FC\u5358\u4F4D\u306E\u6295\u5165\u306F\u3057\u307E\u305B\u3093\uFF09`)}return`\u904B\u7528\u8A2D\u5B9A: ${parts.join(" / ")}`}export{planGateStatePath,recordPlanned,evaluatePlanGate,parseOperations,describeOperations};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{readCsvFileText}from"./chunk-QLENN5DD.js";import{featureLicenseGuidance,invoiceFilters}from"./chunk-
|
|
4
|
-
resolveNamed}from"./chunk-
|
|
3
|
+
import{readCsvFileText}from"./chunk-QLENN5DD.js";import{featureLicenseGuidance,invoiceFilters}from"./chunk-BBOWZVCC.js";import{boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SALES_DEPOSITS_PATH,isExactNumericId,
|
|
4
|
+
resolveNamed}from"./chunk-MVZFZAT4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PATH=SALES_DEPOSITS_PATH;function salesAdminForbidden(what){return body=>body?.error==="permission_denied"?featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"):`${what}\u306B\u306F\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}var FORBIDDEN=salesAdminForbidden("\u5165\u91D1");var ALLOCATION_STATUSES={
|
|
5
5
|
allocated:"\u5F15\u5F53\u6E08",shortage:"\u672A\u5165\u91D1\u6709",excess:"\u5165\u91D1\u8D85\u904E\u6709",transfer_fee_resolved:"\u624B\u6570\u6599\u51E6\u7406\u6E08"};var EXCESS_REASONS={transfer_fee:"\u632F\u8FBC\u624B\u6570\u6599",agency_fee:"\u4EE3\u884C\u624B\u6570\u6599\uFF08\u53E3\u5EA7\u632F\u66FF \u57FA\u672C\u5229\u7528\u6599\uFF09",partial:"\u4E00\u90E8\u5165\u91D1",offset:"\u76F8\u6BBA",overpayment:"\u904E\u5165\u91D1",other:"\u305D\u306E\u4ED6"};var EXCESS_TAX_CATEGORIES={taxable_purchase_10:"\
|
|
6
6
|
\u8AB2\u7A0E\u4ED5\u5165 10%",not_applicable:"\u5BFE\u8C61\u5916"};var BULK_MAX_ROWS=100;var PLAN_MAX_ITEMS=50;var PLAN_MAX_ALLOCATIONS=100;var FILE_MAX_BYTES=1024*1024;var EXCESS_NOTE_MAX_CHARS=255;var PLAN_MEMO_MAX_CHARS=1e3;var CONTENT_MAX_CHARS=1e6;var LIST_COLUMNS=["id","deposit_date","company_name","payee_name","deposit_amount","allocated_amount","unallocated_amount","allocation_status"];var GET_COLUMNS=[...LIST_COLUMNS,"memo","excess_reason","excess_amount","excess_note","excess_tax_categ\
|
|
7
7
|
ory","excess_tax_amount"];var ALLOCATION_COLUMNS=["id","invoice_id","invoice_no","invoice_title","invoice_date","allocated_amount","invoice_remaining_amount"];function labelsHelp(table){return Object.entries(table).map(([code,name])=>`${code}\uFF08${name}\uFF09`).join(" / ")}function refsOf(table){return Object.entries(table).map(([code,name])=>({id:code,name,code}))}function usageOf(op){return`twp deposit ${op} help`}function yen(value){return typeof value==="number"?`${value.toLocaleString("ja\
|
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-
|
|
4
|
+
import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{parseArgv}from"./chunk-T3C2BAVA.js";import"./chunk-2LOT54OO.js";import"./chunk-35MQ27I6.js";import"./chunk-QQRJLH6B.js";import"./chunk-VSJBJXZO.js";var VERSION=true?"0.72.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
|
|
@@ -81,6 +81,11 @@ import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{parseArgv}from"./chu
|
|
|
81
81
|
twp task-loop skill delete --project <\u30AD\u30FC|UUID> <\u540D\u524D>
|
|
82
82
|
\u30B9\u30AD\u30EB\u3092\u30B5\u30FC\u30D0\u304B\u3089\u524A\u9664\u3002\u6D88\u3059\u5185\u5BB9\u3068 revision \u3092\u8868\u793A\u3057\u3066\u6B62\u307E\u308A\u3001
|
|
83
83
|
\u6848\u5185\u3055\u308C\u308B --yes --revision <N> \u3067\u78BA\u5B9A\uFF08--all \u306F\u7121\u3044\uFF09
|
|
84
|
+
twp task-loop skill check --project <\u30AD\u30FC|UUID> [--config <\u30D1\u30B9>] [--output json]
|
|
85
|
+
\u30B5\u30FC\u30D0\u306E\u30B9\u30AD\u30EB\u30FB\u61B2\u7AE0\u306E\u6574\u5408\u3092\u691C\u67FB\u3059\u308B\uFF08\u8AAD\u307F\u53D6\u308A\u306E\u307F\uFF09\u3002\u58CA\u308C\u305F\u53C2\u7167\u30FB
|
|
86
|
+
\u30EB\u30FC\u30D7\u8A2D\u5B9A\uFF08\u65E2\u5B9A ~/.twp/loops/<project>.json\uFF09\u3068\u5B9A\u671F\u67A0\u304C\u547C\u3076\u30B9\u30AD\u30EB\u306E
|
|
87
|
+
\u4E0D\u5728\u30FB\u53E4\u3044\u30D1\u30B9\u30921\u884C\u305A\u3064\u5831\u544A\u3057\u3001\u554F\u984C\u304C\u3042\u308C\u3070\u7D42\u4E86\u30B3\u30FC\u30C9 1\u3002\u3069\u3053\u304B\u3089\u3082
|
|
88
|
+
\u53C2\u7167\u3055\u308C\u306A\u3044\u30B9\u30AD\u30EB\u306F\u68DA\u5378\u3057\u5019\u88DC\u3068\u3057\u3066\u4F75\u8A18\u3059\u308B\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9\u306B\u5F71\u97FF\u3057\u306A\u3044\uFF09
|
|
84
89
|
twp task-loop skill history|diff|revert --project <\u30AD\u30FC|UUID> <\u540D\u524D>
|
|
85
90
|
twp task-loop charter history|diff|revert --project <\u30AD\u30FC|UUID>
|
|
86
91
|
\u30B5\u30FC\u30D0\u306B\u6B8B\u3057\u305F\u7248\uFF08\u76F4\u8FD1100\u7248\uFF09\u306E\u4E00\u89A7\uFF08history\uFF09\u30012\u3064\u306E\u7248\u306E\u5DEE\u5206
|
|
@@ -857,6 +862,25 @@ import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{parseArgv}from"./chu
|
|
|
857
862
|
twp meeting list \u8B70\u4E8B\u9332\u3092\u4E00\u89A7\u3059\u308B\uFF08--from/--to \u3067\u958B\u50AC\u65E5\u306E\u671F\u9593\uFF09
|
|
858
863
|
twp meeting get <\u8B70\u4E8B\u9332ID>
|
|
859
864
|
\u8B70\u4E8B\u93321\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08--output text \u3067\u672C\u6587\u3092\u8AAD\u3080\uFF09
|
|
865
|
+
twp knowledge list \u30C9\u30E1\u30A4\u30F3\u77E5\u8B58\u306E\u30CA\u30EC\u30C3\u30B8\u30D9\u30FC\u30B9\uFF08KB\uFF09\u3092\u4E00\u89A7\u3059\u308B
|
|
866
|
+
twp knowledge get <KB> KB 1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08<KB> \u306F ID \u304B slug\uFF09
|
|
867
|
+
twp knowledge create KB \u3092\u4F5C\u6210\u3059\u308B\uFF08--name\u30FB--slug\u30FBadmin \u306E\u307F\uFF09
|
|
868
|
+
twp knowledge update <KB>
|
|
869
|
+
KB \u306E\u8A2D\u5B9A\u3092\u5909\u3048\u308B\uFF08admin \u306E\u307F\uFF09
|
|
870
|
+
twp knowledge delete <KB>
|
|
871
|
+
KB \u3092\u914D\u4E0B\u306E\u8A18\u4E8B\u3054\u3068\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\u30FBadmin \u306E\u307F\uFF09
|
|
872
|
+
twp knowledge doc list <KB>
|
|
873
|
+
KB \u306E\u8A18\u4E8B\u3092\u4E00\u89A7\u3059\u308B\uFF08--prefix\u30FB--depth\uFF09
|
|
874
|
+
twp knowledge doc get <KB> <\u30D1\u30B9>
|
|
875
|
+
\u8A18\u4E8B\u3092\u8868\u793A\u3059\u308B\uFF08--output text \u3067\u672C\u6587\u306E Markdown \u3092\u8AAD\u3080\uFF09
|
|
876
|
+
twp knowledge doc create <KB> <\u30D1\u30B9>
|
|
877
|
+
\u8A18\u4E8B\u3092\u4F5C\u6210\u3059\u308B\uFF08\u672C\u6587\u306F --content-file \u306E\u30D5\u30A1\u30A4\u30EB\u304B\u3089\uFF09
|
|
878
|
+
twp knowledge doc update <KB> <\u30D1\u30B9>
|
|
879
|
+
\u8A18\u4E8B\u306E\u4EF6\u540D\u30FB\u672C\u6587\u30FB\u8981\u7D04\u30FB\u30BF\u30B0\u3092\u66F4\u65B0\u3059\u308B
|
|
880
|
+
twp knowledge doc move <KB> <\u79FB\u52D5\u5143> <\u79FB\u52D5\u5148>
|
|
881
|
+
\u8A18\u4E8B\u306E\u30D1\u30B9\u3092\u5909\u3048\u308B\uFF08\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u5909\u66F4\u30FB\u30EA\u30CD\u30FC\u30E0\uFF09
|
|
882
|
+
twp knowledge doc delete <KB> <\u30D1\u30B9>
|
|
883
|
+
\u8A18\u4E8B\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\uFF09
|
|
860
884
|
twp estimate list \u898B\u7A4D\u3092\u4E00\u89A7\u3059\u308B\uFF08--status\u30FB--customer\u30FB--assignee\u30FB--from/--to\uFF09
|
|
861
885
|
twp estimate get <\u898B\u7A4DID>
|
|
862
886
|
\u898B\u7A4D1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B
|
|
@@ -1268,16 +1292,16 @@ TUI \u5185:
|
|
|
1268
1292
|
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
|
|
1269
1293
|
\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
|
|
1270
1294
|
`;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
|
|
1271
|
-
`);process.exit(1)}ignoreEpipe(process.stdout);ignoreEpipe(process.stderr);if(process.env["TWP_AUTO_UPDATE_WORKER"]==="1"){const{runAutoUpdateWorker}=await import("./auto-update-worker-VG77U4UA.js");await runAutoUpdateWorker().catch(()=>void 0);return}const[first,...rest]=process.argv.slice(2);if(first==="__complete"||first==="completion"){const completion=await import("./completion-
|
|
1272
|
-
const[{loadDomain},{loadUserConfig}]=await Promise.all([import("./registry-
|
|
1295
|
+
`);process.exit(1)}ignoreEpipe(process.stdout);ignoreEpipe(process.stderr);if(process.env["TWP_AUTO_UPDATE_WORKER"]==="1"){const{runAutoUpdateWorker}=await import("./auto-update-worker-VG77U4UA.js");await runAutoUpdateWorker().catch(()=>void 0);return}const[first,...rest]=process.argv.slice(2);if(first==="__complete"||first==="completion"){const completion=await import("./completion-EMY4WDII.js");if(first==="completion"){process.exitCode=completion.runCompletion(rest,process.stdout,process.stderr);return}
|
|
1296
|
+
const[{loadDomain},{loadUserConfig}]=await Promise.all([import("./registry-GGKX3MCP.js"),import("./config-3CNEQ7KN.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-YMI3F44R.js");autoUpdate2.registerRunning();autoUpdate2.onStartup(VERSION);const{runConfigure}=await import("./configure-3H3CGGBI.js");process.exitCode=
|
|
1273
1297
|
await runConfigure(rest);return}const args=parseArgv(process.argv.slice(2));if(args.command==="version"){process.stdout.write(`${VERSION}
|
|
1274
1298
|
`);return}if(args.command==="help"){process.stdout.write(HELP);return}if(args.unknown.length>0){process.stderr.write(`\u4E0D\u660E\u306A\u5F15\u6570: ${args.unknown.join(" ")}
|
|
1275
1299
|
|
|
1276
|
-
${HELP}`);process.exitCode=2;return}const autoUpdate=await import("./auto-update-YMI3F44R.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-
|
|
1277
|
-
{},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-
|
|
1278
|
-
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-NCAVUXSX.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-
|
|
1279
|
-
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-
|
|
1300
|
+
${HELP}`);process.exitCode=2;return}const autoUpdate=await import("./auto-update-YMI3F44R.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-65IJLMKQ.js");process.exitCode=await runDomain({domain:args.domain,...args.operation!==void 0?{operation:args.operation}:
|
|
1301
|
+
{},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-YMEYR2LG.js");process.exitCode=await runApiCommand({argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.
|
|
1302
|
+
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-NCAVUXSX.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-GMUQCBFQ.js");
|
|
1303
|
+
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-MYGPEYBE.js");process.exitCode=await runTaskLoop(
|
|
1280
1304
|
{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.
|
|
1281
|
-
charterFile,charterOutput:args.charterOut,charterRevision:args.charterRevision,settingsOp:args.settingsOp,skillOp:args.skillOp,skillName:args.skillName,skillAll:args.skillAll,skillDir:args.skillDir,output:args.output,query:args.query,revisionFrom:args.revisionFrom,revisionTo:args.revisionTo,planOp:args.planOp,capacityOp:args.capacityOp,planEmpty:args.planEmpty,planCheck:args.planCheck,yes:args.yes,ais:args.ais,workspace:args.workspace,aiConfigFile:args.aiConfigFile,noAiConfigFile:args.
|
|
1282
|
-
return}if(args.command==="print"){const{runOneShot}=await import("./oneshot-
|
|
1305
|
+
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,planEmpty:args.planEmpty,planCheck:args.planCheck,yes:args.yes,ais:args.ais,workspace:args.workspace,aiConfigFile:args.aiConfigFile,noAiConfigFile:args.
|
|
1306
|
+
noAiConfigFile});return}if(args.command==="print"){const{runOneShot}=await import("./oneshot-XRN744YK.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.profile}:{},version:VERSION});return}const{startTui}=await import("./app-37IMKCQZ.js");
|
|
1283
1307
|
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();
|