@tocca-systems/twp-cli 0.87.0 → 0.89.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.public.md +22 -0
- package/README.md +54 -3
- package/dist/{agent-SFDNPV24.js → agent-76ZH3E67.js} +1 -1
- package/dist/{agent-loop-KNAIM7MN.js → agent-loop-XPV5PNE5.js} +1 -1
- package/dist/ai-dispatch-FTZKQHEL.js +80 -0
- package/dist/analysis-CUXB6NQF.js +5 -0
- package/dist/{announcement-XAIC4CNE.js → announcement-4YNKKG5V.js} +1 -1
- package/dist/{api-command-2PNCTAWY.js → api-command-QS6VCLTX.js} +3 -3
- package/dist/{app-ALJYSYKI.js → app-GWNEJ24L.js} +4 -4
- package/dist/{attendance-correct-CJ3FJSVI.js → attendance-correct-KOTYM2DS.js} +2 -2
- package/dist/{attendance-lists-RRGFCDZR.js → attendance-lists-QUSNJQV2.js} +2 -2
- package/dist/{backlog-L5VRYZGM.js → backlog-CNTVVRZ6.js} +22 -20
- package/dist/budget-X3OMSO3F.js +4 -0
- package/dist/capacity-list-command-LKOVLAY4.js +24 -0
- package/dist/{capacity-report-command-BUCAQ2P4.js → capacity-report-command-CENWVTKK.js} +1 -1
- package/dist/{chunk-LGJPXLMC.js → chunk-2L2EGIWR.js} +1 -1
- package/dist/{chunk-2AVQILQQ.js → chunk-2T23XGJF.js} +2 -2
- package/dist/chunk-34TCAKT5.js +88 -0
- package/dist/{chunk-DR6BUZXT.js → chunk-3D734ED2.js} +1 -1
- package/dist/{chunk-QGRBZ2C2.js → chunk-3OCV6SOR.js} +1 -1
- package/dist/chunk-5PBNMFNO.js +49 -0
- package/dist/{chunk-NMYHFVDR.js → chunk-6FGQNFUV.js} +1 -1
- package/dist/{chunk-IIK77LSC.js → chunk-6M5NUVJJ.js} +1 -1
- package/dist/{chunk-FJEGS55N.js → chunk-733XATRJ.js} +1 -1
- package/dist/{chunk-FBVSHQST.js → chunk-7KD24ABA.js} +1 -1
- package/dist/{chunk-QUMDKN3U.js → chunk-7KD5RWFY.js} +1 -1
- package/dist/{chunk-WWDNWWPJ.js → chunk-DADDMUI5.js} +1 -1
- package/dist/chunk-DG7JPFYK.js +12 -0
- package/dist/{chunk-AV7L2IEN.js → chunk-E3UET43F.js} +1 -1
- package/dist/{chunk-E4FUHYC6.js → chunk-EGFVST6P.js} +1 -1
- package/dist/{chunk-VERYHAWV.js → chunk-EOXTDZTA.js} +4 -4
- package/dist/{chunk-RMU72S3D.js → chunk-FM3RHTEQ.js} +1 -1
- package/dist/{chunk-Y24FMUYU.js → chunk-INS77QHY.js} +4 -4
- package/dist/{chunk-SJDU7HP6.js → chunk-JA7DLMKJ.js} +4 -4
- package/dist/{chunk-MLRBDF44.js → chunk-JF2GCXNQ.js} +1 -1
- package/dist/{chunk-WDQMYRPE.js → chunk-KW37N7IO.js} +1 -1
- package/dist/{chunk-RTYJWZRA.js → chunk-LS7DFMG6.js} +1 -1
- package/dist/{chunk-OW23MAVO.js → chunk-M37IYSEG.js} +1 -1
- package/dist/{chunk-H4CDX4TX.js → chunk-MMVXE2CJ.js} +4 -3
- package/dist/{chunk-M7UEPYUQ.js → chunk-NLDVB4PZ.js} +1 -1
- package/dist/{chunk-XJ5EKWQY.js → chunk-OP5WINVG.js} +1 -1
- package/dist/{chunk-4FCPLEZN.js → chunk-OVV2PTZF.js} +1 -1
- package/dist/{chunk-Y7QW7MHQ.js → chunk-PWKWXZDZ.js} +1 -1
- package/dist/{chunk-5LFUD7K3.js → chunk-Q5NZXJNI.js} +28 -30
- package/dist/chunk-RACLI3FA.js +8 -0
- package/dist/{chunk-VRJF6JLR.js → chunk-RIEBWMKF.js} +1 -1
- package/dist/{chunk-GO4KFSBE.js → chunk-TVISFCQN.js} +5 -4
- package/dist/chunk-UVCJXHWN.js +5 -0
- package/dist/chunk-UZUV5FYG.js +16 -0
- package/dist/{chunk-4VBSSXGA.js → chunk-WGAEYNZQ.js} +1 -1
- package/dist/{chunk-KPCVSILY.js → chunk-WJJW7VX7.js} +1 -1
- package/dist/{chunk-MUIN7OUW.js → chunk-Y7GYWZLW.js} +3 -5
- package/dist/cli.js +57 -14
- package/dist/{commands-GQBRPBFW.js → commands-3B5GGPY7.js} +69 -68
- package/dist/{commands-KKEZJCLF.js → commands-RBN5WGWJ.js} +2 -2
- package/dist/{company-TF76Z3U5.js → company-3227PJ3Q.js} +2 -2
- package/dist/{completion-C6ZQCDT2.js → completion-32FJZVQR.js} +1 -1
- package/dist/{configure-3JID6MQ5.js → configure-DONZ3M6N.js} +3 -3
- package/dist/{contract-CFLPFV4I.js → contract-H5QWWRB3.js} +2 -2
- package/dist/{department-T22PBYMP.js → department-NIUPNDHH.js} +1 -1
- package/dist/{deposit-PLQ7WHOX.js → deposit-HUFSDRRK.js} +1 -1
- package/dist/{dispatch-HHWTJ3P4.js → dispatch-GSBMRWQ4.js} +1 -1
- package/dist/{domain-knowledge-YFY5H6UB.js → domain-knowledge-M4Y7744J.js} +1 -1
- package/dist/{estimate-DYPQ27KU.js → estimate-BIGMD2NU.js} +3 -3
- package/dist/evaluation-L4L23IY2.js +122 -0
- package/dist/{expense-EA77QGLW.js → expense-JKENK2W2.js} +1 -1
- package/dist/{fiscal-year-YSFASZEW.js → fiscal-year-G45WHCZC.js} +1 -1
- package/dist/{holiday-E5WEZU6J.js → holiday-EW62DVPW.js} +3 -3
- package/dist/{inquiry-LEYPOQWZ.js → inquiry-QGUOVO77.js} +1 -1
- package/dist/{invoice-CAYBEW65.js → invoice-ZWUU3FSZ.js} +2 -2
- package/dist/{job-title-RSDAHHVJ.js → job-title-CXCW7BAP.js} +1 -1
- package/dist/{knowledge-GYLFDEXS.js → knowledge-PBFDM5WJ.js} +2 -2
- package/dist/{leave-IG7SWPPB.js → leave-CXTBZFIC.js} +3 -3
- package/dist/{license-I2SL53UI.js → license-7WE7UPVX.js} +1 -1
- package/dist/{logout-guard-FCCJSF5V.js → logout-guard-PEETWT4A.js} +1 -1
- package/dist/{media-UGPQN4GI.js → media-FM53QOC2.js} +3 -3
- package/dist/{notification-IEANIYPD.js → notification-Z2VMBWO3.js} +1 -1
- package/dist/{onedrive-KWVOUGG6.js → onedrive-Z43D26SJ.js} +1 -1
- package/dist/{oneshot-3N2W247J.js → oneshot-YDTQT2T3.js} +1 -1
- package/dist/{outlook-FQYNTXOB.js → outlook-ILJN562M.js} +1 -1
- package/dist/{plan-submit-F5VH3T37.js → plan-submit-WP25FEYE.js} +1 -1
- package/dist/{position-CRVEGXPL.js → position-CLQVRA7Y.js} +1 -1
- package/dist/project-OTJCVFOW.js +4 -0
- package/dist/{prospect-A2YNQ4DE.js → prospect-3EHNELGI.js} +2 -2
- package/dist/{purchase-F3HUNCJE.js → purchase-MMUXAEER.js} +3 -3
- package/dist/{receivable-K4UKS46G.js → receivable-E52RNQTW.js} +1 -1
- package/dist/{redmine-MC3RIB7W.js → redmine-CKXEOH7Q.js} +1 -1
- package/dist/{registry-AQXCC42T.js → registry-A7OXOQPI.js} +1 -1
- package/dist/{report-HUP2TXTK.js → report-UTVGNCLP.js} +1 -1
- package/dist/{run-E3TOMCP7.js → run-VNV2AVDI.js} +2 -2
- package/dist/{sales-ai-review-5BJ3HNP5.js → sales-ai-review-XFMAKAOH.js} +2 -2
- package/dist/{sales-master-DUTB2DUX.js → sales-master-I6X4WFV3.js} +2 -2
- package/dist/{sales-numbering-WTEFGPOV.js → sales-numbering-P3JG4UPD.js} +1 -1
- package/dist/{schedule-command-ZOE3NYAA.js → schedule-command-4TFAFIAO.js} +1 -1
- package/dist/{search-JLFW7JSD.js → search-KFMYAVLM.js} +7 -6
- package/dist/{segment-ZKJYMOKV.js → segment-LCZFL6QE.js} +1 -1
- package/dist/{server-settings-GFWQ5ERV.js → server-settings-RNJ6RVTE.js} +1 -1
- package/dist/{server-skills-FVYYZ54O.js → server-skills-5JESWOTH.js} +1 -1
- package/dist/{setup-DW2H7BDN.js → setup-ICJPTYKW.js} +1 -1
- package/dist/{skill-5NCDQFDN.js → skill-GK2WADKA.js} +2 -2
- package/dist/{skill-check-JBRUAUID.js → skill-check-VNUNX6IO.js} +2 -2
- package/dist/{staffing-board-NWZLXYXJ.js → staffing-board-5YHU7V6Z.js} +3 -3
- package/dist/{status-command-PEL5GWIH.js → status-command-2FL2SVFR.js} +1 -1
- package/dist/{supplier-payment-QKWONHRH.js → supplier-payment-V4KRH7VA.js} +2 -2
- package/dist/{support-MLNODDQT.js → support-FU5M5LM3.js} +2 -2
- package/dist/{task-JGCMQZRK.js → task-PFSBL4A3.js} +4 -4
- package/dist/{teams-X5WBB5YH.js → teams-43CJTQHL.js} +1 -1
- package/dist/{user-FA2FIC47.js → user-5KHSDIVN.js} +4 -4
- package/dist/{user-contract-type-RELV4BV7.js → user-contract-type-4JXN7B7J.js} +1 -1
- package/dist/{worker-agent-IPOLSJEA.js → worker-agent-4TVU6AES.js} +1 -1
- package/dist/{workflow-VJL4FV3U.js → workflow-U5YJ2I6L.js} +1 -1
- package/package.json +1 -1
- package/dist/ai-dispatch-QKGK4P7P.js +0 -78
- package/dist/analysis-DPQN4BFG.js +0 -5
- package/dist/budget-T5YJTALN.js +0 -4
- package/dist/chunk-IVFSEXD3.js +0 -48
- package/dist/chunk-L37NS5L2.js +0 -8
- package/dist/chunk-MZXLMVQM.js +0 -11
- package/dist/chunk-O52RKZCC.js +0 -16
- package/dist/evaluation-NG4DIIJM.js +0 -61
- package/dist/project-JICUCXI5.js +0 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-IWYJSQ5I.js";import"./chunk-W4NLJ2YK.js";import{BACKLOG_BASE_PATH,BACKLOG_PROJECT_SCOPE_LABEL,BACKLOG_SCOPE_LABEL,backlogSpacePath,isExactNumericId,resolveNamed}from"./chunk-
|
|
3
|
+
import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-IWYJSQ5I.js";import"./chunk-W4NLJ2YK.js";import{BACKLOG_BASE_PATH,BACKLOG_PROJECT_SCOPE_LABEL,BACKLOG_SCOPE_LABEL,backlogSpacePath,isExactNumericId,resolveNamed}from"./chunk-2T23XGJF.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-IXT2X5BZ.js";import{LIST_FLAGS}from"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";
|
|
4
4
|
import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var DEFAULT_COUNT=20;var MAX_COUNT=100;var NUMERIC=/^[0-9]+$/;var ISSUE_REF=/^(?:[A-Za-z0-9_]+-[0-9]+|[0-9]+)$/;var DATE=/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/;var SPACE_COLUMNS=["id","space_url"];var PROJECT_COLUMNS=["id","projectKey","name"];var ISSUE_LIST_COLUMNS=["issueKey","summary","status","assignee","priority","dueDate","updated","descriptionTruncated"];var ISSUE_GET_COLUMNS=["id","issueKey","projectId","summary","description","descriptionTruncated","status","issueType","priority","assignee","cr\
|
|
5
5
|
eatedUser","parentIssueId","startDate","dueDate","estimatedHours","actualHours","created","updated"];var ISSUE_JSON_SHAPE_HELP='--output json \u306E\u5F62\uFF08Backlog API \u306E\u5F62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09:\n TWP \u30B5\u30FC\u30D0\u304C\u6574\u3048\u305F\u5F62\u3067\u8FD4\u308A\u307E\u3059\u3002Backlog API \u306E\u8AB2\u984C\u3092\u305D\u306E\u307E\u307E\u8AAD\u3080\u524D\u63D0\u3067\u66F8\u304F\u3068\u58CA\u308C\u307E\u3059\u3002\n - status / priority / resolution / issueType / assignee / createdUser / updatedUser \u306F\n \u540D\u524D\u306E\u6587\u5B57\u5217\u3067\u3059\uFF08{id, name} \u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002ID \u306F statusId / issueTypeId /\n assigneeId \u2026 \u306E\u3088\u3046\u306B\u672B\u5C3E Id \u306E\u5225\u30AD\u30FC\u306B\u3042\u308A\u307E\u3059\u3002\u672A\u8A2D\u5B9A\u306A\u3089\u4E21\u65B9 null \u3067\u3059\u3002\n - category / versions / milestone \u306F {id, name} \u306E\u914D\u5217\u306E\u307E\u307E\u3067\u3059\uFF08\u8907\u6570\u4ED8\u3051\u3089\u308C\u308B\u305F\u3081\u3001\n \
|
|
6
6
|
\u540D\u524D\u3068 ID \u3092\u5225\u30AD\u30FC\u3078\u5206\u3051\u308B\u3068\u5BFE\u5FDC\u304C\u5D29\u308C\u307E\u3059\uFF09\u3002customFields \u3082\u914D\u5217\u3067\u3059\u3002\n \u4F8B\uFF081\u4EF6\u30FB\u629C\u7C8B\uFF09:\n {"id": 1234, "issueKey": "PRJ-12", "summary": "\u2026",\n "statusId": 1, "status": "\u672A\u5BFE\u5FDC", "issueTypeId": 56, "issueType": "\u30BF\u30B9\u30AF",\n "assigneeId": 91, "assignee": "\u8C37 \u6A39",\n "category": [{"id": 7, "name": "\u8A2D\u8A08"}], "milestone": [], ...}\n --query \u3082\u3053\u306E\u5F62\u306B\u5F53\u305F\u308A\u307E\u3059\uFF08issue list \u306E\u4F8B: --query "[].{key: issueKey, type: issueType}"\uFF09\u3002';
|
|
@@ -24,20 +24,21 @@ get(name);if(raw===void 0)return void 0;const trimmed=raw.trim();const n=Number.
|
|
|
24
24
|
\uFF09`)}if(bounds.max!==void 0&&n>bounds.max){throw new UsageError(`${name} \u306B\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${bounds.max} \u307E\u3067\u3067\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,`Backlog \u5074\u306E\u4E0A\u9650\u3067\u3059\u3002\u7D9A\u304D\u306F --offset \u3067\u53D6\u5F97\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return n}function dateFlag(flags,name){const raw=flags.get(name);if(raw===void 0)return void 0;const trimmed=raw.trim();if(!DATE.test(trimmed)){
|
|
25
25
|
throw new UsageError(`${name} \u306F yyyy-MM-dd \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`)}return trimmed}function commaList(flags,name){const raw=flags.get(name);if(raw===void 0)return void 0;const parts=raw.split(",").map(part=>part.trim());if(parts.length===0||parts.some(part=>part==="")){throw new UsageError(`${name} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\
|
|
26
26
|
\uFF09`,"\u8907\u6570\u6307\u5B9A\u306F\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\u3059\uFF08--status \u672A\u5BFE\u5FDC,\u51E6\u7406\u4E2D\uFF09\u3002")}return parts}function resolvedList(input,key){const value=input.resolved?.[key];return value===void 0||value===""?void 0:value.split(",")}function indexedQuery(key,values,into){if(values===void 0)return;values.forEach((value,index)=>{into[`${key}[${index}]`]=value})}async function resolveSpace(input,ctx){const ref=input.flags.get("--space");if(ref===
|
|
27
|
-
void 0){const configured=ctx.configuredBacklogSpace();if(configured!==void 0){try{const space2=await ctx.resolver.backlogSpace(configured);return{id:space2.id,defaulted:space2.name??configured,defaultSource:"config"}}catch(err){if(!(err instanceof UsageError))throw err;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"Backlog \u306E\u8AB2\u984C\u30AD\u30FC\uFF08HC_FM_ID-19171\uFF09\u304B\u8AB2\u984CID\uFF08\u6570\u5024\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return ref}var UPDATE_PROJECT_FLAG={
|
|
33
|
-
const ref=input.flags.get("--project")?.trim();if(ref===void 0||ref===""){throw new UsageError(`${flag} \u3092\u540D\u524D\uFF08${value}\uFF09\u3067\u6307\u5B9A\u3059\u308B\u306B\u306F --project \u304C\u5FC5\u8981\u3067\u3059
|
|
34
|
-
\u306B\u76F4\u63A5\u6E21\u305B\u3070 --project \u306F\u8981\u308A\u307E\u305B\u3093\u3002`)}return ref}function readUpdateRef(input,flag,label){const raw=input.flags.get(flag);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
\u3066\u9001\
|
|
27
|
+
void 0){const configured=ctx.configuredBacklogSpace();if(configured!==void 0){try{const space2=await ctx.resolver.backlogSpace(configured,"backlog_space");return{id:space2.id,defaulted:space2.name??configured,defaultSource:"config"}}catch(err){if(!(err instanceof UsageError))throw err;const advice="twp configure \u3067\u65E2\u5B9A\u306E Backlog \u30B9\u30DA\u30FC\u30B9\u3092\u76F4\u3059\u304B\u3001--space \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08twp backlog space list \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09\u3002";
|
|
28
|
+
throw new UsageError(`\u8A2D\u5B9A\u306E\u65E2\u5B9A Backlog \u30B9\u30DA\u30FC\u30B9\u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093: ${err.message}`,err.hint!==void 0?`${err.hint}
|
|
29
|
+
${advice}`:advice)}}const space=await ctx.resolver.backlogDefaultSpace();return{id:space.id,defaulted:space.name,defaultSource:"single"}}if(ref.trim()===""){throw new UsageError("--space \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093","--space <ID|\u30B9\u30DA\u30FC\u30B9URL> \u3092\u6307\u5B9A\u3059\u308B\u304B\u3001--space \u3054\u3068\u5916\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return{id:(await ctx.resolver.backlogSpace(ref)).id,defaulted:null}}function withSpace(input,space){
|
|
30
|
+
return withResolved(input,{spaceId:space.id,...space.defaulted!==null?{spaceDefaulted:space.defaulted}:{},...space.defaultSource==="config"?{spaceDefaultSource:"config"}:{}})}async function resolveNumericRefs(refs,flag,label,scope,load){if(refs.every(ref=>NUMERIC.test(ref)))return[...refs];const candidates=await load();const resolved=[];for(const ref of refs){resolved.push(NUMERIC.test(ref)?ref:(await resolveNamed(ref,candidates,{flag,label,scope})).id)}return resolved}function requireProjectForNames(refs,flag,projectIds){
|
|
31
|
+
if(projectIds.length===1)return projectIds[0];throw new UsageError(projectIds.length===0?`${flag} \u3092\u540D\u524D\u3067\u6307\u5B9A\u3059\u308B\u306B\u306F --project \u304C\u5FC5\u8981\u3067\u3059`:`${flag} \u3092\u540D\u524D\u3067\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F --project \u304C1\u3064\u306E\u3068\u304D\u3060\u3051\u3067\u3059\uFF08\u3044\u307E\u306F ${projectIds.length} \u4EF6\uFF09`,`${flag} \u306E\u5019\u88DC\uFF08${refs.join(" / ")}\uFF09\u306F Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u914D\u4E0B\u306B\u3057\u304B\u3042\u308A\u307E\u305B\u3093\u3002\u6570\u5024\u306E ID \u3092\u76F4\u63A5\u6E21\u305B\u3070 --pr\
|
|
32
|
+
oject \u306F\u8981\u308A\u307E\u305B\u3093\u3002`)}function issueRef(input,usage){const ref=singleRef(input,{flag:"--issue",label:"\u8AB2\u984C\u30AD\u30FC",usage});if(!ISSUE_REF.test(ref)){throw new UsageError(`\u8AB2\u984C\u30AD\u30FC\u306E\u5F62\u5F0F\u304C\u9055\u3044\u307E\u3059: ${ref}`,"Backlog \u306E\u8AB2\u984C\u30AD\u30FC\uFF08HC_FM_ID-19171\uFF09\u304B\u8AB2\u984CID\uFF08\u6570\u5024\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return ref}var UPDATE_PROJECT_FLAG={
|
|
33
|
+
name:"--project",summary:"--status / --assignee / --notify \u3092\u540D\u524D\u3067\u6307\u5B9A\u3059\u308B\u3068\u304D\u306B\u8981\u308B Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30AD\u30FC / \u540D\u79F0 / \u6570\u5024ID\uFF09",takesValue:true,placeholder:"<\u30AD\u30FC|ID>"};function requireUpdateProject(input,flag,value){const ref=input.flags.get("--project")?.trim();if(ref===void 0||ref===""){throw new UsageError(`${flag} \u3092\u540D\u524D\uFF08${value}\uFF09\u3067\u6307\u5B9A\u3059\u308B\u306B\u306F --project \u304C\u5FC5\u8981\u3067\u3059`,
|
|
34
|
+
`${flag} \u306E\u5019\u88DC\u306F Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u914D\u4E0B\u306B\u3057\u304B\u306A\u304F\u3001\u8AB2\u984C\u30AD\u30FC\u304B\u3089\u306F\u5F15\u3051\u307E\u305B\u3093\u3002twp backlog status list --project <\u30AD\u30FC> / twp backlog user list --project <\u30AD\u30FC> \u306E id \u3092 ${flag} \u306B\u76F4\u63A5\u6E21\u305B\u3070 --project \u306F\u8981\u308A\u307E\u305B\u3093\u3002`)}return ref}function readUpdateRef(input,flag,label){const raw=input.flags.get(flag);
|
|
35
|
+
return raw===void 0?void 0:updateRefOf(input,flag,label,raw)}function updateRefOf(input,flag,label,raw){const value=raw.trim();if(value===""){throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,flag===NOTIFY_FLAG.name?`${flag} \u3054\u3068\u5916\u305B\u3070\u3001\u901A\u77E5\u5148\u3092\u6307\u5B9A\u305B\u305A\u306B\u9001\u308A\u307E\u3059\u3002`:`${flag} \u3054\u3068\u5916\u305B\u3070\u3001\u305D\u306E\u9805\u76EE\u306F\u5909\u66F4\u3057\u307E\u305B\u3093\u3002`)}
|
|
36
|
+
if(value.includes(",")){throw new UsageError(`${flag} \u306B\u8907\u6570\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${value}\uFF09`,flag===NOTIFY_FLAG.name?`\u8907\u6570\u4EBA\u306B\u901A\u77E5\u3059\u308B\u3068\u304D\u306F ${flag} \u3092\u91CD\u306D\u3066\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${flag} 91 ${flag} 92\uFF09\u3002`:`\u66F4\u65B0\u306F1\u3064\u306E\u5024\u3060\u3051\u3092\u53D7\u3051\u307E\u3059\uFF08\u7D5E\u308A\u8FBC\u307F\u306E twp backlog issue list \u3068\u306F\u9055\u3044\u307E\u3059\uFF09\u3002`)}
|
|
37
|
+
if(NUMERIC.test(value)&&!isExactNumericId(value)){throw new UsageError(`${flag} \u306E ID \u304C\u6570\u5024\u3068\u3057\u3066\u6271\u3048\u308B\u7BC4\u56F2\u3092\u8D85\u3048\u3066\u3044\u307E\u3059: ${value}`,`Backlog \u306E ID \u3092\u305D\u306E\u307E\u307E\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\uFF08twp backlog status list / user list \u306E id \u5217\uFF09\u3002`)}return{flag,label,value,projectRef:NUMERIC.test(value)?null:requireUpdateProject(input,flag,value)}}async function resolveUpdateProject(ref,load){
|
|
38
|
+
if(isExactNumericId(ref))return ref;const resolved=await resolveNamed(ref,await load(),{flag:"--project",label:"Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",scope:BACKLOG_SCOPE_LABEL});if(!isExactNumericId(resolved.id)){throw new ApiResponseError(`Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u300C${ref}\u300D\u306E ID \u3092\u6570\u5024\u3068\u3057\u3066\u9001\u308C\u307E\u305B\u3093: ${JSON.stringify(resolved.id)}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
|
|
39
|
+
return resolved.id}async function resolveUpdateRef(ref,projectId,load){if(ref.projectRef===null)return ref.value;if(projectId===void 0){throw new ApiResponseError(`${ref.flag} \u306E\u89E3\u6C7A\u5148\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304C\u89E3\u6C7A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF08\u5185\u90E8\u30A8\u30E9\u30FC\uFF09\u3002`)}const resolved=await resolveNamed(ref.value,await load(projectId),{flag:ref.flag,label:ref.label,scope:BACKLOG_PROJECT_SCOPE_LABEL});if(!isExactNumericId(
|
|
40
|
+
resolved.id)){throw new ApiResponseError(`${ref.label}\u300C${ref.value}\u300D\u306E ID \u3092\u6570\u5024\u3068\u3057\u3066\u9001\u308C\u307E\u305B\u3093: ${JSON.stringify(resolved.id)}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return resolved.id}var NOTIFY_FLAG={name:"--notify",summary:"\u30B3\u30E1\u30F3\u30C8\u306E\u901A\u77E5\u5148\uFF08Backlog \u306E\u300C\u304A\u77E5\u3089\u305B\u3057\u305F\u3044\u30E6\u30FC\u30B6\u30FC\u300D\uFF09\u3002\u8907\u6570\u306A\u3089\u91CD\u306D\u3066\u6307\u5B9A\u3002\u6570\u5B57\u3060\u3051\u306E\u5024\u306F ID \u3068\u3057\u3066\u9001\u308A\u307E\u3059\uFF08\u540D\u524D\u306A\u3089 --project \u304C\u8981\u308B\uFF09",
|
|
41
|
+
takesValue:true,repeatable:true,placeholder:"<\u540D\u524D|ID>"};var NOTIFY_HELP="--notify <\u540D\u524D|ID> \u3067\u3001\u30B3\u30E1\u30F3\u30C8\u306E\u901A\u77E5\u5148\uFF08Backlog \u306E\u300C\u304A\u77E5\u3089\u305B\u3057\u305F\u3044\u30E6\u30FC\u30B6\u30FC\u300D\uFF09\u3092\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\n \u26A0 \u6307\u5B9A\u3057\u306A\u3044\u3068\u3001\u62C5\u5F53\u8005\u4EE5\u5916\u3078\u306F\u901A\u77E5\u304C\u5C4A\u304B\u306A\u3044\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\u62C5\u5F53\u3092\u5909\u3048\u305A\u306B\u76F8\u624B\u3078\u805E\u304D\u305F\u3044\u3068\u304D\u306F\n \u62C5\u5F53\u5909\u66F4\u3067\u4EE3\u7528\u305B\u305A --notify \u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002\u8907\u6570\u4EBA\u306A\u3089 --notify \u3092\u91CD\u306D\u3066\u6307\u5B9A\u3057\u307E\u3059\u3002\n \u6570\u5B57\u3060\u3051\u306E\u5024\u306F ID \u3068\u3057\u3066\u9001\u308A\u307E\u3059\u3002\u540D\u524D\u30FB\u30ED\u30B0\u30A4\u30F3ID\u30FB\u30E1\u30FC\u30EB\u3067\u6307\u3059\u306B\u306F --project \u304C\u5FC5\u8981\u3067\u3001\n \u7167\u5408\u306F\u5B8C\u5168\u4E00\u81F4\u3060\u3051\u3067\u3059\uFF08\u4E00\u81F4\u3057\u306A\u3051\u308C\u3070\u5019\u88DC\u3092\u51FA\u3057\u3066\u7D42\u4E86\u30B3\u30FC\u30C9 2 \u3067\u6B62\u307E\u308A\u3001\u4F55\u3082\u9001\u308A\u307E\u305B\u3093\uFF09\u3002";
|
|
41
42
|
function readNotifyRefs(input){return repeatedValues(input,NOTIFY_FLAG.name).map(raw=>updateRefOf(input,NOTIFY_FLAG.name,"Backlog \u30E6\u30FC\u30B6\u30FC",raw))}async function resolveNotifyRefs(refs,projectId,load){if(refs.length===0)return void 0;const ids=[];for(const ref of refs){const id=await resolveUpdateRef(ref,projectId,load);if(!ids.includes(id))ids.push(id)}return ids.join(",")}function notifyBody(input,body){const ids=resolvedList(input,"notifiedUserId");if(ids!==void 0)body["notifie\
|
|
42
43
|
dUserId"]=ids.map(Number)}function spaceNotes(input){const defaulted=input.resolved?.["spaceDefaulted"];if(defaulted===void 0)return[];return input.resolved?.["spaceDefaultSource"]==="config"?[`--space \u3092\u7701\u7565\u3057\u305F\u305F\u3081\u3001\u8A2D\u5B9A\u306E\u65E2\u5B9A Backlog \u30B9\u30DA\u30FC\u30B9 ${defaulted} \u3092\u4F7F\u3044\u307E\u3057\u305F\uFF08twp configure \u3067\u5909\u66F4\u3067\u304D\u307E\u3059\uFF09\u3002`]:[`--space \u3092\u7701\u7565\u3057\u305F\u305F\u3081\u3001\u767B\u9332\u3055\u308C\u3066\u3044\u308B\u552F\u4E00\u306E Backlog \u30B9\u30DA\u30FC\u30B9 ${defaulted}\
|
|
43
44
|
\u3092\u4F7F\u3044\u307E\u3057\u305F\u3002`]}function updateNotes(input){const notes=[...spaceNotes(input)];const usedForName=input.resolved?.["projectUsed"]!==void 0;if(input.flags.get("--project")!==void 0&&!usedForName){notes.push("--project \u306F\u4F7F\u3044\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u540D\u524D\u3067\u6307\u5B9A\u3057\u305F\u5024\u304C\u7121\u304F\u3001\u3059\u3079\u3066\u6570\u5024 ID \u3060\u3063\u305F\u305F\u3081\u3001\u540D\u524D\u306E\u89E3\u6C7A\u304C\u8981\u308A\u307E\u305B\u3093\uFF09\u3002")}
|
|
@@ -106,11 +107,12 @@ comments.length<requested)return null;const id=isRecord(last)?last["id"]:void 0;
|
|
|
106
107
|
--limit\uFF08--count \u3068\u540C\u3058\u610F\u5473\uFF09\u306E\u65E2\u5B9A\u306F ${DEFAULT_COUNT}\u30FB\u4E0A\u9650\u306F ${MAX_COUNT} \u3067\u3059\u3002
|
|
107
108
|
--all \u3092\u4ED8\u3051\u308B\u3068\u3001\u30B3\u30E1\u30F3\u30C8 ID \u3092\u8FBF\u3063\u3066\u5168\u4EF6\u3092\u53D6\u5F97\u3057\u307E\u3059\uFF08--limit \u306F\u305D\u306E\u3068\u304D\u306E1\u30DA\u30FC\u30B8\u306E\u4EF6\u6570\u30FB\u65E2\u5B9A ${MAX_COUNT}\uFF09\u3002
|
|
108
109
|
\u3053\u306E API \u306F\u30AB\u30FC\u30BD\u30EB\u3092\u8FD4\u3055\u306A\u3044\u305F\u3081 --cursor \u306F\u3042\u308A\u307E\u305B\u3093\u3002\u9014\u4E2D\u304B\u3089\u8FBF\u308B\u306B\u306F --min-id / --max-id \u3092\u4F7F\u3044\u307E\u3059\u3002`,flags:[SPACE_FLAG,{name:"--issue",summary:"\u8AB2\u984C\u30AD\u30FC\uFF08\u4F4D\u7F6E\u5F15\u6570\u3068\u540C\u3058\u610F\u5473\uFF09",takesValue:true,placeholder:"<\u30AD\u30FC|ID>"},{name:"--limit",summary:`\u53D6\u5F97\u4EF6\u6570\uFF08\u65E2\u5B9A ${DEFAULT_COUNT}\
|
|
109
|
-
\u30FB\u4E0A\u9650 ${MAX_COUNT}\u30FB--all \u3068\u4F75\u7528\u3057\u305F\u3068\u304D\u306F1\u30DA\u30FC\u30B8\u306E\u4EF6\u6570\uFF09`,takesValue:true,placeholder:"<\u4EF6\u6570>"},{name:"--count",summary:`--limit \u3068\u540C\u3058\uFF08\u65E2\u5B9A ${DEFAULT_COUNT}\u30FB\u4E0A\u9650 ${MAX_COUNT}\uFF09`,takesValue:true,placeholder:"<\u4EF6\u6570>"},...LIST_FLAGS.filter(spec=>spec.name!=="--limit"&&spec.name!=="--cursor")
|
|
110
|
-
takesValue:true,placeholder:"<\u9806\u5E8F>"},{name:"--min-id",summary:"\u3053\u306E\u30B3\u30E1\u30F3\u30C8ID \u3088\u308A\u5F8C\u306E\u30B3\u30E1\u30F3\u30C8\u3060\u3051\u3092\u8FD4\u3059",takesValue:true,placeholder:"<ID>"},{name:"--max-id",summary:"\u3053\u306E\u30B3\u30E1\u30F3\u30C8ID \u3088\u308A\u524D\u306E\u30B3\u30E1\u30F3\u30C8\u3060\u3051\u3092\u8FD4\u3059",
|
|
111
|
-
withSpace(input,await resolveSpace(input,ctx)),{issueRef:ref})},plan(input){const ref=requireResolved(input,"issueRef");return{method:"GET",path:backlogSpacePath(requireSpace(input),`/issues/${encodeURIComponent(ref)}/comments`),query:{count:commentPageSize(input)??(input.flags.has("--all")?MAX_COUNT:void 0),order:order(input.flags.get("--order")),minId:integerFlag(
|
|
112
|
-
body,"comments","\u30B3\u30E1\u30F3\u30C8\u4E00\u89A7").map(commentRow),raw:body=>listOf(body,"comments","\u30B3\u30E1\u30F3\u30C8\u4E00\u89A7"),notes(body,input){if(input.flags.has("--all"))return[];const received=listOf(body,"comments","\u30B3\u30E1\u30F3\u30C8\u4E00\u89A7").length;const count=commentPageSize(input)??DEFAULT_COUNT;return received<
|
|
113
|
-
{name:"create",summary:"Backlog \u8AB2\u984C\u306B\u30B3\u30E1\u30F3\u30C8\u3092\u6295\u7A3F\u3059\u308B\uFF08--yes \u304C\u5FC5\u8981\uFF09",
|
|
110
|
+
\u30FB\u4E0A\u9650 ${MAX_COUNT}\u30FB--all \u3068\u4F75\u7528\u3057\u305F\u3068\u304D\u306F1\u30DA\u30FC\u30B8\u306E\u4EF6\u6570\uFF09`,takesValue:true,placeholder:"<\u4EF6\u6570>"},{name:"--count",summary:`--limit \u3068\u540C\u3058\uFF08\u65E2\u5B9A ${DEFAULT_COUNT}\u30FB\u4E0A\u9650 ${MAX_COUNT}\uFF09`,takesValue:true,placeholder:"<\u4EF6\u6570>"},...LIST_FLAGS.filter(spec=>spec.name!=="--limit"&&spec.name!=="--cursor").map(spec=>spec.name==="--all"?{...spec,summary:"\u5168\u30DA\u30FC\u30B8\u3092\u81EA\u52D5\u3067\u8FBF\u308B\uFF08--max-id / --m\
|
|
111
|
+
in-id \u3068\u4F75\u7528\u3059\u308B\u3068\u305D\u306E\u7BC4\u56F2\u3092\u5168\u4EF6\uFF09"}:spec),{name:"--order",summary:"\u4E26\u3073\u9806\uFF08asc | desc\u30FB\u65E2\u5B9A desc\uFF09",takesValue:true,placeholder:"<\u9806\u5E8F>"},{name:"--min-id",summary:"\u3053\u306E\u30B3\u30E1\u30F3\u30C8ID \u3088\u308A\u5F8C\u306E\u30B3\u30E1\u30F3\u30C8\u3060\u3051\u3092\u8FD4\u3059",takesValue:true,placeholder:"<ID>"},{name:"--max-id",summary:"\u3053\u306E\u30B3\u30E1\u30F3\u30C8ID \u3088\u308A\u524D\u306E\u30B3\u30E1\u30F3\u30C8\u3060\u3051\u3092\u8FD4\u3059",
|
|
112
|
+
takesValue:true,placeholder:"<ID>"}],async prepare(input,ctx){const ref=issueRef(input,"twp backlog comment list help");return withResolved(withSpace(input,await resolveSpace(input,ctx)),{issueRef:ref})},plan(input){const ref=requireResolved(input,"issueRef");return{method:"GET",path:backlogSpacePath(requireSpace(input),`/issues/${encodeURIComponent(ref)}/comments`),query:{count:commentPageSize(input)??(input.flags.has("--all")?MAX_COUNT:void 0),order:order(input.flags.get("--order")),minId:integerFlag(
|
|
113
|
+
input.flags,"--min-id",{min:0}),maxId:integerFlag(input.flags,"--max-id",{min:0})}}},plannedNotes:spaceNotes,paging:COMMENT_PAGING,summarize:body=>listOf(body,"comments","\u30B3\u30E1\u30F3\u30C8\u4E00\u89A7").map(commentRow),raw:body=>listOf(body,"comments","\u30B3\u30E1\u30F3\u30C8\u4E00\u89A7"),notes(body,input){if(input.flags.has("--all"))return[];const received=listOf(body,"comments","\u30B3\u30E1\u30F3\u30C8\u4E00\u89A7").length;const count=commentPageSize(input)??DEFAULT_COUNT;return received<
|
|
114
|
+
count?[]:[`${received} \u4EF6\uFF08--limit \u306E\u4E0A\u9650\u3061\u3087\u3046\u3069\uFF09\u3092\u53D6\u5F97\u3057\u307E\u3057\u305F\u3002\u7D9A\u304D\u304C\u3042\u308B\u304B\u3082\u3057\u308C\u307E\u305B\u3093: --all \u3067\u5168\u4EF6\u3092\u53D6\u5F97\u3059\u308B\u304B\u3001--min-id / --max-id \u3067\u7D9A\u304D\u3092\u53D6\u5F97\u3057\u3066\u304F\u3060\u3055\u3044\u3002`]}},{name:"create",summary:"Backlog \u8AB2\u984C\u306B\u30B3\u30E1\u30F3\u30C8\u3092\u6295\u7A3F\u3059\u308B\uFF08--yes \u304C\u5FC5\u8981\uFF09",
|
|
115
|
+
usage:"twp backlog comment create <\u8AB2\u984C\u30AD\u30FC|\u8AB2\u984CID> --body-file <\u30D1\u30B9> [--notify <\u540D\u524D|ID>]... [--project <\u30AD\u30FC|ID>] [--space <ID|URL>] --yes",description:`${EXTERNAL_WRITE_HELP}
|
|
114
116
|
|
|
115
117
|
${bodyHelp("--body-file","--body")}
|
|
116
118
|
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
|
+
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
+
import{breakdownRows,budgetDomain,dashboardRows,fiscalYear,importRejection,overwriteLines,parseAllocationRows,parseSplit,parseTargetRows,periodsLabel}from"./chunk-LS7DFMG6.js";import"./chunk-NLDVB4PZ.js";import"./chunk-Y7GYWZLW.js";import"./chunk-UVCJXHWN.js";import"./chunk-EXT4AIDF.js";import"./chunk-KW37N7IO.js";import"./chunk-RX5HWI4L.js";import"./chunk-JJSBBWJ5.js";import"./chunk-IWYJSQ5I.js";import"./chunk-W4NLJ2YK.js";import"./chunk-2T23XGJF.js";
|
|
4
|
+
import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-MMVXE2CJ.js";import"./chunk-IXT2X5BZ.js";import"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";import"./chunk-PS5QFKHB.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{breakdownRows,budgetDomain,dashboardRows,fiscalYear,importRejection,overwriteLines,parseAllocationRows,parseSplit,parseTargetRows,periodsLabel};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
|
+
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
+
import{apiExit,errorDetail,pickNumber,str}from"./chunk-A4LFG7MW.js";import"./chunk-VRBI2NPI.js";import{EXIT_API_SERVER,EXIT_OK,EXIT_USAGE,UsageError}from"./chunk-VFPY2A23.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LIST_FORMATS=["json","table","tsv"];var CAPACITY_STALE_MS=30*60*1e3;var CAPACITY_SCHEMA="twp.capacity/v1";var STATE_ORDER={needs_login:0,excluded:1,unknown:2,usable:3};function isRecord(v){return typeof v==="object"&&v!==null&&!Array.isArray(v)}function strOrNull(v){return typeof v==="string"&&v!==""?v:null}function num(v){return typeof v==="number"&&Number.isFinite(v)?v:null}function deadlineKey(d){if(d===null)return Number.POSITIVE_INFINITY;const t=Date.parse(d);return Number.isNaN(t)?Number.
|
|
4
|
+
POSITIVE_INFINITY:t}function parseCapacity(raw,now){const empty={status:"none",reason:null,provider:null,generated_at:null,stale:null,active_slot:null,slots:[]};if(typeof raw!=="string"||raw.trim()==="")return empty;let parsed;try{parsed=JSON.parse(raw)}catch{return{...empty,status:"invalid"}}if(!isRecord(parsed))return{...empty,status:"invalid"};const schema=strOrNull(parsed["schema"]);if(schema!==CAPACITY_SCHEMA)return{...empty,status:"unsupported",reason:schema??"(\u672A\u6307\u5B9A)"};if(parsed["\
|
|
5
|
+
error"]){return{...empty,status:"error",reason:strOrNull(parsed["reason"])??strOrNull(parsed["error"]),generated_at:strOrNull(parsed["generated_at"])}}const activeSlot=strOrNull(parsed["active_slot"]);const slots=[];for(const s of Array.isArray(parsed["slots"])?parsed["slots"]:[]){if(!isRecord(s))continue;const name=strOrNull(s["name"]);if(name===null)continue;const rawState=strOrNull(s["state"]);const state=rawState!==null&&Object.hasOwn(STATE_ORDER,rawState)?rawState:"unknown";const metrics=[];
|
|
6
|
+
for(const m of Array.isArray(s["metrics"])?s["metrics"]:[]){if(!isRecord(m))continue;const key=strOrNull(m["key"]);if(key===null)continue;metrics.push({key,label:strOrNull(m["label"]),utilization:num(m["utilization"]),threshold:num(m["threshold"]),ceiling:num(m["ceiling"]),resets_at:strOrNull(m["resets_at"])})}slots.push({name,state,state_label:strOrNull(s["state_label"]),active:activeSlot===name,relogin_deadline:strOrNull(s["relogin_deadline"]),identity_masked:strOrNull(s["identity_masked"]),identity_hash:strOrNull(
|
|
7
|
+
s["identity_hash"]),metrics})}if(slots.length===0)return empty;slots.sort((a,b)=>{const byState=STATE_ORDER[a.state]-STATE_ORDER[b.state];if(byState!==0)return byState;const da=deadlineKey(a.relogin_deadline);const db=deadlineKey(b.relogin_deadline);if(da===db)return 0;return da<db?-1:1});const generatedAt=strOrNull(parsed["generated_at"]);const at=generatedAt===null?Number.NaN:Date.parse(generatedAt);return{status:"ok",reason:null,provider:strOrNull(parsed["provider"]),generated_at:generatedAt,
|
|
8
|
+
stale:Number.isNaN(at)||now-at>CAPACITY_STALE_MS,active_slot:activeSlot,slots}}function parseOverview(res,opts,now){const json=res.json;if(!isRecord(json))return null;const body=isRecord(json["data"])&&"projects"in json["data"]?json["data"]:json;const rawProjects=body["projects"];if(!Array.isArray(rawProjects))return null;let hidden=0;const projects=[];for(const p of rawProjects){if(!isRecord(p)||!Array.isArray(p["runners"]))return null;const projectId=str(p["project_id"]);if(projectId==="")return null;
|
|
9
|
+
if(opts.projectId!==void 0&&projectId!==opts.projectId)continue;const runners=[];for(const r of p["runners"]){if(!isRecord(r))continue;const runnerId=str(r["runner_id"]);if(runnerId==="")return null;const kind=str(r["kind"])||"loop";const alive=kind==="capacity_reporter"?r["is_reporting"]===true:r["is_live"]===true;if(!alive&&!opts.includeStopped){hidden+=1;continue}runners.push({runner_id:runnerId,run_id:str(r["run_id"]),kind,state:alive?kind==="capacity_reporter"?"reporting":"live":"stale",alive,
|
|
10
|
+
hostname:str(r["hostname"]),phase:str(r["phase"]),last_seen_at:str(r["last_seen_at"]),last_reported_at:str(r["last_reported_at"]),version:str(r["version"]),capacity:parseCapacity(r["capacity"],now)})}projects.push({project_id:projectId,project_code:strOrNull(p["project_code"]),project_name:strOrNull(p["project_name"]),live_count:pickNumber(p,"live_count"),max_runners:pickNumber(p,"max_runners"),hidden_count:pickNumber(p,"hidden_count"),hide_after_days:pickNumber(p,"hide_after_days"),runners})}return{
|
|
11
|
+
generated_at:str(body["generated_at"]),include_stopped:opts.includeStopped,hidden_stopped:hidden,projects}}function projectLabel(p){if(p.project_code!==null)return p.project_code;return p.project_id.startsWith("private:")?"\u500B\u4EBA\u30EB\u30FC\u30D7":p.project_id}function percent(v){return v===null?"":`${Math.round(v)}%`}function toRows(overview){const metricKeys=[];for(const p of overview.projects){for(const r of p.runners){for(const s of r.capacity.slots){for(const m of s.metrics)if(!metricKeys.
|
|
12
|
+
includes(m.key))metricKeys.push(m.key)}}}const rows=[];for(const p of overview.projects){for(const r of p.runners){const base={project:projectLabel(p),runner_id:r.runner_id,run_id:r.run_id,kind:r.kind,state:r.state};const observed=r.capacity.generated_at===null?"":`${r.capacity.generated_at}${r.capacity.stale===true?" (stale)":""}`;if(r.capacity.status!=="ok"){const row={...base,slot:"",slot_state:r.capacity.status+(r.capacity.reason!==null?`:${r.capacity.reason}`:"")};for(const k of metricKeys){
|
|
13
|
+
row[k]="";row[`${k}_resets_at`]=""}rows.push({...row,relogin_deadline:"",account:"",observed_at:observed});continue}for(const s of r.capacity.slots){const row={...base,slot:s.active?`${s.name}*`:s.name,slot_state:s.state};for(const k of metricKeys){const m=s.metrics.find(x=>x.key===k);row[k]=percent(m?.utilization??null);row[`${k}_resets_at`]=m?.resets_at??""}rows.push({...row,relogin_deadline:s.relogin_deadline??"",account:s.identity_masked??"",observed_at:observed})}}}return rows}async function runCapacityList(deps,opts){
|
|
14
|
+
const out=deps.out??(t=>void process.stdout.write(stripTerminalControls(t)));const err=deps.err??(t=>void process.stderr.write(stripTerminalControls(t)));const isTty=deps.isTty??process.stdout.isTTY===true;const{resolveOutputFormat}=await import("./format-F6PPBPY5.js");const format=resolveOutputFormat({...opts.output!==void 0?{flag:opts.output}:{},isTty});if(format===null||!LIST_FORMATS.includes(format)){const e=new UsageError(`capacity list \u306E --output \u306B\u300C${opts.output??""}\u300D\u306F\u6307\
|
|
15
|
+
\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${LIST_FORMATS.join(" / ")} \u3067\u3059`);err(`${e.message}
|
|
16
|
+
${e.hint?`${e.hint}
|
|
17
|
+
`:""}`);return EXIT_USAGE}const res=await deps.get();if(!res.ok){err(`\u26D4 \u5B9F\u884C\u6A5F\u306E\u72B6\u614B\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\uFF08${errorDetail(res)}\uFF09
|
|
18
|
+
`);return apiExit(res)}const overview=parseOverview(res,opts,(deps.now??Date.now)());if(overview===null){err(`\u26D4 \u5B9F\u884C\u6A5F\u306E\u72B6\u614B\u3092\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093\uFF08\u5FDC\u7B54\u306E\u5148\u982D: ${res.raw.slice(0,120)}\uFF09
|
|
19
|
+
`);return EXIT_API_SERVER}const{evaluateQuery}=await import("./query-XEOVFI4D.js");const{renderOutput}=await import("./render-BY4KHD5D.js");if(format==="json"){const selected2=opts.query===void 0?overview:await evaluateQuery(opts.query,overview);const text2=renderOutput(selected2,"json");out(text2.endsWith("\n")?text2:`${text2}
|
|
20
|
+
`);return EXIT_OK}const runnerCount=overview.projects.reduce((n,p)=>n+p.runners.length,0);const hiddenNote=overview.hidden_stopped>0?`\u30FB\u505C\u6B62\u4E2D ${overview.hidden_stopped}\u53F0\u306F\u975E\u8868\u793A\uFF08--include-stopped \u3067\u8868\u793A\uFF09`:"";const serverHidden=overview.projects.filter(p=>(p.hidden_count??0)>0).map(p=>`${projectLabel(p)}: ${p.hide_after_days??"?"}\u65E5\u4EE5\u4E0A\u5FDC\u7B54\u306E\u306A\u3044${p.hidden_count}\u53F0`).join("\u3001");err(`\u5B9F\u884C\u6A5F ${runnerCount}\
|
|
21
|
+
\u53F0\uFF08${overview.projects.length}\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF09${hiddenNote}\u30FB\u53D6\u5F97 ${overview.generated_at||"\u4E0D\u660E"}
|
|
22
|
+
`);if(serverHidden!=="")err(`\u30B5\u30FC\u30D0\u5074\u3067\u4E00\u89A7\u304B\u3089\u5916\u308C\u3066\u3044\u308B\u6A5F: ${serverHidden}
|
|
23
|
+
`);const rows=toRows(overview);if(opts.query===void 0&&rows.length===0){err("\u8868\u793A\u3059\u308B\u5B9F\u884C\u6A5F\u306F\u3042\u308A\u307E\u305B\u3093\n");return EXIT_OK}const selected=opts.query===void 0?rows:await evaluateQuery(opts.query,rows);const text=renderOutput(selected,format);out(text.endsWith("\n")?text:`${text}
|
|
24
|
+
`);return EXIT_OK}export{CAPACITY_STALE_MS,parseCapacity,parseOverview,runCapacityList,toRows};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{REUSE_LAST_SUCCESS_MS,capacityError,probeCapacityOutcome}from"./chunk-VYDPW2YO.js";import"./chunk-TTST7UDR.js";import"./chunk-N2UVRM3Z.js";import{pick}from"./chunk-
|
|
3
|
+
import{REUSE_LAST_SUCCESS_MS,capacityError,probeCapacityOutcome}from"./chunk-VYDPW2YO.js";import"./chunk-TTST7UDR.js";import"./chunk-N2UVRM3Z.js";import{pick}from"./chunk-UZUV5FYG.js";import{projectFileKey}from"./chunk-RMFLTSOV.js";import"./chunk-PMOUHEJQ.js";import"./chunk-J7QYPKVK.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs from"fs";import os from"os";import path from"path";function lastSuccessPath(stateDir,projectId){return path.join(stateDir,`capacity-report-${projectFileKey(projectId)}.json`)}function readLastSuccess(file){try{const v=JSON.parse(fs.readFileSync(file,"utf8"));if(typeof v!=="object"||v===null)return null;const{payload,at}=v;if(typeof payload!=="string"||typeof at!=="number"||!Number.isFinite(at))return null;return{payload,at}}catch{return null}}function writeLastSuccess(file,value,stderr){try{fs.mkdirSync(path.dirname(file),{recursive:true,mode:448});
|
|
4
4
|
fs.writeFileSync(file,JSON.stringify(value),{mode:384})}catch(err){stderr(`\u26A0\uFE0F \u76F4\u524D\u306E\u6210\u529F\u5024\u3092 ${file} \u3078\u4FDD\u5B58\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${err.message}\uFF09
|
|
5
5
|
`)}}async function registeredAsLoop(api,runnerId){const res=await api.runners();if(!res.ok)return false;const runners=pick(res.json,"runners");if(!Array.isArray(runners))return false;return runners.some(r=>{if(typeof r!=="object"||r===null)return false;const row=r;return row["runner_id"]===runnerId&&(row["kind"]??"loop")==="loop"})}function loopRegisteredMessage(runnerId){return`\u3053\u306E\u30DE\u30B7\u30F3\uFF08runner_id: ${runnerId}\uFF09\u306F\u540C\u3058\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30EB\u30FC\u30D7\u3068\u3057\u3066\u767B\u9332\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u9001\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002
|
|
6
6
|
\u30EB\u30FC\u30D7\u304C\u52D5\u3044\u3066\u3044\u308B\u9593\u306F\u3001\u67A0\u60C5\u5831\u306F\u30EB\u30FC\u30D7\u306E heartbeat \u3067\u9001\u3089\u308C\u307E\u3059\uFF08capacity_probe \u306E\u8A2D\u5B9A\u306F\u30EB\u30FC\u30D7\u3068\u5171\u901A\u3067\u3059\uFF09
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{FORCE_FLAG,OUT_FLAG,REV_FLAG,revOf,singleId,uploadStaged}from"./chunk-
|
|
3
|
+
import{FORCE_FLAG,OUT_FLAG,REV_FLAG,revOf,singleId,uploadStaged}from"./chunk-733XATRJ.js";import{CUSTOMER_LICENSE,childForbidden,levelForbidden}from"./chunk-FM3RHTEQ.js";import{inspectLocalFile}from"./chunk-WTYIFLVB.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-KW37N7IO.js";import{SALES_ESTIMATES_PATH,isExactNumericId}from"./chunk-2T23XGJF.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";
|
|
4
4
|
import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import fs from"fs";import path from"path";var DOCUMENT_TYPES=["order_form","individual_contract","other"];var DOCUMENT_TYPE_HELP="order_form\uFF1D\u6CE8\u6587\u66F8 / individual_contract\uFF1D\u500B\u5225\u5951\u7D04\u66F8 / other\uFF1D\u305D\u306E\u4ED6\u6848\u4EF6\u66F8\u985E";var MAGIC_BYTES={pdf:["%PDF-"],jpg:["\xFF\xD8\xFF"],jpeg:["\xFF\xD8\xFF"],png:["\x89PNG\r\n\n"],xlsx:["PK","PK","PK\x07\b"],docx:["PK","PK","PK\x07\b"],xls:["\xD0\xCF\xE0\xA1\xB1\xE1"],doc:["\xD0\xCF\xE0\xA1\xB1\xE1"]};var FILE_NAME_MAX_CHARS=255;var FIELDS=[
|
|
5
5
|
{kind:"text",flag:"--name",key:"document_name",label:"\u66F8\u985E\u540D",maxChars:255,summary:"\u66F8\u985E\u540D\uFF08create \u3067\u306F\u5FC5\u9808\uFF09"},{kind:"enum",flag:"--type",key:"document_type",values:DOCUMENT_TYPES,summary:`\u66F8\u985E\u7A2E\u5225\uFF08${DOCUMENT_TYPE_HELP}\u30FBcreate \u3067\u306F\u5FC5\u9808\uFF09`}];var COLUMNS=["document_id","estimate_id","document_type","document_type_label","document_name","current_version","updated_by_name","updated_at"];var VERSION_COLUMNS=[
|
|
6
6
|
"version_number","file_name","file_size","is_current","created_by_name","created_at"];var ESTIMATE_FLAG={name:"--estimate",summary:"\u898B\u7A4D\u306E ID\uFF08twp estimate list \u306E id \u5217\u306E\u6570\u5B57\u30FB\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u898B\u7A4DID>"};var FILE_FLAG={name:"--file",summary:"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3059\u308B\u30D5\u30A1\u30A4\u30EB\uFF08PDF\u30FBJPEG\u30FBPNG\u30FBWord\u30FBExcel\u3002\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{ResolveError,ULID_RE,UUID_RE,isSafePathSegment,resolveProjectRef,safeProjectIdPolicy}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{graphNextCursor,ms365NamedRow,ms365NotConnectedGuidance,ms365Path,ms365Segment}from"./chunk-
|
|
3
|
+
import{ResolveError,ULID_RE,UUID_RE,isSafePathSegment,resolveProjectRef,safeProjectIdPolicy}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{graphNextCursor,ms365NamedRow,ms365NotConnectedGuidance,ms365Path,ms365Segment}from"./chunk-MMVXE2CJ.js";import{isTaskKey}from"./chunk-II5RVJQN.js";import{UsageError}from"./chunk-VFPY2A23.js";import{loadProjectConfig,loadUserConfig}from"./chunk-EDF4U5BT.js";import{twpHomeDir}from"./chunk-RZVI6PMW.js";var BACKLOG_BASE_PATH="/api/v2/integrations/backlog";function assertBacklogPathSegment(value,label){if(!isSafePathSegment(value)){throw new ResolveError(`${label}\u3068\u3057\u3066 URL \u306B\u5165\u308C\u3089\u308C\u306A\u3044\u5024\u304C\u30B5\u30FC\u30D0\u304B\u3089\u8FD4\u308A\u307E\u3057\u305F: ${JSON.stringify(value)}\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return value}function backlogSpacePath(spaceId,suffix=""){assertBacklogPathSegment(spaceId,
|
|
4
4
|
"Backlog \u30B9\u30DA\u30FC\u30B9 ID");return`${BACKLOG_BASE_PATH}/${encodeURIComponent(spaceId)}${suffix}`}function idString(value){if(typeof value==="number"&&Number.isFinite(value))return String(value);if(typeof value==="string"&&value.trim()!=="")return value.trim();return null}function text(value){return typeof value==="string"&&value.trim()!==""?value.trim():null}function backlogSpaceAliases(spaceUrl){const aliases=[];const trimmed=spaceUrl.trim().replace(/\/+$/,"");if(trimmed==="")return aliases;
|
|
5
5
|
let host;try{host=new URL(trimmed).host}catch{host=trimmed.replace(/^\/+/,"").split("/")[0]??""}if(host==="")return aliases;aliases.push(host);const label=host.split(".")[0];if(label!==void 0&&label!==""&&label!==host)aliases.push(label);return aliases}function backlogSpaceRow(row){const url=text(row["space_url"]);return{id:idString(row["id"]),name:url,code:null,aliases:url!==null?backlogSpaceAliases(url):[]}}function backlogProjectRow(row){return{id:idString(row["id"]),name:text(row["name"]),code:text(
|
|
6
6
|
row["projectKey"])}}function backlogStatusRow(row){return{id:idString(row["id"]),name:text(row["name"]),code:null}}function backlogUserRow(row){return{id:idString(row["id"]),name:text(row["name"]),code:null,aliases:[text(row["userId"]),text(row["mailAddress"])].filter(v=>v!==null)}}var REDMINE_BASE_PATH="/api/v2/integrations/redmine";function redmineServerPath(serverId,suffix=""){assertBacklogPathSegment(serverId,"Redmine \u63A5\u7D9A\u5148 ID");return`${REDMINE_BASE_PATH}/${encodeURIComponent(serverId)}${suffix}`}function text2(value){return typeof value==="string"&&value.trim()!==""?value.trim():null}function redmineServerAliases(baseUrl){const trimmed=baseUrl.trim().replace(/\/+$/,"");if(trimmed==="")return[];const aliases=[trimmed];try{const host=new URL(trimmed).host;
|
|
@@ -129,7 +129,7 @@ if(cursor!==null)query.set("cursor",cursor);const res=await this.get(`${NOTIFICA
|
|
|
129
129
|
res.status)}cursor=body["next_cursor"]}return{count:total,complete:false}}async announcementUnreadCount(){const res=await this.get(`${ANNOUNCEMENTS_PATH}/counts`);const count=res.ok&&isRecord(res.json)?res.json["unread_count"]:void 0;if(typeof count!=="number"||!Number.isSafeInteger(count)||count<0){throw new ResolveError(res.ok?"\u304A\u77E5\u3089\u305B\u4EF6\u6570\u306E\u5FDC\u7B54\u306B unread_count \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002":
|
|
130
130
|
`\u304A\u77E5\u3089\u305B\u306E\u672A\u8AAD\u4EF6\u6570\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.status}\uFF09\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,res.status)}return count}async namedList(path2,envelope,label,map){return namedListFrom(await this.get(path2),envelope,label,map)}async cached(scope,projectId,load){const key={profile:this.options.profile,scope,project:projectId};
|
|
131
131
|
const options={...this.options.env!==void 0?{env:this.options.env}:{},refresh:this.options.refresh,...this.options.ttlMs!==void 0?{ttlMs:this.options.ttlMs}:{},...this.options.now!==void 0?{now:this.options.now}:{}};const hit=readCache(key,options);if(hit!==null&&Array.isArray(hit))return hit;const fresh=await load();writeCache(key,fresh,options);return fresh}applyAlias(kind,input){const table=this.options.aliases?.[kind];if(table===void 0)return input;const needle=input.trim().toLowerCase();for(const[
|
|
132
|
-
from,to]of Object.entries(table)){if(from.trim().toLowerCase()===needle&&typeof to==="string"&&to.trim()!=="")return to}return input}async backlogSpaces(){return this.cached("backlog-spaces",BACKLOG_SPACES_CACHE_KEY,()=>this.namedList(`${BACKLOG_BASE_PATH}/spaces`,"spaces","Backlog \u30B9\u30DA\u30FC\u30B9",backlogSpaceRow))}async backlogSpace(ref){return resolveNamed(ref,await this.backlogSpaces(),{flag
|
|
132
|
+
from,to]of Object.entries(table)){if(from.trim().toLowerCase()===needle&&typeof to==="string"&&to.trim()!=="")return to}return input}async backlogSpaces(){return this.cached("backlog-spaces",BACKLOG_SPACES_CACHE_KEY,()=>this.namedList(`${BACKLOG_BASE_PATH}/spaces`,"spaces","Backlog \u30B9\u30DA\u30FC\u30B9",backlogSpaceRow))}async backlogSpace(ref,flag="--space"){return resolveNamed(ref,await this.backlogSpaces(),{flag,label:"Backlog \u30B9\u30DA\u30FC\u30B9",scope:BACKLOG_SCOPE_LABEL})}async backlogDefaultSpace(){
|
|
133
133
|
const spaces=await this.backlogSpaces();if(spaces.length===1)return spaces[0];if(spaces.length===0){throw new UsageError("Backlog \u30B9\u30DA\u30FC\u30B9\u304C1\u4EF6\u3082\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093","TWP \u306E\u5916\u90E8\u9023\u643A\u8A2D\u5B9A\u3067 Backlog \u30B9\u30DA\u30FC\u30B9\u3092\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044\uFF08twp backlog space list \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\uFF09\u3002")}throw new UsageError(`Backlog \u30B9\u30DA\u30FC\u30B9\u304C ${spaces.
|
|
134
134
|
length} \u4EF6\u767B\u9332\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001--space \u30671\u3064\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,"twp backlog space list \u3067 ID \u3068\u30B9\u30DA\u30FC\u30B9URL\u3092\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002\u6BCE\u56DE\u306E\u6307\u5B9A\u3092\u7701\u304F\u306B\u306F twp configure \u3067\u65E2\u5B9A\u306E Backlog \u30B9\u30DA\u30FC\u30B9\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}async backlogProjects(spaceId){return this.cached(
|
|
135
135
|
"backlog-projects",spaceId,()=>this.namedList(backlogSpacePath(spaceId,"/projects"),"projects","Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",backlogProjectRow))}async backlogStatuses(spaceId,projectId){return this.cached("backlog-statuses",`${spaceId}/${projectId}`,()=>this.namedList(backlogSpacePath(spaceId,`/projects/${encodeURIComponent(assertBacklogPathSegment(projectId,"Backlog \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 ID"))}/statuses`),"statuses","Backlog \u30B9\u30C6\u30FC\u30BF\u30B9",backlogStatusRow))}async backlogUsers(spaceId,projectId){
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
|
+
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
+
import{USER_REF_FLAG,USER_REF_HELP}from"./chunk-UVCJXHWN.js";import{readBody}from"./chunk-IWYJSQ5I.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var ORG="/api/v2/organization";var PERIODS_PATH=`${ORG}/evaluation-periods`;var EVALUATIONS_PATH=`${ORG}/evaluations`;var GOAL_SHEETS_PATH=`${ORG}/goal-sheets`;var EVALUATION_FORBIDDEN="\u3053\u306E\u8A55\u4FA1\u3092\u8AAD\u3080\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u8A55\u4FA1\u3092\u8AAD\u3081\u308B\u306E\u306F\u8A55\u4FA1\u5BFE\u8C61\u8005\u672C\u4EBA\u30FB\u8A55\u4FA1\u8005\uFF08\u4E0A\u9577\u306E\u8A55\u4FA1\u30C1\u30A7\u30FC\u30F3\uFF09\u30FB\u30AA\u30D6\u30B6\u30FC\u30D0\u30FC\u30FB\u4EBA\u4E8B\u7BA1\u7406\u306E\u7BA1\u7406\u8005\u3060\u3051\u3067\u3059\u3002\u81EA\u5206\u304C\u8A55\u4FA1\u8005\u3068\u3057\u3066\u6301\u3064\u8A55\u4FA1\u306F twp evaluation subordinates --period <\u8A55\u4FA1\u671F\u9593ID> \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059";
|
|
4
|
+
function forbiddenOnly(guidance){return body=>body?.error==="forbidden"?guidance:void 0}var SENSITIVE="\u4EBA\u4E8B\u8A55\u4FA1\u30FB\u76EE\u6A19\u30FB\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u306E\u672C\u6587\u3092\u542B\u3080";var GOAL_SHEET_FORBIDDEN="\u3053\u306E\u76EE\u6A19\u30B7\u30FC\u30C8\u3092\u8AAD\u3080\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u76EE\u6A19\u30B7\u30FC\u30C8\u3092\u8AAD\u3081\u308B\u306E\u306F\u672C\u4EBA\u30FB\u8A55\u4FA1\u8005\uFF08\u4E0A\u9577\u306E\u8A55\u4FA1\u30C1\u30A7\u30FC\u30F3\uFF09\u30FB\u30AA\u30D6\u30B6\u30FC\u30D0\u30FC\u30FB\u4EBA\u4E8B\u7BA1\u7406\u306E\u7BA1\u7406\u8005\u3060\u3051\u3067\u3059\u3002\u90E8\u4E0B\u306E\u76EE\u6A19\u30B7\u30FC\u30C8\u306F twp goal-sheet list --period <\u8A55\u4FA1\u671F\u9593ID> \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059";
|
|
5
|
+
function singleId(input,command,label,listHint){const[raw,...rest]=input.args;const id=raw?.trim()??"";if(id==="")throw new UsageError(`${label}\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,`twp ${command} help`);if(rest.length>0)throw new UsageError(`${command} \u304C\u53D7\u3051\u53D6\u308C\u308B${label}\u306E ID \u306F1\u3064\u3060\u3051\u3067\u3059: ${rest.join(" ")}`,`twp ${command} help`);if(!isSafePathSegment(id))throw new UsageError(`${label}\u306E ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${id}`,
|
|
6
|
+
listHint);return id}function envelope(body,what){if(!isRecord(body)||body["result"]!==true){throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return body}function objectOf(body,what,key){const row=envelope(body,what)[key];if(!isRecord(row)||typeof row["id"]!=="string"){throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306B ${key} \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\
|
|
7
|
+
\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return row}var LEVELS=["A","B","C","D","E"];var CONTENT_FILE_FLAG={name:"--content-file",summary:"\u66F8\u304D\u8FBC\u3080\u5185\u5BB9\u306E JSON \u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};var SKELETON_FLAG={name:"--generate-cli-skeleton",summary:"--content-file \u306E\u3072\u306A\u5F62\u3092\u51FA\u3057\u3066\u7D42\u4E86\u3059\u308B\uFF08\u4F55\u3082\u66F8\u304D\u63DB\u3048\u306A\u3044\uFF09",takesValue:false};var BODY_FLAG={name:"--\
|
|
8
|
+
body",summary:"\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u306E\u672C\u6587\uFF08\u6587\u5B57\u5217\uFF09",takesValue:true,placeholder:"<\u672C\u6587>"};var BODY_FILE_FLAG={name:"--body-file",summary:"\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u306E\u672C\u6587\u306E\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};var CONTENT_MAX_CHARS=1e6;var FEEDBACK_MAX_CHARS=5e3;var SERVER_ERROR_TEXT="\u30B5\u30FC\u30D0\u30FC\u30A8\u30E9\u30FC";
|
|
9
|
+
function serverMessage(body){const message=isRecord(body)?body["message"]:void 0;return typeof message==="string"&&message!==""?[message]:[]}function text(value){return typeof value==="string"||typeof value==="number"?String(value):"-"}function parseContent(raw,source,allowed,label,hint,allowEmpty=false){let parsed;try{parsed=JSON.parse(raw)}catch{throw new UsageError(`${label}\u304C JSON \u3068\u3057\u3066\u8AAD\u3081\u307E\u305B\u3093\uFF08${source}\uFF09`,hint)}if(!isRecord(parsed))throw new UsageError(
|
|
10
|
+
`${label}\u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${source}\uFF09`,hint);const unknownKeys=Object.keys(parsed).filter(key=>!allowed.includes(key));if(unknownKeys.length>0)throw new UsageError(`${label}\u306B\u9001\u308C\u306A\u3044\u9805\u76EE\u304C\u3042\u308A\u307E\u3059\uFF08${source}\uFF09: ${unknownKeys.join(", ")}`,`\u9001\u308C\u308B\u9805\u76EE\u306F ${allowed.join(" / ")} \u3067\u3059\u3002${hint}`);if(!allowEmpty&&Object.
|
|
11
|
+
keys(parsed).length===0)throw new UsageError(`\u66F8\u304D\u63DB\u3048\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093\uFF08${source} \u304C\u7A7A\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3059\uFF09`,hint);return parsed}async function readContent(input,label,usage){return readBody(input,{flag:"--content",fileFlag:CONTENT_FILE_FLAG.name,label,maxChars:CONTENT_MAX_CHARS,usage})}function contentSource(input){return`${CONTENT_FILE_FLAG.name} ${input.flags.get(CONTENT_FILE_FLAG.name)??""}`}
|
|
12
|
+
function contentOf(input){return JSON.parse(requireResolved(input,"body"))}function currentOf(input){return JSON.parse(requireResolved(input,"current"))}function noSkeletonWithContent(input,usage){const wantsSkeleton=input.flags.has(SKELETON_FLAG.name);if(wantsSkeleton&&input.flags.has(CONTENT_FILE_FLAG.name))throw new UsageError("--generate-cli-skeleton \u3068 --content-file \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",usage);return wantsSkeleton}function writeResult(value){
|
|
13
|
+
if(!isRecord(value)||typeof value["skeleton"]!=="boolean")throw new Error("\u5185\u90E8\u30A8\u30E9\u30FC: \u66F8\u304D\u8FBC\u307F\u306E\u5FDC\u7B54\u306B\u5370\u304C\u3042\u308A\u307E\u305B\u3093\uFF08execute \u306E\u914D\u7DDA\u6F0F\u308C\uFF09");return value}var GOAL_SHEET_KEYS=["sections","goal_seq_map"];var GOAL_SHEET_WRITE_COLUMNS=["id","user_id","evaluation_period_id","status_label","submitted_at","approved_at","updated_at"];var GOAL_SHEET_ID_HINT="\u76EE\u6A19\u30B7\u30FC\u30C8\u306E ID \u306F twp goal-sheet mine / list \
|
|
14
|
+
\u306E id \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002";function goalSheetPath(input,command,suffix=""){return`${GOAL_SHEETS_PATH}/${encodeURIComponent(singleId(input,command,"\u76EE\u6A19\u30B7\u30FC\u30C8",GOAL_SHEET_ID_HINT))}${suffix}`}function describeSheet(sheet){return`${text(sheet["user_name"])} \u306E\u76EE\u6A19\u30B7\u30FC\u30C8\uFF08${text(sheet["evaluation_period_name"])}\u30FB${text(sheet["status_label"])}\u30FBID ${text(sheet["id"])}\uFF09`}async function readSheet(ctx,path){
|
|
15
|
+
return objectOf(await ctx.resolver.salesJson(path,"\u76EE\u6A19\u30B7\u30FC\u30C8"),"\u76EE\u6A19\u30B7\u30FC\u30C8","goal_sheet")}function updateSheetPlan(input){const path=goalSheetPath(input,"goal-sheet update");return input.flags.has(SKELETON_FLAG.name)?{method:"GET",path}:{method:"PUT",path,body:contentOf(input)}}var goalSheetUpdateOperation={name:"update",summary:"\u76EE\u6A19\u30B7\u30FC\u30C8\u306E\u76EE\u6A19\uFF08sections\uFF09\u3092\u66F8\u304D\u63DB\u3048\u308B\uFF08\u672C\u4EBA\u30FB\u4E0A\u9577\uFF09",
|
|
16
|
+
usage:"twp goal-sheet update <\u76EE\u6A19\u30B7\u30FC\u30C8ID> (--content-file <\u30D1\u30B9> | --generate-cli-skeleton)",description:"PUT /api/v2/organization/goal-sheets/{id}\u3002\u5185\u5BB9\uFF08--content-file\uFF09\u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3001\u9001\u308C\u308B\u30AD\u30FC\u306F sections \u3068 goal_seq_map \u3067\u3059\u3002\n\u26A0 sections \u306F\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\uFF08\u9001\u3063\u305F\u76EE\u6A19\u3060\u3051\u304C\u6B8B\u308A\u307E\u3059\uFF09\u3002--generate-cli-skeleton \u3067\u4ECA\u306E sections \u3092\u51FA\u3057\u3001\u305D\u308C\u3092\u76F4\u3057\u3066\u9001\u3063\u3066\u304F\u3060\u3055\u3044\u3002\n \u30B5\u30FC\u30D0\u306F\u300C\u7A7A\u306E sections \u3067\u4ECA\u306E\u76EE\u6A19\u3092\u6D88\u3059\u300D\u4FDD\u5B58\u3092\u7121\u8996\u3057\u307E\u3059\u3002\u76EE\u6A19\u3092\u8A70\u3081\u76F4\u3057\u3066\u756A\u53F7\u304C\u5909\u308F\u308B\u3068\u304D\u306F goal_seq_map\uFF08[{from, to}]\uFF09\u3067\u6708\u6B21\u9032\u6357\u3092\u4ED8\u3051\u66FF\u3048\u307E\u3059\u3002\n\u627F\u8A8D\u6E08\u307F\u306E\u76EE\u6A19\u30B7\u30FC\u30C8\u306F\u66F8\u304D\u63DB\u3048\u3089\u308C\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u304C 422 \u3067\u65AD\u308A\u307E\u3059\uFF09\u3002\u9001\u308B\u524D\u306B\u5BFE\u8C61\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-ru\
|
|
17
|
+
n \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002\n\n"+GOAL_SHEET_ID_HINT,flags:[CONTENT_FILE_FLAG,SKELETON_FLAG],forbidden:forbiddenOnly("\u3053\u306E\u76EE\u6A19\u30B7\u30FC\u30C8\u3092\u66F8\u304D\u63DB\u3048\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u66F8\u304D\u63DB\u3048\u3089\u308C\u308B\u306E\u306F\u672C\u4EBA\u3068\u73FE\u5728\u306E\u4E0A\u9577\u3060\u3051\u3067\u3059\uFF08\u30AA\u30D6\u30B6\u30FC\u30D0\u30FC\u30FB\u4EBA\u4E8B\u7BA1\u7406\u306E\u7BA1\u7406\u8005\u3082\u66F8\u304D\u63DB\u3048\u3089\u308C\u307E\u305B\u3093\uFF09\u3002"),
|
|
18
|
+
rejected:server=>server.includes(SERVER_ERROR_TEXT)||server.includes("\u627F\u8A8D\u6E08\u307F")?"\u627F\u8A8D\u6E08\u307F\u306E\u76EE\u6A19\u30B7\u30FC\u30C8\u306F\u66F8\u304D\u63DB\u3048\u3089\u308C\u307E\u305B\u3093\u3002\u72B6\u614B\u306F twp goal-sheet get <\u76EE\u6A19\u30B7\u30FC\u30C8ID> \u306E status_label \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002":void 0,sensitiveBody:SENSITIVE,async prepare(input,ctx){const usage="twp goal-sheet update help";const path=goalSheetPath(input,"goal\
|
|
19
|
+
-sheet update");if(noSkeletonWithContent(input,usage))return input;const raw=await readContent(input,"\u76EE\u6A19\u30B7\u30FC\u30C8\u306E\u5185\u5BB9",usage);if(raw===void 0)throw new UsageError("\u76EE\u6A19\u30B7\u30FC\u30C8\u306E\u5185\u5BB9\u3092 --content-file <\u30D1\u30B9> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","\u3072\u306A\u5F62\u306F twp goal-sheet update <\u76EE\u6A19\u30B7\u30FC\u30C8ID> --generate-cli-skeleton \u3067\u51FA\u305B\u307E\u3059\u3002");const content=parseContent(
|
|
20
|
+
raw,contentSource(input),GOAL_SHEET_KEYS,"\u76EE\u6A19\u30B7\u30FC\u30C8\u306E\u5185\u5BB9",usage);if("sections"in content&&!isRecord(content["sections"])&&!Array.isArray(content["sections"])){throw new UsageError(`sections \u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\uFF08\u533A\u5206\u540D \u2192 \u4E2D\u8EAB\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${contentSource(input)}\uFF09`,usage)}return withResolved(input,{body:JSON.stringify(content),current:JSON.stringify(await readSheet(
|
|
21
|
+
ctx,path))})},plan:updateSheetPlan,plannedNotes:input=>input.flags.has(SKELETON_FLAG.name)?["\u4ECA\u306E\u76EE\u6A19\u30B7\u30FC\u30C8\u3092\u8AAD\u3080\u3060\u3051\u3067\u3001\u66F8\u304D\u63DB\u3048\u307E\u305B\u3093"]:[`\u66F8\u304D\u63DB\u3048\u308B: ${describeSheet(currentOf(input))}\u30FB\u9001\u308B\u9805\u76EE: ${Object.keys(contentOf(input)).join(", ")}`,..."sections"in contentOf(input)?["sections \u306F\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059"]:[]],execute:async(input,ctx)=>({
|
|
22
|
+
skeleton:input.flags.has(SKELETON_FLAG.name),body:await ctx.send(updateSheetPlan(input))}),summarize(value){const result=writeResult(value);const sheet=objectOf(result.body,"\u76EE\u6A19\u30B7\u30FC\u30C8","goal_sheet");return result.skeleton?{sections:sheet["sections"]??[]}:pick(sheet,GOAL_SHEET_WRITE_COLUMNS)},raw(value){const result=writeResult(value);const sheet=objectOf(result.body,"\u76EE\u6A19\u30B7\u30FC\u30C8","goal_sheet");return result.skeleton?{sections:sheet["sections"]??[]}:sheet},
|
|
23
|
+
notes(value){const result=writeResult(value);return result.skeleton?["\u4ECA\u306E sections \u3092\u51FA\u3057\u307E\u3057\u305F\u3002\u76F4\u3057\u3066\u304B\u3089 twp goal-sheet update <\u76EE\u6A19\u30B7\u30FC\u30C8ID> --content-file <\u30D1\u30B9> \u3067\u9001\u3063\u3066\u304F\u3060\u3055\u3044"]:serverMessage(result.body)}};var goalSheetSubmitOperation={name:"submit",summary:"\u76EE\u6A19\u30B7\u30FC\u30C8\u3092\u4E0A\u9577\u3078\u63D0\u51FA\u3059\u308B\uFF08\u672C\u4EBA\u30FB--yes \u304C\u8981\u308B\uFF09",
|
|
24
|
+
usage:"twp goal-sheet submit <\u76EE\u6A19\u30B7\u30FC\u30C8ID> --yes",description:"POST /api/v2/organization/goal-sheets/{id}/submit\u3002\u4E0B\u66F8\u304D\u306E\u76EE\u6A19\u30B7\u30FC\u30C8\u3060\u3051\u3092\u63D0\u51FA\u3067\u304D\u307E\u3059\uFF08\u63D0\u51FA\u3059\u308B\u3068\u4E0A\u9577\u306E\u627F\u8A8D\u5F85\u3061\u306B\u306A\u308A\u3001\u672C\u4EBA\u306F\u66F8\u304D\u63DB\u3048\u3089\u308C\u307E\u305B\u3093\uFF09\u3002\n\u672A\u8A18\u5165\u306E\u9805\u76EE\u304C\u3042\u308B\u3068\u30B5\u30FC\u30D0\u304C 422 \u3067\u65AD\u308A\u307E\u3059\uFF08\u4E0D\u8DB3\u9805\u76EE\u306F --output json \u306E\u5FDC\u7B54\u306B\u51FA\u307E\u3059\uFF09\u3002\u9001\u308B\u524D\u306B\u5BFE\u8C61\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002\n\n"+
|
|
25
|
+
GOAL_SHEET_ID_HINT,destructive:true,confirmation:"\u76EE\u6A19\u30B7\u30FC\u30C8\u3092\u4E0A\u9577\u3078\u63D0\u51FA\u3059\u308B\u64CD\u4F5C\uFF08\u63D0\u51FA\u5F8C\u306F\u672C\u4EBA\u304C\u66F8\u304D\u63DB\u3048\u3089\u308C\u307E\u305B\u3093\uFF09",flags:[],forbidden:forbiddenOnly("\u76EE\u6A19\u30B7\u30FC\u30C8\u3092\u63D0\u51FA\u3067\u304D\u308B\u306E\u306F\u672C\u4EBA\u3060\u3051\u3067\u3059\u3002"),rejected:server=>server.includes(SERVER_ERROR_TEXT)||server.includes("\u4E0B\u66F8\u304D")?"\u63D0\
|
|
26
|
+
\u51FA\u3067\u304D\u308B\u306E\u306F\u4E0B\u66F8\u304D\u306E\u76EE\u6A19\u30B7\u30FC\u30C8\u3060\u3051\u3067\u3059\u3002\u72B6\u614B\u306F twp goal-sheet get <\u76EE\u6A19\u30B7\u30FC\u30C8ID> \u306E status_label \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002":void 0,sensitiveBody:SENSITIVE,prepare:async(input,ctx)=>withResolved(input,{current:JSON.stringify(await readSheet(ctx,goalSheetPath(input,"goal-sheet submit")))}),plan:input=>({method:"POST",path:goalSheetPath(input,"goal-sheet submit",
|
|
27
|
+
"/submit")}),plannedNotes:input=>[`\u63D0\u51FA\u3059\u308B: ${describeSheet(currentOf(input))}`],summarize:body=>pick(objectOf(body,"\u76EE\u6A19\u30B7\u30FC\u30C8\u306E\u63D0\u51FA","goal_sheet"),GOAL_SHEET_WRITE_COLUMNS),raw:body=>objectOf(body,"\u76EE\u6A19\u30B7\u30FC\u30C8\u306E\u63D0\u51FA","goal_sheet"),notes:serverMessage};var goalSheetWriteOperations=[goalSheetUpdateOperation,goalSheetSubmitOperation];var STEP_KEYS=["level","position_level","position_comment","bonus_level","bonus_comme\
|
|
28
|
+
nt","feedback_comment","comment"];var LEVEL_KEYS=["level","position_level","bonus_level"];var COMMENT_MAX_CHARS=2e3;var STEP_FLAG={name:"--step",summary:"\u5165\u529B\u3059\u308B\u8A55\u4FA1\u6BB5\u306E\u756A\u53F7\uFF081\u304B\u3089\u3002\u3044\u307E\u306E\u6BB5 current_step \u3060\u3051\u3092\u66F8\u3051\u308B\uFF09",takesValue:true,placeholder:"<n>"};var DRAFT_FLAG={name:"--draft",summary:"\u4E00\u6642\u4FDD\u5B58\u306B\u3059\u308B\uFF08\u6BB5\u3092\u78BA\u5B9A\u305B\u305A\u3001\u6B21\u306E\u8A55\u4FA1\u8005\u3078\u9032\u3081\u306A\u3044\uFF09",
|
|
29
|
+
takesValue:false};var EVALUATION_ID_HINT="\u8A55\u4FA1\u306E ID \u306F twp evaluation subordinates \u306E evaluation_id \u5217\u30FBtwp evaluation list \u306E id \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002";var EVALUATION_WRITE_COLUMNS=["id","user_id","evaluation_period_id","status_label","current_step","total_steps","final_level","feedback_status"];function evaluationPath(input,command,suffix=""){return`${EVALUATIONS_PATH}/${encodeURIComponent(singleId(input,command,"\u8A55\u4FA1",EVALUATION_ID_HINT))}${suffix}`}
|
|
30
|
+
function describeEvaluation(evaluation){return`${text(evaluation["user_name"])} \u306E\u8A55\u4FA1\uFF08${text(evaluation["evaluation_period_name"])}\u30FB${text(evaluation["status_label"])}\u30FB\u6BB5 ${text(evaluation["current_step"])}/${text(evaluation["total_steps"])}\u30FBID ${text(evaluation["id"])}\uFF09`}async function readEvaluation(ctx,path){return objectOf(await ctx.resolver.salesJson(path,"\u8A55\u4FA1"),"\u8A55\u4FA1","evaluation")}function stepNumber(input){const raw=nonEmpty(input.
|
|
31
|
+
flags,STEP_FLAG.name)?.trim();if(raw===void 0)throw new UsageError("--step\uFF08\u5165\u529B\u3059\u308B\u8A55\u4FA1\u6BB5\u306E\u756A\u53F7\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","\u3044\u307E\u306E\u6BB5\u306F twp evaluation get <\u8A55\u4FA1ID> \u306E current_step \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002");if(!/^[1-9][0-9]{0,2}$/.test(raw))throw new UsageError(`--step \u306F 1 \u4EE5\u4E0A\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,
|
|
32
|
+
"\u3044\u307E\u306E\u6BB5\u306F twp evaluation get <\u8A55\u4FA1ID> \u306E current_step \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002");return raw}function checkStepContent(content,source){for(const key of LEVEL_KEYS){const value=content[key];if(value!==void 0&&value!==null&&!LEVELS.includes(value)){throw new UsageError(`${key} \u306B\u6307\u5B9A\u3067\u304D\u306A\u3044\u5024\u3067\u3059\uFF08${source}\uFF09: ${JSON.stringify(value)}`,`\u8A55\u8A9E\u306F ${LEVELS.join(" / ")} \u304B null \u3067\u3059\u3002`)}}
|
|
33
|
+
for(const key of STEP_KEYS.filter(k=>!LEVEL_KEYS.includes(k))){const value=content[key];if(value===void 0||value===null)continue;if(typeof value!=="string")throw new UsageError(`${key} \u306F\u6587\u5B57\u5217\u304B null \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${source}\uFF09`,"twp evaluation step update help");if([...value].length>COMMENT_MAX_CHARS)throw new UsageError(`${key} \u304C\u9577\u3059\u304E\u307E\u3059\uFF08${[...value].length} \u6587\u5B57\u30FB\u4E0A\u9650 ${COMMENT_MAX_CHARS}\
|
|
34
|
+
\u6587\u5B57\uFF09`,"twp evaluation step update help")}}function stepSkeleton(evaluation,step){const steps=Array.isArray(evaluation["steps"])?evaluation["steps"]:[];const found=steps.find(row=>isRecord(row)&&String(row["step"])===step);const source=isRecord(found)?found:{};const out={};for(const key of STEP_KEYS)out[key]=source[key]??null;out["level"]=source["level"]??source["rating"]??null;return out}function stepPlan(input){const step=stepNumber(input);if(input.flags.has(SKELETON_FLAG.name))return{
|
|
35
|
+
method:"GET",path:evaluationPath(input,"evaluation step update")};return{method:"PUT",path:evaluationPath(input,"evaluation step update",`/steps/${step}`),body:{...contentOf(input),...input.flags.has(DRAFT_FLAG.name)?{is_draft:true}:{}}}}var stepUpdateOperation={name:"update",summary:"\u8A55\u4FA1\u6BB5\u3092\u5165\u529B\u3059\u308B\uFF08\u8A55\u4FA1\u8005\u3002--draft \u3067\u4E00\u6642\u4FDD\u5B58\uFF09",usage:"twp evaluation step update <\u8A55\u4FA1ID> --step <n> (--content-file <\u30D1\u30B9> | --generate-cli-\
|
|
36
|
+
skeleton) [--draft]",description:`PUT /api/v2/organization/evaluations/{id}/steps/{step}\u3002\u66F8\u3051\u308B\u306E\u306F\u3044\u307E\u306E\u6BB5\uFF08current_step\uFF09\u3060\u3051\u3067\u3001\u305D\u306E\u6BB5\u306E\u8A55\u4FA1\u8005\uFF08\u4EE3\u7406\u3092\u9664\u304F\uFF09\u304C\u4F7F\u3044\u307E\u3059\u3002
|
|
37
|
+
\u26A0 --draft \u3092\u4ED8\u3051\u306A\u3044\u3068\u6BB5\u3092\u78BA\u5B9A\u3057\u3001\u8A55\u4FA1\u306F\u6B21\u306E\u8A55\u4FA1\u8005\u3078\u9032\u307F\u307E\u3059\uFF08\u6700\u5F8C\u306E\u6BB5\u306A\u3089\u8A55\u4FA1\u5B8C\u4E86\uFF09\u3002\u9014\u4E2D\u306E\u4FDD\u5B58\u306F --draft \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002
|
|
38
|
+
|
|
39
|
+
\u5185\u5BB9\uFF08--content-file\uFF09\u306F JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3001\u9001\u308C\u308B\u30AD\u30FC\u306F ${STEP_KEYS.join(" / ")} \u3067\u3059\u3002
|
|
40
|
+
\u66F8\u304B\u306A\u304B\u3063\u305F\u9805\u76EE\u306F\u3044\u307E\u306E\u5165\u529B\u3092\u5F15\u304D\u7D99\u3044\u3067\u9001\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306F\u9001\u3089\u306A\u304B\u3063\u305F\u9805\u76EE\u3092\u7A7A\u306B\u3059\u308B\u305F\u3081\uFF09\u3002\u6D88\u3059\u306A\u3089 null \u3092\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002
|
|
41
|
+
level / position_level / bonus_level \u306F ${LEVELS.join(" / ")} \u304B null\u3001\u30B3\u30E1\u30F3\u30C8\u985E\u306F ${COMMENT_MAX_CHARS} \u6587\u5B57\u307E\u3067\u3002\u5FC5\u9808\u306E\u9805\u76EE\u304C\u6B20\u3051\u3066\u3044\u308B\u3068\u30B5\u30FC\u30D0\u304C 422 \u3067\u65AD\u308A\u307E\u3059\uFF08\u78BA\u5B9A\u6642\u306E\u307F\uFF09\u3002
|
|
42
|
+
--generate-cli-skeleton \u306F\u305D\u306E\u6BB5\u306E\u4ECA\u306E\u5165\u529B\u3092\u51FA\u3057\u307E\u3059\u3002\u9001\u308B\u524D\u306B\u5BFE\u8C61\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002
|
|
43
|
+
|
|
44
|
+
`+EVALUATION_ID_HINT,flags:[STEP_FLAG,CONTENT_FILE_FLAG,SKELETON_FLAG,DRAFT_FLAG],forbidden:body=>body?.error==="forbidden"||body?.error==="unauthorized"?"\u3053\u306E\u8A55\u4FA1\u6BB5\u3092\u5165\u529B\u3059\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u5165\u529B\u3067\u304D\u308B\u306E\u306F\u3001\u305D\u306E\u6BB5\u306B\u5272\u308A\u5F53\u3066\u3089\u308C\u305F\u8A55\u4FA1\u8005\u3060\u3051\u3067\u3059\u3002":void 0,rejected:server=>server.includes(SERVER_ERROR_TEXT)?"\u66F8\u3051\u308B\u306E\u306F\u3044\u307E\
|
|
45
|
+
\u306E\u6BB5\uFF08current_step\uFF09\u3060\u3051\u3067\u3059\u3002twp evaluation get <\u8A55\u4FA1ID> \u306E current_step \u3068 status_label \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002":void 0,sensitiveBody:SENSITIVE,async prepare(input,ctx){const usage="twp evaluation step update help";stepNumber(input);const path=evaluationPath(input,"evaluation step update");if(noSkeletonWithContent(input,usage)){if(input.flags.has(DRAFT_FLAG.name))throw new UsageError("--generate-cli-skelet\
|
|
46
|
+
on \u3068 --draft \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",usage);return input}const raw=await readContent(input,"\u8A55\u4FA1\u6BB5\u306E\u5185\u5BB9",usage);if(raw===void 0)throw new UsageError("\u8A55\u4FA1\u6BB5\u306E\u5185\u5BB9\u3092 --content-file <\u30D1\u30B9> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","\u3072\u306A\u5F62\u306F twp evaluation step update <\u8A55\u4FA1ID> --step <n> --generate-cli-skeleton \u3067\u51FA\u305B\u307E\u3059\u3002");const content=parseContent(
|
|
47
|
+
raw,contentSource(input),STEP_KEYS,"\u8A55\u4FA1\u6BB5\u306E\u5185\u5BB9",usage);checkStepContent(content,contentSource(input));const current=await readEvaluation(ctx,path);const merged={...stepSkeleton(current,stepNumber(input)),...content};return withResolved(input,{body:JSON.stringify(merged),written:JSON.stringify(Object.keys(content)),current:JSON.stringify(current)})},plan:stepPlan,plannedNotes:input=>{if(input.flags.has(SKELETON_FLAG.name))return["\u4ECA\u306E\u8A55\u4FA1\u3092\u8AAD\u3080\u3060\u3051\u3067\u3001\u66F8\u304D\u63DB\u3048\u307E\u305B\u3093"];
|
|
48
|
+
const how=input.flags.has(DRAFT_FLAG.name)?"\u4E00\u6642\u4FDD\u5B58\u3057\u307E\u3059\uFF08\u6BB5\u306F\u78BA\u5B9A\u3057\u307E\u305B\u3093\uFF09":"\u6BB5\u3092\u78BA\u5B9A\u3057\u3001\u6B21\u306E\u8A55\u4FA1\u8005\u3078\u9032\u3081\u307E\u3059\uFF08\u4E00\u6642\u4FDD\u5B58\u306F --draft\uFF09";const written=JSON.parse(requireResolved(input,"written"));return[`\u5165\u529B\u3059\u308B: ${describeEvaluation(currentOf(input))}\u30FB\u6BB5 ${stepNumber(input)}\u30FB\u66F8\u304D\u63DB\u3048\u308B\u9805\u76EE: ${written.
|
|
49
|
+
join(", ")}\uFF08\u305D\u308C\u4EE5\u5916\u306F\u3044\u307E\u306E\u5024\u3092\u9001\u308A\u307E\u3059\uFF09`,how]},execute:async(input,ctx)=>{const plan=stepPlan(input);const body=await ctx.send(plan);if(!input.flags.has(SKELETON_FLAG.name))return{skeleton:false,body};const evaluation=objectOf(body,"\u8A55\u4FA1","evaluation");return{skeleton:true,body:{result:true,evaluation,skeleton:stepSkeleton(evaluation,stepNumber(input))}}},summarize(value){const result=writeResult(value);if(result.skeleton)
|
|
50
|
+
return result.body["skeleton"];return pick(objectOf(result.body,"\u8A55\u4FA1\u6BB5\u306E\u5165\u529B","evaluation"),EVALUATION_WRITE_COLUMNS)},raw(value){const result=writeResult(value);if(result.skeleton)return result.body["skeleton"];return objectOf(result.body,"\u8A55\u4FA1\u6BB5\u306E\u5165\u529B","evaluation")},notes(value){const result=writeResult(value);return result.skeleton?["\u305D\u306E\u6BB5\u306E\u4ECA\u306E\u5165\u529B\u3092\u51FA\u3057\u307E\u3057\u305F\u3002\u76F4\u3057\u3066\u304B\u3089 --content-file \u3067\u9001\u3063\u3066\u304F\u3060\u3055\u3044\uFF08\u9014\u4E2D\u306A\u3089 --draft\uFF09"]:
|
|
51
|
+
serverMessage(result.body)}};var stepResource={name:"step",summary:"\u8A55\u4FA1\u6BB5\u306E\u5165\u529B\uFF08\u8A55\u4FA1\u8005\uFF09",operations:[stepUpdateOperation]};var FEEDBACK_FORBIDDEN=forbiddenOnly("\u3053\u306E\u8A55\u4FA1\u306E\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3092\u6271\u3046\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u6271\u3048\u308B\u306E\u306F\u4EBA\u4E8B\u7BA1\u7406\u306E\u7BA1\u7406\u8005\u30FB\u8A55\u4FA1\u5BFE\u8C61\u8005\u306E\u4E0A\u9577\uFF08\u8A55\u4FA1\u671F\u9593\u6642\u70B9\uFF09\u30FB\u6700\u7D42\u6BB5\u306E\u8A55\u4FA1\u8005\u3060\u3051\u3067\u3059\u3002");
|
|
52
|
+
async function feedbackBody(input,usage){const body=await readBody(input,{flag:BODY_FLAG.name,fileFlag:BODY_FILE_FLAG.name,label:"\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u306E\u672C\u6587",maxChars:FEEDBACK_MAX_CHARS,usage});if(body===void 0)throw new UsageError("\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u306E\u672C\u6587\u3092 --body-file <\u30D1\u30B9>\uFF08\u307E\u305F\u306F --body\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);return body}function feedbackNotes(input,verb){
|
|
53
|
+
const current=currentOf(input);const body=input.resolved?.["body"];return[`${verb}: ${describeEvaluation(current)}`,...body===void 0?[]:[`\u672C\u6587 ${[...JSON.parse(body)].length} \u6587\u5B57\uFF08\u672C\u6587\u305D\u306E\u3082\u306E\u306F --dry-run --no-redact \u3067\u8868\u793A\u3055\u308C\u307E\u3059\uFF09`]]}var FEEDBACK_STATE_HINT="\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3092\u6271\u3048\u308B\u306E\u306F\u8A55\u4FA1\u5B8C\u4E86\uFF08completed\uFF09\u304B\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u4F5C\u6210\u6E08\uFF08feedback_ready\uFF09\u306E\u8A55\u4FA1\u3060\u3051\u3067\u3059\u3002twp evaluation get <\u8A55\u4FA1ID> \u306E status_label \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
|
|
54
|
+
var feedbackSaveOperation={name:"save",summary:"\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3092\u4E0B\u66F8\u304D\u4FDD\u5B58\u3059\u308B\uFF08\u8A55\u4FA1\u5BFE\u8C61\u8005\u306B\u306F\u5C4A\u304B\u306A\u3044\uFF09",usage:"twp evaluation feedback save <\u8A55\u4FA1ID> (--body-file <\u30D1\u30B9> | --body <\u672C\u6587>)",description:`PUT /api/v2/organization/evaluations/{id}/feedback\u3002\u8A55\u4FA1\u5B8C\u4E86\u5F8C\u306E\u8A55\u4FA1\u3060\u3051\u306B\u4FDD\u5B58\u3067\u304D\u3001\u8A55\u4FA1\u306F\u300C\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u4F5C\u6210\u6E08\u300D\u306B\u306A\u308A\u307E\u3059\u3002
|
|
55
|
+
\u4FDD\u5B58\u3057\u305F\u3060\u3051\u3067\u306F\u8A55\u4FA1\u5BFE\u8C61\u8005\u306B\u5C4A\u304D\u307E\u305B\u3093\uFF08\u5C4A\u3051\u308B\u306E\u306F twp evaluation feedback publish\uFF09\u3002
|
|
56
|
+
\u672C\u6587\u306F ${FEEDBACK_MAX_CHARS} \u6587\u5B57\u307E\u3067\u3002\u4FDD\u5B58\u6E08\u307F\u306E\u672C\u6587\u306F\u9001\u3063\u305F\u672C\u6587\u3067\u7F6E\u304D\u63DB\u308F\u308A\u307E\u3059\uFF08\u8B70\u4E8B\u30E1\u30E2\u30FB\u4F46\u3057\u66F8\u304D\u30FB\u6B21\u671F\u76EE\u6A19\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002
|
|
57
|
+
|
|
58
|
+
`+EVALUATION_ID_HINT,flags:[BODY_FLAG,BODY_FILE_FLAG],forbidden:FEEDBACK_FORBIDDEN,rejected:server=>server.includes(SERVER_ERROR_TEXT)||server.includes("\u8A55\u4FA1\u5B8C\u4E86\u5F8C")?FEEDBACK_STATE_HINT:void 0,sensitiveBody:SENSITIVE,async prepare(input,ctx){const body=await feedbackBody(input,"twp evaluation feedback save help");return withResolved(input,{body:JSON.stringify(body),current:JSON.stringify(await readEvaluation(ctx,evaluationPath(input,"evaluation feedback save")))})},plan:input=>({
|
|
59
|
+
method:"PUT",path:evaluationPath(input,"evaluation feedback save","/feedback"),body:{feedback:JSON.parse(requireResolved(input,"body"))}}),plannedNotes:input=>feedbackNotes(input,"\u4E0B\u66F8\u304D\u4FDD\u5B58\u3059\u308B"),summarize:body=>pick(objectOf(body,"\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u306E\u4FDD\u5B58","evaluation"),EVALUATION_WRITE_COLUMNS),raw:body=>objectOf(body,"\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u306E\u4FDD\u5B58","evaluation"),notes:serverMessage};var feedbackSendOperation={
|
|
60
|
+
name:"send",summary:"\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3092\u4FDD\u5B58\u3057\u3066\u8A55\u4FA1\u5BFE\u8C61\u8005\u3078\u516C\u958B\u3059\u308B\uFF08--yes \u304C\u8981\u308B\uFF09",usage:"twp evaluation feedback send <\u8A55\u4FA1ID> (--body-file <\u30D1\u30B9> | --body <\u672C\u6587>) --yes",description:"POST /api/v2/organization/evaluations/{id}/feedback\u3002\u672C\u6587\u3092\u4FDD\u5B58\u3057\u3001\u305D\u306E\u307E\u307E\u516C\u958B\u3057\u307E\u3059\uFF08\u8A55\u4FA1\u5BFE\u8C61\u8005\u672C\u4EBA\u3078\u901A\u77E5\u3055\u308C\u307E\u3059\uFF09\u3002\n\u26A0 \u516C\u958B\u3092\u53D6\u308A\u6D88\u3059\u65B9\u6CD5\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u5148\u306B --dry-run --no-redact \u3067\u9001\u308B\u672C\u6587\u3068\u76F8\u624B\u3092\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\u3002\n\u4E0B\u66F8\u304D\u306E\u307E\u307E\u78BA\u304B\u3081\u305F\u3044\u306A\u3089 twp evaluation feedba\
|
|
61
|
+
ck save \u3092\u4F7F\u3044\u3001\u516C\u958B\u306F twp evaluation feedback publish \u3067\u884C\u3048\u307E\u3059\u3002\n\u30B5\u30FC\u30D0\u306F\u4FDD\u5B58\u3057\u3066\u304B\u3089\u516C\u958B\u3057\u307E\u3059\u3002\u516C\u958B\u3060\u3051\u304C\u65AD\u3089\u308C\u305F\uFF08\u6B21\u671F\u76EE\u6A19\u3092\u5199\u305B\u306A\u3044\u7B49\uFF09\u3068\u304D\u306F\u3001\u672C\u6587\u306F\u4FDD\u5B58\u6E08\u307F\u30FB\u672A\u516C\u958B\u3067\u6B8B\u308A\u307E\u3059\u3002\n\n"+EVALUATION_ID_HINT,destructive:true,
|
|
62
|
+
confirmation:"\u8A55\u4FA1\u5BFE\u8C61\u8005\u672C\u4EBA\u3078\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3092\u516C\u958B\u3057\u3066\u901A\u77E5\u3059\u308B\u64CD\u4F5C\uFF08\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\uFF09",flags:[BODY_FLAG,BODY_FILE_FLAG],forbidden:FEEDBACK_FORBIDDEN,rejected:server=>server.includes(SERVER_ERROR_TEXT)||server.includes("\u8A55\u4FA1\u5B8C\u4E86\u5F8C")?FEEDBACK_STATE_HINT:"\u672C\u6587\u306F\u4FDD\u5B58\u6E08\u307F\u3067\u3001\u307E\u3060\u516C\u958B\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408\u304C\u3042\u308A\u307E\u3059\uFF08twp evaluation get <\u8A55\u4FA1ID> \u306E status_label \u3067\u78BA\u8A8D\u3057\u3001\u7406\u7531\u3092\u76F4\u3057\u3066\u304B\u3089 twp ev\
|
|
63
|
+
aluation feedback publish \u3067\u516C\u958B\u3067\u304D\u307E\u3059\uFF09\u3002",sensitiveBody:SENSITIVE,async prepare(input,ctx){const body=await feedbackBody(input,"twp evaluation feedback send help");return withResolved(input,{body:JSON.stringify(body),current:JSON.stringify(await readEvaluation(ctx,evaluationPath(input,"evaluation feedback send")))})},plan:input=>({method:"POST",path:evaluationPath(input,"evaluation feedback send","/feedback"),body:{feedback:JSON.parse(requireResolved(input,
|
|
64
|
+
"body"))}}),plannedNotes:input=>feedbackNotes(input,"\u516C\u958B\u3059\u308B\uFF08\u672C\u4EBA\u3078\u901A\u77E5\uFF09"),summarize:body=>pick(objectOf(body,"\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u306E\u9001\u4FE1","evaluation"),EVALUATION_WRITE_COLUMNS),raw:body=>objectOf(body,"\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u306E\u9001\u4FE1","evaluation"),notes:serverMessage};var feedbackPublishOperation={name:"publish",summary:"\u4FDD\u5B58\u6E08\u307F\u306E\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3092\u8A55\u4FA1\u5BFE\u8C61\u8005\u3078\u516C\u958B\u3059\u308B\uFF08--yes \u304C\u8981\u308B\uFF09",
|
|
65
|
+
usage:"twp evaluation feedback publish <\u8A55\u4FA1ID> --yes",description:"POST /api/v2/organization/evaluations/{id}/feedback/publish\u3002\u300C\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u4F5C\u6210\u6E08\u300D\u306E\u8A55\u4FA1\u3060\u3051\u3092\u516C\u958B\u3067\u304D\u307E\u3059\uFF08\u8A55\u4FA1\u5BFE\u8C61\u8005\u672C\u4EBA\u3078\u901A\u77E5\u3055\u308C\u307E\u3059\uFF09\u3002\n\u26A0 \u516C\u958B\u3092\u53D6\u308A\u6D88\u3059\u65B9\u6CD5\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u6B21\u671F\u306B\u5411\u3051\u3066\u306E\u76EE\u6A19\u304C\u5165\u3063\u3066\u3044\u308C\u3070\u3001\u516C\u958B\u3068\u540C\u6642\u306B\u6B21\u671F\u306E\u76EE\u6A19\u30B7\u30FC\u30C8\u3078\u5199\u3055\u308C\u307E\u3059\n\uFF08\u5199\u305B\u306A\u3044\u72B6\u614B\u306A\u3089\u30B5\u30FC\u30D0\u304C\u7406\u7531\u3092\u6DFB\u3048\u3066 422 \u3067\u65AD\u308A\u307E\u3059\uFF09\u3002\u9001\u308B\u524D\u306B\u5BFE\u8C61\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002\n\n"+
|
|
66
|
+
EVALUATION_ID_HINT,destructive:true,confirmation:"\u8A55\u4FA1\u5BFE\u8C61\u8005\u672C\u4EBA\u3078\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3092\u516C\u958B\u3057\u3066\u901A\u77E5\u3059\u308B\u64CD\u4F5C\uFF08\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\uFF09",flags:[],forbidden:FEEDBACK_FORBIDDEN,rejected:server=>server.includes(SERVER_ERROR_TEXT)?"\u516C\u958B\u3067\u304D\u308B\u306E\u306F\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u4F5C\u6210\u6E08\uFF08feedback_ready\uFF09\u3067\u672C\u6587\u304C\u3042\u308B\u8A55\u4FA1\u3060\u3051\u3067\u3059\u3002twp evaluation get <\u8A55\u4FA1ID> \u306E status_label \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002":
|
|
67
|
+
void 0,sensitiveBody:SENSITIVE,prepare:async(input,ctx)=>withResolved(input,{current:JSON.stringify(await readEvaluation(ctx,evaluationPath(input,"evaluation feedback publish")))}),plan:input=>({method:"POST",path:evaluationPath(input,"evaluation feedback publish","/feedback/publish")}),plannedNotes:input=>{const current=currentOf(input);const feedback=current["feedback"];return[...feedbackNotes(input,"\u516C\u958B\u3059\u308B\uFF08\u672C\u4EBA\u3078\u901A\u77E5\uFF09"),typeof feedback==="string"&&
|
|
68
|
+
feedback!==""?`\u516C\u958B\u3055\u308C\u308B\u672C\u6587 ${[...feedback].length} \u6587\u5B57\uFF08\u672C\u6587\u306F twp evaluation get <\u8A55\u4FA1ID> --no-redact \u306E feedback \u3067\u8AAD\u3081\u307E\u3059\uFF09`:"\u4FDD\u5B58\u6E08\u307F\u306E\u672C\u6587\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF09"]},summarize:body=>pick(objectOf(body,"\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u306E\u516C\u958B","evaluation"),EVALUATION_WRITE_COLUMNS),
|
|
69
|
+
raw:body=>objectOf(body,"\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u306E\u516C\u958B","evaluation"),notes:serverMessage};var feedbackWriteOperations=[feedbackSaveOperation,feedbackSendOperation,feedbackPublishOperation];var PROJECT_EVALUATION_KEYS=["role_level","evaluation_level","technical_skill","communication","problem_solving","teamwork","overall","comment"];var PERIOD_FLAG={name:"--period",summary:"\u8A55\u4FA1\u671F\u9593\u306E ID\uFF08twp evaluation period current / list \u3067\u78BA\u8A8D\u3067\u304D\u308B\uFF09",
|
|
70
|
+
takesValue:true,placeholder:"<\u8A55\u4FA1\u671F\u9593ID>"};var CURRENT_PERIOD_PATH=`${ORG}/evaluation-periods/current`;var PROJECT_EVALUATION_COLUMNS=["id","project_id","user_id","evaluation_period_id","evaluation_type_label","evaluator_id","evaluation_data"];function projectEvaluationSkeleton(){return Object.fromEntries(PROJECT_EVALUATION_KEYS.map(key=>[key,null]))}function projectEvaluationPlan(input){const raw=input.resolved?.["body"];return{method:"POST",path:`${ORG}/projects/${encodeURIComponent(
|
|
71
|
+
requireResolved(input,"projectId"))}/evaluations`,body:{evaluation_type:"resource",evaluation_period_id:requireResolved(input,"periodId"),user_id:requireResolved(input,"userId"),...raw===void 0?{}:{evaluation_data:JSON.parse(raw)}}}}var projectEvaluationCreateOperation={name:"create",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u306E\u8981\u54E1\u8A55\u4FA1\u3092\u4F5C\u308B\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\u30FB\u4EBA\u4E8B\u7BA1\u7406\u306E\u7BA1\u7406\u8005\uFF09",
|
|
72
|
+
usage:"twp project evaluation create <\u30B3\u30FC\u30C9|ID> --user <\u30E6\u30FC\u30B6\u30FC> --period <\u8A55\u4FA1\u671F\u9593ID> [--content-file <\u30D1\u30B9> | --generate-cli-skeleton]",description:`POST /api/v2/organization/projects/{projectId}/evaluations\uFF08evaluation_type=resource\uFF09\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\u304B\u4EBA\u4E8B\u7BA1\u7406\u306E\u7BA1\u7406\u8005\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059\u3002
|
|
73
|
+
\u540C\u3058\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30FB\u8A55\u4FA1\u671F\u9593\u30FB\u30E6\u30FC\u30B6\u30FC\u306E\u8A55\u4FA1\u304C\u65E2\u306B\u3042\u308B\u3068\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\u3002\u4F5C\u3063\u305F\u8A55\u4FA1\u306F\u4EBA\u4E8B\u8A55\u4FA1\u306E\u8A55\u4FA1\u6BB5\u753B\u9762\u306E\u300C\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5225\u8A55\u4FA1\u300D\u306B\u51FA\u307E\u3059\u3002
|
|
74
|
+
|
|
75
|
+
\u5185\u5BB9\uFF08--content-file\uFF09\u306F\u8A55\u4FA1\u306E\u4E2D\u8EAB\uFF08evaluation_data\uFF09\u306E JSON \u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u3001\u30AD\u30FC\u306F ${PROJECT_EVALUATION_KEYS.join(" / ")} \u3067\u3059\u3002
|
|
76
|
+
\u8A55\u4FA1\u6BB5\u306E\u8868\u306B\u51FA\u308B\u306E\u306F role_level / evaluation_level / comment \u3067\u3059\u3002\u7701\u7565\u3059\u308B\u3068\u30B5\u30FC\u30D0\u304C\u3059\u3079\u3066 null \u306E\u4E2D\u8EAB\u3067\u4F5C\u308A\u307E\u3059\u3002
|
|
77
|
+
--generate-cli-skeleton \u306F\u4ECA\u671F\u306E\u8A55\u4FA1\u671F\u9593\u3092\u8AAD\u307F\u3001\u3072\u306A\u5F62\u3092\u51FA\u3057\u3066\u7D42\u4E86\u3057\u307E\u3059\uFF08\u4ECA\u671F\u306E\u8A55\u4FA1\u671F\u9593\u306E ID \u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF09\u3002
|
|
78
|
+
|
|
79
|
+
`+USER_REF_HELP,flags:[USER_REF_FLAG,PERIOD_FLAG,CONTENT_FILE_FLAG,SKELETON_FLAG],forbidden:forbiddenOnly("\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u8A55\u4FA1\u3092\u4F5C\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u4F5C\u308C\u308B\u306E\u306F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\u3068\u4EBA\u4E8B\u7BA1\u7406\u306E\u7BA1\u7406\u8005\u3060\u3051\u3067\u3059\u3002"),rejected:server=>server.includes(SERVER_ERROR_TEXT)||server.includes("\u8A55\u4FA1\u671F\u9593")?
|
|
80
|
+
"\u8A55\u4FA1\u671F\u9593\u306E ID \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\uFF08twp evaluation period list\uFF09\u3002":void 0,sensitiveBody:SENSITIVE,async prepare(input,ctx){const usage="twp project evaluation create help";if(noSkeletonWithContent(input,usage))return input;const[ref,...rest]=input.args;if(ref===void 0||ref.trim()==="")throw new UsageError("\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30B3\u30FC\u30C9\u304B ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
81
|
+
usage);if(rest.length>0)throw new UsageError(`project evaluation create \u304C\u53D7\u3051\u53D6\u308C\u308B\u5F15\u6570\u306F1\u3064\u3060\u3051\u3067\u3059: ${rest.join(" ")}`,usage);const userRef=singleRef({...input,args:[]},{flag:USER_REF_FLAG.name,label:"\u30E6\u30FC\u30B6\u30FC",usage});if(userRef===void 0)throw new UsageError("\u8A55\u4FA1\u3059\u308B\u30E6\u30FC\u30B6\u30FC\u3092 --user \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);const period=nonEmpty(input.flags,PERIOD_FLAG.
|
|
82
|
+
name)?.trim();if(period===void 0||period==="")throw new UsageError("--period\uFF08\u8A55\u4FA1\u671F\u9593\u306E ID\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","\u4ECA\u671F\u306E\u8A55\u4FA1\u671F\u9593\u306F twp evaluation period current \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002");const raw=await readContent(input,"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u8A55\u4FA1\u306E\u5185\u5BB9",usage);const content=raw===void 0?void 0:parseContent(raw,contentSource(input),PROJECT_EVALUATION_KEYS,
|
|
83
|
+
"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u8A55\u4FA1\u306E\u5185\u5BB9",usage,true);const projectId=await ctx.projectId(ref);const user=await ctx.resolver.user(userRef);return withResolved(input,{projectId,userId:user.id,userName:user.name,periodId:period,...content===void 0?{}:{body:JSON.stringify(content)}})},plan:input=>input.flags.has(SKELETON_FLAG.name)?{method:"GET",path:CURRENT_PERIOD_PATH}:projectEvaluationPlan(input),plannedNotes:input=>input.flags.has(SKELETON_FLAG.name)?["\u4ECA\u671F\u306E\u8A55\u4FA1\u671F\u9593\u3092\u8AAD\u3093\u3067\u3072\u306A\u5F62\u3092\
|
|
84
|
+
\u51FA\u3059\u3060\u3051\u3067\u3001\u8A55\u4FA1\u306F\u4F5C\u308A\u307E\u305B\u3093"]:[`\u4F5C\u308B: ${input.resolved?.["userName"]??"-"} \u306E\u8981\u54E1\u8A55\u4FA1\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 ${requireResolved(input,"projectId")}\u30FB\u8A55\u4FA1\u671F\u9593 ${requireResolved(input,"periodId")}\uFF09`],execute:async(input,ctx)=>input.flags.has(SKELETON_FLAG.name)?{skeleton:true,body:await ctx.send({method:"GET",path:CURRENT_PERIOD_PATH})}:{skeleton:false,body:await ctx.send(
|
|
85
|
+
projectEvaluationPlan(input))},summarize(value){const result=writeResult(value);return result.skeleton?projectEvaluationSkeleton():pick(created(result.body),PROJECT_EVALUATION_COLUMNS)},raw(value){const result=writeResult(value);return result.skeleton?projectEvaluationSkeleton():created(result.body)},notes(value){const result=writeResult(value);if(!result.skeleton)return serverMessage(result.body);const period=isRecord(result.body)?result.body["evaluation_period"]:void 0;return["role_level / eva\
|
|
86
|
+
luation_level / comment \u3092\u57CB\u3081\u3066\u304B\u3089 --content-file \u3067\u9001\u3063\u3066\u304F\u3060\u3055\u3044\uFF08\u4F7F\u308F\u306A\u3044\u30AD\u30FC\u306F\u6D88\u3057\u3066\u69CB\u3044\u307E\u305B\u3093\uFF09",isRecord(period)?`\u4ECA\u671F\u306E\u8A55\u4FA1\u671F\u9593: ${text(period["name"])}\uFF08--period ${text(period["id"])}\uFF09`:"\u4ECA\u65E5\u3092\u542B\u3080\u8A55\u4FA1\u671F\u9593\u306F\u3042\u308A\u307E\u305B\u3093\uFF08twp evaluation period list \u3067 ID \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\uFF09"]}};
|
|
87
|
+
function created(body){const row=envelope(body,"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u8A55\u4FA1\u306E\u4F5C\u6210")["project_evaluation"];if(!isRecord(row)||typeof row["id"]!=="string")throw new ApiResponseError("\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u8A55\u4FA1\u306E\u4F5C\u6210\u306E\u5FDC\u7B54\u306B project_evaluation \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return row}var projectEvaluationResource={name:"evalu\
|
|
88
|
+
ation",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u306E\u8981\u54E1\u8A55\u4FA1\uFF08\u4F5C\u6210\uFF09",operations:[projectEvaluationCreateOperation]};export{ORG,PERIODS_PATH,EVALUATIONS_PATH,GOAL_SHEETS_PATH,EVALUATION_FORBIDDEN,forbiddenOnly,SENSITIVE,GOAL_SHEET_FORBIDDEN,singleId,envelope,objectOf,goalSheetWriteOperations,stepResource,feedbackWriteOperations,projectEvaluationResource};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{FINAL_REPORT_BEGIN,FINAL_REPORT_END,redactLoopOutput}from"./chunk-NXPLTDN4.js";import{skillCommand,skillPrefix}from"./chunk-6CS5L24D.js";import{normalizeRequiredPlatforms}from"./chunk-
|
|
3
|
+
import{FINAL_REPORT_BEGIN,FINAL_REPORT_END,redactLoopOutput}from"./chunk-NXPLTDN4.js";import{skillCommand,skillPrefix}from"./chunk-6CS5L24D.js";import{normalizeRequiredPlatforms}from"./chunk-UZUV5FYG.js";import{extractLeadingTaskKey}from"./chunk-II5RVJQN.js";var LEDGER_TASK_KEY_MAX=50;var CONTROL_CHAR_RE=/[\u0000-\u001f\u007f]/;var FLAG_TOKEN_RE=/(?:^|\s)-/;function loosen(source){let t=source.replace(/^[ \t]*\/\/[^\n]*$/gm,"");t=t.replace(/\/\*[\s\S]*?\*\//g,"");t=t.replace(/,(\s*[}\]])/g,"$1");return t===source?null:t}function tryParsePlan(source){for(const candidate of[source,loosen(source)]){if(candidate===null)continue;try{const obj=JSON.parse(candidate);if(obj!==null&&typeof obj==="object"&&Array.isArray(obj.steps)){return obj}}catch{}}return null}
|
|
4
4
|
function fencedBlocks(text,tag){const re=new RegExp("```"+tag+"\\s*\\n([\\s\\S]*?)\\n```","g");const out=[];for(const m of text.matchAll(re)){if(m[1]!==void 0)out.push(m[1])}return out}function extractGeminiEnvelope(text){const anchor=/\{[^{}]*"session_id"[^{}]*"response"\s*:\s*"/g;for(const m of text.matchAll(anchor)){const start=m.index;if(start===void 0)continue;let depth=0;let inStr=false;let escape=false;for(let i=start;i<text.length;i++){const c=text[i];if(escape){escape=false;continue}if(c===
|
|
5
5
|
"\\"){escape=true;continue}if(c==='"'){inStr=!inStr;continue}if(inStr)continue;if(c==="{")depth++;else if(c==="}"){depth--;if(depth===0){try{const obj=JSON.parse(text.slice(start,i+1));if(obj!==null&&typeof obj==="object"&&typeof obj.response==="string"){return obj.response}}catch{}break}}}}return null}function matchingBrace(text,start){let depth=0;let inStr=false;let escape=false;for(let i=start;i<text.length;i++){const c=text[i];if(escape){escape=false;continue}if(inStr){if(c==="\\")escape=true;else if(c===
|
|
6
6
|
'"')inStr=false;continue}if(c==='"')inStr=true;else if(c==="{")depth++;else if(c==="}"){depth--;if(depth===0)return i}}return-1}var MAX_STEPS_ANCHORS=20;var MAX_OPEN_CANDIDATES=8;function lastStepsObject(text){const anchors=[...text.matchAll(/"steps"\s*:/g)].map(m=>m.index).filter(i=>i!==void 0);for(const at of anchors.reverse().slice(0,MAX_STEPS_ANCHORS)){let tried=0;for(let open=text.lastIndexOf("{",at);open>=0&&tried<MAX_OPEN_CANDIDATES;open=text.lastIndexOf("{",open-1)){tried++;const close=matchingBrace(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{isValidSkillName,skillDigest}from"./chunk-MYBIPHZ7.js";import{describeError}from"./chunk-
|
|
3
|
+
import{isValidSkillName,skillDigest}from"./chunk-MYBIPHZ7.js";import{describeError}from"./chunk-UZUV5FYG.js";import{isPrivateProjectId}from"./chunk-RMFLTSOV.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import fs from"fs";import path from"path";var SKILL_REF=/^([ \t]*)\/([a-z][a-z0-9-]*)(?=[ \t\n]|$)([ \t]+[^\n]*)?/gm;function stripFrontmatter(content){if(!content.startsWith("---"))return content;const m=/^---[ \t]*\r?\n[\s\S]*?\r?\n---[ \t]*(?:\r?\n)?/.exec(content);return m===null?content:content.slice(m[0].length)}function referencedSkills(prompt){const out=[];for(const m of prompt.matchAll(SKILL_REF)){const name=m[2]??"";if(!out.includes(name))out.push(name)}return out}function expandServerSkills(prompt,bodies){if(bodies.size===0)return prompt;
|
|
4
4
|
return prompt.replace(SKILL_REF,(whole,_indent,name,args)=>{const body=bodies.get(name);if(body===void 0)return whole;return applyArguments(stripFrontmatter(body),(args??"").trim())})}function applyArguments(body,args){if(body.includes("$ARGUMENTS")){return body.replaceAll("$ARGUMENTS",()=>args)}return args===""?body:`${body}
|
|
5
5
|
|
|
6
6
|
ARGUMENTS: ${args}`}function prepareSkillOverlay(root,workspace,bodies,provider){const commands=path.join(root,".claude","commands");fs.rmSync(root,{recursive:true,force:true});fs.mkdirSync(commands,{recursive:true});const src=path.join(workspace,".claude","commands");let names=[];try{names=fs.readdirSync(src).filter(f=>f.endsWith(".md"))}catch{}for(const f of names){const from=path.join(src,f);try{if(fs.statSync(from).isFile())fs.copyFileSync(from,path.join(commands,f))}catch{}}for(const[name,body]of bodies){
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
|
+
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
+
import{isModeId,isPermissionModeId}from"./chunk-2LOT54OO.js";import{API_TOKEN,HELP_TOKEN,isDomainName}from"./chunk-JF2GCXNQ.js";import{BOOLEAN_FLAGS,dispatch,resolveRoute,rewriteQueueCommand}from"./chunk-EOXTDZTA.js";import{splitFlagToken}from"./chunk-QQRJLH6B.js";var GLOBAL_FLAGS=new Set(["-h","--help","-v","--version","--profile","--output","--query","--dry-run","--debug","--yes","-y","--refresh"]);function parseArgv(rawArgv){const out={command:"tui",safe:false,daemon:false,forceRunner:false,stopForce:false,logoutForce:false,stopDrain:false,noTui:false,doctor:false,yes:false,skillAll:false,includeStopped:false,planEmpty:false,planCheck:false,noAiConfigFile:false,verbose:false,loginMethod:"browser",loginNoBrowser:false,promptFromStdin:false,domainArgv:[],
|
|
4
|
+
domainHelp:false,dryRun:false,debug:false,refresh:false,unknown:[],allowedTools:[],disallowedTools:[]};const queue=rewriteQueueCommand(rawArgv);if(queue.moved!==void 0){out.movedCommand=queue.moved;return out}const argv=queue.argv;const route=resolveRoute(dispatch(argv));const consumed=new Set;const[firstIndex,secondIndex]=route.consumed;if(route.kind==="builtin"){out.command=route.command;if(route.action!==void 0)out.taskLoopAction=route.action;for(const index of route.consumed)consumed.add(index)}else if(route.
|
|
5
|
+
kind==="domain"){if(route.domain===HELP_TOKEN){if(route.operation===void 0){out.command="help";if(firstIndex!==void 0)consumed.add(firstIndex)}else if(isDomainName(route.operation)){out.command="domain";out.domain=route.operation;out.domainHelp=true;if(firstIndex!==void 0)consumed.add(firstIndex);if(secondIndex!==void 0)consumed.add(secondIndex)}else if(route.operation===API_TOKEN){out.command="api";out.domainHelp=true;if(firstIndex!==void 0)consumed.add(firstIndex);if(secondIndex!==void 0)consumed.
|
|
6
|
+
add(secondIndex)}}else if(route.domain===API_TOKEN){out.command="api";if(firstIndex!==void 0)consumed.add(firstIndex)}else if(isDomainName(route.domain)){out.command="domain";out.domain=route.domain;if(route.operation!==void 0)out.operation=route.operation;for(const index of route.consumed)consumed.add(index)}}const hasSubcommandToken=route.kind==="builtin"||route.kind==="domain"&&(route.domain===HELP_TOKEN||route.domain===API_TOKEN||isDomainName(route.domain));const isDomainRoute=out.command===
|
|
7
|
+
"domain"||out.command==="api";const takeValue=(i,flag,inline)=>{const value=inline??argv[i+1];if(value===void 0||inline===void 0&&value.startsWith("-")){out.unknown.push(flag);return{step:0}}if(value.trim()===""){out.unknown.push(inline===void 0?`${flag} `:`${flag}=${inline}`);return{step:0}}return{value,step:inline===void 0?1:0}};let optionsClosed=false;for(let i=0;i<argv.length;i++){if(consumed.has(i))continue;const raw=argv[i];if(raw===void 0)continue;if(isDomainRoute&&raw==="--")optionsClosed=
|
|
8
|
+
true;const{name:arg,value:inline}=splitFlagToken(raw);if(isDomainRoute&&(optionsClosed||!GLOBAL_FLAGS.has(arg))){out.domainArgv.push(raw);continue}if(inline!==void 0&&BOOLEAN_FLAGS.has(arg)){out.unknown.push(raw);continue}switch(arg){case"-h":case"--help":if(isDomainRoute)out.domainHelp=true;else out.command="help";break;case"-v":case"--version":out.command="version";break;case"--no-tui":out.noTui=true;break;case"--doctor":out.doctor=true;break;case"--password":out.loginMethod="password";break;case"\
|
|
9
|
+
--token":out.loginMethod="token";break;case"--no-browser":out.loginNoBrowser=true;break;case"--profile":{const{value,step}=takeValue(i,"--profile",inline);if(value!==void 0){out.profile=value;i+=step}break}case"-p":case"--print":{const next=inline??argv[i+1];const step=inline===void 0?1:0;if(hasSubcommandToken){out.unknown.push(raw)}else if(next==="-"){out.command="print";out.promptFromStdin=true;out.prompt="";i+=step}else if(next!==void 0&&(inline!==void 0||!next.startsWith("-"))){out.command="\
|
|
10
|
+
print";out.prompt=next;i+=step}else{out.unknown.push(raw)}break}case"--output":{const{value,step}=takeValue(i,"--output",inline);if(value!==void 0){out.output=value;i+=step}break}case"--query":{const{value,step}=takeValue(i,"--query",inline);if(value!==void 0){out.query=value;i+=step}break}case"--dry-run":out.dryRun=true;break;case"--debug":out.debug=true;break;case"--refresh":out.refresh=true;break;case"--tenant":{const{value,step}=takeValue(i,"--tenant",inline);if(value!==void 0){out.tenant=value;
|
|
11
|
+
i+=step}break}case"--mode":{const next=inline??argv[i+1];const step=inline===void 0?1:0;if(isModeId(next)){out.mode=next;i+=step}else if(next!==void 0&&(inline!==void 0||!next.startsWith("-"))){out.unknown.push(inline!==void 0?raw:`--mode ${next}`);i+=step}else{out.unknown.push("--mode")}break}case"--permission-mode":{const next=inline??argv[i+1];const step=inline===void 0?1:0;if(isPermissionModeId(next)){out.permissionMode=next;i+=step}else if(next!==void 0&&(inline!==void 0||!next.startsWith("\
|
|
12
|
+
-"))){out.unknown.push(inline!==void 0?raw:`--permission-mode ${next}`);i+=step}else{out.unknown.push("--permission-mode")}break}case"--allowed-tools":case"--disallowed-tools":{const{value,step}=takeValue(i,arg,inline);if(value!==void 0){(arg==="--allowed-tools"?out.allowedTools:out.disallowedTools).push(value);i+=step}break}case"--model":{const{value,step}=takeValue(i,"--model",inline);if(value!==void 0){out.model=value;i+=step}break}case"--safe":out.safe=true;break;case"--daemon":out.daemon=true;
|
|
13
|
+
break;case"--force-runner":out.forceRunner=true;break;case"--force":out.stopForce=true;break;case"--drain":out.stopDrain=true;break;case"--project":{const{value,step}=takeValue(i,"--project",inline);if(value!==void 0){out.project=value;i+=step}break}case"--engine":{const{value,step}=takeValue(i,"--engine",inline);if(value!==void 0){out.engine=value;i+=step}break}case"--interval":case"--max-cycles":{const{value,step}=takeValue(i,arg,inline);if(value!==void 0){const n=Number.parseInt(value,10);if(Number.
|
|
14
|
+
isInteger(n)&&n>0){if(arg==="--interval")out.interval=n;else out.maxCycles=n}else{out.unknown.push(inline!==void 0?raw:`${arg} ${value}`)}i+=step}break}case"--yes":case"-y":out.yes=true;break;case"--ai":{const{value:v,step}=takeValue(i,"--ai",inline);if(v!==void 0){out.ais=[...out.ais??[],v];i+=step}break}case"--no-ai-config-file":out.noAiConfigFile=true;break;case"--workspace":{const{value:v,step}=takeValue(i,"--workspace",inline);if(v!==void 0){out.workspace=v;i+=step}break}case"--ai-config-fi\
|
|
15
|
+
le":{const{value:v,step}=takeValue(i,"--ai-config-file",inline);if(v!==void 0){out.aiConfigFile=v;i+=step}break}case"--verbose":out.verbose=true;break;case"--now":{const{value:v,step}=takeValue(i,"--now",inline);if(v!==void 0){out.scheduleNow=v;i+=step}break}case"--counts":{const{value:v,step}=takeValue(i,"--counts",inline);if(v!==void 0){out.scheduleCounts=v;i+=step}break}case"--gate":{const{value:v,step}=takeValue(i,"--gate",inline);if(v!==void 0){out.scheduleGate=v;i+=step}break}case"--file":{
|
|
16
|
+
if(inline===void 0&&argv[i+1]==="-"){out.charterFile="-";i+=1;break}const{value:v,step}=takeValue(i,"--file",inline);if(v!==void 0){out.charterFile=v;i+=step}break}case"--out":{const{value:v,step}=takeValue(i,"--out",inline);if(v!==void 0){out.charterOut=v;i+=step}break}case"--revision":{const{value:v,step}=takeValue(i,"--revision",inline);if(v!==void 0){out.charterRevision=v;i+=step}break}case"--from":{const{value:v,step}=takeValue(i,"--from",inline);if(v!==void 0){out.revisionFrom=v;i+=step}break}case"\
|
|
17
|
+
--to":{const{value:v,step}=takeValue(i,"--to",inline);if(v!==void 0){out.revisionTo=v;i+=step}break}case"--dir":{const{value:v,step}=takeValue(i,"--dir",inline);if(v!==void 0){out.skillDir=v;i+=step}break}case"--config":{const{value:v,step}=takeValue(i,"--config",inline);if(v!==void 0){out.skillConfig=v;i+=step}break}case"--all":out.skillAll=true;break;case"--include-stopped":out.includeStopped=true;break;case"--empty":out.planEmpty=true;break;case"--check":out.planCheck=true;break;default:if(out.
|
|
18
|
+
command==="task-loop"&&out.taskLoopAction==="charter"&&out.charterOp===void 0&&isRevisionAwareOp(raw)){out.charterOp=raw;break}if(out.command==="task-loop"&&out.taskLoopAction==="schedule"){if(out.scheduleOp===void 0&&isScheduleOp(raw)){out.scheduleOp=raw;break}if(out.scheduleOp==="config"&&out.scheduleConfigOp===void 0&&(raw==="pull"||raw==="push")){out.scheduleConfigOp=raw;break}if(out.scheduleOp==="delete"&&out.scheduleId===void 0&&!raw.startsWith("-")){out.scheduleId=raw;break}}if(out.command===
|
|
19
|
+
"task-loop"&&out.taskLoopAction==="settings"&&out.settingsOp===void 0&&(raw==="push"||raw==="pull")){out.settingsOp=raw;break}if(out.command==="task-loop"&&out.taskLoopAction==="plan"&&out.planOp===void 0&&raw==="submit"){out.planOp="submit";break}if(out.command==="task-loop"&&out.taskLoopAction==="capacity"&&out.capacityOp===void 0&&(raw==="report"||raw==="list")){out.capacityOp=raw;break}if(out.command==="task-loop"&&out.taskLoopAction==="runner"){if(out.runnerOp===void 0&&(raw==="list"||raw===
|
|
20
|
+
"remove")){out.runnerOp=raw;break}if(out.runnerOp==="remove"&&out.runnerTargetId===void 0&&!raw.startsWith("-")){out.runnerTargetId=raw;break}}if(out.command==="task-loop"&&out.taskLoopAction==="skill"){if(out.skillOp===void 0&&(isRevisionAwareOp(raw)||isSkillManageOp(raw)||raw==="check")){out.skillOp=raw;break}if(out.skillOp!==void 0&&out.skillName===void 0&&!raw.startsWith("-")){out.skillName=raw;break}}out.unknown.push(raw)}}if(out.command!=="login"&&out.loginMethod!=="browser"){out.unknown.push(
|
|
21
|
+
out.loginMethod==="password"?"--password":"--token");out.loginMethod="browser"}if(out.permissionMode!==void 0&&out.command!=="tui"&&out.command!=="print"){out.unknown.push("--permission-mode");delete out.permissionMode}if(out.command!=="tui"&&out.command!=="print"){if(out.allowedTools.length>0)out.unknown.push("--allowed-tools");if(out.disallowedTools.length>0)out.unknown.push("--disallowed-tools");out.allowedTools=[];out.disallowedTools=[]}if(out.loginNoBrowser&&!(out.command==="login"&&out.loginMethod===
|
|
22
|
+
"browser")){out.unknown.push("--no-browser");out.loginNoBrowser=false}if(out.command==="logout"&&out.stopForce){out.logoutForce=true;out.stopForce=false}if(out.command!=="task-loop"){if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.stopForce)out.unknown.push("--force");if(out.stopDrain)out.unknown.push("--drain");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push(
|
|
23
|
+
"--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles");if(out.project!==void 0)out.unknown.push("--project");if(out.verbose)out.unknown.push("--verbose");if(out.scheduleNow!==void 0)out.unknown.push("--now");if(out.scheduleCounts!==void 0)out.unknown.push("--counts");if(out.scheduleGate!==void 0)out.unknown.push("--gate");if(out.ais!==void 0)out.unknown.push("--ai");if(out.workspace!==void 0)out.unknown.push("--workspace");if(out.aiConfigFile!==void 0)out.unknown.push("--ai-con\
|
|
24
|
+
fig-file");if(out.noAiConfigFile)out.unknown.push("--no-ai-config-file");if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision");if(out.skillDir!==void 0)out.unknown.push("--dir");if(out.skillAll)out.unknown.push("--all");if(out.skillConfig!==void 0)out.unknown.push("--config");if(out.revisionFrom!==void 0)out.unknown.push("--from");if(out.revisionTo!==void 0)out.unknown.push("--to");
|
|
25
|
+
if(out.planEmpty)out.unknown.push("--empty");if(out.planCheck)out.unknown.push("--check")}if(out.yes&&out.command!=="task-loop"&&!isDomainRoute)out.unknown.push("--yes");const acceptsOutput=isDomainRoute||out.command==="whoami"||out.command==="task-loop"&&out.taskLoopAction==="status"||out.command==="task-loop"&&out.taskLoopAction==="skill"&&(out.skillOp==="list"||out.skillOp==="show"||out.skillOp==="check")||out.command==="task-loop"&&out.taskLoopAction==="runner"||out.command==="task-loop"&&out.
|
|
26
|
+
taskLoopAction==="capacity"&&out.capacityOp==="list";if(!acceptsOutput){if(out.output!==void 0)out.unknown.push("--output");if(out.query!==void 0)out.unknown.push("--query")}else if(out.command==="task-loop"&&(out.skillOp==="check"||out.taskLoopAction==="runner"&&out.runnerOp==="remove")&&out.query!==void 0){out.unknown.push("--query")}if(!isDomainRoute){if(out.dryRun)out.unknown.push("--dry-run");if(out.debug)out.unknown.push("--debug");if(out.refresh)out.unknown.push("--refresh")}if(out.command===
|
|
27
|
+
"api"&&out.refresh){out.unknown.push("--refresh");out.refresh=false}if(out.command==="task-loop"&&(out.taskLoopAction!=="schedule"||out.scheduleOp!==void 0)){if(out.verbose)out.unknown.push("--verbose");if(out.scheduleNow!==void 0)out.unknown.push("--now");if(out.scheduleCounts!==void 0)out.unknown.push("--counts");if(out.scheduleGate!==void 0)out.unknown.push("--gate")}if(out.command==="task-loop"&&out.taskLoopAction!=="stop"&&out.stopForce){out.unknown.push("--force")}if(out.command==="task-lo\
|
|
28
|
+
op"&&out.taskLoopAction!=="stop"&&out.stopDrain){out.unknown.push("--drain")}if(out.command==="task-loop"&&out.taskLoopAction==="stop"&&out.stopForce&&out.stopDrain){out.unknown.push("--force \u3068 --drain \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093");out.stopForce=false;out.stopDrain=false}if(out.command==="task-loop"&&out.taskLoopAction!=="setup"){const yesConfirms=out.taskLoopAction==="charter"||out.taskLoopAction==="skill"||out.taskLoopAction==="settings"||out.taskLoopAction===
|
|
29
|
+
"runner"&&out.runnerOp==="remove"||out.taskLoopAction==="schedule"&&out.scheduleOp!==void 0&&out.scheduleOp!=="list";if(out.yes&&!yesConfirms)out.unknown.push("--yes");if(out.ais!==void 0)out.unknown.push("--ai");if(out.workspace!==void 0)out.unknown.push("--workspace");if(out.aiConfigFile!==void 0)out.unknown.push("--ai-config-file");if(out.noAiConfigFile)out.unknown.push("--no-ai-config-file")}if(out.command==="task-loop"&&(out.taskLoopAction==="stop"||out.taskLoopAction==="status")){if(out.safe)
|
|
30
|
+
out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}if(out.command==="task-loop"&&out.taskLoopAction==="setup"){if(out.engine!==void 0)out.unknown.push("--engine");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)
|
|
31
|
+
out.unknown.push("--force-runner");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}if(out.command==="task-loop"&&out.taskLoopAction==="charter"){if(out.charterOp===void 0){out.unknown.push("charter \u306B\u306F push / pull / history / diff / revert \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044")}if(out.charterOp!=="push"&&out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOp!==
|
|
32
|
+
"push"&&out.charterOp!=="revert"&&out.charterRevision!==void 0){out.unknown.push("--revision")}pushRevisionFlagErrors(out,out.charterOp);if((out.charterOp==="history"||out.charterOp==="diff")&&out.yes)out.unknown.push("--yes");if(out.charterOp!=="pull"&&out.charterOut!==void 0)out.unknown.push("--out");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==
|
|
33
|
+
void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="skill"){if(out.skillOp===void 0){out.unknown.push(SKILL_OP_REQUIRED)}else if(out.skillOp==="check"){if(out.skillName!==void 0)out.unknown.push("skill check \u306F\u30B9\u30AD\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u306E\u5168\u30B9\u30AD\u30EB\u3092\u691C\u67FB\u3057\u307E\u3059\uFF09");if(out.skillAll)
|
|
34
|
+
out.unknown.push("--all");if(out.yes)out.unknown.push("--yes")}else if(out.skillOp==="list"&&out.skillAll){out.unknown.push("--all")}else if(out.skillOp==="list"&&out.skillName!==void 0){out.unknown.push(`skill list \u306F\u30B9\u30AD\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093: ${out.skillName}`)}else if(out.skillOp==="list"){}else if(out.skillOp!=="push"&&out.skillOp!=="pull"&&out.skillAll){out.unknown.push(`skill ${out.skillOp} \u306F --all \u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093\uFF08\u30B9\u30AD\u30EB\u540D\u30921\u3064\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09`)}else if(out.
|
|
35
|
+
skillName===void 0&&!out.skillAll){out.unknown.push(out.skillOp==="push"||out.skillOp==="pull"?`skill ${out.skillOp} \u306B\u306F\u30B9\u30AD\u30EB\u540D\u304B --all \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`:`skill ${out.skillOp} \u306B\u306F\u30B9\u30AD\u30EB\u540D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`)}else if(out.skillName!==void 0&&out.skillAll){out.unknown.push("\u30B9\u30AD\u30EB\u540D\u3068 --all \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093")}
|
|
36
|
+
if(out.skillOp!=="push"&&out.skillOp!=="revert"&&out.skillOp!=="delete"&&out.charterRevision!==void 0){out.unknown.push("--revision")}pushRevisionFlagErrors(out,out.skillOp);if((out.skillOp==="history"||out.skillOp==="diff"||out.skillOp==="list"||out.skillOp==="show")&&out.yes){out.unknown.push("--yes")}if(out.skillOp!=="push"&&out.skillOp!=="pull"&&out.skillDir!==void 0)out.unknown.push("--dir");if(out.skillOp!=="check"&&out.skillConfig!==void 0)out.unknown.push("--config");if(out.charterFile!==
|
|
37
|
+
void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="settings"){if(out.settingsOp===void 0)out.unknown.push(
|
|
38
|
+
"settings \u306B\u306F push / pull \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(out.settingsOp!=="push"&&out.charterFile!==void 0)out.unknown.push("--file");if(out.settingsOp!=="push"&&out.charterRevision!==void 0)out.unknown.push("--revision");if(out.settingsOp!=="pull"&&out.charterOut!==void 0)out.unknown.push("--out");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runne\
|
|
39
|
+
r");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="plan"){if(out.planOp===void 0)out.unknown.push("plan \u306B\u306F submit \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision");if(out.safe)out.unknown.push(
|
|
40
|
+
"--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="capacity"){if(out.capacityOp===void 0)out.unknown.push("capacity \u306B\u306F report / list \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");
|
|
41
|
+
if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="tas\
|
|
42
|
+
k-loop"&&out.taskLoopAction==="runner"){if(out.runnerOp===void 0)out.unknown.push("runner \u306B\u306F list / remove \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(out.runnerOp==="remove"&&out.runnerTargetId===void 0){out.unknown.push("runner remove \u306B\u306F runner_id \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044")}if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==
|
|
43
|
+
void 0)out.unknown.push("--revision");if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"&&out.taskLoopAction==="schedule"&&out.scheduleOp!==void 0){const op=out.scheduleOp;const takesFile=op==="push"||op==="config"&&
|
|
44
|
+
out.scheduleConfigOp==="push";if(op==="config"&&out.scheduleConfigOp===void 0){out.unknown.push("schedule config \u306B\u306F pull \u304B push \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044")}if(op==="delete"&&out.scheduleId===void 0)out.unknown.push("schedule delete \u306B\u306F\u5B9A\u7FA9ID\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(takesFile&&out.charterFile===void 0)out.unknown.push(`schedule ${op==="push"?"push":"config push"} \u306B\u306F --file <\u30D1\u30B9> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`);
|
|
45
|
+
if(!takesFile&&out.charterFile!==void 0)out.unknown.push("--file");if(!(op==="config"&&out.scheduleConfigOp==="pull")&&out.charterOut!==void 0)out.unknown.push("--out");if((op==="list"||op==="config"&&out.scheduleConfigOp!=="push")&&out.charterRevision!==void 0){out.unknown.push("--revision")}if(out.safe)out.unknown.push("--safe");if(out.daemon)out.unknown.push("--daemon");if(out.forceRunner)out.unknown.push("--force-runner");if(out.engine!==void 0)out.unknown.push("--engine");if(out.interval!==
|
|
46
|
+
void 0)out.unknown.push("--interval");if(out.maxCycles!==void 0)out.unknown.push("--max-cycles")}else if(out.command==="task-loop"){if(out.charterFile!==void 0)out.unknown.push("--file");if(out.charterOut!==void 0)out.unknown.push("--out");if(out.charterRevision!==void 0)out.unknown.push("--revision")}if(out.includeStopped&&!(out.command==="task-loop"&&out.taskLoopAction==="capacity"&&out.capacityOp==="list")){out.unknown.push("--include-stopped")}if(out.command==="task-loop"&&out.taskLoopAction!==
|
|
47
|
+
"skill"){if(out.skillDir!==void 0)out.unknown.push("--dir");if(out.skillAll)out.unknown.push("--all");if(out.skillConfig!==void 0)out.unknown.push("--config")}if(out.command==="task-loop"&&out.taskLoopAction!=="skill"&&out.taskLoopAction!=="charter"){if(out.revisionFrom!==void 0)out.unknown.push("--from");if(out.revisionTo!==void 0)out.unknown.push("--to")}if(out.command==="task-loop"&&out.taskLoopAction!=="plan"){if(out.planEmpty)out.unknown.push("--empty");if(out.planCheck)out.unknown.push("--\
|
|
48
|
+
check")}return out}function isScheduleOp(raw){return raw==="list"||raw==="push"||raw==="delete"||raw==="config"}function isSkillManageOp(raw){return raw==="list"||raw==="show"||raw==="delete"}var SKILL_OP_REQUIRED="skill \u306B\u306F push / pull / list / show / delete / history / diff / revert / check \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044";function isRevisionAwareOp(raw){return raw==="push"||raw==="pull"||raw==="history"||raw==="diff"||raw==="revert"}
|
|
49
|
+
function pushRevisionFlagErrors(out,op){if(op!=="diff"&&out.revisionFrom!==void 0)out.unknown.push("--from");if(op!=="diff"&&op!=="revert"&&out.revisionTo!==void 0)out.unknown.push("--to")}export{GLOBAL_FLAGS,parseArgv};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{readCsvFileText}from"./chunk-QLENN5DD.js";import{featureLicenseGuidance,invoiceFilters}from"./chunk-
|
|
3
|
+
import{readCsvFileText}from"./chunk-QLENN5DD.js";import{featureLicenseGuidance,invoiceFilters}from"./chunk-7KD5RWFY.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{readBody}from"./chunk-IWYJSQ5I.js";import{SALES_DEPOSITS_PATH,isExactNumericId,resolveNamed}from"./chunk-2T23XGJF.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,
|
|
4
4
|
STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PATH=SALES_DEPOSITS_PATH;function salesAdminForbidden(what){return body=>body?.error==="permission_denied"?featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"):`${what}\u306B\u306F\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}var FORBIDDEN=salesAdminForbidden("\u5165\u91D1");var ALLOCATION_STATUSES={
|
|
5
5
|
allocated:"\u5F15\u5F53\u6E08",shortage:"\u672A\u5165\u91D1\u6709",excess:"\u5165\u91D1\u8D85\u904E\u6709",transfer_fee_resolved:"\u624B\u6570\u6599\u51E6\u7406\u6E08"};var EXCESS_REASONS={transfer_fee:"\u632F\u8FBC\u624B\u6570\u6599",agency_fee:"\u4EE3\u884C\u624B\u6570\u6599\uFF08\u53E3\u5EA7\u632F\u66FF \u57FA\u672C\u5229\u7528\u6599\uFF09",partial:"\u4E00\u90E8\u5165\u91D1",offset:"\u76F8\u6BBA",overpayment:"\u904E\u5165\u91D1",other:"\u305D\u306E\u4ED6"};var EXCESS_TAX_CATEGORIES={taxable_purchase_10:"\
|
|
6
6
|
\u8AB2\u7A0E\u4ED5\u5165 10%",not_applicable:"\u5BFE\u8C61\u5916"};var BULK_MAX_ROWS=100;var PLAN_MAX_ITEMS=50;var PLAN_MAX_ALLOCATIONS=100;var FILE_MAX_BYTES=1024*1024;var EXCESS_NOTE_MAX_CHARS=255;var PLAN_MEMO_MAX_CHARS=1e3;var CONTENT_MAX_CHARS=1e6;var LIST_COLUMNS=["id","deposit_date","company_name","payee_name","deposit_amount","allocated_amount","unallocated_amount","allocation_status"];var GET_COLUMNS=[...LIST_COLUMNS,"memo","excess_reason","excess_amount","excess_note","excess_tax_categ\
|