@tocca-systems/twp-cli 0.77.2 → 0.79.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 +14 -0
- package/README.md +56 -15
- package/dist/{agent-76W4NFZE.js → agent-WTDLGRNM.js} +3 -3
- package/dist/{agent-loop-6Q5QQC5H.js → agent-loop-ZGHJGHFQ.js} +32 -32
- package/dist/{ai-dispatch-U2MEAOHY.js → ai-dispatch-DJ5JT5BE.js} +1 -1
- package/dist/analysis-H52FJIFO.js +5 -0
- package/dist/{announcement-HYMSN6ZR.js → announcement-RTTVGW4K.js} +2 -2
- package/dist/{api-command-D3H2QWSH.js → api-command-Y6J7EAOT.js} +4 -4
- package/dist/{app-LH2Z63XY.js → app-YVRIMXZY.js} +5 -5
- package/dist/{attendance-correct-7IKTSZ6I.js → attendance-correct-OLWRCDP4.js} +2 -2
- package/dist/{attendance-lists-7SOG6G4N.js → attendance-lists-TBUZCRKK.js} +2 -2
- package/dist/{auto-update-YMI3F44R.js → auto-update-FXXQHBV5.js} +1 -1
- package/dist/{auto-update-worker-VG77U4UA.js → auto-update-worker-6K24JYLQ.js} +2 -2
- package/dist/{backlog-IJTBHL3Z.js → backlog-HDDV2NTC.js} +37 -31
- package/dist/{budget-ZWB346BP.js → budget-T246BG2P.js} +2 -2
- package/dist/{chunk-MZVXEYOV.js → chunk-22CRY6JR.js} +1 -1
- package/dist/{chunk-DLDDMXZT.js → chunk-4RNL462J.js} +1 -1
- package/dist/{chunk-47C3XM23.js → chunk-5YJAT7HE.js} +1 -1
- package/dist/chunk-64VHXDB6.js +11 -0
- package/dist/{chunk-436IBRP4.js → chunk-6JAOPRD5.js} +1 -1
- package/dist/{chunk-DYNNGNXR.js → chunk-7PTFN3H7.js} +1 -1
- package/dist/{chunk-AITUAHWK.js → chunk-CADCERVL.js} +1 -1
- package/dist/{chunk-NWI2TBO6.js → chunk-CH6QU76P.js} +1 -1
- package/dist/{chunk-MTUOPTBS.js → chunk-CZVQS3WP.js} +2 -2
- package/dist/{chunk-H7MIIYRN.js → chunk-DELIIGWE.js} +1 -1
- package/dist/{chunk-R4Y3OLFY.js → chunk-DJ5OD2HW.js} +18 -18
- package/dist/{chunk-4VAWX7TW.js → chunk-DLJQE2B5.js} +1 -1
- package/dist/{chunk-4VZKNEVN.js → chunk-EDF4U5BT.js} +2 -1
- package/dist/{chunk-XG2JN66A.js → chunk-HKEW6XIC.js} +2 -2
- package/dist/{chunk-AVFQ2LM5.js → chunk-HYBXFEHH.js} +1 -1
- package/dist/chunk-IVFSEXD3.js +48 -0
- package/dist/{chunk-5WTFZJT7.js → chunk-JQBXLZTJ.js} +1 -1
- package/dist/{chunk-RQEX2WC5.js → chunk-KZQGIM2C.js} +1 -1
- package/dist/{chunk-W4E4F2ZA.js → chunk-MLRBDF44.js} +1 -1
- package/dist/{chunk-3WFZOOXZ.js → chunk-MO2UEAWW.js} +1 -1
- package/dist/{chunk-SAH5WS3K.js → chunk-MPX2Q3BJ.js} +1 -1
- package/dist/{chunk-L7T2CQ3M.js → chunk-NLCJXS5S.js} +2 -2
- package/dist/{chunk-GYXKBPEN.js → chunk-NTT2QG3J.js} +2 -2
- package/dist/{chunk-DLD736A2.js → chunk-OW23MAVO.js} +1 -1
- package/dist/{chunk-3WPHZXST.js → chunk-QXYY7DUV.js} +2 -2
- package/dist/{chunk-6SAHK3OR.js → chunk-RCUI6WWU.js} +1 -1
- package/dist/{chunk-GHE6X45G.js → chunk-RSSPNFSK.js} +7 -7
- package/dist/{chunk-AM7Y4QRF.js → chunk-U5EYLW6X.js} +2 -2
- package/dist/{chunk-4OJD5FKD.js → chunk-UZLHJ2RF.js} +2 -2
- package/dist/{chunk-GQEXST5N.js → chunk-V3RZ4RFP.js} +1 -1
- package/dist/chunk-VERYHAWV.js +13 -0
- package/dist/{chunk-YM4U6A4Y.js → chunk-VLCR2U77.js} +1 -1
- package/dist/{chunk-4H3ECPJF.js → chunk-VYIYENEU.js} +1 -1
- package/dist/{chunk-HZYP3BMS.js → chunk-X2WD2H3B.js} +2 -2
- package/dist/chunk-XNYQH5JI.js +44 -0
- package/dist/{chunk-RMOBVFPJ.js → chunk-YV65V2F6.js} +1 -1
- package/dist/cli.js +65 -25
- package/dist/{commands-445XWMKY.js → commands-UDG7E3X3.js} +20 -20
- package/dist/{commands-YJU4HHPP.js → commands-ZIRZVBH6.js} +2 -2
- package/dist/{company-NXL4WVLD.js → company-2CRWKBJL.js} +3 -3
- package/dist/{completion-RL6VCPB5.js → completion-C6ZQCDT2.js} +8 -7
- package/dist/config-XYWRBIC6.js +3 -0
- package/dist/{configure-3H3CGGBI.js → configure-3JID6MQ5.js} +7 -3
- package/dist/{contract-MC6HSQER.js → contract-73RVPBYM.js} +2 -2
- package/dist/{department-3YEKQJ6I.js → department-GPVHVFFP.js} +2 -2
- package/dist/{deposit-RFTXWS5D.js → deposit-3I3NV556.js} +2 -2
- package/dist/dispatch-HHWTJ3P4.js +3 -0
- package/dist/{domain-knowledge-EXMD2NMI.js → domain-knowledge-5SCZLCPF.js} +2 -2
- package/dist/{estimate-RIJRRKZZ.js → estimate-NLKTWCYI.js} +4 -4
- package/dist/{evaluation-ESIPIC3K.js → evaluation-VP7OFTBS.js} +1 -1
- package/dist/{expense-ISK4RPCY.js → expense-O2O4623X.js} +2 -2
- package/dist/{fiscal-year-F2DVA2GB.js → fiscal-year-ZTCSF46U.js} +2 -2
- package/dist/{holiday-5ZAH6U6Z.js → holiday-WDI4CSNL.js} +2 -2
- package/dist/{inquiry-3KEU4MAN.js → inquiry-4Q4BRYM3.js} +2 -2
- package/dist/{invoice-BTVMPVKS.js → invoice-BXSI6SMA.js} +3 -3
- package/dist/{job-title-NO5VRM5J.js → job-title-NCFHCA4M.js} +1 -1
- package/dist/{knowledge-TXUSVHRG.js → knowledge-TCADQEPU.js} +2 -2
- package/dist/{leave-VZCKDT73.js → leave-W4GHXMSE.js} +3 -3
- package/dist/{license-JVYLYTSV.js → license-XSWDXSJE.js} +2 -2
- package/dist/{logout-guard-T3IAROLQ.js → logout-guard-57LHDX6L.js} +1 -1
- package/dist/{media-AQID56Z4.js → media-D7BZTPXD.js} +3 -3
- package/dist/{notification-TSLB2ZHF.js → notification-WP7CH734.js} +2 -2
- package/dist/{onedrive-ZY3GTU26.js → onedrive-KWVOUGG6.js} +1 -1
- package/dist/{oneshot-GF6TO7AH.js → oneshot-EAXT2LLB.js} +2 -2
- package/dist/{outlook-YG7GFF44.js → outlook-GYRF5TXA.js} +1 -1
- package/dist/{plan-submit-7KDB74QH.js → plan-submit-ELEIJM6I.js} +1 -1
- package/dist/{position-IREP6O4N.js → position-H3NSDVKQ.js} +1 -1
- package/dist/{project-XIBLUUAR.js → project-HGUUMTEE.js} +2 -2
- package/dist/{prospect-UZLWLOAI.js → prospect-QY3NYP2A.js} +3 -3
- package/dist/{purchase-OLJD37QK.js → purchase-7XCGCQ2G.js} +4 -4
- package/dist/receivable-GW5WCVJ7.js +4 -0
- package/dist/{redmine-WOVVB7SU.js → redmine-644RTL42.js} +2 -2
- package/dist/{registry-GUS42T5G.js → registry-TFHSCQK3.js} +1 -1
- package/dist/{report-52ZHE57K.js → report-P74LSHTE.js} +2 -2
- package/dist/{run-DKDJACXL.js → run-EO7J3QYK.js} +2 -2
- package/dist/runner-command-SRPMAC5S.js +3 -0
- package/dist/{sales-ai-review-JBDTSY67.js → sales-ai-review-L5VW3DU3.js} +2 -2
- package/dist/{sales-master-KL5XHTVS.js → sales-master-BQML5IJT.js} +3 -3
- package/dist/{sales-numbering-NZW2RNOS.js → sales-numbering-OW4O6WH6.js} +2 -2
- package/dist/{search-FOUZEY5X.js → search-BLMSVPIL.js} +2 -2
- package/dist/{segment-3CMYFOFP.js → segment-G4IPD43F.js} +1 -1
- package/dist/{server-settings-CRH7UU45.js → server-settings-OB7JF757.js} +1 -1
- package/dist/{setup-VPHP4HDM.js → setup-FMSAHRGZ.js} +1 -1
- package/dist/{skill-U6757V7A.js → skill-4TSTVUXY.js} +2 -2
- package/dist/staffing-board-MQREMSVJ.js +110 -0
- package/dist/status-command-C42CVQ3Q.js +17 -0
- package/dist/{supplier-payment-NG3PYZAH.js → supplier-payment-KRLYWEKY.js} +3 -3
- package/dist/{support-JBL45TWL.js → support-ITRXFVMK.js} +2 -2
- package/dist/{task-OR5JLUKO.js → task-AGNMPS4F.js} +5 -4
- package/dist/{teams-RLMFGND2.js → teams-MZR3256V.js} +1 -1
- package/dist/{update-NCAVUXSX.js → update-7GYGZEK3.js} +1 -1
- package/dist/{user-4BL2ILYK.js → user-U4VHKBLE.js} +3 -3
- package/dist/{user-contract-type-XHCKC6T7.js → user-contract-type-HDA5TITL.js} +2 -2
- package/dist/{worker-agent-XTDV36WT.js → worker-agent-52PXQO4N.js} +2 -2
- package/dist/{workflow-Q7XCMDRH.js → workflow-4NC2C4TX.js} +2 -2
- package/package.json +1 -1
- package/dist/analysis-7PNFFLPQ.js +0 -5
- package/dist/chunk-6C75QARV.js +0 -49
- package/dist/chunk-BMJMOUBS.js +0 -11
- package/dist/config-3CNEQ7KN.js +0 -3
- package/dist/receivable-JNXWOLJN.js +0 -4
- package/dist/status-command-3GA23BGD.js +0 -17
- /package/dist/{skill-manage-command-QYJLCLDK.js → skill-manage-command-UOWZCF6R.js} +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{salesAdminForbidden}from"./chunk-
|
|
4
|
-
import{
|
|
5
|
-
import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-
|
|
3
|
+
import{salesAdminForbidden}from"./chunk-U5EYLW6X.js";import{attachmentRows,inspectLocalFile,issued}from"./chunk-WTYIFLVB.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import"./chunk-QLENN5DD.js";import"./chunk-RMFLTSOV.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-4RNL462J.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{readBody}from"./chunk-6LSQCOCJ.js";
|
|
4
|
+
import{SALES_BUSINESS_PLACES_PATH,SALES_PAYEES_PATH,SALES_SEAL_IMPRESSIONS_PATH,isExactNumericId}from"./chunk-RSSPNFSK.js";import"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,
|
|
5
|
+
isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.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";import fs from"fs";import path from"path";var SORT_MAX=2147483647;var SALES_FORBIDDEN=licenseForbidden(featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"));function envelope(body,what){if(!isRecord(body)||body["result"]!==true)throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return body}function recordOf(body,what){const data=envelope(body,what)["data"];if(!isRecord(data)||typeof data["id"]!==
|
|
6
6
|
"string")throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306B data.id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return data}function serverMessage(body){const message=isRecord(body)?body["message"]:void 0;return typeof message==="string"&&message!==""?[message]:[]}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function maskDigitRuns(value){return value.replace(/[0-90-9]{4,}/g,
|
|
7
7
|
run=>{const chars=Array.from(run);return"*".repeat(chars.length-4)+chars.slice(-4).join("")})}var SORT_FIELD={kind:"sort",flag:"--sort",key:"sort",summary:"\u8868\u793A\u9806\uFF080 \u4EE5\u4E0A\u306E\u6574\u6570\u30FB\u5C0F\u3055\u3044\u307B\u3069\u4E0A\uFF09"};function fieldFlags(fields){return fields.map(field=>({name:field.flag,summary:field.summary,takesValue:true,placeholder:field.kind==="date"?"<YYYY-MM-DD>":field.kind==="sort"?"<\u6574\u6570>":`<${field.label}>`}))}function sortValue(flag,raw){
|
|
8
8
|
const trimmed=raw.trim();const value=/^\d+$/.test(trimmed)?Number(trimmed):Number.NaN;if(!Number.isSafeInteger(value)||value>SORT_MAX){throw new UsageError(`${flag} \u306F 0 \u4EE5\u4E0A ${SORT_MAX} \u4EE5\u4E0B\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`)}return value}function fieldBody(input,fields){const body={};for(const field of fields){const raw=input.flags.get(field.flag);if(raw===void 0)continue;if(field.kind==="text")body[field.key]=boundedText(input,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{estimateNoRuleResource,invoiceNoRuleResource,nextNumber,purchaseNoRuleResource,roundingSettingDomain}from"./chunk-
|
|
4
|
-
import"./chunk-II5RVJQN.js";import"./chunk-PS5QFKHB.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-
|
|
3
|
+
import{estimateNoRuleResource,invoiceNoRuleResource,nextNumber,purchaseNoRuleResource,roundingSettingDomain}from"./chunk-UZLHJ2RF.js";import"./chunk-U5EYLW6X.js";import"./chunk-QLENN5DD.js";import"./chunk-4RNL462J.js";import"./chunk-RX5HWI4L.js";import"./chunk-JJSBBWJ5.js";import"./chunk-6LSQCOCJ.js";import"./chunk-RSSPNFSK.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-MI6HVYR2.js";
|
|
4
|
+
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{estimateNoRuleResource,invoiceNoRuleResource,nextNumber,purchaseNoRuleResource,roundingSettingDomain};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{
|
|
4
|
-
import"./chunk-J7QYPKVK.js";import"./chunk-
|
|
3
|
+
import{repeatedValues}from"./chunk-RX5HWI4L.js";import"./chunk-RSSPNFSK.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{nonEmpty,positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";
|
|
4
|
+
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 LABEL="\u7D71\u5408\u691C\u7D22";var SEARCH_PATH="/api/v2/search/unified";var TYPES_PATH="/api/v2/search/types";var KEYWORD_MAX=200;var LIMIT_MAX=100;var SEARCH_MODE_LABEL={keyword:"\u901A\u5E38\u691C\u7D22",vector:"AI\u691C\u7D22"};var NEXT_COMMAND={task:(ref,row)=>`twp task get ${ref}${text(row["project_id"]).startsWith("private:")?" --project __private__":""}`,project:ref=>`twp project get ${ref}`,wiki:ref=>`twp wiki get ${ref}`,note:ref=>`twp note get ${ref}`,meeting_minutes:ref=>`twp me\
|
|
5
5
|
eting get ${ref}`,support:ref=>`twp support get ${ref}`,user:ref=>`twp user get ${ref}`};function keywordOf(input){if(input.args.length>1){throw new UsageError(`\u691C\u7D22\u3059\u308B\u8A9E\u306F1\u3064\u306E\u5F15\u6570\u3067\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5F15\u6570: ${input.args.join(" / ")}\uFF09`,'\u7A7A\u767D\u3092\u542B\u3080\u8A9E\u306F\u5F15\u7528\u7B26\u3067\u56F2\u307F\u307E\u3059: twp search "\u7D4C\u8CBB \u7CBE\u7B97"')}const keyword=(input.
|
|
6
6
|
args[0]??"").trim();if(keyword===""){throw new UsageError("\u691C\u7D22\u3059\u308B\u8A9E\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",'\u4F8B: twp search "\u7D4C\u8CBB\u7CBE\u7B97" / twp search "\u7D4C\u8CBB\u7CBE\u7B97" --ai')}if([...keyword].length>KEYWORD_MAX){throw new UsageError(`\u691C\u7D22\u3059\u308B\u8A9E\u306F ${String(KEYWORD_MAX)} \u6587\u5B57\u307E\u3067\u3067\u3059\uFF08${String([...keyword].length)} \u6587\u5B57\uFF09`)}return keyword}function typesOf(input){const types=[];
|
|
7
7
|
for(const raw of repeatedValues(input,"--type")){for(const part of raw.split(",")){const type=part.trim();if(type==="")throw new UsageError("--type \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093","\u7A2E\u985E\u306F twp search types \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002");if(!types.includes(type))types.push(type)}}return types}function limitOf(input){const limit=positiveInteger(input.flags,"--limit");if(limit!==void 0&&limit>LIMIT_MAX){throw new UsageError(`-\
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{STATUS_VALUES,flatMasterDomain}from"./chunk-
|
|
3
|
+
import{STATUS_VALUES,flatMasterDomain}from"./chunk-CADCERVL.js";import"./chunk-JJSBBWJ5.js";import{SEGMENTS_PATH}from"./chunk-RSSPNFSK.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.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";
|
|
4
4
|
import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var segmentDomain=flatMasterDomain({name:"segment",label:"\u30BB\u30B0\u30E1\u30F3\u30C8",path:SEGMENTS_PATH,itemKey:"segment",summary:"\u30BB\u30B0\u30E1\u30F3\u30C8\u30DE\u30B9\u30BF\uFF08\u4E00\u89A7\u30FB\u53D6\u5F97\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\uFF09",listColumns:["id","code","name","sort_order","status"],getColumns:["id","code","name","sort_order","status","description"],fields:[{kind:"integer",flag:"--sort-order",key:"sort_order",label:"\u8868\u793A\u9806",min:0,max:9999,
|
|
5
5
|
summary:"\u8868\u793A\u9806\uFF080\u301C9999\uFF09"},{kind:"enum",flag:"--status",key:"status",values:STATUS_VALUES,summary:"\u72B6\u614B\uFF08active: \u6709\u52B9 / inactive: \u7121\u52B9\uFF09"},{kind:"text",flag:"--description",key:"description",label:"\u8AAC\u660E",maxChars:1e3,summary:"\u8AAC\u660E"}],resolve:(ctx,ref,flag)=>ctx.resolver.segment(ref,flag),referencedBy:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u7D42\u4E86\u6E08\u307F\u3092\u542B\u3080\uFF09",deleteGuidance:"\u4ECA\u5F8C\u4F7F\u308F\u306A\u3044\u30BB\u30B0\u30E1\u30F3\u30C8\u306F\u3001\u524A\u9664\
|
|
6
6
|
\u305B\u305A\u306B\u7121\u52B9\u5316\u3057\u3066\u304F\u3060\u3055\u3044: twp segment update <\u30BB\u30B0\u30E1\u30F3\u30C8> --status inactive\n\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u8A2D\u5B9A\u6E08\u307F\u306E\u30BB\u30B0\u30E1\u30F3\u30C8\u306F\u305D\u306E\u307E\u307E\u6B8B\u308A\u3001\u53CE\u652F\u5206\u6790\u306E\u96C6\u8A08\u304B\u3089\u3082\u6B20\u3051\u307E\u305B\u3093\uFF09"});export{segmentDomain};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{LoopSettingsApplier,PROMPT_KEYS,formatConfigHash,parseServerSettings,renderStepBudget}from"./chunk-
|
|
3
|
+
import{LoopSettingsApplier,PROMPT_KEYS,formatConfigHash,parseServerSettings,renderStepBudget}from"./chunk-5YJAT7HE.js";import"./chunk-RCUI6WWU.js";import"./chunk-XMPHGOW4.js";import"./chunk-VYDPW2YO.js";import"./chunk-TTST7UDR.js";import"./chunk-FABDZBDZ.js";import"./chunk-6CS5L24D.js";import"./chunk-N2UVRM3Z.js";import"./chunk-O52RKZCC.js";import"./chunk-RMFLTSOV.js";import"./chunk-PMOUHEJQ.js";import"./chunk-J7QYPKVK.js";import"./chunk-5WGOHFAS.js";
|
|
4
4
|
import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{LoopSettingsApplier,PROMPT_KEYS,formatConfigHash,parseServerSettings,renderStepBudget};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{detectAiClis,formatDetection,isDetectableAi,isSelectable}from"./chunk-5SONMN6K.js";import{PromptAbortedError,promptText}from"./chunk-L37NS5L2.js";import{localConfigPath,parseClaudeLauncher}from"./chunk-
|
|
3
|
+
import{detectAiClis,formatDetection,isDetectableAi,isSelectable}from"./chunk-5SONMN6K.js";import{PromptAbortedError,promptText}from"./chunk-L37NS5L2.js";import{localConfigPath,parseClaudeLauncher}from"./chunk-RCUI6WWU.js";import"./chunk-XMPHGOW4.js";import"./chunk-VYDPW2YO.js";import"./chunk-TTST7UDR.js";import{AiConfig}from"./chunk-FABDZBDZ.js";import"./chunk-6CS5L24D.js";import"./chunk-N2UVRM3Z.js";import"./chunk-RMFLTSOV.js";import"./chunk-PMOUHEJQ.js";
|
|
4
4
|
import"./chunk-5WGOHFAS.js";import"./chunk-RZVI6PMW.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs from"fs";import path from"path";var RECOMMENDED_ROTATION={complex:["claude"],verify:["claude"],security:["claude"],support:["claude"],triage:["claude"],search:["claude"],simple:["claude"]};var RECOMMENDED_CHAINS={complex:["claude","codex"],verify:["claude","codex","copilot"],security:["claude","codex","copilot"],support:["claude","codex","copilot"],triage:["codex","gemini","copilot","claude"],search:["codex","gemini","copilot","claude"],simple:["codex","gemini","copilot","claude"]};var PREFERENCE=["claude","codex","gemini","co\
|
|
5
5
|
pilot"];function buildAiAssignment(selected){if(selected.length===0)throw new Error("\u9078\u629E\u3055\u308C\u305FAI\u304C\u7A7A\u3067\u3059");const fallbackOrder=PREFERENCE.filter(ai=>selected.includes(ai));for(const ai of selected)if(!fallbackOrder.includes(ai))fallbackOrder.push(ai);const chains={};const rotation={};for(const category of Object.keys(RECOMMENDED_CHAINS)){const filtered=(RECOMMENDED_CHAINS[category]??[]).filter(ai=>selected.includes(ai));const chain=filtered.length>0?filtered:
|
|
6
6
|
[...fallbackOrder];chains[category]=chain;const rot=(RECOMMENDED_ROTATION[category]??[]).filter(ai=>selected.includes(ai));const head=chain[0];rotation[category]=rot.length>0?rot:head===void 0?[...fallbackOrder]:[head]}return{primary_rotation:rotation,fallback_chains:chains}}var SETUP_EXIT_NO_CLI=3;var SETUP_EXIT_ABORTED=130;async function runSetup(opts){const env=opts.env??process.env;const rawOut=opts.out??(t=>void process.stdout.write(t));const rawErr=opts.err??(t=>void process.stderr.write(t));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{FISCAL_YEAR_FLAG,fiscalYear,groupedSkillRows,matchSkill,parseReorderFile,parseSelfEvaluation,qualificationDomain,qualificationImportPreview,qualificationImportRows,reorderPreview,skillDomain,skillMatrix,skillNames}from"./chunk-
|
|
4
|
-
import"./chunk-
|
|
3
|
+
import{FISCAL_YEAR_FLAG,fiscalYear,groupedSkillRows,matchSkill,parseReorderFile,parseSelfEvaluation,qualificationDomain,qualificationImportPreview,qualificationImportRows,reorderPreview,skillDomain,skillMatrix,skillNames}from"./chunk-NLCJXS5S.js";import"./chunk-7PTFN3H7.js";import"./chunk-QLENN5DD.js";import"./chunk-CADCERVL.js";import"./chunk-RX5HWI4L.js";import"./chunk-JJSBBWJ5.js";import"./chunk-6LSQCOCJ.js";import"./chunk-RSSPNFSK.js";import"./chunk-HVZUXLQ4.js";
|
|
4
|
+
import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.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{FISCAL_YEAR_FLAG,fiscalYear,groupedSkillRows,matchSkill,parseReorderFile,parseSelfEvaluation,qualificationDomain,qualificationImportPreview,qualificationImportRows,reorderPreview,skillDomain,skillMatrix,skillNames};
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
|
+
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
+
import{DEPARTMENT_FLAG,FROM_FLAG,MONTH_FLAG,TO_FLAG,USER_FLAG,analysisForbidden,dataOf,levelGuidance,listIn,monthsBetween,noArgs,periodNote,recordOf,resolveFilters,resolvedOrUndefined,responseMonths}from"./chunk-QXYY7DUV.js";import"./chunk-HKEW6XIC.js";import{monthFlag}from"./chunk-EXT4AIDF.js";import"./chunk-CADCERVL.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{isoDate}from"./chunk-JJSBBWJ5.js";import{readBody}from"./chunk-6LSQCOCJ.js";import"./chunk-RSSPNFSK.js";
|
|
4
|
+
import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";
|
|
5
|
+
import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var BOARD_PATH="/api/v2/analysis/staffing-board";var TENTATIVE_PATH=`${BOARD_PATH}/tentative-assignments`;var FORBIDDEN=analysisForbidden(levelGuidance("\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9","\u4EBA\u4E8B\u7BA1\u7406"));var EDIT_DENIED_GUIDANCE="\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9\u3092\u7DE8\u96C6\u3059\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u95B2\u89A7\u306E\u307F\uFF09\u3002\u5206\u6790\u306E\u7BA1\u7406\u8005\u306B\u300C\u7DE8\u96C6\u53EF\u300D\u3078\u306E\u5909\u66F4\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
|
|
6
|
+
var PROJECT_MANAGER_GUIDANCE="\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u3092\u5909\u66F4\u3059\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\u304B\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u304C\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002";function writeForbidden(body){const text=body?.error_description??"";if(body?.error==="permission_denied"&&text.includes("\u7DE8\u96C6"))return EDIT_DENIED_GUIDANCE;
|
|
7
|
+
if(body?.error==="forbidden")return text.includes("\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005")?PROJECT_MANAGER_GUIDANCE:void 0;return FORBIDDEN(body)}var NOTE_ID_RE=/^[A-Za-z0-9._:-]{1,200}$/;function idArg(input,label,usage){const[id,...rest]=input.args;if(id===void 0||id.trim()==="")throw new UsageError(`${label}\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,usage);if(rest.length>0)throw new UsageError(`\u53D7\u3051\u53D6\u308C\u308B${label}\u306F1\u3064\u3060\u3051\u3067\u3059: ${rest.
|
|
8
|
+
join(" ")}`,usage);const value=id.trim();if(!NOTE_ID_RE.test(value)||/^\.+$/.test(value)){throw new UsageError(`${label}\u306E ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u6587\u5B57\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059: ${value}`,usage)}return encodeURIComponent(value)}var MAX_MONTHS=12;var DEFAULT_MONTHS=4;function shiftMonth(ym,n){const[y,m]=ym.split("-").map(Number);const index=y*12+(m-1)+n;return`${String(Math.floor(index/12))}-${String(index%12+1).padStart(2,"0")}`}function defaultBoardRange(now=new Date){
|
|
9
|
+
const current=`${String(now.getFullYear())}-${String(now.getMonth()+1).padStart(2,"0")}`;const from=shiftMonth(current,1);return{from,to:shiftMonth(from,DEFAULT_MONTHS-1),defaulted:true}}function boardRange(input,usage,now){const from=monthFlag(input.flags,FROM_FLAG.name);const to=monthFlag(input.flags,TO_FLAG.name);const month=monthFlag(input.flags,MONTH_FLAG.name);let range;if(month!==void 0){if(from!==void 0||to!==void 0)throw new UsageError("--month \u3068 --from / --to \u306F\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",
|
|
10
|
+
usage);range={from:month,to:month,defaulted:false}}else if(from===void 0&&to===void 0){range=defaultBoardRange(now)}else if(from===void 0||to===void 0){throw new UsageError("--from \u3068 --to \u306F\u4E21\u65B9\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF081\u304B\u6708\u3060\u3051\u306A\u3089 --month\uFF09",usage)}else{range={from,to,defaulted:false}}if(range.from>range.to)throw new UsageError(`--from\uFF08${range.from}\uFF09\u304C --to\uFF08${range.to}\uFF09\u3088\u308A\u5F8C\u306B\u306A\u3063\u3066\u3044\u307E\u3059`,
|
|
11
|
+
usage);if(monthsBetween(range.from,range.to).length>MAX_MONTHS){throw new UsageError(`\u671F\u9593\u306F${String(MAX_MONTHS)}\u304B\u6708\u307E\u3067\u3067\u3059\uFF08${range.from} \u301C ${range.to}\uFF09`,usage)}return range}function boardRangeNotes(range){return range.defaulted?[`\u671F\u9593\u306E\u6307\u5B9A\u304C\u7121\u3044\u306E\u3067\u753B\u9762\u306E\u521D\u671F\u8868\u793A\u3068\u540C\u3058\u7FCC\u6708\u304B\u3089${String(DEFAULT_MONTHS)}\u304B\u6708\uFF08${range.from} \u301C ${range.
|
|
12
|
+
to}\u30FB\u3053\u306E\u7AEF\u672B\u306E\u6642\u8A08\uFF09\u306B\u3057\u307E\u3059\u3002`]:[]}var UNIT_FLAG={name:"--unit",summary:"\u8868\u793A\u5358\u4F4D\uFF08hours\uFF1D\u6642\u9593\u30FB\u65E2\u5B9A / fte\uFF1D\u4EBA\u6708 / percent\uFF1D\u5272\u5408\uFF09\u3002table / text / tsv \u3060\u3051\u306B\u52B9\u304F",takesValue:true,placeholder:"<hours|fte|percent>"};var BY_PROJECT_FLAG={name:"--by-project",summary:"\u30E1\u30F3\u30D0\u30FC\xD7\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u884C\u3067\u51FA\u3059\uFF08\u753B\u9762\u3067\u884C\u3092\u958B\u3044\u305F\u5185\u8A33\uFF09",
|
|
13
|
+
takesValue:false};var INCLUDE_TENTATIVE_FLAG={name:"--include-tentative",summary:"\u4EEE\u30A2\u30B5\u30A4\u30F3\u3092\u5408\u8A08\u306B\u8DB3\u3059\uFF08\u753B\u9762\u306E\u300C\u4EEE\u30A2\u30B5\u30A4\u30F3\u3092\u542B\u3081\u308B\u300D\u5207\u66FF\uFF09",takesValue:false};var SHOW_USAGE="twp staffing-board show [--month <YYYY-MM> | --from <YYYY-MM> --to <YYYY-MM>] [--unit hours|fte|percent] [--by-project] [--include-tentative] [--user <\u30E6\u30FC\u30B6\u30FC>] [--department <\u90E8\u7F72>]";
|
|
14
|
+
function unitOf(input){const raw=input.flags.get(UNIT_FLAG.name)?.trim()??"hours";if(raw!=="hours"&&raw!=="fte"&&raw!=="percent"){throw new UsageError(`--unit \u306F hours / fte / percent \u306E\u3044\u305A\u308C\u304B\u3067\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,SHOW_USAGE)}return raw}function formatBoardValue(hours,standardHours,unit){const standard=typeof standardHours==="number"?standardHours:0;switch(unit){case"fte":return standard>0?(hours/standard).toFixed(2):"-";case"\
|
|
15
|
+
percent":return standard>0?`${(hours/standard*100).toFixed(0)}%`:"-";default:return`${hours.toFixed(1)}h`}}function num(value){return typeof value==="number"&&Number.isFinite(value)?value:0}function monthIndex(entries){const out=new Map;if(!Array.isArray(entries))return out;for(const entry of entries){if(isRecord(entry)&&typeof entry["year_month"]==="string")out.set(entry["year_month"],entry)}return out}var VIEW_KEY="__twp_staffing_board_view";function viewOf(body){const view=recordOf(isRecord(body)?
|
|
16
|
+
body[VIEW_KEY]:void 0);return{unit:view["unit"]??"hours",byProject:view["byProject"]===true,excludedProjectIds:Array.isArray(view["excludedProjectIds"])?view["excludedProjectIds"]:[],tentatives:Array.isArray(view["tentatives"])?view["tentatives"]:null}}function boardMonthHours(user,ym,view){const excluded=new Set(view.excludedProjectIds);const assigned=num(monthIndex(user["by_month"]).get(ym)?.["assigned_hours"]);let excludedHours=0;const projects=Array.isArray(user["projects"])?user["projects"].
|
|
17
|
+
map(recordOf):[];for(const project of projects){const id=project["project_id"];if(project["is_unassigned"]===true||typeof id!=="string"||!excluded.has(id))continue;const cell=monthIndex(project["by_month"]).get(ym);if(cell!==void 0&&cell["is_estimated"]!==true)excludedHours+=num(cell["hours"])}const base=Math.max(0,assigned-excludedHours);if(view.tentatives===null)return base;const tentative=view.tentatives.filter(t=>t["user_id"]===user["user_id"]&&!(typeof t["project_id"]==="string"&&excluded.has(
|
|
18
|
+
t["project_id"]))).reduce((sum,t)=>sum+num(recordOf(t["monthly_hours"])[ym]),0);return base+tentative}function boardRows(body){const view=viewOf(body);const months=responseMonths(body);return listIn(body,"users","\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9").map(user=>{const byMonth=monthIndex(user["by_month"]);const cells={};let total=0;for(const ym of months){const m=byMonth.get(ym);if(m===void 0){cells[ym]=null;continue}const hours=boardMonthHours(user,ym,view);total+=hours;const estimated=num(
|
|
19
|
+
m["estimated_hours"]);const showEstimated=estimated>0&&(view.unit==="hours"||num(m["standard_hours"])>0);cells[ym]=`${formatBoardValue(hours,m["standard_hours"],view.unit)}${showEstimated?` (+\u63A8\u5B9A ${formatBoardValue(estimated,m["standard_hours"],view.unit)})`:""}`}return{department_name:user["department_name"]??null,user_name:user["user_name"]??null,...cells,total_hours:Math.round(total*10)/10,user_id:user["user_id"]??null}})}function boardProjectRows(body){const view=viewOf(body);const excluded=new Set(
|
|
20
|
+
view.excludedProjectIds);const months=responseMonths(body);const rows=[];for(const user of listIn(body,"users","\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9")){const standards=monthIndex(user["by_month"]);const projects=Array.isArray(user["projects"])?user["projects"].map(recordOf):[];for(const project of projects){const byMonth=monthIndex(project["by_month"]);const cells={};for(const ym of months){const m=byMonth.get(ym);const hours=num(m?.["hours"]);cells[ym]=m===void 0||hours<=0?null:`${formatBoardValue(
|
|
21
|
+
hours,standards.get(ym)?.["standard_hours"],view.unit)}${m["is_estimated"]===true?" (\u63A8\u5B9A)":""}`}const id=project["project_id"];rows.push({user_name:user["user_name"]??null,project_name:project["project_name"]??null,...cells,excluded:typeof id==="string"&&excluded.has(id),unassigned:project["is_unassigned"]===true,user_id:user["user_id"]??null,project_id:id??null})}}return rows}function shownTentatives(body,tentatives){const users=new Set(listIn(body,"users","\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9").
|
|
22
|
+
map(u=>u["user_id"]));return tentatives.filter(t=>users.has(t["user_id"])).length}function showPlan(input){noArgs(input,SHOW_USAGE);const range=boardRange(input,SHOW_USAGE);unitOf(input);return{method:"GET",path:BOARD_PATH,query:{start_ym:range.from,end_ym:range.to,user_id:resolvedOrUndefined(input,"userId"),department_id:resolvedOrUndefined(input,"departmentId")}}}var showOperation={name:"show",summary:"\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9\u306E\u8868\uFF08\u30E1\u30F3\u30D0\u30FC\xD7\u6708\u306E\u30A2\u30B5\u30A4\u30F3\u5DE5\u6570\uFF09\u3092\u8868\u793A\u3059\u308B",
|
|
23
|
+
usage:SHOW_USAGE,description:`\u753B\u9762\u300C\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9\u300D\u306E\u8868\u3068\u540C\u3058\u5024\u3092\u51FA\u3057\u307E\u3059\uFF08GET /api/v2/analysis/staffing-board \uFF0B \u96C6\u8A08\u5BFE\u8C61\u5916\u306E\u8A2D\u5B9A\uFF09\u3002
|
|
24
|
+
\u671F\u9593\u3092\u7701\u304F\u3068\u753B\u9762\u306E\u521D\u671F\u8868\u793A\u3068\u540C\u3058\u7FCC\u6708\u304B\u3089${String(DEFAULT_MONTHS)}\u304B\u6708\uFF08\u3053\u306E\u7AEF\u672B\u306E\u6642\u8A08\uFF09\u3067\u3059\u3002\u671F\u9593\u306F${String(MAX_MONTHS)}\u304B\u6708\u307E\u3067\u3067\u3059\u3002
|
|
25
|
+
\u5404\u6708\u306F\u300C\u6B63\u5F0F\u30A2\u30B5\u30A4\u30F3\u306E\u5408\u8A08 \u2212 \u96C6\u8A08\u5BFE\u8C61\u5916\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u300D\u3067\u3001--include-tentative \u3067\u4EEE\u30A2\u30B5\u30A4\u30F3\u3092\u8DB3\u3057\u307E\u3059\uFF08\u753B\u9762\u306E\u5207\u66FF\u3068\u540C\u3058\uFF09\u3002
|
|
26
|
+
\u63A8\u5B9A\u6642\u9593\uFF08\u30A2\u30B5\u30A4\u30F3\u671F\u9593\u304C\u672A\u5165\u529B\u3067\u6848\u4EF6\u306E\u65E2\u5B9A\u304B\u3089\u51FA\u3057\u305F\u5024\uFF09\u306F\u5408\u8A08\u306B\u542B\u3081\u305A\u3001(+\u63A8\u5B9A \u2026) \u3068\u6DFB\u3048\u307E\u3059\u3002
|
|
27
|
+
--unit \u3067\u6642\u9593 / \u4EBA\u6708\uFF08FTE\uFF09/ \u5272\u5408\u306B\u63DB\u7B97\u3057\u307E\u3059\uFF08\u5206\u6BCD\u306F\u305D\u306E\u30E1\u30F3\u30D0\u30FC\u30FB\u305D\u306E\u6708\u306E\u6A19\u6E96\u6642\u9593\u3002\u753B\u9762\u3068\u540C\u3058\u5F0F\uFF09\u3002
|
|
28
|
+
--by-project \u3067\u30E1\u30F3\u30D0\u30FC\xD7\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u884C\u306B\u3057\u307E\u3059\u3002
|
|
29
|
+
\u30BB\u30EB\u5DE5\u6570\u306E\u66F4\u65B0\u306F twp staffing-board cell set \u3067\u3059\uFF08\u753B\u9762\u3068\u540C\u30581\u304B\u6708\u5358\u4F4D\u30FB\u30DC\u30FC\u30C9\u306E\u7DE8\u96C6\u53EF\u304C\u8981\u308A\u307E\u3059\uFF09\u3002
|
|
30
|
+
--output json \u306F\u30B5\u30FC\u30D0\u306E\u5FDC\u7B54\u306B excluded_project_ids\uFF08\u3068 --include-tentative \u306A\u3089 tentative_assignments\uFF09\u3092\u8DB3\u3057\u305F\u3082\u306E\u3067\u3001\u63DB\u7B97\u524D\u306E\u5024\u3067\u3059\u3002`,flags:[MONTH_FLAG,FROM_FLAG,TO_FLAG,UNIT_FLAG,BY_PROJECT_FLAG,INCLUDE_TENTATIVE_FLAG,USER_FLAG,DEPARTMENT_FLAG],forbidden:FORBIDDEN,async prepare(input,ctx){noArgs(input,SHOW_USAGE);boardRange(input,SHOW_USAGE);unitOf(input);return resolveFilters(
|
|
31
|
+
input,ctx)},plan:showPlan,plannedNotes:input=>[...boardRangeNotes(boardRange(input,SHOW_USAGE)),`\u3053\u306E\u3042\u3068\u96C6\u8A08\u5BFE\u8C61\u5916\u306E\u8A2D\u5B9A\uFF08GET ${BOARD_PATH}/settings\uFF09${input.flags.has(INCLUDE_TENTATIVE_FLAG.name)?"\u3068\u4EEE\u30A2\u30B5\u30A4\u30F3\uFF08GET \u2026/tentative-assignments\uFF09":""}\u3082\u8AAD\u307F\u307E\u3059\u3002`],async execute(input,ctx){const plan=showPlan(input);const board=await ctx.send(plan);const settings=recordOf(dataOf(await ctx.
|
|
32
|
+
send({method:"GET",path:`${BOARD_PATH}/settings`}),"\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9\u306E\u8A2D\u5B9A"));const excluded=Array.isArray(settings["excluded_project_ids"])?settings["excluded_project_ids"].filter(v=>typeof v==="string"):[];let tentatives=null;if(input.flags.has(INCLUDE_TENTATIVE_FLAG.name)){tentatives=listIn(await ctx.send({method:"GET",path:TENTATIVE_PATH,query:{start_ym:plan.query?.["start_ym"],end_ym:plan.query?.["end_ym"]}}),"items","\u4EEE\u30A2\u30B5\u30A4\u30F3")}if(!isRecord(
|
|
33
|
+
board))return board;const view={unit:unitOf(input),byProject:input.flags.has(BY_PROJECT_FLAG.name),excludedProjectIds:excluded,tentatives};return{...board,[VIEW_KEY]:view}},summarize:body=>viewOf(body).byProject?boardProjectRows(body):boardRows(body),raw:body=>{listIn(body,"users","\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9");if(!isRecord(body))return body;const view=viewOf(body);const rest={...body,excluded_project_ids:view.excludedProjectIds};if(view.tentatives!==null)rest["tentative_assignmen\
|
|
34
|
+
ts"]=view.tentatives;delete rest[VIEW_KEY];return rest},notes:body=>{const view=viewOf(body);return[...periodNote(body),...view.excludedProjectIds.length>0?[`\u96C6\u8A08\u5BFE\u8C61\u5916\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 ${String(view.excludedProjectIds.length)} \u4EF6\u3092\u5408\u8A08\u304B\u3089\u9664\u3044\u3066\u3044\u307E\u3059\u3002`]:[],view.tentatives===null?"\u4EEE\u30A2\u30B5\u30A4\u30F3\u306F\u542B\u307F\u307E\u305B\u3093\uFF08--include-tentative \u3067\u8DB3\u3057\u307E\u3059\uFF09\u3002":
|
|
35
|
+
view.byProject?"--by-project \u306E\u884C\u306F\u6B63\u5F0F\u30A2\u30B5\u30A4\u30F3\u3060\u3051\u3067\u3001\u4EEE\u30A2\u30B5\u30A4\u30F3\u306F\u542B\u307F\u307E\u305B\u3093\u3002":`\u8868\u793A\u3057\u305F\u30E1\u30F3\u30D0\u30FC\u306E\u4EEE\u30A2\u30B5\u30A4\u30F3 ${String(shownTentatives(body,view.tentatives))} \u4EF6\u3092\u5408\u8A08\u306B\u542B\u3081\u3066\u3044\u307E\u3059\u3002`]}};var PROBABILITIES=["confirmed","likely","pre","on_hold"];var PROBABILITY_LABELS={confirmed:"\u78BA\u5B9A",likely:"\
|
|
36
|
+
\u307B\u307C\u78BA\u5B9A",pre:"\u30D7\u30EC",on_hold:"\u4FDD\u7559"};var TENTATIVE_USER_FLAG={name:"--user",summary:"\u30E1\u30F3\u30D0\u30FC\uFF08\u6C0F\u540D\u30FB\u30E1\u30FC\u30EB\u30FBID\u30FBme\uFF09",takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FC>"};var TENTATIVE_PROJECT_FLAG={name:"--project",summary:"\u65E2\u5B58\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30B3\u30FC\u30C9\u30FBID\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"};var PROJECT_NAME_FLAG={name:"--project\
|
|
37
|
+
-name",summary:"TWP \u672A\u767B\u9332\u306E\u898B\u8FBC\u307F\u6848\u4EF6\u540D\uFF08200\u6587\u5B57\u307E\u3067\uFF09",takesValue:true,placeholder:"<\u6848\u4EF6\u540D>"};var PROBABILITY_FLAG={name:"--probability",summary:"\u78BA\u5EA6\uFF08confirmed\uFF1D\u78BA\u5B9A / likely\uFF1D\u307B\u307C\u78BA\u5B9A / pre\uFF1D\u30D7\u30EC / on_hold\uFF1D\u4FDD\u7559\uFF09",takesValue:true,placeholder:"<\u78BA\u5EA6>"};var HOURS_FLAG={name:"--hours",summary:"\u6708\u306E\u6642\u9593\uFF08YYYY-MM=\u6642\u9593\uFF09\u3002\u7E70\u308A\u8FD4\u3057\u6307\u5B9A\u3067\u304D\u308B\u3002update \u3067\u306F\u6307\u5B9A\u3057\u305F\u6708\u306E\u96C6\u5408\u3067\
|
|
38
|
+
\u7F6E\u304D\u63DB\u308F\u308B",takesValue:true,placeholder:"<YYYY-MM=\u6642\u9593>",repeatable:true};var NO_HOURS_FLAG={name:"--no-hours",summary:"\u6708\u306E\u6642\u9593\u3092\u7A7A\u306B\u3059\u308B\uFF08\u6642\u671F\u672A\u5B9A\u306E\u898B\u8FBC\u307F\uFF09",takesValue:false};var MEMO_FLAG={name:"--memo",summary:"\u30E1\u30E2\uFF082,000\u6587\u5B57\u307E\u3067\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"};var ROLE_FLAG={name:"--role",summary:"\u6607\u683C\u6642\u306E\u5F79\u5272\uFF08\u65E2\u5B9A member\u3002\u5024\u306F\u30B5\u30FC\u30D0\u304C\u691C\u67FB\u3059\u308B\uFF09",
|
|
39
|
+
takesValue:true,placeholder:"<\u5F79\u5272>"};var TENTATIVE_LIST_USAGE="twp staffing-board tentative list [--from <YYYY-MM> --to <YYYY-MM>] [--user <\u30E6\u30FC\u30B6\u30FC>]";var TENTATIVE_CREATE_USAGE="twp staffing-board tentative create --user <\u30E6\u30FC\u30B6\u30FC> (--project <\u30B3\u30FC\u30C9> | --project-name <\u6848\u4EF6\u540D>) --probability <\u78BA\u5EA6> (--hours <YYYY-MM=\u6642\u9593> ... | --no-hours) [--memo <\u6587\u5B57\u5217>]";var TENTATIVE_UPDATE_USAGE="twp staffing-boa\
|
|
40
|
+
rd tentative update <ID> [--user <\u30E6\u30FC\u30B6\u30FC>] [--project <\u30B3\u30FC\u30C9>] [--project-name <\u6848\u4EF6\u540D>] [--probability <\u78BA\u5EA6>] [--hours <YYYY-MM=\u6642\u9593> ... | --no-hours] [--memo <\u6587\u5B57\u5217>]";var TENTATIVE_DELETE_USAGE="twp staffing-board tentative delete <ID> --yes";var TENTATIVE_PROMOTE_USAGE="twp staffing-board tentative promote <ID> [--project <\u30B3\u30FC\u30C9>] [--role <\u5F79\u5272>] --yes";function parseMonthlyHours(values,usage){const out={};
|
|
41
|
+
for(const raw of values){const match=/^\s*(\d{4}-(?:0[1-9]|1[0-2]))\s*=\s*([0-9]+(?:\.[0-9]+)?)\s*$/.exec(raw);if(match===null)throw new UsageError(`--hours \u306F YYYY-MM=\u6642\u9593 \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,usage);const[,ym,hours]=match;if(ym in out)throw new UsageError(`--hours \u306B\u540C\u3058\u6708\uFF08${ym}\uFF09\u304C2\u56DE\u3042\u308A\u307E\u3059`,usage);out[ym]=Number(hours)}return out}
|
|
42
|
+
function probabilityOf(input,usage){const raw=input.flags.get(PROBABILITY_FLAG.name)?.trim();if(raw===void 0)return void 0;if(!PROBABILITIES.includes(raw)){throw new UsageError(`--probability \u306F ${PROBABILITIES.join(" / ")} \u306E\u3044\u305A\u308C\u304B\u3067\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,usage)}return raw}function tentativeBody(input,usage,creating){const body={};const userId=input.resolved?.["userId"];const projectId=input.resolved?.["projectId"];const projectName=input.
|
|
43
|
+
flags.get(PROJECT_NAME_FLAG.name);const probability=probabilityOf(input,usage);const hours=repeatedValues(input,HOURS_FLAG.name);const noHours=input.flags.has(NO_HOURS_FLAG.name);const memo=input.flags.get(MEMO_FLAG.name);if(hours.length>0&&noHours)throw new UsageError("--hours \u3068 --no-hours \u306F\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",usage);if(creating){if(userId===void 0)throw new UsageError("--user \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);if(projectId===void 0&&
|
|
44
|
+
(projectName===void 0||projectName.trim()==="")){throw new UsageError("--project \u304B --project-name \u306E\u3069\u3061\u3089\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage)}if(probability===void 0)throw new UsageError("--probability \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);if(hours.length===0&&!noHours){throw new UsageError("--hours \u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u6642\u671F\u672A\u5B9A\u306A\u3089 --no-hours\uFF09",
|
|
45
|
+
usage)}}if(userId!==void 0)body["user_id"]=userId;if(projectId!==void 0)body["project_id"]=projectId;if(projectName!==void 0)body["project_name"]=projectName.trim()===""?null:projectName.trim();if(probability!==void 0)body["probability"]=probability;if(hours.length>0)body["monthly_hours"]=parseMonthlyHours(hours,usage);if(noHours)body["monthly_hours"]={};if(memo!==void 0)body["memo"]=memo===""?null:memo;if(!creating&&Object.keys(body).length===0)throw new UsageError("\u5909\u66F4\u3059\u308B\u9805\u76EE\u30921\u3064\u4EE5\u4E0A\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
46
|
+
usage);return body}async function resolveTentativeRefs(input,ctx){const resolved={};const user=input.flags.get(TENTATIVE_USER_FLAG.name);const project=input.flags.get(TENTATIVE_PROJECT_FLAG.name);if(user!==void 0)resolved["userId"]=(await ctx.resolver.user(user,TENTATIVE_USER_FLAG.name)).id;if(project!==void 0)resolved["projectId"]=(await ctx.resolver.project(project)).id;return withResolved(input,resolved)}var TENTATIVE_COLUMNS=["user_id","project_name","probability","hours","memo","project_id",
|
|
47
|
+
"id","updated_at"];function tentativeRow(item){const monthly=recordOf(item["monthly_hours"]);const hours=Object.keys(monthly).sort().map(ym=>`${ym}=${String(monthly[ym])}`).join(" ");const probability=typeof item["probability"]==="string"?item["probability"]:null;return pick({...item,probability:probability===null?null:`${PROBABILITY_LABELS[probability]??probability}\uFF08${probability}\uFF09`,hours},TENTATIVE_COLUMNS)}function tentativeOne(body){const data=dataOf(body,"\u4EEE\u30A2\u30B5\u30A4\u30F3");
|
|
48
|
+
if(!isRecord(data))throw new ApiResponseError("\u4EEE\u30A2\u30B5\u30A4\u30F3\u306E\u5FDC\u7B54\u306E data \u304C\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return data}function tentativeWrite(name){const creating=name==="create";const usage=creating?TENTATIVE_CREATE_USAGE:TENTATIVE_UPDATE_USAGE;return{name,summary:creating?"\u4EEE\u30A2\u30B5\u30A4\u30F3\uFF08\u672A\u767B\u9332\u306E\u898B\u8FBC\u307F\u6848\u4EF6\u3092\u542B\u3080\uFF09\u3092\u767B\u9332\u3059\u308B":
|
|
49
|
+
"\u4EEE\u30A2\u30B5\u30A4\u30F3\u3092\u5909\u66F4\u3059\u308B",usage,description:(creating?"POST /api/v2/analysis/staffing-board/tentative-assignments \u3067\u3059\u3002\u6B63\u30C7\u30FC\u30BF\uFF08ProjectMember\uFF09\u306B\u306F\u5165\u3089\u305A\u3001\u30DC\u30FC\u30C9\u306E\u5225\u8868\u793A\u306B\u3060\u3051\u8F09\u308A\u307E\u3059\u3002\n":"PUT /api/v2/analysis/staffing-board/tentative-assignments/{id} \u3067\u3059\u3002\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u9001\u308A\u307E\u3059\u3002\n--hours \u306F\u6708\u306E\u96C6\u5408\u3092\u4E38\u3054\u3068\u7F6E\u304D\u63DB\u3048\u307E\u3059\uFF08\u8DB3\u3059\u306E\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u6B8B\u3057\u305F\u3044\u6708\u3082\u4E26\u3079\u3066\u304F\u3060\u3055\u3044\uFF09\u3002\n")+
|
|
50
|
+
"\u78BA\u5EA6\u306F confirmed\uFF08\u78BA\u5B9A\uFF09/ likely\uFF08\u307B\u307C\u78BA\u5B9A\uFF09/ pre\uFF08\u30D7\u30EC\uFF09/ on_hold\uFF08\u4FDD\u7559\uFF09\u3067\u3059\u3002\u7DE8\u96C6\u53EF\u306E\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\u3002",flags:[TENTATIVE_USER_FLAG,TENTATIVE_PROJECT_FLAG,PROJECT_NAME_FLAG,PROBABILITY_FLAG,HOURS_FLAG,NO_HOURS_FLAG,MEMO_FLAG],forbidden:writeForbidden,async prepare(input,ctx){if(creating)noArgs(input,usage);else idArg(input,"\u4EEE\u30A2\u30B5\u30A4\u30F3",
|
|
51
|
+
usage);probabilityOf(input,usage);return resolveTentativeRefs(input,ctx)},plan(input){if(creating){noArgs(input,usage);return{method:"POST",path:TENTATIVE_PATH,body:tentativeBody(input,usage,true)}}return{method:"PUT",path:`${TENTATIVE_PATH}/${idArg(input,"\u4EEE\u30A2\u30B5\u30A4\u30F3",usage)}`,body:tentativeBody(input,usage,false)}},plannedNotes:input=>repeatedValues(input,HOURS_FLAG.name).some(v=>/=\s*0+(\.0+)?\s*$/.test(v))?["0 \u6642\u9593\u306E\u6708\u306F\u30B5\u30FC\u30D0\u304C\u4FDD\u5B58\u3057\u307E\u305B\u3093\uFF08\u305D\u306E\u6708\u306F\u6642\u9593\u306A\u3057\u306B\u306A\u308A\u307E\u3059\uFF09\u3002"]:
|
|
52
|
+
[],summarize:body=>tentativeRow(tentativeOne(body)),raw:body=>tentativeOne(body)}}var tentativeResource={name:"tentative",summary:"\u4EEE\u30A2\u30B5\u30A4\u30F3\uFF08TWP \u672A\u767B\u9332\u306E\u898B\u8FBC\u307F\u6848\u4EF6\u30FB\u78BA\u5EA6\u533A\u5206\uFF09",operations:[{name:"list",summary:"\u4EEE\u30A2\u30B5\u30A4\u30F3\u306E\u4E00\u89A7\u3092\u8868\u793A\u3059\u308B",usage:TENTATIVE_LIST_USAGE,description:"GET /api/v2/analysis/staffing-board/tentative-assignments \u3067\u3059\uFF08\u30C6\u30CA\u30F3\u30C8\u5168\u4EF6\u30FB\u30E1\u30F3\u30D0\u30FC\u9806\uFF09\u3002\n--from \
|
|
53
|
+
/ --to \u3092\u4ED8\u3051\u308B\u3068\u3001\u305D\u306E\u671F\u9593\u306B\u6642\u9593\u306E\u3042\u308B\u4EEE\u30A2\u30B5\u30A4\u30F3\u3060\u3051\u306B\u306A\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u304C\u7D5E\u308A\u307E\u3059\uFF09\u3002\nhours \u5217\u306F YYYY-MM=\u6642\u9593 \u3092\u4E26\u3079\u305F\u3082\u306E\u3067\u3059\u3002",flags:[FROM_FLAG,TO_FLAG,TENTATIVE_USER_FLAG],forbidden:FORBIDDEN,async prepare(input,ctx){noArgs(input,TENTATIVE_LIST_USAGE);tentativeListRange(input);return resolveTentativeRefs(
|
|
54
|
+
input,ctx)},plan(input){noArgs(input,TENTATIVE_LIST_USAGE);const range=tentativeListRange(input);return{method:"GET",path:TENTATIVE_PATH,query:{start_ym:range?.from,end_ym:range?.to,user_id:resolvedOrUndefined(input,"userId")}}},summarize:body=>listIn(body,"items","\u4EEE\u30A2\u30B5\u30A4\u30F3").map(tentativeRow),raw:body=>listIn(body,"items","\u4EEE\u30A2\u30B5\u30A4\u30F3")},tentativeWrite("create"),tentativeWrite("update"),{name:"delete",summary:"\u4EEE\u30A2\u30B5\u30A4\u30F3\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\uFF09",
|
|
55
|
+
usage:TENTATIVE_DELETE_USAGE,description:"DELETE /api/v2/analysis/staffing-board/tentative-assignments/{id} \u3067\u3059\u3002\u7DE8\u96C6\u53EF\u306E\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\u3002",destructive:true,flags:[],forbidden:writeForbidden,plan:input=>({method:"DELETE",path:`${TENTATIVE_PATH}/${idArg(input,"\u4EEE\u30A2\u30B5\u30A4\u30F3",TENTATIVE_DELETE_USAGE)}`}),summarize:body=>acknowledgement(body,"\u4EEE\u30A2\u30B5\u30A4\u30F3\u306E\u524A\u9664"),raw:body=>acknowledgement(body,
|
|
56
|
+
"\u4EEE\u30A2\u30B5\u30A4\u30F3\u306E\u524A\u9664")},{name:"promote",summary:"\u4EEE\u30A2\u30B5\u30A4\u30F3\u3092\u6B63\u5F0F\u30A2\u30B5\u30A4\u30F3\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30E1\u30F3\u30D0\u30FC\uFF09\u3078\u6607\u683C\u3059\u308B\uFF08--yes \u304C\u8981\u308B\uFF09",usage:TENTATIVE_PROMOTE_USAGE,description:"POST /api/v2/analysis/staffing-board/tentative-assignments/{id}/promote \u3067\u3059\u3002\n\u30E1\u30F3\u30D0\u30FC\u3092\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3078\u8FFD\u52A0\u3057\u3066\u6708\u306E\u6642\u9593\u3092\u30A2\u30B5\u30A4\u30F3\u671F\u9593\u3078\u5199\u3057\u3001\u4EEE\u30A2\u30B5\u30A4\u30F3\u306F\u6D88\u3048\u307E\u3059\uFF08\u5143\u306B\u623B\u3059\u64CD\u4F5C\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\n--project \u306F\u4EEE\u30A2\u30B5\u30A4\u30F3\u304C\u65E2\u5B58\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u6307\u3057\u3066\u3044\u308C\u3070\u7701\u3051\
|
|
57
|
+
\u307E\u3059\u3002\u7DE8\u96C6\u53EF\u306E\u6A29\u9650\u3068\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\u3002",destructive:true,confirmation:"\u6B63\u5F0F\u30A2\u30B5\u30A4\u30F3\u3078\u66F8\u304D\u8FBC\u307F\u3001\u4EEE\u30A2\u30B5\u30A4\u30F3\u3092\u6D88\u3059\u64CD\u4F5C",flags:[TENTATIVE_PROJECT_FLAG,ROLE_FLAG],forbidden:writeForbidden,async prepare(input,ctx){idArg(input,"\u4EEE\u30A2\u30B5\u30A4\u30F3",TENTATIVE_PROMOTE_USAGE);return resolveTentativeRefs(
|
|
58
|
+
input,ctx)},plan(input){const body={};const projectId=input.resolved?.["projectId"];const role=input.flags.get(ROLE_FLAG.name)?.trim();if(projectId!==void 0)body["project_id"]=projectId;if(role!==void 0&&role!=="")body["role"]=role;return{method:"POST",path:`${TENTATIVE_PATH}/${idArg(input,"\u4EEE\u30A2\u30B5\u30A4\u30F3",TENTATIVE_PROMOTE_USAGE)}/promote`,body}},summarize:body=>acknowledgement(body,"\u4EEE\u30A2\u30B5\u30A4\u30F3\u306E\u6607\u683C"),raw:body=>acknowledgement(body,"\u4EEE\u30A2\u30B5\u30A4\u30F3\u306E\u6607\u683C")}]};
|
|
59
|
+
function tentativeListRange(input){const from=monthFlag(input.flags,FROM_FLAG.name);const to=monthFlag(input.flags,TO_FLAG.name);if(from===void 0&&to===void 0)return void 0;if(from===void 0||to===void 0)throw new UsageError("--from \u3068 --to \u306F\u4E21\u65B9\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",TENTATIVE_LIST_USAGE);if(from>to)throw new UsageError(`--from\uFF08${from}\uFF09\u304C --to\uFF08${to}\uFF09\u3088\u308A\u5F8C\u306B\u306A\u3063\u3066\u3044\u307E\u3059`,TENTATIVE_LIST_USAGE);
|
|
60
|
+
return{from,to}}var NOTE_PATH=`${BOARD_PATH}/notes`;var NOTE_SCOPES=["cell","member","meeting"];var NOTE_MAX_CHARS=5e4;var SCOPE_FLAG={name:"--scope",summary:"\u30E1\u30E2\u306E\u7A2E\u985E\uFF08cell\uFF1D\u30E1\u30F3\u30D0\u30FC\xD7\u6708 / member\uFF1D\u30E1\u30F3\u30D0\u30FC / meeting\uFF1D\u4F1A\u8B70\u65E5\uFF09",takesValue:true,placeholder:"<cell|member|meeting>"};var NOTE_USER_FLAG={name:"--user",summary:"\u30E1\u30F3\u30D0\u30FC\uFF08cell / member \u306E\u3068\u304D\u3002\u6C0F\u540D\u30FB\u30E1\u30FC\u30EB\u30FBID\u30FBme\uFF09",
|
|
61
|
+
takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FC>"};var NOTE_MONTH_FLAG={name:"--month",summary:"\u6708\uFF08cell \u306E\u3068\u304D\u30FBYYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"};var MEETING_DATE_FLAG={name:"--meeting-date",summary:"\u4F1A\u8B70\u65E5\uFF08meeting \u306E\u3068\u304D\u30FBYYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var CONTENT_FLAG={name:"--content",summary:"\u30E1\u30E2\u672C\u6587",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"};var CONTENT_FILE_FLAG={
|
|
62
|
+
name:"--content-file",summary:"\u30E1\u30E2\u672C\u6587\u3092\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u8AAD\u3080\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};var EXPECTED_FLAG={name:"--expected-updated-at",summary:"\u7DE8\u96C6\u3092\u59CB\u3081\u305F\u6642\u70B9\u306E updated_at\uFF08\u65B0\u898F\u306A\u3089 none\uFF09\u3002\u98DF\u3044\u9055\u3048\u3070\u4E0A\u66F8\u304D\u305B\u305A 409 \u3067\u6B62\u307E\u308B",takesValue:true,placeholder:"<updated_a\
|
|
63
|
+
t|none>"};var NOTE_LIST_USAGE="twp staffing-board note list [--scope cell|member|meeting] [--user <\u30E6\u30FC\u30B6\u30FC>]";var NOTE_SET_USAGE="twp staffing-board note set --scope <cell|member|meeting> [--user <\u30E6\u30FC\u30B6\u30FC>] [--month <YYYY-MM>] [--meeting-date <YYYY-MM-DD>] (--content <\u6587\u5B57\u5217> | --content-file <\u30D1\u30B9>) [--expected-updated-at <\u5024|none>]";var NOTE_DELETE_USAGE="twp staffing-board note delete <ID> --yes";var NOTE_COLUMNS=["scope","user_id","mo\
|
|
64
|
+
nth","meeting_date","content","updated_at","updated_by_name","id"];function noteScope(input,usage,required){const raw=input.flags.get(SCOPE_FLAG.name)?.trim();if(raw===void 0){if(required)throw new UsageError("--scope \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08cell / member / meeting\uFF09",usage);return void 0}if(!NOTE_SCOPES.includes(raw))throw new UsageError(`--scope \u306F cell / member / meeting \u306E\u3044\u305A\u308C\u304B\u3067\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\
|
|
65
|
+
\uFF09`,usage);return raw}function noteTarget(input,usage){const scope=noteScope(input,usage,true);const month=monthFlag(input.flags,NOTE_MONTH_FLAG.name);const meetingDate=isoDate(input,MEETING_DATE_FLAG.name);const needs={cell:["--user","--month"],member:["--user"],meeting:["--meeting-date"]};const given={"--user":input.flags.has(NOTE_USER_FLAG.name),"--month":month!==void 0,"--meeting-date":meetingDate!==void 0};const required=needs[scope]??[];const missing=required.filter(flag=>!given[flag]);
|
|
66
|
+
const extra=Object.keys(given).filter(flag=>given[flag]&&!required.includes(flag));if(missing.length>0)throw new UsageError(`--scope ${scope} \u3067\u306F ${missing.join(" / ")} \u304C\u8981\u308A\u307E\u3059`,usage);if(extra.length>0)throw new UsageError(`--scope ${scope} \u3067\u306F ${extra.join(" / ")} \u306F\u4F7F\u3044\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u304C\u7121\u8996\u3057\u307E\u3059\uFF09`,usage);const target={scope};if(scope!=="meeting")target["user_id"]=requireResolved(input,
|
|
67
|
+
"userId");if(scope==="cell"&&month!==void 0)target["month"]=month;if(scope==="meeting"&&meetingDate!==void 0)target["meeting_date"]=meetingDate;return target}function noteOne(body){const data=dataOf(body,"\u30E1\u30E2");if(!isRecord(data))throw new ApiResponseError("\u30E1\u30E2\u306E\u5FDC\u7B54\u306E data \u304C\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return data}function noteList(body){
|
|
68
|
+
const data=dataOf(body,"\u30E1\u30E2");if(!Array.isArray(data))throw new ApiResponseError("\u30E1\u30E2\u306E\u4E00\u89A7\u306E\u5FDC\u7B54\u306E data \u304C\u914D\u5217\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return data.map(recordOf)}var noteResource={name:"note",summary:"\u30E1\u30E2\uFF08\u30E1\u30F3\u30D0\u30FC\xD7\u6708\u30FB\u30E1\u30F3\u30D0\u30FC\u30FB\u4F1A\u8B70\u65E5\u306E3\u7A2E\u985E\u3002\u66F4\u65B0\u8005\u3068\u65E5\u6642\u3064\u304D\uFF09",
|
|
69
|
+
operations:[{name:"list",summary:"\u30E1\u30E2\u306E\u4E00\u89A7\u3092\u8868\u793A\u3059\u308B",usage:NOTE_LIST_USAGE,description:"GET /api/v2/analysis/staffing-board/notes \u3067\u3059\uFF08\u30C6\u30CA\u30F3\u30C8\u5168\u4EF6\uFF09\u3002--scope / --user \u306F CLI \u304C\u884C\u3092\u7D5E\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306B\u7D5E\u308A\u8FBC\u307F\u304C\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\n--output json \u306E\u884C\u306F\u7D5E\u3063\u305F\u5F8C\u306E\u3082\u306E\u3067\u3059\u3002",
|
|
70
|
+
flags:[SCOPE_FLAG,NOTE_USER_FLAG],forbidden:FORBIDDEN,async prepare(input,ctx){noArgs(input,NOTE_LIST_USAGE);noteScope(input,NOTE_LIST_USAGE,false);const user=input.flags.get(NOTE_USER_FLAG.name);return user===void 0?input:withResolved(input,{userId:(await ctx.resolver.user(user,NOTE_USER_FLAG.name)).id})},plan(input){noArgs(input,NOTE_LIST_USAGE);noteScope(input,NOTE_LIST_USAGE,false);return{method:"GET",path:NOTE_PATH}},plannedNotes:input=>input.flags.has(SCOPE_FLAG.name)||input.flags.has(NOTE_USER_FLAG.
|
|
71
|
+
name)?["--scope / --user \u306F\u30B5\u30FC\u30D0\u306B\u7121\u3044\u7D5E\u308A\u8FBC\u307F\u306A\u306E\u3067\u3001\u5168\u4EF6\u3092\u53D7\u3051\u53D6\u3063\u3066\u304B\u3089 CLI \u304C\u7D5E\u308A\u307E\u3059\u3002"]:[],narrow(body,input){const scope=noteScope(input,NOTE_LIST_USAGE,false);const userId=input.resolved?.["userId"];const rows=noteList(body).filter(row=>(scope===void 0||row["scope"]===scope)&&(userId===void 0||row["user_id"]===userId));return isRecord(body)?{...body,data:rows}:body},
|
|
72
|
+
summarize:body=>noteList(body).map(row=>pick(row,NOTE_COLUMNS)),raw:body=>noteList(body),notes:body=>isRecord(body)&&body["can_edit"]===false?["\u3042\u306A\u305F\u306F\u3053\u306E\u30DC\u30FC\u30C9\u3092\u95B2\u89A7\u306E\u307F\u3067\u304D\u307E\u3059\uFF08\u30E1\u30E2\u306E\u66F4\u65B0\u306F\u3067\u304D\u307E\u305B\u3093\uFF09\u3002"]:[]},{name:"set",summary:"\u30E1\u30E2\u3092\u4F5C\u6210\u30FB\u4E0A\u66F8\u304D\u3059\u308B\uFF08\u5BFE\u8C61\u3054\u3068\u306B1\u4EF6\uFF09",usage:NOTE_SET_USAGE,
|
|
73
|
+
description:`PUT /api/v2/analysis/staffing-board/notes \u3067\u3059\u3002\u5BFE\u8C61\uFF08\u7A2E\u985E\uFF0B\u30E1\u30F3\u30D0\u30FC\uFF0F\u6708\uFF0F\u4F1A\u8B70\u65E5\uFF09\u3054\u3068\u306B1\u4EF6\u3067\u3001\u65E2\u306B\u3042\u308C\u3070\u4E0A\u66F8\u304D\u3057\u307E\u3059\u3002
|
|
74
|
+
\u4ED6\u306E\u4EBA\u306E\u4FDD\u5B58\u3092\u9ED9\u3063\u3066\u4E0A\u66F8\u304D\u3057\u305F\u304F\u306A\u3044\u3068\u304D\u306F --expected-updated-at \u306B\u8AAD\u3093\u3060\u6642\u70B9\u306E updated_at\uFF08\u65B0\u898F\u306A\u3089 none\uFF09\u3092\u6E21\u3057\u307E\u3059\u3002
|
|
75
|
+
\u672C\u6587\u306F ${NOTE_MAX_CHARS.toLocaleString("en-US")} \u6587\u5B57\u307E\u3067\u3067\u3059\u3002\u7DE8\u96C6\u53EF\u306E\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\u3002`,flags:[SCOPE_FLAG,NOTE_USER_FLAG,NOTE_MONTH_FLAG,MEETING_DATE_FLAG,CONTENT_FLAG,CONTENT_FILE_FLAG,EXPECTED_FLAG],forbidden:writeForbidden,async prepare(input,ctx){noArgs(input,NOTE_SET_USAGE);noteScope(input,NOTE_SET_USAGE,true);const user=input.flags.get(NOTE_USER_FLAG.name);const content=await readBody(input,{flag:CONTENT_FLAG.
|
|
76
|
+
name,fileFlag:CONTENT_FILE_FLAG.name,label:"\u30E1\u30E2\u672C\u6587",maxChars:NOTE_MAX_CHARS,usage:NOTE_SET_USAGE});if(content===void 0||content.trim()==="")throw new UsageError("\u30E1\u30E2\u672C\u6587\uFF08--content \u304B --content-file\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",NOTE_SET_USAGE);const resolved={content};if(user!==void 0)resolved["userId"]=(await ctx.resolver.user(user,NOTE_USER_FLAG.name)).id;return withResolved(input,resolved)},plan(input){noArgs(input,NOTE_SET_USAGE);
|
|
77
|
+
const body={...noteTarget(input,NOTE_SET_USAGE),content:requireResolved(input,"content")};const expected=input.flags.get(EXPECTED_FLAG.name)?.trim();if(expected!==void 0)body["expected_updated_at"]=expected==="none"||expected===""?null:expected;return{method:"PUT",path:NOTE_PATH,body}},summarize:body=>pick(noteOne(body),NOTE_COLUMNS),raw:body=>noteOne(body)},{name:"delete",summary:"\u30E1\u30E2\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\uFF09",usage:NOTE_DELETE_USAGE,description:"\
|
|
78
|
+
DELETE /api/v2/analysis/staffing-board/notes/{id} \u3067\u3059\u3002ID \u306F note list \u306E id \u5217\uFF08\u4F8B: member:<\u30E6\u30FC\u30B6\u30FCID>\uFF09\u3067\u3059\u3002\u7DE8\u96C6\u53EF\u306E\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\u3002",destructive:true,flags:[],forbidden:writeForbidden,plan:input=>({method:"DELETE",path:`${NOTE_PATH}/${idArg(input,"\u30E1\u30E2",NOTE_DELETE_USAGE)}`}),summarize:body=>acknowledgement(body,"\u30E1\u30E2\u306E\u524A\u9664"),raw:body=>acknowledgement(
|
|
79
|
+
body,"\u30E1\u30E2\u306E\u524A\u9664")}]};var SNAPSHOT_PATH=`${BOARD_PATH}/snapshots`;var BASE_FLAG={name:"--base",summary:"\u6BD4\u3079\u308B\u76F8\u624B\u306E\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8 ID\uFF08\u7121\u3051\u308C\u3070\u76F4\u524D\u306B\u4FDD\u5B58\u3057\u305F\u3082\u306E\uFF09",takesValue:true,placeholder:"<ID>"};var SNAPSHOT_MEETING_FLAG={name:"--meeting-date",summary:"\u4F1A\u8B70\u65E5\uFF08YYYY-MM-DD\uFF09\u3002\u7121\u3051\u308C\u3070\u4ECA\u65E5\uFF08\u30B5\u30FC\u30D0\u304C\u6C7A\u3081\u307E\u3059\uFF09",
|
|
80
|
+
takesValue:true,placeholder:"<YYYY-MM-DD>"};var SNAPSHOT_GET_USAGE="twp staffing-board snapshot get <ID>";var SNAPSHOT_DIFF_USAGE="twp staffing-board snapshot diff <ID> [--base <ID>]";var SNAPSHOT_CREATE_USAGE="twp staffing-board snapshot create [--month <YYYY-MM> | --from <YYYY-MM> --to <YYYY-MM>] [--meeting-date <YYYY-MM-DD>]";var SNAPSHOT_DELETE_USAGE="twp staffing-board snapshot delete <ID> --yes";var SNAPSHOT_COLUMNS=["meeting_date","start_ym","end_ym","member_count","created_at","created_b\
|
|
81
|
+
y_name","id"];function snapshotOne(body,label){const data=dataOf(body,label);if(!isRecord(data))throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306E data \u304C\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return data}function snapshotRows(data){const months=Array.isArray(data["year_months"])?data["year_months"].filter(m=>typeof m==="string"):[];const rows=Array.isArray(
|
|
82
|
+
data["rows"])?data["rows"].map(recordOf):[];return rows.map(row=>{const byMonth=monthIndex(row["months"]);const cells={};for(const ym of months){const m=byMonth.get(ym);cells[ym]=m===void 0?null:`${String(m["total_hours"])}h/${m["utilization_rate"]===null?"-":`${String(m["utilization_rate"])}%`}`}return{department_name:row["department_name"]??null,user_name:row["user_name"]??null,...cells,contract_end_ym:row["contract_end_ym"]??null,user_id:row["user_id"]??null}})}function monthsText(months,field){
|
|
83
|
+
if(!Array.isArray(months))return"";return months.map(recordOf).map(m=>`${String(m["year_month"]??"?")}:${m[field]===null||m[field]===void 0?"-":`${String(m[field])}%`}`).join(" ")}function extractionNotes(data){const extraction=recordOf(data["extraction"]);const names=key=>{const list=Array.isArray(extraction[key])?extraction[key].map(recordOf):[];return list.length===0?"\u306A\u3057":list.map(m=>String(m["user_name"]??m["user_id"]??"?")).join("\u3001")};return[`\u4F1A\u8B70\u65E5 ${String(data["\
|
|
84
|
+
meeting_date"]??"-")} / \u671F\u9593 ${String(data["start_ym"]??"-")} \u301C ${String(data["end_ym"]??"-")} / ${String(data["member_count"]??"-")} \u4EBA`,`\u7A7A\u304D: ${names("free")}`,`\u8D85\u904E: ${names("over")}`,`\u5951\u7D04\u7D42\u4E86\u4E88\u5B9A: ${names("contract_ending")}`]}function diffRows(data){const changes=Array.isArray(data["changes"])?data["changes"].map(recordOf):[];return changes.map(row=>({department_name:row["department_name"]??null,user_name:row["user_name"]??null,delta_hours:row["\
|
|
85
|
+
delta_hours"]??null,months:Array.isArray(row["months"])?row["months"].map(recordOf).map(m=>`${String(m["year_month"]??"?")}: ${String(m["before_hours"]??"-")}\u2192${String(m["after_hours"]??"-")}h`).join(" / "):"",user_id:row["user_id"]??null}))}function diffNotes(data){if(data["base"]===null)return["\u6BD4\u3079\u308B\u76F8\u624B\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u6700\u521D\u306E\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u3067\u3059\uFF09\u3002"];const base=recordOf(data["base"]);
|
|
86
|
+
const current=recordOf(data["current"]);const summary=recordOf(data["summary"]);const members=key=>{const list=Array.isArray(data[key])?data[key].map(recordOf):[];return list.length===0?"\u306A\u3057":list.map(m=>`${String(m["user_name"]??"?")}${"months"in m?`\uFF08${monthsText(m["months"],"after_utilization_rate")}\uFF09`:""}`).join("\u3001")};return[`\u6BD4\u8F03: ${String(base["meeting_date"]??"-")}\uFF08${String(base["id"]??"-")}\uFF09\u2192 ${String(current["meeting_date"]??"-")}\uFF08${String(
|
|
87
|
+
current["id"]??"-")}\uFF09`,`\u5909\u5316 ${String(summary["changed_count"]??"-")} \u4EBA\uFF08\u5897 ${String(summary["increased_count"]??"-")} / \u6E1B ${String(summary["decreased_count"]??"-")}\uFF09\u30FB\u5408\u8A08 ${String(summary["total_delta_hours"]??"-")}h`,`\u65B0\u305F\u306B\u7A7A\u304D: ${members("newly_free")}`,`\u65B0\u305F\u306B\u8D85\u904E: ${members("newly_over")}`,`\u8FFD\u52A0\u3055\u308C\u305F\u30E1\u30F3\u30D0\u30FC: ${members("added_members")}`,`\u3044\u306A\u304F\u306A\u3063\u305F\u30E1\u30F3\u30D0\u30FC: ${members(
|
|
88
|
+
"removed_members")}`]}var snapshotResource={name:"snapshot",summary:"\u6642\u70B9\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\uFF08\u4F1A\u8B70\u3054\u3068\u306E\u4FDD\u5B58\u30FB\u524D\u56DE\u3068\u306E\u5DEE\u5206\u30FB\u7A7A\u304D\uFF0F\u8D85\u904E\uFF0F\u5951\u7D04\u7D42\u4E86\u4E88\u5B9A\u306E\u62BD\u51FA\uFF09",operations:[{name:"list",summary:"\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u306E\u4E00\u89A7\u3092\u8868\u793A\u3059\u308B\uFF08\u65B0\u3057\u3044\u9806\uFF09",usage:"tw\
|
|
89
|
+
p staffing-board snapshot list",description:"GET /api/v2/analysis/staffing-board/snapshots \u3067\u3059\uFF08\u65B0\u3057\u3044\u9806\u30FB\u30C6\u30CA\u30F3\u30C8\u5168\u4EF6\uFF09\u3002",flags:[],forbidden:FORBIDDEN,plan(input){noArgs(input,"twp staffing-board snapshot list");return{method:"GET",path:SNAPSHOT_PATH}},summarize:body=>noteListLike(body).map(row=>pick(row,SNAPSHOT_COLUMNS)),raw:body=>noteListLike(body)},{name:"get",summary:"\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C81\u4EF6\uFF08\u4FDD\u5B58\u6642\u70B9\u306E\u8868\u3068\u62BD\u51FA\uFF09\u3092\u8868\u793A\u3059\u308B",
|
|
90
|
+
usage:SNAPSHOT_GET_USAGE,description:"GET /api/v2/analysis/staffing-board/snapshots/{id} \u3067\u3059\u3002\u8868\u306E\u5404\u6708\u306F\u300C\u6B63\u5F0F\uFF0B\u4EEE\u306E\u5408\u8A08\u6642\u9593/\u7A3C\u50CD\u7387\u300D\u3067\u3059\u3002\n\u7A7A\u304D\u8981\u54E1\u30FB\u7A3C\u50CD\u7387\u8D85\u904E\u8005\u30FB\u5951\u7D04\u7D42\u4E86\u4E88\u5B9A\u8005\u306E\u62BD\u51FA\u306F stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--output json \u3067\u306F extraction\uFF09\u3002",flags:[],forbidden:FORBIDDEN,
|
|
91
|
+
plan:input=>({method:"GET",path:`${SNAPSHOT_PATH}/${idArg(input,"\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8",SNAPSHOT_GET_USAGE)}`}),summarize:body=>snapshotRows(snapshotOne(body,"\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8")),raw:body=>snapshotOne(body,"\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8"),notes:body=>extractionNotes(snapshotOne(body,"\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8"))},{name:"diff",summary:"\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u9593\u306E\u5DEE\u5206\uFF08\u524D\u56DE\u304B\u3089\u5909\u308F\u3063\u305F\u30E1\u30F3\u30D0\u30FC\uFF09\u3092\u8868\u793A\u3059\u308B",
|
|
92
|
+
usage:SNAPSHOT_DIFF_USAGE,description:"GET /api/v2/analysis/staffing-board/snapshots/{id}/diff \u3067\u3059\u3002--base \u304C\u7121\u3051\u308C\u3070 {id} \u306E\u76F4\u524D\u306B\u4FDD\u5B58\u3057\u305F\u3082\u306E\u3068\u6BD4\u3079\u307E\u3059\u3002\n\u6BD4\u3079\u308B\u306E\u306F\u4E21\u65B9\u306B\u542B\u307E\u308C\u308B\u6708\u3060\u3051\u3067\u3059\u3002\u5897\u6E1B\u306F\u300C\u4ECA\u56DE\u2212\u524D\u56DE\u300D\u306E\u5408\u8A08\u6642\u9593\uFF08\u6B63\u5F0F\uFF0B\u4EEE\uFF09\u3067\u3059\u3002\n\u65B0\u305F\u306B\u7A7A\u304D\uFF0F\u8D85\u904E\u306B\u306A\u3063\u305F\u30E1\u30F3\u30D0\u30FC\u30FB\u8FFD\u52A0\uFF0F\u9664\u5916\u3055\u308C\u305F\u30E1\u30F3\u30D0\u30FC\u306F stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--output json \u3067\u306F\u305D\u308C\u305E\u308C\u306E\u914D\u5217\uFF09\u3002",
|
|
93
|
+
flags:[BASE_FLAG],forbidden:FORBIDDEN,plan(input){const id=idArg(input,"\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8",SNAPSHOT_DIFF_USAGE);const base=input.flags.get(BASE_FLAG.name);return{method:"GET",path:`${SNAPSHOT_PATH}/${id}/diff`,query:{base_id:base===void 0?void 0:decodeURIComponent(idArg({...input,args:[base]},"\u6BD4\u3079\u308B\u76F8\u624B\u306E\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8",SNAPSHOT_DIFF_USAGE))}}},summarize:body=>diffRows(snapshotOne(body,"\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u306E\u5DEE\u5206")),
|
|
94
|
+
raw:body=>snapshotOne(body,"\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u306E\u5DEE\u5206"),notes:body=>diffNotes(snapshotOne(body,"\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u306E\u5DEE\u5206"))},{name:"create",summary:"\u3044\u307E\u306E\u30DC\u30FC\u30C9\u3092\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u3068\u3057\u3066\u4FDD\u5B58\u3059\u308B",usage:SNAPSHOT_CREATE_USAGE,description:`POST /api/v2/analysis/staffing-board/snapshots \u3067\u3059\u3002\u6B63\u5F0F\u30A2\u30B5\u30A4\u30F3\u30FB\u4EEE\u30A2\u30B5\u30A4\u30F3\u30FB\u96C6\u8A08\u5BFE\u8C61\u5916\u306E\u8A2D\u5B9A\u30FB\u30E1\u30E2\u3092\u51CD\u7D50\u3057\u3066\u4FDD\u5B58\u3057\u307E\u3059\u3002
|
|
95
|
+
\u671F\u9593\u3092\u7701\u304F\u3068\u753B\u9762\u306E\u521D\u671F\u8868\u793A\u3068\u540C\u3058\u7FCC\u6708\u304B\u3089${String(DEFAULT_MONTHS)}\u304B\u6708\uFF08\u3053\u306E\u7AEF\u672B\u306E\u6642\u8A08\uFF09\u3067\u3059\u3002\u4F1A\u8B70\u65E5\u3092\u7701\u304F\u3068\u4ECA\u65E5\uFF08\u30B5\u30FC\u30D0\uFF09\u3067\u3059\u3002\u7DE8\u96C6\u53EF\u306E\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\u3002`,flags:[MONTH_FLAG,FROM_FLAG,TO_FLAG,SNAPSHOT_MEETING_FLAG],forbidden:writeForbidden,plan(input){
|
|
96
|
+
noArgs(input,SNAPSHOT_CREATE_USAGE);const range=boardRange(input,SNAPSHOT_CREATE_USAGE);const meetingDate=isoDate(input,SNAPSHOT_MEETING_FLAG.name);return{method:"POST",path:SNAPSHOT_PATH,body:{start_ym:range.from,end_ym:range.to,...meetingDate===void 0?{}:{meeting_date:meetingDate}}}},plannedNotes:input=>boardRangeNotes(boardRange(input,SNAPSHOT_CREATE_USAGE)),summarize:body=>pick(snapshotOne(body,"\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8"),SNAPSHOT_COLUMNS),raw:body=>snapshotOne(body,"\
|
|
97
|
+
\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8"),notes:body=>extractionNotes(snapshotOne(body,"\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8"))},{name:"delete",summary:"\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\uFF09",usage:SNAPSHOT_DELETE_USAGE,description:"DELETE /api/v2/analysis/staffing-board/snapshots/{id} \u3067\u3059\u3002\u7DE8\u96C6\u53EF\u306E\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\u3002",destructive:true,flags:[],
|
|
98
|
+
forbidden:writeForbidden,plan:input=>({method:"DELETE",path:`${SNAPSHOT_PATH}/${idArg(input,"\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8",SNAPSHOT_DELETE_USAGE)}`}),summarize:body=>acknowledgement(body,"\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u306E\u524A\u9664"),raw:body=>acknowledgement(body,"\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u306E\u524A\u9664")}]};function noteListLike(body){const data=dataOf(body,"\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u306E\u4E00\u89A7");
|
|
99
|
+
if(!Array.isArray(data))throw new ApiResponseError("\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\u306E\u4E00\u89A7\u306E\u5FDC\u7B54\u306E data \u304C\u914D\u5217\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return data.map(recordOf)}var CELL_PATH=`${BOARD_PATH}/cells`;var CELL_PROJECT_FLAG={name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30B3\u30FC\u30C9\u30FBID\uFF09",takesValue:true,placeholder:"\
|
|
100
|
+
<\u30B3\u30FC\u30C9|ID>"};var CELL_USER_FLAG={name:"--user",summary:"\u30E1\u30F3\u30D0\u30FC\uFF08\u6C0F\u540D\u30FB\u30E1\u30FC\u30EB\u30FBID\u30FBme\uFF09",takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FC>"};var CELL_MONTH_FLAG={name:"--month",summary:"\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"};var CELL_HOURS_FLAG={name:"--hours",summary:"\u305D\u306E\u6708\u306E\u6642\u9593\uFF080\u301C744\u30020 \u3067\u305D\u306E\u6708\u306E\u30A2\u30B5\u30A4\u30F3\u3092\u5916\u3059\uFF09",
|
|
101
|
+
takesValue:true,placeholder:"<\u6642\u9593>"};var CELL_SET_USAGE="twp staffing-board cell set --project <\u30B3\u30FC\u30C9> --user <\u30E6\u30FC\u30B6\u30FC> --month <YYYY-MM> --hours <\u6642\u9593>";var CELL_HISTORY_USAGE="twp staffing-board cell history --project <\u30B3\u30FC\u30C9> --user <\u30E6\u30FC\u30B6\u30FC> [--limit <\u4EF6\u6570>]";async function resolveCellRefs(input,ctx,usage){noArgs(input,usage);const project=input.flags.get(CELL_PROJECT_FLAG.name);const user=input.flags.get(CELL_USER_FLAG.
|
|
102
|
+
name);if(project===void 0||project.trim()==="")throw new UsageError("--project \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);if(user===void 0||user.trim()==="")throw new UsageError("--user \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);return withResolved(input,{projectId:(await ctx.resolver.project(project)).id,userId:(await ctx.resolver.user(user,CELL_USER_FLAG.name)).id})}function cellHours(input,usage){const raw=input.flags.get(CELL_HOURS_FLAG.name)?.trim();if(raw===
|
|
103
|
+
void 0||raw==="")throw new UsageError("--hours \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);if(!/^\d+(\.\d+)?$/.test(raw)||Number(raw)>744)throw new UsageError(`--hours \u306F 0\u301C744 \u306E\u6570\u5024\u3067\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${raw}\uFF09`,usage);return Number(raw)}var cellResource={name:"cell",summary:"\u30BB\u30EB\u5DE5\u6570\uFF08\u30E1\u30F3\u30D0\u30FC\xD7\u6848\u4EF6\xD7\u6708\u306E\u6B63\u5F0F\u30A2\u30B5\u30A4\u30F3\u6642\u9593\uFF09\u306E\u66F4\u65B0\u3068\u4FEE\u6B63\u5C65\u6B74",
|
|
104
|
+
operations:[{name:"set",summary:"\u30E1\u30F3\u30D0\u30FC\xD7\u6848\u4EF6\xD7\u6708\u306E\u5DE5\u6570\u3092\u8A2D\u5B9A\u3059\u308B\uFF08\u753B\u9762\u306E\u30BB\u30EB\u7DE8\u96C6\u3068\u540C\u3058\uFF09",usage:CELL_SET_USAGE,description:"PUT /api/v2/analysis/staffing-board/cells \u3067\u3059\u3002\u6B63\u30C7\u30FC\u30BF\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30E1\u30F3\u30D0\u30FC\u306E\u30A2\u30B5\u30A4\u30F3\u671F\u9593\uFF09\u306E\u305D\u306E\u6708\u3060\u3051\u3092\u66F8\u304D\u63DB\u3048\u307E\u3059\u3002\n\u6642\u9593\u306F\u30DC\u30FC\u30C9\u306B\u8868\u793A\u3055\u308C\u308B\u57FA\u6E96\uFF08\u795D\u65E5\u30FB\u6709\u7D66\u3092\u9664\u3044\u305F\u55B6\u696D\u65E5\u3076\u3093\uFF09\u3067\u3001\u4FDD\u5B58\u3059\u308B\u6708\u6B21\u6642\u9593\u306F\u30B5\u30FC\u30D0\u304C\u9006\u7B97\u3057\u307E\u3059\u30020 \u3067\u305D\u306E\u6708\u306E\u30A2\u30B5\u30A4\u30F3\u3092\u5916\u3057\u307E\u3059\u3002\n\u4EBA\u6708\u30FB\u5272\u5408\u3067\u8003\u3048\u308B\u3068\u304D\u306F twp staffing-board show --unit \u3067\u6A19\u6E96\u6642\u9593\u3092\u898B\u3066\u6642\u9593\u306B\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\u30DC\u30FC\u30C9\u306E\u300C\u7DE8\u96C6\u53EF\u300D\u3068\u3001\u305D\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\u3002\u671F\u9593\u3092\u307E\u3068\u3081\u3066\u5909\u3048\u308B\u306A\u3089 \
|
|
105
|
+
twp project member update --period-file \u3067\u3059\u3002",flags:[CELL_PROJECT_FLAG,CELL_USER_FLAG,CELL_MONTH_FLAG,CELL_HOURS_FLAG],forbidden:writeForbidden,async prepare(input,ctx){cellHours(input,CELL_SET_USAGE);if(monthFlag(input.flags,CELL_MONTH_FLAG.name)===void 0)throw new UsageError("--month \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",CELL_SET_USAGE);return resolveCellRefs(input,ctx,CELL_SET_USAGE)},plan(input){const month=monthFlag(input.flags,CELL_MONTH_FLAG.name);if(month===
|
|
106
|
+
void 0)throw new UsageError("--month \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",CELL_SET_USAGE);return{method:"PUT",path:CELL_PATH,body:{project_id:requireResolved(input,"projectId"),user_id:requireResolved(input,"userId"),year_month:month,hours:cellHours(input,CELL_SET_USAGE)}}},summarize:body=>acknowledgement(body,"\u30BB\u30EB\u5DE5\u6570\u306E\u66F4\u65B0"),raw:body=>acknowledgement(body,"\u30BB\u30EB\u5DE5\u6570\u306E\u66F4\u65B0")},{name:"history",summary:"\u30E1\u30F3\u30D0\u30FC\xD7\u6848\u4EF6\u306E\u5DE5\u6570\u306E\u4FEE\u6B63\u5C65\u6B74\u3092\u8868\u793A\u3059\u308B\
|
|
107
|
+
\uFF08\u65B0\u3057\u3044\u9806\uFF09",usage:CELL_HISTORY_USAGE,description:"GET /api/v2/analysis/staffing-board/cells/history \u3067\u3059\uFF08\u753B\u9762\u306E\u30BB\u30EB\u306E\u4FEE\u6B63\u5C65\u6B74\u3068\u540C\u3058\uFF09\u3002\n\n"+LIST_PAGING_HELP,flags:[CELL_PROJECT_FLAG,CELL_USER_FLAG,...LIST_FLAGS],paging:envelopePaging({label:"\u30BB\u30EB\u5DE5\u6570\u306E\u4FEE\u6B63\u5C65\u6B74"}),forbidden:FORBIDDEN,prepare:(input,ctx)=>resolveCellRefs(input,ctx,CELL_HISTORY_USAGE),plan:input=>({
|
|
108
|
+
method:"GET",path:`${CELL_PATH}/history`,query:{project_id:requireResolved(input,"projectId"),user_id:requireResolved(input,"userId"),limit:positiveInteger(input.flags,"--limit"),cursor:nonEmpty(input.flags,"--cursor")}}),summarize:body=>listIn(body,"items","\u30BB\u30EB\u5DE5\u6570\u306E\u4FEE\u6B63\u5C65\u6B74").map(row=>({created_at:row["created_at"]??null,created_by_name:row["created_by_name"]??null,action:row["action"]??null,comment:row["comment"]??null,changes:Array.isArray(row["changes"])?
|
|
109
|
+
JSON.stringify(row["changes"]):null,id:row["id"]??null})),raw:body=>listIn(body,"items","\u30BB\u30EB\u5DE5\u6570\u306E\u4FEE\u6B63\u5C65\u6B74")}]};var staffingBoardDomain={name:"staffing-board",summary:"\u8981\u54E1\u8ABF\u6574\u30DC\u30FC\u30C9\uFF08\u30E1\u30F3\u30D0\u30FC\xD7\u6708\u306E\u5DE5\u6570\u8868\u30FB\u30BB\u30EB\u5DE5\u6570\u30FB\u4EEE\u30A2\u30B5\u30A4\u30F3\u30FB\u30E1\u30E2\u30FB\u30B9\u30CA\u30C3\u30D7\u30B7\u30E7\u30C3\u30C8\uFF09",operations:[showOperation],subresources:[cellResource,
|
|
110
|
+
tentativeResource,noteResource,snapshotResource]};export{boardMonthHours,boardProjectRows,boardRange,boardRows,cellHours,defaultBoardRange,diffRows,formatBoardValue,noteTarget,parseMonthlyHours,snapshotRows,staffingBoardDomain,tentativeBody,tentativeRow};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
|
+
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
+
import{hasRemovableRunner,removeHint}from"./chunk-XNYQH5JI.js";import"./chunk-MYBIPHZ7.js";import"./chunk-A4LFG7MW.js";import"./chunk-VRBI2NPI.js";import{describeError,filterByStatus,pick}from"./chunk-O52RKZCC.js";import"./chunk-RMFLTSOV.js";import{EXIT_OK,EXIT_USAGE,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";function str(v){return typeof v==="string"&&v!==""?v:null}function num(v){return typeof v==="number"&&Number.isFinite(v)?v:null}function secondsSince(iso,now){if(iso===null)return null;const at=Date.parse(iso);if(Number.isNaN(at))return null;return Math.max(0,Math.floor((now.getTime()-at)/1e3))}async function collectStatus(api,ctx){const now=ctx.now??new Date;const runnersRes=await api.runners();let runners;if(!runnersRes.ok){runners={ok:false,error:describeError(runnersRes)}}else{const raw=pick(
|
|
4
|
+
runnersRes.json,"runners");const list=Array.isArray(raw)?raw:[];runners={ok:true,live_count:num(pick(runnersRes.json,"live_count")),max_runners:num(pick(runnersRes.json,"max_runners")),heartbeat_timeout:num(pick(runnersRes.json,"heartbeat_timeout")),items:list.map(r=>{const lastSeen=str(r?.["last_seen_at"]);return{runner_id:str(r?.["runner_id"]),is_live:r?.["is_live"]===true,is_reporting:r?.["is_reporting"]===true,kind:str(r?.["kind"]),phase:str(r?.["phase"]),current_item_id:str(r?.["current_ite\
|
|
5
|
+
m_id"]),hostname:str(r?.["hostname"]),last_seen_at:lastSeen,seconds_since_last_seen:secondsSince(lastSeen,now)}})}}const queue={};for(const status of["pending","processing"]){const res=await api.list({status,limit:100});if(!res.ok){queue[status]={ok:false,error:describeError(res)};continue}const items=pick(res.json,"items");const more=pick(res.json,"has_more")===true||pick(res.json,"pagination.has_more")===true;const counted=Array.isArray(items)?filterByStatus(items,status).length:null;queue[status]=
|
|
6
|
+
{ok:true,count:counted,has_more:more}}const state=await api.request("GET","/state");const plan_lock=state.ok?{held:pick(state.json,"state.planning")===true,owner_runner_id:str(pick(state.json,"state.plan_owner_runner_id")),expires_at:str(pick(state.json,"state.plan_lock_expires_at"))}:null;return{project:{ref:ctx.projectRef,id:ctx.projectId},api_url:ctx.apiUrl,runners,queue,plan_lock,local_lock:{held:ctx.lockHeld,path:ctx.lockPath}}}function formatElapsed(seconds){if(seconds<60)return`${seconds}\
|
|
7
|
+
\u79D2\u524D`;const minutes=Math.floor(seconds/60);if(minutes<60)return`${minutes}\u5206\u524D`;const hours=Math.floor(minutes/60);if(hours<24)return`${hours}\u6642\u9593${minutes%60}\u5206\u524D`;const days=Math.floor(hours/24);return`${days}\u65E5${hours%24}\u6642\u9593\u524D`}function formatLocalTime(iso){const d=new Date(iso);if(Number.isNaN(d.getTime()))return iso;const p2=n=>String(n).padStart(2,"0");return`${d.getFullYear()}-${p2(d.getMonth()+1)}-${p2(d.getDate())} ${p2(d.getHours())}:${p2(
|
|
8
|
+
d.getMinutes())}:${p2(d.getSeconds())}`}function renderStatusText(report,opts={}){const lines=[];lines.push(`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8: ${report.project.ref}\uFF08${report.project.id}\uFF09`);lines.push(`\u63A5\u7D9A\u5148: ${report.api_url}`,"");const r=report.runners;if(!r.ok){lines.push(`\u30E9\u30F3\u30CA\u30FC: \u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\uFF08${r.error}\uFF09`)}else{lines.push(`\u30E9\u30F3\u30CA\u30FC: ${r.live_count??"?"} / ${r.max_runners??"?"} \u7A3C\u50CD\uFF08\u6B7B\u6D3B\u3057\u304D\u3044\u5024 ${r.
|
|
9
|
+
heartbeat_timeout??"?"}\u79D2\uFF09`);for(const x of r.items){const last=x.last_seen_at===null?" last=?":` last=${formatLocalTime(x.last_seen_at)}${x.seconds_since_last_seen===null?"":`\uFF08${formatElapsed(x.seconds_since_last_seen)}\uFF09`}`;lines.push(` - ${x.runner_id??"?"} [${x.is_live?"live":"stale"}] phase=${x.phase??"?"}${x.current_item_id?` item=${x.current_item_id}`:""}${x.hostname?` @${x.hostname}`:""}${last}`)}if(hasRemovableRunner(r.items))lines.push(removeHint({projectRef:report.project.
|
|
10
|
+
ref,profile:opts.profile}))}for(const status of["pending","processing"]){const q=report.queue[status];lines.push(q.ok?`${status}: ${q.count??"?"}\u4EF6${q.has_more?"\u4EE5\u4E0A":""}`:`${status}: \u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\uFF08${q.error}\uFF09`)}const pl=report.plan_lock;if(pl!==null){lines.push(`\u8A08\u753B\u30ED\u30C3\u30AF: ${pl.held?`\u4FDD\u6301\u4E2D\uFF08${pl.owner_runner_id??"?"} / \u671F\u9650 ${pl.expires_at??"?"}\uFF09`:"\u7A7A\u304D"}`)}lines.push("",`\u30ED\u30FC\u30AB\u30EB\u30ED\u30C3\u30AF: ${report.
|
|
11
|
+
local_lock.held?`\u4FDD\u6301\u4E2D\uFF08${report.local_lock.path}\uFF09`:"\u7121\u3057"}`);return`${lines.join("\n")}
|
|
12
|
+
`}async function runStatusCommand(api,ctx,opts,io){if(opts.output!==void 0&&opts.output!=="json"){io.err(`task-loop status \u306E --output \u306B\u300C${opts.output}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093
|
|
13
|
+
\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F json \u3060\u3051\u3067\u3059\uFF08\u7701\u7565\u3059\u308B\u3068\u4EBA\u5411\u3051\u306E\u6587\u9762\u3092\u51FA\u3057\u307E\u3059\uFF09
|
|
14
|
+
`);return EXIT_USAGE}if(opts.query!==void 0&&opts.query.trim()===""){io.err("--query \u306B\u7A7A\u306E\u5F0F\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\n");return EXIT_USAGE}const report=await collectStatus(api,ctx);if(opts.output===void 0&&opts.query===void 0){io.out(stripTerminalControls(renderStatusText(report,{profile:ctx.profile})));return EXIT_OK}const{evaluateQuery}=await import("./query-XEOVFI4D.js");const{renderOutput}=await import("./render-4SBLHU4J.js");let selected=report;
|
|
15
|
+
if(opts.query!==void 0){try{selected=await evaluateQuery(opts.query,report)}catch(e){if(e instanceof UsageError){io.err(`${e.message}
|
|
16
|
+
`);return EXIT_USAGE}throw e}}const text=renderOutput(selected,"json");io.out(text.endsWith("\n")?text:`${text}
|
|
17
|
+
`);return EXIT_OK}export{collectStatus,formatElapsed,formatLocalTime,renderStatusText,runStatusCommand};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{yearMonthValue}from"./chunk-
|
|
4
|
-
import
|
|
5
|
-
import"./chunk-J7QYPKVK.js";import"./chunk-
|
|
3
|
+
import{yearMonthValue}from"./chunk-MPX2Q3BJ.js";import{excerpt,salesAdminForbidden,sendAtomic}from"./chunk-U5EYLW6X.js";import{readCsvFileText}from"./chunk-QLENN5DD.js";import"./chunk-4RNL462J.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{booleanText,boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SALES_SUPPLIER_PAYMENTS_PATH,SALES_SUPPLIER_PAYMENT_SCHEDULES_PATH,isExactNumericId,resolveNamed}from"./chunk-RSSPNFSK.js";
|
|
4
|
+
import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";
|
|
5
|
+
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 PATH=SALES_SUPPLIER_PAYMENTS_PATH;var SCHEDULE_PATH=SALES_SUPPLIER_PAYMENT_SCHEDULES_PATH;var FORBIDDEN=salesAdminForbidden("\u652F\u6255");var SCHEDULE_FORBIDDEN=salesAdminForbidden("\u652F\u6255\u5148\u30DE\u30B9\u30BF");var STATUSES={invoice_pending:"\u8ACB\u6C42\u66F8\u672A\u7740",invoice_received:"\u8ACB\u6C42\u66F8\u53D7\u9818",transfer_reserved:"\u632F\u8FBC\u4E88\u7D04\u6E08",paid:"\u652F\u6255\u6E08"};var TAX_RATES=["10","8","0"];var BULK_MAX_IDS=100;var FILE_MAX_BYTES=1024*1024;var SUPPLIER_NAME_MAX_CHARS=255;
|
|
6
6
|
var MEMO_MAX_CHARS=1e3;var AMOUNT_MAX=999999999999999;var LIST_COLUMNS=["id","target_year_month","supplier_name","supplier_user_name","payment_amount","transfer_due_date","status"];var GET_COLUMNS=[...LIST_COLUMNS,"company_name","outsourcing_flg","invoice_date","tax_rate","amount_excluding_tax","amount_excluding_tax_manual","transfer_executed_date","project_name","supplier_payment_schedule_id","memo"];var WRITE_COLUMNS=GET_COLUMNS.filter(c=>c!=="project_name"&&c!=="supplier_user_name");var SCHEDULE_LIST_COLUMNS=[
|
|
7
7
|
"id","supplier_name","company_name","supplier_user_name","outsourcing_flg","start_year_month","end_year_month","project_name"];var SCHEDULE_GET_COLUMNS=[...SCHEDULE_LIST_COLUMNS,"memo"];var SCHEDULE_WRITE_COLUMNS=SCHEDULE_GET_COLUMNS.filter(c=>c!=="project_name"&&c!=="supplier_user_name");function labelsHelp(table){return Object.entries(table).map(([code,name])=>`${code}\uFF08${name}\uFF09`).join(" / ")}function refsOf(table){return Object.entries(table).map(([code,name])=>({id:code,name,code}))}
|
|
8
8
|
function usageOf(op){return`twp supplier-payment ${op} help`}function yen(value){return typeof value==="number"?`${value.toLocaleString("ja-JP")} \u5186`:"\uFF08\u91D1\u984D\u672A\u5165\u529B\uFF09"}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function statusName(code){return typeof code==="string"?STATUSES[code]??code:"\uFF08\u4E0D\u660E\uFF09"}function idArg(input,op,label,listCommand){const[raw,...rest]=input.args;const id=raw?.trim()??"";if(id===
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{contentTypeFor,inspectLocalFile,issued}from"./chunk-WTYIFLVB.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import"./chunk-RMFLTSOV.js";import{
|
|
4
|
-
import"./chunk-II5RVJQN.js";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-
|
|
3
|
+
import{contentTypeFor,inspectLocalFile,issued}from"./chunk-WTYIFLVB.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import"./chunk-RMFLTSOV.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{boundedText}from"./chunk-JJSBBWJ5.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SUPPORTS_PATH,SUPPORT_CATEGORIES_PATH}from"./chunk-RSSPNFSK.js";import{UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";
|
|
4
|
+
import"./chunk-II5RVJQN.js";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";import fs from"fs";import path from"path";var LABEL="\u30B5\u30DD\u30FC\u30C8\u4F9D\u983C";var MAX_ATTACHMENTS=3;var TITLE_MAX=255;var CONTENT_MAX=1e4;var COMMENT_MAX=5e3;var SOURCE="support_request";var STATUSES=["new","in_progress","waiting","re_inquiry","awaiting_requester","closed","withdrawn"];var LIST_COLUMNS=["id","title","category_name","status","awaiting_type","requester_name","created_at","updated_at"];var GET_COLUMNS=["id","title","category_name","status","awaiting_type","requester_name","created_at","updated_at","comment_cou\
|
|
5
5
|
nt","last_comment_by","last_comment_at"];var WRITE_COLUMNS=["id","title","category_name","status","attachment_file_ids","updated_at"];var COMMENT_COLUMNS=["id","user_name","is_master_tenant","comment","attachment_file_ids","created_at"];var CATEGORY_COLUMNS=["id","name","description","sort"];var STATUS_HELP="\u72B6\u614B: new\uFF08\u672A\u5BFE\u5FDC\uFF09/ in_progress\uFF08\u5BFE\u5FDC\u4E2D\uFF09/ waiting\uFF08\u56DE\u7B54\u6E08\u307F\u30FB\u78BA\u8A8D\u5F85\u3061\uFF09/ re_inquiry\uFF08\u518D\u554F\u3044\u5408\u308F\u305B\uFF09/ awaiting_requester\uFF08\u3054\u56DE\u7B54\u30FB\u3054\u78BA\u8A8D\u5F85\u3061\u3002awaiting_type \u304C\u6C42\u3081\u3066\u3044\u308B\u5185\u5BB9: answer\uFF1D\u56DE\u7B54 / approval\uFF1D\u627F\u8A8D / confirmation\uFF1D\u753B\u9762\u3067\u306E\u78BA\u8A8D\uFF09/ closed\uFF08\u5B8C\u4E86\uFF09/ withd\
|
|
6
6
|
rawn\uFF08\u53D6\u308A\u4E0B\u3052\uFF09\u3002";var NOT_FOUND_HELP="\u4ED6\u306E\u4EBA\u306E\u4F9D\u983C\u3068\u5B58\u5728\u3057\u306A\u3044\u4F9D\u983C\u306F\u3001\u3069\u3061\u3089\u3082\u300C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u300D\u306B\u306A\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u304C\u533A\u5225\u3057\u307E\u305B\u3093\uFF09\u3002";var ID_FLAG={name:"--id",summary:`\u5BFE\u8C61\u306E${LABEL}\u306E ID\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09`,
|
|
7
7
|
takesValue:true,placeholder:"<ID>"};var ATTACH_FLAG={name:"--attach",summary:`\u6DFB\u4ED8\u3059\u308B\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\uFF08\u8907\u6570\u56DE\u6307\u5B9A\u3067\u304D\u308B\u30FB${String(MAX_ATTACHMENTS)}\u4EF6\u307E\u3067\uFF09`,takesValue:true,placeholder:"<\u30D1\u30B9>",repeatable:true};var BODY_FLAG={name:"--body",summary:"\u672C\u6587",takesValue:true,placeholder:"<\u672C\u6587>"};var BODY_FILE_FLAG={name:"--body-file",summary:"\u672C\u6587\u306E\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{PROJECT_FLAG,TASK_REF_FLAG,TASK_REF_HELP,classifyTaskRef,rejectPrivateSurface,rejectRedundantProject,resolveTaskLocation,taskAttachmentResource,taskSurface,wantsPrivateSurface}from"./chunk-WTYIFLVB.js";import"./chunk-V64CGX7V.js";import{RUNNER_PLATFORMS}from"./chunk-O52RKZCC.js";import{PRIVATE_PROJECT_PREFIX,PRIVATE_PROJECT_REF,isPrivateProjectId}from"./chunk-RMFLTSOV.js";import{MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,manhourNotes,manhourQuery,manhourRows}from"./chunk-
|
|
4
|
-
import"./chunk-
|
|
5
|
-
import
|
|
3
|
+
import{PROJECT_FLAG,TASK_REF_FLAG,TASK_REF_HELP,classifyTaskRef,rejectPrivateSurface,rejectRedundantProject,resolveTaskLocation,taskAttachmentResource,taskSurface,wantsPrivateSurface}from"./chunk-WTYIFLVB.js";import"./chunk-V64CGX7V.js";import{RUNNER_PLATFORMS}from"./chunk-O52RKZCC.js";import{PRIVATE_PROJECT_PREFIX,PRIVATE_PROJECT_REF,isPrivateProjectId}from"./chunk-RMFLTSOV.js";import{MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,manhourNotes,manhourQuery,manhourRows}from"./chunk-QXYY7DUV.js";
|
|
4
|
+
import"./chunk-HKEW6XIC.js";import"./chunk-EXT4AIDF.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-CADCERVL.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{boundedText,decimal,integerInRange,isoDate,priority}from"./chunk-JJSBBWJ5.js";import{charCount,readBody}from"./chunk-6LSQCOCJ.js";import{PRIVATE_TASKS_PATH,TASK_MASTERS}from"./chunk-RSSPNFSK.js";import{UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";
|
|
5
|
+
import"./chunk-H4CDX4TX.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,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";
|
|
6
6
|
import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var PRIVATE_UNSUPPORTED=[{flag:"--assignee",clearToken:"assignee",reason:"\u500B\u4EBA\u30BF\u30B9\u30AF\u306F\u5E38\u306B\u81EA\u5206\u306E\u3082\u306E\u306A\u306E\u3067\u3001\u30B5\u30FC\u30D0\u5074\u306B\u62C5\u5F53\u8005\u3092\u6307\u5B9A\u30FB\u7D5E\u308A\u8FBC\u307F\u3059\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093\u3002"},{flag:"--milestone",clearToken:"milestone",reason:"\u500B\u4EBA\u30BF\u30B9\u30AF\u306B\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3\u306E\u9805\u76EE\u304C\u30B5\u30FC\u30D0\u5074\u306B\u3042\u308A\u307E\u305B\u3093\u3002"},
|
|
7
7
|
{flag:"--required-platforms",clearToken:"required-platforms",reason:"\u5FC5\u8981\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u306F\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30EB\u30FC\u30D7\u304C\u62FE\u3046\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30BF\u30B9\u30AF\u3060\u3051\u306E\u9805\u76EE\u3067\u3001\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u30B5\u30FC\u30D0\u5074\u306B\u3042\u308A\u307E\u305B\u3093\u3002"}];function rejectPrivateUnsupportedFlags(input){const clearTokens=new Set(repeatedValues(input,
|
|
8
8
|
"--clear").map(token=>token.trim()));for(const entry of PRIVATE_UNSUPPORTED){if(input.flags.has(entry.flag)||repeatedValues(input,entry.flag).length>0){throw new UsageError(`--project ${PRIVATE_PROJECT_REF}\uFF08\u500B\u4EBA\u30BF\u30B9\u30AF\uFF09\u3067\u306F ${entry.flag} \u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`${entry.reason}${entry.flag} \u3092\u5916\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}if(clearTokens.has(entry.clearToken)){throw new UsageError(`--project ${PRIVATE_PROJECT_REF}\
|
|
@@ -86,7 +86,8 @@ takesValue:true,placeholder:"<\u540D\u524D|ID>",repeatable:true};var CLEAR_SATIS
|
|
|
86
86
|
\u30EA\u30F3\u30AF\u306F\u4E21\u65B9\u5411\u306B\u4F5C\u3089\u308C\u307E\u3059\uFF08blocked_by \u3092\u4F5C\u308B\u3068\u3001\u76F8\u624B\u5074\u306B\u306F blocks \u304C\u4ED8\u304D\u307E\u3059\uFF09\u3002
|
|
87
87
|
|
|
88
88
|
--satisfied-status \u306F blocks / blocked_by \u3067\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\u6307\u5B9A\u3057\u306A\u3051\u308C\u3070\u3001
|
|
89
|
-
\u76F8\u624B\u304C\u5B8C\u4E86\u6271\u3044\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u306B\u306A\u3063\u305F\u6642\u70B9\u3067\u524D\u63D0\u304C\u6E80\u305F\u3055\u308C\u307E\u3059\u3002
|
|
89
|
+
\u76F8\u624B\u304C\u5B8C\u4E86\u6271\u3044\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u306B\u306A\u3063\u305F\u6642\u70B9\u3067\u524D\u63D0\u304C\u6E80\u305F\u3055\u308C\u307E\u3059\u3002\u305F\u3060\u3057\u300C\u52D5\u4F5C\u78BA\u8A8D\u300D\u300C\u30EA\u30EA\u30FC\u30B9\u5F85\u3061\u300D
|
|
90
|
+
\u300C\u51E6\u7406\u6E08\u307F\u300D\u304C\u63C3\u3046\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u3001\u305D\u308C\u3089\u3068\u5B8C\u4E86\u6271\u3044\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u304C\u6761\u4EF6\u3068\u3057\u3066\u4FDD\u5B58\u3055\u308C\u307E\u3059\u3002
|
|
90
91
|
|
|
91
92
|
\u500B\u4EBA\u30BF\u30B9\u30AF\uFF08--project __private__\uFF09\u306B\u306F\u30EA\u30F3\u30AF\u304C\u3042\u308A\u307E\u305B\u3093\u3002`;var EXAMPLES="\n\n\u4F8B:\n twp task link create ABC-12 --target ABC-10 --type blocked_by\n twp task link create ABC-12 --target ABC-10 --type blocked_by --satisfied-status \u30EC\u30D3\u30E5\u30FC\u4E2D --satisfied-status \u5B8C\u4E86\n twp task link update ABC-12 --target ABC-10 --clear-satisfied-status\n twp task get ABC-12 # \u524D\u63D0\u3068\u5145\u8DB3\u72B6\u6CC1\uFF08prerequisites / prerequisites_satisfied\uFF09\u3092\u78BA\u8A8D\u3059\u308B";
|
|
92
93
|
function linkPath(input){const projectId=encodeURIComponent(requireResolved(input,"projectId"));const taskId=encodeURIComponent(requireResolved(input,"taskId"));return`/api/v2/projects/${projectId}/tasks/${taskId}/links`}function linkType(input,usage){const value=nonEmpty(input.flags,"--type");if(value===void 0)return"related";const found=LINK_TYPES.find(t=>t===value);if(found===void 0){throw new UsageError(`--type \u306B\u6307\u5B9A\u3067\u304D\u306A\u3044\u7A2E\u5225\u3067\u3059: ${value}`,`\u6307\u5B9A\
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{textToHtml}from"./chunk-
|
|
3
|
+
import{textToHtml}from"./chunk-MO2UEAWW.js";import"./chunk-Q3B65OFC.js";import{cursorFlag,graphData,graphListFlags,graphPaging,graphPagingHelp,graphPagingNotes,graphValue,ms365Forbidden,plainText,str,teamsFromText,topFlag}from"./chunk-OW23MAVO.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{assertMs365PathSegment,ms365Path,ms365Segment}from"./chunk-H4CDX4TX.js";import{nonEmpty}from"./chunk-MI6HVYR2.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-QQRJLH6B.js";import"./chunk-VSJBJXZO.js";var KINDS=["channel","chat"];var TEAM_ID=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;var DESCRIPTION_MAX=2e3;var NAME_MAX=255;var FAVORITE_COLUMNS=["kind","display_name","description","sort_order","team_id","id"];var KIND_FLAG={name:"--kind",summary:"\u7A2E\u5225\u3067\u7D5E\u308B\uFF08channel | chat\uFF09",takesValue:true,placeholder:"<\u7A2E\u5225>"};var TEAM_FLAG={name:"--team",summary:"\u30C1\u30FC\u30E0\uFF08\u540D\u524D\u304B ID\uFF09",takesValue:true,placeholder:"<\u540D\u524D\
|
|
5
5
|
|ID>"};var CHANNEL_FLAG={name:"--channel",summary:"\u30C1\u30E3\u30CD\u30EB\uFF08\u540D\u524D\u304B ID\uFF09",takesValue:true,placeholder:"<\u540D\u524D|ID>"};var CHAT_FLAG={name:"--chat",summary:"\u30C1\u30E3\u30C3\u30C8ID\uFF08twp teams chat list \u306E id\uFF09",takesValue:true,placeholder:"<ID>"};var DESCRIPTION_FLAG={name:"--description",summary:`\u7528\u9014\u306E\u8AAC\u660E\uFF08${DESCRIPTION_MAX}\u6587\u5B57\u307E\u3067\u3002"" \u3067\u7A7A\u306B\u3059\u308B\uFF09`,takesValue:true,placeholder:"\
|
|
6
6
|
<\u6587>"};var NAME_FLAG={name:"--name",summary:"\u8868\u793A\u540D\uFF08\u7701\u304F\u3068\u30C1\u30E3\u30CD\u30EB\u306F\u30C1\u30E3\u30CD\u30EB\u540D\u3001\u30C1\u30E3\u30C3\u30C8\u306F\u30C8\u30D4\u30C3\u30AF\u304B\u81EA\u5206\u4EE5\u5916\u306E\u53C2\u52A0\u8005\u540D\uFF09",takesValue:true,placeholder:"<\u540D\u524D>"};var FAVORITES_PATH="/teams/favorites";function parseKind(raw,usage){if(raw===void 0)return void 0;const kind=raw.trim();if(!KINDS.includes(kind)){throw new UsageError(`\u7A2E\u5225\u306B\u6307\u5B9A\u3067\u304D\
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{fetchLatestVersion,isBehindLatest,runUpdate}from"./chunk-
|
|
3
|
+
import{fetchLatestVersion,isBehindLatest,runUpdate}from"./chunk-KZQGIM2C.js";import"./chunk-JQBXLZTJ.js";import"./chunk-D233KKXW.js";import"./chunk-PMOUHEJQ.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-CH6QU76P.js";import"./chunk-DXXFUNYN.js";import"./chunk-5WGOHFAS.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{fetchLatestVersion,isBehindLatest,runUpdate};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{
|
|
4
|
-
import"./chunk-EXT4AIDF.js";import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-
|
|
5
|
-
import
|
|
3
|
+
import{ASSIGNED_PROJECT_COLUMNS,assignedProjectItems}from"./chunk-X2WD2H3B.js";import{FISCAL_YEAR_FLAG,fiscalYear,skillNames}from"./chunk-NLCJXS5S.js";import{LICENSE_FEATURE_NAMES,levelHoldsSeat,permissionMovesSeat,readLicenses}from"./chunk-HYBXFEHH.js";import{CONCURRENCY,exportOperation,mapPool,pacedSender}from"./chunk-7PTFN3H7.js";import{readCsvFileText}from"./chunk-QLENN5DD.js";import"./chunk-QXYY7DUV.js";import{USER_REF_FLAG,USER_REF_HELP,prepareUser,userPath}from"./chunk-HKEW6XIC.js";
|
|
4
|
+
import"./chunk-EXT4AIDF.js";import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-CADCERVL.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{booleanText,boundedText,isoDate,isoDateValue}from"./chunk-JJSBBWJ5.js";import"./chunk-6LSQCOCJ.js";import{DEPARTMENTS_PATH,ORG_MASTER_LIMIT,POSITIONS_PATH}from"./chunk-RSSPNFSK.js";import{ResolveError,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";
|
|
5
|
+
import"./chunk-H4CDX4TX.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";
|
|
6
6
|
import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs from"fs";var ASSIGNMENT_COLUMNS=["id","department_name","position_name","start_date","end_date","is_primary","is_current","is_approval_route","effective_status"];function assignmentRows(body){const response=isRecord(body)&&"response"in body?body["response"]:body;const list=isRecord(response)?response["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError("\u6240\u5C5E\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
|
|
7
7
|
return list}async function nameMap(ctx,path,label2){try{const body=await ctx.send({method:"GET",path,query:{limit:ORG_MASTER_LIMIT}});const list=isRecord(body)?body["list"]:void 0;if(!Array.isArray(list))throw new Error(`${label2}\u4E00\u89A7\u306E\u5FDC\u7B54\u306B list \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093`);const count=isRecord(body)?body["count"]:void 0;if(typeof count==="number"&&count>list.length){ctx.warn(`${label2}\u4E00\u89A7\u304C ${count} \u4EF6\u4E2D ${list.length} \u4EF6\u3067\u5207\u308A\u8A70\u3081\u3089\
|
|
8
8
|
\u308C\u305F\u305F\u3081\u3001\u4E00\u90E8\u306E${label2}\u540D\u306F\u7A7A\u6B04\u3067\u3059\u3002ID \u306F --output json \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002`)}const map={};for(const row of list){if(isRecord(row)&&typeof row["id"]==="string"&&typeof row["name"]==="string"){map[row["id"]]=row["name"]}}return map}catch(err){ctx.warn(`${label2}\u540D\u3092\u53D6\u5F97\u3067\u304D\u306A\u304B\u3063\u305F\u305F\u3081\u3001${label2}\u540D\u306E\u5217\u306F\u7A7A\u6B04\u3067\u3059\uFF08${err.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{booleanQuery,cacheNote,createFlags,fieldBody,hasAnyField,idSegment,masterItem,masterRows,referencedDeleteGuidance,targetId,updateFlags}from"./chunk-
|
|
4
|
-
acknowledgement,pick}from"./chunk-3ZRMMBP5.js";import{UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-
|
|
3
|
+
import{booleanQuery,cacheNote,createFlags,fieldBody,hasAnyField,idSegment,masterItem,masterRows,referencedDeleteGuidance,targetId,updateFlags}from"./chunk-CADCERVL.js";import"./chunk-JJSBBWJ5.js";import{USER_CONTRACT_TYPES_PATH}from"./chunk-RSSPNFSK.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";import{withResolved}from"./chunk-PS5QFKHB.js";import{
|
|
4
|
+
acknowledgement,pick}from"./chunk-3ZRMMBP5.js";import{UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-EDF4U5BT.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var NAME="user-contract-type";var LABEL="\u5951\u7D04\u5F62\u614B";var ITEM_KEY="contract_type";var CALCULATION_TYPES=["salary_based","salary_executive","salary_manager","hourly_based","contract_based","other_exempt"];var FIELDS=[{kind:"text",flag:"--name",key:"name",label:`${LABEL}\u540D`,maxChars:255,summary:`${LABEL}\u540D`},{kind:"text",flag:"--code",key:"code",label:`${LABEL}\u30B3\u30FC\u30C9`,maxChars:50,summary:`${LABEL}\u30B3\u30FC\u30C9\uFF08\u4EFB\u610F\u30FB\u30C6\u30CA\u30F3\u30C8\u5185\u3067\u4E00\u610F\uFF09`},
|
|
5
5
|
{kind:"enum",flag:"--calculation-type",key:"calculation_type",values:CALCULATION_TYPES,summary:"\u8A08\u7B97\u533A\u5206\uFF08salary_based: \u4E00\u822C\u5F93\u696D\u54E1 / salary_executive: \u5F79\u54E1 / salary_manager: \u7BA1\u7406\u76E3\u7763\u8005 / hourly_based: \u6642\u7D66\u5236 / contract_based: \u696D\u52D9\u59D4\u8A17 / other_exempt: \u8A08\u7B97\u5BFE\u8C61\u5916\uFF09"},{kind:"integer",flag:"--monthly-hours",key:"default_monthly_hours",label:"\u6708\u9593\u6240\u5B9A\u6642\u9593",min:1,
|
|
6
6
|
max:744,summary:"\u6708\u9593\u6240\u5B9A\u6642\u9593\uFF081\u301C744\uFF09"},{kind:"number",flag:"--daily-hours",key:"default_daily_hours",label:"1\u65E5\u306E\u6240\u5B9A\u6642\u9593",min:1,max:24,summary:"1\u65E5\u306E\u6240\u5B9A\u6642\u9593\uFF081\u301C24\u30FB\u5C0F\u6570\u53EF\uFF09"},{kind:"number",flag:"--bonus-months",key:"bonus_months_default",label:"\u8CDE\u4E0E\u6708\u6570",min:0,max:24,summary:"\u8CDE\u4E0E\u6708\u6570\u306E\u65E2\u5B9A\uFF080\u301C24\u30FB\u5C0F\u6570\u53EF\uFF09"},
|
|
7
7
|
{kind:"boolean",flag:"--paid-leave-eligible",key:"is_paid_leave_eligible",summary:"\u6709\u7D66\u4F11\u6687\u306E\u4ED8\u4E0E\u5BFE\u8C61\u304B\uFF08true / false\uFF09"},{kind:"boolean",flag:"--auto-break-correction",key:"auto_break_correction",summary:"\u4F11\u61A9\u306E\u81EA\u52D5\u88DC\u6B63\u3092\u884C\u3046\u304B\uFF08true / false\uFF09"},{kind:"time",flag:"--start-time",key:"default_start_time",summary:"\u59CB\u696D\u6642\u523B\u306E\u65E2\u5B9A\uFF08HH:MM\uFF09"},{kind:"time",flag:"--end\
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{SCHEDULE_HELP,parseSchedule,readRunStatus,workerAgentDomain}from"./chunk-
|
|
4
|
-
import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-
|
|
3
|
+
import{SCHEDULE_HELP,parseSchedule,readRunStatus,workerAgentDomain}from"./chunk-6JAOPRD5.js";import"./chunk-WVCEKC7V.js";import"./chunk-RX5HWI4L.js";import"./chunk-6LSQCOCJ.js";import"./chunk-RSSPNFSK.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-MI6HVYR2.js";import"./chunk-II5RVJQN.js";import"./chunk-PS5QFKHB.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";
|
|
4
|
+
import"./chunk-XNLIEUAW.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{SCHEDULE_HELP,parseSchedule,readRunStatus,workerAgentDomain};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{applyInstancePlan,createInstancePlan,formColumns,parseInstanceContent,workflowDomain,writtenInstance}from"./chunk-
|
|
4
|
-
import"./chunk-II5RVJQN.js";import"./chunk-PS5QFKHB.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-
|
|
3
|
+
import{applyInstancePlan,createInstancePlan,formColumns,parseInstanceContent,workflowDomain,writtenInstance}from"./chunk-22CRY6JR.js";import"./chunk-DELIIGWE.js";import"./chunk-V3RZ4RFP.js";import"./chunk-4RNL462J.js";import"./chunk-RX5HWI4L.js";import"./chunk-JJSBBWJ5.js";import"./chunk-6LSQCOCJ.js";import"./chunk-RSSPNFSK.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-MI6HVYR2.js";
|
|
4
|
+
import"./chunk-II5RVJQN.js";import"./chunk-PS5QFKHB.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-XNLIEUAW.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{applyInstancePlan,createInstancePlan,formColumns,parseInstanceContent,workflowDomain,writtenInstance};
|
package/package.json
CHANGED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
|
-
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{FROM_FLAG,MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,MONTH_FLAG,TO_FLAG,analysisDomain,analysisForbidden,currentMonth,dataOf,listIn,manhourNotes,manhourQuery,manhourRows,monthRange,monthsBetween,noArgs,profitRows,rangeNotes,recordOf,staffKpiRows,workloadDistributionNotes,workloadDistributionRows}from"./chunk-3WPHZXST.js";import"./chunk-XG2JN66A.js";import"./chunk-EXT4AIDF.js";import"./chunk-AITUAHWK.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";
|
|
4
|
-
import"./chunk-RX5HWI4L.js";import"./chunk-6LSQCOCJ.js";import"./chunk-GHE6X45G.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import"./chunk-PS5QFKHB.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";
|
|
5
|
-
import"./chunk-VSJBJXZO.js";export{FROM_FLAG,MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,MONTH_FLAG,TO_FLAG,analysisDomain,analysisForbidden,currentMonth,dataOf,listIn,manhourNotes,manhourQuery,manhourRows,monthRange,monthsBetween,noArgs,profitRows,rangeNotes,recordOf,staffKpiRows,workloadDistributionNotes,workloadDistributionRows};
|