@tocca-systems/twp-cli 0.55.0 → 0.57.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 +12 -0
- package/README.md +4 -0
- package/dist/{agent-loop-KBQJP5E7.js → agent-loop-NBO56BVW.js} +1 -1
- package/dist/{announcement-4PDYMC6K.js → announcement-XUSEK5U5.js} +1 -1
- package/dist/{api-command-YCIZ37HT.js → api-command-YXBOMOZI.js} +1 -1
- package/dist/{app-EEHQ46DG.js → app-LWBXSF2X.js} +1 -1
- package/dist/{chunk-GIUINGC7.js → chunk-2V6VC7TP.js} +1 -1
- package/dist/{chunk-Q76QFEF3.js → chunk-7B7XNTQG.js} +1 -1
- package/dist/{chunk-A576CQJW.js → chunk-BO2E5QLR.js} +26 -16
- package/dist/{chunk-B7GUZW6Z.js → chunk-C6Y4RZRV.js} +1 -1
- package/dist/{chunk-OTIR4GES.js → chunk-JJSBBWJ5.js} +3 -2
- package/dist/{chunk-X2P7N7WO.js → chunk-KC32JLWM.js} +1 -1
- package/dist/{chunk-HG7UEH3L.js → chunk-KVVZLW4M.js} +1 -1
- package/dist/{chunk-QL2YKREQ.js → chunk-NRZRMRHC.js} +1 -1
- package/dist/{chunk-HIJQJXRB.js → chunk-OSEU4WMN.js} +1 -1
- package/dist/{chunk-QGX7L6HN.js → chunk-PBFQYQ5U.js} +1 -1
- package/dist/{chunk-VOMCTG6N.js → chunk-PCSADROQ.js} +24 -12
- package/dist/{chunk-5M7QCXPY.js → chunk-PW5VCZFO.js} +1 -1
- package/dist/{chunk-ASHN4KFF.js → chunk-QMPIZUIP.js} +1 -1
- package/dist/{chunk-N33PUUKC.js → chunk-SCSHU6AD.js} +1 -1
- package/dist/{chunk-A56FFATZ.js → chunk-SXL56YBX.js} +1 -1
- package/dist/{chunk-3UYVUEV4.js → chunk-VYRAYNLN.js} +1 -1
- package/dist/chunk-W4ZNTG2U.js +10 -0
- package/dist/{chunk-P7LUVC3J.js → chunk-W7MH3UZU.js} +1 -1
- package/dist/cli.js +11 -7
- package/dist/{commands-RYRSKDXJ.js → commands-54B7JHG2.js} +38 -39
- package/dist/{commands-L6ADDE5N.js → commands-F356Y767.js} +1 -1
- package/dist/{company-RRWGDHKO.js → company-X3YPG74Q.js} +2 -2
- package/dist/{contract-6CR57KCS.js → contract-ZY3QNCID.js} +1 -1
- package/dist/{department-JF7KTFQX.js → department-7J5KTQZJ.js} +1 -1
- package/dist/{deposit-KXGMK66O.js → deposit-HCKDUA65.js} +1 -1
- package/dist/{estimate-ONS2KBM7.js → estimate-EZCSRLYO.js} +2 -2
- package/dist/{expense-32QOHO6C.js → expense-HIKAFPVU.js} +1 -1
- package/dist/{inquiry-PAPJCGKO.js → inquiry-WYKKBCHW.js} +1 -1
- package/dist/{invoice-RJ7M2FY2.js → invoice-HZHXDGQZ.js} +1 -1
- package/dist/{job-title-B7VMIZ2H.js → job-title-WK4BDKTR.js} +1 -1
- package/dist/{knowledge-YPXOGA2U.js → knowledge-M66MLEBK.js} +1 -1
- package/dist/{leave-4AFSQ2IP.js → leave-4HMJLQN3.js} +1 -1
- package/dist/{logout-guard-7DAWGOM3.js → logout-guard-DJMJ56SG.js} +1 -1
- package/dist/{media-HMYE2TR7.js → media-J6IUSINE.js} +1 -1
- package/dist/{notification-CMWQ6JZQ.js → notification-SYJTTXSI.js} +1 -1
- package/dist/{position-IKF3SR3O.js → position-75ROWDVG.js} +1 -1
- package/dist/{project-WHVEIPH5.js → project-6KSUMEIF.js} +1 -1
- package/dist/{prospect-STAA2UPR.js → prospect-DJ4MFIZY.js} +1 -1
- package/dist/{purchase-VCAMBAW7.js → purchase-5SJZU2KT.js} +2 -2
- package/dist/{receivable-6A2OVBZN.js → receivable-SHTDOH3W.js} +1 -1
- package/dist/{registry-DZH6EYRY.js → registry-BGZNCBXO.js} +1 -1
- package/dist/{run-NR7KO6GU.js → run-WZ4SZIDK.js} +1 -1
- package/dist/{sales-ai-review-7U2EBEYX.js → sales-ai-review-IAVWJKGN.js} +1 -1
- package/dist/{sales-master-E2LDMJIC.js → sales-master-34WGDVJ6.js} +1 -1
- package/dist/{sales-numbering-E53EMSMI.js → sales-numbering-QIJFMZE5.js} +1 -1
- package/dist/{server-settings-6NHVHMPS.js → server-settings-2M63F3KB.js} +1 -1
- package/dist/{setup-SIL2ELR4.js → setup-SO3H4TDI.js} +1 -1
- package/dist/{supplier-payment-HQQVWIQW.js → supplier-payment-CY6WLM6K.js} +1 -1
- package/dist/{support-I2QTNQTP.js → support-MJVYAJC4.js} +1 -1
- package/dist/{task-RZBH4I6U.js → task-T5KHMSQH.js} +19 -18
- package/dist/{user-XTQNSWP4.js → user-H56QMSUZ.js} +1 -1
- package/dist/{workflow-TRHRVMUK.js → workflow-MQGTXTAW.js} +1 -1
- package/package.json +1 -1
- package/dist/chunk-FNKRVPMV.js +0 -10
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
|
+
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
+
var LOADERS={agent:async()=>(await import("./agent-QFI6UOVQ.js")).agentDomain,"agent-loop":async()=>(await import("./agent-loop-NBO56BVW.js")).agentLoopDomain,"ai-review-reason":async()=>(await import("./sales-ai-review-IAVWJKGN.js")).aiReviewReasonDomain,analysis:async()=>(await import("./analysis-MWPZKAUA.js")).analysisDomain,announcement:async()=>(await import("./announcement-XUSEK5U5.js")).announcementDomain,attendance:async()=>(await import("./attendance-correct-CSAET72A.js")).attendanceDomainWithRecords,
|
|
4
|
+
backlog:async()=>(await import("./backlog-YQKUID7L.js")).backlogDomain,budget:async()=>(await import("./budget-WKPD5GPG.js")).budgetDomain,"business-place":async()=>(await import("./sales-master-34WGDVJ6.js")).businessPlaceDomain,company:async()=>(await import("./company-X3YPG74Q.js")).companyDomain,contract:async()=>(await import("./contract-ZY3QNCID.js")).contractDomain,customer:async()=>(await import("./company-X3YPG74Q.js")).customerDomain,department:async()=>(await import("./department-7J5KTQZJ.js")).
|
|
5
|
+
departmentDomain,deposit:async()=>(await import("./deposit-HCKDUA65.js")).depositDomain,estimate:async()=>(await import("./estimate-EZCSRLYO.js")).estimateDomain,evaluation:async()=>(await import("./evaluation-GKSJ5ZHU.js")).evaluationDomain,expense:async()=>(await import("./expense-HIKAFPVU.js")).expenseDomain,"goal-sheet":async()=>(await import("./evaluation-GKSJ5ZHU.js")).goalSheetDomain,inquiry:async()=>(await import("./inquiry-WYKKBCHW.js")).inquiryDomain,invoice:async()=>(await import("./invoice-HZHXDGQZ.js")).
|
|
6
|
+
invoiceDomain,"job-title":async()=>(await import("./job-title-WK4BDKTR.js")).jobTitleDomain,leave:async()=>(await import("./leave-4HMJLQN3.js")).leaveDomain,media:async()=>(await import("./media-J6IUSINE.js")).mediaDomain,meeting:async()=>(await import("./knowledge-M66MLEBK.js")).meetingDomain,note:async()=>(await import("./knowledge-M66MLEBK.js")).noteDomain,notification:async()=>(await import("./notification-SYJTTXSI.js")).notificationDomain,onedrive:async()=>(await import("./onedrive-UBSHXVYS.js")).
|
|
7
|
+
onedriveDomain,outlook:async()=>(await import("./outlook-ODZD27J5.js")).outlookDomain,payee:async()=>(await import("./sales-master-34WGDVJ6.js")).payeeDomain,position:async()=>(await import("./position-75ROWDVG.js")).positionDomain,project:async()=>(await import("./project-6KSUMEIF.js")).projectDomain,prospect:async()=>(await import("./prospect-DJ4MFIZY.js")).prospectDomain,purchase:async()=>(await import("./purchase-5SJZU2KT.js")).purchaseDomain,qualification:async()=>(await import("./skill-76QF44O3.js")).
|
|
8
|
+
qualificationDomain,receivable:async()=>(await import("./receivable-SHTDOH3W.js")).receivableDomain,report:async()=>(await import("./report-5WTMGPDN.js")).reportDomain,"rounding-setting":async()=>(await import("./sales-numbering-QIJFMZE5.js")).roundingSettingDomain,"seal-impression":async()=>(await import("./sales-master-34WGDVJ6.js")).sealImpressionDomain,shift:async()=>(await import("./attendance-lists-E6WHZPIH.js")).shiftDomain,skill:async()=>(await import("./skill-76QF44O3.js")).skillDomain,
|
|
9
|
+
storage:async()=>(await import("./storage-AQDCEBDJ.js")).storageDomain,"supplier-payment":async()=>(await import("./supplier-payment-CY6WLM6K.js")).supplierPaymentDomain,support:async()=>(await import("./support-MJVYAJC4.js")).supportDomain,task:async()=>(await import("./task-T5KHMSQH.js")).taskDomain,teams:async()=>(await import("./teams-5EXL65HN.js")).teamsDomain,user:async()=>(await import("./user-H56QMSUZ.js")).userDomain,wiki:async()=>(await import("./knowledge-M66MLEBK.js")).
|
|
10
|
+
wikiDomain,workchange:async()=>(await import("./attendance-lists-E6WHZPIH.js")).workchangeDomain,"worker-agent":async()=>(await import("./worker-agent-PDAQVQKO.js")).workerAgentDomain,workflow:async()=>(await import("./workflow-MQGTXTAW.js")).workflowDomain};async function loadDomain(name){return LOADERS[name]()}export{loadDomain};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{contentTypeFor,inspectLocalFile,issued}from"./chunk-
|
|
3
|
+
import{contentTypeFor,inspectLocalFile,issued}from"./chunk-PCSADROQ.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-NRZRMRHC.js";import{readCsvFileText}from"./chunk-QLENN5DD.js";import{featureLicenseGuidance}from"./chunk-PW5VCZFO.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{CUSTOMERS_PATH,SALES_COMPANIES_PATH,isExactNumericId}from"./chunk-3LWQO2ZK.js";
|
|
4
4
|
import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import{ApiError,errorListMessages}from"./chunk-JA5A6UJ2.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import fs from"fs";import path from"path";function levelForbidden(licenseGuidance,levelGuidance){return body=>body?.error==="permission_denied"?licenseGuidance:levelGuidance}var COMPANY_LICENSE="\u53D6\u5F15\u5148\u3092\u6271\u3046\u306B\u306F\u8CA9\u58F2\u7BA1\u7406\u304B\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u8981\u308A\u307E\u3059\u304C\u3001\u3069\u3061\u3089\u3082\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u304C\u3069\u3061\u3089\u3082\u5951\u7D04\u3057\u3066\u3044\u306A\u3044\u304B\u3001\u3042\u306A\u305F\u306E\u6A29\u9650\u304C\u3069\u3061\u3089\u3082\u300C\u306A\u3057\u300D\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
|
|
5
5
|
var CUSTOMER_LICENSE=featureLicenseGuidance("\u9867\u5BA2\u7BA1\u7406");var COMPANY_WRITE_FORBIDDEN=levelForbidden(COMPANY_LICENSE,"\u9867\u5BA2\u306E\u4F5C\u6210\u30FB\u66F4\u65B0\u306B\u306F\u3001\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7DE8\u96C6\u8005\u300D\u4EE5\u4E0A\u304B\u3001\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u30E1\u30F3\u30D0\u30FC\u300D\u4EE5\u4E0A\u306E\u3069\u3061\u3089\u304B\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
|
|
6
6
|
var LEVEL_LABELS={admin:"\u7BA1\u7406\u8005",editor:"\u7DE8\u96C6\u8005",viewer:"\u95B2\u89A7\u8005",none:"\u306A\u3057"};var CHILD_DELETE_NEEDS="\u62C5\u5F53\u8005\u30FB\u5BFE\u5FDC\u5C65\u6B74\u306E\u524A\u9664\u306B\u306F\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059";var CUSTOMER_DELETE_FORBIDDEN=levelForbidden(COMPANY_LICENSE,"\u9867\u5BA2\u306E\u524A\u9664\u306B\u306F\u3001\u4F01\u696D\u306E\u524A\u9664\u306B\u9867\u5BA2\u7BA1\u7406\u306E\u300C\u7BA1\u7406\u8005\u300D\u304B\u8CA9\u58F2\u7BA1\u7406\u306E\u300C\u30E1\u30F3\u30D0\u30FC\u300D\u4EE5\u4E0A\u3001\u62C5\u5F53\u8005\u30FB\u5BFE\u5FDC\u5C65\u6B74\u306E\u524A\u9664\u306B\u9867\u5BA2\u7BA1\u7406\u306E\u300C\u7BA1\u7406\u8005\u300D\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
3
3
|
const require = __twpCreateRequire(import.meta.url);
|
|
4
|
-
import{GLOBAL_OPTIONS_HELP}from"./chunk-YLM54X35.js";import{parseArgv}from"./chunk-ZVEMJWRR.js";import"./chunk-NAUH75MM.js";import"./chunk-6A2JSS76.js";import"./chunk-QQRJLH6B.js";import"./chunk-VSJBJXZO.js";var VERSION=true?"0.
|
|
4
|
+
import{GLOBAL_OPTIONS_HELP}from"./chunk-YLM54X35.js";import{parseArgv}from"./chunk-ZVEMJWRR.js";import"./chunk-NAUH75MM.js";import"./chunk-6A2JSS76.js";import"./chunk-QQRJLH6B.js";import"./chunk-VSJBJXZO.js";var VERSION=true?"0.57.0":"0.0.0-dev";var HELP=`twp ${VERSION} \u2014 TWP CLI
|
|
5
5
|
|
|
6
6
|
\u4F7F\u3044\u65B9:
|
|
7
7
|
twp \u5BFE\u8A71 TUI \u3092\u8D77\u52D5
|
|
@@ -167,6 +167,10 @@ import{GLOBAL_OPTIONS_HELP}from"./chunk-YLM54X35.js";import{parseArgv}from"./chu
|
|
|
167
167
|
\u30D5\u30A1\u30A4\u30EB\u3092\u6DFB\u4ED8\u3059\u308B\uFF08--file \u5FC5\u9808\u30FB3\u5F80\u5FA9\u30921\u30B3\u30DE\u30F3\u30C9\u3067\uFF09
|
|
168
168
|
twp task attachment download <\u6DFB\u4ED8ID>
|
|
169
169
|
\u6DFB\u4ED8\u3092\u30D5\u30A1\u30A4\u30EB\u3078\u66F8\u304D\u51FA\u3059\uFF08--out \u5FC5\u9808\uFF09
|
|
170
|
+
twp task attachment delete <\u6DFB\u4ED8ID>
|
|
171
|
+
\u6DFB\u4ED8\u3092\u30BF\u30B9\u30AF\u304B\u3089\u5916\u3057\u3066\u524A\u9664\u3059\u308B\uFF08--task \u3068 --yes \u304C\u8981\u308B\uFF09
|
|
172
|
+
twp task attachment explain <\u6DFB\u4ED8ID>
|
|
173
|
+
\u753B\u50CF\u30FBPDF \u306E\u5185\u5BB9\u3092 AI \u306B\u8AAC\u660E\u3055\u305B\u308B\uFF08--task \u304C\u8981\u308B\u30FB--question \u3067\u554F\u3046\uFF09
|
|
170
174
|
twp task link list <\u30AD\u30FC>
|
|
171
175
|
\u30BF\u30B9\u30AF\u306E\u30EA\u30F3\u30AF\uFF08\u95A2\u9023\u30FB\u524D\u63D0\uFF09\u3092\u4E00\u89A7\u3059\u308B
|
|
172
176
|
twp task link create <\u30AD\u30FC>
|
|
@@ -1108,14 +1112,14 @@ TUI \u5185:
|
|
|
1108
1112
|
\u4F1A\u8A71\u30FB\u30ED\u30FC\u30AB\u30EB\u30C4\u30FC\u30EB\uFF08\u30D5\u30A1\u30A4\u30EB\u30FB\u30B3\u30DE\u30F3\u30C9\u30FBgit\uFF09\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u30AF\u30EC\u30B8\u30C3\u30C8\u3067\u5B9F\u969B\u306B\u52D5\u304D\u307E\u3059\u3002
|
|
1109
1113
|
`;function ignoreEpipe(stream){stream.on("error",err=>{if(err.code==="EPIPE")process.exit(0);throw err})}async function main(){const nodeMajor=Number(process.versions.node.split(".")[0]);if(nodeMajor<22){process.stderr.write(`twp-cli \u306B\u306F Node.js 22 \u4EE5\u4E0A\u304C\u5FC5\u8981\u3067\u3059\uFF08\u73FE\u5728: ${process.versions.node}\uFF09
|
|
1110
1114
|
`);process.exit(1)}ignoreEpipe(process.stdout);ignoreEpipe(process.stderr);if(process.env["TWP_AUTO_UPDATE_WORKER"]==="1"){const{runAutoUpdateWorker}=await import("./auto-update-worker-VG77U4UA.js");await runAutoUpdateWorker().catch(()=>void 0);return}const[first,...rest]=process.argv.slice(2);if(first==="__complete"||first==="completion"){const completion=await import("./completion-RWWCIR6G.js");if(first==="completion"){process.exitCode=completion.runCompletion(rest,process.stdout,process.stderr);return}
|
|
1111
|
-
const[{loadDomain},{loadUserConfig}]=await Promise.all([import("./registry-
|
|
1115
|
+
const[{loadDomain},{loadUserConfig}]=await Promise.all([import("./registry-BGZNCBXO.js"),import("./config-3CNEQ7KN.js")]);process.exitCode=await completion.runComplete(rest,process.stdout,{loadDomain,profileNames:()=>Object.keys(loadUserConfig().profiles??{})});return}if(first==="configure"){const autoUpdate2=await import("./auto-update-YMI3F44R.js");autoUpdate2.registerRunning();autoUpdate2.onStartup(VERSION);const{runConfigure}=await import("./configure-QU6JK65I.js");process.exitCode=
|
|
1112
1116
|
await runConfigure(rest);return}const args=parseArgv(process.argv.slice(2));if(args.command==="version"){process.stdout.write(`${VERSION}
|
|
1113
1117
|
`);return}if(args.command==="help"){process.stdout.write(HELP);return}if(args.unknown.length>0){process.stderr.write(`\u4E0D\u660E\u306A\u5F15\u6570: ${args.unknown.join(" ")}
|
|
1114
1118
|
|
|
1115
|
-
${HELP}`);process.exitCode=2;return}const autoUpdate=await import("./auto-update-YMI3F44R.js");autoUpdate.registerRunning();if(args.command==="task-loop"){process.env[autoUpdate.DISABLE_ENV]="1"}else if(args.command!=="update"){autoUpdate.onStartup(VERSION)}if(args.command==="domain"&&args.domain!==void 0){const{runDomain}=await import("./run-
|
|
1116
|
-
domainHelp,globals:{...args.profile!==void 0?{profile:args.profile}:{},...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes,refresh:args.refresh},version:VERSION});return}if(args.command==="api"){const{runApiCommand}=await import("./api-command-
|
|
1117
|
-
void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes},version:VERSION});return}if(args.command==="update"){const{runUpdate}=await import("./update-NCAVUXSX.js");process.exitCode=await runUpdate({...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}if(args.command==="login"||args.command==="logout"||args.command==="whoami"){const{runLogin,runLogout,runWhoami}=await import("./commands-
|
|
1118
|
-
const options={profile:args.profile,method:args.loginMethod,tenant:args.tenant,noBrowser:args.loginNoBrowser,cliVersion:VERSION,force:args.logoutForce,...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{}};const runner=args.command==="login"?runLogin:args.command==="logout"?runLogout:runWhoami;process.exitCode=await runner(options);return}if(args.command==="task-loop"){const{runTaskLoop}=await import("./commands-
|
|
1119
|
+
${HELP}`);process.exitCode=2;return}const autoUpdate=await import("./auto-update-YMI3F44R.js");autoUpdate.registerRunning();if(args.command==="task-loop"){process.env[autoUpdate.DISABLE_ENV]="1"}else if(args.command!=="update"){autoUpdate.onStartup(VERSION)}if(args.command==="domain"&&args.domain!==void 0){const{runDomain}=await import("./run-WZ4SZIDK.js");process.exitCode=await runDomain({domain:args.domain,...args.operation!==void 0?{operation:args.operation}:{},argv:args.domainArgv,help:args.
|
|
1120
|
+
domainHelp,globals:{...args.profile!==void 0?{profile:args.profile}:{},...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes,refresh:args.refresh},version:VERSION});return}if(args.command==="api"){const{runApiCommand}=await import("./api-command-YXBOMOZI.js");process.exitCode=await runApiCommand({argv:args.domainArgv,help:args.domainHelp,globals:{...args.profile!==void 0?{profile:args.profile}:{},...args.output!==
|
|
1121
|
+
void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{},dryRun:args.dryRun,debug:args.debug,yes:args.yes},version:VERSION});return}if(args.command==="update"){const{runUpdate}=await import("./update-NCAVUXSX.js");process.exitCode=await runUpdate({...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}if(args.command==="login"||args.command==="logout"||args.command==="whoami"){const{runLogin,runLogout,runWhoami}=await import("./commands-F356Y767.js");
|
|
1122
|
+
const options={profile:args.profile,method:args.loginMethod,tenant:args.tenant,noBrowser:args.loginNoBrowser,cliVersion:VERSION,force:args.logoutForce,...args.output!==void 0?{output:args.output}:{},...args.query!==void 0?{query:args.query}:{}};const runner=args.command==="login"?runLogin:args.command==="logout"?runLogout:runWhoami;process.exitCode=await runner(options);return}if(args.command==="task-loop"){const{runTaskLoop}=await import("./commands-54B7JHG2.js");process.exitCode=await runTaskLoop(
|
|
1119
1123
|
{action:args.taskLoopAction??"run",project:args.project,profile:args.profile,safe:args.safe,daemon:args.daemon,interval:args.interval,maxCycles:args.maxCycles,forceRunner:args.forceRunner,force:args.stopForce,drain:args.stopDrain,engine:args.engine,version:VERSION,verbose:args.verbose,scheduleNow:args.scheduleNow,scheduleCounts:args.scheduleCounts,scheduleGate:args.scheduleGate,charterOp:args.charterOp,charterInput:args.charterFile,charterOutput:args.charterOut,charterRevision:args.charterRevision,
|
|
1120
1124
|
skillOp:args.skillOp,skillName:args.skillName,skillAll:args.skillAll,skillDir:args.skillDir,yes:args.yes,ais:args.ais,workspace:args.workspace,aiConfigFile:args.aiConfigFile,noAiConfigFile:args.noAiConfigFile});return}if(args.command==="print"){const{runOneShot}=await import("./oneshot-P75VON6Q.js");process.exitCode=await runOneShot({prompt:args.prompt??"",fromStdin:args.promptFromStdin,mode:args.mode??"dev",...args.permissionMode!==void 0?{permissionMode:args.permissionMode}:{},allowedTools:args.
|
|
1121
|
-
allowedTools,disallowedTools:args.disallowedTools,...args.model!==void 0?{model:args.model}:{},...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}const{startTui}=await import("./app-
|
|
1125
|
+
allowedTools,disallowedTools:args.disallowedTools,...args.model!==void 0?{model:args.model}:{},...args.profile!==void 0?{profile:args.profile}:{},version:VERSION});return}const{startTui}=await import("./app-LWBXSF2X.js");await startTui({mode:args.mode,permissionMode:args.permissionMode,allowedTools:args.allowedTools,disallowedTools:args.disallowedTools,model:args.model,profile:args.profile,noTui:args.noTui||!process.stdout.isTTY,doctor:args.doctor,version:VERSION})}await main();
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{ScheduleApi,collectDue,gateStatus,nowInZone,parseCounts,promptSection}from"./chunk-NXHJYRAM.js";import{InstanceLock,buildLockOwner,defaultIsLoopProcess,writeLockOwner}from"./chunk-3WHC4FSG.js";import{LoopSettingsApplier,renderStepBudget}from"./chunk-
|
|
3
|
+
import{ScheduleApi,collectDue,gateStatus,nowInZone,parseCounts,promptSection}from"./chunk-NXHJYRAM.js";import{InstanceLock,buildLockOwner,defaultIsLoopProcess,writeLockOwner}from"./chunk-3WHC4FSG.js";import{LoopSettingsApplier,renderStepBudget}from"./chunk-SCSHU6AD.js";import{EngineNotConfiguredError,NoopEngine,UnknownEngineError,aiUnavailableLabel,assertKnownEngine,failureHint,isAiUnavailable,needsHumanToRestoreAi}from"./chunk-ZOOEH7ZE.js";import{ServerSkillCatalog,formatSkillOrigins}from"./chunk-TVODNAPX.js";
|
|
4
4
|
import"./chunk-YJZT3UD3.js";import"./chunk-A4LFG7MW.js";import"./chunk-VRBI2NPI.js";import{claudeConfigDir,resolveDetectDeps}from"./chunk-T4QZO6RQ.js";import{duplicateTaskKeyDropReason,excludedKeyInArgs,extractPlanJson,parseOpsCount,parsePlanExcludeKeys,placeholderTaskKey,releaseDeployDropReason,stepToItem,zeroTargetDropReasons}from"./chunk-LUQ2KE6Y.js";import{CapacityReporter,buildLoopConfig,describeOperations,evaluateOwnership,formatHookIds,formatHookWiring,localDate,
|
|
5
|
-
loopStateDir,runHook,runPrefetch,runPreflight}from"./chunk-
|
|
5
|
+
loopStateDir,runHook,runPrefetch,runPreflight}from"./chunk-BO2E5QLR.js";import{exclusiveInflightEntries,formatExclusiveEntry,normalizeSkillName,skillOfItem,spawnSyncResolved}from"./chunk-AEJHDFXB.js";import{killProcessTree}from"./chunk-N2UVRM3Z.js";import{AgentLoopApi,describeError,filterByStatus,isPermanent,pick,pickString}from"./chunk-JTJWDV5U.js";import{PRIVATE_PROJECT_REF,isPrivateProjectId,isPrivateProjectRef,privateProjectId,projectFileKey}from"./chunk-GY7KI5E5.js";
|
|
6
6
|
import{resolveProjectRef,uuidProjectIdPolicy}from"./chunk-GMBJTG6A.js";import{isTaskKey}from"./chunk-II5RVJQN.js";import"./chunk-VFPY2A23.js";import{joinFor}from"./chunk-PMOUHEJQ.js";import{AuthSession}from"./chunk-XNLIEUAW.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{compareVersionCores,parseVersionCore}from"./chunk-DXXFUNYN.js";import"./chunk-5WGOHFAS.js";import{effectiveApiUrl,resolveProfile}from"./chunk-4VZKNEVN.js";import{twpHomeDir}from"./chunk-RZVI6PMW.js";
|
|
7
7
|
import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs10 from"fs";import path8 from"path";import fs from"fs";import path from"path";var LoopLogger=class{constructor(runnerId,logFile,out=process.stdout,now=()=>new Date){this.runnerId=runnerId;this.out=out;this.now=now;if(logFile){fs.mkdirSync(path.dirname(logFile),{recursive:true});this.stream=fs.createWriteStream(logFile,{flags:"a"})}}runnerId;out;now;stream=null;log(message){const d=this.now();const ts=`${d.getFullYear()}-${pad(d.getMonth()+1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;const line=`[${ts}] [${this.runnerId}] ${stripTerminalControls(
|
|
8
8
|
message)}
|
|
@@ -77,16 +77,16 @@ const clean=reason.replace(/[\t\n]/g," ").slice(0,200);const line=`${localTimest
|
|
|
77
77
|
`;try{fs4.mkdirSync(path3.dirname(this.file),{recursive:true});fs4.appendFileSync(this.file,line)}catch{return}if(result!=="NOT_EXECUTED")return;const streak=this.notExecutedStreak();if(streak>=3){this.log.log(` \u26A0\uFE0F \u30EA\u30EA\u30FC\u30B9\u304C ${streak} \u56DE\u9023\u7D9A\u3067\u672A\u5B9F\u884C\u3067\u3059\uFF08${this.file}\uFF09\u3002\u6B21\u30B5\u30A4\u30AF\u30EB\u3067\u30D6\u30ED\u30C3\u30AB\u30FC\u89E3\u6D88\u3092\u6700\u512A\u5148\u3059\u308B\u3053\u3068`)}}notExecutedStreak(){
|
|
78
78
|
let text;try{text=fs4.readFileSync(this.file,"utf8")}catch{return 0}let n=0;for(const line of text.split("\n")){if(line.trim()==="")continue;n=line.split(" ")[1]==="NOT_EXECUTED"?n+1:0}return n}};function parseReleaseResult(logText){const matches=[...logText.matchAll(/RELEASE_RESULT:[^|\n]*\|[^|\n]*\|[^\n]*/g)];const line=matches.at(-1)?.[0];if(!line)return null;const parts=line.split("|").map(s=>s.trim());return{executed:!/NOT_EXECUTED/.test(parts[0]??""),phase:parts[1]??"",reason:parts[2]??"",
|
|
79
79
|
line}}function parseOutcomeCode(logText){const matches=[...logText.matchAll(/\b([A-Z][A-Z0-9_]*_RESULT):[ \t]*([^|\n]*)/g)];const last=matches.at(-1);if(last===void 0)return null;const value=(last[2]??"").trim();return value===""?null:`${last[1]??""}: ${value}`}var RECOVER_KEY_RE=/RECOVER:[ \t]*([^\s|、,,]+-\d+)/;function parseRecoverKey(line){const raw=RECOVER_KEY_RE.exec(line)?.[1];if(raw===void 0)return null;if(!raw.includes("%"))return raw;try{const key=decodeURIComponent(raw);return isTaskKey(
|
|
80
|
-
key)&&key.trim()===key?key:null}catch{return null}}function parsePartialMergeCause(line){const m=/PARTIAL_MERGE:\s*([A-Za-z0-9_.:-]+)/.exec(line);return m?.[1]??null}function parsePhase5Pending(line){const m=/PHASE5_PENDING:\s*(\d+)/.exec(line);return m?.[1]??null}function
|
|
81
|
-
return trimmed.split(",").filter(k=>k!=="")}var PHASE5_RECOVERY_MAX=2;var PARTIAL_MERGE_ESCALATION_MAX=1;var TANI_USER_ID="2f391dda-f0e3-42f8-a9fd-8ffc271be765";var STATUS_HUMAN_DECISION="35e2d271-8a6e-4f3f-8bb6-1588a2d5a894";async function enqueueBlockerRecovery(deps,releaseLine){const{api,config,log}=deps;const key=parseRecoverKey(releaseLine);if(!key)return;const queued=await api.queuedSnapshot();if(queued===null){
|
|
82
|
-
log.log(" \uFF08\u65E2\u306B\u30AD\u30E5\u30FC\u306B\u5C45\u308B\u304B\u5224\u5B9A\u3067\u304D\u306A\u3044\u72B6\u614B\u3067\u6295\u5165\u3059\u308B\u3068\u3001\u4E0A\u9650\u67A0\u3092\u6D88\u8CBB\u3057\u3066\u91CD\u8907\u30A2\u30A4\u30C6\u30E0\u3092\u4F5C\u308A\u307E\u3059\uFF09");
|
|
83
|
-
return}const today=localDate(config.counterTimezone);const res=await api.consumeCounter(`blocker_recovery.${key}`,today,config.blockerRecoveryMaxPerDay);if(!res.ok){if(res.status!==null&&res.status>=400&&res.status<500){log.log(` \u26D4 ${key}
|
|
84
|
-
\
|
|
85
|
-
return}const granted=pickString(res.json,"granted");const count=pickString(res.json,"counter.count");if(granted===""){log.log(` \u26D4 ${key} \u306E\u6295\u5165\u4E0A\u9650\u306E\u5FDC\u7B54\u3092\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093\uFF08granted \u304C\u8AAD\u3081\u307E\u305B\u3093\uFF09\u2192 \u4ECA\u56DE\
|
|
86
|
-
"?"} \u56DE\u6295\u5165\u6E08\u307F\uFF08\u4E0A\u9650 ${config.blockerRecoveryMaxPerDay}\uFF09\u2192 \u4ECA\u56DE\u306F\u6295\u5165\u3057\u307E\u305B\u3093\u3002\u4EBA\u9593\u5224\u65AD\u3078\u5BC4\u305B\u3066\u304F\u3060\u3055\u3044`);return}const{itemId,detail}=await createItem(
|
|
87
|
-
|
|
88
|
-
\u306E\u4FEE\u6B63\u30A2\u30A4\u30C6\u30E0\u3092\u30AD\u30E5\u30FC\u5148\u982D\u306B\u6295\u5165\u3057\u307E\u3057\u305F\uFF08\u6B21\u306E\u30C7\u30AD\u30E5\u30FC\u3067\u7740\u624B\uFF09`)}else{log.log(` \u26A0\uFE0F ${key} \u306E\u4FEE\u6B63\u30A2\u30A4\u30C6\u30E0\u306F\u6295\u5165\u3057\u307E\u3057\u305F\u304C\u5148\u982D\u3078\u306E\u4E26\u3073\u66FF\u3048\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF08\u30AD\u30E5\u30FC\u672B\u5C3E\u3067\u5B9F\u884C\u3055\u308C\u307E\u3059\uFF09`)}}
|
|
89
|
-
return items.some(it=>(it.prompt??"").includes(skillCommand))}async function enqueueReleasePhase5Recovery(deps,releaseLine){const{api,config,log}=deps;const releaseId=parsePhase5Pending(releaseLine);if(!releaseId)return;const recoverySkill=config.operations.releaseRecoverySkill;if(!recoverySkill)return;const queued=await api.queuedSnapshot();if(queued===null){log.log(" \u26A0\uFE0F \u30AD\u30E5\u30FC\u306E\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F \u2192 \u30EA\u30EA\u30FC\u30B9\u56DE\u53CE\u306E\u6295\u5165\u3092\u898B\u9001\u308A\u307E\u3059");
|
|
80
|
+
key)&&key.trim()===key?key:null}catch{return null}}function parsePartialMergeCause(line){const m=/PARTIAL_MERGE:\s*([A-Za-z0-9_.:-]+)/.exec(line);return m?.[1]??null}function parsePhase5Pending(line){const m=/PHASE5_PENDING:\s*(\d+)/.exec(line);return m?.[1]??null}function parseKeysLine(logText,keysLine){const prefix=keysLine.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");const matches=[...logText.matchAll(new RegExp(`${prefix}:[ \\t]*([A-Za-z0-9,_-]*)`,"g"))];const raw=matches.at(-1)?.[1];if(raw===void 0)
|
|
81
|
+
return null;const trimmed=raw.trim();if(trimmed===""||trimmed==="none")return[];return trimmed.split(",").filter(k=>k!=="")}var PHASE5_RECOVERY_MAX=2;var PARTIAL_MERGE_ESCALATION_MAX=1;var TANI_USER_ID="2f391dda-f0e3-42f8-a9fd-8ffc271be765";var STATUS_HUMAN_DECISION="35e2d271-8a6e-4f3f-8bb6-1588a2d5a894";async function enqueueBlockerRecovery(deps,releaseLine){const{api,config,log}=deps;const key=parseRecoverKey(releaseLine);if(!key)return;const queued=await api.queuedSnapshot();if(queued===null){
|
|
82
|
+
log.log(" \u26A0\uFE0F \u30AD\u30E5\u30FC\u306E\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F \u2192 \u30D6\u30ED\u30C3\u30AB\u30FC\u4FEE\u6B63\u306E\u6295\u5165\u3092\u898B\u9001\u308A\u307E\u3059");log.log(" \uFF08\u65E2\u306B\u30AD\u30E5\u30FC\u306B\u5C45\u308B\u304B\u5224\u5B9A\u3067\u304D\u306A\u3044\u72B6\u614B\u3067\u6295\u5165\u3059\u308B\u3068\u3001\u4E0A\u9650\u67A0\u3092\u6D88\u8CBB\u3057\u3066\u91CD\u8907\u30A2\u30A4\u30C6\u30E0\u3092\u4F5C\u308A\u307E\u3059\uFF09");
|
|
83
|
+
return}if(queueContainsKey(queued,key)){log.log(` \u23ED ${key} \u306E\u30A2\u30A4\u30C6\u30E0\u306F\u65E2\u306B\u30AD\u30E5\u30FC\u306B\u3042\u308A\u307E\u3059 \u2192 \u30D6\u30ED\u30C3\u30AB\u30FC\u4FEE\u6B63\u306E\u6295\u5165\u3092\u30B9\u30AD\u30C3\u30D7`);return}const today=localDate(config.counterTimezone);const res=await api.consumeCounter(`blocker_recovery.${key}`,today,config.blockerRecoveryMaxPerDay);if(!res.ok){if(res.status!==null&&res.status>=400&&res.status<500){log.log(` \u26D4 ${key}\
|
|
84
|
+
\u306E\u30D6\u30ED\u30C3\u30AB\u30FC\u4FEE\u6B63\u306E\u6295\u5165\u4E0A\u9650\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\uFF08${describeError(res)}\uFF09\u3002**\u518D\u8A66\u884C\u3067\u306F\u89E3\u6D88\u3057\u307E\u305B\u3093**`);log.log(` \u78BA\u8A8D: \u30BF\u30A4\u30E0\u30BE\u30FC\u30F3\uFF08\u73FE\u5728 ${config.counterTimezone}\u30FB\u9001\u4FE1\u3057\u305F\u65E5\u4ED8 ${today}\uFF09\uFF0F\u4E0A\u9650\uFF08\u73FE\u5728 ${config.blockerRecoveryMaxPerDay}\uFF09`)}else{log.log(` \
|
|
85
|
+
\u26D4 ${key} \u306E\u30D6\u30ED\u30C3\u30AB\u30FC\u4FEE\u6B63\u306E\u6295\u5165\u4E0A\u9650\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${describeError(res)}\uFF09\u2192 \u4ECA\u56DE\u306F\u6295\u5165\u3057\u307E\u305B\u3093\uFF08\u6B21\u30B5\u30A4\u30AF\u30EB\u3067\u518D\u5224\u5B9A\uFF09`)}return}const granted=pickString(res.json,"granted");const count=pickString(res.json,"counter.count");if(granted===""){log.log(` \u26D4 ${key} \u306E\u6295\u5165\u4E0A\u9650\u306E\u5FDC\u7B54\u3092\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093\uFF08granted \u304C\u8AAD\u3081\u307E\u305B\u3093\uFF09\u2192 \u4ECA\u56DE\
|
|
86
|
+
\u306F\u6295\u5165\u3057\u307E\u305B\u3093\u3002\u5FDC\u7B54\u306E\u5148\u982D: ${res.raw.slice(0,120)}`);return}if(granted!=="true"){log.log(` \u23ED ${key} \u306E\u30D6\u30ED\u30C3\u30AB\u30FC\u4FEE\u6B63\u306F\u672C\u65E5 ${count||"?"} \u56DE\u6295\u5165\u6E08\u307F\uFF08\u4E0A\u9650 ${config.blockerRecoveryMaxPerDay}\uFF09\u2192 \u4ECA\u56DE\u306F\u6295\u5165\u3057\u307E\u305B\u3093\u3002\u4EBA\u9593\u5224\u65AD\u3078\u5BC4\u305B\u3066\u304F\u3060\u3055\u3044`);return}const{itemId,detail}=await createItem(
|
|
87
|
+
api,{label:`[\u30EA\u30EA\u30FC\u30B9\u30D6\u30ED\u30C3\u30AB\u30FC] ${key} \u306E\u4FEE\u6B63\uFF08\u672C\u756A\u30EA\u30EA\u30FC\u30B9\u89E3\u9664\u306E\u305F\u3081\u6700\u512A\u5148\uFF09 #ai:complex`,prompt:`/twp-task-investigate-and-fix ${key}`,ai_type:"claude",task_key:key});if(!itemId){log.log(` \u26A0\uFE0F ${key} \u306E\u30D6\u30ED\u30C3\u30AB\u30FC\u4FEE\u6B63\u30A2\u30A4\u30C6\u30E0\u6295\u5165\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF08\u672C\u65E5\u306E\u6295\u5165\u67A0\u306F1\u4EF6\u6D88\u8CBB\u6E08\u307F\uFF09: ${detail}`);
|
|
88
|
+
return}const reorderRes=await api.reorder([itemId]);if(reorderRes.ok&&reorderSucceeded(itemId,reorderRes.json)){log.log(` \u23EB \u30EA\u30EA\u30FC\u30B9\u30D6\u30ED\u30C3\u30AB\u30FC ${key} \u306E\u4FEE\u6B63\u30A2\u30A4\u30C6\u30E0\u3092\u30AD\u30E5\u30FC\u5148\u982D\u306B\u6295\u5165\u3057\u307E\u3057\u305F\uFF08\u6B21\u306E\u30C7\u30AD\u30E5\u30FC\u3067\u7740\u624B\uFF09`)}else{log.log(` \u26A0\uFE0F ${key} \u306E\u4FEE\u6B63\u30A2\u30A4\u30C6\u30E0\u306F\u6295\u5165\u3057\u307E\u3057\u305F\u304C\u5148\u982D\u3078\u306E\u4E26\u3073\u66FF\u3048\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF08\u30AD\u30E5\u30FC\u672B\u5C3E\u3067\u5B9F\u884C\u3055\u308C\u307E\u3059\uFF09`)}}
|
|
89
|
+
function queueContainsSkill(items,skillCommand){return items.some(it=>(it.prompt??"").includes(skillCommand))}async function enqueueReleasePhase5Recovery(deps,releaseLine){const{api,config,log}=deps;const releaseId=parsePhase5Pending(releaseLine);if(!releaseId)return;const recoverySkill=config.operations.releaseRecoverySkill;if(!recoverySkill)return;const queued=await api.queuedSnapshot();if(queued===null){log.log(" \u26A0\uFE0F \u30AD\u30E5\u30FC\u306E\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F \u2192 \u30EA\u30EA\u30FC\u30B9\u56DE\u53CE\u306E\u6295\u5165\u3092\u898B\u9001\u308A\u307E\u3059");
|
|
90
90
|
log.log(" \uFF08\u65E2\u306B\u30AD\u30E5\u30FC\u306B\u5C45\u308B\u304B\u5224\u5B9A\u3067\u304D\u306A\u3044\u72B6\u614B\u3067\u6295\u5165\u3059\u308B\u3068\u3001\u672C\u756A\u30EA\u30EA\u30FC\u30B9\u304C\u4E8C\u91CD\u306B\u8D70\u308A\u307E\u3059\uFF09");return}if(queueContainsSkill(queued,recoverySkill)){log.log(" \u23ED \u30EA\u30EA\u30FC\u30B9\u56DE\u53CE\u306E\u30A2\u30A4\u30C6\u30E0\u306F\u65E2\u306B\u30AD\u30E5\u30FC\u306B\u3042\u308A\u307E\u3059 \u2192 \u6295\u5165\u3092\u30B9\u30AD\u30C3\u30D7");
|
|
91
91
|
return}const today=localDate(config.counterTimezone);const res=await api.consumeCounter(`release_phase5.${releaseId}`,today,PHASE5_RECOVERY_MAX);if(!res.ok){log.log(` \u26D4 release ${releaseId} \u306E\u30EA\u30EA\u30FC\u30B9\u56DE\u53CE\u306E\u6295\u5165\u4E0A\u9650\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${describeError(res)}\uFF09\u2192 \u4ECA\u56DE\u306F\u6295\u5165\u3057\u307E\u305B\u3093\uFF08\u5B9A\u671F\u67A0\u304C\u62FE\u3044\u307E\u3059\uFF09`);return}const granted=pickString(
|
|
92
92
|
res.json,"granted");if(granted===""){log.log(` \u26D4 release ${releaseId} \u306E\u6295\u5165\u4E0A\u9650\u306E\u5FDC\u7B54\u3092\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093\uFF08granted \u304C\u8AAD\u3081\u307E\u305B\u3093\uFF09\u2192 \u4ECA\u56DE\u306F\u6295\u5165\u3057\u307E\u305B\u3093\u3002\u5FDC\u7B54\u306E\u5148\u982D: ${res.raw.slice(0,120)}`);return}if(granted!=="true"){log.log(` \u23ED release ${releaseId} \u306E\u30EA\u30EA\u30FC\u30B9\u56DE\u53CE\u306F\u4E0A\u9650\uFF08${PHASE5_RECOVERY_MAX}\
|
|
@@ -123,19 +123,18 @@ wp-aiops__release_list` \u2192 `release_get` \u3067\u76F4\u8FD1\u306E\u5931\u655
|
|
|
123
123
|
" \u672A\u5B8C\u4E86\u30BF\u30B9\u30AF\u304C\u65E2\u306B\u3042\u308B\u304B\u78BA\u8A8D\u3059\u308B\uFF08\u3042\u308C\u3070\u518D\u8D77\u7968\u305B\u305A\u305D\u308C\u3092\u4F7F\u3046\u3002`create_task` \u306F\u975E\u51AA\u7B49\uFF09","3. \u7121\u3051\u308C\u3070 `create_task` \u3067\u8D77\u7968\u3059\u308B:",` - subject: \`[\u30EA\u30EA\u30FC\u30B9\u90E8\u5206\u30DE\u30FC\u30B8] ${cause} \u2014 ${ESCALATION_SUBJECT[reason]}\``," - description: main \u306B\u5165\u3063\u305F\u30EA\u30DD\u30B8\u30C8\u30EA\uFF08merge SHA \u4ED8\u304D\uFF09\uFF0F\u5165\u3063\u3066\u3044\u306A\u3044\u30EA\u30DD\u30B8\u30C8\u30EA\uFF0F",
|
|
124
124
|
" \u5931\u6557\u30EA\u30DD\u30B8\u30C8\u30EA\u30FB\u5931\u6557\u30B9\u30C6\u30C3\u30D7\u30FB\u30A8\u30E9\u30FC\u5168\u6587\uFF0F\u8A72\u5F53 release_id \uFF0F\u81EA\u52D5\u518D\u5B9F\u884C\u306E\u56DE\u6570"," - priority: 1\uFF08\u672C\u756A\u304C\u4E00\u90E8\u3060\u3051\u65B0\u3057\u3044\u72B6\u614B\uFF1D\u30EA\u30EA\u30FC\u30B9\u30D6\u30ED\u30C3\u30AB\u30FC\uFF09",'4. \u305D\u306E\u30BF\u30B9\u30AF\u306B `comment_type: "ask_question"` \u3067**1\u554F\u3060\u3051**\u6295\u7A3F\u3059\u308B\u3002\u80CC\u666F\u30FB\u5404\u9078\u629E\u80A2\u306E\u5F71\u97FF\u30FB',
|
|
125
125
|
" AI\u306E\u63A8\u5968\u3092\u672C\u6587\u306B\u66F8\u304F\u3053\u3068\uFF08\u8AD6\u70B9\u3092\u66F8\u304B\u305A\u9078\u629E\u80A2\u3060\u3051\u4E26\u3079\u305F\u77ED\u6587\u306F\u6295\u7A3F\u3057\u306A\u3044\uFF09\u3002"," option \u306E `key` \u306F10\u6587\u5B57\u4EE5\u5185\u3002`mentioned_user_ids` \u306B\u8C37 \u6A39\u3092\u542B\u3081\u308B",`5. \u540C\u3058\u30BF\u30FC\u30F3\u3067\u30B9\u30C6\u30FC\u30BF\u30B9\u3092 \`\u4EBA\u9593\u5224\u65AD\u5F85\u3061\`\uFF08${STATUS_HUMAN_DECISION}\uFF09\
|
|
126
|
-
\u30FB`,` \u62C5\u5F53\u3092\u8C37 \u6A39\uFF08${TANI_USER_ID}\uFF09\u306B\u3059\u308B`,"","\u6700\u7D42\u51FA\u529B\u306E1\u884C\u76EE\u306B `PARTIAL_MERGE_ESCALATED: <TWP\u30AD\u30FC>` \u3092\u51FA\u3057\u3066\u304F\u3060\u3055\u3044\u3002"].join("\n")}async function enqueueDevVerifyForMerged(deps,logText,
|
|
127
|
-
return}if(keys
|
|
128
|
-
log.log("
|
|
129
|
-
continue}const{itemId,detail}=await createItem(api,{label:`[P1] ${key} \u306Edev\u691C\u8A3C\uFF08develop\u30DE\u30FC\u30B8\u76F4\u5F8C\u30FB\u6DF7\u5165\u30DE\u30FC\u30B8\u9632\u6B62\u306E\u305F\u3081\u81EA\u52D5\u6295\u5165\uFF09 #ai:verify`,
|
|
130
|
-
\u306Edev\u691C\u8A3C\u3092\u30AD\u30E5\u30FC\u3078\u6295\u5165\u3057\u307E\u3057\u305F\uFF08${itemId}\uFF09`)}if(enqueued>0){log.log(` \u2192 develop\u30DE\u30FC\u30B8\u6E08\u307F ${enqueued} \u4EF6\u306Edev\u691C\u8A3C\u3092\u81EA\u52D5\u6295\u5165\u3057\u307E\u3057\u305F\uFF08\u8A08\u753BAI\u306E\u5224\u65AD\u306B\u59D4\u306D\u306A\u3044\uFF09`)}}var RECENT_ADVANCE_WINDOW_HOURS=6;
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
get(advance.taskKey);if(current===void 0){return{suppress:true,reason:""}}if(current===expected)return{suppress:true,reason:""};return{suppress:false,reason:`\u524D\u56DE\u306E\u5B9F\u884C\u306E\u5F8C\u306B\u30BF\u30B9\u30AF\u304C\u52D5\u3044\u305F\uFF08${expected} \u2192 ${current}\uFF09\uFF1D\u65B0\u3057\u3044\u4ED5\u4E8B`}}var USER_ID_RE=/^[A-Za-z0-9._-]{1,64}$/;var ProjectApi=class{constructor(apiUrl,session,fetchImpl=httpFetch){this.apiUrl=apiUrl;this.session=session;this.fetchImpl=fetchImpl}apiUrl;session;fetchImpl;async resolve(ref){if(isPrivateProjectRef(ref))return this.resolvePrivate();return resolveProjectRef(ref,path9=>this.get(path9),uuidProjectIdPolicy)}async resolvePrivate(){const res=await this.get("/api/v2/user");if(!res.ok){throw new Error(`\u30ED\u30B0\u30A4\u30F3\u4E2D\u306E\u30E6\u30FC\u30B6\u30FC\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.
|
|
126
|
+
\u30FB`,` \u62C5\u5F53\u3092\u8C37 \u6A39\uFF08${TANI_USER_ID}\uFF09\u306B\u3059\u308B`,"","\u6700\u7D42\u51FA\u529B\u306E1\u884C\u76EE\u306B `PARTIAL_MERGE_ESCALATED: <TWP\u30AD\u30FC>` \u3092\u51FA\u3057\u3066\u304F\u3060\u3055\u3044\u3002"].join("\n")}async function enqueueDevVerifyForMerged(deps,logText,followUp){const{api,log}=deps;const{skill:verifySkill,keysLine}=followUp;if(keysLine===null){log.log(` \u2139\uFE0F ${verifySkill} \u306E\u5F8C\u7D9A\u6295\u5165\u306F keys_line \u304C\u672A\u8A2D\u5B9A\u306E\u305F\u3081\u3001\u30AD\u30FC\u5358\u4F4D\u306E\u6295\u5165\u306F\u3057\u307E\u305B\u3093`);
|
|
127
|
+
return}const keys=parseKeysLine(logText,keysLine);if(keys===null){log.log(` \u26A0\uFE0F \u5B8C\u4E86\u3057\u305F\u30B9\u30AD\u30EB\u304C ${keysLine} \u884C\u3092\u51FA\u529B\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u51FA\u529B\u5951\u7D04\u9055\u53CD\uFF09\u2192 ${verifySkill} \u306E\u81EA\u52D5\u6295\u5165\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u307E\u3059`);return}if(keys.length===0){log.log(` \u2139\uFE0F \u5BFE\u8C61\u30AD\u30FC\u306F\u3042\u308A\u307E\u305B\u3093\uFF08${keysLine}: none\uFF09\u2192\
|
|
128
|
+
${verifySkill} \u306E\u81EA\u52D5\u6295\u5165\u306A\u3057`);return}const queued=await api.queuedSnapshot();if(queued===null){log.log(" \u26A0\uFE0F \u30AD\u30E5\u30FC\u306E\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F \u2192 dev\u691C\u8A3C\u306E\u6295\u5165\u3092\u898B\u9001\u308A\u307E\u3059");log.log(" \uFF08\u5224\u5B9A\u3067\u304D\u306A\u3044\u72B6\u614B\u3067\u6295\u5165\u3059\u308B\u3068\u3001\u540C\u4E00\u30BF\u30B9\u30AF\u306Edev\u691C\u8A3C\u304C\u4E8C\u91CD\u306B\u8D70\u308A\u307E\u3059\uFF09");
|
|
129
|
+
return}let enqueued=0;const seen=new Set;for(const key of keys){if(seen.has(key))continue;seen.add(key);if(queueContainsKey(queued,key)){log.log(` \u23ED ${key} \u306E\u30A2\u30A4\u30C6\u30E0\u306F\u65E2\u306B\u30AD\u30E5\u30FC\u306B\u3042\u308A\u307E\u3059 \u2192 dev\u691C\u8A3C\u306E\u6295\u5165\u3092\u30B9\u30AD\u30C3\u30D7`);continue}const{itemId,detail}=await createItem(api,{label:`[P1] ${key} \u306Edev\u691C\u8A3C\uFF08develop\u30DE\u30FC\u30B8\u76F4\u5F8C\u30FB\u6DF7\u5165\u30DE\u30FC\u30B8\u9632\u6B62\u306E\u305F\u3081\u81EA\u52D5\u6295\u5165\uFF09 #ai:verify`,
|
|
130
|
+
prompt:`${verifySkill} ${key}`,ai_type:"claude",task_key:key});if(!itemId){log.log(` \u26A0\uFE0F ${key} \u306Edev\u691C\u8A3C\u30A2\u30A4\u30C6\u30E0\u6295\u5165\u306B\u5931\u6557\u3057\u307E\u3057\u305F: ${detail}`);continue}enqueued+=1;log.log(` \u{1F50E} ${key} \u306Edev\u691C\u8A3C\u3092\u30AD\u30E5\u30FC\u3078\u6295\u5165\u3057\u307E\u3057\u305F\uFF08${itemId}\uFF09`)}if(enqueued>0){log.log(` \u2192 develop\u30DE\u30FC\u30B8\u6E08\u307F ${enqueued} \u4EF6\u306Edev\u691C\u8A3C\u3092\u81EA\u52D5\u6295\u5165\u3057\u307E\u3057\u305F\uFF08\u8A08\u753BAI\u306E\u5224\u65AD\u306B\u59D4\u306D\u306A\u3044\uFF09`)}}var RECENT_ADVANCE_WINDOW_HOURS=6;function normalizeOutcomeCode(raw){const m=/\b([A-Z][A-Z0-9_]*_RESULT)\s*:\s*([A-Za-z_][A-Za-z0-9_]*)/.exec(raw??"");if(!m)return null;return`${m[1]}: ${(m[2]??"").toUpperCase()}`}function skillOfLedgerItem(item){const explicit=(item.skill??"").trim();if(explicit)return normalizeSkillName(explicit);return skillOfItem(item)}function advanceKey(taskKey,skill){return`${taskKey}#${normalizeSkillName(skill)}`}function buildRecentCandidateIndex(items,opts={}){const nowMicros=(opts.
|
|
131
|
+
now??new Date).getTime()*1e3;const latest=new Map;for(const item of items){if(item.status!==void 0&&item.status!=="completed")continue;const taskKey=(item.task_key??"").trim();if(taskKey==="")continue;const skill=skillOfLedgerItem(item);if(skill==="")continue;const sortOrder=typeof item.sort_order==="number"?item.sort_order:0;const key=advanceKey(taskKey,skill);const prev=latest.get(key);if(prev&&prev.sortOrder>=sortOrder)continue;latest.set(key,{sortOrder,candidate:{taskKey,skill,itemId:item.item_id,
|
|
132
|
+
outcomeCode:normalizeOutcomeCode(item.outcome_code),ageMinutes:sortOrder>0?Math.floor((nowMicros-sortOrder)/6e7):null}})}const index=new Map;for(const[key,value]of latest)index.set(key,value.candidate);return index}function findRecentCandidate(index,taskKey,skill){if(taskKey.trim()===""||skill.trim()==="")return null;return index.get(advanceKey(taskKey.trim(),skill))??null}async function resolveRecentAdvance(candidate,fetchResult,advancing){if(advancing.size===0)return null;let outcome=candidate.
|
|
133
|
+
outcomeCode;if(outcome===null){const result=await fetchResult(candidate.itemId);outcome=result?normalizeOutcomeCode(parseOutcomeCode(result)):null}if(outcome===null||!advancing.has(outcome))return null;return{taskKey:candidate.taskKey,skill:candidate.skill,outcome,itemId:candidate.itemId,ageMinutes:candidate.ageMinutes}}function formatRecentAdvance(advance){const age=advance.ageMinutes===null?"\u4E0D\u660E":`${advance.ageMinutes}\u5206\u524D`;return`${advance.outcome}\uFF08${age} / item=${advance.
|
|
134
|
+
itemId}\uFF09`}function windowStartMicros(now,hours=RECENT_ADVANCE_WINDOW_HOURS){return Math.trunc((now.getTime()-hours*36e5)*1e3)}var MARKER_PAIR_RE=/^([^=\s,]+)=([a-z]+)$/;function decodeMarkerKey(raw){let key;try{key=decodeURIComponent(raw)}catch{return null}return isTaskKey(key)&&key.trim()===key?key:null}function parseTaskStatusSnapshot(prefetchSection){const m=/<!--\s*OPS_TASK_STATUS\s([^>]*?)-->/.exec(prefetchSection);if(!m||m[1]===void 0)return null;const body=m[1];const windowMatch=/\bwindow_hours=(\d+)\b/.
|
|
135
|
+
exec(body);const byKey=new Map;for(const token of body.trim().split(/\s+/)){for(const part of token.split(",")){const pair=MARKER_PAIR_RE.exec(part);if(!pair)continue;const key=decodeMarkerKey(pair[1]);if(key!==null)byKey.set(key,pair[2])}}return{complete:/\bcomplete=1\b/.test(body),windowHours:windowMatch?Number(windowMatch[1]):0,byKey}}function shouldSuppressForStatus(advance,snapshot,advancing){if(snapshot===null){return{suppress:false,reason:"\u30B9\u30C6\u30FC\u30BF\u30B9\u306E\u30DE\u30FC\u30AB\u30FC\uFF08OPS_TASK_STATUS\uFF09\u304C prefetch \u306B\u7121\u3044"}}
|
|
136
|
+
if(!snapshot.complete){return{suppress:false,reason:"\u30B9\u30C6\u30FC\u30BF\u30B9\u306E\u53D6\u5F97\u306B\u5931\u6557\u3057\u305F\u3082\u306E\u304C\u3042\u308B\uFF08complete=0\uFF09"}}if(snapshot.windowHours<RECENT_ADVANCE_WINDOW_HOURS){return{suppress:false,reason:`\u30DE\u30FC\u30AB\u30FC\u306E\u7A93\uFF08${snapshot.windowHours}h\uFF09\u304C\u6291\u6B62\u306E\u7A93\uFF08${RECENT_ADVANCE_WINDOW_HOURS}h\uFF09\u3088\u308A\u72ED\u3044`}}const expected=advancing.get(advance.outcome);if(expected===
|
|
137
|
+
void 0){return{suppress:false,reason:`${advance.outcome} \u306E\u60F3\u5B9A\u30B9\u30C6\u30FC\u30BF\u30B9\u304C\u5BFE\u5FDC\u8868\u306B\u7121\u3044`}}const current=snapshot.byKey.get(advance.taskKey);if(current===void 0){return{suppress:true,reason:""}}if(current===expected)return{suppress:true,reason:""};return{suppress:false,reason:`\u524D\u56DE\u306E\u5B9F\u884C\u306E\u5F8C\u306B\u30BF\u30B9\u30AF\u304C\u52D5\u3044\u305F\uFF08${expected} \u2192 ${current}\uFF09\uFF1D\u65B0\u3057\u3044\u4ED5\u4E8B`}}var USER_ID_RE=/^[A-Za-z0-9._-]{1,64}$/;var ProjectApi=class{constructor(apiUrl,session,fetchImpl=httpFetch){this.apiUrl=apiUrl;this.session=session;this.fetchImpl=fetchImpl}apiUrl;session;fetchImpl;async resolve(ref){if(isPrivateProjectRef(ref))return this.resolvePrivate();return resolveProjectRef(ref,path9=>this.get(path9),uuidProjectIdPolicy)}async resolvePrivate(){const res=await this.get("/api/v2/user");if(!res.ok){throw new Error(`\u30ED\u30B0\u30A4\u30F3\u4E2D\u306E\u30E6\u30FC\u30B6\u30FC\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08HTTP ${res.
|
|
139
138
|
status}\uFF09\u3002\u500B\u4EBA\u30AD\u30E5\u30FC\u3092\u56DE\u3059\u306B\u306F \`twp login\` \u304C\u5FC5\u8981\u3067\u3059\u3002\u63A5\u7D9A\u5148\u3068\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}const userId=res.json?.user?.id;if(typeof userId!=="string"||!USER_ID_RE.test(userId)){throw new Error(`\u30B5\u30FC\u30D0\u304C\u8FD4\u3057\u305F\u30E6\u30FC\u30B6\u30FCID\u3092\u500B\u4EBA\u30AD\u30E5\u30FC\u306EID\u306B\u4F7F\u3048\u307E\u305B\u3093\uFF08${String(
|
|
140
139
|
userId).slice(0,60)}\uFF09\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return{id:privateProjectId(userId),code:PRIVATE_PROJECT_REF,name:"\u500B\u4EBA\u30BF\u30B9\u30AF"}}async countByStatus(projectId,statusId){const res=await this.get(`/api/v2/projects/${projectId}/tasks?status_id=${encodeURIComponent(statusId)}&limit=1`);if(!res.ok){return{total:null,error:res.status===null?res.error??"\u901A\u4FE1\u5931\u6557":`HTTP ${res.status}`}}const total=res.json?.
|
|
141
140
|
pagination?.total;if(typeof total!=="number"){return{total:null,error:"\u5FDC\u7B54\u304B\u3089 pagination.total \u3092\u8AAD\u3081\u306A\u3044"}}return{total,error:null}}async get(path9){let token;try{token=await this.session.getAccessToken()}catch(err){return{ok:false,status:null,json:null,error:err.message}}try{const res=await this.fetchImpl(`${this.apiUrl}${path9}`,{headers:{Authorization:`Bearer ${token}`,"Content-Type":"application/json",Accept:"application/json"}});const raw=await res.text();
|
|
@@ -169,10 +168,10 @@ continue}try{const ageDays=(now-fs6.statSync(file).mtimeMs)/864e5;if(ageDays>thi
|
|
|
169
168
|
continue}const{run_id:runId,...rest}=payload;const res=await this.api.update(itemId,rest,runId||this.config.runId);if(res.ok){fs6.rmSync(file,{force:true});this.log.log(` \u2705 \u5B9F\u884C\u7D50\u679C\u3092\u518D\u9001\u3057\u307E\u3057\u305F: item=${itemId}\uFF08status=${payload.status}\uFF09`);if(payload.status==="completed")recorded.push(itemId)}else if(res.status===409){fs6.rmSync(file,{force:true});this.log.log(` \u26A0\uFE0F \u518D\u9001\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08409\u30FB\u65E2\u306B\u5225\u306E\u30E9\u30F3\u30CA\u30FC/\u5225\u306E run \u304C\u4FDD\u6301\uFF09: item=${itemId}\
|
|
170
169
|
\u2192 \u7D50\u679C\u306F\u7834\u68C4\u3057\u307E\u3059`)}else if(res.status!==null&&res.status>=400&&res.status<500&&res.status!==408&&res.status!==429){fs6.rmSync(file,{force:true});this.log.log(` \u26D4 \u30B5\u30FC\u30D0\u306B\u6052\u4E45\u7684\u306B\u62D2\u5426\u3055\u308C\u305F\u305F\u3081\u7834\u68C4\u3057\u307E\u3059\uFF08http=${res.status}\uFF09: item=${itemId}`)}else{this.log.log(` \u26A0\uFE0F \u518D\u9001\u306B\u5931\u6557\uFF08${describeError(res)}\uFF09: item=${itemId}\u3002\u6B21\u30B5\u30A4\u30AF\u30EB\u3067\u518D\u8A66\
|
|
171
170
|
\u884C\u3057\u307E\u3059`)}}return recorded}};function exitReasonFor(outcome){if(outcome==="ok")return"ok";if(outcome==="timeout")return"timeout";if(outcome==="rate-limited")return"rate_limited";if(outcome==="aborted")return"interrupted";if(outcome==="max-turns")return"max_turns";return"error"}function withFailureHint(base,output){const hint=failureHint(output);return hint===""?base:`${base} | ${hint}`}var STOP_WAIT_MAX_SEC=3600;var AI_RECOVERY_HINT="\u78BA\u8A8D: claude-auto-switch status \uFF0F \u5404AI CLI\u306E\u30ED\u30B0\u30A4\u30F3\u72B6\u614B\uFF08twp task-loop setup \u3067\u691C\u51FA\u7D50\u679C\u304C\u51FA\u307E\u3059\uFF09";
|
|
172
|
-
var ABORT_DRAIN_TIMEOUT_MS=15e3;var TaskLoop=class{constructor(deps){this.deps=deps;this.writeback=new Writeback(deps.api,deps.config,deps.log);this.schedule=new ScheduleBridge({config:deps.config,log:deps.log,api:new ScheduleApi(deps.api),fetchCount:async(key,statusId)=>{const{total,error}=await deps.
|
|
173
|
-
\uFF09\u3002\u3053\u306E\u67A0\u306F\u767A\u706B\u3057\u307E\u305B\u3093\uFF08fail-closed\uFF09`)}const refined=await refineCount(key,total,deps.config.operations.countHooks,deps.config.workspace);if(refined.note)deps.log.log(` ${refined.note}`);return refined.total}});this.
|
|
174
|
-
api,config:deps.config,log:deps.log,runner:deps.runner,hasPendingItems:async()=>await this.hasPendingItems()&&!this.nothingClaimableBacklog,reregister:async()=>{deps.runner.registered=false;await deps.runner.registerOrThrow()},...deps.sleepFn?{sleepFn:deps.sleepFn}:{}});this.
|
|
175
|
-
replace(/[-:]/g,"").replace(/\..*$/,"");this.settings=deps.settings??new LoopSettingsApplier({api:deps.api,config:deps.config,log:m=>deps.log.log(m)});this.skills=deps.skills??new ServerSkillCatalog({api:deps.api,config:deps.config,log:m=>deps.log.log(m)})}deps;writeback;schedule;planLock;engine;releaseLog;postDeps;timestamp;deferredIds=new Set;midcycleEnqueued=0;aborting=false;draining=false;nothingClaimableBacklog=false;drainExitCode=0;drainWaiters=new Set;itemInFlight=null;ownershipLostItemId=null;abortDrained=null;cyclePreflightSection="";trustGate;settings;skills;sleep(ms){
|
|
171
|
+
var ABORT_DRAIN_TIMEOUT_MS=15e3;function lastContractLine(logText,line){const prefix=line!==null&&/^[A-Z][A-Z0-9_]*$/.test(line)?line:"[A-Z][A-Z0-9_]*_RESULT";return[...logText.matchAll(new RegExp(`^(?:${prefix}):[^\\n]*`,"gm"))].at(-1)?.[0]??""}var TaskLoop=class{constructor(deps){this.deps=deps;this.writeback=new Writeback(deps.api,deps.config,deps.log);this.schedule=new ScheduleBridge({config:deps.config,log:deps.log,api:new ScheduleApi(deps.api),fetchCount:async(key,statusId)=>{const{total,error}=await deps.
|
|
172
|
+
projectApi.countByStatus(deps.config.projectId,statusId);if(error){deps.log.log(` \u26A0\uFE0F require_zero\u300C${key}\u300D\u306E\u4EF6\u6570\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${error}\uFF09\u3002\u3053\u306E\u67A0\u306F\u767A\u706B\u3057\u307E\u305B\u3093\uFF08fail-closed\uFF09`)}const refined=await refineCount(key,total,deps.config.operations.countHooks,deps.config.workspace);if(refined.note)deps.log.log(` ${refined.note}`);return refined.total}});this.
|
|
173
|
+
engine=deps.engine;this.releaseLog=new ReleaseOutcomeLog(deps.config.releaseOutcomeLogPath,deps.log);this.postDeps={api:deps.api,config:deps.config,log:deps.log,releaseLog:this.releaseLog};this.planLock=new PlanLock({api:deps.api,config:deps.config,log:deps.log,runner:deps.runner,hasPendingItems:async()=>await this.hasPendingItems()&&!this.nothingClaimableBacklog,reregister:async()=>{deps.runner.registered=false;await deps.runner.registerOrThrow()},...deps.sleepFn?{sleepFn:deps.sleepFn}:{}});this.
|
|
174
|
+
trustGate=deps.trustGate??new TrustGate({enabled:()=>deps.config.ai.usesAi("claude"),check:()=>checkWorkspaceTrust(deps.config.workspace,{launcherBin:deps.config.claudeLauncher.bin})});this.timestamp=new Date().toISOString().replace(/[-:]/g,"").replace(/\..*$/,"");this.settings=deps.settings??new LoopSettingsApplier({api:deps.api,config:deps.config,log:m=>deps.log.log(m)});this.skills=deps.skills??new ServerSkillCatalog({api:deps.api,config:deps.config,log:m=>deps.log.log(m)})}deps;writeback;schedule;planLock;engine;releaseLog;postDeps;timestamp;deferredIds=new Set;midcycleEnqueued=0;aborting=false;draining=false;nothingClaimableBacklog=false;drainExitCode=0;drainWaiters=new Set;itemInFlight=null;ownershipLostItemId=null;abortDrained=null;cyclePreflightSection="";trustGate;settings;skills;sleep(ms){
|
|
176
175
|
return(this.deps.sleepFn??sleep)(ms)}sleepUnlessDraining(ms){if(this.draining)return Promise.resolve();return new Promise(resolve=>{let timer=null;let settled=false;const wake=()=>{if(settled)return;settled=true;if(timer!==null)clearTimeout(timer);this.drainWaiters.delete(wake);resolve()};this.drainWaiters.add(wake);const injected=this.deps.sleepFn;if(injected)void injected(ms).then(wake);else timer=setTimeout(wake,ms)})}requestDrain(reason,exitCode=0){if(this.draining)return;this.draining=true;
|
|
177
176
|
this.drainExitCode=exitCode;const running=this.itemInFlight;const why=reason.trim()===""?"\u7406\u7531\u4E0D\u660E":reason;this.deps.log.log(running===null?`\u30C9\u30EC\u30A4\u30F3\u8981\u6C42\u3092\u53D7\u3051\u53D6\u308A\u307E\u3057\u305F\uFF08${why}\uFF09\u3002\u5B9F\u884C\u4E2D\u306E\u30A2\u30A4\u30C6\u30E0\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u65B0\u3057\u3044\u30A2\u30A4\u30C6\u30E0\u3092\u53D6\u3089\u305A\u306B\u7D42\u4E86\u3057\u307E\u3059\u3002`:`\u30C9\u30EC\u30A4\u30F3\u8981\u6C42\u3092\u53D7\u3051\u53D6\u308A\u307E\u3057\u305F\uFF08${why}\
|
|
178
177
|
\uFF09\u3002\u5B9F\u884C\u4E2D\u306E\u30A2\u30A4\u30C6\u30E0\uFF08${running}\uFF09\u3092\u5B8C\u8D70\u3055\u305B\u3066\u304B\u3089\u7D42\u4E86\u3057\u307E\u3059\u3002`);const waiters=[...this.drainWaiters];this.drainWaiters.clear();for(const w of waiters)w()}cooldownNote(outcome){if(outcome!=="rate-limited")return"";const remaining=this.deps.config.ai.minCooldownRemainingSec();return remaining===null?"":`\uFF08\u6700\u77ED\u306E\u89E3\u9664\u307E\u3067\u7D04${remaining}\u79D2\uFF09`}startOwnershipWatch(itemId){
|
|
@@ -238,16 +237,16 @@ await this.deps.api.pendingSnapshot()}return pendingCache};let pendingKeys=null;
|
|
|
238
237
|
return null}pendingKeys=new Set(pending.map(p=>(p.task_key??"").trim()).filter(k=>k!==""));return pendingKeys};let exclusiveQueued=null;let exclusiveFetched=false;const exclusiveInflight=async()=>{if(exclusiveFetched)return exclusiveQueued;exclusiveFetched=true;const pending=await pendingOnce();if(pending===null&&processing===null){log.log(" \u26A0\uFE0F \u30AD\u30E5\u30FC/\u5B9F\u884C\u4E2D\u30A2\u30A4\u30C6\u30E0\u306E\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F");
|
|
239
238
|
log.log(" \u5916\u90E8\u6295\u7A3F\u30B9\u30AD\u30EB\u306E\u540C\u6642\u5B9F\u884C\u30AC\u30FC\u30C9\u306F**\u3053\u306E\u30B5\u30A4\u30AF\u30EB\u7121\u52B9**\u3067\u3059\uFF08\u6295\u5165\u306F\u6B62\u3081\u307E\u305B\u3093\uFF09");return null}if(pending===null||processing===null){log.log(` \u26A0\uFE0F ${pending===null?"pending":"processing"} \u306E\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u305D\u306E\u3076\u3093\u5916\u90E8\u6295\u7A3F\u30B9\u30AD\u30EB\u306E\u540C\u6642\u5B9F\u884C\u30AC\u30FC\u30C9\u306F\u7DE9\u307F\u307E\u3059`)}
|
|
240
239
|
const entries=exclusiveInflightEntries([{status:"processing",items:processing??[]},{status:"pending",items:pending??[]}],{staleHours:inflightStaleHours(config.aiTimeoutSec)});const exclusive=entries.filter(e=>config.ai.isExclusiveSkill(e.skill));if(exclusive.length>0){log.log(" \u65E2\u306B\u30AD\u30E5\u30FC/\u5B9F\u884C\u4E2D\u306E\u6392\u4ED6\u30B9\u30AD\u30EB\uFF08\u3053\u306E\u8A08\u753B\u304B\u3089\u306F\u9664\u5916\u3057\u307E\u3059\uFF09:");for(const entry of exclusive)log.log(` - ${formatExclusiveEntry(
|
|
241
|
-
entry)}`)}exclusiveQueued=new Set(exclusive.map(e=>e.skill));return exclusiveQueued};let recentCandidates=null;let recentFetched=false;let resultFetchBudget=5;const recentAdvanceFor=async(taskKey,skill)=>{if(!recentFetched){recentFetched=true;const items=await this.deps.api.completedSince(windowStartMicros(new Date));if(items===null){log.log(" \u26A0\uFE0F \u76F4\u8FD1\u306E\u5B9F\u884C\u53F0\u5E33\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F");
|
|
242
|
-
\u6295\u5165\u6291\u6B62\u300D\u306F**\u3053\u306E\u30B5\u30A4\u30AF\u30EB\u7121\u52B9**\u3067\u3059\uFF08\u6295\u5165\u306F\u6B62\u3081\u307E\u305B\u3093\uFF09")}else{recentCandidates=buildRecentCandidateIndex(items);log.log(` \u76F4\u8FD1${RECENT_ADVANCE_WINDOW_HOURS}\u6642\u9593\u306B\u540C\u4E00\u30BF\u30B9\u30AF\u3092\u6271\u3063\u305F\u5B9F\u884C: ${recentCandidates.size}\u4EF6`)}}if(recentCandidates===
|
|
243
|
-
null)return null;return resolveRecentAdvance(candidate,async itemId=>{if(resultFetchBudget<=0)return null;resultFetchBudget-=1;const res=await this.deps.api.getItem(itemId);if(!res.ok){log.log(` \u26A0\uFE0F \u76F4\u8FD1\u30A2\u30A4\u30C6\u30E0\u306E\u7D50\u679C\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${describeError(res)}\uFF09\u3002${taskKey} \u306E\u518D\u6295\u5165\u306F\u6291\u6B62\u3057\u307E\u305B\u3093`);
|
|
244
|
-
const exclusiveEnqueued=new Set;const enqueuedTaskKeys=new Set;let enqueued=0;for(const step of plan.steps){const item=stepToItem(step,config.ai);if(!item)continue;if(!/^[a-z][a-z0-9-]*$/.test(step.skill)){log.log(` \u26A0\uFE0F \u30B9\u30AD\u30EB\u540D\u304C\u60F3\u5B9A\u306E\u6587\u5B57\u7A2E\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF08skill='${step.skill}'\uFF09\u3002\u6642\u9593\u5E2F\u30B2\u30FC\u30C8\u3068\u30AB\u30C6\u30B4\u30EA\u5224\u5B9A\u304C\u52B9\u304D\u307E\u305B\u3093`)}
|
|
245
|
-
step.args??"");if(placeholder!==null){log.log(` \u30A8\u30F3\u30AD\u30E5\u30FC\u6291\u6B62\uFF08\u30BF\u30B9\u30AF\u30AD\u30FC\u304C\u30D7\u30EC\u30FC\u30B9\u30DB\u30EB\u30C0\uFF09: ${step.skill} \u2014 args \u306B '${placeholder}' \u304C\u6B8B\u3063\u3066\u3044\u307E\u3059 | ${item.label}`);continue}const stepSkill=normalizeSkillName(step.skill??"");if(stepSkill==="release-deploy"&&releaseDeployDrop!==null){log.log(` \u30A8\u30F3\u30AD\u30E5\u30FC\u6291\u6B62\uFF08release-deploy \u306E\u7A7A\u632F\u308A\u9632\u6B62\uFF09: ${releaseDeployDrop}\
|
|
240
|
+
entry)}`)}exclusiveQueued=new Set(exclusive.map(e=>e.skill));return exclusiveQueued};let recentCandidates=null;let recentFetched=false;let resultFetchBudget=5;const recentAdvanceFor=async(taskKey,skill)=>{if(config.operations.advancingOutcomes.size===0)return null;if(!recentFetched){recentFetched=true;const items=await this.deps.api.completedSince(windowStartMicros(new Date));if(items===null){log.log(" \u26A0\uFE0F \u76F4\u8FD1\u306E\u5B9F\u884C\u53F0\u5E33\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F");
|
|
241
|
+
log.log(" \u300C\u524D\u56DE\u304C\u72B6\u614B\u3092\u9032\u3081\u305F\u5834\u5408\u306E\u518D\u6295\u5165\u6291\u6B62\u300D\u306F**\u3053\u306E\u30B5\u30A4\u30AF\u30EB\u7121\u52B9**\u3067\u3059\uFF08\u6295\u5165\u306F\u6B62\u3081\u307E\u305B\u3093\uFF09")}else{recentCandidates=buildRecentCandidateIndex(items);log.log(` \u76F4\u8FD1${RECENT_ADVANCE_WINDOW_HOURS}\u6642\u9593\u306B\u540C\u4E00\u30BF\u30B9\u30AF\u3092\u6271\u3063\u305F\u5B9F\u884C: ${recentCandidates.size}\u4EF6`)}}if(recentCandidates===
|
|
242
|
+
null)return null;const candidate=findRecentCandidate(recentCandidates,taskKey,skill);if(candidate===null)return null;return resolveRecentAdvance(candidate,async itemId=>{if(resultFetchBudget<=0)return null;resultFetchBudget-=1;const res=await this.deps.api.getItem(itemId);if(!res.ok){log.log(` \u26A0\uFE0F \u76F4\u8FD1\u30A2\u30A4\u30C6\u30E0\u306E\u7D50\u679C\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${describeError(res)}\uFF09\u3002${taskKey} \u306E\u518D\u6295\u5165\u306F\u6291\u6B62\u3057\u307E\u305B\u3093`);
|
|
243
|
+
return null}return res.json?.item?.result??null},config.operations.advancingOutcomes)};const exclusiveEnqueued=new Set;const enqueuedTaskKeys=new Set;let enqueued=0;for(const step of plan.steps){const item=stepToItem(step,config.ai);if(!item)continue;if(!/^[a-z][a-z0-9-]*$/.test(step.skill)){log.log(` \u26A0\uFE0F \u30B9\u30AD\u30EB\u540D\u304C\u60F3\u5B9A\u306E\u6587\u5B57\u7A2E\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF08skill='${step.skill}'\uFF09\u3002\u6642\u9593\u5E2F\u30B2\u30FC\u30C8\u3068\u30AB\u30C6\u30B4\u30EA\u5224\u5B9A\u304C\u52B9\u304D\u307E\u305B\u3093`)}
|
|
244
|
+
const placeholder=placeholderTaskKey(step.args??"");if(placeholder!==null){log.log(` \u30A8\u30F3\u30AD\u30E5\u30FC\u6291\u6B62\uFF08\u30BF\u30B9\u30AF\u30AD\u30FC\u304C\u30D7\u30EC\u30FC\u30B9\u30DB\u30EB\u30C0\uFF09: ${step.skill} \u2014 args \u306B '${placeholder}' \u304C\u6B8B\u3063\u3066\u3044\u307E\u3059 | ${item.label}`);continue}const stepSkill=normalizeSkillName(step.skill??"");if(stepSkill==="release-deploy"&&releaseDeployDrop!==null){log.log(` \u30A8\u30F3\u30AD\u30E5\u30FC\u6291\u6B62\uFF08release-deploy \u306E\u7A7A\u632F\u308A\u9632\u6B62\uFF09: ${releaseDeployDrop}\
|
|
246
245
|
| ${item.label}`);continue}const zeroTargetReason=zeroTargetDrops.get(stepSkill);if(zeroTargetReason!==void 0){log.log(` \u30A8\u30F3\u30AD\u30E5\u30FC\u6291\u6B62\uFF08\u5BFE\u8C610\u4EF6\uFF09: ${step.skill} \u2014 ${zeroTargetReason} | ${item.label}`);continue}if(item.task_key&&inflightKeys.has(item.task_key)){log.log(` \u30A8\u30F3\u30AD\u30E5\u30FC\u6291\u6B62\uFF08\u4ED6\u30E9\u30F3\u30CA\u30FC\u304C\u51E6\u7406\u4E2D\uFF09: ${step.skill} \u2014 ${item.task_key} \u306F\u4ED6\u30E9\u30F3\u30CA\u30FC\u304C\u51E6\u7406\u4E2D | ${item.
|
|
247
246
|
label}`);continue}if(item.task_key&&(await queuedPendingKeys())?.has(item.task_key)){log.log(` \u30A8\u30F3\u30AD\u30E5\u30FC\u6291\u6B62\uFF08\u65E2\u306B\u30AD\u30E5\u30FC\u5F85\u3061\uFF09: ${step.skill} \u2014 ${item.task_key} \u306F pending \u306B\u5C45\u307E\u3059 | ${item.label}`);continue}const duplicateKey=duplicateTaskKeyDropReason(enqueuedTaskKeys,item.task_key);if(duplicateKey!==null){log.log(` \u30A8\u30F3\u30AD\u30E5\u30FC\u6291\u6B62\uFF08\u540C\u4E00\u8A08\u753B\u5185\u306E\u91CD\u8907\u30AD\u30FC\uFF09: ${step.
|
|
248
247
|
skill} \u2014 ${duplicateKey} | ${item.label}`);continue}const excludedKey=excludedKeyInArgs(step.args??"",excludeKeys);if(excludedKey!==null){log.log(` \u30A8\u30F3\u30AD\u30E5\u30FC\u6291\u6B62\uFF08\u4EBA\u306B\u30DC\u30FC\u30EB\u304C\u3042\u308B\uFF09: ${step.skill} \u2014 ${excludedKey} \u306F\u672A\u56DE\u7B54\u306E\u8CEA\u554F\u3092\u6301\u3064\u4EBA\u9593\u5F85\u3061\u30BF\u30B9\u30AF | ${item.label}`);continue}if(item.task_key){const advance=await recentAdvanceFor(item.task_key,step.skill);
|
|
249
|
-
if(advance!==null){const gate2=shouldSuppressForStatus(advance,taskStatusSnapshot);if(gate2.suppress){log.log(` \u30A8\u30F3\u30AD\u30E5\u30FC\u6291\u6B62\uFF08\u524D\u56DE\u304C\u72B6\u614B\u3092\u9032\u3081\u305F\uFF09: ${step.skill} \u2014 ${item.task_key} \u306F ${formatRecentAdvance(advance)} | ${item.label}`);continue}log.log(` \u6291\u6B62\u3092\u898B\u9001\u308A: ${step.skill} \u2014 ${item.task_key} \u306F ${formatRecentAdvance(advance)} \u3060\u304C ${gate2.
|
|
250
|
-
const gate=await this.schedule.gateAllows(step.skill);if(!gate.allowed){log.log(` \u30A8\u30F3\u30AD\u30E5\u30FC\u6291\u6B62\uFF08\u6642\u9593\u5E2F\u30B2\u30FC\u30C8\uFF09: ${step.skill} \u2014 ${gate.reason} | ${item.label}`);continue}if(this.planLock.isLost()){log.log(` \u26D4 \u30A8\u30F3\u30AD\u30E5\u30FC\u4E2D\u306B\u8A08\u753B\u30ED\u30C3\u30AF\u3092\u5931\u3044\u307E\u3057\u305F\uFF08reason=${this.planLock.lostReasonText()}\uFF09\u2192 \u3053\u3053\u3067\u4E2D\u6B62\u3057\u307E\u3059\uFF08\u6295\u5165\u6E08\u307F: ${enqueued}\
|
|
248
|
+
if(advance!==null){const gate2=shouldSuppressForStatus(advance,taskStatusSnapshot,config.operations.advancingOutcomes);if(gate2.suppress){log.log(` \u30A8\u30F3\u30AD\u30E5\u30FC\u6291\u6B62\uFF08\u524D\u56DE\u304C\u72B6\u614B\u3092\u9032\u3081\u305F\uFF09: ${step.skill} \u2014 ${item.task_key} \u306F ${formatRecentAdvance(advance)} | ${item.label}`);continue}log.log(` \u6291\u6B62\u3092\u898B\u9001\u308A: ${step.skill} \u2014 ${item.task_key} \u306F ${formatRecentAdvance(advance)} \u3060\u304C ${gate2.
|
|
249
|
+
reason} | ${item.label}`)}}const gate=await this.schedule.gateAllows(step.skill);if(!gate.allowed){log.log(` \u30A8\u30F3\u30AD\u30E5\u30FC\u6291\u6B62\uFF08\u6642\u9593\u5E2F\u30B2\u30FC\u30C8\uFF09: ${step.skill} \u2014 ${gate.reason} | ${item.label}`);continue}if(this.planLock.isLost()){log.log(` \u26D4 \u30A8\u30F3\u30AD\u30E5\u30FC\u4E2D\u306B\u8A08\u753B\u30ED\u30C3\u30AF\u3092\u5931\u3044\u307E\u3057\u305F\uFF08reason=${this.planLock.lostReasonText()}\uFF09\u2192 \u3053\u3053\u3067\u4E2D\u6B62\u3057\u307E\u3059\uFF08\u6295\u5165\u6E08\u307F: ${enqueued}\
|
|
251
250
|
\u4EF6\uFF09`);break}const exclusiveSkill=config.ai.isExclusiveSkill(step.skill)?normalizeSkillName(step.skill):null;if(exclusiveSkill!==null){if(exclusiveEnqueued.has(exclusiveSkill)){log.log(` \u30A8\u30F3\u30AD\u30E5\u30FC\u6291\u6B62\uFF08\u5916\u90E8\u6295\u7A3F\u30B9\u30AD\u30EB\u306E\u540C\u6642\u5B9F\u884C\uFF09: ${step.skill} \u2014 \u540C\u3058\u8A08\u753B\u306B\u65E2\u306B1\u4EF6\u3042\u308A\u307E\u3059 | ${item.label}`);continue}const queuedSkills=await exclusiveInflight();if(queuedSkills?.
|
|
252
251
|
has(exclusiveSkill)){log.log(` \u30A8\u30F3\u30AD\u30E5\u30FC\u6291\u6B62\uFF08\u5916\u90E8\u6295\u7A3F\u30B9\u30AD\u30EB\u306E\u540C\u6642\u5B9F\u884C\uFF09: ${step.skill} \u2014 \u65E2\u306B\u30AD\u30E5\u30FC/\u5B9F\u884C\u4E2D\u306E\u305F\u3081\u7A4D\u307F\u307E\u305B\u3093 | ${item.label}`);continue}}const{itemId,detail}=await createItem(this.deps.api,item);if(itemId){enqueued+=1;if(exclusiveSkill!==null)exclusiveEnqueued.add(exclusiveSkill);if(item.task_key)enqueuedTaskKeys.add(item.task_key)}else{
|
|
253
252
|
log.log(` \u8B66\u544A: \u30A8\u30F3\u30AD\u30E5\u30FC\u5931\u6557: ${item.label} \u2014 ${detail}`)}}log.log(`\u8A08\u753B\u5B8C\u4E86: ${enqueued} \u30A2\u30A4\u30C6\u30E0\u3092\u30AD\u30E5\u30FC\u306B\u8FFD\u52A0\u3057\u307E\u3057\u305F`);return"ok"}async runDequeueLoop(cycle){const{config,log,api,runner}=this.deps;log.separator();log.log("Phase 2: \u30AD\u30E5\u30FC\u304B\u3089\u30C7\u30AD\u30E5\u30FC\u3057\u3066\u9806\u6B21\u5B9F\u884C...");log.separator();let completed=0;let failed=0;let unexecuted=0;
|
|
@@ -283,7 +282,7 @@ log.separator();return{progress:completed>0,emptyQueue:stepNum===0&&!undetermine
|
|
|
283
282
|
this.releaseLog.record("NOT_EXECUTED","unknown","RELEASE_RESULT\u884C\u306A\u3057\uFF08\u51FA\u529B\u5951\u7D04\u9055\u53CD\uFF09",usedAi);return}if(parsed.executed){log.log(` \u2705 \u30EA\u30EA\u30FC\u30B9\u5B9F\u884C\u6E08\u307F: ${parsed.line.slice(0,120)}`);this.releaseLog.record("EXECUTED","Phase5",parsed.reason,usedAi);return}log.log(` \u26A0\uFE0F \u30EA\u30EA\u30FC\u30B9\u672A\u5B9F\u884C: ${parsed.phase} \u3067\u4E2D\u6B62 \u2014 ${parsed.reason}`);this.releaseLog.record("NOT_EXECUT\
|
|
284
283
|
ED",parsed.phase,parsed.reason,usedAi);await enqueueBlockerRecovery(this.postDeps,parsed.line);await enqueueReleasePhase5Recovery(this.postDeps,parsed.line);await enqueueReleasePartialMergeRerun(this.postDeps,parsed.line);return}const followUp=this.deps.config.operations.postSuccessEnqueue.get(skillName);if(followUp){await enqueueDevVerifyForMerged(this.postDeps,logText,followUp)}}async runMaxTurnsHooks(skillName,logText,usedAi){const{log}=this.deps;log.log(" \u4F5C\u696D\u306E\u5927\u534A\u304C\u5B8C\u4E86\u3057\u3066\u3044\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u4EE5\u4E0B\u306E\u672A\u5B9F\u65BD\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\
|
|
285
284
|
\u3044:");log.log(" - TWP\u30BF\u30B9\u30AF\u306E\u30B9\u30C6\u30FC\u30BF\u30B9\u9077\u79FB\uFF08\u9032\u884C\u4E2D\u306E\u307E\u307E\u653E\u7F6E\u3055\u308C\u3066\u3044\u306A\u3044\u304B\uFF09");log.log(" - PR\u4F5C\u6210\u6E08\u307F\u306E\u5834\u5408\u306E\u30EC\u30D3\u30E5\u30FC\u4F9D\u983C\u30B3\u30E1\u30F3\u30C8\u30FB\u62C5\u5F53\u8005\u5909\u66F4");log.log(" - \u30A8\u30D3\u30C7\u30F3\u30B9\u6DFB\u4ED8\u30FB\u691C\u8A3C\u30C7\u30FC\u30BF\u306E\u30AF\u30EA\u30FC\u30F3\u30A2\u30C3\u30D7");
|
|
286
|
-
log.log(" \u6B21\u30B5\u30A4\u30AF\u30EB\u306E\u8A08\u753B\u30D5\u30A7\u30FC\u30BA\u3067 /twp-task-resume \u3068\u3057\u3066\u518D\u6295\u5165\u3055\u308C\u308B\u3053\u3068\u3092\u60F3\u5B9A\u3057\u3066\u3044\u307E\u3059\u3002");if(!this.deps.config.operations.contractSkills.has(skillName))return;const contract=
|
|
285
|
+
log.log(" \u6B21\u30B5\u30A4\u30AF\u30EB\u306E\u8A08\u753B\u30D5\u30A7\u30FC\u30BA\u3067 /twp-task-resume \u3068\u3057\u3066\u518D\u6295\u5165\u3055\u308C\u308B\u3053\u3068\u3092\u60F3\u5B9A\u3057\u3066\u3044\u307E\u3059\u3002");if(!this.deps.config.operations.contractSkills.has(skillName))return;const contract=lastContractLine(logText,this.deps.config.operations.contractLines.get(skillName)?.line??null);if(contract!==""){log.log(` \u26A0\uFE0F \u30BF\u30FC\u30F3\u4E0A\u9650\u3067\u6253\u3061\u5207\u3089\u308C\u307E\u3057\u305F\u304C\u5951\u7D04\u884C\u306F\u51FA\u3066\u3044\u307E\u3059: ${contract.
|
|
287
286
|
slice(0,120)}`)}else{log.log(` \u26A0\uFE0F ${skillName} \u304C\u30BF\u30FC\u30F3\u4E0A\u9650\u3067\u6253\u3061\u5207\u3089\u308C\u3001\u5951\u7D04\u884C\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);log.log(" develop \u3078\u306E\u30DE\u30FC\u30B8\u30FB\u672C\u756A\u30EA\u30EA\u30FC\u30B9\u304C**\u9014\u4E2D\u307E\u3067\u5B9F\u884C\u3055\u308C\u305F\u53EF\u80FD\u6027**\u304C\u3042\u308A\u307E\u3059\u3002");log.log(" \u6B21\u30B5\u30A4\u30AF\u30EB\u306E\u524D\u306B git\u30FB\u30EA\u30EA\u30FC\u30B9\u5C65\u6B74\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\uFF08A3: \u72B6\u614B\u3092\u73FE\u5B9F\u3068\u4E00\u81F4\u3055\u305B\u308B\uFF09\u3002")}
|
|
288
287
|
if(skillName==="release-deploy"){if(/RELEASE_RESULT:\s*EXECUTED/.test(contract)){this.releaseLog.record("EXECUTED","max-turns","\u30BF\u30FC\u30F3\u4E0A\u9650\u3067\u6253\u3061\u5207\u3089\u308C\u305F\u304C\u5951\u7D04\u884C\u306FEXECUTED",usedAi)}else{this.releaseLog.record("NOT_EXECUTED","max-turns",`\u30BF\u30FC\u30F3\u4E0A\u9650\u3067\u6253\u3061\u5207\u308A\uFF08\u5951\u7D04\u884C: ${contract===""?"\u306A\u3057":contract}\uFF09`,usedAi);await enqueueBlockerRecovery(this.postDeps,contract)}await enqueueReleasePartialMergeRerun(
|
|
289
288
|
this.postDeps,contract);return}const followUpOnCut=this.deps.config.operations.postSuccessEnqueue.get(skillName);if(followUpOnCut){await enqueueDevVerifyForMerged(this.postDeps,logText,followUpOnCut)}}async claimOne(){const{api,config,log,runner}=this.deps;let attempt=0;for(;;){const res=await api.claim(config.runnerId,config.runId);if(res.ok){const reason=pickString(res.json,"reason");if(reason==="contended")return{kind:"contended"};if(reason==="claimed"){const item=res.json?.item;if(item&&typeof item===
|
|
@@ -323,7 +322,7 @@ operations.preflightHosts;return new DispatchEngine(config.ai,log,{workspace:con
|
|
|
323
322
|
claudeLauncher.bin,...extraHosts.length>0?{preflightHosts:[...DEFAULT_PREFLIGHT_HOSTS,...extraHosts]}:{}})}function lockDir(config){return path8.join(config.stateDir,`task-loop-${projectFileKey(config.projectId)}.lock.d`)}async function runTaskLoop(opts){if(opts.action==="stop")return await stopLoop(opts);const profile=resolveProfile(opts.profile);let creds;try{creds=new AuthSession(profile.name,profile.apiUrl).loadOrThrow()}catch(err){process.stderr.write(`${err.message}
|
|
324
323
|
`);return 1}const apiUrl=effectiveApiUrl(profile,creds.api_url);const session=new AuthSession(profile.name,apiUrl);const projectRef=opts.project??process.env.TWP_PROJECT??"";if(projectRef===""){process.stderr.write("--project <\u30AD\u30FC|UUID> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08TWP_PROJECT \u3067\u3082\u53EF\uFF09\n");return 2}const projectApi=new ProjectApi(apiUrl,session);let project;try{project=await projectApi.resolve(projectRef)}catch(err){process.stderr.write(`${err.
|
|
325
324
|
message}
|
|
326
|
-
`);return 1}const projectId=project.id;if(opts.action==="setup"){const{runSetup,parseAiList}=await import("./setup-
|
|
325
|
+
`);return 1}const projectId=project.id;if(opts.action==="setup"){const{runSetup,parseAiList}=await import("./setup-SO3H4TDI.js");let ais;if(opts.ais!==void 0&&opts.ais.length>0){const parsed=parseAiList(opts.ais.join(","));if(parsed.unknown.length>0){process.stderr.write(`--ai \u306B\u672A\u77E5\u306E\u5024\u304C\u3042\u308A\u307E\u3059: ${parsed.unknown.join(" / ")}
|
|
327
326
|
`);return 2}ais=parsed.ais}return runSetup({projectId,projectRef,projectName:project.name===project.id?projectRef:`${project.code} / ${project.name}`,apiUrl,yes:opts.yes===true,...ais!==void 0?{ais}:{},...opts.workspace!==void 0?{workspace:opts.workspace}:{},...opts.aiConfigFile!==void 0?{aiConfigFile:opts.aiConfigFile}:{},...opts.noAiConfigFile===true?{noAiConfigFile:true}:{},...opts.profile!==void 0?{profile:opts.profile}:{}})}if(opts.action==="charter"){if(opts.charterOp===void 0){process.stderr.
|
|
328
327
|
write("charter \u306B\u306F push \u304B pull \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\n");return 2}if(isPrivateProjectId(projectId)){process.stderr.write("\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u30AD\u30E5\u30FC\uFF08--project __private__\uFF09\u306B\u306F\u61B2\u7AE0\u306E\u8A2D\u5B9A\u304C\u3042\u308A\u307E\u305B\u3093\n");return 2}const{runCharterCommand}=await import("./charter-command-LIX2JXRJ.js");return runCharterCommand({api:new AgentLoopApi({apiUrl,projectId,session})},{op:opts.
|
|
329
328
|
charterOp,file:opts.charterInput,out:opts.charterOutput,revision:opts.charterRevision,yes:opts.yes===true,projectRef,profile:opts.profile})}if(opts.action==="skill"){if(opts.skillOp===void 0){process.stderr.write("skill \u306B\u306F push \u304B pull \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\n");return 2}if(isPrivateProjectId(projectId)){process.stderr.write("\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u30AD\u30E5\u30FC\uFF08--project __private__\uFF09\u306B\u306F\u30B9\u30AD\u30EB\u5B9A\u7FA9\u306E\u8A2D\u5B9A\u304C\u3042\u308A\u307E\u305B\u3093\n");
|
|
@@ -344,7 +343,7 @@ let driftWatcher=null;const pendingDrain={value:null};const shutdown=async()=>{i
|
|
|
344
343
|
then(()=>process.exit(130))};process.once("SIGINT",onSignal);process.once("SIGTERM",onSignal);process.once("SIGHUP",onSignal);stopWatcher=watchMarker(lockDir(config),"stop",process.pid,req=>{log.log(`\u505C\u6B62\u8981\u6C42\u3092\u53D7\u3051\u53D6\u308A\u307E\u3057\u305F\uFF08${req.at||"\u6642\u523B\u4E0D\u660E"}\uFF09\u3002\u7D42\u4E86\u3057\u307E\u3059...`);stopWatcher?.();drainWatcher?.();driftWatcher?.();void shutdown().catch(()=>void 0).then(()=>process.exit(130))});drainWatcher=watchMarker(
|
|
345
344
|
lockDir(config),"drain",process.pid,req=>{drainWatcher?.();if(loop===null){pendingDrain.value={reason:`stop --drain\u30FB${req.at||"\u6642\u523B\u4E0D\u660E"}`,exitCode:0};log.log(`\u30C9\u30EC\u30A4\u30F3\u8981\u6C42\u3092\u53D7\u3051\u53D6\u308A\u307E\u3057\u305F\uFF08${req.at||"\u6642\u523B\u4E0D\u660E"}\uFF09\u3002\u8D77\u52D5\u51E6\u7406\u306E\u5B8C\u4E86\u5F8C\u306B\u53CD\u6620\u3057\u307E\u3059\u3002`);return}loop.requestDrain(`stop --drain\u30FB${req.at||"\u6642\u523B\u4E0D\u660E"}`)});if(installed!==
|
|
346
345
|
null){const watch=watchVersionDrift({runningVersion:opts.version,stateDir:config.stateDir,projectKey:projectFileKey(config.projectId),supervised:autoRestart.supervised,disabled:autoRestart.disabled},{onWarn:reason=>log.log(`\u26A0\uFE0F ${reason}`),onRestart:({from,to})=>{driftWatcher?.();log.log(`\u7248\u30C9\u30EA\u30D5\u30C8\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\uFF08${from} \u2192 ${to}\uFF09\u3002`);log.log(` \u5B9F\u884C\u4E2D\u306E\u30A2\u30A4\u30C6\u30E0\u3092\u5B8C\u8D70\u3055\u305B\u3066\u304B\u3089\u7D42\u4E86\u3057\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 ${EXIT_VERSION_DRIFT}\
|
|
347
|
-
\uFF09\u3002\u518D\u8D77\u52D5\u306F systemd\uFF08Restart=always\uFF09\u304C\u884C\u3044\u307E\u3059`);const reason=`\u7248\u30C9\u30EA\u30D5\u30C8 ${from} \u2192 ${to} \u306B\u3088\u308B\u81EA\u52D5\u518D\u8D77\u52D5`;if(loop===null)pendingDrain.value={reason,exitCode:EXIT_VERSION_DRIFT};else loop.requestDrain(reason,EXIT_VERSION_DRIFT)}});driftWatcher=watch.stop}try{const{LoopSettingsApplier:LoopSettingsApplier2}=await import("./server-settings-
|
|
346
|
+
\uFF09\u3002\u518D\u8D77\u52D5\u306F systemd\uFF08Restart=always\uFF09\u304C\u884C\u3044\u307E\u3059`);const reason=`\u7248\u30C9\u30EA\u30D5\u30C8 ${from} \u2192 ${to} \u306B\u3088\u308B\u81EA\u52D5\u518D\u8D77\u52D5`;if(loop===null)pendingDrain.value={reason,exitCode:EXIT_VERSION_DRIFT};else loop.requestDrain(reason,EXIT_VERSION_DRIFT)}});driftWatcher=watch.stop}try{const{LoopSettingsApplier:LoopSettingsApplier2}=await import("./server-settings-2M63F3KB.js");const settings=new LoopSettingsApplier2(
|
|
348
347
|
{api,config,log:m=>log.log(m)});await settings.apply();const{ServerSkillCatalog:ServerSkillCatalog2}=await import("./server-skills-IXIOOOC2.js");const skills=new ServerSkillCatalog2({api,config,log:m=>log.log(m)});await skills.refresh();await runner.checkHeartbeatInterval();await runner.registerOrThrow();runner.startHeartbeatWorker();log.log(` heartbeat: ${config.heartbeatIntervalSec}\u79D2\u3054\u3068\u306B\u9001\u4FE1${runner.heartbeatTimeoutServer?`\uFF08\u30B5\u30FC\u30D0\u306E\u6B7B\u6D3B\u3057\u304D\u3044\u5024 ${runner.
|
|
349
348
|
heartbeatTimeoutServer}\u79D2\uFF09`:""}`);loop=new TaskLoop({api,projectApi,config,log,runner,engine:await buildEngine(config,m=>log.log(m)),settings,skills});if(pendingDrain.value!==null){loop.requestDrain(pendingDrain.value.reason,pendingDrain.value.exitCode)}exitCode=await loop.run()}catch(err){if(err instanceof RunnerRegistrationError){exitCode=1}else{log.log(`\u26D4 \u4E88\u671F\u3057\u306A\u3044\u30A8\u30E9\u30FC\u3067\u7D42\u4E86\u3057\u307E\u3059: ${err.message}`);exitCode=1}}finally{await shutdown()}
|
|
350
349
|
return exitCode}async function showStatus(api,config){const out={write:text=>process.stdout.write(stripTerminalControls(text))};out.write(`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8: ${config.projectRef}\uFF08${config.projectId}\uFF09
|
|
@@ -50,7 +50,7 @@ ${err.hint?`${err.hint}
|
|
|
50
50
|
`);return 1}writeErr(`\u30A8\u30E9\u30FC: ${err.message}
|
|
51
51
|
`);return 1}}async function runLogin(options){return run(async()=>{const profile=resolveProfile(options.profile);const io=makeIo(options.cliVersion);if(options.method==="password"){await passwordLogin(profile,{tenantCode:options.tenant??void 0},process.env,io)}else if(options.method==="token"){await tokenLogin(profile,process.env,io)}else{await browserLogin(profile,process.env,io,{noBrowser:options.noBrowser})}})}async function runLogout(options){return run(async()=>{const profile=resolveProfile(
|
|
52
52
|
options.profile);const creds=loadCredentials(profile.name);if(!creds){writeOut(`\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u300C${profile.name}\u300D\u306F\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u307E\u305B\u3093\u3002
|
|
53
|
-
`);return}const{describeLogoutImpact,findLoopsUsingProfile}=await import("./logout-guard-
|
|
53
|
+
`);return}const{describeLogoutImpact,findLoopsUsingProfile}=await import("./logout-guard-DJMJ56SG.js");const found=findLoopsUsingProfile(profile.name,options.logoutGuard);if(found.users.length>0||found.undetermined.length>0){writeErr(describeLogoutImpact(profile.name,found,options.force===true));if(options.force!==true)throw new LogoutRefusedError}const apiUrl=effectiveApiUrl(profile,creds.api_url);const revoked=await httpFetch(`${apiUrl}/api/v2/auth/logout`,{method:"POST",headers:{Accept:"applic\
|
|
54
54
|
ation/json",Authorization:`Bearer ${creds.token}`}}).then(res=>res.ok,()=>false);await deleteCredentials(profile.name);writeOut(`\u2705 \u30ED\u30B0\u30A2\u30A6\u30C8\u3057\u307E\u3057\u305F\uFF08\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB: ${profile.name} / \u30C8\u30FC\u30AF\u30F3: ${maskToken(creds.token)}\uFF09
|
|
55
55
|
`);if(!revoked){writeOut("\u26A0 \u30B5\u30FC\u30D0\u5074\u306E\u30C8\u30FC\u30AF\u30F3\u5931\u52B9\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF08\u30AA\u30D5\u30E9\u30A4\u30F3\u7B49\uFF09\u3002TWP \u306E\u300C\u8A2D\u5B9A > CLI\u7AEF\u672B\u300D\u304B\u3089\u3082\u5931\u52B9\u3067\u304D\u307E\u3059\u3002\n")}})}async function runWhoami(options){return run(async()=>{const profile=resolveProfile(options.profile);const structured=options.output!==void 0||options.query!==void 0;let format=null;if(structured){
|
|
56
56
|
const{resolveOutputFormat,OUTPUT_FORMATS}=await import("./format-NMW6Y2E5.js");format=resolveOutputFormat({...options.output!==void 0?{flag:options.output}:{},isTty:process.stdout.isTTY===true});if(format===null){throw new UsageError(`--output \u306B\u300C${options.output??""}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${OUTPUT_FORMATS.join(" / ")} \u3067\u3059`)}}const stored=loadCredentials(profile.name);const apiUrl=effectiveApiUrl(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{customerDocumentSubresources}from"./chunk-
|
|
4
|
-
import"./chunk-
|
|
3
|
+
import{customerDocumentSubresources}from"./chunk-KVVZLW4M.js";import{COMPANY_FIELDS,COMPANY_LICENSE,CUSTOMER_LICENSE,customerSubresources,customerWriteOperations,dataOf,levelForbidden}from"./chunk-W7MH3UZU.js";import"./chunk-PCSADROQ.js";import"./chunk-V64CGX7V.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-NRZRMRHC.js";import"./chunk-QLENN5DD.js";import"./chunk-GY7KI5E5.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-PW5VCZFO.js";
|
|
4
|
+
import"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{LIST_FLAGS,LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,envelopePaging,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes,positiveInteger}from"./chunk-MI6HVYR2.js";import{CUSTOMERS_PATH,SALES_COMPANIES_PATH,isExactNumericId}from"./chunk-3LWQO2ZK.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import{ApiError}from"./chunk-JA5A6UJ2.js";
|
|
5
5
|
import"./chunk-QBGEYQ2I.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var CUSTOMER_FLAG_FIELD={kind:"boolean",flag:"--customer",key:"customer_flg",summary:"\u9867\u5BA2\u3068\u3057\u3066\u6271\u3046\u304B\uFF08true / false\uFF09"};var FIELDS=[...COMPANY_FIELDS,CUSTOMER_FLAG_FIELD];var COLUMNS=["id","company_name","company_name_kana","company_short_name","customer_flg","supplier_flg","tel","address1"];var WRITE_FORBIDDEN=levelForbidden(COMPANY_LICENSE,"\u53D6\u5F15\u5148\u306E\u4F5C\u6210\u30FB\u66F4\u65B0\u306B\u306F\u3001\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u30E1\u30F3\u30D0\u30FC\u300D\u4EE5\u4E0A\u304B\u3001\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7DE8\u96C6\u8005\u300D\u4EE5\u4E0A\u306E\u3069\u3061\u3089\u304B\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
|
|
6
6
|
var DELETE_FORBIDDEN=levelForbidden(COMPANY_LICENSE,"\u53D6\u5F15\u5148\u306E\u524A\u9664\u306B\u306F\u3001\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u30E1\u30F3\u30D0\u30FC\u300D\u4EE5\u4E0A\u304B\u3001\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u306E\u3069\u3061\u3089\u304B\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");var REF_HELP="<\u53D6\u5F15\u5148> \u306F\u4F01\u696D\u540D\u30FB\u7565\u79F0\u30FB\u30AB\u30CA\u306E\u5B8C\u5168\u4E00\u81F4\u304B\
|
|
7
7
|
ID\uFF08twp company list \u306E id \u5217\u306E\u6570\u5B57\uFF09\u3067\u6307\u5B9A\u3057\u307E\u3059\u3002\u9867\u5BA2\u30FB\u4ED5\u5165\u5148\u306E\u3069\u3061\u3089\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002";function companyPath(input){const id=requireResolved(input,"companyId");if(!isExactNumericId(id))throw new UsageError(`\u53D6\u5F15\u5148 ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${id}`);return`${SALES_COMPANIES_PATH}/${id}`}async function resolveCompany(input,ctx,usage){
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{contractAiReviewResources}from"./chunk-
|
|
3
|
+
import{contractAiReviewResources}from"./chunk-2V6VC7TP.js";import"./chunk-7B7XNTQG.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-PW5VCZFO.js";import{isoDate}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.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{readBody}from"./chunk-6LSQCOCJ.js";
|
|
4
4
|
import{SALES_CONTRACTS_PATH,isExactNumericId,resolveNamed}from"./chunk-3LWQO2ZK.js";import"./chunk-GMBJTG6A.js";import"./chunk-JA5A6UJ2.js";import"./chunk-QBGEYQ2I.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";
|
|
5
5
|
import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var PATH=SALES_CONTRACTS_PATH;var SALES_FORBIDDEN=licenseForbidden(featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"));var DISAMBIGUATION="\u53D6\u5F15\u5951\u7D04\u306F\u898B\u7A4D\u304B\u3089\u4F5C\u308B\u8CA9\u58F2\u7BA1\u7406\u306E\u66F8\u985E\u3067\u3059\uFF08\u660E\u7D30\u30FB\u91D1\u984D\u3092\u6301\u3061\u3001\u627F\u8A8D\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306B\u4E57\u308A\u307E\u3059\uFF09\u3002\n\u9867\u5BA2\u306B\u7D10\u3065\u3051\u3066\u4FDD\u7BA1\u3059\u308B\u5951\u7D04\u66F8\u306E PDF \u306F\u5225\u7269\u3067\u3001twp customer contract \u3067\u6271\u3044\u307E\u3059\u3002\n\n";
|
|
6
6
|
var CONTRACT_STATUSES={new:"\u4F5C\u6210\u4E2D",create_completed:"\u4F5C\u6210\u5B8C\u4E86",in_progress:"\u7533\u8ACB\u4E2D",approved:"\u627F\u8A8D\u6E08",rejected:"\u5DEE\u3057\u623B\u3057",submitted:"\u63D0\u793A\u6E08",contracted:"\u5951\u7D04\u7DE0\u7D50\u6E08",deleted:"\u524A\u9664\u6E08"};var RENEWAL_TYPES={auto_renewal:"\u81EA\u52D5\u66F4\u65B0",application_renewal:"\u7533\u8FBC\u306B\u3088\u308B\u66F4\u65B0"};function statusName(code){return CONTRACT_STATUSES[code]??code}function tableHelp(table){
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{cacheNote,createFlags,fieldBody,hasAnyField,idSegment,masterFields,masterItem,masterListOperation,masterRows,referencedDeleteGuidance,resolveRefFields,targetId,updateFlags}from"./chunk-
|
|
3
|
+
import{cacheNote,createFlags,fieldBody,hasAnyField,idSegment,masterFields,masterItem,masterListOperation,masterRows,referencedDeleteGuidance,resolveRefFields,targetId,updateFlags}from"./chunk-NRZRMRHC.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import{DEPARTMENTS_PATH}from"./chunk-3LWQO2ZK.js";import"./chunk-GMBJTG6A.js";import"./chunk-JA5A6UJ2.js";import"./chunk-QBGEYQ2I.js";import{withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";
|
|
4
4
|
import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LABEL="\u90E8\u7F72";var LIST_COLUMNS=["id","code","name","parent_id","level","effective_status","valid_from","valid_to","member_count"];var GET_COLUMNS=["id","code","name","name_short","parent_id","level","sort","effective_status","valid_from","valid_to","description"];var TREE_COLUMNS=["depth","name","code","id","effective_status","valid_to"];var MEMBER_COLUMNS=["id","user_id","position_id","job_title_id","start_date","end_date","is_primary","is_current","effective_status"];var REF_FLAG={name:"\
|
|
5
5
|
--department",summary:"\u5BFE\u8C61\u306E\u90E8\u7F72\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<\u90E8\u7F72>"};var REF_HELP="<\u90E8\u7F72> \u306F\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID \u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u540D\u524D\u304C\u8907\u6570\u306B\u4E00\u81F4\u3059\u308C\u3070\u5019\u88DC\u3092\u51FA\u3057\u3066\u6B62\u307E\u308A\u307E\u3059\uFF09\u3002\nID \u4EE5\u5916\u306F\u90E8\u7F72\u4E00\u89A7\uFF08\u65E2\u5B9A10\u5206\u30AD\u30E3\u30C3\u30B7\u30E5\u30FB--refresh \u3067\u53D6\u308A\u76F4\u3057\uFF09\u3068\u7167\u5408\u3057\u307E\u3059\u3002";
|
|
6
6
|
var FIELDS=masterFields(LABEL,[{kind:"text",flag:"--name-short",key:"name_short",label:"\u7565\u79F0",maxChars:50,summary:"\u7565\u79F0"},{kind:"ref",flag:"--parent",key:"parent_id",summary:"\u89AA\u90E8\u7F72\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",placeholder:"<\u90E8\u7F72>",clearFlag:"--no-parent",clearSummary:"\u89AA\u90E8\u7F72\u3092\u5916\u3057\u3066\u6700\u4E0A\u4F4D\u306B\u3059\u308B",resolve:(ctx,ref,flag)=>ctx.resolver.department(ref,flag)},{kind:"integer",flag:"--sor\
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{depositDomain,depositIdArg,describeDeposit,excerpt,parseAllocationRows,parsePlanBody,planSkeleton,salesAdminForbidden,sendAtomic}from"./chunk-
|
|
3
|
+
import{depositDomain,depositIdArg,describeDeposit,excerpt,parseAllocationRows,parsePlanBody,planSkeleton,salesAdminForbidden,sendAtomic}from"./chunk-PBFQYQ5U.js";import"./chunk-QLENN5DD.js";import"./chunk-PW5VCZFO.js";import"./chunk-JJSBBWJ5.js";import"./chunk-RX5HWI4L.js";import"./chunk-MI6HVYR2.js";import"./chunk-6LSQCOCJ.js";import"./chunk-3LWQO2ZK.js";import"./chunk-GMBJTG6A.js";import"./chunk-JA5A6UJ2.js";import"./chunk-QBGEYQ2I.js";
|
|
4
4
|
import"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.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";import"./chunk-VSJBJXZO.js";export{depositDomain,depositIdArg,describeDeposit,excerpt,parseAllocationRows,parsePlanBody,planSkeleton,salesAdminForbidden,sendAtomic};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{estimateCaseDocumentResource}from"./chunk-
|
|
4
|
-
estimateAiReviewResources}from"./chunk-
|
|
3
|
+
import{estimateCaseDocumentResource}from"./chunk-QMPIZUIP.js";import"./chunk-KVVZLW4M.js";import"./chunk-W7MH3UZU.js";import{contentTypeFor,inspectLocalFile,issued}from"./chunk-PCSADROQ.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import"./chunk-NRZRMRHC.js";import{estimateNoRuleResource}from"./chunk-OSEU4WMN.js";import{salesAdminForbidden}from"./chunk-PBFQYQ5U.js";import"./chunk-QLENN5DD.js";import"./chunk-GY7KI5E5.js";import{
|
|
4
|
+
estimateAiReviewResources}from"./chunk-2V6VC7TP.js";import{estimatePdfOperation}from"./chunk-7B7XNTQG.js";import{estimateReadOperations,featureLicenseGuidance,licenseForbidden}from"./chunk-PW5VCZFO.js";import"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{charCount,readBody}from"./chunk-6LSQCOCJ.js";
|
|
5
5
|
import{SALES_ESTIMATES_PATH,SALES_ESTIMATE_FORMATS_PATH,SALES_ESTIMATE_NO_RULES_PATH,SALES_INVOICE_NO_RULES_PATH,isExactNumericId}from"./chunk-3LWQO2ZK.js";import{isSafePathSegment}from"./chunk-GMBJTG6A.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-QBGEYQ2I.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";
|
|
6
6
|
import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var PATH=SALES_ESTIMATE_FORMATS_PATH;var LABEL="\u898B\u7A4D\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8";var CONTENT_KEYS=["format_name","start_date","end_date","default_unit","default_tax_rate","default_business_place_id","default_seal_impression_id","default_estimate_no_id","default_invoice_no_id","default_payee_id","default_terms","default_invoice_memo","default_purchase_terms","default_purchase_acceptance_terms","estimate_workflow_id","contract_workflow_id","invoice_workflow_id","purchase_workflow_\
|
|
7
7
|
id","description","estimate_manage_content","contract_manage_content","invoice_manage_content","sort_order"];var FIELD_NOTES=[["format_name","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u540D\uFF08255 \u6587\u5B57\u307E\u3067\uFF09"],["default_unit","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u660E\u7D30\u306E\u65E2\u5B9A\u306E\u5358\u4F4D\uFF08set / item / unit / hour / day / month / person / person_month / person_day\uFF09"],["default_tax_rate",'\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u65E2\u5B9A\u306E\u7A0E\u7387\uFF08"10" / "8" / \
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{featureLicenseGuidance}from"./chunk-
|
|
3
|
+
import{featureLicenseGuidance}from"./chunk-PW5VCZFO.js";import"./chunk-JJSBBWJ5.js";import"./chunk-RX5HWI4L.js";import"./chunk-MI6HVYR2.js";import{monthFlag}from"./chunk-EXT4AIDF.js";import{readBody}from"./chunk-6LSQCOCJ.js";import"./chunk-3LWQO2ZK.js";import{UUID_RE,isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-JA5A6UJ2.js";import"./chunk-QBGEYQ2I.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";
|
|
4
4
|
import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var BASE="/api/v2/expense/commuting";var WORKFLOW_CATEGORY="commuting_expenses";var LIST_LIMIT_MAX=100;var DEFAULT_LIST_LIMIT=24;var COMMENT_MAX=1e3;var CONTENT_MAX_CHARS=2e4;var STATUSES=["draft","pending","approved","rejected"];var ENTRY_VALUES=["round_trip","one_way",""];var CONTENT_KEYS=["daily_entries","comment"];var LIST_COLUMNS=["id","year_month","status","total_round_trips","total_one_ways","total_amount","updated_at"];var ADMIN_LIST_COLUMNS=["id","user_name","year_month","status","total\
|
|
5
5
|
_round_trips","total_one_ways","total_amount","updated_at"];var GET_COLUMNS=["id","year_month","status","commuting_facilities","commuting_route","commuting_cost_one_way","total_round_trips","total_one_ways","total_amount","workflow_instance_id","comment"];var LICENSE=featureLicenseGuidance("\u7D4C\u8CBB\u7BA1\u7406");var USER_FORBIDDEN=body=>body?.error==="permission_denied"?LICENSE:"\u3053\u306E\u901A\u52E4\u4EA4\u901A\u8CBB\u3092\u64CD\u4F5C\u3059\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u81EA\u5206\u306E\u5206\u304B\u3001\u7D4C\u8CBB\u306E\u7BA1\u7406\u8005\u3060\u3051\u304C\u6271\u3048\u307E\u3059\uFF09";
|
|
6
6
|
var ADMIN_FORBIDDEN=body=>body?.error==="permission_denied"?LICENSE:"\u7D4C\u8CBB\u306E\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\uFF08\u30C6\u30CA\u30F3\u30C8\u306E\u7BA1\u7406\u8005\u304B\u3001\u7D4C\u8CBB\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u306E\u4EBA\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059\uFF09\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044";var MONTH_FLAG={name:"--month",summary:"\u5BFE\u8C61\u306E\u5E74\u6708\uFF08YYYY-\
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{booleanText,boundedText}from"./chunk-
|
|
3
|
+
import{booleanText,boundedText}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{INQUIRY_CATEGORIES_PATH}from"./chunk-3LWQO2ZK.js";import{UUID_RE,isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-JA5A6UJ2.js";import"./chunk-QBGEYQ2I.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,
|
|
4
4
|
UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LABEL="\u554F\u3044\u5408\u308F\u305B\u30AB\u30C6\u30B4\u30EA";var LIST_COLUMNS=["id","category_code","title","sort","is_active","notification_user_count"];var GET_COLUMNS=["id","category_code","title","description","sort","is_active","notification_users"];var FORBIDDEN=`\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002${LABEL}\u306E\u8A73\u7D30\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u306F\u554F\u3044\u5408\u308F\u305B\u6A5F\u80FD\u306E\u7BA1\u7406\u8005\u3060\u3051\u304C\u884C\u3048\u307E\u3059`;
|
|
5
5
|
var SORT_LAST="last";var CODE_RE=/^[a-zA-Z0-9_-]+$/;var REF_HELP="<\u30AB\u30C6\u30B4\u30EA> \u306F\u30AB\u30C6\u30B4\u30EA\u30B3\u30FC\u30C9\u30FB\u540D\u524D\uFF08title\uFF09\u30FBID \u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u540D\u524D\u304C\u8907\u6570\u306B\u4E00\u81F4\u3059\u308C\u3070\u5019\u88DC\u3092\u51FA\u3057\u3066\u6B62\u307E\u308A\u307E\u3059\uFF09\u3002\nID \u4EE5\u5916\u306F\u30AB\u30C6\u30B4\u30EA\u4E00\u89A7\uFF08\u65E2\u5B9A10\u5206\u30AD\u30E3\u30C3\u30B7\u30E5\u30FB--refresh \u3067\u53D6\u308A\u76F4\u3057\uFF09\u3068\u7167\u5408\u3057\u307E\u3059\u3002";
|
|
6
6
|
var NOTIFY_HELP="--notify \u306F\u901A\u77E5\u5148\u306E\u30E6\u30FC\u30B6\u30FC\u3067\u3001\u8907\u6570\u56DE\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\u30E6\u30FC\u30B6\u30FC\u306F ID\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u793E\u54E1\u756A\u53F7\u30FB\u6C0F\u540D\u3067\u6307\u5B9A\u3067\u304D\u307E\u3059\n\uFF08ID \u4EE5\u5916\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u3068\u7167\u5408\u3057\u307E\u3059\u3002\u7D44\u7E54\u7BA1\u7406\u8005\u3067\u306A\u3044\u5834\u5408\u306F ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{invoiceNoRuleResource}from"./chunk-
|
|
3
|
+
import{invoiceNoRuleResource}from"./chunk-OSEU4WMN.js";import"./chunk-PBFQYQ5U.js";import"./chunk-QLENN5DD.js";import{invoiceAiReviewResources}from"./chunk-2V6VC7TP.js";import{invoicePdfOperation}from"./chunk-7B7XNTQG.js";import{featureLicenseGuidance,invoiceFilters,invoiceReadOperations,licenseForbidden}from"./chunk-PW5VCZFO.js";import{booleanText,isoDate}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{LIST_PAGING_HELP,
|
|
4
4
|
PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SALES_INVOICES_PATH,SALES_INVOICE_AUTO_TEMPLATES_PATH,isExactNumericId,resolveNamed}from"./chunk-3LWQO2ZK.js";import"./chunk-GMBJTG6A.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-QBGEYQ2I.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";
|
|
5
5
|
import"./chunk-II5RVJQN.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var PATH=SALES_INVOICE_AUTO_TEMPLATES_PATH;var HISTORY_SEARCH_PATH="/api/v2/sales/invoice-auto-issue-histories";var FORMATS_PATH="/api/v2/sales/estimate-formats";function adminForbidden(body){return body?.error==="permission_denied"?featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"):"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3068\u767A\u884C\u5C65\u6B74\u306F\u3001\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u306E\u4EBA\u3060\u3051\u304C\u6271\u3048\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}
|
|
6
6
|
var CONTENT_KEYS=["template_name","estimate_format_id","interval_months","next_issue_date","period_start_date","period_end_date","payment_term_months","payment_term_day","estimate_expiration_months","estimate_expiration_day","order_acceptance_months","order_acceptance_day","invoice_date_months","invoice_date_day","estimate_business_place_id","estimate_seal_impression_id","invoice_business_place_id","invoice_seal_impression_id","company_id","project_id","payee_id","estimate_user_id","invoice_user\
|
|
@@ -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-NRZRMRHC.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import{JOB_TITLES_PATH}from"./chunk-3LWQO2ZK.js";import"./chunk-GMBJTG6A.js";import"./chunk-JA5A6UJ2.js";import"./chunk-QBGEYQ2I.js";import"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";
|
|
4
4
|
import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var jobTitleDomain=flatMasterDomain({name:"job-title",label:"\u8077\u4F4D",path:JOB_TITLES_PATH,itemKey:"job_title",summary:"\u8077\u4F4D\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","position_id","base_selling_price","base_cost_price"],getColumns:["id","code","name","name_short","sort_order","status","position_id","base_selling_price","base_cost_price","description"],fields:[
|
|
5
5
|
{kind:"text",flag:"--name-short",key:"name_short",label:"\u7565\u79F0",maxChars:50,summary:"\u7565\u79F0"},{kind:"integer",flag:"--sort-order",key:"sort_order",label:"\u8868\u793A\u9806",min:0,max:9999,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"},
|
|
6
6
|
{kind:"integer",flag:"--base-selling-price",key:"base_selling_price",label:"\u57FA\u6E96\u58F2\u4FA1",min:0,summary:"\u57FA\u6E96\u58F2\u4FA1\uFF080\u4EE5\u4E0A\u306E\u6574\u6570\uFF09"},{kind:"integer",flag:"--base-cost-price",key:"base_cost_price",label:"\u57FA\u6E96\u539F\u4FA1",min:0,summary:"\u57FA\u6E96\u539F\u4FA1\uFF080\u4EE5\u4E0A\u306E\u6574\u6570\uFF09"},{kind:"text",flag:"--skill-requirements",key:"skill_requirements",label:"\u30B9\u30AD\u30EB\u8981\u4EF6",maxChars:5e3,summary:"\u30B9\u30AD\u30EB\u8981\u4EF6"},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{composeDocument,meetingContentToText,metaLine,noteContentToText,oneLine,wikiContentToText}from"./chunk-QSXS5SB2.js";import{boundedText}from"./chunk-
|
|
3
|
+
import{composeDocument,meetingContentToText,metaLine,noteContentToText,oneLine,wikiContentToText}from"./chunk-QSXS5SB2.js";import{boundedText}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{dateFlag}from"./chunk-EXT4AIDF.js";import"./chunk-3LWQO2ZK.js";import{ResolveError,isSafePathSegment}from"./chunk-GMBJTG6A.js";import"./chunk-JA5A6UJ2.js";
|
|
4
4
|
import"./chunk-QBGEYQ2I.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var WIKI_PATH="/api/v2/wiki";var NOTES_PATH="/api/v2/notes";var MEETINGS_PATH="/api/v2/meetings";var ROOT_PARENT="root";var WIKI_STATUSES=["draft","published"];var NOTE_STATUSES=["draft","published"];var NOTE_VISIBILITIES=["private","tenant","external","public"];var NOTE_SORTS=["manual","created_at","updated_at","view_count","comment_count","reaction_count"];var MEETING_STATUSES=["draft","published","archived"];var MEETING_TYPES=["regular","client","internal","retrospective","decision","one_on_o\
|
|
5
5
|
ne"];var MEETING_SORTS=["meeting_date","created_at","updated_at","title"];var SORT_ORDERS=["asc","desc"];var MEETING_TAGS_MAX=20;var MEETING_TAG_MAX_CHARS=50;var DATE_FLOOR="0000-01-01";var DATE_CEIL="9999-12-31";var WIKI_LIST_COLUMNS=["id","title","status","parent_page_id","updated_at","updated_by_name"];var WIKI_CHILD_COLUMNS=["id","title","status","child_count","updated_at","updated_by_name"];var WIKI_GET_COLUMNS=["id","title","status","parent_page_id","version","tags","updated_at","updated_b\
|
|
6
6
|
y_name"];var NOTE_LIST_COLUMNS=["id","title","status","visibility","created_by_name","updated_at","comment_count","reaction_count"];var NOTE_GET_COLUMNS=["id","title","status","visibility","content_type","category_name","tags","created_by_name","updated_at","view_count"];var MEETING_LIST_COLUMNS=["id","meeting_date","title","meeting_type","status","project_name","created_by_name"];var MEETING_GET_COLUMNS=["id","title","meeting_date","meeting_type","status","project_name","category_name","created\
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{applyInstancePlan,createInstancePlan,formColumns,writtenInstance}from"./chunk-
|
|
3
|
+
import{applyInstancePlan,createInstancePlan,formColumns,writtenInstance}from"./chunk-SXL56YBX.js";import"./chunk-2V6VC7TP.js";import"./chunk-7B7XNTQG.js";import"./chunk-PW5VCZFO.js";import"./chunk-JJSBBWJ5.js";import"./chunk-RX5HWI4L.js";import"./chunk-MI6HVYR2.js";import{USER_REF_FLAG,USER_REF_HELP,assertMonthsOpen,userPath}from"./chunk-X6KRLHSG.js";import{dateFlag}from"./chunk-EXT4AIDF.js";import"./chunk-6LSQCOCJ.js";import"./chunk-3LWQO2ZK.js";
|
|
4
4
|
import{UUID_RE}from"./chunk-GMBJTG6A.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-QBGEYQ2I.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";
|
|
5
5
|
import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LIST_USAGE="twp leave list";var GRANTS_USAGE="twp leave grants [<\u30E6\u30FC\u30B6\u30FC> | --user <\u30E6\u30FC\u30B6\u30FC>]";var USAGE_COLUMNS=["used_date","type_label","days","hours","status_label","reason","is_post_application","id"];var GRANT_COLUMNS=["grant_date","type_label","days","remaining_days","remaining_hours","expiry_date","status_label","reason","id"];function noArgs(input,operation){if(input.args.length>0){throw new UsageError(`${operation} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093: ${input.
|
|
6
6
|
args.join(" ")}`,`twp leave ${operation} help`)}}function summaryBody(body){if(!isRecord(body)||!isRecord(body["summary"])){throw new ApiResponseError("\u6709\u7D66\u30B5\u30DE\u30EA\u306E\u5FDC\u7B54\u306B summary \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return body}function usagesBody(body){if(!isRecord(body)||!Array.isArray(body["usages"])){throw new ApiResponseError("\u6709\u7D66\u306E\u53D6\u5F97\u5C65\u6B74\u306E\u5FDC\u7B54\u306B usages \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
|