@tocca-systems/twp-cli 0.24.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/CHANGELOG.public.md +14 -0
  2. package/README.md +98 -4
  3. package/dist/agent-loop-ZP47LTUE.js +75 -0
  4. package/dist/{ai-dispatch-36HRDRLF.js → ai-dispatch-VSCKUY6J.js} +1 -1
  5. package/dist/{api-command-NMYYJKZH.js → api-command-VWJXBUCJ.js} +2 -2
  6. package/dist/{app-2KMY3QPM.js → app-3JIU5OUX.js} +49 -48
  7. package/dist/attendance-42XLURM7.js +21 -0
  8. package/dist/{auto-update-worker-AXBJIMFP.js → auto-update-worker-OBFGN6FY.js} +1 -1
  9. package/dist/{backlog-7MJIOT22.js → backlog-KSMQIC2R.js} +1 -1
  10. package/dist/charter-command-ULFOEZWE.js +26 -0
  11. package/dist/chunk-BKZGBJWT.js +15 -0
  12. package/dist/{chunk-DMDVLOAY.js → chunk-G4OO4M44.js} +1 -1
  13. package/dist/{chunk-WGVHYTZV.js → chunk-IRAZ27WL.js} +1 -1
  14. package/dist/{chunk-4V4T5ZUS.js → chunk-KEP5QSS4.js} +40 -15
  15. package/dist/{chunk-I3YPO7CY.js → chunk-KUIFIN7P.js} +1 -1
  16. package/dist/{chunk-QOUFHYK5.js → chunk-NIAOX77K.js} +1 -1
  17. package/dist/chunk-P4AEFKLM.js +13 -0
  18. package/dist/{chunk-VCMVTC6B.js → chunk-PK6CUUAQ.js} +1 -1
  19. package/dist/chunk-SP27PYHC.js +3 -0
  20. package/dist/chunk-UDPJ2IGK.js +7 -0
  21. package/dist/chunk-VCZVITWG.js +13 -0
  22. package/dist/{chunk-UIWGEBWI.js → chunk-VGMWPPGD.js} +13 -11
  23. package/dist/{chunk-UG2I6VRD.js → chunk-VYDEUFGU.js} +1 -1
  24. package/dist/{chunk-Y2QAP6SU.js → chunk-WQ66EYZS.js} +1 -1
  25. package/dist/{chunk-6NCY4NPV.js → chunk-X45SJNT2.js} +4 -4
  26. package/dist/chunk-YWGYRISN.js +34 -0
  27. package/dist/{chunk-WOUKWOAR.js → chunk-Z2MNO3FT.js} +10 -9
  28. package/dist/cli.js +33 -8
  29. package/dist/{commands-U36UTCKR.js → commands-OFLBUP6O.js} +1 -1
  30. package/dist/{commands-6YTOVZ5P.js → commands-RG7M6E5K.js} +80 -85
  31. package/dist/{department-JOXXJKQB.js → department-GH475WCF.js} +1 -1
  32. package/dist/{job-title-L47J6TZY.js → job-title-FC2GWDE7.js} +1 -1
  33. package/dist/{logout-guard-FO7KZL3X.js → logout-guard-3PB3VMGP.js} +1 -1
  34. package/dist/{media-ZMDYHHNN.js → media-TD7D4TXF.js} +1 -1
  35. package/dist/{oneshot-KYATQPL7.js → oneshot-QQOOZZDT.js} +5 -5
  36. package/dist/{position-FHWCMMBQ.js → position-4RHTV3IK.js} +1 -1
  37. package/dist/{project-ZODASYER.js → project-DBNWB47J.js} +1 -1
  38. package/dist/{run-QCDT35NT.js → run-VNHAQO24.js} +1 -1
  39. package/dist/{schedule-command-GKXKNMLG.js → schedule-command-FJU7JFNR.js} +1 -1
  40. package/dist/{server-settings-CG3EM7R7.js → server-settings-YL6KALXG.js} +1 -1
  41. package/dist/{setup-6CXUVCF5.js → setup-BJKIHANC.js} +1 -1
  42. package/dist/skill-command-V26WGVXU.js +61 -0
  43. package/dist/{task-G5YWQ6L5.js → task-7VOYCG26.js} +2 -2
  44. package/dist/{update-PZBUIYOL.js → update-RLKK6N7U.js} +1 -1
  45. package/dist/user-UU2SLVC4.js +336 -0
  46. package/package.json +1 -1
  47. package/dist/charter-command-UBUE3KUO.js +0 -36
  48. package/dist/chunk-EJ474UDB.js +0 -3
  49. package/dist/chunk-HW3QGKYR.js +0 -30
  50. package/dist/chunk-IJLJGDMZ.js +0 -7
  51. package/dist/chunk-ODLJ2LNQ.js +0 -13
  52. package/dist/user-DO4VNIBR.js +0 -204
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tocca-systems/twp-cli",
3
- "version": "0.24.0",
3
+ "version": "0.25.0",
4
4
  "description": "TWP CLI — Tocca Working Platform の CLI 型統合インターフェース(AIエージェントハーネス)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,36 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{buildDiffLines,diffStat}from"./chunk-VRBI2NPI.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import{EXIT_API_CLIENT,EXIT_API_SERVER,EXIT_AUTH,EXIT_FAILURE,EXIT_OK,EXIT_USAGE}from"./chunk-7WSNIXTQ.js";import"./chunk-VSJBJXZO.js";import*as fs from"fs";var DEFAULT_CHARTER_FILE="CONSTITUTION.md";async function runCharterCommand(deps,opts){const out=deps.out??(t=>void process.stdout.write(stripTerminalControls(t)));const err=deps.err??(t=>void process.stderr.write(stripTerminalControls(t)));const readFile=deps.readFile??(p=>new TextDecoder("utf-8",{fatal:true,ignoreBOM:true}).decode(fs.readFileSync(p)));const writeFile=deps.writeFile??((p,c)=>fs.writeFileSync(p,c,"utf8"));const exists=deps.exists??(p=>fs.existsSync(p));return opts.op==="push"?push(
4
- deps.api,opts,{out,err,readFile}):pull(deps.api,opts,{out,err,readFile,writeFile,exists})}async function push(api,opts,io){if(opts.file===void 0){io.err("--file <\u30D1\u30B9> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: --file CONSTITUTION.md\uFF09\n");return EXIT_USAGE}let expected;if(opts.revision!==void 0){if(!/^\d+$/.test(opts.revision)){io.err(`--revision \u306F0\u4EE5\u4E0A\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${opts.revision}
5
- `);return EXIT_USAGE}if(!opts.yes){io.err("--revision \u306F --yes \u3068\u4E00\u7DD2\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08--yes \u306A\u3057\u3067\u306F\u767B\u9332\u3057\u307E\u305B\u3093\uFF09\n");return EXIT_USAGE}expected=Number(opts.revision)}let local;try{local=io.readFile(opts.file)}catch(e){io.err(`\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093: ${opts.file}\uFF08${e.message}\uFF09
6
- `);return EXIT_USAGE}const current=await fetchState(api,io.err);if(typeof current==="number")return current;const before=current.charter??"";if(current.charter!==null&&current.charter===local){io.out(`\u5DEE\u5206\u306F\u3042\u308A\u307E\u305B\u3093\uFF08revision ${current.revision}\uFF09\u3002\u767B\u9332\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002
7
- `);return EXIT_OK}printDiff(io.out,`\u30B5\u30FC\u30D0\uFF08revision ${current.revision}${current.charter===null?"\u30FB\u672A\u767B\u9332":""}\uFF09`,opts.file,before,local);if(current.charter===null&&local===""){io.out("\u26A0\uFE0F \u30D5\u30A1\u30A4\u30EB\u304C\u7A7A\u3067\u3059\u3002\u767B\u9332\u3059\u308B\u3068\u7D44\u307F\u8FBC\u307F\u65E2\u5B9A\u3067\u306F\u306A\u304F\u300C\u7A7A\u306E\u61B2\u7AE0\u300D\u306B\u306A\u308A\u307E\u3059\n")}const revision=expected??current.revision;if(!opts.
8
- yes){io.out(`
9
- \u767B\u9332\u3057\u3066\u3044\u307E\u305B\u3093\u3002\u3053\u306E\u5DEE\u5206\u3067\u78BA\u5B9A\u3059\u308B\u306B\u306F\u6B21\u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\uFF08revision ${current.revision} \u3092\u9001\u308B\u306E\u3067\u3001\u305D\u306E\u5F8C\u30B5\u30FC\u30D0\u304C\u66F4\u65B0\u3055\u308C\u3066\u3044\u308C\u3070 409 \u3067\u6B62\u307E\u308A\u307E\u3059\uFF09:
10
- ${confirmCommand(opts,current.revision)}
11
- `);return EXIT_USAGE}const res=await api.request("PUT","/settings/charter",{charter:local,revision});if(!res.ok){if(res.status===409){const json=res.json??{};const data=json["data"]&&typeof json["data"]==="object"?json["data"]:{};const now=pickNumber(json,"current_revision")??pickNumber(data,"current_revision");io.err(`\u26D4 409: revision ${revision} \u3067\u9001\u308A\u307E\u3057\u305F\u304C\u3001\u30B5\u30FC\u30D0\u306F${now!==null?` revision ${now} \u306B`:""}\u66F4\u65B0\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u753B\u9762\u3067\u7DE8\u96C6\u3055\u308C\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u4E0A\u66F8\u304D\u305B\u305A\u306B\
12
- \u6B62\u3081\u307E\u3057\u305F\uFF08\u5DEE\u5206\u3092\u78BA\u8A8D\u3057\u3066\u304B\u3089\u3084\u308A\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\uFF09
13
- ${errorDetail(res)}
14
- `);return apiExit(res)}io.err(`\u26D4 \u61B2\u7AE0\u3092\u767B\u9332\u3067\u304D\u307E\u305B\u3093\uFF08${errorDetail(res)}\uFF09
15
- `);return apiExit(res)}const saved=parseState(res);if(saved===null){io.err(`\u26A0\uFE0F \u5FDC\u7B54\u3092\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093\u3002\u53CD\u6620\u3055\u308C\u305F\u304B\u3092 GET \u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u5FDC\u7B54\u306E\u5148\u982D: ${res.raw.slice(0,120)}\uFF09
16
- `);return EXIT_API_SERVER}io.out(`\u767B\u9332\u3057\u307E\u3057\u305F: revision ${saved.revision}\uFF08\u66F4\u65B0\u8005: ${saved.updatedByName||"\u4E0D\u660E"}${saved.updatedAt?`\u30FB${saved.updatedAt}`:""}\uFF09
17
- `);return EXIT_OK}async function pull(api,opts,io){const target=opts.out??DEFAULT_CHARTER_FILE;const current=await fetchState(api,io.err);if(typeof current==="number")return current;if(current.charter===null){io.err(`\u30B5\u30FC\u30D0\u306B\u61B2\u7AE0\u304C\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF08revision ${current.revision}\uFF09\u3002${target} \u306F\u5909\u66F4\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002
18
- `);return EXIT_FAILURE}const source=`\u30B5\u30FC\u30D0\uFF08revision ${current.revision}${current.updatedByName?`\u30FB${current.updatedByName}`:""}\uFF09`;if(io.exists(target)){let local;try{local=io.readFile(target)}catch(e){io.err(`\u65E2\u5B58\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093: ${target}\uFF08${e.message}\uFF09
19
- `);return EXIT_FAILURE}if(local===current.charter){io.out(`${target} \u306F\u30B5\u30FC\u30D0\uFF08revision ${current.revision}\uFF09\u3068\u540C\u3058\u3067\u3059\u3002\u5909\u66F4\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002
20
- `);return EXIT_OK}printDiff(io.out,target,source,local,current.charter);if(!opts.yes){io.out(`
21
- ${target} \u3092\u4E0A\u66F8\u304D\u3057\u3066\u3044\u307E\u305B\u3093\u3002\u4E0A\u66F8\u304D\u3059\u308B\u306B\u306F --yes \u3092\u4ED8\u3051\u3066\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002
22
- `);return EXIT_USAGE}}try{io.writeFile(target,current.charter)}catch(e){io.err(`\u66F8\u304D\u8FBC\u3081\u307E\u305B\u3093: ${target}\uFF08${e.message}\uFF09
23
- `);return EXIT_FAILURE}io.out(`${target} \u306B\u5C55\u958B\u3057\u307E\u3057\u305F\uFF08revision ${current.revision}\uFF09\u3002
24
- `);return EXIT_OK}async function fetchState(api,err){const res=await api.request("GET","/settings");if(!res.ok){err(`\u26D4 \u30EB\u30FC\u30D7\u8A2D\u5B9A\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\uFF08${errorDetail(res)}\uFF09
25
- `);return apiExit(res)}const state=parseState(res);if(state===null){err(`\u26D4 \u30EB\u30FC\u30D7\u8A2D\u5B9A\u306E\u5FDC\u7B54\u3092\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093\uFF08\u5FDC\u7B54\u306E\u5148\u982D: ${res.raw.slice(0,120)}\uFF09
26
- `);return EXIT_API_SERVER}return state}function apiExit(res){if(res.status===401)return EXIT_AUTH;if(res.status!==null&&res.status>=400&&res.status<500)return EXIT_API_CLIENT;return EXIT_API_SERVER}function body(res){const json=res.json??{};const data=json["data"];if(data&&typeof data==="object"&&!Array.isArray(data)&&"revision"in data){return data}return json}function parseState(res){const b=body(res);const revision=pickNumber(b,"revision");if(revision===null)return null;const prompts=b["prompt\
27
- s"];let charter=null;if(prompts&&typeof prompts==="object"){const v=prompts["charter"];if(typeof v==="string")charter=v}return{charter,revision,updatedByName:typeof b["updated_by_name"]==="string"?b["updated_by_name"]:"",updatedAt:typeof b["updated_at"]==="string"?b["updated_at"]:""}}function pickNumber(b,key){const v=b[key];return typeof v==="number"&&Number.isInteger(v)&&v>=0?v:null}function errorDetail(res){if(res.status===null)return`transport_error=${res.transportError??"\u4E0D\u660E"}`;const json=res.
28
- json??{};const data=json["data"]&&typeof json["data"]==="object"?json["data"]:{};const errorField=json["error"];const errorObj=errorField&&typeof errorField==="object"?errorField:{};const reason=(typeof errorField==="string"?errorField:"")||str(errorObj["code"])||str(json["reason"])||str(data["reason"]);const message=str(json["error_description"])||str(errorObj["message"])||str(json["message"])||str(data["message"]);const parts=[`http=${res.status}`];if(reason)parts.push(`reason=${reason}`);if(message)
29
- parts.push(message.slice(0,300));const errors=json["errors"]??data["errors"]??json["error_list"];if(errors&&typeof errors==="object")parts.push(JSON.stringify(errors).slice(0,300));if(!reason&&!message)parts.push(`\u5FDC\u7B54\u306E\u5148\u982D: ${res.raw.slice(0,160)}`);return parts.join(" ")}function str(v){return typeof v==="string"?v:""}var HIDDEN_CHARS=/[\x00-\x08\x0B-\x1F\x7F-\x9F\u200B-\u200F\u202A-\u202E\u2060-\u2069\uFEFF]/g;function printDiff(out,fromLabel,toLabel,before,after){const lines=buildDiffLines(
30
- before,after);const{added,removed}=diffStat(lines);out(`--- ${fromLabel}
31
- +++ ${toLabel}
32
- `);for(const l of lines)out(`${l.sign} ${l.text}
33
- `);out(`\uFF08+${added} / -${removed} \u884C\uFF09
34
- `);if(before!==after&&before.replace(/\n$/,"")===after.replace(/\n$/,"")){out(`\uFF08\u9055\u3044\u306F\u672B\u5C3E\u306E\u6539\u884C\u306E\u6709\u7121\u3060\u3051\u3067\u3059: ${after.endsWith("\n")?"\u6539\u884C\u3092\u8DB3\u3059":"\u6539\u884C\u3092\u6D88\u3059"}\uFF09
35
- `)}const hidden=(after.match(HIDDEN_CHARS)??[]).length;if(hidden>0){out(`\u26A0\uFE0F \u66F8\u304D\u8FBC\u307E\u308C\u308B\u5185\u5BB9\u306B\u3001\u5DEE\u5206\u8868\u793A\u3067\u306F\u898B\u3048\u306A\u3044\u6587\u5B57\uFF08\u5236\u5FA1\u6587\u5B57\u30FBCR\u30FB\u53CC\u65B9\u5411\u5236\u5FA1\u30FB\u30BC\u30ED\u5E45\uFF09\u304C ${hidden} \u7B87\u6240\u3042\u308A\u307E\u3059\u3002\u78BA\u5B9A\u3059\u308B\u524D\u306B\u5185\u5BB9\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044
36
- `)}}function confirmCommand(opts,revision){const parts=["twp task-loop charter push","--project",shellQuote(opts.projectRef)];if(opts.profile!==void 0)parts.push("--profile",shellQuote(opts.profile));parts.push("--file",shellQuote(opts.file??DEFAULT_CHARTER_FILE),"--yes","--revision",String(revision));return parts.join(" ")}function shellQuote(v){return/^[A-Za-z0-9_./:@=-]+$/.test(v)?v:`'${v.replace(/'/g,`'\\''`)}'`}export{DEFAULT_CHARTER_FILE,runCharterCommand};
@@ -1,3 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- var DOMAIN_NAMES=["backlog","department","job-title","media","position","project","storage","task","user"];function isDomainName(value){return value!==void 0&&DOMAIN_NAMES.includes(value)}var HELP_TOKEN="help";var API_TOKEN="api";export{isDomainName,HELP_TOKEN,API_TOKEN};
@@ -1,30 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{isModeId,isPermissionModeId}from"./chunk-NAUH75MM.js";import{API_TOKEN,HELP_TOKEN,isDomainName}from"./chunk-EJ474UDB.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"];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","--output","--query"]);var BOOLEAN_FLAGS=new Set(["-h","--help","\
4
- -v","--version","--no-tui","--doctor","--password","--token","--no-browser","--safe","--daemon","--force-runner","--force","--drain","--yes","-y","--no-ai-config-file","--verbose","--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!=="-"){const{name,value:inline}=splitFlagToken(arg);if(BOOLEAN_FLAGS.has(name)){if(inline!==void 0){
5
- 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)}function isTaskLoopAction(token){return token!==void 0&&TASK_LOOP_ACTIONS.includes(token)}function resolveRoute(result){
6
- 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,consumed}}return{kind:"builtin",command:first,...first==="task-loop"?{action:"run"}:{},consumed}}if(second!==void 0&&
7
- 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,noAiConfigFile:false,verbose:false,loginMethod:"browser",loginNoBrowser:false,promptFromStdin:false,domainArgv:[],domainHelp:false,dryRun:false,debug:false,refresh:false,unknown:[],allowedTools:[],
8
- 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(route.operation)){out.command=
9
- "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="domain";out.domain=route.
10
- 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(flag);return{step:0}}if(value.
11
- 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.has(arg)){out.unknown.
12
- 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.profile=value;i+=step}
13
- 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"--query":{const{
14
- 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("-"))){out.
15
- 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,step}=takeValue(
16
- 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,"--project",inline);if(value!==
17
- 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=true;break;case"--ai":{
18
- 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(i,"--now",
19
- 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":{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"\
20
- --revision":{const{value:v,step}=takeValue(i,"--revision",inline);if(v!==void 0){out.charterRevision=v;i+=step}break}default:if(out.command==="task-loop"&&out.taskLoopAction==="charter"&&out.charterOp===void 0&&(raw==="push"||raw==="pull")){out.charterOp=raw;break}out.unknown.push(raw)}}if(out.command!=="login"&&out.loginMethod!=="browser"){out.unknown.push(out.loginMethod==="password"?"--password":"--token");out.loginMethod="browser"}if(out.permissionMode!==void 0&&out.command!=="tui"&&out.command!==
21
- "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==="browser")){out.unknown.push("--no-browser");out.loginNoBrowser=false}if(out.command==="logout"&&out.stopForce){out.logoutForce=true;out.
22
- 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("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles");if(out.project!==void 0)out.unknown.push("--project");if(out.
23
- 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-file");if(out.noAiConfigFile)out.unknown.push("--no-ai-config-file");if(out.charterFile!==void 0)out.unknown.push("--file");if(out.
24
- charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision")}if(out.yes&&out.command!=="task-loop"&&!isDomainRoute)out.unknown.push("--yes");const acceptsOutput=isDomainRoute||out.command==="whoami";if(!acceptsOutput){if(out.output!==void 0)out.unknown.push("--output");if(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(
25
- "--refresh")}if(out.command==="api"&&out.refresh){out.unknown.push("--refresh");out.refresh=false}if(out.command==="task-loop"&&out.taskLoopAction!=="schedule"){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\
26
- -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");out.stopForce=false;out.stopDrain=false}if(out.command==="task-loop"&&out.taskLoopAction!=="setup"){if(out.yes&&out.taskLoopAction!=="charter")out.unknown.push("--yes");if(out.ais!==void 0)out.unknown.push("--ai");if(out.
27
- 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)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(
28
- "--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)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.
29
- charterOp===void 0){out.unknown.push("charter \u306B\u306F push \u304B pull \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044")}if(out.charterOp!=="push"&&out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOp!=="push"&&out.charterRevision!==void 0)out.unknown.push("--revision");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("--for\
30
- ce-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")}return out}export{parseArgv};
@@ -1,7 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{UsageError}from"./chunk-7WSNIXTQ.js";var ISO_DATE_RE=/^\d{4}-\d{2}-\d{2}$/;function isoDate(input,flag){const raw=input.flags.get(flag);if(raw===void 0)return void 0;const value=raw.trim();if(!ISO_DATE_RE.test(value)){throw new UsageError(`${flag} \u306F YYYY-MM-DD \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,"\u4F8B: 2026-09-30")}const[y,m,d]=value.split("-").map(Number);const probe=new Date(Date.UTC(y,m-1,d));if(probe.getUTCFullYear()!==y||probe.getUTCMonth()+1!==m||probe.getUTCDate()!==d){throw new UsageError(
4
- `${flag} \u306B\u5B58\u5728\u3057\u306A\u3044\u65E5\u4ED8\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059: ${raw}`,"\u4F8B: 2026-09-30")}return value}function booleanText(flag,raw){const value=raw.trim().toLowerCase();if(value==="true")return true;if(value==="false")return false;throw new UsageError(`${flag} \u306F true \u304B false \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,`\u4F8B: ${flag} false`)}function priority(input,flag="--priority"){const raw=input.flags.get(flag);
5
- if(raw===void 0)return void 0;const trimmed=raw.trim();const value=/^\d+$/.test(trimmed)?Number(trimmed):Number.NaN;if(!Number.isInteger(value)||value<1||value>3){throw new UsageError(`${flag} \u306F 1 / 2 / 3 \u306E\u3044\u305A\u308C\u304B\u3067\u3059: ${raw}`,"1: \u9AD8 \uFF0F 2: \u4E2D \uFF0F 3: \u4F4E")}return value}function decimal(input,flag,options){const raw=input.flags.get(flag);if(raw===void 0)return void 0;const trimmed=raw.trim();const value=/^\d+(\.\d+)?$/.test(trimmed)?Number(trimmed):
6
- Number.NaN;if(!Number.isFinite(value)||value<options.min||value>options.max){throw new UsageError(`${flag} \u306F ${options.min} \u4EE5\u4E0A ${options.max} \u4EE5\u4E0B\u306E\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,"\u4F8B: 3 / 3.5")}return value}function boundedText(input,flag,options){const raw=input.flags.get(flag);if(raw===void 0)return void 0;if(raw.trim()===""){throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,
7
- `${options.label}\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const count=[...raw].length;if(count>options.maxChars){throw new UsageError(`${options.label}\u304C\u9577\u3059\u304E\u307E\u3059\uFF08${count} \u6587\u5B57\u30FB\u4E0A\u9650 ${options.maxChars} \u6587\u5B57\uFF09`,`${flag} \u3092 ${options.maxChars} \u6587\u5B57\u4EE5\u5185\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return raw}export{isoDate,booleanText,priority,decimal,boundedText};
@@ -1,13 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{isPrivateProjectId}from"./chunk-GY7KI5E5.js";import{httpFetch}from"./chunk-J7QYPKVK.js";function describeError(res){if(res.status===null)return`transport_error=${res.transportError??"\u4E0D\u660E"}`;const body=res.json;const parts=[`http=${res.status}`];const reason=typeof body?.["reason"]==="string"?body["reason"]:"";if(reason)parts.push(`reason=${reason}`);const error=body?.["error"];const code=typeof error?.["code"]==="string"?error["code"]:"";if(code)parts.push(`code=${code}`);const message=(typeof body?.["message"]==="string"?body["message"]:"")||(typeof error?.["message"]==="\
4
- string"?error["message"]:"");if(message)parts.push(message.slice(0,160));if(!reason&&!code&&!message)parts.push(`\u5FDC\u7B54\u306E\u5148\u982D: ${res.raw.slice(0,160)}`);return parts.join(" ")}function isPermanent(res){return res.status!==null&&res.status>=400&&res.status<500}function filterByStatus(items,status){return items.filter(item=>item.status===void 0||item.status===status)}var AgentLoopApi=class{constructor(opts){this.opts=opts;const root=opts.apiUrl.replace(/\/+$/,"");this.base=isPrivateProjectId(
5
- opts.projectId)?`${root}/api/v2/tasks/private/agent-loop`:`${root}/api/v2/projects/${opts.projectId}/agent-loop`}opts;base;get baseUrl(){return this.base}list(query){const qs=new URLSearchParams;for(const[k,v]of Object.entries(query)){if(v!==void 0&&v!=="")qs.set(k,String(v))}const suffix=qs.toString()?`?${qs.toString()}`:"";return this.request("GET",suffix)}create(body){return this.request("POST","",body)}getItem(itemId){return this.request("GET",`/${encodeURIComponent(itemId)}`)}update(itemId,body,runId){
6
- return this.request("PUT",`/${encodeURIComponent(itemId)}`,{...body,run_id:runId})}updateUnowned(itemId,body){return this.request("PUT",`/${encodeURIComponent(itemId)}`,body)}reorder(itemIds){return this.request("PUT","/reorder",{item_ids:itemIds})}claim(runnerId,runId){return this.request("POST","/claim",{runner_id:runnerId,run_id:runId})}reclaim(){return this.request("POST","/reclaim",{})}runners(){return this.request("GET","/runners")}registerRunner(payload){return this.request("POST","/runne\
7
- rs/register",payload)}heartbeatRunner(payload){return this.request("POST","/runners/heartbeat",payload)}deregisterRunner(payload){return this.request("POST","/runners/deregister",payload)}planStart(runnerId,runId){return this.request("POST","/plan/start",{runner_id:runnerId,run_id:runId})}planFinish(runnerId,runId,planStartedAt,result){return this.request("POST","/plan/finish",{runner_id:runnerId,run_id:runId,plan_started_at:planStartedAt,result})}consumeCounter(key,date,limit){return this.request(
8
- "POST","/counters/consume",{key,date,limit})}listCounters(date){return this.request("GET",`/counters?date=${encodeURIComponent(date)}`)}async queuedSnapshot(){return this.snapshotOf(["pending","processing"])}async processingSnapshot(){return this.snapshotOf(["processing"])}async pendingSnapshot(){return this.snapshotOf(["pending"])}async completedSince(sinceMicros,maxPages=10){const all=[];let cursor=String(Math.trunc(sinceMicros));for(let page=0;page<maxPages;page++){const res=await this.list({
9
- status:"completed",limit:100,cursor});if(!res.ok)return null;const body=res.json;const items=body?.["items"];if(!Array.isArray(items))return null;all.push(...filterByStatus(items,"completed"));const pagination=body?.["pagination"];const hasMore=(pagination?.["has_more"]??body?.["has_more"])===true;const next=pagination?.["next_cursor"]??body?.["next_cursor"];if(!hasMore||!next)return all;cursor=next}return null}async snapshotOf(statuses){const all=[];for(const status of statuses){let cursor;for(let page=0;page<
10
- 20;page++){const res=await this.list({status,limit:100,cursor});if(!res.ok)return null;const body=res.json;const items=body?.["items"];if(!Array.isArray(items))return null;all.push(...filterByStatus(items,status));const pagination=body?.["pagination"];const hasMore=(pagination?.["has_more"]??body?.["has_more"])===true;const next=pagination?.["next_cursor"]??body?.["next_cursor"];if(!hasMore||!next)break;cursor=next;if(page===19)return null}}return all}async request(method,suffix,body){let token;
11
- try{token=await this.opts.session.getAccessToken()}catch(err){return{ok:false,status:null,json:null,raw:"",transportError:err.message}}let res=await this.send(method,suffix,token,body);if(res.status===401){try{token=await this.opts.session.refresh(token);res=await this.send(method,suffix,token,body)}catch(err){return{ok:false,status:401,json:null,raw:res.raw,transportError:err.message}}}return res}async send(method,suffix,token,body){const fetchImpl=this.opts.fetchImpl??httpFetch;const controller=new AbortController;
12
- const timer=setTimeout(()=>controller.abort(),this.opts.timeoutMs??6e4);try{const res=await fetchImpl(`${this.base}${suffix}`,{method,headers:{Authorization:`Bearer ${token}`,"Content-Type":"application/json",Accept:"application/json"},signal:controller.signal,...body===void 0?{}:{body:JSON.stringify(body)}});const raw=await res.text();let json=null;if(raw.trim()!==""){try{json=JSON.parse(raw)}catch{json=null}}return{ok:res.ok,status:res.status,json,raw,transportError:null}}catch(err){const reason=err.
13
- name==="AbortError"?"timeout":err.message;return{ok:false,status:null,json:null,raw:"",transportError:reason}}finally{clearTimeout(timer)}}};function pick(json,path){let cur=json;for(const part of path.split(".")){if(cur===null||typeof cur!=="object")return void 0;cur=cur[part]}return cur===null?void 0:cur}function pickString(json,path){const v=pick(json,path);if(typeof v==="string")return v;if(typeof v==="number")return String(v);if(typeof v==="boolean")return v?"true":"false";return""}export{describeError,isPermanent,filterByStatus,AgentLoopApi,pick,pickString};
@@ -1,204 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{repeatedValues}from"./chunk-IOGVQVGD.js";import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-WGVHYTZV.js";import{booleanText,boundedText,isoDate}from"./chunk-IJLJGDMZ.js";import{DEPARTMENTS_PATH,ORG_MASTER_LIMIT,POSITIONS_PATH}from"./chunk-QOUFHYK5.js";import"./chunk-II5RVJQN.js";import{ApiError}from"./chunk-FTYJZFEK.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger,shellQuote}from"./chunk-DMDVLOAY.js";
4
- import{requireResolved,singleRef,withResolved}from"./chunk-ZN5EFDH7.js";import{ResolveError,isSafePathSegment}from"./chunk-GMBJTG6A.js";import{isRecord,pick}from"./chunk-ZWVYVS2A.js";import"./chunk-QQRJLH6B.js";import"./chunk-J7QYPKVK.js";import"./chunk-NERYSBA4.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-7WSNIXTQ.js";import"./chunk-VSJBJXZO.js";import fs2 from"fs";var USER_REF_HELP="<\u30E6\u30FC\u30B6\u30FC> \u306F ID\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u793E\u54E1\u756A\u53F7\u30FB\u6C0F\u540D\u30FBme\uFF08\u81EA\u5206\uFF09\u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\n\u6C0F\u540D\u306F\u5B8C\u5168\u4E00\u81F4\u30671\u4EBA\u306B\u7D5E\u308C\u305F\u3068\u304D\u3060\u3051\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u540C\u59D3\u540C\u540D\u306A\u3089\u5019\u88DC\u3092\u51FA\u3057\u3066\u6B62\u307E\u308B\u306E\u3067\u3001\n\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u304B\u793E\u54E1\u756A\u53F7\u3067\u6307\u5B9A\u3057\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002ID \u4EE5\u5916\u306F\u3001\u30C6\u30CA\u30F3\u30C8\u306E\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\n\uFF08\u65E2\u5B9A10\u5206\u30AD\u30E3\u30C3\u30B7\u30E5\u30FB--refresh \u3067\u53D6\u308A\u76F4\u3057\uFF09\u3068\u7167\u5408\u3057\u307E\u3059\u3002\n\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u306F\u793E\u54E1\u756A\u53F7\u3067\u306F\u5F15\u3051\u307E\u305B\u3093\u3002\u7D44\u7E54\u7BA1\u7406\u8005\u3067\u306A\u3044\u5834\u5408\u306F ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
5
- function userPath(input,suffix=""){const userId=requireResolved(input,"userId");if(!isSafePathSegment(userId)){throw new ApiResponseError(`\u30B5\u30FC\u30D0\u304C\u8FD4\u3057\u305F\u30E6\u30FC\u30B6\u30FC ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${userId}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return`${encodeURIComponent(userId)}${suffix}`}var USER_REF_FLAG={name:"--user",summary:"\u5BFE\u8C61\u306E\u30E6\u30FC\u30B6\u30FC\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",
6
- takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FC>"};async function prepareUser(input,ctx,usage){const ref=singleRef(input,{flag:"--user",label:"\u30E6\u30FC\u30B6\u30FC",usage});const user=await ctx.resolver.user(ref);return withResolved(input,{userId:user.id})}var ASSIGNMENT_COLUMNS=["id","department_name","position_name","start_date","end_date","is_primary","is_current","is_approval_route","effective_status"];function assignmentRows(body){const response=isRecord(body)&&"response"in body?body["response"]:body;const list=isRecord(response)?response["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError("\u6240\u5C5E\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
7
- return list}async function nameMap(ctx,path,label2){try{const body=await ctx.send({method:"GET",path,query:{limit:ORG_MASTER_LIMIT}});const list=isRecord(body)?body["list"]:void 0;if(!Array.isArray(list))throw new Error(`${label2}\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093`);const count=isRecord(body)?body["count"]:void 0;if(typeof count==="number"&&count>list.length){ctx.warn(`${label2}\u4E00\u89A7\u304C ${count} \u4EF6\u4E2D ${list.length} \u4EF6\u3067\u5207\u308A\u8A70\u3081\u3089\
8
- \u308C\u305F\u305F\u3081\u3001\u4E00\u90E8\u306E${label2}\u540D\u306F\u7A7A\u6B04\u3067\u3059\u3002ID \u306F --output json \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002`)}const map={};for(const row of list){if(isRecord(row)&&typeof row["id"]==="string"&&typeof row["name"]==="string"){map[row["id"]]=row["name"]}}return map}catch(err){ctx.warn(`${label2}\u540D\u3092\u53D6\u5F97\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081\u3001${label2}\u540D\u306E\u5217\u306F\u7A7A\u6B04\u3067\u3059\uFF08${err.
9
- message}\uFF09\u3002ID \u306F --output json \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002`);return{}}}function assignmentPlan(input){const suffix=input.flags.has("--current")?"/assignments/current":"/assignments";return{method:"GET",path:`/api/v2/organization/users/${userPath(input,suffix)}`}}var listOperation={name:"list",summary:"\u30E6\u30FC\u30B6\u30FC\u306E\u6240\u5C5E\u306E\u5C65\u6B74\u3092\u4E00\u89A7\u3059\u308B",usage:"twp user assignment list <\u30E6\u30FC\u30B6\u30FC> [--current]",
10
- description:"\u904E\u53BB\u30FB\u73FE\u5728\u30FB\u4E88\u5B9A\u306E\u6240\u5C5E\u3092\u3059\u3079\u3066\u51FA\u3057\u307E\u3059\u3002--current \u3067\u73FE\u5728\u6709\u52B9\u306A\u6240\u5C5E\u3060\u3051\u306B\u7D5E\u308A\u307E\u3059\u3002\nis_primary \u306F\u4E3B\u52D9\u3001is_approval_route \u306F\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306E\u4E0A\u9577\u627F\u8A8D\u306B\u4F7F\u308F\u308C\u308B\u6240\u5C5E\u3067\u3059\u3002\n\u53C2\u7167\u3067\u304D\u308B\u306E\u306F\u672C\u4EBA\u30FB\u4E0A\u9577\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u3067\u3059\u3002\n\u3053\u306E API \u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u6301\u305F\u305A\u3001\u5E38\u306B\u5168\u4EF6\u3092\u8FD4\u3057\u307E\u3059\u3002\n\n"+
11
- USER_REF_HELP,forbidden:"\u3053\u306E\u30E6\u30FC\u30B6\u30FC\u306E\u6240\u5C5E\u3092\u53C2\u7167\u3059\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u672C\u4EBA\u30FB\u4E0A\u9577\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u53C2\u7167\u3067\u304D\u307E\u3059",flags:[USER_REF_FLAG,{name:"--current",summary:"\u73FE\u5728\u6709\u52B9\u306A\u6240\u5C5E\u3060\u3051\u3092\u51FA\u3059",takesValue:false}],prepare:(input,ctx)=>prepareUser(input,ctx,"twp user assignment list help"),
12
- plan:assignmentPlan,plannedNotes:()=>["\u3053\u306E\u3042\u3068\u3001\u90E8\u7F72\u540D\u30FB\u5F79\u8077\u540D\u3092\u8868\u793A\u3059\u308B\u305F\u3081\u90E8\u7F72\u4E00\u89A7\u3068\u5F79\u8077\u4E00\u89A7\u3092 GET \u3057\u307E\u3059\u3002"],async execute(input,ctx){const response=await ctx.send(assignmentPlan(input));assignmentRows(response);const[departmentNames,positionNames]=await Promise.all([nameMap(ctx,DEPARTMENTS_PATH,"\u90E8\u7F72"),nameMap(ctx,POSITIONS_PATH,"\u5F79\u8077")]);return{
13
- response,departmentNames,positionNames}},summarize(body){const names=body;return assignmentRows(body).map(row=>{const record=isRecord(row)?row:{};const department=record["department_id"];const position=record["position_id"];return pick({...record,department_name:typeof department==="string"?names.departmentNames?.[department]??null:null,position_name:typeof position==="string"?names.positionNames?.[position]??null:null},ASSIGNMENT_COLUMNS)})},raw:body=>assignmentRows(body)};var FORBIDDEN="\u7D44\u7E54\u7BA1\u7406\u8005\u306E\
14
- \u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002\u6240\u5C5E\u306E\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u7D42\u4E86\u30FB\u524A\u9664\u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059";function userRefField(flag,key,label2){return{kind:"ref",flag,key,summary:`${label2}\uFF08\u30E6\u30FC\u30B6\u30FC\u3002ID\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u793E\u54E1\u756A\u53F7\u30FB\u6C0F\u540D\uFF09`,placeholder:"<\u30E6\u30FC\u30B6\u30FC>",clearFlag:`--no-${flag.
15
- slice(2)}`,clearSummary:`${label2}\u3092\u5916\u3059`,resolve:(ctx,ref,flagName)=>ctx.resolver.user(ref,flagName)}}var DEPARTMENT_FIELD={kind:"ref",flag:"--department",key:"department_id",summary:"\u90E8\u7F72\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",placeholder:"<\u90E8\u7F72>",clearFlag:"--no-department",clearSummary:"",resolve:(ctx,ref,flag)=>ctx.resolver.department(ref,flag)};var POSITION_FIELD={kind:"ref",flag:"--position",key:"position_id",summary:"\u5F79\u8077\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",
16
- placeholder:"<\u5F79\u8077>",clearFlag:"--no-position",clearSummary:"",resolve:(ctx,ref,flag)=>ctx.resolver.position(ref,flag)};var JOB_TITLE_FIELD={kind:"ref",flag:"--job-title",key:"job_title_id",summary:"\u8077\u4F4D\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",placeholder:"<\u8077\u4F4D>",clearFlag:"--no-job-title",clearSummary:"\u8077\u4F4D\u3092\u5916\u3059",resolve:(ctx,ref,flag)=>ctx.resolver.jobTitle(ref,flag)};var MANAGER_FIELD=userRefField("--manager","manager_id","\u4E0A\u9577");
17
- var INTERVIEWER_FIELD=userRefField("--interviewer","interview_user_id","\u9762\u8AC7\u8005");var MENTOR_FIELD=userRefField("--mentor","mentor_user_id","\u30E1\u30F3\u30BF\u30FC");var END_DATE_FIELD={kind:"date",flag:"--end-date",key:"end_date",summary:"\u7D42\u4E86\u65E5\uFF08YYYY-MM-DD\u3002none \u3067\u7D42\u4E86\u65E5\u3092\u6D88\u3059\uFF09"};var PRIMARY_FIELD={kind:"boolean",flag:"--primary",key:"is_primary",summary:"\u4E3B\u6240\u5C5E\u304B\uFF08true / false\uFF09"};var TYPE_FIELD={kind:"e\
18
- num",flag:"--type",key:"assignment_type",values:["regular","concurrent","acting"],summary:"\u6240\u5C5E\u306E\u7A2E\u985E\uFF08regular: \u901A\u5E38 / concurrent: \u517C\u52D9 / acting: \u4EE3\u7406\uFF09"};var NOTES_FIELD={kind:"text",flag:"--notes",key:"notes",label:"\u5099\u8003",maxChars:1e3,summary:"\u5099\u8003\uFF081000\u6587\u5B57\u307E\u3067\uFF09"};var FIELDS=[DEPARTMENT_FIELD,POSITION_FIELD,JOB_TITLE_FIELD,MANAGER_FIELD,INTERVIEWER_FIELD,MENTOR_FIELD,END_DATE_FIELD,PRIMARY_FIELD,TYPE_FIELD,
19
- NOTES_FIELD];var MOVE_FIELDS=[DEPARTMENT_FIELD,POSITION_FIELD,JOB_TITLE_FIELD,MANAGER_FIELD,INTERVIEWER_FIELD,MENTOR_FIELD,NOTES_FIELD];var NOT_CLEARABLE=new Set(["--no-department","--no-position"]);var START_DATE_FLAG={name:"--start-date",summary:"\u958B\u59CB\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var OBSERVER_FLAG={name:"--observer",summary:"\u89B3\u5BDF\u8005\uFF08\u30E6\u30FC\u30B6\u30FC\u3002\u8907\u6570\u56DE\u6307\u5B9A\u3067\u304D\u308B\uFF09",takesValue:true,
20
- placeholder:"<\u30E6\u30FC\u30B6\u30FC>",repeatable:true};var NO_OBSERVERS_FLAG={name:"--no-observers",summary:"\u89B3\u5BDF\u8005\u3092\u3059\u3079\u3066\u5916\u3059",takesValue:false};var OWNER_FLAG={name:"--user",summary:"\u6240\u5C5E\u3092\u6301\u3064\u30E6\u30FC\u30B6\u30FC\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FC>"};var USER_FIELD_HELP="--manager / --interviewer / --mentor / --observer \u306F\u30E6\u30FC\u30B6\u30FC\u3092 ID\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u793E\u54E1\u756A\u53F7\u30FB\u6C0F\u540D\u3067\u6307\u5B9A\u3057\u307E\u3059\u3002\n--department / --position / --job\
21
- -title \u306F\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID \u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002";var OBSERVERS_KEY="observer_ids";async function resolveObservers(input,ctx){const refs=repeatedValues(input,OBSERVER_FLAG.name);if(refs.length===0)return input;const ids=[];for(const ref of refs)ids.push((await ctx.resolver.user(ref,OBSERVER_FLAG.name)).id);return withResolved(input,{[OBSERVERS_KEY]:JSON.stringify(ids)})}function checkArguments(input,fields){fieldBody(
22
- input,fields);isoDate(input,START_DATE_FLAG.name);for(const ref of repeatedValues(input,OBSERVER_FLAG.name)){if(ref.trim()==="")throw new UsageError(`${OBSERVER_FLAG.name} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`)}if(input.flags.has(NO_OBSERVERS_FLAG.name)&&repeatedValues(input,OBSERVER_FLAG.name).length>0){throw new UsageError(`${OBSERVER_FLAG.name} \u3068 ${NO_OBSERVERS_FLAG.name} \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,"\u3069\u3061\u3089\u304B\u4E00\u65B9\u3060\u3051\u3092\u6307\u5B9A\u3057\
23
- \u3066\u304F\u3060\u3055\u3044\u3002")}}function assignmentBody(input,fields){const body=fieldBody(input,fields);const startDate=isoDate(input,START_DATE_FLAG.name);if(startDate!==void 0)body["start_date"]=startDate;const observers=input.resolved?.[OBSERVERS_KEY];if(observers!==void 0)body["observer_ids"]=JSON.parse(observers);if(input.flags.has(NO_OBSERVERS_FLAG.name))body["observer_ids"]=[];return body}async function resolveAll(input,ctx,fields){return resolveObservers(await resolveRefFields(input,
24
- ctx,fields),ctx)}async function prepareTarget(input,ctx,usage){if(input.args.length===0)throw new UsageError("\u6240\u5C5E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",`${usage}\uFF08\u6240\u5C5E ID \u306F twp user assignment list <\u30E6\u30FC\u30B6\u30FC> \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09`);if(input.args.length>1)throw new UsageError(`\u53D7\u3051\u53D6\u308C\u308B\u6240\u5C5E ID \u306F1\u3064\u3060\u3051\u3067\u3059: ${input.args.slice(1).join(" ")}`,usage);const id=input.
25
- args[0].trim();if(!isSafePathSegment(id))throw new UsageError(`\u6240\u5C5E ID \u306B\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${id}`,usage);const owner=nonEmpty(input.flags,OWNER_FLAG.name);if(owner===void 0){throw new UsageError("--user \u3067\u6240\u5C5E\u3092\u6301\u3064\u30E6\u30FC\u30B6\u30FC\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",`${usage}\uFF08\u6240\u5C5E\u306E URL \u306B\u306F\u30E6\u30FC\u30B6\u30FC\u304C\u8981\u308A\u307E\u3059\uFF09`)}const user=await ctx.resolver.
26
- user(owner,OWNER_FLAG.name);return withResolved(input,{userId:user.id,assignmentId:id})}function itemPath(input,suffix=""){return`/api/v2/organization/users/${userPath(input,"/assignments/")}${encodeURIComponent(requireResolved(input,"assignmentId"))}${suffix}`}var WRITE_COLUMNS=["id","department_id","position_id","start_date","end_date","is_primary","is_current","effective_status"];function writeResult(body,label2){if(!isRecord(body)||body["result"]!==true||!isRecord(body["assignment"])){throw new ApiResponseError(
27
- `${label2}\u306E\u5FDC\u7B54\u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const rest={...body};delete rest["result"];return rest}function writeSummary(body,label2){const result=writeResult(body,label2);return{message:result["message"]??null,...pick(result["assignment"],WRITE_COLUMNS)}}function previousPrimaryNotes(body){const previous=isRecord(body)?body["previousPrimaryUpdated"]:void 0;
28
- if(!isRecord(previous))return[];return[`\u65E2\u5B58\u306E\u4E3B\u6240\u5C5E\uFF08${String(previous["department_name"]??previous["department_id"]??"\u4E0D\u660E")}\uFF09\u306E\u7D42\u4E86\u65E5\u3092 ${String(previous["new_end_date"]??"?")} \u306B\u8A2D\u5B9A\u3057\u307E\u3057\u305F\u3002`]}var createOperation={name:"create",summary:"\u6240\u5C5E\u3092\u4F5C\u6210\u3059\u308B\uFF08\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp user assignment create <\u30E6\u30FC\u30B6\u30FC> --department <\u90E8\u7F72> --posit\
29
- ion <\u5F79\u8077> --start-date <YYYY-MM-DD> [--primary true|false] [--job-title <\u8077\u4F4D>] [--manager <\u30E6\u30FC\u30B6\u30FC>] [--observer <\u30E6\u30FC\u30B6\u30FC>]\u2026 [\u9805\u76EE\u2026]",description:`--department / --position / --start-date \u304C\u5FC5\u9808\u3067\u3059\u3002
30
- --primary \u3092\u7701\u304F\u3068\u4E3B\u6240\u5C5E\uFF08true\uFF09\u3068\u3057\u3066\u4F5C\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306E\u65E2\u5B9A\u3068\u540C\u3058\u5024\u3092\u660E\u793A\u3057\u3066\u9001\u308A\u307E\u3059\uFF09\u3002
31
- \u4E3B\u6240\u5C5E\u3068\u3057\u3066\u4F5C\u308B\u3068\u3001\u30B5\u30FC\u30D0\u304C\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u306E\u7D42\u4E86\u65E5\u3092\u958B\u59CB\u65E5\u306E\u524D\u65E5\u306B\u8A2D\u5B9A\u3057\u307E\u3059\u3002\u517C\u52D9\u306A\u3089 --primary false \u3067\u3059\u3002
32
- \u4E3B\u6240\u5C5E\u3068\u3057\u3066\u4F5C\u308B\u3068\u304D\u306F\u3001\u958B\u59CB\u65E5\u304C\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u306E\u958B\u59CB\u65E5\u4EE5\u524D\u306E\u5834\u5408\u3068\u3001\u4E88\u7D04\u6E08\u307F\u306E\u4E3B\u6240\u5C5E\u304C\u5225\u306B\u3042\u308B\u5834\u5408\u306B\u9001\u3089\u305A\u306B\u6B62\u3081\u307E\u3059
33
- \uFF08\u958B\u59CB\u65E5\u3088\u308A\u524D\u306B\u7D42\u308F\u308B\u6240\u5C5E\u3084\u3001\u91CD\u306A\u3063\u305F\u4E3B\u6240\u5C5E\u304C\u3067\u304D\u308B\u305F\u3081\uFF09\u3002
34
- \u7570\u52D5\uFF08\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u3092\u7D42\u3048\u3066\u65B0\u3057\u3044\u6240\u5C5E\u3078\u79FB\u3059\uFF09\u306B\u306F twp user assignment move \u3092\u4F7F\u3046\u3068\u3001\u9001\u308B\u524D\u306B\u5185\u5BB9\u3092\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002
35
-
36
- ${USER_FIELD_HELP}
37
-
38
- ${USER_REF_HELP}`,forbidden:FORBIDDEN,flags:[...createFlags(FIELDS),START_DATE_FLAG,OBSERVER_FLAG,USER_REF_FLAG],async prepare(input,ctx){checkArguments(input,FIELDS);for(const flag of[DEPARTMENT_FIELD.flag,POSITION_FIELD.flag,START_DATE_FLAG.name]){if(!input.flags.has(flag))throw new UsageError(`${flag} \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,"twp user assignment create help")}const user=await resolveAll(await prepareUser(input,ctx,"twp user assignment create help"),ctx,FIELDS);
39
- if(input.flags.get(PRIMARY_FIELD.flag)?.trim().toLowerCase()==="false")return user;const startDate=isoDate(input,START_DATE_FLAG.name);return withResolved(user,await primaryPreflight(ctx,requireResolved(user,"userId"),startDate,"twp user assignment create help"))},plan(input){const body=assignmentBody(input,FIELDS);if(body["is_primary"]===void 0)body["is_primary"]=true;return{method:"POST",path:`/api/v2/organization/users/${userPath(input,"/assignments")}`,body}},plannedNotes:input=>input.flags.
40
- get(PRIMARY_FIELD.flag)?.trim().toLowerCase()==="false"?[]:[(input.flags.has(PRIMARY_FIELD.flag)?"":"--primary \u672A\u6307\u5B9A\u306E\u305F\u3081\u3001\u4E3B\u6240\u5C5E\uFF08true\uFF09\u3068\u3057\u3066\u4F5C\u6210\u3057\u307E\u3059\u3002")+"\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u304C\u3042\u308C\u3070\u3001\u30B5\u30FC\u30D0\u304C\u305D\u306E\u7D42\u4E86\u65E5\u3092\u958B\u59CB\u65E5\u306E\u524D\u65E5\u306B\u8A2D\u5B9A\u3057\u307E\u3059\uFF08\u517C\u52D9\u306A\u3089 --primary false\uFF09\u3002"],
41
- summarize:body=>writeSummary(body,"\u6240\u5C5E\u4F5C\u6210"),raw:body=>writeResult(body,"\u6240\u5C5E\u4F5C\u6210"),notes:body=>previousPrimaryNotes(body)};var updateOperation={name:"update",summary:"\u6240\u5C5E\u3092\u66F4\u65B0\u3059\u308B\uFF08\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp user assignment update <\u6240\u5C5EID> --user <\u30E6\u30FC\u30B6\u30FC> [--department <\u90E8\u7F72>] [--position <\u5F79\u8077>] [--manager <\u30E6\u30FC\u30B6\u30FC> | --no-manager] [--end-date <YYYY-MM-DD|none>] [\u9805\u76EE\u2026]",
42
- description:"\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u5909\u66F4\u3057\u307E\u3059\uFF08\u6307\u5B9A\u3057\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u3082\u6307\u5B9A\u3057\u306A\u3044\u3068\u30A8\u30E9\u30FC\u306B\u306A\u308A\u307E\u3059\u3002\n\u6240\u5C5E ID \u306F twp user assignment list <\u30E6\u30FC\u30B6\u30FC> \u306E id \u5217\u3067\u3059\u3002--user \u306F\u6240\u5C5E\u3092\u6301\u3064\u30E6\u30FC\u30B6\u30FC\u3067\u3059\uFF08\u5FC5\u9808\uFF09\u3002\n--no-job-title / --no-manager / --no-interviewer / --no-mentor / --no-observers \u3067\u5024\u3092\u5916\u3057\u307E\u3059\u3002\n--end-date none \u3067\u7D42\u4E86\u65E5\u3092\u6D88\u3059\u3068\u3001\u958B\u59CB\u65E5\u304C\u4ECA\u65E5\u4EE5\u524D\u306A\u3089\u305D\u306E\u6240\u5C5E\u306F\u6709\u52B9\u306B\u623B\u308A\u307E\u3059\u3002\n\n"+
43
- USER_FIELD_HELP,forbidden:FORBIDDEN,flags:[...updateFlags(FIELDS).filter(flag=>!NOT_CLEARABLE.has(flag.name)),START_DATE_FLAG,OBSERVER_FLAG,NO_OBSERVERS_FLAG,OWNER_FLAG],async prepare(input,ctx){const changed=hasAnyField(input,FIELDS)||[START_DATE_FLAG,NO_OBSERVERS_FLAG].some(flag=>input.flags.has(flag.name))||repeatedValues(input,OBSERVER_FLAG.name).length>0;if(!changed)throw new UsageError("\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
44
- "twp user assignment update help");checkArguments(input,FIELDS);const target=await prepareTarget(input,ctx,"twp user assignment update help");return resolveAll(target,ctx,FIELDS)},plan:input=>({method:"PUT",path:itemPath(input),body:assignmentBody(input,FIELDS)}),summarize:body=>writeSummary(body,"\u6240\u5C5E\u66F4\u65B0"),raw:body=>writeResult(body,"\u6240\u5C5E\u66F4\u65B0")};var END_DATE_FLAG={name:"--end-date",summary:"\u7D42\u4E86\u65E5\uFF08YYYY-MM-DD\u30FB\u5FC5\u9808\uFF09",takesValue:true,
45
- placeholder:"<YYYY-MM-DD>"};var endOperation={name:"end",summary:"\u6240\u5C5E\u3092\u7D42\u4E86\u3059\u308B\uFF08\u7D42\u4E86\u65E5\u3092\u8A2D\u5B9A\u3059\u308B\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp user assignment end <\u6240\u5C5EID> --user <\u30E6\u30FC\u30B6\u30FC> --end-date <YYYY-MM-DD>",description:"\u7D42\u4E86\u65E5\u304C\u4ECA\u65E5\u3088\u308A\u524D\u306A\u3089\u3001\u305D\u306E\u6240\u5C5E\u306F\u3059\u3050\u306B\u7D42\u4E86\u72B6\u614B\u306B\u306A\u308A\u307E\u3059\u3002\u4ECA\u65E5\u4EE5\u964D\u306A\u3089\u7D42\u4E86\u65E5\u307E\u3067\u6709\u52B9\u306A\u307E\u307E\u3067\u3059\n\uFF08\u7D42\u4E86\u65E5\u5F53\u65E5\u306F\u6709\u52B9\u671F\u9593\u5185\u3067\u3059\uFF09\u3002\u7D42\u4E86\u65E5\u306F\u958B\u59CB\u65E5\u4EE5\u964D\u3067\u306A\u3051\u308C\u3070\u306A\u308A\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF09\u3002\n\u53D6\u308A\u6D88\u3059\u3068\u304D\u306F twp user assignment update <\u6240\u5C5EID> --user <\u30E6\u30FC\u30B6\u30FC> --end-date\
46
- none \u3067\u3059\u3002\n\u6240\u5C5E ID \u306F twp user assignment list <\u30E6\u30FC\u30B6\u30FC> \u306E id \u5217\u3067\u3059\u3002",forbidden:FORBIDDEN,flags:[END_DATE_FLAG,OWNER_FLAG],async prepare(input,ctx){if(isoDate(input,END_DATE_FLAG.name)===void 0){throw new UsageError("--end-date \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","twp user assignment end help")}return prepareTarget(input,ctx,"twp user assignment end help")},plan:input=>({method:"POST",path:itemPath(input,"/end"),
47
- body:{end_date:isoDate(input,END_DATE_FLAG.name)}}),summarize:body=>writeSummary(body,"\u6240\u5C5E\u7D42\u4E86"),raw:body=>writeResult(body,"\u6240\u5C5E\u7D42\u4E86")};function deleteAck(body){if(!isRecord(body)||body["result"]!==true){throw new ApiResponseError("\u6240\u5C5E\u524A\u9664\u306E\u5FDC\u7B54\u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return{result:true,message:body["\
48
- message"]??null}}var deleteOperation={name:"delete",summary:"\u6240\u5C5E\u3092\u524A\u9664\u3059\u308B\uFF08\u5C65\u6B74\u3054\u3068\u6D88\u3059\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\u30FB--yes \u304C\u8981\u308B\uFF09",usage:"twp user assignment delete <\u6240\u5C5EID> --user <\u30E6\u30FC\u30B6\u30FC> --yes",description:"\u6240\u5C5E\u3092\u5C65\u6B74\u304B\u3089\u6D88\u3057\u307E\u3059\uFF08\u5143\u306B\u623B\u3059\u64CD\u4F5C\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\u7570\u52D5\u3084\u9000\u8077\u3067\u6240\u5C5E\u3092\u7D42\u3048\u308B\u306A\u3089\u3001\u5C65\u6B74\u304C\u6B8B\u308B\ntwp user assignment end \u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002\u524A\u9664\u306F\u3001\u8AA4\u3063\u3066\u4F5C\u3063\u305F\u6240\u5C5E\u3092\u6D88\u3059\u305F\u3081\u306E\u3082\u306E\u3067\u3059\u3002\n\u6240\u5C5E ID \u306F twp user assignment list <\u30E6\u30FC\u30B6\u30FC> \u306E id \u5217\u3067\u3059\u3002",
49
- destructive:true,forbidden:FORBIDDEN,flags:[OWNER_FLAG],prepare:(input,ctx)=>prepareTarget(input,ctx,"twp user assignment delete help"),plan:input=>({method:"DELETE",path:itemPath(input)}),summarize:deleteAck,raw:deleteAck};function previousDay(iso){const[y,m,d]=iso.split("-").map(Number);const date=new Date(Date.UTC(y,m-1,d-1));return date.toISOString().slice(0,10)}function tokyoToday(now=new Date){return new Intl.DateTimeFormat("en-CA",{timeZone:"Asia/Tokyo",year:"numeric",month:"2-digit",day:"\
50
- 2-digit"}).format(now)}function strOrNull(value){return typeof value==="string"&&value!==""?value:null}function currentPrimaryOf(input){const raw=input.resolved?.["currentPrimary"];return raw===void 0||raw===""?null:JSON.parse(raw)}function existingIdsOf(input){const raw=input.resolved?.["existingIds"];return new Set(raw===void 0?[]:JSON.parse(raw))}async function nameOf(list,id){if(id===null)return null;try{return(await list()).find(row=>row.id===id)?.name??null}catch{return null}}function label(name,id){
51
- return name??id??"\uFF08\u4E0D\u660E\uFF09"}async function primaryPreflight(ctx,userId,startDate,usage){let primary;let rows;try{[primary,rows]=await Promise.all([ctx.resolver.primaryAssignment(userId),ctx.resolver.assignments(userId)])}catch(err){if(err instanceof ResolveError&&err.status===403)throw new ResolveError(`${FORBIDDEN}\uFF08${err.message}\uFF09`,403);throw err}let current=null;if(primary!==null){const departmentId=strOrNull(primary["department_id"]);const positionId=strOrNull(primary["\
52
- position_id"]);const observers=primary["observer_ids"];current={id:String(primary["id"]),department_id:departmentId,department_name:await nameOf(()=>ctx.resolver.departments(),departmentId),position_id:positionId,position_name:await nameOf(()=>ctx.resolver.positions(),positionId),job_title_id:strOrNull(primary["job_title_id"]),start_date:strOrNull(primary["start_date"]),end_date:strOrNull(primary["end_date"]),has_manager:strOrNull(primary["manager_id"])!==null,observer_ids:Array.isArray(observers)?
53
- observers.filter(id=>typeof id==="string"):[],has_interviewer:strOrNull(primary["interview_user_id"])!==null,has_mentor:strOrNull(primary["mentor_user_id"])!==null};if(current.start_date!==null&&startDate<=current.start_date){throw new UsageError(`\u958B\u59CB\u65E5 ${startDate} \u304C\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u306E\u958B\u59CB\u65E5 ${current.start_date} \u4EE5\u524D\u3067\u3059\uFF08\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u304C\u958B\u59CB\u65E5\u3088\u308A\u524D\u306B\u7D42\u308F\u308B\u3053\u3068\u306B\u306A\u308A\u307E\u3059\uFF09`,
54
- `\u958B\u59CB\u65E5\u3092\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u306E\u958B\u59CB\u65E5\u3088\u308A\u5F8C\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u306E\u958B\u59CB\u65E5\u3092\u76F4\u3059\u306A\u3089 twp user assignment update\u3001\u517C\u52D9\u3068\u3057\u3066\u8DB3\u3059\u306A\u3089 twp user assignment create --primary false \u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\uFF08${usage}\uFF09\u3002`)}}const scheduled=rows.filter(row=>row["is_primary"]===
55
- true&&row["id"]!==current?.id&&(row["is_scheduled"]===true||row["effective_status"]==="scheduled"));if(scheduled.length>0){const first=scheduled[0];throw new UsageError(`\u4E88\u7D04\u6E08\u307F\u306E\u4E3B\u6240\u5C5E\u304C\u3042\u308A\u307E\u3059\uFF08\u6240\u5C5E ID ${String(first["id"])}\u30FB${String(first["start_date"]??"?")}\u301C\uFF09\u3002\u3053\u306E\u307E\u307E\u4E3B\u6240\u5C5E\u3092\u4F5C\u308B\u3068\u3001\u540C\u3058\u671F\u9593\u306B\u4E3B\u6240\u5C5E\u304C2\u3064\u91CD\u306A\u308A\u307E\u3059`,
56
- "\u4E88\u7D04\u3092\u53D6\u308A\u6D88\u3059\u306A\u3089 twp user assignment delete <\u6240\u5C5EID> --user <\u30E6\u30FC\u30B6\u30FC> --yes\u3001\u65E5\u4ED8\u3092\u5909\u3048\u308B\u306A\u3089 twp user assignment update \u3092\u5148\u306B\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002")}return{currentPrimary:current===null?"":JSON.stringify(current),existingIds:JSON.stringify(rows.map(row=>String(row["id"]))),today:tokyoToday()}}function revertCommands(userId,current,newId,immediate){const commands=[];
57
- if(newId!==null)commands.push(`twp user assignment delete ${shellQuote(newId)} --user ${shellQuote(userId)} --yes`);let restore=`twp user assignment update ${shellQuote(current.id)} --user ${shellQuote(userId)} --end-date ${shellQuote(current.end_date??"none")}`;if(immediate){restore+=" --primary true";for(const observer of current.observer_ids)restore+=` --observer ${shellQuote(observer)}`}commands.push(restore);return commands}var MOVE_USAGE="twp user assignment move <\u30E6\u30FC\u30B6\u30FC> --department <\u90E8\u7F72> -\
58
- -start-date <\u7570\u52D5\u65E5> [--position <\u5F79\u8077>] [--job-title <\u8077\u4F4D> | --no-job-title] [--manager <\u30E6\u30FC\u30B6\u30FC>] [--observer <\u30E6\u30FC\u30B6\u30FC>]\u2026 [\u9805\u76EE\u2026]";async function reportPartialMove(input,ctx,current,uncertain){const userId=requireResolved(input,"userId");const departmentId=requireResolved(input,"department_id");const startDate=isoDate(input,START_DATE_FLAG.name);const before=existingIdsOf(input);let rows;try{rows=assignmentRows(await ctx.
59
- send({method:"GET",path:`/api/v2/organization/users/${userPath(input,"/assignments")}`}))}catch(err){ctx.warn(`\u4ED8\u3051\u66FF\u3048\u306E\u9001\u4FE1\u306B\u5931\u6557\u3057\u3001\u53CD\u6620\u72B6\u6CC1\u3082\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${err.message}\uFF09\u3002twp user assignment list ${shellQuote(userId)} \u3067\u3001\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u306E\u7D42\u4E86\u65E5\u3068\u65B0\u3057\u3044\u6240\u5C5E\u306E\u6709\u7121\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);
60
- return}const records=rows.filter(isRecord);const created=records.find(row=>row["department_id"]===departmentId&&row["start_date"]===startDate&&!before.has(String(row["id"])));const old=current===null?void 0:records.find(row=>row["id"]===current.id);const oldChanged=current!==null&&old!==void 0&&(strOrNull(old["end_date"])!==current.end_date||old["is_primary"]!==true);const oldState=current===null?"\u5BFE\u8C61\u306A\u3057":old===void 0?`\u4E00\u89A7\u306B\u898B\u3064\u304B\u308A\u307E\u305B\u3093\uFF08\u6240\u5C5E ID ${current.
61
- id} \u304C\u524A\u9664\u30FB\u5DEE\u3057\u66FF\u3048\u3055\u308C\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\uFF09`:oldChanged?`\u53CD\u6620\u6E08\u307F\uFF08\u7D42\u4E86\u65E5 ${String(old["end_date"]??"\u306A\u3057")}\u30FB\u4E3B\u6240\u5C5E ${String(old["is_primary"])}\uFF09`:"\u672A\u53CD\u6620";const lines=["\u4ED8\u3051\u66FF\u3048\u306E\u9001\u4FE1\u306F\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u6240\u5C5E\u3092\u8AAD\u307F\u76F4\u3057\u305F\u7D50\u679C:",` \u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u306E\u7D42\u4E86: ${oldState}`,
62
- ` \u65B0\u3057\u3044\u6240\u5C5E\u306E\u4F5C\u6210: ${created===void 0?"\u672A\u53CD\u6620":`\u53CD\u6620\u6E08\u307F\uFF08\u6240\u5C5E ID ${String(created["id"])}\uFF09`}`];if(current!==null&&oldChanged){const immediate=old?.["is_primary"]!==true;const createdId=created===void 0?null:String(created["id"]);lines.push(createdId===null?"\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u3060\u3051\u304C\u7D42\u4E86\u3057\u305F\u72B6\u614B\u3067\u3059\u3002\u4ED8\u3051\u66FF\u3048\u3092\u3084\u308A\u76F4\u3059\u304B\u3001\u6B21\u306E\u30B3\u30DE\u30F3\u30C9\u3067\u5143\u306B\u623B\u3057\u3066\u304F\u3060\u3055\u3044:":
63
- "\u4E21\u65B9\u3068\u3082\u53CD\u6620\u3055\u308C\u3066\u3044\u307E\u3059\uFF08\u5FDC\u7B54\u3060\u3051\u304C\u5931\u308F\u308C\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\uFF09\u3002\u53D6\u308A\u6D88\u3059\u306A\u3089\u6B21\u306E\u30B3\u30DE\u30F3\u30C9\u3067\u3059:");lines.push(...revertCommands(userId,current,createdId,immediate).map(command=>` ${command}`))}else if(created!==void 0){lines.push(`\u65B0\u3057\u3044\u6240\u5C5E\u3060\u3051\u304C\u4F5C\u3089\u308C\u3066\u3044\u307E\u3059\u3002\u53D6\u308A\u6D88\u3059\u306A\u3089: twp user assignment delete ${shellQuote(
64
- String(created["id"]))} --user ${shellQuote(userId)} --yes`)}else if(uncertain){lines.push(`\u8AAD\u307F\u76F4\u3057\u305F\u6642\u70B9\u3067\u306F\u5909\u308F\u3063\u3066\u3044\u307E\u305B\u3093\u304C\u3001\u5FDC\u7B54\u304C\u5C4A\u304B\u306A\u304B\u3063\u305F\u305F\u3081\u3001\u30B5\u30FC\u30D0\u304C\u307E\u3060\u51E6\u7406\u4E2D\u3067\u5F8C\u304B\u3089\u53CD\u6620\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u3057\u3070\u3089\u304F\u3057\u3066\u304B\u3089 twp user assignment list ${shellQuote(
65
- userId)} \u3067\u78BA\u8A8D\u3057\u3001\u53CD\u6620\u3055\u308C\u3066\u3044\u306A\u3051\u308C\u3070\u3082\u3046\u4E00\u5EA6\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}else{lines.push("\u4F55\u3082\u5909\u308F\u3063\u3066\u3044\u307E\u305B\u3093\u3002\u539F\u56E0\u3092\u53D6\u308A\u9664\u3044\u3066\u304B\u3089\u540C\u3058\u30B3\u30DE\u30F3\u30C9\u3092\u3082\u3046\u4E00\u5EA6\u5B9F\u884C\u3067\u304D\u307E\u3059\u3002")}ctx.warn(lines.join("\n"))}var moveOperation={name:"move",summary:"\
66
- \u6240\u5C5E\u3092\u4ED8\u3051\u66FF\u3048\u308B\uFF08\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u3092\u7570\u52D5\u65E5\u306E\u524D\u65E5\u3067\u7D42\u3048\u3001\u65B0\u3057\u3044\u4E3B\u6240\u5C5E\u3092\u4F5C\u308B\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:MOVE_USAGE,description:`\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u3092\u7570\u52D5\u65E5\u306E\u524D\u65E5\u3067\u7D42\u4E86\u3057\u3001\u7570\u52D5\u65E5\u304B\u3089\u65B0\u3057\u3044\u4E3B\u6240\u5C5E\u3092\u4F5C\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u3078\u306F\u6240\u5C5E\u306E\u4F5C\u62101\u672C\u3092\u9001\u308A\u3001
67
- \u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u306E\u7D42\u4E86\u306F\u30B5\u30FC\u30D0\u304C\u540C\u3058\u8981\u6C42\u306E\u4E2D\u3067\u884C\u3044\u307E\u3059\uFF09\u3002--department \u3068 --start-date\uFF08\u7570\u52D5\u65E5\uFF09\u304C\u5FC5\u9808\u3067\u3059\u3002
68
- \u9001\u308B\u524D\u306B\u6240\u5C5E\u3092\u8AAD\u307F\u3001\u7D42\u4E86\u3059\u308B\u6240\u5C5E\u3068\u4F5C\u308B\u6240\u5C5E\u3092 stderr \u306B\u4E26\u3079\u307E\u3059\u3002--dry-run \u3067\u9001\u3089\u305A\u306B\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002
69
-
70
- \u5F15\u304D\u7D99\u3050\u3082\u306E: \u5F79\u8077\u30FB\u8077\u4F4D\uFF08--position / --job-title \u3092\u6307\u5B9A\u3059\u308C\u3070\u305D\u3061\u3089\u3092\u4F7F\u3046\u3002--no-job-title \u3067\u8077\u4F4D\u3092\u5916\u3059\uFF09\u3002
71
- \u5F15\u304D\u7D99\u304C\u306A\u3044\u3082\u306E: \u4E0A\u9577\u30FB\u89B3\u5BDF\u8005\u30FB\u9762\u8AC7\u8005\u30FB\u30E1\u30F3\u30BF\u30FC\uFF08\u65E7\u4E0A\u9577\u306E\u307E\u307E\u627F\u8A8D\u7D4C\u8DEF\u304C\u6B8B\u3089\u306A\u3044\u3088\u3046\u306B\u3001\u6307\u5B9A\u3057\u305F\u3082\u306E\u3060\u3051\u3092\u8A2D\u5B9A\u3057\u307E\u3059\uFF09\u3002
72
- \u517C\u52D9\u30FB\u4EE3\u7406\u306E\u6240\u5C5E\u3092\u8DB3\u3059\u306A\u3089 move \u3067\u306F\u306A\u304F twp user assignment create --primary false \u3092\u4F7F\u3044\u307E\u3059\u3002
73
-
74
- \u7570\u52D5\u65E5\u304C\u672A\u6765\u306A\u3089\u65B0\u3057\u3044\u6240\u5C5E\u306F\u4E88\u7D04\u306B\u306A\u308A\u3001\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u306F\u524D\u65E5\u307E\u3067\u6709\u52B9\u306A\u307E\u307E\u3067\u3059\uFF08\u958B\u59CB\u65E5\u306E\u65E5\u6B21\u30D0\u30C3\u30C1\u3067\u5207\u308A\u66FF\u308F\u308A\u307E\u3059\uFF09\u3002
75
- \u7570\u52D5\u65E5\u304C\u4ECA\u65E5\u4EE5\u524D\u306A\u3089\u3059\u3050\u306B\u5207\u308A\u66FF\u308F\u308A\u307E\u3059\u3002\u6B21\u306E\u5834\u5408\u306F\u9001\u3089\u305A\u306B\u6B62\u3081\u307E\u3059: \u7570\u52D5\u65E5\u304C\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u306E\u958B\u59CB\u65E5\u4EE5\u524D
76
- \uFF08\u958B\u59CB\u65E5\u3088\u308A\u524D\u306B\u7D42\u308F\u308B\u6240\u5C5E\u306B\u306A\u308B\uFF09\uFF0F\u4E88\u7D04\u6E08\u307F\u306E\u4E3B\u6240\u5C5E\u304C\u5225\u306B\u3042\u308B\uFF08\u4E3B\u6240\u5C5E\u304C2\u3064\u91CD\u306A\u308B\uFF09\u3002
77
- \u9001\u4FE1\u304C\u9014\u4E2D\u3067\u5931\u6557\u3057\u305F\u3068\u304D\u306F\u3001\u6240\u5C5E\u3092\u8AAD\u307F\u76F4\u3057\u3066\u3069\u3053\u307E\u3067\u53CD\u6620\u3055\u308C\u305F\u304B\u3068\u5143\u306B\u623B\u3059\u30B3\u30DE\u30F3\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002
78
-
79
- ${USER_FIELD_HELP}
80
-
81
- ${USER_REF_HELP}`,forbidden:FORBIDDEN,flags:[...createFlags(MOVE_FIELDS),{name:"--no-job-title",summary:"\u8077\u4F4D\u3092\u5F15\u304D\u7D99\u304C\u306A\u3044\uFF08\u65B0\u3057\u3044\u6240\u5C5E\u3092\u8077\u4F4D\u306A\u3057\u3067\u4F5C\u308B\uFF09",takesValue:false},START_DATE_FLAG,OBSERVER_FLAG,USER_REF_FLAG],async prepare(input,ctx){checkArguments(input,MOVE_FIELDS);for(const flag of[DEPARTMENT_FIELD.flag,START_DATE_FLAG.name]){if(!input.flags.has(flag))throw new UsageError(`${flag} \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\
82
- \u3044`,"twp user assignment move help")}const startDate=isoDate(input,START_DATE_FLAG.name);const resolved=await resolveAll(await prepareUser(input,ctx,"twp user assignment move help"),ctx,MOVE_FIELDS);const userId=requireResolved(resolved,"userId");const inherited=await primaryPreflight(ctx,userId,startDate,"twp user assignment move help");const current=currentPrimaryOf(withResolved(resolved,inherited));if(!input.flags.has(POSITION_FIELD.flag)){if(current?.position_id==null){throw new UsageError(
83
- "\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u304C\u7121\u3044\uFF08\u307E\u305F\u306F\u5F79\u8077\u304C\u7121\u3044\uFF09\u305F\u3081\u3001\u5F79\u8077\u3092\u5F15\u304D\u7D99\u3052\u307E\u305B\u3093\u3002--position \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","twp user assignment move help")}inherited[POSITION_FIELD.key]=current.position_id;inherited["inheritedPosition"]="1"}if(!input.flags.has(JOB_TITLE_FIELD.flag)&&!input.flags.has("--no-job-title")&&current?.job_title_id!=null){inherited[JOB_TITLE_FIELD.
84
- key]=current.job_title_id;inherited["inheritedJobTitle"]="1"}const newDepartment=requireResolved(resolved,DEPARTMENT_FIELD.key);inherited["newDepartmentName"]=await nameOf(()=>ctx.resolver.departments(),newDepartment)??newDepartment;const newPosition=inherited[POSITION_FIELD.key]??requireResolved(resolved,POSITION_FIELD.key);inherited["newPositionName"]=await nameOf(()=>ctx.resolver.positions(),newPosition)??newPosition;return withResolved(resolved,inherited)},plan(input){const body=assignmentBody(
85
- input,MOVE_FIELDS);if(input.resolved?.["inheritedPosition"]==="1")body["position_id"]=requireResolved(input,POSITION_FIELD.key);if(input.resolved?.["inheritedJobTitle"]==="1")body["job_title_id"]=requireResolved(input,JOB_TITLE_FIELD.key);if(input.flags.has("--no-job-title"))delete body["job_title_id"];body["is_primary"]=true;return{method:"POST",path:`/api/v2/organization/users/${userPath(input,"/assignments")}`,body}},plannedNotes(input){const current=currentPrimaryOf(input);const startDate=isoDate(
86
- input,START_DATE_FLAG.name);const endDate=previousDay(startDate);const today=input.resolved?.["today"]??"";const scheduled=today!==""&&startDate>today;const lines=["\u4ED8\u3051\u66FF\u3048\u306E\u5185\u5BB9:"];if(current===null){lines.push(" \u7D42\u4E86\u3059\u308B\u6240\u5C5E: \u306A\u3057\uFF08\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u304C\u3042\u308A\u307E\u305B\u3093\uFF09")}else{const period=`${current.start_date??"?"}\u301C${current.end_date??""}`;let change;if(current.end_date!==null&&current.
87
- end_date<=endDate){change=scheduled?`\u7D42\u4E86\u65E5 ${current.end_date} \u306F\u7570\u52D5\u65E5\u306E\u524D\u65E5\u4EE5\u524D\u306A\u306E\u3067\u5909\u3048\u307E\u305B\u3093`:`\u7D42\u4E86\u65E5 ${current.end_date} \u306F\u7570\u52D5\u65E5\u306E\u524D\u65E5\u4EE5\u524D\u306A\u306E\u3067\u5909\u3048\u305A\u3001\u4E3B\u6240\u5C5E\u304B\u3089\u5916\u3057\u307E\u3059`}else{change=`\u7D42\u4E86\u65E5\u3092 ${endDate} \u306B\u3057\u307E\u3059`}lines.push(` \u7D42\u4E86\u3059\u308B\u6240\u5C5E: ${label(
88
- current.department_name,current.department_id)} / ${label(current.position_name,current.position_id)}\uFF08${period}\uFF09\u2192 ${change} [\u6240\u5C5E ID ${current.id}]`)}const inheritedFrom=[input.resolved?.["inheritedPosition"]==="1"?"\u5F79\u8077":null,input.resolved?.["inheritedJobTitle"]==="1"?"\u8077\u4F4D":null].filter(item=>item!==null);lines.push(` \u4F5C\u308B\u6240\u5C5E: ${input.resolved?.["newDepartmentName"]??"?"} / ${input.resolved?.["newPositionName"]??"?"}\uFF08${startDate}\
89
- \u301C\u30FB\u4E3B\u6240\u5C5E\uFF09`+(inheritedFrom.length>0?` \u203B${inheritedFrom.join("\u30FB")}\u306F\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u304B\u3089\u5F15\u304D\u7D99\u304E`:""));if(current!==null){const dropped=[current.has_manager&&!input.flags.has(MANAGER_FIELD.flag)?"\u4E0A\u9577":null,current.observer_ids.length>0&&repeatedValues(input,OBSERVER_FLAG.name).length===0?"\u89B3\u5BDF\u8005":null,current.has_interviewer&&!input.flags.has(INTERVIEWER_FIELD.flag)?"\u9762\u8AC7\u8005":null,
90
- current.has_mentor&&!input.flags.has(MENTOR_FIELD.flag)?"\u30E1\u30F3\u30BF\u30FC":null].filter(item=>item!==null);if(dropped.length>0){lines.push(` \u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u306E${dropped.join("\u30FB")}\u306F\u5F15\u304D\u7D99\u304E\u307E\u305B\u3093\uFF08\u65B0\u3057\u3044\u6240\u5C5E\u3067\u306F\u672A\u8A2D\u5B9A\u3067\u3059\u3002\u8981\u308B\u306A\u3089 --manager \u7B49\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002`)}}if(scheduled){lines.push(` \u7570\u52D5\u65E5\u304C\u672A\u6765\u306E\u305F\u3081\u3001\u65B0\u3057\
91
- \u3044\u6240\u5C5E\u306F\u4E88\u7D04\u306B\u306A\u308A\u307E\u3059\u3002\u73FE\u5728\u306E\u4E3B\u6240\u5C5E\u306F ${endDate} \u307E\u3067\u6709\u52B9\u306A\u307E\u307E\u3067\u3059\u3002`)}else if(today!==""){lines.push(" \u7570\u52D5\u65E5\u304C\u4ECA\u65E5\u4EE5\u524D\u306E\u305F\u3081\u3001\u9001\u4FE1\u3057\u305F\u6642\u70B9\u3067\u5207\u308A\u66FF\u308F\u308A\u307E\u3059\u3002")}return lines},async execute(input,ctx){const current=currentPrimaryOf(input);try{return await ctx.send(moveOperation.
92
- plan(input))}catch(err){const beforeWrite=err instanceof ApiError&&[401,403,422].includes(err.status);if(!beforeWrite)await reportPartialMove(input,ctx,current,!(err instanceof ApiError));throw err}},summarize:body=>writeSummary(body,"\u6240\u5C5E\u306E\u4ED8\u3051\u66FF\u3048"),raw:body=>writeResult(body,"\u6240\u5C5E\u306E\u4ED8\u3051\u66FF\u3048"),notes(body,input){const notes=[...previousPrimaryNotes(body)];const current=currentPrimaryOf(input);const created=isRecord(body)&&isRecord(body["as\
93
- signment"])?strOrNull(body["assignment"]["id"]):null;if(current!==null&&created!==null){const startDate=isoDate(input,START_DATE_FLAG.name);const immediate=startDate<=(input.resolved?.["today"]??"");const commands=revertCommands(requireResolved(input,"userId"),current,created,immediate);const later=immediate?"":`
94
- \uFF08${startDate} \u4EE5\u964D\u306B\u623B\u3059\u3068\u304D\u306F\u30012\u672C\u76EE\u306B --primary true \u3068\u5143\u306E\u89B3\u5BDF\u8005\u306E --observer \u3082\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\uFF09`;notes.push(`\u53D6\u308A\u6D88\u3059\u306B\u306F:
95
- ${commands.map(c=>` ${c}`).join("\n")}${later}`)}return notes}};var userAssignmentResource={name:"assignment",summary:"\u30E6\u30FC\u30B6\u30FC\u306E\u6240\u5C5E\uFF08\u90E8\u7F72\u30FB\u5F79\u8077\uFF09\u306E\u53C2\u7167\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u7D42\u4E86\u30FB\u524A\u9664\u30FB\u4ED8\u3051\u66FF\u3048",operations:[listOperation,createOperation,updateOperation,endOperation,deleteOperation,moveOperation]};import fs from"fs";var INVITATIONS_PATH="/api/v2/admin/invitations";var INVITE_ROLES=["user","admin","super_admin"];var BULK_MAX=50;var CSV_MAX_BYTES=256*1024;var EMAIL_RE=/^[^\s@,;]+@[^\s@,;]+$/;var LIST_COLUMNS=["email","user_name","role","status","created_at","expires_at"];var ROLE_HELP="\u6A29\u9650\u306F user\uFF08\u4E00\u822C\uFF09/ admin\uFF08\u7BA1\u7406\u8005\uFF09/ super_admin\uFF08\u5168\u4F53\u7BA1\u7406\u8005\uFF09\u3067\u3059\u3002";var FORBIDDEN2="\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002\u30E6\u30FC\u30B6\u30FC\u306E\u62DB\u5F85\u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u6271\u3048\u307E\u3059";
96
- var INVITE_REF_HELP="<\u62DB\u5F85> \u306F\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3067\u6307\u5B9A\u3057\u307E\u3059\uFF08\u672A\u53D7\u8AFE\u306E\u62DB\u5F85\u304C1\u4EF6\u306B\u7D5E\u308C\u305F\u3068\u304D\u3060\u3051\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF09\u3002\n\u5BFE\u8C61\u306F twp user invite list \u306B\u51FA\u308B\u62DB\u5F85\uFF08\u671F\u9650\u5185\u306E\u672A\u53D7\u8AFE\uFF09\u3060\u3051\u3067\u3059\u3002\n\u540C\u3058\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u306B\u672A\u53D7\u8AFE\u306E\u62DB\u5F85\u304C\u8907\u6570\u3042\u308B\u3068\u304D\u306F\u3001twp user invite list --no-redact \u3067\n\u30C8\u30FC\u30AF\u30F3\u3092\u78BA\u8A8D\u3057\u3066\u3001\u30C8\u30FC\u30AF\u30F3\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
97
- function roleValue(raw,where){const value=raw.trim().toLowerCase();if(!INVITE_ROLES.includes(value)){throw new UsageError(`${where}\u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,ROLE_HELP)}return value}function successAck(body,label2){if(!isRecord(body)||body["result"]!==true){throw new ApiResponseError(`${label2}\u306E\u5FDC\u7B54\u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
98
- return{result:true,message:body["message"]??null}}function invitationRows(body){const rows=isRecord(body)?body["invitations"]:void 0;if(!Array.isArray(rows)){throw new ApiResponseError("\u62DB\u5F85\u4E00\u89A7\u306E\u5FDC\u7B54\u306B invitations \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return rows.filter(isRecord)}function cell(raw){const trimmed=raw.trim();return trimmed.length>=2&&trimmed.startsWith(
99
- '"')&&trimmed.endsWith('"')?trimmed.slice(1,-1).trim():trimmed}function parseInviteCsv(text){const rows=[];const errors=[];const seen=new Map;const lines=text.replace(/^\uFEFF/,"").split(/\r?\n/);let headerChecked=false;lines.forEach((raw,index)=>{const line=index+1;if(raw.trim()===""||raw.trim().startsWith("#"))return;const cells=raw.split(",").map(cell);if(!headerChecked){headerChecked=true;const head=(cells[0]??"").toLowerCase();if(head==="email"||head==="\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9"||
100
- head==="mail")return}if(cells.length!==2){errors.push(`${line} \u884C\u76EE: \u5217\u304C ${cells.length} \u500B\u3042\u308A\u307E\u3059\uFF08\u300C\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9, \u6A29\u9650\u300D\u306E2\u5217\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u6C0F\u540D\u306F\u53D7\u8AFE\u6642\u306B\u672C\u4EBA\u304C\u5165\u529B\u3057\u307E\u3059\uFF09`);return}const[email,role]=cells;if(!EMAIL_RE.test(email)){errors.push(`${line} \u884C\u76EE: \u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u306E\u5F62\u304C\u9055\u3044\u307E\u3059: ${email===
101
- ""?"\uFF08\u7A7A\uFF09":email}`);return}const normalizedRole=role.toLowerCase();if(!INVITE_ROLES.includes(normalizedRole)){errors.push(`${line} \u884C\u76EE: \u6A29\u9650\u306B\u300C${role===""?"\uFF08\u7A7A\uFF09":role}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF08${INVITE_ROLES.join(" / ")}\uFF09`);return}const key=email.toLowerCase();const first=seen.get(key);if(first!==void 0){errors.push(`${line} \u884C\u76EE: ${email} \u306F ${first} \u884C\u76EE\u3068\u91CD\u8907\u3057\u3066\u3044\u307E\u3059`);
102
- return}seen.set(key,line);rows.push({line,email,role:normalizedRole})});return{rows,errors}}function readCsvFile(file,usage){try{const stat=fs.statSync(file);if(!stat.isFile())throw new UsageError(`--file \u306B\u901A\u5E38\u306E\u30D5\u30A1\u30A4\u30EB\u4EE5\u5916\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: ${file}`,usage);if(stat.size>CSV_MAX_BYTES){throw new UsageError(`--file \u306E\u30D5\u30A1\u30A4\u30EB\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${stat.size} \u30D0\u30A4\u30C8\uFF09: ${file}`,
103
- `\u4E00\u5EA6\u306B\u62DB\u5F85\u3067\u304D\u308B\u306E\u306F ${BULK_MAX} \u4EF6\u307E\u3067\u3067\u3059\u3002`)}return fs.readFileSync(file,"utf8")}catch(err){if(err instanceof UsageError)throw err;const reason=err.code??err.message;throw new UsageError(`--file \u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093: ${file}\uFF08${reason}\uFF09`,usage)}}function bulkRows(input){return JSON.parse(requireResolved(input,"rows"))}function matchResults(response,sent){const results=isRecord(
104
- response)?response["results"]:void 0;if(!isRecord(response)||response["result"]!==true||!Array.isArray(results)){throw new ApiResponseError("\u4E00\u62EC\u62DB\u5F85\u306E\u5FDC\u7B54\u306B results \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}const byEmail=new Map(sent.map(row=>[row.email.toLowerCase(),row]));const answered=new Set;const rows=results.filter(isRecord).map(result=>{const email=String(result["\
105
- email"]??"");const row=byEmail.get(email.toLowerCase());answered.add(email.toLowerCase());return{line:row?.line??null,email,role:row?.role??null,success:result["success"]===true,queued:result["queued"]===true,error:typeof result["error"]==="string"?result["error"]:null}});for(const row of sent){if(answered.has(row.email.toLowerCase()))continue;rows.push({line:row.line,email:row.email,role:row.role,success:false,queued:false,error:"\u30B5\u30FC\u30D0\u306E\u7D50\u679C\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\uFF08\u9001\u3089\u308C\u305F\u304B\u3069\u3046\u304B\u4E0D\u660E\u3067\u3059\u3002twp user invite list \u3067\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\uFF09"})}
106
- return rows}function lineErrors(err,sent){const list=err.body?.error_list;if(!Array.isArray(list))return[];const lines=[];for(const item of list){if(!isRecord(item))continue;const name=typeof item["name"]==="string"?item["name"]:"";const text=typeof item["message"]==="string"?item["message"]:"";const match=/^invitations\.(\d+)\./.exec(name);const row=match!==null?sent[Number(match[1])]:void 0;lines.push(row!==void 0?` ${row.line} \u884C\u76EE\uFF08${row.email}\uFF09: ${text}`:` ${name}: ${text}`)}
107
- return lines}async function runBulk(input,ctx){const sent=bulkRows(input);let response;try{response=await ctx.send(bulkPlan(input))}catch(err){if(err instanceof ApiError&&err.status===422){const lines=lineErrors(err,sent);if(lines.length>0)ctx.warn(["\u30B5\u30FC\u30D0\u304C CSV \u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093\u3067\u3057\u305F\uFF081\u901A\u3082\u9001\u3063\u3066\u3044\u307E\u305B\u3093\uFF09:",...lines].join("\n"))}throw err}const rows=matchResults(response,sent);const failed=rows.
108
- filter(row=>!row.success);if(failed.length>0){const lines=[`\u4E00\u62EC\u62DB\u5F85: ${rows.length} \u4EF6\u4E2D ${failed.length} \u4EF6\u304C\u5931\u6557\u3057\u307E\u3057\u305F\u3002`];for(const row of failed)lines.push(` \u5931\u6557: ${row.line??"?"} \u884C\u76EE ${row.email}\uFF08${row.error??"\u7406\u7531\u4E0D\u660E"}\uFF09`);const ok=rows.filter(row=>row.success);lines.push(ok.length===0?" \u62DB\u5F85\u3092\u9001\u3063\u305F\u884C\u306F\u3042\u308A\u307E\u305B\u3093\u3002":` \u9001\u4FE1\u6E08\u307F\uFF08\u6253\u3061\
109
- \u76F4\u3059\u30682\u901A\u76EE\u304C\u5C4A\u304D\u307E\u3059\uFF09: ${ok.map(row=>`${row.line??"?"} \u884C\u76EE ${row.email}`).join(" / ")}`);lines.push("\u5931\u6557\u306E\u7406\u7531\u3092\u78BA\u304B\u3081\u3001\u76F4\u305B\u308B\u884C\u3060\u3051\u3092\u6B8B\u3057\u305F CSV \u3067\u6253\u3061\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u9001\u4FE1\u6E08\u307F\u306E\u884C\u306F\u542B\u3081\u306A\u3044\uFF09\u3002");ctx.warn(lines.join("\n"));throw new ApiRejectedError(`\u4E00\u62EC\u62DB\u5F85\u306F\u5B8C\u4E86\u3057\u3066\u3044\u307E\u305B\u3093\uFF08${failed.
110
- length} \u4EF6\u5931\u6557\u30FB${ok.length} \u4EF6\u9001\u4FE1\uFF09\u3002`)}return{response,rows}}function bulkPlan(input){return{method:"POST",path:`${INVITATIONS_PATH}/bulk`,body:{invitations:bulkRows(input).map(row=>({email:row.email,role:row.role}))}}}function bulkBody(body){return isRecord(body)&&"rows"in body?body:{}}var INVITE_REF_FLAG={name:"--invite",summary:"\u5BFE\u8C61\u306E\u62DB\u5F85\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,
111
- placeholder:"<\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9|\u30C8\u30FC\u30AF\u30F3>"};async function prepareInvite(input,usage){const ref=singleRef(input,{flag:INVITE_REF_FLAG.name,label:"\u62DB\u5F85",usage});if(!ref.includes("@")){if(!/^[A-Za-z0-9_-]+$/.test(ref))throw new UsageError(`\u62DB\u5F85\u306E\u30C8\u30FC\u30AF\u30F3\u306E\u5F62\u304C\u9055\u3044\u307E\u3059\uFF08${[...ref].length} \u6587\u5B57\uFF09`,INVITE_REF_HELP);return withResolved(input,{token:ref})}return withResolved(input,{email:ref})}
112
- async function tokenFor(input,ctx){const token=input.resolved?.["token"];if(token!==void 0)return token;const email=requireResolved(input,"email");const rows=invitationRows(await ctx.send({method:"GET",path:INVITATIONS_PATH}));const hits=rows.filter(row=>String(row["email"]??"").toLowerCase()===email.toLowerCase()&&row["status"]!=="accepted");if(hits.length===0){throw new UsageError(`${email} \u5B9B\u3066\u306E\u672A\u53D7\u8AFE\u306E\u62DB\u5F85\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`,
113
- "twp user invite list \u3067\u62DB\u5F85\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}if(hits.length>1){const found=hits.map(row=>`${String(row["status"])}\uFF08\u4F5C\u6210 ${String(row["created_at"])}\uFF09`).join(" / ");throw new UsageError(`${email} \u5B9B\u3066\u306E\u672A\u53D7\u8AFE\u306E\u62DB\u5F85\u304C ${hits.length} \u4EF6\u3042\u308A\u307E\u3059: ${found}`,INVITE_REF_HELP)}const hit=hits[0]?.["token"];if(typeof hit!=="string"||!/^[A-Za-z0-9_-]+$/.test(hit)){throw new ApiResponseError(
114
- "\u62DB\u5F85\u4E00\u89A7\u306E\u5FDC\u7B54\u306E\u30C8\u30FC\u30AF\u30F3\u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return hit}function invitePath(token,suffix=""){return`${INVITATIONS_PATH}/${encodeURIComponent(token)}${suffix}`}function refPlan(input,method,suffix=""){const token=input.resolved?.["token"];return{method,path:token===void 0?`${INVITATIONS_PATH}/{token}${suffix}`:invitePath(token,suffix)}}
115
- function refNotes(input){const email=input.resolved?.["email"];return email===void 0?[]:[`\u3053\u306E\u524D\u306B\u3001${email} \u5B9B\u3066\u306E\u62DB\u5F85\u306E\u30C8\u30FC\u30AF\u30F3\u3092\u8ABF\u3079\u308B\u305F\u3081\u62DB\u5F85\u4E00\u89A7\u3092 GET \u3057\u307E\u3059\uFF08{token} \u306F\u305D\u306E\u7D50\u679C\u3067\u57CB\u307E\u308A\u307E\u3059\uFF09\u3002`]}var userInviteResource={name:"invite",summary:"\u30E6\u30FC\u30B6\u30FC\u306E\u62DB\u5F85\uFF081\u4EF6\u30FBCSV \u4E00\u62EC\u30FB\u4E00\u89A7\u30FB\u518D\u9001\u30FB\u53D6\u6D88\uFF09",
116
- operations:[{name:"create",summary:"1\u4EBA\u3092\u62DB\u5F85\u3059\u308B\uFF08\u62DB\u5F85\u30E1\u30FC\u30EB\u3092\u9001\u308B\uFF09",usage:"twp user invite create --email <\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9> [--role user|admin|super_admin] [--name <\u6C0F\u540D>]",description:"--email \u304C\u5FC5\u9808\u3067\u3059\u3002--role \u3092\u7701\u304F\u3068\u4E00\u822C\u30E6\u30FC\u30B6\u30FC\uFF08user\uFF09\u3067\u62DB\u5F85\u3057\u307E\u3059\u3002\n--name \u306F\u62DB\u5F85\u30E1\u30FC\u30EB\u3068\u53D7\u8AFE\u753B\u9762\u306B\u51FA\u3059\u6C0F\u540D\u3067\u3059\uFF08\u53D7\u8AFE\u6642\u306B\u672C\u4EBA\u304C\u5909\u66F4\u3067\u304D\u307E\u3059\uFF09\u3002\n\u6A5F\u80FD\u6A29\u9650\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u65E2\u5B9A\u3092\u4F7F\u3044\u307E\u3059\u3002\n\n"+
117
- ROLE_HELP,forbidden:FORBIDDEN2,flags:[{name:"--email",summary:"\u62DB\u5F85\u3059\u308B\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",takesValue:true,placeholder:"<\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9>"},{name:"--role",summary:"\u6A29\u9650\uFF08user / admin / super_admin\uFF09",takesValue:true,placeholder:"<\u6A29\u9650>"},{name:"--name",summary:"\u6C0F\u540D\uFF08\u62DB\u5F85\u30E1\u30FC\u30EB\u3068\u53D7\u8AFE\u753B\u9762\u306B\u51FA\u308B\uFF09",takesValue:true,placeholder:"<\u6C0F\u540D>"}],
118
- async prepare(input){if(input.args.length>0){throw new UsageError(`create \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"twp user invite create help")}const email=input.flags.get("--email")?.trim()??"";if(email==="")throw new UsageError("--email \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","twp user invite create help");if(!EMAIL_RE.test(email))throw new UsageError(`--email \u306E\u5F62\u304C\u9055\u3044\u307E\u3059: ${email}`,"\u4F8B: --email\
119
- new.member@example.com");const role=input.flags.get("--role");if(role!==void 0)roleValue(role,"--role ");const name=input.flags.get("--name");if(name!==void 0&&[...name].length>255){throw new UsageError(`\u6C0F\u540D\u304C\u9577\u3059\u304E\u307E\u3059\uFF08${[...name].length} \u6587\u5B57\u30FB\u4E0A\u9650 255 \u6587\u5B57\uFF09`,"twp user invite create help")}return input},plan(input){const role=input.flags.get("--role");const name=input.flags.get("--name")?.trim();return{method:"POST",path:INVITATIONS_PATH,
120
- body:{email:input.flags.get("--email").trim(),role:role===void 0?"user":roleValue(role,"--role "),...name!==void 0&&name!==""?{user_name:name}:{}}}},plannedNotes:input=>input.flags.has("--role")?[]:["--role \u672A\u6307\u5B9A\u306E\u305F\u3081\u3001\u4E00\u822C\u30E6\u30FC\u30B6\u30FC\uFF08user\uFF09\u3067\u62DB\u5F85\u3057\u307E\u3059\u3002"],summarize:body=>successAck(body,"\u62DB\u5F85"),raw:body=>successAck(body,"\u62DB\u5F85")},{name:"bulk",summary:"CSV \u306E\u5168\u54E1\u3092\u62DB\u5F85\u3059\u308B\uFF081\u56DE 50 \u4EF6\u307E\u3067\uFF09",
121
- usage:"twp user invite bulk --file <CSV>",description:`CSV \u306F\u300C\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9, \u6A29\u9650\u300D\u306E2\u5217\u3067\u3059\uFF081\u884C\u76EE\u306E\u30D8\u30C3\u30C0 email,role \u306F\u7701\u7565\u3067\u304D\u307E\u3059\uFF09\u3002
122
- \u6C0F\u540D\u306E\u5217\u306F\u7F6E\u3051\u307E\u305B\u3093\uFF08\u4E00\u62EC\u62DB\u5F85\u3067\u306F\u6C0F\u540D\u306F\u9001\u3089\u308C\u305A\u3001\u53D7\u8AFE\u6642\u306B\u672C\u4EBA\u304C\u5165\u529B\u3057\u307E\u3059\uFF09\u3002
123
- \u7A7A\u884C\u3068 # \u3067\u59CB\u307E\u308B\u884C\u306F\u8AAD\u307F\u98DB\u3070\u3057\u307E\u3059\u3002
124
-
125
- email,role
126
- new.member@example.com,user
127
- leader@example.com,admin
128
-
129
- \u9001\u308B\u524D\u306B\u5168\u884C\u3092\u691C\u67FB\u3057\u3001\u5F62\u306E\u8AA4\u308A\u30FB\u91CD\u8907\u304C\u3042\u308B\u884C\u304C1\u3064\u3067\u3082\u3042\u308C\u3070**1\u901A\u3082\u9001\u3089\u305A**\u306B\u3001
130
- \u305D\u306E\u884C\u756A\u53F7\u3068\u7406\u7531\u3092\u3059\u3079\u3066\u51FA\u3057\u3066\u7D42\u4E86\u30B3\u30FC\u30C9 2 \u3067\u7D42\u308F\u308A\u307E\u3059\u3002--dry-run \u3067\u9001\u308B\u5185\u5BB9\u306E\u4E00\u89A7\u3092\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002
131
- \u9001\u3063\u305F\u5F8C\u306B\u30B5\u30FC\u30D0\u304C\u884C\u3054\u3068\u306B\u65AD\u3063\u305F\u5834\u5408\uFF08\u65E2\u306B\u4F7F\u308F\u308C\u3066\u3044\u308B\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u7B49\uFF09\u306F\u3001
132
- \u5931\u6557\u3057\u305F\u884C\u3068\u9001\u4FE1\u6E08\u307F\u306E\u884C\u3092 stderr \u306B\u51FA\u3057\u3066\u7D42\u4E86\u30B3\u30FC\u30C9 3 \u3067\u7D42\u308F\u308A\u307E\u3059\uFF08\u9001\u4FE1\u6E08\u307F\u306E\u884C\u306F\u53D6\u308A\u6D88\u3055\u308C\u307E\u305B\u3093\uFF09\u3002
133
-
134
- \u6A5F\u80FD\u6A29\u9650\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u65E2\u5B9A\u3092\u4F7F\u3044\u307E\u3059\u3002${ROLE_HELP}`,forbidden:FORBIDDEN2,flags:[{name:"--file",summary:"\u62DB\u5F85\u3059\u308B\u4EBA\u306E CSV\uFF08\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9, \u6A29\u9650\uFF09",takesValue:true,placeholder:"<CSV>"}],async prepare(input){const usage="twp user invite bulk help";if(input.args.length>0)throw new UsageError(`bulk \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.
135
- args.join(" ")}`,usage);const file=input.flags.get("--file");if(file===void 0||file.trim()==="")throw new UsageError("--file <CSV> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);const{rows,errors}=parseInviteCsv(readCsvFile(file,usage));if(errors.length>0){throw new UsageError(`CSV \u306B\u4E0D\u6B63\u306A\u884C\u304C ${errors.length} \u884C\u3042\u308B\u305F\u3081\u30011\u901A\u3082\u9001\u3063\u3066\u3044\u307E\u305B\u3093:
136
- ${errors.join("\n ")}`,`\u6B63\u3057\u3044\u884C\u306F ${rows.length} \u884C\u3067\u3059\u3002\u4E0D\u6B63\u306A\u884C\u3092\u76F4\u3059\u304B\u524A\u9664\u3057\u3066\u304B\u3089\u6253\u3061\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}if(rows.length===0)throw new UsageError(`CSV \u306B\u62DB\u5F85\u3059\u308B\u884C\u304C\u3042\u308A\u307E\u305B\u3093: ${file}`,usage);if(rows.length>BULK_MAX){throw new UsageError(`\u4E00\u5EA6\u306B\u62DB\u5F85\u3067\u304D\u308B\u306E\u306F ${BULK_MAX} \u4EF6\
137
- \u307E\u3067\u3067\u3059\uFF08${rows.length} \u4EF6\uFF09`,`CSV \u3092 ${BULK_MAX} \u884C\u305A\u3064\u306B\u5206\u3051\u3066\u6253\u3063\u3066\u304F\u3060\u3055\u3044\u3002`)}return withResolved(input,{rows:JSON.stringify(rows)})},plan:bulkPlan,plannedNotes:input=>{const rows=bulkRows(input);return[`${rows.length} \u4EF6\u3092\u62DB\u5F85\u3057\u307E\u3059:`,...rows.map(row=>` ${row.line} \u884C\u76EE: ${row.email}\uFF08${row.role}\uFF09`)]},execute:runBulk,summarize:body=>(bulkBody(body).rows??
138
- []).map(row=>pick(row,["line","email","role","success","queued","error"])),raw:body=>{const response=bulkBody(body).response??body;if(!isRecord(response))return response;const rest={...response};delete rest["result"];return rest},notes:body=>{const response=bulkBody(body).response;const queued=isRecord(response)?response["queued_count"]:void 0;const warnings=isRecord(response)?response["license_warnings"]:void 0;const notes=[];if(typeof queued==="number"&&queued>0){notes.push(`${queued} \u4EF6\u306F\u9001\u4FE1\u5F85\u3061\u306E\u5217\
139
- \u306B\u5165\u308A\u307E\u3057\u305F\uFF08\u6570\u5206\u4EE5\u5185\u306B\u9001\u3089\u308C\u307E\u3059\u3002\u5C4A\u304B\u306A\u3051\u308C\u3070 twp user invite resend \u3067\u518D\u9001\u3067\u304D\u307E\u3059\uFF09\u3002`)}if(Array.isArray(warnings)&&warnings.length>0)notes.push(`\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u6CE8\u610F: ${warnings.map(String).join(" / ")}`);return notes}},{name:"list",summary:"\u672A\u53D7\u8AFE\u306E\u62DB\u5F85\u3092\u4E00\u89A7\u3059\u308B",usage:"twp user invite l\
140
- ist",description:"\u51FA\u308B\u306E\u306F\u672A\u53D7\u8AFE\u3067\u671F\u9650\u5185\u306E\u62DB\u5F85\u3060\u3051\u3067\u3059\uFF08\u671F\u9650\u5207\u308C\u30FB\u53D7\u8AFE\u6E08\u307F\u306F\u30B5\u30FC\u30D0\u304C\u8FD4\u3057\u307E\u305B\u3093\uFF09\u3002\n\u671F\u9650\u304C\u5207\u308C\u305F\u62DB\u5F85\u306F\u518D\u9001\u3082\u53D6\u6D88\u3082\u3067\u304D\u306A\u3044\u306E\u3067\u3001twp user invite create \u3067\u62DB\u5F85\u3057\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\u30C8\u30FC\u30AF\u30F3\u306F\u62DB\u5F85\u3092\u53D7\u8AFE\u3067\u304D\u308B\u79D8\u5BC6\u306A\u306E\u3067\u4F0F\u5B57\u3067\u51FA\u3057\u307E\u3059\uFF08--no-redact \u3067\u8868\u793A\uFF09\u3002\n\u3053\u306E API \u306F\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u6301\u305F\u305A\u3001\u5E38\u306B\u5168\u4EF6\u3092\u8FD4\u3057\u307E\u3059\u3002",
141
- forbidden:FORBIDDEN2,flags:[],async prepare(input){if(input.args.length>0)throw new UsageError(`list \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"twp user invite list help");return input},plan:()=>({method:"GET",path:INVITATIONS_PATH}),summarize:body=>invitationRows(body).map(row=>pick(row,LIST_COLUMNS)),raw:body=>invitationRows(body)},{name:"resend",summary:"\u62DB\u5F85\u30E1\u30FC\u30EB\u3092\u518D\u9001\u3059\u308B\uFF08\u671F\u9650\u5185\u306E\u672A\u53D7\u8AFE\u306E\u62DB\u5F85\u3060\u3051\uFF09",
142
- usage:"twp user invite resend <\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9|\u30C8\u30FC\u30AF\u30F3>",description:INVITE_REF_HELP,forbidden:FORBIDDEN2,flags:[INVITE_REF_FLAG],prepare:input=>prepareInvite(input,"twp user invite resend help"),plan:input=>refPlan(input,"POST","/resend"),plannedNotes:refNotes,async execute(input,ctx){return ctx.send({method:"POST",path:invitePath(await tokenFor(input,ctx),"/resend")})},summarize:body=>successAck(body,"\u62DB\u5F85\u306E\u518D\u9001"),raw:body=>successAck(
143
- body,"\u62DB\u5F85\u306E\u518D\u9001")},{name:"delete",summary:"\u62DB\u5F85\u3092\u53D6\u308A\u6D88\u3059\uFF08\u53D7\u8AFE\u7528\u306E\u30EA\u30F3\u30AF\u304C\u4F7F\u3048\u306A\u304F\u306A\u308B\uFF09",usage:"twp user invite delete <\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9|\u30C8\u30FC\u30AF\u30F3> --yes",description:`${INVITE_REF_HELP}
144
-
145
- \u53D6\u308A\u6D88\u3057\u305F\u62DB\u5F85\u306F\u5143\u306B\u623B\u305B\u307E\u305B\u3093\u3002\u3082\u3046\u4E00\u5EA6\u62DB\u5F85\u3059\u308B\u3068\u304D\u306F twp user invite create \u3092\u4F7F\u3044\u307E\u3059\u3002`,destructive:true,forbidden:FORBIDDEN2,flags:[INVITE_REF_FLAG],prepare:input=>prepareInvite(input,"twp user invite delete help"),plan:input=>refPlan(input,"DELETE"),plannedNotes:refNotes,async execute(input,ctx){return ctx.send({method:"DELETE",path:invitePath(await tokenFor(input,
146
- ctx))})},summarize:body=>successAck(body,"\u62DB\u5F85\u306E\u53D6\u6D88"),raw:body=>successAck(body,"\u62DB\u5F85\u306E\u53D6\u6D88")}]};var LIST_COLUMNS2=["user_id","user_name","email","employee_code","department_name","position_name","role","display_flg"];var GET_COLUMNS=["user_id","user_name","user_name_kana","email","employee_code","role","auth_type","hire_date","is_locked","display_flg","memberlist_flg","org_chart_flg","dashboard_flg"];var EMPLOYMENT_TYPES=["employee","partner"];var listPaging=envelopePaging({label:"\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7"});function userObject(body){if(!isRecord(body)||typeof body["user_id"]!==
147
- "string"){throw new ApiResponseError("\u30E6\u30FC\u30B6\u30FC\u8A73\u7D30\u306E\u5FDC\u7B54\u306B user_id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}const rest={...body};delete rest["result"];return rest}var TEXT_FIELDS=[{flag:"--name",key:"user_name",label:"\u6C0F\u540D",maxChars:255,summary:"\u6C0F\u540D",placeholder:"<\u6C0F\u540D>"},{flag:"--kana",key:"user_name_kana",label:"\u30D5\u30EA\u30AC\u30CA",maxChars:255,
148
- summary:"\u6C0F\u540D\u306E\u30D5\u30EA\u30AC\u30CA",placeholder:"<\u30D5\u30EA\u30AC\u30CA>"},{flag:"--email",key:"login_id",label:"\u30ED\u30B0\u30A4\u30F3ID",maxChars:255,summary:"\u30ED\u30B0\u30A4\u30F3ID\uFF08\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\uFF09",placeholder:"<\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9>"},{flag:"--employee-code",key:"employee_code",label:"\u793E\u54E1\u756A\u53F7",maxChars:50,summary:"\u793E\u54E1\u756A\u53F7",placeholder:"<\u793E\u54E1\u756A\u53F7>"}];var DISPLAY_FIELDS=[
149
- {flag:"--display",key:"display_flg",summary:"\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u30FB\u9078\u629E\u80A2\u306B\u8868\u793A\u3059\u308B\u304B\uFF08true / false\uFF09"},{flag:"--memberlist",key:"memberlist_flg",summary:"\u30E1\u30F3\u30D0\u30FC\u4E00\u89A7\u306B\u8868\u793A\u3059\u308B\u304B\uFF08true / false\uFF09"},{flag:"--org-chart",key:"org_chart_flg",summary:"\u7D44\u7E54\u56F3\u306B\u8868\u793A\u3059\u308B\u304B\uFF08true / false\uFF09"},{flag:"--dashboard",key:"dashboard_flg",summary:"\u30C0\u30C3\u30B7\
150
- \u30E5\u30DC\u30FC\u30C9\u306B\u8868\u793A\u3059\u308B\u304B\uFF08true / false\uFF09"}];var ROLE_TO_TYPE={user:"0",admin:"1"};var AUTH_TYPES=["all","password","oauth","disabled"];var PASSWORD_MIN_CHARS=8;var PASSWORD_FILE_MAX_BYTES=4096;var PASSWORD_FILE_FLAG={name:"--password-file",summary:"\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u66F8\u3044\u305F\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9|->"};var ROLE_FLAG={name:"--role",summary:"\
151
- \u7A2E\u5225\uFF08admin: \u7BA1\u7406\u8005 / user: \u4E00\u822C\uFF09",takesValue:true,placeholder:"<admin|user>"};var HIRE_DATE_FLAG={name:"--hire-date",summary:"\u5165\u793E\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var AUTH_TYPE_FLAG={name:"--auth-type",summary:"\u8A8D\u8A3C\u30BF\u30A4\u30D7\uFF08all / password / oauth / disabled\uFF1D\u5931\u52B9\u30FB\u30ED\u30B0\u30A4\u30F3\u4E0D\u53EF\uFF09",takesValue:true,placeholder:"<\u7A2E\u985E>"};var FIELD_FLAGS=[...TEXT_FIELDS.
152
- map(f=>({name:f.flag,summary:f.summary,takesValue:true,placeholder:f.placeholder})),ROLE_FLAG,HIRE_DATE_FLAG,...DISPLAY_FIELDS.map(f=>({name:f.flag,summary:f.summary,takesValue:true,placeholder:"<true|false>"})),PASSWORD_FILE_FLAG];var PASSWORD_HELP="\u30D1\u30B9\u30EF\u30FC\u30C9\u306F\u30B3\u30DE\u30F3\u30C9\u884C\u306B\u7F6E\u3051\u307E\u305B\u3093\uFF08\u30B7\u30A7\u30EB\u306E\u5C65\u6B74\u3068\u30D7\u30ED\u30BB\u30B9\u4E00\u89A7\u306B\u6B8B\u308B\u305F\u3081\uFF09\u3002\n--password-file <\u30D1\u30B9> \u3067\u6E21\u3059\u304B\u3001--password-file - \u3067\u6A19\u6E96\u5165\u529B\u304B\u3089\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\u672B\u5C3E\u306E\u6539\u884C1\u3064\u306F\u53D6\u308A\u9664\u304D\u307E\u3059\uFF08echo \u3067\u66F8\u3044\u305F\u30D5\u30A1\u30A4\u30EB\u3067\u3082\u305D\u306E\u307E\u307E\u4F7F\u3048\u307E\u3059\uFF09\u30028\u6587\u5B57\u4EE5\u4E0A\u3067\u3059\u3002";
153
- var PASSWORD_HINT="\u30D1\u30B9\u30EF\u30FC\u30C9\u306F --password-file \u306B\u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\u3092\u6E21\u3059\u304B\u3001\u5024\u306B\u300C-\u300D\u3092\u6E21\u3057\u3066\u6A19\u6E96\u5165\u529B\u304B\u3089\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\uFF088\u6587\u5B57\u4EE5\u4E0A\uFF09\u3002";var DISPLAY_HELP="--display / --memberlist / --org-chart / --dashboard \u306F true \u304B false \u3067\u3059\uFF08\u753B\u9762\u306E\u300C\u8868\u793A\u8A2D\u5B9A\u300D\uFF09\u3002";
154
- function booleanFlag(input,flag){const raw=input.flags.get(flag);return raw===void 0?void 0:booleanText(flag,raw)}function roleType(input){const raw=input.flags.get("--role");if(raw===void 0)return void 0;const type=ROLE_TO_TYPE[raw.trim().toLowerCase()];if(type===void 0){throw new UsageError(`--role \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,"\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F admin\uFF08\u7BA1\u7406\u8005\uFF09/ user\uFF08\u4E00\u822C\uFF09\u3067\u3059\u3002")}
155
- return type}function authType(input){const raw=input.flags.get("--auth-type");if(raw===void 0)return void 0;const value=raw.trim().toLowerCase();if(!AUTH_TYPES.includes(value)){throw new UsageError(`--auth-type \u306B\u300C${raw}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${AUTH_TYPES.join(" / ")} \u3067\u3059\uFF08disabled \u3067\u5931\u52B9\uFF09\u3002`)}return value}async function readPassword(input,usage){const file=input.flags.get(PASSWORD_FILE_FLAG.
156
- name);if(file===void 0)return void 0;let text;if(file==="-"){if(process.stdin.isTTY===true){throw new UsageError("--password-file - \u306F\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u307F\u307E\u3059\u304C\u3001\u7AEF\u672B\u304C\u7E4B\u304C\u3063\u3066\u3044\u307E\u3059","\u30D1\u30A4\u30D7\u304B\u30EA\u30C0\u30A4\u30EC\u30AF\u30C8\u3067\u6A19\u6E96\u5165\u529B\u306B\u6E21\u3059\u304B\u3001--password-file \u306B\u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\u3092\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
157
- const chunks=[];let size=0;for await(const chunk of process.stdin){const buffer=Buffer.from(chunk);size+=buffer.length;if(size>PASSWORD_FILE_MAX_BYTES){throw new UsageError(`\u6A19\u6E96\u5165\u529B\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${PASSWORD_FILE_MAX_BYTES} \u30D0\u30A4\u30C8\u8D85\uFF09`,usage)}chunks.push(buffer)}text=Buffer.concat(chunks).toString("utf8")}else{try{const stat=fs2.statSync(file);if(!stat.isFile())throw new UsageError(`--passwor\
158
- d-file \u306B\u901A\u5E38\u306E\u30D5\u30A1\u30A4\u30EB\u4EE5\u5916\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: ${file}`,usage);if(stat.size>PASSWORD_FILE_MAX_BYTES){throw new UsageError(`--password-file \u306E\u30D5\u30A1\u30A4\u30EB\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${stat.size} \u30D0\u30A4\u30C8\uFF09: ${file}`,usage)}text=fs2.readFileSync(file,"utf8")}catch(err){if(err instanceof UsageError)throw err;const reason=err.code??err.message;throw new UsageError(`--password-file \
159
- \u306E\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093: ${file}\uFF08${reason}\uFF09`,usage)}}const password=text.replace(/^\uFEFF/,"").replace(/\r?\n$/,"");if([...password].length<PASSWORD_MIN_CHARS){throw new UsageError(`\u30D1\u30B9\u30EF\u30FC\u30C9\u306F ${PASSWORD_MIN_CHARS} \u6587\u5B57\u4EE5\u4E0A\u306B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${[...password].length} \u6587\u5B57\uFF09`,usage)}return password}function userFields(input){const body={};for(const field of TEXT_FIELDS){
160
- const value=boundedText(input,field.flag,{maxChars:field.maxChars,label:field.label});if(value!==void 0)body[field.key]=value}const type=roleType(input);if(type!==void 0)body["type"]=type;const hireDate=isoDate(input,HIRE_DATE_FLAG.name);if(hireDate!==void 0)body["hire_date"]=hireDate;for(const field of DISPLAY_FIELDS){const value=booleanFlag(input,field.flag);if(value!==void 0)body[field.key]=value}return body}function writeAck(body,label2){if(!isRecord(body)||body["result"]!==true){throw new ApiResponseError(
161
- `${label2}\u306E\u5FDC\u7B54\u304C\u60F3\u5B9A\u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const rest={...body};delete rest["result"];return rest}function licenseNotes(body){const warnings=isRecord(body)?body["license_warnings"]:void 0;if(!Array.isArray(warnings)||warnings.length===0)return[];const texts=warnings.map(warning=>isRecord(warning)?String(warning["message"]??warning["feature_label"]??warning["\
162
- feature"]??""):String(warning));return[`\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u7A7A\u304D\u304C\u8DB3\u308A\u306A\u3044\u305F\u3081\u3001\u4E00\u90E8\u306E\u6A5F\u80FD\u6A29\u9650\u306F\u4ED8\u4E0E\u3055\u308C\u3066\u3044\u307E\u305B\u3093: ${texts.join(" / ")}`]}var createOperation2={name:"create",summary:"\u30E6\u30FC\u30B6\u30FC\u3092\u4F5C\u6210\u3059\u308B\uFF08\u5165\u793E\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp user create --name <\u6C0F\u540D> --email <\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9> --password-\
163
- file <\u30D1\u30B9|-> [--role admin|user] [--kana <\u30D5\u30EA\u30AC\u30CA>] [--hire-date <YYYY-MM-DD>] [--employee-code <\u793E\u54E1\u756A\u53F7>] [--display true|false] \u2026",description:`--name / --email / --password-file \u304C\u5FC5\u9808\u3067\u3059\u3002--role \u3092\u7701\u304F\u3068\u4E00\u822C\u30E6\u30FC\u30B6\u30FC\uFF08user\uFF09\u3067\u4F5C\u6210\u3057\u307E\u3059\u3002
164
- \u8868\u793A\u30D5\u30E9\u30B0\u3092\u7701\u304F\u3068\u3001\u30B5\u30FC\u30D0\u306E\u65E2\u5B9A\uFF08\u3059\u3079\u3066 true\uFF1D\u8868\u793A\u3059\u308B\uFF09\u3067\u4F5C\u6210\u3057\u307E\u3059\u3002
165
- \u6A5F\u80FD\u6A29\u9650\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u65E2\u5B9A\u3067\u4ED8\u4E0E\u3055\u308C\u307E\u3059\uFF08\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u7A7A\u304D\u304C\u8DB3\u308A\u306A\u3044\u6A5F\u80FD\u306F\u4ED8\u4E0E\u3055\u308C\u305A\u3001stderr \u306B\u51FA\u307E\u3059\uFF09\u3002
166
-
167
- ${PASSWORD_HELP}
168
-
169
- ${DISPLAY_HELP}
170
-
171
- \u4F5C\u6210\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u306E ID \u304C\u8FD4\u308A\u307E\u3059\u3002\u7D9A\u3051\u3066 twp user get <ID> \u3067\u5185\u5BB9\u3092\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002`,forbidden:"\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp user create \u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059",flags:FIELD_FLAGS,async prepare(input){if(input.args.length>0){throw new UsageError(`create \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.
172
- args.join(" ")}`,"twp user create help")}const body=userFields(input);for(const[flag,key]of[["--name","user_name"],["--email","login_id"]]){if(body[key]===void 0)throw new UsageError(`${flag} \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,"twp user create help")}if(!input.flags.has(PASSWORD_FILE_FLAG.name)){throw new UsageError("--password-file \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",PASSWORD_HINT)}const password=await readPassword(input,"twp user create help");return withResolved(
173
- input,{password})},plan(input){const body=userFields(input);if(body["type"]===void 0)body["type"]=ROLE_TO_TYPE["user"];return{method:"POST",path:"/api/v2/admin/users",body:{...body,password:requireResolved(input,"password")}}},plannedNotes:input=>input.flags.has("--role")?[]:["--role \u672A\u6307\u5B9A\u306E\u305F\u3081\u3001\u4E00\u822C\u30E6\u30FC\u30B6\u30FC\uFF08user\uFF09\u3067\u4F5C\u6210\u3057\u307E\u3059\u3002"],summarize:body=>pick(writeAck(body,"\u30E6\u30FC\u30B6\u30FC\u4F5C\u6210"),[
174
- "user_id","message"]),raw:body=>writeAck(body,"\u30E6\u30FC\u30B6\u30FC\u4F5C\u6210"),notes:body=>licenseNotes(body)};var UPDATE_FLAGS=[...FIELD_FLAGS,AUTH_TYPE_FLAG,USER_REF_FLAG];var updateOperation2={name:"update",summary:"\u30E6\u30FC\u30B6\u30FC\u3092\u66F4\u65B0\u3059\u308B\uFF08\u5931\u52B9\u3092\u542B\u3080\u30FB\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",usage:"twp user update <\u30E6\u30FC\u30B6\u30FC> [--auth-type all|password|oauth|disabled] [--display true|false] [--memberlist true|false] [--org-\
175
- chart true|false] [--dashboard true|false] [--name <\u6C0F\u540D>] \u2026",description:`\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u5909\u66F4\u3057\u307E\u3059\uFF08\u6307\u5B9A\u3057\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002
176
- \u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u3082\u6307\u5B9A\u3057\u306A\u3044\u3068\u30A8\u30E9\u30FC\u306B\u306A\u308A\u307E\u3059\u3002
177
-
178
- \u9000\u793E\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u306F\u3001\u8A8D\u8A3C\u30BF\u30A4\u30D7\u3092 disabled\uFF08\u753B\u9762\u306E\u300C\u7121\u52B9\uFF08\u30ED\u30B0\u30A4\u30F3\u4E0D\u53EF\uFF09\u300D\uFF09\u306B\u3057\u3066\u5931\u52B9\u3055\u305B\u307E\u3059\u3002
179
- \u5931\u52B9\u3055\u305B\u308B\u3068\u3001\u305D\u306E\u30E6\u30FC\u30B6\u30FC\u306F\u65B0\u3057\u304F\u30ED\u30B0\u30A4\u30F3\u3067\u304D\u305A\u3001\u767A\u884C\u6E08\u307F\u306E\u30C8\u30FC\u30AF\u30F3\u3068 API \u30AD\u30FC\u3082\u30B5\u30FC\u30D0\u304C\u5931\u52B9\u3055\u305B\u307E\u3059\u3002
180
- \u4E00\u89A7\u3084\u7D44\u7E54\u56F3\u304B\u3089\u5916\u3059\u306A\u3089\u3001\u8868\u793A\u30D5\u30E9\u30B0\u3082 false \u306B\u3057\u307E\u3059:
181
- twp user update <\u30E6\u30FC\u30B6\u30FC> --auth-type disabled --display false --memberlist false --org-chart false --dashboard false
182
- \u53D6\u308A\u6D88\u3059\uFF08\u518D\u5165\u793E\u30FB\u8AA4\u64CD\u4F5C\uFF09\u3068\u304D\u306F\u540C\u3058\u30B3\u30DE\u30F3\u30C9\u3067\u623B\u3057\u307E\u3059\uFF08\u8868\u793A\u30D5\u30E9\u30B0\u3092 true\u3001--auth-type \u306F\u5931\u52B9\u524D\u306E\u5024\uFF09\u3002
183
- \u5931\u52B9\u524D\u306E\u8A8D\u8A3C\u30BF\u30A4\u30D7\u306F\u8A18\u9332\u3055\u308C\u306A\u3044\u306E\u3067\u3001\u5931\u52B9\u3055\u305B\u308B\u524D\u306B twp user get <\u30E6\u30FC\u30B6\u30FC> \u306E auth_type \u3092\u63A7\u3048\u3066\u304F\u3060\u3055\u3044
184
- \uFF08all \u306F\u30D1\u30B9\u30EF\u30FC\u30C9\u3068 OAuth \u306E\u4E21\u65B9\u3092\u8A31\u3057\u307E\u3059\u3002SSO \u3060\u3051\u306E\u30E6\u30FC\u30B6\u30FC\u3092 all \u306B\u623B\u3059\u3068\u30D1\u30B9\u30EF\u30FC\u30C9\u3067\u3082\u30ED\u30B0\u30A4\u30F3\u3067\u304D\u307E\u3059\uFF09\u3002
185
-
186
- ${USER_REF_HELP}
187
- \u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3059\u3068\u3001\u305D\u306E\u30E6\u30FC\u30B6\u30FC\u306F\u793E\u54E1\u756A\u53F7\u3067\u306F\u6307\u5B9A\u3067\u304D\u306A\u304F\u306A\u308A\u307E\u3059\uFF08\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u304B ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002
188
- \u4F5C\u6210\u30FB\u66F4\u65B0\u306E\u76F4\u5F8C\u306B\u793E\u54E1\u756A\u53F7\u3067\u6307\u5B9A\u3059\u308B\u3068\u304D\u306F --refresh \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\uFF08\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u306F10\u5206\u30AD\u30E3\u30C3\u30B7\u30E5\u3057\u307E\u3059\uFF09\u3002
189
-
190
- ${PASSWORD_HELP}
191
-
192
- ${DISPLAY_HELP}`,forbidden:"\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp user update \u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059",flags:UPDATE_FLAGS,async prepare(input,ctx){const changed=[...FIELD_FLAGS,AUTH_TYPE_FLAG].some(flag=>input.flags.has(flag.name));if(!changed){throw new UsageError("\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",`\u6307\u5B9A\u3067\u304D\u308B\u9805\u76EE: ${[
193
- ...FIELD_FLAGS,AUTH_TYPE_FLAG].map(flag=>flag.name).join("\u3001")}`)}userFields(input);authType(input);const password=await readPassword(input,"twp user update help");const resolved=await prepareUser(input,ctx,"twp user update help");return password===void 0?resolved:withResolved(resolved,{password})},plan(input){const userId=requireResolved(input,"userId");const body=userFields(input);const auth=authType(input);if(auth!==void 0)body["auth_type"]=auth;const password=input.resolved?.["password"];
194
- if(password!==void 0)body["password"]=password;return{method:"PUT",path:`/api/v2/admin/users/${userPath(input)}`,body:{user_id:userId,update_fields:Object.keys(body),...body}}},plannedNotes:input=>{if(authType(input)!=="disabled")return[];const ref=(input.args[0]??input.flags.get("--user")??"").trim().toLowerCase();const notes=["\u3053\u306E\u30E6\u30FC\u30B6\u30FC\u3092\u5931\u52B9\u3055\u305B\u307E\u3059\uFF08\u30ED\u30B0\u30A4\u30F3\u4E0D\u53EF\u3002\u767A\u884C\u6E08\u307F\u306E\u30C8\u30FC\u30AF\u30F3\u30FBAPI \u30AD\u30FC\u3082\u30B5\u30FC\u30D0\u304C\u5931\u52B9\u3055\u305B\u307E\u3059\uFF09\u3002"];
195
- if(ref==="me")notes.push("\u5BFE\u8C61\u306F\u81EA\u5206\u81EA\u8EAB\u3067\u3059\u3002\u5B9F\u884C\u3059\u308B\u3068\u3001\u3053\u306E\u3042\u3068 twp \u306E\u64CD\u4F5C\u3082\u30ED\u30B0\u30A4\u30F3\u3082\u3067\u304D\u306A\u304F\u306A\u308A\u307E\u3059\u3002");return notes},summarize:body=>pick(writeAck(body,"\u30E6\u30FC\u30B6\u30FC\u66F4\u65B0"),["message"]),raw:body=>writeAck(body,"\u30E6\u30FC\u30B6\u30FC\u66F4\u65B0"),notes:body=>licenseNotes(body)};var userDomain={name:"user",summary:"\u30C6\u30CA\u30F3\
196
- \u30C8\u306E\u30E6\u30FC\u30B6\u30FC\uFF08\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u5931\u52B9\u30FB\u62DB\u5F85\uFF09\u3068\u6240\u5C5E\uFF08\u53C2\u7167\u30FB\u4ED8\u3051\u66FF\u3048\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u7D42\u4E86\u30FB\u524A\u9664\uFF09",operations:[{name:"list",summary:"\u30E6\u30FC\u30B6\u30FC\u3092\u4E00\u89A7\u3059\u308B\uFF08\u90E8\u7F72\u30FB\u5F79\u8077\u30FB\u96C7\u7528\u533A\u5206\u30FB\u30AD\u30FC\u30EF\u30FC\u30C9\u3067\u7D5E\u308A\u8FBC\u3081\u308B\uFF09",usage:"\
197
- twp user list [--department <\u90E8\u7F72>] [--position <\u5F79\u8077>] [--employment employee|partner] [--keyword <\u8A9E>] [--include-hidden] [--all] [--limit <\u4EF6\u6570>] [--cursor <\u30AB\u30FC\u30BD\u30EB>]",description:"--department / --position \u306F\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID \u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4E3B\u6240\u5C5E\u3067\u7D5E\u308A\u8FBC\u307F\u307E\u3059\uFF09\u3002\n--employment \u306F employee\uFF08\u793E\u54E1\uFF09\u304B partner\uFF08\u30D1\u30FC\u30C8\u30CA\u30FC\uFF09\u3067\u3059\u3002\n--include-hidden \u306F\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u3082\u542B\u3081\u307E\u3059\uFF08\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u3068\u304D\u3060\u3051\u52B9\u304D\u307E\u3059\uFF09\u3002\n\u5931\u52B9\uFF08\u30ED\u30B0\u30A4\u30F3\u4E0D\u53EF\uFF09\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u3082\u4E00\u89A7\u306B\u542B\u307E\u308C\u307E\u3059\u3002\u5931\u52B9\u304B\u3069\u3046\u304B\u306F twp user get \u306E auth_type \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002\n\n--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002\n--o\
198
- utput table / text / tsv \u306F\u8981\u7D04\u5217\uFF08user_id / user_name / email / employee_code / department_name / position_name / role / display_flg\uFF09\u3067\u3059\u3002\n\n"+LIST_PAGING_HELP,flags:[...LIST_FLAGS,{name:"--department",summary:"\u4E3B\u6240\u5C5E\u306E\u90E8\u7F72\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",takesValue:true,placeholder:"<\u90E8\u7F72>"},{name:"--position",summary:"\u4E3B\u6240\u5C5E\u306E\u5F79\u8077\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",
199
- takesValue:true,placeholder:"<\u5F79\u8077>"},{name:"--employment",summary:"\u96C7\u7528\u533A\u5206\u3067\u7D5E\u308A\u8FBC\u3080\uFF08employee / partner\uFF09",takesValue:true,placeholder:"<\u533A\u5206>"},{name:"--keyword",summary:"\u6C0F\u540D\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u306E\u90E8\u5206\u4E00\u81F4\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u8A9E>"},{name:"--include-hidden",summary:"\u8868\u793A\u30D5\u30E9\u30B0\u3092\u5916\u3057\u305F\u30E6\u30FC\u30B6\u30FC\u3082\u542B\u3081\u308B",
200
- takesValue:false}],paging:listPaging,async prepare(input,ctx){if(input.args.length>0){throw new UsageError(`list \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"twp user list help")}const employment=nonEmpty(input.flags,"--employment");if(employment!==void 0&&!EMPLOYMENT_TYPES.includes(employment)){throw new UsageError(`--employment \u306B\u300C${employment}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${EMPLOYMENT_TYPES.
201
- join(" / ")} \u3067\u3059`)}const resolved={};const department=nonEmpty(input.flags,"--department");if(department!==void 0)resolved["departmentId"]=(await ctx.resolver.department(department)).id;const position=nonEmpty(input.flags,"--position");if(position!==void 0)resolved["positionId"]=(await ctx.resolver.position(position)).id;return withResolved(input,resolved)},plan(input){return{method:"GET",path:"/api/v2/admin/users/list",query:{limit:positiveInteger(input.flags,"--limit"),cursor:nonEmpty(
202
- input.flags,"--cursor"),keyword:nonEmpty(input.flags,"--keyword"),department_id:input.resolved?.["departmentId"],position_id:input.resolved?.["positionId"],employment_type:nonEmpty(input.flags,"--employment"),include_hidden:input.flags.has("--include-hidden")?"true":void 0}}},summarize:body=>listPaging.items(body).map(row=>pick(row,LIST_COLUMNS2)),raw:body=>listPaging.items(body)},{name:"get",summary:"\u30E6\u30FC\u30B6\u30FC1\u4EBA\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u307F\uFF09",
203
- usage:"twp user get <\u30E6\u30FC\u30B6\u30FC>",description:USER_REF_HELP+"\n\nauth_type \u304C disabled \u306E\u30E6\u30FC\u30B6\u30FC\u306F\u5931\u52B9\uFF08\u30ED\u30B0\u30A4\u30F3\u4E0D\u53EF\uFF09\u3057\u3066\u3044\u307E\u3059\u3002\n\u8981\u7D04\uFF08table / text / tsv\uFF09\u306B\u306F\u500B\u4EBA\u9023\u7D61\u5148\u3092\u51FA\u3057\u307E\u305B\u3093\u3002--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002",forbidden:"\u7D44\u7E54\u7BA1\u7406\u8005\u306E\u6A29\
204
- \u9650\u304C\u5FC5\u8981\u3067\u3059\u3002twp user get \u306F\u7D44\u7E54\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059",flags:[USER_REF_FLAG],prepare:(input,ctx)=>prepareUser(input,ctx,"twp user get help"),plan:input=>({method:"GET",path:`/api/v2/admin/users/${userPath(input)}`}),summarize:body=>pick(userObject(body),GET_COLUMNS),raw:body=>userObject(body)},createOperation2,updateOperation2],subresources:[userAssignmentResource,userInviteResource]};export{userDomain};