@tocca-systems/twp-cli 0.71.0 → 0.72.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 +10 -0
- package/README.md +50 -2
- package/dist/{agent-SFX3ZVOB.js → agent-C37HJDJY.js} +1 -1
- package/dist/{agent-loop-OW6ZMQKN.js → agent-loop-XFYCEK5S.js} +3 -2
- package/dist/{ai-dispatch-YABGNMHQ.js → ai-dispatch-GONY4JAY.js} +2 -2
- package/dist/{analysis-HMOECNWG.js → analysis-THRX37XW.js} +2 -2
- package/dist/{announcement-Q642UMYK.js → announcement-4R7XFO5W.js} +1 -1
- package/dist/{api-command-4HXHTIQT.js → api-command-YMEYR2LG.js} +3 -3
- package/dist/{app-JCUJJQGB.js → app-37IMKCQZ.js} +4 -4
- package/dist/{attendance-correct-DWVFYL2Y.js → attendance-correct-Z5BGCSCL.js} +1 -1
- package/dist/{attendance-lists-772Y3ZWA.js → attendance-lists-357A3O5Y.js} +1 -1
- package/dist/{backlog-FG3Y5JTE.js → backlog-KF63TCEG.js} +1 -1
- package/dist/{budget-5RPOQZN7.js → budget-W7JXDJ4J.js} +1 -1
- package/dist/{capacity-report-command-ACWK2MR5.js → capacity-report-command-QSV3A6EX.js} +1 -1
- package/dist/charter-command-A4MFFBGE.js +3 -0
- package/dist/{chunk-QJAZLPA3.js → chunk-2CIQOXPK.js} +1 -1
- package/dist/chunk-35MQ27I6.js +4 -0
- package/dist/{chunk-NVMJXFBT.js → chunk-45OL54MY.js} +1 -1
- package/dist/chunk-5VZ54H2J.js +11 -0
- package/dist/{chunk-WBUYPDJH.js → chunk-A3FJEUDB.js} +1 -1
- package/dist/{chunk-GLKZ4ZZY.js → chunk-ARB4QFWO.js} +1 -1
- package/dist/{chunk-WMEGP2BT.js → chunk-BBOWZVCC.js} +1 -1
- package/dist/{chunk-OREF2S43.js → chunk-BYUV3D5Z.js} +2 -2
- package/dist/chunk-CCHPF23L.js +31 -0
- package/dist/{chunk-7EJOKJLV.js → chunk-DAXVAUV4.js} +1 -1
- package/dist/{chunk-LUBON4AA.js → chunk-DFHOCPA5.js} +2 -2
- package/dist/{chunk-DLY2IN3G.js → chunk-DPIJF3EN.js} +1 -1
- package/dist/{chunk-APPYZQNC.js → chunk-IVKWLJCY.js} +1 -1
- package/dist/{chunk-DAOC7VRM.js → chunk-K4JE26L6.js} +1 -1
- package/dist/{charter-command-LIX2JXRJ.js → chunk-LH4AZKLT.js} +1 -1
- package/dist/{chunk-XGYOJHZC.js → chunk-MP6YIILX.js} +1 -1
- package/dist/{chunk-HNG6MF26.js → chunk-MVZFZAT4.js} +69 -65
- package/dist/{chunk-RRHAX7RK.js → chunk-MYBIPHZ7.js} +1 -1
- package/dist/{chunk-BRE7D5AY.js → chunk-NBOA4T7F.js} +1 -1
- package/dist/{chunk-MAAICW7T.js → chunk-QS5VWTI3.js} +1 -1
- package/dist/{chunk-HBEOI456.js → chunk-QVID3GT4.js} +1 -1
- package/dist/chunk-T3C2BAVA.js +49 -0
- package/dist/chunk-TTST7UDR.js +20 -0
- package/dist/{chunk-XCPZ4R65.js → chunk-UGDB4QTS.js} +1 -1
- package/dist/{chunk-CCBNU5Y3.js → chunk-UXEYWMPO.js} +9 -8
- package/dist/{chunk-F4PGPJOI.js → chunk-VEA72AKG.js} +1 -1
- package/dist/{chunk-G4TZFGNN.js → chunk-VYDPW2YO.js} +2 -19
- package/dist/{chunk-JA7HEJOU.js → chunk-WYYHMKF7.js} +1 -1
- package/dist/{chunk-OMWCSE4P.js → chunk-XF4DN44V.js} +2 -2
- package/dist/{chunk-LJVAOWZI.js → chunk-XMPHGOW4.js} +4 -32
- package/dist/{chunk-P2DSHLHD.js → chunk-Z6T5M3NJ.js} +2 -2
- package/dist/cli.js +33 -9
- package/dist/{commands-4C6TJ4WG.js → commands-GMUQCBFQ.js} +1 -1
- package/dist/{commands-HH2DW2QJ.js → commands-MYGPEYBE.js} +20 -19
- package/dist/{company-4DHVAW25.js → company-W2OBOOKJ.js} +2 -2
- package/dist/{completion-JDD3SNUO.js → completion-EMY4WDII.js} +3 -3
- package/dist/{contract-PT7VW4IE.js → contract-LTQVLI7A.js} +2 -2
- package/dist/{department-C6WIZPBS.js → department-GZBKUFON.js} +1 -1
- package/dist/{deposit-OEYFPEZG.js → deposit-HCMV2MBU.js} +1 -1
- package/dist/domain-knowledge-32TTPFVY.js +79 -0
- package/dist/{estimate-4BUJQ3TP.js → estimate-ILUXZJG3.js} +3 -3
- package/dist/{evaluation-GLXQ54F6.js → evaluation-PE7QHATW.js} +1 -1
- package/dist/{expense-QE3WIJTN.js → expense-K2JPBP2M.js} +1 -1
- package/dist/{fiscal-year-YJWFQN4P.js → fiscal-year-XY4KA67D.js} +1 -1
- package/dist/{inquiry-ORB3ROAJ.js → inquiry-FEQWFU7Z.js} +1 -1
- package/dist/{invoice-XLX5KS2T.js → invoice-WOQZUL66.js} +2 -2
- package/dist/{job-title-UDF6I3BP.js → job-title-CDAMB4Q2.js} +1 -1
- package/dist/{knowledge-6A3MCIRY.js → knowledge-VM6P4XDQ.js} +57 -39
- package/dist/{leave-3BJMXI7Q.js → leave-TEXQJURZ.js} +2 -2
- package/dist/{license-OMIZUUTW.js → license-ZSZM5OSK.js} +1 -1
- package/dist/{logout-guard-2Y7HPIKN.js → logout-guard-3B767ADS.js} +2 -2
- package/dist/{media-FGEV2OI2.js → media-TAS7FF5K.js} +3 -3
- package/dist/{notification-2IESSY5E.js → notification-T46TUUMO.js} +1 -1
- package/dist/{oneshot-4XO5HIJR.js → oneshot-XRN744YK.js} +1 -1
- package/dist/plan-submit-YBTGYQD7.js +4 -0
- package/dist/{position-CR6P4WC5.js → position-BKZQH6A3.js} +1 -1
- package/dist/{project-JJEMEO2W.js → project-KL4DH2XE.js} +1 -1
- package/dist/{prospect-QG6X7ALK.js → prospect-BEB5AXPM.js} +2 -2
- package/dist/{purchase-Z6ENEOZM.js → purchase-P37K6MVO.js} +3 -3
- package/dist/{receivable-ZBDXXMHX.js → receivable-5N3KL3L4.js} +1 -1
- package/dist/{redmine-EIFHMLNE.js → redmine-K7A7AEUA.js} +1 -1
- package/dist/{registry-DC75DVLY.js → registry-GGKX3MCP.js} +1 -1
- package/dist/{report-TTXGXSR3.js → report-PZ4GMMK2.js} +1 -1
- package/dist/{revision-command-TYBPPUAF.js → revision-command-KT7NMRES.js} +1 -1
- package/dist/{run-R5CU36O3.js → run-65IJLMKQ.js} +2 -2
- package/dist/{sales-ai-review-6TDJFHDL.js → sales-ai-review-NBNSHUUP.js} +1 -1
- package/dist/{sales-master-H5HMVBJV.js → sales-master-23PVQUTQ.js} +2 -2
- package/dist/{sales-numbering-Q5KRM63Y.js → sales-numbering-FQ7YPQME.js} +1 -1
- package/dist/{schedule-command-4UBCTNRI.js → schedule-command-RVKP6QQS.js} +1 -1
- package/dist/{search-OSV6TA6Q.js → search-NYY22NHK.js} +1 -1
- package/dist/{segment-YOUY4PZC.js → segment-2C3MYZCV.js} +1 -1
- package/dist/server-settings-ELHHMBBK.js +4 -0
- package/dist/{server-skills-JEFNP63E.js → server-skills-EEPBSOPO.js} +1 -1
- package/dist/{setup-HHPKB6N4.js → setup-74LO2SXN.js} +2 -2
- package/dist/{skill-RH5MBRXZ.js → skill-RKCTUJHW.js} +1 -1
- package/dist/skill-check-2ILLHGDQ.js +29 -0
- package/dist/skill-command-4VMZ2H6A.js +3 -0
- package/dist/{skill-manage-command-S2RLIHTA.js → skill-manage-command-HPJQOTQK.js} +1 -1
- package/dist/{supplier-payment-EJTFKAKY.js → supplier-payment-G2BGSGLA.js} +2 -2
- package/dist/{support-FR3KY63E.js → support-E3PBMVG4.js} +1 -1
- package/dist/{task-AQSKV7VL.js → task-N6OVWNAT.js} +2 -2
- package/dist/{user-PRGHG3HM.js → user-VODWJQZI.js} +2 -2
- package/dist/{user-contract-type-K7CLKCEE.js → user-contract-type-7AVII6SV.js} +1 -1
- package/dist/{worker-agent-WDYZTQ5C.js → worker-agent-KRMY2RKK.js} +1 -1
- package/dist/{workflow-S25JXGWN.js → workflow-GWEN7NSQ.js} +1 -1
- package/package.json +1 -1
- package/dist/chunk-D5EYI7S3.js +0 -48
- package/dist/chunk-KDH3KWPO.js +0 -4
- package/dist/chunk-YUS4VPNA.js +0 -11
- package/dist/plan-submit-SRQJHV2X.js +0 -4
- package/dist/server-settings-BGVJNHAV.js +0 -4
- package/dist/skill-command-4V2GT73D.js +0 -3
|
@@ -50,7 +50,7 @@ ${err.hint?`${err.hint}
|
|
|
50
50
|
`);return 1}writeErr(`\u30A8\u30E9\u30FC: ${err.message}
|
|
51
51
|
`);return 1}}async function runLogin(options){return run(async()=>{const profile=resolveProfile(options.profile);const io=makeIo(options.cliVersion);if(options.method==="password"){await passwordLogin(profile,{tenantCode:options.tenant??void 0},process.env,io)}else if(options.method==="token"){await tokenLogin(profile,process.env,io)}else{await browserLogin(profile,process.env,io,{noBrowser:options.noBrowser})}})}async function runLogout(options){return run(async()=>{const profile=resolveProfile(
|
|
52
52
|
options.profile);const creds=loadCredentials(profile.name);if(!creds){writeOut(`\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u300C${profile.name}\u300D\u306F\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u3044\u307E\u305B\u3093\u3002
|
|
53
|
-
`);return}const{describeLogoutImpact,findLoopsUsingProfile}=await import("./logout-guard-
|
|
53
|
+
`);return}const{describeLogoutImpact,findLoopsUsingProfile}=await import("./logout-guard-3B767ADS.js");const found=findLoopsUsingProfile(profile.name,options.logoutGuard);if(found.users.length>0||found.undetermined.length>0){writeErr(describeLogoutImpact(profile.name,found,options.force===true));if(options.force!==true)throw new LogoutRefusedError}const apiUrl=effectiveApiUrl(profile,creds.api_url);const revoked=await httpFetch(`${apiUrl}/api/v2/auth/logout`,{method:"POST",headers:{Accept:"applic\
|
|
54
54
|
ation/json",Authorization:`Bearer ${creds.token}`}}).then(res=>res.ok,()=>false);await deleteCredentials(profile.name);writeOut(`\u2705 \u30ED\u30B0\u30A2\u30A6\u30C8\u3057\u307E\u3057\u305F\uFF08\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB: ${profile.name} / \u30C8\u30FC\u30AF\u30F3: ${maskToken(creds.token)}\uFF09
|
|
55
55
|
`);if(!revoked){writeOut("\u26A0 \u30B5\u30FC\u30D0\u5074\u306E\u30C8\u30FC\u30AF\u30F3\u5931\u52B9\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF08\u30AA\u30D5\u30E9\u30A4\u30F3\u7B49\uFF09\u3002TWP \u306E\u300C\u8A2D\u5B9A > CLI\u7AEF\u672B\u300D\u304B\u3089\u3082\u5931\u52B9\u3067\u304D\u307E\u3059\u3002\n")}})}async function runWhoami(options){return run(async()=>{const profile=resolveProfile(options.profile);const structured=options.output!==void 0||options.query!==void 0;let format=null;if(structured){
|
|
56
56
|
const{resolveOutputFormat,OUTPUT_FORMATS}=await import("./format-F6PPBPY5.js");format=resolveOutputFormat({...options.output!==void 0?{flag:options.output}:{},isTty:process.stdout.isTTY===true});if(format===null){throw new UsageError(`--output \u306B\u300C${options.output??""}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`,`\u6307\u5B9A\u3067\u304D\u308B\u306E\u306F ${OUTPUT_FORMATS.join(" / ")} \u3067\u3059`)}}const stored=loadCredentials(profile.name);const apiUrl=effectiveApiUrl(
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{ScheduleApi,collectDue,gateStatus,nowInZone,parseCounts,promptSection}from"./chunk-
|
|
4
|
-
inflightEntries,inflightStaleHours,openPlanSession,parseOutcomeCode,parseReleaseResult,parseTaskStatusSnapshot,pendingTaskKeys,resolveRecentAdvance,shouldSuppressForStatus,staleFloorHours,unavailableChecks,windowStartMicros}from"./chunk-
|
|
5
|
-
import{
|
|
6
|
-
|
|
7
|
-
import{setSkillPrefix,skillCommand,skillFromPrompt,stripSkillCommand}from"./chunk-6CS5L24D.js";import{killProcessTree}from"./chunk-N2UVRM3Z.js";import{
|
|
8
|
-
import{httpFetch}from"./chunk-J7QYPKVK.js";import{compareVersionCores,parseVersionCore}from"./chunk-DXXFUNYN.js";import"./chunk-5WGOHFAS.js";import{effectiveApiUrl,resolveProfile}from"./chunk-4VZKNEVN.js";import{twpHomeDir}from"./chunk-RZVI6PMW.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs9 from"fs";import path7 from"path";import fs from"fs";import path from"path";var LoopLogger=class{constructor(runnerId,logFile,out=process.stdout,now=()=>new Date){this.runnerId=runnerId;this.out=out;this.now=now;if(logFile){fs.mkdirSync(path.dirname(logFile),{recursive:true});this.stream=fs.createWriteStream(logFile,{flags:"a"})}}runnerId;out;now;stream=null;log(message){const d=this.now();const ts=`${d.getFullYear()}-${pad(d.getMonth()+1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;const line=`[${ts}] [${this.runnerId}] ${stripTerminalControls(
|
|
3
|
+
import{ScheduleApi,collectDue,gateStatus,nowInZone,parseCounts,promptSection}from"./chunk-BYUV3D5Z.js";import{InstanceLock,buildLockOwner,defaultIsLoopProcess,writeLockOwner}from"./chunk-3WHC4FSG.js";import{LoopSettingsApplier,renderStepBudget}from"./chunk-NBOA4T7F.js";import{NO_PLAN_SESSION,RECENT_ADVANCE_WINDOW_HOURS,ReleaseOutcomeLog,buildDynamicBlocks,buildRecentCandidateIndex,createItem,enqueueBlockerRecovery,enqueueDevVerifyForMerged,enqueueReleasePartialMergeRerun,enqueueReleasePhase5Recovery,
|
|
4
|
+
fileSkillNames,findRecentCandidate,formatInflightEntry,formatPlanResultLine,formatRecentAdvance,inflightEntries,inflightStaleHours,openPlanSession,parseOutcomeCode,parseReleaseResult,parseTaskStatusSnapshot,pendingTaskKeys,resolveRecentAdvance,shouldSuppressForStatus,staleFloorHours,unavailableChecks,windowStartMicros}from"./chunk-WYYHMKF7.js";import{EngineNotConfiguredError,NoopEngine,UnknownEngineError,aiUnavailableLabel,assertKnownEngine,failureHint,isAiUnavailable,needsHumanToRestoreAi}from"./chunk-ZOOEH7ZE.js";
|
|
5
|
+
import{ServerSkillCatalog,formatSkillOrigins}from"./chunk-DPIJF3EN.js";import"./chunk-MYBIPHZ7.js";import"./chunk-A4LFG7MW.js";import{claudeConfigDir,resolveDetectDeps}from"./chunk-5SONMN6K.js";import"./chunk-VRBI2NPI.js";import{duplicateTaskKeyDropReason,excludedKeyInArgs,extractPlanJson,parseOpsCount,parsePlanExcludeKeys,placeholderTaskKey,releaseDeployDropReason,stepToItem,zeroTargetDropReasons}from"./chunk-QS5VWTI3.js";import"./chunk-DXUFECE7.js";import{
|
|
6
|
+
buildLoopConfig,evaluateOwnership,exportStateDirEnv,localConfigPath,loopStateDir}from"./chunk-CCHPF23L.js";import{describeOperations,evaluatePlanGate,planGateStatePath,recordPlanned}from"./chunk-XMPHGOW4.js";import{CapacityReporter}from"./chunk-VYDPW2YO.js";import{formatHookIds,formatHookWiring,runHook,runPrefetch,runPreflight}from"./chunk-TTST7UDR.js";import{exclusiveInflightEntries,formatExclusiveEntry,normalizeSkillName,spawnSyncResolved}from"./chunk-FABDZBDZ.js";
|
|
7
|
+
import{setSkillPrefix,skillCommand,skillFromPrompt,stripSkillCommand}from"./chunk-6CS5L24D.js";import{killProcessTree}from"./chunk-N2UVRM3Z.js";import{AgentLoopApi,describeError,filterByStatus,isPermanent,pick,pickString}from"./chunk-5KAWCLYN.js";import{PRIVATE_PROJECT_REF,isPrivateProjectId,isPrivateProjectRef,privateProjectId,projectFileKey}from"./chunk-GY7KI5E5.js";import{ULID_RE,loopProjectIdPolicy,resolveProjectRef}from"./chunk-HVZUXLQ4.js";import"./chunk-II5RVJQN.js";
|
|
8
|
+
import"./chunk-VFPY2A23.js";import{joinFor}from"./chunk-PMOUHEJQ.js";import{AuthSession}from"./chunk-XNLIEUAW.js";import{httpFetch}from"./chunk-J7QYPKVK.js";import{compareVersionCores,parseVersionCore}from"./chunk-DXXFUNYN.js";import"./chunk-5WGOHFAS.js";import{effectiveApiUrl,resolveProfile}from"./chunk-4VZKNEVN.js";import{twpHomeDir}from"./chunk-RZVI6PMW.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";import fs9 from"fs";import path7 from"path";import fs from"fs";import path from"path";var LoopLogger=class{constructor(runnerId,logFile,out=process.stdout,now=()=>new Date){this.runnerId=runnerId;this.out=out;this.now=now;if(logFile){fs.mkdirSync(path.dirname(logFile),{recursive:true});this.stream=fs.createWriteStream(logFile,{flags:"a"})}}runnerId;out;now;stream=null;log(message){const d=this.now();const ts=`${d.getFullYear()}-${pad(d.getMonth()+1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;const line=`[${ts}] [${this.runnerId}] ${stripTerminalControls(
|
|
9
9
|
message)}
|
|
10
10
|
`;this.out.write(line);this.stream?.write(line)}separator(){this.log("=".repeat(60))}close(){this.stream?.end();this.stream=null}};function pad(n){return String(n).padStart(2,"0")}function rotateLogs(dir,retentionDays,now=Date.now()){if(retentionDays<=0)return;const cutoff=now-retentionDays*864e5;let entries;try{entries=fs.readdirSync(dir)}catch{return}for(const name of entries){if(!/^(agent-loop|task-loop|step|plan|schedule-enqueued)-.*\.(log|txt)$/.test(name))continue;const file=path.join(dir,
|
|
11
11
|
name);try{if(fs.statSync(file).mtimeMs<cutoff)fs.rmSync(file,{force:true})}catch{}}}import fs6 from"fs";import os2 from"os";import path4 from"path";var MAX_OUTCOME_DETAIL_LENGTH=1e3;function parseOutcomeDetail(logText){const matches=[...logText.matchAll(/\b[A-Z][A-Z0-9_]*_RESULT:[^\n]*/g)];const line=matches.at(-1)?.[0];if(line===void 0)return null;const sep=line.indexOf("|");if(sep<0)return null;const detail=line.slice(sep+1).split("|").map(s=>s.trim()).filter(s=>s!=="").join(" | ");return detail===""?null:detail.slice(0,MAX_OUTCOME_DETAIL_LENGTH)}var str=v=>typeof v==="string"&&v!==""?v:null;function toRun(v){if(v===null||typeof v!=="obje\
|
|
@@ -288,27 +288,28 @@ const startedAtMs=now();let warned="";let done=false;const check=()=>{if(done)re
|
|
|
288
288
|
decision.key)return;warned=decision.key;handlers.onWarn(decision.reason);return}done=true;const recorded=writeRestartAttempt(opts.stateDir,opts.projectKey,{from:decision.from,to:decision.to,at:new Date(now()).toISOString()},opts.store);if(!recorded){handlers.onWarn(`\u518D\u8D77\u52D5\u8A18\u9332\u3092\u66F8\u3051\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${restartAttemptPath(opts.stateDir,opts.projectKey)}\uFF09\u3002\u540C\u3058\u7248\u30C9\u30EA\u30D5\u30C8\u304C\u89E3\u6D88\u3057\u306A\u3044\u5834\u5408\u3001\u518D\u8D77\u52D5\u3092\u7E70\u308A\u8FD4\u3059\u9632\u6CE2\u5824\u304C\u52B9\u304D\u307E\u305B\u3093`)}
|
|
289
289
|
handlers.onRestart({from:decision.from,to:decision.to})};const timer=setInterval(check,opts.intervalMs??DRIFT_POLL_MS);timer.unref?.();return{stop:()=>{done=true;clearInterval(timer)},check}}import fs8 from"fs";import path6 from"path";var POLL_MS=1e3;var MAX_STOP_BYTES=4096;var MAX_AT_LENGTH=64;function markerPath(lockDir2,kind){return path6.join(lockDir2,kind)}function requestMarker(lockDir2,kind,pid,deps={}){const target=markerPath(lockDir2,kind);const write=deps.writeFileSync??((p,d)=>fs8.writeFileSync(p,d,{flag:"wx",mode:384}));const now=deps.now??(()=>new Date);clearMarker(lockDir2,kind,deps);try{write(target,`${JSON.stringify({pid,at:now().toISOString()})}
|
|
290
290
|
`);return{ok:true}}catch(err){const e=err;return{ok:false,reason:e.code??"UNKNOWN"}}}function readMarker(lockDir2,kind,deps={}){const target=markerPath(lockDir2,kind);const read=deps.readFileSync??(p=>fs8.readFileSync(p,"utf8"));const size=deps.statSize??(p=>fs8.statSync(p).size);let raw;try{if(size(target)>MAX_STOP_BYTES)return null;raw=read(target)}catch{return null}if(raw.length>MAX_STOP_BYTES)return null;try{const parsed=JSON.parse(raw);if(typeof parsed!=="object"||parsed===null)return null;const pid=parsed.pid;const at=parsed.at;if(typeof pid!=="number"||!Number.isInteger(pid)||
|
|
291
|
-
pid<=0)return null;return{pid,at:sanitizeAt(at)}}catch{return null}}function sanitizeAt(at){if(typeof at!=="string")return"";return at.replace(/[\u0000-\u001f\u007f]/g," ").slice(0,MAX_AT_LENGTH)}function clearMarker(lockDir2,kind,deps={}){const rm=deps.rmSync??(p=>fs8.rmSync(p,{recursive:true,force:true}));try{rm(markerPath(lockDir2,kind))}catch{}}function watchMarker(lockDir2,kind,selfPid,onStop,deps={}){let fired=false;const timer=setInterval(()=>{if(fired)return;const req=readMarker(lockDir2,kind,deps);if(req===null||req.pid!==selfPid)return;fired=true;onStop(req)},deps.intervalMs??POLL_MS);timer.unref?.();return()=>{fired=true;clearInterval(timer)}}function safe(s){return stripTerminalControls(s)}function compactTimestamp(at=new Date){const p2=n=>String(n).padStart(2,"0");return`${at.getFullYear()}${p2(at.getMonth()+1)}${p2(at.getDate())}-${p2(at.getHours())}${p2(at.getMinutes())}${p2(at.getSeconds())}`}async function buildEngine(config,log){if(config.engine==="noop")return new NoopEngine;const{DispatchEngine}=await import("./ai-dispatch-
|
|
291
|
+
pid<=0)return null;return{pid,at:sanitizeAt(at)}}catch{return null}}function sanitizeAt(at){if(typeof at!=="string")return"";return at.replace(/[\u0000-\u001f\u007f]/g," ").slice(0,MAX_AT_LENGTH)}function clearMarker(lockDir2,kind,deps={}){const rm=deps.rmSync??(p=>fs8.rmSync(p,{recursive:true,force:true}));try{rm(markerPath(lockDir2,kind))}catch{}}function watchMarker(lockDir2,kind,selfPid,onStop,deps={}){let fired=false;const timer=setInterval(()=>{if(fired)return;const req=readMarker(lockDir2,kind,deps);if(req===null||req.pid!==selfPid)return;fired=true;onStop(req)},deps.intervalMs??POLL_MS);timer.unref?.();return()=>{fired=true;clearInterval(timer)}}function safe(s){return stripTerminalControls(s)}function compactTimestamp(at=new Date){const p2=n=>String(n).padStart(2,"0");return`${at.getFullYear()}${p2(at.getMonth()+1)}${p2(at.getDate())}-${p2(at.getHours())}${p2(at.getMinutes())}${p2(at.getSeconds())}`}async function buildEngine(config,log){if(config.engine==="noop")return new NoopEngine;const{DispatchEngine}=await import("./ai-dispatch-GONY4JAY.js");const{DEFAULT_PREFLIGHT_HOSTS}=await import("./ai-dispatch-GONY4JAY.js");const extraHosts=config.
|
|
292
292
|
operations.preflightHosts;return new DispatchEngine(config.ai,log,{workspace:config.workspace,charterFile:config.charterFile??void 0,charterEnabled:config.charterEnabled,...config.charterPrefix===null?{}:{charterPrefix:config.charterPrefix},...config.charterSuffix===null?{}:{charterSuffix:config.charterSuffix},serverPrompts:()=>config.serverPrompts??{},compileCommand:config.compileCommand??void 0,skillOverlayDir:path7.join(config.stateDir,"skill-overlay",projectFileKey(config.projectId)),launcherBin:config.
|
|
293
293
|
claudeLauncher.bin,...extraHosts.length>0?{preflightHosts:[...DEFAULT_PREFLIGHT_HOSTS,...extraHosts]}:{}})}function lockDir(config){return path7.join(config.stateDir,`task-loop-${projectFileKey(config.projectId)}.lock.d`)}function runnerIdPersisted(stateDir,env=process.env){if((env.RUNNER_ID?.trim()??"")!=="")return true;const file=env.RUNNER_ID_FILE&&env.RUNNER_ID_FILE.trim()!==""?env.RUNNER_ID_FILE:path7.join(stateDir,"runner-id");return fs9.existsSync(file)}async function runTaskLoop(opts){if(opts.
|
|
294
|
-
action==="stop")return await stopLoop(opts);if(opts.action==="plan"){if(opts.planOp!=="submit"){process.stderr.write("plan \u306B\u306F submit \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\n");return 2}const{runPlanSubmit}=await import("./plan-submit-
|
|
294
|
+
action==="stop")return await stopLoop(opts);if(opts.action==="plan"){if(opts.planOp!=="submit"){process.stderr.write("plan \u306B\u306F submit \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\n");return 2}const{runPlanSubmit}=await import("./plan-submit-YBTGYQD7.js");return runPlanSubmit({file:opts.charterInput,empty:opts.planEmpty===true,check:opts.planCheck===true},{env:process.env,readStdin:()=>fs9.readFileSync(0,"utf8"),stdout:s=>process.stdout.write(s),stderr:s=>process.stderr.write(s)})}
|
|
295
295
|
const profile=resolveProfile(opts.profile);let creds;try{creds=new AuthSession(profile.name,profile.apiUrl).loadOrThrow()}catch(err){process.stderr.write(`${err.message}
|
|
296
296
|
`);return 1}const apiUrl=effectiveApiUrl(profile,creds.api_url);const session=new AuthSession(profile.name,apiUrl);const projectRef=opts.project??process.env.TWP_PROJECT??"";if(projectRef===""){process.stderr.write("--project <\u30AD\u30FC|UUID> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08TWP_PROJECT \u3067\u3082\u53EF\uFF09\n");return 2}const projectApi=new ProjectApi(apiUrl,session);let project;try{project=await projectApi.resolve(projectRef)}catch(err){process.stderr.write(`${err.
|
|
297
297
|
message}
|
|
298
|
-
`);return 1}const projectId=project.id;if(opts.action==="setup"){const{runSetup,parseAiList}=await import("./setup-
|
|
298
|
+
`);return 1}const projectId=project.id;if(opts.action==="setup"){const{runSetup,parseAiList}=await import("./setup-74LO2SXN.js");let ais;if(opts.ais!==void 0&&opts.ais.length>0){const parsed=parseAiList(opts.ais.join(","));if(parsed.unknown.length>0){process.stderr.write(`--ai \u306B\u672A\u77E5\u306E\u5024\u304C\u3042\u308A\u307E\u3059: ${parsed.unknown.join(" / ")}
|
|
299
299
|
`);return 2}ais=parsed.ais}return runSetup({projectId,projectRef,projectName:project.name===project.id?projectRef:`${project.code} / ${project.name}`,apiUrl,yes:opts.yes===true,...ais!==void 0?{ais}:{},...opts.workspace!==void 0?{workspace:opts.workspace}:{},...opts.aiConfigFile!==void 0?{aiConfigFile:opts.aiConfigFile}:{},...opts.noAiConfigFile===true?{noAiConfigFile:true}:{},...opts.profile!==void 0?{profile:opts.profile}:{}})}if(opts.action==="charter"){if(opts.charterOp===void 0){process.stderr.
|
|
300
|
-
write("charter \u306B\u306F push / pull / history / diff / revert \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\n");return 2}if(isPrivateProjectId(projectId)){process.stderr.write("\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u30AD\u30E5\u30FC\uFF08--project __private__\uFF09\u306B\u306F\u61B2\u7AE0\u306E\u8A2D\u5B9A\u304C\u3042\u308A\u307E\u305B\u3093\n");return 2}if(opts.charterOp!=="push"&&opts.charterOp!=="pull"){const{runRevisionCommand}=await import("./revision-command-
|
|
301
|
-
return runRevisionCommand({api:new AgentLoopApi({apiUrl,projectId,session})},{target:"charter",op:opts.charterOp,from:opts.revisionFrom,to:opts.revisionTo,revision:opts.charterRevision,yes:opts.yes===true,projectRef,profile:opts.profile})}const{runCharterCommand}=await import("./charter-command-
|
|
300
|
+
write("charter \u306B\u306F push / pull / history / diff / revert \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\n");return 2}if(isPrivateProjectId(projectId)){process.stderr.write("\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u30AD\u30E5\u30FC\uFF08--project __private__\uFF09\u306B\u306F\u61B2\u7AE0\u306E\u8A2D\u5B9A\u304C\u3042\u308A\u307E\u305B\u3093\n");return 2}if(opts.charterOp!=="push"&&opts.charterOp!=="pull"){const{runRevisionCommand}=await import("./revision-command-KT7NMRES.js");
|
|
301
|
+
return runRevisionCommand({api:new AgentLoopApi({apiUrl,projectId,session})},{target:"charter",op:opts.charterOp,from:opts.revisionFrom,to:opts.revisionTo,revision:opts.charterRevision,yes:opts.yes===true,projectRef,profile:opts.profile})}const{runCharterCommand}=await import("./charter-command-A4MFFBGE.js");return runCharterCommand({api:new AgentLoopApi({apiUrl,projectId,session})},{op:opts.charterOp,file:opts.charterInput,out:opts.charterOutput,revision:opts.charterRevision,yes:opts.yes===true,projectRef,
|
|
302
302
|
profile:opts.profile})}if(opts.action==="schedule"&&opts.scheduleOp!==void 0){const{runScheduleDefCommand}=await import("./schedule-def-command-OFCA5VH3.js");return runScheduleDefCommand({api:new AgentLoopApi({apiUrl,projectId,session})},{op:opts.scheduleOp,configOp:opts.scheduleConfigOp,id:opts.scheduleId,file:opts.charterInput,out:opts.charterOutput,revision:opts.charterRevision,yes:opts.yes===true,projectRef,profile:opts.profile})}if(opts.action==="settings"){if(opts.settingsOp===void 0){process.stderr.
|
|
303
303
|
write("settings \u306B\u306F push / pull \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\n");return 2}if(isPrivateProjectId(projectId)){process.stderr.write("\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u30AD\u30E5\u30FC\uFF08--project __private__\uFF09\u306B\u306F\u30EB\u30FC\u30D7\u8A2D\u5B9A\u304C\u3042\u308A\u307E\u305B\u3093\n");return 2}const{runSettingsCommand}=await import("./settings-command-TEVH2MNY.js");return runSettingsCommand({api:new AgentLoopApi({apiUrl,projectId,
|
|
304
|
-
session})},{op:opts.settingsOp,file:opts.charterInput,out:opts.charterOutput,revision:opts.charterRevision,yes:opts.yes===true,projectRef,profile:opts.profile})}if(opts.action==="skill"){if(opts.skillOp===void 0){process.stderr.write("skill \u306B\u306F push / pull / list / show / delete / history / diff / revert \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\n");return 2}if(isPrivateProjectId(projectId)){process.stderr.write("\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u30AD\u30E5\u30FC\uFF08--project
|
|
305
|
-
\uFF09\u306B\u306F\u30B9\u30AD\u30EB\u5B9A\u7FA9\u306E\u8A2D\u5B9A\u304C\u3042\u308A\u307E\u305B\u3093\n");return 2}if(opts.skillOp==="
|
|
306
|
-
|
|
307
|
-
{op:opts.skillOp,name:opts.skillName,all:opts.skillAll===true,dir:opts.skillDir,revision:opts.charterRevision,yes:opts.yes===true,projectRef,profile:opts.profile})}const config=buildLoopConfig({projectId,projectRef,apiUrl,safeMode:opts.safe,daemon:opts.daemon
|
|
308
|
-
{apiUrl,projectId,session});if(opts.action==="capacity"){if(opts.capacityOp!=="report"){process.stderr.write("capacity \u306B\u306F report \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\n");return 2}for(const warning of config.warnings)process.stderr.
|
|
309
|
-
|
|
304
|
+
session})},{op:opts.settingsOp,file:opts.charterInput,out:opts.charterOutput,revision:opts.charterRevision,yes:opts.yes===true,projectRef,profile:opts.profile})}if(opts.action==="skill"){if(opts.skillOp===void 0){process.stderr.write("skill \u306B\u306F push / pull / list / show / delete / history / diff / revert / check \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\n");return 2}if(isPrivateProjectId(projectId)){process.stderr.write("\u500B\u4EBA\u30BF\u30B9\u30AF\u306E\u30AD\u30E5\u30FC\uFF08--project __p\
|
|
305
|
+
rivate__\uFF09\u306B\u306F\u30B9\u30AD\u30EB\u5B9A\u7FA9\u306E\u8A2D\u5B9A\u304C\u3042\u308A\u307E\u305B\u3093\n");return 2}if(opts.skillOp==="check"){const{runSkillCheck}=await import("./skill-check-2ILLHGDQ.js");return runSkillCheck({api:new AgentLoopApi({apiUrl,projectId,session})},{configPath:opts.skillConfig,defaultConfigPath:localConfigPath(projectId),output:opts.output})}if(opts.skillOp==="list"||opts.skillOp==="show"||opts.skillOp==="delete"){const{runSkillManageCommand}=await import("./skill-manage-command-HPJQOTQK.js");
|
|
306
|
+
return runSkillManageCommand({api:new AgentLoopApi({apiUrl,projectId,session})},{op:opts.skillOp,name:opts.skillName,output:opts.output,query:opts.query,revision:opts.charterRevision,yes:opts.yes===true,projectRef,profile:opts.profile})}if(opts.skillOp!=="push"&&opts.skillOp!=="pull"){const{runRevisionCommand}=await import("./revision-command-KT7NMRES.js");return runRevisionCommand({api:new AgentLoopApi({apiUrl,projectId,session})},{target:"skill",op:opts.skillOp,name:opts.skillName,from:opts.revisionFrom,
|
|
307
|
+
to:opts.revisionTo,revision:opts.charterRevision,yes:opts.yes===true,projectRef,profile:opts.profile})}const{runSkillCommand}=await import("./skill-command-4VMZ2H6A.js");return runSkillCommand({api:new AgentLoopApi({apiUrl,projectId,session})},{op:opts.skillOp,name:opts.skillName,all:opts.skillAll===true,dir:opts.skillDir,revision:opts.charterRevision,yes:opts.yes===true,projectRef,profile:opts.profile})}const config=buildLoopConfig({projectId,projectRef,apiUrl,safeMode:opts.safe,daemon:opts.daemon,
|
|
308
|
+
...opts.maxCycles!==void 0?{maxCycles:opts.maxCycles}:{},...opts.interval!==void 0?{intervalSec:opts.interval}:{},forceRunner:opts.forceRunner,...opts.engine!==void 0?{engine:opts.engine}:{},version:opts.version});const api=new AgentLoopApi({apiUrl,projectId,session});if(opts.action==="capacity"){if(opts.capacityOp!=="report"){process.stderr.write("capacity \u306B\u306F report \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\n");return 2}for(const warning of config.warnings)process.stderr.
|
|
309
|
+
write(`\u26A0\uFE0F ${warning}
|
|
310
|
+
`);const{runCapacityReport}=await import("./capacity-report-command-QSV3A6EX.js");return runCapacityReport({api,projectId,runnerId:config.runnerId,stateDir:config.stateDir,cwd:config.workspace,probe:config.capacityProbe,runnerIdPersisted:runnerIdPersisted(config.stateDir),version:opts.version,platform:runnerPlatform(),stdout:s=>process.stdout.write(s),stderr:s=>process.stderr.write(s)})}if(opts.action==="status"||opts.action==="schedule"){for(const warning of config.warnings)process.stderr.write(`\u26A0\uFE0F ${warning}\
|
|
310
311
|
|
|
311
|
-
`)}if(opts.action==="status")return showStatus(api,config);if(opts.action==="schedule"){const{runScheduleCommand}=await import("./schedule-command-
|
|
312
|
+
`)}if(opts.action==="status")return showStatus(api,config);if(opts.action==="schedule"){const{runScheduleCommand}=await import("./schedule-command-RVKP6QQS.js");return runScheduleCommand({api,projectApi,config},{now:opts.scheduleNow,counts:opts.scheduleCounts,gate:opts.scheduleGate,verbose:opts.verbose===true})}if(config.engine===""){process.stderr.write(`${new EngineNotConfiguredError().message}
|
|
312
313
|
`);return 2}try{assertKnownEngine(config.engine)}catch(err){if(err instanceof UnknownEngineError){process.stderr.write(`${err.message}
|
|
313
314
|
`);return 2}throw err}fs9.mkdirSync(config.logDir,{recursive:true,mode:448});rotateLogs(config.logDir,config.logRetentionDays);const logFile=path7.join(config.logDir,`agent-loop-${compactTimestamp()}.log`);const log=new LoopLogger(config.runnerId,logFile);for(const warning of config.warnings)log.log(`\u26A0\uFE0F ${warning}`);const lock=new InstanceLock(lockDir(config));const acquired=lock.acquire();if(!acquired.acquired){log.log(`\u274C ${acquired.reason}`);log.log(" \u610F\u56F3\u7684\u306B2\u30D7\u30ED\u30BB\u30B9\u52D5\u304B\u3059\u691C\u8A3C\u3067\u306F TWP_OPS\
|
|
314
315
|
_STATE_DIR \u3068 RUNNER_ID \u3092\u5206\u3051\u3066\u304F\u3060\u3055\u3044");log.close();return 1}if(acquired.note)log.log(` \u2139\uFE0F ${acquired.note}`);const ownerError=writeLockOwner(lockDir(config),buildLockOwner({pid:process.pid,profile:profile.name,twpHome:twpHomeDir(),projectRef:config.projectRef,projectId:config.projectId}));if(ownerError!==null){log.log(` \u26A0\uFE0F \u30ED\u30C3\u30AF\u306B\u6240\u6709\u8005\u306E\u8A18\u9332\u3092\u66F8\u3051\u307E\u305B\u3093\u3067\u3057\u305F\uFF08${ownerError}\
|
|
@@ -324,7 +325,7 @@ log.log("\u4E2D\u65AD\u30B7\u30B0\u30CA\u30EB\u3092\u53D7\u4FE1\u3057\u307E\u305
|
|
|
324
325
|
"\u6642\u523B\u4E0D\u660E"}\uFF09\u3002\u7D42\u4E86\u3057\u307E\u3059...`);stopWatcher?.();drainWatcher?.();driftWatcher?.();void shutdown().catch(()=>void 0).then(()=>process.exit(130))});drainWatcher=watchMarker(lockDir(config),"drain",process.pid,req=>{drainWatcher?.();if(loop===null){pendingDrain.value={reason:`stop --drain\u30FB${req.at||"\u6642\u523B\u4E0D\u660E"}`,exitCode:0};log.log(`\u30C9\u30EC\u30A4\u30F3\u8981\u6C42\u3092\u53D7\u3051\u53D6\u308A\u307E\u3057\u305F\uFF08${req.at||"\u6642\u523B\u4E0D\u660E"}\
|
|
325
326
|
\uFF09\u3002\u8D77\u52D5\u51E6\u7406\u306E\u5B8C\u4E86\u5F8C\u306B\u53CD\u6620\u3057\u307E\u3059\u3002`);return}loop.requestDrain(`stop --drain\u30FB${req.at||"\u6642\u523B\u4E0D\u660E"}`)});if(installed!==null){const watch=watchVersionDrift({runningVersion:opts.version,stateDir:config.stateDir,projectKey:projectFileKey(config.projectId),supervised:autoRestart.supervised,disabled:autoRestart.disabled},{onWarn:reason=>log.log(`\u26A0\uFE0F ${reason}`),onRestart:({from,to})=>{driftWatcher?.();log.
|
|
326
327
|
log(`\u7248\u30C9\u30EA\u30D5\u30C8\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\uFF08${from} \u2192 ${to}\uFF09\u3002`);log.log(` \u5B9F\u884C\u4E2D\u306E\u30A2\u30A4\u30C6\u30E0\u3092\u5B8C\u8D70\u3055\u305B\u3066\u304B\u3089\u7D42\u4E86\u3057\u307E\u3059\uFF08\u7D42\u4E86\u30B3\u30FC\u30C9 ${EXIT_VERSION_DRIFT}\uFF09\u3002\u518D\u8D77\u52D5\u306F systemd\uFF08Restart=always\uFF09\u304C\u884C\u3044\u307E\u3059`);const reason=`\u7248\u30C9\u30EA\u30D5\u30C8 ${from} \u2192 ${to} \u306B\u3088\u308B\u81EA\u52D5\u518D\u8D77\u52D5`;
|
|
327
|
-
if(loop===null)pendingDrain.value={reason,exitCode:EXIT_VERSION_DRIFT};else loop.requestDrain(reason,EXIT_VERSION_DRIFT)}});driftWatcher=watch.stop}try{const{LoopSettingsApplier:LoopSettingsApplier2}=await import("./server-settings-
|
|
328
|
+
if(loop===null)pendingDrain.value={reason,exitCode:EXIT_VERSION_DRIFT};else loop.requestDrain(reason,EXIT_VERSION_DRIFT)}});driftWatcher=watch.stop}try{const{LoopSettingsApplier:LoopSettingsApplier2}=await import("./server-settings-ELHHMBBK.js");const settings=new LoopSettingsApplier2({api,config,log:m=>log.log(m)});await settings.apply();const{ServerSkillCatalog:ServerSkillCatalog2}=await import("./server-skills-EEPBSOPO.js");const skills=new ServerSkillCatalog2({api,config,log:m=>log.log(m)});await skills.
|
|
328
329
|
refresh();await runner.checkHeartbeatInterval();await runner.registerOrThrow();runner.startHeartbeatWorker();log.log(` heartbeat: ${config.heartbeatIntervalSec}\u79D2\u3054\u3068\u306B\u9001\u4FE1${runner.heartbeatTimeoutServer?`\uFF08\u30B5\u30FC\u30D0\u306E\u6B7B\u6D3B\u3057\u304D\u3044\u5024 ${runner.heartbeatTimeoutServer}\u79D2\uFF09`:""}`);loop=new TaskLoop({api,projectApi,config,log,runner,engine:await buildEngine(config,m=>log.log(m)),settings,skills});if(pendingDrain.value!==null){loop.
|
|
329
330
|
requestDrain(pendingDrain.value.reason,pendingDrain.value.exitCode)}exitCode=await loop.run()}catch(err){if(err instanceof RunnerRegistrationError){exitCode=1}else{log.log(`\u26D4 \u4E88\u671F\u3057\u306A\u3044\u30A8\u30E9\u30FC\u3067\u7D42\u4E86\u3057\u307E\u3059: ${err.message}`);exitCode=1}}finally{await shutdown()}return exitCode}async function showStatus(api,config){const out={write:text=>process.stdout.write(stripTerminalControls(text))};out.write(`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8: ${config.
|
|
330
331
|
projectRef}\uFF08${config.projectId}\uFF09
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{customerDocumentSubresources}from"./chunk-
|
|
4
|
-
import"./chunk-JJSBBWJ5.js";import{LIST_FLAGS,LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,envelopePaging,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes,positiveInteger}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{CUSTOMERS_PATH,SALES_COMPANIES_PATH,isExactNumericId}from"./chunk-
|
|
3
|
+
import{customerDocumentSubresources}from"./chunk-VEA72AKG.js";import{COMPANY_FIELDS,COMPANY_LICENSE,CUSTOMER_LICENSE,customerSubresources,customerWriteOperations,dataOf,levelForbidden}from"./chunk-45OL54MY.js";import"./chunk-I4TR55UF.js";import"./chunk-V64CGX7V.js";import"./chunk-QLENN5DD.js";import"./chunk-GY7KI5E5.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-BBOWZVCC.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-MP6YIILX.js";
|
|
4
|
+
import"./chunk-JJSBBWJ5.js";import{LIST_FLAGS,LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,envelopePaging,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes,positiveInteger}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{CUSTOMERS_PATH,SALES_COMPANIES_PATH,isExactNumericId}from"./chunk-MVZFZAT4.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";
|
|
5
5
|
import"./chunk-H4CDX4TX.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var CUSTOMER_FLAG_FIELD={kind:"boolean",flag:"--customer",key:"customer_flg",summary:"\u9867\u5BA2\u3068\u3057\u3066\u6271\u3046\u304B\uFF08true / false\uFF09"};var FIELDS=[...COMPANY_FIELDS,CUSTOMER_FLAG_FIELD];var COLUMNS=["id","company_name","company_name_kana","company_short_name","customer_flg","supplier_flg","tel","address1"];var WRITE_FORBIDDEN=levelForbidden(COMPANY_LICENSE,"\u53D6\u5F15\u5148\u306E\u4F5C\u6210\u30FB\u66F4\u65B0\u306B\u306F\u3001\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u30E1\u30F3\u30D0\u30FC\u300D\u4EE5\u4E0A\u304B\u3001\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7DE8\u96C6\u8005\u300D\u4EE5\u4E0A\u306E\u3069\u3061\u3089\u304B\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
|
|
6
6
|
var DELETE_FORBIDDEN=levelForbidden(COMPANY_LICENSE,"\u53D6\u5F15\u5148\u306E\u524A\u9664\u306B\u306F\u3001\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u30E1\u30F3\u30D0\u30FC\u300D\u4EE5\u4E0A\u304B\u3001\u9867\u5BA2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u306E\u3069\u3061\u3089\u304B\u304C\u8981\u308A\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002");var REF_HELP="<\u53D6\u5F15\u5148> \u306F\u4F01\u696D\u540D\u30FB\u7565\u79F0\u30FB\u30AB\u30CA\u306E\u5B8C\u5168\u4E00\u81F4\u304B\
|
|
7
7
|
ID\uFF08twp company list \u306E id \u5217\u306E\u6570\u5B57\uFF09\u3067\u6307\u5B9A\u3057\u307E\u3059\u3002\u9867\u5BA2\u30FB\u4ED5\u5165\u5148\u306E\u3069\u3061\u3089\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002";function companyPath(input){const id=requireResolved(input,"companyId");if(!isExactNumericId(id))throw new UsageError(`\u53D6\u5F15\u5148 ID \u3092\u30D1\u30B9\u306B\u4F7F\u3048\u307E\u305B\u3093: ${id}`);return`${SALES_COMPANIES_PATH}/${id}`}async function resolveCompany(input,ctx,usage){
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{BUILTIN_COMMANDS,GLOBAL_FLAGS,TASK_LOOP_ACTIONS,VALUE_FLAGS}from"./chunk-
|
|
3
|
+
import{BUILTIN_COMMANDS,GLOBAL_FLAGS,TASK_LOOP_ACTIONS,VALUE_FLAGS}from"./chunk-T3C2BAVA.js";import"./chunk-2LOT54OO.js";import{API_TOKEN,DOMAIN_NAMES,HELP_TOKEN,isDomainName}from"./chunk-35MQ27I6.js";import"./chunk-QQRJLH6B.js";import{OUTPUT_FORMATS}from"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var EXTRA_TOP_LEVEL=[API_TOKEN,HELP_TOKEN,"completion","configure"];var COMPLETION_SHELLS=["bash","zsh","fish","powershell"];var TOP_LEVEL_FLAGS=["--help","--version","-p","--print","--profile","--mode","--permission-mode","--model","--allowed-tools","--disallowed-tools","--no-tui","--doctor"];var DOMAIN_GLOBAL_FLAGS=[...GLOBAL_FLAGS].filter(flag=>flag.startsWith("--"));function staticValues(flag,ctx){if(flag==="--output")return OUTPUT_FORMATS;if(flag==="--profile")return ctx.profileNames();return void 0}
|
|
4
4
|
function positionals(words,takesValue){const out=[];for(let i=0;i<words.length;i++){const word=words[i]??"";if(word==="--"){out.push(...words.slice(i+1));break}if(word.startsWith("-")){if(!word.includes("=")&&takesValue(word))i++;continue}out.push(word)}return out}function byPrefix(candidates,current){const seen=new Set;for(const candidate of candidates){if(candidate.startsWith(current))seen.add(candidate)}return[...seen]}function remainingFlags(flags,words){const used=new Set(words.filter(w=>w.
|
|
5
5
|
startsWith("--")).map(w=>w.split("=")[0]));return[...flags.filter(f=>f.repeatable===true||!used.has(f.name)).map(f=>f.name),...DOMAIN_GLOBAL_FLAGS.filter(f=>!used.has(f))]}async function complete(words,current,ctx){const previous=words[words.length-1];if(previous!==void 0&&previous.startsWith("--")&&!previous.includes("=")){const values=staticValues(previous,ctx);if(values!==void 0)return byPrefix(values,current)}const eq=current.indexOf("=");if(current.startsWith("--")&&eq>0){const flag=current.
|
|
6
6
|
slice(0,eq);const values=staticValues(flag,ctx);return values===void 0?[]:byPrefix(values.map(v=>`${flag}=${v}`),current)}const pos=positionals(words,flag=>VALUE_FLAGS.has(flag));const[first,second]=pos;if(first===void 0){if(current.startsWith("-"))return byPrefix([...TOP_LEVEL_FLAGS,...DOMAIN_GLOBAL_FLAGS],current);return byPrefix([...BUILTIN_COMMANDS,...DOMAIN_NAMES,...EXTRA_TOP_LEVEL],current)}if(first==="completion")return pos.length===1?byPrefix(COMPLETION_SHELLS,current):[];if(first==="con\
|
|
7
|
-
figure")return current.startsWith("-")?byPrefix(["--profile"],current):[];if(first===HELP_TOKEN)return pos.length===1?byPrefix([...DOMAIN_NAMES,API_TOKEN],current):[];if(first==="task-loop"){if(pos.length===1&&!current.startsWith("-"))return byPrefix(TASK_LOOP_ACTIONS,current);if(pos.length===2&&(second==="charter"||second==="skill")&&!current.startsWith("-")){const ops=["push","pull","history","diff","revert"];return byPrefix(second==="skill"?[...ops,"list","show","delete"]:ops,current)}
|
|
8
|
-
length===2&&second==="settings"&&!current.startsWith("-"))return byPrefix(["push","pull"],current);if(pos.length===2&&second==="plan"&&!current.startsWith("-"))return byPrefix(["submit"],current);if(pos.length===2&&second==="capacity"&&!current.startsWith("-"))return byPrefix(["report"],current);return[]}if(!isDomainName(first))return[];const domain=await ctx.loadDomain(first);const subresources=domain.subresources??[];if(second===void 0){if(current.startsWith("-"))return byPrefix(DOMAIN_GLOBAL_FLAGS,
|
|
7
|
+
figure")return current.startsWith("-")?byPrefix(["--profile"],current):[];if(first===HELP_TOKEN)return pos.length===1?byPrefix([...DOMAIN_NAMES,API_TOKEN],current):[];if(first==="task-loop"){if(pos.length===1&&!current.startsWith("-"))return byPrefix(TASK_LOOP_ACTIONS,current);if(pos.length===2&&(second==="charter"||second==="skill")&&!current.startsWith("-")){const ops=["push","pull","history","diff","revert"];return byPrefix(second==="skill"?[...ops,"list","show","delete","check"]:ops,current)}
|
|
8
|
+
if(pos.length===2&&second==="settings"&&!current.startsWith("-"))return byPrefix(["push","pull"],current);if(pos.length===2&&second==="plan"&&!current.startsWith("-"))return byPrefix(["submit"],current);if(pos.length===2&&second==="capacity"&&!current.startsWith("-"))return byPrefix(["report"],current);return[]}if(!isDomainName(first))return[];const domain=await ctx.loadDomain(first);const subresources=domain.subresources??[];if(second===void 0){if(current.startsWith("-"))return byPrefix(DOMAIN_GLOBAL_FLAGS,
|
|
9
9
|
current);return byPrefix([...domain.operations.map(op=>op.name),...subresources.map(sub2=>sub2.name),HELP_TOKEN],current)}const sub=subresources.find(resource=>resource.name===second);let operation;if(sub!==void 0){const third=pos[2];if(third===void 0){if(current.startsWith("-"))return byPrefix(DOMAIN_GLOBAL_FLAGS,current);return byPrefix([...sub.operations.map(op=>op.name),HELP_TOKEN],current)}operation=sub.operations.find(op=>op.name===third)}else{operation=domain.operations.find(op=>op.name===
|
|
10
10
|
second)}if(operation===void 0)return[];if(!current.startsWith("-"))return[];return byPrefix(remainingFlags(operation.flags,words),current)}function completionScript(shell){switch(shell){case"bash":return`# twp \u306E bash \u88DC\u5B8C\uFF08twp completion bash \u304C\u51FA\u529B\uFF09
|
|
11
11
|
# \u8AAD\u307F\u8FBC\u307F: eval "$(twp completion bash)" \uFF0F \u5E38\u7528: ~/.bashrc \u306B\u540C\u30581\u884C\u3092\u66F8\u304F
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{contractAiReviewResources}from"./chunk-
|
|
4
|
-
import{SALES_CONTRACTS_PATH,isExactNumericId,resolveNamed}from"./chunk-
|
|
3
|
+
import{contractAiReviewResources}from"./chunk-ARB4QFWO.js";import"./chunk-K4JE26L6.js";import{featureLicenseGuidance,licenseForbidden}from"./chunk-BBOWZVCC.js";import{isoDate}from"./chunk-JJSBBWJ5.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{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";
|
|
4
|
+
import{SALES_CONTRACTS_PATH,isExactNumericId,resolveNamed}from"./chunk-MVZFZAT4.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";
|
|
5
5
|
import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var PATH=SALES_CONTRACTS_PATH;var SALES_FORBIDDEN=licenseForbidden(featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"));var DISAMBIGUATION="\u53D6\u5F15\u5951\u7D04\u306F\u898B\u7A4D\u304B\u3089\u4F5C\u308B\u8CA9\u58F2\u7BA1\u7406\u306E\u66F8\u985E\u3067\u3059\uFF08\u660E\u7D30\u30FB\u91D1\u984D\u3092\u6301\u3061\u3001\u627F\u8A8D\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306B\u4E57\u308A\u307E\u3059\uFF09\u3002\n\u9867\u5BA2\u306B\u7D10\u3065\u3051\u3066\u4FDD\u7BA1\u3059\u308B\u5951\u7D04\u66F8\u306E PDF \u306F\u5225\u7269\u3067\u3001twp customer contract \u3067\u6271\u3044\u307E\u3059\u3002\n\n";
|
|
6
6
|
var CONTRACT_STATUSES={new:"\u4F5C\u6210\u4E2D",create_completed:"\u4F5C\u6210\u5B8C\u4E86",in_progress:"\u7533\u8ACB\u4E2D",approved:"\u627F\u8A8D\u6E08",rejected:"\u5DEE\u3057\u623B\u3057",submitted:"\u63D0\u793A\u6E08",contracted:"\u5951\u7D04\u7DE0\u7D50\u6E08",deleted:"\u524A\u9664\u6E08"};var RENEWAL_TYPES={auto_renewal:"\u81EA\u52D5\u66F4\u65B0",application_renewal:"\u7533\u8FBC\u306B\u3088\u308B\u66F4\u65B0"};function statusName(code){return CONTRACT_STATUSES[code]??code}function tableHelp(table){
|
|
7
7
|
return Object.entries(table).map(([code,name])=>`${code}\uFF08${name}\uFF09`).join(" / ")}var STORE_KEYS=["estimate_id","contract_no","title","status","contract_date","start_date","end_date","renewal_type","cancellation_notice_days","next_renewal_date","memo","manage_form_data","contract_document_file_ids","details","recipients"];var CREATE_ONLY_KEYS=["estimate_id"];var UPDATE_KEYS=STORE_KEYS.filter(key=>!CREATE_ONLY_KEYS.includes(key));var DETAIL_KEYS=["item_name","description","quantity","unit",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{cacheNote,createFlags,fieldBody,hasAnyField,idSegment,masterFields,masterItem,masterListOperation,masterRows,referencedDeleteGuidance,resolveRefFields,targetId,updateFlags}from"./chunk-
|
|
3
|
+
import{cacheNote,createFlags,fieldBody,hasAnyField,idSegment,masterFields,masterItem,masterListOperation,masterRows,referencedDeleteGuidance,resolveRefFields,targetId,updateFlags}from"./chunk-MP6YIILX.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import{DEPARTMENTS_PATH}from"./chunk-MVZFZAT4.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";
|
|
4
4
|
import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LABEL="\u90E8\u7F72";var LIST_COLUMNS=["id","code","name","parent_id","level","effective_status","valid_from","valid_to","member_count"];var GET_COLUMNS=["id","code","name","name_short","parent_id","level","sort","effective_status","valid_from","valid_to","description"];var TREE_COLUMNS=["depth","name","code","id","effective_status","valid_to"];var MEMBER_COLUMNS=["id","user_id","position_id","job_title_id","start_date","end_date","is_primary","is_current","effective_status"];var REF_FLAG={name:"\
|
|
5
5
|
--department",summary:"\u5BFE\u8C61\u306E\u90E8\u7F72\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<\u90E8\u7F72>"};var REF_HELP="<\u90E8\u7F72> \u306F\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID \u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u540D\u524D\u304C\u8907\u6570\u306B\u4E00\u81F4\u3059\u308C\u3070\u5019\u88DC\u3092\u51FA\u3057\u3066\u6B62\u307E\u308A\u307E\u3059\uFF09\u3002\nID \u4EE5\u5916\u306F\u90E8\u7F72\u4E00\u89A7\uFF08\u65E2\u5B9A10\u5206\u30AD\u30E3\u30C3\u30B7\u30E5\u30FB--refresh \u3067\u53D6\u308A\u76F4\u3057\uFF09\u3068\u7167\u5408\u3057\u307E\u3059\u3002";
|
|
6
6
|
var FIELDS=masterFields(LABEL,[{kind:"text",flag:"--name-short",key:"name_short",label:"\u7565\u79F0",maxChars:50,summary:"\u7565\u79F0"},{kind:"ref",flag:"--parent",key:"parent_id",summary:"\u89AA\u90E8\u7F72\uFF08\u540D\u524D\u30FB\u30B3\u30FC\u30C9\u30FBID\uFF09",placeholder:"<\u90E8\u7F72>",clearFlag:"--no-parent",clearSummary:"\u89AA\u90E8\u7F72\u3092\u5916\u3057\u3066\u6700\u4E0A\u4F4D\u306B\u3059\u308B",resolve:(ctx,ref,flag)=>ctx.resolver.department(ref,flag)},{kind:"integer",flag:"--sor\
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{depositDomain,depositIdArg,describeDeposit,excerpt,parseAllocationRows,parsePlanBody,planSkeleton,salesAdminForbidden,sendAtomic}from"./chunk-
|
|
3
|
+
import{depositDomain,depositIdArg,describeDeposit,excerpt,parseAllocationRows,parsePlanBody,planSkeleton,salesAdminForbidden,sendAtomic}from"./chunk-Z6T5M3NJ.js";import"./chunk-QLENN5DD.js";import"./chunk-BBOWZVCC.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import"./chunk-RX5HWI4L.js";import"./chunk-6LSQCOCJ.js";import"./chunk-MVZFZAT4.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";
|
|
4
4
|
import"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{depositDomain,depositIdArg,describeDeposit,excerpt,parseAllocationRows,parsePlanBody,planSkeleton,salesAdminForbidden,sendAtomic};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
|
+
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
+
import{composeDocument,metaLine}from"./chunk-HPPIVCK3.js";import{nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{charCount,readBody}from"./chunk-6LSQCOCJ.js";import{DOMAIN_KNOWLEDGES_PATH,DOMAIN_KNOWLEDGE_SLUG_RE}from"./chunk-MVZFZAT4.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";
|
|
4
|
+
import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var KB_LABEL="\u30CA\u30EC\u30C3\u30B8\u30D9\u30FC\u30B9";var DOC_LABEL="\u8A18\u4E8B";var ACCESS_LEVELS=["tenant","authenticated","public"];var KB_STATUSES=["draft","active","archived"];var KB_NAME_MAX_CHARS=255;var KB_DESCRIPTION_MAX_CHARS=2e3;var DOC_TITLE_MAX_CHARS=255;var DOC_SUMMARY_MAX_CHARS=2e3;var DOC_TAGS_MAX=30;var DOC_TAG_MAX_CHARS=64;var PATH_SEGMENT_RE=/^[A-Za-z0-9][A-Za-z0-9._-]{0,99}$/;var PATH_MAX_BYTES=512;var DOC_BODY_MAX_BYTES=300*1024;var DOC_DEPTH_MAX=20;var KB_LIST_COLUMNS=[
|
|
5
|
+
"id","slug","name","status","access_level","updated_at"];var KB_GET_COLUMNS=["id","slug","name","status","access_level","description","revision","updated_at","updated_by"];var DOC_LIST_COLUMNS=["path","title","depth","size_bytes","updated_at"];var DOC_GET_COLUMNS=["path","title","summary","tags","size_bytes","updated_at","updated_by"];var KB_ARG="<KB>";var KB_ARG_HELP="<KB> \u306F\u30CA\u30EC\u30C3\u30B8\u30D9\u30FC\u30B9\u306E ID \u304B slug \u3067\u3059\uFF08twp knowledge list \u306E id / slug \u5217\uFF09\u3002";
|
|
6
|
+
function positional(input,names,usage){const values=input.args.map(arg=>arg.trim());if(values.length<names.length){throw new UsageError(`${names[values.length]}\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,usage)}if(values.length>names.length){throw new UsageError(`\u4F4D\u7F6E\u5F15\u6570\u304C\u591A\u3059\u304E\u307E\u3059: ${input.args.slice(names.length).join(" ")}`,usage)}return values}function oneOf(input,flag,allowed){const raw=nonEmpty(input.flags,flag);if(raw===void 0)return void 0;
|
|
7
|
+
const value=raw.trim();if(!allowed.includes(value)){throw new UsageError(`${flag} \u306B\u6307\u5B9A\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${raw}`,`\u6307\u5B9A\u3067\u304D\u308B\u5024: ${allowed.join(" / ")}`)}return value}function boundedFlag(input,flag,max){const raw=input.flags.get(flag);if(raw===void 0)return void 0;if(raw.trim()==="")throw new UsageError(`${flag} \u304C\u7A7A\u3067\u3059`,`${flag} \u306B\u5024\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);const count=charCount(
|
|
8
|
+
raw);if(count>max)throw new UsageError(`${flag} \u304C\u9577\u3059\u304E\u307E\u3059\uFF08${count} \u6587\u5B57\u30FB\u4E0A\u9650 ${max} \u6587\u5B57\uFF09`,`\u30B5\u30FC\u30D0\u306E\u4E0A\u9650\u304C${max}\u6587\u5B57\u3067\u3059\u3002`);return raw}function clearable(input,flag,clearFlag,max){const clear=input.flags.has(clearFlag);if(clear&&input.flags.has(flag))throw new UsageError(`${flag} \u3068 ${clearFlag} \u306F\u4F75\u7528\u3067\u304D\u307E\u305B\u3093`,`\u7A7A\u306B\u3059\u308B\u306A\u3089 ${clearFlag}\
|
|
9
|
+
\u3060\u3051\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);if(clear)return null;return boundedFlag(input,flag,max)}function normalizeDocPath(raw,label="\u8A18\u4E8B\u306E\u30D1\u30B9"){let path=raw.trim();if(path==="")throw new UsageError(`${label}\u304C\u7A7A\u3067\u3059`,"\u30D1\u30B9\u306F /guide/setup.md \u306E\u3088\u3046\u306B\u6307\u5B9A\u3057\u307E\u3059\u3002");if(!path.startsWith("/"))path=`/${path}`;path=path.replace(/\/+/g,"/");if(path==="/")throw new UsageError(`${label}\
|
|
10
|
+
\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,"\u30D1\u30B9\u306F /guide/setup.md \u306E\u3088\u3046\u306B\u6307\u5B9A\u3057\u307E\u3059\u3002");if(path.endsWith("/"))throw new UsageError(`${label}\u306E\u672B\u5C3E\u306B / \u306F\u4F7F\u3048\u307E\u305B\u3093: ${raw}`,"\u8A18\u4E8B\u306E\u30D1\u30B9\u306F\u30D5\u30A1\u30A4\u30EB\u540D\u3067\u7D42\u308F\u308A\u307E\u3059\uFF08\u4F8B: /guide/setup.md\uFF09\u3002");if(Buffer.byteLength(path,"utf8")>PATH_MAX_BYTES){throw new UsageError(
|
|
11
|
+
`${label}\u304C\u9577\u3059\u304E\u307E\u3059\uFF08${PATH_MAX_BYTES} \u30D0\u30A4\u30C8\u307E\u3067\uFF09: ${raw}`,"\u30B5\u30FC\u30D0\u306E\u4E0A\u9650\u3067\u3059\u3002")}for(const segment of path.split("/").slice(1)){if(segment==="."||segment==="..")throw new UsageError(`${label}\u306B . / .. \u306F\u4F7F\u3048\u307E\u305B\u3093: ${raw}`,"\u8A18\u4E8B\u306E\u79FB\u52D5\u306F twp knowledge doc move \u3067\u3059\u3002");if(!PATH_SEGMENT_RE.test(segment)){throw new UsageError(`${label}\u306B\u4F7F\u3048\u306A\u3044\u6587\u5B57\u304C\u542B\u307E\
|
|
12
|
+
\u308C\u3066\u3044\u307E\u3059: ${segment}`,"\u5404\u968E\u5C64\u306F\u82F1\u6570\u5B57\u3067\u59CB\u307E\u308A\u3001\u82F1\u6570\u5B57\u30FB. _ - \u3060\u3051\u3092\u4F7F\u3048\u307E\u3059\uFF08100\u6587\u5B57\u307E\u3067\uFF09\u3002")}}return path}function docPrefix(input){const raw=nonEmpty(input.flags,"--prefix");if(raw===void 0)return void 0;const trimmed=raw.trim();if(trimmed==="/"||trimmed==="")return void 0;return normalizeDocPath(trimmed.replace(/\/+$/,""),"--prefix")}function docDepth(input){
|
|
13
|
+
const depth=positiveInteger(input.flags,"--depth");if(depth!==void 0&&depth>DOC_DEPTH_MAX){throw new UsageError(`--depth \u306F 1\u301C${DOC_DEPTH_MAX} \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${depth}`,`\u30B5\u30FC\u30D0\u306E\u4E0A\u9650\u304C${DOC_DEPTH_MAX}\u3067\u3059\u3002`)}return depth}function docTags(input){const tags=repeatedValues(input,"--tag").map(tag=>tag.trim());const clear=input.flags.has("--clear-tags");if(clear&&tags.length>0){throw new UsageError("--tag \u3068 --cl\
|
|
14
|
+
ear-tags \u306F\u4F75\u7528\u3067\u304D\u307E\u305B\u3093","--tag \u306F\u30BF\u30B0\u3092\u307E\u308B\u3054\u3068\u7F6E\u304D\u63DB\u3048\u307E\u3059\u3002\u6D88\u3059\u3060\u3051\u306A\u3089 --clear-tags \u3060\u3051\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}if(clear)return[];if(tags.length===0)return void 0;for(const tag of tags){if(tag==="")throw new UsageError("--tag \u304C\u7A7A\u3067\u3059","\u30BF\u30B0\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(charCount(
|
|
15
|
+
tag)>DOC_TAG_MAX_CHARS)throw new UsageError(`--tag \u304C\u9577\u3059\u304E\u307E\u3059\uFF08${tag}\u30FB\u4E0A\u9650 ${DOC_TAG_MAX_CHARS} \u6587\u5B57\uFF09`,`\u30B5\u30FC\u30D0\u306E\u4E0A\u9650\u304C${DOC_TAG_MAX_CHARS}\u6587\u5B57\u3067\u3059\u3002`)}const unique=[...new Set(tags)];if(unique.length>DOC_TAGS_MAX)throw new UsageError(`--tag \u304C\u591A\u3059\u304E\u307E\u3059\uFF08${unique.length} \u500B\u30FB\u4E0A\u9650 ${DOC_TAGS_MAX} \u500B\uFF09`,`\u30B5\u30FC\u30D0\u306E\u4E0A\u9650\u304C${DOC_TAGS_MAX}\
|
|
16
|
+
\u500B\u3067\u3059\u3002`);return unique}function record(body,key,label,idKey){const row=isRecord(body)&&body["result"]===true?body[key]:void 0;if(!isRecord(row)||typeof row[idKey]!=="string"){throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B ${key} \u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return row}function rows(body,key,label){const list=isRecord(body)&&body["result"]===true?body[key]:void 0;if(!Array.
|
|
17
|
+
isArray(list))throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B ${key} \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 kbFrom=body=>record(body,"domain_knowledge",KB_LABEL,"id");var docFrom=body=>record(body,"doc",DOC_LABEL,"path");function kbPath(input){return`${DOMAIN_KNOWLEDGES_PATH}/${encodeURIComponent(requireResolved(input,"knowledge"))}`}async function resolveKnowledge(input,ctx,usage){
|
|
18
|
+
const[ref]=input.args;if(ref===void 0||ref.trim()==="")throw new UsageError(`${KB_ARG}\uFF08KB \u306E ID \u304B slug\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,usage);const kb=await ctx.resolver.domainKnowledge(ref,KB_ARG);return withResolved(input,{knowledge:kb.id})}var KB_CREATE_USAGE="twp knowledge create --name <\u540D\u524D> --slug <slug> [--description <\u8AAC\u660E>] [--access-level <tenant|authenticated|public>] [--status <draft|active|archived>]";var KB_UPDATE_USAGE="t\
|
|
19
|
+
wp knowledge update <KB> [--name <\u540D\u524D>] [--slug <slug>] [--description <\u8AAC\u660E>|--clear-description] [--access-level <\u516C\u958B\u7BC4\u56F2>] [--status <\u72B6\u614B>]";var KB_ADMIN_HELP="KB \u306E\u4F5C\u6210\u30FB\u8A2D\u5B9A\u5909\u66F4\u30FB\u524A\u9664\u306F\u30C9\u30E1\u30A4\u30F3\u77E5\u8B58\u306E\u7BA1\u7406\u8005\uFF08admin\uFF09\u3060\u3051\u304C\u3067\u304D\u307E\u3059\uFF08\u6A29\u9650\u304C\u7121\u3051\u308C\u3070\u30B5\u30FC\u30D0\u306E 403 \u306E\u6587\u9762\u3092\u305D\u306E\u307E\u307E\u51FA\u3057\u307E\u3059\uFF09\u3002\nMCP \u516C\u958B\u30FB\u30EC\u30FC\u30C8\u5236\u9650\u30FBKB \u7BA1\u7406\u8005\u306E\u8A2D\u5B9A\uFF08Phase3\uFF09\u306F\u3053\u306E\u30B3\u30DE\u30F3\u30C9\u3067\u306F\u6271\u3044\u307E\u305B\u3093\u3002";
|
|
20
|
+
var KB_SETTING_FLAGS=[{name:"--description",summary:`\u8AAC\u660E\uFF08${KB_DESCRIPTION_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u8AAC\u660E>"},{name:"--access-level",summary:`\u516C\u958B\u7BC4\u56F2\uFF08${ACCESS_LEVELS.join(" / ")}\uFF09`,takesValue:true,placeholder:"<\u516C\u958B\u7BC4\u56F2>"},{name:"--status",summary:`\u72B6\u614B\uFF08${KB_STATUSES.join(" / ")}\uFF09`,takesValue:true,placeholder:"<\u72B6\u614B>"}];function slugFlag(input){const raw=input.flags.
|
|
21
|
+
get("--slug");if(raw===void 0)return void 0;const slug=raw.trim();if(!DOMAIN_KNOWLEDGE_SLUG_RE.test(slug)){throw new UsageError(`--slug \u306B\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${raw}`,"slug \u306F\u82F1\u5C0F\u6587\u5B57\u30FB\u6570\u5B57\u30FB\u30CF\u30A4\u30D5\u30F3\uFF082\u301C63\u6587\u5B57\u30FB\u5148\u982D\u306F\u82F1\u6570\u5B57\uFF09\u3067\u3059\u3002")}return slug}function kbSettings(input,forUpdate){const name=boundedFlag(input,"--name",KB_NAME_MAX_CHARS);const slug=slugFlag(
|
|
22
|
+
input);const description=forUpdate?clearable(input,"--description","--clear-description",KB_DESCRIPTION_MAX_CHARS):boundedFlag(input,"--description",KB_DESCRIPTION_MAX_CHARS);const accessLevel=oneOf(input,"--access-level",ACCESS_LEVELS);const status=oneOf(input,"--status",KB_STATUSES);return{...name!==void 0?{name}:{},...slug!==void 0?{slug}:{},...description!==void 0?{description}:{},...accessLevel!==void 0?{access_level:accessLevel}:{},...status!==void 0?{status}:{}}}var kbList={name:"list",summary:`${KB_LABEL}\
|
|
23
|
+
\u3092\u4E00\u89A7\u3059\u308B`,usage:"twp knowledge list",description:`\u30C6\u30CA\u30F3\u30C8\u306E${KB_LABEL}\u3092\u3059\u3079\u3066\u51FA\u3057\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306B\u30DA\u30FC\u30B8\u30F3\u30B0\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002
|
|
24
|
+
--output table / tsv \u306F\u8981\u7D04\u5217\uFF08${KB_LIST_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002`,flags:[],plan(input){if(input.args.length>0)throw new UsageError(`twp knowledge list \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"twp knowledge list");return{method:"GET",path:DOMAIN_KNOWLEDGES_PATH}},summarize:body=>rows(body,"domain_knowledges",`${KB_LABEL}\u4E00\u89A7`).map(row=>pick(row,KB_LIST_COLUMNS)),raw:body=>rows(body,"domain_knowle\
|
|
25
|
+
dges",`${KB_LABEL}\u4E00\u89A7`)};var kbGet={name:"get",summary:`${KB_LABEL}1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B`,usage:"twp knowledge get <KB>",description:`${KB_ARG_HELP}
|
|
26
|
+
--output table / tsv \u306F\u8981\u7D04\u5217\uFF08${KB_GET_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002\u8A18\u4E8B\u306E\u4E00\u89A7\u306F twp knowledge doc list \u3067\u3059\u3002`,flags:[],async prepare(input,ctx){positional(input,[KB_ARG],"twp knowledge get <KB>");return resolveKnowledge(input,ctx,"twp knowledge get <KB>")},plan:input=>({method:"GET",path:kbPath(input)}),summarize:body=>pick(kbFrom(body),KB_GET_COLUMNS),raw:kbFrom};var kbCreate={name:"create",summary:`${KB_LABEL}\u3092\u4F5C\u6210\u3059\u308B\uFF08admin\
|
|
27
|
+
\u306E\u307F\uFF09`,usage:KB_CREATE_USAGE,description:`${KB_ADMIN_HELP}
|
|
28
|
+
--access-level / --status \u3092\u7701\u304F\u3068\u30B5\u30FC\u30D0\u306E\u65E2\u5B9A\u3067\u4F5C\u308A\u307E\u3059\u3002slug \u306F\u30C6\u30CA\u30F3\u30C8\u5185\u3067\u4E00\u610F\u3067\u3059\uFF08\u91CD\u8907\u306F\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF09\u3002
|
|
29
|
+
|
|
30
|
+
\u4F8B:
|
|
31
|
+
twp knowledge create --name \u793E\u5185\u624B\u9806 --slug internal-guide --description \u904B\u7528\u624B\u9806\u306E\u307E\u3068\u3081`,flags:[{name:"--name",summary:`\u540D\u524D\uFF08\u5FC5\u9808\u30FB${KB_NAME_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u540D\u524D>"},{name:"--slug",summary:"slug\uFF08\u5FC5\u9808\u30FB\u82F1\u5C0F\u6587\u5B57\u30FB\u6570\u5B57\u30FB\u30CF\u30A4\u30D5\u30F3\uFF09",takesValue:true,placeholder:"<slug>"},...KB_SETTING_FLAGS],plan(input){
|
|
32
|
+
if(input.args.length>0)throw new UsageError(`twp knowledge create \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,KB_CREATE_USAGE);const body=kbSettings(input,false);if(body["name"]===void 0)throw new UsageError("--name \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",KB_CREATE_USAGE);if(body["slug"]===void 0)throw new UsageError("--slug \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",KB_CREATE_USAGE);return{method:"POST",path:DOMAIN_KNOWLEDGES_PATH,
|
|
33
|
+
body}},summarize:body=>pick(kbFrom(body),KB_GET_COLUMNS),raw:kbFrom};var kbUpdate={name:"update",summary:`${KB_LABEL}\u306E\u8A2D\u5B9A\u3092\u5909\u3048\u308B\uFF08admin \u306E\u307F\uFF09`,usage:KB_UPDATE_USAGE,description:`${KB_ARG_HELP}
|
|
34
|
+
${KB_ADMIN_HELP}
|
|
35
|
+
\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u9001\u308A\u307E\u3059\u3002--clear-description \u3067\u8AAC\u660E\u3092\u7A7A\u306B\u3057\u307E\u3059\u3002`,flags:[{name:"--name",summary:`\u540D\u524D\uFF08${KB_NAME_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u540D\u524D>"},{name:"--slug",summary:"slug\uFF08\u82F1\u5C0F\u6587\u5B57\u30FB\u6570\u5B57\u30FB\u30CF\u30A4\u30D5\u30F3\uFF09",takesValue:true,placeholder:"<slug>"},...KB_SETTING_FLAGS,{name:"--clear-\
|
|
36
|
+
description",summary:"\u8AAC\u660E\u3092\u7A7A\u306B\u3059\u308B",takesValue:false}],async prepare(input,ctx){positional(input,[KB_ARG],KB_UPDATE_USAGE);if(Object.keys(kbSettings(input,true)).length===0){throw new UsageError("\u66F4\u65B0\u3059\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093",`--name / --slug / --description / --clear-description / --access-level / --status \u306E\u3069\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
|
37
|
+
${KB_UPDATE_USAGE}`)}return resolveKnowledge(input,ctx,KB_UPDATE_USAGE)},plan:input=>({method:"PUT",path:kbPath(input),body:kbSettings(input,true)}),summarize:body=>pick(kbFrom(body),KB_GET_COLUMNS),raw:kbFrom};async function previewKbDelete(input,ctx){const kb=kbFrom(await ctx.send({method:"GET",path:kbPath(input)}));const docs=await ctx.send({method:"GET",path:`${kbPath(input)}/docs`});const count=rows(docs,"docs",`${DOC_LABEL}\u4E00\u89A7`).length;const truncated=isRecord(docs)&&docs["truncat\
|
|
38
|
+
ed"]===true;return{notes:[`\u524A\u9664\u3059\u308B${KB_LABEL}: ${String(kb["name"]??"(\u540D\u524D\u306A\u3057)")}\uFF08slug ${String(kb["slug"]??"?")}\u30FBID ${String(kb["id"])}\uFF09`,`\u914D\u4E0B\u306E${DOC_LABEL}\u3082\u524A\u9664\u3055\u308C\u307E\u3059: ${count}${truncated?" \u4EF6\u4EE5\u4E0A":" \u4EF6"}`],warnings:[]}}var kbDelete={name:"delete",summary:`${KB_LABEL}\u3092\u524A\u9664\u3059\u308B\uFF08\u914D\u4E0B\u306E\u8A18\u4E8B\u3082\u6D88\u3048\u308B\u30FB--yes \u304C\u8981\u308B\u30FBadmin \u306E\u307F\uFF09`,
|
|
39
|
+
usage:"twp knowledge delete <KB> --yes",description:`${KB_ARG_HELP}
|
|
40
|
+
\u9001\u308B\u524D\u306B KB \u3068\u8A18\u4E8B\u306E\u4E00\u89A7\u3092\u53D6\u5F97\u3057\u3001\u6D88\u3048\u308B KB \u306E\u540D\u524D\u3068\u8A18\u4E8B\u306E\u4EF6\u6570\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\u3002
|
|
41
|
+
\u914D\u4E0B\u306E\u8A18\u4E8B\u3082\u307E\u3068\u3081\u3066\u524A\u9664\u3055\u308C\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306E\u51E6\u7406\u30FB\u53D6\u308A\u6D88\u305B\u307E\u305B\u3093\uFF09\u3002`,destructive:true,flags:[],async prepare(input,ctx){positional(input,[KB_ARG],"twp knowledge delete <KB> --yes");return resolveKnowledge(input,ctx,"twp knowledge delete <KB> --yes")},preview:previewKbDelete,plan:input=>({method:"DELETE",path:kbPath(input)}),summarize:body=>acknowledgement(body,`${KB_LABEL}\
|
|
42
|
+
\u306E\u524A\u9664`),raw:body=>acknowledgement(body,`${KB_LABEL}\u306E\u524A\u9664`)};var DOC_LIST_USAGE="twp knowledge doc list <KB> [--prefix <\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA>] [--depth <\u6DF1\u3055>]";var DOC_GET_USAGE="twp knowledge doc get <KB> <\u30D1\u30B9>";var DOC_CREATE_USAGE="twp knowledge doc create <KB> <\u30D1\u30B9> --title <\u4EF6\u540D> --content-file <\u30D1\u30B9|-> [--summary <\u8981\u7D04>] [--tag <\u30BF\u30B0>]...";var DOC_UPDATE_USAGE="twp knowledge doc update <KB> \
|
|
43
|
+
<\u30D1\u30B9> [--title <\u4EF6\u540D>] [--content-file <\u30D1\u30B9|->] [--summary <\u8981\u7D04>|--clear-summary] [--tag <\u30BF\u30B0>]... [--clear-tags]";var DOC_MOVE_USAGE="twp knowledge doc move <KB> <\u79FB\u52D5\u5143\u306E\u30D1\u30B9> <\u79FB\u52D5\u5148\u306E\u30D1\u30B9>";var DOC_DELETE_USAGE="twp knowledge doc delete <KB> <\u30D1\u30B9> --yes";var DOC_PATH_HELP=`${KB_ARG_HELP}
|
|
44
|
+
<\u30D1\u30B9> \u306F\u8A18\u4E8B\u306E\u30D1\u30B9\u3067\u3059\uFF08\u4F8B: /guide/setup.md\u3002\u5148\u982D\u306E / \u306F\u7701\u3051\u307E\u3059\uFF09\u3002\u5404\u968E\u5C64\u306F\u82F1\u6570\u5B57\u3067\u59CB\u307E\u308A\u3001\u82F1\u6570\u5B57\u30FB. _ - \u3060\u3051\u3092\u4F7F\u3048\u307E\u3059\u3002`;var DOC_WRITE_HELP=`\u672C\u6587\u306F --content-file \u306E\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09\u304B\u3089\u8AAD\u307F\u3001Markdown \u306E\u307E\u307E\u52A0\u5DE5\u305B\u305A\u306B\u9001\u308A\u307E\u3059\uFF08\u5148\u982D\u306E BOM \u3060\u3051\u843D\u3068\u3057\u307E\u3059\uFF09\u3002
|
|
45
|
+
\u30B5\u30FC\u30D0\u306F\u4FDD\u5B58\u6642\u306B\u672C\u6587\u306E\u524D\u5F8C\u306E\u7A7A\u767D\uFF08\u672B\u5C3E\u306E\u6539\u884C\u3092\u542B\u3080\uFF09\u3092\u843D\u3068\u3057\u307E\u3059\u3002
|
|
46
|
+
\u672C\u6587\u306E\u4E0A\u9650\u306F ${DOC_BODY_MAX_BYTES/1024}KB\uFF08\u30D0\u30A4\u30C8\uFF09\u3067\u3059\u3002\u8A18\u4E8B\u306E\u4F5C\u6210\u30FB\u7DE8\u96C6\u306F\u30C9\u30E1\u30A4\u30F3\u77E5\u8B58\u306E member \u4EE5\u4E0A\u3067\u3067\u304D\u307E\u3059\u3002`;var DOC_CONTENT_FLAG={name:"--content-file",summary:"\u672C\u6587\uFF08Markdown\uFF09\u3092\u8AAD\u3080\u30D5\u30A1\u30A4\u30EB\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",takesValue:true,placeholder:"<\u30D1\u30B9|->"};var DOC_TAG_FLAG={
|
|
47
|
+
name:"--tag",summary:`\u30BF\u30B0\uFF08\u8907\u6570\u56DE\u53EF\u30FB${DOC_TAG_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\u30FB${DOC_TAGS_MAX}\u500B\u307E\u3067\uFF09`,takesValue:true,placeholder:"<\u30BF\u30B0>",repeatable:true};async function docContent(input,usage){const content=await readBody(input,{flag:"--content",fileFlag:"--content-file",label:"\u8A18\u4E8B\u306E\u672C\u6587",maxChars:DOC_BODY_MAX_BYTES,usage});if(content!==void 0){const bytes=Buffer.byteLength(content,"utf8");if(bytes>DOC_BODY_MAX_BYTES){
|
|
48
|
+
throw new UsageError(`\u8A18\u4E8B\u306E\u672C\u6587\u304C\u5927\u304D\u3059\u304E\u307E\u3059\uFF08${bytes} \u30D0\u30A4\u30C8\u30FB\u4E0A\u9650 ${DOC_BODY_MAX_BYTES} \u30D0\u30A4\u30C8\uFF09`,"\u8A18\u4E8B\u3092\u5206\u5272\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30B5\u30FC\u30D0\u306E\u4E0A\u9650\u304C 300KB \u3067\u3059\uFF09\u3002")}}return content}function kbAndPath(input,usage){const[,path]=positional(input,[KB_ARG,"<\u30D1\u30B9>"],usage);return normalizeDocPath(path)}var docList={name:"\
|
|
49
|
+
list",summary:`${KB_LABEL}\u306E${DOC_LABEL}\u3092\u4E00\u89A7\u3059\u308B\uFF08\u672C\u6587\u306F\u542B\u307E\u306A\u3044\uFF09`,usage:DOC_LIST_USAGE,description:`${KB_ARG_HELP}
|
|
50
|
+
--prefix \u3067\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u914D\u4E0B\uFF08\u4F8B: /guide\uFF09\u306B\u3001--depth \u3067\u30EB\u30FC\u30C8\u304B\u3089\u306E\u6DF1\u3055\uFF08/a.md \u304C 1\uFF09\u306B\u7D5E\u308A\u307E\u3059\u3002
|
|
51
|
+
\u30B5\u30FC\u30D0\u306F1\u56DE\u306B 5,000 \u4EF6\u307E\u3067\u3057\u304B\u8AAD\u307E\u306A\u3044\u305F\u3081\u3001\u305D\u308C\u3092\u8D85\u3048\u308B KB \u3067\u306F\u6253\u3061\u5207\u308A\u3092 stderr \u3067\u77E5\u3089\u305B\u307E\u3059\uFF080\u4EF6\u3067\u3082\u300C\u7121\u3044\u300D\u3068\u306F\u9650\u308A\u307E\u305B\u3093\uFF09\u3002
|
|
52
|
+
--output table / tsv \u306F\u8981\u7D04\u5217\uFF08${DOC_LIST_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002`,flags:[{name:"--prefix",summary:"\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u7D5E\u308B\uFF08\u4F8B: /guide\uFF09",takesValue:true,placeholder:"<\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA>"},{name:"--depth",summary:`\u30EB\u30FC\u30C8\u304B\u3089\u306E\u6DF1\u3055\u3067\u7D5E\u308B\uFF081\u301C${DOC_DEPTH_MAX}\uFF09`,takesValue:true,placeholder:"<\u6DF1\u3055>"}],async prepare(input,ctx){positional(
|
|
53
|
+
input,[KB_ARG],DOC_LIST_USAGE);docPrefix(input);docDepth(input);return resolveKnowledge(input,ctx,DOC_LIST_USAGE)},plan:input=>({method:"GET",path:`${kbPath(input)}/docs`,query:{prefix:docPrefix(input),depth:docDepth(input)}}),summarize:body=>rows(body,"docs",`${DOC_LABEL}\u4E00\u89A7`).map(row=>pick(row,DOC_LIST_COLUMNS)),raw:body=>rows(body,"docs",`${DOC_LABEL}\u4E00\u89A7`),notes:body=>isRecord(body)&&body["truncated"]===true?[`\u30B5\u30FC\u30D0\u304C\u8AAD\u3080\u4EF6\u6570\u306E\u4E0A\u9650\uFF08${String(
|
|
54
|
+
body["limit"]??"?")} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001\u3053\u306E\u4E00\u89A7\u306B\u306F\u51FA\u3066\u3053\u306A\u3044${DOC_LABEL}\u304C\u3042\u308A\u307E\u3059\u3002`]:[]};function docDocument(body){const doc=docFrom(body);return composeDocument(doc["title"],[...metaLine("\u30D1\u30B9",doc["path"]),...metaLine("\u8981\u7D04",doc["summary"]),...metaLine("\u30BF\u30B0",doc["tags"]),...metaLine("\u66F4\u65B0",doc["updated_at"]),...metaLine("\u66F4\u65B0\u8005",doc["updated_b\
|
|
55
|
+
y"])],[{body:typeof doc["body_md"]==="string"?doc["body_md"].replace(/\s+$/,""):""}])}var docGet={name:"get",summary:`${DOC_LABEL}1\u4EF6\u3092\u8868\u793A\u3059\u308B\uFF08--output text \u3067\u672C\u6587\u306E Markdown \u3092\u8AAD\u3080\uFF09`,usage:DOC_GET_USAGE,description:`${DOC_PATH_HELP}
|
|
56
|
+
--output text \u306F\u4EF6\u540D\u30FB\u30E1\u30BF\u60C5\u5831\u306E\u3042\u3068\u306B\u672C\u6587\uFF08Markdown\uFF09\u3092\u305D\u306E\u307E\u307E\u51FA\u3057\u307E\u3059\u3002--output json \u306F\u30B5\u30FC\u30D0\u306E\u539F\u6587\u306E\u307E\u307E\u3067\u3059\u3002
|
|
57
|
+
--output table / tsv \u306F\u8981\u7D04\u5217\uFF08${DOC_GET_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002`,flags:[],async prepare(input,ctx){kbAndPath(input,DOC_GET_USAGE);return resolveKnowledge(input,ctx,DOC_GET_USAGE)},plan:input=>({method:"GET",path:`${kbPath(input)}/docs/show`,query:{path:kbAndPath(input,DOC_GET_USAGE)}}),summarize:body=>pick(docFrom(body),DOC_GET_COLUMNS),raw:docFrom,document:docDocument};var docCreate={name:"create",summary:`${DOC_LABEL}\u3092\u4F5C\u6210\u3059\u308B\uFF08\u672C\u6587\u306F\u30D5\u30A1\u30A4\u30EB\u304B\u3089\uFF09`,
|
|
58
|
+
usage:DOC_CREATE_USAGE,description:`${DOC_PATH_HELP}
|
|
59
|
+
${DOC_WRITE_HELP}
|
|
60
|
+
\u540C\u3058\u30D1\u30B9\u306E\u8A18\u4E8B\u304C\u65E2\u306B\u3042\u308C\u3070\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\uFF08\u66F8\u304D\u63DB\u3048\u306F twp knowledge doc update\uFF09\u3002
|
|
61
|
+
|
|
62
|
+
\u4F8B:
|
|
63
|
+
twp knowledge doc create internal-guide /guide/setup.md --title \u30BB\u30C3\u30C8\u30A2\u30C3\u30D7 --content-file setup.md --tag \u624B\u9806`,flags:[{name:"--title",summary:`\u4EF6\u540D\uFF08\u5FC5\u9808\u30FB${DOC_TITLE_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u4EF6\u540D>"},DOC_CONTENT_FLAG,{name:"--summary",summary:`\u8981\u7D04\uFF08${DOC_SUMMARY_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u8981\u7D04>"},DOC_TAG_FLAG],async prepare(input,ctx){
|
|
64
|
+
kbAndPath(input,DOC_CREATE_USAGE);if(boundedFlag(input,"--title",DOC_TITLE_MAX_CHARS)===void 0)throw new UsageError("--title \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",DOC_CREATE_USAGE);boundedFlag(input,"--summary",DOC_SUMMARY_MAX_CHARS);docTags(input);const content=await docContent(input,DOC_CREATE_USAGE);if(content===void 0)throw new UsageError("\u672C\u6587\u3092 --content-file \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08- \u3067\u6A19\u6E96\u5165\u529B\uFF09",DOC_CREATE_USAGE);
|
|
65
|
+
return withResolved(await resolveKnowledge(input,ctx,DOC_CREATE_USAGE),{content})},plan(input){const summary=boundedFlag(input,"--summary",DOC_SUMMARY_MAX_CHARS);const tags=docTags(input);return{method:"POST",path:`${kbPath(input)}/docs`,body:{path:kbAndPath(input,DOC_CREATE_USAGE),title:boundedFlag(input,"--title",DOC_TITLE_MAX_CHARS),body_md:requireResolved(input,"content"),...summary!==void 0?{summary}:{},...tags!==void 0?{tags}:{}}}},summarize:body=>pick(docFrom(body),DOC_GET_COLUMNS),raw:docFrom};
|
|
66
|
+
var docUpdate={name:"update",summary:`${DOC_LABEL}\u3092\u66F4\u65B0\u3059\u308B\uFF08\u4EF6\u540D\u30FB\u672C\u6587\u30FB\u8981\u7D04\u30FB\u30BF\u30B0\uFF09`,usage:DOC_UPDATE_USAGE,description:`${DOC_PATH_HELP}
|
|
67
|
+
${DOC_WRITE_HELP}
|
|
68
|
+
\u6307\u5B9A\u3057\u305F\u9805\u76EE\u3060\u3051\u3092\u9001\u308A\u307E\u3059\u3002--tag \u306F\u30BF\u30B0\u3092\u307E\u308B\u3054\u3068\u7F6E\u304D\u63DB\u3048\u3001--clear-tags \u306F\u30BF\u30B0\u3092\u3001--clear-summary \u306F\u8981\u7D04\u3092\u7A7A\u306B\u3057\u307E\u3059\u3002
|
|
69
|
+
\u30D1\u30B9\u306E\u5909\u66F4\u306F twp knowledge doc move \u3067\u3059\u3002`,flags:[{name:"--title",summary:`\u4EF6\u540D\uFF08${DOC_TITLE_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u4EF6\u540D>"},DOC_CONTENT_FLAG,{name:"--summary",summary:`\u8981\u7D04\uFF08${DOC_SUMMARY_MAX_CHARS}\u6587\u5B57\u4EE5\u5185\uFF09`,takesValue:true,placeholder:"<\u8981\u7D04>"},{name:"--clear-summary",summary:"\u8981\u7D04\u3092\u7A7A\u306B\u3059\u308B",takesValue:false},DOC_TAG_FLAG,
|
|
70
|
+
{name:"--clear-tags",summary:"\u30BF\u30B0\u3092\u7A7A\u306B\u3059\u308B",takesValue:false}],async prepare(input,ctx){kbAndPath(input,DOC_UPDATE_USAGE);const title=boundedFlag(input,"--title",DOC_TITLE_MAX_CHARS);const summary=clearable(input,"--summary","--clear-summary",DOC_SUMMARY_MAX_CHARS);const tags=docTags(input);const content=await docContent(input,DOC_UPDATE_USAGE);if(title===void 0&&summary===void 0&&tags===void 0&&content===void 0){throw new UsageError("\u66F4\u65B0\u3059\u308B\u9805\u76EE\u304C\u3042\u308A\u307E\u305B\u3093",
|
|
71
|
+
`--title / --content-file / --summary / --clear-summary / --tag / --clear-tags \u306E\u3069\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
|
72
|
+
${DOC_UPDATE_USAGE}`)}const resolved=await resolveKnowledge(input,ctx,DOC_UPDATE_USAGE);return content===void 0?resolved:withResolved(resolved,{content})},plan(input){const title=boundedFlag(input,"--title",DOC_TITLE_MAX_CHARS);const summary=clearable(input,"--summary","--clear-summary",DOC_SUMMARY_MAX_CHARS);const tags=docTags(input);const content=input.resolved?.["content"];return{method:"PUT",path:`${kbPath(input)}/docs`,body:{path:kbAndPath(input,DOC_UPDATE_USAGE),...title!==void 0?{title}:{},
|
|
73
|
+
...content!==void 0?{body_md:content}:{},...summary!==void 0?{summary}:{},...tags!==void 0?{tags}:{}}}},summarize:body=>pick(docFrom(body),DOC_GET_COLUMNS),raw:docFrom};function movePaths(input){const[,from,to]=positional(input,[KB_ARG,"<\u79FB\u52D5\u5143\u306E\u30D1\u30B9>","<\u79FB\u52D5\u5148\u306E\u30D1\u30B9>"],DOC_MOVE_USAGE);const fromPath=normalizeDocPath(from,"\u79FB\u52D5\u5143\u306E\u30D1\u30B9");return{from:fromPath,to:normalizeDocPath(to,"\u79FB\u52D5\u5148\u306E\u30D1\u30B9")}}var docMove={
|
|
74
|
+
name:"move",summary:`${DOC_LABEL}\u306E\u30D1\u30B9\u3092\u5909\u3048\u308B\uFF08\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u5909\u66F4\u30FB\u30EA\u30CD\u30FC\u30E0\uFF09`,usage:DOC_MOVE_USAGE,description:`${DOC_PATH_HELP}
|
|
75
|
+
\u79FB\u52D5\u5148\u306B\u540C\u3058\u30D1\u30B9\u306E\u8A18\u4E8B\u304C\u65E2\u306B\u3042\u308C\u3070\u30B5\u30FC\u30D0\u304C\u65AD\u308A\u307E\u3059\u3002`,flags:[],async prepare(input,ctx){movePaths(input);return resolveKnowledge(input,ctx,DOC_MOVE_USAGE)},plan(input){const{from,to}=movePaths(input);return{method:"POST",path:`${kbPath(input)}/docs/move`,body:{from_path:from,to_path:to}}},summarize:body=>pick(docFrom(body),DOC_GET_COLUMNS),raw:docFrom};async function previewDocDelete(input,ctx){
|
|
76
|
+
const path=kbAndPath(input,DOC_DELETE_USAGE);const doc=docFrom(await ctx.send({method:"GET",path:`${kbPath(input)}/docs/show`,query:{path}}));return{notes:[`\u524A\u9664\u3059\u308B${DOC_LABEL}: ${String(doc["title"]??"(\u4EF6\u540D\u306A\u3057)")}\uFF08${path}\uFF09`],warnings:[]}}var docDelete={name:"delete",summary:`${DOC_LABEL}\u3092\u524A\u9664\u3059\u308B\uFF08--yes \u304C\u8981\u308B\uFF09`,usage:DOC_DELETE_USAGE,description:`${DOC_PATH_HELP}
|
|
77
|
+
\u9001\u308B\u524D\u306B\u8A18\u4E8B\u3092\u53D6\u5F97\u3057\u3001\u6D88\u3048\u308B\u8A18\u4E8B\u306E\u4EF6\u540D\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\u3002`,destructive:true,flags:[],async prepare(input,ctx){kbAndPath(input,DOC_DELETE_USAGE);return resolveKnowledge(input,ctx,DOC_DELETE_USAGE)},preview:previewDocDelete,plan:input=>({method:"DELETE",path:`${kbPath(input)}/docs`,query:{path:kbAndPath(input,DOC_DELETE_USAGE)}}),summarize:body=>acknowledgement(body,`${DOC_LABEL}\u306E\u524A\u9664`),
|
|
78
|
+
raw:body=>acknowledgement(body,`${DOC_LABEL}\u306E\u524A\u9664`)};var docResource={name:"doc",summary:`${KB_LABEL}\u306E${DOC_LABEL}\uFF08\u4E00\u89A7\u30FB\u672C\u6587\u3092\u8AAD\u3080\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u79FB\u52D5\u30FB\u524A\u9664\uFF09`,operations:[docList,docGet,docCreate,docUpdate,docMove,docDelete]};var knowledgeDomain={name:"knowledge",summary:"\u30C9\u30E1\u30A4\u30F3\u77E5\u8B58\uFF08\u30CA\u30EC\u30C3\u30B8\u30D9\u30FC\u30B9\u3068\u8A18\u4E8B\u3002\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8 wiki \u306F twp wiki\uFF09",
|
|
79
|
+
operations:[kbList,kbGet,kbCreate,kbUpdate,kbDelete],subresources:[docResource]};export{knowledgeDomain,normalizeDocPath};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{estimateCaseDocumentResource}from"./chunk-
|
|
4
|
-
import{estimatePdfOperation}from"./chunk-
|
|
5
|
-
SALES_ESTIMATE_FORMATS_PATH,SALES_ESTIMATE_NO_RULES_PATH,SALES_INVOICE_NO_RULES_PATH,isExactNumericId}from"./chunk-
|
|
3
|
+
import{estimateCaseDocumentResource}from"./chunk-2CIQOXPK.js";import"./chunk-VEA72AKG.js";import"./chunk-45OL54MY.js";import{contentTypeFor,inspectLocalFile,issued}from"./chunk-I4TR55UF.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{estimateNoRuleResource}from"./chunk-XF4DN44V.js";import{salesAdminForbidden}from"./chunk-Z6T5M3NJ.js";import"./chunk-QLENN5DD.js";import"./chunk-GY7KI5E5.js";import{estimateAiReviewResources}from"./chunk-ARB4QFWO.js";
|
|
4
|
+
import{estimatePdfOperation}from"./chunk-K4JE26L6.js";import{estimateReadOperations,featureLicenseGuidance,licenseForbidden}from"./chunk-BBOWZVCC.js";import"./chunk-MP6YIILX.js";import"./chunk-JJSBBWJ5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{charCount,readBody}from"./chunk-6LSQCOCJ.js";import{SALES_ESTIMATES_PATH,
|
|
5
|
+
SALES_ESTIMATE_FORMATS_PATH,SALES_ESTIMATE_NO_RULES_PATH,SALES_INVOICE_NO_RULES_PATH,isExactNumericId}from"./chunk-MVZFZAT4.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";
|
|
6
6
|
import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var PATH=SALES_ESTIMATE_FORMATS_PATH;var LABEL="\u898B\u7A4D\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8";var CONTENT_KEYS=["format_name","start_date","end_date","default_unit","default_tax_rate","default_business_place_id","default_seal_impression_id","default_estimate_no_id","default_invoice_no_id","default_payee_id","default_terms","default_invoice_memo","default_purchase_terms","default_purchase_acceptance_terms","estimate_workflow_id","contract_workflow_id","invoice_workflow_id","purchase_workflow_\
|
|
7
7
|
id","description","estimate_manage_content","contract_manage_content","invoice_manage_content","sort_order"];var FIELD_NOTES=[["format_name","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u540D\uFF08255 \u6587\u5B57\u307E\u3067\uFF09"],["default_unit","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u660E\u7D30\u306E\u65E2\u5B9A\u306E\u5358\u4F4D\uFF08set / item / unit / hour / day / month / person / person_month / person_day\uFF09"],["default_tax_rate",'\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u65E2\u5B9A\u306E\u7A0E\u7387\uFF08"10" / "8" / \
|
|
8
8
|
"0"\uFF09'],["default_estimate_no_id","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u898B\u7A4D\u756A\u53F7\u30EB\u30FC\u30EB\u306E ID\uFF08\u6574\u6570\u3002twp estimate no-rule list \u306E id\uFF09"],["default_invoice_no_id","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u8ACB\u6C42\u756A\u53F7\u30EB\u30FC\u30EB\u306E ID\uFF08\u6574\u6570\u3002twp invoice no-rule list \u306E id\uFF09"],["start_date / end_date","\u6709\u52B9\u671F\u9593\uFF08YYYY-MM-DD\u3002\u7D42\u4E86\u306F\u958B\u59CB\u4EE5\u964D\u3002null \u3067\u671F\u9650\u306A\u3057\uFF09"],
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{PAGE_NUMBER_LIST_FLAGS,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import"./chunk-
|
|
3
|
+
import{PAGE_NUMBER_LIST_FLAGS,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import"./chunk-MVZFZAT4.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";
|
|
4
4
|
import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var ORG="/api/v2/organization";var PERIODS_PATH=`${ORG}/evaluation-periods`;var EVALUATIONS_PATH=`${ORG}/evaluations`;var GOAL_SHEETS_PATH=`${ORG}/goal-sheets`;var GOAL_SHEET_STATUSES=["draft","submitted","approved"];var EVALUATION_STATUSES=["in_progress","completed","feedback_ready","feedback_sent"];var PERIOD_FLAG={name:"--period",summary:"\u8A55\u4FA1\u671F\u9593\u306E ID\uFF08twp evaluation period list / current \u3067\u78BA\u8A8D\u3067\u304D\u308B\uFF09",takesValue:true,placeholder:"<\u8A55\u4FA1\u671F\u9593ID\
|
|
5
5
|
>"};var READ_SCOPE_HELP="\u4E00\u89A7\u306B\u51FA\u308B\u306E\u306F\u3001\u3042\u306A\u305F\u304C\u898B\u3066\u3088\u3044\u5206\u3060\u3051\u3067\u3059\uFF08\u4EBA\u4E8B\u7BA1\u7406\u306E\u7BA1\u7406\u8005\u306F\u5168\u54E1\u5206\u3001\u305D\u308C\u4EE5\u5916\u306F\u8A55\u4FA1\u671F\u9593\u6642\u70B9\u306E\u90E8\u4E0B\u306E\u5206\uFF1D\u81EA\u5206\u81EA\u8EAB\u306E\u5206\u306F\u51FA\u307E\u305B\u3093\uFF09\u3002\n\u6A29\u9650\u304C\u7121\u3044\u4EBA\u306E\u5206\u306F 403 \u3067\u306F\u306A\u304F\u300C\u51FA\u3066\u3053\u306A\u3044\u300D\u306E\u3067\u30010\u4EF6\u3067\u3082\u300C\u305D\u306E\u4EBA\u306E\u5206\u304C\u7121\u3044\u300D\u3068\u306F\u9650\u308A\u307E\u305B\u3093\u3002";
|
|
6
6
|
var EVALUATION_PAGING_HELP=" \u26A0 \u3053\u306E\u4E00\u89A7\u306F\u30DA\u30FC\u30B8\u756A\u53F7\u3067\u4F4D\u7F6E\u3092\u6307\u5B9A\u3057\u307E\u3059\uFF08--cursor \u306F\u30DA\u30FC\u30B8\u756A\u53F7\u3067\u3059\uFF09\u3002\n \u30B5\u30FC\u30D0\u306F\u4E26\u3073\u9806\u3092\u56FA\u5B9A\u3057\u3066\u3044\u306A\u3044\u306E\u3067\u3001\u8FBF\u3063\u3066\u3044\u308B\u6700\u4E2D\u306B\u30C7\u30FC\u30BF\u304C\u5897\u6E1B\u3059\u308B\u3068\u53D6\u308A\u3053\u307C\u3057\u30FB\u91CD\u8907\u304C\u8D77\u3053\u308A\u5F97\u307E\u3059\u3002";
|
|
@@ -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-BBOWZVCC.js";import{monthFlag}from"./chunk-EXT4AIDF.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import"./chunk-MVZFZAT4.js";import{UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";
|
|
4
4
|
import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var BASE="/api/v2/expense/commuting";var WORKFLOW_CATEGORY="commuting_expenses";var LIST_LIMIT_MAX=100;var DEFAULT_LIST_LIMIT=24;var COMMENT_MAX=1e3;var CONTENT_MAX_CHARS=2e4;var STATUSES=["draft","pending","approved","rejected"];var ENTRY_VALUES=["round_trip","one_way",""];var CONTENT_KEYS=["daily_entries","comment"];var LIST_COLUMNS=["id","year_month","status","total_round_trips","total_one_ways","total_amount","updated_at"];var ADMIN_LIST_COLUMNS=["id","user_name","year_month","status","total\
|
|
5
5
|
_round_trips","total_one_ways","total_amount","updated_at"];var GET_COLUMNS=["id","year_month","status","commuting_facilities","commuting_route","commuting_cost_one_way","total_round_trips","total_one_ways","total_amount","workflow_instance_id","comment"];var LICENSE=featureLicenseGuidance("\u7D4C\u8CBB\u7BA1\u7406");var USER_FORBIDDEN=body=>body?.error==="permission_denied"?LICENSE:"\u3053\u306E\u901A\u52E4\u4EA4\u901A\u8CBB\u3092\u64CD\u4F5C\u3059\u308B\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u81EA\u5206\u306E\u5206\u304B\u3001\u7D4C\u8CBB\u306E\u7BA1\u7406\u8005\u3060\u3051\u304C\u6271\u3048\u307E\u3059\uFF09";
|
|
6
6
|
var ADMIN_FORBIDDEN=body=>body?.error==="permission_denied"?LICENSE:"\u7D4C\u8CBB\u306E\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\uFF08\u30C6\u30CA\u30F3\u30C8\u306E\u7BA1\u7406\u8005\u304B\u3001\u7D4C\u8CBB\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u306E\u4EBA\u3060\u3051\u304C\u4F7F\u3048\u307E\u3059\uFF09\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044";var MONTH_FLAG={name:"--month",summary:"\u5BFE\u8C61\u306E\u5E74\u6708\uFF08YYYY-\
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-
|
|
3
|
+
import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-MP6YIILX.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import{FISCAL_YEAR_SETTINGS_PATH}from"./chunk-MVZFZAT4.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{singleRef}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";
|
|
4
4
|
import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var NAME="fiscal-year";var LABEL="\u4E8B\u696D\u5E74\u5EA6\u8A2D\u5B9A";var YEAR_RE=/^\d{4}$/;var FIELDS=[{kind:"number",flag:"--indirect-cost-rate",key:"default_indirect_cost_rate",label:"\u9593\u63A5\u8CBB\u7387",min:0,max:100,summary:"\u9593\u63A5\u8CBB\u7387\u306E\u65E2\u5B9A\uFF08%\u30FB0\u301C100\u30FB\u5C0F\u6570\u53EF\uFF09"},{kind:"number",flag:"--target-profit-rate",key:"default_target_profit_rate",label:"\u76EE\u6A19\u5229\u76CA\u7387",min:0,max:100,summary:"\u76EE\u6A19\u5229\u76CA\u7387\u306E\u65E2\u5B9A\uFF08%\u30FB0\u301C100\u30FB\u5C0F\u6570\u53EF\uFF09"},
|
|
5
5
|
{kind:"text",flag:"--description",key:"description",label:"\u8AAC\u660E",maxChars:1e3,summary:"\u8AAC\u660E"}];var COLUMNS=["fiscal_year","default_indirect_cost_rate","default_target_profit_rate","description"];var YEAR_FLAG={name:"--fiscal-year",summary:"\u5BFE\u8C61\u306E\u5E74\u5EA6\uFF08\u4F4D\u7F6E\u5F15\u6570\u306E\u4EE3\u308F\u308A\u306B\u4F7F\u3048\u308B\uFF09",takesValue:true,placeholder:"<YYYY>"};var FORBIDDEN=`\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002${LABEL}\
|
|
6
6
|
\u306E\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\u306F\u7BA1\u7406\u8005\u3060\u3051\u304C\u884C\u3048\u307E\u3059`;function fiscalYear(input,usage){const year=singleRef(input,{flag:YEAR_FLAG.name,label:"\u5E74\u5EA6",usage});if(!YEAR_RE.test(year)){throw new UsageError(`\u5E74\u5EA6\u306F4\u6841\u306E\u6570\u5B57\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${year}`,`\u4F8B: twp ${NAME} get 2026`)}return year}function rows(body){const list=isRecord(body)?body["list"]:void 0;if(!Array.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{booleanText,boundedText}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{INQUIRY_CATEGORIES_PATH}from"./chunk-
|
|
3
|
+
import{booleanText,boundedText}from"./chunk-JJSBBWJ5.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{INQUIRY_CATEGORIES_PATH}from"./chunk-MVZFZAT4.js";import{UUID_RE,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,
|
|
4
4
|
UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LABEL="\u554F\u3044\u5408\u308F\u305B\u30AB\u30C6\u30B4\u30EA";var LIST_COLUMNS=["id","category_code","title","sort","is_active","notification_user_count"];var GET_COLUMNS=["id","category_code","title","description","sort","is_active","notification_users"];var FORBIDDEN=`\u7BA1\u7406\u8005\u306E\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059\u3002${LABEL}\u306E\u8A73\u7D30\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u306F\u554F\u3044\u5408\u308F\u305B\u6A5F\u80FD\u306E\u7BA1\u7406\u8005\u3060\u3051\u304C\u884C\u3048\u307E\u3059`;
|
|
5
5
|
var SORT_LAST="last";var CODE_RE=/^[a-zA-Z0-9_-]+$/;var REF_HELP="<\u30AB\u30C6\u30B4\u30EA> \u306F\u30AB\u30C6\u30B4\u30EA\u30B3\u30FC\u30C9\u30FB\u540D\u524D\uFF08title\uFF09\u30FBID \u306E\u3069\u308C\u3067\u3082\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u540D\u524D\u304C\u8907\u6570\u306B\u4E00\u81F4\u3059\u308C\u3070\u5019\u88DC\u3092\u51FA\u3057\u3066\u6B62\u307E\u308A\u307E\u3059\uFF09\u3002\nID \u4EE5\u5916\u306F\u30AB\u30C6\u30B4\u30EA\u4E00\u89A7\uFF08\u65E2\u5B9A10\u5206\u30AD\u30E3\u30C3\u30B7\u30E5\u30FB--refresh \u3067\u53D6\u308A\u76F4\u3057\uFF09\u3068\u7167\u5408\u3057\u307E\u3059\u3002";
|
|
6
6
|
var NOTIFY_HELP="--notify \u306F\u901A\u77E5\u5148\u306E\u30E6\u30FC\u30B6\u30FC\u3067\u3001\u8907\u6570\u56DE\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\u30E6\u30FC\u30B6\u30FC\u306F ID\u30FB\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u30FB\u793E\u54E1\u756A\u53F7\u30FB\u6C0F\u540D\u3067\u6307\u5B9A\u3067\u304D\u307E\u3059\n\uFF08ID \u4EE5\u5916\u306F\u30C6\u30CA\u30F3\u30C8\u306E\u30E6\u30FC\u30B6\u30FC\u4E00\u89A7\u3068\u7167\u5408\u3057\u307E\u3059\u3002\u7D44\u7E54\u7BA1\u7406\u8005\u3067\u306A\u3044\u5834\u5408\u306F ID \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09\u3002";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{invoiceNoRuleResource}from"./chunk-
|
|
4
|
-
nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SALES_INVOICES_PATH,SALES_INVOICE_AUTO_TEMPLATES_PATH,isExactNumericId,resolveNamed}from"./chunk-
|
|
3
|
+
import{invoiceNoRuleResource}from"./chunk-XF4DN44V.js";import"./chunk-Z6T5M3NJ.js";import"./chunk-QLENN5DD.js";import{invoiceAiReviewResources}from"./chunk-ARB4QFWO.js";import{invoicePdfOperation}from"./chunk-K4JE26L6.js";import{featureLicenseGuidance,invoiceFilters,invoiceReadOperations,licenseForbidden}from"./chunk-BBOWZVCC.js";import{booleanText,isoDate}from"./chunk-JJSBBWJ5.js";import{LIST_PAGING_HELP,PAGE_NUMBER_LIST_FLAGS,PAGE_NUMBER_PAGING_HELP,STABLE_PAGE_ORDER,
|
|
4
|
+
nonEmpty,pageNumberPaging,pageNumberQuery,pageRangeNotes}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import{SALES_INVOICES_PATH,SALES_INVOICE_AUTO_TEMPLATES_PATH,isExactNumericId,resolveNamed}from"./chunk-MVZFZAT4.js";import"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";
|
|
5
5
|
import{acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var PATH=SALES_INVOICE_AUTO_TEMPLATES_PATH;var HISTORY_SEARCH_PATH="/api/v2/sales/invoice-auto-issue-histories";var FORMATS_PATH="/api/v2/sales/estimate-formats";function adminForbidden(body){return body?.error==="permission_denied"?featureLicenseGuidance("\u8CA9\u58F2\u7BA1\u7406"):"\u81EA\u52D5\u8ACB\u6C42\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3068\u767A\u884C\u5C65\u6B74\u306F\u3001\u8CA9\u58F2\u7BA1\u7406\u306E\u6A29\u9650\u304C\u300C\u7BA1\u7406\u8005\u300D\u306E\u4EBA\u3060\u3051\u304C\u6271\u3048\u307E\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u7BA1\u7406\u8005\u306B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}
|
|
6
6
|
var CONTENT_KEYS=["template_name","estimate_format_id","interval_months","next_issue_date","period_start_date","period_end_date","payment_term_months","payment_term_day","estimate_expiration_months","estimate_expiration_day","order_acceptance_months","order_acceptance_day","invoice_date_months","invoice_date_day","estimate_business_place_id","estimate_seal_impression_id","invoice_business_place_id","invoice_seal_impression_id","company_id","project_id","payee_id","estimate_user_id","invoice_user\
|
|
7
7
|
_id","detail","memo","template_memo","notification_user_ids","estimate_manage_content","invoice_manage_content","is_active"];var DETAIL_KEYS=["list"];var DETAIL_ROW_KEYS=["title","price","quantity","unit","tax","delivery_date"];var NOT_SAVED_KEYS=["period_start_months","period_start_day","period_end_months","period_end_day"];var FIELD_NOTES=[["template_name","\u4F5C\u6210\u3067\u5FC5\u9808\u3002\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u540D\uFF08255 \u6587\u5B57\u307E\u3067\uFF09"],["estimate_format\
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __twpCreateRequire } from 'node:module';
|
|
2
2
|
const require = __twpCreateRequire(import.meta.url);
|
|
3
|
-
import{STATUS_VALUES,flatMasterDomain}from"./chunk-
|
|
3
|
+
import{STATUS_VALUES,flatMasterDomain}from"./chunk-MP6YIILX.js";import"./chunk-JJSBBWJ5.js";import"./chunk-MI6HVYR2.js";import{JOB_TITLES_PATH}from"./chunk-MVZFZAT4.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";
|
|
4
4
|
import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var jobTitleDomain=flatMasterDomain({name:"job-title",label:"\u8077\u4F4D",path:JOB_TITLES_PATH,itemKey:"job_title",summary:"\u8077\u4F4D\u30DE\u30B9\u30BF\uFF08\u4E00\u89A7\u30FB\u53D6\u5F97\u30FB\u4F5C\u6210\u30FB\u66F4\u65B0\u30FB\u524A\u9664\uFF09",listColumns:["id","code","name","sort_order","status","position_id","base_selling_price","base_cost_price"],getColumns:["id","code","name","name_short","sort_order","status","position_id","base_selling_price","base_cost_price","description"],fields:[
|
|
5
5
|
{kind:"text",flag:"--name-short",key:"name_short",label:"\u7565\u79F0",maxChars:50,summary:"\u7565\u79F0"},{kind:"integer",flag:"--sort-order",key:"sort_order",label:"\u8868\u793A\u9806",min:0,max:9999,summary:"\u8868\u793A\u9806\uFF080\u301C9999\uFF09"},{kind:"enum",flag:"--status",key:"status",values:STATUS_VALUES,summary:"\u72B6\u614B\uFF08active: \u6709\u52B9 / inactive: \u7121\u52B9\uFF09"},{kind:"text",flag:"--description",key:"description",label:"\u8AAC\u660E",maxChars:1e3,summary:"\u8AAC\u660E"},
|
|
6
6
|
{kind:"integer",flag:"--base-selling-price",key:"base_selling_price",label:"\u57FA\u6E96\u58F2\u4FA1",min:0,summary:"\u57FA\u6E96\u58F2\u4FA1\uFF080\u4EE5\u4E0A\u306E\u6574\u6570\uFF09"},{kind:"integer",flag:"--base-cost-price",key:"base_cost_price",label:"\u57FA\u6E96\u539F\u4FA1",min:0,summary:"\u57FA\u6E96\u539F\u4FA1\uFF080\u4EE5\u4E0A\u306E\u6574\u6570\uFF09"},{kind:"text",flag:"--skill-requirements",key:"skill_requirements",label:"\u30B9\u30AD\u30EB\u8981\u4EF6",maxChars:5e3,summary:"\u30B9\u30AD\u30EB\u8981\u4EF6"},
|