@tocca-systems/twp-cli 0.94.2 → 0.96.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 +18 -0
- package/README.md +53 -2
- package/dist/{agent-VWO2M7L6.js → agent-MFCLZCFG.js} +2 -2
- package/dist/{agent-loop-J6YSC5BU.js → agent-loop-P5KTSZZF.js} +36 -37
- package/dist/{ai-dispatch-SJLD7VHR.js → ai-dispatch-FAX42DSC.js} +2 -2
- package/dist/{analysis-KOUABCSN.js → analysis-7SIWYTSU.js} +3 -3
- package/dist/{announcement-B5XGD27Z.js → announcement-XFLWDATJ.js} +1 -1
- package/dist/{api-command-VL4S7EFI.js → api-command-STY4LFJG.js} +25 -22
- package/dist/{api-key-YSHTZPY2.js → api-key-PD3VKBSB.js} +2 -2
- package/dist/{app-SXZKX74L.js → app-4GGGNEAQ.js} +6 -6
- package/dist/{attendance-correct-7YUT2ICL.js → attendance-correct-NKUD5CQM.js} +2 -2
- package/dist/{attendance-lists-DJ6AQH34.js → attendance-lists-5U63THUW.js} +2 -2
- package/dist/{auto-update-worker-XT4VB4LJ.js → auto-update-worker-3GV3BK5P.js} +1 -1
- package/dist/{backlog-ANCHSCHE.js → backlog-73FLZLQW.js} +2 -2
- package/dist/{budget-2O6WSE6I.js → budget-QIFM3KZ3.js} +2 -2
- package/dist/{business-hours-I4X6YQS3.js → business-hours-37MRL53C.js} +1 -1
- package/dist/{capacity-list-command-FFCCFT7N.js → capacity-list-command-DDCYRLGV.js} +1 -1
- package/dist/{chunk-UGBWUAI3.js → chunk-37WVEY6R.js} +1 -1
- package/dist/{chunk-N43TTR2I.js → chunk-37ZCPHYE.js} +1 -1
- package/dist/{chunk-EYEQMRLV.js → chunk-5JUE6FZC.js} +1 -1
- package/dist/{chunk-X3F7DOP5.js → chunk-6FI4ZMZ7.js} +1 -1
- package/dist/{chunk-CRUWTSYP.js → chunk-6HBZRMDD.js} +1 -1
- package/dist/{chunk-QVRWXH6S.js → chunk-7KU2EXEE.js} +1 -1
- package/dist/chunk-BD7O73GK.js +18 -0
- package/dist/chunk-BEUPNDJE.js +13 -0
- package/dist/{chunk-5WJWURQT.js → chunk-CARORVXI.js} +1 -1
- package/dist/{chunk-6EIW4KTU.js → chunk-F36CIBG3.js} +1 -1
- package/dist/{chunk-BFFT4CYG.js → chunk-FBTOIECJ.js} +1 -1
- package/dist/{chunk-QYAP2LAH.js → chunk-FEE6SMGH.js} +1 -1
- package/dist/{chunk-C7MCP63I.js → chunk-FKTYYARF.js} +1 -1
- package/dist/{chunk-5LRVZ2B5.js → chunk-G3N5OQDZ.js} +1 -1
- package/dist/{chunk-HWKHVP23.js → chunk-HEH3PUW2.js} +1 -1
- package/dist/{chunk-7AQIMLEK.js → chunk-HUKKZ252.js} +1 -1
- package/dist/{chunk-4557EX6E.js → chunk-HVBY74Q3.js} +1 -1
- package/dist/{chunk-WTYIFLVB.js → chunk-JULG6KDV.js} +7 -7
- package/dist/{chunk-5B7GR6NM.js → chunk-MC2AHH4Q.js} +1 -1
- package/dist/{chunk-N3N6VIV3.js → chunk-MDZ6IVMB.js} +1 -1
- package/dist/{chunk-AONJZKHQ.js → chunk-NDDFZEBO.js} +1 -1
- package/dist/{chunk-QQRJLH6B.js → chunk-OKATZ4SN.js} +1 -1
- package/dist/{chunk-FEUODLIQ.js → chunk-PBMENZ4V.js} +1 -1
- package/dist/{chunk-LLBLGHHZ.js → chunk-PJ7IKTZI.js} +13 -3
- package/dist/{chunk-TUFWQYKB.js → chunk-PLC52S3V.js} +1 -1
- package/dist/{chunk-JFR7DKVX.js → chunk-QKTEMDDP.js} +10 -5
- package/dist/{chunk-DCZK6A3Z.js → chunk-T6ARS4Y3.js} +11 -9
- package/dist/{chunk-JBWE7SQR.js → chunk-TESDN34O.js} +1 -1
- package/dist/{chunk-QBUVJBZ2.js → chunk-TJQZYYG3.js} +1 -1
- package/dist/{chunk-JJAXQDIW.js → chunk-TQ7TNMW5.js} +1 -1
- package/dist/{chunk-STCWJIAD.js → chunk-U6REFY7T.js} +1 -1
- package/dist/{chunk-AGT2IWAY.js → chunk-VEEZJNOB.js} +1 -1
- package/dist/chunk-VGT2EGH6.js +6 -0
- package/dist/{chunk-DMMSNDDD.js → chunk-X6FAZIQS.js} +1 -1
- package/dist/{chunk-3E7QVTKD.js → chunk-YSVRHBHW.js} +1 -1
- package/dist/{chunk-SIZU47BB.js → chunk-ZEVPGUKL.js} +1 -1
- package/dist/cli.js +31 -10
- package/dist/{commands-ZIGB6CQT.js → commands-CARE564N.js} +1 -1
- package/dist/{commands-EK6AMMIV.js → commands-LQNIOT7B.js} +11 -11
- package/dist/{company-HUP72FGC.js → company-IOQQLLSX.js} +3 -3
- package/dist/{completion-INVEPDAF.js → completion-TQIXRYIP.js} +1 -1
- package/dist/{configure-DONZ3M6N.js → configure-XPULH6FO.js} +1 -1
- package/dist/{contract-CCSCR7BO.js → contract-V6O2IGF4.js} +2 -2
- package/dist/{deposit-XMZZBRSY.js → deposit-CQ7GTE2G.js} +2 -2
- package/dist/{dispatch-ZRC3TVFT.js → dispatch-E3WXF4PH.js} +1 -1
- package/dist/{domain-knowledge-44FQ4EIL.js → domain-knowledge-YZCNJPFF.js} +2 -2
- package/dist/{estimate-3JTW4EES.js → estimate-KTNJQVEX.js} +3 -3
- package/dist/{evaluation-GKPJBSVD.js → evaluation-5INGXWOV.js} +3 -3
- package/dist/{expense-AOUR6AFS.js → expense-Y64AELQA.js} +2 -2
- package/dist/{faq-DLY5YITZ.js → faq-W5MZAWGB.js} +2 -2
- package/dist/{holiday-WLJT7FGH.js → holiday-P6BSJPAX.js} +2 -2
- package/dist/{inquiry-57RLTCK2.js → inquiry-HNUCPZTJ.js} +2 -2
- package/dist/{invoice-XMTJV34B.js → invoice-HSX6BWOM.js} +3 -3
- package/dist/{knowledge-7B2R6UCM.js → knowledge-E6Y4NB6R.js} +2 -2
- package/dist/{leave-O6D4NOMN.js → leave-KJ45TLXB.js} +3 -3
- package/dist/{media-VA7YJ5CR.js → media-GXTZJ5L4.js} +3 -3
- package/dist/{oneshot-BXLRUQQP.js → oneshot-JAA46MUA.js} +2 -2
- package/dist/{outlook-B5QENUVX.js → outlook-DLEA27PZ.js} +2 -2
- package/dist/{plan-submit-X5JFY2ZA.js → plan-submit-JKLAR5US.js} +2 -2
- package/dist/{project-M6XX6QVR.js → project-2MWLBXAB.js} +2 -2
- package/dist/{prospect-C3OWZPUJ.js → prospect-4YJNVVFV.js} +2 -2
- package/dist/{purchase-TEPTOLIR.js → purchase-F5BTLU5F.js} +3 -3
- package/dist/{receivable-N4EMAU2C.js → receivable-Q4GDHNWE.js} +2 -2
- package/dist/{registry-CN27HELV.js → registry-E4TNSUNA.js} +1 -1
- package/dist/{render-HF4OIOXS.js → render-HH2Y6YKX.js} +1 -1
- package/dist/{report-NXYULEVF.js → report-6RE4IZQW.js} +2 -2
- package/dist/{run-A43RYU65.js → run-7Q3XLJFT.js} +2 -2
- package/dist/{runner-command-SUTLCZQB.js → runner-command-UGG7X2KU.js} +1 -1
- package/dist/{sales-ai-review-Q2RFAXUD.js → sales-ai-review-H4VV56YO.js} +2 -2
- package/dist/{sales-master-5JR2TMLK.js → sales-master-G3PPJOV7.js} +9 -9
- package/dist/{sales-numbering-UO4QIZZC.js → sales-numbering-VTK6WTHT.js} +2 -2
- package/dist/{search-65MA22AA.js → search-IJEAEZ42.js} +2 -2
- package/dist/secret-P42JCOI4.js +75 -0
- package/dist/{skill-6AUBIXLM.js → skill-T3K5DD7P.js} +2 -2
- package/dist/{skill-manage-command-ZB4ECK6X.js → skill-manage-command-RACKW7W4.js} +2 -2
- package/dist/{staffing-board-SPXKQ5F2.js → staffing-board-5K35Z4O5.js} +3 -3
- package/dist/{status-command-JG5WY4IX.js → status-command-NP4OGBKY.js} +2 -2
- package/dist/{supplier-payment-KVWJCRWB.js → supplier-payment-ZQNQIJQ6.js} +2 -2
- package/dist/{support-EKI7AATE.js → support-W7HQFZMG.js} +2 -2
- package/dist/{task-T3SQVFJ5.js → task-L5FDVVIT.js} +3 -3
- package/dist/{teams-U7NHSZHY.js → teams-3ZI6ZY3F.js} +2 -2
- package/dist/{update-5NJSC26F.js → update-2N3V64AA.js} +1 -1
- package/dist/{user-WO6CKRNH.js → user-ECG5E32W.js} +69 -15
- package/dist/{user-group-5V3L7WYR.js → user-group-YKFYJ5C2.js} +2 -2
- package/dist/{worker-agent-XHX3D4LT.js → worker-agent-PFN36I6X.js} +2 -2
- package/dist/{workflow-PJ33ZW42.js → workflow-PP3APD56.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-AKLRVUU2.js +0 -18
- package/dist/chunk-RX5HWI4L.js +0 -6
- package/dist/chunk-WHYQZC2H.js +0 -12
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{salesAdminForbidden}from"./chunk-
|
|
3
|
+
import{salesAdminForbidden}from"./chunk-ZEVPGUKL.js";import{nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PATH="/api/v2/sales/receivables";var FORBIDDEN=salesAdminForbidden("\u58F2\u639B\u91D1\u6B8B\u9AD8\u3068\u7DE0\u3081");var CLOSING_LIST_MAX=36;var SUMMARY_LABELS=[["previous_balance","\u524D\u6708\u6B8B\u9AD8"],["current_debit","\u5F53\u6708\u501F\u65B9\uFF08\u5F53\u6708\u8ACB\u6C42\u984D\uFF09"],["current_credit","\u5F53\u6708\u8CB8\u65B9\uFF08\u5F53\u6708\u5165\u91D1\u5F15\u5F53\u984D\uFF09"],["current_balance","\u5F53\u6708\u6B8B\u9AD8"],["current_month_uncollected","\u2460 \u5F53\u6708\u8ACB\u6C42 \u672A\u56DE\u53CE"],
|
|
4
4
|
["previous_uncollected","\u2461 \u524D\u6708\u4EE5\u524D \u672A\u5165\u91D1\u58F2\u639B\u91D1"],["advance_received","\u524D\u53D7\u91D1\uFF08\u7FCC\u6708\u4EE5\u964D\u8ACB\u6C42\u3078\u306E\u5165\u91D1\uFF09"],["future_invoice_total","\u2462 \u7FCC\u6708\u4EE5\u964D \u58F2\u639B\u91D1\uFF08\u8ACB\u6C42\u7DCF\u984D\u30FB\u53C2\u8003\uFF09"]];var ITEM_COLUMNS=["invoice_id","invoice_no","company_name","title","invoice_date","due_date","total","collected","uncollected"];var CLOSING_COLUMNS=["year_mo\
|
|
5
5
|
nth","basis_date","closed_at","closed_by_name","has_variance"];function usageOf(op){return`twp receivable ${op} help`}function yen(value){return typeof value==="number"?`${value.toLocaleString("ja-JP")} \u5186`:"\uFF08\u4E0D\u660E\uFF09"}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function yearMonthValue(raw,label){const value=raw.trim();if(!/^\d{4}-(0[1-9]|1[0-2])$/.test(value))throw new UsageError(`${label} \u306F YYYY-MM \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,
|
|
6
6
|
"\u4F8B: 2026-09");return value}function previousYearMonth(yearMonth){const[y,m]=yearMonth.split("-").map(Number);return m===1?`${y-1}-12`:`${y}-${String(m-1).padStart(2,"0")}`}function envelope(body,what){if(!isRecord(body)||body["result"]!==true)throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return body}function withoutResult(body){return Object.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{ALLOW_REDACTED_FLAG}from"./chunk-W4NLJ2YK.js";import{REDACTED}from"./chunk-
|
|
3
|
+
import{ALLOW_REDACTED_FLAG}from"./chunk-W4NLJ2YK.js";import{REDACTED}from"./chunk-BD7O73GK.js";import{UsageError}from"./chunk-VFPY2A23.js";import fs from"fs";var BOM="\uFEFF";async function readStdin(spec){if(process.stdin.isTTY===true){throw new UsageError(`${spec.fileFlag} - \u306F\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u307F\u307E\u3059\u304C\u3001\u7AEF\u672B\u304C\u7E4B\u304C\u3063\u3066\u3044\u307E\u3059`,`\u30D1\u30A4\u30D7\u304B\u30EA\u30C0\u30A4\u30EC\u30AF\u30C8\u3067\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: cat review.md | twp \u2026 ${spec.fileFlag} -\uFF09\u3002`)}const chunks=[];for await(const chunk of process.stdin)chunks.
|
|
4
4
|
push(Buffer.from(chunk));return Buffer.concat(chunks).toString("utf8")}function charCount(text){return[...text].length}function containsRedactedMarker(text){if(text.includes(REDACTED))return true;let parsed;try{parsed=JSON.parse(text)}catch(error){if(error instanceof SyntaxError)return false;throw error}const pending=[parsed];while(pending.length>0){const value=pending.pop();if(typeof value==="string"){if(value.includes(REDACTED))return true}else if(Array.isArray(value)){for(const item of value)
|
|
5
5
|
pending.push(item)}else if(value!==null&&typeof value==="object"){for(const[key,item]of Object.entries(value)){if(key.includes(REDACTED))return true;pending.push(item)}}}return false}async function readBody(input,spec){const inline=input.flags.get(spec.flag);const file=input.flags.get(spec.fileFlag);if(inline!==void 0&&file!==void 0){throw new UsageError(`${spec.label}\u304C ${spec.flag} \u3068 ${spec.fileFlag} \u306E\u4E21\u65B9\u3067\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059`,`\u3069\u3061\u3089\u304B\u4E00\u65B9\u3060\u3051\u3092\u6307\
|
|
6
6
|
\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08${spec.fileFlag} - \u3067\u6A19\u6E96\u5165\u529B\u304B\u3089\u8AAD\u3081\u307E\u3059\uFF09\u3002`)}if(inline===void 0&&file===void 0)return void 0;const text=inline??await readFrom(file,spec);const stripped=text.startsWith(BOM)?text.slice(BOM.length):text;if(stripped.trim()===""){throw new UsageError(`${spec.label}\u304C\u7A7A\u3067\u3059\uFF08${inline!==void 0?spec.flag:`${spec.fileFlag} ${file}`}\uFF09`,spec.usage)}const count=charCount(stripped);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{FINAL_REPORT_BEGIN,FINAL_REPORT_END,redactLoopOutput}from"./chunk-
|
|
3
|
+
import{FINAL_REPORT_BEGIN,FINAL_REPORT_END,redactLoopOutput}from"./chunk-VEEZJNOB.js";import{skillCommand,skillPrefix}from"./chunk-6CS5L24D.js";import{normalizeRequiredPlatforms}from"./chunk-UZUV5FYG.js";import{extractLeadingTaskKey}from"./chunk-II5RVJQN.js";var LEDGER_TASK_KEY_MAX=50;var CONTROL_CHAR_RE=/[\u0000-\u001f\u007f]/;var FLAG_TOKEN_RE=/(?:^|\s)-/;function loosen(source){let t=source.replace(/^[ \t]*\/\/[^\n]*$/gm,"");t=t.replace(/\/\*[\s\S]*?\*\//g,"");t=t.replace(/,(\s*[}\]])/g,"$1");return t===source?null:t}function tryParsePlan(source){for(const candidate of[source,loosen(source)]){if(candidate===null)continue;try{const obj=JSON.parse(candidate);if(obj!==null&&typeof obj==="object"&&Array.isArray(obj.steps)){return obj}}catch{}}return null}
|
|
4
4
|
function fencedBlocks(text,tag){const re=new RegExp("```"+tag+"\\s*\\n([\\s\\S]*?)\\n```","g");const out=[];for(const m of text.matchAll(re)){if(m[1]!==void 0)out.push(m[1])}return out}function extractGeminiEnvelope(text){const anchor=/\{[^{}]*"session_id"[^{}]*"response"\s*:\s*"/g;for(const m of text.matchAll(anchor)){const start=m.index;if(start===void 0)continue;let depth=0;let inStr=false;let escape=false;for(let i=start;i<text.length;i++){const c=text[i];if(escape){escape=false;continue}if(c===
|
|
5
5
|
"\\"){escape=true;continue}if(c==='"'){inStr=!inStr;continue}if(inStr)continue;if(c==="{")depth++;else if(c==="}"){depth--;if(depth===0){try{const obj=JSON.parse(text.slice(start,i+1));if(obj!==null&&typeof obj==="object"&&typeof obj.response==="string"){return obj.response}}catch{}break}}}}return null}function matchingBrace(text,start){let depth=0;let inStr=false;let escape=false;for(let i=start;i<text.length;i++){const c=text[i];if(escape){escape=false;continue}if(inStr){if(c==="\\")escape=true;else if(c===
|
|
6
6
|
'"')inStr=false;continue}if(c==='"')inStr=true;else if(c==="{")depth++;else if(c==="}"){depth--;if(depth===0)return i}}return-1}var MAX_STEPS_ANCHORS=20;var MAX_OPEN_CANDIDATES=8;function lastStepsObject(text){const anchors=[...text.matchAll(/"steps"\s*:/g)].map(m=>m.index).filter(i=>i!==void 0);for(const at of anchors.reverse().slice(0,MAX_STEPS_ANCHORS)){let tried=0;for(let open=text.lastIndexOf("{",at);open>=0&&tried<MAX_OPEN_CANDIDATES;open=text.lastIndexOf("{",open-1)){tried++;const close=matchingBrace(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{isoDate}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-
|
|
3
|
+
import{isoDate}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-VGT2EGH6.js";import{SALES_ESTIMATES_PATH,SALES_INVOICES_PATH,isExactNumericId,resolveNamed}from"./chunk-4DOPQ74T.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{withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{
|
|
4
4
|
ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var ESTIMATE_STATUSES={new:"\u4F5C\u6210\u4E2D",create_completed:"\u4F5C\u6210\u5B8C\u4E86",in_progress:"\u7533\u8ACB\u4E2D",approved:"\u627F\u8A8D\u6E08",submitted:"\u63D0\u793A\u6E08",rejected:"\u5DEE\u3057\u623B\u3057",deleted:"\u524A\u9664\u6E08"};var INVOICE_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",manager_confirmation:"\u6848\u4EF6\u62C5\u5F53\u8005\
|
|
5
5
|
_\u6848\u4EF6\u5185\u5BB9\u30FB\u91D1\u984D\u78BA\u8A8D",invoice_issued:"\u8ACB\u6C42\u66F8\u767A\u884C\u6E08",sent_to_client:"\u5148\u65B9\u9001\u4ED8\u6E08",archived:"\u4FDD\u7BA1\u6E08",deleted:"\u524A\u9664\u6E08",cancelled:"\u53D6\u6D88\uFF08\u7121\u52B9\uFF09",lost:"\u5931\u6CE8"};var ALLOCATION_STATUSES={unallocated:"\u672A\u56DE\u53CE",allocated:"\u56DE\u53CE\u6E08"};function statusRefs(table){return Object.entries(table).map(([code,name])=>({id:code,name,code}))}function statusHelp(table){
|
|
6
6
|
return Object.entries(table).map(([code,name])=>`${code}\uFF08${name}\uFF09`).join(" / ")}function licenseForbidden(guidance){return body=>body?.error==="permission_denied"?guidance:void 0}function featureLicenseGuidance(feature){return`${feature}\u3092\u4F7F\u3046\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u304C${feature}\u3092\u5951\u7D04\u3057\u3066\u3044\u306A\u3044\u304B\u3001\u3042\u306A\u305F\u306E${feature}\u306E\u6A29\u9650\u304C\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`}
|
|
@@ -30,12 +30,12 @@ takesValue:true,placeholder:"<\u578B>"};var OUT_FLAG={name:"--out",summary:"\u66
|
|
|
30
30
|
takesValue:false};function taskPath(input){const projectId=encodeURIComponent(requireResolved(input,"projectId"));return`/api/v2/projects/${projectId}/tasks/${encodeURIComponent(requireResolved(input,"taskId"))}`}function taskAttachmentIds(body){const task=isRecord(body)?body["task"]:void 0;if(!isRecord(task)){throw new ApiResponseError("\u30BF\u30B9\u30AF\u8A73\u7D30\u306E\u5FDC\u7B54\u306B task \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
|
|
31
31
|
const ids=task["attachment_ids"];if(ids===null||ids===void 0)return[];if(!Array.isArray(ids)||!ids.every(id=>typeof id==="string")){throw new ApiResponseError("\u30BF\u30B9\u30AF\u8A73\u7D30\u306E attachment_ids \u304C\u6587\u5B57\u5217\u306E\u914D\u5217\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return ids}function attachmentRows(body){const data=isRecord(body)?body["data"]:void 0;if(!Array.isArray(data)){throw new ApiResponseError(
|
|
32
32
|
"\u6DFB\u4ED8\u4E00\u89A7\u306E\u5FDC\u7B54\u306B data \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return data}async function resolveTask(input,ctx,usage){const ref=singleRef(input,{flag:"--task",label:"\u30BF\u30B9\u30AF",usage});return withResolved(input,await resolveTaskLocation(input,ctx,ref))}function localFile(input){const{file,size}=inspectLocalFile(input.flags.get("--file"),"--file","twp task attac\
|
|
33
|
-
hment upload <\u30AD\u30FC|ID> --file <\u30D1\u30B9>");const nameFlag=input.flags.get("--name");const name=nameFlag!==void 0&&nameFlag.trim()!==""?nameFlag.trim():path.basename(file);const typeFlag=input.flags.get("--content-type");const contentType=typeFlag!==void 0&&typeFlag.trim()!==""?typeFlag.trim():contentTypeFor(name);return{file,name,size,contentType}}function
|
|
34
|
-
usage)}const file=path.resolve(raw.trim());let stat;try{stat=fs.statSync(file)}catch{throw new UsageError(`\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093\uFF08${flag}\uFF09: ${file}`)}if(!stat.isFile())throw new UsageError(`\u901A\u5E38\u306E\u30D5\u30A1\u30A4\
|
|
35
|
-
\uFF09: ${file}`);return{file,size:stat.size}}function uploadUrlPlan(input){return{method:"POST",path:"/api/v2/attachments/upload-url",body:{file_name:requireResolved(input,"fileName"),content_type:requireResolved(input,"contentType"),file_size:Number(requireResolved(
|
|
36
|
-
typeof uploadUrl!=="string"||!/^https:\/\//.test(uploadUrl)){throw new ApiResponseError("\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9URL\u767A\u884C\u306E\u5FDC\u7B54\u306B data.id / data.upload_url \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
|
|
37
|
-
"contentType");await checkUploadQuota(ctx,size);const{id,uploadUrl}=issued(await ctx.send(uploadUrlPlan(input)));const bytes=new Uint8Array(fs.readFileSync(file));if(bytes.byteLength!==size){throw new UsageError(`\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u4E2D\u306B\u30D5\u30A1\u30A4\u30EB\u306E\u5927\u304D\u3055\u304C\u5909\u308F\u308A\u307E\u3057\u305F\uFF08${size}
|
|
38
|
-
await ctx.send({method:"GET",path:taskPath(input)}));const next=current.includes(id)?current:[...current,id];const updated=await ctx.send({method:"PUT",path:taskPath(input),body:{attachment_ids:next}});const linked=taskAttachmentIds(updated);if(!linked.includes(id)){throw new ApiResponseError("\u30BF\u30B9\u30AF\u66F4\u65B0\u306E\u5FDC\u7B54\u306E attachment_ids \u306B\u4ECA\u56DE\u306E\u6DFB\u4ED8\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
|
|
33
|
+
hment upload <\u30AD\u30FC|ID> --file <\u30D1\u30B9>");const nameFlag=input.flags.get("--name");const name=nameFlag!==void 0&&nameFlag.trim()!==""?nameFlag.trim():path.basename(file);const typeFlag=input.flags.get("--content-type");const contentType=typeFlag!==void 0&&typeFlag.trim()!==""?typeFlag.trim():contentTypeFor(name);return{file,name,size,contentType}}async function isCommitted(ctx,attachmentId){const rows=attachmentRows(await ctx.send({method:"GET",path:"/api/v2/attachments",query:{ids:attachmentId}}));
|
|
34
|
+
const row=rows.find(item=>isRecord(item)&&item["id"]===attachmentId);return isRecord(row)&&row["is_committed"]===true}function inspectLocalFile(raw,flag,usage){if(raw===void 0||raw.trim()===""){throw new UsageError(`${flag} \u306F\u5FC5\u9808\u3067\u3059`,usage)}const file=path.resolve(raw.trim());let stat;try{stat=fs.statSync(file)}catch{throw new UsageError(`\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093\uFF08${flag}\uFF09: ${file}`)}if(!stat.isFile())throw new UsageError(`\u901A\u5E38\u306E\u30D5\u30A1\u30A4\
|
|
35
|
+
\u30EB\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF08${flag}\uFF09: ${file}`);if(stat.size===0)throw new UsageError(`\u7A7A\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3067\u304D\u307E\u305B\u3093\uFF08${flag}\uFF09: ${file}`);return{file,size:stat.size}}function uploadUrlPlan(input){return{method:"POST",path:"/api/v2/attachments/upload-url",body:{file_name:requireResolved(input,"fileName"),content_type:requireResolved(input,"contentType"),file_size:Number(requireResolved(
|
|
36
|
+
input,"fileSize")),source:TASK_SOURCE}}}function issued(body){const data=isRecord(body)?body["data"]:void 0;const id=isRecord(data)?data["id"]:void 0;const uploadUrl=isRecord(data)?data["upload_url"]:void 0;if(!isSafePathSegment(id)||typeof uploadUrl!=="string"||!/^https:\/\//.test(uploadUrl)){throw new ApiResponseError("\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9URL\u767A\u884C\u306E\u5FDC\u7B54\u306B data.id / data.upload_url \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
|
|
37
|
+
return{id,uploadUrl}}async function upload(input,ctx){const file=requireResolved(input,"file");const size=Number(requireResolved(input,"fileSize"));const contentType=requireResolved(input,"contentType");await checkUploadQuota(ctx,size);const{id,uploadUrl}=issued(await ctx.send(uploadUrlPlan(input)));const bytes=new Uint8Array(fs.readFileSync(file));if(bytes.byteLength!==size){throw new UsageError(`\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u4E2D\u306B\u30D5\u30A1\u30A4\u30EB\u306E\u5927\u304D\u3055\u304C\u5909\u308F\u308A\u307E\u3057\u305F\uFF08${size}\
|
|
38
|
+
\u2192 ${bytes.byteLength} \u30D0\u30A4\u30C8\uFF09: ${file}`)}await ctx.putSigned(uploadUrl,bytes,contentType);try{const current=taskAttachmentIds(await ctx.send({method:"GET",path:taskPath(input)}));const next=current.includes(id)?current:[...current,id];const updated=await ctx.send({method:"PUT",path:taskPath(input),body:{attachment_ids:next}});const linked=taskAttachmentIds(updated);if(!linked.includes(id)){throw new ApiResponseError("\u30BF\u30B9\u30AF\u66F4\u65B0\u306E\u5FDC\u7B54\u306E attachment_ids \u306B\u4ECA\u56DE\u306E\u6DFB\u4ED8\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
|
|
39
39
|
return{attachment_id:id,task_id:requireResolved(input,"taskId"),project_id:requireResolved(input,"projectId"),file_name:requireResolved(input,"fileName"),content_type:contentType,file_size:size,attachment_count:linked.length}}catch(err){ctx.warn(`\u6DFB\u4ED8 ${id} \u306F\u30B9\u30C8\u30EC\u30FC\u30B8\u3078\u306E\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u307E\u3067\u5B8C\u4E86\u3057\u307E\u3057\u305F\u304C\u3001\u30BF\u30B9\u30AF\u3078\u306E\u7D10\u3065\u3051\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002
|
|
40
40
|
\u672A\u7D10\u3065\u3051\u306E\u6DFB\u4ED8\u306F\u30B5\u30FC\u30D0\u304C\u4E00\u5B9A\u6642\u9593\uFF08\u7F72\u540DURL\u306E\u6709\u52B9\u671F\u9650\uFF0B1\u6642\u9593\uFF09\u5F8C\u306B\u81EA\u52D5\u3067\u524A\u9664\u3057\u307E\u3059\u3002\u3082\u3046\u4E00\u5EA6 twp task attachment upload \u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);throw err}}async function list(input,ctx){const ids=taskAttachmentIds(await ctx.send({method:"GET",path:taskPath(input)}));const rows=[];for(let offset=0;offset<
|
|
41
41
|
ids.length;offset+=IDS_PER_REQUEST){const chunk=ids.slice(offset,offset+IDS_PER_REQUEST);rows.push(...attachmentRows(await ctx.send({method:"GET",path:"/api/v2/attachments",query:{ids:chunk.join(",")}})))}if(rows.length<ids.length){ctx.warn(`\u30BF\u30B9\u30AF\u306B\u7D10\u3065\u304F\u6DFB\u4ED8 ${ids.length} \u4EF6\u306E\u3046\u3061 ${ids.length-rows.length} \u4EF6\u306F\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u524A\u9664\u6E08\u307F\u304B\u3001\u95B2\u89A7\u3067\u304D\u307E\u305B\u3093\uFF09\u3002`)}
|
|
@@ -66,4 +66,4 @@ k ABC-123 --yes\n\n"+TASK_REF_HELP,destructive:true,flags:[ATTACHMENT_REF_FLAG,T
|
|
|
66
66
|
usage:"twp task attachment explain <\u6DFB\u4ED8ID> --task <\u30AD\u30FC|ID> [--question <\u6587>]",description:'\u6DFB\u4ED8 ID \u306F twp task attachment list \u306E id \u3067\u3059\u3002\u30BF\u30B9\u30AF\u672C\u4F53\u306E\u6DFB\u4ED8\u306B\u52A0\u3048\u3001\u305D\u306E\u30BF\u30B9\u30AF\u306E\u30B3\u30E1\u30F3\u30C8\u306B\u4ED8\u3044\u305F\u6DFB\u4ED8\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\n\u5BFE\u5FDC\u5F62\u5F0F\u306F PNG / JPEG / GIF / WebP / PDF \u3068\u30C6\u30AD\u30B9\u30C8\uFF08txt / csv / md / json / xml\uFF09\u3067\u300120MB \u307E\u3067\u3067\u3059\u3002\n--question \u3092\u4ED8\u3051\u308B\u3068\u305D\u306E\u554F\u3044\u306B\u7B54\u3048\u307E\u3059\u3002\u4ED8\u3051\u306A\u3051\u308C\u3070\u5185\u5BB9\u5168\u4F53\u3092\u8AAC\u660E\u3057\u307E\u3059\u3002\n\u554F\u3044\u306A\u3057\u306E\u8AAC\u660E\u306F\u30B5\u30FC\u30D0\u306B\u4FDD\u5B58\u3055\u308C\u30012\u56DE\u76EE\u4EE5\u964D\u306F\u4FDD\u5B58\u6E08\u307F\u306E\u8AAC\u660E\u3092\u8FD4\u3057\u307E\u3059\uFF08\u5FDC\u7B54\u306E cached \u304C true\uFF09\u3002\u554F\u3044\u3042\u308A\u306E\u56DE\u7B54\u306F\u4FDD\u5B58\u3057\u307E\u305B\u3093\u3002\nTWP \u306E AI \u30AF\u30EC\u30B8\u30C3\u30C8\u306B\u306F\u8A08\u4E0A\u3055\u308C\u306A\u3044\u306E\u3067 --yes \u306F\u8981\u308A\u307E\u305B\u3093\uFF08\u81EA\u793E\u306E AI \u30AD\u30FC\u3092\u767B\u9332\u3057\u3066\u3044\u308B\u7D44\u7E54\u3067\u306F\u3001\u305D\u306E\u30AD\u30FC\u3067\u547C\u3073\u51FA\u3057\u307E\u3059\uFF09\u3002\n\n\u4F8B:\n twp task attachment explain 0f8b\
|
|
67
67
|
2c6e-1a2b-4c3d-9e8f-123456789abc --task ABC-123\n twp task attachment explain 0f8b2c6e-1a2b-4c3d-9e8f-123456789abc --task ABC-123 --question "\u8ACB\u6C42\u91D1\u984D\u306E\u5408\u8A08\u306F\u3044\u304F\u3089\u3067\u3059\u304B"\n\n'+TASK_REF_HELP,flags:[ATTACHMENT_REF_FLAG,TASK_REF_FLAG,PROJECT_FLAG,QUESTION_FLAG],async prepare(input,ctx){const usage="twp task attachment explain help";const raw=input.flags.get("--question");const question=raw===void 0?void 0:raw.trim();if(question!==void 0&&question===
|
|
68
68
|
""){throw new UsageError("--question \u304C\u7A7A\u3067\u3059",usage)}if(question!==void 0&&[...question].length>QUESTION_MAX_CHARS){throw new UsageError(`--question \u306F ${QUESTION_MAX_CHARS} \u6587\u5B57\u307E\u3067\u3067\u3059\uFF08${[...question].length} \u6587\u5B57\uFF09`,usage)}const prepared=await prepareAttachmentTarget(input,ctx,usage);return question===void 0?prepared:withResolved(prepared,{question})},plan(input){const question=input.resolved?.["question"];return{method:"POST",path:`${attachmentPath(
|
|
69
|
-
input)}/explain`,body:question===void 0?{}:{question}}},summarize:body=>pick(explanation(body),EXPLAIN_COLUMNS),raw:explanation,document:body=>String(explanation(body)["explanation"])}]};export{classifyTaskRef,wantsPrivateSurface,taskSurface,rejectPrivateSurface,resolveTaskLocation,rejectRedundantProject,TASK_REF_FLAG,PROJECT_FLAG,TASK_REF_HELP,contentTypeFor,
|
|
69
|
+
input)}/explain`,body:question===void 0?{}:{question}}},summarize:body=>pick(explanation(body),EXPLAIN_COLUMNS),raw:explanation,document:body=>String(explanation(body)["explanation"])}]};export{classifyTaskRef,wantsPrivateSurface,taskSurface,rejectPrivateSurface,resolveTaskLocation,rejectRedundantProject,TASK_REF_FLAG,PROJECT_FLAG,TASK_REF_HELP,contentTypeFor,isCommitted,inspectLocalFile,issued,taskAttachmentResource};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{analysisForbidden}from"./chunk-
|
|
3
|
+
import{analysisForbidden}from"./chunk-TQ7TNMW5.js";import{repeatedValues}from"./chunk-VGT2EGH6.js";import{ApiError,MultipartBody}from"./chunk-JA5A6UJ2.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import fs from"fs";import path from"path";var PATH="/api/v2/budget";var ANALYSIS_FORBIDDEN=analysisForbidden("");function budgetForbidden(body){if(body?.error==="forbidden")return"\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u95B2\u89A7\u3067\u304D\u307E\u305B\u3093\uFF08\u30E1\u30F3\u30D0\u30FC\u3067\u306A\u3044\u304B\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u6A29\u9650\u304C\u8DB3\u308A\u307E\u305B\u3093\uFF09\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
|
|
4
4
|
return ANALYSIS_FORBIDDEN(body)}var FORBIDDEN=budgetForbidden;var EDIT_HINT="\u76EE\u6A19\u306E\u8A2D\u5B9A\u30FB\u30B3\u30D4\u30FC\u30FB\u53D6\u308A\u8FBC\u307F\u306F\u3001\u5168\u4F53\u7BA1\u7406\u8005\u304B\u5206\u6790\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u306E\u4EBA\u3060\u3051\u304C\u3067\u304D\u307E\u3059\u3002\u6309\u5206\u306F\u305D\u308C\u306B\u52A0\u3048\u3066\u3001\u305D\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u7BA1\u7406\u8005\u3082\u3067\u304D\u307E\u3059\n\uFF08\u3069\u3061\u3089\u3082\u5206\u6790\u306E\u6A29\u9650\u304C\u300C\u306A\u3057\u300D\u3067\u306F\u4F7F\u3048\u307E\u305B\u3093\uFF09\u3002";
|
|
5
5
|
var YEAR_MIN=2e3;var YEAR_MAX=2100;var IMPORT_MAX_BYTES=2048*1024;var SET_FILE_MAX_BYTES=4*1024*1024;var AMOUNT_MAX=999999999999;var SHOWN_OVERWRITES=24;var BOM=new RegExp(`^${String.fromCharCode(65279)}`);function usageOf(op){return`twp budget ${op} help`}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function yen(value){return typeof value==="number"?`${value.toLocaleString("ja-JP")} \u5186`:"\uFF08\u306A\u3057\uFF09"}function noArgs(input,op){if(input.
|
|
6
6
|
args.length>0)throw new UsageError(`${op} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,usageOf(op))}function envelope(body,what){if(!isRecord(body)||body["result"]!==true)throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return body}function dataRecord(body,what){const data=envelope(body,what)["data"];
|
|
@@ -7,7 +7,7 @@ body,"hidden_count"),removed_count:pickNumber(body,"removed_count"),hide_after_d
|
|
|
7
7
|
const{resolveOutputFormat}=await import("./format-F6PPBPY5.js");const format=resolveOutputFormat({...opts.output!==void 0?{flag:opts.output}:{},isTty:io.isTty});if(format===null||!LIST_FORMATS.includes(format)){throw new UsageError(`runner list \u306E --output \u306B\u300C${opts.output??""}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${LIST_FORMATS.join(" / ")} \u3067\u3059`)}const res=await api.request("GET","/runners");if(!res.ok){io.
|
|
8
8
|
err(`\u26D4 \u30E9\u30F3\u30CA\u30FC\u4E00\u89A7\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\uFF08${errorDetail(res)}\uFF09
|
|
9
9
|
`);return apiExit(res)}const parsed=parseRunners(res);if(parsed===null){io.err(`\u26D4 \u30E9\u30F3\u30CA\u30FC\u4E00\u89A7\u3092\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093\uFF08\u5FDC\u7B54\u306E\u5148\u982D: ${res.raw.slice(0,120)}\uFF09
|
|
10
|
-
`);return EXIT_API_SERVER}const{entries,summary}=parsed;const{evaluateQuery}=await import("./query-XEOVFI4D.js");const{renderOutput}=await import("./render-
|
|
10
|
+
`);return EXIT_API_SERVER}const{entries,summary}=parsed;const{evaluateQuery}=await import("./query-XEOVFI4D.js");const{renderOutput}=await import("./render-HH2Y6YKX.js");if(format==="json"){const value={...summary,runners:entries};const selected2=opts.query===void 0?value:await evaluateQuery(opts.query,value);const text2=renderOutput(selected2,"json");io.out(text2.endsWith("\n")?text2:`${text2}
|
|
11
11
|
`);return EXIT_OK}io.err(summaryLine(summary));const selected=opts.query===void 0?entries:await evaluateQuery(opts.query,entries);if(opts.query===void 0&&entries.length===0){io.err("\u4E00\u89A7\u306B\u8868\u793A\u3055\u308C\u308B\u767B\u9332\u306F\u3042\u308A\u307E\u305B\u3093\n");return EXIT_OK}const text=renderOutput(selected,format);io.out(text.endsWith("\n")?text:`${text}
|
|
12
12
|
`);if(opts.query===void 0&&entries.some(e=>e.state==="stale")){io.err(`${removeHint(opts)}
|
|
13
13
|
`)}return EXIT_OK}function summaryLine(s){const n=v=>v===null?"?":String(v);const parts=[`\u7A3C\u50CD ${n(s.live_count)} / ${n(s.max_runners)}\uFF08\u6B7B\u6D3B\u3057\u304D\u3044\u5024 ${n(s.heartbeat_timeout)}\u79D2\uFF09`];parts.push(`${n(s.hide_after_days)}\u65E5\u4EE5\u4E0A\u5FDC\u7B54\u306A\u3057\u3067\u975E\u8868\u793A ${n(s.hidden_count)}\u53F0`);if(s.removed_count!==null)parts.push(`\u624B\u52D5\u3067\u5916\u3057\u305F\u767B\u9332 ${s.removed_count}\u53F0`);return`\u30E9\u30F3\u30CA\u30FC: ${parts.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import{charCount,readBody}from"./chunk-
|
|
3
|
+
import{parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import{charCount,readBody}from"./chunk-HEH3PUW2.js";import{repeatedValues}from"./chunk-VGT2EGH6.js";import{WORKER_AGENTS_PATH}from"./chunk-4DOPQ74T.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";
|
|
4
4
|
import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,UsageError,WaitTimeoutError}from"./chunk-VFPY2A23.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";var LABEL="\u30EF\u30FC\u30AB\u30FC\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8";var LIST_COLUMNS=["agent_id","name","is_enabled","schedule","next_run_at","last_run_status","last_run_at","owner_user_name"];var GET_COLUMNS=["agent_id","name","description","owner_user_name","is_enabled","schedule","next_run_at","is_running","last_run_status","last_run_at","last_run_id","allowed_tool_count","write_enabled","ai_model","consecutive_failure_count","auto_disabled_reason"];var TOOL_COLUMNS=["name","category","d\
|
|
5
5
|
isplay_name","is_mutating","is_available"];var TOOL_GET_COLUMNS=["name","category","display_name","description","is_mutating","is_destructive","is_available","required_feature","required_level","required_api_scopes"];var RUN_COLUMNS=["run_id","status","trigger","started_at","duration_ms","tool_call_count","consumed_credits","summary"];var RUN_GET_COLUMNS=["summary","status","skip_reason","error_code","error_message","run_id","agent_id","trigger","is_dry_run","started_at","finished_at","duration_\
|
|
6
6
|
ms","iteration_count","tool_call_count","mutation_count","consumed_credits","ai_model"];var STEP_COLUMNS=["step_no","type","tool_name","is_mutation","duration_ms","content","error_message"];var STEP_TYPES=["thinking","tool_call","tool_result","error","budget_warning","final_summary"];var FORBIDDEN="AI\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u6A5F\u80FD\u306E\u30E9\u30A4\u30BB\u30F3\u30B9\uFF08agent\uFF09\u304C\u3042\u306A\u305F\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u5272\u308A\u5F53\u3066\u3089\u308C\u3066\u3044\u306A\u3044\u305F\u3081\u4F7F\u3048\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u306E\u7BA1\u7406\u8005\u306B\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u5272\u308A\u5F53\u3066\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
function splitFlagToken(token){if(!token.startsWith("--"))return{name:token};const equals=token.indexOf("=");if(equals<3)return{name:token};return{name:token.slice(0,equals),value:token.slice(equals+1)}}export{splitFlagToken};
|
|
3
|
+
function splitFlagToken(token){if(!token.startsWith("--"))return{name:token};const equals=token.indexOf("=");if(equals<3)return{name:token};return{name:token.slice(0,equals),value:token.slice(equals+1)}}function formatUnknownArgs(unknown){return unknown.map(token=>token.startsWith("-")&&token.includes("=")?`${token.slice(0,token.indexOf("="))}=<\u5024>`:token).join(" ")}export{splitFlagToken,formatUnknownArgs};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{salesAdminForbidden}from"./chunk-
|
|
3
|
+
import{salesAdminForbidden}from"./chunk-ZEVPGUKL.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-HVBY74Q3.js";import{booleanText,boundedText}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-VGT2EGH6.js";import{SALES_ESTIMATE_FORMATS_PATH,SALES_ESTIMATE_NO_RULES_PATH,SALES_INVOICE_NO_RULES_PATH,SALES_PURCHASE_NO_RULES_PATH,SALES_ROUNDING_SETTING_PATH,isExactNumericId}from"./chunk-4DOPQ74T.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,
|
|
4
4
|
nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var INT_MAX=2147483647;var MEMBER_FORBIDDEN=licenseForbidden(featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"));function envelope(body,what){if(!isRecord(body)||body["result"]!==true)throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return body}function recordOf(body,what){const data=envelope(body,what)["data"];if(!isRecord(data)||typeof data["id"]!==
|
|
5
5
|
"string")throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306B data.id \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return data}function serverMessage(body){const message=isRecord(body)?body["message"]:void 0;return typeof message==="string"&&message!==""?[message]:[]}function text(value){return typeof value==="string"||typeof value==="number"?String(value):""}function integerValue(flag,raw,min,max=INT_MAX){const trimmed=raw.
|
|
6
6
|
trim();const value=/^\d+$/.test(trimmed)?Number(trimmed):Number.NaN;if(!Number.isSafeInteger(value)||value<min||value>max)throw new UsageError(`${flag} \u306F ${min} \u4EE5\u4E0A ${max} \u4EE5\u4E0B\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`);return value}var RULE_COLUMNS=["id","rule_name","prefix","digit_count","current_number","count_up_num","next_number","sort_order"];function nextNumber(rule,purchaseFormat){const current=rule["current_number"];const step=rule["\
|
|
@@ -22,7 +22,17 @@ assistant",content:text===""?null:text,...toolCalls.length>0?{tool_calls:toolCal
|
|
|
22
22
|
object"&&choice.delta!==null){const delta=choice.delta;if(typeof delta.content==="string"&&delta.content!==""){out.push({kind:"text",delta:delta.content})}if(typeof delta.refusal==="string"&&delta.refusal!==""){out.push({kind:"text",delta:delta.refusal})}if(Array.isArray(delta.tool_calls)){for(const call of delta.tool_calls){const index=typeof call["index"]==="number"?call["index"]:-1;const fn=call["function"]??{};const args=typeof fn.arguments==="string"?fn.arguments:"";if(typeof call["id"]==="\
|
|
23
23
|
string"&&typeof fn.name==="string"){out.push({kind:"tool_start",index,id:call["id"],name:fn.name,initialJson:args})}else if(args!==""){out.push({kind:"tool_delta",index,json:args})}}}}if(choice&&typeof choice.finish_reason==="string"){out.push({kind:"stop",reason:STOP_REASONS[choice.finish_reason]??choice.finish_reason})}out.push(...usageEvent2(parsed["usage"]));return out}function usageEvent2(source){if(typeof source!=="object"||source===null)return[];const raw=source;const prompt=raw["prompt_t\
|
|
24
24
|
okens"];const completion=raw["completion_tokens"];if(typeof prompt!=="number"||typeof completion!=="number")return[];const details=typeof raw["prompt_tokens_details"]==="object"&&raw["prompt_tokens_details"]!==null?raw["prompt_tokens_details"]:{};const count=value=>typeof value==="number"&&Number.isFinite(value)?Math.max(0,value):0;const total=Math.max(0,prompt);const cacheReadTokens=Math.min(count(details["cached_tokens"]),total);const cacheWriteTokens=Math.min(count(details["cache_write_tokens"]),
|
|
25
|
-
total-cacheReadTokens);const usage={inputTokens:total-cacheReadTokens-cacheWriteTokens,cacheReadTokens,cacheWriteTokens,outputTokens:Math.max(0,completion)};return[{kind:"usage",usage}]}function safeJson3(text){try{const parsed=JSON.parse(text);return typeof parsed==="object"&&parsed!==null?parsed:null}catch{return null}}var
|
|
25
|
+
total-cacheReadTokens);const usage={inputTokens:total-cacheReadTokens-cacheWriteTokens,cacheReadTokens,cacheWriteTokens,outputTokens:Math.max(0,completion)};return[{kind:"usage",usage}]}function safeJson3(text){try{const parsed=JSON.parse(text);return typeof parsed==="object"&&parsed!==null?parsed:null}catch{return null}}var openAiResponsesAdapter={protocol:"openai-responses",streamPath:"/api/cli/v1/responses",toRequestBody:toRequestBody4,decode:decode4};var reasoningByCall=new Map;var MAX_REASONING_ENTRIES=2e3;var pendingReasoning=[];var currentModel2="";var sawFunctionCall=false;function rememberReasoning(callId,items,model){if(reasoningByCall.size>=MAX_REASONING_ENTRIES){const oldest=reasoningByCall.keys().next();if(!oldest.done)reasoningByCall.delete(oldest.value)}reasoningByCall.set(callId,{items,model})}function toRequestBody4(request){currentModel2=request.model;pendingReasoning=[];sawFunctionCall=false;const hasTools=request.tools!==void 0&&request.tools.length>0;return{model:request.model,max_output_tokens:request.maxTokens,...request.system!==void 0&&request.system!==
|
|
26
|
+
""?{instructions:request.system}:{},input:request.messages.flatMap(message=>toInputItems(message,request.model)),...hasTools?{tools:request.tools.map(tool=>({type:"function",name:tool.name,description:tool.description,parameters:tool.input_schema,strict:false}))}:{},include:["reasoning.encrypted_content"]}}function toInputItems(message,model){const text=message.content.filter(block=>block.type==="text").map(block=>block.type==="text"?block.text:"").join("");if(message.role==="assistant"){const calls=message.
|
|
27
|
+
content.flatMap(block=>block.type==="tool_use"?[block]:[]);const reasoningOf=id=>{const saved=reasoningByCall.get(id);return saved!==void 0&&saved.model===model?saved.items:[]};return[...calls.length>0?reasoningOf(calls[0].id):[],...text!==""?[{role:"assistant",content:text}]:[],...calls.flatMap((block,i)=>[...i>0?reasoningOf(block.id):[],{type:"function_call",call_id:block.id,name:block.name,arguments:JSON.stringify(block.input)}])]}const outputs=message.content.flatMap(block=>block.type==="too\
|
|
28
|
+
l_result"?[{type:"function_call_output",call_id:block.tool_use_id,output:block.is_error===true?`[tool error] ${block.content}`:block.content}]:[]);return[...outputs,...text!==""||outputs.length===0?[{role:"user",content:text}]:[]]}function decode4(ev){const parsed=safeJson4(ev.data);if(!parsed){return ev.event==="error"?[{kind:"error",message:ev.data.trim()||"\u30B9\u30C8\u30EA\u30FC\u30E0\u304C\u4E2D\u65AD\u3055\u308C\u307E\u3057\u305F"}]:[]}const type=typeof parsed["type"]==="string"?parsed["t\
|
|
29
|
+
ype"]:ev.event;if(ev.event==="error"||type==="error"){return[{kind:"error",message:errorMessageOf(parsed)}]}switch(type){case"response.output_text.delta":case"response.refusal.delta":{const delta=parsed["delta"];return typeof delta==="string"&&delta!==""?[{kind:"text",delta}]:[]}case"response.output_item.done":return outputItemDone(parsed);case"response.completed":case"response.incomplete":case"response.failed":return terminal(type,parsed["response"]);default:return[]}}function outputItemDone(event){
|
|
30
|
+
const item=event["item"];if(typeof item!=="object"||item===null)return[];const record=item;if(record["type"]==="reasoning"){pendingReasoning.push(record);return[]}if(record["type"]!=="function_call")return[];const callId=record["call_id"];const name=record["name"];if(typeof callId!=="string"||callId===""||typeof name!=="string"||name==="")return[];sawFunctionCall=true;if(pendingReasoning.length>0){rememberReasoning(callId,pendingReasoning,currentModel2);pendingReasoning=[]}const index=typeof event["\
|
|
31
|
+
output_index"]==="number"?event["output_index"]:0;const args=typeof record["arguments"]==="string"?record["arguments"]:"";return[{kind:"tool_start",index,id:callId,name,initialJson:args},{kind:"tool_end",index}]}function terminal(type,response){const record=typeof response==="object"&&response!==null?response:{};const out=[...usageEvent3(record["usage"])];if(type==="response.completed"){out.push({kind:"stop",reason:sawFunctionCall?"tool_use":"end_turn"});return out}if(type==="response.incomplete"){
|
|
32
|
+
const details=record["incomplete_details"];const reason=typeof details?.reason==="string"?details.reason:"incomplete";if(reason==="max_output_tokens"){out.push({kind:"stop",reason:"max_tokens"})}else{out.push({kind:"stop",reason});out.push({kind:"error",message:`OpenAI \u304C\u5FDC\u7B54\u3092\u6253\u3061\u5207\u308A\u307E\u3057\u305F: ${reason}`})}return out}out.push({kind:"error",message:errorMessageOf(record)});return out}function errorMessageOf(source){const raw=source["error"];const nested=typeof raw===
|
|
33
|
+
"string"?raw:raw?.message;const message=typeof nested==="string"&&nested!==""?nested:source["message"];return typeof message==="string"&&message!==""?message:"\u30B9\u30C8\u30EA\u30FC\u30E0\u304C\u4E2D\u65AD\u3055\u308C\u307E\u3057\u305F"}function usageEvent3(source){if(typeof source!=="object"||source===null)return[];const raw=source;const input=raw["input_tokens"];const output=raw["output_tokens"];if(typeof input!=="number"||typeof output!=="number")return[];const details=typeof raw["input_tok\
|
|
34
|
+
ens_details"]==="object"&&raw["input_tokens_details"]!==null?raw["input_tokens_details"]:{};const count=value=>typeof value==="number"&&Number.isFinite(value)?Math.max(0,value):0;const total=Math.max(0,input);const cacheReadTokens=Math.min(count(details["cached_tokens"]),total);const cacheWriteTokens=Math.min(count(details["cache_write_tokens"]),total-cacheReadTokens);const usage={inputTokens:total-cacheReadTokens-cacheWriteTokens,cacheReadTokens,cacheWriteTokens,outputTokens:Math.max(0,output)};
|
|
35
|
+
return[{kind:"usage",usage}]}function safeJson4(text){try{const parsed=JSON.parse(text);return typeof parsed==="object"&&parsed!==null&&!Array.isArray(parsed)?parsed:null}catch{return null}}var ADAPTERS={anthropic:anthropicAdapter,"openai-chat":openAiChatAdapter,"openai-responses":openAiResponsesAdapter,gemini:geminiAdapter};var PROTOCOLS_HEADER="X-TWP-CLI-Protocols";function supportedProtocols(){return Object.keys(ADAPTERS)}function isModelProtocol(value){return value==="anthropic"||value==="openai-chat"||value==="openai-responses"||value==="gemini"}function adapterFor(protocol){return ADAPTERS[protocol]??null}var DEFAULT_PROVIDER="anthropic";function effectiveModelSpec(spec){return{provider:spec?.provider??DEFAULT_PROVIDER,protocol:spec?.protocol??"anthropic",contextWindow:spec?.contextWindow??null,maxOutputTokens:spec?.maxOutputTokens??null,tools:spec?.capabilities?.tools??true,promptCache:spec?.capabilities?.promptCache??"explicit"}}var PROVIDER_PATTERN=/^[a-z0-9-]{1,32}$/;function positiveInt(value){return typeof value==="number"&&Number.isInteger(value)&&value>0?value:void 0}function parseModelSpec(id,raw){
|
|
26
36
|
const spec={id};if(typeof raw!=="object"||raw===null)return spec;const r=raw;if(typeof r["provider"]==="string"&&PROVIDER_PATTERN.test(r["provider"]))spec.provider=r["provider"];if(isModelProtocol(r["protocol"]))spec.protocol=r["protocol"];const contextWindow=positiveInt(r["context_window"]);if(contextWindow!==void 0)spec.contextWindow=contextWindow;const maxOutputTokens=positiveInt(r["max_output_tokens"]);if(maxOutputTokens!==void 0)spec.maxOutputTokens=maxOutputTokens;const caps=r["capabilitie\
|
|
27
37
|
s"];if(typeof caps==="object"&&caps!==null){const c=caps;const capabilities={};if(typeof c["tools"]==="boolean")capabilities.tools=c["tools"];const cache=c["prompt_cache"];if(cache==="explicit"||cache==="automatic"||cache==="none")capabilities.promptCache=cache;if(Object.keys(capabilities).length>0)spec.capabilities=capabilities}return spec}function toWireSpec(spec){return{id:spec.id,...spec.provider!==void 0?{provider:spec.provider}:{},...spec.protocol!==void 0?{protocol:spec.protocol}:{},...spec.
|
|
28
38
|
contextWindow!==void 0?{context_window:spec.contextWindow}:{},...spec.maxOutputTokens!==void 0?{max_output_tokens:spec.maxOutputTokens}:{},...spec.capabilities!==void 0?{capabilities:{...spec.capabilities.tools!==void 0?{tools:spec.capabilities.tools}:{},...spec.capabilities.promptCache!==void 0?{prompt_cache:spec.capabilities.promptCache}:{}}}:{}}}function modelCachePath(env=process.env){return path.join(twpHomeDir(env),"models.json")}function modelCacheLockPath(env=process.env){return path.join(twpHomeDir(env),"models.lock")}function builtinCatalog(){return{ids:MODELS.map(m=>m.id),source:"builtin",fetchedAt:null,minSupportedVersion:null}}function readCacheFile(env){const file=modelCachePath(env);if(!isTrustworthyCacheFile(file)){return{version:1,entries:{}}}const parsed=JSON.parse(fs.readFileSync(file,"utf8"));if(!parsed||typeof parsed!==
|
|
@@ -42,7 +52,7 @@ timeout(MODELS_TIMEOUT_MS));const body=await res.json().catch(()=>null);const mo
|
|
|
42
52
|
const floor=body?.min_supported_version;const minSupportedVersion=typeof floor==="string"&&parseVersionCore(floor)!==null?floor.trim():null;return{ids,models,minSupportedVersion}}async stream(request,hooks){const protocol=request.protocol??"anthropic";const adapter=adapterFor(protocol);if(!adapter){throw new RelayError("validation",`\u30E2\u30C7\u30EB ${request.model} \u306F ${protocol} \u30D7\u30ED\u30C8\u30B3\u30EB\u306E\u305F\u3081\u3001\u3053\u306E\u7248\u306E twp \u3067\u306F\u5229\u7528\u3067\u304D\u307E\u305B\u3093\uFF08twp \u3092\u66F4\u65B0\u3057\u3066\u304F\u3060\u3055\u3044\uFF09`)}
|
|
43
53
|
let res;try{res=await this.send("POST",adapter.streamPath,adapter.toRequestBody({model:request.model,maxTokens:request.maxTokens,...request.system!==void 0?{system:request.system}:{},messages:request.messages,...request.tools!==void 0?{tools:request.tools}:{},promptCache:request.promptCache??"explicit"}),hooks.signal)}catch(err){if(isAbortError(err)||hooks.signal?.aborted===true){return{text:"",usage:emptyUsage(),toolUses:[],stopReason:null,aborted:true,upstreamError:null}}throw err}const body=res.
|
|
44
54
|
body;if(!body){throw new RelayError("upstream","\u30EA\u30EC\u30FC\u304C\u5FDC\u7B54\u672C\u6587\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F")}const parser=new SseParser;const decoder=new TextDecoder;const usage=emptyUsage();let text="";let stopReason=null;let streamError=null;const reader=body.getReader();const building=new Map;const toolUses=[];const finalizeBlock=index=>{const pending=building.get(index);if(!pending)return;building.delete(index);const input=pending.json.trim()===""?
|
|
45
|
-
{}:
|
|
55
|
+
{}:safeJson5(pending.json);if(input===null){streamError=`\u30C4\u30FC\u30EB ${pending.name} \u306E\u5F15\u6570\u3092\u89E3\u91C8\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F`;return}toolUses.push({type:"tool_use",id:pending.id,name:pending.name,input})};const apply=ev=>{switch(ev.kind){case"usage":Object.assign(usage,ev.usage);return;case"text":text+=ev.delta;hooks.onTextDelta(ev.delta);return;case"tool_start":building.set(ev.index,{id:ev.id,name:ev.name,json:ev.initialJson});return;case"tool\
|
|
46
56
|
_delta":{const pending=building.get(ev.index);if(pending)pending.json+=ev.json;return}case"tool_end":finalizeBlock(ev.index);return;case"stop":stopReason=ev.reason;return;case"error":streamError=ev.message;return}};const handle=events=>{for(const ev of events){for(const neutral of adapter.decode(ev))apply(neutral)}};const onAbort=()=>{void reader.cancel().catch(()=>void 0)};if(hooks.signal){if(hooks.signal.aborted)onAbort();else hooks.signal.addEventListener("abort",onAbort,{once:true})}try{for(;;){
|
|
47
57
|
const{done,value}=await reader.read();if(done)break;handle(parser.push(decoder.decode(value,{stream:true})))}handle(parser.flush())}catch(err){if(err instanceof SseBufferOverflowError){streamError=err.message}else if(!isAbortError(err)&&hooks.signal?.aborted!==true){throw new RelayError("network",`\u30B9\u30C8\u30EA\u30FC\u30E0\u304C\u5207\u65AD\u3055\u308C\u307E\u3057\u305F: ${errorMessage(err)}`)}}finally{hooks.signal?.removeEventListener("abort",onAbort);void reader.cancel().catch(()=>void 0)}
|
|
48
58
|
for(const index of[...building.keys()])finalizeBlock(index);return{text,usage,toolUses,stopReason,aborted:hooks.signal?.aborted===true,upstreamError:streamError===null?null:stripTerminalControls(streamError)}}async send(method,path2,body,signal){let token;try{token=await this.session.getAccessToken()}catch(err){throw new RelayError("not_logged_in",errorMessage(err))}let res=await this.fetchOrThrow(method,path2,token,body,signal);if(res.status===401){try{token=await this.session.refresh(token)}catch(err){
|
|
@@ -51,7 +61,7 @@ void 0?{"Content-Type":"application/json"}:{}},...body!==void 0?{body:JSON.strin
|
|
|
51
61
|
const message=stripTerminalControls(body?.message??nested?.message??`HTTP ${res.status}`);if(res.status===401){return new RelayError("unauthorized","\u30E2\u30C7\u30EB\u53D6\u6B21\u306E\u8A8D\u8A3C\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002`twp login`\uFF08\u30D6\u30E9\u30A6\u30B6\u59D4\u8B72\uFF09\u307E\u305F\u306F `twp login --password` \u3067\u30ED\u30B0\u30A4\u30F3\u3057\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\uFF08`twp login --token` \u3067\u4FDD\u5B58\u3057\u305F\u901A\u5E38\u30C8\u30FC\u30AF\u30F3\u306F\u30E2\u30C7\u30EB\u53D6\u6B21\u306B\u306F\u4F7F\u3048\u307E\u305B\u3093\uFF09\u3002",
|
|
52
62
|
401)}if(res.status===403){return new RelayError("cli_disabled",message,403)}if(res.status===429){return new RelayError("rate_limit",message,429)}if(res.status===400){const detail=body?.details;if(Array.isArray(detail?.allowed_models)){return new RelayError("model_not_allowed",`${message}
|
|
53
63
|
\u5229\u7528\u3067\u304D\u308B\u30E2\u30C7\u30EB: ${detail.allowed_models.join(" / ")}`,400)}return new RelayError("validation",message,400)}if(res.status===413){return new RelayError("validation","\u9001\u4FE1\u3059\u308B\u4F1A\u8A71\u304C\u5927\u304D\u3059\u304E\u3066\u30E2\u30C7\u30EB\u53D6\u6B21\u30B5\u30FC\u30D0\u304C\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u4E0A\u9650 4MiB\uFF09\u3002`/clear` \u3067\u5C65\u6B74\u3092\u6D88\u3059\u304B\u3001\u8CBC\u308A\u4ED8\u3051\u305F\u5185\u5BB9\u30FB\u8AAD\u307F\u8FBC\u3080\u30D5\u30A1\u30A4\u30EB\u3092\u5C0F\u3055\u304F\u3057\u3066\u3084\u308A\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
54
|
-
413)}if(res.status===503){return new RelayError("unavailable",message,503)}return new RelayError("upstream",message,res.status)}function
|
|
64
|
+
413)}if(res.status===503){return new RelayError("unavailable",message,503)}return new RelayError("upstream",message,res.status)}function safeJson5(text){try{const parsed=JSON.parse(text);return typeof parsed==="object"&&parsed!==null?parsed:null}catch{return null}}function isAbortError(err){return err instanceof Error&&(err.name==="AbortError"||err.name==="TimeoutError")}function errorMessage(err){return err instanceof Error?err.message:String(err)}var DEFAULT_CONTEXT_WINDOW_TOKENS=2e5;var DEFAULT_MAX_TOKENS=8192;var TRIM_THRESHOLD=.8;var RELAY_BODY_LIMIT_BYTES=4*1024*1024;var BODY_SAFETY_MARGIN_BYTES=256*1024;var DEFAULT_MAX_HISTORY_BYTES=RELAY_BODY_LIMIT_BYTES-BODY_SAFETY_MARGIN_BYTES;var ContextManager=class{constructor(defaultContextWindowTokens=DEFAULT_CONTEXT_WINDOW_TOKENS){this.defaultContextWindowTokens=defaultContextWindowTokens;this.contextWindowTokens=defaultContextWindowTokens}defaultContextWindowTokens;messages=[];totals=emptyUsage();turns=0;lastPromptTokens=0;pendingChars=0;droppedMessages=0;contextWindowTokens;setContextWindow(tokens){
|
|
55
65
|
this.contextWindowTokens=tokens!==null&&tokens>0?tokens:this.defaultContextWindowTokens}addUser(text){this.pendingChars+=text.length;const last=this.messages[this.messages.length-1];if(last?.role==="user"){last.content.push({type:"text",text});return}this.messages.push({role:"user",content:[{type:"text",text}]})}addToolExchange(assistantText,toolUses,results){if(toolUses.length===0)return;const blocks=[];if(assistantText.trim()!=="")blocks.push({type:"text",text:assistantText});blocks.push(...toolUses);
|
|
56
66
|
this.messages.push({role:"assistant",content:blocks});this.messages.push({role:"user",content:results});this.pendingChars+=blocks.reduce((n,b)=>n+blockLength(b),0);this.pendingChars+=results.reduce((n,b)=>n+blockLength(b),0)}completeTurn(assistantText){const text=assistantText.trim();if(text===""){const last=this.messages[this.messages.length-1];if(last?.role==="user"&&!hasToolResult(last)){this.messages.pop();this.pendingChars=Math.max(0,this.pendingChars-lengthOf(last))}return false}this.messages.
|
|
57
67
|
push({role:"assistant",content:[{type:"text",text:assistantText}]});this.pendingChars+=assistantText.length;this.turns+=1;return true}applyUsage(usage){this.totals={inputTokens:this.totals.inputTokens+usage.inputTokens,cacheReadTokens:this.totals.cacheReadTokens+usage.cacheReadTokens,cacheWriteTokens:this.totals.cacheWriteTokens+usage.cacheWriteTokens,outputTokens:this.totals.outputTokens+usage.outputTokens};const prompt=usage.inputTokens+usage.cacheReadTokens+usage.cacheWriteTokens;if(prompt>0){
|
|
@@ -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-JULG6KDV.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{readCsvFileText}from"./chunk-QLENN5DD.js";import{featureLicenseGuidance}from"./chunk-HVBY74Q3.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-45WIRMGL.js";import{CUSTOMERS_PATH,SALES_COMPANIES_PATH,isExactNumericId}from"./chunk-4DOPQ74T.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError,
|
|
4
4
|
errorListMessages}from"./chunk-JA5A6UJ2.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.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\
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{projectEvaluationResource}from"./chunk-
|
|
4
|
-
import{boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{containsRedactedMarker,readBody}from"./chunk-
|
|
5
|
-
import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PROJECT_FLAG={name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30B3\u30FC\u30C9\u307E\u305F\u306F ID\uFF08\u7701\u7565\u6642\u306F TWP_PROJECT / .twp/config.json / ~/.twp/config.json\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"};var ROLE_FLAG={name:"--role",summary:"\u5F79\u5272\uFF08member / manager \u306A\u3069\u30FB\u5024\u306F\u30B5\u30FC\u30D0\u304C\u691C\u67FB\u3059\u308B\uFF09",takesValue:true,placeholder:"<\u5F79\u5272>"};var START_DATE_FLAG={name:"\
|
|
3
|
+
import{projectEvaluationResource}from"./chunk-FBTOIECJ.js";import{FROM_FLAG,MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,MONTH_FLAG,TO_FLAG,dataOf,listIn,manhourNotes,manhourQuery,manhourRows,monthRange,rangeNotes,recordOf,workloadDistributionNotes,workloadDistributionRows}from"./chunk-TQ7TNMW5.js";import{USER_REF_FLAG,USER_REF_HELP,userPath}from"./chunk-UVCJXHWN.js";import{createFlags,fieldBody,hasAnyField,idSegment,resolveRefFields,updateFlags}from"./chunk-45WIRMGL.js";
|
|
4
|
+
import{boundedText,isoDate}from"./chunk-JJSBBWJ5.js";import{containsRedactedMarker,readBody}from"./chunk-HEH3PUW2.js";import{ALLOW_REDACTED_FLAG}from"./chunk-W4NLJ2YK.js";import{REDACTED}from"./chunk-BD7O73GK.js";import{PROJECT_MEMBERS_LIMIT,PROJECT_TEMPLATES_PATH,resolveNamed}from"./chunk-4DOPQ74T.js";import{collapsesInUrlPath,safeProjectIdPolicy}from"./chunk-HVZUXLQ4.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";
|
|
5
|
+
import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var PROJECT_FLAG={name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30B3\u30FC\u30C9\u307E\u305F\u306F ID\uFF08\u7701\u7565\u6642\u306F TWP_PROJECT / .twp/config.json / ~/.twp/config.json\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"};var ROLE_FLAG={name:"--role",summary:"\u5F79\u5272\uFF08member / manager \u306A\u3069\u30FB\u5024\u306F\u30B5\u30FC\u30D0\u304C\u691C\u67FB\u3059\u308B\uFF09",takesValue:true,placeholder:"<\u5F79\u5272>"};var START_DATE_FLAG={name:"\
|
|
6
6
|
--start-date",summary:"\u53C2\u753B\u958B\u59CB\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var END_DATE_FLAG={name:"--end-date",summary:"\u53C2\u753B\u7D42\u4E86\u65E5\uFF08YYYY-MM-DD\uFF09",takesValue:true,placeholder:"<YYYY-MM-DD>"};var PERIOD_FILE_FLAG={name:"--period-file",summary:"\u7A3C\u50CD\u671F\u9593\uFF08assignment_periods\uFF09\u306E JSON \u914D\u5217\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};
|
|
7
7
|
var WIKI_ROLE_FLAG={name:"--wiki-role",summary:"\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E Wiki \u6A29\u9650\uFF08admin\uFF1DWiki \u7BA1\u7406\u8005 / member\uFF1D\u4E00\u822C\uFF09",takesValue:true,placeholder:"<admin|member>"};var MEMO_FLAG={name:"--memo",summary:"\u30E1\u30E2\uFF0810,000 \u6587\u5B57\u307E\u3067\uFF09",takesValue:true,placeholder:"<\u6587\u5B57\u5217>"};var CLEAR_FLAG={name:"--clear",summary:"\u5225\u540D\u3092\u6D88\u3059",takesValue:false};var WIKI_ROLES=["admin",
|
|
8
8
|
"member"];var MEMO_MAX_CHARS=1e4;var PERIOD_FILE_MAX_CHARS=2e5;var ALIAS_MAX_CHARS=255;var PERIOD_KEYS=["id","start_date","end_date","daily_hours","total_hours","input_mode"];var PERIOD_REQUIRED=["start_date","end_date","daily_hours"];var ROLE_HELP="--role \u306E\u5024\u306F\u30B5\u30FC\u30D0\u304C\u691C\u67FB\u3057\u307E\u3059\uFF08CLI \u306F\u691C\u67FB\u3057\u307E\u305B\u3093\uFF09\u30022026-10-01 \u6642\u70B9\u306E\u5024\u306F\n member\uFF08\u30E1\u30F3\u30D0\u30FC\uFF09/ manager\uFF08\u7BA1\u7406\u8005\uFF09/ approver\uFF08\u7BA1\u7406\u8005\uFF08\u627F\u8A8D\u8005\uFF09\uFF09/ manager_no_punch\uFF08\u7BA1\u7406\u8005\uFF08\u6253\u523B\u7121\uFF09\uFF09\u3067\u3059\u3002\n \u5024\u306F\u5897\u3048\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\u4ECA\u306E\u30E1\u30F3\u30D0\u30FC\u306E\u5024\u306F twp project members \u306E role \u5217\u3067\u78BA\u304B\u3081\u3089\u308C\u307E\u3059\u3002";
|
|
@@ -181,7 +181,8 @@ var CREATE_FIELDS=FIELDS2.filter(field=>field.key!=="default_due_days");var MEMO
|
|
|
181
181
|
placeholder:"<\u30D1\u30B9|->"}];var CLEAR_FLAGS2=[{flag:{name:"--no-memo",summary:"\u30E1\u30E2\u3092\u6D88\u3059",takesValue:false},key:"memo",conflicts:["--memo","--memo-file"]},{flag:{name:"--no-default-due-days",summary:"\u30BF\u30B9\u30AF\u4F5C\u6210\u6642\u306E\u65E2\u5B9A\u306E\u671F\u65E5\u3092\u5916\u3059",takesValue:false},key:"default_due_days",conflicts:["--default-due-days"]}];var COLUMNS=["id","code","name","status","start_date","end_date","display_flg","task_enabled_flg","wiki_de\
|
|
182
182
|
fault_content_format","updated_at"];var STATUS_HELP="\u30B9\u30C6\u30FC\u30BF\u30B9\uFF08active / closed\uFF09\u306F\u7D42\u4E86\u65E5\u304B\u3089\u81EA\u52D5\u3067\u6C7A\u307E\u308A\u307E\u3059\uFF08\u6307\u5B9A\u306F\u3067\u304D\u307E\u305B\u3093\uFF09\u3002\n\u65E9\u304F\u7D42\u3048\u308B\u3068\u304D\u306F --end-date \u3092\u904E\u53BB\u65E5\u306B\u3001\u518D\u958B\u3059\u308B\u3068\u304D\u306F\u4ECA\u65E5\u4EE5\u964D\u306E\u65E5\u4ED8\u304B none \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
|
|
183
183
|
var REF_HELP="\u30E6\u30FC\u30B6\u30FC\uFF08--manager / --leader\uFF09\u306F me\u30FBID\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u793E\u54E1\u756A\u53F7\u30FB\u6C0F\u540D\u3067\u3001\u90E8\u7F72\u306F\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID \u3067\u6307\u5B9A\u3067\u304D\u307E\u3059\n\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\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3084\u793E\u54E1\u756A\u53F7\u3067\u6307\u5B9A\u3059\u308B\u3068\u4E00\u610F\u306B\u6C7A\u307E\u308A\u307E\u3059\u3002";
|
|
184
|
-
var CREATE_FORBIDDEN="\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u4F5C\u6210\u306B\u306F\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u6A5F\u80FD\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";var
|
|
184
|
+
var CREATE_FORBIDDEN="\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u4F5C\u6210\u306B\u306F\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u6A5F\u80FD\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";var DELETE_FORBIDDEN="\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u524A\u9664\u3059\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u6A5F\u80FD\u306E\u6A29\u9650\u304C\u300C\u7DE8\u96C6\u8005\u300D\u4EE5\u4E0A\u3067\u3001\u304B\u3064\u305D\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30DE\u30CD\u30FC\u30B8\u30E3\u30FC\u3067\u3042\u308B\u304B\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u6A5F\u80FD\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002";
|
|
185
|
+
var UPDATE_FORBIDDEN="\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u66F4\u65B0\u3059\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u6A5F\u80FD\u306E\u6A29\u9650\u304C\u300C\u7DE8\u96C6\u8005\u300D\u4EE5\u4E0A\u3067\u3001\u304B\u3064\u305D\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30DE\u30CD\u30FC\u30B8\u30E3\u30FC\u3067\u3042\u308B\u304B\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u6A5F\u80FD\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u3067\u3042\u308B\u3053\u3068\u304C\u8981\u308A\u307E\u3059\u3002";
|
|
185
186
|
function readMemo(input,usage){return readBody(input,{flag:"--memo",fileFlag:"--memo-file",label:"\u30E1\u30E2",maxChars:MEMO_MAX_CHARS2,usage})}function checkCode(input){const code=input.flags.get("--code");if(code!==void 0&&collapsesInUrlPath(code.trim())){throw new UsageError(`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B3\u30FC\u30C9\u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${code}`,"\u30C9\u30C3\u30C8\u3060\u3051\u306E\u5024\u306F URL \u306E\u30D1\u30B9\u8981\u7D20\u3068\u3057\u3066\u6D88\u3048\u3066\u3057\u307E\u3046\u305F\u3081\u3001twp project get \u306A\u3069\u3067\u5F15\u3051\u306A\u304F\u306A\u308A\u307E\u3059\u3002")}}
|
|
186
187
|
function projectBody(input,fields){const body=fieldBody(input,fields);for(const clear of CLEAR_FLAGS2)if(input.flags.has(clear.flag.name))body[clear.key]=null;const memo=input.resolved?.["memo"];if(memo!==void 0)body["memo"]=memo;return body}async function prepareFields(input,ctx,usage,fields){checkCode(input);fieldBody(input,fields);for(const clear of CLEAR_FLAGS2){if(input.flags.has(clear.flag.name)&&clear.conflicts.some(flag=>input.flags.has(flag))){throw new UsageError(`${clear.flag.name} \u3068 ${clear.
|
|
187
188
|
conflicts.join(" / ")} \u306F\u540C\u6642\u306B\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,"\u3069\u3061\u3089\u304B\u4E00\u65B9\u3060\u3051\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}}const memo=await readMemo(input,usage);const withRefs=await resolveRefFields(input,ctx,fields);return memo===void 0?withRefs:withResolved(withRefs,{memo})}function projectOf(body,label){const project=isRecord(body)?body["project"]:void 0;if(!isRecord(project)){throw new ApiResponseError(`${label}\
|
|
@@ -225,7 +226,11 @@ projectOf(body,"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u66F4\u65B0"),COLUMNS
|
|
|
225
226
|
const current=isRecord(body)&&typeof body["current_code"]==="string"?body["current_code"]:"\uFF08\u4E0D\u660E\uFF09";if(!changeable){const max=isRecord(body)&&typeof body["max_tasks"]==="number"?`\uFF08\u4E0A\u9650 ${body["max_tasks"]} \u4EF6\uFF09`:"";throw new UsageError(`\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306F\u30BF\u30B9\u30AF\u304C ${count} \u4EF6\u3042\u308B\u305F\u3081\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B3\u30FC\u30C9\u3092\u5909\u66F4\u3067\u304D\u307E\u305B\u3093${max}\
|
|
226
227
|
\u3002`,"\u30B3\u30FC\u30C9\u3092\u5909\u3048\u305A\u306B\u3001\u540D\u524D\uFF08--name\uFF09\u3060\u3051\u3092\u5909\u3048\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u3059\u3002")}if(current===next)return{notes:[`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B3\u30FC\u30C9\u306F ${next} \u306E\u307E\u307E\u3067\u3059\uFF08\u30BF\u30B9\u30AF\u30AD\u30FC\u306F\u5909\u308F\u308A\u307E\u305B\u3093\uFF09\u3002`],warnings:[]};if(count===0)return{notes:[`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B3\u30FC\u30C9\u3092 ${current}\
|
|
227
228
|
\u304B\u3089 ${next} \u306B\u5909\u3048\u307E\u3059\uFF08\u30BF\u30B9\u30AF\u304C\u7121\u3044\u305F\u3081\u3001\u66F8\u304D\u63DB\u308F\u308B\u30AD\u30FC\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002`],warnings:[]};return{notes:[],warnings:[`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30B3\u30FC\u30C9\u3092 ${current} \u304B\u3089 ${next} \u306B\u5909\u3048\u308B\u3068\u3001\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30BF\u30B9\u30AF ${count} \u4EF6\u306E\u30AD\u30FC\u304C\u66F8\u304D\u63DB\u308F\u308A\u307E\u3059\uFF08${current}\
|
|
228
|
-
-1 \u2192 ${next}-1\uFF09\u3002\u5916\u90E8\u306B\u8CBC\u3063\u305F\u30AD\u30FC\u3084\u30D6\u30E9\u30F3\u30C1\u540D\u306F\u8FFD\u968F\u3057\u307E\u305B\u3093\u3002`]}}var
|
|
229
|
+
-1 \u2192 ${next}-1\uFF09\u3002\u5916\u90E8\u306B\u8CBC\u3063\u305F\u30AD\u30FC\u3084\u30D6\u30E9\u30F3\u30C1\u540D\u306F\u8FFD\u968F\u3057\u307E\u305B\u3093\u3002`]}}var DELETE_USAGE2="twp project delete <ID|\u30B3\u30FC\u30C9> --yes";var deleteOperation3={name:"delete",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\u30FB\u30BF\u30B9\u30AF\u7B49\u304C\u6B8B\u3063\u3066\u3044\u308C\u3070\u30B5\u30FC\u30D0\u304C\u65AD\u308B\uFF09",usage:DELETE_USAGE2,
|
|
230
|
+
description:"DELETE /api/v2/projects/{id}\u3002<ID|\u30B3\u30FC\u30C9> \u306F\u7701\u7565\u3067\u304D\u307E\u305B\u3093\uFF08\u65E2\u5B9A\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306F\u4F7F\u3044\u307E\u305B\u3093\uFF09\u3002\n\u53D6\u308A\u6D88\u305B\u306A\u3044\u305F\u3081 --yes \u304C\u8981\u308A\u307E\u3059\uFF08--dry-run \u3067\u9001\u308B\u5185\u5BB9\u3060\u3051\u3092\u78BA\u304B\u3081\u3089\u308C\u307E\u3059\uFF09\u3002\n\n\u914D\u4E0B\u306E\u30BF\u30B9\u30AF\u30FB\u6709\u52B9\u306A\u6253\u523B\u30FB\u8CA9\u58F2\u7BA1\u7406\u304B\u3089\u306E\u53C2\u7167\u30FB\u696D\u52D9\u30C7\u30FC\u30BF\uFF08\u8B70\u4E8B\u9332\u30FBWiki \u7B49\uFF09\u304C\u6B8B\u3063\u3066\u3044\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306F\u3001\u30B5\u30FC\u30D0\u304C\u524A\u9664\u3092\u65AD\u308A\u307E\u3059\n\uFF08\u7406\u7531\u3092\u305D\u306E\u307E\u307E\u51FA\u3057\u3066\u6B62\u307E\u308A\u307E\u3059\uFF09\u3002\u5148\u306B\u305D\u308C\u3089\u3092\u7247\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002\u30E1\u30F3\u30D0\u30FC\u306E\u767B\u9332\u306F\u30B5\u30FC\u30D0\u304C\u4F75\u305B\u3066\u524A\u9664\u3057\u307E\u3059\u3002\n\u4F7F\u308F\u306A\u304F\u306A\u3063\u305F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u6B8B\u3057\u305F\u307E\u307E\u9589\u3058\u308B\u3060\u3051\u306A\u3089\u3001\u524A\u9664\u305B\u305A\u306B twp project update <\u30B3\u30FC\u30C9> --end-date <\u904E\u53BB\u65E5> \u3067\u30AF\u30ED\u30FC\u30BA\u3067\u304D\u307E\u3059\u3002\n\n\u4F8B:\n twp project delete OLDPJ --dry-run\n twp project delete OLDPJ --yes",
|
|
231
|
+
destructive:true,forbidden:DELETE_FORBIDDEN,flags:[],async prepare(input,ctx){const ref=singleRef(input,{flag:"<ID|\u30B3\u30FC\u30C9>",label:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",usage:DELETE_USAGE2});if(collapsesInUrlPath(ref)){throw new UsageError(`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E UUID \u304B\u30B3\u30FC\u30C9\u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${ref}`,"\u30C9\u30C3\u30C8\u3060\u3051\u306E\u5024\u306F URL \u306E\u30D1\u30B9\u8981\u7D20\u3068\u3057\u3066\u6D88\u3048\u3066\u3057\u307E\u3046\u305F\u3081\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093\u3002")}
|
|
232
|
+
const project=await ctx.resolver.project(ref);return withResolved(input,{projectId:project.id,...project.code!==project.id?{currentCode:project.code}:{}})},plan:input=>({method:"DELETE",path:`${PROJECTS_PATH}/${encodeURIComponent(requireResolved(input,"projectId"))}`}),plannedNotes:input=>{const id=requireResolved(input,"projectId");const code=input.resolved?.["currentCode"];return[`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 ${typeof code==="string"?`${code}\uFF08${id}\uFF09`:id} \u3092\u524A\u9664\u3057\u307E\u3059\u3002\u30BF\u30B9\u30AF\u30FB\u6253\u523B\u306A\u3069\u304C\u6B8B\u3063\u3066\u3044\u308C\
|
|
233
|
+
\u3070\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF08\u4F55\u3082\u6D88\u3048\u307E\u305B\u3093\uFF09\u3002`]},summarize:body=>acknowledgement(body,"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u524A\u9664"),raw:body=>acknowledgement(body,"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u524A\u9664")};var projectWriteOperations=[createOperation3,updateOperation3,deleteOperation3];var LIST_COLUMNS2=["id","code","name","status","effective_status"];var GET_COLUMNS2=["id","code","name","status","effective_status","display_flg","closed_flg","task_enabled_flg","wiki_default_content_format","start_date","end_date","created_at","updated_at"];var MEMBER_COLUMNS2=["user_id","user_name","user_email","role","wiki_role","alias","department_name"];function memberItems(body){const list=isRecord(body)?body["list"]:void 0;if(!Array.isArray(list)){throw new ApiResponseError("\u30E1\u30F3\u30D0\u30FC\u4E00\u89A7\u306E\u5FDC\u7B54\u306B li\
|
|
229
234
|
st \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return list}var listPaging=envelopePaging({label:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4E00\u89A7"});function listItems(body){return listPaging.items(body)}function projectObject(body){const project=isRecord(body)?body["project"]:void 0;if(!isRecord(project)){throw new ApiResponseError("\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u8A73\u7D30\u306E\u5FDC\u7B54\u306B project \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
|
|
230
235
|
return project}var MANHOURS_USAGE="twp project manhours [<ID|\u30B3\u30FC\u30C9>] [--from <YYYY-MM-DD>] [--to <YYYY-MM-DD>]";var projectDomain={name:"project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u4E00\u89A7\u30FB\u8A73\u7D30\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u30E1\u30F3\u30D0\u30FC\u306E\u30A2\u30B5\u30A4\u30F3\u30FB\u5DE5\u6570\u30FB\u30EA\u30B9\u30AF\u5206\u6790\u30FB\u53CE\u652F\u5206\u6790\u30FB\u5DE5\u7A0B",operations:[{name:"list",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u4E00\u89A7\u3059\u308B",
|
|
231
236
|
usage:"twp project list [--all] [--limit <\u4EF6\u6570>] [--cursor <\u30AB\u30FC\u30BD\u30EB>] [--keyword <\u8A9E>] [--status <\u72B6\u614B>]",description:"--output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u51FA\u3057\u307E\u3059\u3002\n--output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08id / code / name / status / effective_status\uFF09\u3067\u3059\u3002\n\u6B32\u3057\u3044\u5217\u3060\u3051\u3092\u6A5F\u68B0\u51E6\u7406\u3057\u305F\u3044\u3068\u304D\u306F --query \u3067\u9078\u3093\u3067\u304F\u3060\u3055\u3044\uFF08--query \u306F\u751F\u30C7\u30FC\u30BF\u306B\u5BFE\u3057\u3066\u8A55\u4FA1\u3055\u308C\u307E\u3059\uFF09\u3002\n\n"+
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{loadDomain}from"./chunk-
|
|
3
|
+
import{loadDomain}from"./chunk-BEUPNDJE.js";import{JsonBodyWithView}from"./chunk-Q3B65OFC.js";import{evaluateQuery}from"./chunk-GFLGXGWE.js";import{renderDocument,renderOutput}from"./chunk-U6REFY7T.js";import{NO_REDACT_NOTICE,withCommonFlags}from"./chunk-W4NLJ2YK.js";import{redactSecretValues,redactSecrets,withDebug}from"./chunk-BD7O73GK.js";import{parseOperationArgs}from"./chunk-VGT2EGH6.js";import{Resolver,requireDefaultProject}from"./chunk-4DOPQ74T.js";
|
|
4
4
|
import{ResolveError}from"./chunk-HVZUXLQ4.js";import{ApiError,MultipartBody,TwpApiClient,appendQuery}from"./chunk-JA5A6UJ2.js";import{DEFAULT_MAX_ITEMS,DEFAULT_MAX_PAGES,nextPageNotes,positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{isRecord}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,EXIT_API_CLIENT,EXIT_API_SERVER,EXIT_AUTH,EXIT_FAILURE,EXIT_OK,EXIT_USAGE,EXIT_WAIT_TIMEOUT,NetworkError,UsageError,WaitTimeoutError}from"./chunk-VFPY2A23.js";
|
|
5
|
-
import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{AuthSession,NotLoggedInError,SessionExpiredError,loadCredentials}from"./chunk-XNLIEUAW.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{effectiveApiUrl,loadUserConfig,resolveConfiguredBacklogSpace,resolveConfiguredOutput,resolveProfile}from"./chunk-EDF4U5BT.js";import{HELP_TOKEN}from"./chunk-
|
|
5
|
+
import{GLOBAL_OPTIONS_HELP}from"./chunk-PECIBNFD.js";import{AuthSession,NotLoggedInError,SessionExpiredError,loadCredentials}from"./chunk-XNLIEUAW.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{effectiveApiUrl,loadUserConfig,resolveConfiguredBacklogSpace,resolveConfiguredOutput,resolveProfile}from"./chunk-EDF4U5BT.js";import{HELP_TOKEN}from"./chunk-6FI4ZMZ7.js";import{OUTPUT_FORMATS,resolveOutputFormat}from"./chunk-74BPZOKU.js";import{stringWidth}from"./chunk-UREA4ZIG.js";
|
|
6
6
|
import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import fs from"fs";import path from"path";function alignedList(entries,indent=" "){const width=entries.reduce((max,[left])=>Math.max(max,stringWidth(left)),0);return entries.map(([left,right])=>`${indent}${left}${" ".repeat(Math.max(0,width-stringWidth(left)))} ${right}`).join("\n")}function subresourcesOf(resource){return resource.subresources??[]}function renderResourceHelp(resource,path2){const subresources=subresourcesOf(resource);const operationSection=resource.operations.length===0?"":`
|
|
7
7
|
\u64CD\u4F5C:
|
|
8
8
|
${alignedList(resource.operations.map(op=>[op.name,op.summary]))}
|
|
@@ -46,8 +46,8 @@ cursorParamFor?.(args.plan)??paging.cursorParam;const first=args.plan.query?.[cu
|
|
|
46
46
|
sent=next}}function resolvePaging(operation,path2,input){const all=input.flags.has("--all");const maxPages=positiveInteger(input.flags,"--max-pages")??DEFAULT_MAX_PAGES;const maxItems=positiveInteger(input.flags,"--max-items")??DEFAULT_MAX_ITEMS;positiveInteger(input.flags,"--limit");if(all&&operation.paging===void 0){throw new UsageError(`twp ${path2} ${operation.name} \u306F --all \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093`)}for(const name of["--max-pages","--max-items"]){if(!all&&
|
|
47
47
|
input.flags.has(name)){throw new UsageError(`${name} \u306F --all \u3068\u4F75\u305B\u3066\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,`${name} \u3060\u3051\u3067\u306F\u4F55\u3082\u5909\u308F\u308A\u307E\u305B\u3093`)}}return{all,maxPages,maxItems}}function profileAliases(profileName){const aliases=loadUserConfig().profiles?.[profileName]?.aliases;return aliases!==void 0?{aliases}:{}}function buildPrepareContext(args){const cache=new Map;return{resolver:args.resolver,projectId(explicit){if(explicit!==
|
|
48
48
|
void 0&&explicit.trim()===""){throw new UsageError("--project \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093","--project <\u30B3\u30FC\u30C9|ID> \u3092\u6307\u5B9A\u3059\u308B\u304B\u3001--project \u3054\u3068\u5916\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}const ref=requireDefaultProject(explicit,args.profileName,args.env,args.cwd).ref;const hit=cache.get(ref);if(hit!==void 0)return hit;const resolved=args.resolver.project(ref).then(project=>project.id);cache.set(ref,
|
|
49
|
-
resolved);return resolved},configuredBacklogSpace:()=>resolveConfiguredBacklogSpace(args.profileName,args.env)}}async function runDomain(options){const{globals}=options;const out=options.io?.out??writeOut;const errOut=options.io?.err??writeErr;let format=null;let forbidden;let rejected;try{const profile=resolveProfile(globals.profile);format=resolveOutputFormat({...globals.output!==void 0?{flag:globals.output}:{},...(()=>{const configured=resolveConfiguredOutput(
|
|
50
|
-
void 0?{configured}:{}})(),isTty:
|
|
49
|
+
resolved);return resolved},configuredBacklogSpace:()=>resolveConfiguredBacklogSpace(args.profileName,args.env)}}async function runDomain(options){const{globals}=options;const out=options.io?.out??writeOut;const errOut=options.io?.err??writeErr;let format=null;let forbidden;let rejected;const stdoutIsTty=options.io?.isTty??process.stdout.isTTY===true;try{const profile=resolveProfile(globals.profile);format=resolveOutputFormat({...globals.output!==void 0?{flag:globals.output}:{},...(()=>{const configured=resolveConfiguredOutput(
|
|
50
|
+
profile.name);return configured!==void 0?{configured}:{}})(),isTty:stdoutIsTty});if(format===null){throw new UsageError(`--output \u306B\u300C${globals.output??""}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${OUTPUT_FORMATS.join(" / ")} \u3067\u3059`)}const domain=await loadDomain(options.domain);const domainPath=domain.commandPath??domain.name;const subPath=resource2=>resource2.commandPath??`${domainPath} ${resource2.name}`;if(options.operation===
|
|
51
51
|
HELP_TOKEN||options.help&&options.operation===void 0){const[extra,...rest2]=options.argv;if(extra===void 0){out(renderResourceHelp(domain,domainPath));return EXIT_OK}const target=domain.subresources?.find(resource2=>resource2.name===extra);if(target===void 0||rest2.length>0){throw new UsageError(renderUnknownOperation(domain,domainPath,extra))}out(renderResourceHelp(target,subPath(target)));return EXIT_OK}const sub=domain.subresources?.find(resource2=>resource2.name===options.operation);const resource=sub??
|
|
52
52
|
domain;const path2=sub===void 0?domainPath:subPath(sub);let operationName=sub===void 0?options.operation:options.argv[0];let rest=sub===void 0?options.argv:options.argv.slice(1);if(sub!==void 0&&(operationName===HELP_TOKEN||options.help&&operationName===void 0)){out(renderResourceHelp(sub,path2));return EXIT_OK}let operation=resource.operations.find(op=>op.name===operationName);if(operation===void 0&&sub===void 0&&domain.defaultOperation!==void 0&&(operationName!==void 0||rest.length>0)){const fallback=domain.
|
|
53
53
|
operations.find(op=>op.name===domain.defaultOperation);if(fallback===void 0)throw new Error(`\u5185\u90E8\u30A8\u30E9\u30FC: ${domain.name} \u306E\u65E2\u5B9A\u306E\u64CD\u4F5C ${domain.defaultOperation} \u304C\u3042\u308A\u307E\u305B\u3093`);rest=operationName===void 0?rest:[operationName,...rest];operationName=fallback.name;operation=fallback}if(operation===void 0){throw new UsageError(renderUnknownOperation(resource,path2,operationName))}forbidden=operation.forbidden;rejected=operation.rejected;
|
|
@@ -55,17 +55,19 @@ if(options.help||rest[0]===HELP_TOKEN){out(renderOperationHelp(operation,path2))
|
|
|
55
55
|
const paging=resolvePaging(operation,path2,input);const downloadTarget=operation.download===void 0?void 0:resolveDownloadTarget(operation.download,path2,operation.name,input);const stored=loadCredentials(profile.name);const apiUrl=effectiveApiUrl(profile,stored?.api_url);const transport=options.fetchImpl??httpFetch;const fetchImpl=globals.debug?withDebug(transport,{write:errOut,...operation.sensitiveBody!==void 0?{omitBodies:operation.sensitiveBody}:{}}):transport;const session=new AuthSession(profile.
|
|
56
56
|
name,apiUrl,process.env,fetchImpl);const client=new TwpApiClient(apiUrl,session,fetchImpl,options.version);const ctx=buildPrepareContext({resolver:new Resolver(client,{profile:profile.name,refresh:globals.refresh,...profileAliases(profile.name)}),profileName:profile.name,env:process.env,cwd:process.cwd()});const prepared=operation.prepare===void 0?input:await operation.prepare(input,ctx);const plan=operation.plan(prepared);if(operation.execute!==void 0&&(operation.download!==void 0||operation.paging!==
|
|
57
57
|
void 0||operation.fetchCached!==void 0)){throw new Error(`twp ${path2} ${operation.name}: execute \u306F download / paging / fetchCached \u3068\u540C\u6642\u306B\u5BA3\u8A00\u3067\u304D\u307E\u305B\u3093\uFF08\u914D\u7DDA\u306E\u8AA4\u308A\uFF09`)}if(operation.narrow!==void 0&&(operation.execute!==void 0||operation.download!==void 0||operation.fetchCached!==void 0)){throw new Error(`twp ${path2} ${operation.name}: narrow \u306F execute / download / fetchCached \u3068\u540C\u6642\u306B\u5BA3\u8A00\u3067\u304D\u307E\u305B\u3093\uFF08\u914D\u7DDA\u306E\u8AA4\u308A\uFF09`)}
|
|
58
|
-
if(operation.
|
|
59
|
-
if(operation.
|
|
58
|
+
if(operation.deliver!==void 0&&(operation.download!==void 0||operation.paging!==void 0||operation.fetchCached!==void 0||operation.narrow!==void 0||operation.document!==void 0)){throw new Error(`twp ${path2} ${operation.name}: deliver \u306F download / paging / fetchCached / narrow / document \u3068\u540C\u6642\u306B\u5BA3\u8A00\u3067\u304D\u307E\u305B\u3093\uFF08\u914D\u7DDA\u306E\u8AA4\u308A\uFF09`)}if(operation.deliver!==void 0&&globals.query!==void 0){throw new UsageError(`twp ${path2} ${operation.
|
|
59
|
+
name} \u306F --query \u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093\uFF08\u7D50\u679C\u3092\u52A0\u5DE5\u305B\u305A\u306B\u305D\u306E\u307E\u307E\u51FA\u3059\u64CD\u4F5C\u3067\u3059\uFF09`)}if(operation.preview!==void 0&&(operation.fetchCached!==void 0||operation.download!==void 0)){throw new Error(`twp ${path2} ${operation.name}: preview \u306F\u66F8\u304D\u8FBC\u307F\u306E\u64CD\u4F5C\u306B\u3060\u3051\u5BA3\u8A00\u3067\u304D\u307E\u3059\uFF08\u914D\u7DDA\u306E\u8AA4\u308A\uFF09`)}if(operation.
|
|
60
|
+
invalidates!==void 0&&(operation.fetchCached!==void 0||plan.method==="GET")){throw new Error(`twp ${path2} ${operation.name}: invalidates \u306F\u66F8\u304D\u8FBC\u307F\u306E\u64CD\u4F5C\u306B\u3060\u3051\u5BA3\u8A00\u3067\u304D\u307E\u3059\uFF08\u914D\u7DDA\u306E\u8AA4\u308A\uFF09`)}if(operation.fetchCached!==void 0&&(operation.download!==void 0||operation.paging!==void 0||operation.destructive===true||plan.method!=="GET")){throw new Error(`twp ${path2} ${operation.name}: fetchCached \u306F\u9001\u4FE1\u3057\u306A\u3044\u8AAD\u307F\u53D6\u308A\
|
|
61
|
+
\u5C02\u7528\u306E\u64CD\u4F5C\u306B\u3060\u3051\u5BA3\u8A00\u3067\u304D\u307E\u3059\uFF08\u914D\u7DDA\u306E\u8AA4\u308A\uFF09`)}for(const note of operation.plannedNotes?.(prepared)??[])errOut(`${safeText(note)}
|
|
60
62
|
`);if(noRedact)errOut(`${NO_REDACT_NOTICE}
|
|
61
63
|
`);const executeCtx={send:next=>send(client,apiUrl,next),putSigned:(url,bytes,contentType)=>putSigned(fetchImpl,url,bytes,contentType),putRange:(url,bytes,start,total)=>putRange(fetchImpl,url,bytes,start,total),downloadSigned:async(url,target)=>{const received=await getSigned(fetchImpl,url);writeTarget(target,received.bytes);return{path:target.out,size:received.bytes.byteLength,contentType:received.contentType}},warn:text=>errOut(`${safeText(text)}
|
|
62
|
-
`),dryRun:globals.dryRun};if(operation.preview!==void 0&&plan.method!=="GET"){const checked=await operation.preview(prepared,executeCtx);for(const note of checked.notes)errOut(`${safeText(note)}
|
|
64
|
+
`),dryRun:globals.dryRun,stdoutIsTty};if(operation.preview!==void 0&&plan.method!=="GET"){const checked=await operation.preview(prepared,executeCtx);for(const note of checked.notes)errOut(`${safeText(note)}
|
|
63
65
|
`);for(const warning of checked.warnings)errOut(`${safeText(`\u8B66\u544A: ${warning}`)}
|
|
64
66
|
`);if(!globals.dryRun&&checked.warnings.length>0&&!globals.yes){throw new UsageError(`twp ${path2} ${operation.name}: \u6574\u5408\u306E\u8B66\u544A\u304C ${checked.warnings.length} \u4EF6\u3042\u308B\u305F\u3081\u9001\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u5185\u5BB9\u3092\u78BA\u304B\u3081\u305F\u3046\u3048\u3067\u9001\u308B\u306A\u3089 --yes \u3092\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002`)}}if(globals.dryRun){out(line(renderOutput(dryRunValue(apiUrl,plan,noRedact?void 0:operation.
|
|
65
67
|
sensitiveBody),format,noRedact)));return EXIT_OK}let body;let paged;try{if(operation.execute!==void 0){body=await operation.execute(prepared,executeCtx)}else if(operation.fetchCached!==void 0){body=await operation.fetchCached(prepared,ctx)}else if(operation.download!==void 0&&downloadTarget!==void 0){assertWritableTarget(downloadTarget,operation.download.forceFlag);const signedUrl=operation.download.signedUrl;body=await download({client,apiUrl,plan,target:downloadTarget,...signedUrl===void 0?{}:
|
|
66
68
|
{signed:{fetchImpl,signedUrl}},...operation.download.captureHeaders===void 0?{}:{captureHeaders:operation.download.captureHeaders},...operation.download.transform===void 0?{}:{transform:operation.download.transform}})}else if(paging.all&&operation.paging!==void 0){paged=await fetchAllPages({client,apiUrl,plan,paging:operation.paging,maxPages:paging.maxPages,maxItems:paging.maxItems,warn:errOut,...operation.paging.resume!==void 0?{vocabulary:{...CURATED_PAGING_VOCABULARY,resume:operation.paging.resume}}:
|
|
67
|
-
{}});body=paged.body}else{body=await send(client,apiUrl,plan)}}finally{try{operation.invalidates?.(prepared,ctx)}catch{}}if(operation.narrow!==void 0)body=operation.narrow(body,prepared);if(paged!==void 0&&operation.paging!==void 0){paged={...paged,count:operation.paging.items(body).length}}const visible=noRedact?body:redactSecretValues(body);const document=globals.query===void 0&&format==="text"&&operation.document!==void 0?operation.
|
|
68
|
-
globals.query!==void 0?await evaluateQuery(globals.query,operation.raw(visible)):outputValue(operation,format,visible);out(line(document!==void 0?renderDocument(document,noRedact):renderOutput(value,format,noRedact)));if(paged!==void 0){errOut(`--all: ${paged.pages} \u30DA\u30FC\u30B8\u3092\u8FBF\u3063\u3066 ${paged.count} \u4EF6\u3092\u53D6\u5F97\u3057\u307E\u3057\u305F\u3002
|
|
69
|
+
{}});body=paged.body}else{body=await send(client,apiUrl,plan)}}finally{try{operation.invalidates?.(prepared,ctx)}catch{}}if(operation.narrow!==void 0)body=operation.narrow(body,prepared);if(operation.deliver!==void 0)return operation.deliver(body,out);if(paged!==void 0&&operation.paging!==void 0){paged={...paged,count:operation.paging.items(body).length}}const visible=noRedact?body:redactSecretValues(body);const document=globals.query===void 0&&format==="text"&&operation.document!==void 0?operation.
|
|
70
|
+
document(visible):void 0;const value=document!==void 0?void 0:globals.query!==void 0?await evaluateQuery(globals.query,operation.raw(visible)):outputValue(operation,format,visible);out(line(document!==void 0?renderDocument(document,noRedact):renderOutput(value,format,noRedact)));if(paged!==void 0){errOut(`--all: ${paged.pages} \u30DA\u30FC\u30B8\u3092\u8FBF\u3063\u3066 ${paged.count} \u4EF6\u3092\u53D6\u5F97\u3057\u307E\u3057\u305F\u3002
|
|
69
71
|
`)}const pagingNotes=operation.paging===void 0?[]:nextPageNotes(body,prepared,{command:`twp ${path2} ${operation.name}`,flags:operation.flags,profile:globals.profile,readCursor:operation.paging.readCursor});for(const note of[...pagingNotes,...operation.notes?.(visible,prepared)??[]]){errOut(`${safeText(note)}
|
|
70
72
|
`)}const failed=operation.failures?.(body)??[];let partial=EXIT_OK;for(const{target,error}of failed){const err=withRejectedGuidance(withForbiddenGuidance(error,forbidden),rejected);const code=exitCodeFor(err);reportError(err,format,code,errOut,target);if(partial!==EXIT_API_SERVER)partial=code===EXIT_API_SERVER?EXIT_API_SERVER:EXIT_API_CLIENT}return partial}catch(caught){const err=withRejectedGuidance(withForbiddenGuidance(caught,forbidden),rejected);const code=exitCodeFor(err);reportError(err,format,
|
|
71
73
|
code,errOut);return code}}function withForbiddenGuidance(err,forbidden){if(forbidden===void 0||!(err instanceof ApiError)||err.status!==403)return err;const guidance=typeof forbidden==="function"?forbidden(err.body):forbidden;if(guidance===void 0)return err;const server=err.body?.error_description??err.body?.message;const wrapped=new ApiError(err.status,err.body,"","");wrapped.message=server!==void 0&&server!==""?`${guidance}\uFF08\u30B5\u30FC\u30D0\u306E\u5FDC\u7B54: ${server}\uFF09`:guidance;return wrapped}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{placeholderTaskKey,stepToItem}from"./chunk-
|
|
3
|
+
import{placeholderTaskKey,stepToItem}from"./chunk-HUKKZ252.js";import{redactLoopOutput}from"./chunk-VEEZJNOB.js";import{localDate}from"./chunk-INS77QHY.js";import{normalizeSkillName,skillOfItem}from"./chunk-FABDZBDZ.js";import{DEFAULT_SKILL_PREFIX,SKILL_PREFIX_RE,setSkillPrefix,skillCommand,skillPrefix}from"./chunk-6CS5L24D.js";import{describeError,pick,pickString}from"./chunk-UZUV5FYG.js";import{isTaskKey}from"./chunk-II5RVJQN.js";import{createHash,randomBytes}from"crypto";import fs from"fs";import path from"path";var INFLIGHT_STALE_HOURS=3;function staleFloorHours(aiTimeoutSec){return Math.ceil(aiTimeoutSec*2/3600)}function inflightStaleHours(aiTimeoutSec,baseHours=INFLIGHT_STALE_HOURS){const base=Number.isFinite(baseHours)&&baseHours>0?baseHours:INFLIGHT_STALE_HOURS;return Math.max(base,staleFloorHours(aiTimeoutSec))}function ageMinutesOf(item,now){for(const raw of[item.started_at,item.updated_at,item.dequeued_at,item.created_at]){if(!raw)continue;const ts=Date.parse(raw);if(Number.isNaN(ts))continue;return Math.
|
|
4
4
|
floor((now.getTime()-ts)/6e4)}return null}function inflightEntries(items,now=new Date,staleHours=INFLIGHT_STALE_HOURS){const staleMinutes=staleHours*60;const byKey=new Map;for(const item of items){const key=(item.task_key??"").trim();if(!key)continue;const ageMinutes=ageMinutesOf(item,now);if(ageMinutes!==null&&ageMinutes>staleMinutes)continue;const entry={key,runner:item.runner_id??"-",ageMinutes,label:(item.label??"").slice(0,60)};const prev=byKey.get(key);if(!prev||(entry.ageMinutes??-1)>(prev.
|
|
5
5
|
ageMinutes??-1))byKey.set(key,entry)}return[...byKey.values()].sort((a,b)=>a.key.localeCompare(b.key))}function formatInflightEntry(entry){const age=entry.ageMinutes===null?"\u4E0D\u660E":`${entry.ageMinutes}\u5206`;return`${entry.key} runner=${entry.runner} \u7D4C\u904E=${age}`}async function createItem(api,body){const res=await api.create(redactItemBody(body));if(!res.ok)return{itemId:null,detail:describeError(res)};for(const p of["item_id","id","item.item_id","item.id","data.item_id","data.id"]){const v=pickString(res.json,p);if(v)return{itemId:v,detail:""}}return{itemId:null,detail:`item_id \u3092\u8AAD\u3081\u307E\u305B\u3093: ${res.raw.slice(0,200)}`}}function redactItemBody(body){const out={...body};for(const key of["prompt","label"]){if(typeof out[key]==="string")
|
|
6
6
|
out[key]=redactLoopOutput(out[key])}return out}function reorderSucceeded(targetId,json){if(pick(json,"result")===true)return true;const raw=Array.isArray(json)?json:pick(json,"items");if(!Array.isArray(raw)||raw.length===0)return false;const items=raw;const orderOf=it=>typeof it.sort_order==="number"?it.sort_order:Number.POSITIVE_INFINITY;const hit=items.find(it=>(it.item_id??"")===targetId);if(!hit)return false;return orderOf(hit)===Math.min(...items.map(orderOf))}function queueContainsKey(items,key){
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{splitFlagToken}from"./chunk-
|
|
3
|
+
import{splitFlagToken}from"./chunk-OKATZ4SN.js";var BUILTIN_COMMANDS=["login","logout","whoami","update","task-loop"];var TASK_LOOP_ACTIONS=["run","status","stop","schedule","setup","charter","skill","settings","orientation","plan","capacity","runner"];var VALUE_FLAGS=new Set(["-p","--print","--profile","--tenant","--mode","--permission-mode","--model","--allowed-tools","--disallowed-tools","--project","--engine","--interval","--max-cycles","--ai","--workspace","--ai-config-file","--now","--counts","--gate","--file","--out","--revision","--di\
|
|
4
4
|
r","--from","--to","--config","--output","--query"]);var BOOLEAN_FLAGS=new Set(["-h","--help","-v","--version","--no-tui","--doctor","--password","--token","--no-browser","--safe","--daemon","--force-runner","--force","--drain","--yes","-y","--no-ai-config-file","--verbose","--all","--empty","--check","--include-stopped","--dry-run","--debug","--refresh"]);function dispatch(argv,limit=2){const tokens=[];const indexes=[];let truncated=false;for(let i=0;i<argv.length;i++){const arg=argv[i];if(arg===
|
|
5
5
|
void 0)continue;if(arg.startsWith("-")&&arg!=="-"){const{name,value:inline}=splitFlagToken(arg);if(BOOLEAN_FLAGS.has(name)){if(inline!==void 0){truncated=true;break}continue}if(VALUE_FLAGS.has(name)){if(inline!==void 0)continue;const next=argv[i+1];if(next!==void 0&&(!next.startsWith("-")||next==="-"))i++;continue}truncated=true;break}if(arg===""||arg==="-")continue;if(tokens.length>=limit)break;tokens.push(arg);indexes.push(i)}return{tokens,indexes,truncated}}var TASK_LOOP_QUEUE_ACTIONS=["item",
|
|
6
6
|
"history","plan-history"];var QUEUE_DOMAIN="agent-loop";function rewriteQueueCommand(argv){const{tokens,indexes}=dispatch(argv);const[first,second]=tokens;if(first===QUEUE_DOMAIN||first==="help"&&second===QUEUE_DOMAIN)return{argv,moved:QUEUE_DOMAIN};const[firstIndex,secondIndex]=indexes;if(first!=="task-loop"||second===void 0||firstIndex===void 0||secondIndex===void 0||!TASK_LOOP_QUEUE_ACTIONS.includes(second)){return{argv}}const next=[...argv];next[firstIndex]=QUEUE_DOMAIN;if(second==="item")next.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{hoursMinutes}from"./chunk-
|
|
3
|
+
import{hoursMinutes}from"./chunk-7KU2EXEE.js";import{dateFlag,monthFlag}from"./chunk-EXT4AIDF.js";import{repeatedValues}from"./chunk-VGT2EGH6.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";var ANALYSIS_PATH="/api/v2/analysis";var ACCESSIBLE_PAGES_HINT="\u958B\u3051\u308B\u5206\u6790\u30DA\u30FC\u30B8\u306F twp api /api/v2/analysis/accessible-pages \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002";var LICENSE_GUIDANCE="\u5206\u6790\u3092\u4F7F\u3046\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30CA\u30F3\u30C8\u304C\u5206\u6790\u3092\u5951\u7D04\u3057\u3066\u3044\u306A\u3044\u304B\u3001\u3042\u306A\u305F\u306E\u5206\u6790\u306E\u6A29\u9650\u304C\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";
|
|
4
4
|
var PAGE_GUIDANCE=`\u3053\u306E\u5206\u6790\u30DA\u30FC\u30B8\u306E\u95B2\u89A7\u5BFE\u8C61\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u5206\u6790\u306E\u7BA1\u7406\u8005\u306B\u5BFE\u8C61\u3078\u306E\u8FFD\u52A0\u3092\u4F9D\u983C\u3057\u3066\u304F\u3060\u3055\u3044\u3002${ACCESSIBLE_PAGES_HINT}`;var PAGE_DENIED_MARK="\u5206\u6790\u30DA\u30FC\u30B8";function analysisForbidden(levelGuidance2){return body=>{if(body?.error==="permission_denied"){const text=body.error_description??"";
|
|
5
5
|
if(text.includes(PAGE_DENIED_MARK))return PAGE_GUIDANCE;if(text.includes("\u3053\u306E\u6A5F\u80FD"))return LICENSE_GUIDANCE;return void 0}if(body?.error==="forbidden")return levelGuidance2;return void 0}}function levelGuidance(page,features){return`${page}\u3092\u958B\u304F\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u5206\u6790\u62C5\u5F53\u8005\u30D5\u30E9\u30B0\u3001\u307E\u305F\u306F${features}\u306E\u6A29\u9650\uFF08\u300C\u306A\u3057\u300D\u4EE5\u5916\uFF09\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 FROM_FLAG={name:"--from",summary:"\u958B\u59CB\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"};var TO_FLAG={name:"--to",summary:"\u7D42\u4E86\u306E\u5E74\u6708\uFF08YYYY-MM\uFF09",takesValue:true,placeholder:"<YYYY-MM>"};var MONTH_FLAG={name:"--month",summary:"1\u304B\u6708\u3060\u3051\uFF08YYYY-MM\uFF09\u3002--from / --to \u3068\u306F\u4F75\u7528\u4E0D\u53EF",takesValue:true,placeholder:"<YYYY-MM>"};var YEAR_FLAG={name:"--year",summary:"1\u5E74\u5206\uFF081\u301C12\u6708\u30FBYYYY\uFF09\u3002--from \
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{redactSecretValues,redactSecrets}from"./chunk-
|
|
3
|
+
import{redactSecretValues,redactSecrets}from"./chunk-BD7O73GK.js";import{formatOutput}from"./chunk-74BPZOKU.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";function renderOutput(value,format,noRedact=false){if(noRedact)return formatOutput(value,format);const formatted=formatOutput(redactSecretValues(value),format);return format==="json"?formatted:redactSecrets(formatted)}function renderDocument(text,noRedact=false){const visible=stripTerminalControls(text);return noRedact?visible:redactSecrets(visible)}export{renderOutput,renderDocument};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{REDACTED,redactSecrets}from"./chunk-
|
|
3
|
+
import{REDACTED,redactSecrets}from"./chunk-BD7O73GK.js";var PEM_BEGIN=/-----BEGIN [A-Z ]{0,64}PRIVATE KEY-----/g;var PEM_END=/-----END [A-Z ]{0,64}PRIVATE KEY-----/g;var PEM_UNCLOSED_BODY=/(?:(?:\r?\n|\\(?:r\\)?n)[ \t]*(?:(?:Proc-Type|DEK-Info):[^\n\\]*|(?:[A-Za-z0-9+/]{16,}={0,2}|[A-Za-z0-9+/]*={1,2})[ \t]*(?=[\r\n"\\]|$)))*/y;function redactPemPrivateKeys(text){if(!text.includes("PRIVATE KEY-----"))return text;let out="";let last=0;let end=null;let noMoreEnd=false;PEM_BEGIN.lastIndex=0;for(let begin=PEM_BEGIN.exec(text);begin!==null;begin=PEM_BEGIN.
|
|
4
4
|
exec(text)){const after=begin.index+begin[0].length;if(!noMoreEnd&&(end===null||end.index<after)){PEM_END.lastIndex=after;end=PEM_END.exec(text);noMoreEnd=end===null}let stop;if(end!==null&&!noMoreEnd){stop=end.index+end[0].length}else{PEM_UNCLOSED_BODY.lastIndex=after;PEM_UNCLOSED_BODY.exec(text);stop=Math.max(after,PEM_UNCLOSED_BODY.lastIndex)}out+=text.slice(last,begin.index)+REDACTED;last=stop;PEM_BEGIN.lastIndex=stop}return out+text.slice(last)}var KNOWN_TOKEN_PATTERNS=[/\b(?:gh[pousr]_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{20,}|sk-ant-[A-Za-z0-9_-]{20,}|(?:AKIA|ASIA)[0-9A-Z]{16}|npm_[A-Za-z0-9]{30,}|xox[abprs]-[A-Za-z0-9-]{10,})\b/g,
|
|
5
5
|
/(?<![A-Za-z0-9])twpk_[A-Za-z0-9]{20,}/g,/\beyJ[A-Za-z0-9_-]{8,}\.eyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}/g];var URL_USERINFO=/((?<![A-Za-z0-9+.-])[a-z][a-z0-9+.-]{0,31}:\/\/)[^\s/@:"'`]+:[^\s/"'`]+@/gi;var VALUE_ESCAPE="(?:\\\\\\\\ |\\\\[^\\r\\n\"'`nrt\\u0080-\\uFFFF])";var UNCLOSED_DOUBLE_JSON=String.raw`\\"(?!\$)(?:\\\\\\"|\\\\(?!\\")|\\[rt]|[^\\\n"])+`;var UNCLOSED_DOUBLE_RAW=String.raw`"(?!\$)(?:[^\n\\"]|\\[^\n])+`;var UNCLOSED_SINGLE_RAW=String.raw`'(?!\$)(?:[^\n\\"']|\\[^\n])+`;var ENV_SECRET_ASSIGNMENT=new RegExp(
|
|
6
6
|
`\\b([A-Z0-9_]{0,128}?(?:TOKEN|SECRET|PASSWORD|PASSWD|API_?KEY|CREDENTIALS?|PRIVATE_KEY)(?:_[A-Z0-9_]{0,128})?=)(?:${UNCLOSED_DOUBLE_JSON}${String.raw`(?:\\")?`}|${UNCLOSED_DOUBLE_RAW}"?|(['])(?!\\$)(?:(?!\\2)[^\\n\\\\]|\\\\[^\\n])+?\\2|\\\\(['])(?!\\$)(?:\\\\\\\\\\\\\\3|(?!\\\\\\3)(?:[^\\n\\\\]|\\\\[^\\n]))+?\\\\\\3|${UNCLOSED_SINGLE_RAW}|(?![$(])(?:[^\\s"'\`;&)\\\\]|${VALUE_ESCAPE}){8,})`,"g");var ENV_SECRET_ASSIGNMENT_JSON_STRING=new RegExp(ENV_SECRET_ASSIGNMENT.source.replace(UNCLOSED_SINGLE_RAW,
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
|
+
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
+
import{UsageError}from"./chunk-VFPY2A23.js";import{formatUnknownArgs,splitFlagToken}from"./chunk-OKATZ4SN.js";function parseOperationArgs(argv,specs){const byName=new Map(specs.map(spec=>[spec.name,spec]));const args=[];const flags=new Map;const repeated=new Map;let positionalOnly=false;for(let i=0;i<argv.length;i+=1){const arg=argv[i];if(arg===void 0)continue;if(!positionalOnly&&arg==="--"){positionalOnly=true;continue}if(positionalOnly||!arg.startsWith("-")||arg==="-"){args.push(arg);continue}const{name,value:inline}=splitFlagToken(arg);const spec=byName.get(name);if(spec===void 0){const shortEquals=!arg.
|
|
4
|
+
startsWith("--")&&arg.includes("=");const shown=formatUnknownArgs([arg]);throw new UsageError(`\u4E0D\u660E\u306A\u30AA\u30D7\u30B7\u30E7\u30F3: ${shown}`,shortEquals?`\u77ED\u3044\u30D5\u30E9\u30B0\u306B = \u306F\u4F7F\u3048\u307E\u305B\u3093\u3002\u7A7A\u767D\u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044: ${shown.replace("="," ")}`:void 0)}if(spec.repeatable!==true&&flags.has(name)){throw new UsageError(`${name} \u304C\u8907\u6570\u56DE\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059`)}
|
|
5
|
+
if(!spec.takesValue){if(inline!==void 0){throw new UsageError(`${name} \u306F\u5024\u3092\u53D6\u308A\u307E\u305B\u3093`,`${name} \u306F\u6307\u5B9A\u306E\u6709\u7121\u3060\u3051\u304C\u610F\u5473\u3092\u6301\u3061\u307E\u3059\u3002`)}flags.set(name,"");continue}if(inline!==void 0){addValue(flags,repeated,spec,name,inline);continue}const next=argv[i+1];if(next===void 0||next.startsWith("-")&&next!=="-"){throw new UsageError(`${name} \u306B\u306F\u5024\u304C\u5FC5\u8981\u3067\u3059`,`\`-\` \u3067\u59CB\u307E\u308B\u5024\u306F ${name}\
|
|
6
|
+
=\u5024 \u306E\u5F62\u3067\u6E21\u305B\u307E\u3059\u3002`)}addValue(flags,repeated,spec,name,next);i+=1}return repeated.size>0?{args,flags,repeated}:{args,flags}}function addValue(flags,repeated,spec,name,value){if(spec.repeatable!==true){flags.set(name,value);return}const bucket=repeated.get(name);if(bucket===void 0)repeated.set(name,[value]);else bucket.push(value)}function repeatedValues(input,name){return input.repeated?.get(name)??[]}export{parseOperationArgs,repeatedValues};
|
|
@@ -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-HVBY74Q3.js";import{isExactNumericId}from"./chunk-4DOPQ74T.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{UsageError}from"./chunk-VFPY2A23.js";var PDF_PATH="/api/v2/sales/pdf";var FEATURE_DENIED="\u3053\u306E\u6A5F\u80FD\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\u3002";function salesFeatureDenied(body){return body?.error==="permission_denied"||body?.error==="forbidden"&&body.error_description===FEATURE_DENIED}function pdfForbidden(body){if(salesFeatureDenied(body))return featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406");const reason=body?.error;if(typeof reason==="string"&&reason.endsWith(
|
|
4
4
|
"\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093")){return`${reason}\uFF08\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306B\u7D10\u3065\u304F\u66F8\u985E\u306F\u305D\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u3001\u7D10\u3065\u304B\u306A\u3044\u66F8\u985E\u306F\u4F5C\u6210\u8005\u30FB\u62C5\u5F53\u8005\u3068\u7BA1\u7406\u8005\u3060\u3051\u304C\u51FA\u529B\u3067\u304D\u307E\u3059\uFF09`}return void 0}var ESTIMATE={name:"estimate",label:"\u898B\u7A4D",noExample:"EST0000063",
|
|
5
5
|
defaultKind:"estimate",kinds:{estimate:{segment:"estimate",label:"\u898B\u7A4D\u66F8"},order:{segment:"order",label:"\u6CE8\u6587\u66F8"},"order-acceptance":{segment:"order-acceptance",label:"\u6CE8\u6587\u8ACB\u66F8"}}};var INVOICE={name:"invoice",label:"\u8ACB\u6C42",noExample:"INV0000170",defaultKind:"invoice",kinds:{invoice:{segment:"invoice",label:"\u8ACB\u6C42\u66F8"},delivery:{segment:"delivery",label:"\u7D0D\u54C1\u66F8"},inspection:{segment:"inspection",label:"\u691C\u53CE\u66F8"}}};var PURCHASE={
|
|
6
6
|
name:"purchase",label:"\u4ED5\u5165",defaultKind:"order",kinds:{order:{segment:"purchase-order",label:"\u6CE8\u6587\u66F8"},"order-acceptance":{segment:"purchase-order-acceptance",label:"\u6CE8\u6587\u8ACB\u66F8"}}};var OUT_FLAG={name:"--out",summary:"\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9.pdf>"};var FORCE_FLAG={name:"--force",summary:"\u65E2\u5B58\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u4E0A\u66F8\u304D\u3059\u308B",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{CUSTOMER_FLAG,CUSTOMER_LICENSE,childForbidden,levelForbidden,prepareCustomerFlag}from"./chunk-
|
|
3
|
+
import{CUSTOMER_FLAG,CUSTOMER_LICENSE,childForbidden,levelForbidden,prepareCustomerFlag}from"./chunk-PLC52S3V.js";import{inspectLocalFile}from"./chunk-JULG6KDV.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-45WIRMGL.js";import{booleanText}from"./chunk-JJSBBWJ5.js";import{CUSTOMERS_PATH,isExactNumericId}from"./chunk-4DOPQ74T.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{
|
|
4
4
|
ApiError}from"./chunk-JA5A6UJ2.js";import{nonEmpty}from"./chunk-MI6HVYR2.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import{NotLoggedInError,SessionExpiredError}from"./chunk-XNLIEUAW.js";import fs from"fs";import path from"path";var CONTRACT_TYPES=["basic_contract","nda","other"];var CONTRACT_TYPE_HELP="basic_contract\uFF1D\u57FA\u672C\u5951\u7D04\u66F8 / nda\uFF1D\u6A5F\u5BC6\u4FDD\u6301\u5951\u7D04\u66F8 / other\uFF1D\u305D\u306E\u4ED6\u5951\u7D04\u66F8\u985E";var FILE_NAME_MAX_CHARS=255;var PDF_MAGIC="%PDF-";var CONTRACT_FIELDS=[{kind:"text",flag:"--name",key:"document_name",label:"\u66F8\u985E\u540D",maxChars:255,summary:"\u66F8\u985E\u540D\uFF08create \u3067\u306F\u5FC5\u9808\uFF09"},{kind:"enum",flag:"--type",key:"\
|
|
5
5
|
document_type",values:CONTRACT_TYPES,summary:`\u66F8\u985E\u7A2E\u5225\uFF08${CONTRACT_TYPE_HELP}\u30FBcreate \u3067\u306F\u5FC5\u9808\uFF09`}];var CONTRACT_COLUMNS=["document_id","company_id","document_type","document_name","current_version","updated_by_name","updated_at"];var VERSION_COLUMNS=["version_number","file_name","file_size","is_current","created_by_name","created_at"];var CASE_COLUMNS=["document_id","document_type_label","document_name","estimate_no","estimate_title","project_name","c\
|
|
6
6
|
urrent_version","updated_at"];var FILE_FLAG={name:"--file",summary:"\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3059\u308B PDF \u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\uFF08\u5FC5\u9808\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9.pdf>"};var OUT_FLAG={name:"--out",summary:"\u66F8\u304D\u51FA\u3057\u5148\u306E\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF08\u5FC5\u9808\u3002\u6A19\u6E96\u51FA\u529B\u3078\u306F\u51FA\u3057\u307E\u305B\u3093\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9>"};var FORCE_FLAG={
|