@tocca-systems/twp-cli 0.93.0 → 0.94.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/CHANGELOG.public.md +8 -0
  2. package/README.md +21 -4
  3. package/dist/{agent-loop-HMSOMXFI.js → agent-loop-ED3PVMVI.js} +1 -1
  4. package/dist/{api-command-W5NBP6LO.js → api-command-JCHG6Z7G.js} +1 -1
  5. package/dist/{app-ATZXNSKN.js → app-W3MKOXGY.js} +3 -3
  6. package/dist/{chunk-VRRDGI2I.js → chunk-2J5A4Q7U.js} +8 -7
  7. package/dist/{chunk-XIAZ6ZJG.js → chunk-3TDGVH3E.js} +1 -1
  8. package/dist/{chunk-7T5CEF6J.js → chunk-42XM4ZF6.js} +1 -1
  9. package/dist/chunk-5YJSWKQG.js +18 -0
  10. package/dist/chunk-C7MCP63I.js +51 -0
  11. package/dist/{chunk-MSZWJ24L.js → chunk-DJCPPFTI.js} +3 -3
  12. package/dist/{chunk-6EQLA56A.js → chunk-INS77QHY.js} +1 -1
  13. package/dist/{settings-command-TEVH2MNY.js → chunk-MTK4WY54.js} +12 -11
  14. package/dist/chunk-NJL3H2BB.js +7 -0
  15. package/dist/chunk-QBUVJBZ2.js +13 -0
  16. package/dist/cli.js +19 -12
  17. package/dist/{commands-A3RLFXMI.js → commands-G3KAD2J7.js} +1 -1
  18. package/dist/{commands-QNVPMZDX.js → commands-VUDISST6.js} +30 -27
  19. package/dist/{completion-YB2UIXEL.js → completion-INVEPDAF.js} +6 -5
  20. package/dist/{dispatch-GSBMRWQ4.js → dispatch-ZRC3TVFT.js} +1 -1
  21. package/dist/{license-YOBNOTSR.js → license-S35KLEJW.js} +1 -1
  22. package/dist/{logout-guard-HUCILXP7.js → logout-guard-PEETWT4A.js} +1 -1
  23. package/dist/{media-SE6FZLQG.js → media-FNQUGMR5.js} +1 -1
  24. package/dist/orientation-command-PQ3QXDPE.js +25 -0
  25. package/dist/{plan-submit-3LCM44YE.js → plan-submit-7724A3OV.js} +1 -1
  26. package/dist/{registry-PJBXIHUK.js → registry-LSCY5JIU.js} +1 -1
  27. package/dist/{run-DHHIH5A3.js → run-6LVGXIBB.js} +1 -1
  28. package/dist/server-settings-DR3KPUCD.js +4 -0
  29. package/dist/settings-command-3SLINN5N.js +3 -0
  30. package/dist/{setup-FX2IUBHT.js → setup-ICJPTYKW.js} +1 -1
  31. package/dist/{user-PWZUOZGI.js → user-Y244LJW3.js} +6 -6
  32. package/package.json +1 -1
  33. package/dist/chunk-EOXTDZTA.js +0 -13
  34. package/dist/chunk-HPBAAKJS.js +0 -49
  35. package/dist/chunk-ISLZWSHN.js +0 -17
  36. package/dist/server-settings-TFVXMOJB.js +0 -4
@@ -1,13 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- 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","runner"];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","-\
4
- -to","--config","--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","--include-stopped","--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;
5
- if(arg.startsWith("-")&&arg!=="-"){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}}var TASK_LOOP_QUEUE_ACTIONS=["item","history","plan\
6
- -history"];var QUEUE_DOMAIN="agent-loop";function rewriteQueueCommand(argv){const{tokens,indexes}=dispatch(argv);const[first,second]=tokens;if(first===QUEUE_DOMAIN||first==="help"&&second===QUEUE_DOMAIN)return{argv,moved:QUEUE_DOMAIN};const[firstIndex,secondIndex]=indexes;if(first!=="task-loop"||second===void 0||firstIndex===void 0||secondIndex===void 0||!TASK_LOOP_QUEUE_ACTIONS.includes(second)){return{argv}}const next=[...argv];next[firstIndex]=QUEUE_DOMAIN;if(second==="item")next.splice(secondIndex,
7
- 1);return{argv:next}}var MOVED_QUEUE_COMMAND_MESSAGE=`\`twp agent-loop\` \u306F \`twp task-loop\` \u306B\u7D71\u5408\u3057\u307E\u3057\u305F\u3002\u6B21\u306E\u3088\u3046\u306B\u6253\u3063\u3066\u304F\u3060\u3055\u3044:
8
- twp agent-loop <\u64CD\u4F5C> ... \u2192 twp task-loop item <\u64CD\u4F5C> ...
9
- twp agent-loop history list ... \u2192 twp task-loop history list ...
10
- twp agent-loop plan-history list ... \u2192 twp task-loop plan-history list ...
11
- \u8A73\u3057\u304F\u306F twp task-loop item help
12
- `;function isBuiltin(token){return token!==void 0&&BUILTIN_COMMANDS.includes(token)}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!==
13
- void 0)consumed.push(secondIndex);return{kind:"builtin",command:first,action:second,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}}export{BUILTIN_COMMANDS,TASK_LOOP_ACTIONS,VALUE_FLAGS,BOOLEAN_FLAGS,dispatch,TASK_LOOP_QUEUE_ACTIONS,QUEUE_DOMAIN,rewriteQueueCommand,MOVED_QUEUE_COMMAND_MESSAGE,resolveRoute};
@@ -1,49 +0,0 @@
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-X3F7DOP5.js";import{BOOLEAN_FLAGS,dispatch,resolveRoute,rewriteQueueCommand}from"./chunk-EOXTDZTA.js";import{splitFlagToken}from"./chunk-QQRJLH6B.js";var GLOBAL_FLAGS=new Set(["-h","--help","-v","--version","--profile","--output","--query","--dry-run","--debug","--yes","-y","--refresh"]);function parseArgv(rawArgv){const out={command:"tui",safe:false,daemon:false,forceRunner:false,stopForce:false,logoutForce:false,stopDrain:false,noTui:false,doctor:false,yes:false,skillAll:false,includeStopped:false,planEmpty:false,planCheck:false,noAiConfigFile:false,verbose:false,loginMethod:"browser",loginNoBrowser:false,promptFromStdin:false,domainArgv:[],
4
- domainHelp:false,dryRun:false,debug:false,refresh:false,unknown:[],allowedTools:[],disallowedTools:[]};const queue=rewriteQueueCommand(rawArgv);if(queue.moved!==void 0){out.movedCommand=queue.moved;return out}const argv=queue.argv;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.
5
- 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(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.
6
- 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="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===
7
- "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(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=
8
- 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.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"\
9
- --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.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="\
10
- 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"--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;
11
- 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("-"))){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("\
12
- -"))){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,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;
13
- 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,"--project",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.
14
- 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=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-fi\
15
- le":{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(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":{
16
- 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(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"\
17
- --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}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"--include-stopped":out.includeStopped=true;break;case"--empty":out.planEmpty=true;break;case"--check":out.planCheck=true;break;default:if(out.
18
- 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=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===
19
- "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}if(out.command==="task-loop"&&out.taskLoopAction==="capacity"&&out.capacityOp===void 0&&(raw==="report"||raw==="list")){out.capacityOp=raw;break}if(out.command==="task-loop"&&out.taskLoopAction==="runner"){if(out.runnerOp===void 0&&(raw==="list"||raw===
20
- "remove")){out.runnerOp=raw;break}if(out.runnerOp==="remove"&&out.runnerTargetId===void 0&&!raw.startsWith("-")){out.runnerTargetId=raw;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(
21
- out.loginMethod==="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===
22
- "browser")){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(
23
- "--interval");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-con\
24
- fig-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");
25
- if(out.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==="status"||out.command==="task-loop"&&out.taskLoopAction==="skill"&&(out.skillOp==="list"||out.skillOp==="show"||out.skillOp==="check")||out.command==="task-loop"&&out.taskLoopAction==="runner"||out.command==="task-loop"&&out.
26
- taskLoopAction==="capacity"&&out.capacityOp==="list";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"&&(out.skillOp==="check"||out.taskLoopAction==="runner"&&out.runnerOp==="remove")&&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===
27
- "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.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-lo\
28
- op"&&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");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===
29
- "runner"&&out.runnerOp==="remove"||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-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)
30
- 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"&&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)
31
- 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\u3060\u3055\u3044")}if(out.charterOp!=="push"&&out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOp!==
32
- "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("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==
33
- 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");if(out.skillAll)
34
- 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.
35
- 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")}
36
- 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!==
37
- 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(
38
- "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\
39
- 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(
40
- "--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 / list \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");
41
- 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.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==="tas\
42
- k-loop"&&out.taskLoopAction==="runner"){if(out.runnerOp===void 0)out.unknown.push("runner \u306B\u306F list / remove \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(out.runnerOp==="remove"&&out.runnerTargetId===void 0){out.unknown.push("runner remove \u306B\u306F runner_id \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044")}if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==
43
- 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==="schedule"&&out.scheduleOp!==void 0){const op=out.scheduleOp;const takesFile=op==="push"||op==="config"&&
44
- 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)out.unknown.push(`schedule ${op==="push"?"push":"config push"} \u306B\u306F --file <\u30D1\u30B9> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`);
45
- 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)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==
46
- 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.includeStopped&&!(out.command==="task-loop"&&out.taskLoopAction==="capacity"&&out.capacityOp==="list")){out.unknown.push("--include-stopped")}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{GLOBAL_FLAGS,parseArgv};
@@ -1,17 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{DEFAULT_INTERVAL_SEC}from"./chunk-6EQLA56A.js";import{CHAIN_KEYS,reloadAiConfig}from"./chunk-FABDZBDZ.js";import{describeError}from"./chunk-UZUV5FYG.js";import{isPrivateProjectId}from"./chunk-RMFLTSOV.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import fs from"fs";import path from"path";var PROMPT_KEYS=["charter","charter_prefix","charter_suffix","plan_preamble","step_budget","non_interactive_note","safe_mode_note"];function parseServerSettings(res){const json=res.json;if(json===null||typeof json!=="object"||Array.isArray(json))return null;const top=json;const data=top["data"];const b=data!==null&&typeof data==="object"&&!Array.isArray(data)&&"revision"in data?data:top;const revision=b["revision"];if(typeof revision!=="number"||!Number.isInteger(revision)||revision<0)return null;
4
- const rawAi=b["ai"];const ai=rawAi!==null&&typeof rawAi==="object"&&!Array.isArray(rawAi)?Object.fromEntries(Object.entries(rawAi).filter(([,v])=>v!==null&&v!==void 0)):{};const prompts={};const rawPrompts=b["prompts"];if(rawPrompts!==null&&typeof rawPrompts==="object"&&!Array.isArray(rawPrompts)){for(const key of PROMPT_KEYS){const v=rawPrompts[key];if(typeof v==="string")prompts[key]=v}}const rawLoop=b["loop"];const rawInterval=rawLoop!==null&&typeof rawLoop==="object"&&!Array.isArray(rawLoop)?
5
- rawLoop["interval_sec"]:void 0;const intervalSec=typeof rawInterval==="number"&&Number.isInteger(rawInterval)&&rawInterval>0?rawInterval:null;const rawOutcomes=b["outcomes"];const outcomeSkills=Array.isArray(rawOutcomes)?[...new Set(rawOutcomes.map(r=>r!==null&&typeof r==="object"?r["skill"]:void 0).filter(v=>typeof v==="string"&&v.trim()!==""))]:[];return{revision,ai,prompts,intervalSec,outcomeSkills}}function formatConfigHash(aiHash,revision,ai,charter){return`${aiHash};r=${revision};ai=${ai};\
6
- charter=${charter}`}function renderStepBudget(template,vars){return template.replaceAll("{timeout_min}",String(vars.timeoutMin)).replaceAll("{soft_min}",String(vars.softMin)).replaceAll("{wrap_up_min}",String(vars.wrapUpMin))}var LoopSettingsApplier=class{constructor(deps){this.deps=deps}deps;last=null;lastWarning="";lastAiWarning="";lastSummary="";serverAiApplied=false;lastSafeWarning="";lastInterval="";async apply(){const{config,log}=this.deps;const outcome=await this.fetch();const warning=outcome.
7
- warning??"";if(warning!==""&&warning!==this.lastWarning)log(` \u26A0\uFE0F ${warning}`);else if(warning===""&&this.lastWarning!=="")log("\u30EB\u30FC\u30D7\u8A2D\u5B9A\u3092\u30B5\u30FC\u30D0\u304B\u3089\u518D\u3073\u53D6\u5F97\u3067\u304D\u308B\u3088\u3046\u306B\u306A\u308A\u307E\u3057\u305F");this.lastWarning=warning;const settings=outcome.settings;config.serverPrompts=settings?.prompts??{};config.outcomeSkills=settings?.outcomeSkills??[];const safeNote=config.serverPrompts.safe_mode_note;const safeWarning=config.
8
- safeMode&&safeNote!==void 0?safeNote===""?"\u5B89\u5168\u30E2\u30FC\u30C9\u3067\u8D77\u52D5\u3057\u3066\u3044\u307E\u3059\u304C\u3001\u30B5\u30FC\u30D0\u306E\u30EB\u30FC\u30D7\u8A2D\u5B9A\u304C\u5B89\u5168\u30E2\u30FC\u30C9\u306E\u6CE8\u8A18\u3092\u7A7A\u306B\u3057\u3066\u3044\u307E\u3059\uFF08\u672C\u756A\u30EA\u30EA\u30FC\u30B9\u7981\u6B62\u306E\u6307\u793A\u304C\u30D7\u30ED\u30F3\u30D7\u30C8\u306B\u8F09\u308A\u307E\u305B\u3093\uFF09":"\u5B89\u5168\u30E2\u30FC\u30C9\u3067\u8D77\u52D5\u3057\u3066\u3044\u307E\u3059\u3002\u5B89\u5168\u30E2\u30FC\u30C9\u306E\u6CE8\u8A18\u306F\u30B5\u30FC\u30D0\u306E\u30EB\u30FC\u30D7\u8A2D\u5B9A\u306E\u6587\u9762\u306B\u5DEE\u3057\u66FF\u308F\u3063\u3066\u3044\u307E\u3059":
9
- "";if(safeWarning!==""&&safeWarning!==this.lastSafeWarning)log(` \u26A0\uFE0F ${safeWarning}`);this.lastSafeWarning=safeWarning;const serverAi=settings!==null&&Object.keys(settings.ai).length>0?settings.ai:null;const layer=serverAi??(this.serverAiApplied?{}:null);const r=reloadAiConfig(config.ai,config.aiSource.inline,config.aiSource.file,config.workspace,layer);if(r.status!=="kept"||layer!==null)this.serverAiApplied=serverAi!==null;const aiWarning=r.warnings.join("\n");if(aiWarning!==""&&aiWarning!==
10
- this.lastAiWarning){for(const w of r.warnings)log(` \u26A0\uFE0F ${w}`)}else if(aiWarning===""&&this.lastAiWarning!==""&&r.status!=="skipped"){log("AI \u5272\u5F53\u30D5\u30A1\u30A4\u30EB\u3092\u518D\u3073\u8AAD\u3081\u308B\u3088\u3046\u306B\u306A\u308A\u307E\u3057\u305F")}this.lastAiWarning=aiWarning;if(r.status==="updated"){log(r.hashBefore===r.hashAfter?`AI \u5272\u5F53\u306E\u5909\u66F4\u3092\u53CD\u6620\u3057\u307E\u3057\u305F\uFF08AI\u5272\u5F53\u30CF\u30C3\u30B7\u30E5 ${r.hashAfter} \u306F\u4E0D\u5909\
11
- \uFF1D\u9396\u304B\u30B3\u30E1\u30F3\u30C8\u3060\u3051\u306E\u5909\u66F4\uFF09`:`AI \u5272\u5F53\u306E\u5909\u66F4\u3092\u53CD\u6620\u3057\u307E\u3057\u305F\uFF08AI\u5272\u5F53\u30CF\u30C3\u30B7\u30E5 ${r.hashBefore} \u2192 ${r.hashAfter}\uFF09`)}const fromServer=outcome.source==="cached"?"cached":"server";this.applyInterval(settings,fromServer);const inline=config.aiSource.inline;const effectiveServerKeys=serverAi===null?[]:Object.keys(serverAi).filter(k=>!(CHAIN_KEYS.includes(k)&&inline!==void 0&&
12
- k in inline));const aiOrigin=effectiveServerKeys.length>0?fromServer:inline!==void 0&&Object.keys(inline).length>0||config.ai.fileLayer!==null?"local":"builtin";const charterOrigin=this.charterOrigin(settings,fromServer);const revision=settings?.revision??0;config.configHash=formatConfigHash(config.ai.hash(),revision,aiOrigin,charterOrigin);const serverPromptKeys=Object.keys(config.serverPrompts);const summary=`\u30EB\u30FC\u30D7\u8A2D\u5B9A: ${settings===null?"\u30B5\u30FC\u30D0\u5024\u306A\u3057":
13
- `${outcome.source==="cached"?"\u76F4\u524D\u306B\u53D6\u5F97\u3057\u305F\u30B5\u30FC\u30D0\u5024":"\u30B5\u30FC\u30D0"} revision ${revision}`}\uFF08AI\u5272\u5F53=${aiOrigin}${effectiveServerKeys.length>0?`\u30FB\u30B5\u30FC\u30D0 ${effectiveServerKeys.length}\u30AD\u30FC`:""} \uFF0F \u61B2\u7AE0=${charterOrigin} \uFF0F \u30B5\u30FC\u30D0\u306E\u6587\u9762=${serverPromptKeys.length>0?serverPromptKeys.join(","):"\u306A\u3057"}\uFF09`;if(summary!==this.lastSummary)log(summary);this.lastSummary=summary}applyInterval(settings,fromServer){
14
- const{config,log}=this.deps;if(config.intervalSource==="cli")return;const serverSec=settings?.intervalSec??null;const source=serverSec!==null?fromServer:"default";config.intervalSec=serverSec??DEFAULT_INTERVAL_SEC;config.intervalSource=source;const line=`INTERVAL: ${config.intervalSec}s\uFF08\u53D6\u5F97\u5143: ${source}\uFF09`;if(line!==this.lastInterval)log(` ${line}`);this.lastInterval=line}charterOrigin(settings,fromServer){const{config}=this.deps;if(!config.charterEnabled)return"off";if(settings!==
15
- null&&settings.prompts.charter!==void 0)return fromServer;const file=config.charterFile;if(file===null||file.trim()==="")return"builtin";const resolved=path.isAbsolute(file)?file:path.resolve(config.workspace,file);try{fs.accessSync(resolved,fs.constants.R_OK);return fs.statSync(resolved).isFile()?"local":"builtin"}catch{return"builtin"}}async fetch(){if(isPrivateProjectId(this.deps.config.projectId??""))return{settings:null,source:"none",warning:null};const res=await this.deps.api.request("GET",
16
- "/settings");const parsed=res.ok?parseServerSettings(res):null;if(parsed!==null){this.last=parsed;return{settings:parsed,source:"server",warning:null}}const transient=res.status===null||res.status>=500||res.ok;const reason=stripTerminalControls(res.ok?`\u5FDC\u7B54\u3092\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093\uFF08\u5148\u982D: ${res.raw.slice(0,120)}\uFF09`:describeError(res));if(transient&&this.last!==null){return{settings:this.last,source:"cached",warning:`\u30EB\u30FC\u30D7\u8A2D\u5B9A\u3092\u30B5\u30FC\u30D0\u304B\u3089\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\uFF08${reason}\
17
- \uFF09\u3002\u76F4\u524D\u306B\u53D6\u5F97\u3057\u305F revision ${this.last.revision} \u3067\u8D70\u308A\u307E\u3059`}}return{settings:null,source:"none",warning:`\u30EB\u30FC\u30D7\u8A2D\u5B9A\u3092\u30B5\u30FC\u30D0\u304B\u3089\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\uFF08${reason}\uFF09\u3002\u30ED\u30FC\u30AB\u30EB\u8A2D\u5B9A\uFF08ai_config_file / charter_file\uFF09\u3068\u7D44\u307F\u8FBC\u307F\u65E2\u5B9A\u3067\u8D70\u308A\u307E\u3059`}}};export{PROMPT_KEYS,parseServerSettings,formatConfigHash,renderStepBudget,LoopSettingsApplier};
@@ -1,4 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{LoopSettingsApplier,PROMPT_KEYS,formatConfigHash,parseServerSettings,renderStepBudget}from"./chunk-ISLZWSHN.js";import"./chunk-6EQLA56A.js";import"./chunk-VYDPW2YO.js";import"./chunk-CVX2YWHC.js";import"./chunk-TTST7UDR.js";import"./chunk-FABDZBDZ.js";import"./chunk-6CS5L24D.js";import"./chunk-N2UVRM3Z.js";import"./chunk-UZUV5FYG.js";import"./chunk-RMFLTSOV.js";import"./chunk-PMOUHEJQ.js";import"./chunk-J7QYPKVK.js";import"./chunk-5WGOHFAS.js";
4
- import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{LoopSettingsApplier,PROMPT_KEYS,formatConfigHash,parseServerSettings,renderStepBudget};