@tocca-systems/twp-cli 0.39.0 → 0.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/CHANGELOG.public.md +16 -0
  2. package/README.md +96 -1
  3. package/dist/{agent-loop-4U5RLC4L.js → agent-loop-RCMZ7IGV.js} +2 -2
  4. package/dist/{ai-dispatch-KRMDHQEF.js → ai-dispatch-2ZV4XL5D.js} +2 -2
  5. package/dist/{api-command-IO572BZ4.js → api-command-6FEY6MHV.js} +4 -4
  6. package/dist/{app-Y2RIXLS4.js → app-G6Y2XVST.js} +5 -5
  7. package/dist/{auto-update-JNSBIQM6.js → auto-update-PS5HUWVH.js} +1 -1
  8. package/dist/{auto-update-worker-Y44TD6FD.js → auto-update-worker-ZKODJ45K.js} +2 -2
  9. package/dist/{backlog-67JSQYOH.js → backlog-JVHWVL6N.js} +2 -2
  10. package/dist/{charter-command-ULFOEZWE.js → charter-command-OQQHBAPS.js} +1 -1
  11. package/dist/{chunk-4ZT5LTRX.js → chunk-43OMEGNH.js} +1 -1
  12. package/dist/{chunk-PWXXCLVZ.js → chunk-6QOT7CHX.js} +1 -1
  13. package/dist/{chunk-QDTYD5PY.js → chunk-7ACENLLZ.js} +4 -4
  14. package/dist/{chunk-HAIZHSNZ.js → chunk-7HVVKEOA.js} +2 -3
  15. package/dist/{chunk-C7UDUHQZ.js → chunk-ANK43U5E.js} +22 -20
  16. package/dist/{chunk-BJLXXRSY.js → chunk-B7YCG2T7.js} +1 -1
  17. package/dist/{chunk-MHRGKUMK.js → chunk-BPCK5RAB.js} +1 -1
  18. package/dist/{chunk-RZ54TCQU.js → chunk-BZ7ULFR3.js} +1 -1
  19. package/dist/{chunk-ELXDRPDV.js → chunk-BZAXQOLB.js} +24 -19
  20. package/dist/chunk-EOSSFTNG.js +4 -0
  21. package/dist/chunk-FKS2Z34P.js +70 -0
  22. package/dist/chunk-G2THOTBW.js +15 -0
  23. package/dist/{chunk-QQLWMHGR.js → chunk-H54MGGHB.js} +1 -1
  24. package/dist/{chunk-L52XJFJR.js → chunk-HBH5V2CP.js} +1 -1
  25. package/dist/chunk-L25UV7DE.js +13 -0
  26. package/dist/{chunk-REPGG75N.js → chunk-LNZTJI64.js} +1 -1
  27. package/dist/{chunk-RFBFR567.js → chunk-N6AXAGS2.js} +5 -5
  28. package/dist/chunk-O44ZKSD2.js +8 -0
  29. package/dist/chunk-PEM3HR7L.js +58 -0
  30. package/dist/{chunk-VECUCVIY.js → chunk-PKWMJIBM.js} +1 -1
  31. package/dist/{chunk-VBX44RKP.js → chunk-QEWI75KI.js} +1 -1
  32. package/dist/{chunk-BUZKNZ45.js → chunk-UT4FACHN.js} +5 -3
  33. package/dist/chunk-V3GQEUYI.js +16 -0
  34. package/dist/{chunk-FEOST3GF.js → chunk-VK5T7ULK.js} +1 -1
  35. package/dist/{chunk-VK2Z4QGC.js → chunk-VUHKLW66.js} +1 -1
  36. package/dist/{chunk-Y5YDL3MC.js → chunk-X5IVIOGL.js} +1 -1
  37. package/dist/{receivable-AE44YIJO.js → chunk-XN5TUZOT.js} +2 -3
  38. package/dist/{chunk-2NKVGAAE.js → chunk-YM7TKMNO.js} +1 -1
  39. package/dist/cli.js +148 -9
  40. package/dist/{commands-MLYGGSUE.js → commands-QIBFWWIT.js} +13 -13
  41. package/dist/{commands-K6DQ3O35.js → commands-VT7AVSSL.js} +4 -4
  42. package/dist/{company-3KUWW7QA.js → company-KHZVPKHH.js} +3 -3
  43. package/dist/{completion-6R5D5TQQ.js → completion-EFGQJDIU.js} +1 -1
  44. package/dist/{configure-PIOFJFL5.js → configure-XH33RB27.js} +1 -1
  45. package/dist/{contract-FGRHTOGI.js → contract-O3FIBHDY.js} +2 -2
  46. package/dist/{department-PN5DCCRL.js → department-I25NAPWU.js} +2 -2
  47. package/dist/deposit-U4AVQH5O.js +4 -0
  48. package/dist/estimate-SW43VOLO.js +173 -0
  49. package/dist/{inquiry-3VOJASJH.js → inquiry-5HSK4FPD.js} +2 -2
  50. package/dist/{invoice-KY3BYTHQ.js → invoice-RGOI2H4L.js} +50 -49
  51. package/dist/{job-title-EM6RKGQ6.js → job-title-G7MIYWVA.js} +1 -1
  52. package/dist/{knowledge-F4FZ4MLH.js → knowledge-ZPMPS6WK.js} +2 -2
  53. package/dist/{leave-D2S7NMJC.js → leave-6QI2RNO2.js} +2 -2
  54. package/dist/{logout-guard-XYVKR47G.js → logout-guard-BIF2B7JE.js} +1 -1
  55. package/dist/{media-SQVQVX2E.js → media-OV26FYD2.js} +2 -2
  56. package/dist/{notification-NTFUPUMY.js → notification-FL5GTW5S.js} +2 -2
  57. package/dist/{oneshot-TMGTEN3S.js → oneshot-XW6YVNOY.js} +2 -2
  58. package/dist/{position-D52LXRDT.js → position-UY33ETLX.js} +2 -2
  59. package/dist/{prospect-AQ7EUU4N.js → prospect-VN42J236.js} +3 -3
  60. package/dist/purchase-VQZOO3QL.js +214 -0
  61. package/dist/receivable-TNH4KCUO.js +4 -0
  62. package/dist/{registry-3WV46K26.js → registry-3236ULYR.js} +1 -1
  63. package/dist/{render-MTSSHDAZ.js → render-F4MRN2FQ.js} +1 -1
  64. package/dist/{report-TI2DOJGX.js → report-BTF5Q4F3.js} +2 -2
  65. package/dist/run-33WHOIOO.js +4 -0
  66. package/dist/sales-master-RYZKGURE.js +71 -0
  67. package/dist/sales-numbering-MBFKVR2C.js +4 -0
  68. package/dist/{schedule-command-IGTMCOA7.js → schedule-command-7JGQMTQY.js} +1 -1
  69. package/dist/{server-settings-MVZEW2QI.js → server-settings-326MD7T4.js} +1 -1
  70. package/dist/{server-skills-NXSUDHBD.js → server-skills-NJG7JP77.js} +1 -1
  71. package/dist/{setup-CVXGKBTY.js → setup-JGGFVRUW.js} +1 -1
  72. package/dist/{skill-command-4U7HB7XU.js → skill-command-DFRORWO6.js} +1 -1
  73. package/dist/supplier-payment-ZBN2QZRW.js +110 -0
  74. package/dist/{task-VKVZSF7J.js → task-CXHPLZHT.js} +3 -3
  75. package/dist/update-EYFT7STE.js +3 -0
  76. package/dist/{user-KEFI7XZI.js → user-MCDORJTG.js} +3 -3
  77. package/dist/workflow-2YL2OF2Y.js +4 -0
  78. package/package.json +1 -1
  79. package/dist/chunk-QWSXHHFT.js +0 -15
  80. package/dist/chunk-TLN3JSEC.js +0 -7
  81. package/dist/chunk-UVUVEL3B.js +0 -3
  82. package/dist/chunk-VCZVITWG.js +0 -13
  83. package/dist/deposit-XQER6PMG.js +0 -4
  84. package/dist/estimate-IXBEQVGI.js +0 -164
  85. package/dist/run-KNZ43HFF.js +0 -4
  86. package/dist/update-MAQJ6VWV.js +0 -3
  87. package/dist/workflow-4FHTOQZZ.js +0 -4
@@ -1,3 +1,3 @@
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-VBX44RKP.js";import"./chunk-QWSXHHFT.js";import"./chunk-J7QYPKVK.js";import"./chunk-NHYMHCAT.js";import"./chunk-AEJHDFXB.js";import"./chunk-GY7KI5E5.js";import"./chunk-PMOUHEJQ.js";import"./chunk-5WGOHFAS.js";import"./chunk-VSJBJXZO.js";export{LoopSettingsApplier,PROMPT_KEYS,formatConfigHash,parseServerSettings,renderStepBudget};
3
+ import{LoopSettingsApplier,PROMPT_KEYS,formatConfigHash,parseServerSettings,renderStepBudget}from"./chunk-QEWI75KI.js";import"./chunk-G2THOTBW.js";import"./chunk-AEJHDFXB.js";import"./chunk-GY7KI5E5.js";import"./chunk-PMOUHEJQ.js";import"./chunk-J7QYPKVK.js";import"./chunk-5WGOHFAS.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{LoopSettingsApplier,PROMPT_KEYS,formatConfigHash,parseServerSettings,renderStepBudget};
@@ -1,3 +1,3 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{ServerSkillCatalog,expandServerSkills,formatSkillOrigins,parseSkillBody,parseSkillList,prepareSkillOverlay,referencedSkills,stripFrontmatter}from"./chunk-L52XJFJR.js";import"./chunk-QWSXHHFT.js";import"./chunk-VK2Z4QGC.js";import"./chunk-P4AEFKLM.js";import"./chunk-VRBI2NPI.js";import"./chunk-J7QYPKVK.js";import"./chunk-NHYMHCAT.js";import"./chunk-GY7KI5E5.js";import"./chunk-7WSNIXTQ.js";import"./chunk-VSJBJXZO.js";export{ServerSkillCatalog,expandServerSkills,formatSkillOrigins,parseSkillBody,parseSkillList,prepareSkillOverlay,referencedSkills,stripFrontmatter};
3
+ import{ServerSkillCatalog,expandServerSkills,formatSkillOrigins,parseSkillBody,parseSkillList,prepareSkillOverlay,referencedSkills,stripFrontmatter}from"./chunk-HBH5V2CP.js";import"./chunk-VUHKLW66.js";import"./chunk-P4AEFKLM.js";import"./chunk-VRBI2NPI.js";import"./chunk-G2THOTBW.js";import"./chunk-GY7KI5E5.js";import"./chunk-7WSNIXTQ.js";import"./chunk-J7QYPKVK.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{ServerSkillCatalog,expandServerSkills,formatSkillOrigins,parseSkillBody,parseSkillList,prepareSkillOverlay,referencedSkills,stripFrontmatter};
@@ -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-T4QZO6RQ.js";import{PromptAbortedError,promptText}from"./chunk-L37NS5L2.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import{localConfigPath,parseClaudeLauncher}from"./chunk-QVPU4HHG.js";import"./chunk-N2UVRM3Z.js";import{AiConfig}from"./chunk-AEJHDFXB.js";import"./chunk-GY7KI5E5.js";import"./chunk-PMOUHEJQ.js";import"./chunk-5WGOHFAS.js";import"./chunk-RZVI6PMW.js";
3
+ import{detectAiClis,formatDetection,isDetectableAi,isSelectable}from"./chunk-T4QZO6RQ.js";import{PromptAbortedError,promptText}from"./chunk-L37NS5L2.js";import{localConfigPath,parseClaudeLauncher}from"./chunk-QVPU4HHG.js";import"./chunk-N2UVRM3Z.js";import{AiConfig}from"./chunk-AEJHDFXB.js";import"./chunk-GY7KI5E5.js";import"./chunk-PMOUHEJQ.js";import"./chunk-5WGOHFAS.js";import"./chunk-RZVI6PMW.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";
4
4
  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,3 +1,3 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{DEFAULT_SKILL_DIR,isValidSkillName,runSkillCommand,skillDigest}from"./chunk-VK2Z4QGC.js";import"./chunk-P4AEFKLM.js";import"./chunk-VRBI2NPI.js";import"./chunk-NHYMHCAT.js";import"./chunk-7WSNIXTQ.js";import"./chunk-VSJBJXZO.js";export{DEFAULT_SKILL_DIR,isValidSkillName,runSkillCommand,skillDigest};
3
+ import{DEFAULT_SKILL_DIR,isValidSkillName,runSkillCommand,skillDigest}from"./chunk-VUHKLW66.js";import"./chunk-P4AEFKLM.js";import"./chunk-VRBI2NPI.js";import"./chunk-7WSNIXTQ.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{DEFAULT_SKILL_DIR,isValidSkillName,runSkillCommand,skillDigest};
@@ -0,0 +1,110 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{yearMonthValue}from"./chunk-XN5TUZOT.js";import{excerpt,salesAdminForbidden,sendAtomic}from"./chunk-7ACENLLZ.js";import{readCsvFileText}from"./chunk-I6DWJXPC.js";import{readBody}from"./chunk-HGTG5XQ7.js";import"./chunk-BZ7ULFR3.js";import{repeatedValues}from"./chunk-IOGVQVGD.js";import{booleanText,boundedText,isoDate}from"./chunk-UDPJ2IGK.js";import{SALES_SUPPLIER_PAYMENTS_PATH,SALES_SUPPLIER_PAYMENT_SCHEDULES_PATH,isExactNumericId,resolveNamed}from"./chunk-BZAXQOLB.js";
4
+ import"./chunk-IF2K4PM5.js";import"./chunk-GMBJTG6A.js";import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-5R4SEO3I.js";import"./chunk-II5RVJQN.js";import{requireResolved,withResolved}from"./chunk-ZN5EFDH7.js";import{acknowledgement,isRecord,pick}from"./chunk-ZWVYVS2A.js";import{ApiResponseError,
5
+ UsageError}from"./chunk-7WSNIXTQ.js";import"./chunk-J7QYPKVK.js";import"./chunk-RZVI6PMW.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
+ 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
+ "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
+ 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===
9
+ "")throw new UsageError(`${label}\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,usageOf(op));if(rest.length>0)throw new UsageError(`\u4F59\u5206\u306A\u5F15\u6570\u304C\u3042\u308A\u307E\u3059: ${rest.join(" ")}`,usageOf(op));if(!isExactNumericId(id))throw new UsageError(`${label}\u306E ID \u306F\u5148\u982D\u306B 0 \u3092\u4ED8\u3051\u306A\u3044\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${id}`,`ID \u306F ${listCommand} \u306E id \u5217\u3067\u3059\u3002`);
10
+ return id}var paymentId=(input,op)=>idArg(input,op,"\u652F\u6255","twp supplier-payment list");var scheduleId=(input,op)=>idArg(input,`schedule ${op}`,"\u652F\u6255\u5148\u30DE\u30B9\u30BF","twp supplier-payment schedule list");function noArgs(input,op){if(input.args.length>0)throw new UsageError(`${op} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usageOf(op))}function envelope(body,what){if(!isRecord(body)||body["result"]!==true)throw new ApiResponseError(
11
+ `${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"]!=="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}
12
+ function serverMessage(body){const message=isRecord(body)?body["message"]:void 0;return typeof message==="string"&&message!==""?[message]:[]}function describePayment(payment){return`ID ${text(payment["id"])}\u30FB${text(payment["target_year_month"])}\u30FB${text(payment["supplier_name"])}\u30FB${yen(payment["payment_amount"])}\u30FB${statusName(payment["status"])}`}function describeSchedule(schedule){const end=text(schedule["end_year_month"]);return`ID ${text(schedule["id"])}\u30FB${text(schedule["\
13
+ supplier_name"])}\u30FB${text(schedule["start_year_month"])} \u301C ${end===""?"\u7D42\u4E86\u6708\u306A\u3057":end}`}function withStatusName(row,columns){const picked=pick(row,columns);const status=picked["status"];return typeof status==="string"?{...picked,status_name:statusName(status)}:picked}function bodyOf(input){return JSON.parse(requireResolved(input,"body"))}function resolvedRecord(input,key){return JSON.parse(requireResolved(input,key))}async function statusCode(raw,flag){return(await resolveNamed(
14
+ raw,refsOf(STATUSES),{flag,label:"\u652F\u6255\u30B9\u30C6\u30FC\u30BF\u30B9",scope:"\u3053\u306E CLI"})).id}function yearMonthFlag(input,flag){const raw=input.flags.get(flag);return raw===void 0?void 0:yearMonthValue(raw,flag)}function booleanFlag(input,flag){const raw=input.flags.get(flag);return raw===void 0?void 0:booleanText(flag,raw)}function amountFlag(input,flag){const raw=input.flags.get(flag);if(raw===void 0)return void 0;const value=raw.trim();if(!/^(0|[1-9]\d*)$/.test(value)||!Number.
15
+ isSafeInteger(Number(value)))throw new UsageError(`${flag} \u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\uFF08\u5186\u30FB\u6841\u533A\u5207\u308A\u306A\u3057\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,"\u4F8B: 110000");if(Number(value)>AMOUNT_MAX)throw new UsageError(`${flag} \u306F ${AMOUNT_MAX.toLocaleString("ja-JP")} \u5186\u4EE5\u4E0B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF0815 \u6841\u307E\u3067\uFF09: ${raw}`);return Number(value)}var PARTY_FLAGS=[{name:"\
16
+ --supplier-name",summary:`\u652F\u6255\u5148\u540D\uFF08${SUPPLIER_NAME_MAX_CHARS} \u6587\u5B57\u307E\u3067\u3002\u4F5C\u6210\u3067 --supplier \u3092\u6307\u5B9A\u3057\u3066\u7701\u304F\u3068\u53D6\u5F15\u5148\u306E\u4F01\u696D\u540D\uFF09`,takesValue:true,placeholder:"<\u652F\u6255\u5148\u540D>"},{name:"--supplier",summary:"\u53D6\u5F15\u5148\u30DE\u30B9\u30BF\u306E\u4F01\u696D\u306B\u7D10\u3065\u3051\u308B\uFF08\u4F01\u696D\u540D\u30FB\u7565\u79F0\u30FB\u30AB\u30CA\u306E\u5B8C\u5168\u4E00\u81F4\u304B ID\uFF09",
17
+ takesValue:true,placeholder:"<\u53D6\u5F15\u5148>"},{name:"--user",summary:"\u5BFE\u8C61\u30E6\u30FC\u30B6\u30FC\uFF08\u5916\u6CE8\u30E1\u30F3\u30D0\u30FC\u3002\u30E1\u30FC\u30EB\u30FB\u6C0F\u540D\u30FB\u793E\u54E1\u756A\u53F7\u30FBID\uFF09",takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FC>"},{name:"--outsourcing",summary:"\u5916\u6CE8\u3068\u3057\u3066\u6271\u3046\u304B\uFF08true / false\uFF09",takesValue:true,placeholder:"<true|false>"},{name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u7D10\u3065\u3051\u308B\uFF08\u30B3\u30FC\u30C9\u304B ID\uFF09",
18
+ takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"},{name:"--memo",summary:`\u5099\u8003\uFF08${MEMO_MAX_CHARS} \u6587\u5B57\u307E\u3067\uFF09`,takesValue:true,placeholder:"<\u5099\u8003>"},{name:"--memo-file",summary:"\u5099\u8003\u3092\u8AAD\u3080\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"}];var PARTY_HELP="--supplier \u306F\u53D6\u5F15\u5148\u306E\u9762\uFF08\u4ED5\u5165\u5148\u3092\u542B\u3080\u53D6\u5F15\u5148\u5168\u4F53\uFF09\u3067\u5F15\u304D\u307E\u3059\u3002\u4F5C\u6210\u3067 --supplier-name \u3092\u7701\u304F\u3068\u3001\u305D\u306E\u4F01\u696D\u540D\u3092\u652F\u6255\u5148\u540D\u306B\u3057\u307E\u3059\uFF08\u66F4\u65B0\u3067\u306F\u652F\u6255\u5148\u540D\u3092\u5909\u3048\u307E\u305B\u3093\uFF09\u3002\n--user \u306F\u5916\u6CE8\u30E1\u30F3\u30D0\u30FC\u306E\u652F\u6255\u306E\u3068\u304D\u306B\u300C\
19
+ \u8AB0\u306E\u7A3C\u50CD\u306B\u5BFE\u3059\u308B\u652F\u6255\u304B\u300D\u3092\u793A\u3057\u307E\u3059\uFF08\u540D\u524D\u306F\u30B5\u30FC\u30D0\u304C\u4E00\u89A7\u30FB\u8A73\u7D30\u3067\u89E3\u6C7A\u3057\u307E\u3059\uFF09\u3002";var PARTY_CLEARABLE={supplier:"company_id",user:"supplier_user_id",project:"project_id",memo:"memo"};function applyClears(input,body,clearable){for(const raw of repeatedValues(input,"--clear")){const key=clearable[raw.trim()];if(key===void 0)throw new UsageError(`--clea\
20
+ r \u306B\u6E21\u305B\u306A\u3044\u9805\u76EE\u3067\u3059: ${raw}`,`\u6E21\u305B\u308B\u9805\u76EE: ${Object.keys(clearable).join(" / ")}`);if(body[key]===null)continue;if(key in body)throw new UsageError(`--clear ${raw} \u3068\u3001\u305D\u306E\u9805\u76EE\u306E\u5024\u306E\u6307\u5B9A\u306F\u540C\u6642\u306B\u3067\u304D\u307E\u305B\u3093`);body[key]=null}}async function partyValues(input,body,usage){const name=boundedText(input,"--supplier-name",{maxChars:SUPPLIER_NAME_MAX_CHARS,label:"\u652F\u6255\u5148\u540D"});
21
+ if(name!==void 0)body["supplier_name"]=name;const outsourcing=booleanFlag(input,"--outsourcing");if(outsourcing!==void 0)body["outsourcing_flg"]=outsourcing;const memo=await readBody(input,{flag:"--memo",fileFlag:"--memo-file",label:"\u5099\u8003",maxChars:MEMO_MAX_CHARS,usage});if(memo!==void 0)body["memo"]=memo}async function partyRefs(input,ctx,body,defaultName){for(const[flag,key]of[["--supplier","company_id"],["--user","supplier_user_id"],["--project","project_id"]]){if(input.flags.has(flag)&&
22
+ key in body)throw new UsageError(`--clear ${flag.slice(2)} \u3068 ${flag} \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`)}for(const flag of["--supplier","--user","--project","--status"]){if(input.flags.has(flag)&&nonEmpty(input.flags,flag)===void 0)throw new UsageError(`${flag} \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`)}const supplier=nonEmpty(input.flags,"--supplier");if(supplier!==void 0){const ref=await ctx.resolver.company(supplier,{flag:"\
23
+ --supplier",source:"sales",mustExist:true});body["company_id"]=Number(ref.id);if(defaultName&&!("supplier_name"in body))body["supplier_name"]=ref.name}const user=nonEmpty(input.flags,"--user");if(user!==void 0)body["supplier_user_id"]=(await ctx.resolver.user(user,"--user")).id;const project=nonEmpty(input.flags,"--project");if(project!==void 0)body["project_id"]=await ctx.projectId(project)}var FILTER_FLAGS=[{name:"--keyword",summary:"\u652F\u6255\u5148\u540D\u30FB\u5099\u8003\u306E\u8A9E\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u90E8\u5206\u4E00\u81F4\uFF09",
24
+ takesValue:true,placeholder:"<\u8A9E>"},{name:"--supplier",summary:"\u53D6\u5F15\u5148\u30DE\u30B9\u30BF\u306E\u4F01\u696D\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u4F01\u696D\u540D\u30FB\u7565\u79F0\u30FB\u30AB\u30CA\u306E\u5B8C\u5168\u4E00\u81F4\u304B ID\uFF09",takesValue:true,placeholder:"<\u53D6\u5F15\u5148>"},{name:"--supplier-name",summary:"\u652F\u6255\u5148\u540D\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u90E8\u5206\u4E00\u81F4\uFF09",takesValue:true,placeholder:"<\u8A9E>"},{name:"--user",summary:"\
25
+ \u5BFE\u8C61\u30E6\u30FC\u30B6\u30FC\uFF08\u5916\u6CE8\u30E1\u30F3\u30D0\u30FC\uFF09\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u30E6\u30FC\u30B6\u30FC>"},{name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u30B3\u30FC\u30C9\u304B ID\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"},{name:"--month",summary:"\u5BFE\u8C61\u6708\uFF08YYYY-MM\uFF09\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u5E74\u6708>"},
26
+ {name:"--status",summary:"\u30B9\u30C6\u30FC\u30BF\u30B9\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u8907\u6570\u56DE\u6307\u5B9A\u3067\u304D\u308B\uFF09",takesValue:true,placeholder:"<\u30B9\u30C6\u30FC\u30BF\u30B9>",repeatable:true},{name:"--outsourcing",summary:"\u5916\u6CE8\uFF08true\uFF09\u30FB\u5916\u6CE8\u4EE5\u5916\uFF08false\uFF09\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<true|false>"},{name:"--from",summary:"\u632F\u8FBC\u671F\u65E5\u304C\u3053\u306E\u65E5\u4EE5\u964D\uFF08YYYY-MM-DD\uFF09",
27
+ takesValue:true,placeholder:"<\u65E5\u4ED8>"},{name:"--to",summary:"\u632F\u8FBC\u671F\u65E5\u304C\u3053\u306E\u65E5\u4EE5\u524D\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<\u65E5\u4ED8>"}];var STATUS_HELP=`\u30B9\u30C6\u30FC\u30BF\u30B9\u306B\u6E21\u305B\u308B\u5024: ${labelsHelp(STATUSES)}\uFF08\u30B3\u30FC\u30C9\u3067\u3082\u8868\u793A\u540D\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF09`;async function prepareList(input,ctx){noArgs(input,"list");listQuery(input);pageNumberQuery(
28
+ input);const resolved={};const codes=[];for(const raw of repeatedValues(input,"--status")){const code=await statusCode(raw,"--status");if(!codes.includes(code))codes.push(code)}if(codes.length>0)resolved["status"]=codes.join(",");const supplier=nonEmpty(input.flags,"--supplier");if(supplier!==void 0)resolved["supplier"]=(await ctx.resolver.company(supplier,{flag:"--supplier",source:"sales",mustExist:true})).id;const user=nonEmpty(input.flags,"--user");if(user!==void 0)resolved["user"]=(await ctx.
29
+ resolver.user(user,"--user")).id;const project=nonEmpty(input.flags,"--project");if(project!==void 0)resolved["project"]=await ctx.projectId(project);return withResolved(input,resolved)}function listQuery(input){const resolved=input.resolved??{};const outsourcing=booleanFlag(input,"--outsourcing");return{keyword:nonEmpty(input.flags,"--keyword"),company_id:resolved["supplier"],supplier_name:nonEmpty(input.flags,"--supplier-name"),supplier_user_id:resolved["user"],project_id:resolved["project"],target_year_month:yearMonthFlag(
30
+ input,"--month"),status_list:resolved["status"],outsourcing_flg:outsourcing===void 0?void 0:outsourcing?"1":"0",transfer_due_date_from:isoDate(input,"--from"),transfer_due_date_to:isoDate(input,"--to"),...STABLE_PAGE_ORDER}}var listPaging=pageNumberPaging({label:"\u652F\u6255\u4E00\u89A7"});function listRows(body){envelope(body,"\u652F\u6255\u4E00\u89A7");return listPaging.items(body)}var listOperation={name:"list",summary:"\u652F\u6255\u3092\u4E00\u89A7\u3059\u308B\uFF08\u767B\u9332\u306E\u65B0\u3057\u3044\u9806\u30FB\u8CA9\u58F2\u7BA1\u7406\u306E\u7BA1\u7406\u8005\uFF09",
31
+ usage:"twp supplier-payment list [--keyword <\u8A9E>] [--supplier <\u53D6\u5F15\u5148>] [--supplier-name <\u8A9E>] [--user <\u30E6\u30FC\u30B6\u30FC>] [--project <\u30B3\u30FC\u30C9|ID>] [--month <\u5E74\u6708>] [--status <\u30B9\u30C6\u30FC\u30BF\u30B9>]... [--outsourcing true|false] [--from <\u65E5\u4ED8>] [--to <\u65E5\u4ED8>] [--all] [--limit <\u4EF6\u6570>]",description:`\u8CA9\u58F2\u7BA1\u7406\u306E\u652F\u6255\uFF08\u4ED5\u5165\u5148\u3078\u6255\u3046\u304A\u91D1\u306E\u53F0\u5E33\uFF09\u3092\u4E00\u89A7\u3057\u307E\u3059\u3002\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002
32
+ \u6CE8\u6587\u66F8\uFF08twp purchase\uFF09\u3068\u3082\u3001\u5165\u91D1\u306E\u632F\u8FBC\u5148\uFF08twp deposit \u306E --payee\uFF09\u3068\u3082\u5225\u306E\u8A18\u9332\u3067\u3059\uFF08\u4ED5\u5165\u3092\u4F5C\u3063\u3066\u3082\u652F\u6255\u306F\u4F5C\u3089\u308C\u307E\u305B\u3093\uFF09\u3002
33
+
34
+ ${STATUS_HELP}\u3002\u8907\u6570\u56DE\u6307\u5B9A\u3059\u308B\u3068\u3044\u305A\u308C\u304B\u306B\u5F53\u305F\u308B\u3082\u306E\u3092\u51FA\u3057\u307E\u3059\u3002
35
+ --from / --to \u306F\u632F\u8FBC\u671F\u65E5\u306E\u7BC4\u56F2\u3067\u3059\u3002\u7D5E\u308A\u8FBC\u307F\u5168\u4F53\u306E\u4EF6\u6570\u3068\u652F\u6255\u91D1\u984D\u306E\u5408\u8A08\u306F stderr \u306B\u51FA\u307E\u3059\u3002
36
+
37
+ --output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002
38
+ --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${LIST_COLUMNS.join(" / ")} / status_name\uFF09\u3067\u3059\u3002
39
+
40
+ `+LIST_PAGING_HELP+"\n"+PAGE_NUMBER_PAGING_HELP,flags:[...PAGE_NUMBER_LIST_FLAGS,...FILTER_FLAGS],paging:listPaging,forbidden:FORBIDDEN,prepare:prepareList,plan:input=>{const{page_no,page_limit}=pageNumberQuery(input);return{method:"GET",path:PATH,query:{...listQuery(input),page_limit,page_no}}},summarize:body=>listRows(body).map(row=>withStatusName(row,LIST_COLUMNS)),raw:listRows,notes:body=>{const sum=isRecord(body)?body["sum"]:void 0;const amount=isRecord(body)?body["total_amount"]:void 0;return[
41
+ ...pageRangeNotes(body),...typeof sum==="number"?[`\u8A72\u5F53 ${sum} \u4EF6${typeof amount==="number"?`\u30FB\u652F\u6255\u91D1\u984D\u306E\u5408\u8A08 ${yen(amount)}`:""}`]:[]]}};var getOperation={name:"get",summary:"\u652F\u62551\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B",usage:"twp supplier-payment get <\u652F\u6255ID>",description:`ID \u306F twp supplier-payment list \u306E id \u5217\u306E\u6570\u5B57\u3067\u3059\u3002
42
+
43
+ --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${GET_COLUMNS.join(" / ")} / status_name\uFF09\u3067\u3059\u3002`,flags:[],forbidden:FORBIDDEN,plan:input=>({method:"GET",path:`${PATH}/${paymentId(input,"get")}`}),summarize:body=>withStatusName(recordOf(body,"\u652F\u6255"),GET_COLUMNS),raw:body=>recordOf(body,"\u652F\u6255")};var FIELD_FLAGS=[...PARTY_FLAGS,{name:"--month",summary:"\u5BFE\u8C61\u6708\uFF08YYYY-MM\u30FB\u8A72\u5F53\u7A3C\u50CD\u6708\uFF0F\u5229\u7528\u6708\u30FB\u4F5C\u6210\u3067\u306F\u5FC5\u9808\uFF09",
44
+ takesValue:true,placeholder:"<\u5E74\u6708>"},{name:"--invoice-date",summary:"\u8ACB\u6C42\u5E74\u6708\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<\u65E5\u4ED8>"},{name:"--amount",summary:"\u652F\u6255\u91D1\u984D\uFF08\u7A0E\u8FBC\u30FB\u5186\u30FB0 \u4EE5\u4E0A\u306E\u6574\u6570\uFF09",takesValue:true,placeholder:"<\u5186>"},{name:"--tax-rate",summary:"\u7A0E\u533A\u5206\uFF0810 / 8 / 0\u3002\u7701\u304F\u3068 10\uFF09",takesValue:true,placeholder:"<10|8|0>"},{name:"--amount-exc\
45
+ luding-tax",summary:"\u7A0E\u629C\u984D\u306E\u624B\u4FEE\u6B63\uFF08\u5186\u30FB0 \u4EE5\u4E0A\u306E\u6574\u6570\u3002\u7701\u304F\u3068\u30B5\u30FC\u30D0\u304C\u7A0E\u533A\u5206\u304B\u3089\u8A08\u7B97\uFF09",takesValue:true,placeholder:"<\u5186>"},{name:"--due-date",summary:"\u632F\u8FBC\u671F\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<\u65E5\u4ED8>"},{name:"--executed-date",summary:"\u632F\u8FBC\u5B9F\u884C\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<\u65E5\u4ED8>"},
46
+ {name:"--status",summary:"\u30B9\u30C6\u30FC\u30BF\u30B9\uFF08\u7701\u304F\u3068\u8ACB\u6C42\u66F8\u672A\u7740\uFF09",takesValue:true,placeholder:"<\u30B9\u30C6\u30FC\u30BF\u30B9>"}];var CLEARABLE={...PARTY_CLEARABLE,"invoice-date":"invoice_date",amount:"payment_amount","amount-excluding-tax":"amount_excluding_tax","due-date":"transfer_due_date","executed-date":"transfer_executed_date"};var CLEAR_FLAG={name:"--clear",summary:`\u9805\u76EE\u3092\u7A7A\u306B\u3059\u308B\uFF08${Object.keys(CLEARABLE).
47
+ join(" / ")}\u30FB\u8907\u6570\u56DE\u6307\u5B9A\u3067\u304D\u308B\uFF09`,takesValue:true,placeholder:"<\u9805\u76EE>",repeatable:true};var FIELD_HELP=`${STATUS_HELP}\u3002
48
+ \u8ACB\u6C42\u5E74\u6708\u65E5\u30FB\u652F\u6255\u91D1\u984D\u306F\u8ACB\u6C42\u66F8\u3092\u53D7\u3051\u53D6\u3063\u3066\u304B\u3089\u5165\u308C\u308B\u904B\u7528\u306E\u305F\u3081\u3001\u672A\u5165\u529B\u306E\u307E\u307E\u767B\u9332\u3067\u304D\u307E\u3059\uFF08\u8ACB\u6C42\u66F8\u672A\u7740\u306E\u884C\uFF09\u3002
49
+ \u7A0E\u629C\u984D\u306F\u7701\u304F\u3068\u30B5\u30FC\u30D0\u304C\u7A0E\u533A\u5206\u304B\u3089\u8A08\u7B97\u3057\u307E\u3059\u3002\u624B\u4FEE\u6B63\u3057\u305F\u5024\u306F --clear amount-excluding-tax \u3067\u81EA\u52D5\u8A08\u7B97\u3078\u623B\u305B\u307E\u3059
50
+ \uFF08\u7A0E\u629C\u984D\u304C\u652F\u6255\u91D1\u984D\u3092\u8D85\u3048\u308B\u5024\u306F\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF09\u3002
51
+ \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u7D10\u3065\u3051\u3066\u91D1\u984D\u3092\u5165\u308C\u305F\u652F\u6255\u306F\u3001\u30B5\u30FC\u30D0\u304C\u305D\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u4ED5\u5165\u539F\u4FA1\u3078\u8A08\u4E0A\u3057\u307E\u3059\uFF08\u66F4\u65B0\u30FB\u524A\u9664\u306B\u3082\u8FFD\u968F\u3057\u307E\u3059\uFF09\u3002
52
+ `+PARTY_HELP;async function paymentBody(input,ctx,op){const body={};const month=yearMonthFlag(input,"--month");if(month!==void 0)body["target_year_month"]=month;const invoiceDate=isoDate(input,"--invoice-date");if(invoiceDate!==void 0)body["invoice_date"]=invoiceDate;const amount=amountFlag(input,"--amount");if(amount!==void 0)body["payment_amount"]=amount;const taxRate=input.flags.get("--tax-rate");if(taxRate!==void 0){const value=taxRate.trim();if(!TAX_RATES.includes(value))throw new UsageError(
53
+ `--tax-rate \u306F ${TAX_RATES.join(" / ")} \u306E\u3044\u305A\u308C\u304B\u3067\u3059: ${taxRate}`);body["tax_rate"]=value}const excluding=amountFlag(input,"--amount-excluding-tax");if(excluding!==void 0)body["amount_excluding_tax"]=excluding;const due=isoDate(input,"--due-date");if(due!==void 0)body["transfer_due_date"]=due;const executed=isoDate(input,"--executed-date");if(executed!==void 0)body["transfer_executed_date"]=executed;const status=nonEmpty(input.flags,"--status");if(status!==void 0)
54
+ body["status"]=await statusCode(status,"--status");await partyValues(input,body,usageOf(op));if(op==="update")applyClears(input,body,CLEARABLE);await partyRefs(input,ctx,body,op==="create");return body}async function prepareCreate(input,ctx){noArgs(input,"create");const missing=[...input.flags.has("--supplier-name")||input.flags.has("--supplier")?[]:["--supplier-name\uFF08\u304B --supplier\uFF09"],...input.flags.has("--month")?[]:["--month"]];if(missing.length>0)throw new UsageError(`\u652F\u6255\u306E\u4F5C\u6210\u306B\u306F ${missing.
55
+ join(" / ")} \u304C\u8981\u308A\u307E\u3059`,usageOf("create"));return withResolved(input,{body:JSON.stringify(await paymentBody(input,ctx,"create"))})}async function prepareUpdate(input,ctx){const id=paymentId(input,"update");const body=await paymentBody(input,ctx,"update");if(Object.keys(body).length===0)throw new UsageError("\u66F8\u304D\u63DB\u3048\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093",usageOf("update"));const payment=await ctx.resolver.salesRecord("supplier-payment",id,"<\u652F\u6255\
56
+ ID>");return withResolved(input,{body:JSON.stringify(body),payment:JSON.stringify(payment)})}var createOperation={name:"create",summary:"\u652F\u6255\u3092\u767B\u9332\u3059\u308B\uFF08--supplier-name \u304B --supplier\u30FB--month\uFF09",usage:"twp supplier-payment create (--supplier-name <\u652F\u6255\u5148\u540D> | --supplier <\u53D6\u5F15\u5148>) --month <\u5E74\u6708> [--amount <\u5186>] [--invoice-date <\u65E5\u4ED8>] [--due-date <\u65E5\u4ED8>] [--status <\u30B9\u30C6\u30FC\u30BF\u30B9>] [\u305D\u306E\u4ED6\u306E\u9805\u76EE\u2026]",
57
+ description:"POST /api/v2/sales/supplier-payments \u3067\u652F\u6255\u30921\u4EF6\u767B\u9332\u3057\u307E\u3059\u3002\n\n"+FIELD_HELP,flags:FIELD_FLAGS,forbidden:FORBIDDEN,prepare:prepareCreate,plan:input=>({method:"POST",path:PATH,body:bodyOf(input)}),plannedNotes:input=>{const body=bodyOf(input);return input.flags.has("--supplier-name")||!("supplier_name"in body)?[]:[`\u652F\u6255\u5148\u540D\u306F\u53D6\u5F15\u5148\u306E\u4F01\u696D\u540D\u300C${text(body["supplier_name"])}\u300D\u306B\u3057\u307E\u3059\uFF08--supplier-na\
58
+ me \u3067\u5909\u3048\u3089\u308C\u307E\u3059\uFF09`]},summarize:body=>withStatusName(recordOf(body,"\u652F\u6255"),WRITE_COLUMNS),raw:body=>recordOf(body,"\u652F\u6255"),notes:serverMessage};var updateOperation={name:"update",summary:"\u652F\u6255\u3092\u66F8\u304D\u63DB\u3048\u308B\uFF08\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\uFF09",usage:"twp supplier-payment update <\u652F\u6255ID> [--amount <\u5186>] [--status <\u30B9\u30C6\u30FC\u30BF\u30B9>] [--due-date <\u65E5\u4ED8>] [\u305D\u306E\u4ED6\u306E\u9805\u76EE\u2026] [--clear <\u9805\u76EE>]...",
59
+ description:"PUT /api/v2/sales/supplier-payments/{id}\u3002\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u9001\u308A\u307E\u3059\uFF08\u6307\u5B9A\u3057\u306A\u3044\u9805\u76EE\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002\n\u9001\u308B\u524D\u306B\u4ECA\u306E\u652F\u6255\u3092\u8AAD\u3093\u3067 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002\u8907\u6570\u306E\u652F\u6255\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u3060\u3051\u3092\u63C3\u3048\u308B\u306A\u3089 twp supplier-payment set-status\u3002\n\n"+
60
+ FIELD_HELP,flags:[...FIELD_FLAGS,CLEAR_FLAG],forbidden:FORBIDDEN,prepare:prepareUpdate,plan:input=>({method:"PUT",path:`${PATH}/${paymentId(input,"update")}`,body:bodyOf(input)}),plannedNotes:input=>[`\u66F8\u304D\u63DB\u3048\u308B\u652F\u6255: ${describePayment(resolvedRecord(input,"payment"))}`],summarize:body=>withStatusName(recordOf(body,"\u652F\u6255"),WRITE_COLUMNS),raw:body=>recordOf(body,"\u652F\u6255"),notes:serverMessage};var deleteOperation={name:"delete",summary:"\u652F\u6255\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\uFF09",
61
+ usage:"twp supplier-payment delete <\u652F\u6255ID> --yes",description:"DELETE /api/v2/sales/supplier-payments/{id}\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u4ED5\u5165\u539F\u4FA1\u3078\u8A08\u4E0A\u3055\u308C\u3066\u3044\u305F\u5206\u3082\u30B5\u30FC\u30D0\u304C\u53D6\u308A\u6D88\u3057\u307E\u3059\u3002\n\u652F\u6255\u5148\u30DE\u30B9\u30BF\u304B\u3089\u751F\u6210\u3055\u308C\u305F\u884C\u3092\u6D88\u3057\u3066\u3082\u3001\u30DE\u30B9\u30BF\u306F\u6B8B\u308A\u307E\u3059\uFF08\u7FCC\u6708\u4EE5\u964D\u306E\u751F\u6210\u306F\u7D9A\u304D\u307E\u3059\uFF09\u3002\n\u9001\u308B\u524D\u306B\u5BFE\u8C61\u306E\u652F\u6255\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002",
62
+ destructive:true,flags:[],forbidden:FORBIDDEN,prepare:async(input,ctx)=>withResolved(input,{payment:JSON.stringify(await ctx.resolver.salesRecord("supplier-payment",paymentId(input,"delete"),"<\u652F\u6255ID>"))}),plan:input=>({method:"DELETE",path:`${PATH}/${paymentId(input,"delete")}`}),plannedNotes:input=>[`\u524A\u9664\u3059\u308B\u652F\u6255: ${describePayment(resolvedRecord(input,"payment"))}`],summarize:body=>acknowledgement(body,"\u652F\u6255\u524A\u9664"),raw:body=>acknowledgement(body,
63
+ "\u652F\u6255\u524A\u9664")};var FILE_FLAG={name:"--file",summary:`\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u5909\u3048\u308B\u652F\u6255\u306E ID \u30921\u884C\u306B1\u3064\u66F8\u3044\u305F\u30D5\u30A1\u30A4\u30EB\uFF08${BULK_MAX_IDS} \u4EF6\u307E\u3067\uFF09`,takesValue:true,placeholder:"<\u30D5\u30A1\u30A4\u30EB>"};function parseStatusIds(content){const ids=[];const errors=[];const seen=new Map;content.split(/\r?\n/).forEach((raw,index)=>{const line=index+1;const value=raw.trim();if(value===""||
64
+ value.startsWith("#"))return;if(!isExactNumericId(value)){errors.push({line,text:`${line} \u884C\u76EE: \u652F\u6255\u306E ID\uFF08\u5148\u982D\u306B 0 \u3092\u4ED8\u3051\u306A\u3044\u6570\u5B57\uFF09\u3067\u306F\u3042\u308A\u307E\u305B\u3093: ${excerpt(value)}`});return}const first=seen.get(value);if(first!==void 0){errors.push({line,text:`${line} \u884C\u76EE: ID ${value} \u306F ${first} \u884C\u76EE\u3068\u91CD\u8907\u3057\u3066\u3044\u307E\u3059`});return}seen.set(value,line);ids.push({line,
65
+ id:value})});return{ids,errors}}async function prepareSetStatus(input,ctx){const usage=usageOf("set-status");noArgs(input,"set-status");const file=input.flags.get(FILE_FLAG.name);if(file===void 0||file.trim()==="")throw new UsageError("--file <\u30D5\u30A1\u30A4\u30EB> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);const rawStatus=nonEmpty(input.flags,"--status");if(rawStatus===void 0)throw new UsageError("\u5909\u66F4\u5F8C\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u3092 --status <\u30B9\u30C6\u30FC\u30BF\u30B9> \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",
66
+ STATUS_HELP);const status=await statusCode(rawStatus,"--status");const parsed=parseStatusIds(readCsvFileText(file,usage,FILE_MAX_BYTES,size=>new UsageError(`--file \u306E\u30D5\u30A1\u30A4\u30EB\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${size} \u30D0\u30A4\u30C8\uFF09: ${file}`,`1\u56DE\u306B\u9001\u308C\u308B\u306E\u306F ${BULK_MAX_IDS} \u4EF6\u307E\u3067\u3067\u3059\u3002`)));const errors=[...parsed.errors];if(parsed.ids.length>BULK_MAX_IDS){const lines=[`\u652F\u6255\u306E ID \u304C ${parsed.
67
+ ids.length} \u4EF6\u3042\u308A\u307E\u3059\u3002\u30B5\u30FC\u30D0\u304C1\u56DE\u306B\u53D7\u3051\u308B\u306E\u306F ${BULK_MAX_IDS} \u4EF6\u307E\u3067\u3067\u3059`,...errors.map(e=>e.text)];throw new UsageError(`\u9001\u308C\u306A\u3044\u305F\u3081\u30011\u4EF6\u3082\u5909\u66F4\u3057\u3066\u3044\u307E\u305B\u3093:
68
+ ${lines.join("\n ")}`,"\u30D5\u30A1\u30A4\u30EB\u3092\u5206\u3051\u3066\u6253\u3063\u3066\u304F\u3060\u3055\u3044\uFF08\u5206\u3051\u3066\u9001\u308B\u3068\u3001\u5206\u3051\u305F\u5358\u4F4D\u3067\u5909\u66F4\u6E08\u307F\u30FB\u672A\u5909\u66F4\u304C\u6DF7\u3056\u308A\u307E\u3059\uFF09\u3002")}const targets=[];for(const{line,id}of parsed.ids){try{targets.push(await ctx.resolver.salesRecord("supplier-payment",id,"--file"))}catch(err){if(!(err instanceof UsageError))throw err;errors.push({line,
69
+ text:`${line} \u884C\u76EE: ${err.message}`})}}if(errors.length>0){errors.sort((a,b)=>a.line-b.line);throw new UsageError(`\u30D5\u30A1\u30A4\u30EB\u306B\u5909\u66F4\u3067\u304D\u306A\u3044\u884C\u304C ${errors.length} \u884C\u3042\u308B\u305F\u3081\u30011\u4EF6\u3082\u5909\u66F4\u3057\u3066\u3044\u307E\u305B\u3093:
70
+ ${errors.map(e=>e.text).join("\n ")}`,`\u6B63\u3057\u3044\u884C\u306F ${targets.length} \u884C\u3067\u3059\u3002\u305D\u306E\u884C\u3092\u76F4\u3059\u304B\u524A\u9664\u3057\u3066\u304B\u3089\u6253\u3061\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}if(targets.length===0)throw new UsageError(`\u30D5\u30A1\u30A4\u30EB\u306B\u652F\u6255\u306E ID \u304C\u3042\u308A\u307E\u305B\u3093: ${file}`,usage);return withResolved(input,{body:JSON.stringify({ids:targets.map(t=>Number(t["id"])),status}),targets:JSON.
71
+ stringify(targets)})}function setStatusPlan(input){return{method:"POST",path:`${PATH}/bulk-status`,body:bodyOf(input)}}var setStatusOperation={name:"set-status",summary:"\u652F\u6255\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u4E00\u62EC\u3067\u5909\u3048\u308B\uFF08--file\u30FB--status\u30FB--yes \u304C\u8981\u308B\uFF09",usage:"twp supplier-payment set-status --file <\u30D5\u30A1\u30A4\u30EB> --status <\u30B9\u30C6\u30FC\u30BF\u30B9> --yes",description:`POST /api/v2/sales/supplier-payments/bulk\
72
+ -status\u3002\u6708\u672B\u306B\u300C\u632F\u8FBC\u4E88\u7D04\u6E08 \u2192 \u652F\u6255\u6E08\u300D\u3092\u307E\u3068\u3081\u3066\u66F4\u65B0\u3059\u308B\u7528\u9014\u3067\u3059\u3002
73
+ --file \u306B\u306F1\u884C\u306B1\u3064\u652F\u6255\u306E ID \u3092\u66F8\u304D\u307E\u3059\uFF08${BULK_MAX_IDS} \u4EF6\u307E\u3067\u3002\u7A7A\u884C\u3068 # \u3067\u59CB\u307E\u308B\u884C\u306F\u8AAD\u307F\u98DB\u3070\u3057\u307E\u3059\uFF09\u3002
74
+ ${STATUS_HELP}\u3002
75
+
76
+ \u9001\u308B\u524D\u306B\u5168\u4EF6\u3092\u8AAD\u307F\u3001\u5F62\u306E\u8AA4\u308A\u30FB\u91CD\u8907\u30FB\u898B\u3064\u304B\u3089\u306A\u3044 ID \u304C1\u3064\u3067\u3082\u3042\u308C\u3070\u30011\u4EF6\u3082\u9001\u3089\u305A\u306B\u884C\u756A\u53F7\u3068\u7406\u7531\u3092\u3059\u3079\u3066\u51FA\u3057\u3066\u7D42\u4E86\u30B3\u30FC\u30C9 2 \u3067\u7D42\u308F\u308A\u307E\u3059\u3002
77
+ \u4E0B\u898B\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u306F\u5BFE\u8C61\u306E\u4EF6\u6570\u3068\u30011\u4EF6\u305A\u3064\u306E\u300C\u4ECA\u306E\u30B9\u30C6\u30FC\u30BF\u30B9 \u2192 \u5909\u66F4\u5F8C\u300D\u3067\u3059\u3002
78
+ \u30B5\u30FC\u30D0\u306F\u5168\u4EF6\u6210\u529F\u304B\u5168\u4EF6\u5931\u6557\u3067\u51E6\u7406\u3059\u308B\u306E\u3067\u3001\u9014\u4E2D\u307E\u3067\u5909\u308F\u3063\u305F\u72B6\u614B\u306B\u306F\u306A\u308A\u307E\u305B\u3093\u3002\u65AD\u3089\u308C\u305F\u3089\u4F55\u3082\u5909\u308F\u3063\u3066\u3044\u307E\u305B\u3093\u3002
79
+ \u5FDC\u7B54\u3092\u53D7\u3051\u53D6\u308C\u306A\u304B\u3063\u305F\u3068\u304D\u306F twp supplier-payment list \u3067\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\uFF08\u540C\u3058\u30B9\u30C6\u30FC\u30BF\u30B9\u3078\u306E\u6253\u3061\u76F4\u3057\u306F\u7D50\u679C\u3092\u5909\u3048\u307E\u305B\u3093\uFF09\u3002
80
+ ${BULK_MAX_IDS} \u4EF6\u3092\u8D85\u3048\u308B\u30D5\u30A1\u30A4\u30EB\u306F\u5206\u3051\u305A\u306B\u6B62\u3081\u307E\u3059\uFF08\u5206\u3051\u3066\u9001\u308B\u3068\u3001\u5206\u3051\u305F\u5358\u4F4D\u3067\u5909\u66F4\u6E08\u307F\u30FB\u672A\u5909\u66F4\u304C\u6DF7\u3056\u308B\u305F\u3081\uFF09\u3002`,destructive:true,confirmation:"\u8907\u6570\u306E\u652F\u6255\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u4E00\u62EC\u3067\u66F8\u304D\u63DB\u3048\u308B\u64CD\u4F5C",flags:[FILE_FLAG,{name:"--sta\
81
+ tus",summary:"\u5909\u66F4\u5F8C\u306E\u30B9\u30C6\u30FC\u30BF\u30B9",takesValue:true,placeholder:"<\u30B9\u30C6\u30FC\u30BF\u30B9>"}],forbidden:FORBIDDEN,prepare:prepareSetStatus,plan:setStatusPlan,plannedNotes:input=>{const to=String(bodyOf(input)["status"]);const targets=JSON.parse(requireResolved(input,"targets"));const unchanged=targets.filter(t=>t["status"]===to).length;return[`\u30B9\u30C6\u30FC\u30BF\u30B9\u3092\u300C${statusName(to)}\u300D\u306B\u5909\u3048\u308B\u652F\u6255 ${targets.length}\
82
+ \u4EF6:`,...targets.map(t=>` ${describePayment(t)} \u2192 ${statusName(to)}`),...unchanged>0?[` \u3046\u3061 ${unchanged} \u4EF6\u306F\u65E2\u306B\u300C${statusName(to)}\u300D\u3067\u3059\uFF08\u5909\u308F\u308A\u307E\u305B\u3093\uFF09`]:[]]},execute:(input,ctx)=>sendAtomic(setStatusPlan(input),ctx,{refused:"\u30B5\u30FC\u30D0\u304C\u65AD\u3063\u305F\u305F\u3081\u30011\u4EF6\u3082\u5909\u66F4\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u5168\u4EF6\u6210\u529F\u304B\u5168\u4EF6\u5931\u6557\u3067\u3059\uFF09\u3002",
83
+ uncertain:"\u30B9\u30C6\u30FC\u30BF\u30B9\u306E\u5909\u66F4\u3092\u9001\u308A\u307E\u3057\u305F\u304C\u3001\u7D50\u679C\u3092\u53D7\u3051\u53D6\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u5909\u66F4\u3055\u308C\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002twp supplier-payment list \u3067\u78BA\u304B\u3081\u3066\u304F\u3060\u3055\u3044\uFF08\u540C\u3058\u30B9\u30C6\u30FC\u30BF\u30B9\u3078\u306E\u6253\u3061\u76F4\u3057\u306F\u7D50\u679C\u3092\u5909\u3048\u307E\u305B\u3093\uFF09\u3002"}),
84
+ summarize:body=>{const data=envelope(body,"\u30B9\u30C6\u30FC\u30BF\u30B9\u306E\u4E00\u62EC\u5909\u66F4");return{updated_count:data["updated_count"]}},raw:body=>envelope(body,"\u30B9\u30C6\u30FC\u30BF\u30B9\u306E\u4E00\u62EC\u5909\u66F4"),notes:serverMessage};var SCHEDULE_HELP="\u652F\u6255\u5148\u30DE\u30B9\u30BF\u306F\u300C\u6BCE\u6708\u767A\u751F\u3059\u308B\u652F\u6255\u300D\u306E\u8A2D\u5B9A\u3067\u3059\u3002\u6708\u521D\u306E\u30D0\u30C3\u30C1\u304C\u3001\u958B\u59CB\u6708\u301C\u7D42\u4E86\u6708\uFF08\u4E21\u7AEF\u3092\u542B\u3080\u30FB\u7D42\u4E86\u6708\u306A\u3057\u306A\u3089\u7121\u671F\u9650\uFF09\u306E\n\u5404\u6708\u306B\u3053\u306E\u30DE\u30B9\u30BF\u304B\u3089\u652F\u6255\u884C\uFF08\u8ACB\u6C42\u66F8\u672A\u7740\uFF09\u3092\u751F\u6210\u3057\u307E\u3059\u3002\u30DE\u30B9\u30BF\u3092\u5909\u3048\u3066\u3082\u3001\u751F\u6210\u6E08\u307F\u306E\u652F\u6255\u306F\u5909\u308F\u308A\u307E\u305B\u3093\u3002";
85
+ var scheduleListPaging=pageNumberPaging({label:"\u652F\u6255\u5148\u30DE\u30B9\u30BF\u4E00\u89A7"});function scheduleRows(body){envelope(body,"\u652F\u6255\u5148\u30DE\u30B9\u30BF\u4E00\u89A7");return scheduleListPaging.items(body)}function scheduleListQuery(input){const outsourcing=booleanFlag(input,"--outsourcing");return{keyword:nonEmpty(input.flags,"--keyword"),outsourcing_flg:outsourcing===void 0?void 0:outsourcing?"1":"0",active_year_month:yearMonthFlag(input,"--active-month")}}var scheduleListOperation={
86
+ name:"list",summary:"\u652F\u6255\u5148\u30DE\u30B9\u30BF\u3092\u4E00\u89A7\u3059\u308B\uFF08\u652F\u6255\u5148\u540D\u306E\u9806\uFF09",usage:"twp supplier-payment schedule list [--keyword <\u8A9E>] [--outsourcing true|false] [--active-month <\u5E74\u6708>] [--all] [--limit <\u4EF6\u6570>]",description:SCHEDULE_HELP+`
87
+
88
+ --active-month \u306F\u305D\u306E\u6708\u306B\u652F\u6255\u3092\u751F\u6210\u3059\u308B\u30DE\u30B9\u30BF\uFF08\u958B\u59CB\u6708\u301C\u7D42\u4E86\u6708\u306B\u5165\u308B\u3082\u306E\uFF09\u3060\u3051\u3092\u51FA\u3057\u307E\u3059\u3002
89
+ --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${SCHEDULE_LIST_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002
90
+
91
+ `+LIST_PAGING_HELP+"\n \u26A0 \u3053\u306E\u4E00\u89A7\u306F\u30DA\u30FC\u30B8\u756A\u53F7\u3067\u4F4D\u7F6E\u3092\u6307\u5B9A\u3057\u307E\u3059\uFF08--cursor \u306F\u30DA\u30FC\u30B8\u756A\u53F7\u3067\u3059\uFF09\u3002\n \u4E26\u3073\u306F\u30B5\u30FC\u30D0\u304C\u652F\u6255\u5148\u540D\u306E\u9806\uFF08\u540C\u540D\u306F ID \u306E\u9806\uFF09\u306B\u56FA\u5B9A\u3057\u3066\u3044\u307E\u3059\u3002\u8FBF\u3063\u3066\u3044\u308B\u6700\u4E2D\u306B\u30C7\u30FC\u30BF\u304C\u5897\u6E1B\u3059\u308B\u3068\u3001\u53D6\u308A\u3053\u307C\u3057\u30FB\u91CD\u8907\u304C\u8D77\u3053\u308A\u5F97\u307E\u3059\u3002",
92
+ flags:[...PAGE_NUMBER_LIST_FLAGS,{name:"--keyword",summary:"\u652F\u6255\u5148\u540D\u30FB\u5099\u8003\u306E\u8A9E\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u90E8\u5206\u4E00\u81F4\uFF09",takesValue:true,placeholder:"<\u8A9E>"},{name:"--outsourcing",summary:"\u5916\u6CE8\uFF08true\uFF09\u30FB\u5916\u6CE8\u4EE5\u5916\uFF08false\uFF09\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<true|false>"},{name:"--active-month",summary:"\u3053\u306E\u6708\uFF08YYYY-MM\uFF09\u306B\u652F\u6255\u3092\u751F\u6210\u3059\u308B\u30DE\u30B9\u30BF\u3060\u3051",
93
+ takesValue:true,placeholder:"<\u5E74\u6708>"}],paging:scheduleListPaging,forbidden:SCHEDULE_FORBIDDEN,prepare:async input=>{if(input.args.length>0)throw new UsageError(`schedule list \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usageOf("schedule list"));scheduleListQuery(input);pageNumberQuery(input);return input},plan:input=>{const{page_no,page_limit}=pageNumberQuery(input);return{method:"GET",path:SCHEDULE_PATH,query:{...scheduleListQuery(input),
94
+ page_limit,page_no}}},summarize:body=>scheduleRows(body).map(row=>pick(row,SCHEDULE_LIST_COLUMNS)),raw:scheduleRows,notes:body=>{const sum=isRecord(body)?body["sum"]:void 0;return[...pageRangeNotes(body),...typeof sum==="number"?[`\u8A72\u5F53 ${sum} \u4EF6`]:[]]}};var scheduleGetOperation={name:"get",summary:"\u652F\u6255\u5148\u30DE\u30B9\u30BF1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B",usage:"twp supplier-payment schedule get <\u30DE\u30B9\u30BFID>",description:"ID \u306F twp supplier\
95
+ -payment schedule list \u306E id \u5217\u306E\u6570\u5B57\u3067\u3059\u3002",flags:[],forbidden:SCHEDULE_FORBIDDEN,plan:input=>({method:"GET",path:`${SCHEDULE_PATH}/${scheduleId(input,"get")}`}),summarize:body=>pick(recordOf(body,"\u652F\u6255\u5148\u30DE\u30B9\u30BF"),SCHEDULE_GET_COLUMNS),raw:body=>recordOf(body,"\u652F\u6255\u5148\u30DE\u30B9\u30BF")};var SCHEDULE_FIELD_FLAGS=[...PARTY_FLAGS,{name:"--start-month",summary:"\u958B\u59CB\u6708\uFF08YYYY-MM\u30FB\u4F5C\u6210\u3067\u306F\u5FC5\u9808\uFF09",
96
+ takesValue:true,placeholder:"<\u5E74\u6708>"},{name:"--end-month",summary:"\u7D42\u4E86\u6708\uFF08YYYY-MM\u30FB\u305D\u306E\u6708\u307E\u3067\u751F\u6210\u3059\u308B\u3002\u7701\u304F\u3068\u7121\u671F\u9650\uFF09",takesValue:true,placeholder:"<\u5E74\u6708>"}];var SCHEDULE_CLEARABLE={...PARTY_CLEARABLE,"end-month":"end_year_month"};var SCHEDULE_FIELD_HELP=SCHEDULE_HELP+"\n\n"+PARTY_HELP+"\n--user \u3092\u6307\u5B9A\u3057\u3066 --outsourcing \u3092\u7701\u304F\u3068\u3001\u30B5\u30FC\u30D0\u304C\u5916\u6CE8\u3068\u3057\u3066\u6271\u3044\u307E\u3059\u3002\n\u751F\u6210\u3092\u6B62\u3081\u308B\u3068\u304D\u306F --end-month \u3067\u7D42\u4E86\u6708\u3092\u5165\u308C\u307E\u3059\uFF08\u524A\u9664\u3057\u3066\u3082\u751F\u6210\u6E08\u307F\u306E\u652F\u6255\u306F\u6B8B\u308A\u307E\u3059\uFF09\u3002";
97
+ async function scheduleBody(input,ctx,op){const body={};const start=yearMonthFlag(input,"--start-month");if(start!==void 0)body["start_year_month"]=start;const end=yearMonthFlag(input,"--end-month");if(end!==void 0)body["end_year_month"]=end;await partyValues(input,body,usageOf(`schedule ${op}`));if(op==="update")applyClears(input,body,SCHEDULE_CLEARABLE);await partyRefs(input,ctx,body,op==="create");return body}var scheduleCreateOperation={name:"create",summary:"\u652F\u6255\u5148\u30DE\u30B9\u30BF\u3092\u767B\u9332\u3059\u308B\uFF08--supplier-name \u304B --\
98
+ supplier\u30FB--start-month\uFF09",usage:"twp supplier-payment schedule create (--supplier-name <\u652F\u6255\u5148\u540D> | --supplier <\u53D6\u5F15\u5148>) --start-month <\u5E74\u6708> [--end-month <\u5E74\u6708>] [--user <\u30E6\u30FC\u30B6\u30FC>] [--outsourcing true|false] [--project <\u30B3\u30FC\u30C9|ID>] [--memo <\u5099\u8003>]",description:"POST /api/v2/sales/supplier-payment-schedules\u3002\n\n"+SCHEDULE_FIELD_HELP,flags:SCHEDULE_FIELD_FLAGS,forbidden:SCHEDULE_FORBIDDEN,prepare:async(input,ctx)=>{
99
+ if(input.args.length>0)throw new UsageError(`schedule create \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usageOf("schedule create"));const missing=[...input.flags.has("--supplier-name")||input.flags.has("--supplier")?[]:["--supplier-name\uFF08\u304B --supplier\uFF09"],...input.flags.has("--start-month")?[]:["--start-month"]];if(missing.length>0)throw new UsageError(`\u652F\u6255\u5148\u30DE\u30B9\u30BF\u306E\u4F5C\u6210\u306B\u306F ${missing.join(
100
+ " / ")} \u304C\u8981\u308A\u307E\u3059`,usageOf("schedule create"));return withResolved(input,{body:JSON.stringify(await scheduleBody(input,ctx,"create"))})},plan:input=>({method:"POST",path:SCHEDULE_PATH,body:bodyOf(input)}),plannedNotes:input=>{const body=bodyOf(input);return input.flags.has("--supplier-name")||!("supplier_name"in body)?[]:[`\u652F\u6255\u5148\u540D\u306F\u53D6\u5F15\u5148\u306E\u4F01\u696D\u540D\u300C${text(body["supplier_name"])}\u300D\u306B\u3057\u307E\u3059\uFF08--supplier-name \u3067\u5909\u3048\u3089\u308C\u307E\u3059\uFF09`]},
101
+ summarize:body=>pick(recordOf(body,"\u652F\u6255\u5148\u30DE\u30B9\u30BF"),SCHEDULE_WRITE_COLUMNS),raw:body=>recordOf(body,"\u652F\u6255\u5148\u30DE\u30B9\u30BF"),notes:serverMessage};var scheduleUpdateOperation={name:"update",summary:"\u652F\u6255\u5148\u30DE\u30B9\u30BF\u3092\u66F8\u304D\u63DB\u3048\u308B\uFF08\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\uFF09",usage:"twp supplier-payment schedule update <\u30DE\u30B9\u30BFID> [--end-month <\u5E74\u6708>] [--supplier-name <\u652F\u6255\u5148\u540D>] [\u305D\u306E\u4ED6\u306E\u9805\u76EE\u2026] [--clear <\u9805\u76EE>]...",
102
+ description:"PUT /api/v2/sales/supplier-payment-schedules/{id}\u3002\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u9001\u308A\u307E\u3059\u3002\n\u9001\u308B\u524D\u306B\u4ECA\u306E\u30DE\u30B9\u30BF\u3092\u8AAD\u3093\u3067 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002\n\n"+SCHEDULE_FIELD_HELP,flags:[...SCHEDULE_FIELD_FLAGS,{name:"--clear",summary:`\u9805\u76EE\u3092\u7A7A\u306B\u3059\u308B\uFF08${Object.keys(SCHEDULE_CLEARABLE).join(" /\
103
+ ")}\u30FB\u8907\u6570\u56DE\u6307\u5B9A\u3067\u304D\u308B\uFF09`,takesValue:true,placeholder:"<\u9805\u76EE>",repeatable:true}],forbidden:SCHEDULE_FORBIDDEN,prepare:async(input,ctx)=>{const id=scheduleId(input,"update");const body=await scheduleBody(input,ctx,"update");if(Object.keys(body).length===0)throw new UsageError("\u66F8\u304D\u63DB\u3048\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093",usageOf("schedule update"));const schedule=await ctx.resolver.salesRecord("supplier-payment-sch\
104
+ edule",id,"<\u30DE\u30B9\u30BFID>");return withResolved(input,{body:JSON.stringify(body),schedule:JSON.stringify(schedule)})},plan:input=>({method:"PUT",path:`${SCHEDULE_PATH}/${scheduleId(input,"update")}`,body:bodyOf(input)}),plannedNotes:input=>{const body=bodyOf(input);const current=resolvedRecord(input,"schedule");const autoOn=typeof body["supplier_user_id"]==="string"&&!("outsourcing_flg"in body)&&current["outsourcing_flg"]!==true;return[`\u66F8\u304D\u63DB\u3048\u308B\u652F\u6255\u5148\u30DE\u30B9\u30BF: ${describeSchedule(
105
+ current)}`,...autoOn?[" --user \u3092\u6307\u5B9A\u3057\u3066 --outsourcing \u3092\u7701\u3044\u305F\u306E\u3067\u3001\u30B5\u30FC\u30D0\u304C\u5916\u6CE8\u30D5\u30E9\u30B0\u3092 true \u306B\u3057\u307E\u3059\uFF08\u5916\u6CE8\u306B\u3057\u306A\u3044\u306A\u3089 --outsourcing false\uFF09"]:[]]},summarize:body=>pick(recordOf(body,"\u652F\u6255\u5148\u30DE\u30B9\u30BF"),SCHEDULE_WRITE_COLUMNS),raw:body=>recordOf(body,"\u652F\u6255\u5148\u30DE\u30B9\u30BF"),notes:serverMessage};var scheduleDeleteOperation={
106
+ name:"delete",summary:"\u652F\u6255\u5148\u30DE\u30B9\u30BF\u3092\u524A\u9664\u3059\u308B\uFF08\u751F\u6210\u6E08\u307F\u306E\u652F\u6255\u306F\u6B8B\u308B\u30FB--yes \u304C\u8981\u308B\uFF09",usage:"twp supplier-payment schedule delete <\u30DE\u30B9\u30BFID> --yes",description:"DELETE /api/v2/sales/supplier-payment-schedules/{id}\u3002\u7FCC\u6708\u4EE5\u964D\u306E\u652F\u6255\u306E\u751F\u6210\u304C\u6B62\u307E\u308A\u307E\u3059\u3002\n\u751F\u6210\u6E08\u307F\u306E\u652F\u6255\u306F\u4F1A\u8A08\u4E0A\u306E\u5B9F\u7E3E\u306A\u306E\u3067\u6B8B\u308A\u307E\u3059\uFF08\u6D88\u3059\u306A\u3089 twp supplier-payment delete\uFF09\u3002\n\u9001\u308B\u524D\u306B\u5BFE\u8C61\u306E\u30DE\u30B9\u30BF\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--dry-run \u3067\u3082\u51FA\u307E\u3059\uFF09\u3002",
107
+ destructive:true,flags:[],forbidden:SCHEDULE_FORBIDDEN,prepare:async(input,ctx)=>withResolved(input,{schedule:JSON.stringify(await ctx.resolver.salesRecord("supplier-payment-schedule",scheduleId(input,"delete"),"<\u30DE\u30B9\u30BFID>"))}),plan:input=>({method:"DELETE",path:`${SCHEDULE_PATH}/${scheduleId(input,"delete")}`}),plannedNotes:input=>[`\u524A\u9664\u3059\u308B\u652F\u6255\u5148\u30DE\u30B9\u30BF: ${describeSchedule(resolvedRecord(input,"schedule"))}`," \u751F\u6210\u6E08\u307F\u306E\u652F\u6255\u306F\u6B8B\u308A\u307E\u3059"],
108
+ summarize:body=>acknowledgement(body,"\u652F\u6255\u5148\u30DE\u30B9\u30BF\u524A\u9664"),raw:body=>acknowledgement(body,"\u652F\u6255\u5148\u30DE\u30B9\u30BF\u524A\u9664")};var scheduleResource={name:"schedule",summary:"\u652F\u6255\u5148\u30DE\u30B9\u30BF\uFF08\u6BCE\u6708\u767A\u751F\u3059\u308B\u652F\u6255\u306E\u8A2D\u5B9A\u3002\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u767B\u9332\u30FB\u66F4\u65B0\u30FB\u524A\u9664\uFF09",operations:[scheduleListOperation,scheduleGetOperation,scheduleCreateOperation,
109
+ scheduleUpdateOperation,scheduleDeleteOperation]};var supplierPaymentDomain={name:"supplier-payment",summary:"\u8CA9\u58F2\u7BA1\u7406\u306E\u652F\u6255\uFF08\u4ED5\u5165\u5148\u3078\u6255\u3046\u51FA\u91D1\u53F0\u5E33\u3002\u6CE8\u6587\u66F8\u306E twp purchase\u30FB\u5165\u91D1\u306E\u632F\u8FBC\u5148\u3068\u306F\u5225\u3002\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u767B\u9332\u30FB\u66F4\u65B0\u30FB\u524A\u9664\u30FB\u30B9\u30C6\u30FC\u30BF\u30B9\u306E\u4E00\u62EC\u5909\u66F4\u30FB\u652F\u6255\u5148\u30DE\u30B9\u30BF\u3002\u8CA9\u58F2\u7BA1\u7406\u306E\u7BA1\u7406\u8005\uFF09",
110
+ operations:[listOperation,getOperation,createOperation,updateOperation,deleteOperation,setStatusOperation],subresources:[scheduleResource]};export{describePayment,parseStatusIds,supplierPaymentDomain};
@@ -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-VECUCVIY.js";import"./chunk-DDKZ5IPT.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-MHRGKUMK.js";import{charCount,readBody}from"./chunk-HGTG5XQ7.js";import{repeatedValues}from"./chunk-IOGVQVGD.js";import{boundedText,decimal,isoDate,priority}from"./chunk-UDPJ2IGK.js";
4
- import{PRIVATE_TASKS_PATH,TASK_MASTERS}from"./chunk-ELXDRPDV.js";import"./chunk-IF2K4PM5.js";import{UUID_RE,isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import{PRIVATE_PROJECT_REF}from"./chunk-GY7KI5E5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-5R4SEO3I.js";import"./chunk-II5RVJQN.js";
5
- import{requireResolved,singleRef,withResolved}from"./chunk-ZN5EFDH7.js";import{acknowledgement,isRecord,pick}from"./chunk-ZWVYVS2A.js";import{ApiResponseError,UsageError}from"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";var LIST_COLUMNS=["id","created_at","created_by_name","comment_type","content"];var QUESTION_COLUMN="question";var ANSWER_COLUMN="answer";function summarizeComments(items){const answersByQuestion=new Map;for(const row of items){const answer=isRecord(row)?row["answer_to"]:void 0;if(!isRecord(answer))continue;const target=answer["comment_id"];if(typeof target!=="string"||target==="")continue;answersByQuestion.set(target,selectedKeyText(answer["selected_key"]))}return items.map(row=>{const source=isRecord(
3
+ import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-BPCK5RAB.js";import{PROJECT_FLAG,TASK_REF_FLAG,TASK_REF_HELP,classifyTaskRef,rejectPrivateSurface,rejectRedundantProject,resolveTaskLocation,taskAttachmentResource,taskSurface,wantsPrivateSurface}from"./chunk-PKWMJIBM.js";import"./chunk-DDKZ5IPT.js";import{charCount,readBody}from"./chunk-HGTG5XQ7.js";import{repeatedValues}from"./chunk-IOGVQVGD.js";import{boundedText,decimal,isoDate,priority}from"./chunk-UDPJ2IGK.js";
4
+ import{PRIVATE_TASKS_PATH,TASK_MASTERS}from"./chunk-BZAXQOLB.js";import"./chunk-IF2K4PM5.js";import{UUID_RE,isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";import{PRIVATE_PROJECT_REF}from"./chunk-GY7KI5E5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-5R4SEO3I.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-ZN5EFDH7.js";
5
+ import{acknowledgement,isRecord,pick}from"./chunk-ZWVYVS2A.js";import{ApiResponseError,UsageError}from"./chunk-7WSNIXTQ.js";import"./chunk-J7QYPKVK.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LIST_COLUMNS=["id","created_at","created_by_name","comment_type","content"];var QUESTION_COLUMN="question";var ANSWER_COLUMN="answer";function summarizeComments(items){const answersByQuestion=new Map;for(const row of items){const answer=isRecord(row)?row["answer_to"]:void 0;if(!isRecord(answer))continue;const target=answer["comment_id"];if(typeof target!=="string"||target==="")continue;answersByQuestion.set(target,selectedKeyText(answer["selected_key"]))}return items.map(row=>{const source=isRecord(
6
6
  row)?row:{};const id=typeof source["id"]==="string"?source["id"]:"";const answer=isRecord(source["answer_to"])?selectedKeyText(source["answer_to"]["selected_key"]):answersByQuestion.get(id)??null;const base=pick(row,LIST_COLUMNS);return{id:base["id"],created_at:base["created_at"],created_by_name:base["created_by_name"],comment_type:base["comment_type"],[QUESTION_COLUMN]:questionText(source["question"]),[ANSWER_COLUMN]:answer,content:base["content"]}})}function questionText(question){if(!isRecord(
7
7
  question))return null;const options=question["options"];if(!Array.isArray(options))return null;const parts=options.map(option=>{if(!isRecord(option))return null;const key=typeof option["key"]==="string"?option["key"]:null;if(key===null)return null;const label=typeof option["label"]==="string"?option["label"]:"";return label===""?key:`${key}=${label}`}).filter(part=>part!==null);return parts.length===0?null:parts.join(" / ")}function selectedKeyText(selected){if(typeof selected==="string"&&selected!==
8
8
  "")return selected;if(Array.isArray(selected)){const keys=selected.filter(key=>typeof key==="string"&&key!=="");if(keys.length>0)return keys.join(",")}return"(\u81EA\u7531\u8A18\u8FF0)"}var WRITE_COLUMNS=["id","task_id","created_at","updated_at","created_by_name","content"];var CONTENT_MAX_CHARS=1e4;var QUESTION_MAX_CHARS=2e3;var CONTENT_HTML_MAX_CHARS=1e5;var OPTION_KEY_MAX_CHARS=10;var OPTION_LABEL_MAX_CHARS=200;var OPTION_MIN=1;var OPTION_MAX=5;var SELECTED_KEY_MAX_CHARS=10;var listPaging=envelopePaging(
@@ -0,0 +1,3 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{fetchLatestVersion,isBehindLatest,runUpdate}from"./chunk-LNZTJI64.js";import"./chunk-6QOT7CHX.js";import"./chunk-D233KKXW.js";import"./chunk-XNLIEUAW.js";import"./chunk-YM7TKMNO.js";import"./chunk-DXXFUNYN.js";import"./chunk-4VZKNEVN.js";import"./chunk-PMOUHEJQ.js";import"./chunk-J7QYPKVK.js";import"./chunk-5WGOHFAS.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{USER_REF_FLAG,USER_REF_HELP,prepareUser,userPath}from"./chunk-2M2JQ23W.js";import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-MHRGKUMK.js";import{decodeCsvText,readCsvFileText}from"./chunk-I6DWJXPC.js";import{repeatedValues}from"./chunk-IOGVQVGD.js";import{booleanText,boundedText,isoDate,isoDateValue}from"./chunk-UDPJ2IGK.js";import{DEPARTMENTS_PATH,ORG_MASTER_LIMIT,POSITIONS_PATH}from"./chunk-ELXDRPDV.js";import{ApiError}from"./chunk-IF2K4PM5.js";
4
- import{ResolveError,isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,flagSegment,nonEmpty,positiveInteger,shellQuote}from"./chunk-5R4SEO3I.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-ZN5EFDH7.js";import{isRecord,pick}from"./chunk-ZWVYVS2A.js";
5
- import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";import fs2 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")}
3
+ import{USER_REF_FLAG,USER_REF_HELP,prepareUser,userPath}from"./chunk-2M2JQ23W.js";import{createFlags,fieldBody,hasAnyField,resolveRefFields,updateFlags}from"./chunk-BPCK5RAB.js";import{decodeCsvText,readCsvFileText}from"./chunk-I6DWJXPC.js";import{repeatedValues}from"./chunk-IOGVQVGD.js";import{booleanText,boundedText,isoDate,isoDateValue}from"./chunk-UDPJ2IGK.js";import{DEPARTMENTS_PATH,ORG_MASTER_LIMIT,POSITIONS_PATH}from"./chunk-BZAXQOLB.js";import{ApiError}from"./chunk-IF2K4PM5.js";
4
+ import{ResolveError,isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,flagSegment,nonEmpty,positiveInteger,shellQuote}from"./chunk-5R4SEO3I.js";import"./chunk-II5RVJQN.js";import{requireResolved,singleRef,withResolved}from"./chunk-ZN5EFDH7.js";import{isRecord,pick}from"./chunk-ZWVYVS2A.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-7WSNIXTQ.js";
5
+ import"./chunk-J7QYPKVK.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs2 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")}
6
6
  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\
7
7
  \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.
8
8
  message}\uFF09\u3002ID \u306F --output json \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002`);return{}}}function assignmentPlan(input){const suffix=input.flags.has("--current")?"/assignments/current":"/assignments";return{method:"GET",path:`/api/v2/organization/users/${userPath(input,suffix)}`}}var listOperation={name:"list",summary:"\u30E6\u30FC\u30B6\u30FC\u306E\u6240\u5C5E\u306E\u5C65\u6B74\u3092\u4E00\u89A7\u3059\u308B",usage:"twp user assignment list <\u30E6\u30FC\u30B6\u30FC> [--current]",
@@ -0,0 +1,4 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{applyInstancePlan,createInstancePlan,formColumns,parseInstanceContent,workflowDomain,writtenInstance}from"./chunk-X5IVIOGL.js";import"./chunk-HGTG5XQ7.js";import"./chunk-BZAXQOLB.js";import"./chunk-IF2K4PM5.js";import"./chunk-GMBJTG6A.js";import"./chunk-4VZKNEVN.js";import"./chunk-5R4SEO3I.js";import"./chunk-II5RVJQN.js";import"./chunk-ZN5EFDH7.js";import"./chunk-ZWVYVS2A.js";import"./chunk-7WSNIXTQ.js";import"./chunk-J7QYPKVK.js";
4
+ import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{applyInstancePlan,createInstancePlan,formColumns,parseInstanceContent,workflowDomain,writtenInstance};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tocca-systems/twp-cli",
3
- "version": "0.39.0",
3
+ "version": "0.41.0",
4
4
  "description": "TWP CLI — Tocca Working Platform の CLI 型統合インターフェース(AIエージェントハーネス)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,15 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{httpFetch}from"./chunk-J7QYPKVK.js";import{isPrivateProjectId}from"./chunk-GY7KI5E5.js";function describeError(res){if(res.status===null)return`transport_error=${res.transportError??"\u4E0D\u660E"}`;const body=res.json;const parts=[`http=${res.status}`];const reason=typeof body?.["reason"]==="string"?body["reason"]:"";if(reason)parts.push(`reason=${reason}`);const error=body?.["error"];const code=typeof error?.["code"]==="string"?error["code"]:"";if(code)parts.push(`code=${code}`);const message=(typeof body?.["message"]==="string"?body["message"]:"")||(typeof error?.["message"]==="\
4
- string"?error["message"]:"");if(message)parts.push(message.slice(0,160));if(!reason&&!code&&!message)parts.push(`\u5FDC\u7B54\u306E\u5148\u982D: ${res.raw.slice(0,160)}`);return parts.join(" ")}function isPermanent(res){return res.status!==null&&res.status>=400&&res.status<500}function filterByStatus(items,status){return items.filter(item=>item.status===void 0||item.status===status)}var AgentLoopApi=class{constructor(opts){this.opts=opts;const root=opts.apiUrl.replace(/\/+$/,"");this.base=isPrivateProjectId(
5
- opts.projectId)?`${root}/api/v2/tasks/private/agent-loop`:`${root}/api/v2/projects/${opts.projectId}/agent-loop`}opts;base;get baseUrl(){return this.base}list(query){const qs=new URLSearchParams;for(const[k,v]of Object.entries(query)){if(v!==void 0&&v!=="")qs.set(k,String(v))}const suffix=qs.toString()?`?${qs.toString()}`:"";return this.request("GET",suffix)}create(body){return this.request("POST","",body)}getItem(itemId){return this.request("GET",`/${encodeURIComponent(itemId)}`)}update(itemId,body,runId){
6
- return this.request("PUT",`/${encodeURIComponent(itemId)}`,{...body,run_id:runId})}updateUnowned(itemId,body){return this.request("PUT",`/${encodeURIComponent(itemId)}`,body)}logUploadUrl(itemId,runId){return this.request("POST",`/${encodeURIComponent(itemId)}/log-upload-url`,{run_id:runId})}async putPresigned(url,body,contentType){const fetchImpl=this.opts.fetchImpl??httpFetch;const controller=new AbortController;const timer=setTimeout(()=>controller.abort(),this.opts.timeoutMs??6e4);try{const res=await fetchImpl(
7
- url,{method:"PUT",headers:{"Content-Type":contentType},signal:controller.signal,body});await res.text().catch(()=>"");return{ok:res.ok,status:res.status,json:null,raw:"",transportError:null}}catch(err){const reason=err.name==="AbortError"?"timeout":err.message;return{ok:false,status:null,json:null,raw:"",transportError:reason}}finally{clearTimeout(timer)}}reorder(itemIds){return this.request("PUT","/reorder",{item_ids:itemIds})}claim(runnerId,runId){return this.request("POST","/claim",{runner_id:runnerId,
8
- run_id:runId})}reclaim(){return this.request("POST","/reclaim",{})}runners(){return this.request("GET","/runners")}registerRunner(payload){return this.request("POST","/runners/register",payload)}heartbeatRunner(payload){return this.request("POST","/runners/heartbeat",payload)}deregisterRunner(payload){return this.request("POST","/runners/deregister",payload)}planStart(runnerId,runId){return this.request("POST","/plan/start",{runner_id:runnerId,run_id:runId})}planFinish(runnerId,runId,planStartedAt,result){
9
- return this.request("POST","/plan/finish",{runner_id:runnerId,run_id:runId,plan_started_at:planStartedAt,result})}consumeCounter(key,date,limit){return this.request("POST","/counters/consume",{key,date,limit})}listCounters(date){return this.request("GET",`/counters?date=${encodeURIComponent(date)}`)}async queuedSnapshot(){return this.snapshotOf(["pending","processing"])}async processingSnapshot(){return this.snapshotOf(["processing"])}async pendingSnapshot(){return this.snapshotOf(["pending"])}async completedSince(sinceMicros,maxPages=10){
10
- const all=[];let cursor=String(Math.trunc(sinceMicros));for(let page=0;page<maxPages;page++){const res=await this.list({status:"completed",limit:100,cursor});if(!res.ok)return null;const body=res.json;const items=body?.["items"];if(!Array.isArray(items))return null;all.push(...filterByStatus(items,"completed"));const pagination=body?.["pagination"];const hasMore=(pagination?.["has_more"]??body?.["has_more"])===true;const next=pagination?.["next_cursor"]??body?.["next_cursor"];if(!hasMore||!next)
11
- return all;cursor=next}return null}async snapshotOf(statuses){const all=[];for(const status of statuses){let cursor;for(let page=0;page<20;page++){const res=await this.list({status,limit:100,cursor});if(!res.ok)return null;const body=res.json;const items=body?.["items"];if(!Array.isArray(items))return null;all.push(...filterByStatus(items,status));const pagination=body?.["pagination"];const hasMore=(pagination?.["has_more"]??body?.["has_more"])===true;const next=pagination?.["next_cursor"]??body?.["\
12
- next_cursor"];if(!hasMore||!next)break;cursor=next;if(page===19)return null}}return all}async request(method,suffix,body){let token;try{token=await this.opts.session.getAccessToken()}catch(err){return{ok:false,status:null,json:null,raw:"",transportError:err.message}}let res=await this.send(method,suffix,token,body);if(res.status===401){try{token=await this.opts.session.refresh(token);res=await this.send(method,suffix,token,body)}catch(err){return{ok:false,status:401,json:null,raw:res.raw,transportError:err.
13
- message}}}return res}async send(method,suffix,token,body){const fetchImpl=this.opts.fetchImpl??httpFetch;const controller=new AbortController;const timer=setTimeout(()=>controller.abort(),this.opts.timeoutMs??6e4);try{const res=await fetchImpl(`${this.base}${suffix}`,{method,headers:{Authorization:`Bearer ${token}`,"Content-Type":"application/json",Accept:"application/json"},signal:controller.signal,...body===void 0?{}:{body:JSON.stringify(body)}});const raw=await res.text();let json=null;if(raw.
14
- trim()!==""){try{json=JSON.parse(raw)}catch{json=null}}return{ok:res.ok,status:res.status,json,raw,transportError:null}}catch(err){const reason=err.name==="AbortError"?"timeout":err.message;return{ok:false,status:null,json:null,raw:"",transportError:reason}}finally{clearTimeout(timer)}}};function pick(json,path){let cur=json;for(const part of path.split(".")){if(cur===null||typeof cur!=="object")return void 0;cur=cur[part]}return cur===null?void 0:cur}function pickString(json,path){const v=pick(
15
- json,path);if(typeof v==="string")return v;if(typeof v==="number")return String(v);if(typeof v==="boolean")return v?"true":"false";return""}export{describeError,isPermanent,filterByStatus,AgentLoopApi,pick,pickString};
@@ -1,7 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- var LOADERS={"agent-loop":async()=>(await import("./agent-loop-4U5RLC4L.js")).agentLoopDomain,attendance:async()=>(await import("./attendance-5KE2JPK4.js")).attendanceDomain,backlog:async()=>(await import("./backlog-67JSQYOH.js")).backlogDomain,company:async()=>(await import("./company-3KUWW7QA.js")).companyDomain,contract:async()=>(await import("./contract-FGRHTOGI.js")).contractDomain,customer:async()=>(await import("./company-3KUWW7QA.js")).customerDomain,department:async()=>(await import("./department-PN5DCCRL.js")).
4
- departmentDomain,deposit:async()=>(await import("./deposit-XQER6PMG.js")).depositDomain,estimate:async()=>(await import("./estimate-IXBEQVGI.js")).estimateDomain,inquiry:async()=>(await import("./inquiry-3VOJASJH.js")).inquiryDomain,invoice:async()=>(await import("./invoice-KY3BYTHQ.js")).invoiceDomain,"job-title":async()=>(await import("./job-title-EM6RKGQ6.js")).jobTitleDomain,leave:async()=>(await import("./leave-D2S7NMJC.js")).leaveDomain,media:async()=>(await import("./media-SQVQVX2E.js")).
5
- mediaDomain,meeting:async()=>(await import("./knowledge-F4FZ4MLH.js")).meetingDomain,note:async()=>(await import("./knowledge-F4FZ4MLH.js")).noteDomain,notification:async()=>(await import("./notification-NTFUPUMY.js")).notificationDomain,position:async()=>(await import("./position-D52LXRDT.js")).positionDomain,project:async()=>(await import("./project-ZGOB5W25.js")).projectDomain,prospect:async()=>(await import("./prospect-AQ7EUU4N.js")).prospectDomain,receivable:async()=>(await import("./receivable-AE44YIJO.js")).
6
- receivableDomain,report:async()=>(await import("./report-TI2DOJGX.js")).reportDomain,shift:async()=>(await import("./attendance-lists-MXQNWUIH.js")).shiftDomain,storage:async()=>(await import("./storage-ANKKJJJO.js")).storageDomain,task:async()=>(await import("./task-VKVZSF7J.js")).taskDomain,user:async()=>(await import("./user-KEFI7XZI.js")).userDomain,wiki:async()=>(await import("./knowledge-F4FZ4MLH.js")).wikiDomain,workchange:async()=>(await import("./attendance-lists-MXQNWUIH.js")).
7
- workchangeDomain,workflow:async()=>(await import("./workflow-4FHTOQZZ.js")).workflowDomain};async function loadDomain(name){return LOADERS[name]()}export{loadDomain};
@@ -1,3 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- var DOMAIN_NAMES=["agent-loop","attendance","backlog","company","contract","customer","department","deposit","estimate","inquiry","invoice","job-title","leave","media","meeting","note","notification","position","project","prospect","receivable","report","shift","storage","task","user","wiki","workchange","workflow"];function isDomainName(value){return value!==void 0&&DOMAIN_NAMES.includes(value)}var HELP_TOKEN="help";var API_TOKEN="api";export{DOMAIN_NAMES,isDomainName,HELP_TOKEN,API_TOKEN};
@@ -1,13 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{extractLeadingTaskKey}from"./chunk-II5RVJQN.js";var LEDGER_TASK_KEY_MAX=50;var CONTROL_CHAR_RE=/[\u0000-\u001f\u007f]/;var FLAG_TOKEN_RE=/(?:^|\s)-/;function loosen(source){let t=source.replace(/^[ \t]*\/\/[^\n]*$/gm,"");t=t.replace(/\/\*[\s\S]*?\*\//g,"");t=t.replace(/,(\s*[}\]])/g,"$1");return t===source?null:t}function tryParsePlan(source){for(const candidate of[source,loosen(source)]){if(candidate===null)continue;try{const obj=JSON.parse(candidate);if(obj!==null&&typeof obj==="object"&&Array.isArray(obj.steps)){return obj}}catch{}}return null}
4
- function fencedBlocks(text,tag){const re=new RegExp("```"+tag+"\\s*\\n([\\s\\S]*?)\\n```","g");const out=[];for(const m of text.matchAll(re)){if(m[1]!==void 0)out.push(m[1])}return out}function extractGeminiEnvelope(text){const anchor=/\{[^{}]*"session_id"[^{}]*"response"\s*:\s*"/g;for(const m of text.matchAll(anchor)){const start=m.index;if(start===void 0)continue;let depth=0;let inStr=false;let escape=false;for(let i=start;i<text.length;i++){const c=text[i];if(escape){escape=false;continue}if(c===
5
- "\\"){escape=true;continue}if(c==='"'){inStr=!inStr;continue}if(inStr)continue;if(c==="{")depth++;else if(c==="}"){depth--;if(depth===0){try{const obj=JSON.parse(text.slice(start,i+1));if(obj!==null&&typeof obj==="object"&&typeof obj.response==="string"){return obj.response}}catch{}break}}}}return null}function extractPlanJson(rawText){const text=rawText.replace(/^\s*\[\d{2}:\d{2}:\d{2}\]\s*/gm,"");for(const tag of["json:execution-plan","json"]){for(const block of fencedBlocks(text,tag).reverse()){
6
- const plan=tryParsePlan(block);if(plan)return plan}}const resp=extractGeminiEnvelope(text);if(resp!==null){for(const block of[...fencedBlocks(resp,"json:execution-plan"),...fencedBlocks(resp,"json")].reverse()){const plan2=tryParsePlan(block);if(plan2)return plan2}const plan=tryParsePlan(resp);if(plan)return plan}const whole=tryParsePlan(text.trim());if(whole)return whole;for(const m of[...text.matchAll(/\{[^{}]*"steps"[^{}]*\[[\s\S]*?\][\s\S]*?\}/g)].reverse()){const plan=tryParsePlan(m[0]);if(plan)
7
- return plan}return null}function ledgerTaskKey(args){const key=extractLeadingTaskKey(args);if(key.length>LEDGER_TASK_KEY_MAX)return"";if(CONTROL_CHAR_RE.test(key))return"";if(FLAG_TOKEN_RE.test(key))return"";return key}function placeholderTaskKey(args){for(const token of args.split(/\s+/)){if(token==="")continue;if(token.startsWith("-"))continue;const m=/^[A-Z]{2,}[A-Z0-9]*-([A-Za-z0-9_<>{}]*)$/.exec(token);if(!m)return null;if(/^\d+$/.test(m[1]??""))return null;return token}return null}function stepToItem(step,assign){
8
- const skill=typeof step.skill==="string"?step.skill.trim():"";if(!skill)return null;const args=(step.args??"").trim();const priority=step.priority??"P2";const prompt=`/twp-${skill}${args?` ${args}`:""}`;let label=(step.label??"").trim();if(!label||label.startsWith("/twp-")||label.startsWith("[P"))label=prompt;const taskKey=ledgerTaskKey(args);const category=assign?.categoryForSkill(skill)??step.ai_category??"complex";const display=taskKey&&!label.includes(taskKey)?`[${priority}] ${taskKey} ${label}\
9
- #ai:${category}`:`[${priority}] ${label} #ai:${category}`;const item={label:display.slice(0,200),prompt,task_key:taskKey};if(assign!==void 0){const ai=assign.selectPrimary(category,skill,priority,display);if(ai!=="")item.ai_type=ai}return item}function parsePlanExcludeKeys(prefetchSection){const m=/OPS_PLAN_EXCLUDE_KEYS\s+([^\s]*)\s+-->/.exec(prefetchSection);const keys=new Set;if(!m||!m[1])return keys;for(const raw of m[1].split(",")){const key=raw.trim();if(key!=="")keys.add(key)}return keys}
10
- function excludedKeyInArgs(args,excluded){if(excluded.size===0)return null;for(const key of[...excluded].sort()){const re=new RegExp(`(?<![A-Za-z0-9-])${key.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?![0-9])`);if(re.test(args))return key}return null}function parseOpsCount(prefetchSection,field){const marker=/OPS_COUNTS\s+([^>]*?)-->/.exec(prefetchSection);if(!marker||!marker[1])return null;const escaped=field.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");const hit=new RegExp(`(?:^|\\s)${escaped}=(-?\\d+)(?:\
11
- \\s|$)`).exec(marker[1]);if(!hit||hit[1]===void 0)return null;const n=Number.parseInt(hit[1],10);if(!Number.isFinite(n)||n<0)return null;return n}function releaseDeployDropReason(verifyBacklog,devVerifyPlanned){if(verifyBacklog===null){return"\u52D5\u4F5C\u78BA\u8A8D\u306E\u4EF6\u6570\u3092\u53D6\u5F97\u3067\u304D\u306A\u304B\u3063\u305F\uFF08\u5224\u5B9A\u4E0D\u80FD\u306E\u305F\u3081\u30EA\u30EA\u30FC\u30B9\u306F\u898B\u9001\u308B\uFF09"}if(verifyBacklog>devVerifyPlanned){return`\u52D5\u4F5C\u78BA\u8A8D${verifyBacklog}\
12
- \u4EF6 > \u8A08\u753B\u5185dev-verify${devVerifyPlanned}\u4EF6\uFF08Phase 1\u306E0\u4EF6\u898B\u8FBC\u307F\u304C\u7ACB\u305F\u306A\u3044\uFF09`}return null}function duplicateTaskKeyDropReason(enqueuedKeys,taskKey){if(!taskKey)return null;if(!enqueuedKeys.has(taskKey))return null;return`${taskKey} \u306F\u672C\u8A08\u753B\u3067\u65E2\u306B\u6295\u5165\u6E08\u307F\uFF08\u540C\u4E00\u30AD\u30FC\u306F1\u8A08\u753B1\u4EF6\uFF09`}var NO_ZERO_TARGET_GATES={};function zeroTargetDropReasons(prefetchSection,gates=NO_ZERO_TARGET_GATES){
13
- const reasons=new Map;for(const[skill,gate]of Object.entries(gates)){const n=parseOpsCount(prefetchSection,gate.field);if(n===null)reasons.set(skill,`${gate.label}\u4EF6\u6570\u304C\u5224\u5B9A\u4E0D\u80FD\u306E\u305F\u3081\u898B\u9001\u308A`);else if(n===0)reasons.set(skill,`${gate.label}0\u4EF6\u306E\u305F\u3081\u5BFE\u8C61\u306A\u3057`)}return reasons}export{extractPlanJson,placeholderTaskKey,stepToItem,parsePlanExcludeKeys,excludedKeyInArgs,parseOpsCount,releaseDeployDropReason,duplicateTaskKeyDropReason,zeroTargetDropReasons};
@@ -1,4 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{depositDomain,depositIdArg,describeDeposit,parseAllocationRows,parsePlanBody,planSkeleton,salesAdminForbidden}from"./chunk-QDTYD5PY.js";import"./chunk-I6DWJXPC.js";import"./chunk-HGTG5XQ7.js";import"./chunk-RZ54TCQU.js";import"./chunk-IOGVQVGD.js";import"./chunk-UDPJ2IGK.js";import"./chunk-ELXDRPDV.js";import"./chunk-IF2K4PM5.js";import"./chunk-GMBJTG6A.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-QQRJLH6B.js";
4
- import"./chunk-NHYMHCAT.js";import"./chunk-5R4SEO3I.js";import"./chunk-II5RVJQN.js";import"./chunk-ZN5EFDH7.js";import"./chunk-ZWVYVS2A.js";import"./chunk-7WSNIXTQ.js";import"./chunk-RZVI6PMW.js";import"./chunk-VSJBJXZO.js";export{depositDomain,depositIdArg,describeDeposit,parseAllocationRows,parsePlanBody,planSkeleton,salesAdminForbidden};