@tocca-systems/twp-cli 0.70.0 → 0.71.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/CHANGELOG.public.md +10 -0
  2. package/README.md +5 -3
  3. package/dist/{agent-loop-6JO4PJRG.js → agent-loop-OW6ZMQKN.js} +30 -16
  4. package/dist/{ai-dispatch-H7OOHHKO.js → ai-dispatch-YABGNMHQ.js} +1 -1
  5. package/dist/{api-command-OJWUGQKF.js → api-command-4HXHTIQT.js} +1 -1
  6. package/dist/{app-DT4HVGYU.js → app-JCUJJQGB.js} +1 -1
  7. package/dist/{capacity-report-command-PBE73I43.js → capacity-report-command-ACWK2MR5.js} +1 -1
  8. package/dist/chunk-5KAWCLYN.js +16 -0
  9. package/dist/{chunk-X6L5LUC4.js → chunk-BRE7D5AY.js} +1 -1
  10. package/dist/{chunk-EDBJQCNC.js → chunk-DLY2IN3G.js} +1 -1
  11. package/dist/{chunk-P6M2MCZJ.js → chunk-JA7HEJOU.js} +2 -2
  12. package/dist/{chunk-JIGA6KKU.js → chunk-LUBON4AA.js} +8 -7
  13. package/dist/{chunk-6PAZUW73.js → chunk-MAAICW7T.js} +1 -1
  14. package/dist/{chunk-W2AIT5FJ.js → chunk-OREF2S43.js} +1 -1
  15. package/dist/{chunk-S7IEZSPJ.js → chunk-YUS4VPNA.js} +4 -4
  16. package/dist/cli.js +8 -6
  17. package/dist/{commands-MTH5LEV7.js → commands-HH2DW2QJ.js} +100 -92
  18. package/dist/{knowledge-GB6IFUMG.js → knowledge-6A3MCIRY.js} +33 -21
  19. package/dist/{media-HJDG3QWD.js → media-FGEV2OI2.js} +1 -1
  20. package/dist/{plan-submit-T5KHXNGH.js → plan-submit-SRQJHV2X.js} +1 -1
  21. package/dist/{registry-DWIGRC5S.js → registry-DC75DVLY.js} +1 -1
  22. package/dist/{run-36UF6SY5.js → run-R5CU36O3.js} +1 -1
  23. package/dist/{schedule-command-2HCOGYJW.js → schedule-command-4UBCTNRI.js} +1 -1
  24. package/dist/search-OSV6TA6Q.js +29 -0
  25. package/dist/{server-settings-LJBDUOTV.js → server-settings-BGVJNHAV.js} +1 -1
  26. package/dist/{server-skills-4XYTHPN3.js → server-skills-JEFNP63E.js} +1 -1
  27. package/dist/{task-O7K6725Y.js → task-AQSKV7VL.js} +1 -1
  28. package/package.json +1 -1
  29. package/dist/chunk-SPZ3GBYC.js +0 -16
  30. package/dist/search-GRAWP2LX.js +0 -26
@@ -1,11 +1,11 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
3
  import{buildDiffLines,diffStat}from"./chunk-VRBI2NPI.js";import{composeDocument,meetingContentToText,metaLine,noteContentToText,oneLine,wikiContentToText}from"./chunk-HPPIVCK3.js";import{dateFlag}from"./chunk-EXT4AIDF.js";import{boundedText}from"./chunk-JJSBBWJ5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{charCount,readBody}from"./chunk-6LSQCOCJ.js";
4
- import"./chunk-HNG6MF26.js";import{ResolveError,isSafePathSegment}from"./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{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";
5
- import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var WIKI_PATH="/api/v2/wiki";var NOTES_PATH="/api/v2/notes";var MEETINGS_PATH="/api/v2/meetings";var ROOT_PARENT="root";var WIKI_STATUSES=["draft","published"];var WIKI_CONTENT_FORMATS=["html","markdown"];var NOTE_STATUSES=["draft","published"];var NOTE_VISIBILITIES=["private","tenant","external","public"];var NOTE_SORTS=["manual","created_at","updated_at","view_count","comment_count","reaction_count"];var MEETING_STATUSES=["draft","published","archived"];var MEETING_TYPES=["regular","client","i\
6
- nternal","retrospective","decision","one_on_one"];var MEETING_SORTS=["meeting_date","created_at","updated_at","title"];var SORT_ORDERS=["asc","desc"];var MEETING_TAGS_MAX=20;var MEETING_TAG_MAX_CHARS=50;var DATE_FLOOR="0000-01-01";var DATE_CEIL="9999-12-31";var WIKI_LIST_COLUMNS=["id","title","status","parent_page_id","updated_at","updated_by_name"];var WIKI_CHILD_COLUMNS=["id","title","status","child_count","updated_at","updated_by_name"];var WIKI_GET_COLUMNS=["id","title","status","content_for\
7
- mat","parent_page_id","version","tags","updated_at","updated_by_name"];var NOTE_LIST_COLUMNS=["id","title","status","visibility","created_by_name","updated_at","comment_count","reaction_count"];var NOTE_GET_COLUMNS=["id","title","status","visibility","content_type","category_name","tags","created_by_name","updated_at","view_count"];var MEETING_LIST_COLUMNS=["id","meeting_date","title","meeting_type","status","project_name","created_by_name"];var MEETING_GET_COLUMNS=["id","title","meeting_date","\
8
- meeting_type","status","project_name","category_name","created_by_name","updated_at"];var TEXT_OUTPUT_HELP="--output text \u306F\u672C\u6587\u3092\u8AAD\u3080\u305F\u3081\u306E\u6587\u66F8\uFF08\u898B\u51FA\u3057\u30FB\u30E1\u30BF\u60C5\u5831\u30FB\u672C\u6587\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002HTML \u3068\u5171\u540C\u7DE8\u96C6\u30A8\u30C7\u30A3\u30BF\u306E JSON \u306F\n\u5E73\u6587\u3078\u5909\u63DB\u3057\u3001\u898B\u51FA\u3057\u30FB\u7B87\u6761\u66F8\u304D\u30FB\u30EA\u30F3\u30AF\u306F Markdown \u98A8\u306B\u6B8B\u3057\u307E\u3059\u3002--output json \u306F\u30B5\u30FC\u30D0\u306E\u539F\u6587\u306E\u307E\u307E\u3067\u3059\u3002";
4
+ import"./chunk-HNG6MF26.js";import{ResolveError,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{ApiRejectedError,ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";
5
+ import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var WIKI_PATH="/api/v2/wiki";var WIKI_SUMMARY_FIELDS="summary";function withoutContent(page){const rest={...page};delete rest["content"];return rest}var NOTES_PATH="/api/v2/notes";var MEETINGS_PATH="/api/v2/meetings";var ROOT_PARENT="root";var WIKI_STATUSES=["draft","published"];var WIKI_CONTENT_FORMATS=["html","markdown"];var NOTE_STATUSES=["draft","published"];var NOTE_VISIBILITIES=["private","tenant","external","public"];var NOTE_SORTS=["manual","created_at","updated_at","view_count","comment\
6
+ _count","reaction_count"];var MEETING_STATUSES=["draft","published","archived"];var MEETING_TYPES=["regular","client","internal","retrospective","decision","one_on_one"];var MEETING_SORTS=["meeting_date","created_at","updated_at","title"];var SORT_ORDERS=["asc","desc"];var MEETING_TAGS_MAX=20;var MEETING_TAG_MAX_CHARS=50;var DATE_FLOOR="0000-01-01";var DATE_CEIL="9999-12-31";var WIKI_LIST_COLUMNS=["id","title","status","parent_page_id","updated_at","updated_by_name"];var WIKI_CHILD_COLUMNS=["id",
7
+ "title","status","child_count","updated_at","updated_by_name"];var WIKI_GET_COLUMNS=["id","title","status","content_format","parent_page_id","version","tags","updated_at","updated_by_name"];var NOTE_LIST_COLUMNS=["id","title","status","visibility","created_by_name","updated_at","comment_count","reaction_count"];var NOTE_GET_COLUMNS=["id","title","status","visibility","content_type","category_name","tags","created_by_name","updated_at","view_count"];var MEETING_LIST_COLUMNS=["id","meeting_date","\
8
+ title","meeting_type","status","project_name","created_by_name"];var MEETING_GET_COLUMNS=["id","title","meeting_date","meeting_type","status","project_name","category_name","created_by_name","updated_at"];var TEXT_OUTPUT_HELP="--output text \u306F\u672C\u6587\u3092\u8AAD\u3080\u305F\u3081\u306E\u6587\u66F8\uFF08\u898B\u51FA\u3057\u30FB\u30E1\u30BF\u60C5\u5831\u30FB\u672C\u6587\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002HTML \u3068\u5171\u540C\u7DE8\u96C6\u30A8\u30C7\u30A3\u30BF\u306E JSON \u306F\n\u5E73\u6587\u3078\u5909\u63DB\u3057\u3001\u898B\u51FA\u3057\u30FB\u7B87\u6761\u66F8\u304D\u30FB\u30EA\u30F3\u30AF\u306F Markdown \u98A8\u306B\u6B8B\u3057\u307E\u3059\u3002--output json \u306F\u30B5\u30FC\u30D0\u306E\u539F\u6587\u306E\u307E\u307E\u3067\u3059\u3002";
9
9
  function noArgs(input,command){if(input.args.length>0){throw new UsageError(`${command} \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,`${command} help`)}}function singleId(input,command,label,where){const[raw,...rest]=input.args;const id=raw?.trim()??"";if(id==="")throw new UsageError(`${label}\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,`${command} help`);if(rest.length>0)throw new UsageError(`${command} \u304C\u53D7\u3051\u53D6\u308C\u308B${label}\
10
10
  ID \u306F1\u3064\u3060\u3051\u3067\u3059: ${rest.join(" ")}`,`${command} help`);if(!isSafePathSegment(id))throw new UsageError(`${label}\u306E ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${id}`,`${label}\u306E ID \u306F ${where} \u306E id \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002`);return id}function oneOf(input,flag,allowed){const raw=nonEmpty(input.flags,flag);if(raw===void 0)return void 0;const value=raw.trim();if(!allowed.includes(value)){throw new UsageError(
11
11
  `${flag} \u306B\u6307\u5B9A\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${raw}`,`\u6307\u5B9A\u3067\u304D\u308B\u5024: ${allowed.join(" / ")}`)}return value}function pageLimit(input){const limit=positiveInteger(input.flags,"--limit");if(limit!==void 0&&limit>500){throw new UsageError(`--limit \u306F 1\u301C500 \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${limit}`,"\u30B5\u30FC\u30D0\u306E\u4E0A\u9650\u304C500\u4EF6\u3067\u3059\u3002\u5168\u4EF6\u306F --all \u3067\u8FBF\u308C\u307E\u3059\u3002")}
@@ -13,38 +13,50 @@ return limit}function record(body,key,label){const row=isRecord(body)&&body["res
13
13
  \u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return paging.items(body)}function scanTruncatedNote(label){return body=>isRecord(body)&&body["scan_truncated"]===true?[`\u30B5\u30FC\u30D0\u304C\u8D70\u67FB\u3059\u308B\u4EF6\u6570\u306E\u4E0A\u9650\u306B\u9054\u3057\u305F\u305F\u3081\u3001\u3053\u306E${label}\u306B\u306F\u6761\u4EF6\u306B\u5408\u3046\u306E\u306B\u51FA\u3066\u3053\u306A\u3044\u884C\u304C\u3042\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002`]:[]}var WIKI_LABEL="wiki \u30DA\u30FC\u30B8";
14
14
  var wikiPaging=envelopePaging({label:`${WIKI_LABEL}\u4E00\u89A7`});var PARENT_EXCLUSIVE=["--status","--tag","--keyword","--limit","--cursor","--all","--max-pages","--max-items"];function parentRef(input){const raw=nonEmpty(input.flags,"--parent");if(raw===void 0)return void 0;const parent=raw.trim();const clash=PARENT_EXCLUSIVE.filter(flag=>input.flags.has(flag));if(clash.length>0){throw new UsageError(`--parent \u306F ${clash.join(" / ")} \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093`,"--par\
15
15
  ent \u306F\u30DA\u30FC\u30B8\u306E\u89AA\u5B50\u69CB\u9020\uFF08\u5168\u30DA\u30FC\u30B8\uFF09\u304B\u3089\u76F4\u4E0B\u306E\u5B50\u3092\u9078\u3076\u306E\u3067\u3001\u30B5\u30FC\u30D0\u5074\u306E\u7D5E\u308A\u8FBC\u307F\u30FB\u30DA\u30FC\u30B8\u30F3\u30B0\u3092\u4F7F\u3048\u307E\u305B\u3093\u3002")}if(parent!==ROOT_PARENT&&!isSafePathSegment(parent)){throw new UsageError(`\u89AA\u30DA\u30FC\u30B8\u306E ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${parent}`,"\u30DA\u30FC\u30B8\u306E ID \u306F twp wi\
16
- ki list \u306E id \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002")}return parent}function wikiListQuery(input){return{project_id:requireResolved(input,"project"),status:oneOf(input,"--status",WIKI_STATUSES),tag:nonEmpty(input.flags,"--tag"),keyword:nonEmpty(input.flags,"--keyword"),limit:pageLimit(input),cursor:nonEmpty(input.flags,"--cursor")}}function childrenOf(body,parent){const tree=isRecord(body)&&body["result"]===true?body["tree"]:void 0;if(!Array.isArray(tree))throw new ApiResponseError(
17
- `${WIKI_LABEL}\u306E\u30C4\u30EA\u30FC\u306E\u5FDC\u7B54\u306B tree \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);const find=roots=>{const stack=[...roots];while(stack.length>0){const node=stack.pop();if(!isRecord(node))continue;const children2=Array.isArray(node["children"])?node["children"]:[];if(node["id"]===parent)return children2;for(const child of children2)stack.push(child)}return void 0};const children=parent===
18
- ROOT_PARENT?tree:find(tree);if(children===void 0){throw new ResolveError(`\u89AA\u30DA\u30FC\u30B8 ${parent} \u306F\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E wiki \u306B\u898B\u3064\u304B\u308A\u307E\u305B\u3093\uFF08\u524A\u9664\u6E08\u307F\u30FB\u4ED6\u4EBA\u306E\u4E0B\u66F8\u304D\u30FB\u5225\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30DA\u30FC\u30B8\u306F\u898B\u3048\u307E\u305B\u3093\uFF09`,404)}return children.filter(isRecord).map(node=>{const{children:grand,...page}=node;return{
19
- ...page,child_count:Array.isArray(grand)?grand.length:0}})}var wikiList={name:"list",summary:`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E${WIKI_LABEL}\u3092\u4E00\u89A7\u3059\u308B\uFF08--parent \u3067\u89AA\u30DA\u30FC\u30B8\u76F4\u4E0B\uFF09`,usage:"twp wiki list [--project <\u30B3\u30FC\u30C9|ID>] [--parent <\u30DA\u30FC\u30B8ID>|root] [--status <draft|published>] [--tag <\u30BF\u30B0>] [--keyword <\u8A9E>] [--all] [--limit <\u4EF6\u6570>]",description:`wiki \u306F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3054\u3068\u3067\u3059\u3002--project \u3092\u7701\u304F\u3068\u65E2\u5B9A\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\
20
- \uFF08TWP_PROJECT \u7B49\uFF09\u3092\u4F7F\u3044\u307E\u3059\u3002
16
+ ki list \u306E id \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002")}return parent}function wikiListQuery(input){return{project_id:requireResolved(input,"project"),status:oneOf(input,"--status",WIKI_STATUSES),tag:nonEmpty(input.flags,"--tag"),keyword:nonEmpty(input.flags,"--keyword"),limit:pageLimit(input),cursor:nonEmpty(input.flags,"--cursor"),fields:WIKI_SUMMARY_FIELDS}}function childrenOf(body,parent){const tree=isRecord(body)&&body["result"]===true?body["tree"]:void 0;if(!Array.isArray(
17
+ tree))throw new ApiResponseError(`${WIKI_LABEL}\u306E\u30C4\u30EA\u30FC\u306E\u5FDC\u7B54\u306B tree \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);const find=roots=>{const stack=[...roots];while(stack.length>0){const node=stack.pop();if(!isRecord(node))continue;const children2=Array.isArray(node["children"])?node["children"]:[];if(node["id"]===parent)return children2;for(const child of children2)stack.push(child)}
18
+ return void 0};const children=parent===ROOT_PARENT?tree:find(tree);if(children===void 0){throw new ResolveError(`\u89AA\u30DA\u30FC\u30B8 ${parent} \u306F\u3053\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E wiki \u306B\u898B\u3064\u304B\u308A\u307E\u305B\u3093\uFF08\u524A\u9664\u6E08\u307F\u30FB\u4ED6\u4EBA\u306E\u4E0B\u66F8\u304D\u30FB\u5225\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30DA\u30FC\u30B8\u306F\u898B\u3048\u307E\u305B\u3093\uFF09`,404)}return children.filter(isRecord).map(node=>{const{
19
+ children:grand,...page}=node;return{...withoutContent(page),child_count:Array.isArray(grand)?grand.length:0}})}var wikiList={name:"list",summary:`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E${WIKI_LABEL}\u3092\u4E00\u89A7\u3059\u308B\uFF08--parent \u3067\u89AA\u30DA\u30FC\u30B8\u76F4\u4E0B\uFF09`,usage:"twp wiki list [--project <\u30B3\u30FC\u30C9|ID>] [--parent <\u30DA\u30FC\u30B8ID>|root] [--status <draft|published>] [--tag <\u30BF\u30B0>] [--keyword <\u8A9E>] [--all] [--limit <\u4EF6\u6570>]",description:`\
20
+ wiki \u306F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3054\u3068\u3067\u3059\u3002--project \u3092\u7701\u304F\u3068\u65E2\u5B9A\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08TWP_PROJECT \u7B49\uFF09\u3092\u4F7F\u3044\u307E\u3059\u3002
21
21
  --parent <\u30DA\u30FC\u30B8ID> \u306F\u305D\u306E\u30DA\u30FC\u30B8\u76F4\u4E0B\u306E\u5B50\u30DA\u30FC\u30B8\u3060\u3051\u3001--parent ${ROOT_PARENT} \u306F\u6700\u4E0A\u4F4D\u306E\u30DA\u30FC\u30B8\u3060\u3051\u3092\u51FA\u3057\u307E\u3059\uFF08\u5B6B\u306F child_count \u5217\u3067\u6570\u3060\u3051\u5206\u304B\u308A\u307E\u3059\uFF09\u3002
22
22
  --parent \u306F\u30DA\u30FC\u30B8\u306E\u89AA\u5B50\u69CB\u9020\u30921\u56DE\u3067\u5F15\u3044\u3066\u9078\u3076\u306E\u3067\u3001${PARENT_EXCLUSIVE.join(" / ")} \u3068\u306F\u4F75\u7528\u3067\u304D\u307E\u305B\u3093\u3002
23
23
  \u4E0B\u66F8\u304D\u306F\u4F5C\u6210\u8005\u3068 wiki \u306E\u7BA1\u7406\u8005\u306B\u3057\u304B\u898B\u3048\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u306E\u5224\u5B9A\uFF09\u3002
24
24
 
25
- --output json \u306F API \u304C\u8FD4\u3059\u5168\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08\u672C\u6587 content \u3092\u542B\u3080\uFF09\u3092\u51FA\u3057\u307E\u3059\u3002
25
+ --output json \u306F API \u304C\u8FD4\u3059\u30D5\u30A3\u30FC\u30EB\u30C9\u304B\u3089\u672C\u6587 content \u3092\u9664\u3044\u305F\u3082\u306E\u3067\u3001\u4EE3\u308F\u308A\u306B\u5192\u982D\u306E\u8981\u7D04 summary\uFF08\u5E73\u6587\u3067\u5148\u982D200\u6587\u5B57\uFF09\u3068\u672C\u6587\u306E\u6587\u5B57\u6570 content_length \u304C\u5165\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u304C\u5BFE\u5FDC\u3057\u3066\u3044\u308C\u3070\uFF09\u3002
26
26
  --output table / text / tsv \u306F\u8981\u7D04\u5217\uFF08${WIKI_LIST_COLUMNS.join(" / ")}\u3002--parent \u3067\u306F parent_page_id \u306E\u4EE3\u308F\u308A\u306B child_count\uFF09\u3067\u3059\u3002\u672C\u6587\u306F twp wiki get \u3067\u8AAD\u3081\u307E\u3059\u3002
27
27
 
28
28
  `+LIST_PAGING_HELP,flags:[...LIST_FLAGS,{name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30B3\u30FC\u30C9\u304B ID\u3002\u7701\u7565\u6642\u306F\u65E2\u5B9A\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"},{name:"--parent",summary:`\u89AA\u30DA\u30FC\u30B8\u306E ID\uFF08\u76F4\u4E0B\u306E\u5B50\u3060\u3051\u3092\u51FA\u3059\uFF09\u3002${ROOT_PARENT} \u3067\u6700\u4E0A\u4F4D`,takesValue:true,placeholder:"<\u30DA\u30FC\u30B8ID>|root"},
29
29
  {name:"--status",summary:`\u72B6\u614B\u3067\u7D5E\u308A\u8FBC\u3080\uFF08${WIKI_STATUSES.join(" / ")}\uFF09`,takesValue:true,placeholder:"<\u72B6\u614B>"},{name:"--tag",summary:"\u30BF\u30B0\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u30BF\u30B0>"},{name:"--keyword",summary:"\u30AD\u30FC\u30EF\u30FC\u30C9\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u8A9E>"}],paging:wikiPaging,async prepare(input,ctx){noArgs(input,"twp wiki list");parentRef(input);oneOf(input,
30
- "--status",WIKI_STATUSES);pageLimit(input);return withResolved(input,{project:await ctx.projectId(input.flags.get("--project"))})},plan(input){return parentRef(input)!==void 0?{method:"GET",path:`${WIKI_PATH}/tree`,query:{project_id:requireResolved(input,"project")}}:{method:"GET",path:WIKI_PATH,query:wikiListQuery(input)}},narrow(body,input){const parent=parentRef(input);if(parent===void 0)return body;return{result:true,items:childrenOf(body,parent),has_more:false,next_cursor:null}},summarize:body=>{
31
- const rows=envelopeRows(body,wikiPaging,`${WIKI_LABEL}\u4E00\u89A7`);const columns=rows.some(row=>isRecord(row)&&"child_count"in row)?WIKI_CHILD_COLUMNS:WIKI_LIST_COLUMNS;return rows.map(row=>pick(row,columns))},raw:body=>envelopeRows(body,wikiPaging,`${WIKI_LABEL}\u4E00\u89A7`)};function wikiDocument(body){const page=record(body,"page",WIKI_LABEL);return composeDocument(page["title"],[...metaLine("\u72B6\u614B",page["status"]),...metaLine("\u5F62\u5F0F",page["content_format"]),...metaLine("\u30BF\u30B0",
32
- page["tags"]),...metaLine("\u89AA\u30DA\u30FC\u30B8",page["parent_page_id"]),...metaLine("\u7248",page["version"]),...metaLine("\u66F4\u65B0",page["updated_at"]),...metaLine("\u66F4\u65B0\u8005",page["updated_by_name"]),...metaLine("ID",page["id"])],[{body:wikiContentToText(page["content"],page["content_format"])}])}var wikiGet={name:"get",summary:`${WIKI_LABEL}1\u4EF6\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08--output text \u3067\u672C\u6587\u3092\u8AAD\u3080\uFF09`,usage:"twp wiki g\
33
- et <\u30DA\u30FC\u30B8ID>",description:`${TEXT_OUTPUT_HELP}
30
+ "--status",WIKI_STATUSES);pageLimit(input);return withResolved(input,{project:await ctx.projectId(input.flags.get("--project"))})},plan(input){return parentRef(input)!==void 0?{method:"GET",path:`${WIKI_PATH}/tree`,query:wikiTreeQuery(input)}:{method:"GET",path:WIKI_PATH,query:wikiListQuery(input)}},narrow(body,input){const parent=parentRef(input);if(parent===void 0)return body;return{result:true,items:childrenOf(body,parent),has_more:false,next_cursor:null}},summarize:body=>{const rows=envelopeRows(
31
+ body,wikiPaging,`${WIKI_LABEL}\u4E00\u89A7`);const columns=rows.some(row=>isRecord(row)&&"child_count"in row)?WIKI_CHILD_COLUMNS:WIKI_LIST_COLUMNS;return rows.map(row=>pick(row,columns))},raw:body=>envelopeRows(body,wikiPaging,`${WIKI_LABEL}\u4E00\u89A7`).map(row=>isRecord(row)?withoutContent(row):row)};function wikiTreeQuery(input){return{project_id:requireResolved(input,"project"),fields:WIKI_SUMMARY_FIELDS}}function wikiDocument(body){const page=record(body,"page",WIKI_LABEL);return composeDocument(
32
+ page["title"],[...metaLine("\u72B6\u614B",page["status"]),...metaLine("\u5F62\u5F0F",page["content_format"]),...metaLine("\u30BF\u30B0",page["tags"]),...metaLine("\u89AA\u30DA\u30FC\u30B8",page["parent_page_id"]),...metaLine("\u7248",page["version"]),...metaLine("\u66F4\u65B0",page["updated_at"]),...metaLine("\u66F4\u65B0\u8005",page["updated_by_name"]),...metaLine("ID",page["id"])],[{body:wikiContentToText(page["content"],page["content_format"])}])}function isWikiPages(body){return isRecord(body)&&
33
+ Array.isArray(body["pages"])}function wikiGetIds(input){const ids=input.args.map(raw=>raw.trim());if(ids.length===0||ids.every(id=>id===""))throw new UsageError("\u30DA\u30FC\u30B8\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044","twp wiki get help");for(const id of ids){if(!isSafePathSegment(id))throw new UsageError(`\u30DA\u30FC\u30B8\u306E ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${id===""?"(\u7A7A)":id}`,"\u30DA\u30FC\u30B8\u306E ID \u306F twp wiki list \u306E id \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002")}
34
+ return ids}function wikiPagePlan(id){return{method:"GET",path:`${WIKI_PATH}/${encodeURIComponent(id)}`}}function isPageFailure(err){return err instanceof ApiError&&err.status!==401&&err.status!==429}async function wikiGetMany(input,ctx){const ids=wikiGetIds(input);if(ids.length===1)return ctx.send(wikiPagePlan(ids[0]));const pages=[];const failed=[];for(const id of ids){let body;try{body=await ctx.send(wikiPagePlan(id))}catch(err){if(!isPageFailure(err))throw err;failed.push({target:id,error:err});
35
+ continue}pages.push(record(body,"page",WIKI_LABEL))}const result={result:true,pages,failed};return result}var wikiGet={name:"get",summary:`${WIKI_LABEL}\u306E\u8A73\u7D30\u3092\u8868\u793A\u3059\u308B\uFF08ID \u3092\u4E26\u3079\u308B\u3068\u8907\u6570\u30DA\u30FC\u30B8\u30FB--output text \u3067\u672C\u6587\u3092\u8AAD\u3080\uFF09`,usage:"twp wiki get <\u30DA\u30FC\u30B8ID> [<\u30DA\u30FC\u30B8ID> ...]",description:`${TEXT_OUTPUT_HELP}
34
36
 
35
37
  --output table / tsv \u306F\u8981\u7D04\u5217\uFF08${WIKI_GET_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002
36
- \u4ED6\u4EBA\u306E\u4E0B\u66F8\u304D\uFF08\u3068\u3001\u4ED6\u4EBA\u306E\u4E0B\u66F8\u304D\u306E\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u914D\u4E0B\u306E\u30DA\u30FC\u30B8\uFF09\u306F\u300C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u300D\u306B\u306A\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306E\u5224\u5B9A\uFF09\u3002`,flags:[],plan:input=>({method:"GET",path:`${WIKI_PATH}/${encodeURIComponent(singleId(input,"twp wiki get","\u30DA\u30FC\u30B8","twp wiki list"))}`}),summarize:body=>pick(record(body,
37
- "page",WIKI_LABEL),WIKI_GET_COLUMNS),raw:body=>record(body,"page",WIKI_LABEL),document:wikiDocument};var WIKI_VERSIONS_MAX=100;var WIKI_TAGS_MAX=50;var WIKI_TREE_COLUMNS=["depth","id","title","status","child_count","parent_page_id","updated_at"];var WIKI_VERSION_COLUMNS=["version","title","content_format","changed_by_name","changed_at"];var WIKI_BACKLINK_COLUMNS=["id","title","status","link_context","updated_at","updated_by_name"];var WIKI_LINKED_TASK_COLUMNS=["key","subject","status_id","task_i\
38
- d","project_id","created_by_name","created_at"];function pageIdAndRest(input,usage){const[raw,...rest]=input.args;const id=raw?.trim()??"";if(id==="")throw new UsageError("\u30DA\u30FC\u30B8\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);if(!isSafePathSegment(id))throw new UsageError(`\u30DA\u30FC\u30B8\u306E ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${id}`,"\u30DA\u30FC\u30B8\u306E ID \u306F twp wiki list / twp wiki tree \u306E id \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002");
38
+ \u4ED6\u4EBA\u306E\u4E0B\u66F8\u304D\uFF08\u3068\u3001\u4ED6\u4EBA\u306E\u4E0B\u66F8\u304D\u306E\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u914D\u4E0B\u306E\u30DA\u30FC\u30B8\uFF09\u306F\u300C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u300D\u306B\u306A\u308A\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306E\u5224\u5B9A\uFF09\u3002
39
+
40
+ ID \u3092\u8907\u6570\u4E26\u3079\u308B\u30681\u4EF6\u305A\u3064\u53D6\u5F97\u3057\u307E\u3059\u3002--output json \u306F\u30DA\u30FC\u30B8\u306E\u914D\u5217\u3001--output text \u306F\u30DA\u30FC\u30B8\u3054\u3068\u306B
41
+ \u300C=== <n>/<\u4EF6\u6570> <\u4EF6\u540D>\uFF08ID: <ID>\uFF09 ===\u300D\u306E\u533A\u5207\u308A\u884C\u3092\u631F\u3093\u3067\u51FA\u3057\u307E\u3059\u3002
42
+ \u898B\u3064\u304B\u3089\u306A\u3044\u30FB\u6A29\u9650\u304C\u7121\u3044\u30DA\u30FC\u30B8\u304C\u3042\u3063\u3066\u3082\u4ED6\u306E\u30DA\u30FC\u30B8\u306F\u51FA\u3057\u3001\u53D6\u308C\u306A\u304B\u3063\u305F ID \u3068\u7406\u7531\u3092 stderr \u306B\u51FA\u3057\u3066
43
+ \u7D42\u4E86\u30B3\u30FC\u30C9 3\uFF08\u30B5\u30FC\u30D0\u306E 5xx \u304C\u6DF7\u3058\u308C\u3070 4\uFF09\u3067\u7D42\u308F\u308A\u307E\u3059\u3002401\u30FB429 \u306E\u3068\u304D\u306F\u9014\u4E2D\u3067\u6B62\u3081\u3066\u4F55\u3082\u51FA\u3057\u307E\u305B\u3093\u3002
44
+
45
+ \u4F8B:
46
+ twp wiki get <ID1> <ID2> <ID3> --output text`,flags:[],plan:input=>wikiPagePlan(wikiGetIds(input)[0]),plannedNotes:input=>{const ids=wikiGetIds(input);return ids.length>1?[`\u3053\u306E\u3042\u3068\u3001\u6B8B\u308A\u306E ${ids.length-1} \u4EF6\u3082 GET ${WIKI_PATH}/<\u30DA\u30FC\u30B8ID> \u30671\u4EF6\u305A\u3064\u53D6\u5F97\u3057\u307E\u3059\u3002`]:[]},execute:wikiGetMany,summarize:body=>isWikiPages(body)?body.pages.map(page=>pick(page,WIKI_GET_COLUMNS)):pick(record(body,"page",WIKI_LABEL),
47
+ WIKI_GET_COLUMNS),raw:body=>isWikiPages(body)?body.pages:record(body,"page",WIKI_LABEL),document:body=>{if(!isWikiPages(body))return wikiDocument(body);const total=body.pages.length;return body.pages.map((page,index)=>{const title=typeof page["title"]==="string"&&page["title"].trim()!==""?oneLine(page["title"]):"(\u7121\u984C)";return`=== ${index+1}/${total} ${title}\uFF08ID: ${String(page["id"]??"")}\uFF09 ===
48
+
49
+ ${wikiDocument({result:true,page})}`}).join("\n")},failures:body=>isWikiPages(body)?body.failed:[]};var WIKI_VERSIONS_MAX=100;var WIKI_TAGS_MAX=50;var WIKI_TREE_COLUMNS=["depth","id","title","status","child_count","parent_page_id","updated_at"];var WIKI_VERSION_COLUMNS=["version","title","content_format","changed_by_name","changed_at"];var WIKI_BACKLINK_COLUMNS=["id","title","status","link_context","updated_at","updated_by_name"];var WIKI_LINKED_TASK_COLUMNS=["key","subject","status_id","task_id",
50
+ "project_id","created_by_name","created_at"];function pageIdAndRest(input,usage){const[raw,...rest]=input.args;const id=raw?.trim()??"";if(id==="")throw new UsageError("\u30DA\u30FC\u30B8\u306E ID \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",usage);if(!isSafePathSegment(id))throw new UsageError(`\u30DA\u30FC\u30B8\u306E ID \u3068\u3057\u3066\u4F7F\u3048\u306A\u3044\u5024\u3067\u3059: ${id}`,"\u30DA\u30FC\u30B8\u306E ID \u306F twp wiki list / twp wiki tree \u306E id \u5217\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002");
39
51
  return{id,rest}}function versionNumber(raw,usage){const value=raw.trim();const n=/^\d+$/.test(value)?Number(value):Number.NaN;if(!Number.isSafeInteger(n)||n<1)throw new UsageError(`\u7248\u306F 1 \u4EE5\u4E0A\u306E\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${raw}`,usage);return n}function arrayField(body,key,label){const rows=isRecord(body)&&body["result"]===true?body[key]:void 0;if(!Array.isArray(rows))throw new ApiResponseError(`${label}\u306E\u5FDC\u7B54\u306B ${key} \
40
52
  \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`);return rows}function flattenTree(body){const tree=arrayField(body,"tree",`${WIKI_LABEL}\u306E\u30C4\u30EA\u30FC`);const out=[];const stack=[...tree].reverse().map(node=>({node,depth:0}));while(stack.length>0){const{node,depth}=stack.pop();if(!isRecord(node))continue;const children=Array.isArray(node["children"])?node["children"]:[];const page={...node,depth,child_count:children.
41
53
  length};delete page["children"];delete page["content"];out.push(page);for(let i=children.length-1;i>=0;i--)stack.push({node:children[i],depth:depth+1})}return out}function treeDocument(body){const rows=flattenTree(body);if(rows.length===0)return"\uFF08wiki \u30DA\u30FC\u30B8\u306F\u3042\u308A\u307E\u305B\u3093\uFF09\n";return`${rows.map(row=>{const title=typeof row["title"]==="string"&&row["title"].trim()!==""?oneLine(row["title"]):"(\u7121\u984C)";const children=typeof row["child_count"]==="num\
42
54
  ber"&&row["child_count"]>0?`\u30FB\u5B50 ${row["child_count"]}`:"";return`${" ".repeat(Number(row["depth"])||0)}- ${title} [${String(row["status"]??"?")}${children}] ${String(row["id"])}`}).join("\n")}
43
55
  `}var projectFlag={name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF08\u30B3\u30FC\u30C9\u304B ID\u3002\u7701\u7565\u6642\u306F\u65E2\u5B9A\u306E\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\uFF09",takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>"};var wikiTree={name:"tree",summary:`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E${WIKI_LABEL}\u306E\u89AA\u5B50\u69CB\u9020\u3092\u51FA\u3059\uFF08\u672C\u6587\u306F\u51FA\u3055\u306A\u3044\uFF09`,usage:"twp wiki tree [--project <\u30B3\u30FC\u30C9|ID>]",
44
56
  description:`\u5168\u30DA\u30FC\u30B8\u3092\u89AA\u5B50\u306E\u9806\uFF08\u753B\u9762\u306E\u4E26\u3073\uFF09\u30671\u884C\u305A\u3064\u51FA\u3057\u307E\u3059\u3002--output text \u306F\u5B57\u4E0B\u3052\u3057\u305F\u6728\u3001table / tsv \u306F\u8981\u7D04\u5217\uFF08${WIKI_TREE_COLUMNS.join(" / ")}\uFF09\u3067\u3059\u3002
45
- **\u672C\u6587\u306F\u3069\u306E\u51FA\u529B\u5F62\u5F0F\u3067\u3082\u51FA\u3057\u307E\u305B\u3093**\uFF08--output json \u3082\u3001\u5404\u30DA\u30FC\u30B8\u304B\u3089 content \u3068 children \u3092\u5916\u3057 depth / child_count \u3092\u8DB3\u3057\u305F\u5E73\u3089\u306A\u914D\u5217\u3067\u3059\uFF09\u3002\u672C\u6587\u306F twp wiki get \u3067\u8AAD\u3081\u307E\u3059\u3002
46
- \u4E0B\u66F8\u304D\u306F\u4F5C\u6210\u8005\u3068 wiki \u306E\u7BA1\u7406\u8005\u306B\u3057\u304B\u898B\u3048\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u306E\u5224\u5B9A\uFF09\u3002`,flags:[projectFlag],async prepare(input,ctx){noArgs(input,"twp wiki tree");return withResolved(input,{project:await ctx.projectId(input.flags.get("--project"))})},plan:input=>({method:"GET",path:`${WIKI_PATH}/tree`,query:{project_id:requireResolved(input,"project")}}),summarize:body=>flattenTree(body).map(row=>pick(row,
47
- WIKI_TREE_COLUMNS)),raw:flattenTree,document:treeDocument};var wikiTagList={name:"tags",summary:`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E${WIKI_LABEL}\u306B\u4ED8\u3044\u3066\u3044\u308B\u30BF\u30B0\u3092\u51FA\u3059`,usage:"twp wiki tags [--project <\u30B3\u30FC\u30C9|ID>]",description:"\u516C\u958B\uFF08published\uFF09\u306E\u30DA\u30FC\u30B8\u306B\u4ED8\u3044\u305F\u30BF\u30B0\u3092\u3001\u4ED8\u3044\u3066\u3044\u308B\u30DA\u30FC\u30B8\u306E\u591A\u3044\u9806\u306B\u6700\u592750\u4EF6\u51FA\u3057\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306E\u4ED5\u69D8\u3002\u4EF6\u6570\u306F\u8FD4\u308A\u307E\u305B\u3093\uFF09\u3002\n\u4E0B\u66F8\u304D\u306B\u3060\u3051\u4ED8\u3044\u305F\u30BF\u30B0\u306F\u51FA\u307E\u305B\u3093\u3002\u30BF\u30B0\u3067\u30DA\u30FC\u30B8\u3092\u7D5E\u308B\u306A\u3089 twp wiki list --tag <\u30BF\u30B0> \u3067\u3059\u3002",
57
+ **\u672C\u6587\u306F\u3069\u306E\u51FA\u529B\u5F62\u5F0F\u3067\u3082\u51FA\u3057\u307E\u305B\u3093**\uFF08--output json \u3082\u3001\u5404\u30DA\u30FC\u30B8\u304B\u3089 content \u3068 children \u3092\u5916\u3057 depth / child_count \u3092\u8DB3\u3057\u305F\u5E73\u3089\u306A\u914D\u5217\u3067\u3059\u3002\u30B5\u30FC\u30D0\u304C\u5BFE\u5FDC\u3057\u3066\u3044\u308C\u3070\u5192\u982D\u306E\u8981\u7D04 summary\uFF08\u5E73\u6587\u3067\u5148\u982D200\u6587\u5B57\uFF09\u3068\u672C\u6587\u306E\u6587\u5B57\u6570 content_length \u304C\u5165\u308A\u307E\u3059\uFF09\u3002\u672C\u6587\u306F twp wiki get \u3067\u8AAD\u3081\u307E\u3059\u3002
58
+ \u4E0B\u66F8\u304D\u306F\u4F5C\u6210\u8005\u3068 wiki \u306E\u7BA1\u7406\u8005\u306B\u3057\u304B\u898B\u3048\u307E\u305B\u3093\uFF08\u30B5\u30FC\u30D0\u306E\u5224\u5B9A\uFF09\u3002`,flags:[projectFlag],async prepare(input,ctx){noArgs(input,"twp wiki tree");return withResolved(input,{project:await ctx.projectId(input.flags.get("--project"))})},plan:input=>({method:"GET",path:`${WIKI_PATH}/tree`,query:wikiTreeQuery(input)}),summarize:body=>flattenTree(body).map(row=>pick(row,WIKI_TREE_COLUMNS)),raw:flattenTree,
59
+ document:treeDocument};var wikiTagList={name:"tags",summary:`\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E${WIKI_LABEL}\u306B\u4ED8\u3044\u3066\u3044\u308B\u30BF\u30B0\u3092\u51FA\u3059`,usage:"twp wiki tags [--project <\u30B3\u30FC\u30C9|ID>]",description:"\u516C\u958B\uFF08published\uFF09\u306E\u30DA\u30FC\u30B8\u306B\u4ED8\u3044\u305F\u30BF\u30B0\u3092\u3001\u4ED8\u3044\u3066\u3044\u308B\u30DA\u30FC\u30B8\u306E\u591A\u3044\u9806\u306B\u6700\u592750\u4EF6\u51FA\u3057\u307E\u3059\uFF08\u30B5\u30FC\u30D0\u306E\u4ED5\u69D8\u3002\u4EF6\u6570\u306F\u8FD4\u308A\u307E\u305B\u3093\uFF09\u3002\n\u4E0B\u66F8\u304D\u306B\u3060\u3051\u4ED8\u3044\u305F\u30BF\u30B0\u306F\u51FA\u307E\u305B\u3093\u3002\u30BF\u30B0\u3067\u30DA\u30FC\u30B8\u3092\u7D5E\u308B\u306A\u3089 twp wiki list --tag <\u30BF\u30B0> \u3067\u3059\u3002",
48
60
  flags:[projectFlag],async prepare(input,ctx){noArgs(input,"twp wiki tags");return withResolved(input,{project:await ctx.projectId(input.flags.get("--project"))})},plan:input=>({method:"GET",path:`${WIKI_PATH}/tags`,query:{project_id:requireResolved(input,"project")}}),summarize:body=>arrayField(body,"tags",`${WIKI_LABEL}\u306E\u30BF\u30B0`).map(tag=>({tag})),raw:body=>arrayField(body,"tags",`${WIKI_LABEL}\u306E\u30BF\u30B0`),notes:body=>arrayField(body,"tags",`${WIKI_LABEL}\u306E\u30BF\u30B0`).length>=
49
61
  WIKI_TAGS_MAX?[`\u30B5\u30FC\u30D0\u304C\u8FD4\u3059\u30BF\u30B0\u306E\u4E0A\u9650\uFF08${WIKI_TAGS_MAX}\u4EF6\uFF09\u306B\u9054\u3057\u307E\u3057\u305F\u3002\u3053\u308C\u3088\u308A\u5C11\u306A\u3044\u30DA\u30FC\u30B8\u306B\u3060\u3051\u4ED8\u3044\u305F\u30BF\u30B0\u306F\u51FA\u3066\u3044\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002`]:[]};var WIKI_VERSIONS_USAGE="twp wiki versions <\u30DA\u30FC\u30B8ID> [--limit <\u4EF6\u6570>]";function versionsLimit(input){const limit=positiveInteger(
50
62
  input.flags,"--limit");if(limit!==void 0&&limit>WIKI_VERSIONS_MAX){throw new UsageError(`--limit \u306F 1\u301C${WIKI_VERSIONS_MAX} \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: ${limit}`,`\u30B5\u30FC\u30D0\u304C\u8FD4\u3059\u7248\u306E\u5C65\u6B74\u306F\u65B0\u3057\u3044\u9806\u306B\u6700\u5927${WIKI_VERSIONS_MAX}\u4EF6\u3067\u3059\u3002`)}return limit}var wikiVersions={name:"versions",summary:`${WIKI_LABEL}\u306E\u7248\u306E\u5C65\u6B74\u3092\u65B0\u3057\u3044\u9806\u306B\u51FA\u3059`,
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{checkOutTarget}from"./chunk-JIGA6KKU.js";import"./chunk-S7IEZSPJ.js";import"./chunk-Q3B65OFC.js";import"./chunk-GFLGXGWE.js";import"./chunk-YXVN6OCH.js";import"./chunk-UFGJSWKU.js";import{contentTypeFor,inspectLocalFile}from"./chunk-I4TR55UF.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import"./chunk-GY7KI5E5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,
3
+ import{checkOutTarget}from"./chunk-LUBON4AA.js";import"./chunk-YUS4VPNA.js";import"./chunk-Q3B65OFC.js";import"./chunk-GFLGXGWE.js";import"./chunk-YXVN6OCH.js";import"./chunk-UFGJSWKU.js";import{contentTypeFor,inspectLocalFile}from"./chunk-I4TR55UF.js";import{checkUploadQuota}from"./chunk-V64CGX7V.js";import{parseWaitOptions,waitUntilTerminal}from"./chunk-WVCEKC7V.js";import"./chunk-GY7KI5E5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,
4
4
  nonEmpty,positiveInteger,readEnvelopeCursor,shellQuote}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{readBody}from"./chunk-6LSQCOCJ.js";import"./chunk-HNG6MF26.js";import{collapsesInUrlPath,isSafePathSegment}from"./chunk-HVZUXLQ4.js";import{ApiError}from"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,singleRef,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{
5
5
  acknowledgement,isRecord,pick}from"./chunk-3ZRMMBP5.js";import{ApiRejectedError,ApiResponseError,NetworkError,UsageError,WaitTimeoutError}from"./chunk-VFPY2A23.js";import"./chunk-PECIBNFD.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-KDH3KWPO.js";import"./chunk-QQRJLH6B.js";import"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import"./chunk-NHYMHCAT.js";
6
6
  import"./chunk-VSJBJXZO.js";import crypto2 from"crypto";import fs2 from"fs";import path from"path";var SCOPE_PERSONAL="personal";var SCOPE_PROJECT="project";var UUID=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;var FORBIDDEN_NAME=/[/\\:*?"<>|]/;var NAME_MAX=255;var ROW_COLUMNS=["id","path","name","file_count","subfolder_count","parent_id","updated_at"];var TRASH_COLUMNS=["id","path","name","file_count","subfolder_count","parent_id","deleted_at"];function folderRows(raw){return raw.map(row=>{const id=row["id"];const name=row["name"];const parentId=row["parent_id"];if(typeof id!==
@@ -1,4 +1,4 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{NO_PLAN_SESSION,PLAN_DIR_ENV,PLAN_TOKEN_ENV,checkPlan,fileSkillNames,formatCheck,openPlanSession,runPlanSubmit}from"./chunk-P6M2MCZJ.js";import"./chunk-6PAZUW73.js";import"./chunk-DXUFECE7.js";import"./chunk-SPZ3GBYC.js";import"./chunk-LJVAOWZI.js";import"./chunk-G4TZFGNN.js";import"./chunk-FABDZBDZ.js";import"./chunk-6CS5L24D.js";import"./chunk-N2UVRM3Z.js";import"./chunk-GY7KI5E5.js";import"./chunk-II5RVJQN.js";import"./chunk-PMOUHEJQ.js";
3
+ import{NO_PLAN_SESSION,PLAN_DIR_ENV,PLAN_TOKEN_ENV,checkPlan,fileSkillNames,formatCheck,openPlanSession,runPlanSubmit}from"./chunk-JA7HEJOU.js";import"./chunk-MAAICW7T.js";import"./chunk-DXUFECE7.js";import"./chunk-5KAWCLYN.js";import"./chunk-LJVAOWZI.js";import"./chunk-G4TZFGNN.js";import"./chunk-FABDZBDZ.js";import"./chunk-6CS5L24D.js";import"./chunk-N2UVRM3Z.js";import"./chunk-GY7KI5E5.js";import"./chunk-II5RVJQN.js";import"./chunk-PMOUHEJQ.js";
4
4
  import"./chunk-J7QYPKVK.js";import"./chunk-5WGOHFAS.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{NO_PLAN_SESSION,PLAN_DIR_ENV,PLAN_TOKEN_ENV,checkPlan,fileSkillNames,formatCheck,openPlanSession,runPlanSubmit};
@@ -1,3 +1,3 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{loadDomain}from"./chunk-S7IEZSPJ.js";import"./chunk-VSJBJXZO.js";export{loadDomain};
3
+ import{loadDomain}from"./chunk-YUS4VPNA.js";import"./chunk-VSJBJXZO.js";export{loadDomain};
@@ -1,4 +1,4 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{CURATED_PAGING_VOCABULARY,buildPrepareContext,checkOutTarget,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain}from"./chunk-JIGA6KKU.js";import"./chunk-S7IEZSPJ.js";import"./chunk-Q3B65OFC.js";import"./chunk-GFLGXGWE.js";import"./chunk-YXVN6OCH.js";import"./chunk-UFGJSWKU.js";import"./chunk-MI6HVYR2.js";import"./chunk-RX5HWI4L.js";import"./chunk-HNG6MF26.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";
3
+ import{CURATED_PAGING_VOCABULARY,buildPrepareContext,checkOutTarget,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain}from"./chunk-LUBON4AA.js";import"./chunk-YUS4VPNA.js";import"./chunk-Q3B65OFC.js";import"./chunk-GFLGXGWE.js";import"./chunk-YXVN6OCH.js";import"./chunk-UFGJSWKU.js";import"./chunk-MI6HVYR2.js";import"./chunk-RX5HWI4L.js";import"./chunk-HNG6MF26.js";import"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";
4
4
  import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import"./chunk-3ZRMMBP5.js";import"./chunk-VFPY2A23.js";import"./chunk-PECIBNFD.js";import"./chunk-XNLIEUAW.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";import"./chunk-RZVI6PMW.js";import"./chunk-KDH3KWPO.js";import"./chunk-QQRJLH6B.js";import"./chunk-74BPZOKU.js";import"./chunk-UREA4ZIG.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{CURATED_PAGING_VOCABULARY,buildPrepareContext,checkOutTarget,exitCodeFor,fetchAllPages,outputValue,reportError,requiresYes,resolvePaging,runDomain};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{ScheduleApi,collectDue,gateStatus,nowInZone,parseCounts,parseTs}from"./chunk-W2AIT5FJ.js";import"./chunk-SPZ3GBYC.js";import"./chunk-6CS5L24D.js";import"./chunk-GY7KI5E5.js";import"./chunk-J7QYPKVK.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";async function runScheduleCommand(deps,opts){const out=deps.out??(t=>void process.stdout.write(stripTerminalControls(t)));const err=deps.err??(t=>void process.stderr.write(stripTerminalControls(t)));const schedules=new ScheduleApi(deps.api);let now;if(opts.now){const parsed=parseTs(opts.now);if(!parsed){err(`--now \u306E\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059: ${opts.now}\uFF08\u4F8B 2026-08-18T15:30\uFF09
3
+ import{ScheduleApi,collectDue,gateStatus,nowInZone,parseCounts,parseTs}from"./chunk-OREF2S43.js";import"./chunk-5KAWCLYN.js";import"./chunk-6CS5L24D.js";import"./chunk-GY7KI5E5.js";import"./chunk-J7QYPKVK.js";import{stripTerminalControls}from"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";async function runScheduleCommand(deps,opts){const out=deps.out??(t=>void process.stdout.write(stripTerminalControls(t)));const err=deps.err??(t=>void process.stderr.write(stripTerminalControls(t)));const schedules=new ScheduleApi(deps.api);let now;if(opts.now){const parsed=parseTs(opts.now);if(!parsed){err(`--now \u306E\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059: ${opts.now}\uFF08\u4F8B 2026-08-18T15:30\uFF09
4
4
  `);return 2}now=parsed}else{now=nowInZone(deps.config.scheduleTimezone,m=>err(`${m}
5
5
  `))}const defs=await schedules.definitions();if(defs.kind==="error"){err(`\u26D4 ${defs.message}
6
6
  `);if(opts.gate!==void 0){err("\u5B9A\u7FA9\u304C\u53D6\u308C\u306A\u3044\u305F\u3081\u30B2\u30FC\u30C8\u306F\u8A31\u53EF\u6271\u3044\u306B\u3057\u307E\u3059\n");return 0}return 4}if(opts.gate!==void 0){const{allowed,reason}=gateStatus(opts.gate,now,defs.config.gates);if(allowed)return 0;out(`${reason}
@@ -0,0 +1,29 @@
1
+ import { createRequire as __twpCreateRequire } from 'node:module';
2
+ const require = __twpCreateRequire(import.meta.url);
3
+ import{nonEmpty,positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import"./chunk-HNG6MF26.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import{requireResolved,withResolved}from"./chunk-PS5QFKHB.js";import"./chunk-II5RVJQN.js";import{isRecord}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";
4
+ 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="\u7D71\u5408\u691C\u7D22";var SEARCH_PATH="/api/v2/search/unified";var TYPES_PATH="/api/v2/search/types";var KEYWORD_MAX=200;var LIMIT_MAX=100;var SEARCH_MODE_LABEL={keyword:"\u901A\u5E38\u691C\u7D22",vector:"AI\u691C\u7D22"};var NEXT_COMMAND={task:(ref,row)=>`twp task get ${ref}${text(row["project_id"]).startsWith("private:")?" --project __private__":""}`,project:ref=>`twp project get ${ref}`,wiki:ref=>`twp wiki get ${ref}`,note:ref=>`twp note get ${ref}`,meeting_minutes:ref=>`twp me\
5
+ eting get ${ref}`,support:ref=>`twp support get ${ref}`,user:ref=>`twp user get ${ref}`};function keywordOf(input){if(input.args.length>1){throw new UsageError(`\u691C\u7D22\u3059\u308B\u8A9E\u306F1\u3064\u306E\u5F15\u6570\u3067\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5F15\u6570: ${input.args.join(" / ")}\uFF09`,'\u7A7A\u767D\u3092\u542B\u3080\u8A9E\u306F\u5F15\u7528\u7B26\u3067\u56F2\u307F\u307E\u3059: twp search "\u7D4C\u8CBB \u7CBE\u7B97"')}const keyword=(input.
6
+ args[0]??"").trim();if(keyword===""){throw new UsageError("\u691C\u7D22\u3059\u308B\u8A9E\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",'\u4F8B: twp search "\u7D4C\u8CBB\u7CBE\u7B97" / twp search "\u7D4C\u8CBB\u7CBE\u7B97" --ai')}if([...keyword].length>KEYWORD_MAX){throw new UsageError(`\u691C\u7D22\u3059\u308B\u8A9E\u306F ${String(KEYWORD_MAX)} \u6587\u5B57\u307E\u3067\u3067\u3059\uFF08${String([...keyword].length)} \u6587\u5B57\uFF09`)}return keyword}function typesOf(input){const types=[];
7
+ for(const raw of repeatedValues(input,"--type")){for(const part of raw.split(",")){const type=part.trim();if(type==="")throw new UsageError("--type \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093","\u7A2E\u985E\u306F twp search types \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002");if(!types.includes(type))types.push(type)}}return types}function limitOf(input){const limit=positiveInteger(input.flags,"--limit");if(limit!==void 0&&limit>LIMIT_MAX){throw new UsageError(`-\
8
+ -limit \u306F ${String(LIMIT_MAX)} \u307E\u3067\u3067\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${String(limit)}\uFF09`)}return limit}function tagsOf(input){const tags=[];for(const raw of repeatedValues(input,"--tag")){const tag=raw.trim();if(tag==="")throw new UsageError("--tag \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093");if(!tags.includes(tag))tags.push(tag)}return tags}async function resolveProjects(input,ctx){keywordOf(input);typesOf(input);limitOf(input);
9
+ tagsOf(input);const ids=[];for(const raw of repeatedValues(input,"--project")){const id=(await ctx.resolver.project(raw)).id;if(!ids.includes(id))ids.push(id)}return ids.length===0?input:withResolved(input,{projectIds:ids.join(",")})}function searchBody(input){const body={keyword:keywordOf(input)};const types=typesOf(input);if(types.length>0)body["types"]=types;const page=positiveInteger(input.flags,"--cursor");if(page!==void 0)body["page"]=page;const limit=limitOf(input);if(limit!==void 0)body["\
10
+ limit"]=limit;const status=nonEmpty(input.flags,"--status");const category=nonEmpty(input.flags,"--category");const projectIds=repeatedValues(input,"--project").length>0?requireResolved(input,"projectIds").split(","):[];const tags=tagsOf(input);if(status!==void 0||category!==void 0||projectIds.length>0||tags.length>0){body["filters"]={...status!==void 0?{status}:{},...category!==void 0?{category_code:category}:{},...projectIds.length>0?{project_id:projectIds}:{},...tags.length>0?{tags}:{}}}if(input.
11
+ flags.has("--ai"))body["use_vector_search"]=true;return body}function dataOf(body,what){if(!isRecord(body)||body["success"]!==true||!("data"in body)){throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return body["data"]}function searchData(body){const data=dataOf(body,LABEL);if(!isRecord(data)||!Array.isArray(data["results"])){throw new ApiResponseError(
12
+ `${LABEL}\u306E\u5FDC\u7B54\u306B results \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return data}function text(value){return typeof value==="string"?value:""}function refOf(row){const docType=text(row["doc_type"]);if(docType==="task"&&text(row["key"])!=="")return text(row["key"]);if(docType==="project"&&text(row["code"])!=="")return text(row["code"]);return text(row["id"])}function snippetOf(row){const highlights=isRecord(
13
+ row["highlights"])?row["highlights"]:{};for(const key of["search_text","content","description","title","file_name"]){const fragments=highlights[key];if(Array.isArray(fragments)){const joined=fragments.filter(f=>typeof f==="string").join(" \u2026 ");if(joined!=="")return oneLine(joined.replace(/<\/?(?:em|mark)>/g,""))}}return oneLine(text(row["snippet"]))}function oneLine(value){return value.replace(/\s+/g," ").trim()}function nextOf(row,ref){const build=NEXT_COMMAND[text(row["doc_type"])];if(build===
14
+ void 0||ref===""||!isSafePathSegment(ref)||/\s/.test(ref))return"";return build(ref,row)}function summarizeSearch(body){return searchData(body)["results"].map(item=>{const row=isRecord(item)?item:{};const ref=refOf(row);return{doc_type:row["doc_type"]??null,ref,title:row["title"]??null,project_name:row["project_name"]??null,updated_at:row["updated_at"]??null,snippet:snippetOf(row),next:nextOf(row,ref)}})}function searchNotes(body,input){const data=searchData(body);const mode=text(data["search_mo\
15
+ de"]);const notes=[`\u691C\u7D22\u65B9\u5F0F: ${mode===""?"(\u4E0D\u660E)":`${mode}\uFF08${SEARCH_MODE_LABEL[mode]??mode}\uFF09`}`];const skipped=data["total"]===0&&data["total_pages"]===0;if(input.flags.has("--ai")&&mode!=="vector"&&!skipped){notes.push("\u6CE8\u8A18: --ai \u3092\u6307\u5B9A\u3057\u307E\u3057\u305F\u304C\u3001\u30B5\u30FC\u30D0\u306F AI\u691C\u7D22\u3067\u306F\u306A\u304F\u4E0A\u306E\u65B9\u5F0F\u3067\u691C\u7D22\u3057\u307E\u3057\u305F\uFF08AI\u691C\u7D22\u304C\u4F7F\u3048\u306A\u3044\u72B6\u614B\u306E\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\uFF09\u3002")}
16
+ const total=data["total"];const page=data["page"];const totalPages=data["total_pages"];if(typeof total==="number"&&Number.isInteger(page)&&Number.isInteger(totalPages)){notes.push(`\u8A72\u5F53 ${String(total)} \u4EF6\uFF08${String(page)} / ${String(totalPages)} \u30DA\u30FC\u30B8\uFF09`);if(page<totalPages){notes.push(`\u7D9A\u304D\u304C\u3042\u308A\u307E\u3059: ${nextPageLine(input,page+1)}`)}else if(totalPages>0&&page>totalPages){notes.push(`\u30DA\u30FC\u30B8 ${String(page)} \u306F\u7BC4\u56F2\u5916\u3067\u3059\uFF08\u5168 ${String(
17
+ totalPages)} \u30DA\u30FC\u30B8\uFF09\u3002--cursor \u3092 ${String(totalPages)} \u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}}if(typeof total==="number"&&total>0&&data["results"].length===0&&page<=totalPages){notes.push("\u6CE8\u8A18: \u3053\u306E\u30DA\u30FC\u30B8\u306E\u7D50\u679C\u306F\u3001\u95B2\u89A7\u3067\u304D\u306A\u3044\u3082\u306E\u3092\u9664\u3044\u305F\u7D50\u679C0\u4EF6\u306B\u306A\u308A\u307E\u3057\u305F\u3002\u7D9A\u304D\u306E\u30DA\u30FC\u30B8\u306B\u306F\u7D50\u679C\u304C\u3042\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002")}
18
+ return notes}function nextPageLine(input,page){const keyword=input.args[0]??"";const parts=[OPERATION_WORDS.has(keyword)?"twp search query":"twp search"];const dashed=keyword.startsWith("-");if(!dashed)parts.push(shellQuote(keyword));if(input.flags.has("--ai"))parts.push("--ai");for(const type of typesOf(input))parts.push("--type",shellQuote(type));for(const project of repeatedValues(input,"--project"))parts.push("--project",shellQuote(project));for(const tag of tagsOf(input))parts.push("--tag",
19
+ shellQuote(tag));for(const name of["--status","--category","--limit"]){const value=input.flags.get(name);if(value!==void 0)parts.push(name,shellQuote(value))}parts.push("--cursor",String(page));if(dashed)parts.push("--",shellQuote(keyword));return parts.join(" ")}var OPERATION_WORDS=new Set(["query","types","help"]);function typeRows(body){const data=dataOf(body,"\u691C\u7D22\u3067\u304D\u308B\u7A2E\u985E");if(!isRecord(data)){throw new ApiResponseError("\u691C\u7D22\u3067\u304D\u308B\u7A2E\u985E\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}
20
+ return Object.entries(data).map(([docType,spec])=>({doc_type:docType,label:isRecord(spec)?text(spec["label"]):""}))}var queryOperation={name:"query",summary:"TWP \u5185\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u6A2A\u65AD\u3057\u3066\u691C\u7D22\u3059\u308B\uFF08twp search <\u8A9E> \u3068\u540C\u3058\u30FB--ai \u3067 AI\u691C\u7D22\uFF09",usage:"twp search <\u8A9E> [--ai] [--type <\u7A2E\u985E>[,<\u7A2E\u985E>...]] [--project <\u30B3\u30FC\u30C9|ID> ...] [--tag <\u30BF\u30B0> ...] [--status <\u72B6\u614B>] [--category <\u30AB\u30C6\u30B4\u30EA\u30B3\u30FC\u30C9>] [--limit <\u4EF6\u6570>] [--cursor\
21
+ <\u30DA\u30FC\u30B8\u756A\u53F7>]",description:'\u30BF\u30B9\u30AF\u30FBWiki\u30FB\u30CE\u30FC\u30C8\u30FB\u8B70\u4E8B\u9332\u30FBFAQ\u30FB\u30B5\u30DD\u30FC\u30C8\u30FB\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u7B49\u3092\u6A2A\u65AD\u3057\u3066\u691C\u7D22\u3057\u307E\u3059\uFF08\u753B\u9762\u306E\u30CA\u30D3\u30D0\u30FC\u691C\u7D22\u3068\u540C\u3058 API\uFF09\u3002\n`twp search <\u8A9E>` \u306F `twp search query <\u8A9E>` \u3068\u540C\u3058\u3067\u3059\uFF08\u300Ctypes\u300D\u306A\u3069\u64CD\u4F5C\u540D\u3068\u540C\u3058\u8A9E\u3092\u691C\u7D22\u3057\u305F\u3044\u3068\u304D\u306F query \u3092\u4ED8\u3051\u307E\u3059\uFF09\u3002\n\n --ai \u3092\u4ED8\u3051\u308B\u3068 AI\u691C\u7D22\uFF08\u610F\u5473\u306E\u8FD1\u3044\u3082\u306E\u3092\u63A2\u3059\uFF09\u306B\u306A\u308A\u307E\u3059\u3002\u4F7F\u3063\u305F\u65B9\u5F0F\u306F stderr \u306E\u300C\u691C\u7D22\u65B9\u5F0F\u300D\u306B\u51FA\u307E\u3059\u3002\n --type \u306E\u5024\u306F twp search types \u306E doc_type \u3067\u3059\uFF08\u30AB\u30F3\u30DE\u533A\u5207\u308A\u30FB\u8907\u6570\u6307\u5B9A\u53EF\uFF09\u3002\u7701\u7565\u6642\u306F\u898B\u3066\u3088\u3044\u5168\u7A2E\u985E\u304C\u5BFE\u8C61\u3067\u3059\u3002\n --project\uFF08\u30B3\u30FC\u30C9\u30FBID\uFF09\u3068 --tag \u3067\u3001\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30FB\u30BF\u30B0\u5358\u4F4D\u306B\u7D5E\u308A\u8FBC\u3081\u307E\u3059\uFF08\u8907\u6570\u6307\u5B9A\u306F\u3044\u305A\u308C\u304B\u306B\u4E00\u81F4\uFF09\u3002\n \u4F8B: twp search "\u969C\u5BB3\u5BFE\u5FDC" --type wiki --project FMID --tag \u904B\u7528\n \u95B2\u89A7\u6A29\u9650\u306E\u7121\u3044\u7A2E\u985E\u30FB\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306F\u30B5\u30FC\u30D0\u304C\u9664\u304D\u307E\u3059\u3002\n\n--output \
22
+ table / tsv / text \u306F\u8981\u7D04\u5217\uFF08doc_type / ref / title / project_name / updated_at / snippet / next\uFF09\u3067\u3059\u3002\nref \u306F\u30BF\u30B9\u30AF\u306A\u3089\u30AD\u30FC\u30FB\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306A\u3089\u30B3\u30FC\u30C9\u30FB\u305D\u308C\u4EE5\u5916\u306F ID\u3001next \u306F\u8A73\u7D30\u3092\u53D6\u308B\u30B3\u30DE\u30F3\u30C9\u3067\u3059\uFF08\u53D6\u5F97\u30B3\u30DE\u30F3\u30C9\u304C\u3042\u308B\u7A2E\u985E\u3060\u3051\uFF09\u3002\n--output json \u306F\u5FDC\u7B54\u306E data\uFF08results\u30FBtotal\u30FBpage\u30FBtotal_pages\u30FBsearch_mode \u7B49\uFF09\u3092\u305D\u306E\u307E\u307E\u51FA\u3057\u307E\u3059\u3002\n\n\u30DA\u30FC\u30B8: --cursor \u306F\u30DA\u30FC\u30B8\u756A\u53F7\uFF081\u59CB\u307E\u308A\uFF09\u3067\u3059\u3002\u7D9A\u304D\u304C\u3042\u308B\u3068\u304D\u306F\u6B21\u306B\u6253\u3064\u884C\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--all \u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\n\u691C\u7D22\u30B5\u30FC\u30D3\u30B9\u304C\u4E00\u6642\u7684\u306B\u4F7F\u3048\u306A\u3044\u3068\u304D\u306F\u7D42\u4E86\u30B3\u30FC\u30C9 4 \u3067\u5931\u6557\u3057\u307E\u3059\uFF080\u4EF6\u3068\u306F\u533A\u5225\u3055\u308C\u307E\u3059\uFF09\u3002',
23
+ flags:[{name:"--ai",summary:"AI\u691C\u7D22\uFF08\u610F\u5473\u691C\u7D22\uFF09\u306B\u3059\u308B",takesValue:false},{name:"--type",summary:"\u691C\u7D22\u3059\u308B\u7A2E\u985E\uFF08doc_type\u30FB\u30AB\u30F3\u30DE\u533A\u5207\u308A\u30FB\u8907\u6570\u6307\u5B9A\u53EF\uFF09",takesValue:true,placeholder:"<\u7A2E\u985E>",repeatable:true},{name:"--project",summary:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u30B3\u30FC\u30C9\u30FBID\u30FB\u8907\u6570\u6307\u5B9A\u53EF\uFF09",
24
+ takesValue:true,placeholder:"<\u30B3\u30FC\u30C9|ID>",repeatable:true},{name:"--tag",summary:"\u30BF\u30B0\u3067\u7D5E\u308A\u8FBC\u3080\uFF08\u8907\u6570\u6307\u5B9A\u53EF\u30FB\u3044\u305A\u308C\u304B\u306B\u4E00\u81F4\uFF09",takesValue:true,placeholder:"<\u30BF\u30B0>",repeatable:true},{name:"--status",summary:"\u72B6\u614B\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u72B6\u614B>"},{name:"--category",summary:"\u30AB\u30C6\u30B4\u30EA\u30B3\u30FC\u30C9\u3067\u7D5E\u308A\u8FBC\u3080",
25
+ takesValue:true,placeholder:"<\u30AB\u30C6\u30B4\u30EA\u30B3\u30FC\u30C9>"},{name:"--limit",summary:`1\u30DA\u30FC\u30B8\u306E\u4EF6\u6570\uFF08\u65E2\u5B9A 20\u30FB\u6700\u5927 ${String(LIMIT_MAX)}\uFF09`,takesValue:true,placeholder:"<\u4EF6\u6570>"},{name:"--cursor",summary:"\u53D6\u5F97\u3059\u308B\u30DA\u30FC\u30B8\u756A\u53F7\uFF08\u300C\u7D9A\u304D\u304C\u3042\u308A\u307E\u3059\u300D\u306E\u6848\u5185\u306B\u51FA\u308B\u5024\u30FB1\u59CB\u307E\u308A\uFF09",takesValue:true,placeholder:"<\u30DA\u30FC\u30B8\
26
+ \u756A\u53F7>"}],rejected:server=>/types/.test(server)?"\u691C\u7D22\u3067\u304D\u308B\u7A2E\u985E\u306F twp search types \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002":void 0,prepare:resolveProjects,plan:input=>({method:"POST",path:SEARCH_PATH,body:searchBody(input)}),summarize:summarizeSearch,raw:body=>searchData(body),notes:searchNotes};var typesOperation={name:"types",summary:"\u691C\u7D22\u3067\u304D\u308B\u7A2E\u985E\uFF08doc_type \u3068\u30E9\u30D9\u30EB\uFF09\u3092\u4E00\u89A7\u3059\u308B",
27
+ usage:"twp search types",description:"twp search --type \u306B\u6E21\u305B\u308B\u5024\u306E\u4E00\u89A7\u3067\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u306E\u5168\u7A2E\u985E\u3092\u8FD4\u3057\u307E\u3059\uFF08\u95B2\u89A7\u6A29\u9650\u306E\u7121\u3044\u7A2E\u985E\u306F\u691C\u7D22\u3057\u3066\u3082\u7D50\u679C\u304C\u51FA\u307E\u305B\u3093\uFF09\u3002\n--output json \u3082 doc_type \u3068 label \u3060\u3051\u3067\u3059\uFF08\u30B5\u30FC\u30D0\u306E\u5FDC\u7B54\u306B\u542B\u307E\u308C\u308B\u5185\u90E8\u8A2D\u5B9A\u306F\u51FA\u3057\u307E\u305B\u3093\uFF09\u3002",
28
+ flags:[],plan:input=>{if(input.args.length>0){throw new UsageError(`types \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"\u300Ctypes\u300D\u3068\u3044\u3046\u8A9E\u3092\u691C\u7D22\u3059\u308B\u306A\u3089 twp search query types")}return{method:"GET",path:TYPES_PATH}},summarize:typeRows,raw:typeRows};var searchDomain={name:"search",summary:`TWP \u5185\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306E${LABEL}\uFF08\u901A\u5E38\u691C\u7D22\u30FBAI\u691C\u7D22\uFF09`,
29
+ operations:[queryOperation,typesOperation],defaultOperation:"query"};export{searchDomain};
@@ -1,4 +1,4 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{LoopSettingsApplier,PROMPT_KEYS,formatConfigHash,parseServerSettings,renderStepBudget}from"./chunk-X6L5LUC4.js";import"./chunk-SPZ3GBYC.js";import"./chunk-LJVAOWZI.js";import"./chunk-G4TZFGNN.js";import"./chunk-FABDZBDZ.js";import"./chunk-6CS5L24D.js";import"./chunk-N2UVRM3Z.js";import"./chunk-GY7KI5E5.js";import"./chunk-PMOUHEJQ.js";import"./chunk-J7QYPKVK.js";import"./chunk-5WGOHFAS.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";
3
+ import{LoopSettingsApplier,PROMPT_KEYS,formatConfigHash,parseServerSettings,renderStepBudget}from"./chunk-BRE7D5AY.js";import"./chunk-5KAWCLYN.js";import"./chunk-LJVAOWZI.js";import"./chunk-G4TZFGNN.js";import"./chunk-FABDZBDZ.js";import"./chunk-6CS5L24D.js";import"./chunk-N2UVRM3Z.js";import"./chunk-GY7KI5E5.js";import"./chunk-PMOUHEJQ.js";import"./chunk-J7QYPKVK.js";import"./chunk-5WGOHFAS.js";import"./chunk-RZVI6PMW.js";import"./chunk-NHYMHCAT.js";
4
4
  import"./chunk-VSJBJXZO.js";export{LoopSettingsApplier,PROMPT_KEYS,formatConfigHash,parseServerSettings,renderStepBudget};
@@ -1,3 +1,3 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{ServerSkillCatalog,applyArguments,expandServerSkills,formatSkillOrigins,parseSkillBody,parseSkillList,prepareSkillOverlay,referencedSkills,stripFrontmatter}from"./chunk-EDBJQCNC.js";import"./chunk-RRHAX7RK.js";import"./chunk-A4LFG7MW.js";import"./chunk-VRBI2NPI.js";import"./chunk-SPZ3GBYC.js";import"./chunk-GY7KI5E5.js";import"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{ServerSkillCatalog,applyArguments,expandServerSkills,formatSkillOrigins,parseSkillBody,parseSkillList,prepareSkillOverlay,referencedSkills,stripFrontmatter};
3
+ import{ServerSkillCatalog,applyArguments,expandServerSkills,formatSkillOrigins,parseSkillBody,parseSkillList,prepareSkillOverlay,referencedSkills,stripFrontmatter}from"./chunk-DLY2IN3G.js";import"./chunk-RRHAX7RK.js";import"./chunk-A4LFG7MW.js";import"./chunk-VRBI2NPI.js";import"./chunk-5KAWCLYN.js";import"./chunk-GY7KI5E5.js";import"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";export{ServerSkillCatalog,applyArguments,expandServerSkills,formatSkillOrigins,parseSkillBody,parseSkillList,prepareSkillOverlay,referencedSkills,stripFrontmatter};
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __twpCreateRequire } from 'node:module';
2
2
  const require = __twpCreateRequire(import.meta.url);
3
- import{PROJECT_FLAG,TASK_REF_FLAG,TASK_REF_HELP,classifyTaskRef,rejectPrivateSurface,rejectRedundantProject,resolveTaskLocation,taskAttachmentResource,taskSurface,wantsPrivateSurface}from"./chunk-I4TR55UF.js";import"./chunk-V64CGX7V.js";import{RUNNER_PLATFORMS}from"./chunk-SPZ3GBYC.js";import{PRIVATE_PROJECT_REF}from"./chunk-GY7KI5E5.js";import{MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,manhourNotes,manhourQuery,manhourRows}from"./chunk-APPYZQNC.js";import"./chunk-7EJOKJLV.js";
3
+ import{PROJECT_FLAG,TASK_REF_FLAG,TASK_REF_HELP,classifyTaskRef,rejectPrivateSurface,rejectRedundantProject,resolveTaskLocation,taskAttachmentResource,taskSurface,wantsPrivateSurface}from"./chunk-I4TR55UF.js";import"./chunk-V64CGX7V.js";import{RUNNER_PLATFORMS}from"./chunk-5KAWCLYN.js";import{PRIVATE_PROJECT_REF}from"./chunk-GY7KI5E5.js";import{MANHOUR_DESCRIPTION,MANHOUR_FROM_FLAG,MANHOUR_TO_FLAG,manhourNotes,manhourQuery,manhourRows}from"./chunk-APPYZQNC.js";import"./chunk-7EJOKJLV.js";
4
4
  import"./chunk-EXT4AIDF.js";import{createFlags,fieldBody,hasAnyField,updateFlags}from"./chunk-XGYOJHZC.js";import{boundedText,decimal,integerInRange,isoDate,priority}from"./chunk-JJSBBWJ5.js";import{LIST_FLAGS,LIST_PAGING_HELP,envelopePaging,nonEmpty,positiveInteger}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import{charCount,readBody}from"./chunk-6LSQCOCJ.js";import{PRIVATE_TASKS_PATH,TASK_MASTERS}from"./chunk-HNG6MF26.js";
5
5
  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{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";
6
6
  import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LIST_COLUMNS=["id","created_at","created_by_name","comment_type","content"];var QUESTION_COLUMN="question";var ANSWER_COLUMN="answer";function summarizeComments(items){const answersByQuestion=new Map;for(const row of items){const answer=isRecord(row)?row["answer_to"]:void 0;if(!isRecord(answer))continue;const target=answer["comment_id"];if(typeof target!=="string"||target==="")continue;answersByQuestion.set(target,selectedKeyText(answer["selected_key"]))}return items.map(row=>{const source=isRecord(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tocca-systems/twp-cli",
3
- "version": "0.70.0",
3
+ "version": "0.71.0",
4
4
  "description": "TWP CLI — Tocca Working Platform の CLI 型統合インターフェース(AIエージェントハーネス)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,16 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{isPrivateProjectId}from"./chunk-GY7KI5E5.js";import{httpFetch}from"./chunk-J7QYPKVK.js";function describeError(res){if(res.status===null)return`transport_error=${res.transportError??"\u4E0D\u660E"}`;const body=res.json;const parts=[`http=${res.status}`];const reason=typeof body?.["reason"]==="string"?body["reason"]:"";if(reason)parts.push(`reason=${reason}`);const error=body?.["error"];const code=typeof error?.["code"]==="string"?error["code"]:"";if(code)parts.push(`code=${code}`);const message=(typeof body?.["message"]==="string"?body["message"]:"")||(typeof error?.["message"]==="\
4
- string"?error["message"]:"");if(message)parts.push(message.slice(0,160));if(!reason&&!code&&!message)parts.push(`\u5FDC\u7B54\u306E\u5148\u982D: ${res.raw.slice(0,160)}`);return parts.join(" ")}function isPermanent(res){return res.status!==null&&res.status>=400&&res.status<500}var RUNNER_PLATFORMS=["mac","windows","linux"];function normalizeRequiredPlatforms(value){if(!Array.isArray(value))return[];const given=new Set(value.filter(v=>typeof v==="string").map(v=>v.trim().toLowerCase()));return RUNNER_PLATFORMS.
5
- filter(p=>given.has(p))}function filterByStatus(items,status){return items.filter(item=>item.status===void 0||item.status===status)}var AgentLoopApi=class{constructor(opts){this.opts=opts;const root=opts.apiUrl.replace(/\/+$/,"");this.base=isPrivateProjectId(opts.projectId)?`${root}/api/v2/tasks/private/agent-loop`:`${root}/api/v2/projects/${opts.projectId}/agent-loop`}opts;base;get baseUrl(){return this.base}list(query){const qs=new URLSearchParams;for(const[k,v]of Object.entries(query)){if(v!==
6
- void 0&&v!=="")qs.set(k,String(v))}const suffix=qs.toString()?`?${qs.toString()}`:"";return this.request("GET",suffix)}create(body){return this.request("POST","",body)}getItem(itemId){return this.request("GET",`/${encodeURIComponent(itemId)}`)}update(itemId,body,runId){return this.request("PUT",`/${encodeURIComponent(itemId)}`,{...body,run_id:runId})}updateUnowned(itemId,body){return this.request("PUT",`/${encodeURIComponent(itemId)}`,body)}logUploadUrl(itemId,runId){return this.request("POST",`\
7
- /${encodeURIComponent(itemId)}/log-upload-url`,{run_id:runId})}async putPresigned(url,body,contentType){const fetchImpl=this.opts.fetchImpl??httpFetch;const controller=new AbortController;const timer=setTimeout(()=>controller.abort(),this.opts.timeoutMs??6e4);try{const res=await fetchImpl(url,{method:"PUT",headers:{"Content-Type":contentType},signal:controller.signal,body});await res.text().catch(()=>"");return{ok:res.ok,status:res.status,json:null,raw:"",transportError:null}}catch(err){const reason=err.
8
- name==="AbortError"?"timeout":err.message;return{ok:false,status:null,json:null,raw:"",transportError:reason}}finally{clearTimeout(timer)}}reorder(itemIds){return this.request("PUT","/reorder",{item_ids:itemIds})}claim(runnerId,runId){return this.request("POST","/claim",{runner_id:runnerId,run_id:runId})}reclaim(){return this.request("POST","/reclaim",{})}runners(){return this.request("GET","/runners")}registerRunner(payload){return this.request("POST","/runners/register",payload)}capacityReport(payload){
9
- return this.request("POST","/runners/capacity-report",payload)}heartbeatRunner(payload){return this.request("POST","/runners/heartbeat",payload)}deregisterRunner(payload){return this.request("POST","/runners/deregister",payload)}planStart(runnerId,runId){return this.request("POST","/plan/start",{runner_id:runnerId,run_id:runId})}planFinish(runnerId,runId,planStartedAt,result){return this.request("POST","/plan/finish",{runner_id:runnerId,run_id:runId,plan_started_at:planStartedAt,result})}consumeCounter(key,date,limit){
10
- return this.request("POST","/counters/consume",{key,date,limit})}listCounters(date){return this.request("GET",`/counters?date=${encodeURIComponent(date)}`)}async queuedSnapshot(){return this.snapshotOf(["pending","processing"])}async processingSnapshot(){return this.snapshotOf(["processing"])}async pendingSnapshot(){return this.snapshotOf(["pending"])}async completedSince(sinceMicros,maxPages=10){const all=[];let cursor=String(Math.trunc(sinceMicros));for(let page=0;page<maxPages;page++){const res=await this.
11
- list({status:"completed",limit:100,cursor});if(!res.ok)return null;const body=res.json;const items=body?.["items"];if(!Array.isArray(items))return null;all.push(...filterByStatus(items,"completed"));const pagination=body?.["pagination"];const hasMore=(pagination?.["has_more"]??body?.["has_more"])===true;const next=pagination?.["next_cursor"]??body?.["next_cursor"];if(!hasMore||!next)return all;cursor=next}return null}async snapshotOf(statuses){const all=[];for(const status of statuses){let cursor;
12
- for(let page=0;page<20;page++){const res=await this.list({status,limit:100,cursor});if(!res.ok)return null;const body=res.json;const items=body?.["items"];if(!Array.isArray(items))return null;all.push(...filterByStatus(items,status));const pagination=body?.["pagination"];const hasMore=(pagination?.["has_more"]??body?.["has_more"])===true;const next=pagination?.["next_cursor"]??body?.["next_cursor"];if(!hasMore||!next)break;cursor=next;if(page===19)return null}}return all}outcomes(skill,limit=5){
13
- return this.request("GET",`/outcomes?skill=${encodeURIComponent(skill)}&limit=${limit}`)}async request(method,suffix,body){let token;try{token=await this.opts.session.getAccessToken()}catch(err){return{ok:false,status:null,json:null,raw:"",transportError:err.message}}let res=await this.send(method,suffix,token,body);if(res.status===401){try{token=await this.opts.session.refresh(token);res=await this.send(method,suffix,token,body)}catch(err){return{ok:false,status:401,json:null,raw:res.raw,transportError:err.
14
- message}}}return res}async send(method,suffix,token,body){const fetchImpl=this.opts.fetchImpl??httpFetch;const controller=new AbortController;const timer=setTimeout(()=>controller.abort(),this.opts.timeoutMs??6e4);try{const res=await fetchImpl(`${this.base}${suffix}`,{method,headers:{Authorization:`Bearer ${token}`,"Content-Type":"application/json",Accept:"application/json"},signal:controller.signal,...body===void 0?{}:{body:JSON.stringify(body)}});const raw=await res.text();let json=null;if(raw.
15
- trim()!==""){try{json=JSON.parse(raw)}catch{json=null}}return{ok:res.ok,status:res.status,json,raw,transportError:null}}catch(err){const reason=err.name==="AbortError"?"timeout":err.message;return{ok:false,status:null,json:null,raw:"",transportError:reason}}finally{clearTimeout(timer)}}};function pick(json,path){let cur=json;for(const part of path.split(".")){if(cur===null||typeof cur!=="object")return void 0;cur=cur[part]}return cur===null?void 0:cur}function pickString(json,path){const v=pick(
16
- json,path);if(typeof v==="string")return v;if(typeof v==="number")return String(v);if(typeof v==="boolean")return v?"true":"false";return""}export{describeError,isPermanent,RUNNER_PLATFORMS,normalizeRequiredPlatforms,filterByStatus,AgentLoopApi,pick,pickString};
@@ -1,26 +0,0 @@
1
- import { createRequire as __twpCreateRequire } from 'node:module';
2
- const require = __twpCreateRequire(import.meta.url);
3
- import{nonEmpty,positiveInteger,shellQuote}from"./chunk-MI6HVYR2.js";import{repeatedValues}from"./chunk-RX5HWI4L.js";import"./chunk-HNG6MF26.js";import{isSafePathSegment}from"./chunk-HVZUXLQ4.js";import"./chunk-JA5A6UJ2.js";import"./chunk-H4CDX4TX.js";import"./chunk-II5RVJQN.js";import{isRecord}from"./chunk-3ZRMMBP5.js";import{ApiResponseError,UsageError}from"./chunk-VFPY2A23.js";import"./chunk-J7QYPKVK.js";import"./chunk-4VZKNEVN.js";
4
- import"./chunk-RZVI6PMW.js";import"./chunk-QQRJLH6B.js";import"./chunk-NHYMHCAT.js";import"./chunk-VSJBJXZO.js";var LABEL="\u7D71\u5408\u691C\u7D22";var SEARCH_PATH="/api/v2/search/unified";var TYPES_PATH="/api/v2/search/types";var KEYWORD_MAX=200;var LIMIT_MAX=100;var SEARCH_MODE_LABEL={keyword:"\u901A\u5E38\u691C\u7D22",vector:"AI\u691C\u7D22"};var NEXT_COMMAND={task:(ref,row)=>`twp task get ${ref}${text(row["project_id"]).startsWith("private:")?" --project __private__":""}`,project:ref=>`twp project get ${ref}`,wiki:ref=>`twp wiki get ${ref}`,note:ref=>`twp note get ${ref}`,meeting_minutes:ref=>`twp me\
5
- eting get ${ref}`,support:ref=>`twp support get ${ref}`,user:ref=>`twp user get ${ref}`};function keywordOf(input){if(input.args.length>1){throw new UsageError(`\u691C\u7D22\u3059\u308B\u8A9E\u306F1\u3064\u306E\u5F15\u6570\u3067\u6E21\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5F15\u6570: ${input.args.join(" / ")}\uFF09`,'\u7A7A\u767D\u3092\u542B\u3080\u8A9E\u306F\u5F15\u7528\u7B26\u3067\u56F2\u307F\u307E\u3059: twp search "\u7D4C\u8CBB \u7CBE\u7B97"')}const keyword=(input.
6
- args[0]??"").trim();if(keyword===""){throw new UsageError("\u691C\u7D22\u3059\u308B\u8A9E\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",'\u4F8B: twp search "\u7D4C\u8CBB\u7CBE\u7B97" / twp search "\u7D4C\u8CBB\u7CBE\u7B97" --ai')}if([...keyword].length>KEYWORD_MAX){throw new UsageError(`\u691C\u7D22\u3059\u308B\u8A9E\u306F ${String(KEYWORD_MAX)} \u6587\u5B57\u307E\u3067\u3067\u3059\uFF08${String([...keyword].length)} \u6587\u5B57\uFF09`)}return keyword}function typesOf(input){const types=[];
7
- for(const raw of repeatedValues(input,"--type")){for(const part of raw.split(",")){const type=part.trim();if(type==="")throw new UsageError("--type \u306B\u7A7A\u306E\u5024\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093","\u7A2E\u985E\u306F twp search types \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002");if(!types.includes(type))types.push(type)}}return types}function limitOf(input){const limit=positiveInteger(input.flags,"--limit");if(limit!==void 0&&limit>LIMIT_MAX){throw new UsageError(`-\
8
- -limit \u306F ${String(LIMIT_MAX)} \u307E\u3067\u3067\u3059\uFF08\u53D7\u3051\u53D6\u3063\u305F\u5024: ${String(limit)}\uFF09`)}return limit}function searchBody(input){const body={keyword:keywordOf(input)};const types=typesOf(input);if(types.length>0)body["types"]=types;const page=positiveInteger(input.flags,"--cursor");if(page!==void 0)body["page"]=page;const limit=limitOf(input);if(limit!==void 0)body["limit"]=limit;const status=nonEmpty(input.flags,"--status");const category=nonEmpty(input.flags,
9
- "--category");if(status!==void 0||category!==void 0){body["filters"]={...status!==void 0?{status}:{},...category!==void 0?{category_code:category}:{}}}if(input.flags.has("--ai"))body["use_vector_search"]=true;return body}function dataOf(body,what){if(!isRecord(body)||body["success"]!==true||!("data"in body)){throw new ApiResponseError(`${what}\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}
10
- return body["data"]}function searchData(body){const data=dataOf(body,LABEL);if(!isRecord(data)||!Array.isArray(data["results"])){throw new ApiResponseError(`${LABEL}\u306E\u5FDC\u7B54\u306B results \u914D\u5217\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}return data}function text(value){return typeof value==="string"?value:""}function refOf(row){const docType=text(row["doc_type"]);if(docType==="task"&&text(row["key"])!==
11
- "")return text(row["key"]);if(docType==="project"&&text(row["code"])!=="")return text(row["code"]);return text(row["id"])}function snippetOf(row){const highlights=isRecord(row["highlights"])?row["highlights"]:{};for(const key of["search_text","content","description","title","file_name"]){const fragments=highlights[key];if(Array.isArray(fragments)){const joined=fragments.filter(f=>typeof f==="string").join(" \u2026 ");if(joined!=="")return oneLine(joined.replace(/<\/?(?:em|mark)>/g,""))}}return oneLine(
12
- text(row["snippet"]))}function oneLine(value){return value.replace(/\s+/g," ").trim()}function nextOf(row,ref){const build=NEXT_COMMAND[text(row["doc_type"])];if(build===void 0||ref===""||!isSafePathSegment(ref)||/\s/.test(ref))return"";return build(ref,row)}function summarizeSearch(body){return searchData(body)["results"].map(item=>{const row=isRecord(item)?item:{};const ref=refOf(row);return{doc_type:row["doc_type"]??null,ref,title:row["title"]??null,project_name:row["project_name"]??null,updated_at:row["\
13
- updated_at"]??null,snippet:snippetOf(row),next:nextOf(row,ref)}})}function searchNotes(body,input){const data=searchData(body);const mode=text(data["search_mode"]);const notes=[`\u691C\u7D22\u65B9\u5F0F: ${mode===""?"(\u4E0D\u660E)":`${mode}\uFF08${SEARCH_MODE_LABEL[mode]??mode}\uFF09`}`];const skipped=data["total"]===0&&data["total_pages"]===0;if(input.flags.has("--ai")&&mode!=="vector"&&!skipped){notes.push("\u6CE8\u8A18: --ai \u3092\u6307\u5B9A\u3057\u307E\u3057\u305F\u304C\u3001\u30B5\u30FC\u30D0\u306F AI\u691C\u7D22\u3067\u306F\u306A\u304F\u4E0A\u306E\u65B9\u5F0F\u3067\u691C\u7D22\u3057\u307E\u3057\u305F\uFF08AI\u691C\u7D22\u304C\u4F7F\u3048\u306A\u3044\u72B6\u614B\u306E\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\uFF09\u3002")}
14
- const total=data["total"];const page=data["page"];const totalPages=data["total_pages"];if(typeof total==="number"&&Number.isInteger(page)&&Number.isInteger(totalPages)){notes.push(`\u8A72\u5F53 ${String(total)} \u4EF6\uFF08${String(page)} / ${String(totalPages)} \u30DA\u30FC\u30B8\uFF09`);if(page<totalPages){notes.push(`\u7D9A\u304D\u304C\u3042\u308A\u307E\u3059: ${nextPageLine(input,page+1)}`)}else if(totalPages>0&&page>totalPages){notes.push(`\u30DA\u30FC\u30B8 ${String(page)} \u306F\u7BC4\u56F2\u5916\u3067\u3059\uFF08\u5168 ${String(
15
- totalPages)} \u30DA\u30FC\u30B8\uFF09\u3002--cursor \u3092 ${String(totalPages)} \u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`)}}if(typeof total==="number"&&total>0&&data["results"].length===0&&page<=totalPages){notes.push("\u6CE8\u8A18: \u3053\u306E\u30DA\u30FC\u30B8\u306E\u7D50\u679C\u306F\u3001\u95B2\u89A7\u3067\u304D\u306A\u3044\u3082\u306E\u3092\u9664\u3044\u305F\u7D50\u679C0\u4EF6\u306B\u306A\u308A\u307E\u3057\u305F\u3002\u7D9A\u304D\u306E\u30DA\u30FC\u30B8\u306B\u306F\u7D50\u679C\u304C\u3042\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002")}
16
- return notes}function nextPageLine(input,page){const keyword=input.args[0]??"";const parts=[OPERATION_WORDS.has(keyword)?"twp search query":"twp search"];const dashed=keyword.startsWith("-");if(!dashed)parts.push(shellQuote(keyword));if(input.flags.has("--ai"))parts.push("--ai");for(const type of typesOf(input))parts.push("--type",shellQuote(type));for(const name of["--status","--category","--limit"]){const value=input.flags.get(name);if(value!==void 0)parts.push(name,shellQuote(value))}parts.push(
17
- "--cursor",String(page));if(dashed)parts.push("--",shellQuote(keyword));return parts.join(" ")}var OPERATION_WORDS=new Set(["query","types","help"]);function typeRows(body){const data=dataOf(body,"\u691C\u7D22\u3067\u304D\u308B\u7A2E\u985E");if(!isRecord(data)){throw new ApiResponseError("\u691C\u7D22\u3067\u304D\u308B\u7A2E\u985E\u306E\u5FDC\u7B54\u306E\u5F62\u304C\u60F3\u5B9A\u3068\u9055\u3044\u307E\u3059\u3002\u63A5\u7D9A\u5148\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}return Object.
18
- entries(data).map(([docType,spec])=>({doc_type:docType,label:isRecord(spec)?text(spec["label"]):""}))}var queryOperation={name:"query",summary:"TWP \u5185\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u6A2A\u65AD\u3057\u3066\u691C\u7D22\u3059\u308B\uFF08twp search <\u8A9E> \u3068\u540C\u3058\u30FB--ai \u3067 AI\u691C\u7D22\uFF09",usage:"twp search <\u8A9E> [--ai] [--type <\u7A2E\u985E>[,<\u7A2E\u985E>...]] [--status <\u72B6\u614B>] [--category <\u30AB\u30C6\u30B4\u30EA\u30B3\u30FC\u30C9>] [--limit <\u4EF6\u6570>] [--cursor <\u30DA\u30FC\u30B8\u756A\u53F7>]",
19
- description:"\u30BF\u30B9\u30AF\u30FBWiki\u30FB\u30CE\u30FC\u30C8\u30FB\u8B70\u4E8B\u9332\u30FBFAQ\u30FB\u30B5\u30DD\u30FC\u30C8\u30FB\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u7B49\u3092\u6A2A\u65AD\u3057\u3066\u691C\u7D22\u3057\u307E\u3059\uFF08\u753B\u9762\u306E\u30CA\u30D3\u30D0\u30FC\u691C\u7D22\u3068\u540C\u3058 API\uFF09\u3002\n`twp search <\u8A9E>` \u306F `twp search query <\u8A9E>` \u3068\u540C\u3058\u3067\u3059\uFF08\u300Ctypes\u300D\u306A\u3069\u64CD\u4F5C\u540D\u3068\u540C\u3058\u8A9E\u3092\u691C\u7D22\u3057\u305F\u3044\u3068\u304D\u306F query \u3092\u4ED8\u3051\u307E\u3059\uFF09\u3002\n\n --ai \u3092\u4ED8\u3051\u308B\u3068 AI\u691C\u7D22\uFF08\u610F\u5473\u306E\u8FD1\u3044\u3082\u306E\u3092\u63A2\u3059\uFF09\u306B\u306A\u308A\u307E\u3059\u3002\u4F7F\u3063\u305F\u65B9\u5F0F\u306F stderr \u306E\u300C\u691C\u7D22\u65B9\u5F0F\u300D\u306B\u51FA\u307E\u3059\u3002\n --type \u306E\u5024\u306F twp search types \u306E doc_type \u3067\u3059\uFF08\u30AB\u30F3\u30DE\u533A\u5207\u308A\u30FB\u8907\u6570\u6307\u5B9A\u53EF\uFF09\u3002\u7701\u7565\u6642\u306F\u898B\u3066\u3088\u3044\u5168\u7A2E\u985E\u304C\u5BFE\u8C61\u3067\u3059\u3002\n \u95B2\u89A7\u6A29\u9650\u306E\u7121\u3044\u7A2E\u985E\u30FB\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306F\u30B5\u30FC\u30D0\u304C\u9664\u304D\u307E\u3059\u3002\n\n--output table / tsv / text \u306F\u8981\u7D04\u5217\uFF08doc_type / ref / title / project_name / updated_at / snippet / next\uFF09\u3067\u3059\u3002\nref \u306F\u30BF\u30B9\u30AF\u306A\u3089\u30AD\u30FC\u30FB\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306A\u3089\u30B3\u30FC\u30C9\u30FB\u305D\u308C\u4EE5\u5916\u306F ID\u3001next \u306F\u8A73\u7D30\u3092\u53D6\u308B\u30B3\u30DE\u30F3\u30C9\u3067\u3059\uFF08\u53D6\u5F97\u30B3\u30DE\u30F3\u30C9\u304C\u3042\u308B\u7A2E\
20
- \u985E\u3060\u3051\uFF09\u3002\n--output json \u306F\u5FDC\u7B54\u306E data\uFF08results\u30FBtotal\u30FBpage\u30FBtotal_pages\u30FBsearch_mode \u7B49\uFF09\u3092\u305D\u306E\u307E\u307E\u51FA\u3057\u307E\u3059\u3002\n\n\u30DA\u30FC\u30B8: --cursor \u306F\u30DA\u30FC\u30B8\u756A\u53F7\uFF081\u59CB\u307E\u308A\uFF09\u3067\u3059\u3002\u7D9A\u304D\u304C\u3042\u308B\u3068\u304D\u306F\u6B21\u306B\u6253\u3064\u884C\u3092 stderr \u306B\u51FA\u3057\u307E\u3059\uFF08--all \u306F\u3042\u308A\u307E\u305B\u3093\uFF09\u3002\n\u691C\u7D22\u30B5\u30FC\u30D3\u30B9\u304C\u4E00\u6642\u7684\u306B\u4F7F\u3048\u306A\u3044\u3068\u304D\u306F\u7D42\u4E86\u30B3\u30FC\u30C9 4 \u3067\u5931\u6557\u3057\u307E\u3059\uFF080\u4EF6\u3068\u306F\u533A\u5225\u3055\u308C\u307E\u3059\uFF09\u3002",
21
- flags:[{name:"--ai",summary:"AI\u691C\u7D22\uFF08\u610F\u5473\u691C\u7D22\uFF09\u306B\u3059\u308B",takesValue:false},{name:"--type",summary:"\u691C\u7D22\u3059\u308B\u7A2E\u985E\uFF08doc_type\u30FB\u30AB\u30F3\u30DE\u533A\u5207\u308A\u30FB\u8907\u6570\u6307\u5B9A\u53EF\uFF09",takesValue:true,placeholder:"<\u7A2E\u985E>",repeatable:true},{name:"--status",summary:"\u72B6\u614B\u3067\u7D5E\u308A\u8FBC\u3080",takesValue:true,placeholder:"<\u72B6\u614B>"},{name:"--category",summary:"\u30AB\u30C6\u30B4\u30EA\u30B3\u30FC\u30C9\u3067\u7D5E\u308A\u8FBC\u3080",
22
- takesValue:true,placeholder:"<\u30AB\u30C6\u30B4\u30EA\u30B3\u30FC\u30C9>"},{name:"--limit",summary:`1\u30DA\u30FC\u30B8\u306E\u4EF6\u6570\uFF08\u65E2\u5B9A 20\u30FB\u6700\u5927 ${String(LIMIT_MAX)}\uFF09`,takesValue:true,placeholder:"<\u4EF6\u6570>"},{name:"--cursor",summary:"\u53D6\u5F97\u3059\u308B\u30DA\u30FC\u30B8\u756A\u53F7\uFF08\u300C\u7D9A\u304D\u304C\u3042\u308A\u307E\u3059\u300D\u306E\u6848\u5185\u306B\u51FA\u308B\u5024\u30FB1\u59CB\u307E\u308A\uFF09",takesValue:true,placeholder:"<\u30DA\u30FC\u30B8\
23
- \u756A\u53F7>"}],rejected:server=>/types/.test(server)?"\u691C\u7D22\u3067\u304D\u308B\u7A2E\u985E\u306F twp search types \u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002":void 0,plan:input=>({method:"POST",path:SEARCH_PATH,body:searchBody(input)}),summarize:summarizeSearch,raw:body=>searchData(body),notes:searchNotes};var typesOperation={name:"types",summary:"\u691C\u7D22\u3067\u304D\u308B\u7A2E\u985E\uFF08doc_type \u3068\u30E9\u30D9\u30EB\uFF09\u3092\u4E00\u89A7\u3059\u308B",usage:"twp search \
24
- types",description:"twp search --type \u306B\u6E21\u305B\u308B\u5024\u306E\u4E00\u89A7\u3067\u3059\u3002\u30C6\u30CA\u30F3\u30C8\u306E\u5168\u7A2E\u985E\u3092\u8FD4\u3057\u307E\u3059\uFF08\u95B2\u89A7\u6A29\u9650\u306E\u7121\u3044\u7A2E\u985E\u306F\u691C\u7D22\u3057\u3066\u3082\u7D50\u679C\u304C\u51FA\u307E\u305B\u3093\uFF09\u3002\n--output json \u3082 doc_type \u3068 label \u3060\u3051\u3067\u3059\uFF08\u30B5\u30FC\u30D0\u306E\u5FDC\u7B54\u306B\u542B\u307E\u308C\u308B\u5185\u90E8\u8A2D\u5B9A\u306F\u51FA\u3057\u307E\u305B\u3093\uFF09\u3002",
25
- flags:[],plan:input=>{if(input.args.length>0){throw new UsageError(`types \u306F\u4F4D\u7F6E\u5F15\u6570\u3092\u53D6\u308A\u307E\u305B\u3093: ${input.args.join(" ")}`,"\u300Ctypes\u300D\u3068\u3044\u3046\u8A9E\u3092\u691C\u7D22\u3059\u308B\u306A\u3089 twp search query types")}return{method:"GET",path:TYPES_PATH}},summarize:typeRows,raw:typeRows};var searchDomain={name:"search",summary:`TWP \u5185\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306E${LABEL}\uFF08\u901A\u5E38\u691C\u7D22\u30FBAI\u691C\u7D22\uFF09`,
26
- operations:[queryOperation,typesOperation],defaultOperation:"query"};export{searchDomain};